From 8cbd28b09d39bd3ac464489c614cac4f15d01891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Blanqui?= Date: Mon, 20 Jan 2025 15:52:47 +0100 Subject: [PATCH 1/8] add the translation of Multivariate --- CONFIG | 2 + Makefile | 4 +- README.md | 16 +- erasing.lp => With_N.lp | 119 +- With_N.mk | 1 + HOLLight.v => With_N.v | 450 +- coq-hol-light.opam | 4 +- reproduce | 93 +- terms.v | 2064 +++- theorems.v | 20399 ++++++++++++++++++++++++++++++++------ theory_hol.v | 2 +- 11 files changed, 19952 insertions(+), 3202 deletions(-) create mode 100755 CONFIG rename erasing.lp => With_N.lp (79%) create mode 100644 With_N.mk rename HOLLight.v => With_N.v (59%) diff --git a/CONFIG b/CONFIG new file mode 100755 index 0000000..b9e14dc --- /dev/null +++ b/CONFIG @@ -0,0 +1,2 @@ +#!/bin/sh +hol2dk config Multivariate/make_complex.ml HOLLight HOLLight_Real_With_N.mappings With_N.v BinNat Rbase Rdefinitions Rbasic_fun With_N.lp With_N.mk diff --git a/Makefile b/Makefile index 409fe7d..def7b3d 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +LIBNAME=HOLLight + .SUFFIXES: .PHONY: default @@ -8,7 +10,7 @@ Makefile.coq: _CoqProject coq_makefile -f _CoqProject -o $@ _CoqProject: - echo -R . HOLLight `ls *.v` > $@ + echo "-R . $(LIBNAME) `ls *.v`" > $@ .PHONY: clean clean: Makefile.coq diff --git a/README.md b/README.md index b0c62b2..f67d3bd 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,15 @@ HOL-Light libraries in Coq -------------------------- -This Coq library contains an automatic translation in [Coq](https://coq.inria.fr/) of the [HOL-Light](https://github.com/jrh13/hol-light) base library [hol_lib.ml](https://github.com/jrh13/hol-light/blob/master/hol_lib.ml) with HOL-Light types and functions mapped to the corresponding types and functions in the Coq standard library so that, for instance, a HOL-Light theorem on HOL-Light real numbers is translated into a Coq theorem on Coq real numbers. The provided theorems can therefore be readily reused and combined with other Coq developments based on the Coq standard library. +This Coq library contains an automatic translation in [Coq](https://coq.inria.fr/) of the [HOL-Light](https://github.com/jrh13/hol-light) library [Multivariate/make_complex.ml](https://github.com/jrh13/hol-light/blob/master/Multivariate/make_complex.ml) with various HOL-Light types and functions mapped to the corresponding types and functions of the Coq standard library so that, for instance, a HOL-Light theorem on HOL-Light real numbers is translated into a Coq theorem on Coq real numbers. The provided theorems can therefore be readily reused and combined with other Coq developments based on the Coq standard library. -It contains 2897 theorems including theorems on arithmetic, -wellfounded relations, lists, real numbers, integers, basic set -theory, etc. +It contains 17500 theorems on arithmetic, wellfounded relations, +lists, real numbers, integers, basic set theory, permutations, group +theory, matroids, metric spaces, homology, vectors, determinants, +topology, convex sets and functions, paths, polytopes, Brouwer degree, +derivatives, Clifford algebra, integration, measure theory, complex +numbers and analysis, transcendental numbers, real analysis, complex +line integrals, etc. See HOL-Light files for more details. As HOL-Light is based on classical higher-order logic with choice, this library uses the following standard set of axioms in Coq: @@ -21,7 +25,7 @@ The translated theorems are provided as axioms in order to have fast Require's b **Installation using [opam](https://opam.ocaml.org/)** -dependencies: [coq-hol-light-real](https://github.com/Deducteam/coq-hol-light-real/), [coq-fourcolor-reals](https://github.com/coq-community/fourcolor) +dependencies: [coq-hol-light-real-with-N](https://github.com/Deducteam/coq-hol-light-real-with-N/), [coq-fourcolor-reals](https://github.com/coq-community/fourcolor) ``` opam repo add coq-released https://coq.inria.fr/opam/released @@ -37,4 +41,4 @@ Check thm_DIV_DIV. **Reproducibility** -Run [reproduce](https://github.com/Deducteam/hol2dk/blob/main/reproduce). It takes 70 minutes with 32 processors Intel Core i9-13950HX and 64 Gb RAM. If every thing works well, the proofs will be in the directory `tmp/output`. +Run [reproduce](https://github.com/Deducteam/hol2dk/blob/main/reproduce). It takes 35 hours with 32 processors Intel Core i9-13950HX and 128 Gb RAM. If every thing works well, the proofs will be in the directory `tmp/output`. diff --git a/erasing.lp b/With_N.lp similarity index 79% rename from erasing.lp rename to With_N.lp index 55267b1..9abac54 100644 --- a/erasing.lp +++ b/With_N.lp @@ -29,17 +29,17 @@ builtin "ex_def" ≔ ∃_def; builtin "not" ≔ ¬; builtin "not_def" ≔ ¬_def; -builtin "True" ≔ T; -builtin "T_def" ≔ T_def; +builtin "True" ≔ ⊤; +builtin "T_def" ≔ ⊤_def; -builtin "False" ≔ F; -builtin "F_def" ≔ F_def; +builtin "False" ≔ ⊥; +builtin "F_def" ≔ ⊥_def; builtin "ex1" ≔ ∃₁; builtin "ex1_def" ≔ ∃₁_def; // natural deduction rules -builtin "Logic.I" ≔ Tᵢ; +builtin "Logic.I" ≔ ⊤ᵢ; builtin "conj" ≔ ∧ᵢ; builtin "proj1" ≔ ∧ₑ₁; builtin "proj2" ≔ ∧ₑ₂; @@ -93,9 +93,9 @@ builtin "IND_SUC" ≔ IND_SUC; builtin "IND_0" ≔ IND_0; // type of natural numbers -builtin "nat" ≔ num; -builtin "0" ≔ _0; -builtin "S" ≔ SUC; +builtin "N" ≔ num; +builtin "0%N" ≔ _0; +builtin "N.succ" ≔ SUC; builtin "mk_num" ≔ mk_num; builtin "dest_num" ≔ dest_num; builtin "NUM_REP" ≔ NUM_REP; @@ -108,39 +108,39 @@ builtin "axiom_8" ≔ axiom_8; builtin "BIT0" ≔ BIT0; builtin "BIT0_def" ≔ BIT0_def; builtin "BIT1" ≔ BIT1; -builtin "Nat.pred" ≔ PRE; +builtin "N.pred" ≔ PRE; builtin "PRE_def" ≔ PRE_def; -builtin "Nat.add" ≔ +; +builtin "N.add" ≔ +; builtin "add_def" ≔ +_def; -builtin "Nat.mul" ≔ *; +builtin "N.mul" ≔ *; builtin "mul_def" ≔ *_def; -builtin "Nat.pow" ≔ EXP; +builtin "N.pow" ≔ EXP; builtin "EXP_def" ≔ EXP_def; -builtin "Peano.le" ≔ <=; +builtin "N.le" ≔ <=; builtin "le_def" ≔ <=_def; -builtin "Peano.lt" ≔ <; +builtin "N.lt" ≔ <; builtin "lt_def" ≔ <_def; -builtin "Peano.ge" ≔ >=; +builtin "N.ge" ≔ >=; builtin "ge_def" ≔ >=_def; -builtin "Peano.gt" ≔ >; +builtin "N.gt" ≔ >; builtin "gt_def" ≔ >_def; builtin "COND" ≔ COND; -builtin "Nat.max" ≔ MAX; +builtin "N.max" ≔ MAX; builtin "MAX_def" ≔ MAX_def; -builtin "Nat.min" ≔ MIN; +builtin "N.min" ≔ MIN; builtin "MIN_def" ≔ MIN_def; -builtin "Nat.sub" ≔ -; +builtin "N.sub" ≔ -; builtin "minus_def" ≔ -_def; -builtin "Factorial.fact" ≔ FACT; -builtin "FACT_def" ≔ FACT_def; -builtin "Nat.div" ≔ DIV; +//builtin "Factorial.fact" ≔ FACT; +//builtin "FACT_def" ≔ FACT_def; +builtin "N.div" ≔ DIV; builtin "DIV_def" ≔ DIV_def; -builtin "Nat.modulo" ≔ MOD; +builtin "N.modulo" ≔ MOD; builtin "MOD_def" ≔ MOD_def; -builtin "Coq.Arith.PeanoNat.Nat.Even" ≔ EVEN; -builtin "EVEN_def" ≔ EVEN_def; -builtin "Coq.Arith.PeanoNat.Nat.Odd" ≔ ODD; -builtin "ODD_def" ≔ ODD_def; +//builtin "N.Even" ≔ EVEN; +//builtin "EVEN_def" ≔ EVEN_def; +//builtin "N.Odd" ≔ ODD; +//builtin "ODD_def" ≔ ODD_def; // indtypes builtin "NUMLEFT" ≔ NUMLEFT; // not mandatory @@ -191,8 +191,8 @@ builtin "List.app" ≔ APPEND; builtin "APPEND_def" ≔ APPEND_def; builtin "List.rev" ≔ REVERSE; builtin "REVERSE_def" ≔ REVERSE_def; -builtin "List.length" ≔ LENGTH; -builtin "LENGTH_def" ≔ LENGTH_def; +//builtin "List.length" ≔ LENGTH; +//builtin "LENGTH_def" ≔ LENGTH_def; builtin "List.map" ≔ MAP; builtin "MAP_def" ≔ MAP_def; builtin "List.removelast" ≔ BUTLAST; @@ -205,8 +205,8 @@ builtin "PAIRWISE_def" ≔ PAIRWISE_def; //builtin "FILTER_def" ≔ FILTER_def; builtin "List.In" ≔ MEM; builtin "MEM_def" ≔ MEM_def; -builtin "repeat_with_perm_args" ≔ REPLICATE; -builtin "REPLICATE_def" ≔ REPLICATE_def; +//builtin "repeat_with_perm_args" ≔ REPLICATE; +//builtin "REPLICATE_def" ≔ REPLICATE_def; //builtin "fold_right_with_perm_args" ≔ ITLIST; //builtin "ITLIST_def" ≔ ITLIST_def; builtin "hd" ≔ HD; @@ -275,10 +275,10 @@ builtin "Rinv" ≔ real_inv; builtin "real_inv_def" ≔ real_inv_def; builtin "Ropp" ≔ real_neg; builtin "real_neg_def" ≔ real_neg_def; -builtin "INR" ≔ real_of_num; +builtin "R_of_N" ≔ real_of_num; builtin "real_of_num_def" ≔ real_of_num_def; -builtin "Rpower_nat" ≔ real_pow; -builtin "real_pow_def" ≔ real_pow_def; +//builtin "Rpower_nat" ≔ real_pow; +//builtin "real_pow_def" ≔ real_pow_def; builtin "Rabs" ≔ real_abs; builtin "real_abs_def" ≔ real_abs_def; builtin "Rdiv" ≔ real_div; @@ -304,6 +304,8 @@ builtin "axiom_25" ≔ axiom_25; builtin "axiom_26" ≔ axiom_26; //TODO: builtin "div" ≔ div; //TODO: builtin "rem" ≔ rem; +builtin "Z_of_N" ≔ int_of_num; +builtin "int_of_num_def" ≔ int_of_num_def; // finite_image builtin "finite_image" ≔ finite_image; @@ -353,3 +355,52 @@ builtin "_mk_tybit1" ≔ _mk_tybit1; builtin "_dest_tybit1" ≔ _dest_tybit1; builtin "axiom_39" ≔ axiom_39; builtin "axiom_40" ≔ axiom_40; + +// frag +builtin "frag" ≔ frag; +builtin "mk_frag" ≔ mk_frag; +builtin "dest_frag" ≔ dest_frag; +builtin "axiom_41" ≔ axiom_41; +builtin "axiom_42" ≔ axiom_42; + +// group +builtin "Group" ≔ Group; +builtin "group" ≔ group; +builtin "group_operations" ≔ group_operations; +builtin "axiom_43" ≔ axiom_43; +builtin "axiom_44" ≔ axiom_44; + +// matroid +builtin "Matroid" ≔ Matroid; +builtin "matroid" ≔ matroid; +builtin "dest_matroid" ≔ dest_matroid; +builtin "axiom_45" ≔ axiom_45; +builtin "axiom_46" ≔ axiom_46; + +// topology +builtin "Topology" ≔ Topology; +builtin "topology" ≔ topology; +builtin "open_in" ≔ open_in; +builtin "axiom_47" ≔ axiom_47; +builtin "axiom_48" ≔ axiom_48; + +// net +builtin "net" ≔ net; +builtin "mk_net" ≔ mk_net; +builtin "dest_net" ≔ dest_net; +builtin "axiom_49" ≔ axiom_49; +builtin "axiom_50" ≔ axiom_50; + +// metric_space +builtin "Metric" ≔ Metric; +builtin "metric" ≔ metric; +builtin "dest_metric" ≔ dest_metric; +builtin "axiom_51" ≔ axiom_51; +builtin "axiom_52" ≔ axiom_52; + +// multivector +builtin "Multivector" ≔ Multivector; +builtin "mk_multivector" ≔ mk_multivector; +builtin "dest_multivector" ≔ dest_multivector; +builtin "axiom_53" ≔ axiom_53; +builtin "axiom_54" ≔ axiom_54; diff --git a/With_N.mk b/With_N.mk new file mode 100644 index 0000000..8d77384 --- /dev/null +++ b/With_N.mk @@ -0,0 +1 @@ +With_N.vo: diff --git a/HOLLight.v b/With_N.v similarity index 59% rename from HOLLight.v rename to With_N.v index 1771a43..caabd28 100644 --- a/HOLLight.v +++ b/With_N.v @@ -2,7 +2,7 @@ (* Proof that Coq R is a fourcolor.model of real numbers. *) (*****************************************************************************) -Require Import HOLLight_Real.HOLLight_Real Rbase Rdefinitions Rbasic_fun. +Require Import HOLLight_Real_With_N.mappings Rbase Rdefinitions Rbasic_fun. Open Scope R_scope. @@ -112,7 +112,7 @@ Close Scope R_scope. (* Proof that real is a fourcolor.model of real numbers. *) (*****************************************************************************) -Require Import HOLLight_Real.terms. +Require Import HOLLight_Real_With_N.terms. Lemma real_add_of_num p q : real_of_num (p + q) = real_add (real_of_num p) (real_of_num q). @@ -155,7 +155,7 @@ Definition real_struct : structure := {| Canonical real_struct. -Require Import HOLLight_Real.theorems. +Require Import HOLLight_Real_With_N.theorems. Lemma real_sup_is_lub E : has_sup E -> ub E (real_sup E) /\ (forall b, ub E b -> real_le (real_sup E) b). @@ -189,6 +189,8 @@ Proof. unfold eq. rewrite thm_REAL_LE_ANTISYM. reflexivity. Qed. +Require Import Lia. + Lemma real_axioms : axioms real_struct. Proof. apply Axioms. @@ -207,7 +209,7 @@ Proof. intros x y z. rewrite eq_real_struct. apply thm_REAL_ADD_LDISTRIB. intro x. rewrite eq_real_struct. apply thm_REAL_MUL_LID. intro x. rewrite eq_real_struct. rewrite thm_REAL_MUL_SYM. apply thm_REAL_MUL_LINV. - unfold one, zero. simpl. rewrite eq_real_struct, thm_REAL_OF_NUM_EQ. auto. + unfold one, zero. simpl. rewrite eq_real_struct, thm_REAL_OF_NUM_EQ. lia. Qed. Definition real_model : model := {| @@ -257,6 +259,9 @@ Qed. Lemma real_of_R_morph : morphism real_of_R. Proof. apply Rmorph_toP. Qed. +Lemma R_of_real_morph : morphism R_of_real. +Proof. apply Rmorph_toP. Qed. + Lemma le_morph_R x y : le x y = le (real_of_R x) (real_of_R y). Proof. generalize (morph_le real_of_R_morph x y); intros [h i]. apply prop_ext; auto. @@ -306,7 +311,7 @@ Proof. case (classic (x = 0%R)); intro h. subst x. unfold inv. simpl. rewrite Rinv_0, zero_eq, !real_of_R_of_real. Set Printing All. - change (@Logic.eq (type real) (real_of_num O) (real_inv (real_of_num O))). + change (@Logic.eq (type real) (real_of_num 0) (real_inv (real_of_num 0))). symmetry. apply thm_REAL_INV_0. rewrite <- eq_real_model. apply (morph_inv real_of_R_morph). rewrite eq_R_model. exact h. @@ -334,31 +339,76 @@ Proof. rewrite <- eq_real_model. apply (morph_one real_of_R_morph). Qed. Lemma one_eq : 1%R = R_of_real (real_of_num 1). Proof. rewrite <- one_morph_R, R_of_real_of_R. reflexivity. Qed. -Lemma INR_eq n : INR (S n) = (INR n + 1)%R. +Definition R_of_N n := + match n with + | N0 => 0%R + | N.pos p => IPR p + end. + +Require Import Lra. + +Lemma R_of_N_succ n : R_of_N (N.succ n) = (R_of_N n + 1)%R. Proof. - induction n; simpl. - rewrite Rplus_0_l. reflexivity. - destruct n as [|n]. reflexivity. reflexivity. + destruct n; simpl. unfold IPR. lra. rewrite Rplus_comm. apply succ_IPR. Qed. -Require Import Lia. +Lemma R_of_N_add p q : R_of_N (p + q)%N = (R_of_N p + R_of_N q)%R. +Proof. + destruct p; destruct q; simpl. lra. unfold IPR. lra. unfold IPR. lra. + apply plus_IPR. +Qed. + +Lemma Npos_succ p : N.pos (Pos.succ p) = N.pos p + 1. +Proof. lia. Qed. + +Lemma treal_eq_of_num_add m n : + treal_eq (treal_of_num (m + n)) + = treal_eq (treal_add (treal_of_num m) (treal_of_num n)). +Proof. + apply eq_class_intro. apply treal_eq_sym. apply treal_eq_trans. + symmetry. apply thm_TREAL_OF_NUM_ADD. +Qed. -Lemma real_of_num_def : INR = (fun m : nat => mk_real (fun u : prod hreal hreal => treal_eq (treal_of_num m) u)). +Lemma mk_real_treal_eq_add p q : + mk_real (treal_eq (treal_add (treal_of_num p) (treal_of_num q))) + = (mk_real (treal_eq (treal_of_num p)) + mk_real (treal_eq (treal_of_num q)))%R. Proof. - change (INR = fun m : nat => R_of_real (real_of_num m)). - apply fun_ext. induction x. - apply zero_eq. - rewrite INR_eq, IHx. rewrite add_eq, real_of_R_of_real, one_morph_R. - rewrite <- real_add_of_num. f_equal. f_equal. lia. + rewrite add_eq. unfold mk_real. f_equal. rewrite !real_of_R_of_real. + rewrite <- treal_eq_of_num_add. + change (real_of_num (p + q) = add (real_of_num p) (real_of_num q)). + rewrite real_add_of_num. reflexivity. Qed. -Fixpoint Rpower_nat r n : R := +Lemma IPR_eq_mk_real p : IPR p = mk_real (treal_eq (treal_of_num (N.pos p))). +Proof. + pattern p; revert p; apply Pos.peano_ind. + apply one_eq. + intros p hp. rewrite succ_IPR, Rplus_comm. + assert (e: IPR 1 = mk_real (treal_eq (treal_of_num 1))). apply one_eq. + rewrite hp, e, Npos_succ, <- mk_real_treal_eq_add, <- treal_eq_of_num_add. + reflexivity. +Qed. + +Lemma real_of_num_def : R_of_N = (fun m : N => mk_real (fun u : prod hreal hreal => treal_eq (treal_of_num m) u)). +Proof. + apply fun_ext; intro n. + change (R_of_N n = mk_real (treal_eq (treal_of_num n))). + destruct n; simpl. apply zero_eq. apply IPR_eq_mk_real. +Qed. + +Lemma R_of_N0 : R_of_N 0 = 0%R. +Proof. reflexivity. Qed. + +Lemma R_of_N1 : R_of_N 1 = 1%R. +Proof. reflexivity. Qed. + +(*Fixpoint Rpower_nat r n : R := match n with | 0 => 1 | S n => r * Rpower_nat r n end. -Lemma real_pow_def : Rpower_nat = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) -> R -> nat -> R) (fun real_pow' : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) -> R -> nat -> R => forall _24085 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))), (forall x : R, (real_pow' _24085 x (NUMERAL 0)) = (INR (NUMERAL (BIT1 0)))) /\ (forall x : R, forall n : nat, (real_pow' _24085 x (S n)) = (Rmult x (real_pow' _24085 x n)))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))))))))))). +Lemma real_pow_def : Rpower_nat = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) -> R -> nat -> R) (fun real_pow' : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) -> R -> nat -> R => forall _24085 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))), (forall x : R, (real_pow' _24085 x (NUMERAL 0)) = (R_of_N (NUMERAL (BIT1 0)))) /\ (forall x : R, forall n : nat, (real_pow' _24085 x (S n)) = (Rmult x (real_pow' _24085 x n)))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))))))))))). Proof. generalize (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0))))))))))))))); generalize (@prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))); intros A a. match goal with [|- _ = ε ?x _] => set (Q := x) end. @@ -366,7 +416,7 @@ Proof. generalize (ε_spec i a). intros [h0 hs]. apply fun_ext; intro x. apply fun_ext; intro y. induction y; simpl. rewrite h0. reflexivity. rewrite hs, IHy. reflexivity. -Qed. +Qed.*) Require Import RIneq. @@ -380,12 +430,14 @@ Proof. Qed. Lemma real_abs_def : - Rabs = (fun y0 : R => @COND R (Rle (INR (NUMERAL 0)) y0) y0 (Ropp y0)). + Rabs = (fun y0 : R => @COND R (Rle (R_of_N (NUMERAL 0)) y0) y0 (Ropp y0)). Proof. apply fun_ext; intro r. unfold Rabs. destruct (Rcase_abs r). - assert (h: (INR (NUMERAL 0) <= r) = False). rewrite is_False, Rnot_le. exact r0. + assert (h: (R_of_N (NUMERAL 0) <= r) = False). rewrite is_False, Rnot_le. + unfold NUMERAL. rewrite R_of_N0. exact r0. rewrite h, COND_False. reflexivity. - assert (h: (INR (NUMERAL 0) <= r) = True). rewrite is_True. apply Rge_le. exact r0. + assert (h: (R_of_N (NUMERAL 0) <= r) = True). rewrite is_True. apply Rge_le. + unfold NUMERAL. rewrite R_of_N0. exact r0. rewrite h, COND_True. reflexivity. Qed. @@ -449,20 +501,51 @@ Proof. apply lt_IZR in h1. rewrite <- minus_IZR in h2. apply le_IZR in h2. lia. Qed. -Definition integer : R -> Prop := fun _28588 : R => exists n : nat, (Rabs _28588) = (INR n). +Definition integer : R -> Prop := fun _28588 : R => exists n : N, (Rabs _28588) = (R_of_N n). + +Lemma minus_eq_minus x y : -x = y -> x = - y. +Proof. intro e. subst y. symmetry. apply Ropp_involutive. Qed. Lemma integer_IZR r : integer r -> exists k, r = IZR k. Proof. - intros [n h]. rewrite INR_IZR_INZ in h. - unfold Rabs in h. destruct (Rcase_abs r) in h. - exists (- (Z.of_nat n))%Z. rewrite opp_IZR, <- h, Ropp_involutive. reflexivity. - exists (Z.of_nat n). exact h. + intros [n h]. destruct (Rcase_abs r) as [i|i]. + + rewrite (Rabs_left _ i) in h. apply minus_eq_minus in h. subst r. clear i. + pattern n; revert n; apply N.peano_ind. + exists 0%Z. rewrite R_of_N0. ring. + intros n [k hk]. rewrite R_of_N_succ. + exists (k - 1)%Z. rewrite minus_IZR, <- hk. ring. + + rewrite (Rabs_right _ i) in h. subst r. clear i. + pattern n; revert n; apply N.peano_ind. + exists 0%Z. rewrite R_of_N0. reflexivity. + intros n [k hk]. rewrite R_of_N_succ. + exists (k + 1)%Z. rewrite plus_IZR, <- hk. reflexivity. +Qed. + +Definition Zabs (z:Z): N := + match z with + | Z0 => N0 + | Zpos p => N.pos p + | Zneg p => N.pos p + end. + +Lemma pos_succ p : N.pos (Pos.succ p) = N.succ (N.pos p). +Proof. induction p; simpl; reflexivity. Qed. + +Lemma IZR_pos_eq_R_of_N_pos p: IZR (Z.pos p) = R_of_N (N.pos p). +Proof. + pattern p; revert p; apply Pos.peano_ind. + rewrite R_of_N1. reflexivity. + intros p hp. rewrite Pos2Z.inj_succ, succ_IZR, pos_succ, R_of_N_succ, hp. + reflexivity. Qed. Lemma IZR_integer r : (exists k, r = IZR k) -> integer r. Proof. - intros [k h]. rewrite h. exists (Z.abs_nat k). rewrite Rabs_Zabs, INR_IZR_INZ. - f_equal. rewrite Nat2Z.inj_abs_nat. reflexivity. + intros [k h]. subst r. exists (Zabs k). rewrite <- abs_IZR. destruct k; simpl. + rewrite <- R_of_N0. reflexivity. apply IZR_pos_eq_R_of_N_pos. + apply IZR_pos_eq_R_of_N_pos. Qed. Lemma axiom_26 : forall (r : R), ((fun x : R => integer x) r) = ((IZR (int_of_real r)) = r). @@ -473,6 +556,42 @@ Proof. apply IZR_integer. exists (int_of_real r). symmetry. exact h. Qed. +Definition Z_of_N (n:N): Z := + match n with + | N0 => Z0 + | N.pos p => Z.pos p + end. + +Lemma Z_of_N_succ n : Z_of_N (N.succ n) = (Z_of_N n + 1)%Z. +Proof. + destruct n. reflexivity. + pattern p; revert p; apply Pos.peano_ind. + reflexivity. + intro p. simpl. lia. +Qed. + +Require Import Lra R_Ifp. + +Lemma up_IZR z : up (IZR z) = (z + 1)%Z. +Proof. symmetry; apply tech_up; rewrite plus_IZR; lra. +Qed. + +Lemma up_shiftz r z : up (r + IZR z)%R = (up r + z)%Z. +Proof. assert (H := archimed r). symmetry; apply tech_up; rewrite plus_IZR; lra. Qed. + +Lemma up0 : up 0 = 1%Z. +Proof. apply up_IZR. Qed. + +Lemma up_succ r : up (r + 1) = (up r + 1)%Z. +Proof. apply up_shiftz. Qed. + +Lemma int_of_num_def : Z_of_N = (fun _28789 : N => int_of_real (R_of_N _28789)). +Proof. + apply fun_ext; intro n; pattern n; revert n; apply N.peano_ind; unfold int_of_real. + rewrite R_of_N0, up0. reflexivity. + intro n. unfold int_of_real. rewrite Z_of_N_succ, R_of_N_succ, up_succ. lia. +Qed. + Close Scope R_scope. (*****************************************************************************) @@ -683,12 +802,9 @@ Definition ITSET {A B : Type'} : (B -> A -> A) -> (B -> Prop) -> A -> A := fun f Definition itset {A B:Type'} : (B -> A -> A) -> (B -> Prop) -> A -> A := fun f : B -> A -> A => let F := fun a b => f b a in fun s : B -> Prop => fun a : A => fold_left F (elements s) a. Lemma itset_EMPTY {A B:Type'} (f:B -> A -> A) a: itset f EMPTY a = a. -Proof. - unfold itset. rewrite elements_EMPTY. simpl. reflexivity. -Qed. +Proof. unfold itset. rewrite elements_EMPTY. simpl. reflexivity. Qed. -Definition permut_inv' {A B:Type} (f:B -> A -> A) := - forall a y x, f x (f y a) = f y (f x a). +Definition permut_inv' {A B:Type} (f:B -> A -> A) := forall a y x, f x (f y a) = f y (f x a). Lemma itset_INSERT {A B:Type'} (f:B -> A -> A) a b s: permut_inv' f -> finite s -> itset f (INSERT b s) a = COND (IN b s) (itset f s a) (f b (itset f s a)). @@ -725,9 +841,9 @@ Proof. reflexivity. exact H. exact h0. rewrite FINITE_eq_finite. exact h0. Qed. -Definition CARD {_99571 : Type'} : (_99571 -> Prop) -> nat := fun _44539 : _99571 -> Prop => @ITSET nat _99571 (fun x : _99571 => fun n : nat => S n) _44539 (NUMERAL 0). +Definition CARD {A : Type'} : (A -> Prop) -> N := fun s => @ITSET N A (fun x : A => fun n : N => N.succ n) s (NUMERAL 0). -Definition dimindex {A : Type'} : (A -> Prop) -> nat := fun _97595 : A -> Prop => @COND nat (@FINITE A (UNIV A)) (@CARD A (UNIV A)) (NUMERAL (BIT1 0)). +Definition dimindex {A : Type'} : (A -> Prop) -> N := fun _ => @COND N (@FINITE A (UNIV A)) (@CARD A (UNIV A)) (NUMERAL (BIT1 0)). Lemma Incl_finite {A:Type'} (s: A -> Prop) : finite s -> forall s', Incl s' s -> finite s'. Proof. @@ -752,14 +868,13 @@ Qed. Lemma dimindex_UNIV_gt_0 A : 0 < dimindex (UNIV A). Proof. - assert (p1: permut_inv' (fun (_ : A) (n : nat) => S n)). - unfold permut_inv'. reflexivity. + assert (p1: permut_inv' (fun (_ : A) (n : N) => N.succ n)). unfold permut_inv'. reflexivity. unfold dimindex. case (prop_degen (FINITE (UNIV A))); intro h; rewrite h. assert (p2: finite (UNIV A)). rewrite <- FINITE_eq_finite, h. exact Logic.I. - assert (p3: finite (fun x : A => x <> el A)). apply (Incl_finite (UNIV A)). exact p2. - intros x _. exact Logic.I. + assert (p3: finite (fun x : A => x <> el A)). + apply (Incl_finite (UNIV A)). exact p2. intros x _. exact Logic.I. rewrite COND_True. unfold CARD. rewrite ITSET_eq_itset, UNIV_eq_INSERT, itset_INSERT, IN_el_not_el, COND_False; auto. @@ -768,6 +883,17 @@ Proof. rewrite COND_False. unfold NUMERAL, BIT1. lia. Qed. +Lemma CARD_ge_1 {A : Type'} : FINITE (UNIV A) -> 1 <= CARD (UNIV A). +Proof. + rewrite FINITE_eq_finite. intro p2. + assert (p1: permut_inv' (fun (_ : A) (n : N) => N.succ n)). unfold permut_inv'. reflexivity. + assert (p3: finite (fun x : A => x <> el A)). + apply (Incl_finite (UNIV A)). exact p2. intros x _. exact Logic.I. + rewrite UNIV_eq_INSERT. unfold CARD. + rewrite ITSET_eq_itset. 2: exact p1. 2: rewrite UNIV_eq_INSERT in p2; exact p2. + rewrite itset_INSERT, IN_el_not_el, COND_False. lia. exact p1. exact p3. +Qed. + (*****************************************************************************) (* Cart.finite_image: natural numbers between 1 and the cardinal of A, if A is finite, and 1 otherwise. *) @@ -777,10 +903,10 @@ Definition GSPEC {A : Type'} : (A -> Prop) -> A -> Prop := fun _32695 : A -> Pro Definition SETSPEC {_83031 : Type'} : _83031 -> Prop -> _83031 -> Prop := fun _32700 : _83031 => fun _32701 : Prop => fun _32702 : _83031 => _32701 /\ (_32700 = _32702). -Definition dotdot : nat -> nat -> nat -> Prop := fun _69692 : nat => fun _69693 : nat => @GSPEC nat (fun GEN_PVAR_229 : nat => exists x : nat, @SETSPEC nat GEN_PVAR_229 ((Peano.le _69692 x) /\ (Peano.le x _69693)) x). +Definition dotdot : N -> N -> N -> Prop := fun _69692 : N => fun _69693 : N => @GSPEC N (fun GEN_PVAR_229 : N => exists x : N, @SETSPEC N GEN_PVAR_229 ((N.le _69692 x) /\ (N.le x _69693)) x). Definition finite_image_pred (A:Type') x := - @IN nat x (dotdot (NUMERAL (BIT1 0)) (@dimindex A (UNIV A))). + @IN N x (dotdot (NUMERAL (BIT1 0)) (@dimindex A (UNIV A))). Lemma finite_image_pred1 (A:Type') : finite_image_pred A 1. Proof. @@ -791,16 +917,16 @@ Qed. Definition finite_image : Type' -> Type' := fun A => subtype (finite_image_pred1 A). -Definition finite_index : forall {A : Type'}, nat -> finite_image A := +Definition finite_index : forall {A : Type'}, N -> finite_image A := fun A => mk (finite_image_pred1 A). -Definition dest_finite_image : forall {A : Type'}, (finite_image A) -> nat := +Definition dest_finite_image : forall {A : Type'}, (finite_image A) -> N := fun A => dest (finite_image_pred1 A). Lemma axiom_27 : forall {A : Type'} (a : finite_image A), (@finite_index A (@dest_finite_image A a)) = a. Proof. intros A a. apply mk_dest. Qed. -Lemma axiom_28 : forall {A : Type'} (r : nat), ((fun x : nat => @IN nat x (dotdot (NUMERAL (BIT1 0)) (@dimindex A (UNIV A)))) r) = ((@dest_finite_image A (@finite_index A r)) = r). +Lemma axiom_28 : forall {A : Type'} (r : N), ((fun x : N => @IN N x (dotdot (NUMERAL (BIT1 0)) (@dimindex A (UNIV A)))) r) = ((@dest_finite_image A (@finite_index A r)) = r). Proof. intros A r. apply dest_mk. Qed. (*****************************************************************************) @@ -825,7 +951,7 @@ Proof. intros A B r. apply prop_ext; intros _. reflexivity. exact Logic.I. Qed. (* Cart.finite_sum *) (*****************************************************************************) -Definition finite_sum_pred (A B: Type') x := @IN nat x (dotdot (NUMERAL (BIT1 0)) (Nat.add (@dimindex A (UNIV A)) (@dimindex B (UNIV B)))). +Definition finite_sum_pred (A B: Type') x := @IN N x (dotdot (NUMERAL (BIT1 0)) (N.add (@dimindex A (UNIV A)) (@dimindex B (UNIV B)))). Lemma finite_sum_pred1 (A B:Type') : finite_sum_pred A B 1. Proof. @@ -836,23 +962,23 @@ Qed. Definition finite_sum : Type' -> Type' -> Type' := fun A B => subtype (finite_sum_pred1 A B). -Definition mk_finite_sum : forall {A B : Type'}, nat -> finite_sum A B := +Definition mk_finite_sum : forall {A B : Type'}, N -> finite_sum A B := fun A B => mk (finite_sum_pred1 A B). -Definition dest_finite_sum : forall {A B : Type'}, (finite_sum A B) -> nat := +Definition dest_finite_sum : forall {A B : Type'}, (finite_sum A B) -> N := fun A B => dest (finite_sum_pred1 A B). Lemma axiom_31 : forall {A B : Type'} (a : finite_sum A B), (@mk_finite_sum A B (@dest_finite_sum A B a)) = a. Proof. intros A a. apply mk_dest. Qed. -Lemma axiom_32 : forall {A B : Type'} (r : nat), ((fun x : nat => @IN nat x (dotdot (NUMERAL (BIT1 0)) (Nat.add (@dimindex A (UNIV A)) (@dimindex B (UNIV B))))) r) = ((@dest_finite_sum A B (@mk_finite_sum A B r)) = r). +Lemma axiom_32 : forall {A B : Type'} (r : N), ((fun x : N => @IN N x (dotdot (NUMERAL (BIT1 0)) (N.add (@dimindex A (UNIV A)) (@dimindex B (UNIV B))))) r) = ((@dest_finite_sum A B (@mk_finite_sum A B r)) = r). Proof. intros A r. apply dest_mk. Qed. (*****************************************************************************) (* Cart.finite_diff *) (*****************************************************************************) -Definition finite_diff_pred (A B: Type') x := @IN nat x (dotdot (NUMERAL (BIT1 0)) (@COND nat (Peano.lt (@dimindex B (UNIV B)) (@dimindex A (UNIV A))) (Nat.sub (@dimindex A (UNIV A)) (@dimindex B (UNIV B))) (NUMERAL (BIT1 0)))). +Definition finite_diff_pred (A B: Type') x := @IN N x (dotdot (NUMERAL (BIT1 0)) (@COND N (N.lt (@dimindex B (UNIV B)) (@dimindex A (UNIV A))) (N.sub (@dimindex A (UNIV A)) (@dimindex B (UNIV B))) (NUMERAL (BIT1 0)))). Lemma finite_diff_pred1 (A B:Type') : finite_diff_pred A B 1. Proof. @@ -866,23 +992,23 @@ Qed. Definition finite_diff : Type' -> Type' -> Type' := fun A B => subtype (finite_diff_pred1 A B). -Definition mk_finite_diff : forall {A B : Type'}, nat -> finite_diff A B := +Definition mk_finite_diff : forall {A B : Type'}, N -> finite_diff A B := fun A B => mk (finite_diff_pred1 A B). -Definition dest_finite_diff : forall {A B : Type'}, (finite_diff A B) -> nat := +Definition dest_finite_diff : forall {A B : Type'}, (finite_diff A B) -> N := fun A B => dest (finite_diff_pred1 A B). Lemma axiom_33 : forall {A B : Type'} (a : finite_diff A B), (@mk_finite_diff A B (@dest_finite_diff A B a)) = a. Proof. intros A a. apply mk_dest. Qed. -Lemma axiom_34 : forall {A B : Type'} (r : nat), ((fun x : nat => @IN nat x (dotdot (NUMERAL (BIT1 0)) (@COND nat (Peano.lt (@dimindex B (UNIV B)) (@dimindex A (UNIV A))) (Nat.sub (@dimindex A (UNIV A)) (@dimindex B (UNIV B))) (NUMERAL (BIT1 0))))) r) = ((@dest_finite_diff A B (@mk_finite_diff A B r)) = r). +Lemma axiom_34 : forall {A B : Type'} (r : N), ((fun x : N => @IN N x (dotdot (NUMERAL (BIT1 0)) (@COND N (N.lt (@dimindex B (UNIV B)) (@dimindex A (UNIV A))) (N.sub (@dimindex A (UNIV A)) (@dimindex B (UNIV B))) (NUMERAL (BIT1 0))))) r) = ((@dest_finite_diff A B (@mk_finite_diff A B r)) = r). Proof. intros A r. apply dest_mk. Qed. (*****************************************************************************) (* Cart.finite_prod *) (*****************************************************************************) -Definition finite_prod_pred (A B: Type') x := @IN nat x (dotdot (NUMERAL (BIT1 0)) (Nat.mul (@dimindex A (@UNIV A)) (@dimindex B (@UNIV B)))). +Definition finite_prod_pred (A B: Type') x := @IN N x (dotdot (NUMERAL (BIT1 0)) (N.mul (@dimindex A (@UNIV A)) (@dimindex B (@UNIV B)))). Lemma finite_prod_pred1 (A B:Type') : finite_prod_pred A B 1. Proof. @@ -893,16 +1019,16 @@ Qed. Definition finite_prod : Type' -> Type' -> Type' := fun A B => subtype (finite_prod_pred1 A B). -Definition mk_finite_prod : forall {A B : Type'}, nat -> finite_prod A B := +Definition mk_finite_prod : forall {A B : Type'}, N -> finite_prod A B := fun A B => mk (finite_prod_pred1 A B). -Definition dest_finite_prod : forall {A B : Type'}, (finite_prod A B) -> nat := +Definition dest_finite_prod : forall {A B : Type'}, (finite_prod A B) -> N := fun A B => dest (finite_prod_pred1 A B). Lemma axiom_35 : forall {A B : Type'} (a : finite_prod A B), (@mk_finite_prod A B (@dest_finite_prod A B a)) = a. Proof. intros A a. apply mk_dest. Qed. -Lemma axiom_36 : forall {A B : Type'} (r : nat), ((fun x : nat => @IN nat x (dotdot (NUMERAL (BIT1 0)) (Nat.mul (@dimindex A (@UNIV A)) (@dimindex B (@UNIV B))))) r) = ((@dest_finite_prod A B (@mk_finite_prod A B r)) = r). +Lemma axiom_36 : forall {A B : Type'} (r : N), ((fun x : N => @IN N x (dotdot (NUMERAL (BIT1 0)) (N.mul (@dimindex A (@UNIV A)) (@dimindex B (@UNIV B))))) r) = ((@dest_finite_prod A B (@mk_finite_prod A B r)) = r). Proof. intros A r. apply dest_mk. Qed. (*****************************************************************************) @@ -953,7 +1079,7 @@ Definition _dest_tybit0 : forall {A : Type'}, (tybit0 A) -> recspace (finite_sum Lemma axiom_37 : forall {A : Type'} (a : tybit0 A), (@_mk_tybit0 A (@_dest_tybit0 A a)) = a. Proof. intro A. apply nr_mk_dest. Qed. -Lemma axiom_38 : forall {A : Type'} (r : recspace (finite_sum A A)), ((fun a : recspace (finite_sum A A) => forall tybit0' : (recspace (finite_sum A A)) -> Prop, (forall a' : recspace (finite_sum A A), (exists a'' : finite_sum A A, a' = ((fun a''' : finite_sum A A => @CONSTR (finite_sum A A) (NUMERAL 0) a''' (fun n : nat => @BOTTOM (finite_sum A A))) a'')) -> tybit0' a') -> tybit0' a) r) = ((@_dest_tybit0 A (@_mk_tybit0 A r)) = r). +Lemma axiom_38 : forall {A : Type'} (r : recspace (finite_sum A A)), ((fun a : recspace (finite_sum A A) => forall tybit0' : (recspace (finite_sum A A)) -> Prop, (forall a' : recspace (finite_sum A A), (exists a'' : finite_sum A A, a' = ((fun a''' : finite_sum A A => @CONSTR (finite_sum A A) (NUMERAL 0) a''' (fun n : N => @BOTTOM (finite_sum A A))) a'')) -> tybit0' a') -> tybit0' a) r) = ((@_dest_tybit0 A (@_mk_tybit0 A r)) = r). Proof. intro A. apply nr_dest_mk. Qed. (*****************************************************************************) @@ -969,5 +1095,211 @@ Definition _dest_tybit1 : forall {A : Type'}, (tybit1 A) -> recspace (finite_sum Lemma axiom_39 : forall {A : Type'} (a : tybit1 A), (@_mk_tybit1 A (@_dest_tybit1 A a)) = a. Proof. intro A. apply nr_mk_dest. Qed. -Lemma axiom_40 : forall {A : Type'} (r : recspace (finite_sum (finite_sum A A) unit)), ((fun a : recspace (finite_sum (finite_sum A A) unit) => forall tybit1' : (recspace (finite_sum (finite_sum A A) unit)) -> Prop, (forall a' : recspace (finite_sum (finite_sum A A) unit), (exists a'' : finite_sum (finite_sum A A) unit, a' = ((fun a''' : finite_sum (finite_sum A A) unit => @CONSTR (finite_sum (finite_sum A A) unit) (NUMERAL 0) a''' (fun n : nat => @BOTTOM (finite_sum (finite_sum A A) unit))) a'')) -> tybit1' a') -> tybit1' a) r) = ((@_dest_tybit1 A (@_mk_tybit1 A r)) = r). +Lemma axiom_40 : forall {A : Type'} (r : recspace (finite_sum (finite_sum A A) unit)), ((fun a : recspace (finite_sum (finite_sum A A) unit) => forall tybit1' : (recspace (finite_sum (finite_sum A A) unit)) -> Prop, (forall a' : recspace (finite_sum (finite_sum A A) unit), (exists a'' : finite_sum (finite_sum A A) unit, a' = ((fun a''' : finite_sum (finite_sum A A) unit => @CONSTR (finite_sum (finite_sum A A) unit) (NUMERAL 0) a''' (fun n : N => @BOTTOM (finite_sum (finite_sum A A) unit))) a'')) -> tybit1' a') -> tybit1' a) r) = ((@_dest_tybit1 A (@_mk_tybit1 A r)) = r). Proof. intro A. apply nr_dest_mk. Qed. + +(*****************************************************************************) +(* Library.Frag.frag (free Abelian group) *) +(*****************************************************************************) + +Definition is_frag {A:Type'} (f:A -> Z) := @FINITE A (@GSPEC A (fun GEN_PVAR_709 : A => exists x : A, @SETSPEC A GEN_PVAR_709 (~ ((f x) = (Z_of_N (NUMERAL 0%N)))) x)). + +Lemma is_frag0 (A:Type') : is_frag (fun _:A => 0%Z). +Proof. + unfold is_frag, GSPEC, SETSPEC. rewrite FINITE_eq_finite, finite_list_NoDup. + exists nil. split. apply NoDup_nil. + apply fun_ext; intro a. apply prop_ext. + intros [a' [h1 h2]]. apply False_rec. apply h1. reflexivity. + intro h. apply False_rec. apply h. +Qed. + +Definition frag A:Type' := subtype (is_frag0 A). + +Definition mk_frag : forall {A : Type'}, (A -> Z) -> frag A := fun A => mk (is_frag0 A). +Definition dest_frag : forall {A : Type'}, (frag A) -> A -> Z := fun A => dest (is_frag0 A). + +Lemma axiom_41 : forall {A : Type'} (a : frag A), (@mk_frag A (@dest_frag A a)) = a. +Proof. intros A a. apply mk_dest. Qed. + +Lemma axiom_42 : forall {A : Type'} (r : A -> Z), ((fun f : A -> Z => @FINITE A (@GSPEC A (fun GEN_PVAR_709 : A => exists x : A, @SETSPEC A GEN_PVAR_709 (~ ((f x) = (Z_of_N (NUMERAL 0%N)))) x))) r) = ((@dest_frag A (@mk_frag A r)) = r). +Proof. intros A r. apply dest_mk. Qed. + +(*****************************************************************************) +(* Library.grouptheory.group *) +(*****************************************************************************) + +Definition Grp (A:Type') := prod (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))). +Definition Gcar {A:Type'} (G: Grp A) := fst G. +Definition G0 {A:Type'} (G:Grp A) := fst (snd G). +Definition Gop {A:Type'} (G:Grp A) := snd (snd (snd G)). +Definition Ginv {A:Type'} (G:Grp A) := fst (snd (snd G)). + +Definition is_group {A:Type'} (r:Grp A) := IN (G0 r) (Gcar r) +/\ ((forall x, IN x (Gcar r) -> IN (Ginv r x) (Gcar r)) +/\ ((forall x y, (IN x (Gcar r) /\ (IN y (Gcar r))) -> IN (Gop r x y) (Gcar r)) +/\ ((forall x y z, (IN x (Gcar r) /\ (IN y (Gcar r) /\ IN z (Gcar r))) -> +Gop r x (Gop r y z) = Gop r (Gop r x y) z) +/\ ((forall x, IN x (Gcar r) -> (Gop r (G0 r) x = x) /\ (Gop r x (G0 r) = x)) +/\ (forall x, IN x (Gcar r) -> (Gop r (Ginv r x) x = G0 r) /\ (Gop r x (Ginv r x) = G0 r)))))). + +Definition g0 (A:Type') : Grp A := pair (fun x => x = el A) (pair (el A) (pair (fun _ => el A) (fun _ _ => el A))). + +Lemma is_group0 (A:Type') : is_group (g0 A). +Proof. firstorder. Qed. + +Definition Group (A:Type') := subtype (is_group0 A). + +Definition group : forall {A : Type'}, Grp A -> Group A := fun A => mk (is_group0 A). +Definition group_operations : forall {A : Type'}, (Group A) -> Grp A := fun A => dest (is_group0 A). + +Lemma axiom_43 : forall {A : Type'} (a : Group A), (@group A (@group_operations A a)) = a. +Proof. intros A a. apply mk_dest. Qed. + +Lemma axiom_44 : forall {A : Type'} (r : Grp A), is_group r = (group_operations (group r) = r). +Proof. intros A r. apply dest_mk. Qed. + +(*****************************************************************************) +(* Library.Matroids.matroid *) +(*****************************************************************************) + +Definition SUBSET {A : Type'} : (A -> Prop) -> (A -> Prop) -> Prop := fun s : A -> Prop => fun t : A -> Prop => forall x : A, (@IN A x s) -> @IN A x t. + +Definition is_matroid {A:Type'} m := (forall s : A -> Prop, (@SUBSET A s (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) -> @SUBSET A (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s) (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) /\ ((forall s : A -> Prop, (@SUBSET A s (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) -> @SUBSET A s (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s)) /\ ((forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (@SUBSET A t (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m))) -> @SUBSET A (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s) (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m t)) /\ ((forall s : A -> Prop, (@SUBSET A s (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) -> (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s)) = (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s)) /\ ((forall s : A -> Prop, forall x : A, ((@SUBSET A s (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) /\ (@IN A x (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s))) -> exists s' : A -> Prop, (@FINITE A s') /\ ((@SUBSET A s' s) /\ (@IN A x (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s')))) /\ (forall s : A -> Prop, forall x : A, forall y : A, ((@SUBSET A s (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) /\ ((@IN A x (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) /\ ((@IN A y (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m (@INSERT A x s))) /\ (~ (@IN A y (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s)))))) -> @IN A x (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m (@INSERT A y s))))))). + +Lemma is_matroid_def {A:Type'} m : is_matroid m = ((forall s : A -> Prop, (@SUBSET A s (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) -> @SUBSET A (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s) (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) /\ ((forall s : A -> Prop, (@SUBSET A s (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) -> @SUBSET A s (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s)) /\ ((forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (@SUBSET A t (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m))) -> @SUBSET A (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s) (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m t)) /\ ((forall s : A -> Prop, (@SUBSET A s (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) -> (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s)) = (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s)) /\ ((forall s : A -> Prop, forall x : A, ((@SUBSET A s (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) /\ (@IN A x (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s))) -> exists s' : A -> Prop, (@FINITE A s') /\ ((@SUBSET A s' s) /\ (@IN A x (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s')))) /\ (forall s : A -> Prop, forall x : A, forall y : A, ((@SUBSET A s (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) /\ ((@IN A x (@fst (A -> Prop) ((A -> Prop) -> A -> Prop) m)) /\ ((@IN A y (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m (@INSERT A x s))) /\ (~ (@IN A y (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m s)))))) -> @IN A x (@snd (A -> Prop) ((A -> Prop) -> A -> Prop) m (@INSERT A y s)))))))). +Proof. reflexivity. Qed. + +Lemma is_matroid0 (A:Type') : is_matroid (pair (fun _:A => False) (fun x => x)). +Proof. firstorder. Qed. + +Definition Matroid (A:Type') := subtype (is_matroid0 A). + +Definition matroid : forall {A : Type'}, (prod (A -> Prop) ((A -> Prop) -> A -> Prop)) -> Matroid A := fun A => mk (is_matroid0 A). + +Definition dest_matroid : forall {A : Type'}, (Matroid A) -> prod (A -> Prop) ((A -> Prop) -> A -> Prop) := fun A => dest (is_matroid0 A). + +Lemma axiom_45 : forall {A : Type'} (a : Matroid A), (@matroid A (@dest_matroid A a)) = a. +Proof. intros A a. apply mk_dest. Qed. + +Lemma axiom_46 : forall {A : Type'} (r : prod (A -> Prop) ((A -> Prop) -> A -> Prop)), (is_matroid r) = ((@dest_matroid A (@matroid A r)) = r). +Proof. intros A r. apply dest_mk. Qed. + +(*****************************************************************************) +(* Library.Analysis.topology *) +(*****************************************************************************) + +Definition INTER {A : Type'} : (A -> Prop) -> (A -> Prop) -> A -> Prop := fun s : A -> Prop => fun t : A -> Prop => @GSPEC A (fun GEN_PVAR_2 : A => exists x : A, @SETSPEC A GEN_PVAR_2 ((@IN A x s) /\ (@IN A x t)) x). + +Definition UNIONS {A : Type'} : ((A -> Prop) -> Prop) -> A -> Prop := fun U : (A -> Prop) -> Prop => @GSPEC A (fun GEN_PVAR_1 : A => exists x : A, @SETSPEC A GEN_PVAR_1 (exists u : A -> Prop, (@IN (A -> Prop) u U) /\ (@IN A x u)) x). + +Definition istopology {A : Type'} : ((A -> Prop) -> Prop) -> Prop := + fun U => (IN EMPTY U) + /\ ((forall s t, ((IN s U) /\ (IN t U)) -> IN (INTER s t) U) + /\ (forall k, SUBSET k U -> IN (UNIONS k) U)). + +Lemma istopology_def {A : Type'} : (@istopology A) = (fun U : (A -> Prop) -> Prop => (@IN (A -> Prop) (@EMPTY A) U) /\ ((forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s U) /\ (@IN (A -> Prop) t U)) -> @IN (A -> Prop) (@INTER A s t) U) /\ (forall k : (A -> Prop) -> Prop, (@SUBSET (A -> Prop) k U) -> @IN (A -> Prop) (@UNIONS A k) U))). +Proof. exact (eq_refl (@istopology A)). Qed. + +Lemma istopology0 (A:Type') : @istopology A (fun _ => True). +Proof. firstorder. Qed. + +Definition Topology (A:Type') := subtype (istopology0 A). + +Definition topology : forall {A : Type'}, ((A -> Prop) -> Prop) -> Topology A := fun A => mk (istopology0 A). +Definition open_in : forall {A : Type'}, (Topology A) -> (A -> Prop) -> Prop := fun A => dest (istopology0 A). + +Lemma axiom_47 : forall {A : Type'} (a : Topology A), (@topology A (@open_in A a)) = a. +Proof. intros A a. apply mk_dest. Qed. + +Lemma axiom_48 : forall {A : Type'} (r : (A -> Prop) -> Prop), ((fun t : (A -> Prop) -> Prop => @istopology A t) r) = ((@open_in A (@topology A r)) = r). +Proof. intros A r. apply dest_mk. Qed. + +(*****************************************************************************) +(* Multivariate.Metric.net *) +(*****************************************************************************) + +Definition is_net {A:Type'} (g: prod ((A -> Prop) -> Prop) (A -> Prop)) := + forall s t, ((IN s (fst g)) /\ (IN t (fst g))) -> IN (INTER s t) (fst g). + +Lemma is_net_def {A:Type'} g : is_net g = forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s (@fst ((A -> Prop) -> Prop) (A -> Prop) g)) /\ (@IN (A -> Prop) t (@fst ((A -> Prop) -> Prop) (A -> Prop) g))) -> @IN (A -> Prop) (@INTER A s t) (@fst ((A -> Prop) -> Prop) (A -> Prop) g). +Proof. reflexivity. Qed. + +Lemma is_net0 (A:Type') : @is_net A (pair (fun _ => True) (el _)). +Proof. firstorder. Qed. + +Definition net (A:Type') := subtype (is_net0 A). + +Definition mk_net : forall {A : Type'}, (prod ((A -> Prop) -> Prop) (A -> Prop)) -> net A := fun A => mk (is_net0 A). +Definition dest_net : forall {A : Type'}, (net A) -> prod ((A -> Prop) -> Prop) (A -> Prop) := fun A => dest (is_net0 A). + +Lemma axiom_49 : forall {A : Type'} (a : net A), (@mk_net A (@dest_net A a)) = a. +Proof. intros A a. apply mk_dest. Qed. + +Lemma axiom_50 : forall {A : Type'} (r : prod ((A -> Prop) -> Prop) (A -> Prop)), is_net r = ((@dest_net A (@mk_net A r)) = r). +Proof. intros A a. apply dest_mk. Qed. + +(*****************************************************************************) +(* Multivariate.Metric.metric *) +(*****************************************************************************) + +Definition MS (A:Type') := prod (A -> Prop) ((prod A A) -> R). + +Definition Mcar {A:Type'} : MS A -> A -> Prop := fst. +Definition Mdist {A:Type'} : MS A -> prod A A -> R := snd. + +Definition is_metric_space {A : Type'} : MS A -> Prop := + fun M => (forall x y, ((IN x (Mcar M)) /\ (IN y (Mcar M))) -> + Rle (R_of_N (NUMERAL 0%N)) (Mdist M (@pair A A x y))) + /\ ((forall x y, ((IN x (Mcar M)) /\ (IN y (Mcar M))) -> + ((Mdist M (pair x y)) = (R_of_N (NUMERAL 0%N))) = (x = y)) + /\ ((forall x y, ((IN x (Mcar M)) /\ (IN y (Mcar M))) -> + (Mdist M (pair x y)) = (Mdist M (pair y x))) + /\ (forall x y z, ((IN x (Mcar M)) /\ ((IN y (Mcar M)) /\ (IN z (Mcar M)))) -> + Rle (Mdist M (pair x z)) (Rplus (Mdist M (pair x y)) (Mdist M (pair y z)))))). + +Lemma is_metric_space_def {A : Type'} : (@is_metric_space A) = (fun M : prod (A -> Prop) ((prod A A) -> R) => (forall x : A, forall y : A, ((@IN A x (@fst (A -> Prop) ((prod A A) -> R) M)) /\ (@IN A y (@fst (A -> Prop) ((prod A A) -> R) M))) -> Rle (R_of_N (NUMERAL 0%N)) (@snd (A -> Prop) ((prod A A) -> R) M (@pair A A x y))) /\ ((forall x : A, forall y : A, ((@IN A x (@fst (A -> Prop) ((prod A A) -> R) M)) /\ (@IN A y (@fst (A -> Prop) ((prod A A) -> R) M))) -> ((@snd (A -> Prop) ((prod A A) -> R) M (@pair A A x y)) = (R_of_N (NUMERAL 0%N))) = (x = y)) /\ ((forall x : A, forall y : A, ((@IN A x (@fst (A -> Prop) ((prod A A) -> R) M)) /\ (@IN A y (@fst (A -> Prop) ((prod A A) -> R) M))) -> (@snd (A -> Prop) ((prod A A) -> R) M (@pair A A x y)) = (@snd (A -> Prop) ((prod A A) -> R) M (@pair A A y x))) /\ (forall x : A, forall y : A, forall z : A, ((@IN A x (@fst (A -> Prop) ((prod A A) -> R) M)) /\ ((@IN A y (@fst (A -> Prop) ((prod A A) -> R) M)) /\ (@IN A z (@fst (A -> Prop) ((prod A A) -> R) M)))) -> Rle (@snd (A -> Prop) ((prod A A) -> R) M (@pair A A x z)) (Rplus (@snd (A -> Prop) ((prod A A) -> R) M (@pair A A x y)) (@snd (A -> Prop) ((prod A A) -> R) M (@pair A A y z))))))). +Proof. exact (eq_refl (@is_metric_space A)). Qed. + +Lemma is_metric_space0 (A:Type') : @is_metric_space A (pair (fun _ => False) (fun _ => 0%R)). +Proof. + split; unfold Mcar, Mdist, fst, snd, IN, NUMERAL; rewrite R_of_N0. reflexivity. + split. tauto. split. reflexivity. tauto. +Qed. + +Definition Metric (A:Type') := subtype (is_metric_space0 A). + +Definition metric : forall {A : Type'}, (prod (A -> Prop) ((prod A A) -> R)) -> Metric A := fun A => mk (is_metric_space0 A). +Definition dest_metric : forall {A : Type'}, (Metric A) -> prod (A -> Prop) ((prod A A) -> R) := fun A => dest (is_metric_space0 A). + +Lemma axiom_51 : forall {A : Type'} (a : Metric A), (@metric A (@dest_metric A a)) = a. +Proof. intros A a. apply mk_dest. Qed. + +Lemma axiom_52 : forall {A : Type'} (r : prod (A -> Prop) ((prod A A) -> R)), ((fun m : prod (A -> Prop) ((prod A A) -> R) => @is_metric_space A m) r) = ((@dest_metric A (@metric A r)) = r). +Proof. intros A r. apply dest_mk. Qed. + +(*****************************************************************************) +(* Multivariate.Clifford.multivector *) +(*****************************************************************************) + +Definition is_multivector (A:Type') (s:N -> Prop) := SUBSET s (dotdot 1 (dimindex (@UNIV A))). + +Lemma is_multivector0 (A:Type') : is_multivector A (fun n => n = 1). +Proof. + unfold is_multivector, SUBSET, dotdot, dimindex, IN, GSPEC, SETSPEC. + intros x e. subst x. exists 1%N. split. 2: reflexivity. split. reflexivity. + destruct (prop_degen (FINITE (@UNIV A))); rewrite H. + rewrite COND_True. apply CARD_ge_1. rewrite H. exact Logic.I. + rewrite COND_False. unfold NUMERAL, BIT1. lia. +Qed. + +Definition Multivector (A:Type') := subtype (is_multivector0 A). + +Definition mk_multivector : forall {N' : Type'}, (N -> Prop) -> Multivector N' := fun A => mk (is_multivector0 A). + +Definition dest_multivector : forall {N' : Type'}, (Multivector N') -> N -> Prop := fun A => dest (is_multivector0 A). + +Lemma axiom_53 : forall {N' : Type'} (a : Multivector N'), (@mk_multivector N' (@dest_multivector N' a)) = a. +Proof. intros A a. apply mk_dest. Qed. + +Lemma axiom_54 : forall {N' : Type'} (r : N -> Prop), ((fun s : N -> Prop => @SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) r) = ((@dest_multivector N' (@mk_multivector N' r)) = r). +Proof. intros A r. apply dest_mk. Qed. diff --git a/coq-hol-light.opam b/coq-hol-light.opam index 3e2e207..0d867b2 100644 --- a/coq-hol-light.opam +++ b/coq-hol-light.opam @@ -13,7 +13,7 @@ authors: ["Frédéric Blanqui"] license: "CeCILL-2.1" depends: [ "coq" {>= "8.19"} - "coq-hol-light-real" {>= "1.0"} + "coq-hol-light-real-with-N" {>= "1.0"} "coq-fourcolor-reals" {>= "1.4.0"} ] build: [make "-j%{jobs}%"] @@ -23,6 +23,6 @@ tags: [ "category:Math/Arith/Misc" "category:Math/Arith/Real Numbers" "category:Math/Real Numbers" - "date:2024-12-17" + "date:2025-01-20" "logpath:HOLLight" ] diff --git a/reproduce b/reproduce index b727c8f..8b5fb1a 100755 --- a/reproduce +++ b/reproduce @@ -2,18 +2,19 @@ set -e # to exit as soon as there is an error -hollight_commit=4eef6f6 -hol2dk_commit=b0293b4 -lambdapi_commit=c24b28e2 +hollight_version=3.0.0 # for dependencies +hollight_commit=28e4aed +hol2dk_commit=44eb6fd +lambdapi_commit=ccfa0e77 opam_version=2.2.1 -dune_version=3.17.0 +dune_version=3.17.1 ocaml_version=5.2.1 camlp5_version=8.03.01 coq_version=8.20.0 -base=hol -dump_simp_option=-before-hol +hollight_file=Multivariate/make_complex.ml +base=`basename $hollight_file .ml` root_path=HOLLight jobs='-j32' @@ -35,14 +36,14 @@ checkout_commit() { create_opam_switch() { line - echo create opam switch reproduce ... - opam switch create reproduce $ocaml_version || (echo 'you can remove the opam switch reproduce with:'; echo 'opam switch remove reproduce'; exit 1) + echo create opam switch ... + opam switch create . $ocaml_version } install_hol_light_deps() { line echo install HOL-Light dependencies ... - opam install -y camlp5.$camlp5_version ocamlfind zarith + opam install -y --deps-only hol_light.$hollight_version } install_lambdapi() { @@ -84,16 +85,23 @@ dump_proofs() { line echo dump hol-light proofs ... cd hol-light - hol2dk dump-simp$dump_simp_option $base.ml + hol2dk dump-simp $hollight_file cd .. } +config_output_dir() { + line + echo configure output directory ... + mkdir -p output + cd output + make $jobs clean-all || true + hol2dk config $hollight_file $root_path HOLLight_Real_With_N.mappings ../../With_N.v BinNat Rbase Rdefinitions Rbasic_fun ../../With_N.lp ../../With_N.mk +} + translate_proofs() { line echo translate HOL-Light proofs to lambdapi and coq ... - mkdir -p output cd output - hol2dk link $base.ml HOLLight_Real.HOLLight_Real --root-path ../../$root_path.v Rdefinitions Rbasic_fun Raxioms --erasing ../../erasing.lp make split make $jobs lp make $jobs v @@ -105,20 +113,20 @@ check_proofs() { echo check proofs ... cd output make $jobs vo - make opam cd .. } create_and_check_opam_library() { line echo create opam library ... - mkdir -p opam cd output - cp theory_hol.v ../opam - sed -e "s/${base}_//g" -e "/^Require Import ${root_path}.types.$/d" ${base}_terms.v > ../opam/terms.v - sed -e "s/${base}_//g" -e "/^Require Import ${root_path}.types.$/d" -e '/^Require Import ${root_path}.axioms.$/d' ${base}_opam.v > ../opam/theorems.v - cd ../opam - cp ../../$root_path.v ../../Makefile . + make sig opam + cd .. + mkdir -p opam + cd opam + sed -e "s/${base}_//g" -e "/^Require Import ${root_path}.types.$/d" ../output/${base}_terms.v > terms.v + sed -e "s/${base}_//g" -e "/^Require Import ${root_path}.types.$/d" -e '/^Require Import ${root_path}.axioms.$/d' -e "/^Axiom thm_HAS_INTEGRAL_TWIZZLE_INTERVAL /d" ../output/${base}_opam.v > theorems.v + cp ../../With_N.v ../output/theory_hol.v ../../Makefile . make cd .. } @@ -126,22 +134,35 @@ create_and_check_opam_library() { export HOLLIGHT_DIR=`pwd`/hol-light export HOL2DK_DIR=`pwd`/hol2dk -setup_env() { - create_opam_switch - install_hol_light_deps - install_lambdapi - install_coq - install_hol2dk - install_hol_light - patch_hol_light +stage() { + if test -f STAGE + then + i=`head -n1 STAGE` + i=`expr $i + 1` + else + i=1 + fi + if test $i -eq $1 + then + $2 + echo $1 > STAGE + fi } -setup_env -dump_proofs -translate_proofs -check_proofs -create_and_check_opam_library - -line -echo remove opam switch reproduce ... -opam switch remove reproduce +if test -n "$1" +then + expr $1 - 1 > STAGE +fi + +stage 1 create_opam_switch +stage 2 install_hol_light_deps +stage 3 install_lambdapi +stage 4 install_coq +stage 5 install_hol2dk +stage 6 install_hol_light +stage 7 patch_hol_light +stage 8 dump_proofs +stage 9 config_output_dir +stage 10 translate_proofs +stage 11 check_proofs +stage 12 create_and_check_opam_library diff --git a/terms.v b/terms.v index 9964f46..b011965 100644 --- a/terms.v +++ b/terms.v @@ -1,4 +1,4 @@ -Require Import HOLLight_Real.HOLLight_Real HOLLight Rdefinitions Rbasic_fun Raxioms. +Require Import HOLLight_Real_With_N.mappings HOLLight.With_N BinNat Rbase Rdefinitions Rbasic_fun. Require Import HOLLight.theory_hol. Definition _FALSITY_ : Prop := False. Lemma _FALSITY__def : _FALSITY_ = False. @@ -62,129 +62,144 @@ Lemma IND_0_def : IND_0 = (@ε ind (fun z : ind => (forall x1 : ind, forall x2 : Proof. exact (eq_refl IND_0). Qed. Lemma NUM_REP_def : NUM_REP = (fun a : ind => forall NUM_REP' : ind -> Prop, (forall a' : ind, ((a' = IND_0) \/ (exists i : ind, (a' = (IND_SUC i)) /\ (NUM_REP' i))) -> NUM_REP' a') -> NUM_REP' a). Proof. exact (eq_refl NUM_REP). Qed. -Definition NUMERAL : nat -> nat := fun _2128 : nat => _2128. -Lemma NUMERAL_def : NUMERAL = (fun _2128 : nat => _2128). +Definition NUMERAL : N -> N := fun _2128 : N => _2128. +Lemma NUMERAL_def : NUMERAL = (fun _2128 : N => _2128). Proof. exact (eq_refl NUMERAL). Qed. -Lemma BIT1_def : BIT1 = (fun _2143 : nat => S (BIT0 _2143)). +Lemma BIT1_def : BIT1 = (fun _2143 : N => N.succ (BIT0 _2143)). Proof. exact (eq_refl BIT1). Qed. -Definition minimal : (nat -> Prop) -> nat := fun _6536 : nat -> Prop => @ε nat (fun n : nat => (_6536 n) /\ (forall m : nat, (Peano.lt m n) -> ~ (_6536 m))). -Lemma minimal_def : minimal = (fun _6536 : nat -> Prop => @ε nat (fun n : nat => (_6536 n) /\ (forall m : nat, (Peano.lt m n) -> ~ (_6536 m)))). +Definition EVEN : N -> Prop := @ε ((prod N (prod N (prod N N))) -> N -> Prop) (fun EVEN' : (prod N (prod N (prod N N))) -> N -> Prop => forall _2603 : prod N (prod N (prod N N)), ((EVEN' _2603 (NUMERAL 0%N)) = True) /\ (forall n : N, (EVEN' _2603 (N.succ n)) = (~ (EVEN' _2603 n)))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N))))))))))). +Lemma EVEN_def : EVEN = (@ε ((prod N (prod N (prod N N))) -> N -> Prop) (fun EVEN' : (prod N (prod N (prod N N))) -> N -> Prop => forall _2603 : prod N (prod N (prod N N)), ((EVEN' _2603 (NUMERAL 0%N)) = True) /\ (forall n : N, (EVEN' _2603 (N.succ n)) = (~ (EVEN' _2603 n)))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))))))). +Proof. exact (eq_refl EVEN). Qed. +Definition ODD : N -> Prop := @ε ((prod N (prod N N)) -> N -> Prop) (fun ODD' : (prod N (prod N N)) -> N -> Prop => forall _2607 : prod N (prod N N), ((ODD' _2607 (NUMERAL 0%N)) = False) /\ (forall n : N, (ODD' _2607 (N.succ n)) = (~ (ODD' _2607 n)))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))))). +Lemma ODD_def : ODD = (@ε ((prod N (prod N N)) -> N -> Prop) (fun ODD' : (prod N (prod N N)) -> N -> Prop => forall _2607 : prod N (prod N N), ((ODD' _2607 (NUMERAL 0%N)) = False) /\ (forall n : N, (ODD' _2607 (N.succ n)) = (~ (ODD' _2607 n)))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N))))))))))). +Proof. exact (eq_refl ODD). Qed. +Definition FACT : N -> N := @ε ((prod N (prod N (prod N N))) -> N -> N) (fun FACT' : (prod N (prod N (prod N N))) -> N -> N => forall _2944 : prod N (prod N (prod N N)), ((FACT' _2944 (NUMERAL 0%N)) = (NUMERAL (BIT1 0%N))) /\ (forall n : N, (FACT' _2944 (N.succ n)) = (N.mul (N.succ n) (FACT' _2944 n)))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N))))))))))). +Lemma FACT_def : FACT = (@ε ((prod N (prod N (prod N N))) -> N -> N) (fun FACT' : (prod N (prod N (prod N N))) -> N -> N => forall _2944 : prod N (prod N (prod N N)), ((FACT' _2944 (NUMERAL 0%N)) = (NUMERAL (BIT1 0%N))) /\ (forall n : N, (FACT' _2944 (N.succ n)) = (N.mul (N.succ n) (FACT' _2944 n)))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))))))). +Proof. exact (eq_refl FACT). Qed. +Definition minimal : (N -> Prop) -> N := fun _6536 : N -> Prop => @ε N (fun n : N => (_6536 n) /\ (forall m : N, (N.lt m n) -> ~ (_6536 m))). +Lemma minimal_def : minimal = (fun _6536 : N -> Prop => @ε N (fun n : N => (_6536 n) /\ (forall m : N, (N.lt m n) -> ~ (_6536 m)))). Proof. exact (eq_refl minimal). Qed. Definition WF {A : Type'} : (A -> A -> Prop) -> Prop := fun _6923 : A -> A -> Prop => forall P : A -> Prop, (exists x : A, P x) -> exists x : A, (P x) /\ (forall y : A, (_6923 y x) -> ~ (P y)). Lemma WF_def {A : Type'} : (@WF A) = (fun _6923 : A -> A -> Prop => forall P : A -> Prop, (exists x : A, P x) -> exists x : A, (P x) /\ (forall y : A, (_6923 y x) -> ~ (P y))). Proof. exact (eq_refl (@WF A)). Qed. -Definition MEASURE {A : Type'} : (A -> nat) -> A -> A -> Prop := fun _8094 : A -> nat => fun x : A => fun y : A => Peano.lt (_8094 x) (_8094 y). -Lemma MEASURE_def {A : Type'} : (@MEASURE A) = (fun _8094 : A -> nat => fun x : A => fun y : A => Peano.lt (_8094 x) (_8094 y)). +Definition MEASURE {A : Type'} : (A -> N) -> A -> A -> Prop := fun _8094 : A -> N => fun x : A => fun y : A => N.lt (_8094 x) (_8094 y). +Lemma MEASURE_def {A : Type'} : (@MEASURE A) = (fun _8094 : A -> N => fun x : A => fun y : A => N.lt (_8094 x) (_8094 y)). Proof. exact (eq_refl (@MEASURE A)). Qed. -Definition NUMPAIR : nat -> nat -> nat := fun _17487 : nat => fun _17488 : nat => Nat.mul (Nat.pow (NUMERAL (BIT0 (BIT1 0))) _17487) (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) _17488) (NUMERAL (BIT1 0))). -Lemma NUMPAIR_def : NUMPAIR = (fun _17487 : nat => fun _17488 : nat => Nat.mul (Nat.pow (NUMERAL (BIT0 (BIT1 0))) _17487) (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) _17488) (NUMERAL (BIT1 0)))). +Definition NUMPAIR : N -> N -> N := fun _17487 : N => fun _17488 : N => N.mul (N.pow (NUMERAL (BIT0 (BIT1 0%N))) _17487) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) _17488) (NUMERAL (BIT1 0%N))). +Lemma NUMPAIR_def : NUMPAIR = (fun _17487 : N => fun _17488 : N => N.mul (N.pow (NUMERAL (BIT0 (BIT1 0%N))) _17487) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) _17488) (NUMERAL (BIT1 0%N)))). Proof. exact (eq_refl NUMPAIR). Qed. -Definition NUMFST : nat -> nat := @ε ((prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> nat -> nat) (fun X : (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> nat -> nat => forall _17503 : prod nat (prod nat (prod nat (prod nat (prod nat nat)))), exists Y : nat -> nat, forall x : nat, forall y : nat, ((X _17503 (NUMPAIR x y)) = x) /\ ((Y (NUMPAIR x y)) = y)) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0))))))))))))). -Lemma NUMFST_def : NUMFST = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> nat -> nat) (fun X : (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> nat -> nat => forall _17503 : prod nat (prod nat (prod nat (prod nat (prod nat nat)))), exists Y : nat -> nat, forall x : nat, forall y : nat, ((X _17503 (NUMPAIR x y)) = x) /\ ((Y (NUMPAIR x y)) = y)) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))))))))). +Definition NUMFST : N -> N := @ε ((prod N (prod N (prod N (prod N (prod N N))))) -> N -> N) (fun X : (prod N (prod N (prod N (prod N (prod N N))))) -> N -> N => forall _17503 : prod N (prod N (prod N (prod N (prod N N)))), exists Y : N -> N, forall x : N, forall y : N, ((X _17503 (NUMPAIR x y)) = x) /\ ((Y (NUMPAIR x y)) = y)) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N))))))))))))). +Lemma NUMFST_def : NUMFST = (@ε ((prod N (prod N (prod N (prod N (prod N N))))) -> N -> N) (fun X : (prod N (prod N (prod N (prod N (prod N N))))) -> N -> N => forall _17503 : prod N (prod N (prod N (prod N (prod N N)))), exists Y : N -> N, forall x : N, forall y : N, ((X _17503 (NUMPAIR x y)) = x) /\ ((Y (NUMPAIR x y)) = y)) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))))))))). Proof. exact (eq_refl NUMFST). Qed. -Definition NUMSND : nat -> nat := @ε ((prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> nat -> nat) (fun Y : (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> nat -> nat => forall _17504 : prod nat (prod nat (prod nat (prod nat (prod nat nat)))), forall x : nat, forall y : nat, ((NUMFST (NUMPAIR x y)) = x) /\ ((Y _17504 (NUMPAIR x y)) = y)) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0))))))))))))). -Lemma NUMSND_def : NUMSND = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> nat -> nat) (fun Y : (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> nat -> nat => forall _17504 : prod nat (prod nat (prod nat (prod nat (prod nat nat)))), forall x : nat, forall y : nat, ((NUMFST (NUMPAIR x y)) = x) /\ ((Y _17504 (NUMPAIR x y)) = y)) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))))))))). +Definition NUMSND : N -> N := @ε ((prod N (prod N (prod N (prod N (prod N N))))) -> N -> N) (fun Y : (prod N (prod N (prod N (prod N (prod N N))))) -> N -> N => forall _17504 : prod N (prod N (prod N (prod N (prod N N)))), forall x : N, forall y : N, ((NUMFST (NUMPAIR x y)) = x) /\ ((Y _17504 (NUMPAIR x y)) = y)) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N))))))))))))). +Lemma NUMSND_def : NUMSND = (@ε ((prod N (prod N (prod N (prod N (prod N N))))) -> N -> N) (fun Y : (prod N (prod N (prod N (prod N (prod N N))))) -> N -> N => forall _17504 : prod N (prod N (prod N (prod N (prod N N)))), forall x : N, forall y : N, ((NUMFST (NUMPAIR x y)) = x) /\ ((Y _17504 (NUMPAIR x y)) = y)) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))))))))). Proof. exact (eq_refl NUMSND). Qed. -Definition NUMSUM : Prop -> nat -> nat := fun _17505 : Prop => fun _17506 : nat => @COND nat _17505 (S (Nat.mul (NUMERAL (BIT0 (BIT1 0))) _17506)) (Nat.mul (NUMERAL (BIT0 (BIT1 0))) _17506). -Lemma NUMSUM_def : NUMSUM = (fun _17505 : Prop => fun _17506 : nat => @COND nat _17505 (S (Nat.mul (NUMERAL (BIT0 (BIT1 0))) _17506)) (Nat.mul (NUMERAL (BIT0 (BIT1 0))) _17506)). +Definition NUMSUM : Prop -> N -> N := fun _17505 : Prop => fun _17506 : N => @COND N _17505 (N.succ (N.mul (NUMERAL (BIT0 (BIT1 0%N))) _17506)) (N.mul (NUMERAL (BIT0 (BIT1 0%N))) _17506). +Lemma NUMSUM_def : NUMSUM = (fun _17505 : Prop => fun _17506 : N => @COND N _17505 (N.succ (N.mul (NUMERAL (BIT0 (BIT1 0%N))) _17506)) (N.mul (NUMERAL (BIT0 (BIT1 0%N))) _17506)). Proof. exact (eq_refl NUMSUM). Qed. -Definition INJN {A : Type'} : nat -> nat -> A -> Prop := fun _17537 : nat => fun n : nat => fun a : A => n = _17537. -Lemma INJN_def {A : Type'} : (@INJN A) = (fun _17537 : nat => fun n : nat => fun a : A => n = _17537). +Definition INJN {A : Type'} : N -> N -> A -> Prop := fun _17537 : N => fun n : N => fun a : A => n = _17537. +Lemma INJN_def {A : Type'} : (@INJN A) = (fun _17537 : N => fun n : N => fun a : A => n = _17537). Proof. exact (eq_refl (@INJN A)). Qed. -Definition INJA {A : Type'} : A -> nat -> A -> Prop := fun _17542 : A => fun n : nat => fun b : A => b = _17542. -Lemma INJA_def {A : Type'} : (@INJA A) = (fun _17542 : A => fun n : nat => fun b : A => b = _17542). +Definition INJA {A : Type'} : A -> N -> A -> Prop := fun _17542 : A => fun n : N => fun b : A => b = _17542. +Lemma INJA_def {A : Type'} : (@INJA A) = (fun _17542 : A => fun n : N => fun b : A => b = _17542). Proof. exact (eq_refl (@INJA A)). Qed. -Definition INJF {A : Type'} : (nat -> nat -> A -> Prop) -> nat -> A -> Prop := fun _17549 : nat -> nat -> A -> Prop => fun n : nat => _17549 (NUMFST n) (NUMSND n). -Lemma INJF_def {A : Type'} : (@INJF A) = (fun _17549 : nat -> nat -> A -> Prop => fun n : nat => _17549 (NUMFST n) (NUMSND n)). +Definition INJF {A : Type'} : (N -> N -> A -> Prop) -> N -> A -> Prop := fun _17549 : N -> N -> A -> Prop => fun n : N => _17549 (NUMFST n) (NUMSND n). +Lemma INJF_def {A : Type'} : (@INJF A) = (fun _17549 : N -> N -> A -> Prop => fun n : N => _17549 (NUMFST n) (NUMSND n)). Proof. exact (eq_refl (@INJF A)). Qed. -Definition INJP {A : Type'} : (nat -> A -> Prop) -> (nat -> A -> Prop) -> nat -> A -> Prop := fun _17554 : nat -> A -> Prop => fun _17555 : nat -> A -> Prop => fun n : nat => fun a : A => @COND Prop (NUMLEFT n) (_17554 (NUMRIGHT n) a) (_17555 (NUMRIGHT n) a). -Lemma INJP_def {A : Type'} : (@INJP A) = (fun _17554 : nat -> A -> Prop => fun _17555 : nat -> A -> Prop => fun n : nat => fun a : A => @COND Prop (NUMLEFT n) (_17554 (NUMRIGHT n) a) (_17555 (NUMRIGHT n) a)). +Definition INJP {A : Type'} : (N -> A -> Prop) -> (N -> A -> Prop) -> N -> A -> Prop := fun _17554 : N -> A -> Prop => fun _17555 : N -> A -> Prop => fun n : N => fun a : A => @COND Prop (NUMLEFT n) (_17554 (NUMRIGHT n) a) (_17555 (NUMRIGHT n) a). +Lemma INJP_def {A : Type'} : (@INJP A) = (fun _17554 : N -> A -> Prop => fun _17555 : N -> A -> Prop => fun n : N => fun a : A => @COND Prop (NUMLEFT n) (_17554 (NUMRIGHT n) a) (_17555 (NUMRIGHT n) a)). Proof. exact (eq_refl (@INJP A)). Qed. -Definition ZCONSTR {A : Type'} : nat -> A -> (nat -> nat -> A -> Prop) -> nat -> A -> Prop := fun _17566 : nat => fun _17567 : A => fun _17568 : nat -> nat -> A -> Prop => @INJP A (@INJN A (S _17566)) (@INJP A (@INJA A _17567) (@INJF A _17568)). -Lemma ZCONSTR_def {A : Type'} : (@ZCONSTR A) = (fun _17566 : nat => fun _17567 : A => fun _17568 : nat -> nat -> A -> Prop => @INJP A (@INJN A (S _17566)) (@INJP A (@INJA A _17567) (@INJF A _17568))). +Definition ZCONSTR {A : Type'} : N -> A -> (N -> N -> A -> Prop) -> N -> A -> Prop := fun _17566 : N => fun _17567 : A => fun _17568 : N -> N -> A -> Prop => @INJP A (@INJN A (N.succ _17566)) (@INJP A (@INJA A _17567) (@INJF A _17568)). +Lemma ZCONSTR_def {A : Type'} : (@ZCONSTR A) = (fun _17566 : N => fun _17567 : A => fun _17568 : N -> N -> A -> Prop => @INJP A (@INJN A (N.succ _17566)) (@INJP A (@INJA A _17567) (@INJF A _17568))). Proof. exact (eq_refl (@ZCONSTR A)). Qed. -Definition ZBOT {A : Type'} : nat -> A -> Prop := @INJP A (@INJN A (NUMERAL 0)) (@ε (nat -> A -> Prop) (fun z : nat -> A -> Prop => True)). -Lemma ZBOT_def {A : Type'} : (@ZBOT A) = (@INJP A (@INJN A (NUMERAL 0)) (@ε (nat -> A -> Prop) (fun z : nat -> A -> Prop => True))). +Definition ZBOT {A : Type'} : N -> A -> Prop := @INJP A (@INJN A (NUMERAL 0%N)) (@ε (N -> A -> Prop) (fun z : N -> A -> Prop => True)). +Lemma ZBOT_def {A : Type'} : (@ZBOT A) = (@INJP A (@INJN A (NUMERAL 0%N)) (@ε (N -> A -> Prop) (fun z : N -> A -> Prop => True))). Proof. exact (eq_refl (@ZBOT A)). Qed. Definition BOTTOM {A : Type'} : recspace A := @_mk_rec A (@ZBOT A). Lemma BOTTOM_def {A : Type'} : (@BOTTOM A) = (@_mk_rec A (@ZBOT A)). Proof. exact (eq_refl (@BOTTOM A)). Qed. -Definition CONSTR {A : Type'} : nat -> A -> (nat -> recspace A) -> recspace A := fun _17591 : nat => fun _17592 : A => fun _17593 : nat -> recspace A => @_mk_rec A (@ZCONSTR A _17591 _17592 (fun n : nat => @_dest_rec A (_17593 n))). -Lemma CONSTR_def {A : Type'} : (@CONSTR A) = (fun _17591 : nat => fun _17592 : A => fun _17593 : nat -> recspace A => @_mk_rec A (@ZCONSTR A _17591 _17592 (fun n : nat => @_dest_rec A (_17593 n)))). +Definition CONSTR {A : Type'} : N -> A -> (N -> recspace A) -> recspace A := fun _17591 : N => fun _17592 : A => fun _17593 : N -> recspace A => @_mk_rec A (@ZCONSTR A _17591 _17592 (fun n : N => @_dest_rec A (_17593 n))). +Lemma CONSTR_def {A : Type'} : (@CONSTR A) = (fun _17591 : N => fun _17592 : A => fun _17593 : N -> recspace A => @_mk_rec A (@ZCONSTR A _17591 _17592 (fun n : N => @_dest_rec A (_17593 n)))). Proof. exact (eq_refl (@CONSTR A)). Qed. -Definition FNIL {A : Type'} : nat -> A := fun _17624 : nat => @ε A (fun x : A => True). -Lemma FNIL_def {A : Type'} : (@FNIL A) = (fun _17624 : nat => @ε A (fun x : A => True)). +Definition FNIL {A : Type'} : N -> A := fun _17624 : N => @ε A (fun x : A => True). +Lemma FNIL_def {A : Type'} : (@FNIL A) = (fun _17624 : N => @ε A (fun x : A => True)). Proof. exact (eq_refl (@FNIL A)). Qed. -Definition OUTL {A B : Type'} : (Datatypes.sum A B) -> A := @ε ((prod nat (prod nat (prod nat nat))) -> (Datatypes.sum A B) -> A) (fun OUTL' : (prod nat (prod nat (prod nat nat))) -> (Datatypes.sum A B) -> A => forall _17649 : prod nat (prod nat (prod nat nat)), forall x : A, (OUTL' _17649 (@inl A B x)) = x) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0))))))))))). -Lemma OUTL_def {A B : Type'} : (@OUTL A B) = (@ε ((prod nat (prod nat (prod nat nat))) -> (Datatypes.sum A B) -> A) (fun OUTL' : (prod nat (prod nat (prod nat nat))) -> (Datatypes.sum A B) -> A => forall _17649 : prod nat (prod nat (prod nat nat)), forall x : A, (OUTL' _17649 (@inl A B x)) = x) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))))))). +Definition OUTL {A B : Type'} : (Datatypes.sum A B) -> A := @ε ((prod N (prod N (prod N N))) -> (Datatypes.sum A B) -> A) (fun OUTL' : (prod N (prod N (prod N N))) -> (Datatypes.sum A B) -> A => forall _17649 : prod N (prod N (prod N N)), forall x : A, (OUTL' _17649 (@inl A B x)) = x) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N))))))))))). +Lemma OUTL_def {A B : Type'} : (@OUTL A B) = (@ε ((prod N (prod N (prod N N))) -> (Datatypes.sum A B) -> A) (fun OUTL' : (prod N (prod N (prod N N))) -> (Datatypes.sum A B) -> A => forall _17649 : prod N (prod N (prod N N)), forall x : A, (OUTL' _17649 (@inl A B x)) = x) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))))))). Proof. exact (eq_refl (@OUTL A B)). Qed. -Definition OUTR {A B : Type'} : (Datatypes.sum A B) -> B := @ε ((prod nat (prod nat (prod nat nat))) -> (Datatypes.sum A B) -> B) (fun OUTR' : (prod nat (prod nat (prod nat nat))) -> (Datatypes.sum A B) -> B => forall _17651 : prod nat (prod nat (prod nat nat)), forall y : B, (OUTR' _17651 (@inr A B y)) = y) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0))))))))))). -Lemma OUTR_def {A B : Type'} : (@OUTR A B) = (@ε ((prod nat (prod nat (prod nat nat))) -> (Datatypes.sum A B) -> B) (fun OUTR' : (prod nat (prod nat (prod nat nat))) -> (Datatypes.sum A B) -> B => forall _17651 : prod nat (prod nat (prod nat nat)), forall y : B, (OUTR' _17651 (@inr A B y)) = y) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))))))). +Definition OUTR {A B : Type'} : (Datatypes.sum A B) -> B := @ε ((prod N (prod N (prod N N))) -> (Datatypes.sum A B) -> B) (fun OUTR' : (prod N (prod N (prod N N))) -> (Datatypes.sum A B) -> B => forall _17651 : prod N (prod N (prod N N)), forall y : B, (OUTR' _17651 (@inr A B y)) = y) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N))))))))))). +Lemma OUTR_def {A B : Type'} : (@OUTR A B) = (@ε ((prod N (prod N (prod N N))) -> (Datatypes.sum A B) -> B) (fun OUTR' : (prod N (prod N (prod N N))) -> (Datatypes.sum A B) -> B => forall _17651 : prod N (prod N (prod N N)), forall y : B, (OUTR' _17651 (@inr A B y)) = y) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))))))). Proof. exact (eq_refl (@OUTR A B)). Qed. -Definition LAST {A : Type'} : (list A) -> A := @ε ((prod nat (prod nat (prod nat nat))) -> (list A) -> A) (fun LAST' : (prod nat (prod nat (prod nat nat))) -> (list A) -> A => forall _18117 : prod nat (prod nat (prod nat nat)), forall h : A, forall t : list A, (LAST' _18117 (@cons A h t)) = (@COND A (t = (@nil A)) h (LAST' _18117 t))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0))))))))))). -Lemma LAST_def {A : Type'} : (@LAST A) = (@ε ((prod nat (prod nat (prod nat nat))) -> (list A) -> A) (fun LAST' : (prod nat (prod nat (prod nat nat))) -> (list A) -> A => forall _18117 : prod nat (prod nat (prod nat nat)), forall h : A, forall t : list A, (LAST' _18117 (@cons A h t)) = (@COND A (t = (@nil A)) h (LAST' _18117 t))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))))))). +Definition LENGTH {A : Type'} : (list A) -> N := @ε ((prod N (prod N (prod N (prod N (prod N N))))) -> (list A) -> N) (fun LENGTH' : (prod N (prod N (prod N (prod N (prod N N))))) -> (list A) -> N => forall _18106 : prod N (prod N (prod N (prod N (prod N N)))), ((LENGTH' _18106 (@nil A)) = (NUMERAL 0%N)) /\ (forall h : A, forall t : list A, (LENGTH' _18106 (@cons A h t)) = (N.succ (LENGTH' _18106 t)))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N))))))))))))). +Lemma LENGTH_def {A : Type'} : (@LENGTH A) = (@ε ((prod N (prod N (prod N (prod N (prod N N))))) -> (list A) -> N) (fun LENGTH' : (prod N (prod N (prod N (prod N (prod N N))))) -> (list A) -> N => forall _18106 : prod N (prod N (prod N (prod N (prod N N)))), ((LENGTH' _18106 (@nil A)) = (NUMERAL 0%N)) /\ (forall h : A, forall t : list A, (LENGTH' _18106 (@cons A h t)) = (N.succ (LENGTH' _18106 t)))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))))))))). +Proof. exact (eq_refl (@LENGTH A)). Qed. +Definition LAST {A : Type'} : (list A) -> A := @ε ((prod N (prod N (prod N N))) -> (list A) -> A) (fun LAST' : (prod N (prod N (prod N N))) -> (list A) -> A => forall _18117 : prod N (prod N (prod N N)), forall h : A, forall t : list A, (LAST' _18117 (@cons A h t)) = (@COND A (t = (@nil A)) h (LAST' _18117 t))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N))))))))))). +Lemma LAST_def {A : Type'} : (@LAST A) = (@ε ((prod N (prod N (prod N N))) -> (list A) -> A) (fun LAST' : (prod N (prod N (prod N N))) -> (list A) -> A => forall _18117 : prod N (prod N (prod N N)), forall h : A, forall t : list A, (LAST' _18117 (@cons A h t)) = (@COND A (t = (@nil A)) h (LAST' _18117 t))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))))))). Proof. exact (eq_refl (@LAST A)). Qed. -Definition NULL {A : Type'} : (list A) -> Prop := @ε ((prod nat (prod nat (prod nat nat))) -> (list A) -> Prop) (fun NULL' : (prod nat (prod nat (prod nat nat))) -> (list A) -> Prop => forall _18129 : prod nat (prod nat (prod nat nat)), ((NULL' _18129 (@nil A)) = True) /\ (forall h : A, forall t : list A, (NULL' _18129 (@cons A h t)) = False)) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0))))))))))). -Lemma NULL_def {A : Type'} : (@NULL A) = (@ε ((prod nat (prod nat (prod nat nat))) -> (list A) -> Prop) (fun NULL' : (prod nat (prod nat (prod nat nat))) -> (list A) -> Prop => forall _18129 : prod nat (prod nat (prod nat nat)), ((NULL' _18129 (@nil A)) = True) /\ (forall h : A, forall t : list A, (NULL' _18129 (@cons A h t)) = False)) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))))))). +Definition REPLICATE {A : Type'} : N -> A -> list A := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) -> N -> A -> list A) (fun REPLICATE' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) -> N -> A -> list A => forall _18125 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))), (forall x : A, (REPLICATE' _18125 (NUMERAL 0%N) x) = (@nil A)) /\ (forall n : N, forall x : A, (REPLICATE' _18125 (N.succ n) x) = (@cons A x (REPLICATE' _18125 n x)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))))))))))). +Lemma REPLICATE_def {A : Type'} : (@REPLICATE A) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) -> N -> A -> list A) (fun REPLICATE' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) -> N -> A -> list A => forall _18125 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))), (forall x : A, (REPLICATE' _18125 (NUMERAL 0%N) x) = (@nil A)) /\ (forall n : N, forall x : A, (REPLICATE' _18125 (N.succ n) x) = (@cons A x (REPLICATE' _18125 n x)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N))))))))))))))))). +Proof. exact (eq_refl (@REPLICATE A)). Qed. +Definition NULL {A : Type'} : (list A) -> Prop := @ε ((prod N (prod N (prod N N))) -> (list A) -> Prop) (fun NULL' : (prod N (prod N (prod N N))) -> (list A) -> Prop => forall _18129 : prod N (prod N (prod N N)), ((NULL' _18129 (@nil A)) = True) /\ (forall h : A, forall t : list A, (NULL' _18129 (@cons A h t)) = False)) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N))))))))))). +Lemma NULL_def {A : Type'} : (@NULL A) = (@ε ((prod N (prod N (prod N N))) -> (list A) -> Prop) (fun NULL' : (prod N (prod N (prod N N))) -> (list A) -> Prop => forall _18129 : prod N (prod N (prod N N)), ((NULL' _18129 (@nil A)) = True) /\ (forall h : A, forall t : list A, (NULL' _18129 (@cons A h t)) = False)) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))))))). Proof. exact (eq_refl (@NULL A)). Qed. -Definition EX {A : Type'} : (A -> Prop) -> (list A) -> Prop := @ε ((prod nat nat) -> (A -> Prop) -> (list A) -> Prop) (fun EX' : (prod nat nat) -> (A -> Prop) -> (list A) -> Prop => forall _18143 : prod nat nat, (forall P : A -> Prop, (EX' _18143 P (@nil A)) = False) /\ (forall h : A, forall P : A -> Prop, forall t : list A, (EX' _18143 P (@cons A h t)) = ((P h) \/ (EX' _18143 P t)))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 0))))))))). -Lemma EX_def {A : Type'} : (@EX A) = (@ε ((prod nat nat) -> (A -> Prop) -> (list A) -> Prop) (fun EX' : (prod nat nat) -> (A -> Prop) -> (list A) -> Prop => forall _18143 : prod nat nat, (forall P : A -> Prop, (EX' _18143 P (@nil A)) = False) /\ (forall h : A, forall P : A -> Prop, forall t : list A, (EX' _18143 P (@cons A h t)) = ((P h) \/ (EX' _18143 P t)))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))))). +Definition EX {A : Type'} : (A -> Prop) -> (list A) -> Prop := @ε ((prod N N) -> (A -> Prop) -> (list A) -> Prop) (fun EX' : (prod N N) -> (A -> Prop) -> (list A) -> Prop => forall _18143 : prod N N, (forall P : A -> Prop, (EX' _18143 P (@nil A)) = False) /\ (forall h : A, forall P : A -> Prop, forall t : list A, (EX' _18143 P (@cons A h t)) = ((P h) \/ (EX' _18143 P t)))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 0%N))))))))). +Lemma EX_def {A : Type'} : (@EX A) = (@ε ((prod N N) -> (A -> Prop) -> (list A) -> Prop) (fun EX' : (prod N N) -> (A -> Prop) -> (list A) -> Prop => forall _18143 : prod N N, (forall P : A -> Prop, (EX' _18143 P (@nil A)) = False) /\ (forall h : A, forall P : A -> Prop, forall t : list A, (EX' _18143 P (@cons A h t)) = ((P h) \/ (EX' _18143 P t)))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))))). Proof. exact (eq_refl (@EX A)). Qed. -Definition ITLIST {A B : Type'} : (A -> B -> B) -> (list A) -> B -> B := @ε ((prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> (A -> B -> B) -> (list A) -> B -> B) (fun ITLIST' : (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> (A -> B -> B) -> (list A) -> B -> B => forall _18151 : prod nat (prod nat (prod nat (prod nat (prod nat nat)))), (forall f : A -> B -> B, forall b : B, (ITLIST' _18151 f (@nil A) b) = b) /\ (forall h : A, forall f : A -> B -> B, forall t : list A, forall b : B, (ITLIST' _18151 f (@cons A h t) b) = (f h (ITLIST' _18151 f t b)))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0))))))))))))). -Lemma ITLIST_def {A B : Type'} : (@ITLIST A B) = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> (A -> B -> B) -> (list A) -> B -> B) (fun ITLIST' : (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> (A -> B -> B) -> (list A) -> B -> B => forall _18151 : prod nat (prod nat (prod nat (prod nat (prod nat nat)))), (forall f : A -> B -> B, forall b : B, (ITLIST' _18151 f (@nil A) b) = b) /\ (forall h : A, forall f : A -> B -> B, forall t : list A, forall b : B, (ITLIST' _18151 f (@cons A h t) b) = (f h (ITLIST' _18151 f t b)))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))))))))). +Definition ITLIST {A B : Type'} : (A -> B -> B) -> (list A) -> B -> B := @ε ((prod N (prod N (prod N (prod N (prod N N))))) -> (A -> B -> B) -> (list A) -> B -> B) (fun ITLIST' : (prod N (prod N (prod N (prod N (prod N N))))) -> (A -> B -> B) -> (list A) -> B -> B => forall _18151 : prod N (prod N (prod N (prod N (prod N N)))), (forall f : A -> B -> B, forall b : B, (ITLIST' _18151 f (@nil A) b) = b) /\ (forall h : A, forall f : A -> B -> B, forall t : list A, forall b : B, (ITLIST' _18151 f (@cons A h t) b) = (f h (ITLIST' _18151 f t b)))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N))))))))))))). +Lemma ITLIST_def {A B : Type'} : (@ITLIST A B) = (@ε ((prod N (prod N (prod N (prod N (prod N N))))) -> (A -> B -> B) -> (list A) -> B -> B) (fun ITLIST' : (prod N (prod N (prod N (prod N (prod N N))))) -> (A -> B -> B) -> (list A) -> B -> B => forall _18151 : prod N (prod N (prod N (prod N (prod N N)))), (forall f : A -> B -> B, forall b : B, (ITLIST' _18151 f (@nil A) b) = b) /\ (forall h : A, forall f : A -> B -> B, forall t : list A, forall b : B, (ITLIST' _18151 f (@cons A h t) b) = (f h (ITLIST' _18151 f t b)))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))))))))). Proof. exact (eq_refl (@ITLIST A B)). Qed. -Definition ALL2 {A B : Type'} : (A -> B -> Prop) -> (list A) -> (list B) -> Prop := @ε ((prod nat (prod nat (prod nat nat))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop) (fun ALL2' : (prod nat (prod nat (prod nat nat))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop => forall _18166 : prod nat (prod nat (prod nat nat)), (forall P : A -> B -> Prop, forall l2 : list B, (ALL2' _18166 P (@nil A) l2) = (l2 = (@nil B))) /\ (forall h1' : A, forall P : A -> B -> Prop, forall t1 : list A, forall l2 : list B, (ALL2' _18166 P (@cons A h1' t1) l2) = (@COND Prop (l2 = (@nil B)) False ((P h1' (@hd B l2)) /\ (ALL2' _18166 P t1 (@tl B l2)))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))))). -Lemma ALL2_def {A B : Type'} : (@ALL2 A B) = (@ε ((prod nat (prod nat (prod nat nat))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop) (fun ALL2' : (prod nat (prod nat (prod nat nat))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop => forall _18166 : prod nat (prod nat (prod nat nat)), (forall P : A -> B -> Prop, forall l2 : list B, (ALL2' _18166 P (@nil A) l2) = (l2 = (@nil B))) /\ (forall h1' : A, forall P : A -> B -> Prop, forall t1 : list A, forall l2 : list B, (ALL2' _18166 P (@cons A h1' t1) l2) = (@COND Prop (l2 = (@nil B)) False ((P h1' (@hd B l2)) /\ (ALL2' _18166 P t1 (@tl B l2)))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0))))))))))). +Definition ALL2 {A B : Type'} : (A -> B -> Prop) -> (list A) -> (list B) -> Prop := @ε ((prod N (prod N (prod N N))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop) (fun ALL2' : (prod N (prod N (prod N N))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop => forall _18166 : prod N (prod N (prod N N)), (forall P : A -> B -> Prop, forall l2 : list B, (ALL2' _18166 P (@nil A) l2) = (l2 = (@nil B))) /\ (forall h1' : A, forall P : A -> B -> Prop, forall t1 : list A, forall l2 : list B, (ALL2' _18166 P (@cons A h1' t1) l2) = (@COND Prop (l2 = (@nil B)) False ((P h1' (@hd B l2)) /\ (ALL2' _18166 P t1 (@tl B l2)))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))). +Lemma ALL2_def {A B : Type'} : (@ALL2 A B) = (@ε ((prod N (prod N (prod N N))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop) (fun ALL2' : (prod N (prod N (prod N N))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop => forall _18166 : prod N (prod N (prod N N)), (forall P : A -> B -> Prop, forall l2 : list B, (ALL2' _18166 P (@nil A) l2) = (l2 = (@nil B))) /\ (forall h1' : A, forall P : A -> B -> Prop, forall t1 : list A, forall l2 : list B, (ALL2' _18166 P (@cons A h1' t1) l2) = (@COND Prop (l2 = (@nil B)) False ((P h1' (@hd B l2)) /\ (ALL2' _18166 P t1 (@tl B l2)))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))). Proof. exact (eq_refl (@ALL2 A B)). Qed. -Definition MAP2 {A B C : Type'} : (A -> B -> C) -> (list A) -> (list B) -> list C := @ε ((prod nat (prod nat (prod nat nat))) -> (A -> B -> C) -> (list A) -> (list B) -> list C) (fun MAP2' : (prod nat (prod nat (prod nat nat))) -> (A -> B -> C) -> (list A) -> (list B) -> list C => forall _18174 : prod nat (prod nat (prod nat nat)), (forall f : A -> B -> C, forall l : list B, (MAP2' _18174 f (@nil A) l) = (@nil C)) /\ (forall h1' : A, forall f : A -> B -> C, forall t1 : list A, forall l : list B, (MAP2' _18174 f (@cons A h1' t1) l) = (@cons C (f h1' (@hd B l)) (MAP2' _18174 f t1 (@tl B l))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))))). -Lemma MAP2_def {A B C : Type'} : (@MAP2 A B C) = (@ε ((prod nat (prod nat (prod nat nat))) -> (A -> B -> C) -> (list A) -> (list B) -> list C) (fun MAP2' : (prod nat (prod nat (prod nat nat))) -> (A -> B -> C) -> (list A) -> (list B) -> list C => forall _18174 : prod nat (prod nat (prod nat nat)), (forall f : A -> B -> C, forall l : list B, (MAP2' _18174 f (@nil A) l) = (@nil C)) /\ (forall h1' : A, forall f : A -> B -> C, forall t1 : list A, forall l : list B, (MAP2' _18174 f (@cons A h1' t1) l) = (@cons C (f h1' (@hd B l)) (MAP2' _18174 f t1 (@tl B l))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0))))))))))). +Definition MAP2 {A B C : Type'} : (A -> B -> C) -> (list A) -> (list B) -> list C := @ε ((prod N (prod N (prod N N))) -> (A -> B -> C) -> (list A) -> (list B) -> list C) (fun MAP2' : (prod N (prod N (prod N N))) -> (A -> B -> C) -> (list A) -> (list B) -> list C => forall _18174 : prod N (prod N (prod N N)), (forall f : A -> B -> C, forall l : list B, (MAP2' _18174 f (@nil A) l) = (@nil C)) /\ (forall h1' : A, forall f : A -> B -> C, forall t1 : list A, forall l : list B, (MAP2' _18174 f (@cons A h1' t1) l) = (@cons C (f h1' (@hd B l)) (MAP2' _18174 f t1 (@tl B l))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))). +Lemma MAP2_def {A B C : Type'} : (@MAP2 A B C) = (@ε ((prod N (prod N (prod N N))) -> (A -> B -> C) -> (list A) -> (list B) -> list C) (fun MAP2' : (prod N (prod N (prod N N))) -> (A -> B -> C) -> (list A) -> (list B) -> list C => forall _18174 : prod N (prod N (prod N N)), (forall f : A -> B -> C, forall l : list B, (MAP2' _18174 f (@nil A) l) = (@nil C)) /\ (forall h1' : A, forall f : A -> B -> C, forall t1 : list A, forall l : list B, (MAP2' _18174 f (@cons A h1' t1) l) = (@cons C (f h1' (@hd B l)) (MAP2' _18174 f t1 (@tl B l))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))). Proof. exact (eq_refl (@MAP2 A B C)). Qed. -Definition EL {A : Type'} : nat -> (list A) -> A := @ε ((prod nat nat) -> nat -> (list A) -> A) (fun EL' : (prod nat nat) -> nat -> (list A) -> A => forall _18178 : prod nat nat, (forall l : list A, (EL' _18178 (NUMERAL 0) l) = (@hd A l)) /\ (forall n : nat, forall l : list A, (EL' _18178 (S n) l) = (EL' _18178 n (@tl A l)))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0))))))))). -Lemma EL_def {A : Type'} : (@EL A) = (@ε ((prod nat nat) -> nat -> (list A) -> A) (fun EL' : (prod nat nat) -> nat -> (list A) -> A => forall _18178 : prod nat nat, (forall l : list A, (EL' _18178 (NUMERAL 0) l) = (@hd A l)) /\ (forall n : nat, forall l : list A, (EL' _18178 (S n) l) = (EL' _18178 n (@tl A l)))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))))). +Definition EL {A : Type'} : N -> (list A) -> A := @ε ((prod N N) -> N -> (list A) -> A) (fun EL' : (prod N N) -> N -> (list A) -> A => forall _18178 : prod N N, (forall l : list A, (EL' _18178 (NUMERAL 0%N) l) = (@hd A l)) /\ (forall n : N, forall l : list A, (EL' _18178 (N.succ n) l) = (EL' _18178 n (@tl A l)))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N))))))))). +Lemma EL_def {A : Type'} : (@EL A) = (@ε ((prod N N) -> N -> (list A) -> A) (fun EL' : (prod N N) -> N -> (list A) -> A => forall _18178 : prod N N, (forall l : list A, (EL' _18178 (NUMERAL 0%N) l) = (@hd A l)) /\ (forall n : N, forall l : list A, (EL' _18178 (N.succ n) l) = (EL' _18178 n (@tl A l)))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))))). Proof. exact (eq_refl (@EL A)). Qed. -Definition FILTER {A : Type'} : (A -> Prop) -> (list A) -> list A := @ε ((prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> (A -> Prop) -> (list A) -> list A) (fun FILTER' : (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> (A -> Prop) -> (list A) -> list A => forall _18185 : prod nat (prod nat (prod nat (prod nat (prod nat nat)))), (forall P : A -> Prop, (FILTER' _18185 P (@nil A)) = (@nil A)) /\ (forall h : A, forall P : A -> Prop, forall t : list A, (FILTER' _18185 P (@cons A h t)) = (@COND (list A) (P h) (@cons A h (FILTER' _18185 P t)) (FILTER' _18185 P t)))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0))))))))))))). -Lemma FILTER_def {A : Type'} : (@FILTER A) = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> (A -> Prop) -> (list A) -> list A) (fun FILTER' : (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> (A -> Prop) -> (list A) -> list A => forall _18185 : prod nat (prod nat (prod nat (prod nat (prod nat nat)))), (forall P : A -> Prop, (FILTER' _18185 P (@nil A)) = (@nil A)) /\ (forall h : A, forall P : A -> Prop, forall t : list A, (FILTER' _18185 P (@cons A h t)) = (@COND (list A) (P h) (@cons A h (FILTER' _18185 P t)) (FILTER' _18185 P t)))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))))))))). +Definition FILTER {A : Type'} : (A -> Prop) -> (list A) -> list A := @ε ((prod N (prod N (prod N (prod N (prod N N))))) -> (A -> Prop) -> (list A) -> list A) (fun FILTER' : (prod N (prod N (prod N (prod N (prod N N))))) -> (A -> Prop) -> (list A) -> list A => forall _18185 : prod N (prod N (prod N (prod N (prod N N)))), (forall P : A -> Prop, (FILTER' _18185 P (@nil A)) = (@nil A)) /\ (forall h : A, forall P : A -> Prop, forall t : list A, (FILTER' _18185 P (@cons A h t)) = (@COND (list A) (P h) (@cons A h (FILTER' _18185 P t)) (FILTER' _18185 P t)))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N))))))))))))). +Lemma FILTER_def {A : Type'} : (@FILTER A) = (@ε ((prod N (prod N (prod N (prod N (prod N N))))) -> (A -> Prop) -> (list A) -> list A) (fun FILTER' : (prod N (prod N (prod N (prod N (prod N N))))) -> (A -> Prop) -> (list A) -> list A => forall _18185 : prod N (prod N (prod N (prod N (prod N N)))), (forall P : A -> Prop, (FILTER' _18185 P (@nil A)) = (@nil A)) /\ (forall h : A, forall P : A -> Prop, forall t : list A, (FILTER' _18185 P (@cons A h t)) = (@COND (list A) (P h) (@cons A h (FILTER' _18185 P t)) (FILTER' _18185 P t)))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))))))))). Proof. exact (eq_refl (@FILTER A)). Qed. -Definition ASSOC {A B : Type'} : A -> (list (prod A B)) -> B := @ε ((prod nat (prod nat (prod nat (prod nat nat)))) -> A -> (list (prod A B)) -> B) (fun ASSOC' : (prod nat (prod nat (prod nat (prod nat nat)))) -> A -> (list (prod A B)) -> B => forall _18192 : prod nat (prod nat (prod nat (prod nat nat))), forall h : prod A B, forall a : A, forall t : list (prod A B), (ASSOC' _18192 a (@cons (prod A B) h t)) = (@COND B ((@fst A B h) = a) (@snd A B h) (ASSOC' _18192 a t))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))))))). -Lemma ASSOC_def {A B : Type'} : (@ASSOC A B) = (@ε ((prod nat (prod nat (prod nat (prod nat nat)))) -> A -> (list (prod A B)) -> B) (fun ASSOC' : (prod nat (prod nat (prod nat (prod nat nat)))) -> A -> (list (prod A B)) -> B => forall _18192 : prod nat (prod nat (prod nat (prod nat nat))), forall h : prod A B, forall a : A, forall t : list (prod A B), (ASSOC' _18192 a (@cons (prod A B) h t)) = (@COND B ((@fst A B h) = a) (@snd A B h) (ASSOC' _18192 a t))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0))))))))))))). +Definition ASSOC {A B : Type'} : A -> (list (prod A B)) -> B := @ε ((prod N (prod N (prod N (prod N N)))) -> A -> (list (prod A B)) -> B) (fun ASSOC' : (prod N (prod N (prod N (prod N N)))) -> A -> (list (prod A B)) -> B => forall _18192 : prod N (prod N (prod N (prod N N))), forall h : prod A B, forall a : A, forall t : list (prod A B), (ASSOC' _18192 a (@cons (prod A B) h t)) = (@COND B ((@fst A B h) = a) (@snd A B h) (ASSOC' _18192 a t))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))))))). +Lemma ASSOC_def {A B : Type'} : (@ASSOC A B) = (@ε ((prod N (prod N (prod N (prod N N)))) -> A -> (list (prod A B)) -> B) (fun ASSOC' : (prod N (prod N (prod N (prod N N)))) -> A -> (list (prod A B)) -> B => forall _18192 : prod N (prod N (prod N (prod N N))), forall h : prod A B, forall a : A, forall t : list (prod A B), (ASSOC' _18192 a (@cons (prod A B) h t)) = (@COND B ((@fst A B h) = a) (@snd A B h) (ASSOC' _18192 a t))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N))))))))))))). Proof. exact (eq_refl (@ASSOC A B)). Qed. -Definition ITLIST2 {A B C : Type'} : (A -> B -> C -> C) -> (list A) -> (list B) -> C -> C := @ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) -> (A -> B -> C -> C) -> (list A) -> (list B) -> C -> C) (fun ITLIST2' : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) -> (A -> B -> C -> C) -> (list A) -> (list B) -> C -> C => forall _18201 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))), (forall f : A -> B -> C -> C, forall l2 : list B, forall b : C, (ITLIST2' _18201 f (@nil A) l2 b) = b) /\ (forall h1' : A, forall f : A -> B -> C -> C, forall t1 : list A, forall l2 : list B, forall b : C, (ITLIST2' _18201 f (@cons A h1' t1) l2 b) = (f h1' (@hd B l2) (ITLIST2' _18201 f t1 (@tl B l2) b)))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0))))))))))))). -Lemma ITLIST2_def {A B C : Type'} : (@ITLIST2 A B C) = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) -> (A -> B -> C -> C) -> (list A) -> (list B) -> C -> C) (fun ITLIST2' : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) -> (A -> B -> C -> C) -> (list A) -> (list B) -> C -> C => forall _18201 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))), (forall f : A -> B -> C -> C, forall l2 : list B, forall b : C, (ITLIST2' _18201 f (@nil A) l2 b) = b) /\ (forall h1' : A, forall f : A -> B -> C -> C, forall t1 : list A, forall l2 : list B, forall b : C, (ITLIST2' _18201 f (@cons A h1' t1) l2 b) = (f h1' (@hd B l2) (ITLIST2' _18201 f t1 (@tl B l2) b)))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))))))))). +Definition ITLIST2 {A B C : Type'} : (A -> B -> C -> C) -> (list A) -> (list B) -> C -> C := @ε ((prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (A -> B -> C -> C) -> (list A) -> (list B) -> C -> C) (fun ITLIST2' : (prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (A -> B -> C -> C) -> (list A) -> (list B) -> C -> C => forall _18201 : prod N (prod N (prod N (prod N (prod N (prod N N))))), (forall f : A -> B -> C -> C, forall l2 : list B, forall b : C, (ITLIST2' _18201 f (@nil A) l2 b) = b) /\ (forall h1' : A, forall f : A -> B -> C -> C, forall t1 : list A, forall l2 : list B, forall b : C, (ITLIST2' _18201 f (@cons A h1' t1) l2 b) = (f h1' (@hd B l2) (ITLIST2' _18201 f t1 (@tl B l2) b)))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))))). +Lemma ITLIST2_def {A B C : Type'} : (@ITLIST2 A B C) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (A -> B -> C -> C) -> (list A) -> (list B) -> C -> C) (fun ITLIST2' : (prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (A -> B -> C -> C) -> (list A) -> (list B) -> C -> C => forall _18201 : prod N (prod N (prod N (prod N (prod N (prod N N))))), (forall f : A -> B -> C -> C, forall l2 : list B, forall b : C, (ITLIST2' _18201 f (@nil A) l2 b) = b) /\ (forall h1' : A, forall f : A -> B -> C -> C, forall t1 : list A, forall l2 : list B, forall b : C, (ITLIST2' _18201 f (@cons A h1' t1) l2 b) = (f h1' (@hd B l2) (ITLIST2' _18201 f t1 (@tl B l2) b)))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))))))). Proof. exact (eq_refl (@ITLIST2 A B C)). Qed. -Definition ZIP {A B : Type'} : (list A) -> (list B) -> list (prod A B) := @ε ((prod nat (prod nat nat)) -> (list A) -> (list B) -> list (prod A B)) (fun ZIP' : (prod nat (prod nat nat)) -> (list A) -> (list B) -> list (prod A B) => forall _18205 : prod nat (prod nat nat), (forall l2 : list B, (ZIP' _18205 (@nil A) l2) = (@nil (prod A B))) /\ (forall h1' : A, forall t1 : list A, forall l2 : list B, (ZIP' _18205 (@cons A h1' t1) l2) = (@cons (prod A B) (@pair A B h1' (@hd B l2)) (ZIP' _18205 t1 (@tl B l2))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))))). -Lemma ZIP_def {A B : Type'} : (@ZIP A B) = (@ε ((prod nat (prod nat nat)) -> (list A) -> (list B) -> list (prod A B)) (fun ZIP' : (prod nat (prod nat nat)) -> (list A) -> (list B) -> list (prod A B) => forall _18205 : prod nat (prod nat nat), (forall l2 : list B, (ZIP' _18205 (@nil A) l2) = (@nil (prod A B))) /\ (forall h1' : A, forall t1 : list A, forall l2 : list B, (ZIP' _18205 (@cons A h1' t1) l2) = (@cons (prod A B) (@pair A B h1' (@hd B l2)) (ZIP' _18205 t1 (@tl B l2))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0))))))))))). +Definition ZIP {A B : Type'} : (list A) -> (list B) -> list (prod A B) := @ε ((prod N (prod N N)) -> (list A) -> (list B) -> list (prod A B)) (fun ZIP' : (prod N (prod N N)) -> (list A) -> (list B) -> list (prod A B) => forall _18205 : prod N (prod N N), (forall l2 : list B, (ZIP' _18205 (@nil A) l2) = (@nil (prod A B))) /\ (forall h1' : A, forall t1 : list A, forall l2 : list B, (ZIP' _18205 (@cons A h1' t1) l2) = (@cons (prod A B) (@pair A B h1' (@hd B l2)) (ZIP' _18205 t1 (@tl B l2))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))))). +Lemma ZIP_def {A B : Type'} : (@ZIP A B) = (@ε ((prod N (prod N N)) -> (list A) -> (list B) -> list (prod A B)) (fun ZIP' : (prod N (prod N N)) -> (list A) -> (list B) -> list (prod A B) => forall _18205 : prod N (prod N N), (forall l2 : list B, (ZIP' _18205 (@nil A) l2) = (@nil (prod A B))) /\ (forall h1' : A, forall t1 : list A, forall l2 : list B, (ZIP' _18205 (@cons A h1' t1) l2) = (@cons (prod A B) (@pair A B h1' (@hd B l2)) (ZIP' _18205 t1 (@tl B l2))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N))))))))))). Proof. exact (eq_refl (@ZIP A B)). Qed. -Definition ALLPAIRS {A B : Type'} : (A -> B -> Prop) -> (list A) -> (list B) -> Prop := @ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop) (fun ALLPAIRS' : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop => forall _18213 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))), (forall f : A -> B -> Prop, forall l : list B, (ALLPAIRS' _18213 f (@nil A) l) = True) /\ (forall h : A, forall f : A -> B -> Prop, forall t : list A, forall l : list B, (ALLPAIRS' _18213 f (@cons A h t) l) = ((@List.Forall B (f h) l) /\ (ALLPAIRS' _18213 f t l)))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0))))))))))))))). -Lemma ALLPAIRS_def {A B : Type'} : (@ALLPAIRS A B) = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop) (fun ALLPAIRS' : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop => forall _18213 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))), (forall f : A -> B -> Prop, forall l : list B, (ALLPAIRS' _18213 f (@nil A) l) = True) /\ (forall h : A, forall f : A -> B -> Prop, forall t : list A, forall l : list B, (ALLPAIRS' _18213 f (@cons A h t) l) = ((@List.Forall B (f h) l) /\ (ALLPAIRS' _18213 f t l)))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))))))))))). +Definition ALLPAIRS {A B : Type'} : (A -> B -> Prop) -> (list A) -> (list B) -> Prop := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop) (fun ALLPAIRS' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop => forall _18213 : prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))), (forall f : A -> B -> Prop, forall l : list B, (ALLPAIRS' _18213 f (@nil A) l) = True) /\ (forall h : A, forall f : A -> B -> Prop, forall t : list A, forall l : list B, (ALLPAIRS' _18213 f (@cons A h t) l) = ((@List.Forall B (f h) l) /\ (ALLPAIRS' _18213 f t l)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N))))))))))))))). +Lemma ALLPAIRS_def {A B : Type'} : (@ALLPAIRS A B) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop) (fun ALLPAIRS' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) -> (A -> B -> Prop) -> (list A) -> (list B) -> Prop => forall _18213 : prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))), (forall f : A -> B -> Prop, forall l : list B, (ALLPAIRS' _18213 f (@nil A) l) = True) /\ (forall h : A, forall f : A -> B -> Prop, forall t : list A, forall l : list B, (ALLPAIRS' _18213 f (@cons A h t) l) = ((@List.Forall B (f h) l) /\ (ALLPAIRS' _18213 f t l)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))))))))))). Proof. exact (eq_refl (@ALLPAIRS A B)). Qed. -Definition list_of_seq {A : Type'} : (nat -> A) -> nat -> list A := @ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))))))) -> (nat -> A) -> nat -> list A) (fun list_of_seq' : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))))))) -> (nat -> A) -> nat -> list A => forall _18227 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))))), (forall s : nat -> A, (list_of_seq' _18227 s (NUMERAL 0)) = (@nil A)) /\ (forall s : nat -> A, forall n : nat, (list_of_seq' _18227 s (S n)) = (@List.app A (list_of_seq' _18227 s n) (@cons A (s n) (@nil A))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))))))))))))). -Lemma list_of_seq_def {A : Type'} : (@list_of_seq A) = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))))))) -> (nat -> A) -> nat -> list A) (fun list_of_seq' : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))))))) -> (nat -> A) -> nat -> list A => forall _18227 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))))), (forall s : nat -> A, (list_of_seq' _18227 s (NUMERAL 0)) = (@nil A)) /\ (forall s : nat -> A, forall n : nat, (list_of_seq' _18227 s (S n)) = (@List.app A (list_of_seq' _18227 s n) (@cons A (s n) (@nil A))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0))))))))))))))))))). +Definition list_of_seq {A : Type'} : (N -> A) -> N -> list A := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (N -> A) -> N -> list A) (fun list_of_seq' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (N -> A) -> N -> list A => forall _18227 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))), (forall s : N -> A, (list_of_seq' _18227 s (NUMERAL 0%N)) = (@nil A)) /\ (forall s : N -> A, forall n : N, (list_of_seq' _18227 s (N.succ n)) = (@List.app A (list_of_seq' _18227 s n) (@cons A (s n) (@nil A))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))))))))))))). +Lemma list_of_seq_def {A : Type'} : (@list_of_seq A) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (N -> A) -> N -> list A) (fun list_of_seq' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (N -> A) -> N -> list A => forall _18227 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))), (forall s : N -> A, (list_of_seq' _18227 s (NUMERAL 0%N)) = (@nil A)) /\ (forall s : N -> A, forall n : N, (list_of_seq' _18227 s (N.succ n)) = (@List.app A (list_of_seq' _18227 s n) (@cons A (s n) (@nil A))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N))))))))))))))))))). Proof. exact (eq_refl (@list_of_seq A)). Qed. -Definition _22857 : Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Ascii.ascii := fun a0 : Prop => fun a1 : Prop => fun a2 : Prop => fun a3 : Prop => fun a4 : Prop => fun a5 : Prop => fun a6 : Prop => fun a7 : Prop => _mk_char ((fun a0' : Prop => fun a1' : Prop => fun a2' : Prop => fun a3' : Prop => fun a4' : Prop => fun a5' : Prop => fun a6' : Prop => fun a7' : Prop => @CONSTR (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop))))))) (NUMERAL 0) (@pair Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop)))))) a0' (@pair Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop))))) a1' (@pair Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop)))) a2' (@pair Prop (prod Prop (prod Prop (prod Prop Prop))) a3' (@pair Prop (prod Prop (prod Prop Prop)) a4' (@pair Prop (prod Prop Prop) a5' (@pair Prop Prop a6' a7'))))))) (fun n : nat => @BOTTOM (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop))))))))) a0 a1 a2 a3 a4 a5 a6 a7). -Lemma _22857_def : _22857 = (fun a0 : Prop => fun a1 : Prop => fun a2 : Prop => fun a3 : Prop => fun a4 : Prop => fun a5 : Prop => fun a6 : Prop => fun a7 : Prop => _mk_char ((fun a0' : Prop => fun a1' : Prop => fun a2' : Prop => fun a3' : Prop => fun a4' : Prop => fun a5' : Prop => fun a6' : Prop => fun a7' : Prop => @CONSTR (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop))))))) (NUMERAL 0) (@pair Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop)))))) a0' (@pair Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop))))) a1' (@pair Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop)))) a2' (@pair Prop (prod Prop (prod Prop (prod Prop Prop))) a3' (@pair Prop (prod Prop (prod Prop Prop)) a4' (@pair Prop (prod Prop Prop) a5' (@pair Prop Prop a6' a7'))))))) (fun n : nat => @BOTTOM (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop))))))))) a0 a1 a2 a3 a4 a5 a6 a7)). +Definition _22857 : Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Ascii.ascii := fun a0 : Prop => fun a1 : Prop => fun a2 : Prop => fun a3 : Prop => fun a4 : Prop => fun a5 : Prop => fun a6 : Prop => fun a7 : Prop => _mk_char ((fun a0' : Prop => fun a1' : Prop => fun a2' : Prop => fun a3' : Prop => fun a4' : Prop => fun a5' : Prop => fun a6' : Prop => fun a7' : Prop => @CONSTR (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop))))))) (NUMERAL 0%N) (@pair Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop)))))) a0' (@pair Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop))))) a1' (@pair Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop)))) a2' (@pair Prop (prod Prop (prod Prop (prod Prop Prop))) a3' (@pair Prop (prod Prop (prod Prop Prop)) a4' (@pair Prop (prod Prop Prop) a5' (@pair Prop Prop a6' a7'))))))) (fun n : N => @BOTTOM (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop))))))))) a0 a1 a2 a3 a4 a5 a6 a7). +Lemma _22857_def : _22857 = (fun a0 : Prop => fun a1 : Prop => fun a2 : Prop => fun a3 : Prop => fun a4 : Prop => fun a5 : Prop => fun a6 : Prop => fun a7 : Prop => _mk_char ((fun a0' : Prop => fun a1' : Prop => fun a2' : Prop => fun a3' : Prop => fun a4' : Prop => fun a5' : Prop => fun a6' : Prop => fun a7' : Prop => @CONSTR (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop))))))) (NUMERAL 0%N) (@pair Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop)))))) a0' (@pair Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop))))) a1' (@pair Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop)))) a2' (@pair Prop (prod Prop (prod Prop (prod Prop Prop))) a3' (@pair Prop (prod Prop (prod Prop Prop)) a4' (@pair Prop (prod Prop Prop) a5' (@pair Prop Prop a6' a7'))))))) (fun n : N => @BOTTOM (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop (prod Prop Prop))))))))) a0 a1 a2 a3 a4 a5 a6 a7)). Proof. exact (eq_refl _22857). Qed. Definition ASCII : Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Ascii.ascii := _22857. Lemma ASCII_def : ASCII = _22857. Proof. exact (eq_refl ASCII). Qed. -Lemma dist_def : dist = (fun _22947 : prod nat nat => Nat.add (Nat.sub (@fst nat nat _22947) (@snd nat nat _22947)) (Nat.sub (@snd nat nat _22947) (@fst nat nat _22947))). +Lemma dist_def : dist = (fun _22947 : prod N N => N.add (N.sub (@fst N N _22947) (@snd N N _22947)) (N.sub (@snd N N _22947) (@fst N N _22947))). Proof. exact (eq_refl dist). Qed. -Lemma is_nadd_def : is_nadd = (fun _23257 : nat -> nat => exists B : nat, forall m : nat, forall n : nat, Peano.le (dist (@pair nat nat (Nat.mul m (_23257 n)) (Nat.mul n (_23257 m)))) (Nat.mul B (Nat.add m n))). +Lemma is_nadd_def : is_nadd = (fun _23257 : N -> N => exists B : N, forall m : N, forall n : N, N.le (dist (@pair N N (N.mul m (_23257 n)) (N.mul n (_23257 m)))) (N.mul B (N.add m n))). Proof. exact (eq_refl is_nadd). Qed. -Lemma nadd_eq_def : nadd_eq = (fun _23276 : nadd => fun _23277 : nadd => exists B : nat, forall n : nat, Peano.le (dist (@pair nat nat (dest_nadd _23276 n) (dest_nadd _23277 n))) B). +Lemma nadd_eq_def : nadd_eq = (fun _23276 : nadd => fun _23277 : nadd => exists B : N, forall n : N, N.le (dist (@pair N N (dest_nadd _23276 n) (dest_nadd _23277 n))) B). Proof. exact (eq_refl nadd_eq). Qed. -Lemma nadd_of_num_def : nadd_of_num = (fun _23288 : nat => mk_nadd (fun n : nat => Nat.mul _23288 n)). +Lemma nadd_of_num_def : nadd_of_num = (fun _23288 : N => mk_nadd (fun n : N => N.mul _23288 n)). Proof. exact (eq_refl nadd_of_num). Qed. -Lemma nadd_le_def : nadd_le = (fun _23295 : nadd => fun _23296 : nadd => exists B : nat, forall n : nat, Peano.le (dest_nadd _23295 n) (Nat.add (dest_nadd _23296 n) B)). +Lemma nadd_le_def : nadd_le = (fun _23295 : nadd => fun _23296 : nadd => exists B : N, forall n : N, N.le (dest_nadd _23295 n) (N.add (dest_nadd _23296 n) B)). Proof. exact (eq_refl nadd_le). Qed. -Lemma nadd_add_def : nadd_add = (fun _23311 : nadd => fun _23312 : nadd => mk_nadd (fun n : nat => Nat.add (dest_nadd _23311 n) (dest_nadd _23312 n))). +Lemma nadd_add_def : nadd_add = (fun _23311 : nadd => fun _23312 : nadd => mk_nadd (fun n : N => N.add (dest_nadd _23311 n) (dest_nadd _23312 n))). Proof. exact (eq_refl nadd_add). Qed. -Lemma nadd_mul_def : nadd_mul = (fun _23325 : nadd => fun _23326 : nadd => mk_nadd (fun n : nat => dest_nadd _23325 (dest_nadd _23326 n))). +Lemma nadd_mul_def : nadd_mul = (fun _23325 : nadd => fun _23326 : nadd => mk_nadd (fun n : N => dest_nadd _23325 (dest_nadd _23326 n))). Proof. exact (eq_refl nadd_mul). Qed. -Lemma nadd_rinv_def : nadd_rinv = (fun _23462 : nadd => fun n : nat => Nat.div (Nat.mul n n) (dest_nadd _23462 n)). +Lemma nadd_rinv_def : nadd_rinv = (fun _23462 : nadd => fun n : N => N.div (N.mul n n) (dest_nadd _23462 n)). Proof. exact (eq_refl nadd_rinv). Qed. -Lemma nadd_inv_def : nadd_inv = (fun _23476 : nadd => @COND nadd (nadd_eq _23476 (nadd_of_num (NUMERAL 0))) (nadd_of_num (NUMERAL 0)) (mk_nadd (nadd_rinv _23476))). +Lemma nadd_inv_def : nadd_inv = (fun _23476 : nadd => @COND nadd (nadd_eq _23476 (nadd_of_num (NUMERAL 0%N))) (nadd_of_num (NUMERAL 0%N)) (mk_nadd (nadd_rinv _23476))). Proof. exact (eq_refl nadd_inv). Qed. -Lemma hreal_of_num_def : hreal_of_num = (fun m : nat => mk_hreal (fun u : nadd => nadd_eq (nadd_of_num m) u)). +Lemma hreal_of_num_def : hreal_of_num = (fun m : N => mk_hreal (fun u : nadd => nadd_eq (nadd_of_num m) u)). Proof. exact (eq_refl hreal_of_num). Qed. Lemma hreal_add_def : hreal_add = (fun x : hreal => fun y : hreal => mk_hreal (fun u : nadd => exists x' : nadd, exists y' : nadd, (nadd_eq (nadd_add x' y') u) /\ ((dest_hreal x x') /\ (dest_hreal y y')))). Proof. exact (eq_refl hreal_add). Qed. @@ -194,7 +209,7 @@ Lemma hreal_le_def : hreal_le = (fun x : hreal => fun y : hreal => @ε Prop (fun Proof. exact (eq_refl hreal_le). Qed. Lemma hreal_inv_def : hreal_inv = (fun x : hreal => mk_hreal (fun u : nadd => exists x' : nadd, (nadd_eq (nadd_inv x') u) /\ (dest_hreal x x'))). Proof. exact (eq_refl hreal_inv). Qed. -Lemma treal_of_num_def : treal_of_num = (fun _23721 : nat => @pair hreal hreal (hreal_of_num _23721) (hreal_of_num (NUMERAL 0))). +Lemma treal_of_num_def : treal_of_num = (fun _23721 : N => @pair hreal hreal (hreal_of_num _23721) (hreal_of_num (NUMERAL 0%N))). Proof. exact (eq_refl treal_of_num). Qed. Lemma treal_neg_def : treal_neg = (fun _23726 : prod hreal hreal => @pair hreal hreal (@snd hreal hreal _23726) (@fst hreal hreal _23726)). Proof. exact (eq_refl treal_neg). Qed. @@ -204,21 +219,24 @@ Lemma treal_mul_def : treal_mul = (fun _23757 : prod hreal hreal => fun _23758 : Proof. exact (eq_refl treal_mul). Qed. Lemma treal_le_def : treal_le = (fun _23779 : prod hreal hreal => fun _23780 : prod hreal hreal => hreal_le (hreal_add (@fst hreal hreal _23779) (@snd hreal hreal _23780)) (hreal_add (@fst hreal hreal _23780) (@snd hreal hreal _23779))). Proof. exact (eq_refl treal_le). Qed. -Lemma treal_inv_def : treal_inv = (fun _23801 : prod hreal hreal => @COND (prod hreal hreal) ((@fst hreal hreal _23801) = (@snd hreal hreal _23801)) (@pair hreal hreal (hreal_of_num (NUMERAL 0)) (hreal_of_num (NUMERAL 0))) (@COND (prod hreal hreal) (hreal_le (@snd hreal hreal _23801) (@fst hreal hreal _23801)) (@pair hreal hreal (hreal_inv (@ε hreal (fun d : hreal => (@fst hreal hreal _23801) = (hreal_add (@snd hreal hreal _23801) d)))) (hreal_of_num (NUMERAL 0))) (@pair hreal hreal (hreal_of_num (NUMERAL 0)) (hreal_inv (@ε hreal (fun d : hreal => (@snd hreal hreal _23801) = (hreal_add (@fst hreal hreal _23801) d))))))). +Lemma treal_inv_def : treal_inv = (fun _23801 : prod hreal hreal => @COND (prod hreal hreal) ((@fst hreal hreal _23801) = (@snd hreal hreal _23801)) (@pair hreal hreal (hreal_of_num (NUMERAL 0%N)) (hreal_of_num (NUMERAL 0%N))) (@COND (prod hreal hreal) (hreal_le (@snd hreal hreal _23801) (@fst hreal hreal _23801)) (@pair hreal hreal (hreal_inv (@ε hreal (fun d : hreal => (@fst hreal hreal _23801) = (hreal_add (@snd hreal hreal _23801) d)))) (hreal_of_num (NUMERAL 0%N))) (@pair hreal hreal (hreal_of_num (NUMERAL 0%N)) (hreal_inv (@ε hreal (fun d : hreal => (@snd hreal hreal _23801) = (hreal_add (@fst hreal hreal _23801) d))))))). Proof. exact (eq_refl treal_inv). Qed. Lemma treal_eq_def : treal_eq = (fun _23810 : prod hreal hreal => fun _23811 : prod hreal hreal => (hreal_add (@fst hreal hreal _23810) (@snd hreal hreal _23811)) = (hreal_add (@fst hreal hreal _23811) (@snd hreal hreal _23810))). Proof. exact (eq_refl treal_eq). Qed. -Definition real_sgn : R -> R := fun _26598 : R => @COND R (Rlt (INR (NUMERAL 0)) _26598) (INR (NUMERAL (BIT1 0))) (@COND R (Rlt _26598 (INR (NUMERAL 0))) (Ropp (INR (NUMERAL (BIT1 0)))) (INR (NUMERAL 0))). -Lemma real_sgn_def : real_sgn = (fun _26598 : R => @COND R (Rlt (INR (NUMERAL 0)) _26598) (INR (NUMERAL (BIT1 0))) (@COND R (Rlt _26598 (INR (NUMERAL 0))) (Ropp (INR (NUMERAL (BIT1 0)))) (INR (NUMERAL 0)))). +Definition real_pow : R -> N -> R := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) -> R -> N -> R) (fun real_pow' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) -> R -> N -> R => forall _24085 : prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))), (forall x : R, (real_pow' _24085 x (NUMERAL 0%N)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall x : R, forall n : N, (real_pow' _24085 x (N.succ n)) = (Rmult x (real_pow' _24085 x n)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N))))))))))))))). +Lemma real_pow_def : real_pow = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) -> R -> N -> R) (fun real_pow' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) -> R -> N -> R => forall _24085 : prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))), (forall x : R, (real_pow' _24085 x (NUMERAL 0%N)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall x : R, forall n : N, (real_pow' _24085 x (N.succ n)) = (Rmult x (real_pow' _24085 x n)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))))))))))). +Proof. exact (eq_refl real_pow). Qed. +Definition real_sgn : R -> R := fun _26598 : R => @COND R (Rlt (R_of_N (NUMERAL 0%N)) _26598) (R_of_N (NUMERAL (BIT1 0%N))) (@COND R (Rlt _26598 (R_of_N (NUMERAL 0%N))) (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL 0%N))). +Lemma real_sgn_def : real_sgn = (fun _26598 : R => @COND R (Rlt (R_of_N (NUMERAL 0%N)) _26598) (R_of_N (NUMERAL (BIT1 0%N))) (@COND R (Rlt _26598 (R_of_N (NUMERAL 0%N))) (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL 0%N)))). Proof. exact (eq_refl real_sgn). Qed. -Definition sqrt : R -> R := fun _27149 : R => @ε R (fun y : R => ((real_sgn y) = (real_sgn _27149)) /\ ((Rpower_nat y (NUMERAL (BIT0 (BIT1 0)))) = (Rabs _27149))). -Lemma sqrt_def : sqrt = (fun _27149 : R => @ε R (fun y : R => ((real_sgn y) = (real_sgn _27149)) /\ ((Rpower_nat y (NUMERAL (BIT0 (BIT1 0)))) = (Rabs _27149)))). +Definition sqrt : R -> R := fun _27149 : R => @ε R (fun y : R => ((real_sgn y) = (real_sgn _27149)) /\ ((real_pow y (NUMERAL (BIT0 (BIT1 0%N)))) = (Rabs _27149))). +Lemma sqrt_def : sqrt = (fun _27149 : R => @ε R (fun y : R => ((real_sgn y) = (real_sgn _27149)) /\ ((real_pow y (NUMERAL (BIT0 (BIT1 0%N)))) = (Rabs _27149)))). Proof. exact (eq_refl sqrt). Qed. -Definition DECIMAL : nat -> nat -> R := fun _27828 : nat => fun _27829 : nat => Rdiv (INR _27828) (INR _27829). -Lemma DECIMAL_def : DECIMAL = (fun _27828 : nat => fun _27829 : nat => Rdiv (INR _27828) (INR _27829)). +Definition DECIMAL : N -> N -> R := fun _27828 : N => fun _27829 : N => Rdiv (R_of_N _27828) (R_of_N _27829). +Lemma DECIMAL_def : DECIMAL = (fun _27828 : N => fun _27829 : N => Rdiv (R_of_N _27828) (R_of_N _27829)). Proof. exact (eq_refl DECIMAL). Qed. -Definition integer : R -> Prop := fun _28715 : R => exists n : nat, (Rabs _28715) = (INR n). -Lemma integer_def : integer = (fun _28715 : R => exists n : nat, (Rabs _28715) = (INR n)). +Definition integer : R -> Prop := fun _28715 : R => exists n : N, (Rabs _28715) = (R_of_N n). +Lemma integer_def : integer = (fun _28715 : R => exists n : N, (Rabs _28715) = (R_of_N n)). Proof. exact (eq_refl integer). Qed. Definition int_le : Z -> Z -> Prop := fun _28741 : Z => fun _28742 : Z => Rle (IZR _28741) (IZR _28742). Lemma int_le_def : int_le = (fun _28741 : Z => fun _28742 : Z => Rle (IZR _28741) (IZR _28742)). @@ -232,9 +250,6 @@ Proof. exact (eq_refl int_ge). Qed. Definition int_gt : Z -> Z -> Prop := fun _28777 : Z => fun _28778 : Z => Rgt (IZR _28777) (IZR _28778). Lemma int_gt_def : int_gt = (fun _28777 : Z => fun _28778 : Z => Rgt (IZR _28777) (IZR _28778)). Proof. exact (eq_refl int_gt). Qed. -Definition int_of_num : nat -> Z := fun _28789 : nat => int_of_real (INR _28789). -Lemma int_of_num_def : int_of_num = (fun _28789 : nat => int_of_real (INR _28789)). -Proof. exact (eq_refl int_of_num). Qed. Definition int_neg : Z -> Z := fun _28794 : Z => int_of_real (Ropp (IZR _28794)). Lemma int_neg_def : int_neg = (fun _28794 : Z => int_of_real (Ropp (IZR _28794))). Proof. exact (eq_refl int_neg). Qed. @@ -259,14 +274,14 @@ Proof. exact (eq_refl int_max). Qed. Definition int_min : Z -> Z -> Z := fun _28956 : Z => fun _28957 : Z => int_of_real (Rmin (IZR _28956) (IZR _28957)). Lemma int_min_def : int_min = (fun _28956 : Z => fun _28957 : Z => int_of_real (Rmin (IZR _28956) (IZR _28957))). Proof. exact (eq_refl int_min). Qed. -Definition int_pow : Z -> nat -> Z := fun _28974 : Z => fun _28975 : nat => int_of_real (Rpower_nat (IZR _28974) _28975). -Lemma int_pow_def : int_pow = (fun _28974 : Z => fun _28975 : nat => int_of_real (Rpower_nat (IZR _28974) _28975)). +Definition int_pow : Z -> N -> Z := fun _28974 : Z => fun _28975 : N => int_of_real (real_pow (IZR _28974) _28975). +Lemma int_pow_def : int_pow = (fun _28974 : Z => fun _28975 : N => int_of_real (real_pow (IZR _28974) _28975)). Proof. exact (eq_refl int_pow). Qed. -Definition div : Z -> Z -> Z := @ε ((prod nat (prod nat nat)) -> Z -> Z -> Z) (fun q : (prod nat (prod nat nat)) -> Z -> Z -> Z => forall _29326 : prod nat (prod nat nat), exists r : Z -> Z -> Z, forall m : Z, forall n : Z, @COND Prop (n = (int_of_num (NUMERAL 0))) (((q _29326 m n) = (int_of_num (NUMERAL 0))) /\ ((r m n) = m)) ((int_le (int_of_num (NUMERAL 0)) (r m n)) /\ ((int_lt (r m n) (int_abs n)) /\ (m = (int_add (int_mul (q _29326 m n) n) (r m n)))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))))). -Lemma div_def : div = (@ε ((prod nat (prod nat nat)) -> Z -> Z -> Z) (fun q : (prod nat (prod nat nat)) -> Z -> Z -> Z => forall _29326 : prod nat (prod nat nat), exists r : Z -> Z -> Z, forall m : Z, forall n : Z, @COND Prop (n = (int_of_num (NUMERAL 0))) (((q _29326 m n) = (int_of_num (NUMERAL 0))) /\ ((r m n) = m)) ((int_le (int_of_num (NUMERAL 0)) (r m n)) /\ ((int_lt (r m n) (int_abs n)) /\ (m = (int_add (int_mul (q _29326 m n) n) (r m n)))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0))))))))))). +Definition div : Z -> Z -> Z := @ε ((prod N (prod N N)) -> Z -> Z -> Z) (fun q : (prod N (prod N N)) -> Z -> Z -> Z => forall _29326 : prod N (prod N N), exists r : Z -> Z -> Z, forall m : Z, forall n : Z, @COND Prop (n = (Z_of_N (NUMERAL 0%N))) (((q _29326 m n) = (Z_of_N (NUMERAL 0%N))) /\ ((r m n) = m)) ((int_le (Z_of_N (NUMERAL 0%N)) (r m n)) /\ ((int_lt (r m n) (int_abs n)) /\ (m = (int_add (int_mul (q _29326 m n) n) (r m n)))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))))). +Lemma div_def : div = (@ε ((prod N (prod N N)) -> Z -> Z -> Z) (fun q : (prod N (prod N N)) -> Z -> Z -> Z => forall _29326 : prod N (prod N N), exists r : Z -> Z -> Z, forall m : Z, forall n : Z, @COND Prop (n = (Z_of_N (NUMERAL 0%N))) (((q _29326 m n) = (Z_of_N (NUMERAL 0%N))) /\ ((r m n) = m)) ((int_le (Z_of_N (NUMERAL 0%N)) (r m n)) /\ ((int_lt (r m n) (int_abs n)) /\ (m = (int_add (int_mul (q _29326 m n) n) (r m n)))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N))))))))))). Proof. exact (eq_refl div). Qed. -Definition rem : Z -> Z -> Z := @ε ((prod nat (prod nat nat)) -> Z -> Z -> Z) (fun r : (prod nat (prod nat nat)) -> Z -> Z -> Z => forall _29327 : prod nat (prod nat nat), forall m : Z, forall n : Z, @COND Prop (n = (int_of_num (NUMERAL 0))) (((div m n) = (int_of_num (NUMERAL 0))) /\ ((r _29327 m n) = m)) ((int_le (int_of_num (NUMERAL 0)) (r _29327 m n)) /\ ((int_lt (r _29327 m n) (int_abs n)) /\ (m = (int_add (int_mul (div m n) n) (r _29327 m n)))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))))). -Lemma rem_def : rem = (@ε ((prod nat (prod nat nat)) -> Z -> Z -> Z) (fun r : (prod nat (prod nat nat)) -> Z -> Z -> Z => forall _29327 : prod nat (prod nat nat), forall m : Z, forall n : Z, @COND Prop (n = (int_of_num (NUMERAL 0))) (((div m n) = (int_of_num (NUMERAL 0))) /\ ((r _29327 m n) = m)) ((int_le (int_of_num (NUMERAL 0)) (r _29327 m n)) /\ ((int_lt (r _29327 m n) (int_abs n)) /\ (m = (int_add (int_mul (div m n) n) (r _29327 m n)))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0))))))))))). +Definition rem : Z -> Z -> Z := @ε ((prod N (prod N N)) -> Z -> Z -> Z) (fun r : (prod N (prod N N)) -> Z -> Z -> Z => forall _29327 : prod N (prod N N), forall m : Z, forall n : Z, @COND Prop (n = (Z_of_N (NUMERAL 0%N))) (((div m n) = (Z_of_N (NUMERAL 0%N))) /\ ((r _29327 m n) = m)) ((int_le (Z_of_N (NUMERAL 0%N)) (r _29327 m n)) /\ ((int_lt (r _29327 m n) (int_abs n)) /\ (m = (int_add (int_mul (div m n) n) (r _29327 m n)))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))). +Lemma rem_def : rem = (@ε ((prod N (prod N N)) -> Z -> Z -> Z) (fun r : (prod N (prod N N)) -> Z -> Z -> Z => forall _29327 : prod N (prod N N), forall m : Z, forall n : Z, @COND Prop (n = (Z_of_N (NUMERAL 0%N))) (((div m n) = (Z_of_N (NUMERAL 0%N))) /\ ((r _29327 m n) = m)) ((int_le (Z_of_N (NUMERAL 0%N)) (r _29327 m n)) /\ ((int_lt (r _29327 m n) (int_abs n)) /\ (m = (int_add (int_mul (div m n) n) (r _29327 m n)))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))). Proof. exact (eq_refl rem). Qed. Definition eq2 {A : Type'} : A -> A -> (A -> A -> Prop) -> Prop := fun _29602 : A => fun _29603 : A => fun _29604 : A -> A -> Prop => _29604 _29602 _29603. Lemma eq2_def {A : Type'} : (@eq2 A) = (fun _29602 : A => fun _29603 : A => fun _29604 : A -> A -> Prop => _29604 _29602 _29603). @@ -280,38 +295,38 @@ Proof. exact (eq_refl int_divides). Qed. Definition int_mod : Z -> Z -> Z -> Prop := fun _29664 : Z => fun _29665 : Z => fun _29666 : Z => int_divides _29664 (int_sub _29665 _29666). Lemma int_mod_def : int_mod = (fun _29664 : Z => fun _29665 : Z => fun _29666 : Z => int_divides _29664 (int_sub _29665 _29666)). Proof. exact (eq_refl int_mod). Qed. -Definition int_coprime : (prod Z Z) -> Prop := fun _29691 : prod Z Z => exists x : Z, exists y : Z, (int_add (int_mul (@fst Z Z _29691) x) (int_mul (@snd Z Z _29691) y)) = (int_of_num (NUMERAL (BIT1 0))). -Lemma int_coprime_def : int_coprime = (fun _29691 : prod Z Z => exists x : Z, exists y : Z, (int_add (int_mul (@fst Z Z _29691) x) (int_mul (@snd Z Z _29691) y)) = (int_of_num (NUMERAL (BIT1 0)))). +Definition int_coprime : (prod Z Z) -> Prop := fun _29691 : prod Z Z => exists x : Z, exists y : Z, (int_add (int_mul (@fst Z Z _29691) x) (int_mul (@snd Z Z _29691) y)) = (Z_of_N (NUMERAL (BIT1 0%N))). +Lemma int_coprime_def : int_coprime = (fun _29691 : prod Z Z => exists x : Z, exists y : Z, (int_add (int_mul (@fst Z Z _29691) x) (int_mul (@snd Z Z _29691) y)) = (Z_of_N (NUMERAL (BIT1 0%N)))). Proof. exact (eq_refl int_coprime). Qed. -Definition int_gcd : (prod Z Z) -> Z := @ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) -> (prod Z Z) -> Z) (fun d : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) -> (prod Z Z) -> Z => forall _30960 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))), forall a : Z, forall b : Z, (int_le (int_of_num (NUMERAL 0)) (d _30960 (@pair Z Z a b))) /\ ((int_divides (d _30960 (@pair Z Z a b)) a) /\ ((int_divides (d _30960 (@pair Z Z a b)) b) /\ (exists x : Z, exists y : Z, (d _30960 (@pair Z Z a b)) = (int_add (int_mul a x) (int_mul b y)))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))))))))). -Lemma int_gcd_def : int_gcd = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) -> (prod Z Z) -> Z) (fun d : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) -> (prod Z Z) -> Z => forall _30960 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))), forall a : Z, forall b : Z, (int_le (int_of_num (NUMERAL 0)) (d _30960 (@pair Z Z a b))) /\ ((int_divides (d _30960 (@pair Z Z a b)) a) /\ ((int_divides (d _30960 (@pair Z Z a b)) b) /\ (exists x : Z, exists y : Z, (d _30960 (@pair Z Z a b)) = (int_add (int_mul a x) (int_mul b y)))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0))))))))))))))). +Definition int_gcd : (prod Z Z) -> Z := @ε ((prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (prod Z Z) -> Z) (fun d : (prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (prod Z Z) -> Z => forall _30960 : prod N (prod N (prod N (prod N (prod N (prod N N))))), forall a : Z, forall b : Z, (int_le (Z_of_N (NUMERAL 0%N)) (d _30960 (@pair Z Z a b))) /\ ((int_divides (d _30960 (@pair Z Z a b)) a) /\ ((int_divides (d _30960 (@pair Z Z a b)) b) /\ (exists x : Z, exists y : Z, (d _30960 (@pair Z Z a b)) = (int_add (int_mul a x) (int_mul b y)))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))))))). +Lemma int_gcd_def : int_gcd = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (prod Z Z) -> Z) (fun d : (prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (prod Z Z) -> Z => forall _30960 : prod N (prod N (prod N (prod N (prod N (prod N N))))), forall a : Z, forall b : Z, (int_le (Z_of_N (NUMERAL 0%N)) (d _30960 (@pair Z Z a b))) /\ ((int_divides (d _30960 (@pair Z Z a b)) a) /\ ((int_divides (d _30960 (@pair Z Z a b)) b) /\ (exists x : Z, exists y : Z, (d _30960 (@pair Z Z a b)) = (int_add (int_mul a x) (int_mul b y)))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))))))). Proof. exact (eq_refl int_gcd). Qed. -Definition int_lcm : (prod Z Z) -> Z := fun _30961 : prod Z Z => @COND Z ((int_mul (@fst Z Z _30961) (@snd Z Z _30961)) = (int_of_num (NUMERAL 0))) (int_of_num (NUMERAL 0)) (div (int_abs (int_mul (@fst Z Z _30961) (@snd Z Z _30961))) (int_gcd (@pair Z Z (@fst Z Z _30961) (@snd Z Z _30961)))). -Lemma int_lcm_def : int_lcm = (fun _30961 : prod Z Z => @COND Z ((int_mul (@fst Z Z _30961) (@snd Z Z _30961)) = (int_of_num (NUMERAL 0))) (int_of_num (NUMERAL 0)) (div (int_abs (int_mul (@fst Z Z _30961) (@snd Z Z _30961))) (int_gcd (@pair Z Z (@fst Z Z _30961) (@snd Z Z _30961))))). +Definition int_lcm : (prod Z Z) -> Z := fun _30961 : prod Z Z => @COND Z ((int_mul (@fst Z Z _30961) (@snd Z Z _30961)) = (Z_of_N (NUMERAL 0%N))) (Z_of_N (NUMERAL 0%N)) (div (int_abs (int_mul (@fst Z Z _30961) (@snd Z Z _30961))) (int_gcd (@pair Z Z (@fst Z Z _30961) (@snd Z Z _30961)))). +Lemma int_lcm_def : int_lcm = (fun _30961 : prod Z Z => @COND Z ((int_mul (@fst Z Z _30961) (@snd Z Z _30961)) = (Z_of_N (NUMERAL 0%N))) (Z_of_N (NUMERAL 0%N)) (div (int_abs (int_mul (@fst Z Z _30961) (@snd Z Z _30961))) (int_gcd (@pair Z Z (@fst Z Z _30961) (@snd Z Z _30961))))). Proof. exact (eq_refl int_lcm). Qed. -Definition num_of_int : Z -> nat := fun _31234 : Z => @ε nat (fun n : nat => (int_of_num n) = _31234). -Lemma num_of_int_def : num_of_int = (fun _31234 : Z => @ε nat (fun n : nat => (int_of_num n) = _31234)). +Definition num_of_int : Z -> N := fun _31234 : Z => @ε N (fun n : N => (Z_of_N n) = _31234). +Lemma num_of_int_def : num_of_int = (fun _31234 : Z => @ε N (fun n : N => (Z_of_N n) = _31234)). Proof. exact (eq_refl num_of_int). Qed. -Definition num_divides : nat -> nat -> Prop := fun _31266 : nat => fun _31267 : nat => int_divides (int_of_num _31266) (int_of_num _31267). -Lemma num_divides_def : num_divides = (fun _31266 : nat => fun _31267 : nat => int_divides (int_of_num _31266) (int_of_num _31267)). +Definition num_divides : N -> N -> Prop := fun _31266 : N => fun _31267 : N => int_divides (Z_of_N _31266) (Z_of_N _31267). +Lemma num_divides_def : num_divides = (fun _31266 : N => fun _31267 : N => int_divides (Z_of_N _31266) (Z_of_N _31267)). Proof. exact (eq_refl num_divides). Qed. -Definition num_mod : nat -> nat -> nat -> Prop := fun _31278 : nat => fun _31279 : nat => fun _31280 : nat => int_mod (int_of_num _31278) (int_of_num _31279) (int_of_num _31280). -Lemma num_mod_def : num_mod = (fun _31278 : nat => fun _31279 : nat => fun _31280 : nat => int_mod (int_of_num _31278) (int_of_num _31279) (int_of_num _31280)). +Definition num_mod : N -> N -> N -> Prop := fun _31278 : N => fun _31279 : N => fun _31280 : N => int_mod (Z_of_N _31278) (Z_of_N _31279) (Z_of_N _31280). +Lemma num_mod_def : num_mod = (fun _31278 : N => fun _31279 : N => fun _31280 : N => int_mod (Z_of_N _31278) (Z_of_N _31279) (Z_of_N _31280)). Proof. exact (eq_refl num_mod). Qed. -Definition num_coprime : (prod nat nat) -> Prop := fun _31299 : prod nat nat => int_coprime (@pair Z Z (int_of_num (@fst nat nat _31299)) (int_of_num (@snd nat nat _31299))). -Lemma num_coprime_def : num_coprime = (fun _31299 : prod nat nat => int_coprime (@pair Z Z (int_of_num (@fst nat nat _31299)) (int_of_num (@snd nat nat _31299)))). +Definition num_coprime : (prod N N) -> Prop := fun _31299 : prod N N => int_coprime (@pair Z Z (Z_of_N (@fst N N _31299)) (Z_of_N (@snd N N _31299))). +Lemma num_coprime_def : num_coprime = (fun _31299 : prod N N => int_coprime (@pair Z Z (Z_of_N (@fst N N _31299)) (Z_of_N (@snd N N _31299)))). Proof. exact (eq_refl num_coprime). Qed. -Definition num_gcd : (prod nat nat) -> nat := fun _31308 : prod nat nat => num_of_int (int_gcd (@pair Z Z (int_of_num (@fst nat nat _31308)) (int_of_num (@snd nat nat _31308)))). -Lemma num_gcd_def : num_gcd = (fun _31308 : prod nat nat => num_of_int (int_gcd (@pair Z Z (int_of_num (@fst nat nat _31308)) (int_of_num (@snd nat nat _31308))))). +Definition num_gcd : (prod N N) -> N := fun _31308 : prod N N => num_of_int (int_gcd (@pair Z Z (Z_of_N (@fst N N _31308)) (Z_of_N (@snd N N _31308)))). +Lemma num_gcd_def : num_gcd = (fun _31308 : prod N N => num_of_int (int_gcd (@pair Z Z (Z_of_N (@fst N N _31308)) (Z_of_N (@snd N N _31308))))). Proof. exact (eq_refl num_gcd). Qed. -Definition num_lcm : (prod nat nat) -> nat := fun _31317 : prod nat nat => num_of_int (int_lcm (@pair Z Z (int_of_num (@fst nat nat _31317)) (int_of_num (@snd nat nat _31317)))). -Lemma num_lcm_def : num_lcm = (fun _31317 : prod nat nat => num_of_int (int_lcm (@pair Z Z (int_of_num (@fst nat nat _31317)) (int_of_num (@snd nat nat _31317))))). +Definition num_lcm : (prod N N) -> N := fun _31317 : prod N N => num_of_int (int_lcm (@pair Z Z (Z_of_N (@fst N N _31317)) (Z_of_N (@snd N N _31317)))). +Lemma num_lcm_def : num_lcm = (fun _31317 : prod N N => num_of_int (int_lcm (@pair Z Z (Z_of_N (@fst N N _31317)) (Z_of_N (@snd N N _31317))))). Proof. exact (eq_refl num_lcm). Qed. -Definition prime : nat -> Prop := fun _32102 : nat => (~ (_32102 = (NUMERAL (BIT1 0)))) /\ (forall x : nat, (num_divides x _32102) -> (x = (NUMERAL (BIT1 0))) \/ (x = _32102)). -Lemma prime_def : prime = (fun _32102 : nat => (~ (_32102 = (NUMERAL (BIT1 0)))) /\ (forall x : nat, (num_divides x _32102) -> (x = (NUMERAL (BIT1 0))) \/ (x = _32102))). +Definition prime : N -> Prop := fun _32102 : N => (~ (_32102 = (NUMERAL (BIT1 0%N)))) /\ (forall x : N, (num_divides x _32102) -> (x = (NUMERAL (BIT1 0%N))) \/ (x = _32102)). +Lemma prime_def : prime = (fun _32102 : N => (~ (_32102 = (NUMERAL (BIT1 0%N)))) /\ (forall x : N, (num_divides x _32102) -> (x = (NUMERAL (BIT1 0%N))) \/ (x = _32102))). Proof. exact (eq_refl prime). Qed. -Definition real_zpow : R -> Z -> R := fun _32260 : R => fun _32261 : Z => @COND R (int_le (int_of_num (NUMERAL 0)) _32261) (Rpower_nat _32260 (num_of_int _32261)) (Rinv (Rpower_nat _32260 (num_of_int (int_neg _32261)))). -Lemma real_zpow_def : real_zpow = (fun _32260 : R => fun _32261 : Z => @COND R (int_le (int_of_num (NUMERAL 0)) _32261) (Rpower_nat _32260 (num_of_int _32261)) (Rinv (Rpower_nat _32260 (num_of_int (int_neg _32261))))). +Definition real_zpow : R -> Z -> R := fun _32260 : R => fun _32261 : Z => @COND R (int_le (Z_of_N (NUMERAL 0%N)) _32261) (real_pow _32260 (num_of_int _32261)) (Rinv (real_pow _32260 (num_of_int (int_neg _32261)))). +Lemma real_zpow_def : real_zpow = (fun _32260 : R => fun _32261 : Z => @COND R (int_le (Z_of_N (NUMERAL 0%N)) _32261) (real_pow _32260 (num_of_int _32261)) (Rinv (real_pow _32260 (num_of_int (int_neg _32261))))). Proof. exact (eq_refl real_zpow). Qed. Definition IN {A : Type'} : A -> (A -> Prop) -> Prop := fun _32317 : A => fun _32318 : A -> Prop => _32318 _32317. Lemma IN_def {A : Type'} : (@IN A) = (fun _32317 : A => fun _32318 : A -> Prop => _32318 _32317). @@ -385,17 +400,17 @@ Proof. exact (eq_refl (@CHOICE A)). Qed. Definition REST {A : Type'} : (A -> Prop) -> A -> Prop := fun _32573 : A -> Prop => @DELETE A _32573 (@CHOICE A _32573). Lemma REST_def {A : Type'} : (@REST A) = (fun _32573 : A -> Prop => @DELETE A _32573 (@CHOICE A _32573)). Proof. exact (eq_refl (@REST A)). Qed. -Definition FINREC {A B : Type'} : (A -> B -> B) -> B -> (A -> Prop) -> B -> nat -> Prop := @ε ((prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> (A -> B -> B) -> B -> (A -> Prop) -> B -> nat -> Prop) (fun FINREC' : (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> (A -> B -> B) -> B -> (A -> Prop) -> B -> nat -> Prop => forall _42175 : prod nat (prod nat (prod nat (prod nat (prod nat nat)))), (forall f : A -> B -> B, forall s : A -> Prop, forall a : B, forall b : B, (FINREC' _42175 f b s a (NUMERAL 0)) = ((s = (@EMPTY A)) /\ (a = b))) /\ (forall b : B, forall s : A -> Prop, forall n : nat, forall a : B, forall f : A -> B -> B, (FINREC' _42175 f b s a (S n)) = (exists x : A, exists c : B, (@IN A x s) /\ ((FINREC' _42175 f b (@DELETE A s x) c n) /\ (a = (f x c)))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0))))))))))))). -Lemma FINREC_def {A B : Type'} : (@FINREC A B) = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> (A -> B -> B) -> B -> (A -> Prop) -> B -> nat -> Prop) (fun FINREC' : (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) -> (A -> B -> B) -> B -> (A -> Prop) -> B -> nat -> Prop => forall _42175 : prod nat (prod nat (prod nat (prod nat (prod nat nat)))), (forall f : A -> B -> B, forall s : A -> Prop, forall a : B, forall b : B, (FINREC' _42175 f b s a (NUMERAL 0)) = ((s = (@EMPTY A)) /\ (a = b))) /\ (forall b : B, forall s : A -> Prop, forall n : nat, forall a : B, forall f : A -> B -> B, (FINREC' _42175 f b s a (S n)) = (exists x : A, exists c : B, (@IN A x s) /\ ((FINREC' _42175 f b (@DELETE A s x) c n) /\ (a = (f x c)))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))))))))). +Definition FINREC {A B : Type'} : (A -> B -> B) -> B -> (A -> Prop) -> B -> N -> Prop := @ε ((prod N (prod N (prod N (prod N (prod N N))))) -> (A -> B -> B) -> B -> (A -> Prop) -> B -> N -> Prop) (fun FINREC' : (prod N (prod N (prod N (prod N (prod N N))))) -> (A -> B -> B) -> B -> (A -> Prop) -> B -> N -> Prop => forall _42175 : prod N (prod N (prod N (prod N (prod N N)))), (forall f : A -> B -> B, forall s : A -> Prop, forall a : B, forall b : B, (FINREC' _42175 f b s a (NUMERAL 0%N)) = ((s = (@EMPTY A)) /\ (a = b))) /\ (forall b : B, forall s : A -> Prop, forall n : N, forall a : B, forall f : A -> B -> B, (FINREC' _42175 f b s a (N.succ n)) = (exists x : A, exists c : B, (@IN A x s) /\ ((FINREC' _42175 f b (@DELETE A s x) c n) /\ (a = (f x c)))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N))))))))))))). +Lemma FINREC_def {A B : Type'} : (@FINREC A B) = (@ε ((prod N (prod N (prod N (prod N (prod N N))))) -> (A -> B -> B) -> B -> (A -> Prop) -> B -> N -> Prop) (fun FINREC' : (prod N (prod N (prod N (prod N (prod N N))))) -> (A -> B -> B) -> B -> (A -> Prop) -> B -> N -> Prop => forall _42175 : prod N (prod N (prod N (prod N (prod N N)))), (forall f : A -> B -> B, forall s : A -> Prop, forall a : B, forall b : B, (FINREC' _42175 f b s a (NUMERAL 0%N)) = ((s = (@EMPTY A)) /\ (a = b))) /\ (forall b : B, forall s : A -> Prop, forall n : N, forall a : B, forall f : A -> B -> B, (FINREC' _42175 f b s a (N.succ n)) = (exists x : A, exists c : B, (@IN A x s) /\ ((FINREC' _42175 f b (@DELETE A s x) c n) /\ (a = (f x c)))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))))))))). Proof. exact (eq_refl (@FINREC A B)). Qed. Definition ITSET {A B : Type'} : (A -> B -> B) -> (A -> Prop) -> B -> B := fun _43025 : A -> B -> B => fun _43026 : A -> Prop => fun _43027 : B => @ε ((A -> Prop) -> B) (fun g : (A -> Prop) -> B => ((g (@EMPTY A)) = _43027) /\ (forall x : A, forall s : A -> Prop, (@FINITE A s) -> (g (@INSERT A x s)) = (@COND B (@IN A x s) (g s) (_43025 x (g s))))) _43026. Lemma ITSET_def {A B : Type'} : (@ITSET A B) = (fun _43025 : A -> B -> B => fun _43026 : A -> Prop => fun _43027 : B => @ε ((A -> Prop) -> B) (fun g : (A -> Prop) -> B => ((g (@EMPTY A)) = _43027) /\ (forall x : A, forall s : A -> Prop, (@FINITE A s) -> (g (@INSERT A x s)) = (@COND B (@IN A x s) (g s) (_43025 x (g s))))) _43026). Proof. exact (eq_refl (@ITSET A B)). Qed. -Definition CARD {A : Type'} : (A -> Prop) -> nat := fun _43228 : A -> Prop => @ITSET A nat (fun x : A => fun n : nat => S n) _43228 (NUMERAL 0). -Lemma CARD_def {A : Type'} : (@CARD A) = (fun _43228 : A -> Prop => @ITSET A nat (fun x : A => fun n : nat => S n) _43228 (NUMERAL 0)). +Definition CARD {A : Type'} : (A -> Prop) -> N := fun _43228 : A -> Prop => @ITSET A N (fun x : A => fun n : N => N.succ n) _43228 (NUMERAL 0%N). +Lemma CARD_def {A : Type'} : (@CARD A) = (fun _43228 : A -> Prop => @ITSET A N (fun x : A => fun n : N => N.succ n) _43228 (NUMERAL 0%N)). Proof. exact (eq_refl (@CARD A)). Qed. -Definition HAS_SIZE {A : Type'} : (A -> Prop) -> nat -> Prop := fun _43403 : A -> Prop => fun _43404 : nat => (@FINITE A _43403) /\ ((@CARD A _43403) = _43404). -Lemma HAS_SIZE_def {A : Type'} : (@HAS_SIZE A) = (fun _43403 : A -> Prop => fun _43404 : nat => (@FINITE A _43403) /\ ((@CARD A _43403) = _43404)). +Definition HAS_SIZE {A : Type'} : (A -> Prop) -> N -> Prop := fun _43403 : A -> Prop => fun _43404 : N => (@FINITE A _43403) /\ ((@CARD A _43403) = _43404). +Lemma HAS_SIZE_def {A : Type'} : (@HAS_SIZE A) = (fun _43403 : A -> Prop => fun _43404 : N => (@FINITE A _43403) /\ ((@CARD A _43403) = _43404)). Proof. exact (eq_refl (@HAS_SIZE A)). Qed. Definition CROSS {A B : Type'} : (A -> Prop) -> (B -> Prop) -> (prod A B) -> Prop := fun _47322 : A -> Prop => fun _47323 : B -> Prop => @GSPEC (prod A B) (fun GEN_PVAR_132 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_132 ((@IN A x _47322) /\ (@IN B y _47323)) (@pair A B x y)). Lemma CROSS_def {A B : Type'} : (@CROSS A B) = (fun _47322 : A -> Prop => fun _47323 : B -> Prop => @GSPEC (prod A B) (fun GEN_PVAR_132 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_132 ((@IN A x _47322) /\ (@IN B y _47323)) (@pair A B x y))). @@ -418,11 +433,11 @@ Proof. exact (eq_refl (@product_map A B K)). Qed. Definition disjoint_union {A K : Type'} : (K -> Prop) -> (K -> A -> Prop) -> (prod K A) -> Prop := fun _49528 : K -> Prop => fun _49529 : K -> A -> Prop => @GSPEC (prod K A) (fun GEN_PVAR_145 : prod K A => exists i : K, exists x : A, @SETSPEC (prod K A) GEN_PVAR_145 ((@IN K i _49528) /\ (@IN A x (_49529 i))) (@pair K A i x)). Lemma disjoint_union_def {A K : Type'} : (@disjoint_union A K) = (fun _49528 : K -> Prop => fun _49529 : K -> A -> Prop => @GSPEC (prod K A) (fun GEN_PVAR_145 : prod K A => exists i : K, exists x : A, @SETSPEC (prod K A) GEN_PVAR_145 ((@IN K i _49528) /\ (@IN A x (_49529 i))) (@pair K A i x))). Proof. exact (eq_refl (@disjoint_union A K)). Qed. -Definition set_of_list {A : Type'} : (list A) -> A -> Prop := @ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))))))) -> (list A) -> A -> Prop) (fun set_of_list' : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))))))) -> (list A) -> A -> Prop => forall _56425 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))))), ((set_of_list' _56425 (@nil A)) = (@EMPTY A)) /\ (forall h : A, forall t : list A, (set_of_list' _56425 (@cons A h t)) = (@INSERT A h (set_of_list' _56425 t)))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))))))))))))). -Lemma set_of_list_def {A : Type'} : (@set_of_list A) = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))))))) -> (list A) -> A -> Prop) (fun set_of_list' : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))))))) -> (list A) -> A -> Prop => forall _56425 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))))), ((set_of_list' _56425 (@nil A)) = (@EMPTY A)) /\ (forall h : A, forall t : list A, (set_of_list' _56425 (@cons A h t)) = (@INSERT A h (set_of_list' _56425 t)))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0))))))))))))))))))). +Definition set_of_list {A : Type'} : (list A) -> A -> Prop := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (list A) -> A -> Prop) (fun set_of_list' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (list A) -> A -> Prop => forall _56425 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))), ((set_of_list' _56425 (@nil A)) = (@EMPTY A)) /\ (forall h : A, forall t : list A, (set_of_list' _56425 (@cons A h t)) = (@INSERT A h (set_of_list' _56425 t)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))))))))))))). +Lemma set_of_list_def {A : Type'} : (@set_of_list A) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (list A) -> A -> Prop) (fun set_of_list' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (list A) -> A -> Prop => forall _56425 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))), ((set_of_list' _56425 (@nil A)) = (@EMPTY A)) /\ (forall h : A, forall t : list A, (set_of_list' _56425 (@cons A h t)) = (@INSERT A h (set_of_list' _56425 t)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N))))))))))))))))))). Proof. exact (eq_refl (@set_of_list A)). Qed. -Definition list_of_set {A : Type'} : (A -> Prop) -> list A := fun _56426 : A -> Prop => @ε (list A) (fun l : list A => ((@set_of_list A l) = _56426) /\ ((@List.length A l) = (@CARD A _56426))). -Lemma list_of_set_def {A : Type'} : (@list_of_set A) = (fun _56426 : A -> Prop => @ε (list A) (fun l : list A => ((@set_of_list A l) = _56426) /\ ((@List.length A l) = (@CARD A _56426)))). +Definition list_of_set {A : Type'} : (A -> Prop) -> list A := fun _56426 : A -> Prop => @ε (list A) (fun l : list A => ((@set_of_list A l) = _56426) /\ ((@LENGTH A l) = (@CARD A _56426))). +Lemma list_of_set_def {A : Type'} : (@list_of_set A) = (fun _56426 : A -> Prop => @ε (list A) (fun l : list A => ((@set_of_list A l) = _56426) /\ ((@LENGTH A l) = (@CARD A _56426)))). Proof. exact (eq_refl (@list_of_set A)). Qed. Definition pairwise {A : Type'} : (A -> A -> Prop) -> (A -> Prop) -> Prop := fun _56616 : A -> A -> Prop => fun _56617 : A -> Prop => forall x : A, forall y : A, ((@IN A x _56617) /\ ((@IN A y _56617) /\ (~ (x = y)))) -> _56616 x y. Lemma pairwise_def {A : Type'} : (@pairwise A) = (fun _56616 : A -> A -> Prop => fun _56617 : A -> Prop => forall x : A, forall y : A, ((@IN A x _56617) /\ ((@IN A y _56617) /\ (~ (x = y)))) -> _56616 x y). @@ -451,8 +466,8 @@ Proof. exact (eq_refl (@ge_c A B)). Qed. Definition gt_c {A B : Type'} : (A -> Prop) -> (B -> Prop) -> Prop := fun _64119 : A -> Prop => fun _64120 : B -> Prop => @lt_c B A _64120 _64119. Lemma gt_c_def {A B : Type'} : (@gt_c A B) = (fun _64119 : A -> Prop => fun _64120 : B -> Prop => @lt_c B A _64120 _64119). Proof. exact (eq_refl (@gt_c A B)). Qed. -Definition COUNTABLE {A : Type'} : (A -> Prop) -> Prop := fun _64270 : A -> Prop => @ge_c nat A (@UNIV nat) _64270. -Lemma COUNTABLE_def {A : Type'} : (@COUNTABLE A) = (fun _64270 : A -> Prop => @ge_c nat A (@UNIV nat) _64270). +Definition COUNTABLE {A : Type'} : (A -> Prop) -> Prop := fun _64270 : A -> Prop => @ge_c N A (@UNIV N) _64270. +Lemma COUNTABLE_def {A : Type'} : (@COUNTABLE A) = (fun _64270 : A -> Prop => @ge_c N A (@UNIV N) _64270). Proof. exact (eq_refl (@COUNTABLE A)). Qed. Definition sup : (R -> Prop) -> R := fun _64275 : R -> Prop => @ε R (fun a : R => (forall x : R, (@IN R x _64275) -> Rle x a) /\ (forall b : R, (forall x : R, (@IN R x _64275) -> Rle x b) -> Rle a b)). Lemma sup_def : sup = (fun _64275 : R -> Prop => @ε R (fun a : R => (forall x : R, (@IN R x _64275) -> Rle x a) /\ (forall b : R, (forall x : R, (@IN R x _64275) -> Rle x b) -> Rle a b))). @@ -466,8 +481,8 @@ Proof. exact (eq_refl has_inf). Qed. Definition has_sup : (R -> Prop) -> R -> Prop := fun _66496 : R -> Prop => fun _66497 : R => forall c : R, (forall x : R, (@IN R x _66496) -> Rle x c) = (Rle _66497 c). Lemma has_sup_def : has_sup = (fun _66496 : R -> Prop => fun _66497 : R => forall c : R, (forall x : R, (@IN R x _66496) -> Rle x c) = (Rle _66497 c)). Proof. exact (eq_refl has_sup). Qed. -Definition dotdot : nat -> nat -> nat -> Prop := fun _66922 : nat => fun _66923 : nat => @GSPEC nat (fun GEN_PVAR_231 : nat => exists x : nat, @SETSPEC nat GEN_PVAR_231 ((Peano.le _66922 x) /\ (Peano.le x _66923)) x). -Lemma dotdot_def : dotdot = (fun _66922 : nat => fun _66923 : nat => @GSPEC nat (fun GEN_PVAR_231 : nat => exists x : nat, @SETSPEC nat GEN_PVAR_231 ((Peano.le _66922 x) /\ (Peano.le x _66923)) x)). +Definition dotdot : N -> N -> N -> Prop := fun _66922 : N => fun _66923 : N => @GSPEC N (fun GEN_PVAR_231 : N => exists x : N, @SETSPEC N GEN_PVAR_231 ((N.le _66922 x) /\ (N.le x _66923)) x). +Lemma dotdot_def : dotdot = (fun _66922 : N => fun _66923 : N => @GSPEC N (fun GEN_PVAR_231 : N => exists x : N, @SETSPEC N GEN_PVAR_231 ((N.le _66922 x) /\ (N.le x _66923)) x)). Proof. exact (eq_refl dotdot). Qed. Definition neutral {A : Type'} : (A -> A -> A) -> A := fun _68834 : A -> A -> A => @ε A (fun x : A => forall y : A, ((_68834 x y) = y) /\ ((_68834 y x) = y)). Lemma neutral_def {A : Type'} : (@neutral A) = (fun _68834 : A -> A -> A => @ε A (fun x : A => forall y : A, ((_68834 x y) = y) /\ ((_68834 y x) = y))). @@ -481,11 +496,11 @@ Proof. exact (eq_refl (@support A B)). Qed. Definition iterate {A B : Type'} : (B -> B -> B) -> (A -> Prop) -> (A -> B) -> B := fun _68945 : B -> B -> B => fun _68946 : A -> Prop => fun _68947 : A -> B => @COND B (@FINITE A (@support A B _68945 _68947 _68946)) (@ITSET A B (fun x : A => fun a : B => _68945 (_68947 x) a) (@support A B _68945 _68947 _68946) (@neutral B _68945)) (@neutral B _68945). Lemma iterate_def {A B : Type'} : (@iterate A B) = (fun _68945 : B -> B -> B => fun _68946 : A -> Prop => fun _68947 : A -> B => @COND B (@FINITE A (@support A B _68945 _68947 _68946)) (@ITSET A B (fun x : A => fun a : B => _68945 (_68947 x) a) (@support A B _68945 _68947 _68946) (@neutral B _68945)) (@neutral B _68945)). Proof. exact (eq_refl (@iterate A B)). Qed. -Definition iterato {A K : Type'} : (A -> Prop) -> A -> (A -> A -> A) -> (K -> K -> Prop) -> (K -> Prop) -> (K -> A) -> A := @ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) -> (A -> Prop) -> A -> (A -> A -> A) -> (K -> K -> Prop) -> (K -> Prop) -> (K -> A) -> A) (fun itty : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) -> (A -> Prop) -> A -> (A -> A -> A) -> (K -> K -> Prop) -> (K -> Prop) -> (K -> A) -> A => forall _76701 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))), forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, (itty _76701 dom neut op ltle k f) = (@COND A ((@FINITE K (@GSPEC K (fun GEN_PVAR_265 : K => exists i : K, @SETSPEC K GEN_PVAR_265 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i))) /\ (~ ((@GSPEC K (fun GEN_PVAR_266 : K => exists i : K, @SETSPEC K GEN_PVAR_266 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i)) = (@EMPTY K)))) (@LET K A (fun i : K => @LET_END A (op (f i) (itty _76701 dom neut op ltle (@GSPEC K (fun GEN_PVAR_267 : K => exists j : K, @SETSPEC K GEN_PVAR_267 ((@IN K j (@DELETE K k i)) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) j)) f))) (@COND K (exists i : K, (@IN K i k) /\ ((@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))) /\ (forall j : K, ((ltle j i) /\ ((@IN K j k) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))) -> j = i))) (@ε K (fun i : K => (@IN K i k) /\ ((@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))) /\ (forall j : K, ((ltle j i) /\ ((@IN K j k) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))) -> j = i)))) (@ε K (fun i : K => (@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))))) neut)) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))))))))). -Lemma iterato_def {A K : Type'} : (@iterato A K) = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) -> (A -> Prop) -> A -> (A -> A -> A) -> (K -> K -> Prop) -> (K -> Prop) -> (K -> A) -> A) (fun itty : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) -> (A -> Prop) -> A -> (A -> A -> A) -> (K -> K -> Prop) -> (K -> Prop) -> (K -> A) -> A => forall _76701 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))), forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, (itty _76701 dom neut op ltle k f) = (@COND A ((@FINITE K (@GSPEC K (fun GEN_PVAR_265 : K => exists i : K, @SETSPEC K GEN_PVAR_265 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i))) /\ (~ ((@GSPEC K (fun GEN_PVAR_266 : K => exists i : K, @SETSPEC K GEN_PVAR_266 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i)) = (@EMPTY K)))) (@LET K A (fun i : K => @LET_END A (op (f i) (itty _76701 dom neut op ltle (@GSPEC K (fun GEN_PVAR_267 : K => exists j : K, @SETSPEC K GEN_PVAR_267 ((@IN K j (@DELETE K k i)) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) j)) f))) (@COND K (exists i : K, (@IN K i k) /\ ((@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))) /\ (forall j : K, ((ltle j i) /\ ((@IN K j k) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))) -> j = i))) (@ε K (fun i : K => (@IN K i k) /\ ((@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))) /\ (forall j : K, ((ltle j i) /\ ((@IN K j k) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))) -> j = i)))) (@ε K (fun i : K => (@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))))) neut)) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0))))))))))))))). +Definition iterato {A K : Type'} : (A -> Prop) -> A -> (A -> A -> A) -> (K -> K -> Prop) -> (K -> Prop) -> (K -> A) -> A := @ε ((prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (A -> Prop) -> A -> (A -> A -> A) -> (K -> K -> Prop) -> (K -> Prop) -> (K -> A) -> A) (fun itty : (prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (A -> Prop) -> A -> (A -> A -> A) -> (K -> K -> Prop) -> (K -> Prop) -> (K -> A) -> A => forall _76701 : prod N (prod N (prod N (prod N (prod N (prod N N))))), forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, (itty _76701 dom neut op ltle k f) = (@COND A ((@FINITE K (@GSPEC K (fun GEN_PVAR_265 : K => exists i : K, @SETSPEC K GEN_PVAR_265 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i))) /\ (~ ((@GSPEC K (fun GEN_PVAR_266 : K => exists i : K, @SETSPEC K GEN_PVAR_266 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i)) = (@EMPTY K)))) (@LET K A (fun i : K => @LET_END A (op (f i) (itty _76701 dom neut op ltle (@GSPEC K (fun GEN_PVAR_267 : K => exists j : K, @SETSPEC K GEN_PVAR_267 ((@IN K j (@DELETE K k i)) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) j)) f))) (@COND K (exists i : K, (@IN K i k) /\ ((@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))) /\ (forall j : K, ((ltle j i) /\ ((@IN K j k) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))) -> j = i))) (@ε K (fun i : K => (@IN K i k) /\ ((@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))) /\ (forall j : K, ((ltle j i) /\ ((@IN K j k) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))) -> j = i)))) (@ε K (fun i : K => (@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))))) neut)) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))). +Lemma iterato_def {A K : Type'} : (@iterato A K) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (A -> Prop) -> A -> (A -> A -> A) -> (K -> K -> Prop) -> (K -> Prop) -> (K -> A) -> A) (fun itty : (prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (A -> Prop) -> A -> (A -> A -> A) -> (K -> K -> Prop) -> (K -> Prop) -> (K -> A) -> A => forall _76701 : prod N (prod N (prod N (prod N (prod N (prod N N))))), forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, (itty _76701 dom neut op ltle k f) = (@COND A ((@FINITE K (@GSPEC K (fun GEN_PVAR_265 : K => exists i : K, @SETSPEC K GEN_PVAR_265 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i))) /\ (~ ((@GSPEC K (fun GEN_PVAR_266 : K => exists i : K, @SETSPEC K GEN_PVAR_266 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i)) = (@EMPTY K)))) (@LET K A (fun i : K => @LET_END A (op (f i) (itty _76701 dom neut op ltle (@GSPEC K (fun GEN_PVAR_267 : K => exists j : K, @SETSPEC K GEN_PVAR_267 ((@IN K j (@DELETE K k i)) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) j)) f))) (@COND K (exists i : K, (@IN K i k) /\ ((@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))) /\ (forall j : K, ((ltle j i) /\ ((@IN K j k) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))) -> j = i))) (@ε K (fun i : K => (@IN K i k) /\ ((@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))) /\ (forall j : K, ((ltle j i) /\ ((@IN K j k) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))) -> j = i)))) (@ε K (fun i : K => (@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))))) neut)) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))). Proof. exact (eq_refl (@iterato A K)). Qed. -Definition nproduct {A : Type'} : (A -> Prop) -> (A -> nat) -> nat := @iterate A nat Nat.mul. -Lemma nproduct_def {A : Type'} : (@nproduct A) = (@iterate A nat Nat.mul). +Definition nproduct {A : Type'} : (A -> Prop) -> (A -> N) -> N := @iterate A N N.mul. +Lemma nproduct_def {A : Type'} : (@nproduct A) = (@iterate A N N.mul). Proof. exact (eq_refl (@nproduct A)). Qed. Definition iproduct {A : Type'} : (A -> Prop) -> (A -> Z) -> Z := @iterate A Z int_mul. Lemma iproduct_def {A : Type'} : (@iproduct A) = (@iterate A Z int_mul). @@ -496,53 +511,53 @@ Proof. exact (eq_refl (@product A)). Qed. Definition isum {A : Type'} : (A -> Prop) -> (A -> Z) -> Z := @iterate A Z int_add. Lemma isum_def {A : Type'} : (@isum A) = (@iterate A Z int_add). Proof. exact (eq_refl (@isum A)). Qed. -Definition nsum {A : Type'} : (A -> Prop) -> (A -> nat) -> nat := @iterate A nat Nat.add. -Lemma nsum_def {A : Type'} : (@nsum A) = (@iterate A nat Nat.add). +Definition nsum {A : Type'} : (A -> Prop) -> (A -> N) -> N := @iterate A N N.add. +Lemma nsum_def {A : Type'} : (@nsum A) = (@iterate A N N.add). Proof. exact (eq_refl (@nsum A)). Qed. Definition sum {A : Type'} : (A -> Prop) -> (A -> R) -> R := @iterate A R Rplus. Lemma sum_def {A : Type'} : (@sum A) = (@iterate A R Rplus). Proof. exact (eq_refl (@sum A)). Qed. -Definition polynomial_function : (R -> R) -> Prop := fun _94114 : R -> R => exists m : nat, exists c : nat -> R, forall x : R, (_94114 x) = (@sum nat (dotdot (NUMERAL 0) m) (fun i : nat => Rmult (c i) (Rpower_nat x i))). -Lemma polynomial_function_def : polynomial_function = (fun _94114 : R -> R => exists m : nat, exists c : nat -> R, forall x : R, (_94114 x) = (@sum nat (dotdot (NUMERAL 0) m) (fun i : nat => Rmult (c i) (Rpower_nat x i)))). +Definition polynomial_function : (R -> R) -> Prop := fun _94114 : R -> R => exists m : N, exists c : N -> R, forall x : R, (_94114 x) = (@sum N (dotdot (NUMERAL 0%N) m) (fun i : N => Rmult (c i) (real_pow x i))). +Lemma polynomial_function_def : polynomial_function = (fun _94114 : R -> R => exists m : N, exists c : N -> R, forall x : R, (_94114 x) = (@sum N (dotdot (NUMERAL 0%N) m) (fun i : N => Rmult (c i) (real_pow x i)))). Proof. exact (eq_refl polynomial_function). Qed. -Definition dimindex {A : Type'} : (A -> Prop) -> nat := fun _94156 : A -> Prop => @COND nat (@FINITE A (@UNIV A)) (@CARD A (@UNIV A)) (NUMERAL (BIT1 0)). -Lemma dimindex_def {A : Type'} : (@dimindex A) = (fun _94156 : A -> Prop => @COND nat (@FINITE A (@UNIV A)) (@CARD A (@UNIV A)) (NUMERAL (BIT1 0))). +Definition dimindex {A : Type'} : (A -> Prop) -> N := fun _94156 : A -> Prop => @COND N (@FINITE A (@UNIV A)) (@CARD A (@UNIV A)) (NUMERAL (BIT1 0%N)). +Lemma dimindex_def {A : Type'} : (@dimindex A) = (fun _94156 : A -> Prop => @COND N (@FINITE A (@UNIV A)) (@CARD A (@UNIV A)) (NUMERAL (BIT1 0%N))). Proof. exact (eq_refl (@dimindex A)). Qed. -Definition dollar {A N : Type'} : (cart A N) -> nat -> A := fun _94566 : cart A N => fun _94567 : nat => @dest_cart A N _94566 (@finite_index N _94567). -Lemma dollar_def {A N : Type'} : (@dollar A N) = (fun _94566 : cart A N => fun _94567 : nat => @dest_cart A N _94566 (@finite_index N _94567)). -Proof. exact (eq_refl (@dollar A N)). Qed. -Definition lambda {A B : Type'} : (nat -> A) -> cart A B := fun _94602 : nat -> A => @ε (cart A B) (fun f : cart A B => forall i : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ (Peano.le i (@dimindex B (@UNIV B)))) -> (@dollar A B f i) = (_94602 i)). -Lemma lambda_def {A B : Type'} : (@lambda A B) = (fun _94602 : nat -> A => @ε (cart A B) (fun f : cart A B => forall i : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ (Peano.le i (@dimindex B (@UNIV B)))) -> (@dollar A B f i) = (_94602 i))). +Definition dollar {A N' : Type'} : (cart A N') -> N -> A := fun _94566 : cart A N' => fun _94567 : N => @dest_cart A N' _94566 (@finite_index N' _94567). +Lemma dollar_def {A N' : Type'} : (@dollar A N') = (fun _94566 : cart A N' => fun _94567 : N => @dest_cart A N' _94566 (@finite_index N' _94567)). +Proof. exact (eq_refl (@dollar A N')). Qed. +Definition lambda {A B : Type'} : (N -> A) -> cart A B := fun _94602 : N -> A => @ε (cart A B) (fun f : cart A B => forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex B (@UNIV B)))) -> (@dollar A B f i) = (_94602 i)). +Lemma lambda_def {A B : Type'} : (@lambda A B) = (fun _94602 : N -> A => @ε (cart A B) (fun f : cart A B => forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex B (@UNIV B)))) -> (@dollar A B f i) = (_94602 i))). Proof. exact (eq_refl (@lambda A B)). Qed. -Definition pastecart {A M N : Type'} : (cart A M) -> (cart A N) -> cart A (finite_sum M N) := fun _94893 : cart A M => fun _94894 : cart A N => @lambda A (finite_sum M N) (fun i : nat => @COND A (Peano.le i (@dimindex M (@UNIV M))) (@dollar A M _94893 i) (@dollar A N _94894 (Nat.sub i (@dimindex M (@UNIV M))))). -Lemma pastecart_def {A M N : Type'} : (@pastecart A M N) = (fun _94893 : cart A M => fun _94894 : cart A N => @lambda A (finite_sum M N) (fun i : nat => @COND A (Peano.le i (@dimindex M (@UNIV M))) (@dollar A M _94893 i) (@dollar A N _94894 (Nat.sub i (@dimindex M (@UNIV M)))))). -Proof. exact (eq_refl (@pastecart A M N)). Qed. -Definition fstcart {A M N : Type'} : (cart A (finite_sum M N)) -> cart A M := fun _94905 : cart A (finite_sum M N) => @lambda A M (fun i : nat => @dollar A (finite_sum M N) _94905 i). -Lemma fstcart_def {A M N : Type'} : (@fstcart A M N) = (fun _94905 : cart A (finite_sum M N) => @lambda A M (fun i : nat => @dollar A (finite_sum M N) _94905 i)). -Proof. exact (eq_refl (@fstcart A M N)). Qed. -Definition sndcart {A M N : Type'} : (cart A (finite_sum M N)) -> cart A N := fun _94910 : cart A (finite_sum M N) => @lambda A N (fun i : nat => @dollar A (finite_sum M N) _94910 (Nat.add i (@dimindex M (@UNIV M)))). -Lemma sndcart_def {A M N : Type'} : (@sndcart A M N) = (fun _94910 : cart A (finite_sum M N) => @lambda A N (fun i : nat => @dollar A (finite_sum M N) _94910 (Nat.add i (@dimindex M (@UNIV M))))). -Proof. exact (eq_refl (@sndcart A M N)). Qed. -Definition _100320 {A : Type'} : (finite_sum A A) -> tybit0 A := fun a : finite_sum A A => @_mk_tybit0 A ((fun a' : finite_sum A A => @CONSTR (finite_sum A A) (NUMERAL 0) a' (fun n : nat => @BOTTOM (finite_sum A A))) a). -Lemma _100320_def {A : Type'} : (@_100320 A) = (fun a : finite_sum A A => @_mk_tybit0 A ((fun a' : finite_sum A A => @CONSTR (finite_sum A A) (NUMERAL 0) a' (fun n : nat => @BOTTOM (finite_sum A A))) a)). +Definition pastecart {A M N' : Type'} : (cart A M) -> (cart A N') -> cart A (finite_sum M N') := fun _94893 : cart A M => fun _94894 : cart A N' => @lambda A (finite_sum M N') (fun i : N => @COND A (N.le i (@dimindex M (@UNIV M))) (@dollar A M _94893 i) (@dollar A N' _94894 (N.sub i (@dimindex M (@UNIV M))))). +Lemma pastecart_def {A M N' : Type'} : (@pastecart A M N') = (fun _94893 : cart A M => fun _94894 : cart A N' => @lambda A (finite_sum M N') (fun i : N => @COND A (N.le i (@dimindex M (@UNIV M))) (@dollar A M _94893 i) (@dollar A N' _94894 (N.sub i (@dimindex M (@UNIV M)))))). +Proof. exact (eq_refl (@pastecart A M N')). Qed. +Definition fstcart {A M N' : Type'} : (cart A (finite_sum M N')) -> cart A M := fun _94905 : cart A (finite_sum M N') => @lambda A M (fun i : N => @dollar A (finite_sum M N') _94905 i). +Lemma fstcart_def {A M N' : Type'} : (@fstcart A M N') = (fun _94905 : cart A (finite_sum M N') => @lambda A M (fun i : N => @dollar A (finite_sum M N') _94905 i)). +Proof. exact (eq_refl (@fstcart A M N')). Qed. +Definition sndcart {A M N' : Type'} : (cart A (finite_sum M N')) -> cart A N' := fun _94910 : cart A (finite_sum M N') => @lambda A N' (fun i : N => @dollar A (finite_sum M N') _94910 (N.add i (@dimindex M (@UNIV M)))). +Lemma sndcart_def {A M N' : Type'} : (@sndcart A M N') = (fun _94910 : cart A (finite_sum M N') => @lambda A N' (fun i : N => @dollar A (finite_sum M N') _94910 (N.add i (@dimindex M (@UNIV M))))). +Proof. exact (eq_refl (@sndcart A M N')). Qed. +Definition _100320 {A : Type'} : (finite_sum A A) -> tybit0 A := fun a : finite_sum A A => @_mk_tybit0 A ((fun a' : finite_sum A A => @CONSTR (finite_sum A A) (NUMERAL 0%N) a' (fun n : N => @BOTTOM (finite_sum A A))) a). +Lemma _100320_def {A : Type'} : (@_100320 A) = (fun a : finite_sum A A => @_mk_tybit0 A ((fun a' : finite_sum A A => @CONSTR (finite_sum A A) (NUMERAL 0%N) a' (fun n : N => @BOTTOM (finite_sum A A))) a)). Proof. exact (eq_refl (@_100320 A)). Qed. Definition mktybit0 {A : Type'} : (finite_sum A A) -> tybit0 A := @_100320 A. Lemma mktybit0_def {A : Type'} : (@mktybit0 A) = (@_100320 A). Proof. exact (eq_refl (@mktybit0 A)). Qed. -Definition _100339 {A : Type'} : (finite_sum (finite_sum A A) unit) -> tybit1 A := fun a : finite_sum (finite_sum A A) unit => @_mk_tybit1 A ((fun a' : finite_sum (finite_sum A A) unit => @CONSTR (finite_sum (finite_sum A A) unit) (NUMERAL 0) a' (fun n : nat => @BOTTOM (finite_sum (finite_sum A A) unit))) a). -Lemma _100339_def {A : Type'} : (@_100339 A) = (fun a : finite_sum (finite_sum A A) unit => @_mk_tybit1 A ((fun a' : finite_sum (finite_sum A A) unit => @CONSTR (finite_sum (finite_sum A A) unit) (NUMERAL 0) a' (fun n : nat => @BOTTOM (finite_sum (finite_sum A A) unit))) a)). +Definition _100339 {A : Type'} : (finite_sum (finite_sum A A) unit) -> tybit1 A := fun a : finite_sum (finite_sum A A) unit => @_mk_tybit1 A ((fun a' : finite_sum (finite_sum A A) unit => @CONSTR (finite_sum (finite_sum A A) unit) (NUMERAL 0%N) a' (fun n : N => @BOTTOM (finite_sum (finite_sum A A) unit))) a). +Lemma _100339_def {A : Type'} : (@_100339 A) = (fun a : finite_sum (finite_sum A A) unit => @_mk_tybit1 A ((fun a' : finite_sum (finite_sum A A) unit => @CONSTR (finite_sum (finite_sum A A) unit) (NUMERAL 0%N) a' (fun n : N => @BOTTOM (finite_sum (finite_sum A A) unit))) a)). Proof. exact (eq_refl (@_100339 A)). Qed. Definition mktybit1 {A : Type'} : (finite_sum (finite_sum A A) unit) -> tybit1 A := @_100339 A. Lemma mktybit1_def {A : Type'} : (@mktybit1 A) = (@_100339 A). Proof. exact (eq_refl (@mktybit1 A)). Qed. -Definition vector {A N : Type'} : (list A) -> cart A N := fun _102033 : list A => @lambda A N (fun i : nat => @EL A (Nat.sub i (NUMERAL (BIT1 0))) _102033). -Lemma vector_def {A N : Type'} : (@vector A N) = (fun _102033 : list A => @lambda A N (fun i : nat => @EL A (Nat.sub i (NUMERAL (BIT1 0))) _102033)). -Proof. exact (eq_refl (@vector A N)). Qed. -Definition PCROSS {A M N : Type'} : ((cart A M) -> Prop) -> ((cart A N) -> Prop) -> (cart A (finite_sum M N)) -> Prop := fun _102060 : (cart A M) -> Prop => fun _102061 : (cart A N) -> Prop => @GSPEC (cart A (finite_sum M N)) (fun GEN_PVAR_363 : cart A (finite_sum M N) => exists x : cart A M, exists y : cart A N, @SETSPEC (cart A (finite_sum M N)) GEN_PVAR_363 ((@IN (cart A M) x _102060) /\ (@IN (cart A N) y _102061)) (@pastecart A M N x y)). -Lemma PCROSS_def {A M N : Type'} : (@PCROSS A M N) = (fun _102060 : (cart A M) -> Prop => fun _102061 : (cart A N) -> Prop => @GSPEC (cart A (finite_sum M N)) (fun GEN_PVAR_363 : cart A (finite_sum M N) => exists x : cart A M, exists y : cart A N, @SETSPEC (cart A (finite_sum M N)) GEN_PVAR_363 ((@IN (cart A M) x _102060) /\ (@IN (cart A N) y _102061)) (@pastecart A M N x y))). -Proof. exact (eq_refl (@PCROSS A M N)). Qed. -Definition CASEWISE {_137714 _137750 _137754 _137755 : Type'} : (list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) -> _137755 -> _137754 -> _137714 := @ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) -> (list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) -> _137755 -> _137754 -> _137714) (fun CASEWISE' : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) -> (list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) -> _137755 -> _137754 -> _137714 => forall _102665 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))), (forall f : _137755, forall x : _137754, (CASEWISE' _102665 (@nil (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) f x) = (@ε _137714 (fun y : _137714 => True))) /\ (forall h : prod (_137750 -> _137754) (_137755 -> _137750 -> _137714), forall t : list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714)), forall f : _137755, forall x : _137754, (CASEWISE' _102665 (@cons (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714)) h t) f x) = (@COND _137714 (exists y : _137750, (@fst (_137750 -> _137754) (_137755 -> _137750 -> _137714) h y) = x) (@snd (_137750 -> _137754) (_137755 -> _137750 -> _137714) h f (@ε _137750 (fun y : _137750 => (@fst (_137750 -> _137754) (_137755 -> _137750 -> _137714) h y) = x))) (CASEWISE' _102665 t f x)))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0))))))))))))))). -Lemma CASEWISE_def {_137714 _137750 _137754 _137755 : Type'} : (@CASEWISE _137714 _137750 _137754 _137755) = (@ε ((prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) -> (list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) -> _137755 -> _137754 -> _137714) (fun CASEWISE' : (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))))) -> (list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) -> _137755 -> _137754 -> _137714 => forall _102665 : prod nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))), (forall f : _137755, forall x : _137754, (CASEWISE' _102665 (@nil (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) f x) = (@ε _137714 (fun y : _137714 => True))) /\ (forall h : prod (_137750 -> _137754) (_137755 -> _137750 -> _137714), forall t : list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714)), forall f : _137755, forall x : _137754, (CASEWISE' _102665 (@cons (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714)) h t) f x) = (@COND _137714 (exists y : _137750, (@fst (_137750 -> _137754) (_137755 -> _137750 -> _137714) h y) = x) (@snd (_137750 -> _137754) (_137755 -> _137750 -> _137714) h f (@ε _137750 (fun y : _137750 => (@fst (_137750 -> _137754) (_137755 -> _137750 -> _137714) h y) = x))) (CASEWISE' _102665 t f x)))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat (prod nat nat)))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat (prod nat nat))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat (prod nat nat)))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat (prod nat nat))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat (prod nat nat)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (@pair nat (prod nat nat) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0)))))))) (@pair nat nat (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0)))))))))))))))). +Definition vector {A N' : Type'} : (list A) -> cart A N' := fun _102033 : list A => @lambda A N' (fun i : N => @EL A (N.sub i (NUMERAL (BIT1 0%N))) _102033). +Lemma vector_def {A N' : Type'} : (@vector A N') = (fun _102033 : list A => @lambda A N' (fun i : N => @EL A (N.sub i (NUMERAL (BIT1 0%N))) _102033)). +Proof. exact (eq_refl (@vector A N')). Qed. +Definition PCROSS {A M N' : Type'} : ((cart A M) -> Prop) -> ((cart A N') -> Prop) -> (cart A (finite_sum M N')) -> Prop := fun _102060 : (cart A M) -> Prop => fun _102061 : (cart A N') -> Prop => @GSPEC (cart A (finite_sum M N')) (fun GEN_PVAR_363 : cart A (finite_sum M N') => exists x : cart A M, exists y : cart A N', @SETSPEC (cart A (finite_sum M N')) GEN_PVAR_363 ((@IN (cart A M) x _102060) /\ (@IN (cart A N') y _102061)) (@pastecart A M N' x y)). +Lemma PCROSS_def {A M N' : Type'} : (@PCROSS A M N') = (fun _102060 : (cart A M) -> Prop => fun _102061 : (cart A N') -> Prop => @GSPEC (cart A (finite_sum M N')) (fun GEN_PVAR_363 : cart A (finite_sum M N') => exists x : cart A M, exists y : cart A N', @SETSPEC (cart A (finite_sum M N')) GEN_PVAR_363 ((@IN (cart A M) x _102060) /\ (@IN (cart A N') y _102061)) (@pastecart A M N' x y))). +Proof. exact (eq_refl (@PCROSS A M N')). Qed. +Definition CASEWISE {_137714 _137750 _137754 _137755 : Type'} : (list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) -> _137755 -> _137754 -> _137714 := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) -> (list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) -> _137755 -> _137754 -> _137714) (fun CASEWISE' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) -> (list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) -> _137755 -> _137754 -> _137714 => forall _102665 : prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))), (forall f : _137755, forall x : _137754, (CASEWISE' _102665 (@nil (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) f x) = (@ε _137714 (fun y : _137714 => True))) /\ (forall h : prod (_137750 -> _137754) (_137755 -> _137750 -> _137714), forall t : list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714)), forall f : _137755, forall x : _137754, (CASEWISE' _102665 (@cons (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714)) h t) f x) = (@COND _137714 (exists y : _137750, (@fst (_137750 -> _137754) (_137755 -> _137750 -> _137714) h y) = x) (@snd (_137750 -> _137754) (_137755 -> _137750 -> _137714) h f (@ε _137750 (fun y : _137750 => (@fst (_137750 -> _137754) (_137755 -> _137750 -> _137714) h y) = x))) (CASEWISE' _102665 t f x)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N))))))))))))))). +Lemma CASEWISE_def {_137714 _137750 _137754 _137755 : Type'} : (@CASEWISE _137714 _137750 _137754 _137755) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) -> (list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) -> _137755 -> _137754 -> _137714) (fun CASEWISE' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) -> (list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) -> _137755 -> _137754 -> _137714 => forall _102665 : prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))), (forall f : _137755, forall x : _137754, (CASEWISE' _102665 (@nil (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) f x) = (@ε _137714 (fun y : _137714 => True))) /\ (forall h : prod (_137750 -> _137754) (_137755 -> _137750 -> _137714), forall t : list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714)), forall f : _137755, forall x : _137754, (CASEWISE' _102665 (@cons (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714)) h t) f x) = (@COND _137714 (exists y : _137750, (@fst (_137750 -> _137754) (_137755 -> _137750 -> _137714) h y) = x) (@snd (_137750 -> _137754) (_137755 -> _137750 -> _137714) h f (@ε _137750 (fun y : _137750 => (@fst (_137750 -> _137754) (_137755 -> _137750 -> _137714) h y) = x))) (CASEWISE' _102665 t f x)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))))))))))). Proof. exact (eq_refl (@CASEWISE _137714 _137750 _137754 _137755)). Qed. Definition admissible {_138045 _138048 _138052 _138053 _138058 : Type'} : (_138052 -> _138045 -> Prop) -> ((_138052 -> _138048) -> _138058 -> Prop) -> (_138058 -> _138045) -> ((_138052 -> _138048) -> _138058 -> _138053) -> Prop := fun _103732 : _138052 -> _138045 -> Prop => fun _103733 : (_138052 -> _138048) -> _138058 -> Prop => fun _103734 : _138058 -> _138045 => fun _103735 : (_138052 -> _138048) -> _138058 -> _138053 => forall f : _138052 -> _138048, forall g : _138052 -> _138048, forall a : _138058, ((_103733 f a) /\ ((_103733 g a) /\ (forall z : _138052, (_103732 z (_103734 a)) -> (f z) = (g z)))) -> (_103735 f a) = (_103735 g a). Lemma admissible_def {_138045 _138048 _138052 _138053 _138058 : Type'} : (@admissible _138045 _138048 _138052 _138053 _138058) = (fun _103732 : _138052 -> _138045 -> Prop => fun _103733 : (_138052 -> _138048) -> _138058 -> Prop => fun _103734 : _138058 -> _138045 => fun _103735 : (_138052 -> _138048) -> _138058 -> _138053 => forall f : _138052 -> _138048, forall g : _138052 -> _138048, forall a : _138058, ((_103733 f a) /\ ((_103733 g a) /\ (forall z : _138052, (_103732 z (_103734 a)) -> (f z) = (g z)))) -> (_103735 f a) = (_103735 g a)). @@ -553,3 +568,1722 @@ Proof. exact (eq_refl (@tailadmissible A B P)). Qed. Definition superadmissible {_138202 _138204 _138210 : Type'} : (_138202 -> _138202 -> Prop) -> ((_138202 -> _138204) -> _138210 -> Prop) -> (_138210 -> _138202) -> ((_138202 -> _138204) -> _138210 -> _138204) -> Prop := fun _103796 : _138202 -> _138202 -> Prop => fun _103797 : (_138202 -> _138204) -> _138210 -> Prop => fun _103798 : _138210 -> _138202 => fun _103799 : (_138202 -> _138204) -> _138210 -> _138204 => (@admissible _138202 _138204 _138202 Prop _138210 _103796 (fun f : _138202 -> _138204 => fun a : _138210 => True) _103798 _103797) -> @tailadmissible _138202 _138204 _138210 _103796 _103797 _103798 _103799. Lemma superadmissible_def {_138202 _138204 _138210 : Type'} : (@superadmissible _138202 _138204 _138210) = (fun _103796 : _138202 -> _138202 -> Prop => fun _103797 : (_138202 -> _138204) -> _138210 -> Prop => fun _103798 : _138210 -> _138202 => fun _103799 : (_138202 -> _138204) -> _138210 -> _138204 => (@admissible _138202 _138204 _138202 Prop _138210 _103796 (fun f : _138202 -> _138204 => fun a : _138210 => True) _103798 _103797) -> @tailadmissible _138202 _138204 _138210 _103796 _103797 _103798 _103799). Proof. exact (eq_refl (@superadmissible _138202 _138204 _138210)). Qed. +Definition fld {A : Type'} : (A -> A -> Prop) -> A -> Prop := fun _113720 : A -> A -> Prop => @GSPEC A (fun GEN_PVAR_372 : A => exists x : A, @SETSPEC A GEN_PVAR_372 (exists y : A, (_113720 x y) \/ (_113720 y x)) x). +Lemma fld_def {A : Type'} : (@fld A) = (fun _113720 : A -> A -> Prop => @GSPEC A (fun GEN_PVAR_372 : A => exists x : A, @SETSPEC A GEN_PVAR_372 (exists y : A, (_113720 x y) \/ (_113720 y x)) x)). +Proof. exact (eq_refl (@fld A)). Qed. +Definition qoset {A : Type'} : (A -> A -> Prop) -> Prop := fun _113775 : A -> A -> Prop => (forall x : A, (@IN A x (@fld A _113775)) -> _113775 x x) /\ (forall x : A, forall y : A, forall z : A, ((_113775 x y) /\ (_113775 y z)) -> _113775 x z). +Lemma qoset_def {A : Type'} : (@qoset A) = (fun _113775 : A -> A -> Prop => (forall x : A, (@IN A x (@fld A _113775)) -> _113775 x x) /\ (forall x : A, forall y : A, forall z : A, ((_113775 x y) /\ (_113775 y z)) -> _113775 x z)). +Proof. exact (eq_refl (@qoset A)). Qed. +Definition poset {A : Type'} : (A -> A -> Prop) -> Prop := fun _113780 : A -> A -> Prop => (forall x : A, (@IN A x (@fld A _113780)) -> _113780 x x) /\ ((forall x : A, forall y : A, forall z : A, ((_113780 x y) /\ (_113780 y z)) -> _113780 x z) /\ (forall x : A, forall y : A, ((_113780 x y) /\ (_113780 y x)) -> x = y)). +Lemma poset_def {A : Type'} : (@poset A) = (fun _113780 : A -> A -> Prop => (forall x : A, (@IN A x (@fld A _113780)) -> _113780 x x) /\ ((forall x : A, forall y : A, forall z : A, ((_113780 x y) /\ (_113780 y z)) -> _113780 x z) /\ (forall x : A, forall y : A, ((_113780 x y) /\ (_113780 y x)) -> x = y))). +Proof. exact (eq_refl (@poset A)). Qed. +Definition toset {A : Type'} : (A -> A -> Prop) -> Prop := fun _113785 : A -> A -> Prop => (forall x : A, (@IN A x (@fld A _113785)) -> _113785 x x) /\ ((forall x : A, forall y : A, forall z : A, ((_113785 x y) /\ (_113785 y z)) -> _113785 x z) /\ ((forall x : A, forall y : A, ((_113785 x y) /\ (_113785 y x)) -> x = y) /\ (forall x : A, forall y : A, ((@IN A x (@fld A _113785)) /\ (@IN A y (@fld A _113785))) -> (_113785 x y) \/ (_113785 y x)))). +Lemma toset_def {A : Type'} : (@toset A) = (fun _113785 : A -> A -> Prop => (forall x : A, (@IN A x (@fld A _113785)) -> _113785 x x) /\ ((forall x : A, forall y : A, forall z : A, ((_113785 x y) /\ (_113785 y z)) -> _113785 x z) /\ ((forall x : A, forall y : A, ((_113785 x y) /\ (_113785 y x)) -> x = y) /\ (forall x : A, forall y : A, ((@IN A x (@fld A _113785)) /\ (@IN A y (@fld A _113785))) -> (_113785 x y) \/ (_113785 y x))))). +Proof. exact (eq_refl (@toset A)). Qed. +Definition woset {A : Type'} : (A -> A -> Prop) -> Prop := fun _113790 : A -> A -> Prop => (forall x : A, (@IN A x (@fld A _113790)) -> _113790 x x) /\ ((forall x : A, forall y : A, forall z : A, ((_113790 x y) /\ (_113790 y z)) -> _113790 x z) /\ ((forall x : A, forall y : A, ((_113790 x y) /\ (_113790 y x)) -> x = y) /\ ((forall x : A, forall y : A, ((@IN A x (@fld A _113790)) /\ (@IN A y (@fld A _113790))) -> (_113790 x y) \/ (_113790 y x)) /\ (forall s : A -> Prop, ((@SUBSET A s (@fld A _113790)) /\ (~ (s = (@EMPTY A)))) -> exists x : A, (@IN A x s) /\ (forall y : A, (@IN A y s) -> _113790 x y))))). +Lemma woset_def {A : Type'} : (@woset A) = (fun _113790 : A -> A -> Prop => (forall x : A, (@IN A x (@fld A _113790)) -> _113790 x x) /\ ((forall x : A, forall y : A, forall z : A, ((_113790 x y) /\ (_113790 y z)) -> _113790 x z) /\ ((forall x : A, forall y : A, ((_113790 x y) /\ (_113790 y x)) -> x = y) /\ ((forall x : A, forall y : A, ((@IN A x (@fld A _113790)) /\ (@IN A y (@fld A _113790))) -> (_113790 x y) \/ (_113790 y x)) /\ (forall s : A -> Prop, ((@SUBSET A s (@fld A _113790)) /\ (~ (s = (@EMPTY A)))) -> exists x : A, (@IN A x s) /\ (forall y : A, (@IN A y s) -> _113790 x y)))))). +Proof. exact (eq_refl (@woset A)). Qed. +Definition wqoset {A : Type'} : (A -> A -> Prop) -> Prop := fun _113795 : A -> A -> Prop => (forall x : A, (@IN A x (@fld A _113795)) -> _113795 x x) /\ ((forall x : A, forall y : A, forall z : A, ((_113795 x y) /\ (_113795 y z)) -> _113795 x z) /\ (forall s : A -> Prop, (@SUBSET A s (@fld A _113795)) -> exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ (forall y : A, (@IN A y s) -> exists x : A, (@IN A x t) /\ (_113795 x y))))). +Lemma wqoset_def {A : Type'} : (@wqoset A) = (fun _113795 : A -> A -> Prop => (forall x : A, (@IN A x (@fld A _113795)) -> _113795 x x) /\ ((forall x : A, forall y : A, forall z : A, ((_113795 x y) /\ (_113795 y z)) -> _113795 x z) /\ (forall s : A -> Prop, (@SUBSET A s (@fld A _113795)) -> exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ (forall y : A, (@IN A y s) -> exists x : A, (@IN A x t) /\ (_113795 x y)))))). +Proof. exact (eq_refl (@wqoset A)). Qed. +Definition chain {A : Type'} : (A -> A -> Prop) -> (A -> Prop) -> Prop := fun _113800 : A -> A -> Prop => fun _113801 : A -> Prop => forall x : A, forall y : A, ((@IN A x _113801) /\ (@IN A y _113801)) -> (_113800 x y) \/ (_113800 y x). +Lemma chain_def {A : Type'} : (@chain A) = (fun _113800 : A -> A -> Prop => fun _113801 : A -> Prop => forall x : A, forall y : A, ((@IN A x _113801) /\ (@IN A y _113801)) -> (_113800 x y) \/ (_113800 y x)). +Proof. exact (eq_refl (@chain A)). Qed. +Definition antichain {A : Type'} : (A -> A -> Prop) -> (A -> Prop) -> Prop := fun _113812 : A -> A -> Prop => fun _113813 : A -> Prop => (@SUBSET A _113813 (@fld A _113812)) /\ (@pairwise A (fun x : A => fun y : A => ~ (_113812 x y)) _113813). +Lemma antichain_def {A : Type'} : (@antichain A) = (fun _113812 : A -> A -> Prop => fun _113813 : A -> Prop => (@SUBSET A _113813 (@fld A _113812)) /\ (@pairwise A (fun x : A => fun y : A => ~ (_113812 x y)) _113813)). +Proof. exact (eq_refl (@antichain A)). Qed. +Definition strictly {A : Type'} : (A -> A -> Prop) -> A -> A -> Prop := fun _114465 : A -> A -> Prop => fun x : A => fun y : A => (_114465 x y) /\ (~ (_114465 y x)). +Lemma strictly_def {A : Type'} : (@strictly A) = (fun _114465 : A -> A -> Prop => fun x : A => fun y : A => (_114465 x y) /\ (~ (_114465 y x))). +Proof. exact (eq_refl (@strictly A)). Qed. +Definition properly {A : Type'} : (A -> A -> Prop) -> A -> A -> Prop := fun _114470 : A -> A -> Prop => fun x : A => fun y : A => (_114470 x y) /\ (~ (x = y)). +Lemma properly_def {A : Type'} : (@properly A) = (fun _114470 : A -> A -> Prop => fun x : A => fun y : A => (_114470 x y) /\ (~ (x = y))). +Proof. exact (eq_refl (@properly A)). Qed. +Definition inseg {A : Type'} : (A -> A -> Prop) -> (A -> A -> Prop) -> Prop := fun _118731 : A -> A -> Prop => fun _118732 : A -> A -> Prop => forall x : A, forall y : A, (_118731 x y) = ((_118732 x y) /\ (@fld A _118731 y)). +Lemma inseg_def {A : Type'} : (@inseg A) = (fun _118731 : A -> A -> Prop => fun _118732 : A -> A -> Prop => forall x : A, forall y : A, (_118731 x y) = ((_118732 x y) /\ (@fld A _118731 y))). +Proof. exact (eq_refl (@inseg A)). Qed. +Definition linseg {A : Type'} : (A -> A -> Prop) -> A -> A -> A -> Prop := fun _118803 : A -> A -> Prop => fun _118804 : A => fun x : A => fun y : A => (_118803 x y) /\ (@properly A _118803 y _118804). +Lemma linseg_def {A : Type'} : (@linseg A) = (fun _118803 : A -> A -> Prop => fun _118804 : A => fun x : A => fun y : A => (_118803 x y) /\ (@properly A _118803 y _118804)). +Proof. exact (eq_refl (@linseg A)). Qed. +Definition ordinal {A : Type'} : (A -> A -> Prop) -> Prop := fun _118815 : A -> A -> Prop => (@woset A _118815) /\ (forall x : A, (@fld A _118815 x) -> x = (@ε A (fun y : A => ~ (@properly A _118815 y x)))). +Lemma ordinal_def {A : Type'} : (@ordinal A) = (fun _118815 : A -> A -> Prop => (@woset A _118815) /\ (forall x : A, (@fld A _118815 x) -> x = (@ε A (fun y : A => ~ (@properly A _118815 y x))))). +Proof. exact (eq_refl (@ordinal A)). Qed. +Definition add_c {_154958 _154959 : Type'} : (_154959 -> Prop) -> (_154958 -> Prop) -> (Datatypes.sum _154959 _154958) -> Prop := fun _201284 : _154959 -> Prop => fun _201285 : _154958 -> Prop => @UNION (Datatypes.sum _154959 _154958) (@GSPEC (Datatypes.sum _154959 _154958) (fun GEN_PVAR_406 : Datatypes.sum _154959 _154958 => exists x : _154959, @SETSPEC (Datatypes.sum _154959 _154958) GEN_PVAR_406 (@IN _154959 x _201284) (@inl _154959 _154958 x))) (@GSPEC (Datatypes.sum _154959 _154958) (fun GEN_PVAR_407 : Datatypes.sum _154959 _154958 => exists y : _154958, @SETSPEC (Datatypes.sum _154959 _154958) GEN_PVAR_407 (@IN _154958 y _201285) (@inr _154959 _154958 y))). +Lemma add_c_def {_154958 _154959 : Type'} : (@add_c _154958 _154959) = (fun _201284 : _154959 -> Prop => fun _201285 : _154958 -> Prop => @UNION (Datatypes.sum _154959 _154958) (@GSPEC (Datatypes.sum _154959 _154958) (fun GEN_PVAR_406 : Datatypes.sum _154959 _154958 => exists x : _154959, @SETSPEC (Datatypes.sum _154959 _154958) GEN_PVAR_406 (@IN _154959 x _201284) (@inl _154959 _154958 x))) (@GSPEC (Datatypes.sum _154959 _154958) (fun GEN_PVAR_407 : Datatypes.sum _154959 _154958 => exists y : _154958, @SETSPEC (Datatypes.sum _154959 _154958) GEN_PVAR_407 (@IN _154958 y _201285) (@inr _154959 _154958 y)))). +Proof. exact (eq_refl (@add_c _154958 _154959)). Qed. +Definition mul_c {_154991 _154992 : Type'} : (_154992 -> Prop) -> (_154991 -> Prop) -> (prod _154992 _154991) -> Prop := fun _201296 : _154992 -> Prop => fun _201297 : _154991 -> Prop => @GSPEC (prod _154992 _154991) (fun GEN_PVAR_408 : prod _154992 _154991 => exists x : _154992, exists y : _154991, @SETSPEC (prod _154992 _154991) GEN_PVAR_408 ((@IN _154992 x _201296) /\ (@IN _154991 y _201297)) (@pair _154992 _154991 x y)). +Lemma mul_c_def {_154991 _154992 : Type'} : (@mul_c _154991 _154992) = (fun _201296 : _154992 -> Prop => fun _201297 : _154991 -> Prop => @GSPEC (prod _154992 _154991) (fun GEN_PVAR_408 : prod _154992 _154991 => exists x : _154992, exists y : _154991, @SETSPEC (prod _154992 _154991) GEN_PVAR_408 ((@IN _154992 x _201296) /\ (@IN _154991 y _201297)) (@pair _154992 _154991 x y))). +Proof. exact (eq_refl (@mul_c _154991 _154992)). Qed. +Definition pow_c {A B : Type'} : (A -> Prop) -> (B -> Prop) -> (B -> A) -> Prop := fun _237577 : A -> Prop => fun _237578 : B -> Prop => @GSPEC (B -> A) (fun GEN_PVAR_450 : B -> A => exists f : B -> A, @SETSPEC (B -> A) GEN_PVAR_450 ((forall x : B, (@IN B x _237578) -> @IN A (f x) _237577) /\ (forall x : B, (~ (@IN B x _237578)) -> (f x) = (@ε A (fun y : A => False)))) f). +Lemma pow_c_def {A B : Type'} : (@pow_c A B) = (fun _237577 : A -> Prop => fun _237578 : B -> Prop => @GSPEC (B -> A) (fun GEN_PVAR_450 : B -> A => exists f : B -> A, @SETSPEC (B -> A) GEN_PVAR_450 ((forall x : B, (@IN B x _237578) -> @IN A (f x) _237577) /\ (forall x : B, (~ (@IN B x _237578)) -> (f x) = (@ε A (fun y : A => False)))) f)). +Proof. exact (eq_refl (@pow_c A B)). Qed. +Definition permutes {_172930 : Type'} : (_172930 -> _172930) -> (_172930 -> Prop) -> Prop := fun _245176 : _172930 -> _172930 => fun _245177 : _172930 -> Prop => (forall x : _172930, (~ (@IN _172930 x _245177)) -> (_245176 x) = x) /\ (forall y : _172930, @ex1 _172930 (fun x : _172930 => (_245176 x) = y)). +Lemma permutes_def {_172930 : Type'} : (@permutes _172930) = (fun _245176 : _172930 -> _172930 => fun _245177 : _172930 -> Prop => (forall x : _172930, (~ (@IN _172930 x _245177)) -> (_245176 x) = x) /\ (forall y : _172930, @ex1 _172930 (fun x : _172930 => (_245176 x) = y))). +Proof. exact (eq_refl (@permutes _172930)). Qed. +Definition inverse {_172945 _172948 : Type'} : (_172948 -> _172945) -> _172945 -> _172948 := fun _245188 : _172948 -> _172945 => fun y : _172945 => @ε _172948 (fun x : _172948 => (_245188 x) = y). +Lemma inverse_def {_172945 _172948 : Type'} : (@inverse _172945 _172948) = (fun _245188 : _172948 -> _172945 => fun y : _172945 => @ε _172948 (fun x : _172948 => (_245188 x) = y)). +Proof. exact (eq_refl (@inverse _172945 _172948)). Qed. +Definition swap {_173152 : Type'} : (prod _173152 _173152) -> _173152 -> _173152 := fun _245602 : prod _173152 _173152 => fun _245603 : _173152 => @COND _173152 (_245603 = (@fst _173152 _173152 _245602)) (@snd _173152 _173152 _245602) (@COND _173152 (_245603 = (@snd _173152 _173152 _245602)) (@fst _173152 _173152 _245602) _245603). +Lemma swap_def {_173152 : Type'} : (@swap _173152) = (fun _245602 : prod _173152 _173152 => fun _245603 : _173152 => @COND _173152 (_245603 = (@fst _173152 _173152 _245602)) (@snd _173152 _173152 _245602) (@COND _173152 (_245603 = (@snd _173152 _173152 _245602)) (@fst _173152 _173152 _245602) _245603)). +Proof. exact (eq_refl (@swap _173152)). Qed. +Definition swapseq {_196374 : Type'} : N -> (_196374 -> _196374) -> Prop := fun a0 : N => fun a1 : _196374 -> _196374 => forall swapseq' : N -> (_196374 -> _196374) -> Prop, (forall a0' : N, forall a1' : _196374 -> _196374, (((a0' = (NUMERAL 0%N)) /\ (a1' = (@I _196374))) \/ (exists a : _196374, exists b : _196374, exists p : _196374 -> _196374, exists n : N, (a0' = (N.succ n)) /\ ((a1' = (@o _196374 _196374 _196374 (@swap _196374 (@pair _196374 _196374 a b)) p)) /\ ((swapseq' n p) /\ (~ (a = b)))))) -> swapseq' a0' a1') -> swapseq' a0 a1. +Lemma swapseq_def {_196374 : Type'} : (@swapseq _196374) = (fun a0 : N => fun a1 : _196374 -> _196374 => forall swapseq' : N -> (_196374 -> _196374) -> Prop, (forall a0' : N, forall a1' : _196374 -> _196374, (((a0' = (NUMERAL 0%N)) /\ (a1' = (@I _196374))) \/ (exists a : _196374, exists b : _196374, exists p : _196374 -> _196374, exists n : N, (a0' = (N.succ n)) /\ ((a1' = (@o _196374 _196374 _196374 (@swap _196374 (@pair _196374 _196374 a b)) p)) /\ ((swapseq' n p) /\ (~ (a = b)))))) -> swapseq' a0' a1') -> swapseq' a0 a1). +Proof. exact (eq_refl (@swapseq _196374)). Qed. +Definition permutation {_196388 : Type'} : (_196388 -> _196388) -> Prop := fun _253246 : _196388 -> _196388 => exists n : N, @swapseq _196388 n _253246. +Lemma permutation_def {_196388 : Type'} : (@permutation _196388) = (fun _253246 : _196388 -> _196388 => exists n : N, @swapseq _196388 n _253246). +Proof. exact (eq_refl (@permutation _196388)). Qed. +Definition evenperm {_197091 : Type'} : (_197091 -> _197091) -> Prop := fun _256183 : _197091 -> _197091 => EVEN (@ε N (fun n : N => @swapseq _197091 n _256183)). +Lemma evenperm_def {_197091 : Type'} : (@evenperm _197091) = (fun _256183 : _197091 -> _197091 => EVEN (@ε N (fun n : N => @swapseq _197091 n _256183))). +Proof. exact (eq_refl (@evenperm _197091)). Qed. +Definition sign {_198015 : Type'} : (_198015 -> _198015) -> R := fun _258425 : _198015 -> _198015 => @COND R (@evenperm _198015 _258425) (R_of_N (NUMERAL (BIT1 0%N))) (Ropp (R_of_N (NUMERAL (BIT1 0%N)))). +Lemma sign_def {_198015 : Type'} : (@sign _198015) = (fun _258425 : _198015 -> _198015 => @COND R (@evenperm _198015 _258425) (R_of_N (NUMERAL (BIT1 0%N))) (Ropp (R_of_N (NUMERAL (BIT1 0%N))))). +Proof. exact (eq_refl (@sign _198015)). Qed. +Definition rational : R -> Prop := fun _268901 : R => exists m : R, exists n : R, (integer m) /\ ((integer n) /\ ((~ (n = (R_of_N (NUMERAL 0%N)))) /\ (_268901 = (Rdiv m n)))). +Lemma rational_def : rational = (fun _268901 : R => exists m : R, exists n : R, (integer m) /\ ((integer n) /\ ((~ (n = (R_of_N (NUMERAL 0%N)))) /\ (_268901 = (Rdiv m n))))). +Proof. exact (eq_refl rational). Qed. +Definition floor : R -> R := @ε ((prod N (prod N (prod N (prod N N)))) -> R -> R) (fun n : (prod N (prod N (prod N (prod N N)))) -> R -> R => forall _269283 : prod N (prod N (prod N (prod N N))), exists r : R -> R, forall x : R, (integer (n _269283 x)) /\ ((Rle (R_of_N (NUMERAL 0%N)) (r x)) /\ ((Rlt (r x) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (x = (Rplus (n _269283 x) (r x)))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))))))). +Lemma floor_def : floor = (@ε ((prod N (prod N (prod N (prod N N)))) -> R -> R) (fun n : (prod N (prod N (prod N (prod N N)))) -> R -> R => forall _269283 : prod N (prod N (prod N (prod N N))), exists r : R -> R, forall x : R, (integer (n _269283 x)) /\ ((Rle (R_of_N (NUMERAL 0%N)) (r x)) /\ ((Rlt (r x) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (x = (Rplus (n _269283 x) (r x)))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N))))))))))))). +Proof. exact (eq_refl floor). Qed. +Definition frac : R -> R := @ε ((prod N (prod N (prod N N))) -> R -> R) (fun r : (prod N (prod N (prod N N))) -> R -> R => forall _269284 : prod N (prod N (prod N N)), forall x : R, (integer (floor x)) /\ ((Rle (R_of_N (NUMERAL 0%N)) (r _269284 x)) /\ ((Rlt (r _269284 x) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (x = (Rplus (floor x) (r _269284 x)))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))). +Lemma frac_def : frac = (@ε ((prod N (prod N (prod N N))) -> R -> R) (fun r : (prod N (prod N (prod N N))) -> R -> R => forall _269284 : prod N (prod N (prod N N)), forall x : R, (integer (floor x)) /\ ((Rle (R_of_N (NUMERAL 0%N)) (r _269284 x)) /\ ((Rlt (r _269284 x) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (x = (Rplus (floor x) (r _269284 x)))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))))). +Proof. exact (eq_refl frac). Qed. +Definition is_realinterval : (R -> Prop) -> Prop := fun _271022 : R -> Prop => forall a : R, forall b : R, forall c : R, ((@IN R a _271022) /\ ((@IN R b _271022) /\ ((Rle a c) /\ (Rle c b)))) -> @IN R c _271022. +Lemma is_realinterval_def : is_realinterval = (fun _271022 : R -> Prop => forall a : R, forall b : R, forall c : R, ((@IN R a _271022) /\ ((@IN R b _271022) /\ ((Rle a c) /\ (Rle c b)))) -> @IN R c _271022). +Proof. exact (eq_refl is_realinterval). Qed. +Definition open_real_interval : (prod R R) -> R -> Prop := fun _271083 : prod R R => @GSPEC R (fun GEN_PVAR_630 : R => exists x : R, @SETSPEC R GEN_PVAR_630 ((Rlt (@fst R R _271083) x) /\ (Rlt x (@snd R R _271083))) x). +Lemma open_real_interval_def : open_real_interval = (fun _271083 : prod R R => @GSPEC R (fun GEN_PVAR_630 : R => exists x : R, @SETSPEC R GEN_PVAR_630 ((Rlt (@fst R R _271083) x) /\ (Rlt x (@snd R R _271083))) x)). +Proof. exact (eq_refl open_real_interval). Qed. +Definition closed_real_interval : (list (prod R R)) -> R -> Prop := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))) -> (list (prod R R)) -> R -> Prop) (fun closed_real_interval' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))) -> (list (prod R R)) -> R -> Prop => forall _271202 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))), forall a : R, forall b : R, (closed_real_interval' _271202 (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@GSPEC R (fun GEN_PVAR_631 : R => exists x : R, @SETSPEC R GEN_PVAR_631 ((Rle a x) /\ (Rle x b)) x))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))))))))))))). +Lemma closed_real_interval_def : closed_real_interval = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))) -> (list (prod R R)) -> R -> Prop) (fun closed_real_interval' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))) -> (list (prod R R)) -> R -> Prop => forall _271202 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))), forall a : R, forall b : R, (closed_real_interval' _271202 (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@GSPEC R (fun GEN_PVAR_631 : R => exists x : R, @SETSPEC R GEN_PVAR_631 ((Rle a x) /\ (Rle x b)) x))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))))))))))))). +Proof. exact (eq_refl closed_real_interval). Qed. +Definition vectorize {A M N' : Type'} : (cart (cart A N') M) -> cart A (finite_prod M N') := fun x : cart (cart A N') M => @lambda A (finite_prod M N') (fun i : N => @dollar A N' (@dollar (cart A N') M x (N.add (NUMERAL (BIT1 0%N)) (N.div (N.sub i (NUMERAL (BIT1 0%N))) (@dimindex N' (@UNIV N'))))) (N.add (NUMERAL (BIT1 0%N)) (N.modulo (N.sub i (NUMERAL (BIT1 0%N))) (@dimindex N' (@UNIV N'))))). +Lemma vectorize_def {A M N' : Type'} : (@vectorize A M N') = (fun x : cart (cart A N') M => @lambda A (finite_prod M N') (fun i : N => @dollar A N' (@dollar (cart A N') M x (N.add (NUMERAL (BIT1 0%N)) (N.div (N.sub i (NUMERAL (BIT1 0%N))) (@dimindex N' (@UNIV N'))))) (N.add (NUMERAL (BIT1 0%N)) (N.modulo (N.sub i (NUMERAL (BIT1 0%N))) (@dimindex N' (@UNIV N')))))). +Proof. exact (eq_refl (@vectorize A M N')). Qed. +Definition matrify {A M N' : Type'} : (cart A (finite_prod M N')) -> cart (cart A N') M := fun x : cart A (finite_prod M N') => @lambda (cart A N') M (fun i : N => @lambda A N' (fun j : N => @dollar A (finite_prod M N') x (N.add (N.mul (N.sub i (NUMERAL (BIT1 0%N))) (@dimindex N' (@UNIV N'))) j))). +Lemma matrify_def {A M N' : Type'} : (@matrify A M N') = (fun x : cart A (finite_prod M N') => @lambda (cart A N') M (fun i : N => @lambda A N' (fun j : N => @dollar A (finite_prod M N') x (N.add (N.mul (N.sub i (NUMERAL (BIT1 0%N))) (@dimindex N' (@UNIV N'))) j)))). +Proof. exact (eq_refl (@matrify A M N')). Qed. +Definition hull {_219255 : Type'} : ((_219255 -> Prop) -> Prop) -> (_219255 -> Prop) -> _219255 -> Prop := fun _272381 : (_219255 -> Prop) -> Prop => fun _272382 : _219255 -> Prop => @INTERS _219255 (@GSPEC (_219255 -> Prop) (fun GEN_PVAR_636 : _219255 -> Prop => exists t : _219255 -> Prop, @SETSPEC (_219255 -> Prop) GEN_PVAR_636 ((_272381 t) /\ (@SUBSET _219255 _272382 t)) t)). +Lemma hull_def {_219255 : Type'} : (@hull _219255) = (fun _272381 : (_219255 -> Prop) -> Prop => fun _272382 : _219255 -> Prop => @INTERS _219255 (@GSPEC (_219255 -> Prop) (fun GEN_PVAR_636 : _219255 -> Prop => exists t : _219255 -> Prop, @SETSPEC (_219255 -> Prop) GEN_PVAR_636 ((_272381 t) /\ (@SUBSET _219255 _272382 t)) t))). +Proof. exact (eq_refl (@hull _219255)). Qed. +Definition from : N -> N -> Prop := fun _273299 : N => @GSPEC N (fun GEN_PVAR_641 : N => exists m : N, @SETSPEC N GEN_PVAR_641 (N.le _273299 m) m). +Lemma from_def : from = (fun _273299 : N => @GSPEC N (fun GEN_PVAR_641 : N => exists m : N, @SETSPEC N GEN_PVAR_641 (N.le _273299 m) m)). +Proof. exact (eq_refl from). Qed. +Definition relative_to {_231294 : Type'} : ((_231294 -> Prop) -> Prop) -> (_231294 -> Prop) -> (_231294 -> Prop) -> Prop := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> ((_231294 -> Prop) -> Prop) -> (_231294 -> Prop) -> (_231294 -> Prop) -> Prop) (fun relative_to' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> ((_231294 -> Prop) -> Prop) -> (_231294 -> Prop) -> (_231294 -> Prop) -> Prop => forall _276925 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))), forall P : (_231294 -> Prop) -> Prop, forall s : _231294 -> Prop, forall t : _231294 -> Prop, (relative_to' _276925 P s t) = (exists u : _231294 -> Prop, (P u) /\ ((@INTER _231294 s u) = t))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))). +Lemma relative_to_def {_231294 : Type'} : (@relative_to _231294) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> ((_231294 -> Prop) -> Prop) -> (_231294 -> Prop) -> (_231294 -> Prop) -> Prop) (fun relative_to' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> ((_231294 -> Prop) -> Prop) -> (_231294 -> Prop) -> (_231294 -> Prop) -> Prop => forall _276925 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))), forall P : (_231294 -> Prop) -> Prop, forall s : _231294 -> Prop, forall t : _231294 -> Prop, (relative_to' _276925 P s t) = (exists u : _231294 -> Prop, (P u) /\ ((@INTER _231294 s u) = t))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))))). +Proof. exact (eq_refl (@relative_to _231294)). Qed. +Definition suslin_operation {A : Type'} : ((list N) -> A -> Prop) -> A -> Prop := fun _305416 : (list N) -> A -> Prop => @UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_682 : A -> Prop => exists s : N -> N, @SETSPEC (A -> Prop) GEN_PVAR_682 (@IN (N -> N) s (@UNIV (N -> N))) (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_681 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_681 (N.le (NUMERAL (BIT1 0%N)) n) (_305416 (@list_of_seq N s n))))))). +Lemma suslin_operation_def {A : Type'} : (@suslin_operation A) = (fun _305416 : (list N) -> A -> Prop => @UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_682 : A -> Prop => exists s : N -> N, @SETSPEC (A -> Prop) GEN_PVAR_682 (@IN (N -> N) s (@UNIV (N -> N))) (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_681 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_681 (N.le (NUMERAL (BIT1 0%N)) n) (_305416 (@list_of_seq N s n)))))))). +Proof. exact (eq_refl (@suslin_operation A)). Qed. +Definition suslin {_235636 : Type'} : ((_235636 -> Prop) -> Prop) -> (_235636 -> Prop) -> Prop := fun _305421 : (_235636 -> Prop) -> Prop => @GSPEC (_235636 -> Prop) (fun GEN_PVAR_683 : _235636 -> Prop => exists f : (list N) -> _235636 -> Prop, @SETSPEC (_235636 -> Prop) GEN_PVAR_683 (forall l : list N, (~ (l = (@nil N))) -> @IN (_235636 -> Prop) (f l) _305421) (@suslin_operation _235636 f)). +Lemma suslin_def {_235636 : Type'} : (@suslin _235636) = (fun _305421 : (_235636 -> Prop) -> Prop => @GSPEC (_235636 -> Prop) (fun GEN_PVAR_683 : _235636 -> Prop => exists f : (list N) -> _235636 -> Prop, @SETSPEC (_235636 -> Prop) GEN_PVAR_683 (forall l : list N, (~ (l = (@nil N))) -> @IN (_235636 -> Prop) (f l) _305421) (@suslin_operation _235636 f))). +Proof. exact (eq_refl (@suslin _235636)). Qed. +Definition ITER {_237857 : Type'} : N -> (_237857 -> _237857) -> _237857 -> _237857 := @ε ((prod N (prod N (prod N N))) -> N -> (_237857 -> _237857) -> _237857 -> _237857) (fun ITER' : (prod N (prod N (prod N N))) -> N -> (_237857 -> _237857) -> _237857 -> _237857 => forall _337618 : prod N (prod N (prod N N)), (forall x : _237857, forall f : _237857 -> _237857, (ITER' _337618 (NUMERAL 0%N) f x) = x) /\ (forall x : _237857, forall f : _237857 -> _237857, forall n : N, (ITER' _337618 (N.succ n) f x) = (f (ITER' _337618 n f x)))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N))))))))))). +Lemma ITER_def {_237857 : Type'} : (@ITER _237857) = (@ε ((prod N (prod N (prod N N))) -> N -> (_237857 -> _237857) -> _237857 -> _237857) (fun ITER' : (prod N (prod N (prod N N))) -> N -> (_237857 -> _237857) -> _237857 -> _237857 => forall _337618 : prod N (prod N (prod N N)), (forall x : _237857, forall f : _237857 -> _237857, (ITER' _337618 (NUMERAL 0%N) f x) = x) /\ (forall x : _237857, forall f : _237857 -> _237857, forall n : N, (ITER' _337618 (N.succ n) f x) = (f (ITER' _337618 n f x)))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 0%N)))))))))))). +Proof. exact (eq_refl (@ITER _237857)). Qed. +Definition frag_support {A : Type'} : (frag A) -> A -> Prop := fun _338801 : frag A => @GSPEC A (fun GEN_PVAR_710 : A => exists a : A, @SETSPEC A GEN_PVAR_710 (~ ((@dest_frag A _338801 a) = (Z_of_N (NUMERAL 0%N)))) a). +Lemma frag_support_def {A : Type'} : (@frag_support A) = (fun _338801 : frag A => @GSPEC A (fun GEN_PVAR_710 : A => exists a : A, @SETSPEC A GEN_PVAR_710 (~ ((@dest_frag A _338801 a) = (Z_of_N (NUMERAL 0%N)))) a)). +Proof. exact (eq_refl (@frag_support A)). Qed. +Definition frag_0 {A : Type'} : frag A := @mk_frag A (fun x : A => Z_of_N (NUMERAL 0%N)). +Lemma frag_0_def {A : Type'} : (@frag_0 A) = (@mk_frag A (fun x : A => Z_of_N (NUMERAL 0%N))). +Proof. exact (eq_refl (@frag_0 A)). Qed. +Definition frag_of {A : Type'} : A -> frag A := fun _338806 : A => @mk_frag A (fun a : A => @COND Z (a = _338806) (Z_of_N (NUMERAL (BIT1 0%N))) (Z_of_N (NUMERAL 0%N))). +Lemma frag_of_def {A : Type'} : (@frag_of A) = (fun _338806 : A => @mk_frag A (fun a : A => @COND Z (a = _338806) (Z_of_N (NUMERAL (BIT1 0%N))) (Z_of_N (NUMERAL 0%N)))). +Proof. exact (eq_refl (@frag_of A)). Qed. +Definition frag_neg {A : Type'} : (frag A) -> frag A := fun _338811 : frag A => @mk_frag A (fun a : A => int_neg (@dest_frag A _338811 a)). +Lemma frag_neg_def {A : Type'} : (@frag_neg A) = (fun _338811 : frag A => @mk_frag A (fun a : A => int_neg (@dest_frag A _338811 a))). +Proof. exact (eq_refl (@frag_neg A)). Qed. +Definition frag_cmul {A : Type'} : Z -> (frag A) -> frag A := fun _338816 : Z => fun _338817 : frag A => @mk_frag A (fun a : A => int_mul _338816 (@dest_frag A _338817 a)). +Lemma frag_cmul_def {A : Type'} : (@frag_cmul A) = (fun _338816 : Z => fun _338817 : frag A => @mk_frag A (fun a : A => int_mul _338816 (@dest_frag A _338817 a))). +Proof. exact (eq_refl (@frag_cmul A)). Qed. +Definition frag_add {A : Type'} : (frag A) -> (frag A) -> frag A := fun _338828 : frag A => fun _338829 : frag A => @mk_frag A (fun a : A => int_add (@dest_frag A _338828 a) (@dest_frag A _338829 a)). +Lemma frag_add_def {A : Type'} : (@frag_add A) = (fun _338828 : frag A => fun _338829 : frag A => @mk_frag A (fun a : A => int_add (@dest_frag A _338828 a) (@dest_frag A _338829 a))). +Proof. exact (eq_refl (@frag_add A)). Qed. +Definition frag_sub {A : Type'} : (frag A) -> (frag A) -> frag A := fun _338840 : frag A => fun _338841 : frag A => @mk_frag A (fun a : A => int_sub (@dest_frag A _338840 a) (@dest_frag A _338841 a)). +Lemma frag_sub_def {A : Type'} : (@frag_sub A) = (fun _338840 : frag A => fun _338841 : frag A => @mk_frag A (fun a : A => int_sub (@dest_frag A _338840 a) (@dest_frag A _338841 a))). +Proof. exact (eq_refl (@frag_sub A)). Qed. +Definition frag_extend {A B : Type'} : (A -> frag B) -> (frag A) -> frag B := fun _339446 : A -> frag B => fun _339447 : frag A => @iterate A (frag B) (@frag_add B) (@frag_support A _339447) (fun a : A => @frag_cmul B (@dest_frag A _339447 a) (_339446 a)). +Lemma frag_extend_def {A B : Type'} : (@frag_extend A B) = (fun _339446 : A -> frag B => fun _339447 : frag A => @iterate A (frag B) (@frag_add B) (@frag_support A _339447) (fun a : A => @frag_cmul B (@dest_frag A _339447 a) (_339446 a))). +Proof. exact (eq_refl (@frag_extend A B)). Qed. +Definition index : N -> N -> N := fun _346634 : N => fun _346635 : N => @COND N ((N.le _346634 (NUMERAL (BIT1 0%N))) \/ (_346635 = (NUMERAL 0%N))) (NUMERAL 0%N) (@CARD N (@GSPEC N (fun GEN_PVAR_729 : N => exists j : N, @SETSPEC N GEN_PVAR_729 ((N.le (NUMERAL (BIT1 0%N)) j) /\ (num_divides (N.pow _346634 j) _346635)) j))). +Lemma index_def : index = (fun _346634 : N => fun _346635 : N => @COND N ((N.le _346634 (NUMERAL (BIT1 0%N))) \/ (_346635 = (NUMERAL 0%N))) (NUMERAL 0%N) (@CARD N (@GSPEC N (fun GEN_PVAR_729 : N => exists j : N, @SETSPEC N GEN_PVAR_729 ((N.le (NUMERAL (BIT1 0%N)) j) /\ (num_divides (N.pow _346634 j) _346635)) j)))). +Proof. exact (eq_refl index). Qed. +Definition group_carrier {A : Type'} : (Group A) -> A -> Prop := fun g : Group A => @fst (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_operations A g). +Lemma group_carrier_def {A : Type'} : (@group_carrier A) = (fun g : Group A => @fst (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_operations A g)). +Proof. exact (eq_refl (@group_carrier A)). Qed. +Definition group_id {A : Type'} : (Group A) -> A := fun g : Group A => @fst A (prod (A -> A) (A -> A -> A)) (@snd (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_operations A g)). +Lemma group_id_def {A : Type'} : (@group_id A) = (fun g : Group A => @fst A (prod (A -> A) (A -> A -> A)) (@snd (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_operations A g))). +Proof. exact (eq_refl (@group_id A)). Qed. +Definition group_inv {A : Type'} : (Group A) -> A -> A := fun g : Group A => @fst (A -> A) (A -> A -> A) (@snd A (prod (A -> A) (A -> A -> A)) (@snd (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_operations A g))). +Lemma group_inv_def {A : Type'} : (@group_inv A) = (fun g : Group A => @fst (A -> A) (A -> A -> A) (@snd A (prod (A -> A) (A -> A -> A)) (@snd (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_operations A g)))). +Proof. exact (eq_refl (@group_inv A)). Qed. +Definition group_mul {A : Type'} : (Group A) -> A -> A -> A := fun g : Group A => @snd (A -> A) (A -> A -> A) (@snd A (prod (A -> A) (A -> A -> A)) (@snd (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_operations A g))). +Lemma group_mul_def {A : Type'} : (@group_mul A) = (fun g : Group A => @snd (A -> A) (A -> A -> A) (@snd A (prod (A -> A) (A -> A -> A)) (@snd (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_operations A g)))). +Proof. exact (eq_refl (@group_mul A)). Qed. +Definition singleton_group {A : Type'} : A -> Group A := fun _354213 : A => @group A (@pair (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@INSERT A _354213 (@EMPTY A)) (@pair A (prod (A -> A) (A -> A -> A)) _354213 (@pair (A -> A) (A -> A -> A) (fun x : A => _354213) (fun x : A => fun y : A => _354213)))). +Lemma singleton_group_def {A : Type'} : (@singleton_group A) = (fun _354213 : A => @group A (@pair (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@INSERT A _354213 (@EMPTY A)) (@pair A (prod (A -> A) (A -> A -> A)) _354213 (@pair (A -> A) (A -> A -> A) (fun x : A => _354213) (fun x : A => fun y : A => _354213))))). +Proof. exact (eq_refl (@singleton_group A)). Qed. +Definition trivial_group {_255474 : Type'} : (Group _255474) -> Prop := fun _354218 : Group _255474 => (@group_carrier _255474 _354218) = (@INSERT _255474 (@group_id _255474 _354218) (@EMPTY _255474)). +Lemma trivial_group_def {_255474 : Type'} : (@trivial_group _255474) = (fun _354218 : Group _255474 => (@group_carrier _255474 _354218) = (@INSERT _255474 (@group_id _255474 _354218) (@EMPTY _255474))). +Proof. exact (eq_refl (@trivial_group _255474)). Qed. +Definition opposite_group {A : Type'} : (Group A) -> Group A := fun _354284 : Group A => @group A (@pair (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_carrier A _354284) (@pair A (prod (A -> A) (A -> A -> A)) (@group_id A _354284) (@pair (A -> A) (A -> A -> A) (@group_inv A _354284) (fun x : A => fun y : A => @group_mul A _354284 y x)))). +Lemma opposite_group_def {A : Type'} : (@opposite_group A) = (fun _354284 : Group A => @group A (@pair (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_carrier A _354284) (@pair A (prod (A -> A) (A -> A -> A)) (@group_id A _354284) (@pair (A -> A) (A -> A -> A) (@group_inv A _354284) (fun x : A => fun y : A => @group_mul A _354284 y x))))). +Proof. exact (eq_refl (@opposite_group A)). Qed. +Definition group_div {_255847 : Type'} : (Group _255847) -> _255847 -> _255847 -> _255847 := fun _354289 : Group _255847 => fun _354290 : _255847 => fun _354291 : _255847 => @group_mul _255847 _354289 _354290 (@group_inv _255847 _354289 _354291). +Lemma group_div_def {_255847 : Type'} : (@group_div _255847) = (fun _354289 : Group _255847 => fun _354290 : _255847 => fun _354291 : _255847 => @group_mul _255847 _354289 _354290 (@group_inv _255847 _354289 _354291)). +Proof. exact (eq_refl (@group_div _255847)). Qed. +Definition group_pow {_257039 : Type'} : (Group _257039) -> _257039 -> N -> _257039 := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) -> (Group _257039) -> _257039 -> N -> _257039) (fun group_pow' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) -> (Group _257039) -> _257039 -> N -> _257039 => forall _354924 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))), (forall x : _257039, forall G : Group _257039, (group_pow' _354924 G x (NUMERAL 0%N)) = (@group_id _257039 G)) /\ (forall G : Group _257039, forall x : _257039, forall n : N, (group_pow' _354924 G x (N.succ n)) = (@group_mul _257039 G x (group_pow' _354924 G x n)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))))))))))). +Lemma group_pow_def {_257039 : Type'} : (@group_pow _257039) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) -> (Group _257039) -> _257039 -> N -> _257039) (fun group_pow' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) -> (Group _257039) -> _257039 -> N -> _257039 => forall _354924 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))), (forall x : _257039, forall G : Group _257039, (group_pow' _354924 G x (NUMERAL 0%N)) = (@group_id _257039 G)) /\ (forall G : Group _257039, forall x : _257039, forall n : N, (group_pow' _354924 G x (N.succ n)) = (@group_mul _257039 G x (group_pow' _354924 G x n)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N))))))))))))))))). +Proof. exact (eq_refl (@group_pow _257039)). Qed. +Definition group_zpow {A : Type'} : (Group A) -> A -> Z -> A := fun _354984 : Group A => fun _354985 : A => fun _354986 : Z => @COND A (int_le (Z_of_N (NUMERAL 0%N)) _354986) (@group_pow A _354984 _354985 (num_of_int _354986)) (@group_inv A _354984 (@group_pow A _354984 _354985 (num_of_int (int_neg _354986)))). +Lemma group_zpow_def {A : Type'} : (@group_zpow A) = (fun _354984 : Group A => fun _354985 : A => fun _354986 : Z => @COND A (int_le (Z_of_N (NUMERAL 0%N)) _354986) (@group_pow A _354984 _354985 (num_of_int _354986)) (@group_inv A _354984 (@group_pow A _354984 _354985 (num_of_int (int_neg _354986))))). +Proof. exact (eq_refl (@group_zpow A)). Qed. +Definition abelian_group {A : Type'} : (Group A) -> Prop := fun _355172 : Group A => forall x : A, forall y : A, ((@IN A x (@group_carrier A _355172)) /\ (@IN A y (@group_carrier A _355172))) -> (@group_mul A _355172 x y) = (@group_mul A _355172 y x). +Lemma abelian_group_def {A : Type'} : (@abelian_group A) = (fun _355172 : Group A => forall x : A, forall y : A, ((@IN A x (@group_carrier A _355172)) /\ (@IN A y (@group_carrier A _355172))) -> (@group_mul A _355172 x y) = (@group_mul A _355172 y x)). +Proof. exact (eq_refl (@abelian_group A)). Qed. +Definition group_neg {_258875 : Type'} : (Group _258875) -> _258875 -> _258875 := fun _355389 : Group _258875 => fun _355390 : _258875 => @COND _258875 (@IN _258875 _355390 (@group_carrier _258875 _355389)) (@group_inv _258875 _355389 _355390) _355390. +Lemma group_neg_def {_258875 : Type'} : (@group_neg _258875) = (fun _355389 : Group _258875 => fun _355390 : _258875 => @COND _258875 (@IN _258875 _355390 (@group_carrier _258875 _355389)) (@group_inv _258875 _355389 _355390) _355390). +Proof. exact (eq_refl (@group_neg _258875)). Qed. +Definition group_add {A : Type'} : (Group A) -> A -> A -> A := fun _355401 : Group A => fun _355402 : A => fun _355403 : A => @COND A ((@IN A _355402 (@group_carrier A _355401)) /\ (@IN A _355403 (@group_carrier A _355401))) (@group_mul A _355401 _355402 _355403) (@COND A (@IN A _355402 (@group_carrier A _355401)) _355403 (@COND A (@IN A _355403 (@group_carrier A _355401)) _355402 (@ε A (fun w : A => ~ (@IN A w (@group_carrier A _355401)))))). +Lemma group_add_def {A : Type'} : (@group_add A) = (fun _355401 : Group A => fun _355402 : A => fun _355403 : A => @COND A ((@IN A _355402 (@group_carrier A _355401)) /\ (@IN A _355403 (@group_carrier A _355401))) (@group_mul A _355401 _355402 _355403) (@COND A (@IN A _355402 (@group_carrier A _355401)) _355403 (@COND A (@IN A _355403 (@group_carrier A _355401)) _355402 (@ε A (fun w : A => ~ (@IN A w (@group_carrier A _355401))))))). +Proof. exact (eq_refl (@group_add A)). Qed. +Definition group_nmul {_258956 : Type'} : (Group _258956) -> N -> _258956 -> _258956 := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) -> (Group _258956) -> N -> _258956 -> _258956) (fun group_nmul' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) -> (Group _258956) -> N -> _258956 -> _258956 => forall _355429 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))), (forall x : _258956, forall G : Group _258956, (group_nmul' _355429 G (NUMERAL 0%N) x) = (@group_id _258956 G)) /\ (forall G : Group _258956, forall n : N, forall x : _258956, (group_nmul' _355429 G (N.succ n) x) = (@group_add _258956 G x (group_nmul' _355429 G n x)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))). +Lemma group_nmul_def {_258956 : Type'} : (@group_nmul _258956) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) -> (Group _258956) -> N -> _258956 -> _258956) (fun group_nmul' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) -> (Group _258956) -> N -> _258956 -> _258956 => forall _355429 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))), (forall x : _258956, forall G : Group _258956, (group_nmul' _355429 G (NUMERAL 0%N) x) = (@group_id _258956 G)) /\ (forall G : Group _258956, forall n : N, forall x : _258956, (group_nmul' _355429 G (N.succ n) x) = (@group_add _258956 G x (group_nmul' _355429 G n x)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))). +Proof. exact (eq_refl (@group_nmul _258956)). Qed. +Definition group_product {_260068 A : Type'} : (Group A) -> (_260068 -> _260068 -> Prop) -> (_260068 -> Prop) -> (_260068 -> A) -> A := fun _355791 : Group A => @iterato A _260068 (@group_carrier A _355791) (@group_id A _355791) (@group_mul A _355791). +Lemma group_product_def {_260068 A : Type'} : (@group_product _260068 A) = (fun _355791 : Group A => @iterato A _260068 (@group_carrier A _355791) (@group_id A _355791) (@group_mul A _355791)). +Proof. exact (eq_refl (@group_product _260068 A)). Qed. +Definition group_sum {A K : Type'} : (Group A) -> (K -> Prop) -> (K -> A) -> A := fun _355796 : Group A => @group_product K A _355796 (@ε (K -> K -> Prop) (fun l : K -> K -> Prop => (@woset K l) /\ ((@fld K l) = (@UNIV K)))). +Lemma group_sum_def {A K : Type'} : (@group_sum A K) = (fun _355796 : Group A => @group_product K A _355796 (@ε (K -> K -> Prop) (fun l : K -> K -> Prop => (@woset K l) /\ ((@fld K l) = (@UNIV K))))). +Proof. exact (eq_refl (@group_sum A K)). Qed. +Definition group_conjugation {_265504 : Type'} : (Group _265504) -> _265504 -> _265504 -> _265504 := fun _371034 : Group _265504 => fun _371035 : _265504 => fun _371036 : _265504 => @group_mul _265504 _371034 _371035 (@group_mul _265504 _371034 _371036 (@group_inv _265504 _371034 _371035)). +Lemma group_conjugation_def {_265504 : Type'} : (@group_conjugation _265504) = (fun _371034 : Group _265504 => fun _371035 : _265504 => fun _371036 : _265504 => @group_mul _265504 _371034 _371035 (@group_mul _265504 _371034 _371036 (@group_inv _265504 _371034 _371035))). +Proof. exact (eq_refl (@group_conjugation _265504)). Qed. +Definition subgroup_of {A : Type'} : (A -> Prop) -> (Group A) -> Prop := fun _371742 : A -> Prop => fun _371743 : Group A => (@SUBSET A _371742 (@group_carrier A _371743)) /\ ((@IN A (@group_id A _371743) _371742) /\ ((forall x : A, (@IN A x _371742) -> @IN A (@group_inv A _371743 x) _371742) /\ (forall x : A, forall y : A, ((@IN A x _371742) /\ (@IN A y _371742)) -> @IN A (@group_mul A _371743 x y) _371742))). +Lemma subgroup_of_def {A : Type'} : (@subgroup_of A) = (fun _371742 : A -> Prop => fun _371743 : Group A => (@SUBSET A _371742 (@group_carrier A _371743)) /\ ((@IN A (@group_id A _371743) _371742) /\ ((forall x : A, (@IN A x _371742) -> @IN A (@group_inv A _371743 x) _371742) /\ (forall x : A, forall y : A, ((@IN A x _371742) /\ (@IN A y _371742)) -> @IN A (@group_mul A _371743 x y) _371742)))). +Proof. exact (eq_refl (@subgroup_of A)). Qed. +Definition subgroup_generated {A : Type'} : (Group A) -> (A -> Prop) -> Group A := fun _372584 : Group A => fun _372585 : A -> Prop => @group A (@pair (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_810 : A -> Prop => exists h : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_810 ((@subgroup_of A h _372584) /\ (@SUBSET A (@INTER A (@group_carrier A _372584) _372585) h)) h))) (@pair A (prod (A -> A) (A -> A -> A)) (@group_id A _372584) (@pair (A -> A) (A -> A -> A) (@group_inv A _372584) (@group_mul A _372584)))). +Lemma subgroup_generated_def {A : Type'} : (@subgroup_generated A) = (fun _372584 : Group A => fun _372585 : A -> Prop => @group A (@pair (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_810 : A -> Prop => exists h : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_810 ((@subgroup_of A h _372584) /\ (@SUBSET A (@INTER A (@group_carrier A _372584) _372585) h)) h))) (@pair A (prod (A -> A) (A -> A -> A)) (@group_id A _372584) (@pair (A -> A) (A -> A -> A) (@group_inv A _372584) (@group_mul A _372584))))). +Proof. exact (eq_refl (@subgroup_generated A)). Qed. +Definition prod_group {A B : Type'} : (Group A) -> (Group B) -> Group (prod A B) := fun _374544 : Group A => fun _374545 : Group B => @group (prod A B) (@pair ((prod A B) -> Prop) (prod (prod A B) (prod ((prod A B) -> prod A B) ((prod A B) -> (prod A B) -> prod A B))) (@CROSS A B (@group_carrier A _374544) (@group_carrier B _374545)) (@pair (prod A B) (prod ((prod A B) -> prod A B) ((prod A B) -> (prod A B) -> prod A B)) (@pair A B (@group_id A _374544) (@group_id B _374545)) (@pair ((prod A B) -> prod A B) ((prod A B) -> (prod A B) -> prod A B) (@GABS ((prod A B) -> prod A B) (fun f : (prod A B) -> prod A B => forall x : A, forall x' : B, @GEQ (prod A B) (f (@pair A B x x')) (@pair A B (@group_inv A _374544 x) (@group_inv B _374545 x')))) (@GABS ((prod A B) -> (prod A B) -> prod A B) (fun f : (prod A B) -> (prod A B) -> prod A B => forall x : A, forall x' : B, @GEQ ((prod A B) -> prod A B) (f (@pair A B x x')) (@GABS ((prod A B) -> prod A B) (fun f' : (prod A B) -> prod A B => forall y : A, forall y' : B, @GEQ (prod A B) (f' (@pair A B y y')) (@pair A B (@group_mul A _374544 x y) (@group_mul B _374545 x' y'))))))))). +Lemma prod_group_def {A B : Type'} : (@prod_group A B) = (fun _374544 : Group A => fun _374545 : Group B => @group (prod A B) (@pair ((prod A B) -> Prop) (prod (prod A B) (prod ((prod A B) -> prod A B) ((prod A B) -> (prod A B) -> prod A B))) (@CROSS A B (@group_carrier A _374544) (@group_carrier B _374545)) (@pair (prod A B) (prod ((prod A B) -> prod A B) ((prod A B) -> (prod A B) -> prod A B)) (@pair A B (@group_id A _374544) (@group_id B _374545)) (@pair ((prod A B) -> prod A B) ((prod A B) -> (prod A B) -> prod A B) (@GABS ((prod A B) -> prod A B) (fun f : (prod A B) -> prod A B => forall x : A, forall x' : B, @GEQ (prod A B) (f (@pair A B x x')) (@pair A B (@group_inv A _374544 x) (@group_inv B _374545 x')))) (@GABS ((prod A B) -> (prod A B) -> prod A B) (fun f : (prod A B) -> (prod A B) -> prod A B => forall x : A, forall x' : B, @GEQ ((prod A B) -> prod A B) (f (@pair A B x x')) (@GABS ((prod A B) -> prod A B) (fun f' : (prod A B) -> prod A B => forall y : A, forall y' : B, @GEQ (prod A B) (f' (@pair A B y y')) (@pair A B (@group_mul A _374544 x y) (@group_mul B _374545 x' y')))))))))). +Proof. exact (eq_refl (@prod_group A B)). Qed. +Definition product_group {A K : Type'} : (K -> Prop) -> (K -> Group A) -> Group (K -> A) := fun _375306 : K -> Prop => fun _375307 : K -> Group A => @group (K -> A) (@pair ((K -> A) -> Prop) (prod (K -> A) (prod ((K -> A) -> K -> A) ((K -> A) -> (K -> A) -> K -> A))) (@cartesian_product A K _375306 (fun i : K => @group_carrier A (_375307 i))) (@pair (K -> A) (prod ((K -> A) -> K -> A) ((K -> A) -> (K -> A) -> K -> A)) (@RESTRICTION K A _375306 (fun i : K => @group_id A (_375307 i))) (@pair ((K -> A) -> K -> A) ((K -> A) -> (K -> A) -> K -> A) (fun x : K -> A => @RESTRICTION K A _375306 (fun i : K => @group_inv A (_375307 i) (x i))) (fun x : K -> A => fun y : K -> A => @RESTRICTION K A _375306 (fun i : K => @group_mul A (_375307 i) (x i) (y i)))))). +Lemma product_group_def {A K : Type'} : (@product_group A K) = (fun _375306 : K -> Prop => fun _375307 : K -> Group A => @group (K -> A) (@pair ((K -> A) -> Prop) (prod (K -> A) (prod ((K -> A) -> K -> A) ((K -> A) -> (K -> A) -> K -> A))) (@cartesian_product A K _375306 (fun i : K => @group_carrier A (_375307 i))) (@pair (K -> A) (prod ((K -> A) -> K -> A) ((K -> A) -> (K -> A) -> K -> A)) (@RESTRICTION K A _375306 (fun i : K => @group_id A (_375307 i))) (@pair ((K -> A) -> K -> A) ((K -> A) -> (K -> A) -> K -> A) (fun x : K -> A => @RESTRICTION K A _375306 (fun i : K => @group_inv A (_375307 i) (x i))) (fun x : K -> A => fun y : K -> A => @RESTRICTION K A _375306 (fun i : K => @group_mul A (_375307 i) (x i) (y i))))))). +Proof. exact (eq_refl (@product_group A K)). Qed. +Definition sum_group {A K : Type'} : (K -> Prop) -> (K -> Group A) -> Group (K -> A) := fun _375648 : K -> Prop => fun _375649 : K -> Group A => @subgroup_generated (K -> A) (@product_group A K _375648 _375649) (@GSPEC (K -> A) (fun GEN_PVAR_820 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_820 ((@IN (K -> A) x (@cartesian_product A K _375648 (fun i : K => @group_carrier A (_375649 i)))) /\ (@FINITE K (@GSPEC K (fun GEN_PVAR_819 : K => exists i : K, @SETSPEC K GEN_PVAR_819 ((@IN K i _375648) /\ (~ ((x i) = (@group_id A (_375649 i))))) i)))) x)). +Lemma sum_group_def {A K : Type'} : (@sum_group A K) = (fun _375648 : K -> Prop => fun _375649 : K -> Group A => @subgroup_generated (K -> A) (@product_group A K _375648 _375649) (@GSPEC (K -> A) (fun GEN_PVAR_820 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_820 ((@IN (K -> A) x (@cartesian_product A K _375648 (fun i : K => @group_carrier A (_375649 i)))) /\ (@FINITE K (@GSPEC K (fun GEN_PVAR_819 : K => exists i : K, @SETSPEC K GEN_PVAR_819 ((@IN K i _375648) /\ (~ ((x i) = (@group_id A (_375649 i))))) i)))) x))). +Proof. exact (eq_refl (@sum_group A K)). Qed. +Definition group_homomorphism {A B : Type'} : (prod (Group A) (Group B)) -> (A -> B) -> Prop := fun _376175 : prod (Group A) (Group B) => fun _376176 : A -> B => (@SUBSET B (@IMAGE A B _376176 (@group_carrier A (@fst (Group A) (Group B) _376175))) (@group_carrier B (@snd (Group A) (Group B) _376175))) /\ (((_376176 (@group_id A (@fst (Group A) (Group B) _376175))) = (@group_id B (@snd (Group A) (Group B) _376175))) /\ ((forall x : A, (@IN A x (@group_carrier A (@fst (Group A) (Group B) _376175))) -> (_376176 (@group_inv A (@fst (Group A) (Group B) _376175) x)) = (@group_inv B (@snd (Group A) (Group B) _376175) (_376176 x))) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A (@fst (Group A) (Group B) _376175))) /\ (@IN A y (@group_carrier A (@fst (Group A) (Group B) _376175)))) -> (_376176 (@group_mul A (@fst (Group A) (Group B) _376175) x y)) = (@group_mul B (@snd (Group A) (Group B) _376175) (_376176 x) (_376176 y))))). +Lemma group_homomorphism_def {A B : Type'} : (@group_homomorphism A B) = (fun _376175 : prod (Group A) (Group B) => fun _376176 : A -> B => (@SUBSET B (@IMAGE A B _376176 (@group_carrier A (@fst (Group A) (Group B) _376175))) (@group_carrier B (@snd (Group A) (Group B) _376175))) /\ (((_376176 (@group_id A (@fst (Group A) (Group B) _376175))) = (@group_id B (@snd (Group A) (Group B) _376175))) /\ ((forall x : A, (@IN A x (@group_carrier A (@fst (Group A) (Group B) _376175))) -> (_376176 (@group_inv A (@fst (Group A) (Group B) _376175) x)) = (@group_inv B (@snd (Group A) (Group B) _376175) (_376176 x))) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A (@fst (Group A) (Group B) _376175))) /\ (@IN A y (@group_carrier A (@fst (Group A) (Group B) _376175)))) -> (_376176 (@group_mul A (@fst (Group A) (Group B) _376175) x y)) = (@group_mul B (@snd (Group A) (Group B) _376175) (_376176 x) (_376176 y)))))). +Proof. exact (eq_refl (@group_homomorphism A B)). Qed. +Definition group_monomorphism {A B : Type'} : (prod (Group A) (Group B)) -> (A -> B) -> Prop := fun _376192 : prod (Group A) (Group B) => fun _376193 : A -> B => (@group_homomorphism A B (@pair (Group A) (Group B) (@fst (Group A) (Group B) _376192) (@snd (Group A) (Group B) _376192)) _376193) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A (@fst (Group A) (Group B) _376192))) /\ ((@IN A y (@group_carrier A (@fst (Group A) (Group B) _376192))) /\ ((_376193 x) = (_376193 y)))) -> x = y). +Lemma group_monomorphism_def {A B : Type'} : (@group_monomorphism A B) = (fun _376192 : prod (Group A) (Group B) => fun _376193 : A -> B => (@group_homomorphism A B (@pair (Group A) (Group B) (@fst (Group A) (Group B) _376192) (@snd (Group A) (Group B) _376192)) _376193) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A (@fst (Group A) (Group B) _376192))) /\ ((@IN A y (@group_carrier A (@fst (Group A) (Group B) _376192))) /\ ((_376193 x) = (_376193 y)))) -> x = y)). +Proof. exact (eq_refl (@group_monomorphism A B)). Qed. +Definition group_epimorphism {A B : Type'} : (prod (Group A) (Group B)) -> (A -> B) -> Prop := fun _376209 : prod (Group A) (Group B) => fun _376210 : A -> B => (@group_homomorphism A B (@pair (Group A) (Group B) (@fst (Group A) (Group B) _376209) (@snd (Group A) (Group B) _376209)) _376210) /\ ((@IMAGE A B _376210 (@group_carrier A (@fst (Group A) (Group B) _376209))) = (@group_carrier B (@snd (Group A) (Group B) _376209))). +Lemma group_epimorphism_def {A B : Type'} : (@group_epimorphism A B) = (fun _376209 : prod (Group A) (Group B) => fun _376210 : A -> B => (@group_homomorphism A B (@pair (Group A) (Group B) (@fst (Group A) (Group B) _376209) (@snd (Group A) (Group B) _376209)) _376210) /\ ((@IMAGE A B _376210 (@group_carrier A (@fst (Group A) (Group B) _376209))) = (@group_carrier B (@snd (Group A) (Group B) _376209)))). +Proof. exact (eq_refl (@group_epimorphism A B)). Qed. +Definition group_endomorphism {A : Type'} : (Group A) -> (A -> A) -> Prop := fun _376226 : Group A => fun _376227 : A -> A => @group_homomorphism A A (@pair (Group A) (Group A) _376226 _376226) _376227. +Lemma group_endomorphism_def {A : Type'} : (@group_endomorphism A) = (fun _376226 : Group A => fun _376227 : A -> A => @group_homomorphism A A (@pair (Group A) (Group A) _376226 _376226) _376227). +Proof. exact (eq_refl (@group_endomorphism A)). Qed. +Definition group_isomorphisms {A B : Type'} : (prod (Group A) (Group B)) -> (prod (A -> B) (B -> A)) -> Prop := fun _376238 : prod (Group A) (Group B) => fun _376239 : prod (A -> B) (B -> A) => (@group_homomorphism A B (@pair (Group A) (Group B) (@fst (Group A) (Group B) _376238) (@snd (Group A) (Group B) _376238)) (@fst (A -> B) (B -> A) _376239)) /\ ((@group_homomorphism B A (@pair (Group B) (Group A) (@snd (Group A) (Group B) _376238) (@fst (Group A) (Group B) _376238)) (@snd (A -> B) (B -> A) _376239)) /\ ((forall x : A, (@IN A x (@group_carrier A (@fst (Group A) (Group B) _376238))) -> (@snd (A -> B) (B -> A) _376239 (@fst (A -> B) (B -> A) _376239 x)) = x) /\ (forall y : B, (@IN B y (@group_carrier B (@snd (Group A) (Group B) _376238))) -> (@fst (A -> B) (B -> A) _376239 (@snd (A -> B) (B -> A) _376239 y)) = y))). +Lemma group_isomorphisms_def {A B : Type'} : (@group_isomorphisms A B) = (fun _376238 : prod (Group A) (Group B) => fun _376239 : prod (A -> B) (B -> A) => (@group_homomorphism A B (@pair (Group A) (Group B) (@fst (Group A) (Group B) _376238) (@snd (Group A) (Group B) _376238)) (@fst (A -> B) (B -> A) _376239)) /\ ((@group_homomorphism B A (@pair (Group B) (Group A) (@snd (Group A) (Group B) _376238) (@fst (Group A) (Group B) _376238)) (@snd (A -> B) (B -> A) _376239)) /\ ((forall x : A, (@IN A x (@group_carrier A (@fst (Group A) (Group B) _376238))) -> (@snd (A -> B) (B -> A) _376239 (@fst (A -> B) (B -> A) _376239 x)) = x) /\ (forall y : B, (@IN B y (@group_carrier B (@snd (Group A) (Group B) _376238))) -> (@fst (A -> B) (B -> A) _376239 (@snd (A -> B) (B -> A) _376239 y)) = y)))). +Proof. exact (eq_refl (@group_isomorphisms A B)). Qed. +Definition group_isomorphism {A B : Type'} : (prod (Group A) (Group B)) -> (A -> B) -> Prop := fun _376260 : prod (Group A) (Group B) => fun _376261 : A -> B => exists g : B -> A, @group_isomorphisms A B (@pair (Group A) (Group B) (@fst (Group A) (Group B) _376260) (@snd (Group A) (Group B) _376260)) (@pair (A -> B) (B -> A) _376261 g). +Lemma group_isomorphism_def {A B : Type'} : (@group_isomorphism A B) = (fun _376260 : prod (Group A) (Group B) => fun _376261 : A -> B => exists g : B -> A, @group_isomorphisms A B (@pair (Group A) (Group B) (@fst (Group A) (Group B) _376260) (@snd (Group A) (Group B) _376260)) (@pair (A -> B) (B -> A) _376261 g)). +Proof. exact (eq_refl (@group_isomorphism A B)). Qed. +Definition group_automorphism {A : Type'} : (Group A) -> (A -> A) -> Prop := fun _376277 : Group A => fun _376278 : A -> A => @group_isomorphism A A (@pair (Group A) (Group A) _376277 _376277) _376278. +Lemma group_automorphism_def {A : Type'} : (@group_automorphism A) = (fun _376277 : Group A => fun _376278 : A -> A => @group_isomorphism A A (@pair (Group A) (Group A) _376277 _376277) _376278). +Proof. exact (eq_refl (@group_automorphism A)). Qed. +Definition isomorphic_group {A B : Type'} : (Group A) -> (Group B) -> Prop := fun _399100 : Group A => fun _399101 : Group B => exists f : A -> B, @group_isomorphism A B (@pair (Group A) (Group B) _399100 _399101) f. +Lemma isomorphic_group_def {A B : Type'} : (@isomorphic_group A B) = (fun _399100 : Group A => fun _399101 : Group B => exists f : A -> B, @group_isomorphism A B (@pair (Group A) (Group B) _399100 _399101) f). +Proof. exact (eq_refl (@isomorphic_group A B)). Qed. +Definition group_setinv {_281127 : Type'} : (Group _281127) -> (_281127 -> Prop) -> _281127 -> Prop := fun _403173 : Group _281127 => fun _403174 : _281127 -> Prop => @GSPEC _281127 (fun GEN_PVAR_842 : _281127 => exists x : _281127, @SETSPEC _281127 GEN_PVAR_842 (@IN _281127 x _403174) (@group_inv _281127 _403173 x)). +Lemma group_setinv_def {_281127 : Type'} : (@group_setinv _281127) = (fun _403173 : Group _281127 => fun _403174 : _281127 -> Prop => @GSPEC _281127 (fun GEN_PVAR_842 : _281127 => exists x : _281127, @SETSPEC _281127 GEN_PVAR_842 (@IN _281127 x _403174) (@group_inv _281127 _403173 x))). +Proof. exact (eq_refl (@group_setinv _281127)). Qed. +Definition group_setmul {_281156 : Type'} : (Group _281156) -> (_281156 -> Prop) -> (_281156 -> Prop) -> _281156 -> Prop := fun _403185 : Group _281156 => fun _403186 : _281156 -> Prop => fun _403187 : _281156 -> Prop => @GSPEC _281156 (fun GEN_PVAR_843 : _281156 => exists x : _281156, exists y : _281156, @SETSPEC _281156 GEN_PVAR_843 ((@IN _281156 x _403186) /\ (@IN _281156 y _403187)) (@group_mul _281156 _403185 x y)). +Lemma group_setmul_def {_281156 : Type'} : (@group_setmul _281156) = (fun _403185 : Group _281156 => fun _403186 : _281156 -> Prop => fun _403187 : _281156 -> Prop => @GSPEC _281156 (fun GEN_PVAR_843 : _281156 => exists x : _281156, exists y : _281156, @SETSPEC _281156 GEN_PVAR_843 ((@IN _281156 x _403186) /\ (@IN _281156 y _403187)) (@group_mul _281156 _403185 x y))). +Proof. exact (eq_refl (@group_setmul _281156)). Qed. +Definition group_action {A X : Type'} : (Group A) -> (X -> Prop) -> (A -> X -> X) -> Prop := fun _405403 : Group A => fun _405404 : X -> Prop => fun _405405 : A -> X -> X => (forall g : A, forall x : X, ((@IN A g (@group_carrier A _405403)) /\ (@IN X x _405404)) -> @IN X (_405405 g x) _405404) /\ ((forall x : X, (@IN X x _405404) -> (_405405 (@group_id A _405403) x) = x) /\ (forall g : A, forall h : A, forall x : X, ((@IN A g (@group_carrier A _405403)) /\ ((@IN A h (@group_carrier A _405403)) /\ (@IN X x _405404))) -> (_405405 (@group_mul A _405403 g h) x) = (_405405 g (_405405 h x)))). +Lemma group_action_def {A X : Type'} : (@group_action A X) = (fun _405403 : Group A => fun _405404 : X -> Prop => fun _405405 : A -> X -> X => (forall g : A, forall x : X, ((@IN A g (@group_carrier A _405403)) /\ (@IN X x _405404)) -> @IN X (_405405 g x) _405404) /\ ((forall x : X, (@IN X x _405404) -> (_405405 (@group_id A _405403) x) = x) /\ (forall g : A, forall h : A, forall x : X, ((@IN A g (@group_carrier A _405403)) /\ ((@IN A h (@group_carrier A _405403)) /\ (@IN X x _405404))) -> (_405405 (@group_mul A _405403 g h) x) = (_405405 g (_405405 h x))))). +Proof. exact (eq_refl (@group_action A X)). Qed. +Definition group_stabilizer {A X : Type'} : (Group A) -> (A -> X -> X) -> X -> A -> Prop := fun _408336 : Group A => fun _408337 : A -> X -> X => fun _408338 : X => @GSPEC A (fun GEN_PVAR_855 : A => exists g : A, @SETSPEC A GEN_PVAR_855 ((@IN A g (@group_carrier A _408336)) /\ ((_408337 g _408338) = _408338)) g). +Lemma group_stabilizer_def {A X : Type'} : (@group_stabilizer A X) = (fun _408336 : Group A => fun _408337 : A -> X -> X => fun _408338 : X => @GSPEC A (fun GEN_PVAR_855 : A => exists g : A, @SETSPEC A GEN_PVAR_855 ((@IN A g (@group_carrier A _408336)) /\ ((_408337 g _408338) = _408338)) g)). +Proof. exact (eq_refl (@group_stabilizer A X)). Qed. +Definition group_orbit {A X : Type'} : (Group A) -> (X -> Prop) -> (A -> X -> X) -> X -> X -> Prop := fun _409004 : Group A => fun _409005 : X -> Prop => fun _409006 : A -> X -> X => fun _409007 : X => fun _409008 : X => (@IN X _409007 _409005) /\ ((@IN X _409008 _409005) /\ (exists g : A, (@IN A g (@group_carrier A _409004)) /\ ((_409006 g _409007) = _409008))). +Lemma group_orbit_def {A X : Type'} : (@group_orbit A X) = (fun _409004 : Group A => fun _409005 : X -> Prop => fun _409006 : A -> X -> X => fun _409007 : X => fun _409008 : X => (@IN X _409007 _409005) /\ ((@IN X _409008 _409005) /\ (exists g : A, (@IN A g (@group_carrier A _409004)) /\ ((_409006 g _409007) = _409008)))). +Proof. exact (eq_refl (@group_orbit A X)). Qed. +Definition right_coset {_287922 : Type'} : (Group _287922) -> (_287922 -> Prop) -> _287922 -> _287922 -> Prop := fun _414508 : Group _287922 => fun _414509 : _287922 -> Prop => fun _414510 : _287922 => @group_setmul _287922 _414508 _414509 (@INSERT _287922 _414510 (@EMPTY _287922)). +Lemma right_coset_def {_287922 : Type'} : (@right_coset _287922) = (fun _414508 : Group _287922 => fun _414509 : _287922 -> Prop => fun _414510 : _287922 => @group_setmul _287922 _414508 _414509 (@INSERT _287922 _414510 (@EMPTY _287922))). +Proof. exact (eq_refl (@right_coset _287922)). Qed. +Definition left_coset {_287937 : Type'} : (Group _287937) -> _287937 -> (_287937 -> Prop) -> _287937 -> Prop := fun _414529 : Group _287937 => fun _414530 : _287937 => fun _414531 : _287937 -> Prop => @group_setmul _287937 _414529 (@INSERT _287937 _414530 (@EMPTY _287937)) _414531. +Lemma left_coset_def {_287937 : Type'} : (@left_coset _287937) = (fun _414529 : Group _287937 => fun _414530 : _287937 => fun _414531 : _287937 -> Prop => @group_setmul _287937 _414529 (@INSERT _287937 _414530 (@EMPTY _287937)) _414531). +Proof. exact (eq_refl (@left_coset _287937)). Qed. +Definition normal_subgroup_of {A : Type'} : (A -> Prop) -> (Group A) -> Prop := fun _420191 : A -> Prop => fun _420192 : Group A => (@subgroup_of A _420191 _420192) /\ (forall x : A, (@IN A x (@group_carrier A _420192)) -> (@left_coset A _420192 x _420191) = (@right_coset A _420192 _420191 x)). +Lemma normal_subgroup_of_def {A : Type'} : (@normal_subgroup_of A) = (fun _420191 : A -> Prop => fun _420192 : Group A => (@subgroup_of A _420191 _420192) /\ (forall x : A, (@IN A x (@group_carrier A _420192)) -> (@left_coset A _420192 x _420191) = (@right_coset A _420192 _420191 x))). +Proof. exact (eq_refl (@normal_subgroup_of A)). Qed. +Definition group_conjugate {A : Type'} : (Group A) -> (A -> Prop) -> (A -> Prop) -> Prop := fun _422663 : Group A => fun _422664 : A -> Prop => fun _422665 : A -> Prop => (@SUBSET A _422664 (@group_carrier A _422663)) /\ ((@SUBSET A _422665 (@group_carrier A _422663)) /\ (exists a : A, (@IN A a (@group_carrier A _422663)) /\ ((@IMAGE A A (@group_conjugation A _422663 a) _422664) = _422665))). +Lemma group_conjugate_def {A : Type'} : (@group_conjugate A) = (fun _422663 : Group A => fun _422664 : A -> Prop => fun _422665 : A -> Prop => (@SUBSET A _422664 (@group_carrier A _422663)) /\ ((@SUBSET A _422665 (@group_carrier A _422663)) /\ (exists a : A, (@IN A a (@group_carrier A _422663)) /\ ((@IMAGE A A (@group_conjugation A _422663 a) _422664) = _422665)))). +Proof. exact (eq_refl (@group_conjugate A)). Qed. +Definition group_centralizer {A : Type'} : (Group A) -> (A -> Prop) -> A -> Prop := fun _423436 : Group A => fun _423437 : A -> Prop => @GSPEC A (fun GEN_PVAR_944 : A => exists x : A, @SETSPEC A GEN_PVAR_944 ((@IN A x (@group_carrier A _423436)) /\ (forall y : A, ((@IN A y (@group_carrier A _423436)) /\ (@IN A y _423437)) -> (@group_mul A _423436 x y) = (@group_mul A _423436 y x))) x). +Lemma group_centralizer_def {A : Type'} : (@group_centralizer A) = (fun _423436 : Group A => fun _423437 : A -> Prop => @GSPEC A (fun GEN_PVAR_944 : A => exists x : A, @SETSPEC A GEN_PVAR_944 ((@IN A x (@group_carrier A _423436)) /\ (forall y : A, ((@IN A y (@group_carrier A _423436)) /\ (@IN A y _423437)) -> (@group_mul A _423436 x y) = (@group_mul A _423436 y x))) x)). +Proof. exact (eq_refl (@group_centralizer A)). Qed. +Definition group_normalizer {A : Type'} : (Group A) -> (A -> Prop) -> A -> Prop := fun _423448 : Group A => fun _423449 : A -> Prop => @GSPEC A (fun GEN_PVAR_945 : A => exists x : A, @SETSPEC A GEN_PVAR_945 ((@IN A x (@group_carrier A _423448)) /\ ((@group_setmul A _423448 (@INSERT A x (@EMPTY A)) (@INTER A (@group_carrier A _423448) _423449)) = (@group_setmul A _423448 (@INTER A (@group_carrier A _423448) _423449) (@INSERT A x (@EMPTY A))))) x). +Lemma group_normalizer_def {A : Type'} : (@group_normalizer A) = (fun _423448 : Group A => fun _423449 : A -> Prop => @GSPEC A (fun GEN_PVAR_945 : A => exists x : A, @SETSPEC A GEN_PVAR_945 ((@IN A x (@group_carrier A _423448)) /\ ((@group_setmul A _423448 (@INSERT A x (@EMPTY A)) (@INTER A (@group_carrier A _423448) _423449)) = (@group_setmul A _423448 (@INTER A (@group_carrier A _423448) _423449) (@INSERT A x (@EMPTY A))))) x)). +Proof. exact (eq_refl (@group_normalizer A)). Qed. +Definition quotient_group {A : Type'} : (Group A) -> (A -> Prop) -> Group (A -> Prop) := fun _425519 : Group A => fun _425520 : A -> Prop => @group (A -> Prop) (@pair ((A -> Prop) -> Prop) (prod (A -> Prop) (prod ((A -> Prop) -> A -> Prop) ((A -> Prop) -> (A -> Prop) -> A -> Prop))) (@GSPEC (A -> Prop) (fun GEN_PVAR_963 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_963 (@IN A x (@group_carrier A _425519)) (@right_coset A _425519 _425520 x))) (@pair (A -> Prop) (prod ((A -> Prop) -> A -> Prop) ((A -> Prop) -> (A -> Prop) -> A -> Prop)) _425520 (@pair ((A -> Prop) -> A -> Prop) ((A -> Prop) -> (A -> Prop) -> A -> Prop) (@group_setinv A _425519) (@group_setmul A _425519)))). +Lemma quotient_group_def {A : Type'} : (@quotient_group A) = (fun _425519 : Group A => fun _425520 : A -> Prop => @group (A -> Prop) (@pair ((A -> Prop) -> Prop) (prod (A -> Prop) (prod ((A -> Prop) -> A -> Prop) ((A -> Prop) -> (A -> Prop) -> A -> Prop))) (@GSPEC (A -> Prop) (fun GEN_PVAR_963 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_963 (@IN A x (@group_carrier A _425519)) (@right_coset A _425519 _425520 x))) (@pair (A -> Prop) (prod ((A -> Prop) -> A -> Prop) ((A -> Prop) -> (A -> Prop) -> A -> Prop)) _425520 (@pair ((A -> Prop) -> A -> Prop) ((A -> Prop) -> (A -> Prop) -> A -> Prop) (@group_setinv A _425519) (@group_setmul A _425519))))). +Proof. exact (eq_refl (@quotient_group A)). Qed. +Definition group_kernel {A B : Type'} : (prod (Group A) (Group B)) -> (A -> B) -> A -> Prop := fun _427994 : prod (Group A) (Group B) => fun _427995 : A -> B => @GSPEC A (fun GEN_PVAR_971 : A => exists x : A, @SETSPEC A GEN_PVAR_971 ((@IN A x (@group_carrier A (@fst (Group A) (Group B) _427994))) /\ ((_427995 x) = (@group_id B (@snd (Group A) (Group B) _427994)))) x). +Lemma group_kernel_def {A B : Type'} : (@group_kernel A B) = (fun _427994 : prod (Group A) (Group B) => fun _427995 : A -> B => @GSPEC A (fun GEN_PVAR_971 : A => exists x : A, @SETSPEC A GEN_PVAR_971 ((@IN A x (@group_carrier A (@fst (Group A) (Group B) _427994))) /\ ((_427995 x) = (@group_id B (@snd (Group A) (Group B) _427994)))) x)). +Proof. exact (eq_refl (@group_kernel A B)). Qed. +Definition group_image {A B : Type'} : (prod (Group A) (Group B)) -> (A -> B) -> B -> Prop := fun _428011 : prod (Group A) (Group B) => fun _428012 : A -> B => @IMAGE A B _428012 (@group_carrier A (@fst (Group A) (Group B) _428011)). +Lemma group_image_def {A B : Type'} : (@group_image A B) = (fun _428011 : prod (Group A) (Group B) => fun _428012 : A -> B => @IMAGE A B _428012 (@group_carrier A (@fst (Group A) (Group B) _428011))). +Proof. exact (eq_refl (@group_image A B)). Qed. +Definition trivial_homomorphism {A B : Type'} : (prod (Group A) (Group B)) -> (A -> B) -> Prop := fun _458314 : prod (Group A) (Group B) => fun _458315 : A -> B => (@group_homomorphism A B (@pair (Group A) (Group B) (@fst (Group A) (Group B) _458314) (@snd (Group A) (Group B) _458314)) _458315) /\ (forall x : A, (@IN A x (@group_carrier A (@fst (Group A) (Group B) _458314))) -> (_458315 x) = (@group_id B (@snd (Group A) (Group B) _458314))). +Lemma trivial_homomorphism_def {A B : Type'} : (@trivial_homomorphism A B) = (fun _458314 : prod (Group A) (Group B) => fun _458315 : A -> B => (@group_homomorphism A B (@pair (Group A) (Group B) (@fst (Group A) (Group B) _458314) (@snd (Group A) (Group B) _458314)) _458315) /\ (forall x : A, (@IN A x (@group_carrier A (@fst (Group A) (Group B) _458314))) -> (_458315 x) = (@group_id B (@snd (Group A) (Group B) _458314)))). +Proof. exact (eq_refl (@trivial_homomorphism A B)). Qed. +Definition group_element_order {A : Type'} : (Group A) -> A -> N := fun _459805 : Group A => fun _459806 : A => @ε N (fun d : N => forall n : N, ((@group_pow A _459805 _459806 n) = (@group_id A _459805)) = (num_divides d n)). +Lemma group_element_order_def {A : Type'} : (@group_element_order A) = (fun _459805 : Group A => fun _459806 : A => @ε N (fun d : N => forall n : N, ((@group_pow A _459805 _459806 n) = (@group_id A _459805)) = (num_divides d n))). +Proof. exact (eq_refl (@group_element_order A)). Qed. +Definition cyclic_group {_310016 : Type'} : (Group _310016) -> Prop := fun _464632 : Group _310016 => exists x : _310016, (@IN _310016 x (@group_carrier _310016 _464632)) /\ ((@subgroup_generated _310016 _464632 (@INSERT _310016 x (@EMPTY _310016))) = _464632). +Lemma cyclic_group_def {_310016 : Type'} : (@cyclic_group _310016) = (fun _464632 : Group _310016 => exists x : _310016, (@IN _310016 x (@group_carrier _310016 _464632)) /\ ((@subgroup_generated _310016 _464632 (@INSERT _310016 x (@EMPTY _310016))) = _464632)). +Proof. exact (eq_refl (@cyclic_group _310016)). Qed. +Definition finitely_generated_group {A : Type'} : (Group A) -> Prop := fun _467681 : Group A => exists s : A -> Prop, (@FINITE A s) /\ ((@subgroup_generated A _467681 s) = _467681). +Lemma finitely_generated_group_def {A : Type'} : (@finitely_generated_group A) = (fun _467681 : Group A => exists s : A -> Prop, (@FINITE A s) /\ ((@subgroup_generated A _467681 s) = _467681)). +Proof. exact (eq_refl (@finitely_generated_group A)). Qed. +Definition integer_group : Group Z := @group Z (@pair (Z -> Prop) (prod Z (prod (Z -> Z) (Z -> Z -> Z))) (@UNIV Z) (@pair Z (prod (Z -> Z) (Z -> Z -> Z)) (Z_of_N (NUMERAL 0%N)) (@pair (Z -> Z) (Z -> Z -> Z) int_neg int_add))). +Lemma integer_group_def : integer_group = (@group Z (@pair (Z -> Prop) (prod Z (prod (Z -> Z) (Z -> Z -> Z))) (@UNIV Z) (@pair Z (prod (Z -> Z) (Z -> Z -> Z)) (Z_of_N (NUMERAL 0%N)) (@pair (Z -> Z) (Z -> Z -> Z) int_neg int_add)))). +Proof. exact (eq_refl integer_group). Qed. +Definition integer_mod_group : N -> Group Z := fun _493916 : N => @COND (Group Z) (_493916 = (NUMERAL 0%N)) integer_group (@group Z (@pair (Z -> Prop) (prod Z (prod (Z -> Z) (Z -> Z -> Z))) (@GSPEC Z (fun GEN_PVAR_1055 : Z => exists m : Z, @SETSPEC Z GEN_PVAR_1055 ((int_le (Z_of_N (NUMERAL 0%N)) m) /\ (int_lt m (Z_of_N _493916))) m)) (@pair Z (prod (Z -> Z) (Z -> Z -> Z)) (Z_of_N (NUMERAL 0%N)) (@pair (Z -> Z) (Z -> Z -> Z) (fun a : Z => rem (int_neg a) (Z_of_N _493916)) (fun a : Z => fun b : Z => rem (int_add a b) (Z_of_N _493916)))))). +Lemma integer_mod_group_def : integer_mod_group = (fun _493916 : N => @COND (Group Z) (_493916 = (NUMERAL 0%N)) integer_group (@group Z (@pair (Z -> Prop) (prod Z (prod (Z -> Z) (Z -> Z -> Z))) (@GSPEC Z (fun GEN_PVAR_1055 : Z => exists m : Z, @SETSPEC Z GEN_PVAR_1055 ((int_le (Z_of_N (NUMERAL 0%N)) m) /\ (int_lt m (Z_of_N _493916))) m)) (@pair Z (prod (Z -> Z) (Z -> Z -> Z)) (Z_of_N (NUMERAL 0%N)) (@pair (Z -> Z) (Z -> Z -> Z) (fun a : Z => rem (int_neg a) (Z_of_N _493916)) (fun a : Z => fun b : Z => rem (int_add a b) (Z_of_N _493916))))))). +Proof. exact (eq_refl integer_mod_group). Qed. +Definition pgroup {A : Type'} : (N -> Prop) -> (Group A) -> Prop := fun _496759 : N -> Prop => fun _496760 : Group A => forall p : N, forall x : A, ((prime p) /\ ((@IN A x (@group_carrier A _496760)) /\ (num_divides p (@group_element_order A _496760 x)))) -> @IN N p _496759. +Lemma pgroup_def {A : Type'} : (@pgroup A) = (fun _496759 : N -> Prop => fun _496760 : Group A => forall p : N, forall x : A, ((prime p) /\ ((@IN A x (@group_carrier A _496760)) /\ (num_divides p (@group_element_order A _496760 x)))) -> @IN N p _496759). +Proof. exact (eq_refl (@pgroup A)). Qed. +Definition free_abelian_group {A : Type'} : (A -> Prop) -> Group (frag A) := fun _567156 : A -> Prop => @group (frag A) (@pair ((frag A) -> Prop) (prod (frag A) (prod ((frag A) -> frag A) ((frag A) -> (frag A) -> frag A))) (@GSPEC (frag A) (fun GEN_PVAR_1210 : frag A => exists c : frag A, @SETSPEC (frag A) GEN_PVAR_1210 (@SUBSET A (@frag_support A c) _567156) c)) (@pair (frag A) (prod ((frag A) -> frag A) ((frag A) -> (frag A) -> frag A)) (@frag_0 A) (@pair ((frag A) -> frag A) ((frag A) -> (frag A) -> frag A) (@frag_neg A) (@frag_add A)))). +Lemma free_abelian_group_def {A : Type'} : (@free_abelian_group A) = (fun _567156 : A -> Prop => @group (frag A) (@pair ((frag A) -> Prop) (prod (frag A) (prod ((frag A) -> frag A) ((frag A) -> (frag A) -> frag A))) (@GSPEC (frag A) (fun GEN_PVAR_1210 : frag A => exists c : frag A, @SETSPEC (frag A) GEN_PVAR_1210 (@SUBSET A (@frag_support A c) _567156) c)) (@pair (frag A) (prod ((frag A) -> frag A) ((frag A) -> (frag A) -> frag A)) (@frag_0 A) (@pair ((frag A) -> frag A) ((frag A) -> (frag A) -> frag A) (@frag_neg A) (@frag_add A))))). +Proof. exact (eq_refl (@free_abelian_group A)). Qed. +Definition group_exactness {A B C : Type'} : (prod (Group A) (prod (Group B) (Group C))) -> (prod (A -> B) (B -> C)) -> Prop := fun _568984 : prod (Group A) (prod (Group B) (Group C)) => fun _568985 : prod (A -> B) (B -> C) => (@group_homomorphism A B (@pair (Group A) (Group B) (@fst (Group A) (prod (Group B) (Group C)) _568984) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _568984))) (@fst (A -> B) (B -> C) _568985)) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _568984)) (@snd (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _568984))) (@snd (A -> B) (B -> C) _568985)) /\ ((@group_image A B (@pair (Group A) (Group B) (@fst (Group A) (prod (Group B) (Group C)) _568984) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _568984))) (@fst (A -> B) (B -> C) _568985)) = (@group_kernel B C (@pair (Group B) (Group C) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _568984)) (@snd (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _568984))) (@snd (A -> B) (B -> C) _568985)))). +Lemma group_exactness_def {A B C : Type'} : (@group_exactness A B C) = (fun _568984 : prod (Group A) (prod (Group B) (Group C)) => fun _568985 : prod (A -> B) (B -> C) => (@group_homomorphism A B (@pair (Group A) (Group B) (@fst (Group A) (prod (Group B) (Group C)) _568984) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _568984))) (@fst (A -> B) (B -> C) _568985)) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _568984)) (@snd (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _568984))) (@snd (A -> B) (B -> C) _568985)) /\ ((@group_image A B (@pair (Group A) (Group B) (@fst (Group A) (prod (Group B) (Group C)) _568984) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _568984))) (@fst (A -> B) (B -> C) _568985)) = (@group_kernel B C (@pair (Group B) (Group C) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _568984)) (@snd (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _568984))) (@snd (A -> B) (B -> C) _568985))))). +Proof. exact (eq_refl (@group_exactness A B C)). Qed. +Definition short_exact_sequence {A B C : Type'} : (prod (Group A) (prod (Group B) (Group C))) -> (prod (A -> B) (B -> C)) -> Prop := fun _569011 : prod (Group A) (prod (Group B) (Group C)) => fun _569012 : prod (A -> B) (B -> C) => (@group_monomorphism A B (@pair (Group A) (Group B) (@fst (Group A) (prod (Group B) (Group C)) _569011) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _569011))) (@fst (A -> B) (B -> C) _569012)) /\ ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) (@fst (Group A) (prod (Group B) (Group C)) _569011) (@pair (Group B) (Group C) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _569011)) (@snd (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _569011)))) (@pair (A -> B) (B -> C) (@fst (A -> B) (B -> C) _569012) (@snd (A -> B) (B -> C) _569012))) /\ (@group_epimorphism B C (@pair (Group B) (Group C) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _569011)) (@snd (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _569011))) (@snd (A -> B) (B -> C) _569012))). +Lemma short_exact_sequence_def {A B C : Type'} : (@short_exact_sequence A B C) = (fun _569011 : prod (Group A) (prod (Group B) (Group C)) => fun _569012 : prod (A -> B) (B -> C) => (@group_monomorphism A B (@pair (Group A) (Group B) (@fst (Group A) (prod (Group B) (Group C)) _569011) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _569011))) (@fst (A -> B) (B -> C) _569012)) /\ ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) (@fst (Group A) (prod (Group B) (Group C)) _569011) (@pair (Group B) (Group C) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _569011)) (@snd (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _569011)))) (@pair (A -> B) (B -> C) (@fst (A -> B) (B -> C) _569012) (@snd (A -> B) (B -> C) _569012))) /\ (@group_epimorphism B C (@pair (Group B) (Group C) (@fst (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _569011)) (@snd (Group B) (Group C) (@snd (Group A) (prod (Group B) (Group C)) _569011))) (@snd (A -> B) (B -> C) _569012)))). +Proof. exact (eq_refl (@short_exact_sequence A B C)). Qed. +Definition matroid_set {A : Type'} : (Matroid A) -> A -> Prop := fun m : Matroid A => @fst (A -> Prop) ((A -> Prop) -> A -> Prop) (@dest_matroid A m). +Lemma matroid_set_def {A : Type'} : (@matroid_set A) = (fun m : Matroid A => @fst (A -> Prop) ((A -> Prop) -> A -> Prop) (@dest_matroid A m)). +Proof. exact (eq_refl (@matroid_set A)). Qed. +Definition matroid_span {A : Type'} : (Matroid A) -> (A -> Prop) -> A -> Prop := fun m : Matroid A => @snd (A -> Prop) ((A -> Prop) -> A -> Prop) (@dest_matroid A m). +Lemma matroid_span_def {A : Type'} : (@matroid_span A) = (fun m : Matroid A => @snd (A -> Prop) ((A -> Prop) -> A -> Prop) (@dest_matroid A m)). +Proof. exact (eq_refl (@matroid_span A)). Qed. +Definition matroid_spanning {A : Type'} : (Matroid A) -> (A -> Prop) -> Prop := fun _600731 : Matroid A => fun _600732 : A -> Prop => (@SUBSET A _600732 (@matroid_set A _600731)) /\ ((@matroid_span A _600731 _600732) = (@matroid_set A _600731)). +Lemma matroid_spanning_def {A : Type'} : (@matroid_spanning A) = (fun _600731 : Matroid A => fun _600732 : A -> Prop => (@SUBSET A _600732 (@matroid_set A _600731)) /\ ((@matroid_span A _600731 _600732) = (@matroid_set A _600731))). +Proof. exact (eq_refl (@matroid_spanning A)). Qed. +Definition matroid_independent {A : Type'} : (Matroid A) -> (A -> Prop) -> Prop := fun _600743 : Matroid A => fun _600744 : A -> Prop => (@SUBSET A _600744 (@matroid_set A _600743)) /\ (forall x : A, (@IN A x _600744) -> ~ (@IN A x (@matroid_span A _600743 (@DELETE A _600744 x)))). +Lemma matroid_independent_def {A : Type'} : (@matroid_independent A) = (fun _600743 : Matroid A => fun _600744 : A -> Prop => (@SUBSET A _600744 (@matroid_set A _600743)) /\ (forall x : A, (@IN A x _600744) -> ~ (@IN A x (@matroid_span A _600743 (@DELETE A _600744 x))))). +Proof. exact (eq_refl (@matroid_independent A)). Qed. +Definition matroid_basis {A : Type'} : (Matroid A) -> (A -> Prop) -> Prop := fun _600755 : Matroid A => fun _600756 : A -> Prop => (@matroid_spanning A _600755 _600756) /\ (@matroid_independent A _600755 _600756). +Lemma matroid_basis_def {A : Type'} : (@matroid_basis A) = (fun _600755 : Matroid A => fun _600756 : A -> Prop => (@matroid_spanning A _600755 _600756) /\ (@matroid_independent A _600755 _600756)). +Proof. exact (eq_refl (@matroid_basis A)). Qed. +Definition matroid_subspace {A : Type'} : (Matroid A) -> (A -> Prop) -> Prop := fun _607285 : Matroid A => fun _607286 : A -> Prop => (@SUBSET A _607286 (@matroid_set A _607285)) /\ ((@matroid_span A _607285 _607286) = _607286). +Lemma matroid_subspace_def {A : Type'} : (@matroid_subspace A) = (fun _607285 : Matroid A => fun _607286 : A -> Prop => (@SUBSET A _607286 (@matroid_set A _607285)) /\ ((@matroid_span A _607285 _607286) = _607286)). +Proof. exact (eq_refl (@matroid_subspace A)). Qed. +Definition submatroid {A : Type'} : (Matroid A) -> (A -> Prop) -> Matroid A := fun _607432 : Matroid A => fun _607433 : A -> Prop => @matroid A (@pair (A -> Prop) ((A -> Prop) -> A -> Prop) (@matroid_span A _607432 (@INTER A (@matroid_set A _607432) _607433)) (@matroid_span A _607432)). +Lemma submatroid_def {A : Type'} : (@submatroid A) = (fun _607432 : Matroid A => fun _607433 : A -> Prop => @matroid A (@pair (A -> Prop) ((A -> Prop) -> A -> Prop) (@matroid_span A _607432 (@INTER A (@matroid_set A _607432) _607433)) (@matroid_span A _607432))). +Proof. exact (eq_refl (@submatroid A)). Qed. +Definition matroid_finite_dimensional {A : Type'} : (Matroid A) -> Prop := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))))))) -> (Matroid A) -> Prop) (fun matroid_finite_dimensional' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))))))) -> (Matroid A) -> Prop => forall _607866 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))))))), forall m : Matroid A, (matroid_finite_dimensional' _607866 m) = (exists b : A -> Prop, (@FINITE A b) /\ (@matroid_spanning A m b))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))))))))))))))))))). +Lemma matroid_finite_dimensional_def {A : Type'} : (@matroid_finite_dimensional A) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))))))) -> (Matroid A) -> Prop) (fun matroid_finite_dimensional' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))))))) -> (Matroid A) -> Prop => forall _607866 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))))))), forall m : Matroid A, (matroid_finite_dimensional' _607866 m) = (exists b : A -> Prop, (@FINITE A b) /\ (@matroid_spanning A m b))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))))))))))))))))))). +Proof. exact (eq_refl (@matroid_finite_dimensional A)). Qed. +Definition matroid_dimension {A : Type'} : (Matroid A) -> N := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) -> (Matroid A) -> N) (fun matroid_dimension' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) -> (Matroid A) -> N => forall _607891 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))), forall m : Matroid A, (matroid_dimension' _607891 m) = (@ε N (fun n : N => forall b : A -> Prop, (@matroid_basis A m b) -> @HAS_SIZE A b n))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))))))))). +Lemma matroid_dimension_def {A : Type'} : (@matroid_dimension A) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) -> (Matroid A) -> N) (fun matroid_dimension' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) -> (Matroid A) -> N => forall _607891 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))), forall m : Matroid A, (matroid_dimension' _607891 m) = (@ε N (fun n : N => forall b : A -> Prop, (@matroid_basis A m b) -> @HAS_SIZE A b n))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))))))))))). +Proof. exact (eq_refl (@matroid_dimension A)). Qed. +Definition matroid_finite_dim {A : Type'} : (Matroid A) -> (A -> Prop) -> Prop := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) -> (Matroid A) -> (A -> Prop) -> Prop) (fun matroid_finite_dim' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) -> (Matroid A) -> (A -> Prop) -> Prop => forall _608005 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))), forall m : Matroid A, forall s : A -> Prop, (matroid_finite_dim' _608005 m s) = ((@SUBSET A s (@matroid_set A m)) /\ (@matroid_finite_dimensional A (@submatroid A m s)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))))))))))). +Lemma matroid_finite_dim_def {A : Type'} : (@matroid_finite_dim A) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) -> (Matroid A) -> (A -> Prop) -> Prop) (fun matroid_finite_dim' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) -> (Matroid A) -> (A -> Prop) -> Prop => forall _608005 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))), forall m : Matroid A, forall s : A -> Prop, (matroid_finite_dim' _608005 m s) = ((@SUBSET A s (@matroid_set A m)) /\ (@matroid_finite_dimensional A (@submatroid A m s)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))))))))))). +Proof. exact (eq_refl (@matroid_finite_dim A)). Qed. +Definition matroid_dim {A : Type'} : (Matroid A) -> (A -> Prop) -> N := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (Matroid A) -> (A -> Prop) -> N) (fun matroid_dim' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (Matroid A) -> (A -> Prop) -> N => forall _608119 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))), forall m : Matroid A, forall s : A -> Prop, (matroid_dim' _608119 m s) = (@matroid_dimension A (@submatroid A m s))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))). +Lemma matroid_dim_def {A : Type'} : (@matroid_dim A) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (Matroid A) -> (A -> Prop) -> N) (fun matroid_dim' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (Matroid A) -> (A -> Prop) -> N => forall _608119 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))), forall m : Matroid A, forall s : A -> Prop, (matroid_dim' _608119 m s) = (@matroid_dimension A (@submatroid A m s))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))))). +Proof. exact (eq_refl (@matroid_dim A)). Qed. +Definition binom : (prod N N) -> N := @ε ((prod N (prod N (prod N (prod N N)))) -> (prod N N) -> N) (fun binom' : (prod N (prod N (prod N (prod N N)))) -> (prod N N) -> N => forall _612257 : prod N (prod N (prod N (prod N N))), (forall n : N, (binom' _612257 (@pair N N n (NUMERAL 0%N))) = (NUMERAL (BIT1 0%N))) /\ ((forall k : N, (binom' _612257 (@pair N N (NUMERAL 0%N) (N.succ k))) = (NUMERAL 0%N)) /\ (forall n : N, forall k : N, (binom' _612257 (@pair N N (N.succ n) (N.succ k))) = (N.add (binom' _612257 (@pair N N n (N.succ k))) (binom' _612257 (@pair N N n k)))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))). +Lemma binom_def : binom = (@ε ((prod N (prod N (prod N (prod N N)))) -> (prod N N) -> N) (fun binom' : (prod N (prod N (prod N (prod N N)))) -> (prod N N) -> N => forall _612257 : prod N (prod N (prod N (prod N N))), (forall n : N, (binom' _612257 (@pair N N n (NUMERAL 0%N))) = (NUMERAL (BIT1 0%N))) /\ ((forall k : N, (binom' _612257 (@pair N N (NUMERAL 0%N) (N.succ k))) = (NUMERAL 0%N)) /\ (forall n : N, forall k : N, (binom' _612257 (@pair N N (N.succ n) (N.succ k))) = (N.add (binom' _612257 (@pair N N n (N.succ k))) (binom' _612257 (@pair N N n k)))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))). +Proof. exact (eq_refl binom). Qed. +Definition istopology {_350906 : Type'} : ((_350906 -> Prop) -> Prop) -> Prop := fun _613298 : (_350906 -> Prop) -> Prop => (@IN (_350906 -> Prop) (@EMPTY _350906) _613298) /\ ((forall s : _350906 -> Prop, forall t : _350906 -> Prop, ((@IN (_350906 -> Prop) s _613298) /\ (@IN (_350906 -> Prop) t _613298)) -> @IN (_350906 -> Prop) (@INTER _350906 s t) _613298) /\ (forall k : (_350906 -> Prop) -> Prop, (@SUBSET (_350906 -> Prop) k _613298) -> @IN (_350906 -> Prop) (@UNIONS _350906 k) _613298)). +Lemma istopology_def {_350906 : Type'} : (@istopology _350906) = (fun _613298 : (_350906 -> Prop) -> Prop => (@IN (_350906 -> Prop) (@EMPTY _350906) _613298) /\ ((forall s : _350906 -> Prop, forall t : _350906 -> Prop, ((@IN (_350906 -> Prop) s _613298) /\ (@IN (_350906 -> Prop) t _613298)) -> @IN (_350906 -> Prop) (@INTER _350906 s t) _613298) /\ (forall k : (_350906 -> Prop) -> Prop, (@SUBSET (_350906 -> Prop) k _613298) -> @IN (_350906 -> Prop) (@UNIONS _350906 k) _613298))). +Proof. exact (eq_refl (@istopology _350906)). Qed. +Definition topspace {_350968 : Type'} : (Topology _350968) -> _350968 -> Prop := fun _613340 : Topology _350968 => @UNIONS _350968 (@GSPEC (_350968 -> Prop) (fun GEN_PVAR_1231 : _350968 -> Prop => exists s : _350968 -> Prop, @SETSPEC (_350968 -> Prop) GEN_PVAR_1231 (@open_in _350968 _613340 s) s)). +Lemma topspace_def {_350968 : Type'} : (@topspace _350968) = (fun _613340 : Topology _350968 => @UNIONS _350968 (@GSPEC (_350968 -> Prop) (fun GEN_PVAR_1231 : _350968 -> Prop => exists s : _350968 -> Prop, @SETSPEC (_350968 -> Prop) GEN_PVAR_1231 (@open_in _350968 _613340 s) s))). +Proof. exact (eq_refl (@topspace _350968)). Qed. +Definition closed_in {_351271 : Type'} : (Topology _351271) -> (_351271 -> Prop) -> Prop := fun _613375 : Topology _351271 => fun _613376 : _351271 -> Prop => (@SUBSET _351271 _613376 (@topspace _351271 _613375)) /\ (@open_in _351271 _613375 (@DIFF _351271 (@topspace _351271 _613375) _613376)). +Lemma closed_in_def {_351271 : Type'} : (@closed_in _351271) = (fun _613375 : Topology _351271 => fun _613376 : _351271 -> Prop => (@SUBSET _351271 _613376 (@topspace _351271 _613375)) /\ (@open_in _351271 _613375 (@DIFF _351271 (@topspace _351271 _613375) _613376))). +Proof. exact (eq_refl (@closed_in _351271)). Qed. +Definition discrete_topology {A : Type'} : (A -> Prop) -> Topology A := fun _613954 : A -> Prop => @topology A (@GSPEC (A -> Prop) (fun GEN_PVAR_1235 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1235 (@SUBSET A s _613954) s)). +Lemma discrete_topology_def {A : Type'} : (@discrete_topology A) = (fun _613954 : A -> Prop => @topology A (@GSPEC (A -> Prop) (fun GEN_PVAR_1235 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1235 (@SUBSET A s _613954) s))). +Proof. exact (eq_refl (@discrete_topology A)). Qed. +Definition discrete_space {A : Type'} : (Topology A) -> Prop := fun _613959 : Topology A => (@discrete_topology A (@topspace A _613959)) = _613959. +Lemma discrete_space_def {A : Type'} : (@discrete_space A) = (fun _613959 : Topology A => (@discrete_topology A (@topspace A _613959)) = _613959). +Proof. exact (eq_refl (@discrete_space A)). Qed. +Definition subtopology {_352607 : Type'} : (Topology _352607) -> (_352607 -> Prop) -> Topology _352607 := fun _614305 : Topology _352607 => fun _614306 : _352607 -> Prop => @topology _352607 (@GSPEC (_352607 -> Prop) (fun GEN_PVAR_1237 : _352607 -> Prop => exists s : _352607 -> Prop, @SETSPEC (_352607 -> Prop) GEN_PVAR_1237 (@open_in _352607 _614305 s) (@INTER _352607 s _614306))). +Lemma subtopology_def {_352607 : Type'} : (@subtopology _352607) = (fun _614305 : Topology _352607 => fun _614306 : _352607 -> Prop => @topology _352607 (@GSPEC (_352607 -> Prop) (fun GEN_PVAR_1237 : _352607 -> Prop => exists s : _352607 -> Prop, @SETSPEC (_352607 -> Prop) GEN_PVAR_1237 (@open_in _352607 _614305 s) (@INTER _352607 s _614306)))). +Proof. exact (eq_refl (@subtopology _352607)). Qed. +Definition hereditarily {A : Type'} : ((Topology A) -> Prop) -> (Topology A) -> Prop := fun _615305 : (Topology A) -> Prop => fun _615306 : Topology A => forall s : A -> Prop, (@SUBSET A s (@topspace A _615306)) -> _615305 (@subtopology A _615306 s). +Lemma hereditarily_def {A : Type'} : (@hereditarily A) = (fun _615305 : (Topology A) -> Prop => fun _615306 : Topology A => forall s : A -> Prop, (@SUBSET A s (@topspace A _615306)) -> _615305 (@subtopology A _615306 s)). +Proof. exact (eq_refl (@hereditarily A)). Qed. +Definition derived_set_of {A : Type'} : (Topology A) -> (A -> Prop) -> A -> Prop := fun _615327 : Topology A => fun _615328 : A -> Prop => @GSPEC A (fun GEN_PVAR_1246 : A => exists x : A, @SETSPEC A GEN_PVAR_1246 ((@IN A x (@topspace A _615327)) /\ (forall t : A -> Prop, ((@IN A x t) /\ (@open_in A _615327 t)) -> exists y : A, (~ (y = x)) /\ ((@IN A y _615328) /\ (@IN A y t)))) x). +Lemma derived_set_of_def {A : Type'} : (@derived_set_of A) = (fun _615327 : Topology A => fun _615328 : A -> Prop => @GSPEC A (fun GEN_PVAR_1246 : A => exists x : A, @SETSPEC A GEN_PVAR_1246 ((@IN A x (@topspace A _615327)) /\ (forall t : A -> Prop, ((@IN A x t) /\ (@open_in A _615327 t)) -> exists y : A, (~ (y = x)) /\ ((@IN A y _615328) /\ (@IN A y t)))) x)). +Proof. exact (eq_refl (@derived_set_of A)). Qed. +Definition closure_of {A : Type'} : (Topology A) -> (A -> Prop) -> A -> Prop := fun _615766 : Topology A => fun _615767 : A -> Prop => @GSPEC A (fun GEN_PVAR_1249 : A => exists x : A, @SETSPEC A GEN_PVAR_1249 ((@IN A x (@topspace A _615766)) /\ (forall t : A -> Prop, ((@IN A x t) /\ (@open_in A _615766 t)) -> exists y : A, (@IN A y _615767) /\ (@IN A y t))) x). +Lemma closure_of_def {A : Type'} : (@closure_of A) = (fun _615766 : Topology A => fun _615767 : A -> Prop => @GSPEC A (fun GEN_PVAR_1249 : A => exists x : A, @SETSPEC A GEN_PVAR_1249 ((@IN A x (@topspace A _615766)) /\ (forall t : A -> Prop, ((@IN A x t) /\ (@open_in A _615766 t)) -> exists y : A, (@IN A y _615767) /\ (@IN A y t))) x)). +Proof. exact (eq_refl (@closure_of A)). Qed. +Definition interior_of {_357493 : Type'} : (Topology _357493) -> (_357493 -> Prop) -> _357493 -> Prop := fun _616306 : Topology _357493 => fun _616307 : _357493 -> Prop => @GSPEC _357493 (fun GEN_PVAR_1259 : _357493 => exists x : _357493, @SETSPEC _357493 GEN_PVAR_1259 (exists t : _357493 -> Prop, (@open_in _357493 _616306 t) /\ ((@IN _357493 x t) /\ (@SUBSET _357493 t _616307))) x). +Lemma interior_of_def {_357493 : Type'} : (@interior_of _357493) = (fun _616306 : Topology _357493 => fun _616307 : _357493 -> Prop => @GSPEC _357493 (fun GEN_PVAR_1259 : _357493 => exists x : _357493, @SETSPEC _357493 GEN_PVAR_1259 (exists t : _357493 -> Prop, (@open_in _357493 _616306 t) /\ ((@IN _357493 x t) /\ (@SUBSET _357493 t _616307))) x)). +Proof. exact (eq_refl (@interior_of _357493)). Qed. +Definition frontier_of {_358829 : Type'} : (Topology _358829) -> (_358829 -> Prop) -> _358829 -> Prop := fun _616667 : Topology _358829 => fun _616668 : _358829 -> Prop => @DIFF _358829 (@closure_of _358829 _616667 _616668) (@interior_of _358829 _616667 _616668). +Lemma frontier_of_def {_358829 : Type'} : (@frontier_of _358829) = (fun _616667 : Topology _358829 => fun _616668 : _358829 -> Prop => @DIFF _358829 (@closure_of _358829 _616667 _616668) (@interior_of _358829 _616667 _616668)). +Proof. exact (eq_refl (@frontier_of _358829)). Qed. +Definition locally_finite_in {_360557 : Type'} : (Topology _360557) -> ((_360557 -> Prop) -> Prop) -> Prop := fun _617070 : Topology _360557 => fun _617071 : (_360557 -> Prop) -> Prop => (forall u : _360557 -> Prop, (@IN (_360557 -> Prop) u _617071) -> @SUBSET _360557 u (@topspace _360557 _617070)) /\ (forall x : _360557, (@IN _360557 x (@topspace _360557 _617070)) -> exists v : _360557 -> Prop, (@open_in _360557 _617070 v) /\ ((@IN _360557 x v) /\ (@FINITE (_360557 -> Prop) (@GSPEC (_360557 -> Prop) (fun GEN_PVAR_1263 : _360557 -> Prop => exists u : _360557 -> Prop, @SETSPEC (_360557 -> Prop) GEN_PVAR_1263 ((@IN (_360557 -> Prop) u _617071) /\ (~ ((@INTER _360557 u v) = (@EMPTY _360557)))) u))))). +Lemma locally_finite_in_def {_360557 : Type'} : (@locally_finite_in _360557) = (fun _617070 : Topology _360557 => fun _617071 : (_360557 -> Prop) -> Prop => (forall u : _360557 -> Prop, (@IN (_360557 -> Prop) u _617071) -> @SUBSET _360557 u (@topspace _360557 _617070)) /\ (forall x : _360557, (@IN _360557 x (@topspace _360557 _617070)) -> exists v : _360557 -> Prop, (@open_in _360557 _617070 v) /\ ((@IN _360557 x v) /\ (@FINITE (_360557 -> Prop) (@GSPEC (_360557 -> Prop) (fun GEN_PVAR_1263 : _360557 -> Prop => exists u : _360557 -> Prop, @SETSPEC (_360557 -> Prop) GEN_PVAR_1263 ((@IN (_360557 -> Prop) u _617071) /\ (~ ((@INTER _360557 u v) = (@EMPTY _360557)))) u)))))). +Proof. exact (eq_refl (@locally_finite_in _360557)). Qed. +Definition continuous_map {A B : Type'} : (prod (Topology A) (Topology B)) -> (A -> B) -> Prop := fun _617296 : prod (Topology A) (Topology B) => fun _617297 : A -> B => (forall x : A, (@IN A x (@topspace A (@fst (Topology A) (Topology B) _617296))) -> @IN B (_617297 x) (@topspace B (@snd (Topology A) (Topology B) _617296))) /\ (forall u : B -> Prop, (@open_in B (@snd (Topology A) (Topology B) _617296) u) -> @open_in A (@fst (Topology A) (Topology B) _617296) (@GSPEC A (fun GEN_PVAR_1276 : A => exists x : A, @SETSPEC A GEN_PVAR_1276 ((@IN A x (@topspace A (@fst (Topology A) (Topology B) _617296))) /\ (@IN B (_617297 x) u)) x))). +Lemma continuous_map_def {A B : Type'} : (@continuous_map A B) = (fun _617296 : prod (Topology A) (Topology B) => fun _617297 : A -> B => (forall x : A, (@IN A x (@topspace A (@fst (Topology A) (Topology B) _617296))) -> @IN B (_617297 x) (@topspace B (@snd (Topology A) (Topology B) _617296))) /\ (forall u : B -> Prop, (@open_in B (@snd (Topology A) (Topology B) _617296) u) -> @open_in A (@fst (Topology A) (Topology B) _617296) (@GSPEC A (fun GEN_PVAR_1276 : A => exists x : A, @SETSPEC A GEN_PVAR_1276 ((@IN A x (@topspace A (@fst (Topology A) (Topology B) _617296))) /\ (@IN B (_617297 x) u)) x)))). +Proof. exact (eq_refl (@continuous_map A B)). Qed. +Definition open_map {A B : Type'} : (prod (Topology A) (Topology B)) -> (A -> B) -> Prop := fun _625338 : prod (Topology A) (Topology B) => fun _625339 : A -> B => forall u : A -> Prop, (@open_in A (@fst (Topology A) (Topology B) _625338) u) -> @open_in B (@snd (Topology A) (Topology B) _625338) (@IMAGE A B _625339 u). +Lemma open_map_def {A B : Type'} : (@open_map A B) = (fun _625338 : prod (Topology A) (Topology B) => fun _625339 : A -> B => forall u : A -> Prop, (@open_in A (@fst (Topology A) (Topology B) _625338) u) -> @open_in B (@snd (Topology A) (Topology B) _625338) (@IMAGE A B _625339 u)). +Proof. exact (eq_refl (@open_map A B)). Qed. +Definition closed_map {A B : Type'} : (prod (Topology A) (Topology B)) -> (A -> B) -> Prop := fun _625355 : prod (Topology A) (Topology B) => fun _625356 : A -> B => forall u : A -> Prop, (@closed_in A (@fst (Topology A) (Topology B) _625355) u) -> @closed_in B (@snd (Topology A) (Topology B) _625355) (@IMAGE A B _625356 u). +Lemma closed_map_def {A B : Type'} : (@closed_map A B) = (fun _625355 : prod (Topology A) (Topology B) => fun _625356 : A -> B => forall u : A -> Prop, (@closed_in A (@fst (Topology A) (Topology B) _625355) u) -> @closed_in B (@snd (Topology A) (Topology B) _625355) (@IMAGE A B _625356 u)). +Proof. exact (eq_refl (@closed_map A B)). Qed. +Definition quotient_map {A B : Type'} : (prod (Topology A) (Topology B)) -> (A -> B) -> Prop := fun _629186 : prod (Topology A) (Topology B) => fun _629187 : A -> B => ((@IMAGE A B _629187 (@topspace A (@fst (Topology A) (Topology B) _629186))) = (@topspace B (@snd (Topology A) (Topology B) _629186))) /\ (forall u : B -> Prop, (@SUBSET B u (@topspace B (@snd (Topology A) (Topology B) _629186))) -> (@open_in A (@fst (Topology A) (Topology B) _629186) (@GSPEC A (fun GEN_PVAR_1371 : A => exists x : A, @SETSPEC A GEN_PVAR_1371 ((@IN A x (@topspace A (@fst (Topology A) (Topology B) _629186))) /\ (@IN B (_629187 x) u)) x))) = (@open_in B (@snd (Topology A) (Topology B) _629186) u)). +Lemma quotient_map_def {A B : Type'} : (@quotient_map A B) = (fun _629186 : prod (Topology A) (Topology B) => fun _629187 : A -> B => ((@IMAGE A B _629187 (@topspace A (@fst (Topology A) (Topology B) _629186))) = (@topspace B (@snd (Topology A) (Topology B) _629186))) /\ (forall u : B -> Prop, (@SUBSET B u (@topspace B (@snd (Topology A) (Topology B) _629186))) -> (@open_in A (@fst (Topology A) (Topology B) _629186) (@GSPEC A (fun GEN_PVAR_1371 : A => exists x : A, @SETSPEC A GEN_PVAR_1371 ((@IN A x (@topspace A (@fst (Topology A) (Topology B) _629186))) /\ (@IN B (_629187 x) u)) x))) = (@open_in B (@snd (Topology A) (Topology B) _629186) u))). +Proof. exact (eq_refl (@quotient_map A B)). Qed. +Definition prod_topology {A B : Type'} : (Topology A) -> (Topology B) -> Topology (prod A B) := fun _638421 : Topology A => fun _638422 : Topology B => @topology (prod A B) (@UNION_OF (prod A B) (@ARBITRARY (prod A B)) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_1385 : (prod A B) -> Prop => exists s : A -> Prop, exists t : B -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_1385 ((@open_in A _638421 s) /\ (@open_in B _638422 t)) (@CROSS A B s t)))). +Lemma prod_topology_def {A B : Type'} : (@prod_topology A B) = (fun _638421 : Topology A => fun _638422 : Topology B => @topology (prod A B) (@UNION_OF (prod A B) (@ARBITRARY (prod A B)) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_1385 : (prod A B) -> Prop => exists s : A -> Prop, exists t : B -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_1385 ((@open_in A _638421 s) /\ (@open_in B _638422 t)) (@CROSS A B s t))))). +Proof. exact (eq_refl (@prod_topology A B)). Qed. +Definition product_topology {A K : Type'} : (K -> Prop) -> (K -> Topology A) -> Topology (K -> A) := fun _642306 : K -> Prop => fun _642307 : K -> Topology A => @topology (K -> A) (@UNION_OF (K -> A) (@ARBITRARY (K -> A)) (@relative_to (K -> A) (@INTERSECTION_OF (K -> A) (@FINITE ((K -> A) -> Prop)) (@GSPEC ((K -> A) -> Prop) (fun GEN_PVAR_1390 : (K -> A) -> Prop => exists k : K, exists u : A -> Prop, @SETSPEC ((K -> A) -> Prop) GEN_PVAR_1390 ((@IN K k _642306) /\ (@open_in A (_642307 k) u)) (@GSPEC (K -> A) (fun GEN_PVAR_1389 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_1389 (@IN A (x k) u) x))))) (@GSPEC (K -> A) (fun GEN_PVAR_1391 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_1391 ((@EXTENSIONAL K A _642306 x) /\ (forall k : K, (@IN K k _642306) -> @IN A (x k) (@topspace A (_642307 k)))) x)))). +Lemma product_topology_def {A K : Type'} : (@product_topology A K) = (fun _642306 : K -> Prop => fun _642307 : K -> Topology A => @topology (K -> A) (@UNION_OF (K -> A) (@ARBITRARY (K -> A)) (@relative_to (K -> A) (@INTERSECTION_OF (K -> A) (@FINITE ((K -> A) -> Prop)) (@GSPEC ((K -> A) -> Prop) (fun GEN_PVAR_1390 : (K -> A) -> Prop => exists k : K, exists u : A -> Prop, @SETSPEC ((K -> A) -> Prop) GEN_PVAR_1390 ((@IN K k _642306) /\ (@open_in A (_642307 k) u)) (@GSPEC (K -> A) (fun GEN_PVAR_1389 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_1389 (@IN A (x k) u) x))))) (@GSPEC (K -> A) (fun GEN_PVAR_1391 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_1391 ((@EXTENSIONAL K A _642306 x) /\ (forall k : K, (@IN K k _642306) -> @IN A (x k) (@topspace A (_642307 k)))) x))))). +Proof. exact (eq_refl (@product_topology A K)). Qed. +Definition sum_topology {A K : Type'} : (K -> Prop) -> (K -> Topology A) -> Topology (prod K A) := fun _649397 : K -> Prop => fun _649398 : K -> Topology A => @topology (prod K A) (@GSPEC ((prod K A) -> Prop) (fun GEN_PVAR_1454 : (prod K A) -> Prop => exists u : (prod K A) -> Prop, @SETSPEC ((prod K A) -> Prop) GEN_PVAR_1454 ((@SUBSET (prod K A) u (@disjoint_union A K _649397 (@o K (Topology A) (A -> Prop) (@topspace A) _649398))) /\ (forall i : K, (@IN K i _649397) -> @open_in A (_649398 i) (@GSPEC A (fun GEN_PVAR_1453 : A => exists x : A, @SETSPEC A GEN_PVAR_1453 (@IN (prod K A) (@pair K A i x) u) x)))) u)). +Lemma sum_topology_def {A K : Type'} : (@sum_topology A K) = (fun _649397 : K -> Prop => fun _649398 : K -> Topology A => @topology (prod K A) (@GSPEC ((prod K A) -> Prop) (fun GEN_PVAR_1454 : (prod K A) -> Prop => exists u : (prod K A) -> Prop, @SETSPEC ((prod K A) -> Prop) GEN_PVAR_1454 ((@SUBSET (prod K A) u (@disjoint_union A K _649397 (@o K (Topology A) (A -> Prop) (@topspace A) _649398))) /\ (forall i : K, (@IN K i _649397) -> @open_in A (_649398 i) (@GSPEC A (fun GEN_PVAR_1453 : A => exists x : A, @SETSPEC A GEN_PVAR_1453 (@IN (prod K A) (@pair K A i x) u) x)))) u))). +Proof. exact (eq_refl (@sum_topology A K)). Qed. +Definition homeomorphic_map {A B : Type'} : (prod (Topology A) (Topology B)) -> (A -> B) -> Prop := fun _649924 : prod (Topology A) (Topology B) => fun _649925 : A -> B => (@quotient_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _649924) (@snd (Topology A) (Topology B) _649924)) _649925) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A (@fst (Topology A) (Topology B) _649924))) /\ (@IN A y (@topspace A (@fst (Topology A) (Topology B) _649924)))) -> ((_649925 x) = (_649925 y)) = (x = y)). +Lemma homeomorphic_map_def {A B : Type'} : (@homeomorphic_map A B) = (fun _649924 : prod (Topology A) (Topology B) => fun _649925 : A -> B => (@quotient_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _649924) (@snd (Topology A) (Topology B) _649924)) _649925) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A (@fst (Topology A) (Topology B) _649924))) /\ (@IN A y (@topspace A (@fst (Topology A) (Topology B) _649924)))) -> ((_649925 x) = (_649925 y)) = (x = y))). +Proof. exact (eq_refl (@homeomorphic_map A B)). Qed. +Definition homeomorphic_maps {A B : Type'} : (prod (Topology A) (Topology B)) -> (prod (A -> B) (B -> A)) -> Prop := fun _649941 : prod (Topology A) (Topology B) => fun _649942 : prod (A -> B) (B -> A) => (@continuous_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _649941) (@snd (Topology A) (Topology B) _649941)) (@fst (A -> B) (B -> A) _649942)) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) (@snd (Topology A) (Topology B) _649941) (@fst (Topology A) (Topology B) _649941)) (@snd (A -> B) (B -> A) _649942)) /\ ((forall x : A, (@IN A x (@topspace A (@fst (Topology A) (Topology B) _649941))) -> (@snd (A -> B) (B -> A) _649942 (@fst (A -> B) (B -> A) _649942 x)) = x) /\ (forall y : B, (@IN B y (@topspace B (@snd (Topology A) (Topology B) _649941))) -> (@fst (A -> B) (B -> A) _649942 (@snd (A -> B) (B -> A) _649942 y)) = y))). +Lemma homeomorphic_maps_def {A B : Type'} : (@homeomorphic_maps A B) = (fun _649941 : prod (Topology A) (Topology B) => fun _649942 : prod (A -> B) (B -> A) => (@continuous_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _649941) (@snd (Topology A) (Topology B) _649941)) (@fst (A -> B) (B -> A) _649942)) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) (@snd (Topology A) (Topology B) _649941) (@fst (Topology A) (Topology B) _649941)) (@snd (A -> B) (B -> A) _649942)) /\ ((forall x : A, (@IN A x (@topspace A (@fst (Topology A) (Topology B) _649941))) -> (@snd (A -> B) (B -> A) _649942 (@fst (A -> B) (B -> A) _649942 x)) = x) /\ (forall y : B, (@IN B y (@topspace B (@snd (Topology A) (Topology B) _649941))) -> (@fst (A -> B) (B -> A) _649942 (@snd (A -> B) (B -> A) _649942 y)) = y)))). +Proof. exact (eq_refl (@homeomorphic_maps A B)). Qed. +Definition homeomorphic_space {A B : Type'} : (Topology A) -> (Topology B) -> Prop := fun _703343 : Topology A => fun _703344 : Topology B => exists f : A -> B, exists g : B -> A, @homeomorphic_maps A B (@pair (Topology A) (Topology B) _703343 _703344) (@pair (A -> B) (B -> A) f g). +Lemma homeomorphic_space_def {A B : Type'} : (@homeomorphic_space A B) = (fun _703343 : Topology A => fun _703344 : Topology B => exists f : A -> B, exists g : B -> A, @homeomorphic_maps A B (@pair (Topology A) (Topology B) _703343 _703344) (@pair (A -> B) (B -> A) f g)). +Proof. exact (eq_refl (@homeomorphic_space A B)). Qed. +Definition embedding_map {A B : Type'} : (prod (Topology A) (Topology B)) -> (A -> B) -> Prop := fun _704677 : prod (Topology A) (Topology B) => fun _704678 : A -> B => @homeomorphic_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _704677) (@subtopology B (@snd (Topology A) (Topology B) _704677) (@IMAGE A B _704678 (@topspace A (@fst (Topology A) (Topology B) _704677))))) _704678. +Lemma embedding_map_def {A B : Type'} : (@embedding_map A B) = (fun _704677 : prod (Topology A) (Topology B) => fun _704678 : A -> B => @homeomorphic_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _704677) (@subtopology B (@snd (Topology A) (Topology B) _704677) (@IMAGE A B _704678 (@topspace A (@fst (Topology A) (Topology B) _704677))))) _704678). +Proof. exact (eq_refl (@embedding_map A B)). Qed. +Definition retraction_maps {A B : Type'} : (prod (Topology A) (Topology B)) -> (prod (A -> B) (B -> A)) -> Prop := fun _707808 : prod (Topology A) (Topology B) => fun _707809 : prod (A -> B) (B -> A) => (@continuous_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _707808) (@snd (Topology A) (Topology B) _707808)) (@fst (A -> B) (B -> A) _707809)) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) (@snd (Topology A) (Topology B) _707808) (@fst (Topology A) (Topology B) _707808)) (@snd (A -> B) (B -> A) _707809)) /\ (forall x : B, (@IN B x (@topspace B (@snd (Topology A) (Topology B) _707808))) -> (@fst (A -> B) (B -> A) _707809 (@snd (A -> B) (B -> A) _707809 x)) = x)). +Lemma retraction_maps_def {A B : Type'} : (@retraction_maps A B) = (fun _707808 : prod (Topology A) (Topology B) => fun _707809 : prod (A -> B) (B -> A) => (@continuous_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _707808) (@snd (Topology A) (Topology B) _707808)) (@fst (A -> B) (B -> A) _707809)) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) (@snd (Topology A) (Topology B) _707808) (@fst (Topology A) (Topology B) _707808)) (@snd (A -> B) (B -> A) _707809)) /\ (forall x : B, (@IN B x (@topspace B (@snd (Topology A) (Topology B) _707808))) -> (@fst (A -> B) (B -> A) _707809 (@snd (A -> B) (B -> A) _707809 x)) = x))). +Proof. exact (eq_refl (@retraction_maps A B)). Qed. +Definition section_map {A B : Type'} : (prod (Topology A) (Topology B)) -> (A -> B) -> Prop := fun _707830 : prod (Topology A) (Topology B) => fun _707831 : A -> B => exists g : B -> A, @retraction_maps B A (@pair (Topology B) (Topology A) (@snd (Topology A) (Topology B) _707830) (@fst (Topology A) (Topology B) _707830)) (@pair (B -> A) (A -> B) g _707831). +Lemma section_map_def {A B : Type'} : (@section_map A B) = (fun _707830 : prod (Topology A) (Topology B) => fun _707831 : A -> B => exists g : B -> A, @retraction_maps B A (@pair (Topology B) (Topology A) (@snd (Topology A) (Topology B) _707830) (@fst (Topology A) (Topology B) _707830)) (@pair (B -> A) (A -> B) g _707831)). +Proof. exact (eq_refl (@section_map A B)). Qed. +Definition retraction_map {A B : Type'} : (prod (Topology A) (Topology B)) -> (A -> B) -> Prop := fun _707847 : prod (Topology A) (Topology B) => fun _707848 : A -> B => exists g : B -> A, @retraction_maps A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _707847) (@snd (Topology A) (Topology B) _707847)) (@pair (A -> B) (B -> A) _707848 g). +Lemma retraction_map_def {A B : Type'} : (@retraction_map A B) = (fun _707847 : prod (Topology A) (Topology B) => fun _707848 : A -> B => exists g : B -> A, @retraction_maps A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _707847) (@snd (Topology A) (Topology B) _707847)) (@pair (A -> B) (B -> A) _707848 g)). +Proof. exact (eq_refl (@retraction_map A B)). Qed. +Definition retract_of_space {A : Type'} : (A -> Prop) -> (Topology A) -> Prop := fun _713400 : A -> Prop => fun _713401 : Topology A => (@SUBSET A _713400 (@topspace A _713401)) /\ (exists r : A -> A, (@continuous_map A A (@pair (Topology A) (Topology A) _713401 (@subtopology A _713401 _713400)) r) /\ (forall x : A, (@IN A x _713400) -> (r x) = x)). +Lemma retract_of_space_def {A : Type'} : (@retract_of_space A) = (fun _713400 : A -> Prop => fun _713401 : Topology A => (@SUBSET A _713400 (@topspace A _713401)) /\ (exists r : A -> A, (@continuous_map A A (@pair (Topology A) (Topology A) _713401 (@subtopology A _713401 _713400)) r) /\ (forall x : A, (@IN A x _713400) -> (r x) = x))). +Proof. exact (eq_refl (@retract_of_space A)). Qed. +Definition compact_in {A : Type'} : (Topology A) -> (A -> Prop) -> Prop := fun _714179 : Topology A => fun _714180 : A -> Prop => (@SUBSET A _714180 (@topspace A _714179)) /\ (forall U : (A -> Prop) -> Prop, ((forall u : A -> Prop, (@IN (A -> Prop) u U) -> @open_in A _714179 u) /\ (@SUBSET A _714180 (@UNIONS A U))) -> exists V : (A -> Prop) -> Prop, (@FINITE (A -> Prop) V) /\ ((@SUBSET (A -> Prop) V U) /\ (@SUBSET A _714180 (@UNIONS A V)))). +Lemma compact_in_def {A : Type'} : (@compact_in A) = (fun _714179 : Topology A => fun _714180 : A -> Prop => (@SUBSET A _714180 (@topspace A _714179)) /\ (forall U : (A -> Prop) -> Prop, ((forall u : A -> Prop, (@IN (A -> Prop) u U) -> @open_in A _714179 u) /\ (@SUBSET A _714180 (@UNIONS A U))) -> exists V : (A -> Prop) -> Prop, (@FINITE (A -> Prop) V) /\ ((@SUBSET (A -> Prop) V U) /\ (@SUBSET A _714180 (@UNIONS A V))))). +Proof. exact (eq_refl (@compact_in A)). Qed. +Definition compact_space {A : Type'} : (Topology A) -> Prop := fun _714191 : Topology A => @compact_in A _714191 (@topspace A _714191). +Lemma compact_space_def {A : Type'} : (@compact_space A) = (fun _714191 : Topology A => @compact_in A _714191 (@topspace A _714191)). +Proof. exact (eq_refl (@compact_space A)). Qed. +Definition separated_in {_389322 : Type'} : (Topology _389322) -> (_389322 -> Prop) -> (_389322 -> Prop) -> Prop := fun _727300 : Topology _389322 => fun _727301 : _389322 -> Prop => fun _727302 : _389322 -> Prop => (@SUBSET _389322 _727301 (@topspace _389322 _727300)) /\ ((@SUBSET _389322 _727302 (@topspace _389322 _727300)) /\ (((@INTER _389322 _727301 (@closure_of _389322 _727300 _727302)) = (@EMPTY _389322)) /\ ((@INTER _389322 _727302 (@closure_of _389322 _727300 _727301)) = (@EMPTY _389322)))). +Lemma separated_in_def {_389322 : Type'} : (@separated_in _389322) = (fun _727300 : Topology _389322 => fun _727301 : _389322 -> Prop => fun _727302 : _389322 -> Prop => (@SUBSET _389322 _727301 (@topspace _389322 _727300)) /\ ((@SUBSET _389322 _727302 (@topspace _389322 _727300)) /\ (((@INTER _389322 _727301 (@closure_of _389322 _727300 _727302)) = (@EMPTY _389322)) /\ ((@INTER _389322 _727302 (@closure_of _389322 _727300 _727301)) = (@EMPTY _389322))))). +Proof. exact (eq_refl (@separated_in _389322)). Qed. +Definition t1_space {_390503 : Type'} : (Topology _390503) -> Prop := fun _729444 : Topology _390503 => forall x : _390503, forall y : _390503, ((@IN _390503 x (@topspace _390503 _729444)) /\ ((@IN _390503 y (@topspace _390503 _729444)) /\ (~ (x = y)))) -> exists u : _390503 -> Prop, (@open_in _390503 _729444 u) /\ ((@IN _390503 x u) /\ (~ (@IN _390503 y u))). +Lemma t1_space_def {_390503 : Type'} : (@t1_space _390503) = (fun _729444 : Topology _390503 => forall x : _390503, forall y : _390503, ((@IN _390503 x (@topspace _390503 _729444)) /\ ((@IN _390503 y (@topspace _390503 _729444)) /\ (~ (x = y)))) -> exists u : _390503 -> Prop, (@open_in _390503 _729444 u) /\ ((@IN _390503 x u) /\ (~ (@IN _390503 y u)))). +Proof. exact (eq_refl (@t1_space _390503)). Qed. +Definition hausdorff_space {A : Type'} : (Topology A) -> Prop := fun _730627 : Topology A => forall x : A, forall y : A, ((@IN A x (@topspace A _730627)) /\ ((@IN A y (@topspace A _730627)) /\ (~ (x = y)))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A _730627 u) /\ ((@open_in A _730627 v) /\ ((@IN A x u) /\ ((@IN A y v) /\ (@DISJOINT A u v)))). +Lemma hausdorff_space_def {A : Type'} : (@hausdorff_space A) = (fun _730627 : Topology A => forall x : A, forall y : A, ((@IN A x (@topspace A _730627)) /\ ((@IN A y (@topspace A _730627)) /\ (~ (x = y)))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A _730627 u) /\ ((@open_in A _730627 v) /\ ((@IN A x u) /\ ((@IN A y v) /\ (@DISJOINT A u v))))). +Proof. exact (eq_refl (@hausdorff_space A)). Qed. +Definition kc_space {A : Type'} : (Topology A) -> Prop := fun _737184 : Topology A => forall s : A -> Prop, (@compact_in A _737184 s) -> @closed_in A _737184 s. +Lemma kc_space_def {A : Type'} : (@kc_space A) = (fun _737184 : Topology A => forall s : A -> Prop, (@compact_in A _737184 s) -> @closed_in A _737184 s). +Proof. exact (eq_refl (@kc_space A)). Qed. +Definition proper_map {A B : Type'} : (prod (Topology A) (Topology B)) -> (A -> B) -> Prop := fun _738676 : prod (Topology A) (Topology B) => fun _738677 : A -> B => (@closed_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _738676) (@snd (Topology A) (Topology B) _738676)) _738677) /\ (forall y : B, (@IN B y (@topspace B (@snd (Topology A) (Topology B) _738676))) -> @compact_in A (@fst (Topology A) (Topology B) _738676) (@GSPEC A (fun GEN_PVAR_1536 : A => exists x : A, @SETSPEC A GEN_PVAR_1536 ((@IN A x (@topspace A (@fst (Topology A) (Topology B) _738676))) /\ ((_738677 x) = y)) x))). +Lemma proper_map_def {A B : Type'} : (@proper_map A B) = (fun _738676 : prod (Topology A) (Topology B) => fun _738677 : A -> B => (@closed_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _738676) (@snd (Topology A) (Topology B) _738676)) _738677) /\ (forall y : B, (@IN B y (@topspace B (@snd (Topology A) (Topology B) _738676))) -> @compact_in A (@fst (Topology A) (Topology B) _738676) (@GSPEC A (fun GEN_PVAR_1536 : A => exists x : A, @SETSPEC A GEN_PVAR_1536 ((@IN A x (@topspace A (@fst (Topology A) (Topology B) _738676))) /\ ((_738677 x) = y)) x)))). +Proof. exact (eq_refl (@proper_map A B)). Qed. +Definition perfect_map {A B : Type'} : (prod (Topology A) (Topology B)) -> (A -> B) -> Prop := fun _747441 : prod (Topology A) (Topology B) => fun _747442 : A -> B => (@continuous_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _747441) (@snd (Topology A) (Topology B) _747441)) _747442) /\ ((@proper_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _747441) (@snd (Topology A) (Topology B) _747441)) _747442) /\ ((@IMAGE A B _747442 (@topspace A (@fst (Topology A) (Topology B) _747441))) = (@topspace B (@snd (Topology A) (Topology B) _747441)))). +Lemma perfect_map_def {A B : Type'} : (@perfect_map A B) = (fun _747441 : prod (Topology A) (Topology B) => fun _747442 : A -> B => (@continuous_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _747441) (@snd (Topology A) (Topology B) _747441)) _747442) /\ ((@proper_map A B (@pair (Topology A) (Topology B) (@fst (Topology A) (Topology B) _747441) (@snd (Topology A) (Topology B) _747441)) _747442) /\ ((@IMAGE A B _747442 (@topspace A (@fst (Topology A) (Topology B) _747441))) = (@topspace B (@snd (Topology A) (Topology B) _747441))))). +Proof. exact (eq_refl (@perfect_map A B)). Qed. +Definition lindelof_space {A : Type'} : (Topology A) -> Prop := fun _752246 : Topology A => forall U : (A -> Prop) -> Prop, ((forall u : A -> Prop, (@IN (A -> Prop) u U) -> @open_in A _752246 u) /\ ((@UNIONS A U) = (@topspace A _752246))) -> exists V : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) V) /\ ((@SUBSET (A -> Prop) V U) /\ ((@UNIONS A V) = (@topspace A _752246))). +Lemma lindelof_space_def {A : Type'} : (@lindelof_space A) = (fun _752246 : Topology A => forall U : (A -> Prop) -> Prop, ((forall u : A -> Prop, (@IN (A -> Prop) u U) -> @open_in A _752246 u) /\ ((@UNIONS A U) = (@topspace A _752246))) -> exists V : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) V) /\ ((@SUBSET (A -> Prop) V U) /\ ((@UNIONS A V) = (@topspace A _752246)))). +Proof. exact (eq_refl (@lindelof_space A)). Qed. +Definition second_countable {A : Type'} : (Topology A) -> Prop := fun _754661 : Topology A => exists b : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) b) /\ ((forall v : A -> Prop, (@IN (A -> Prop) v b) -> @open_in A _754661 v) /\ (forall u : A -> Prop, forall x : A, ((@open_in A _754661 u) /\ (@IN A x u)) -> exists v : A -> Prop, (@IN (A -> Prop) v b) /\ ((@IN A x v) /\ (@SUBSET A v u)))). +Lemma second_countable_def {A : Type'} : (@second_countable A) = (fun _754661 : Topology A => exists b : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) b) /\ ((forall v : A -> Prop, (@IN (A -> Prop) v b) -> @open_in A _754661 v) /\ (forall u : A -> Prop, forall x : A, ((@open_in A _754661 u) /\ (@IN A x u)) -> exists v : A -> Prop, (@IN (A -> Prop) v b) /\ ((@IN A x v) /\ (@SUBSET A v u))))). +Proof. exact (eq_refl (@second_countable A)). Qed. +Definition first_countable {A : Type'} : (Topology A) -> Prop := fun _754666 : Topology A => forall x : A, (@IN A x (@topspace A _754666)) -> exists b : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) b) /\ ((forall v : A -> Prop, (@IN (A -> Prop) v b) -> @open_in A _754666 v) /\ (forall u : A -> Prop, ((@open_in A _754666 u) /\ (@IN A x u)) -> exists v : A -> Prop, (@IN (A -> Prop) v b) /\ ((@IN A x v) /\ (@SUBSET A v u)))). +Lemma first_countable_def {A : Type'} : (@first_countable A) = (fun _754666 : Topology A => forall x : A, (@IN A x (@topspace A _754666)) -> exists b : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) b) /\ ((forall v : A -> Prop, (@IN (A -> Prop) v b) -> @open_in A _754666 v) /\ (forall u : A -> Prop, ((@open_in A _754666 u) /\ (@IN A x u)) -> exists v : A -> Prop, (@IN (A -> Prop) v b) /\ ((@IN A x v) /\ (@SUBSET A v u))))). +Proof. exact (eq_refl (@first_countable A)). Qed. +Definition separable_space {A : Type'} : (Topology A) -> Prop := fun _754671 : Topology A => exists c : A -> Prop, (@COUNTABLE A c) /\ ((@SUBSET A c (@topspace A _754671)) /\ ((@closure_of A _754671 c) = (@topspace A _754671))). +Lemma separable_space_def {A : Type'} : (@separable_space A) = (fun _754671 : Topology A => exists c : A -> Prop, (@COUNTABLE A c) /\ ((@SUBSET A c (@topspace A _754671)) /\ ((@closure_of A _754671 c) = (@topspace A _754671)))). +Proof. exact (eq_refl (@separable_space A)). Qed. +Definition netfilter {A : Type'} : (net A) -> (A -> Prop) -> Prop := fun _756664 : net A => @fst ((A -> Prop) -> Prop) (A -> Prop) (@dest_net A _756664). +Lemma netfilter_def {A : Type'} : (@netfilter A) = (fun _756664 : net A => @fst ((A -> Prop) -> Prop) (A -> Prop) (@dest_net A _756664)). +Proof. exact (eq_refl (@netfilter A)). Qed. +Definition netlimits {A : Type'} : (net A) -> A -> Prop := fun _756669 : net A => @snd ((A -> Prop) -> Prop) (A -> Prop) (@dest_net A _756669). +Lemma netlimits_def {A : Type'} : (@netlimits A) = (fun _756669 : net A => @snd ((A -> Prop) -> Prop) (A -> Prop) (@dest_net A _756669)). +Proof. exact (eq_refl (@netlimits A)). Qed. +Definition netlimit {A : Type'} : (net A) -> A := fun _756674 : net A => @ε A (fun x : A => @IN A x (@netlimits A _756674)). +Lemma netlimit_def {A : Type'} : (@netlimit A) = (fun _756674 : net A => @ε A (fun x : A => @IN A x (@netlimits A _756674))). +Proof. exact (eq_refl (@netlimit A)). Qed. +Definition within {_406905 : Type'} : (net _406905) -> (_406905 -> Prop) -> net _406905 := fun _756702 : net _406905 => fun _756703 : _406905 -> Prop => @mk_net _406905 (@pair ((_406905 -> Prop) -> Prop) (_406905 -> Prop) (@relative_to _406905 (@netfilter _406905 _756702) _756703) (@netlimits _406905 _756702)). +Lemma within_def {_406905 : Type'} : (@within _406905) = (fun _756702 : net _406905 => fun _756703 : _406905 -> Prop => @mk_net _406905 (@pair ((_406905 -> Prop) -> Prop) (_406905 -> Prop) (@relative_to _406905 (@netfilter _406905 _756702) _756703) (@netlimits _406905 _756702))). +Proof. exact (eq_refl (@within _406905)). Qed. +Definition eventually {A : Type'} : (A -> Prop) -> (net A) -> Prop := fun _756782 : A -> Prop => fun _756783 : net A => ((@netfilter A _756783) = (@EMPTY (A -> Prop))) \/ (exists u : A -> Prop, (@IN (A -> Prop) u (@netfilter A _756783)) /\ (forall x : A, (@IN A x (@DIFF A u (@netlimits A _756783))) -> _756782 x)). +Lemma eventually_def {A : Type'} : (@eventually A) = (fun _756782 : A -> Prop => fun _756783 : net A => ((@netfilter A _756783) = (@EMPTY (A -> Prop))) \/ (exists u : A -> Prop, (@IN (A -> Prop) u (@netfilter A _756783)) /\ (forall x : A, (@IN A x (@DIFF A u (@netlimits A _756783))) -> _756782 x))). +Proof. exact (eq_refl (@eventually A)). Qed. +Definition trivial_limit {_407078 : Type'} : (net _407078) -> Prop := fun _756794 : net _407078 => @eventually _407078 (fun x : _407078 => False) _756794. +Lemma trivial_limit_def {_407078 : Type'} : (@trivial_limit _407078) = (fun _756794 : net _407078 => @eventually _407078 (fun x : _407078 => False) _756794). +Proof. exact (eq_refl (@trivial_limit _407078)). Qed. +Definition sequentially : net N := @mk_net N (@pair ((N -> Prop) -> Prop) (N -> Prop) (@GSPEC (N -> Prop) (fun GEN_PVAR_1595 : N -> Prop => exists n : N, @SETSPEC (N -> Prop) GEN_PVAR_1595 (@IN N n (@UNIV N)) (from n))) (@EMPTY N)). +Lemma sequentially_def : sequentially = (@mk_net N (@pair ((N -> Prop) -> Prop) (N -> Prop) (@GSPEC (N -> Prop) (fun GEN_PVAR_1595 : N -> Prop => exists n : N, @SETSPEC (N -> Prop) GEN_PVAR_1595 (@IN N n (@UNIV N)) (from n))) (@EMPTY N))). +Proof. exact (eq_refl sequentially). Qed. +Definition fsigma_in {A : Type'} : (Topology A) -> (A -> Prop) -> Prop := fun _757304 : Topology A => @UNION_OF A (@COUNTABLE (A -> Prop)) (@closed_in A _757304). +Lemma fsigma_in_def {A : Type'} : (@fsigma_in A) = (fun _757304 : Topology A => @UNION_OF A (@COUNTABLE (A -> Prop)) (@closed_in A _757304)). +Proof. exact (eq_refl (@fsigma_in A)). Qed. +Definition gdelta_in {A : Type'} : (Topology A) -> (A -> Prop) -> Prop := fun _757309 : Topology A => @relative_to A (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) (@open_in A _757309)) (@topspace A _757309). +Lemma gdelta_in_def {A : Type'} : (@gdelta_in A) = (fun _757309 : Topology A => @relative_to A (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) (@open_in A _757309)) (@topspace A _757309)). +Proof. exact (eq_refl (@gdelta_in A)). Qed. +Definition is_metric_space {A : Type'} : (prod (A -> Prop) ((prod A A) -> R)) -> Prop := fun _758555 : prod (A -> Prop) ((prod A A) -> R) => (forall x : A, forall y : A, ((@IN A x (@fst (A -> Prop) ((prod A A) -> R) _758555)) /\ (@IN A y (@fst (A -> Prop) ((prod A A) -> R) _758555))) -> Rle (R_of_N (NUMERAL 0%N)) (@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A x y))) /\ ((forall x : A, forall y : A, ((@IN A x (@fst (A -> Prop) ((prod A A) -> R) _758555)) /\ (@IN A y (@fst (A -> Prop) ((prod A A) -> R) _758555))) -> ((@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A x y)) = (R_of_N (NUMERAL 0%N))) = (x = y)) /\ ((forall x : A, forall y : A, ((@IN A x (@fst (A -> Prop) ((prod A A) -> R) _758555)) /\ (@IN A y (@fst (A -> Prop) ((prod A A) -> R) _758555))) -> (@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A x y)) = (@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A y x))) /\ (forall x : A, forall y : A, forall z : A, ((@IN A x (@fst (A -> Prop) ((prod A A) -> R) _758555)) /\ ((@IN A y (@fst (A -> Prop) ((prod A A) -> R) _758555)) /\ (@IN A z (@fst (A -> Prop) ((prod A A) -> R) _758555)))) -> Rle (@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A x z)) (Rplus (@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A x y)) (@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A y z)))))). +Lemma is_metric_space_def {A : Type'} : (@is_metric_space A) = (fun _758555 : prod (A -> Prop) ((prod A A) -> R) => (forall x : A, forall y : A, ((@IN A x (@fst (A -> Prop) ((prod A A) -> R) _758555)) /\ (@IN A y (@fst (A -> Prop) ((prod A A) -> R) _758555))) -> Rle (R_of_N (NUMERAL 0%N)) (@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A x y))) /\ ((forall x : A, forall y : A, ((@IN A x (@fst (A -> Prop) ((prod A A) -> R) _758555)) /\ (@IN A y (@fst (A -> Prop) ((prod A A) -> R) _758555))) -> ((@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A x y)) = (R_of_N (NUMERAL 0%N))) = (x = y)) /\ ((forall x : A, forall y : A, ((@IN A x (@fst (A -> Prop) ((prod A A) -> R) _758555)) /\ (@IN A y (@fst (A -> Prop) ((prod A A) -> R) _758555))) -> (@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A x y)) = (@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A y x))) /\ (forall x : A, forall y : A, forall z : A, ((@IN A x (@fst (A -> Prop) ((prod A A) -> R) _758555)) /\ ((@IN A y (@fst (A -> Prop) ((prod A A) -> R) _758555)) /\ (@IN A z (@fst (A -> Prop) ((prod A A) -> R) _758555)))) -> Rle (@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A x z)) (Rplus (@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A x y)) (@snd (A -> Prop) ((prod A A) -> R) _758555 (@pair A A y z))))))). +Proof. exact (eq_refl (@is_metric_space A)). Qed. +Definition mspace {A : Type'} : (Metric A) -> A -> Prop := fun _758795 : Metric A => @fst (A -> Prop) ((prod A A) -> R) (@dest_metric A _758795). +Lemma mspace_def {A : Type'} : (@mspace A) = (fun _758795 : Metric A => @fst (A -> Prop) ((prod A A) -> R) (@dest_metric A _758795)). +Proof. exact (eq_refl (@mspace A)). Qed. +Definition mdist {A : Type'} : (Metric A) -> (prod A A) -> R := fun _758800 : Metric A => @snd (A -> Prop) ((prod A A) -> R) (@dest_metric A _758800). +Lemma mdist_def {A : Type'} : (@mdist A) = (fun _758800 : Metric A => @snd (A -> Prop) ((prod A A) -> R) (@dest_metric A _758800)). +Proof. exact (eq_refl (@mdist A)). Qed. +Definition mball {A : Type'} : (Metric A) -> (prod A R) -> A -> Prop := fun _759314 : Metric A => fun _759315 : prod A R => @GSPEC A (fun GEN_PVAR_1613 : A => exists y : A, @SETSPEC A GEN_PVAR_1613 ((@IN A (@fst A R _759315) (@mspace A _759314)) /\ ((@IN A y (@mspace A _759314)) /\ (Rlt (@mdist A _759314 (@pair A A (@fst A R _759315) y)) (@snd A R _759315)))) y). +Lemma mball_def {A : Type'} : (@mball A) = (fun _759314 : Metric A => fun _759315 : prod A R => @GSPEC A (fun GEN_PVAR_1613 : A => exists y : A, @SETSPEC A GEN_PVAR_1613 ((@IN A (@fst A R _759315) (@mspace A _759314)) /\ ((@IN A y (@mspace A _759314)) /\ (Rlt (@mdist A _759314 (@pair A A (@fst A R _759315) y)) (@snd A R _759315)))) y)). +Proof. exact (eq_refl (@mball A)). Qed. +Definition submetric {A : Type'} : (Metric A) -> (A -> Prop) -> Metric A := fun _759384 : Metric A => fun _759385 : A -> Prop => @metric A (@pair (A -> Prop) ((prod A A) -> R) (@INTER A _759385 (@mspace A _759384)) (@mdist A _759384)). +Lemma submetric_def {A : Type'} : (@submetric A) = (fun _759384 : Metric A => fun _759385 : A -> Prop => @metric A (@pair (A -> Prop) ((prod A A) -> R) (@INTER A _759385 (@mspace A _759384)) (@mdist A _759384))). +Proof. exact (eq_refl (@submetric A)). Qed. +Definition mtopology {A : Type'} : (Metric A) -> Topology A := fun _759402 : Metric A => @topology A (@GSPEC (A -> Prop) (fun GEN_PVAR_1614 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1614 ((@SUBSET A u (@mspace A _759402)) /\ (forall x : A, (@IN A x u) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@SUBSET A (@mball A _759402 (@pair A R x r)) u))) u)). +Lemma mtopology_def {A : Type'} : (@mtopology A) = (fun _759402 : Metric A => @topology A (@GSPEC (A -> Prop) (fun GEN_PVAR_1614 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1614 ((@SUBSET A u (@mspace A _759402)) /\ (forall x : A, (@IN A x u) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@SUBSET A (@mball A _759402 (@pair A R x r)) u))) u))). +Proof. exact (eq_refl (@mtopology A)). Qed. +Definition mcball {A : Type'} : (Metric A) -> (prod A R) -> A -> Prop := fun _759681 : Metric A => fun _759682 : prod A R => @GSPEC A (fun GEN_PVAR_1620 : A => exists y : A, @SETSPEC A GEN_PVAR_1620 ((@IN A (@fst A R _759682) (@mspace A _759681)) /\ ((@IN A y (@mspace A _759681)) /\ (Rle (@mdist A _759681 (@pair A A (@fst A R _759682) y)) (@snd A R _759682)))) y). +Lemma mcball_def {A : Type'} : (@mcball A) = (fun _759681 : Metric A => fun _759682 : prod A R => @GSPEC A (fun GEN_PVAR_1620 : A => exists y : A, @SETSPEC A GEN_PVAR_1620 ((@IN A (@fst A R _759682) (@mspace A _759681)) /\ ((@IN A y (@mspace A _759681)) /\ (Rle (@mdist A _759681 (@pair A A (@fst A R _759682) y)) (@snd A R _759682)))) y)). +Proof. exact (eq_refl (@mcball A)). Qed. +Definition msphere {A : Type'} : (Metric A) -> (prod A R) -> A -> Prop := fun _759894 : Metric A => fun _759895 : prod A R => @GSPEC A (fun GEN_PVAR_1621 : A => exists y : A, @SETSPEC A GEN_PVAR_1621 ((@mdist A _759894 (@pair A A (@fst A R _759895) y)) = (@snd A R _759895)) y). +Lemma msphere_def {A : Type'} : (@msphere A) = (fun _759894 : Metric A => fun _759895 : prod A R => @GSPEC A (fun GEN_PVAR_1621 : A => exists y : A, @SETSPEC A GEN_PVAR_1621 ((@mdist A _759894 (@pair A A (@fst A R _759895) y)) = (@snd A R _759895)) y)). +Proof. exact (eq_refl (@msphere A)). Qed. +Definition mbounded {A : Type'} : (Metric A) -> (A -> Prop) -> Prop := fun _759959 : Metric A => fun _759960 : A -> Prop => exists c : A, exists b : R, @SUBSET A _759960 (@mcball A _759959 (@pair A R c b)). +Lemma mbounded_def {A : Type'} : (@mbounded A) = (fun _759959 : Metric A => fun _759960 : A -> Prop => exists c : A, exists b : R, @SUBSET A _759960 (@mcball A _759959 (@pair A R c b))). +Proof. exact (eq_refl (@mbounded A)). Qed. +Definition discrete_metric {_415081 : Type'} : (_415081 -> Prop) -> Metric _415081 := fun _760484 : _415081 -> Prop => @metric _415081 (@pair (_415081 -> Prop) ((prod _415081 _415081) -> R) _760484 (@GABS ((prod _415081 _415081) -> R) (fun f : (prod _415081 _415081) -> R => forall x : _415081, forall y : _415081, @GEQ R (f (@pair _415081 _415081 x y)) (@COND R (x = y) (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))). +Lemma discrete_metric_def {_415081 : Type'} : (@discrete_metric _415081) = (fun _760484 : _415081 -> Prop => @metric _415081 (@pair (_415081 -> Prop) ((prod _415081 _415081) -> R) _760484 (@GABS ((prod _415081 _415081) -> R) (fun f : (prod _415081 _415081) -> R => forall x : _415081, forall y : _415081, @GEQ R (f (@pair _415081 _415081 x y)) (@COND R (x = y) (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))))). +Proof. exact (eq_refl (@discrete_metric _415081)). Qed. +Definition metrizable_space {_415259 : Type'} : (Topology _415259) -> Prop := fun _760711 : Topology _415259 => exists m : Metric _415259, _760711 = (@mtopology _415259 m). +Lemma metrizable_space_def {_415259 : Type'} : (@metrizable_space _415259) = (fun _760711 : Topology _415259 => exists m : Metric _415259, _760711 = (@mtopology _415259 m)). +Proof. exact (eq_refl (@metrizable_space _415259)). Qed. +Definition connected_space {A : Type'} : (Topology A) -> Prop := fun _763672 : Topology A => ~ (exists e1 : A -> Prop, exists e2 : A -> Prop, (@open_in A _763672 e1) /\ ((@open_in A _763672 e2) /\ ((@SUBSET A (@topspace A _763672) (@UNION A e1 e2)) /\ (((@INTER A e1 e2) = (@EMPTY A)) /\ ((~ (e1 = (@EMPTY A))) /\ (~ (e2 = (@EMPTY A)))))))). +Lemma connected_space_def {A : Type'} : (@connected_space A) = (fun _763672 : Topology A => ~ (exists e1 : A -> Prop, exists e2 : A -> Prop, (@open_in A _763672 e1) /\ ((@open_in A _763672 e2) /\ ((@SUBSET A (@topspace A _763672) (@UNION A e1 e2)) /\ (((@INTER A e1 e2) = (@EMPTY A)) /\ ((~ (e1 = (@EMPTY A))) /\ (~ (e2 = (@EMPTY A))))))))). +Proof. exact (eq_refl (@connected_space A)). Qed. +Definition connected_in {_415952 : Type'} : (Topology _415952) -> (_415952 -> Prop) -> Prop := fun _763677 : Topology _415952 => fun _763678 : _415952 -> Prop => (@SUBSET _415952 _763678 (@topspace _415952 _763677)) /\ (@connected_space _415952 (@subtopology _415952 _763677 _763678)). +Lemma connected_in_def {_415952 : Type'} : (@connected_in _415952) = (fun _763677 : Topology _415952 => fun _763678 : _415952 -> Prop => (@SUBSET _415952 _763678 (@topspace _415952 _763677)) /\ (@connected_space _415952 (@subtopology _415952 _763677 _763678))). +Proof. exact (eq_refl (@connected_in _415952)). Qed. +Definition separated_between {A : Type'} : (Topology A) -> (A -> Prop) -> (A -> Prop) -> Prop := fun _776352 : Topology A => fun _776353 : A -> Prop => fun _776354 : A -> Prop => exists u : A -> Prop, exists v : A -> Prop, (@open_in A _776352 u) /\ ((@open_in A _776352 v) /\ (((@UNION A u v) = (@topspace A _776352)) /\ ((@DISJOINT A u v) /\ ((@SUBSET A _776353 u) /\ (@SUBSET A _776354 v))))). +Lemma separated_between_def {A : Type'} : (@separated_between A) = (fun _776352 : Topology A => fun _776353 : A -> Prop => fun _776354 : A -> Prop => exists u : A -> Prop, exists v : A -> Prop, (@open_in A _776352 u) /\ ((@open_in A _776352 v) /\ (((@UNION A u v) = (@topspace A _776352)) /\ ((@DISJOINT A u v) /\ ((@SUBSET A _776353 u) /\ (@SUBSET A _776354 v)))))). +Proof. exact (eq_refl (@separated_between A)). Qed. +Definition connected_component_of {_421324 : Type'} : (Topology _421324) -> _421324 -> _421324 -> Prop := fun _777792 : Topology _421324 => fun _777793 : _421324 => fun _777794 : _421324 => exists t : _421324 -> Prop, (@connected_in _421324 _777792 t) /\ ((@IN _421324 _777793 t) /\ (@IN _421324 _777794 t)). +Lemma connected_component_of_def {_421324 : Type'} : (@connected_component_of _421324) = (fun _777792 : Topology _421324 => fun _777793 : _421324 => fun _777794 : _421324 => exists t : _421324 -> Prop, (@connected_in _421324 _777792 t) /\ ((@IN _421324 _777793 t) /\ (@IN _421324 _777794 t))). +Proof. exact (eq_refl (@connected_component_of _421324)). Qed. +Definition connected_components_of {_421354 : Type'} : (Topology _421354) -> (_421354 -> Prop) -> Prop := fun _777813 : Topology _421354 => @GSPEC (_421354 -> Prop) (fun GEN_PVAR_1650 : _421354 -> Prop => exists x : _421354, @SETSPEC (_421354 -> Prop) GEN_PVAR_1650 (@IN _421354 x (@topspace _421354 _777813)) (@connected_component_of _421354 _777813 x)). +Lemma connected_components_of_def {_421354 : Type'} : (@connected_components_of _421354) = (fun _777813 : Topology _421354 => @GSPEC (_421354 -> Prop) (fun GEN_PVAR_1650 : _421354 -> Prop => exists x : _421354, @SETSPEC (_421354 -> Prop) GEN_PVAR_1650 (@IN _421354 x (@topspace _421354 _777813)) (@connected_component_of _421354 _777813 x))). +Proof. exact (eq_refl (@connected_components_of _421354)). Qed. +Definition monotone_map {A B : Type'} : (prod (Topology A) (Topology B)) -> (A -> B) -> Prop := fun _789390 : prod (Topology A) (Topology B) => fun _789391 : A -> B => (@SUBSET B (@IMAGE A B _789391 (@topspace A (@fst (Topology A) (Topology B) _789390))) (@topspace B (@snd (Topology A) (Topology B) _789390))) /\ (forall y : B, (@IN B y (@topspace B (@snd (Topology A) (Topology B) _789390))) -> @connected_in A (@fst (Topology A) (Topology B) _789390) (@GSPEC A (fun GEN_PVAR_1663 : A => exists x : A, @SETSPEC A GEN_PVAR_1663 ((@IN A x (@topspace A (@fst (Topology A) (Topology B) _789390))) /\ ((_789391 x) = y)) x))). +Lemma monotone_map_def {A B : Type'} : (@monotone_map A B) = (fun _789390 : prod (Topology A) (Topology B) => fun _789391 : A -> B => (@SUBSET B (@IMAGE A B _789391 (@topspace A (@fst (Topology A) (Topology B) _789390))) (@topspace B (@snd (Topology A) (Topology B) _789390))) /\ (forall y : B, (@IN B y (@topspace B (@snd (Topology A) (Topology B) _789390))) -> @connected_in A (@fst (Topology A) (Topology B) _789390) (@GSPEC A (fun GEN_PVAR_1663 : A => exists x : A, @SETSPEC A GEN_PVAR_1663 ((@IN A x (@topspace A (@fst (Topology A) (Topology B) _789390))) /\ ((_789391 x) = y)) x)))). +Proof. exact (eq_refl (@monotone_map A B)). Qed. +Definition neighbourhood_base_at {A : Type'} : A -> ((A -> Prop) -> Prop) -> (Topology A) -> Prop := fun _794531 : A => fun _794532 : (A -> Prop) -> Prop => fun _794533 : Topology A => forall w : A -> Prop, ((@open_in A _794533 w) /\ (@IN A _794531 w)) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A _794533 u) /\ ((_794532 v) /\ ((@IN A _794531 u) /\ ((@SUBSET A u v) /\ (@SUBSET A v w)))). +Lemma neighbourhood_base_at_def {A : Type'} : (@neighbourhood_base_at A) = (fun _794531 : A => fun _794532 : (A -> Prop) -> Prop => fun _794533 : Topology A => forall w : A -> Prop, ((@open_in A _794533 w) /\ (@IN A _794531 w)) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A _794533 u) /\ ((_794532 v) /\ ((@IN A _794531 u) /\ ((@SUBSET A u v) /\ (@SUBSET A v w))))). +Proof. exact (eq_refl (@neighbourhood_base_at A)). Qed. +Definition neighbourhood_base_of {_425114 : Type'} : ((_425114 -> Prop) -> Prop) -> (Topology _425114) -> Prop := fun _794552 : (_425114 -> Prop) -> Prop => fun _794553 : Topology _425114 => forall x : _425114, (@IN _425114 x (@topspace _425114 _794553)) -> @neighbourhood_base_at _425114 x _794552 _794553. +Lemma neighbourhood_base_of_def {_425114 : Type'} : (@neighbourhood_base_of _425114) = (fun _794552 : (_425114 -> Prop) -> Prop => fun _794553 : Topology _425114 => forall x : _425114, (@IN _425114 x (@topspace _425114 _794553)) -> @neighbourhood_base_at _425114 x _794552 _794553). +Proof. exact (eq_refl (@neighbourhood_base_of _425114)). Qed. +Definition t0_space {A : Type'} : (Topology A) -> Prop := fun _794990 : Topology A => forall x : A, forall y : A, ((@IN A x (@topspace A _794990)) /\ ((@IN A y (@topspace A _794990)) /\ (~ (x = y)))) -> exists u : A -> Prop, (@open_in A _794990 u) /\ (~ ((@IN A x u) = (@IN A y u))). +Lemma t0_space_def {A : Type'} : (@t0_space A) = (fun _794990 : Topology A => forall x : A, forall y : A, ((@IN A x (@topspace A _794990)) /\ ((@IN A y (@topspace A _794990)) /\ (~ (x = y)))) -> exists u : A -> Prop, (@open_in A _794990 u) /\ (~ ((@IN A x u) = (@IN A y u)))). +Proof. exact (eq_refl (@t0_space A)). Qed. +Definition kolmogorov_quotient {A : Type'} : (Topology A) -> A -> A := fun _798901 : Topology A => fun x : A => @ε A (fun y : A => forall u : A -> Prop, (@open_in A _798901 u) -> (@IN A y u) = (@IN A x u)). +Lemma kolmogorov_quotient_def {A : Type'} : (@kolmogorov_quotient A) = (fun _798901 : Topology A => fun x : A => @ε A (fun y : A => forall u : A -> Prop, (@open_in A _798901 u) -> (@IN A y u) = (@IN A x u))). +Proof. exact (eq_refl (@kolmogorov_quotient A)). Qed. +Definition regular_space {A : Type'} : (Topology A) -> Prop := fun _800166 : Topology A => forall c : A -> Prop, forall a : A, ((@closed_in A _800166 c) /\ (@IN A a (@DIFF A (@topspace A _800166) c))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A _800166 u) /\ ((@open_in A _800166 v) /\ ((@IN A a u) /\ ((@SUBSET A c v) /\ (@DISJOINT A u v)))). +Lemma regular_space_def {A : Type'} : (@regular_space A) = (fun _800166 : Topology A => forall c : A -> Prop, forall a : A, ((@closed_in A _800166 c) /\ (@IN A a (@DIFF A (@topspace A _800166) c))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A _800166 u) /\ ((@open_in A _800166 v) /\ ((@IN A a u) /\ ((@SUBSET A c v) /\ (@DISJOINT A u v))))). +Proof. exact (eq_refl (@regular_space A)). Qed. +Definition locally_compact_space {_431393 : Type'} : (Topology _431393) -> Prop := fun _808310 : Topology _431393 => forall x : _431393, (@IN _431393 x (@topspace _431393 _808310)) -> exists u : _431393 -> Prop, exists k : _431393 -> Prop, (@open_in _431393 _808310 u) /\ ((@compact_in _431393 _808310 k) /\ ((@IN _431393 x u) /\ (@SUBSET _431393 u k))). +Lemma locally_compact_space_def {_431393 : Type'} : (@locally_compact_space _431393) = (fun _808310 : Topology _431393 => forall x : _431393, (@IN _431393 x (@topspace _431393 _808310)) -> exists u : _431393 -> Prop, exists k : _431393 -> Prop, (@open_in _431393 _808310 u) /\ ((@compact_in _431393 _808310 k) /\ ((@IN _431393 x u) /\ (@SUBSET _431393 u k)))). +Proof. exact (eq_refl (@locally_compact_space _431393)). Qed. +Definition real_open : (R -> Prop) -> Prop := fun _823569 : R -> Prop => forall x : R, (@IN R x _823569) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x' : R, (Rlt (Rabs (Rminus x' x)) e) -> @IN R x' _823569). +Lemma real_open_def : real_open = (fun _823569 : R -> Prop => forall x : R, (@IN R x _823569) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x' : R, (Rlt (Rabs (Rminus x' x)) e) -> @IN R x' _823569)). +Proof. exact (eq_refl real_open). Qed. +Definition real_closed : (R -> Prop) -> Prop := fun _823574 : R -> Prop => real_open (@DIFF R (@UNIV R) _823574). +Lemma real_closed_def : real_closed = (fun _823574 : R -> Prop => real_open (@DIFF R (@UNIV R) _823574)). +Proof. exact (eq_refl real_closed). Qed. +Definition euclideanreal : Topology R := @topology R real_open. +Lemma euclideanreal_def : euclideanreal = (@topology R real_open). +Proof. exact (eq_refl euclideanreal). Qed. +Definition real_euclidean_metric : Metric R := @metric R (@pair (R -> Prop) ((prod R R) -> R) (@UNIV R) (@GABS ((prod R R) -> R) (fun f : (prod R R) -> R => forall x : R, forall y : R, @GEQ R (f (@pair R R x y)) (Rabs (Rminus y x))))). +Lemma real_euclidean_metric_def : real_euclidean_metric = (@metric R (@pair (R -> Prop) ((prod R R) -> R) (@UNIV R) (@GABS ((prod R R) -> R) (fun f : (prod R R) -> R => forall x : R, forall y : R, @GEQ R (f (@pair R R x y)) (Rabs (Rminus y x)))))). +Proof. exact (eq_refl real_euclidean_metric). Qed. +Definition real_bounded : (R -> Prop) -> Prop := fun _824092 : R -> Prop => exists B : R, forall x : R, (@IN R x _824092) -> Rle (Rabs x) B. +Lemma real_bounded_def : real_bounded = (fun _824092 : R -> Prop => exists B : R, forall x : R, (@IN R x _824092) -> Rle (Rabs x) B). +Proof. exact (eq_refl real_bounded). Qed. +Definition real_compact : (R -> Prop) -> Prop := fun _825374 : R -> Prop => @compact_in R euclideanreal _825374. +Lemma real_compact_def : real_compact = (fun _825374 : R -> Prop => @compact_in R euclideanreal _825374). +Proof. exact (eq_refl real_compact). Qed. +Definition atpointof {_438043 : Type'} : (Topology _438043) -> _438043 -> net _438043 := fun _826262 : Topology _438043 => fun _826263 : _438043 => @mk_net _438043 (@pair ((_438043 -> Prop) -> Prop) (_438043 -> Prop) (@GSPEC (_438043 -> Prop) (fun GEN_PVAR_1781 : _438043 -> Prop => exists u : _438043 -> Prop, @SETSPEC (_438043 -> Prop) GEN_PVAR_1781 ((@open_in _438043 _826262 u) /\ (@IN _438043 _826263 u)) u)) (@INSERT _438043 _826263 (@EMPTY _438043))). +Lemma atpointof_def {_438043 : Type'} : (@atpointof _438043) = (fun _826262 : Topology _438043 => fun _826263 : _438043 => @mk_net _438043 (@pair ((_438043 -> Prop) -> Prop) (_438043 -> Prop) (@GSPEC (_438043 -> Prop) (fun GEN_PVAR_1781 : _438043 -> Prop => exists u : _438043 -> Prop, @SETSPEC (_438043 -> Prop) GEN_PVAR_1781 ((@open_in _438043 _826262 u) /\ (@IN _438043 _826263 u)) u)) (@INSERT _438043 _826263 (@EMPTY _438043)))). +Proof. exact (eq_refl (@atpointof _438043)). Qed. +Definition limit {A B : Type'} : (Topology B) -> (A -> B) -> B -> (net A) -> Prop := fun _826602 : Topology B => fun _826603 : A -> B => fun _826604 : B => fun _826605 : net A => (@IN B _826604 (@topspace B _826602)) /\ (forall u : B -> Prop, ((@open_in B _826602 u) /\ (@IN B _826604 u)) -> @eventually A (fun x : A => @IN B (_826603 x) u) _826605). +Lemma limit_def {A B : Type'} : (@limit A B) = (fun _826602 : Topology B => fun _826603 : A -> B => fun _826604 : B => fun _826605 : net A => (@IN B _826604 (@topspace B _826602)) /\ (forall u : B -> Prop, ((@open_in B _826602 u) /\ (@IN B _826604 u)) -> @eventually A (fun x : A => @IN B (_826603 x) u) _826605)). +Proof. exact (eq_refl (@limit A B)). Qed. +Definition cauchy_in {A : Type'} : (Metric A) -> (N -> A) -> Prop := fun _830072 : Metric A => fun _830073 : N -> A => (forall n : N, @IN A (_830073 n) (@mspace A _830072)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall n' : N, ((N.le N' n) /\ (N.le N' n')) -> Rlt (@mdist A _830072 (@pair A A (_830073 n) (_830073 n'))) e). +Lemma cauchy_in_def {A : Type'} : (@cauchy_in A) = (fun _830072 : Metric A => fun _830073 : N -> A => (forall n : N, @IN A (_830073 n) (@mspace A _830072)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall n' : N, ((N.le N' n) /\ (N.le N' n')) -> Rlt (@mdist A _830072 (@pair A A (_830073 n) (_830073 n'))) e)). +Proof. exact (eq_refl (@cauchy_in A)). Qed. +Definition mcomplete {A : Type'} : (Metric A) -> Prop := fun _830084 : Metric A => forall s : N -> A, (@cauchy_in A _830084 s) -> exists x : A, @limit N A (@mtopology A _830084) s x sequentially. +Lemma mcomplete_def {A : Type'} : (@mcomplete A) = (fun _830084 : Metric A => forall s : N -> A, (@cauchy_in A _830084 s) -> exists x : A, @limit N A (@mtopology A _830084) s x sequentially). +Proof. exact (eq_refl (@mcomplete A)). Qed. +Definition totally_bounded_in {A : Type'} : (Metric A) -> (A -> Prop) -> Prop := fun _834558 : Metric A => fun _834559 : A -> Prop => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists k : A -> Prop, (@FINITE A k) /\ ((@SUBSET A k _834559) /\ (@SUBSET A _834559 (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1814 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1814 (@IN A x k) (@mball A _834558 (@pair A R x e))))))). +Lemma totally_bounded_in_def {A : Type'} : (@totally_bounded_in A) = (fun _834558 : Metric A => fun _834559 : A -> Prop => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists k : A -> Prop, (@FINITE A k) /\ ((@SUBSET A k _834559) /\ (@SUBSET A _834559 (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1814 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1814 (@IN A x k) (@mball A _834558 (@pair A R x e)))))))). +Proof. exact (eq_refl (@totally_bounded_in A)). Qed. +Definition topcontinuous_at {A B : Type'} : (Topology A) -> (Topology B) -> (A -> B) -> A -> Prop := fun _837763 : Topology A => fun _837764 : Topology B => fun _837765 : A -> B => fun _837766 : A => (@IN A _837766 (@topspace A _837763)) /\ ((forall x : A, (@IN A x (@topspace A _837763)) -> @IN B (_837765 x) (@topspace B _837764)) /\ (forall v : B -> Prop, ((@open_in B _837764 v) /\ (@IN B (_837765 _837766) v)) -> exists u : A -> Prop, (@open_in A _837763 u) /\ ((@IN A _837766 u) /\ (forall y : A, (@IN A y u) -> @IN B (_837765 y) v)))). +Lemma topcontinuous_at_def {A B : Type'} : (@topcontinuous_at A B) = (fun _837763 : Topology A => fun _837764 : Topology B => fun _837765 : A -> B => fun _837766 : A => (@IN A _837766 (@topspace A _837763)) /\ ((forall x : A, (@IN A x (@topspace A _837763)) -> @IN B (_837765 x) (@topspace B _837764)) /\ (forall v : B -> Prop, ((@open_in B _837764 v) /\ (@IN B (_837765 _837766) v)) -> exists u : A -> Prop, (@open_in A _837763 u) /\ ((@IN A _837766 u) /\ (forall y : A, (@IN A y u) -> @IN B (_837765 y) v))))). +Proof. exact (eq_refl (@topcontinuous_at A B)). Qed. +Definition path_in {A : Type'} : (Topology A) -> (R -> A) -> Prop := fun _838908 : Topology A => fun _838909 : R -> A => @continuous_map R A (@pair (Topology R) (Topology A) (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) _838908) _838909. +Lemma path_in_def {A : Type'} : (@path_in A) = (fun _838908 : Topology A => fun _838909 : R -> A => @continuous_map R A (@pair (Topology R) (Topology A) (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) _838908) _838909). +Proof. exact (eq_refl (@path_in A)). Qed. +Definition path_connected_space {A : Type'} : (Topology A) -> Prop := fun _839336 : Topology A => forall x : A, forall y : A, ((@IN A x (@topspace A _839336)) /\ (@IN A y (@topspace A _839336))) -> exists g : R -> A, (@path_in A _839336 g) /\ (((g (R_of_N (NUMERAL 0%N))) = x) /\ ((g (R_of_N (NUMERAL (BIT1 0%N)))) = y)). +Lemma path_connected_space_def {A : Type'} : (@path_connected_space A) = (fun _839336 : Topology A => forall x : A, forall y : A, ((@IN A x (@topspace A _839336)) /\ (@IN A y (@topspace A _839336))) -> exists g : R -> A, (@path_in A _839336 g) /\ (((g (R_of_N (NUMERAL 0%N))) = x) /\ ((g (R_of_N (NUMERAL (BIT1 0%N)))) = y))). +Proof. exact (eq_refl (@path_connected_space A)). Qed. +Definition path_connected_in {A : Type'} : (Topology A) -> (A -> Prop) -> Prop := fun _839341 : Topology A => fun _839342 : A -> Prop => (@SUBSET A _839342 (@topspace A _839341)) /\ (@path_connected_space A (@subtopology A _839341 _839342)). +Lemma path_connected_in_def {A : Type'} : (@path_connected_in A) = (fun _839341 : Topology A => fun _839342 : A -> Prop => (@SUBSET A _839342 (@topspace A _839341)) /\ (@path_connected_space A (@subtopology A _839341 _839342))). +Proof. exact (eq_refl (@path_connected_in A)). Qed. +Definition path_component_of {_457543 : Type'} : (Topology _457543) -> _457543 -> _457543 -> Prop := fun _841254 : Topology _457543 => fun _841255 : _457543 => fun _841256 : _457543 => exists g : R -> _457543, (@path_in _457543 _841254 g) /\ (((g (R_of_N (NUMERAL 0%N))) = _841255) /\ ((g (R_of_N (NUMERAL (BIT1 0%N)))) = _841256)). +Lemma path_component_of_def {_457543 : Type'} : (@path_component_of _457543) = (fun _841254 : Topology _457543 => fun _841255 : _457543 => fun _841256 : _457543 => exists g : R -> _457543, (@path_in _457543 _841254 g) /\ (((g (R_of_N (NUMERAL 0%N))) = _841255) /\ ((g (R_of_N (NUMERAL (BIT1 0%N)))) = _841256))). +Proof. exact (eq_refl (@path_component_of _457543)). Qed. +Definition path_components_of {_457570 : Type'} : (Topology _457570) -> (_457570 -> Prop) -> Prop := fun _841275 : Topology _457570 => @GSPEC (_457570 -> Prop) (fun GEN_PVAR_1874 : _457570 -> Prop => exists x : _457570, @SETSPEC (_457570 -> Prop) GEN_PVAR_1874 (@IN _457570 x (@topspace _457570 _841275)) (@path_component_of _457570 _841275 x)). +Lemma path_components_of_def {_457570 : Type'} : (@path_components_of _457570) = (fun _841275 : Topology _457570 => @GSPEC (_457570 -> Prop) (fun GEN_PVAR_1874 : _457570 -> Prop => exists x : _457570, @SETSPEC (_457570 -> Prop) GEN_PVAR_1874 (@IN _457570 x (@topspace _457570 _841275)) (@path_component_of _457570 _841275 x))). +Proof. exact (eq_refl (@path_components_of _457570)). Qed. +Definition normal_space {A : Type'} : (Topology A) -> Prop := fun _853160 : Topology A => forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A _853160 s) /\ ((@closed_in A _853160 t) /\ (@DISJOINT A s t))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A _853160 u) /\ ((@open_in A _853160 v) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ (@DISJOINT A u v)))). +Lemma normal_space_def {A : Type'} : (@normal_space A) = (fun _853160 : Topology A => forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A _853160 s) /\ ((@closed_in A _853160 t) /\ (@DISJOINT A s t))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A _853160 u) /\ ((@open_in A _853160 v) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ (@DISJOINT A u v))))). +Proof. exact (eq_refl (@normal_space A)). Qed. +Definition completely_regular_space {A : Type'} : (Topology A) -> Prop := fun _869042 : Topology A => forall s : A -> Prop, forall x : A, ((@closed_in A _869042 s) /\ (@IN A x (@DIFF A (@topspace A _869042) s))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) _869042 (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R)))))) f) /\ (((f x) = (R_of_N (NUMERAL 0%N))) /\ (forall x' : A, (@IN A x' s) -> (f x') = (R_of_N (NUMERAL (BIT1 0%N))))). +Lemma completely_regular_space_def {A : Type'} : (@completely_regular_space A) = (fun _869042 : Topology A => forall s : A -> Prop, forall x : A, ((@closed_in A _869042 s) /\ (@IN A x (@DIFF A (@topspace A _869042) s))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) _869042 (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R)))))) f) /\ (((f x) = (R_of_N (NUMERAL 0%N))) /\ (forall x' : A, (@IN A x' s) -> (f x') = (R_of_N (NUMERAL (BIT1 0%N)))))). +Proof. exact (eq_refl (@completely_regular_space A)). Qed. +Definition weakly_locally_path_connected_at {_470946 : Type'} : _470946 -> (Topology _470946) -> Prop := fun _872685 : _470946 => fun _872686 : Topology _470946 => @neighbourhood_base_at _470946 _872685 (@path_connected_in _470946 _872686) _872686. +Lemma weakly_locally_path_connected_at_def {_470946 : Type'} : (@weakly_locally_path_connected_at _470946) = (fun _872685 : _470946 => fun _872686 : Topology _470946 => @neighbourhood_base_at _470946 _872685 (@path_connected_in _470946 _872686) _872686). +Proof. exact (eq_refl (@weakly_locally_path_connected_at _470946)). Qed. +Definition locally_path_connected_at {_470954 : Type'} : _470954 -> (Topology _470954) -> Prop := fun _872697 : _470954 => fun _872698 : Topology _470954 => @neighbourhood_base_at _470954 _872697 (fun u : _470954 -> Prop => (@open_in _470954 _872698 u) /\ (@path_connected_in _470954 _872698 u)) _872698. +Lemma locally_path_connected_at_def {_470954 : Type'} : (@locally_path_connected_at _470954) = (fun _872697 : _470954 => fun _872698 : Topology _470954 => @neighbourhood_base_at _470954 _872697 (fun u : _470954 -> Prop => (@open_in _470954 _872698 u) /\ (@path_connected_in _470954 _872698 u)) _872698). +Proof. exact (eq_refl (@locally_path_connected_at _470954)). Qed. +Definition locally_path_connected_space {_470974 : Type'} : (Topology _470974) -> Prop := fun _872709 : Topology _470974 => @neighbourhood_base_of _470974 (@path_connected_in _470974 _872709) _872709. +Lemma locally_path_connected_space_def {_470974 : Type'} : (@locally_path_connected_space _470974) = (fun _872709 : Topology _470974 => @neighbourhood_base_of _470974 (@path_connected_in _470974 _872709) _872709). +Proof. exact (eq_refl (@locally_path_connected_space _470974)). Qed. +Definition weakly_locally_connected_at {_472699 : Type'} : _472699 -> (Topology _472699) -> Prop := fun _874154 : _472699 => fun _874155 : Topology _472699 => @neighbourhood_base_at _472699 _874154 (@connected_in _472699 _874155) _874155. +Lemma weakly_locally_connected_at_def {_472699 : Type'} : (@weakly_locally_connected_at _472699) = (fun _874154 : _472699 => fun _874155 : Topology _472699 => @neighbourhood_base_at _472699 _874154 (@connected_in _472699 _874155) _874155). +Proof. exact (eq_refl (@weakly_locally_connected_at _472699)). Qed. +Definition locally_connected_at {_472707 : Type'} : _472707 -> (Topology _472707) -> Prop := fun _874166 : _472707 => fun _874167 : Topology _472707 => @neighbourhood_base_at _472707 _874166 (fun u : _472707 -> Prop => (@open_in _472707 _874167 u) /\ (@connected_in _472707 _874167 u)) _874167. +Lemma locally_connected_at_def {_472707 : Type'} : (@locally_connected_at _472707) = (fun _874166 : _472707 => fun _874167 : Topology _472707 => @neighbourhood_base_at _472707 _874166 (fun u : _472707 -> Prop => (@open_in _472707 _874167 u) /\ (@connected_in _472707 _874167 u)) _874167). +Proof. exact (eq_refl (@locally_connected_at _472707)). Qed. +Definition locally_connected_space {_472727 : Type'} : (Topology _472727) -> Prop := fun _874178 : Topology _472727 => @neighbourhood_base_of _472727 (@connected_in _472727 _874178) _874178. +Lemma locally_connected_space_def {_472727 : Type'} : (@locally_connected_space _472727) = (fun _874178 : Topology _472727 => @neighbourhood_base_of _472727 (@connected_in _472727 _874178) _874178). +Proof. exact (eq_refl (@locally_connected_space _472727)). Qed. +Definition quasi_component_of {_474420 : Type'} : (Topology _474420) -> _474420 -> _474420 -> Prop := fun _875566 : Topology _474420 => fun _875567 : _474420 => fun _875568 : _474420 => (@IN _474420 _875567 (@topspace _474420 _875566)) /\ ((@IN _474420 _875568 (@topspace _474420 _875566)) /\ (forall t : _474420 -> Prop, ((@closed_in _474420 _875566 t) /\ (@open_in _474420 _875566 t)) -> (@IN _474420 _875567 t) = (@IN _474420 _875568 t))). +Lemma quasi_component_of_def {_474420 : Type'} : (@quasi_component_of _474420) = (fun _875566 : Topology _474420 => fun _875567 : _474420 => fun _875568 : _474420 => (@IN _474420 _875567 (@topspace _474420 _875566)) /\ ((@IN _474420 _875568 (@topspace _474420 _875566)) /\ (forall t : _474420 -> Prop, ((@closed_in _474420 _875566 t) /\ (@open_in _474420 _875566 t)) -> (@IN _474420 _875567 t) = (@IN _474420 _875568 t)))). +Proof. exact (eq_refl (@quasi_component_of _474420)). Qed. +Definition quasi_components_of {_474443 : Type'} : (Topology _474443) -> (_474443 -> Prop) -> Prop := fun _875587 : Topology _474443 => @GSPEC (_474443 -> Prop) (fun GEN_PVAR_1974 : _474443 -> Prop => exists x : _474443, @SETSPEC (_474443 -> Prop) GEN_PVAR_1974 (@IN _474443 x (@topspace _474443 _875587)) (@quasi_component_of _474443 _875587 x)). +Lemma quasi_components_of_def {_474443 : Type'} : (@quasi_components_of _474443) = (fun _875587 : Topology _474443 => @GSPEC (_474443 -> Prop) (fun GEN_PVAR_1974 : _474443 -> Prop => exists x : _474443, @SETSPEC (_474443 -> Prop) GEN_PVAR_1974 (@IN _474443 x (@topspace _474443 _875587)) (@quasi_component_of _474443 _875587 x))). +Proof. exact (eq_refl (@quasi_components_of _474443)). Qed. +Definition k_space {A : Type'} : (Topology A) -> Prop := fun _879736 : Topology A => forall s : A -> Prop, (@SUBSET A s (@topspace A _879736)) -> (@closed_in A _879736 s) = (forall k : A -> Prop, (@compact_in A _879736 k) -> @closed_in A (@subtopology A _879736 k) (@INTER A k s)). +Lemma k_space_def {A : Type'} : (@k_space A) = (fun _879736 : Topology A => forall s : A -> Prop, (@SUBSET A s (@topspace A _879736)) -> (@closed_in A _879736 s) = (forall k : A -> Prop, (@compact_in A _879736 k) -> @closed_in A (@subtopology A _879736 k) (@INTER A k s))). +Proof. exact (eq_refl (@k_space A)). Qed. +Definition kification {A : Type'} : (Topology A) -> Topology A := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) -> (Topology A) -> Topology A) (fun kification' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) -> (Topology A) -> Topology A => forall _883057 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))), forall top : Topology A, (kification' _883057 top) = (@topology A (@GSPEC (A -> Prop) (fun GEN_PVAR_2014 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_2014 ((@SUBSET A s (@topspace A top)) /\ (forall k : A -> Prop, (@compact_in A top k) -> @open_in A (@subtopology A top k) (@INTER A k s))) s)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))). +Lemma kification_def {A : Type'} : (@kification A) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) -> (Topology A) -> Topology A) (fun kification' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) -> (Topology A) -> Topology A => forall _883057 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))), forall top : Topology A, (kification' _883057 top) = (@topology A (@GSPEC (A -> Prop) (fun GEN_PVAR_2014 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_2014 ((@SUBSET A s (@topspace A top)) /\ (forall k : A -> Prop, (@compact_in A top k) -> @open_in A (@subtopology A top k) (@INTER A k s))) s)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))). +Proof. exact (eq_refl (@kification A)). Qed. +Definition alexandroff_compactification {A : Type'} : (Topology A) -> Topology (Datatypes.sum A unit) := fun _884542 : Topology A => @topology (Datatypes.sum A unit) (@UNION ((Datatypes.sum A unit) -> Prop) (@GSPEC ((Datatypes.sum A unit) -> Prop) (fun GEN_PVAR_2016 : (Datatypes.sum A unit) -> Prop => exists u : A -> Prop, @SETSPEC ((Datatypes.sum A unit) -> Prop) GEN_PVAR_2016 (@open_in A _884542 u) (@IMAGE A (Datatypes.sum A unit) (@inl A unit) u))) (@GSPEC ((Datatypes.sum A unit) -> Prop) (fun GEN_PVAR_2017 : (Datatypes.sum A unit) -> Prop => exists c : A -> Prop, @SETSPEC ((Datatypes.sum A unit) -> Prop) GEN_PVAR_2017 ((@compact_in A _884542 c) /\ (@closed_in A _884542 c)) (@INSERT (Datatypes.sum A unit) (@inr A unit tt) (@IMAGE A (Datatypes.sum A unit) (@inl A unit) (@DIFF A (@topspace A _884542) c)))))). +Lemma alexandroff_compactification_def {A : Type'} : (@alexandroff_compactification A) = (fun _884542 : Topology A => @topology (Datatypes.sum A unit) (@UNION ((Datatypes.sum A unit) -> Prop) (@GSPEC ((Datatypes.sum A unit) -> Prop) (fun GEN_PVAR_2016 : (Datatypes.sum A unit) -> Prop => exists u : A -> Prop, @SETSPEC ((Datatypes.sum A unit) -> Prop) GEN_PVAR_2016 (@open_in A _884542 u) (@IMAGE A (Datatypes.sum A unit) (@inl A unit) u))) (@GSPEC ((Datatypes.sum A unit) -> Prop) (fun GEN_PVAR_2017 : (Datatypes.sum A unit) -> Prop => exists c : A -> Prop, @SETSPEC ((Datatypes.sum A unit) -> Prop) GEN_PVAR_2017 ((@compact_in A _884542 c) /\ (@closed_in A _884542 c)) (@INSERT (Datatypes.sum A unit) (@inr A unit tt) (@IMAGE A (Datatypes.sum A unit) (@inl A unit) (@DIFF A (@topspace A _884542) c))))))). +Proof. exact (eq_refl (@alexandroff_compactification A)). Qed. +Definition homotopic_with {_485959 _485962 : Type'} : ((_485962 -> _485959) -> Prop) -> (prod (Topology _485962) (Topology _485959)) -> (_485962 -> _485959) -> (_485962 -> _485959) -> Prop := fun _894008 : (_485962 -> _485959) -> Prop => fun _894009 : prod (Topology _485962) (Topology _485959) => fun _894010 : _485962 -> _485959 => fun _894011 : _485962 -> _485959 => exists h : (prod R _485962) -> _485959, (@continuous_map (prod R _485962) _485959 (@pair (Topology (prod R _485962)) (Topology _485959) (@prod_topology R _485962 (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) (@fst (Topology _485962) (Topology _485959) _894009)) (@snd (Topology _485962) (Topology _485959) _894009)) h) /\ ((forall x : _485962, (h (@pair R _485962 (R_of_N (NUMERAL 0%N)) x)) = (_894010 x)) /\ ((forall x : _485962, (h (@pair R _485962 (R_of_N (NUMERAL (BIT1 0%N))) x)) = (_894011 x)) /\ (forall t : R, (@IN R t (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) -> _894008 (fun x : _485962 => h (@pair R _485962 t x))))). +Lemma homotopic_with_def {_485959 _485962 : Type'} : (@homotopic_with _485959 _485962) = (fun _894008 : (_485962 -> _485959) -> Prop => fun _894009 : prod (Topology _485962) (Topology _485959) => fun _894010 : _485962 -> _485959 => fun _894011 : _485962 -> _485959 => exists h : (prod R _485962) -> _485959, (@continuous_map (prod R _485962) _485959 (@pair (Topology (prod R _485962)) (Topology _485959) (@prod_topology R _485962 (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) (@fst (Topology _485962) (Topology _485959) _894009)) (@snd (Topology _485962) (Topology _485959) _894009)) h) /\ ((forall x : _485962, (h (@pair R _485962 (R_of_N (NUMERAL 0%N)) x)) = (_894010 x)) /\ ((forall x : _485962, (h (@pair R _485962 (R_of_N (NUMERAL (BIT1 0%N))) x)) = (_894011 x)) /\ (forall t : R, (@IN R t (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) -> _894008 (fun x : _485962 => h (@pair R _485962 t x)))))). +Proof. exact (eq_refl (@homotopic_with _485959 _485962)). Qed. +Definition homotopy_equivalent_space {A B : Type'} : (Topology A) -> (Topology B) -> Prop := fun _894877 : Topology A => fun _894878 : Topology B => exists f : A -> B, exists g : B -> A, (@continuous_map A B (@pair (Topology A) (Topology B) _894877 _894878) f) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) _894878 _894877) g) /\ ((@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) _894877 _894877) (@o A B A g f) (@I A)) /\ (@homotopic_with B B (fun x : B -> B => True) (@pair (Topology B) (Topology B) _894878 _894878) (@o B A B f g) (@I B)))). +Lemma homotopy_equivalent_space_def {A B : Type'} : (@homotopy_equivalent_space A B) = (fun _894877 : Topology A => fun _894878 : Topology B => exists f : A -> B, exists g : B -> A, (@continuous_map A B (@pair (Topology A) (Topology B) _894877 _894878) f) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) _894878 _894877) g) /\ ((@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) _894877 _894877) (@o A B A g f) (@I A)) /\ (@homotopic_with B B (fun x : B -> B => True) (@pair (Topology B) (Topology B) _894878 _894878) (@o B A B f g) (@I B))))). +Proof. exact (eq_refl (@homotopy_equivalent_space A B)). Qed. +Definition contractible_space {A : Type'} : (Topology A) -> Prop := fun _895625 : Topology A => exists a : A, @homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) _895625 _895625) (fun x : A => x) (fun x : A => a). +Lemma contractible_space_def {A : Type'} : (@contractible_space A) = (fun _895625 : Topology A => exists a : A, @homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) _895625 _895625) (fun x : A => x) (fun x : A => a)). +Proof. exact (eq_refl (@contractible_space A)). Qed. +Definition completely_metrizable_space {_489462 : Type'} : (Topology _489462) -> Prop := fun _896837 : Topology _489462 => exists m : Metric _489462, (@mcomplete _489462 m) /\ (_896837 = (@mtopology _489462 m)). +Lemma completely_metrizable_space_def {_489462 : Type'} : (@completely_metrizable_space _489462) = (fun _896837 : Topology _489462 => exists m : Metric _489462, (@mcomplete _489462 m) /\ (_896837 = (@mtopology _489462 m))). +Proof. exact (eq_refl (@completely_metrizable_space _489462)). Qed. +Definition prod_metric {A B : Type'} : (Metric A) -> (Metric B) -> Metric (prod A B) := fun _900571 : Metric A => fun _900572 : Metric B => @metric (prod A B) (@pair ((prod A B) -> Prop) ((prod (prod A B) (prod A B)) -> R) (@CROSS A B (@mspace A _900571) (@mspace B _900572)) (@GABS ((prod (prod A B) (prod A B)) -> R) (fun f : (prod (prod A B) (prod A B)) -> R => forall x : A, forall y : B, forall x' : A, forall y' : B, @GEQ R (f (@pair (prod A B) (prod A B) (@pair A B x y) (@pair A B x' y'))) (sqrt (Rplus (real_pow (@mdist A _900571 (@pair A A x x')) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@mdist B _900572 (@pair B B y y')) (NUMERAL (BIT0 (BIT1 0%N))))))))). +Lemma prod_metric_def {A B : Type'} : (@prod_metric A B) = (fun _900571 : Metric A => fun _900572 : Metric B => @metric (prod A B) (@pair ((prod A B) -> Prop) ((prod (prod A B) (prod A B)) -> R) (@CROSS A B (@mspace A _900571) (@mspace B _900572)) (@GABS ((prod (prod A B) (prod A B)) -> R) (fun f : (prod (prod A B) (prod A B)) -> R => forall x : A, forall y : B, forall x' : A, forall y' : B, @GEQ R (f (@pair (prod A B) (prod A B) (@pair A B x y) (@pair A B x' y'))) (sqrt (Rplus (real_pow (@mdist A _900571 (@pair A A x x')) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@mdist B _900572 (@pair B B y y')) (NUMERAL (BIT0 (BIT1 0%N)))))))))). +Proof. exact (eq_refl (@prod_metric A B)). Qed. +Definition lipschitz_continuous_map {_491946 _491958 : Type'} : (prod (Metric _491958) (Metric _491946)) -> (_491958 -> _491946) -> Prop := fun _904328 : prod (Metric _491958) (Metric _491946) => fun _904329 : _491958 -> _491946 => (@SUBSET _491946 (@IMAGE _491958 _491946 _904329 (@mspace _491958 (@fst (Metric _491958) (Metric _491946) _904328))) (@mspace _491946 (@snd (Metric _491958) (Metric _491946) _904328))) /\ (exists B : R, forall x : _491958, forall y : _491958, ((@IN _491958 x (@mspace _491958 (@fst (Metric _491958) (Metric _491946) _904328))) /\ (@IN _491958 y (@mspace _491958 (@fst (Metric _491958) (Metric _491946) _904328)))) -> Rle (@mdist _491946 (@snd (Metric _491958) (Metric _491946) _904328) (@pair _491946 _491946 (_904329 x) (_904329 y))) (Rmult B (@mdist _491958 (@fst (Metric _491958) (Metric _491946) _904328) (@pair _491958 _491958 x y)))). +Lemma lipschitz_continuous_map_def {_491946 _491958 : Type'} : (@lipschitz_continuous_map _491946 _491958) = (fun _904328 : prod (Metric _491958) (Metric _491946) => fun _904329 : _491958 -> _491946 => (@SUBSET _491946 (@IMAGE _491958 _491946 _904329 (@mspace _491958 (@fst (Metric _491958) (Metric _491946) _904328))) (@mspace _491946 (@snd (Metric _491958) (Metric _491946) _904328))) /\ (exists B : R, forall x : _491958, forall y : _491958, ((@IN _491958 x (@mspace _491958 (@fst (Metric _491958) (Metric _491946) _904328))) /\ (@IN _491958 y (@mspace _491958 (@fst (Metric _491958) (Metric _491946) _904328)))) -> Rle (@mdist _491946 (@snd (Metric _491958) (Metric _491946) _904328) (@pair _491946 _491946 (_904329 x) (_904329 y))) (Rmult B (@mdist _491958 (@fst (Metric _491958) (Metric _491946) _904328) (@pair _491958 _491958 x y))))). +Proof. exact (eq_refl (@lipschitz_continuous_map _491946 _491958)). Qed. +Definition uniformly_continuous_map {_492508 _492513 : Type'} : (prod (Metric _492513) (Metric _492508)) -> (_492513 -> _492508) -> Prop := fun _904856 : prod (Metric _492513) (Metric _492508) => fun _904857 : _492513 -> _492508 => (@SUBSET _492508 (@IMAGE _492513 _492508 _904857 (@mspace _492513 (@fst (Metric _492513) (Metric _492508) _904856))) (@mspace _492508 (@snd (Metric _492513) (Metric _492508) _904856))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : _492513, forall x' : _492513, ((@IN _492513 x (@mspace _492513 (@fst (Metric _492513) (Metric _492508) _904856))) /\ ((@IN _492513 x' (@mspace _492513 (@fst (Metric _492513) (Metric _492508) _904856))) /\ (Rlt (@mdist _492513 (@fst (Metric _492513) (Metric _492508) _904856) (@pair _492513 _492513 x' x)) d))) -> Rlt (@mdist _492508 (@snd (Metric _492513) (Metric _492508) _904856) (@pair _492508 _492508 (_904857 x') (_904857 x))) e)). +Lemma uniformly_continuous_map_def {_492508 _492513 : Type'} : (@uniformly_continuous_map _492508 _492513) = (fun _904856 : prod (Metric _492513) (Metric _492508) => fun _904857 : _492513 -> _492508 => (@SUBSET _492508 (@IMAGE _492513 _492508 _904857 (@mspace _492513 (@fst (Metric _492513) (Metric _492508) _904856))) (@mspace _492508 (@snd (Metric _492513) (Metric _492508) _904856))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : _492513, forall x' : _492513, ((@IN _492513 x (@mspace _492513 (@fst (Metric _492513) (Metric _492508) _904856))) /\ ((@IN _492513 x' (@mspace _492513 (@fst (Metric _492513) (Metric _492508) _904856))) /\ (Rlt (@mdist _492513 (@fst (Metric _492513) (Metric _492508) _904856) (@pair _492513 _492513 x' x)) d))) -> Rlt (@mdist _492508 (@snd (Metric _492513) (Metric _492508) _904856) (@pair _492508 _492508 (_904857 x') (_904857 x))) e))). +Proof. exact (eq_refl (@uniformly_continuous_map _492508 _492513)). Qed. +Definition cauchy_continuous_map {_493261 _493269 : Type'} : (prod (Metric _493261) (Metric _493269)) -> (_493261 -> _493269) -> Prop := fun _905551 : prod (Metric _493261) (Metric _493269) => fun _905552 : _493261 -> _493269 => forall x : N -> _493261, (@cauchy_in _493261 (@fst (Metric _493261) (Metric _493269) _905551) x) -> @cauchy_in _493269 (@snd (Metric _493261) (Metric _493269) _905551) (@o N _493261 _493269 _905552 x). +Lemma cauchy_continuous_map_def {_493261 _493269 : Type'} : (@cauchy_continuous_map _493261 _493269) = (fun _905551 : prod (Metric _493261) (Metric _493269) => fun _905552 : _493261 -> _493269 => forall x : N -> _493261, (@cauchy_in _493261 (@fst (Metric _493261) (Metric _493269) _905551) x) -> @cauchy_in _493269 (@snd (Metric _493261) (Metric _493269) _905551) (@o N _493261 _493269 _905552 x)). +Proof. exact (eq_refl (@cauchy_continuous_map _493261 _493269)). Qed. +Definition capped_metric {A : Type'} : R -> (Metric A) -> Metric A := fun _912035 : R => fun _912036 : Metric A => @COND (Metric A) (Rle _912035 (R_of_N (NUMERAL 0%N))) _912036 (@metric A (@pair (A -> Prop) ((prod A A) -> R) (@mspace A _912036) (@GABS ((prod A A) -> R) (fun f : (prod A A) -> R => forall x : A, forall y : A, @GEQ R (f (@pair A A x y)) (Rmin _912035 (@mdist A _912036 (@pair A A x y))))))). +Lemma capped_metric_def {A : Type'} : (@capped_metric A) = (fun _912035 : R => fun _912036 : Metric A => @COND (Metric A) (Rle _912035 (R_of_N (NUMERAL 0%N))) _912036 (@metric A (@pair (A -> Prop) ((prod A A) -> R) (@mspace A _912036) (@GABS ((prod A A) -> R) (fun f : (prod A A) -> R => forall x : A, forall y : A, @GEQ R (f (@pair A A x y)) (Rmin _912035 (@mdist A _912036 (@pair A A x y)))))))). +Proof. exact (eq_refl (@capped_metric A)). Qed. +Definition euclidean_space : N -> Topology (N -> R) := fun _933703 : N => @subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (@GSPEC (N -> R) (fun GEN_PVAR_2056 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2056 (forall i : N, (~ (@IN N i (dotdot (NUMERAL (BIT1 0%N)) _933703))) -> (x i) = (R_of_N (NUMERAL 0%N))) x)). +Lemma euclidean_space_def : euclidean_space = (fun _933703 : N => @subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (@GSPEC (N -> R) (fun GEN_PVAR_2056 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2056 (forall i : N, (~ (@IN N i (dotdot (NUMERAL (BIT1 0%N)) _933703))) -> (x i) = (R_of_N (NUMERAL 0%N))) x))). +Proof. exact (eq_refl euclidean_space). Qed. +Definition nsphere : N -> Topology (N -> R) := fun _933922 : N => @subtopology (N -> R) (euclidean_space (N.add _933922 (NUMERAL (BIT1 0%N)))) (@GSPEC (N -> R) (fun GEN_PVAR_2062 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2062 ((@sum N (dotdot (NUMERAL (BIT1 0%N)) (N.add _933922 (NUMERAL (BIT1 0%N)))) (fun i : N => real_pow (x i) (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N)))) x)). +Lemma nsphere_def : nsphere = (fun _933922 : N => @subtopology (N -> R) (euclidean_space (N.add _933922 (NUMERAL (BIT1 0%N)))) (@GSPEC (N -> R) (fun GEN_PVAR_2062 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2062 ((@sum N (dotdot (NUMERAL (BIT1 0%N)) (N.add _933922 (NUMERAL (BIT1 0%N)))) (fun i : N => real_pow (x i) (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N)))) x))). +Proof. exact (eq_refl nsphere). Qed. +Definition funspace {A B : Type'} : (A -> Prop) -> (Metric B) -> Metric (A -> B) := fun _936199 : A -> Prop => fun _936200 : Metric B => @metric (A -> B) (@pair ((A -> B) -> Prop) ((prod (A -> B) (A -> B)) -> R) (@GSPEC (A -> B) (fun GEN_PVAR_2068 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_2068 ((forall x : A, (@IN A x _936199) -> @IN B (f x) (@mspace B _936200)) /\ ((@IN (A -> B) f (@EXTENSIONAL A B _936199)) /\ (@mbounded B _936200 (@IMAGE A B f _936199)))) f)) (@GABS ((prod (A -> B) (A -> B)) -> R) (fun f : (prod (A -> B) (A -> B)) -> R => forall f' : A -> B, forall g : A -> B, @GEQ R (f (@pair (A -> B) (A -> B) f' g)) (@COND R (_936199 = (@EMPTY A)) (R_of_N (NUMERAL 0%N)) (sup (@GSPEC R (fun GEN_PVAR_2069 : R => exists x : A, @SETSPEC R GEN_PVAR_2069 (@IN A x _936199) (@mdist B _936200 (@pair B B (f' x) (g x)))))))))). +Lemma funspace_def {A B : Type'} : (@funspace A B) = (fun _936199 : A -> Prop => fun _936200 : Metric B => @metric (A -> B) (@pair ((A -> B) -> Prop) ((prod (A -> B) (A -> B)) -> R) (@GSPEC (A -> B) (fun GEN_PVAR_2068 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_2068 ((forall x : A, (@IN A x _936199) -> @IN B (f x) (@mspace B _936200)) /\ ((@IN (A -> B) f (@EXTENSIONAL A B _936199)) /\ (@mbounded B _936200 (@IMAGE A B f _936199)))) f)) (@GABS ((prod (A -> B) (A -> B)) -> R) (fun f : (prod (A -> B) (A -> B)) -> R => forall f' : A -> B, forall g : A -> B, @GEQ R (f (@pair (A -> B) (A -> B) f' g)) (@COND R (_936199 = (@EMPTY A)) (R_of_N (NUMERAL 0%N)) (sup (@GSPEC R (fun GEN_PVAR_2069 : R => exists x : A, @SETSPEC R GEN_PVAR_2069 (@IN A x _936199) (@mdist B _936200 (@pair B B (f' x) (g x))))))))))). +Proof. exact (eq_refl (@funspace A B)). Qed. +Definition cfunspace {A B : Type'} : (Topology A) -> (Metric B) -> Metric (A -> B) := fun _937968 : Topology A => fun _937969 : Metric B => @submetric (A -> B) (@funspace A B (@topspace A _937968) _937969) (@GSPEC (A -> B) (fun GEN_PVAR_2081 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_2081 (@continuous_map A B (@pair (Topology A) (Topology B) _937968 (@mtopology B _937969)) f) f)). +Lemma cfunspace_def {A B : Type'} : (@cfunspace A B) = (fun _937968 : Topology A => fun _937969 : Metric B => @submetric (A -> B) (@funspace A B (@topspace A _937968) _937969) (@GSPEC (A -> B) (fun GEN_PVAR_2081 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_2081 (@continuous_map A B (@pair (Topology A) (Topology B) _937968 (@mtopology B _937969)) f) f))). +Proof. exact (eq_refl (@cfunspace A B)). Qed. +Definition dimension_le {A : Type'} : (Topology A) -> Z -> Prop := fun a0 : Topology A => fun a1 : Z => forall dimension_le' : (Topology A) -> Z -> Prop, (forall a0' : Topology A, forall a1' : Z, ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) a1') /\ (forall v : A -> Prop, forall a : A, ((@open_in A a0' v) /\ (@IN A a v)) -> exists u : A -> Prop, (@IN A a u) /\ ((@SUBSET A u v) /\ ((@open_in A a0' u) /\ (dimension_le' (@subtopology A a0' (@frontier_of A a0' u)) (int_sub a1' (Z_of_N (NUMERAL (BIT1 0%N))))))))) -> dimension_le' a0' a1') -> dimension_le' a0 a1. +Lemma dimension_le_def {A : Type'} : (@dimension_le A) = (fun a0 : Topology A => fun a1 : Z => forall dimension_le' : (Topology A) -> Z -> Prop, (forall a0' : Topology A, forall a1' : Z, ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) a1') /\ (forall v : A -> Prop, forall a : A, ((@open_in A a0' v) /\ (@IN A a v)) -> exists u : A -> Prop, (@IN A a u) /\ ((@SUBSET A u v) /\ ((@open_in A a0' u) /\ (dimension_le' (@subtopology A a0' (@frontier_of A a0' u)) (int_sub a1' (Z_of_N (NUMERAL (BIT1 0%N))))))))) -> dimension_le' a0' a1') -> dimension_le' a0 a1). +Proof. exact (eq_refl (@dimension_le A)). Qed. +Definition standard_simplex : N -> (N -> R) -> Prop := fun _984987 : N => @GSPEC (N -> R) (fun GEN_PVAR_2117 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2117 ((forall i : N, (Rle (R_of_N (NUMERAL 0%N)) (x i)) /\ (Rle (x i) (R_of_N (NUMERAL (BIT1 0%N))))) /\ ((forall i : N, (N.lt _984987 i) -> (x i) = (R_of_N (NUMERAL 0%N))) /\ ((@sum N (dotdot (NUMERAL 0%N) _984987) x) = (R_of_N (NUMERAL (BIT1 0%N)))))) x). +Lemma standard_simplex_def : standard_simplex = (fun _984987 : N => @GSPEC (N -> R) (fun GEN_PVAR_2117 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2117 ((forall i : N, (Rle (R_of_N (NUMERAL 0%N)) (x i)) /\ (Rle (x i) (R_of_N (NUMERAL (BIT1 0%N))))) /\ ((forall i : N, (N.lt _984987 i) -> (x i) = (R_of_N (NUMERAL 0%N))) /\ ((@sum N (dotdot (NUMERAL 0%N) _984987) x) = (R_of_N (NUMERAL (BIT1 0%N)))))) x)). +Proof. exact (eq_refl standard_simplex). Qed. +Definition simplicial_face : N -> (N -> R) -> N -> R := fun _985714 : N => fun _985715 : N -> R => fun i : N => @COND R (N.lt i _985714) (_985715 i) (@COND R (i = _985714) (R_of_N (NUMERAL 0%N)) (_985715 (N.sub i (NUMERAL (BIT1 0%N))))). +Lemma simplicial_face_def : simplicial_face = (fun _985714 : N => fun _985715 : N -> R => fun i : N => @COND R (N.lt i _985714) (_985715 i) (@COND R (i = _985714) (R_of_N (NUMERAL 0%N)) (_985715 (N.sub i (NUMERAL (BIT1 0%N)))))). +Proof. exact (eq_refl simplicial_face). Qed. +Definition singular_simplex {A : Type'} : (prod N (Topology A)) -> ((N -> R) -> A) -> Prop := fun _985816 : prod N (Topology A) => fun _985817 : (N -> R) -> A => (@continuous_map (N -> R) A (@pair (Topology (N -> R)) (Topology A) (@subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (standard_simplex (@fst N (Topology A) _985816))) (@snd N (Topology A) _985816)) _985817) /\ (@EXTENSIONAL (N -> R) A (standard_simplex (@fst N (Topology A) _985816)) _985817). +Lemma singular_simplex_def {A : Type'} : (@singular_simplex A) = (fun _985816 : prod N (Topology A) => fun _985817 : (N -> R) -> A => (@continuous_map (N -> R) A (@pair (Topology (N -> R)) (Topology A) (@subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (standard_simplex (@fst N (Topology A) _985816))) (@snd N (Topology A) _985816)) _985817) /\ (@EXTENSIONAL (N -> R) A (standard_simplex (@fst N (Topology A) _985816)) _985817)). +Proof. exact (eq_refl (@singular_simplex A)). Qed. +Definition singular_face {_521279 : Type'} : N -> N -> ((N -> R) -> _521279) -> (N -> R) -> _521279 := fun _985963 : N => fun _985964 : N => fun _985965 : (N -> R) -> _521279 => @RESTRICTION (N -> R) _521279 (standard_simplex (N.sub _985963 (NUMERAL (BIT1 0%N)))) (@o (N -> R) (N -> R) _521279 _985965 (simplicial_face _985964)). +Lemma singular_face_def {_521279 : Type'} : (@singular_face _521279) = (fun _985963 : N => fun _985964 : N => fun _985965 : (N -> R) -> _521279 => @RESTRICTION (N -> R) _521279 (standard_simplex (N.sub _985963 (NUMERAL (BIT1 0%N)))) (@o (N -> R) (N -> R) _521279 _985965 (simplicial_face _985964))). +Proof. exact (eq_refl (@singular_face _521279)). Qed. +Definition singular_chain {A : Type'} : (prod N (Topology A)) -> (frag ((N -> R) -> A)) -> Prop := fun _985986 : prod N (Topology A) => fun _985987 : frag ((N -> R) -> A) => @SUBSET ((N -> R) -> A) (@frag_support ((N -> R) -> A) _985987) (@singular_simplex A (@pair N (Topology A) (@fst N (Topology A) _985986) (@snd N (Topology A) _985986))). +Lemma singular_chain_def {A : Type'} : (@singular_chain A) = (fun _985986 : prod N (Topology A) => fun _985987 : frag ((N -> R) -> A) => @SUBSET ((N -> R) -> A) (@frag_support ((N -> R) -> A) _985987) (@singular_simplex A (@pair N (Topology A) (@fst N (Topology A) _985986) (@snd N (Topology A) _985986)))). +Proof. exact (eq_refl (@singular_chain A)). Qed. +Definition chain_boundary {A : Type'} : N -> (frag ((N -> R) -> A)) -> frag ((N -> R) -> A) := fun _986240 : N => fun _986241 : frag ((N -> R) -> A) => @COND (frag ((N -> R) -> A)) (_986240 = (NUMERAL 0%N)) (@frag_0 ((N -> R) -> A)) (@frag_extend ((N -> R) -> A) ((N -> R) -> A) (fun f : (N -> R) -> A => @iterate N (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) (dotdot (NUMERAL 0%N) _986240) (fun k : N => @frag_cmul ((N -> R) -> A) (int_pow (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) k) (@frag_of ((N -> R) -> A) (@singular_face A _986240 k f)))) _986241). +Lemma chain_boundary_def {A : Type'} : (@chain_boundary A) = (fun _986240 : N => fun _986241 : frag ((N -> R) -> A) => @COND (frag ((N -> R) -> A)) (_986240 = (NUMERAL 0%N)) (@frag_0 ((N -> R) -> A)) (@frag_extend ((N -> R) -> A) ((N -> R) -> A) (fun f : (N -> R) -> A => @iterate N (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) (dotdot (NUMERAL 0%N) _986240) (fun k : N => @frag_cmul ((N -> R) -> A) (int_pow (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) k) (@frag_of ((N -> R) -> A) (@singular_face A _986240 k f)))) _986241)). +Proof. exact (eq_refl (@chain_boundary A)). Qed. +Definition mod_subset {_522237 : Type'} : (prod N (Topology _522237)) -> (frag ((N -> R) -> _522237)) -> (frag ((N -> R) -> _522237)) -> Prop := fun _986341 : prod N (Topology _522237) => fun _986342 : frag ((N -> R) -> _522237) => fun _986343 : frag ((N -> R) -> _522237) => @singular_chain _522237 (@pair N (Topology _522237) (@fst N (Topology _522237) _986341) (@snd N (Topology _522237) _986341)) (@frag_sub ((N -> R) -> _522237) _986342 _986343). +Lemma mod_subset_def {_522237 : Type'} : (@mod_subset _522237) = (fun _986341 : prod N (Topology _522237) => fun _986342 : frag ((N -> R) -> _522237) => fun _986343 : frag ((N -> R) -> _522237) => @singular_chain _522237 (@pair N (Topology _522237) (@fst N (Topology _522237) _986341) (@snd N (Topology _522237) _986341)) (@frag_sub ((N -> R) -> _522237) _986342 _986343)). +Proof. exact (eq_refl (@mod_subset _522237)). Qed. +Definition singular_relcycle {_522468 : Type'} : (prod N (prod (Topology _522468) (_522468 -> Prop))) -> (frag ((N -> R) -> _522468)) -> Prop := fun _986368 : prod N (prod (Topology _522468) (_522468 -> Prop)) => fun _986369 : frag ((N -> R) -> _522468) => (@singular_chain _522468 (@pair N (Topology _522468) (@fst N (prod (Topology _522468) (_522468 -> Prop)) _986368) (@fst (Topology _522468) (_522468 -> Prop) (@snd N (prod (Topology _522468) (_522468 -> Prop)) _986368))) _986369) /\ (@eq2 (frag ((N -> R) -> _522468)) (@chain_boundary _522468 (@fst N (prod (Topology _522468) (_522468 -> Prop)) _986368) _986369) (@frag_0 ((N -> R) -> _522468)) (@mod_subset _522468 (@pair N (Topology _522468) (N.sub (@fst N (prod (Topology _522468) (_522468 -> Prop)) _986368) (NUMERAL (BIT1 0%N))) (@subtopology _522468 (@fst (Topology _522468) (_522468 -> Prop) (@snd N (prod (Topology _522468) (_522468 -> Prop)) _986368)) (@snd (Topology _522468) (_522468 -> Prop) (@snd N (prod (Topology _522468) (_522468 -> Prop)) _986368)))))). +Lemma singular_relcycle_def {_522468 : Type'} : (@singular_relcycle _522468) = (fun _986368 : prod N (prod (Topology _522468) (_522468 -> Prop)) => fun _986369 : frag ((N -> R) -> _522468) => (@singular_chain _522468 (@pair N (Topology _522468) (@fst N (prod (Topology _522468) (_522468 -> Prop)) _986368) (@fst (Topology _522468) (_522468 -> Prop) (@snd N (prod (Topology _522468) (_522468 -> Prop)) _986368))) _986369) /\ (@eq2 (frag ((N -> R) -> _522468)) (@chain_boundary _522468 (@fst N (prod (Topology _522468) (_522468 -> Prop)) _986368) _986369) (@frag_0 ((N -> R) -> _522468)) (@mod_subset _522468 (@pair N (Topology _522468) (N.sub (@fst N (prod (Topology _522468) (_522468 -> Prop)) _986368) (NUMERAL (BIT1 0%N))) (@subtopology _522468 (@fst (Topology _522468) (_522468 -> Prop) (@snd N (prod (Topology _522468) (_522468 -> Prop)) _986368)) (@snd (Topology _522468) (_522468 -> Prop) (@snd N (prod (Topology _522468) (_522468 -> Prop)) _986368))))))). +Proof. exact (eq_refl (@singular_relcycle _522468)). Qed. +Definition singular_relboundary {_523075 : Type'} : (prod N (prod (Topology _523075) (_523075 -> Prop))) -> (frag ((N -> R) -> _523075)) -> Prop := fun _986506 : prod N (prod (Topology _523075) (_523075 -> Prop)) => fun _986507 : frag ((N -> R) -> _523075) => exists d : frag ((N -> R) -> _523075), (@singular_chain _523075 (@pair N (Topology _523075) (N.add (@fst N (prod (Topology _523075) (_523075 -> Prop)) _986506) (NUMERAL (BIT1 0%N))) (@fst (Topology _523075) (_523075 -> Prop) (@snd N (prod (Topology _523075) (_523075 -> Prop)) _986506))) d) /\ (@eq2 (frag ((N -> R) -> _523075)) (@chain_boundary _523075 (N.add (@fst N (prod (Topology _523075) (_523075 -> Prop)) _986506) (NUMERAL (BIT1 0%N))) d) _986507 (@mod_subset _523075 (@pair N (Topology _523075) (@fst N (prod (Topology _523075) (_523075 -> Prop)) _986506) (@subtopology _523075 (@fst (Topology _523075) (_523075 -> Prop) (@snd N (prod (Topology _523075) (_523075 -> Prop)) _986506)) (@snd (Topology _523075) (_523075 -> Prop) (@snd N (prod (Topology _523075) (_523075 -> Prop)) _986506)))))). +Lemma singular_relboundary_def {_523075 : Type'} : (@singular_relboundary _523075) = (fun _986506 : prod N (prod (Topology _523075) (_523075 -> Prop)) => fun _986507 : frag ((N -> R) -> _523075) => exists d : frag ((N -> R) -> _523075), (@singular_chain _523075 (@pair N (Topology _523075) (N.add (@fst N (prod (Topology _523075) (_523075 -> Prop)) _986506) (NUMERAL (BIT1 0%N))) (@fst (Topology _523075) (_523075 -> Prop) (@snd N (prod (Topology _523075) (_523075 -> Prop)) _986506))) d) /\ (@eq2 (frag ((N -> R) -> _523075)) (@chain_boundary _523075 (N.add (@fst N (prod (Topology _523075) (_523075 -> Prop)) _986506) (NUMERAL (BIT1 0%N))) d) _986507 (@mod_subset _523075 (@pair N (Topology _523075) (@fst N (prod (Topology _523075) (_523075 -> Prop)) _986506) (@subtopology _523075 (@fst (Topology _523075) (_523075 -> Prop) (@snd N (prod (Topology _523075) (_523075 -> Prop)) _986506)) (@snd (Topology _523075) (_523075 -> Prop) (@snd N (prod (Topology _523075) (_523075 -> Prop)) _986506))))))). +Proof. exact (eq_refl (@singular_relboundary _523075)). Qed. +Definition homologous_rel {A : Type'} : (prod N (prod (Topology A) (A -> Prop))) -> (frag ((N -> R) -> A)) -> (frag ((N -> R) -> A)) -> Prop := fun _986886 : prod N (prod (Topology A) (A -> Prop)) => fun _986887 : frag ((N -> R) -> A) => fun _986888 : frag ((N -> R) -> A) => @singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) (@fst N (prod (Topology A) (A -> Prop)) _986886) (@pair (Topology A) (A -> Prop) (@fst (Topology A) (A -> Prop) (@snd N (prod (Topology A) (A -> Prop)) _986886)) (@snd (Topology A) (A -> Prop) (@snd N (prod (Topology A) (A -> Prop)) _986886)))) (@frag_sub ((N -> R) -> A) _986887 _986888). +Lemma homologous_rel_def {A : Type'} : (@homologous_rel A) = (fun _986886 : prod N (prod (Topology A) (A -> Prop)) => fun _986887 : frag ((N -> R) -> A) => fun _986888 : frag ((N -> R) -> A) => @singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) (@fst N (prod (Topology A) (A -> Prop)) _986886) (@pair (Topology A) (A -> Prop) (@fst (Topology A) (A -> Prop) (@snd N (prod (Topology A) (A -> Prop)) _986886)) (@snd (Topology A) (A -> Prop) (@snd N (prod (Topology A) (A -> Prop)) _986886)))) (@frag_sub ((N -> R) -> A) _986887 _986888)). +Proof. exact (eq_refl (@homologous_rel A)). Qed. +Definition simplex_map {A B : Type'} : N -> (A -> B) -> ((N -> R) -> A) -> (N -> R) -> B := fun _988371 : N => fun _988372 : A -> B => fun _988373 : (N -> R) -> A => @RESTRICTION (N -> R) B (standard_simplex _988371) (@o (N -> R) A B _988372 _988373). +Lemma simplex_map_def {A B : Type'} : (@simplex_map A B) = (fun _988371 : N => fun _988372 : A -> B => fun _988373 : (N -> R) -> A => @RESTRICTION (N -> R) B (standard_simplex _988371) (@o (N -> R) A B _988372 _988373)). +Proof. exact (eq_refl (@simplex_map A B)). Qed. +Definition chain_map {A B : Type'} : N -> (A -> B) -> (frag ((N -> R) -> A)) -> frag ((N -> R) -> B) := fun _988811 : N => fun _988812 : A -> B => fun _988813 : frag ((N -> R) -> A) => @frag_extend ((N -> R) -> A) ((N -> R) -> B) (@o ((N -> R) -> A) ((N -> R) -> B) (frag ((N -> R) -> B)) (@frag_of ((N -> R) -> B)) (@simplex_map A B _988811 _988812)) _988813. +Lemma chain_map_def {A B : Type'} : (@chain_map A B) = (fun _988811 : N => fun _988812 : A -> B => fun _988813 : frag ((N -> R) -> A) => @frag_extend ((N -> R) -> A) ((N -> R) -> B) (@o ((N -> R) -> A) ((N -> R) -> B) (frag ((N -> R) -> B)) (@frag_of ((N -> R) -> B)) (@simplex_map A B _988811 _988812)) _988813). +Proof. exact (eq_refl (@chain_map A B)). Qed. +Definition oriented_simplex : N -> (N -> N -> R) -> (N -> R) -> N -> R := fun _990052 : N => fun _990053 : N -> N -> R => @RESTRICTION (N -> R) (N -> R) (standard_simplex _990052) (fun x : N -> R => fun i : N => @sum N (dotdot (NUMERAL 0%N) _990052) (fun j : N => Rmult (_990053 j i) (x j))). +Lemma oriented_simplex_def : oriented_simplex = (fun _990052 : N => fun _990053 : N -> N -> R => @RESTRICTION (N -> R) (N -> R) (standard_simplex _990052) (fun x : N -> R => fun i : N => @sum N (dotdot (NUMERAL 0%N) _990052) (fun j : N => Rmult (_990053 j i) (x j)))). +Proof. exact (eq_refl oriented_simplex). Qed. +Definition simplicial_simplex : (prod N ((N -> R) -> Prop)) -> ((N -> R) -> N -> R) -> Prop := fun _990064 : prod N ((N -> R) -> Prop) => fun _990065 : (N -> R) -> N -> R => (@singular_simplex (N -> R) (@pair N (Topology (N -> R)) (@fst N ((N -> R) -> Prop) _990064) (@subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (@snd N ((N -> R) -> Prop) _990064))) _990065) /\ (exists l : N -> N -> R, _990065 = (oriented_simplex (@fst N ((N -> R) -> Prop) _990064) l)). +Lemma simplicial_simplex_def : simplicial_simplex = (fun _990064 : prod N ((N -> R) -> Prop) => fun _990065 : (N -> R) -> N -> R => (@singular_simplex (N -> R) (@pair N (Topology (N -> R)) (@fst N ((N -> R) -> Prop) _990064) (@subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (@snd N ((N -> R) -> Prop) _990064))) _990065) /\ (exists l : N -> N -> R, _990065 = (oriented_simplex (@fst N ((N -> R) -> Prop) _990064) l))). +Proof. exact (eq_refl simplicial_simplex). Qed. +Definition simplicial_chain : (prod N ((N -> R) -> Prop)) -> (frag ((N -> R) -> N -> R)) -> Prop := fun _990089 : prod N ((N -> R) -> Prop) => fun _990090 : frag ((N -> R) -> N -> R) => @SUBSET ((N -> R) -> N -> R) (@frag_support ((N -> R) -> N -> R) _990090) (simplicial_simplex (@pair N ((N -> R) -> Prop) (@fst N ((N -> R) -> Prop) _990089) (@snd N ((N -> R) -> Prop) _990089))). +Lemma simplicial_chain_def : simplicial_chain = (fun _990089 : prod N ((N -> R) -> Prop) => fun _990090 : frag ((N -> R) -> N -> R) => @SUBSET ((N -> R) -> N -> R) (@frag_support ((N -> R) -> N -> R) _990090) (simplicial_simplex (@pair N ((N -> R) -> Prop) (@fst N ((N -> R) -> Prop) _990089) (@snd N ((N -> R) -> Prop) _990089)))). +Proof. exact (eq_refl simplicial_chain). Qed. +Definition simplex_cone : N -> (N -> R) -> ((N -> R) -> N -> R) -> (N -> R) -> N -> R := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) -> N -> (N -> R) -> ((N -> R) -> N -> R) -> (N -> R) -> N -> R) (fun cone : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) -> N -> (N -> R) -> ((N -> R) -> N -> R) -> (N -> R) -> N -> R => forall _990310 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))), forall p : N, forall v : N -> R, forall l : N -> N -> R, (cone _990310 p v (oriented_simplex p l)) = (oriented_simplex (N.add p (NUMERAL (BIT1 0%N))) (fun i : N => @COND (N -> R) (i = (NUMERAL 0%N)) v (l (N.sub i (NUMERAL (BIT1 0%N))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))))). +Lemma simplex_cone_def : simplex_cone = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) -> N -> (N -> R) -> ((N -> R) -> N -> R) -> (N -> R) -> N -> R) (fun cone : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) -> N -> (N -> R) -> ((N -> R) -> N -> R) -> (N -> R) -> N -> R => forall _990310 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))), forall p : N, forall v : N -> R, forall l : N -> N -> R, (cone _990310 p v (oriented_simplex p l)) = (oriented_simplex (N.add p (NUMERAL (BIT1 0%N))) (fun i : N => @COND (N -> R) (i = (NUMERAL 0%N)) v (l (N.sub i (NUMERAL (BIT1 0%N))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))))). +Proof. exact (eq_refl simplex_cone). Qed. +Definition simplicial_cone : N -> (N -> R) -> (frag ((N -> R) -> N -> R)) -> frag ((N -> R) -> N -> R) := fun _990469 : N => fun _990470 : N -> R => @frag_extend ((N -> R) -> N -> R) ((N -> R) -> N -> R) (@o ((N -> R) -> N -> R) ((N -> R) -> N -> R) (frag ((N -> R) -> N -> R)) (@frag_of ((N -> R) -> N -> R)) (simplex_cone _990469 _990470)). +Lemma simplicial_cone_def : simplicial_cone = (fun _990469 : N => fun _990470 : N -> R => @frag_extend ((N -> R) -> N -> R) ((N -> R) -> N -> R) (@o ((N -> R) -> N -> R) ((N -> R) -> N -> R) (frag ((N -> R) -> N -> R)) (@frag_of ((N -> R) -> N -> R)) (simplex_cone _990469 _990470))). +Proof. exact (eq_refl simplicial_cone). Qed. +Definition simplicial_vertex : N -> ((N -> R) -> N -> R) -> N -> R := fun _990744 : N => fun _990745 : (N -> R) -> N -> R => _990745 (fun j : N => @COND R (j = _990744) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Lemma simplicial_vertex_def : simplicial_vertex = (fun _990744 : N => fun _990745 : (N -> R) -> N -> R => _990745 (fun j : N => @COND R (j = _990744) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N)))). +Proof. exact (eq_refl simplicial_vertex). Qed. +Definition simplicial_subdivision : N -> (frag ((N -> R) -> N -> R)) -> frag ((N -> R) -> N -> R) := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))) -> N -> (frag ((N -> R) -> N -> R)) -> frag ((N -> R) -> N -> R)) (fun simplicial_subdivision' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))) -> N -> (frag ((N -> R) -> N -> R)) -> frag ((N -> R) -> N -> R) => forall _990765 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))), ((simplicial_subdivision' _990765 (NUMERAL 0%N)) = (@I (frag ((N -> R) -> N -> R)))) /\ (forall p : N, (simplicial_subdivision' _990765 (N.succ p)) = (@frag_extend ((N -> R) -> N -> R) ((N -> R) -> N -> R) (fun f : (N -> R) -> N -> R => simplicial_cone p (fun i : N => Rdiv (@sum N (dotdot (NUMERAL 0%N) (N.succ p)) (fun j : N => simplicial_vertex j f i)) (Rplus (R_of_N p) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (simplicial_subdivision' _990765 p (@chain_boundary (N -> R) (N.succ p) (@frag_of ((N -> R) -> N -> R) f))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))))))))))))))). +Lemma simplicial_subdivision_def : simplicial_subdivision = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))) -> N -> (frag ((N -> R) -> N -> R)) -> frag ((N -> R) -> N -> R)) (fun simplicial_subdivision' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))) -> N -> (frag ((N -> R) -> N -> R)) -> frag ((N -> R) -> N -> R) => forall _990765 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))), ((simplicial_subdivision' _990765 (NUMERAL 0%N)) = (@I (frag ((N -> R) -> N -> R)))) /\ (forall p : N, (simplicial_subdivision' _990765 (N.succ p)) = (@frag_extend ((N -> R) -> N -> R) ((N -> R) -> N -> R) (fun f : (N -> R) -> N -> R => simplicial_cone p (fun i : N => Rdiv (@sum N (dotdot (NUMERAL 0%N) (N.succ p)) (fun j : N => simplicial_vertex j f i)) (Rplus (R_of_N p) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (simplicial_subdivision' _990765 p (@chain_boundary (N -> R) (N.succ p) (@frag_of ((N -> R) -> N -> R) f))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))))))))))))))). +Proof. exact (eq_refl simplicial_subdivision). Qed. +Definition singular_subdivision {_536613 : Type'} : N -> (frag ((N -> R) -> _536613)) -> frag ((N -> R) -> _536613) := fun _991670 : N => @frag_extend ((N -> R) -> _536613) ((N -> R) -> _536613) (fun f : (N -> R) -> _536613 => @chain_map (N -> R) _536613 _991670 f (simplicial_subdivision _991670 (@frag_of ((N -> R) -> N -> R) (@RESTRICTION (N -> R) (N -> R) (standard_simplex _991670) (@I (N -> R)))))). +Lemma singular_subdivision_def {_536613 : Type'} : (@singular_subdivision _536613) = (fun _991670 : N => @frag_extend ((N -> R) -> _536613) ((N -> R) -> _536613) (fun f : (N -> R) -> _536613 => @chain_map (N -> R) _536613 _991670 f (simplicial_subdivision _991670 (@frag_of ((N -> R) -> N -> R) (@RESTRICTION (N -> R) (N -> R) (standard_simplex _991670) (@I (N -> R))))))). +Proof. exact (eq_refl (@singular_subdivision _536613)). Qed. +Definition chain_group {A : Type'} : (prod N (Topology A)) -> Group (frag ((N -> R) -> A)) := fun _999613 : prod N (Topology A) => @free_abelian_group ((N -> R) -> A) (@singular_simplex A (@pair N (Topology A) (@fst N (Topology A) _999613) (@snd N (Topology A) _999613))). +Lemma chain_group_def {A : Type'} : (@chain_group A) = (fun _999613 : prod N (Topology A) => @free_abelian_group ((N -> R) -> A) (@singular_simplex A (@pair N (Topology A) (@fst N (Topology A) _999613) (@snd N (Topology A) _999613)))). +Proof. exact (eq_refl (@chain_group A)). Qed. +Definition relcycle_group {A : Type'} : (prod N (prod (Topology A) (A -> Prop))) -> Group (frag ((N -> R) -> A)) := fun _999622 : prod N (prod (Topology A) (A -> Prop)) => @subgroup_generated (frag ((N -> R) -> A)) (@chain_group A (@pair N (Topology A) (@fst N (prod (Topology A) (A -> Prop)) _999622) (@fst (Topology A) (A -> Prop) (@snd N (prod (Topology A) (A -> Prop)) _999622)))) (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) (@fst N (prod (Topology A) (A -> Prop)) _999622) (@pair (Topology A) (A -> Prop) (@fst (Topology A) (A -> Prop) (@snd N (prod (Topology A) (A -> Prop)) _999622)) (@snd (Topology A) (A -> Prop) (@snd N (prod (Topology A) (A -> Prop)) _999622))))). +Lemma relcycle_group_def {A : Type'} : (@relcycle_group A) = (fun _999622 : prod N (prod (Topology A) (A -> Prop)) => @subgroup_generated (frag ((N -> R) -> A)) (@chain_group A (@pair N (Topology A) (@fst N (prod (Topology A) (A -> Prop)) _999622) (@fst (Topology A) (A -> Prop) (@snd N (prod (Topology A) (A -> Prop)) _999622)))) (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) (@fst N (prod (Topology A) (A -> Prop)) _999622) (@pair (Topology A) (A -> Prop) (@fst (Topology A) (A -> Prop) (@snd N (prod (Topology A) (A -> Prop)) _999622)) (@snd (Topology A) (A -> Prop) (@snd N (prod (Topology A) (A -> Prop)) _999622)))))). +Proof. exact (eq_refl (@relcycle_group A)). Qed. +Definition relative_homology_group {A : Type'} : (prod Z (prod (Topology A) (A -> Prop))) -> Group ((frag ((N -> R) -> A)) -> Prop) := fun _999635 : prod Z (prod (Topology A) (A -> Prop)) => @COND (Group ((frag ((N -> R) -> A)) -> Prop)) (int_lt (@fst Z (prod (Topology A) (A -> Prop)) _999635) (Z_of_N (NUMERAL 0%N))) (@singleton_group ((frag ((N -> R) -> A)) -> Prop) (@ARB ((frag ((N -> R) -> A)) -> Prop))) (@quotient_group (frag ((N -> R) -> A)) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) (num_of_int (@fst Z (prod (Topology A) (A -> Prop)) _999635)) (@pair (Topology A) (A -> Prop) (@fst (Topology A) (A -> Prop) (@snd Z (prod (Topology A) (A -> Prop)) _999635)) (@snd (Topology A) (A -> Prop) (@snd Z (prod (Topology A) (A -> Prop)) _999635))))) (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) (num_of_int (@fst Z (prod (Topology A) (A -> Prop)) _999635)) (@pair (Topology A) (A -> Prop) (@fst (Topology A) (A -> Prop) (@snd Z (prod (Topology A) (A -> Prop)) _999635)) (@snd (Topology A) (A -> Prop) (@snd Z (prod (Topology A) (A -> Prop)) _999635)))))). +Lemma relative_homology_group_def {A : Type'} : (@relative_homology_group A) = (fun _999635 : prod Z (prod (Topology A) (A -> Prop)) => @COND (Group ((frag ((N -> R) -> A)) -> Prop)) (int_lt (@fst Z (prod (Topology A) (A -> Prop)) _999635) (Z_of_N (NUMERAL 0%N))) (@singleton_group ((frag ((N -> R) -> A)) -> Prop) (@ARB ((frag ((N -> R) -> A)) -> Prop))) (@quotient_group (frag ((N -> R) -> A)) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) (num_of_int (@fst Z (prod (Topology A) (A -> Prop)) _999635)) (@pair (Topology A) (A -> Prop) (@fst (Topology A) (A -> Prop) (@snd Z (prod (Topology A) (A -> Prop)) _999635)) (@snd (Topology A) (A -> Prop) (@snd Z (prod (Topology A) (A -> Prop)) _999635))))) (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) (num_of_int (@fst Z (prod (Topology A) (A -> Prop)) _999635)) (@pair (Topology A) (A -> Prop) (@fst (Topology A) (A -> Prop) (@snd Z (prod (Topology A) (A -> Prop)) _999635)) (@snd (Topology A) (A -> Prop) (@snd Z (prod (Topology A) (A -> Prop)) _999635))))))). +Proof. exact (eq_refl (@relative_homology_group A)). Qed. +Definition homology_group {A : Type'} : (prod Z (Topology A)) -> Group ((frag ((N -> R) -> A)) -> Prop) := fun _999648 : prod Z (Topology A) => @relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (@fst Z (Topology A) _999648) (@pair (Topology A) (A -> Prop) (@snd Z (Topology A) _999648) (@EMPTY A))). +Lemma homology_group_def {A : Type'} : (@homology_group A) = (fun _999648 : prod Z (Topology A) => @relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (@fst Z (Topology A) _999648) (@pair (Topology A) (A -> Prop) (@snd Z (Topology A) _999648) (@EMPTY A)))). +Proof. exact (eq_refl (@homology_group A)). Qed. +Definition hom_boundary {A : Type'} : Z -> (prod (Topology A) (A -> Prop)) -> ((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) -> Z -> (prod (Topology A) (A -> Prop)) -> ((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (fun d : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) -> Z -> (prod (Topology A) (A -> Prop)) -> ((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop => forall _1000274 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))), (forall p : Z, forall top : Topology A, forall s : A -> Prop, forall c : (frag ((N -> R) -> A)) -> Prop, (~ (@IN ((frag ((N -> R) -> A)) -> Prop) c (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))))) -> (d _1000274 p (@pair (Topology A) (A -> Prop) top s) c) = (@group_id ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s))))) /\ ((forall p : Z, forall top : Topology A, forall s : A -> Prop, @group_homomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s)))) (d _1000274 p (@pair (Topology A) (A -> Prop) top s))) /\ ((forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), ((@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) /\ (N.le (NUMERAL (BIT1 0%N)) p)) -> (d _1000274 (Z_of_N p) (@pair (Topology A) (A -> Prop) top s) (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c)) = (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) (N.sub p (NUMERAL (BIT1 0%N))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A))) (@chain_boundary A p c))) /\ ((forall p : Z, forall top : Topology A, forall s : A -> Prop, (d _1000274 p (@pair (Topology A) (A -> Prop) top s)) = (d _1000274 p (@pair (Topology A) (A -> Prop) top (@INTER A (@topspace A top) s)))) /\ ((forall p : Z, forall top : Topology A, forall s : A -> Prop, forall c : (frag ((N -> R) -> A)) -> Prop, @IN ((frag ((N -> R) -> A)) -> Prop) (d _1000274 p (@pair (Topology A) (A -> Prop) top s) c) (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s))))) /\ (forall p : Z, (int_le p (Z_of_N (NUMERAL 0%N))) -> (d _1000274 p) = (fun q : prod (Topology A) (A -> Prop) => fun r : (frag ((N -> R) -> A)) -> Prop => @ARB ((frag ((N -> R) -> A)) -> Prop)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 (BIT1 0%N))))))))))))))))))). +Lemma hom_boundary_def {A : Type'} : (@hom_boundary A) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) -> Z -> (prod (Topology A) (A -> Prop)) -> ((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (fun d : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) -> Z -> (prod (Topology A) (A -> Prop)) -> ((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop => forall _1000274 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))), (forall p : Z, forall top : Topology A, forall s : A -> Prop, forall c : (frag ((N -> R) -> A)) -> Prop, (~ (@IN ((frag ((N -> R) -> A)) -> Prop) c (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))))) -> (d _1000274 p (@pair (Topology A) (A -> Prop) top s) c) = (@group_id ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s))))) /\ ((forall p : Z, forall top : Topology A, forall s : A -> Prop, @group_homomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s)))) (d _1000274 p (@pair (Topology A) (A -> Prop) top s))) /\ ((forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), ((@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) /\ (N.le (NUMERAL (BIT1 0%N)) p)) -> (d _1000274 (Z_of_N p) (@pair (Topology A) (A -> Prop) top s) (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c)) = (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) (N.sub p (NUMERAL (BIT1 0%N))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A))) (@chain_boundary A p c))) /\ ((forall p : Z, forall top : Topology A, forall s : A -> Prop, (d _1000274 p (@pair (Topology A) (A -> Prop) top s)) = (d _1000274 p (@pair (Topology A) (A -> Prop) top (@INTER A (@topspace A top) s)))) /\ ((forall p : Z, forall top : Topology A, forall s : A -> Prop, forall c : (frag ((N -> R) -> A)) -> Prop, @IN ((frag ((N -> R) -> A)) -> Prop) (d _1000274 p (@pair (Topology A) (A -> Prop) top s) c) (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s))))) /\ (forall p : Z, (int_le p (Z_of_N (NUMERAL 0%N))) -> (d _1000274 p) = (fun q : prod (Topology A) (A -> Prop) => fun r : (frag ((N -> R) -> A)) -> Prop => @ARB ((frag ((N -> R) -> A)) -> Prop)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 (BIT1 0%N)))))))))))))))))))). +Proof. exact (eq_refl (@hom_boundary A)). Qed. +Definition hom_induced {A B : Type'} : Z -> (prod (Topology A) (A -> Prop)) -> (prod (Topology B) (B -> Prop)) -> (A -> B) -> ((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> B)) -> Prop := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> Z -> (prod (Topology A) (A -> Prop)) -> (prod (Topology B) (B -> Prop)) -> (A -> B) -> ((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> B)) -> Prop) (fun hom_relmap' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> Z -> (prod (Topology A) (A -> Prop)) -> (prod (Topology B) (B -> Prop)) -> (A -> B) -> ((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> B)) -> Prop => forall _1005060 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))), (forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, forall c : (frag ((N -> R) -> A)) -> Prop, (~ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET B (@IMAGE A B f (@INTER A (@topspace A top) s)) t) /\ (@IN ((frag ((N -> R) -> A)) -> Prop) c (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))))))) -> (hom_relmap' _1005060 p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f c) = (@group_id ((frag ((N -> R) -> B)) -> Prop) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t))))) /\ ((forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, @group_homomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)))) (hom_relmap' _1005060 p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f)) /\ ((forall p : N, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, forall c : frag ((N -> R) -> A), ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET B (@IMAGE A B f (@INTER A (@topspace A top) s)) t) /\ (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c))) -> (hom_relmap' _1005060 (Z_of_N p) (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c)) = (@homologous_rel B (@pair N (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)) (@chain_map A B p f c))) /\ ((forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, (hom_relmap' _1005060 p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t)) = (hom_relmap' _1005060 p (@pair (Topology A) (A -> Prop) top (@INTER A (@topspace A top) s)) (@pair (Topology B) (B -> Prop) top' (@INTER B (@topspace B top') t)))) /\ ((forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall f : A -> B, forall t : B -> Prop, forall c : (frag ((N -> R) -> A)) -> Prop, @IN ((frag ((N -> R) -> B)) -> Prop) (hom_relmap' _1005060 p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f c) (@group_carrier ((frag ((N -> R) -> B)) -> Prop) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t))))) /\ (forall p : Z, (int_lt p (Z_of_N (NUMERAL 0%N))) -> (hom_relmap' _1005060 p) = (fun q : prod (Topology A) (A -> Prop) => fun r : prod (Topology B) (B -> Prop) => fun s : A -> B => fun t : (frag ((N -> R) -> A)) -> Prop => @ARB ((frag ((N -> R) -> B)) -> Prop)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))). +Lemma hom_induced_def {A B : Type'} : (@hom_induced A B) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> Z -> (prod (Topology A) (A -> Prop)) -> (prod (Topology B) (B -> Prop)) -> (A -> B) -> ((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> B)) -> Prop) (fun hom_relmap' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> Z -> (prod (Topology A) (A -> Prop)) -> (prod (Topology B) (B -> Prop)) -> (A -> B) -> ((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> B)) -> Prop => forall _1005060 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))), (forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, forall c : (frag ((N -> R) -> A)) -> Prop, (~ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET B (@IMAGE A B f (@INTER A (@topspace A top) s)) t) /\ (@IN ((frag ((N -> R) -> A)) -> Prop) c (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))))))) -> (hom_relmap' _1005060 p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f c) = (@group_id ((frag ((N -> R) -> B)) -> Prop) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t))))) /\ ((forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, @group_homomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)))) (hom_relmap' _1005060 p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f)) /\ ((forall p : N, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, forall c : frag ((N -> R) -> A), ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET B (@IMAGE A B f (@INTER A (@topspace A top) s)) t) /\ (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c))) -> (hom_relmap' _1005060 (Z_of_N p) (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c)) = (@homologous_rel B (@pair N (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)) (@chain_map A B p f c))) /\ ((forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, (hom_relmap' _1005060 p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t)) = (hom_relmap' _1005060 p (@pair (Topology A) (A -> Prop) top (@INTER A (@topspace A top) s)) (@pair (Topology B) (B -> Prop) top' (@INTER B (@topspace B top') t)))) /\ ((forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall f : A -> B, forall t : B -> Prop, forall c : (frag ((N -> R) -> A)) -> Prop, @IN ((frag ((N -> R) -> B)) -> Prop) (hom_relmap' _1005060 p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f c) (@group_carrier ((frag ((N -> R) -> B)) -> Prop) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t))))) /\ (forall p : Z, (int_lt p (Z_of_N (NUMERAL 0%N))) -> (hom_relmap' _1005060 p) = (fun q : prod (Topology A) (A -> Prop) => fun r : prod (Topology B) (B -> Prop) => fun s : A -> B => fun t : (frag ((N -> R) -> A)) -> Prop => @ARB ((frag ((N -> R) -> B)) -> Prop)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))))). +Proof. exact (eq_refl (@hom_induced A B)). Qed. +Definition hom_relboundary {A : Type'} : Z -> (prod (Topology A) (prod (A -> Prop) (A -> Prop))) -> ((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop := fun _1021298 : Z => fun _1021299 : prod (Topology A) (prod (A -> Prop) (A -> Prop)) => @o ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@hom_induced A A (int_sub _1021298 (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A (@fst (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299) (@fst (A -> Prop) (A -> Prop) (@snd (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299))) (@EMPTY A)) (@pair (Topology A) (A -> Prop) (@subtopology A (@fst (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299) (@fst (A -> Prop) (A -> Prop) (@snd (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299))) (@snd (A -> Prop) (A -> Prop) (@snd (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299))) (fun x : A => x)) (@hom_boundary A _1021298 (@pair (Topology A) (A -> Prop) (@fst (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299) (@fst (A -> Prop) (A -> Prop) (@snd (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299)))). +Lemma hom_relboundary_def {A : Type'} : (@hom_relboundary A) = (fun _1021298 : Z => fun _1021299 : prod (Topology A) (prod (A -> Prop) (A -> Prop)) => @o ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@hom_induced A A (int_sub _1021298 (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A (@fst (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299) (@fst (A -> Prop) (A -> Prop) (@snd (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299))) (@EMPTY A)) (@pair (Topology A) (A -> Prop) (@subtopology A (@fst (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299) (@fst (A -> Prop) (A -> Prop) (@snd (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299))) (@snd (A -> Prop) (A -> Prop) (@snd (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299))) (fun x : A => x)) (@hom_boundary A _1021298 (@pair (Topology A) (A -> Prop) (@fst (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299) (@fst (A -> Prop) (A -> Prop) (@snd (Topology A) (prod (A -> Prop) (A -> Prop)) _1021299))))). +Proof. exact (eq_refl (@hom_relboundary A)). Qed. +Definition reduced_homology_group {A : Type'} : (prod Z (Topology A)) -> Group ((frag ((N -> R) -> A)) -> Prop) := fun _1022814 : prod Z (Topology A) => @subgroup_generated ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) (@fst Z (Topology A) _1022814) (@snd Z (Topology A) _1022814))) (@group_kernel ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> unit)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> unit)) -> Prop)) (@homology_group A (@pair Z (Topology A) (@fst Z (Topology A) _1022814) (@snd Z (Topology A) _1022814))) (@homology_group unit (@pair Z (Topology unit) (@fst Z (Topology A) _1022814) (@discrete_topology unit (@INSERT unit tt (@EMPTY unit)))))) (@hom_induced A unit (@fst Z (Topology A) _1022814) (@pair (Topology A) (A -> Prop) (@snd Z (Topology A) _1022814) (@EMPTY A)) (@pair (Topology unit) (unit -> Prop) (@discrete_topology unit (@INSERT unit tt (@EMPTY unit))) (@EMPTY unit)) (fun x : A => tt))). +Lemma reduced_homology_group_def {A : Type'} : (@reduced_homology_group A) = (fun _1022814 : prod Z (Topology A) => @subgroup_generated ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) (@fst Z (Topology A) _1022814) (@snd Z (Topology A) _1022814))) (@group_kernel ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> unit)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> unit)) -> Prop)) (@homology_group A (@pair Z (Topology A) (@fst Z (Topology A) _1022814) (@snd Z (Topology A) _1022814))) (@homology_group unit (@pair Z (Topology unit) (@fst Z (Topology A) _1022814) (@discrete_topology unit (@INSERT unit tt (@EMPTY unit)))))) (@hom_induced A unit (@fst Z (Topology A) _1022814) (@pair (Topology A) (A -> Prop) (@snd Z (Topology A) _1022814) (@EMPTY A)) (@pair (Topology unit) (unit -> Prop) (@discrete_topology unit (@INSERT unit tt (@EMPTY unit))) (@EMPTY unit)) (fun x : A => tt)))). +Proof. exact (eq_refl (@reduced_homology_group A)). Qed. +Definition brouwer_degree2 : N -> ((N -> R) -> N -> R) -> Z := fun _1028894 : N => fun _1028895 : (N -> R) -> N -> R => @ε Z (fun d : Z => forall x : (frag ((N -> R) -> N -> R)) -> Prop, (@IN ((frag ((N -> R) -> N -> R)) -> Prop) x (@group_carrier ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N _1028894) (nsphere _1028894))))) -> (@hom_induced (N -> R) (N -> R) (Z_of_N _1028894) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere _1028894) (@EMPTY (N -> R))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere _1028894) (@EMPTY (N -> R))) _1028895 x) = (@group_zpow ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N _1028894) (nsphere _1028894))) x d)). +Lemma brouwer_degree2_def : brouwer_degree2 = (fun _1028894 : N => fun _1028895 : (N -> R) -> N -> R => @ε Z (fun d : Z => forall x : (frag ((N -> R) -> N -> R)) -> Prop, (@IN ((frag ((N -> R) -> N -> R)) -> Prop) x (@group_carrier ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N _1028894) (nsphere _1028894))))) -> (@hom_induced (N -> R) (N -> R) (Z_of_N _1028894) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere _1028894) (@EMPTY (N -> R))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere _1028894) (@EMPTY (N -> R))) _1028895 x) = (@group_zpow ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N _1028894) (nsphere _1028894))) x d))). +Proof. exact (eq_refl brouwer_degree2). Qed. +Definition vector_add {N' : Type'} : (cart R N') -> (cart R N') -> cart R N' := fun _1111949 : cart R N' => fun _1111950 : cart R N' => @lambda R N' (fun i : N => Rplus (@dollar R N' _1111949 i) (@dollar R N' _1111950 i)). +Lemma vector_add_def {N' : Type'} : (@vector_add N') = (fun _1111949 : cart R N' => fun _1111950 : cart R N' => @lambda R N' (fun i : N => Rplus (@dollar R N' _1111949 i) (@dollar R N' _1111950 i))). +Proof. exact (eq_refl (@vector_add N')). Qed. +Definition vector_sub {N' : Type'} : (cart R N') -> (cart R N') -> cart R N' := fun _1111961 : cart R N' => fun _1111962 : cart R N' => @lambda R N' (fun i : N => Rminus (@dollar R N' _1111961 i) (@dollar R N' _1111962 i)). +Lemma vector_sub_def {N' : Type'} : (@vector_sub N') = (fun _1111961 : cart R N' => fun _1111962 : cart R N' => @lambda R N' (fun i : N => Rminus (@dollar R N' _1111961 i) (@dollar R N' _1111962 i))). +Proof. exact (eq_refl (@vector_sub N')). Qed. +Definition vector_neg {N' : Type'} : (cart R N') -> cart R N' := fun _1111973 : cart R N' => @lambda R N' (fun i : N => Ropp (@dollar R N' _1111973 i)). +Lemma vector_neg_def {N' : Type'} : (@vector_neg N') = (fun _1111973 : cart R N' => @lambda R N' (fun i : N => Ropp (@dollar R N' _1111973 i))). +Proof. exact (eq_refl (@vector_neg N')). Qed. +Definition percent {N' : Type'} : R -> (cart R N') -> cart R N' := fun _1111978 : R => fun _1111979 : cart R N' => @lambda R N' (fun i : N => Rmult _1111978 (@dollar R N' _1111979 i)). +Lemma percent_def {N' : Type'} : (@percent N') = (fun _1111978 : R => fun _1111979 : cart R N' => @lambda R N' (fun i : N => Rmult _1111978 (@dollar R N' _1111979 i))). +Proof. exact (eq_refl (@percent N')). Qed. +Definition vec {N' : Type'} : N -> cart R N' := fun _1111990 : N => @lambda R N' (fun i : N => R_of_N _1111990). +Lemma vec_def {N' : Type'} : (@vec N') = (fun _1111990 : N => @lambda R N' (fun i : N => R_of_N _1111990)). +Proof. exact (eq_refl (@vec N')). Qed. +Definition dot {N' : Type'} : (cart R N') -> (cart R N') -> R := fun _1111995 : cart R N' => fun _1111996 : cart R N' => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => Rmult (@dollar R N' _1111995 i) (@dollar R N' _1111996 i)). +Lemma dot_def {N' : Type'} : (@dot N') = (fun _1111995 : cart R N' => fun _1111996 : cart R N' => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => Rmult (@dollar R N' _1111995 i) (@dollar R N' _1111996 i))). +Proof. exact (eq_refl (@dot N')). Qed. +Definition vector_norm {_584973 : Type'} : (cart R _584973) -> R := fun _1112751 : cart R _584973 => sqrt (@dot _584973 _1112751 _1112751). +Lemma vector_norm_def {_584973 : Type'} : (@vector_norm _584973) = (fun _1112751 : cart R _584973 => sqrt (@dot _584973 _1112751 _1112751)). +Proof. exact (eq_refl (@vector_norm _584973)). Qed. +Definition distance {_584998 : Type'} : (prod (cart R _584998) (cart R _584998)) -> R := fun _1112756 : prod (cart R _584998) (cart R _584998) => @vector_norm _584998 (@vector_sub _584998 (@fst (cart R _584998) (cart R _584998) _1112756) (@snd (cart R _584998) (cart R _584998) _1112756)). +Lemma distance_def {_584998 : Type'} : (@distance _584998) = (fun _1112756 : prod (cart R _584998) (cart R _584998) => @vector_norm _584998 (@vector_sub _584998 (@fst (cart R _584998) (cart R _584998) _1112756) (@snd (cart R _584998) (cart R _584998) _1112756))). +Proof. exact (eq_refl (@distance _584998)). Qed. +Definition vsum {A N' : Type'} : (A -> Prop) -> (A -> cart R N') -> cart R N' := fun _1114553 : A -> Prop => fun _1114554 : A -> cart R N' => @lambda R N' (fun i : N => @sum A _1114553 (fun x : A => @dollar R N' (_1114554 x) i)). +Lemma vsum_def {A N' : Type'} : (@vsum A N') = (fun _1114553 : A -> Prop => fun _1114554 : A -> cart R N' => @lambda R N' (fun i : N => @sum A _1114553 (fun x : A => @dollar R N' (_1114554 x) i))). +Proof. exact (eq_refl (@vsum A N')). Qed. +Definition basis {_594269 : Type'} : N -> cart R _594269 := fun _1116234 : N => @lambda R _594269 (fun i : N => @COND R (i = _1116234) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Lemma basis_def {_594269 : Type'} : (@basis _594269) = (fun _1116234 : N => @lambda R _594269 (fun i : N => @COND R (i = _1116234) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N)))). +Proof. exact (eq_refl (@basis _594269)). Qed. +Definition orthogonal {_594971 : Type'} : (cart R _594971) -> (cart R _594971) -> Prop := fun _1116440 : cart R _594971 => fun _1116441 : cart R _594971 => (@dot _594971 _1116440 _1116441) = (R_of_N (NUMERAL 0%N)). +Lemma orthogonal_def {_594971 : Type'} : (@orthogonal _594971) = (fun _1116440 : cart R _594971 => fun _1116441 : cart R _594971 => (@dot _594971 _1116440 _1116441) = (R_of_N (NUMERAL 0%N))). +Proof. exact (eq_refl (@orthogonal _594971)). Qed. +Definition linear {M N' : Type'} : ((cart R M) -> cart R N') -> Prop := fun _1116618 : (cart R M) -> cart R N' => (forall x : cart R M, forall y : cart R M, (_1116618 (@vector_add M x y)) = (@vector_add N' (_1116618 x) (_1116618 y))) /\ (forall c : R, forall x : cart R M, (_1116618 (@percent M c x)) = (@percent N' c (_1116618 x))). +Lemma linear_def {M N' : Type'} : (@linear M N') = (fun _1116618 : (cart R M) -> cart R N' => (forall x : cart R M, forall y : cart R M, (_1116618 (@vector_add M x y)) = (@vector_add N' (_1116618 x) (_1116618 y))) /\ (forall c : R, forall x : cart R M, (_1116618 (@percent M c x)) = (@percent N' c (_1116618 x)))). +Proof. exact (eq_refl (@linear M N')). Qed. +Definition bilinear {_597144 _597145 _597155 : Type'} : ((cart R _597155) -> (cart R _597144) -> cart R _597145) -> Prop := fun _1116940 : (cart R _597155) -> (cart R _597144) -> cart R _597145 => (forall x : cart R _597155, @linear _597144 _597145 (fun y : cart R _597144 => _1116940 x y)) /\ (forall y : cart R _597144, @linear _597155 _597145 (fun x : cart R _597155 => _1116940 x y)). +Lemma bilinear_def {_597144 _597145 _597155 : Type'} : (@bilinear _597144 _597145 _597155) = (fun _1116940 : (cart R _597155) -> (cart R _597144) -> cart R _597145 => (forall x : cart R _597155, @linear _597144 _597145 (fun y : cart R _597144 => _1116940 x y)) /\ (forall y : cart R _597144, @linear _597155 _597145 (fun x : cart R _597155 => _1116940 x y))). +Proof. exact (eq_refl (@bilinear _597144 _597145 _597155)). Qed. +Definition adjoint {M N' : Type'} : ((cart R M) -> cart R N') -> (cart R N') -> cart R M := fun _1117512 : (cart R M) -> cart R N' => @ε ((cart R N') -> cart R M) (fun f' : (cart R N') -> cart R M => forall x : cart R M, forall y : cart R N', (@dot N' (_1117512 x) y) = (@dot M x (f' y))). +Lemma adjoint_def {M N' : Type'} : (@adjoint M N') = (fun _1117512 : (cart R M) -> cart R N' => @ε ((cart R N') -> cart R M) (fun f' : (cart R N') -> cart R M => forall x : cart R M, forall y : cart R N', (@dot N' (_1117512 x) y) = (@dot M x (f' y)))). +Proof. exact (eq_refl (@adjoint M N')). Qed. +Definition __ {M N' : Type'} : R -> (cart (cart R N') M) -> cart (cart R N') M := fun _1117715 : R => fun _1117716 : cart (cart R N') M => @lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Rmult _1117715 (@dollar R N' (@dollar (cart R N') M _1117716 i) j))). +Lemma ___def {M N' : Type'} : (@__ M N') = (fun _1117715 : R => fun _1117716 : cart (cart R N') M => @lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Rmult _1117715 (@dollar R N' (@dollar (cart R N') M _1117716 i) j)))). +Proof. exact (eq_refl (@__ M N')). Qed. +Definition matrix_neg {M N' : Type'} : (cart (cart R N') M) -> cart (cart R N') M := fun _1117727 : cart (cart R N') M => @lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Ropp (@dollar R N' (@dollar (cart R N') M _1117727 i) j))). +Lemma matrix_neg_def {M N' : Type'} : (@matrix_neg M N') = (fun _1117727 : cart (cart R N') M => @lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Ropp (@dollar R N' (@dollar (cart R N') M _1117727 i) j)))). +Proof. exact (eq_refl (@matrix_neg M N')). Qed. +Definition matrix_add {M N' : Type'} : (cart (cart R N') M) -> (cart (cart R N') M) -> cart (cart R N') M := fun _1117732 : cart (cart R N') M => fun _1117733 : cart (cart R N') M => @lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Rplus (@dollar R N' (@dollar (cart R N') M _1117732 i) j) (@dollar R N' (@dollar (cart R N') M _1117733 i) j))). +Lemma matrix_add_def {M N' : Type'} : (@matrix_add M N') = (fun _1117732 : cart (cart R N') M => fun _1117733 : cart (cart R N') M => @lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Rplus (@dollar R N' (@dollar (cart R N') M _1117732 i) j) (@dollar R N' (@dollar (cart R N') M _1117733 i) j)))). +Proof. exact (eq_refl (@matrix_add M N')). Qed. +Definition matrix_sub {M N' : Type'} : (cart (cart R N') M) -> (cart (cart R N') M) -> cart (cart R N') M := fun _1117744 : cart (cart R N') M => fun _1117745 : cart (cart R N') M => @lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Rminus (@dollar R N' (@dollar (cart R N') M _1117744 i) j) (@dollar R N' (@dollar (cart R N') M _1117745 i) j))). +Lemma matrix_sub_def {M N' : Type'} : (@matrix_sub M N') = (fun _1117744 : cart (cart R N') M => fun _1117745 : cart (cart R N') M => @lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Rminus (@dollar R N' (@dollar (cart R N') M _1117744 i) j) (@dollar R N' (@dollar (cart R N') M _1117745 i) j)))). +Proof. exact (eq_refl (@matrix_sub M N')). Qed. +Definition matrix_mul {M N' P : Type'} : (cart (cart R N') M) -> (cart (cart R P) N') -> cart (cart R P) M := fun _1117756 : cart (cart R N') M => fun _1117757 : cart (cart R P) N' => @lambda (cart R P) M (fun i : N => @lambda R P (fun j : N => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun k : N => Rmult (@dollar R N' (@dollar (cart R N') M _1117756 i) k) (@dollar R P (@dollar (cart R P) N' _1117757 k) j)))). +Lemma matrix_mul_def {M N' P : Type'} : (@matrix_mul M N' P) = (fun _1117756 : cart (cart R N') M => fun _1117757 : cart (cart R P) N' => @lambda (cart R P) M (fun i : N => @lambda R P (fun j : N => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun k : N => Rmult (@dollar R N' (@dollar (cart R N') M _1117756 i) k) (@dollar R P (@dollar (cart R P) N' _1117757 k) j))))). +Proof. exact (eq_refl (@matrix_mul M N' P)). Qed. +Definition matrix_vector_mul {M N' : Type'} : (cart (cart R N') M) -> (cart R N') -> cart R M := fun _1117768 : cart (cart R N') M => fun _1117769 : cart R N' => @lambda R M (fun i : N => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun j : N => Rmult (@dollar R N' (@dollar (cart R N') M _1117768 i) j) (@dollar R N' _1117769 j))). +Lemma matrix_vector_mul_def {M N' : Type'} : (@matrix_vector_mul M N') = (fun _1117768 : cart (cart R N') M => fun _1117769 : cart R N' => @lambda R M (fun i : N => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun j : N => Rmult (@dollar R N' (@dollar (cart R N') M _1117768 i) j) (@dollar R N' _1117769 j)))). +Proof. exact (eq_refl (@matrix_vector_mul M N')). Qed. +Definition vector_matrix_mul {M N' : Type'} : (cart R M) -> (cart (cart R N') M) -> cart R N' := fun _1117780 : cart R M => fun _1117781 : cart (cart R N') M => @lambda R N' (fun j : N => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M))) (fun i : N => Rmult (@dollar R N' (@dollar (cart R N') M _1117781 i) j) (@dollar R M _1117780 i))). +Lemma vector_matrix_mul_def {M N' : Type'} : (@vector_matrix_mul M N') = (fun _1117780 : cart R M => fun _1117781 : cart (cart R N') M => @lambda R N' (fun j : N => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M))) (fun i : N => Rmult (@dollar R N' (@dollar (cart R N') M _1117781 i) j) (@dollar R M _1117780 i)))). +Proof. exact (eq_refl (@vector_matrix_mul M N')). Qed. +Definition mat {M N' : Type'} : N -> cart (cart R N') M := fun _1117792 : N => @lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => @COND R (i = j) (R_of_N _1117792) (R_of_N (NUMERAL 0%N)))). +Lemma mat_def {M N' : Type'} : (@mat M N') = (fun _1117792 : N => @lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => @COND R (i = j) (R_of_N _1117792) (R_of_N (NUMERAL 0%N))))). +Proof. exact (eq_refl (@mat M N')). Qed. +Definition transp {M N' : Type'} : (cart (cart R N') M) -> cart (cart R M) N' := fun _1117797 : cart (cart R N') M => @lambda (cart R M) N' (fun i : N => @lambda R M (fun j : N => @dollar R N' (@dollar (cart R N') M _1117797 j) i)). +Lemma transp_def {M N' : Type'} : (@transp M N') = (fun _1117797 : cart (cart R N') M => @lambda (cart R M) N' (fun i : N => @lambda R M (fun j : N => @dollar R N' (@dollar (cart R N') M _1117797 j) i))). +Proof. exact (eq_refl (@transp M N')). Qed. +Definition row {M N' : Type'} : N -> (cart (cart R N') M) -> cart R N' := fun _1117802 : N => fun _1117803 : cart (cart R N') M => @lambda R N' (fun j : N => @dollar R N' (@dollar (cart R N') M _1117803 _1117802) j). +Lemma row_def {M N' : Type'} : (@row M N') = (fun _1117802 : N => fun _1117803 : cart (cart R N') M => @lambda R N' (fun j : N => @dollar R N' (@dollar (cart R N') M _1117803 _1117802) j)). +Proof. exact (eq_refl (@row M N')). Qed. +Definition column {M N' : Type'} : N -> (cart (cart R N') M) -> cart R M := fun _1117814 : N => fun _1117815 : cart (cart R N') M => @lambda R M (fun i : N => @dollar R N' (@dollar (cart R N') M _1117815 i) _1117814). +Lemma column_def {M N' : Type'} : (@column M N') = (fun _1117814 : N => fun _1117815 : cart (cart R N') M => @lambda R M (fun i : N => @dollar R N' (@dollar (cart R N') M _1117815 i) _1117814)). +Proof. exact (eq_refl (@column M N')). Qed. +Definition rows {M N' : Type'} : (cart (cart R N') M) -> (cart R N') -> Prop := fun _1117826 : cart (cart R N') M => @GSPEC (cart R N') (fun GEN_PVAR_2385 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_2385 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) (@row M N' i _1117826)). +Lemma rows_def {M N' : Type'} : (@rows M N') = (fun _1117826 : cart (cart R N') M => @GSPEC (cart R N') (fun GEN_PVAR_2385 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_2385 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) (@row M N' i _1117826))). +Proof. exact (eq_refl (@rows M N')). Qed. +Definition columns {M N' : Type'} : (cart (cart R N') M) -> (cart R M) -> Prop := fun _1117831 : cart (cart R N') M => @GSPEC (cart R M) (fun GEN_PVAR_2386 : cart R M => exists i : N, @SETSPEC (cart R M) GEN_PVAR_2386 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@column M N' i _1117831)). +Lemma columns_def {M N' : Type'} : (@columns M N') = (fun _1117831 : cart (cart R N') M => @GSPEC (cart R M) (fun GEN_PVAR_2386 : cart R M => exists i : N, @SETSPEC (cart R M) GEN_PVAR_2386 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@column M N' i _1117831))). +Proof. exact (eq_refl (@columns M N')). Qed. +Definition symmetric_matrix {N' : Type'} : (cart (cart R N') N') -> Prop := fun _1117896 : cart (cart R N') N' => (@transp N' N' _1117896) = _1117896. +Lemma symmetric_matrix_def {N' : Type'} : (@symmetric_matrix N') = (fun _1117896 : cart (cart R N') N' => (@transp N' N' _1117896) = _1117896). +Proof. exact (eq_refl (@symmetric_matrix N')). Qed. +Definition normal_matrix {N' : Type'} : (cart (cart R N') N') -> Prop := fun _1117901 : cart (cart R N') N' => (@matrix_mul N' N' N' (@transp N' N' _1117901) _1117901) = (@matrix_mul N' N' N' _1117901 (@transp N' N' _1117901)). +Lemma normal_matrix_def {N' : Type'} : (@normal_matrix N') = (fun _1117901 : cart (cart R N') N' => (@matrix_mul N' N' N' (@transp N' N' _1117901) _1117901) = (@matrix_mul N' N' N' _1117901 (@transp N' N' _1117901))). +Proof. exact (eq_refl (@normal_matrix N')). Qed. +Definition invertible {M N' : Type'} : (cart (cart R N') M) -> Prop := fun _1118423 : cart (cart R N') M => exists A' : cart (cart R M) N', ((@matrix_mul M N' M _1118423 A') = (@mat M M (NUMERAL (BIT1 0%N)))) /\ ((@matrix_mul N' M N' A' _1118423) = (@mat N' N' (NUMERAL (BIT1 0%N)))). +Lemma invertible_def {M N' : Type'} : (@invertible M N') = (fun _1118423 : cart (cart R N') M => exists A' : cart (cart R M) N', ((@matrix_mul M N' M _1118423 A') = (@mat M M (NUMERAL (BIT1 0%N)))) /\ ((@matrix_mul N' M N' A' _1118423) = (@mat N' N' (NUMERAL (BIT1 0%N))))). +Proof. exact (eq_refl (@invertible M N')). Qed. +Definition matrix {M N' : Type'} : ((cart R M) -> cart R N') -> cart (cart R M) N' := fun _1118640 : (cart R M) -> cart R N' => @lambda (cart R M) N' (fun i : N => @lambda R M (fun j : N => @dollar R N' (_1118640 (@basis M j)) i)). +Lemma matrix_def {M N' : Type'} : (@matrix M N') = (fun _1118640 : (cart R M) -> cart R N' => @lambda (cart R M) N' (fun i : N => @lambda R M (fun j : N => @dollar R N' (_1118640 (@basis M j)) i))). +Proof. exact (eq_refl (@matrix M N')). Qed. +Definition onorm {M N' : Type'} : ((cart R M) -> cart R N') -> R := fun _1118728 : (cart R M) -> cart R N' => sup (@GSPEC R (fun GEN_PVAR_2387 : R => exists x : cart R M, @SETSPEC R GEN_PVAR_2387 ((@vector_norm M x) = (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_norm N' (_1118728 x)))). +Lemma onorm_def {M N' : Type'} : (@onorm M N') = (fun _1118728 : (cart R M) -> cart R N' => sup (@GSPEC R (fun GEN_PVAR_2387 : R => exists x : cart R M, @SETSPEC R GEN_PVAR_2387 ((@vector_norm M x) = (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_norm N' (_1118728 x))))). +Proof. exact (eq_refl (@onorm M N')). Qed. +Definition lift : R -> cart R unit := fun _1120564 : R => @lambda R unit (fun i : N => _1120564). +Lemma lift_def : lift = (fun _1120564 : R => @lambda R unit (fun i : N => _1120564)). +Proof. exact (eq_refl lift). Qed. +Definition drop : (cart R unit) -> R := fun _1120569 : cart R unit => @dollar R unit _1120569 (NUMERAL (BIT1 0%N)). +Lemma drop_def : drop = (fun _1120569 : cart R unit => @dollar R unit _1120569 (NUMERAL (BIT1 0%N))). +Proof. exact (eq_refl drop). Qed. +Definition indicator {M : Type'} : ((cart R M) -> Prop) -> (cart R M) -> cart R unit := fun _1122337 : (cart R M) -> Prop => fun x : cart R M => @COND (cart R unit) (@IN (cart R M) x _1122337) (@vec unit (NUMERAL (BIT1 0%N))) (@vec unit (NUMERAL 0%N)). +Lemma indicator_def {M : Type'} : (@indicator M) = (fun _1122337 : (cart R M) -> Prop => fun x : cart R M => @COND (cart R unit) (@IN (cart R M) x _1122337) (@vec unit (NUMERAL (BIT1 0%N))) (@vec unit (NUMERAL 0%N))). +Proof. exact (eq_refl (@indicator M)). Qed. +Definition dropout {M N' : Type'} : N -> (cart R M) -> cart R N' := fun _1122860 : N => fun _1122861 : cart R M => @lambda R N' (fun i : N => @COND R ((N.lt i _1122860) /\ (N.le i (@dimindex M (@UNIV M)))) (@dollar R M _1122861 i) (@COND R (N.le (N.add i (NUMERAL (BIT1 0%N))) (@dimindex M (@UNIV M))) (@dollar R M _1122861 (N.add i (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL 0%N)))). +Lemma dropout_def {M N' : Type'} : (@dropout M N') = (fun _1122860 : N => fun _1122861 : cart R M => @lambda R N' (fun i : N => @COND R ((N.lt i _1122860) /\ (N.le i (@dimindex M (@UNIV M)))) (@dollar R M _1122861 i) (@COND R (N.le (N.add i (NUMERAL (BIT1 0%N))) (@dimindex M (@UNIV M))) (@dollar R M _1122861 (N.add i (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL 0%N))))). +Proof. exact (eq_refl (@dropout M N')). Qed. +Definition pushin {_611181 _611182 _611193 : Type'} : N -> _611182 -> (cart _611182 _611193) -> cart _611182 _611181 := fun _1122872 : N => fun _1122873 : _611182 => fun _1122874 : cart _611182 _611193 => @lambda _611182 _611181 (fun i : N => @COND _611182 (N.lt i _1122872) (@dollar _611182 _611193 _1122874 i) (@COND _611182 (i = _1122872) _1122873 (@dollar _611182 _611193 _1122874 (N.sub i (NUMERAL (BIT1 0%N)))))). +Lemma pushin_def {_611181 _611182 _611193 : Type'} : (@pushin _611181 _611182 _611193) = (fun _1122872 : N => fun _1122873 : _611182 => fun _1122874 : cart _611182 _611193 => @lambda _611182 _611181 (fun i : N => @COND _611182 (N.lt i _1122872) (@dollar _611182 _611193 _1122874 i) (@COND _611182 (i = _1122872) _1122873 (@dollar _611182 _611193 _1122874 (N.sub i (NUMERAL (BIT1 0%N))))))). +Proof. exact (eq_refl (@pushin _611181 _611182 _611193)). Qed. +Definition subspace {_612295 : Type'} : ((cart R _612295) -> Prop) -> Prop := fun _1123276 : (cart R _612295) -> Prop => (@IN (cart R _612295) (@vec _612295 (NUMERAL 0%N)) _1123276) /\ ((forall x : cart R _612295, forall y : cart R _612295, ((@IN (cart R _612295) x _1123276) /\ (@IN (cart R _612295) y _1123276)) -> @IN (cart R _612295) (@vector_add _612295 x y) _1123276) /\ (forall c : R, forall x : cart R _612295, (@IN (cart R _612295) x _1123276) -> @IN (cart R _612295) (@percent _612295 c x) _1123276)). +Lemma subspace_def {_612295 : Type'} : (@subspace _612295) = (fun _1123276 : (cart R _612295) -> Prop => (@IN (cart R _612295) (@vec _612295 (NUMERAL 0%N)) _1123276) /\ ((forall x : cart R _612295, forall y : cart R _612295, ((@IN (cart R _612295) x _1123276) /\ (@IN (cart R _612295) y _1123276)) -> @IN (cart R _612295) (@vector_add _612295 x y) _1123276) /\ (forall c : R, forall x : cart R _612295, (@IN (cart R _612295) x _1123276) -> @IN (cart R _612295) (@percent _612295 c x) _1123276))). +Proof. exact (eq_refl (@subspace _612295)). Qed. +Definition span {_612307 : Type'} : ((cart R _612307) -> Prop) -> (cart R _612307) -> Prop := fun _1123281 : (cart R _612307) -> Prop => @hull (cart R _612307) (@subspace _612307) _1123281. +Lemma span_def {_612307 : Type'} : (@span _612307) = (fun _1123281 : (cart R _612307) -> Prop => @hull (cart R _612307) (@subspace _612307) _1123281). +Proof. exact (eq_refl (@span _612307)). Qed. +Definition dependent {_612325 : Type'} : ((cart R _612325) -> Prop) -> Prop := fun _1123286 : (cart R _612325) -> Prop => exists a : cart R _612325, (@IN (cart R _612325) a _1123286) /\ (@IN (cart R _612325) a (@span _612325 (@DELETE (cart R _612325) _1123286 a))). +Lemma dependent_def {_612325 : Type'} : (@dependent _612325) = (fun _1123286 : (cart R _612325) -> Prop => exists a : cart R _612325, (@IN (cart R _612325) a _1123286) /\ (@IN (cart R _612325) a (@span _612325 (@DELETE (cart R _612325) _1123286 a)))). +Proof. exact (eq_refl (@dependent _612325)). Qed. +Definition independent {_612335 : Type'} : ((cart R _612335) -> Prop) -> Prop := fun _1123291 : (cart R _612335) -> Prop => ~ (@dependent _612335 _1123291). +Lemma independent_def {_612335 : Type'} : (@independent _612335) = (fun _1123291 : (cart R _612335) -> Prop => ~ (@dependent _612335 _1123291)). +Proof. exact (eq_refl (@independent _612335)). Qed. +Definition dim {N' : Type'} : ((cart R N') -> Prop) -> N := fun _1132010 : (cart R N') -> Prop => @ε N (fun n : N => exists b : (cart R N') -> Prop, (@SUBSET (cart R N') b _1132010) /\ ((@independent N' b) /\ ((@SUBSET (cart R N') _1132010 (@span N' b)) /\ (@HAS_SIZE (cart R N') b n)))). +Lemma dim_def {N' : Type'} : (@dim N') = (fun _1132010 : (cart R N') -> Prop => @ε N (fun n : N => exists b : (cart R N') -> Prop, (@SUBSET (cart R N') b _1132010) /\ ((@independent N' b) /\ ((@SUBSET (cart R N') _1132010 (@span N' b)) /\ (@HAS_SIZE (cart R N') b n))))). +Proof. exact (eq_refl (@dim N')). Qed. +Definition euclidean_matroid {N' : Type'} : Matroid (cart R N') := @matroid (cart R N') (@pair ((cart R N') -> Prop) (((cart R N') -> Prop) -> (cart R N') -> Prop) (@UNIV (cart R N')) (@span N')). +Lemma euclidean_matroid_def {N' : Type'} : (@euclidean_matroid N') = (@matroid (cart R N') (@pair ((cart R N') -> Prop) (((cart R N') -> Prop) -> (cart R N') -> Prop) (@UNIV (cart R N')) (@span N'))). +Proof. exact (eq_refl (@euclidean_matroid N')). Qed. +Definition rowvector {N' : Type'} : (cart R N') -> cart (cart R N') unit := fun _1147082 : cart R N' => @lambda (cart R N') unit (fun i : N => @lambda R N' (fun j : N => @dollar R N' _1147082 j)). +Lemma rowvector_def {N' : Type'} : (@rowvector N') = (fun _1147082 : cart R N' => @lambda (cart R N') unit (fun i : N => @lambda R N' (fun j : N => @dollar R N' _1147082 j))). +Proof. exact (eq_refl (@rowvector N')). Qed. +Definition columnvector {N' : Type'} : (cart R N') -> cart (cart R unit) N' := fun _1147087 : cart R N' => @lambda (cart R unit) N' (fun i : N => @lambda R unit (fun j : N => @dollar R N' _1147087 i)). +Lemma columnvector_def {N' : Type'} : (@columnvector N') = (fun _1147087 : cart R N' => @lambda (cart R unit) N' (fun i : N => @lambda R unit (fun j : N => @dollar R N' _1147087 i))). +Proof. exact (eq_refl (@columnvector N')). Qed. +Definition rank {M N' : Type'} : (cart (cart R M) N') -> N := fun _1147313 : cart (cart R M) N' => @dim N' (@columns N' M _1147313). +Lemma rank_def {M N' : Type'} : (@rank M N') = (fun _1147313 : cart (cart R M) N' => @dim N' (@columns N' M _1147313)). +Proof. exact (eq_refl (@rank M N')). Qed. +Definition matrix_inv {M N' : Type'} : (cart (cart R M) N') -> cart (cart R N') M := fun _1165244 : cart (cart R M) N' => @matrix N' M (fun y : cart R N' => @ε (cart R M) (fun x : cart R M => (forall w : cart R M, ((@matrix_vector_mul N' M _1165244 w) = (@vec N' (NUMERAL 0%N))) -> @orthogonal M x w) /\ (forall z : cart R M, @orthogonal N' (@vector_sub N' y (@matrix_vector_mul N' M _1165244 x)) (@matrix_vector_mul N' M _1165244 z)))). +Lemma matrix_inv_def {M N' : Type'} : (@matrix_inv M N') = (fun _1165244 : cart (cart R M) N' => @matrix N' M (fun y : cart R N' => @ε (cart R M) (fun x : cart R M => (forall w : cart R M, ((@matrix_vector_mul N' M _1165244 w) = (@vec N' (NUMERAL 0%N))) -> @orthogonal M x w) /\ (forall z : cart R M, @orthogonal N' (@vector_sub N' y (@matrix_vector_mul N' M _1165244 x)) (@matrix_vector_mul N' M _1165244 z))))). +Proof. exact (eq_refl (@matrix_inv M N')). Qed. +Definition infnorm {N' : Type'} : (cart R N') -> R := @ε ((prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (cart R N') -> R) (fun infnorm' : (prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (cart R N') -> R => forall _1167722 : prod N (prod N (prod N (prod N (prod N (prod N N))))), forall x : cart R N', (infnorm' _1167722 x) = (sup (@GSPEC R (fun GEN_PVAR_2493 : R => exists i : N, @SETSPEC R GEN_PVAR_2493 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (Rabs (@dollar R N' x i)))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))). +Lemma infnorm_def {N' : Type'} : (@infnorm N') = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (cart R N') -> R) (fun infnorm' : (prod N (prod N (prod N (prod N (prod N (prod N N)))))) -> (cart R N') -> R => forall _1167722 : prod N (prod N (prod N (prod N (prod N (prod N N))))), forall x : cart R N', (infnorm' _1167722 x) = (sup (@GSPEC R (fun GEN_PVAR_2493 : R => exists i : N, @SETSPEC R GEN_PVAR_2493 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (Rabs (@dollar R N' x i)))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))). +Proof. exact (eq_refl (@infnorm N')). Qed. +Definition collinear {_645714 : Type'} : ((cart R _645714) -> Prop) -> Prop := fun _1168150 : (cart R _645714) -> Prop => exists u : cart R _645714, forall x : cart R _645714, forall y : cart R _645714, ((@IN (cart R _645714) x _1168150) /\ (@IN (cart R _645714) y _1168150)) -> exists c : R, (@vector_sub _645714 x y) = (@percent _645714 c u). +Lemma collinear_def {_645714 : Type'} : (@collinear _645714) = (fun _1168150 : (cart R _645714) -> Prop => exists u : cart R _645714, forall x : cart R _645714, forall y : cart R _645714, ((@IN (cart R _645714) x _1168150) /\ (@IN (cart R _645714) y _1168150)) -> exists c : R, (@vector_sub _645714 x y) = (@percent _645714 c u)). +Proof. exact (eq_refl (@collinear _645714)). Qed. +Definition between {_647401 : Type'} : (cart R _647401) -> (prod (cart R _647401) (cart R _647401)) -> Prop := fun _1169678 : cart R _647401 => fun _1169679 : prod (cart R _647401) (cart R _647401) => (@distance _647401 (@pair (cart R _647401) (cart R _647401) (@fst (cart R _647401) (cart R _647401) _1169679) (@snd (cart R _647401) (cart R _647401) _1169679))) = (Rplus (@distance _647401 (@pair (cart R _647401) (cart R _647401) (@fst (cart R _647401) (cart R _647401) _1169679) _1169678)) (@distance _647401 (@pair (cart R _647401) (cart R _647401) _1169678 (@snd (cart R _647401) (cart R _647401) _1169679)))). +Lemma between_def {_647401 : Type'} : (@between _647401) = (fun _1169678 : cart R _647401 => fun _1169679 : prod (cart R _647401) (cart R _647401) => (@distance _647401 (@pair (cart R _647401) (cart R _647401) (@fst (cart R _647401) (cart R _647401) _1169679) (@snd (cart R _647401) (cart R _647401) _1169679))) = (Rplus (@distance _647401 (@pair (cart R _647401) (cart R _647401) (@fst (cart R _647401) (cart R _647401) _1169679) _1169678)) (@distance _647401 (@pair (cart R _647401) (cart R _647401) _1169678 (@snd (cart R _647401) (cart R _647401) _1169679))))). +Proof. exact (eq_refl (@between _647401)). Qed. +Definition midpoint {_648572 : Type'} : (prod (cart R _648572) (cart R _648572)) -> cart R _648572 := fun _1170342 : prod (cart R _648572) (cart R _648572) => @percent _648572 (Rinv (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (@vector_add _648572 (@fst (cart R _648572) (cart R _648572) _1170342) (@snd (cart R _648572) (cart R _648572) _1170342)). +Lemma midpoint_def {_648572 : Type'} : (@midpoint _648572) = (fun _1170342 : prod (cart R _648572) (cart R _648572) => @percent _648572 (Rinv (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (@vector_add _648572 (@fst (cart R _648572) (cart R _648572) _1170342) (@snd (cart R _648572) (cart R _648572) _1170342))). +Proof. exact (eq_refl (@midpoint _648572)). Qed. +Definition open_interval {N' : Type'} : (prod (cart R N') (cart R N')) -> (cart R N') -> Prop := fun _1170425 : prod (cart R N') (cart R N') => @GSPEC (cart R N') (fun GEN_PVAR_2498 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2498 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rlt (@dollar R N' (@fst (cart R N') (cart R N') _1170425) i) (@dollar R N' x i)) /\ (Rlt (@dollar R N' x i) (@dollar R N' (@snd (cart R N') (cart R N') _1170425) i))) x). +Lemma open_interval_def {N' : Type'} : (@open_interval N') = (fun _1170425 : prod (cart R N') (cart R N') => @GSPEC (cart R N') (fun GEN_PVAR_2498 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2498 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rlt (@dollar R N' (@fst (cart R N') (cart R N') _1170425) i) (@dollar R N' x i)) /\ (Rlt (@dollar R N' x i) (@dollar R N' (@snd (cart R N') (cart R N') _1170425) i))) x)). +Proof. exact (eq_refl (@open_interval N')). Qed. +Definition closed_interval {N' : Type'} : (list (prod (cart R N') (cart R N'))) -> (cart R N') -> Prop := fun _1170434 : list (prod (cart R N') (cart R N')) => @GSPEC (cart R N') (fun GEN_PVAR_2499 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2499 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rle (@dollar R N' (@fst (cart R N') (cart R N') (@hd (prod (cart R N') (cart R N')) _1170434)) i) (@dollar R N' x i)) /\ (Rle (@dollar R N' x i) (@dollar R N' (@snd (cart R N') (cart R N') (@hd (prod (cart R N') (cart R N')) _1170434)) i))) x). +Lemma closed_interval_def {N' : Type'} : (@closed_interval N') = (fun _1170434 : list (prod (cart R N') (cart R N')) => @GSPEC (cart R N') (fun GEN_PVAR_2499 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2499 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rle (@dollar R N' (@fst (cart R N') (cart R N') (@hd (prod (cart R N') (cart R N')) _1170434)) i) (@dollar R N' x i)) /\ (Rle (@dollar R N' x i) (@dollar R N' (@snd (cart R N') (cart R N') (@hd (prod (cart R N') (cart R N')) _1170434)) i))) x)). +Proof. exact (eq_refl (@closed_interval N')). Qed. +Definition trace {N' : Type'} : (cart (cart R N') N') -> R := fun _1177860 : cart (cart R N') N' => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' (@dollar (cart R N') N' _1177860 i) i). +Lemma trace_def {N' : Type'} : (@trace N') = (fun _1177860 : cart (cart R N') N' => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' (@dollar (cart R N') N' _1177860 i) i)). +Proof. exact (eq_refl (@trace N')). Qed. +Definition det {N' : Type'} : (cart (cart R N') N') -> R := fun _1177873 : cart (cart R N') N' => @sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_2514 : N -> N => exists p : N -> N, @SETSPEC (N -> N) GEN_PVAR_2514 (@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) p)) (fun p : N -> N => Rmult (@sign N p) (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' (@dollar (cart R N') N' _1177873 i) (p i)))). +Lemma det_def {N' : Type'} : (@det N') = (fun _1177873 : cart (cart R N') N' => @sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_2514 : N -> N => exists p : N -> N, @SETSPEC (N -> N) GEN_PVAR_2514 (@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) p)) (fun p : N -> N => Rmult (@sign N p) (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' (@dollar (cart R N') N' _1177873 i) (p i))))). +Proof. exact (eq_refl (@det N')). Qed. +Definition cofactor {N' : Type'} : (cart (cart R N') N') -> cart (cart R N') N' := fun _1183022 : cart (cart R N') N' => @lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @det N' (@lambda (cart R N') N' (fun k : N => @lambda R N' (fun l : N => @COND R ((k = i) /\ (l = j)) (R_of_N (NUMERAL (BIT1 0%N))) (@COND R ((k = i) \/ (l = j)) (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' _1183022 k) l))))))). +Lemma cofactor_def {N' : Type'} : (@cofactor N') = (fun _1183022 : cart (cart R N') N' => @lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @det N' (@lambda (cart R N') N' (fun k : N => @lambda R N' (fun l : N => @COND R ((k = i) /\ (l = j)) (R_of_N (NUMERAL (BIT1 0%N))) (@COND R ((k = i) \/ (l = j)) (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' _1183022 k) l)))))))). +Proof. exact (eq_refl (@cofactor N')). Qed. +Definition diagonal_matrix {M N' : Type'} : (cart (cart R N') M) -> Prop := fun _1189826 : cart (cart R N') M => forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (~ (i = j)))))) -> (@dollar R N' (@dollar (cart R N') M _1189826 i) j) = (R_of_N (NUMERAL 0%N)). +Lemma diagonal_matrix_def {M N' : Type'} : (@diagonal_matrix M N') = (fun _1189826 : cart (cart R N') M => forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (~ (i = j)))))) -> (@dollar R N' (@dollar (cart R N') M _1189826 i) j) = (R_of_N (NUMERAL 0%N))). +Proof. exact (eq_refl (@diagonal_matrix M N')). Qed. +Definition positive_semidefinite {N' : Type'} : (cart (cart R N') N') -> Prop := fun _1190646 : cart (cart R N') N' => (@symmetric_matrix N' _1190646) /\ (forall x : cart R N', Rle (R_of_N (NUMERAL 0%N)) (@dot N' x (@matrix_vector_mul N' N' _1190646 x))). +Lemma positive_semidefinite_def {N' : Type'} : (@positive_semidefinite N') = (fun _1190646 : cart (cart R N') N' => (@symmetric_matrix N' _1190646) /\ (forall x : cart R N', Rle (R_of_N (NUMERAL 0%N)) (@dot N' x (@matrix_vector_mul N' N' _1190646 x)))). +Proof. exact (eq_refl (@positive_semidefinite N')). Qed. +Definition positive_definite {N' : Type'} : (cart (cart R N') N') -> Prop := fun _1191270 : cart (cart R N') N' => (@symmetric_matrix N' _1191270) /\ (forall x : cart R N', (~ (x = (@vec N' (NUMERAL 0%N)))) -> Rlt (R_of_N (NUMERAL 0%N)) (@dot N' x (@matrix_vector_mul N' N' _1191270 x))). +Lemma positive_definite_def {N' : Type'} : (@positive_definite N') = (fun _1191270 : cart (cart R N') N' => (@symmetric_matrix N' _1191270) /\ (forall x : cart R N', (~ (x = (@vec N' (NUMERAL 0%N)))) -> Rlt (R_of_N (NUMERAL 0%N)) (@dot N' x (@matrix_vector_mul N' N' _1191270 x)))). +Proof. exact (eq_refl (@positive_definite N')). Qed. +Definition orthogonal_transformation {N' : Type'} : ((cart R N') -> cart R N') -> Prop := fun _1191979 : (cart R N') -> cart R N' => (@linear N' N' _1191979) /\ (forall v : cart R N', forall w : cart R N', (@dot N' (_1191979 v) (_1191979 w)) = (@dot N' v w)). +Lemma orthogonal_transformation_def {N' : Type'} : (@orthogonal_transformation N') = (fun _1191979 : (cart R N') -> cart R N' => (@linear N' N' _1191979) /\ (forall v : cart R N', forall w : cart R N', (@dot N' (_1191979 v) (_1191979 w)) = (@dot N' v w))). +Proof. exact (eq_refl (@orthogonal_transformation N')). Qed. +Definition orthogonal_matrix {N' : Type'} : (cart (cart R N') N') -> Prop := fun _1192144 : cart (cart R N') N' => ((@matrix_mul N' N' N' (@transp N' N' _1192144) _1192144) = (@mat N' N' (NUMERAL (BIT1 0%N)))) /\ ((@matrix_mul N' N' N' _1192144 (@transp N' N' _1192144)) = (@mat N' N' (NUMERAL (BIT1 0%N)))). +Lemma orthogonal_matrix_def {N' : Type'} : (@orthogonal_matrix N') = (fun _1192144 : cart (cart R N') N' => ((@matrix_mul N' N' N' (@transp N' N' _1192144) _1192144) = (@mat N' N' (NUMERAL (BIT1 0%N)))) /\ ((@matrix_mul N' N' N' _1192144 (@transp N' N' _1192144)) = (@mat N' N' (NUMERAL (BIT1 0%N))))). +Proof. exact (eq_refl (@orthogonal_matrix N')). Qed. +Definition rotation_matrix {_680518 : Type'} : (cart (cart R _680518) _680518) -> Prop := fun _1200201 : cart (cart R _680518) _680518 => (@orthogonal_matrix _680518 _1200201) /\ ((@det _680518 _1200201) = (R_of_N (NUMERAL (BIT1 0%N)))). +Lemma rotation_matrix_def {_680518 : Type'} : (@rotation_matrix _680518) = (fun _1200201 : cart (cart R _680518) _680518 => (@orthogonal_matrix _680518 _1200201) /\ ((@det _680518 _1200201) = (R_of_N (NUMERAL (BIT1 0%N))))). +Proof. exact (eq_refl (@rotation_matrix _680518)). Qed. +Definition rotoinversion_matrix {_680533 : Type'} : (cart (cart R _680533) _680533) -> Prop := fun _1200206 : cart (cart R _680533) _680533 => (@orthogonal_matrix _680533 _1200206) /\ ((@det _680533 _1200206) = (Ropp (R_of_N (NUMERAL (BIT1 0%N))))). +Lemma rotoinversion_matrix_def {_680533 : Type'} : (@rotoinversion_matrix _680533) = (fun _1200206 : cart (cart R _680533) _680533 => (@orthogonal_matrix _680533 _1200206) /\ ((@det _680533 _1200206) = (Ropp (R_of_N (NUMERAL (BIT1 0%N)))))). +Proof. exact (eq_refl (@rotoinversion_matrix _680533)). Qed. +Definition reflect_along {N' : Type'} : (cart R N') -> (cart R N') -> cart R N' := fun _1204900 : cart R N' => fun _1204901 : cart R N' => @vector_sub N' _1204901 (@percent N' (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rdiv (@dot N' _1204901 _1204900) (@dot N' _1204900 _1204900))) _1204900). +Lemma reflect_along_def {N' : Type'} : (@reflect_along N') = (fun _1204900 : cart R N' => fun _1204901 : cart R N' => @vector_sub N' _1204901 (@percent N' (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rdiv (@dot N' _1204901 _1204900) (@dot N' _1204900 _1204900))) _1204900)). +Proof. exact (eq_refl (@reflect_along N')). Qed. +Definition _open {_688489 : Type'} : ((cart R _688489) -> Prop) -> Prop := fun _1207063 : (cart R _688489) -> Prop => forall x : cart R _688489, (@IN (cart R _688489) x _1207063) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x' : cart R _688489, (Rlt (@distance _688489 (@pair (cart R _688489) (cart R _688489) x' x)) e) -> @IN (cart R _688489) x' _1207063). +Lemma _open_def {_688489 : Type'} : (@_open _688489) = (fun _1207063 : (cart R _688489) -> Prop => forall x : cart R _688489, (@IN (cart R _688489) x _1207063) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x' : cart R _688489, (Rlt (@distance _688489 (@pair (cart R _688489) (cart R _688489) x' x)) e) -> @IN (cart R _688489) x' _1207063)). +Proof. exact (eq_refl (@_open _688489)). Qed. +Definition euclidean {_688505 : Type'} : Topology (cart R _688505) := @topology (cart R _688505) (@_open _688505). +Lemma euclidean_def {_688505 : Type'} : (@euclidean _688505) = (@topology (cart R _688505) (@_open _688505)). +Proof. exact (eq_refl (@euclidean _688505)). Qed. +Definition euclidean_metric {N' : Type'} : Metric (cart R N') := @metric (cart R N') (@pair ((cart R N') -> Prop) ((prod (cart R N') (cart R N')) -> R) (@UNIV (cart R N')) (@distance N')). +Lemma euclidean_metric_def {N' : Type'} : (@euclidean_metric N') = (@metric (cart R N') (@pair ((cart R N') -> Prop) ((prod (cart R N') (cart R N')) -> R) (@UNIV (cart R N')) (@distance N'))). +Proof. exact (eq_refl (@euclidean_metric N')). Qed. +Definition closed {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _1207093 : (cart R N') -> Prop => @_open N' (@DIFF (cart R N') (@UNIV (cart R N')) _1207093). +Lemma closed_def {N' : Type'} : (@closed N') = (fun _1207093 : (cart R N') -> Prop => @_open N' (@DIFF (cart R N') (@UNIV (cart R N')) _1207093)). +Proof. exact (eq_refl (@closed N')). Qed. +Definition ball {_690257 : Type'} : (prod (cart R _690257) R) -> (cart R _690257) -> Prop := fun _1207490 : prod (cart R _690257) R => @GSPEC (cart R _690257) (fun GEN_PVAR_2710 : cart R _690257 => exists y : cart R _690257, @SETSPEC (cart R _690257) GEN_PVAR_2710 (Rlt (@distance _690257 (@pair (cart R _690257) (cart R _690257) (@fst (cart R _690257) R _1207490) y)) (@snd (cart R _690257) R _1207490)) y). +Lemma ball_def {_690257 : Type'} : (@ball _690257) = (fun _1207490 : prod (cart R _690257) R => @GSPEC (cart R _690257) (fun GEN_PVAR_2710 : cart R _690257 => exists y : cart R _690257, @SETSPEC (cart R _690257) GEN_PVAR_2710 (Rlt (@distance _690257 (@pair (cart R _690257) (cart R _690257) (@fst (cart R _690257) R _1207490) y)) (@snd (cart R _690257) R _1207490)) y)). +Proof. exact (eq_refl (@ball _690257)). Qed. +Definition cball {_690350 : Type'} : (prod (cart R _690350) R) -> (cart R _690350) -> Prop := fun _1207499 : prod (cart R _690350) R => @GSPEC (cart R _690350) (fun GEN_PVAR_2711 : cart R _690350 => exists y : cart R _690350, @SETSPEC (cart R _690350) GEN_PVAR_2711 (Rle (@distance _690350 (@pair (cart R _690350) (cart R _690350) (@fst (cart R _690350) R _1207499) y)) (@snd (cart R _690350) R _1207499)) y). +Lemma cball_def {_690350 : Type'} : (@cball _690350) = (fun _1207499 : prod (cart R _690350) R => @GSPEC (cart R _690350) (fun GEN_PVAR_2711 : cart R _690350 => exists y : cart R _690350, @SETSPEC (cart R _690350) GEN_PVAR_2711 (Rle (@distance _690350 (@pair (cart R _690350) (cart R _690350) (@fst (cart R _690350) R _1207499) y)) (@snd (cart R _690350) R _1207499)) y)). +Proof. exact (eq_refl (@cball _690350)). Qed. +Definition sphere {_690443 : Type'} : (prod (cart R _690443) R) -> (cart R _690443) -> Prop := fun _1207508 : prod (cart R _690443) R => @GSPEC (cart R _690443) (fun GEN_PVAR_2712 : cart R _690443 => exists y : cart R _690443, @SETSPEC (cart R _690443) GEN_PVAR_2712 ((@distance _690443 (@pair (cart R _690443) (cart R _690443) (@fst (cart R _690443) R _1207508) y)) = (@snd (cart R _690443) R _1207508)) y). +Lemma sphere_def {_690443 : Type'} : (@sphere _690443) = (fun _1207508 : prod (cart R _690443) R => @GSPEC (cart R _690443) (fun GEN_PVAR_2712 : cart R _690443 => exists y : cart R _690443, @SETSPEC (cart R _690443) GEN_PVAR_2712 ((@distance _690443 (@pair (cart R _690443) (cart R _690443) (@fst (cart R _690443) R _1207508) y)) = (@snd (cart R _690443) R _1207508)) y)). +Proof. exact (eq_refl (@sphere _690443)). Qed. +Definition manhattan {N' : Type'} : Metric (cart R N') := @metric (cart R N') (@pair ((cart R N') -> Prop) ((prod (cart R N') (cart R N')) -> R) (@UNIV (cart R N')) (@GABS ((prod (cart R N') (cart R N')) -> R) (fun f : (prod (cart R N') (cart R N')) -> R => forall x : cart R N', forall y : cart R N', @GEQ R (f (@pair (cart R N') (cart R N') x y)) (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => Rabs (Rminus (@dollar R N' x i) (@dollar R N' y i))))))). +Lemma manhattan_def {N' : Type'} : (@manhattan N') = (@metric (cart R N') (@pair ((cart R N') -> Prop) ((prod (cart R N') (cart R N')) -> R) (@UNIV (cart R N')) (@GABS ((prod (cart R N') (cart R N')) -> R) (fun f : (prod (cart R N') (cart R N')) -> R => forall x : cart R N', forall y : cart R N', @GEQ R (f (@pair (cart R N') (cart R N') x y)) (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => Rabs (Rminus (@dollar R N' x i) (@dollar R N' y i)))))))). +Proof. exact (eq_refl (@manhattan N')). Qed. +Definition closed_segment {_693754 : Type'} : (list (prod (cart R _693754) (cart R _693754))) -> (cart R _693754) -> Prop := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) -> (list (prod (cart R _693754) (cart R _693754))) -> (cart R _693754) -> Prop) (fun closed_segment' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) -> (list (prod (cart R _693754) (cart R _693754))) -> (cart R _693754) -> Prop => forall _1209706 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))), forall a : cart R _693754, forall b : cart R _693754, (closed_segment' _1209706 (@cons (prod (cart R _693754) (cart R _693754)) (@pair (cart R _693754) (cart R _693754) a b) (@nil (prod (cart R _693754) (cart R _693754))))) = (@GSPEC (cart R _693754) (fun GEN_PVAR_2714 : cart R _693754 => exists u : R, @SETSPEC (cart R _693754) GEN_PVAR_2714 ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N))))) (@vector_add _693754 (@percent _693754 (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) a) (@percent _693754 u b))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N))))))))))))))))))))). +Lemma closed_segment_def {_693754 : Type'} : (@closed_segment _693754) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) -> (list (prod (cart R _693754) (cart R _693754))) -> (cart R _693754) -> Prop) (fun closed_segment' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) -> (list (prod (cart R _693754) (cart R _693754))) -> (cart R _693754) -> Prop => forall _1209706 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))), forall a : cart R _693754, forall b : cart R _693754, (closed_segment' _1209706 (@cons (prod (cart R _693754) (cart R _693754)) (@pair (cart R _693754) (cart R _693754) a b) (@nil (prod (cart R _693754) (cart R _693754))))) = (@GSPEC (cart R _693754) (fun GEN_PVAR_2714 : cart R _693754 => exists u : R, @SETSPEC (cart R _693754) GEN_PVAR_2714 ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N))))) (@vector_add _693754 (@percent _693754 (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) a) (@percent _693754 u b))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))))))))))))))))). +Proof. exact (eq_refl (@closed_segment _693754)). Qed. +Definition open_segment {_693771 : Type'} : (prod (cart R _693771) (cart R _693771)) -> (cart R _693771) -> Prop := fun _1209707 : prod (cart R _693771) (cart R _693771) => @DIFF (cart R _693771) (@closed_segment _693771 (@cons (prod (cart R _693771) (cart R _693771)) (@pair (cart R _693771) (cart R _693771) (@fst (cart R _693771) (cart R _693771) _1209707) (@snd (cart R _693771) (cart R _693771) _1209707)) (@nil (prod (cart R _693771) (cart R _693771))))) (@INSERT (cart R _693771) (@fst (cart R _693771) (cart R _693771) _1209707) (@INSERT (cart R _693771) (@snd (cart R _693771) (cart R _693771) _1209707) (@EMPTY (cart R _693771)))). +Lemma open_segment_def {_693771 : Type'} : (@open_segment _693771) = (fun _1209707 : prod (cart R _693771) (cart R _693771) => @DIFF (cart R _693771) (@closed_segment _693771 (@cons (prod (cart R _693771) (cart R _693771)) (@pair (cart R _693771) (cart R _693771) (@fst (cart R _693771) (cart R _693771) _1209707) (@snd (cart R _693771) (cart R _693771) _1209707)) (@nil (prod (cart R _693771) (cart R _693771))))) (@INSERT (cart R _693771) (@fst (cart R _693771) (cart R _693771) _1209707) (@INSERT (cart R _693771) (@snd (cart R _693771) (cart R _693771) _1209707) (@EMPTY (cart R _693771))))). +Proof. exact (eq_refl (@open_segment _693771)). Qed. +Definition connected {_696240 : Type'} : ((cart R _696240) -> Prop) -> Prop := fun _1210817 : (cart R _696240) -> Prop => ~ (exists e1 : (cart R _696240) -> Prop, exists e2 : (cart R _696240) -> Prop, (@_open _696240 e1) /\ ((@_open _696240 e2) /\ ((@SUBSET (cart R _696240) _1210817 (@UNION (cart R _696240) e1 e2)) /\ (((@INTER (cart R _696240) e1 (@INTER (cart R _696240) e2 _1210817)) = (@EMPTY (cart R _696240))) /\ ((~ ((@INTER (cart R _696240) e1 _1210817) = (@EMPTY (cart R _696240)))) /\ (~ ((@INTER (cart R _696240) e2 _1210817) = (@EMPTY (cart R _696240))))))))). +Lemma connected_def {_696240 : Type'} : (@connected _696240) = (fun _1210817 : (cart R _696240) -> Prop => ~ (exists e1 : (cart R _696240) -> Prop, exists e2 : (cart R _696240) -> Prop, (@_open _696240 e1) /\ ((@_open _696240 e2) /\ ((@SUBSET (cart R _696240) _1210817 (@UNION (cart R _696240) e1 e2)) /\ (((@INTER (cart R _696240) e1 (@INTER (cart R _696240) e2 _1210817)) = (@EMPTY (cart R _696240))) /\ ((~ ((@INTER (cart R _696240) e1 _1210817) = (@EMPTY (cart R _696240)))) /\ (~ ((@INTER (cart R _696240) e2 _1210817) = (@EMPTY (cart R _696240)))))))))). +Proof. exact (eq_refl (@connected _696240)). Qed. +Definition limit_point_of {_698817 : Type'} : (cart R _698817) -> ((cart R _698817) -> Prop) -> Prop := fun _1213240 : cart R _698817 => fun _1213241 : (cart R _698817) -> Prop => forall t : (cart R _698817) -> Prop, ((@IN (cart R _698817) _1213240 t) /\ (@_open _698817 t)) -> exists y : cart R _698817, (~ (y = _1213240)) /\ ((@IN (cart R _698817) y _1213241) /\ (@IN (cart R _698817) y t)). +Lemma limit_point_of_def {_698817 : Type'} : (@limit_point_of _698817) = (fun _1213240 : cart R _698817 => fun _1213241 : (cart R _698817) -> Prop => forall t : (cart R _698817) -> Prop, ((@IN (cart R _698817) _1213240 t) /\ (@_open _698817 t)) -> exists y : cart R _698817, (~ (y = _1213240)) /\ ((@IN (cart R _698817) y _1213241) /\ (@IN (cart R _698817) y t))). +Proof. exact (eq_refl (@limit_point_of _698817)). Qed. +Definition interior {_700106 : Type'} : ((cart R _700106) -> Prop) -> (cart R _700106) -> Prop := fun _1214074 : (cart R _700106) -> Prop => @GSPEC (cart R _700106) (fun GEN_PVAR_2727 : cart R _700106 => exists x : cart R _700106, @SETSPEC (cart R _700106) GEN_PVAR_2727 (exists t : (cart R _700106) -> Prop, (@_open _700106 t) /\ ((@IN (cart R _700106) x t) /\ (@SUBSET (cart R _700106) t _1214074))) x). +Lemma interior_def {_700106 : Type'} : (@interior _700106) = (fun _1214074 : (cart R _700106) -> Prop => @GSPEC (cart R _700106) (fun GEN_PVAR_2727 : cart R _700106 => exists x : cart R _700106, @SETSPEC (cart R _700106) GEN_PVAR_2727 (exists t : (cart R _700106) -> Prop, (@_open _700106 t) /\ ((@IN (cart R _700106) x t) /\ (@SUBSET (cart R _700106) t _1214074))) x)). +Proof. exact (eq_refl (@interior _700106)). Qed. +Definition closure {_700740 : Type'} : ((cart R _700740) -> Prop) -> (cart R _700740) -> Prop := fun _1214504 : (cart R _700740) -> Prop => @UNION (cart R _700740) _1214504 (@GSPEC (cart R _700740) (fun GEN_PVAR_2729 : cart R _700740 => exists x : cart R _700740, @SETSPEC (cart R _700740) GEN_PVAR_2729 (@limit_point_of _700740 x _1214504) x)). +Lemma closure_def {_700740 : Type'} : (@closure _700740) = (fun _1214504 : (cart R _700740) -> Prop => @UNION (cart R _700740) _1214504 (@GSPEC (cart R _700740) (fun GEN_PVAR_2729 : cart R _700740 => exists x : cart R _700740, @SETSPEC (cart R _700740) GEN_PVAR_2729 (@limit_point_of _700740 x _1214504) x))). +Proof. exact (eq_refl (@closure _700740)). Qed. +Definition frontier {_703071 : Type'} : ((cart R _703071) -> Prop) -> (cart R _703071) -> Prop := fun _1215236 : (cart R _703071) -> Prop => @DIFF (cart R _703071) (@closure _703071 _1215236) (@interior _703071 _1215236). +Lemma frontier_def {_703071 : Type'} : (@frontier _703071) = (fun _1215236 : (cart R _703071) -> Prop => @DIFF (cart R _703071) (@closure _703071 _1215236) (@interior _703071 _1215236)). +Proof. exact (eq_refl (@frontier _703071)). Qed. +Definition _at {_704829 : Type'} : (cart R _704829) -> net (cart R _704829) := fun _1217412 : cart R _704829 => @atpointof (cart R _704829) (@euclidean _704829) _1217412. +Lemma _at_def {_704829 : Type'} : (@_at _704829) = (fun _1217412 : cart R _704829 => @atpointof (cart R _704829) (@euclidean _704829) _1217412). +Proof. exact (eq_refl (@_at _704829)). Qed. +Definition at_infinity {_704872 : Type'} : net (cart R _704872) := @mk_net (cart R _704872) (@pair (((cart R _704872) -> Prop) -> Prop) ((cart R _704872) -> Prop) (@GSPEC ((cart R _704872) -> Prop) (fun GEN_PVAR_2739 : (cart R _704872) -> Prop => exists b : R, @SETSPEC ((cart R _704872) -> Prop) GEN_PVAR_2739 (@IN R b (@UNIV R)) (@GSPEC (cart R _704872) (fun GEN_PVAR_2738 : cart R _704872 => exists x : cart R _704872, @SETSPEC (cart R _704872) GEN_PVAR_2738 (Rle b (@vector_norm _704872 x)) x)))) (@EMPTY (cart R _704872))). +Lemma at_infinity_def {_704872 : Type'} : (@at_infinity _704872) = (@mk_net (cart R _704872) (@pair (((cart R _704872) -> Prop) -> Prop) ((cart R _704872) -> Prop) (@GSPEC ((cart R _704872) -> Prop) (fun GEN_PVAR_2739 : (cart R _704872) -> Prop => exists b : R, @SETSPEC ((cart R _704872) -> Prop) GEN_PVAR_2739 (@IN R b (@UNIV R)) (@GSPEC (cart R _704872) (fun GEN_PVAR_2738 : cart R _704872 => exists x : cart R _704872, @SETSPEC (cart R _704872) GEN_PVAR_2738 (Rle b (@vector_norm _704872 x)) x)))) (@EMPTY (cart R _704872)))). +Proof. exact (eq_refl (@at_infinity _704872)). Qed. +Definition at_posinfinity : net R := @mk_net R (@pair ((R -> Prop) -> Prop) (R -> Prop) (@GSPEC (R -> Prop) (fun GEN_PVAR_2742 : R -> Prop => exists a : R, @SETSPEC (R -> Prop) GEN_PVAR_2742 (@IN R a (@UNIV R)) (@GSPEC R (fun GEN_PVAR_2741 : R => exists x : R, @SETSPEC R GEN_PVAR_2741 (Rle a x) x)))) (@EMPTY R)). +Lemma at_posinfinity_def : at_posinfinity = (@mk_net R (@pair ((R -> Prop) -> Prop) (R -> Prop) (@GSPEC (R -> Prop) (fun GEN_PVAR_2742 : R -> Prop => exists a : R, @SETSPEC (R -> Prop) GEN_PVAR_2742 (@IN R a (@UNIV R)) (@GSPEC R (fun GEN_PVAR_2741 : R => exists x : R, @SETSPEC R GEN_PVAR_2741 (Rle a x) x)))) (@EMPTY R))). +Proof. exact (eq_refl at_posinfinity). Qed. +Definition at_neginfinity : net R := @mk_net R (@pair ((R -> Prop) -> Prop) (R -> Prop) (@GSPEC (R -> Prop) (fun GEN_PVAR_2745 : R -> Prop => exists a : R, @SETSPEC (R -> Prop) GEN_PVAR_2745 (@IN R a (@UNIV R)) (@GSPEC R (fun GEN_PVAR_2744 : R => exists x : R, @SETSPEC R GEN_PVAR_2744 (Rle x a) x)))) (@EMPTY R)). +Lemma at_neginfinity_def : at_neginfinity = (@mk_net R (@pair ((R -> Prop) -> Prop) (R -> Prop) (@GSPEC (R -> Prop) (fun GEN_PVAR_2745 : R -> Prop => exists a : R, @SETSPEC (R -> Prop) GEN_PVAR_2745 (@IN R a (@UNIV R)) (@GSPEC R (fun GEN_PVAR_2744 : R => exists x : R, @SETSPEC R GEN_PVAR_2744 (Rle x a) x)))) (@EMPTY R))). +Proof. exact (eq_refl at_neginfinity). Qed. +Definition in_direction {_705005 : Type'} : (cart R _705005) -> (cart R _705005) -> net (cart R _705005) := fun _1217417 : cart R _705005 => fun _1217418 : cart R _705005 => @within (cart R _705005) (@_at _705005 _1217417) (@GSPEC (cart R _705005) (fun GEN_PVAR_2746 : cart R _705005 => exists b : cart R _705005, @SETSPEC (cart R _705005) GEN_PVAR_2746 (exists c : R, (Rle (R_of_N (NUMERAL 0%N)) c) /\ ((@vector_sub _705005 b _1217417) = (@percent _705005 c _1217418))) b)). +Lemma in_direction_def {_705005 : Type'} : (@in_direction _705005) = (fun _1217417 : cart R _705005 => fun _1217418 : cart R _705005 => @within (cart R _705005) (@_at _705005 _1217417) (@GSPEC (cart R _705005) (fun GEN_PVAR_2746 : cart R _705005 => exists b : cart R _705005, @SETSPEC (cart R _705005) GEN_PVAR_2746 (exists c : R, (Rle (R_of_N (NUMERAL 0%N)) c) /\ ((@vector_sub _705005 b _1217417) = (@percent _705005 c _1217418))) b))). +Proof. exact (eq_refl (@in_direction _705005)). Qed. +Definition FImp {_706965 _706970 : Type'} : (_706970 -> cart R _706965) -> (cart R _706965) -> (net _706970) -> Prop := fun _1217848 : _706970 -> cart R _706965 => fun _1217849 : cart R _706965 => fun _1217850 : net _706970 => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually _706970 (fun x : _706970 => Rlt (@distance _706965 (@pair (cart R _706965) (cart R _706965) (_1217848 x) _1217849)) e) _1217850. +Lemma FImp_def {_706965 _706970 : Type'} : (@FImp _706965 _706970) = (fun _1217848 : _706970 -> cart R _706965 => fun _1217849 : cart R _706965 => fun _1217850 : net _706970 => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually _706970 (fun x : _706970 => Rlt (@distance _706965 (@pair (cart R _706965) (cart R _706965) (_1217848 x) _1217849)) e) _1217850). +Proof. exact (eq_refl (@FImp _706965 _706970)). Qed. +Definition lim {_707013 _707014 : Type'} : (net _707014) -> (_707014 -> cart R _707013) -> cart R _707013 := fun _1217869 : net _707014 => fun _1217870 : _707014 -> cart R _707013 => @ε (cart R _707013) (fun l : cart R _707013 => @FImp _707013 _707014 _1217870 l _1217869). +Lemma lim_def {_707013 _707014 : Type'} : (@lim _707013 _707014) = (fun _1217869 : net _707014 => fun _1217870 : _707014 -> cart R _707013 => @ε (cart R _707013) (fun l : cart R _707013 => @FImp _707013 _707014 _1217870 l _1217869)). +Proof. exact (eq_refl (@lim _707013 _707014)). Qed. +Definition condensation_point_of {_709863 : Type'} : (cart R _709863) -> ((cart R _709863) -> Prop) -> Prop := fun _1219011 : cart R _709863 => fun _1219012 : (cart R _709863) -> Prop => forall t : (cart R _709863) -> Prop, ((@IN (cart R _709863) _1219011 t) /\ (@_open _709863 t)) -> ~ (@COUNTABLE (cart R _709863) (@INTER (cart R _709863) _1219012 t)). +Lemma condensation_point_of_def {_709863 : Type'} : (@condensation_point_of _709863) = (fun _1219011 : cart R _709863 => fun _1219012 : (cart R _709863) -> Prop => forall t : (cart R _709863) -> Prop, ((@IN (cart R _709863) _1219011 t) /\ (@_open _709863 t)) -> ~ (@COUNTABLE (cart R _709863) (@INTER (cart R _709863) _1219012 t))). +Proof. exact (eq_refl (@condensation_point_of _709863)). Qed. +Definition bounded {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _1222599 : (cart R N') -> Prop => exists a : R, forall x : cart R N', (@IN (cart R N') x _1222599) -> Rle (@vector_norm N' x) a. +Lemma bounded_def {N' : Type'} : (@bounded N') = (fun _1222599 : (cart R N') -> Prop => exists a : R, forall x : cart R N', (@IN (cart R N') x _1222599) -> Rle (@vector_norm N' x) a). +Proof. exact (eq_refl (@bounded N')). Qed. +Definition compact {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _1224696 : (cart R N') -> Prop => forall f : N -> cart R N', (forall n : N, @IN (cart R N') (f n) _1224696) -> exists l : cart R N', exists r : N -> N, (@IN (cart R N') l _1224696) /\ ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp N' N (@o N N (cart R N') f r) l sequentially)). +Lemma compact_def {N' : Type'} : (@compact N') = (fun _1224696 : (cart R N') -> Prop => forall f : N -> cart R N', (forall n : N, @IN (cart R N') (f n) _1224696) -> exists l : cart R N', exists r : N -> N, (@IN (cart R N') l _1224696) /\ ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp N' N (@o N N (cart R N') f r) l sequentially))). +Proof. exact (eq_refl (@compact N')). Qed. +Definition cauchy {N' : Type'} : (N -> cart R N') -> Prop := fun _1224849 : N -> cart R N' => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, ((N.ge m N'') /\ (N.ge n N'')) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (_1224849 m) (_1224849 n))) e. +Lemma cauchy_def {N' : Type'} : (@cauchy N') = (fun _1224849 : N -> cart R N' => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, ((N.ge m N'') /\ (N.ge n N'')) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (_1224849 m) (_1224849 n))) e). +Proof. exact (eq_refl (@cauchy N')). Qed. +Definition complete {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _1224856 : (cart R N') -> Prop => forall f : N -> cart R N', ((forall n : N, @IN (cart R N') (f n) _1224856) /\ (@cauchy N' f)) -> exists l : cart R N', (@IN (cart R N') l _1224856) /\ (@FImp N' N f l sequentially). +Lemma complete_def {N' : Type'} : (@complete N') = (fun _1224856 : (cart R N') -> Prop => forall f : N -> cart R N', ((forall n : N, @IN (cart R N') (f n) _1224856) /\ (@cauchy N' f)) -> exists l : cart R N', (@IN (cart R N') l _1224856) /\ (@FImp N' N f l sequentially)). +Proof. exact (eq_refl (@complete N')). Qed. +Definition continuous {_726086 _726088 : Type'} : (_726088 -> cart R _726086) -> (net _726088) -> Prop := fun _1227427 : _726088 -> cart R _726086 => fun _1227428 : net _726088 => @FImp _726086 _726088 _1227427 (_1227427 (@netlimit _726088 _1227428)) _1227428. +Lemma continuous_def {_726086 _726088 : Type'} : (@continuous _726086 _726088) = (fun _1227427 : _726088 -> cart R _726086 => fun _1227428 : net _726088 => @FImp _726086 _726088 _1227427 (_1227427 (@netlimit _726088 _1227428)) _1227428). +Proof. exact (eq_refl (@continuous _726086 _726088)). Qed. +Definition continuous_on {_727321 _727330 : Type'} : ((cart R _727321) -> cart R _727330) -> ((cart R _727321) -> Prop) -> Prop := fun _1228561 : (cart R _727321) -> cart R _727330 => fun _1228562 : (cart R _727321) -> Prop => forall x : cart R _727321, (@IN (cart R _727321) x _1228562) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R _727321, ((@IN (cart R _727321) x' _1228562) /\ (Rlt (@distance _727321 (@pair (cart R _727321) (cart R _727321) x' x)) d)) -> Rlt (@distance _727330 (@pair (cart R _727330) (cart R _727330) (_1228561 x') (_1228561 x))) e). +Lemma continuous_on_def {_727321 _727330 : Type'} : (@continuous_on _727321 _727330) = (fun _1228561 : (cart R _727321) -> cart R _727330 => fun _1228562 : (cart R _727321) -> Prop => forall x : cart R _727321, (@IN (cart R _727321) x _1228562) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R _727321, ((@IN (cart R _727321) x' _1228562) /\ (Rlt (@distance _727321 (@pair (cart R _727321) (cart R _727321) x' x)) d)) -> Rlt (@distance _727330 (@pair (cart R _727330) (cart R _727330) (_1228561 x') (_1228561 x))) e)). +Proof. exact (eq_refl (@continuous_on _727321 _727330)). Qed. +Definition uniformly_continuous_on {_727392 _727401 : Type'} : ((cart R _727392) -> cart R _727401) -> ((cart R _727392) -> Prop) -> Prop := fun _1228573 : (cart R _727392) -> cart R _727401 => fun _1228574 : (cart R _727392) -> Prop => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R _727392, forall x' : cart R _727392, ((@IN (cart R _727392) x _1228574) /\ ((@IN (cart R _727392) x' _1228574) /\ (Rlt (@distance _727392 (@pair (cart R _727392) (cart R _727392) x' x)) d))) -> Rlt (@distance _727401 (@pair (cart R _727401) (cart R _727401) (_1228573 x') (_1228573 x))) e). +Lemma uniformly_continuous_on_def {_727392 _727401 : Type'} : (@uniformly_continuous_on _727392 _727401) = (fun _1228573 : (cart R _727392) -> cart R _727401 => fun _1228574 : (cart R _727392) -> Prop => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R _727392, forall x' : cart R _727392, ((@IN (cart R _727392) x _1228574) /\ ((@IN (cart R _727392) x' _1228574) /\ (Rlt (@distance _727392 (@pair (cart R _727392) (cart R _727392) x' x)) d))) -> Rlt (@distance _727401 (@pair (cart R _727401) (cart R _727401) (_1228573 x') (_1228573 x))) e)). +Proof. exact (eq_refl (@uniformly_continuous_on _727392 _727401)). Qed. +Definition connected_component {_754293 : Type'} : ((cart R _754293) -> Prop) -> (cart R _754293) -> (cart R _754293) -> Prop := fun _1257668 : (cart R _754293) -> Prop => fun _1257669 : cart R _754293 => fun _1257670 : cart R _754293 => exists t : (cart R _754293) -> Prop, (@connected _754293 t) /\ ((@SUBSET (cart R _754293) t _1257668) /\ ((@IN (cart R _754293) _1257669 t) /\ (@IN (cart R _754293) _1257670 t))). +Lemma connected_component_def {_754293 : Type'} : (@connected_component _754293) = (fun _1257668 : (cart R _754293) -> Prop => fun _1257669 : cart R _754293 => fun _1257670 : cart R _754293 => exists t : (cart R _754293) -> Prop, (@connected _754293 t) /\ ((@SUBSET (cart R _754293) t _1257668) /\ ((@IN (cart R _754293) _1257669 t) /\ (@IN (cart R _754293) _1257670 t)))). +Proof. exact (eq_refl (@connected_component _754293)). Qed. +Definition components {N' : Type'} : ((cart R N') -> Prop) -> ((cart R N') -> Prop) -> Prop := fun _1258274 : (cart R N') -> Prop => @GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3076 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3076 (@IN (cart R N') x _1258274) (@connected_component N' _1258274 x)). +Lemma components_def {N' : Type'} : (@components N') = (fun _1258274 : (cart R N') -> Prop => @GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3076 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3076 (@IN (cart R N') x _1258274) (@connected_component N' _1258274 x))). +Proof. exact (eq_refl (@components N')). Qed. +Definition diameter {_764049 : Type'} : ((cart R _764049) -> Prop) -> R := fun _1265847 : (cart R _764049) -> Prop => @COND R (_1265847 = (@EMPTY (cart R _764049))) (R_of_N (NUMERAL 0%N)) (sup (@GSPEC R (fun GEN_PVAR_3108 : R => exists x : cart R _764049, exists y : cart R _764049, @SETSPEC R GEN_PVAR_3108 ((@IN (cart R _764049) x _1265847) /\ (@IN (cart R _764049) y _1265847)) (@vector_norm _764049 (@vector_sub _764049 x y))))). +Lemma diameter_def {_764049 : Type'} : (@diameter _764049) = (fun _1265847 : (cart R _764049) -> Prop => @COND R (_1265847 = (@EMPTY (cart R _764049))) (R_of_N (NUMERAL 0%N)) (sup (@GSPEC R (fun GEN_PVAR_3108 : R => exists x : cart R _764049, exists y : cart R _764049, @SETSPEC R GEN_PVAR_3108 ((@IN (cart R _764049) x _1265847) /\ (@IN (cart R _764049) y _1265847)) (@vector_norm _764049 (@vector_sub _764049 x y)))))). +Proof. exact (eq_refl (@diameter _764049)). Qed. +Definition is_interval {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _1273091 : (cart R N') -> Prop => forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@IN (cart R N') a _1273091) /\ ((@IN (cart R N') b _1273091) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> ((Rle (@dollar R N' a i) (@dollar R N' x i)) /\ (Rle (@dollar R N' x i) (@dollar R N' b i))) \/ ((Rle (@dollar R N' b i) (@dollar R N' x i)) /\ (Rle (@dollar R N' x i) (@dollar R N' a i)))))) -> @IN (cart R N') x _1273091. +Lemma is_interval_def {N' : Type'} : (@is_interval N') = (fun _1273091 : (cart R N') -> Prop => forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@IN (cart R N') a _1273091) /\ ((@IN (cart R N') b _1273091) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> ((Rle (@dollar R N' a i) (@dollar R N' x i)) /\ (Rle (@dollar R N' x i) (@dollar R N' b i))) \/ ((Rle (@dollar R N' b i) (@dollar R N' x i)) /\ (Rle (@dollar R N' x i) (@dollar R N' a i)))))) -> @IN (cart R N') x _1273091). +Proof. exact (eq_refl (@is_interval N')). Qed. +Definition homeomorphism {_787178 _787179 : Type'} : (prod ((cart R _787178) -> Prop) ((cart R _787179) -> Prop)) -> (prod ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178)) -> Prop := fun _1280632 : prod ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) => fun _1280633 : prod ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) => (forall x : cart R _787178, (@IN (cart R _787178) x (@fst ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) -> (@snd ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633 (@fst ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633 x)) = x) /\ (((@IMAGE (cart R _787178) (cart R _787179) (@fst ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633) (@fst ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) = (@snd ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) /\ ((@continuous_on _787178 _787179 (@fst ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633) (@fst ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) /\ ((forall y : cart R _787179, (@IN (cart R _787179) y (@snd ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) -> (@fst ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633 (@snd ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633 y)) = y) /\ (((@IMAGE (cart R _787179) (cart R _787178) (@snd ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633) (@snd ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) = (@fst ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) /\ (@continuous_on _787179 _787178 (@snd ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633) (@snd ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)))))). +Lemma homeomorphism_def {_787178 _787179 : Type'} : (@homeomorphism _787178 _787179) = (fun _1280632 : prod ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) => fun _1280633 : prod ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) => (forall x : cart R _787178, (@IN (cart R _787178) x (@fst ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) -> (@snd ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633 (@fst ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633 x)) = x) /\ (((@IMAGE (cart R _787178) (cart R _787179) (@fst ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633) (@fst ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) = (@snd ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) /\ ((@continuous_on _787178 _787179 (@fst ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633) (@fst ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) /\ ((forall y : cart R _787179, (@IN (cart R _787179) y (@snd ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) -> (@fst ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633 (@snd ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633 y)) = y) /\ (((@IMAGE (cart R _787179) (cart R _787178) (@snd ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633) (@snd ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) = (@fst ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632)) /\ (@continuous_on _787179 _787178 (@snd ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) _1280633) (@snd ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) _1280632))))))). +Proof. exact (eq_refl (@homeomorphism _787178 _787179)). Qed. +Definition homeomorphic {_787195 _787196 : Type'} : ((cart R _787196) -> Prop) -> ((cart R _787195) -> Prop) -> Prop := fun _1280654 : (cart R _787196) -> Prop => fun _1280655 : (cart R _787195) -> Prop => exists f : (cart R _787196) -> cart R _787195, exists g : (cart R _787195) -> cart R _787196, @homeomorphism _787196 _787195 (@pair ((cart R _787196) -> Prop) ((cart R _787195) -> Prop) _1280654 _1280655) (@pair ((cart R _787196) -> cart R _787195) ((cart R _787195) -> cart R _787196) f g). +Lemma homeomorphic_def {_787195 _787196 : Type'} : (@homeomorphic _787195 _787196) = (fun _1280654 : (cart R _787196) -> Prop => fun _1280655 : (cart R _787195) -> Prop => exists f : (cart R _787196) -> cart R _787195, exists g : (cart R _787195) -> cart R _787196, @homeomorphism _787196 _787195 (@pair ((cart R _787196) -> Prop) ((cart R _787195) -> Prop) _1280654 _1280655) (@pair ((cart R _787196) -> cart R _787195) ((cart R _787195) -> cart R _787196) f g)). +Proof. exact (eq_refl (@homeomorphic _787195 _787196)). Qed. +Definition sums {_819656 : Type'} : (N -> cart R _819656) -> (cart R _819656) -> (N -> Prop) -> Prop := fun _1332344 : N -> cart R _819656 => fun _1332345 : cart R _819656 => fun _1332346 : N -> Prop => @FImp _819656 N (fun n : N => @vsum N _819656 (@INTER N _1332346 (dotdot (NUMERAL 0%N) n)) _1332344) _1332345 sequentially. +Lemma sums_def {_819656 : Type'} : (@sums _819656) = (fun _1332344 : N -> cart R _819656 => fun _1332345 : cart R _819656 => fun _1332346 : N -> Prop => @FImp _819656 N (fun n : N => @vsum N _819656 (@INTER N _1332346 (dotdot (NUMERAL 0%N) n)) _1332344) _1332345 sequentially). +Proof. exact (eq_refl (@sums _819656)). Qed. +Definition infsum {_819675 : Type'} : (N -> Prop) -> (N -> cart R _819675) -> cart R _819675 := fun _1332365 : N -> Prop => fun _1332366 : N -> cart R _819675 => @ε (cart R _819675) (fun l : cart R _819675 => @sums _819675 _1332366 l _1332365). +Lemma infsum_def {_819675 : Type'} : (@infsum _819675) = (fun _1332365 : N -> Prop => fun _1332366 : N -> cart R _819675 => @ε (cart R _819675) (fun l : cart R _819675 => @sums _819675 _1332366 l _1332365)). +Proof. exact (eq_refl (@infsum _819675)). Qed. +Definition summable {_819689 : Type'} : (N -> Prop) -> (N -> cart R _819689) -> Prop := fun _1332377 : N -> Prop => fun _1332378 : N -> cart R _819689 => exists l : cart R _819689, @sums _819689 _1332378 l _1332377. +Lemma summable_def {_819689 : Type'} : (@summable _819689) = (fun _1332377 : N -> Prop => fun _1332378 : N -> cart R _819689 => exists l : cart R _819689, @sums _819689 _1332378 l _1332377). +Proof. exact (eq_refl (@summable _819689)). Qed. +Definition closest_point {_832524 : Type'} : ((cart R _832524) -> Prop) -> (cart R _832524) -> cart R _832524 := fun _1340306 : (cart R _832524) -> Prop => fun _1340307 : cart R _832524 => @ε (cart R _832524) (fun x : cart R _832524 => (@IN (cart R _832524) x _1340306) /\ (forall y : cart R _832524, (@IN (cart R _832524) y _1340306) -> Rle (@distance _832524 (@pair (cart R _832524) (cart R _832524) _1340307 x)) (@distance _832524 (@pair (cart R _832524) (cart R _832524) _1340307 y)))). +Lemma closest_point_def {_832524 : Type'} : (@closest_point _832524) = (fun _1340306 : (cart R _832524) -> Prop => fun _1340307 : cart R _832524 => @ε (cart R _832524) (fun x : cart R _832524 => (@IN (cart R _832524) x _1340306) /\ (forall y : cart R _832524, (@IN (cart R _832524) y _1340306) -> Rle (@distance _832524 (@pair (cart R _832524) (cart R _832524) _1340307 x)) (@distance _832524 (@pair (cart R _832524) (cart R _832524) _1340307 y))))). +Proof. exact (eq_refl (@closest_point _832524)). Qed. +Definition setdist {_833496 : Type'} : (prod ((cart R _833496) -> Prop) ((cart R _833496) -> Prop)) -> R := fun _1341166 : prod ((cart R _833496) -> Prop) ((cart R _833496) -> Prop) => @COND R (((@fst ((cart R _833496) -> Prop) ((cart R _833496) -> Prop) _1341166) = (@EMPTY (cart R _833496))) \/ ((@snd ((cart R _833496) -> Prop) ((cart R _833496) -> Prop) _1341166) = (@EMPTY (cart R _833496)))) (R_of_N (NUMERAL 0%N)) (inf (@GSPEC R (fun GEN_PVAR_3332 : R => exists x : cart R _833496, exists y : cart R _833496, @SETSPEC R GEN_PVAR_3332 ((@IN (cart R _833496) x (@fst ((cart R _833496) -> Prop) ((cart R _833496) -> Prop) _1341166)) /\ (@IN (cart R _833496) y (@snd ((cart R _833496) -> Prop) ((cart R _833496) -> Prop) _1341166))) (@distance _833496 (@pair (cart R _833496) (cart R _833496) x y))))). +Lemma setdist_def {_833496 : Type'} : (@setdist _833496) = (fun _1341166 : prod ((cart R _833496) -> Prop) ((cart R _833496) -> Prop) => @COND R (((@fst ((cart R _833496) -> Prop) ((cart R _833496) -> Prop) _1341166) = (@EMPTY (cart R _833496))) \/ ((@snd ((cart R _833496) -> Prop) ((cart R _833496) -> Prop) _1341166) = (@EMPTY (cart R _833496)))) (R_of_N (NUMERAL 0%N)) (inf (@GSPEC R (fun GEN_PVAR_3332 : R => exists x : cart R _833496, exists y : cart R _833496, @SETSPEC R GEN_PVAR_3332 ((@IN (cart R _833496) x (@fst ((cart R _833496) -> Prop) ((cart R _833496) -> Prop) _1341166)) /\ (@IN (cart R _833496) y (@snd ((cart R _833496) -> Prop) ((cart R _833496) -> Prop) _1341166))) (@distance _833496 (@pair (cart R _833496) (cart R _833496) x y)))))). +Proof. exact (eq_refl (@setdist _833496)). Qed. +Definition hausdist {N' : Type'} : (prod ((cart R N') -> Prop) ((cart R N') -> Prop)) -> R := fun _1347090 : prod ((cart R N') -> Prop) ((cart R N') -> Prop) => @LET (R -> Prop) R (fun ds : R -> Prop => @LET_END R (@COND R ((~ (ds = (@EMPTY R))) /\ (exists b : R, forall d : R, (@IN R d ds) -> Rle d b)) (sup ds) (R_of_N (NUMERAL 0%N)))) (@UNION R (@GSPEC R (fun GEN_PVAR_3360 : R => exists x : cart R N', @SETSPEC R GEN_PVAR_3360 (@IN (cart R N') x (@fst ((cart R N') -> Prop) ((cart R N') -> Prop) _1347090)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) (@snd ((cart R N') -> Prop) ((cart R N') -> Prop) _1347090))))) (@GSPEC R (fun GEN_PVAR_3361 : R => exists y : cart R N', @SETSPEC R GEN_PVAR_3361 (@IN (cart R N') y (@snd ((cart R N') -> Prop) ((cart R N') -> Prop) _1347090)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) (@fst ((cart R N') -> Prop) ((cart R N') -> Prop) _1347090)))))). +Lemma hausdist_def {N' : Type'} : (@hausdist N') = (fun _1347090 : prod ((cart R N') -> Prop) ((cart R N') -> Prop) => @LET (R -> Prop) R (fun ds : R -> Prop => @LET_END R (@COND R ((~ (ds = (@EMPTY R))) /\ (exists b : R, forall d : R, (@IN R d ds) -> Rle d b)) (sup ds) (R_of_N (NUMERAL 0%N)))) (@UNION R (@GSPEC R (fun GEN_PVAR_3360 : R => exists x : cart R N', @SETSPEC R GEN_PVAR_3360 (@IN (cart R N') x (@fst ((cart R N') -> Prop) ((cart R N') -> Prop) _1347090)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) (@snd ((cart R N') -> Prop) ((cart R N') -> Prop) _1347090))))) (@GSPEC R (fun GEN_PVAR_3361 : R => exists y : cart R N', @SETSPEC R GEN_PVAR_3361 (@IN (cart R N') y (@snd ((cart R N') -> Prop) ((cart R N') -> Prop) _1347090)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) (@fst ((cart R N') -> Prop) ((cart R N') -> Prop) _1347090))))))). +Proof. exact (eq_refl (@hausdist N')). Qed. +Definition locally {N' : Type'} : (((cart R N') -> Prop) -> Prop) -> ((cart R N') -> Prop) -> Prop := fun _1369114 : ((cart R N') -> Prop) -> Prop => fun _1369115 : (cart R N') -> Prop => forall w : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') _1369115) w) /\ (@IN (cart R N') x w)) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') _1369115) u) /\ ((_1369114 v) /\ ((@IN (cart R N') x u) /\ ((@SUBSET (cart R N') u v) /\ (@SUBSET (cart R N') v w)))). +Lemma locally_def {N' : Type'} : (@locally N') = (fun _1369114 : ((cart R N') -> Prop) -> Prop => fun _1369115 : (cart R N') -> Prop => forall w : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') _1369115) w) /\ (@IN (cart R N') x w)) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') _1369115) u) /\ ((_1369114 v) /\ ((@IN (cart R N') x u) /\ ((@SUBSET (cart R N') u v) /\ (@SUBSET (cart R N') v w))))). +Proof. exact (eq_refl (@locally N')). Qed. +Definition gdelta {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _1381315 : (cart R N') -> Prop => @INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@_open N') _1381315. +Lemma gdelta_def {N' : Type'} : (@gdelta N') = (fun _1381315 : (cart R N') -> Prop => @INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@_open N') _1381315). +Proof. exact (eq_refl (@gdelta N')). Qed. +Definition fsigma {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _1381320 : (cart R N') -> Prop => @UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@closed N') _1381320. +Lemma fsigma_def {N' : Type'} : (@fsigma N') = (fun _1381320 : (cart R N') -> Prop => @UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@closed N') _1381320). +Proof. exact (eq_refl (@fsigma N')). Qed. +Definition borel {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun a : (cart R N') -> Prop => forall borel' : ((cart R N') -> Prop) -> Prop, (forall a' : (cart R N') -> Prop, ((@_open N' a') \/ ((exists s : (cart R N') -> Prop, (a' = (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (borel' s)) \/ (exists u : ((cart R N') -> Prop) -> Prop, (a' = (@UNIONS (cart R N') u)) /\ ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> borel' s))))) -> borel' a') -> borel' a. +Lemma borel_def {N' : Type'} : (@borel N') = (fun a : (cart R N') -> Prop => forall borel' : ((cart R N') -> Prop) -> Prop, (forall a' : (cart R N') -> Prop, ((@_open N' a') \/ ((exists s : (cart R N') -> Prop, (a' = (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (borel' s)) \/ (exists u : ((cart R N') -> Prop) -> Prop, (a' = (@UNIONS (cart R N') u)) /\ ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> borel' s))))) -> borel' a') -> borel' a). +Proof. exact (eq_refl (@borel N')). Qed. +Definition baire {M N' : Type'} : N -> ((cart R M) -> Prop) -> ((cart R M) -> cart R N') -> Prop := @ε ((prod N (prod N (prod N (prod N N)))) -> N -> ((cart R M) -> Prop) -> ((cart R M) -> cart R N') -> Prop) (fun baire' : (prod N (prod N (prod N (prod N N)))) -> N -> ((cart R M) -> Prop) -> ((cart R M) -> cart R N') -> Prop => forall _1397567 : prod N (prod N (prod N (prod N N))), (forall s : (cart R M) -> Prop, forall f : (cart R M) -> cart R N', (baire' _1397567 (NUMERAL 0%N) s f) = (@continuous_on M N' f s)) /\ (forall n : N, forall s : (cart R M) -> Prop, forall f : (cart R M) -> cart R N', (baire' _1397567 (N.succ n) s f) = (exists g : N -> (cart R M) -> cart R N', (forall k : N, baire' _1397567 n s (g k)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @FImp N' N (fun k : N => g k x) (f x) sequentially)))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))))). +Lemma baire_def {M N' : Type'} : (@baire M N') = (@ε ((prod N (prod N (prod N (prod N N)))) -> N -> ((cart R M) -> Prop) -> ((cart R M) -> cart R N') -> Prop) (fun baire' : (prod N (prod N (prod N (prod N N)))) -> N -> ((cart R M) -> Prop) -> ((cart R M) -> cart R N') -> Prop => forall _1397567 : prod N (prod N (prod N (prod N N))), (forall s : (cart R M) -> Prop, forall f : (cart R M) -> cart R N', (baire' _1397567 (NUMERAL 0%N) s f) = (@continuous_on M N' f s)) /\ (forall n : N, forall s : (cart R M) -> Prop, forall f : (cart R M) -> cart R N', (baire' _1397567 (N.succ n) s f) = (exists g : N -> (cart R M) -> cart R N', (forall k : N, baire' _1397567 n s (g k)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @FImp N' N (fun k : N => g k x) (f x) sequentially)))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))))). +Proof. exact (eq_refl (@baire M N')). Qed. +Definition borel_measurable_on {M N' : Type'} : ((cart R M) -> cart R N') -> ((cart R M) -> Prop) -> Prop := fun a0 : (cart R M) -> cart R N' => fun a1 : (cart R M) -> Prop => forall borel_measurable_on' : ((cart R M) -> cart R N') -> ((cart R M) -> Prop) -> Prop, (forall a0' : (cart R M) -> cart R N', forall a1' : (cart R M) -> Prop, ((@continuous_on M N' a0' a1') \/ (exists f : N -> (cart R M) -> cart R N', (forall n : N, borel_measurable_on' (f n) a1') /\ (forall x : cart R M, (@IN (cart R M) x a1') -> @FImp N' N (fun n : N => f n x) (a0' x) sequentially))) -> borel_measurable_on' a0' a1') -> borel_measurable_on' a0 a1. +Lemma borel_measurable_on_def {M N' : Type'} : (@borel_measurable_on M N') = (fun a0 : (cart R M) -> cart R N' => fun a1 : (cart R M) -> Prop => forall borel_measurable_on' : ((cart R M) -> cart R N') -> ((cart R M) -> Prop) -> Prop, (forall a0' : (cart R M) -> cart R N', forall a1' : (cart R M) -> Prop, ((@continuous_on M N' a0' a1') \/ (exists f : N -> (cart R M) -> cart R N', (forall n : N, borel_measurable_on' (f n) a1') /\ (forall x : cart R M, (@IN (cart R M) x a1') -> @FImp N' N (fun n : N => f n x) (a0' x) sequentially))) -> borel_measurable_on' a0' a1') -> borel_measurable_on' a0 a1). +Proof. exact (eq_refl (@borel_measurable_on M N')). Qed. +Definition analytic {_893426 : Type'} : ((cart R _893426) -> Prop) -> Prop := fun _1419650 : (cart R _893426) -> Prop => @suslin (cart R _893426) (@compact _893426) _1419650. +Lemma analytic_def {_893426 : Type'} : (@analytic _893426) = (fun _1419650 : (cart R _893426) -> Prop => @suslin (cart R _893426) (@compact _893426) _1419650). +Proof. exact (eq_refl (@analytic _893426)). Qed. +Definition affine {_900445 : Type'} : ((cart R _900445) -> Prop) -> Prop := fun _1427422 : (cart R _900445) -> Prop => forall x : cart R _900445, forall y : cart R _900445, forall u : R, forall v : R, ((@IN (cart R _900445) x _1427422) /\ ((@IN (cart R _900445) y _1427422) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))) -> @IN (cart R _900445) (@vector_add _900445 (@percent _900445 u x) (@percent _900445 v y)) _1427422. +Lemma affine_def {_900445 : Type'} : (@affine _900445) = (fun _1427422 : (cart R _900445) -> Prop => forall x : cart R _900445, forall y : cart R _900445, forall u : R, forall v : R, ((@IN (cart R _900445) x _1427422) /\ ((@IN (cart R _900445) y _1427422) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))) -> @IN (cart R _900445) (@vector_add _900445 (@percent _900445 u x) (@percent _900445 v y)) _1427422). +Proof. exact (eq_refl (@affine _900445)). Qed. +Definition convex {_906283 : Type'} : ((cart R _906283) -> Prop) -> Prop := fun _1431937 : (cart R _906283) -> Prop => forall x : cart R _906283, forall y : cart R _906283, forall u : R, forall v : R, ((@IN (cart R _906283) x _1431937) /\ ((@IN (cart R _906283) y _1431937) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @IN (cart R _906283) (@vector_add _906283 (@percent _906283 u x) (@percent _906283 v y)) _1431937. +Lemma convex_def {_906283 : Type'} : (@convex _906283) = (fun _1431937 : (cart R _906283) -> Prop => forall x : cart R _906283, forall y : cart R _906283, forall u : R, forall v : R, ((@IN (cart R _906283) x _1431937) /\ ((@IN (cart R _906283) y _1431937) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @IN (cart R _906283) (@vector_add _906283 (@percent _906283 u x) (@percent _906283 v y)) _1431937). +Proof. exact (eq_refl (@convex _906283)). Qed. +Definition conic {_909275 : Type'} : ((cart R _909275) -> Prop) -> Prop := fun _1433786 : (cart R _909275) -> Prop => forall x : cart R _909275, forall c : R, ((@IN (cart R _909275) x _1433786) /\ (Rle (R_of_N (NUMERAL 0%N)) c)) -> @IN (cart R _909275) (@percent _909275 c x) _1433786. +Lemma conic_def {_909275 : Type'} : (@conic _909275) = (fun _1433786 : (cart R _909275) -> Prop => forall x : cart R _909275, forall c : R, ((@IN (cart R _909275) x _1433786) /\ (Rle (R_of_N (NUMERAL 0%N)) c)) -> @IN (cart R _909275) (@percent _909275 c x) _1433786). +Proof. exact (eq_refl (@conic _909275)). Qed. +Definition affine_dependent {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _1435299 : (cart R N') -> Prop => exists x : cart R N', (@IN (cart R N') x _1435299) /\ (@IN (cart R N') x (@hull (cart R N') (@affine N') (@DELETE (cart R N') _1435299 x))). +Lemma affine_dependent_def {N' : Type'} : (@affine_dependent N') = (fun _1435299 : (cart R N') -> Prop => exists x : cart R N', (@IN (cart R N') x _1435299) /\ (@IN (cart R N') x (@hull (cart R N') (@affine N') (@DELETE (cart R N') _1435299 x)))). +Proof. exact (eq_refl (@affine_dependent N')). Qed. +Definition coplanar {_911989 : Type'} : ((cart R _911989) -> Prop) -> Prop := fun _1436217 : (cart R _911989) -> Prop => exists u : cart R _911989, exists v : cart R _911989, exists w : cart R _911989, @SUBSET (cart R _911989) _1436217 (@hull (cart R _911989) (@affine _911989) (@INSERT (cart R _911989) u (@INSERT (cart R _911989) v (@INSERT (cart R _911989) w (@EMPTY (cart R _911989)))))). +Lemma coplanar_def {_911989 : Type'} : (@coplanar _911989) = (fun _1436217 : (cart R _911989) -> Prop => exists u : cart R _911989, exists v : cart R _911989, exists w : cart R _911989, @SUBSET (cart R _911989) _1436217 (@hull (cart R _911989) (@affine _911989) (@INSERT (cart R _911989) u (@INSERT (cart R _911989) v (@INSERT (cart R _911989) w (@EMPTY (cart R _911989))))))). +Proof. exact (eq_refl (@coplanar _911989)). Qed. +Definition convex_on {_913183 : Type'} : ((cart R _913183) -> R) -> ((cart R _913183) -> Prop) -> Prop := fun _1437459 : (cart R _913183) -> R => fun _1437460 : (cart R _913183) -> Prop => forall x : cart R _913183, forall y : cart R _913183, forall u : R, forall v : R, ((@IN (cart R _913183) x _1437460) /\ ((@IN (cart R _913183) y _1437460) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (_1437459 (@vector_add _913183 (@percent _913183 u x) (@percent _913183 v y))) (Rplus (Rmult u (_1437459 x)) (Rmult v (_1437459 y))). +Lemma convex_on_def {_913183 : Type'} : (@convex_on _913183) = (fun _1437459 : (cart R _913183) -> R => fun _1437460 : (cart R _913183) -> Prop => forall x : cart R _913183, forall y : cart R _913183, forall u : R, forall v : R, ((@IN (cart R _913183) x _1437460) /\ ((@IN (cart R _913183) y _1437460) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (_1437459 (@vector_add _913183 (@percent _913183 u x) (@percent _913183 v y))) (Rplus (Rmult u (_1437459 x)) (Rmult v (_1437459 y)))). +Proof. exact (eq_refl (@convex_on _913183)). Qed. +Definition aff_dim {_926023 : Type'} : ((cart R _926023) -> Prop) -> Z := fun _1448705 : (cart R _926023) -> Prop => @ε Z (fun d : Z => exists b : (cart R _926023) -> Prop, ((@hull (cart R _926023) (@affine _926023) b) = (@hull (cart R _926023) (@affine _926023) _1448705)) /\ ((~ (@affine_dependent _926023 b)) /\ ((Z_of_N (@CARD (cart R _926023) b)) = (int_add d (Z_of_N (NUMERAL (BIT1 0%N))))))). +Lemma aff_dim_def {_926023 : Type'} : (@aff_dim _926023) = (fun _1448705 : (cart R _926023) -> Prop => @ε Z (fun d : Z => exists b : (cart R _926023) -> Prop, ((@hull (cart R _926023) (@affine _926023) b) = (@hull (cart R _926023) (@affine _926023) _1448705)) /\ ((~ (@affine_dependent _926023 b)) /\ ((Z_of_N (@CARD (cart R _926023) b)) = (int_add d (Z_of_N (NUMERAL (BIT1 0%N)))))))). +Proof. exact (eq_refl (@aff_dim _926023)). Qed. +Definition polar_dual {N' : Type'} : ((cart R N') -> Prop) -> (cart R N') -> Prop := fun _1478895 : (cart R N') -> Prop => @GSPEC (cart R N') (fun GEN_PVAR_4503 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4503 (forall u : cart R N', (@IN (cart R N') u _1478895) -> Rge (@dot N' u x) (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) x). +Lemma polar_dual_def {N' : Type'} : (@polar_dual N') = (fun _1478895 : (cart R N') -> Prop => @GSPEC (cart R N') (fun GEN_PVAR_4503 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4503 (forall u : cart R N', (@IN (cart R N') u _1478895) -> Rge (@dot N' u x) (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) x)). +Proof. exact (eq_refl (@polar_dual N')). Qed. +Definition convex_cone {_959290 : Type'} : ((cart R _959290) -> Prop) -> Prop := fun _1505656 : (cart R _959290) -> Prop => (~ (_1505656 = (@EMPTY (cart R _959290)))) /\ ((@convex _959290 _1505656) /\ (@conic _959290 _1505656)). +Lemma convex_cone_def {_959290 : Type'} : (@convex_cone _959290) = (fun _1505656 : (cart R _959290) -> Prop => (~ (_1505656 = (@EMPTY (cart R _959290)))) /\ ((@convex _959290 _1505656) /\ (@conic _959290 _1505656))). +Proof. exact (eq_refl (@convex_cone _959290)). Qed. +Definition epigraph {N' : Type'} : ((cart R N') -> Prop) -> ((cart R N') -> R) -> (cart R (finite_sum N' unit)) -> Prop := fun _1508805 : (cart R N') -> Prop => fun _1508806 : (cart R N') -> R => @GSPEC (cart R (finite_sum N' unit)) (fun GEN_PVAR_4578 : cart R (finite_sum N' unit) => exists xy : cart R (finite_sum N' unit), @SETSPEC (cart R (finite_sum N' unit)) GEN_PVAR_4578 ((@IN (cart R N') (@fstcart R N' unit xy) _1508805) /\ (Rle (_1508806 (@fstcart R N' unit xy)) (drop (@sndcart R N' unit xy)))) xy). +Lemma epigraph_def {N' : Type'} : (@epigraph N') = (fun _1508805 : (cart R N') -> Prop => fun _1508806 : (cart R N') -> R => @GSPEC (cart R (finite_sum N' unit)) (fun GEN_PVAR_4578 : cart R (finite_sum N' unit) => exists xy : cart R (finite_sum N' unit), @SETSPEC (cart R (finite_sum N' unit)) GEN_PVAR_4578 ((@IN (cart R N') (@fstcart R N' unit xy) _1508805) /\ (Rle (_1508806 (@fstcart R N' unit xy)) (drop (@sndcart R N' unit xy)))) xy)). +Proof. exact (eq_refl (@epigraph N')). Qed. +Definition starlike {_964271 : Type'} : ((cart R _964271) -> Prop) -> Prop := fun _1510785 : (cart R _964271) -> Prop => exists a : cart R _964271, (@IN (cart R _964271) a _1510785) /\ (forall x : cart R _964271, (@IN (cart R _964271) x _1510785) -> @SUBSET (cart R _964271) (@closed_segment _964271 (@cons (prod (cart R _964271) (cart R _964271)) (@pair (cart R _964271) (cart R _964271) a x) (@nil (prod (cart R _964271) (cart R _964271))))) _1510785). +Lemma starlike_def {_964271 : Type'} : (@starlike _964271) = (fun _1510785 : (cart R _964271) -> Prop => exists a : cart R _964271, (@IN (cart R _964271) a _1510785) /\ (forall x : cart R _964271, (@IN (cart R _964271) x _1510785) -> @SUBSET (cart R _964271) (@closed_segment _964271 (@cons (prod (cart R _964271) (cart R _964271)) (@pair (cart R _964271) (cart R _964271) a x) (@nil (prod (cart R _964271) (cart R _964271))))) _1510785)). +Proof. exact (eq_refl (@starlike _964271)). Qed. +Definition relative_interior {_967920 : Type'} : ((cart R _967920) -> Prop) -> (cart R _967920) -> Prop := fun _1512879 : (cart R _967920) -> Prop => @GSPEC (cart R _967920) (fun GEN_PVAR_4598 : cart R _967920 => exists x : cart R _967920, @SETSPEC (cart R _967920) GEN_PVAR_4598 (exists t : (cart R _967920) -> Prop, (@open_in (cart R _967920) (@subtopology (cart R _967920) (@euclidean _967920) (@hull (cart R _967920) (@affine _967920) _1512879)) t) /\ ((@IN (cart R _967920) x t) /\ (@SUBSET (cart R _967920) t _1512879))) x). +Lemma relative_interior_def {_967920 : Type'} : (@relative_interior _967920) = (fun _1512879 : (cart R _967920) -> Prop => @GSPEC (cart R _967920) (fun GEN_PVAR_4598 : cart R _967920 => exists x : cart R _967920, @SETSPEC (cart R _967920) GEN_PVAR_4598 (exists t : (cart R _967920) -> Prop, (@open_in (cart R _967920) (@subtopology (cart R _967920) (@euclidean _967920) (@hull (cart R _967920) (@affine _967920) _1512879)) t) /\ ((@IN (cart R _967920) x t) /\ (@SUBSET (cart R _967920) t _1512879))) x)). +Proof. exact (eq_refl (@relative_interior _967920)). Qed. +Definition relative_frontier {_967940 : Type'} : ((cart R _967940) -> Prop) -> (cart R _967940) -> Prop := fun _1512884 : (cart R _967940) -> Prop => @DIFF (cart R _967940) (@closure _967940 _1512884) (@relative_interior _967940 _1512884). +Lemma relative_frontier_def {_967940 : Type'} : (@relative_frontier _967940) = (fun _1512884 : (cart R _967940) -> Prop => @DIFF (cart R _967940) (@closure _967940 _1512884) (@relative_interior _967940 _1512884)). +Proof. exact (eq_refl (@relative_frontier _967940)). Qed. +Definition barycentre {_1005137 : Type'} : ((cart R _1005137) -> Prop) -> cart R _1005137 := fun _1550498 : (cart R _1005137) -> Prop => @COND (cart R _1005137) (@FINITE (cart R _1005137) _1550498) (@vsum (cart R _1005137) _1005137 _1550498 (fun x : cart R _1005137 => @percent _1005137 (Rinv (R_of_N (@CARD (cart R _1005137) _1550498))) x)) (@vec _1005137 (NUMERAL 0%N)). +Lemma barycentre_def {_1005137 : Type'} : (@barycentre _1005137) = (fun _1550498 : (cart R _1005137) -> Prop => @COND (cart R _1005137) (@FINITE (cart R _1005137) _1550498) (@vsum (cart R _1005137) _1005137 _1550498 (fun x : cart R _1005137 => @percent _1005137 (Rinv (R_of_N (@CARD (cart R _1005137) _1550498))) x)) (@vec _1005137 (NUMERAL 0%N))). +Proof. exact (eq_refl (@barycentre _1005137)). Qed. +Definition path {N' : Type'} : ((cart R unit) -> cart R N') -> Prop := fun _1555906 : (cart R unit) -> cart R N' => @continuous_on unit N' _1555906 (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))). +Lemma path_def {N' : Type'} : (@path N') = (fun _1555906 : (cart R unit) -> cart R N' => @continuous_on unit N' _1555906 (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Proof. exact (eq_refl (@path N')). Qed. +Definition pathstart {N' : Type'} : ((cart R unit) -> cart R N') -> cart R N' := fun _1555911 : (cart R unit) -> cart R N' => _1555911 (@vec unit (NUMERAL 0%N)). +Lemma pathstart_def {N' : Type'} : (@pathstart N') = (fun _1555911 : (cart R unit) -> cart R N' => _1555911 (@vec unit (NUMERAL 0%N))). +Proof. exact (eq_refl (@pathstart N')). Qed. +Definition pathfinish {N' : Type'} : ((cart R unit) -> cart R N') -> cart R N' := fun _1555916 : (cart R unit) -> cart R N' => _1555916 (@vec unit (NUMERAL (BIT1 0%N))). +Lemma pathfinish_def {N' : Type'} : (@pathfinish N') = (fun _1555916 : (cart R unit) -> cart R N' => _1555916 (@vec unit (NUMERAL (BIT1 0%N)))). +Proof. exact (eq_refl (@pathfinish N')). Qed. +Definition path_image {N' : Type'} : ((cart R unit) -> cart R N') -> (cart R N') -> Prop := fun _1555921 : (cart R unit) -> cart R N' => @IMAGE (cart R unit) (cart R N') _1555921 (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))). +Lemma path_image_def {N' : Type'} : (@path_image N') = (fun _1555921 : (cart R unit) -> cart R N' => @IMAGE (cart R unit) (cart R N') _1555921 (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Proof. exact (eq_refl (@path_image N')). Qed. +Definition reversepath {N' : Type'} : ((cart R unit) -> cart R N') -> (cart R unit) -> cart R N' := fun _1555926 : (cart R unit) -> cart R N' => fun x : cart R unit => _1555926 (@vector_sub unit (@vec unit (NUMERAL (BIT1 0%N))) x). +Lemma reversepath_def {N' : Type'} : (@reversepath N') = (fun _1555926 : (cart R unit) -> cart R N' => fun x : cart R unit => _1555926 (@vector_sub unit (@vec unit (NUMERAL (BIT1 0%N))) x)). +Proof. exact (eq_refl (@reversepath N')). Qed. +Definition addadd {_1009590 : Type'} : ((cart R unit) -> _1009590) -> ((cart R unit) -> _1009590) -> (cart R unit) -> _1009590 := fun _1555931 : (cart R unit) -> _1009590 => fun _1555932 : (cart R unit) -> _1009590 => fun x : cart R unit => @COND _1009590 (Rle (drop x) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (_1555931 (@percent unit (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x)) (_1555932 (@vector_sub unit (@percent unit (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x) (@vec unit (NUMERAL (BIT1 0%N))))). +Lemma addadd_def {_1009590 : Type'} : (@addadd _1009590) = (fun _1555931 : (cart R unit) -> _1009590 => fun _1555932 : (cart R unit) -> _1009590 => fun x : cart R unit => @COND _1009590 (Rle (drop x) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (_1555931 (@percent unit (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x)) (_1555932 (@vector_sub unit (@percent unit (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x) (@vec unit (NUMERAL (BIT1 0%N)))))). +Proof. exact (eq_refl (@addadd _1009590)). Qed. +Definition simple_path {N' : Type'} : ((cart R unit) -> cart R N') -> Prop := fun _1555943 : (cart R unit) -> cart R N' => (@path N' _1555943) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((_1555943 x) = (_1555943 y)))) -> (x = y) \/ (((x = (@vec unit (NUMERAL 0%N))) /\ (y = (@vec unit (NUMERAL (BIT1 0%N))))) \/ ((x = (@vec unit (NUMERAL (BIT1 0%N)))) /\ (y = (@vec unit (NUMERAL 0%N)))))). +Lemma simple_path_def {N' : Type'} : (@simple_path N') = (fun _1555943 : (cart R unit) -> cart R N' => (@path N' _1555943) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((_1555943 x) = (_1555943 y)))) -> (x = y) \/ (((x = (@vec unit (NUMERAL 0%N))) /\ (y = (@vec unit (NUMERAL (BIT1 0%N))))) \/ ((x = (@vec unit (NUMERAL (BIT1 0%N)))) /\ (y = (@vec unit (NUMERAL 0%N))))))). +Proof. exact (eq_refl (@simple_path N')). Qed. +Definition arc {N' : Type'} : ((cart R unit) -> cart R N') -> Prop := fun _1555948 : (cart R unit) -> cart R N' => (@path N' _1555948) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((_1555948 x) = (_1555948 y)))) -> x = y). +Lemma arc_def {N' : Type'} : (@arc N') = (fun _1555948 : (cart R unit) -> cart R N' => (@path N' _1555948) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((_1555948 x) = (_1555948 y)))) -> x = y)). +Proof. exact (eq_refl (@arc N')). Qed. +Definition shiftpath {N' : Type'} : (cart R unit) -> ((cart R unit) -> cart R N') -> (cart R unit) -> cart R N' := fun _1560988 : cart R unit => fun _1560989 : (cart R unit) -> cart R N' => fun x : cart R unit => @COND (cart R N') (Rle (drop (@vector_add unit _1560988 x)) (R_of_N (NUMERAL (BIT1 0%N)))) (_1560989 (@vector_add unit _1560988 x)) (_1560989 (@vector_add unit _1560988 (@vector_sub unit x (@vec unit (NUMERAL (BIT1 0%N)))))). +Lemma shiftpath_def {N' : Type'} : (@shiftpath N') = (fun _1560988 : cart R unit => fun _1560989 : (cart R unit) -> cart R N' => fun x : cart R unit => @COND (cart R N') (Rle (drop (@vector_add unit _1560988 x)) (R_of_N (NUMERAL (BIT1 0%N)))) (_1560989 (@vector_add unit _1560988 x)) (_1560989 (@vector_add unit _1560988 (@vector_sub unit x (@vec unit (NUMERAL (BIT1 0%N))))))). +Proof. exact (eq_refl (@shiftpath N')). Qed. +Definition subpath {_1015740 : Type'} : (cart R unit) -> (cart R unit) -> ((cart R unit) -> _1015740) -> (cart R unit) -> _1015740 := fun _1561150 : cart R unit => fun _1561151 : cart R unit => fun _1561152 : (cart R unit) -> _1015740 => fun x : cart R unit => _1561152 (@vector_add unit _1561150 (@percent unit (drop (@vector_sub unit _1561151 _1561150)) x)). +Lemma subpath_def {_1015740 : Type'} : (@subpath _1015740) = (fun _1561150 : cart R unit => fun _1561151 : cart R unit => fun _1561152 : (cart R unit) -> _1015740 => fun x : cart R unit => _1561152 (@vector_add unit _1561150 (@percent unit (drop (@vector_sub unit _1561151 _1561150)) x))). +Proof. exact (eq_refl (@subpath _1015740)). Qed. +Definition linepath {_1019931 : Type'} : (prod (cart R _1019931) (cart R _1019931)) -> (cart R unit) -> cart R _1019931 := fun _1568604 : prod (cart R _1019931) (cart R _1019931) => fun x : cart R unit => @vector_add _1019931 (@percent _1019931 (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (drop x)) (@fst (cart R _1019931) (cart R _1019931) _1568604)) (@percent _1019931 (drop x) (@snd (cart R _1019931) (cart R _1019931) _1568604)). +Lemma linepath_def {_1019931 : Type'} : (@linepath _1019931) = (fun _1568604 : prod (cart R _1019931) (cart R _1019931) => fun x : cart R unit => @vector_add _1019931 (@percent _1019931 (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (drop x)) (@fst (cart R _1019931) (cart R _1019931) _1568604)) (@percent _1019931 (drop x) (@snd (cart R _1019931) (cart R _1019931) _1568604))). +Proof. exact (eq_refl (@linepath _1019931)). Qed. +Definition path_component {_1022096 : Type'} : ((cart R _1022096) -> Prop) -> (cart R _1022096) -> (cart R _1022096) -> Prop := fun _1576556 : (cart R _1022096) -> Prop => fun _1576557 : cart R _1022096 => fun _1576558 : cart R _1022096 => exists g : (cart R unit) -> cart R _1022096, (@path _1022096 g) /\ ((@SUBSET (cart R _1022096) (@path_image _1022096 g) _1576556) /\ (((@pathstart _1022096 g) = _1576557) /\ ((@pathfinish _1022096 g) = _1576558))). +Lemma path_component_def {_1022096 : Type'} : (@path_component _1022096) = (fun _1576556 : (cart R _1022096) -> Prop => fun _1576557 : cart R _1022096 => fun _1576558 : cart R _1022096 => exists g : (cart R unit) -> cart R _1022096, (@path _1022096 g) /\ ((@SUBSET (cart R _1022096) (@path_image _1022096 g) _1576556) /\ (((@pathstart _1022096 g) = _1576557) /\ ((@pathfinish _1022096 g) = _1576558)))). +Proof. exact (eq_refl (@path_component _1022096)). Qed. +Definition path_components {_1022138 : Type'} : ((cart R _1022138) -> Prop) -> ((cart R _1022138) -> Prop) -> Prop := fun _1576577 : (cart R _1022138) -> Prop => @GSPEC ((cart R _1022138) -> Prop) (fun GEN_PVAR_4704 : (cart R _1022138) -> Prop => exists x : cart R _1022138, @SETSPEC ((cart R _1022138) -> Prop) GEN_PVAR_4704 (@IN (cart R _1022138) x _1576577) (@path_component _1022138 _1576577 x)). +Lemma path_components_def {_1022138 : Type'} : (@path_components _1022138) = (fun _1576577 : (cart R _1022138) -> Prop => @GSPEC ((cart R _1022138) -> Prop) (fun GEN_PVAR_4704 : (cart R _1022138) -> Prop => exists x : cart R _1022138, @SETSPEC ((cart R _1022138) -> Prop) GEN_PVAR_4704 (@IN (cart R _1022138) x _1576577) (@path_component _1022138 _1576577 x))). +Proof. exact (eq_refl (@path_components _1022138)). Qed. +Definition path_connected {_1022636 : Type'} : ((cart R _1022636) -> Prop) -> Prop := fun _1576774 : (cart R _1022636) -> Prop => forall x : cart R _1022636, forall y : cart R _1022636, ((@IN (cart R _1022636) x _1576774) /\ (@IN (cart R _1022636) y _1576774)) -> exists g : (cart R unit) -> cart R _1022636, (@path _1022636 g) /\ ((@SUBSET (cart R _1022636) (@path_image _1022636 g) _1576774) /\ (((@pathstart _1022636 g) = x) /\ ((@pathfinish _1022636 g) = y))). +Lemma path_connected_def {_1022636 : Type'} : (@path_connected _1022636) = (fun _1576774 : (cart R _1022636) -> Prop => forall x : cart R _1022636, forall y : cart R _1022636, ((@IN (cart R _1022636) x _1576774) /\ (@IN (cart R _1022636) y _1576774)) -> exists g : (cart R unit) -> cart R _1022636, (@path _1022636 g) /\ ((@SUBSET (cart R _1022636) (@path_image _1022636 g) _1576774) /\ (((@pathstart _1022636 g) = x) /\ ((@pathfinish _1022636 g) = y)))). +Proof. exact (eq_refl (@path_connected _1022636)). Qed. +Definition inside {N' : Type'} : ((cart R N') -> Prop) -> (cart R N') -> Prop := fun _1759705 : (cart R N') -> Prop => @GSPEC (cart R N') (fun GEN_PVAR_4971 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4971 ((~ (@IN (cart R N') x _1759705)) /\ (@bounded N' (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) _1759705) x))) x). +Lemma inside_def {N' : Type'} : (@inside N') = (fun _1759705 : (cart R N') -> Prop => @GSPEC (cart R N') (fun GEN_PVAR_4971 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4971 ((~ (@IN (cart R N') x _1759705)) /\ (@bounded N' (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) _1759705) x))) x)). +Proof. exact (eq_refl (@inside N')). Qed. +Definition outside {N' : Type'} : ((cart R N') -> Prop) -> (cart R N') -> Prop := fun _1759710 : (cart R N') -> Prop => @GSPEC (cart R N') (fun GEN_PVAR_4972 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4972 ((~ (@IN (cart R N') x _1759710)) /\ (~ (@bounded N' (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) _1759710) x)))) x). +Lemma outside_def {N' : Type'} : (@outside N') = (fun _1759710 : (cart R N') -> Prop => @GSPEC (cart R N') (fun GEN_PVAR_4972 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4972 ((~ (@IN (cart R N') x _1759710)) /\ (~ (@bounded N' (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) _1759710) x)))) x)). +Proof. exact (eq_refl (@outside N')). Qed. +Definition homotopic_paths {_1101971 : Type'} : ((cart R _1101971) -> Prop) -> ((cart R unit) -> cart R _1101971) -> ((cart R unit) -> cart R _1101971) -> Prop := fun _1765749 : (cart R _1101971) -> Prop => fun _1765750 : (cart R unit) -> cart R _1101971 => fun _1765751 : (cart R unit) -> cart R _1101971 => @homotopic_with (cart R _1101971) (cart R unit) (fun r : (cart R unit) -> cart R _1101971 => ((@pathstart _1101971 r) = (@pathstart _1101971 _1765750)) /\ ((@pathfinish _1101971 r) = (@pathfinish _1101971 _1765750))) (@pair (Topology (cart R unit)) (Topology (cart R _1101971)) (@subtopology (cart R unit) (@euclidean unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) (@subtopology (cart R _1101971) (@euclidean _1101971) _1765749)) _1765750 _1765751. +Lemma homotopic_paths_def {_1101971 : Type'} : (@homotopic_paths _1101971) = (fun _1765749 : (cart R _1101971) -> Prop => fun _1765750 : (cart R unit) -> cart R _1101971 => fun _1765751 : (cart R unit) -> cart R _1101971 => @homotopic_with (cart R _1101971) (cart R unit) (fun r : (cart R unit) -> cart R _1101971 => ((@pathstart _1101971 r) = (@pathstart _1101971 _1765750)) /\ ((@pathfinish _1101971 r) = (@pathfinish _1101971 _1765750))) (@pair (Topology (cart R unit)) (Topology (cart R _1101971)) (@subtopology (cart R unit) (@euclidean unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) (@subtopology (cart R _1101971) (@euclidean _1101971) _1765749)) _1765750 _1765751). +Proof. exact (eq_refl (@homotopic_paths _1101971)). Qed. +Definition homotopic_loops {_1104574 : Type'} : ((cart R _1104574) -> Prop) -> ((cart R unit) -> cart R _1104574) -> ((cart R unit) -> cart R _1104574) -> Prop := fun _1769541 : (cart R _1104574) -> Prop => fun _1769542 : (cart R unit) -> cart R _1104574 => fun _1769543 : (cart R unit) -> cart R _1104574 => @homotopic_with (cart R _1104574) (cart R unit) (fun r : (cart R unit) -> cart R _1104574 => (@pathfinish _1104574 r) = (@pathstart _1104574 r)) (@pair (Topology (cart R unit)) (Topology (cart R _1104574)) (@subtopology (cart R unit) (@euclidean unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) (@subtopology (cart R _1104574) (@euclidean _1104574) _1769541)) _1769542 _1769543. +Lemma homotopic_loops_def {_1104574 : Type'} : (@homotopic_loops _1104574) = (fun _1769541 : (cart R _1104574) -> Prop => fun _1769542 : (cart R unit) -> cart R _1104574 => fun _1769543 : (cart R unit) -> cart R _1104574 => @homotopic_with (cart R _1104574) (cart R unit) (fun r : (cart R unit) -> cart R _1104574 => (@pathfinish _1104574 r) = (@pathstart _1104574 r)) (@pair (Topology (cart R unit)) (Topology (cart R _1104574)) (@subtopology (cart R unit) (@euclidean unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) (@subtopology (cart R _1104574) (@euclidean _1104574) _1769541)) _1769542 _1769543). +Proof. exact (eq_refl (@homotopic_loops _1104574)). Qed. +Definition simply_connected {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _1777269 : (cart R N') -> Prop => forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', ((@path N' p) /\ (((@pathfinish N' p) = (@pathstart N' p)) /\ ((@SUBSET (cart R N') (@path_image N' p) _1777269) /\ ((@path N' q) /\ (((@pathfinish N' q) = (@pathstart N' q)) /\ (@SUBSET (cart R N') (@path_image N' q) _1777269)))))) -> @homotopic_loops N' _1777269 p q. +Lemma simply_connected_def {N' : Type'} : (@simply_connected N') = (fun _1777269 : (cart R N') -> Prop => forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', ((@path N' p) /\ (((@pathfinish N' p) = (@pathstart N' p)) /\ ((@SUBSET (cart R N') (@path_image N' p) _1777269) /\ ((@path N' q) /\ (((@pathfinish N' q) = (@pathstart N' q)) /\ (@SUBSET (cart R N') (@path_image N' q) _1777269)))))) -> @homotopic_loops N' _1777269 p q). +Proof. exact (eq_refl (@simply_connected N')). Qed. +Definition fundamental_group {N' : Type'} : (prod ((cart R N') -> Prop) (cart R N')) -> (((cart R unit) -> cart R N') -> Prop) -> Prop := fun _1779012 : prod ((cart R N') -> Prop) (cart R N') => @GSPEC (((cart R unit) -> cart R N') -> Prop) (fun GEN_PVAR_4998 : ((cart R unit) -> cart R N') -> Prop => exists p : (cart R unit) -> cart R N', @SETSPEC (((cart R unit) -> cart R N') -> Prop) GEN_PVAR_4998 ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) (@fst ((cart R N') -> Prop) (cart R N') _1779012)) /\ (((@pathstart N' p) = (@snd ((cart R N') -> Prop) (cart R N') _1779012)) /\ ((@pathfinish N' p) = (@snd ((cart R N') -> Prop) (cart R N') _1779012))))) (@homotopic_paths N' (@fst ((cart R N') -> Prop) (cart R N') _1779012) p)). +Lemma fundamental_group_def {N' : Type'} : (@fundamental_group N') = (fun _1779012 : prod ((cart R N') -> Prop) (cart R N') => @GSPEC (((cart R unit) -> cart R N') -> Prop) (fun GEN_PVAR_4998 : ((cart R unit) -> cart R N') -> Prop => exists p : (cart R unit) -> cart R N', @SETSPEC (((cart R unit) -> cart R N') -> Prop) GEN_PVAR_4998 ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) (@fst ((cart R N') -> Prop) (cart R N') _1779012)) /\ (((@pathstart N' p) = (@snd ((cart R N') -> Prop) (cart R N') _1779012)) /\ ((@pathfinish N' p) = (@snd ((cart R N') -> Prop) (cart R N') _1779012))))) (@homotopic_paths N' (@fst ((cart R N') -> Prop) (cart R N') _1779012) p))). +Proof. exact (eq_refl (@fundamental_group N')). Qed. +Definition homotopy_equivalent {M N' : Type'} : ((cart R M) -> Prop) -> ((cart R N') -> Prop) -> Prop := fun _1780697 : (cart R M) -> Prop => fun _1780698 : (cart R N') -> Prop => exists f : (cart R M) -> cart R N', exists g : (cart R N') -> cart R M, (@continuous_on M N' f _1780697) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f _1780697) _1780698) /\ ((@continuous_on N' M g _1780698) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g _1780698) _1780697) /\ ((@homotopic_with (cart R M) (cart R M) (fun x : (cart R M) -> cart R M => True) (@pair (Topology (cart R M)) (Topology (cart R M)) (@subtopology (cart R M) (@euclidean M) _1780697) (@subtopology (cart R M) (@euclidean M) _1780697)) (@o (cart R M) (cart R N') (cart R M) g f) (@I (cart R M))) /\ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') _1780698) (@subtopology (cart R N') (@euclidean N') _1780698)) (@o (cart R N') (cart R M) (cart R N') f g) (@I (cart R N'))))))). +Lemma homotopy_equivalent_def {M N' : Type'} : (@homotopy_equivalent M N') = (fun _1780697 : (cart R M) -> Prop => fun _1780698 : (cart R N') -> Prop => exists f : (cart R M) -> cart R N', exists g : (cart R N') -> cart R M, (@continuous_on M N' f _1780697) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f _1780697) _1780698) /\ ((@continuous_on N' M g _1780698) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g _1780698) _1780697) /\ ((@homotopic_with (cart R M) (cart R M) (fun x : (cart R M) -> cart R M => True) (@pair (Topology (cart R M)) (Topology (cart R M)) (@subtopology (cart R M) (@euclidean M) _1780697) (@subtopology (cart R M) (@euclidean M) _1780697)) (@o (cart R M) (cart R N') (cart R M) g f) (@I (cart R M))) /\ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') _1780698) (@subtopology (cart R N') (@euclidean N') _1780698)) (@o (cart R N') (cart R M) (cart R N') f g) (@I (cart R N')))))))). +Proof. exact (eq_refl (@homotopy_equivalent M N')). Qed. +Definition contractible {_1116691 : Type'} : ((cart R _1116691) -> Prop) -> Prop := fun _1787051 : (cart R _1116691) -> Prop => exists a : cart R _1116691, @homotopic_with (cart R _1116691) (cart R _1116691) (fun x : (cart R _1116691) -> cart R _1116691 => True) (@pair (Topology (cart R _1116691)) (Topology (cart R _1116691)) (@subtopology (cart R _1116691) (@euclidean _1116691) _1787051) (@subtopology (cart R _1116691) (@euclidean _1116691) _1787051)) (fun x : cart R _1116691 => x) (fun x : cart R _1116691 => a). +Lemma contractible_def {_1116691 : Type'} : (@contractible _1116691) = (fun _1787051 : (cart R _1116691) -> Prop => exists a : cart R _1116691, @homotopic_with (cart R _1116691) (cart R _1116691) (fun x : (cart R _1116691) -> cart R _1116691 => True) (@pair (Topology (cart R _1116691)) (Topology (cart R _1116691)) (@subtopology (cart R _1116691) (@euclidean _1116691) _1787051) (@subtopology (cart R _1116691) (@euclidean _1116691) _1787051)) (fun x : cart R _1116691 => x) (fun x : cart R _1116691 => a)). +Proof. exact (eq_refl (@contractible _1116691)). Qed. +Definition dimension {N' : Type'} : ((cart R N') -> Prop) -> Z := fun _1808913 : (cart R N') -> Prop => @COND Z (_1808913 = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (minimal (fun n : N => @dimension_le (cart R N') (@subtopology (cart R N') (@euclidean N') _1808913) (Z_of_N n)))). +Lemma dimension_def {N' : Type'} : (@dimension N') = (fun _1808913 : (cart R N') -> Prop => @COND Z (_1808913 = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (minimal (fun n : N => @dimension_le (cart R N') (@subtopology (cart R N') (@euclidean N') _1808913) (Z_of_N n))))). +Proof. exact (eq_refl (@dimension N')). Qed. +Definition covering_space {M N' : Type'} : (prod ((cart R M) -> Prop) ((cart R M) -> cart R N')) -> ((cart R N') -> Prop) -> Prop := fun _1821738 : prod ((cart R M) -> Prop) ((cart R M) -> cart R N') => fun _1821739 : (cart R N') -> Prop => (@continuous_on M N' (@snd ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738) (@fst ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738)) /\ (((@IMAGE (cart R M) (cart R N') (@snd ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738) (@fst ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738)) = _1821739) /\ (forall x : cart R N', (@IN (cart R N') x _1821739) -> exists t : (cart R N') -> Prop, (@IN (cart R N') x t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') _1821739) t) /\ (exists v : ((cart R M) -> Prop) -> Prop, ((@UNIONS (cart R M) v) = (@GSPEC (cart R M) (fun GEN_PVAR_5060 : cart R M => exists x' : cart R M, @SETSPEC (cart R M) GEN_PVAR_5060 ((@IN (cart R M) x' (@fst ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738)) /\ (@IN (cart R N') (@snd ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738 x') t)) x'))) /\ ((forall u : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) u v) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@fst ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738)) u) /\ ((@pairwise ((cart R M) -> Prop) (@DISJOINT (cart R M)) v) /\ (forall u : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) u v) -> exists q : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) u t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) (@snd ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738) q)))))))). +Lemma covering_space_def {M N' : Type'} : (@covering_space M N') = (fun _1821738 : prod ((cart R M) -> Prop) ((cart R M) -> cart R N') => fun _1821739 : (cart R N') -> Prop => (@continuous_on M N' (@snd ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738) (@fst ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738)) /\ (((@IMAGE (cart R M) (cart R N') (@snd ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738) (@fst ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738)) = _1821739) /\ (forall x : cart R N', (@IN (cart R N') x _1821739) -> exists t : (cart R N') -> Prop, (@IN (cart R N') x t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') _1821739) t) /\ (exists v : ((cart R M) -> Prop) -> Prop, ((@UNIONS (cart R M) v) = (@GSPEC (cart R M) (fun GEN_PVAR_5060 : cart R M => exists x' : cart R M, @SETSPEC (cart R M) GEN_PVAR_5060 ((@IN (cart R M) x' (@fst ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738)) /\ (@IN (cart R N') (@snd ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738 x') t)) x'))) /\ ((forall u : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) u v) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@fst ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738)) u) /\ ((@pairwise ((cart R M) -> Prop) (@DISJOINT (cart R M)) v) /\ (forall u : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) u v) -> exists q : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) u t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) (@snd ((cart R M) -> Prop) ((cart R M) -> cart R N') _1821738) q))))))))). +Proof. exact (eq_refl (@covering_space M N')). Qed. +Definition face_of {_1154071 : Type'} : ((cart R _1154071) -> Prop) -> ((cart R _1154071) -> Prop) -> Prop := fun _1978169 : (cart R _1154071) -> Prop => fun _1978170 : (cart R _1154071) -> Prop => (@SUBSET (cart R _1154071) _1978169 _1978170) /\ ((@convex _1154071 _1978169) /\ (forall a : cart R _1154071, forall b : cart R _1154071, forall x : cart R _1154071, ((@IN (cart R _1154071) a _1978170) /\ ((@IN (cart R _1154071) b _1978170) /\ ((@IN (cart R _1154071) x _1978169) /\ (@IN (cart R _1154071) x (@open_segment _1154071 (@pair (cart R _1154071) (cart R _1154071) a b)))))) -> (@IN (cart R _1154071) a _1978169) /\ (@IN (cart R _1154071) b _1978169))). +Lemma face_of_def {_1154071 : Type'} : (@face_of _1154071) = (fun _1978169 : (cart R _1154071) -> Prop => fun _1978170 : (cart R _1154071) -> Prop => (@SUBSET (cart R _1154071) _1978169 _1978170) /\ ((@convex _1154071 _1978169) /\ (forall a : cart R _1154071, forall b : cart R _1154071, forall x : cart R _1154071, ((@IN (cart R _1154071) a _1978170) /\ ((@IN (cart R _1154071) b _1978170) /\ ((@IN (cart R _1154071) x _1978169) /\ (@IN (cart R _1154071) x (@open_segment _1154071 (@pair (cart R _1154071) (cart R _1154071) a b)))))) -> (@IN (cart R _1154071) a _1978169) /\ (@IN (cart R _1154071) b _1978169)))). +Proof. exact (eq_refl (@face_of _1154071)). Qed. +Definition exposed_face_of {_1160486 : Type'} : ((cart R _1160486) -> Prop) -> ((cart R _1160486) -> Prop) -> Prop := fun _1988689 : (cart R _1160486) -> Prop => fun _1988690 : (cart R _1160486) -> Prop => (@face_of _1160486 _1988689 _1988690) /\ (exists a : cart R _1160486, exists b : R, (@SUBSET (cart R _1160486) _1988690 (@GSPEC (cart R _1160486) (fun GEN_PVAR_5206 : cart R _1160486 => exists x : cart R _1160486, @SETSPEC (cart R _1160486) GEN_PVAR_5206 (Rle (@dot _1160486 a x) b) x))) /\ (_1988689 = (@INTER (cart R _1160486) _1988690 (@GSPEC (cart R _1160486) (fun GEN_PVAR_5207 : cart R _1160486 => exists x : cart R _1160486, @SETSPEC (cart R _1160486) GEN_PVAR_5207 ((@dot _1160486 a x) = b) x))))). +Lemma exposed_face_of_def {_1160486 : Type'} : (@exposed_face_of _1160486) = (fun _1988689 : (cart R _1160486) -> Prop => fun _1988690 : (cart R _1160486) -> Prop => (@face_of _1160486 _1988689 _1988690) /\ (exists a : cart R _1160486, exists b : R, (@SUBSET (cart R _1160486) _1988690 (@GSPEC (cart R _1160486) (fun GEN_PVAR_5206 : cart R _1160486 => exists x : cart R _1160486, @SETSPEC (cart R _1160486) GEN_PVAR_5206 (Rle (@dot _1160486 a x) b) x))) /\ (_1988689 = (@INTER (cart R _1160486) _1988690 (@GSPEC (cart R _1160486) (fun GEN_PVAR_5207 : cart R _1160486 => exists x : cart R _1160486, @SETSPEC (cart R _1160486) GEN_PVAR_5207 ((@dot _1160486 a x) = b) x)))))). +Proof. exact (eq_refl (@exposed_face_of _1160486)). Qed. +Definition extreme_point_of {_1162084 : Type'} : (cart R _1162084) -> ((cart R _1162084) -> Prop) -> Prop := fun _1989434 : cart R _1162084 => fun _1989435 : (cart R _1162084) -> Prop => (@IN (cart R _1162084) _1989434 _1989435) /\ (forall a : cart R _1162084, forall b : cart R _1162084, ((@IN (cart R _1162084) a _1989435) /\ (@IN (cart R _1162084) b _1989435)) -> ~ (@IN (cart R _1162084) _1989434 (@open_segment _1162084 (@pair (cart R _1162084) (cart R _1162084) a b)))). +Lemma extreme_point_of_def {_1162084 : Type'} : (@extreme_point_of _1162084) = (fun _1989434 : cart R _1162084 => fun _1989435 : (cart R _1162084) -> Prop => (@IN (cart R _1162084) _1989434 _1989435) /\ (forall a : cart R _1162084, forall b : cart R _1162084, ((@IN (cart R _1162084) a _1989435) /\ (@IN (cart R _1162084) b _1989435)) -> ~ (@IN (cart R _1162084) _1989434 (@open_segment _1162084 (@pair (cart R _1162084) (cart R _1162084) a b))))). +Proof. exact (eq_refl (@extreme_point_of _1162084)). Qed. +Definition facet_of {_1167038 : Type'} : ((cart R _1167038) -> Prop) -> ((cart R _1167038) -> Prop) -> Prop := fun _1999644 : (cart R _1167038) -> Prop => fun _1999645 : (cart R _1167038) -> Prop => (@face_of _1167038 _1999644 _1999645) /\ ((~ (_1999644 = (@EMPTY (cart R _1167038)))) /\ ((@aff_dim _1167038 _1999644) = (int_sub (@aff_dim _1167038 _1999645) (Z_of_N (NUMERAL (BIT1 0%N)))))). +Lemma facet_of_def {_1167038 : Type'} : (@facet_of _1167038) = (fun _1999644 : (cart R _1167038) -> Prop => fun _1999645 : (cart R _1167038) -> Prop => (@face_of _1167038 _1999644 _1999645) /\ ((~ (_1999644 = (@EMPTY (cart R _1167038)))) /\ ((@aff_dim _1167038 _1999644) = (int_sub (@aff_dim _1167038 _1999645) (Z_of_N (NUMERAL (BIT1 0%N))))))). +Proof. exact (eq_refl (@facet_of _1167038)). Qed. +Definition edge_of {_1168282 : Type'} : ((cart R _1168282) -> Prop) -> ((cart R _1168282) -> Prop) -> Prop := fun _2001894 : (cart R _1168282) -> Prop => fun _2001895 : (cart R _1168282) -> Prop => (@face_of _1168282 _2001894 _2001895) /\ ((@aff_dim _1168282 _2001894) = (Z_of_N (NUMERAL (BIT1 0%N)))). +Lemma edge_of_def {_1168282 : Type'} : (@edge_of _1168282) = (fun _2001894 : (cart R _1168282) -> Prop => fun _2001895 : (cart R _1168282) -> Prop => (@face_of _1168282 _2001894 _2001895) /\ ((@aff_dim _1168282 _2001894) = (Z_of_N (NUMERAL (BIT1 0%N))))). +Proof. exact (eq_refl (@edge_of _1168282)). Qed. +Definition polytope {_1174600 : Type'} : ((cart R _1174600) -> Prop) -> Prop := fun _2007480 : (cart R _1174600) -> Prop => exists v : (cart R _1174600) -> Prop, (@FINITE (cart R _1174600) v) /\ (_2007480 = (@hull (cart R _1174600) (@convex _1174600) v)). +Lemma polytope_def {_1174600 : Type'} : (@polytope _1174600) = (fun _2007480 : (cart R _1174600) -> Prop => exists v : (cart R _1174600) -> Prop, (@FINITE (cart R _1174600) v) /\ (_2007480 = (@hull (cart R _1174600) (@convex _1174600) v))). +Proof. exact (eq_refl (@polytope _1174600)). Qed. +Definition polyhedron {_1176324 : Type'} : ((cart R _1176324) -> Prop) -> Prop := fun _2008072 : (cart R _1176324) -> Prop => exists f : ((cart R _1176324) -> Prop) -> Prop, (@FINITE ((cart R _1176324) -> Prop) f) /\ ((_2008072 = (@INTERS (cart R _1176324) f)) /\ (forall h : (cart R _1176324) -> Prop, (@IN ((cart R _1176324) -> Prop) h f) -> exists a : cart R _1176324, exists b : R, (~ (a = (@vec _1176324 (NUMERAL 0%N)))) /\ (h = (@GSPEC (cart R _1176324) (fun GEN_PVAR_5307 : cart R _1176324 => exists x : cart R _1176324, @SETSPEC (cart R _1176324) GEN_PVAR_5307 (Rle (@dot _1176324 a x) b) x))))). +Lemma polyhedron_def {_1176324 : Type'} : (@polyhedron _1176324) = (fun _2008072 : (cart R _1176324) -> Prop => exists f : ((cart R _1176324) -> Prop) -> Prop, (@FINITE ((cart R _1176324) -> Prop) f) /\ ((_2008072 = (@INTERS (cart R _1176324) f)) /\ (forall h : (cart R _1176324) -> Prop, (@IN ((cart R _1176324) -> Prop) h f) -> exists a : cart R _1176324, exists b : R, (~ (a = (@vec _1176324 (NUMERAL 0%N)))) /\ (h = (@GSPEC (cart R _1176324) (fun GEN_PVAR_5307 : cart R _1176324 => exists x : cart R _1176324, @SETSPEC (cart R _1176324) GEN_PVAR_5307 (Rle (@dot _1176324 a x) b) x)))))). +Proof. exact (eq_refl (@polyhedron _1176324)). Qed. +Definition simplex {_1190765 : Type'} : Z -> ((cart R _1190765) -> Prop) -> Prop := fun _2263361 : Z => fun _2263362 : (cart R _1190765) -> Prop => exists c : (cart R _1190765) -> Prop, (~ (@affine_dependent _1190765 c)) /\ (((Z_of_N (@CARD (cart R _1190765) c)) = (int_add _2263361 (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (_2263362 = (@hull (cart R _1190765) (@convex _1190765) c))). +Lemma simplex_def {_1190765 : Type'} : (@simplex _1190765) = (fun _2263361 : Z => fun _2263362 : (cart R _1190765) -> Prop => exists c : (cart R _1190765) -> Prop, (~ (@affine_dependent _1190765 c)) /\ (((Z_of_N (@CARD (cart R _1190765) c)) = (int_add _2263361 (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (_2263362 = (@hull (cart R _1190765) (@convex _1190765) c)))). +Proof. exact (eq_refl (@simplex _1190765)). Qed. +Definition simplicial_complex {_1192993 : Type'} : (((cart R _1192993) -> Prop) -> Prop) -> Prop := fun _2267161 : ((cart R _1192993) -> Prop) -> Prop => (@FINITE ((cart R _1192993) -> Prop) _2267161) /\ ((forall s : (cart R _1192993) -> Prop, (@IN ((cart R _1192993) -> Prop) s _2267161) -> exists n : Z, @simplex _1192993 n s) /\ ((forall f : (cart R _1192993) -> Prop, forall s : (cart R _1192993) -> Prop, ((@IN ((cart R _1192993) -> Prop) s _2267161) /\ (@face_of _1192993 f s)) -> @IN ((cart R _1192993) -> Prop) f _2267161) /\ (forall s : (cart R _1192993) -> Prop, forall s' : (cart R _1192993) -> Prop, ((@IN ((cart R _1192993) -> Prop) s _2267161) /\ (@IN ((cart R _1192993) -> Prop) s' _2267161)) -> (@face_of _1192993 (@INTER (cart R _1192993) s s') s) /\ (@face_of _1192993 (@INTER (cart R _1192993) s s') s')))). +Lemma simplicial_complex_def {_1192993 : Type'} : (@simplicial_complex _1192993) = (fun _2267161 : ((cart R _1192993) -> Prop) -> Prop => (@FINITE ((cart R _1192993) -> Prop) _2267161) /\ ((forall s : (cart R _1192993) -> Prop, (@IN ((cart R _1192993) -> Prop) s _2267161) -> exists n : Z, @simplex _1192993 n s) /\ ((forall f : (cart R _1192993) -> Prop, forall s : (cart R _1192993) -> Prop, ((@IN ((cart R _1192993) -> Prop) s _2267161) /\ (@face_of _1192993 f s)) -> @IN ((cart R _1192993) -> Prop) f _2267161) /\ (forall s : (cart R _1192993) -> Prop, forall s' : (cart R _1192993) -> Prop, ((@IN ((cart R _1192993) -> Prop) s _2267161) /\ (@IN ((cart R _1192993) -> Prop) s' _2267161)) -> (@face_of _1192993 (@INTER (cart R _1192993) s s') s) /\ (@face_of _1192993 (@INTER (cart R _1192993) s s') s'))))). +Proof. exact (eq_refl (@simplicial_complex _1192993)). Qed. +Definition triangulation {N' : Type'} : (((cart R N') -> Prop) -> Prop) -> Prop := fun _2267166 : ((cart R N') -> Prop) -> Prop => (@FINITE ((cart R N') -> Prop) _2267166) /\ ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t _2267166) -> exists n : Z, @simplex N' n t) /\ (forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) t _2267166) /\ (@IN ((cart R N') -> Prop) t' _2267166)) -> (@face_of N' (@INTER (cart R N') t t') t) /\ (@face_of N' (@INTER (cart R N') t t') t'))). +Lemma triangulation_def {N' : Type'} : (@triangulation N') = (fun _2267166 : ((cart R N') -> Prop) -> Prop => (@FINITE ((cart R N') -> Prop) _2267166) /\ ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t _2267166) -> exists n : Z, @simplex N' n t) /\ (forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) t _2267166) /\ (@IN ((cart R N') -> Prop) t' _2267166)) -> (@face_of N' (@INTER (cart R N') t t') t) /\ (@face_of N' (@INTER (cart R N') t t') t')))). +Proof. exact (eq_refl (@triangulation N')). Qed. +Definition brouwer_degree1 {N' : Type'} : N -> ((cart R N') -> cart R N') -> Z := fun _2309665 : N => fun _2309666 : (cart R N') -> cart R N' => @COND Z ((N.le (NUMERAL (BIT1 0%N)) _2309665) /\ (N.le _2309665 (@dimindex N' (@UNIV N')))) (brouwer_degree2 (N.sub _2309665 (NUMERAL (BIT1 0%N))) (@o (N -> R) (cart R N') (N -> R) (fun x : cart R N' => fun i : N => @COND R ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i _2309665)) (@dollar R N' x i) (R_of_N (NUMERAL 0%N))) (@o (N -> R) (cart R N') (cart R N') _2309666 (fun x : N -> R => @lambda R N' (fun i : N => @COND R ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i _2309665)) (x i) (R_of_N (NUMERAL 0%N))))))) (Z_of_N (NUMERAL (BIT1 0%N))). +Lemma brouwer_degree1_def {N' : Type'} : (@brouwer_degree1 N') = (fun _2309665 : N => fun _2309666 : (cart R N') -> cart R N' => @COND Z ((N.le (NUMERAL (BIT1 0%N)) _2309665) /\ (N.le _2309665 (@dimindex N' (@UNIV N')))) (brouwer_degree2 (N.sub _2309665 (NUMERAL (BIT1 0%N))) (@o (N -> R) (cart R N') (N -> R) (fun x : cart R N' => fun i : N => @COND R ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i _2309665)) (@dollar R N' x i) (R_of_N (NUMERAL 0%N))) (@o (N -> R) (cart R N') (cart R N') _2309666 (fun x : N -> R => @lambda R N' (fun i : N => @COND R ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i _2309665)) (x i) (R_of_N (NUMERAL 0%N))))))) (Z_of_N (NUMERAL (BIT1 0%N)))). +Proof. exact (eq_refl (@brouwer_degree1 N')). Qed. +Definition brouwer_degree {N' : Type'} : ((cart R N') -> cart R N') -> Z := fun _2309677 : (cart R N') -> cart R N' => @brouwer_degree1 N' (@dimindex N' (@UNIV N')) _2309677. +Lemma brouwer_degree_def {N' : Type'} : (@brouwer_degree N') = (fun _2309677 : (cart R N') -> cart R N' => @brouwer_degree1 N' (@dimindex N' (@UNIV N')) _2309677). +Proof. exact (eq_refl (@brouwer_degree N')). Qed. +Definition retraction {N' : Type'} : (prod ((cart R N') -> Prop) ((cart R N') -> Prop)) -> ((cart R N') -> cart R N') -> Prop := fun _2316067 : prod ((cart R N') -> Prop) ((cart R N') -> Prop) => fun _2316068 : (cart R N') -> cart R N' => (@SUBSET (cart R N') (@snd ((cart R N') -> Prop) ((cart R N') -> Prop) _2316067) (@fst ((cart R N') -> Prop) ((cart R N') -> Prop) _2316067)) /\ ((@continuous_on N' N' _2316068 (@fst ((cart R N') -> Prop) ((cart R N') -> Prop) _2316067)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') _2316068 (@fst ((cart R N') -> Prop) ((cart R N') -> Prop) _2316067)) (@snd ((cart R N') -> Prop) ((cart R N') -> Prop) _2316067)) /\ (forall x : cart R N', (@IN (cart R N') x (@snd ((cart R N') -> Prop) ((cart R N') -> Prop) _2316067)) -> (_2316068 x) = x))). +Lemma retraction_def {N' : Type'} : (@retraction N') = (fun _2316067 : prod ((cart R N') -> Prop) ((cart R N') -> Prop) => fun _2316068 : (cart R N') -> cart R N' => (@SUBSET (cart R N') (@snd ((cart R N') -> Prop) ((cart R N') -> Prop) _2316067) (@fst ((cart R N') -> Prop) ((cart R N') -> Prop) _2316067)) /\ ((@continuous_on N' N' _2316068 (@fst ((cart R N') -> Prop) ((cart R N') -> Prop) _2316067)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') _2316068 (@fst ((cart R N') -> Prop) ((cart R N') -> Prop) _2316067)) (@snd ((cart R N') -> Prop) ((cart R N') -> Prop) _2316067)) /\ (forall x : cart R N', (@IN (cart R N') x (@snd ((cart R N') -> Prop) ((cart R N') -> Prop) _2316067)) -> (_2316068 x) = x)))). +Proof. exact (eq_refl (@retraction N')). Qed. +Definition retract_of {_1201478 : Type'} : ((cart R _1201478) -> Prop) -> ((cart R _1201478) -> Prop) -> Prop := fun _2316084 : (cart R _1201478) -> Prop => fun _2316085 : (cart R _1201478) -> Prop => exists r : (cart R _1201478) -> cart R _1201478, @retraction _1201478 (@pair ((cart R _1201478) -> Prop) ((cart R _1201478) -> Prop) _2316085 _2316084) r. +Lemma retract_of_def {_1201478 : Type'} : (@retract_of _1201478) = (fun _2316084 : (cart R _1201478) -> Prop => fun _2316085 : (cart R _1201478) -> Prop => exists r : (cart R _1201478) -> cart R _1201478, @retraction _1201478 (@pair ((cart R _1201478) -> Prop) ((cart R _1201478) -> Prop) _2316085 _2316084) r). +Proof. exact (eq_refl (@retract_of _1201478)). Qed. +Definition AR {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _2361783 : (cart R N') -> Prop => forall u : (cart R (finite_sum N' unit)) -> Prop, forall s' : (cart R (finite_sum N' unit)) -> Prop, ((@homeomorphic (finite_sum N' unit) N' _2361783 s') /\ (@closed_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) s')) -> @retract_of (finite_sum N' unit) s' u. +Lemma AR_def {N' : Type'} : (@AR N') = (fun _2361783 : (cart R N') -> Prop => forall u : (cart R (finite_sum N' unit)) -> Prop, forall s' : (cart R (finite_sum N' unit)) -> Prop, ((@homeomorphic (finite_sum N' unit) N' _2361783 s') /\ (@closed_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) s')) -> @retract_of (finite_sum N' unit) s' u). +Proof. exact (eq_refl (@AR N')). Qed. +Definition ANR {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _2361788 : (cart R N') -> Prop => forall u : (cart R (finite_sum N' unit)) -> Prop, forall s' : (cart R (finite_sum N' unit)) -> Prop, ((@homeomorphic (finite_sum N' unit) N' _2361788 s') /\ (@closed_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) s')) -> exists t : (cart R (finite_sum N' unit)) -> Prop, (@open_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) t) /\ (@retract_of (finite_sum N' unit) s' t). +Lemma ANR_def {N' : Type'} : (@ANR N') = (fun _2361788 : (cart R N') -> Prop => forall u : (cart R (finite_sum N' unit)) -> Prop, forall s' : (cart R (finite_sum N' unit)) -> Prop, ((@homeomorphic (finite_sum N' unit) N' _2361788 s') /\ (@closed_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) s')) -> exists t : (cart R (finite_sum N' unit)) -> Prop, (@open_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) t) /\ (@retract_of (finite_sum N' unit) s' t)). +Proof. exact (eq_refl (@ANR N')). Qed. +Definition ENR {_1210526 : Type'} : ((cart R _1210526) -> Prop) -> Prop := fun _2361793 : (cart R _1210526) -> Prop => exists u : (cart R _1210526) -> Prop, (@_open _1210526 u) /\ (@retract_of _1210526 _2361793 u). +Lemma ENR_def {_1210526 : Type'} : (@ENR _1210526) = (fun _2361793 : (cart R _1210526) -> Prop => exists u : (cart R _1210526) -> Prop, (@_open _1210526 u) /\ (@retract_of _1210526 _2361793 u)). +Proof. exact (eq_refl (@ENR _1210526)). Qed. +Definition interval_bij {N' : Type'} : (prod (cart R N') (cart R N')) -> (prod (cart R N') (cart R N')) -> (cart R N') -> cart R N' := fun _2459693 : prod (cart R N') (cart R N') => fun _2459694 : prod (cart R N') (cart R N') => fun _2459695 : cart R N' => @lambda R N' (fun i : N => Rplus (@dollar R N' (@fst (cart R N') (cart R N') _2459694) i) (Rmult (Rdiv (Rminus (@dollar R N' _2459695 i) (@dollar R N' (@fst (cart R N') (cart R N') _2459693) i)) (Rminus (@dollar R N' (@snd (cart R N') (cart R N') _2459693) i) (@dollar R N' (@fst (cart R N') (cart R N') _2459693) i))) (Rminus (@dollar R N' (@snd (cart R N') (cart R N') _2459694) i) (@dollar R N' (@fst (cart R N') (cart R N') _2459694) i)))). +Lemma interval_bij_def {N' : Type'} : (@interval_bij N') = (fun _2459693 : prod (cart R N') (cart R N') => fun _2459694 : prod (cart R N') (cart R N') => fun _2459695 : cart R N' => @lambda R N' (fun i : N => Rplus (@dollar R N' (@fst (cart R N') (cart R N') _2459694) i) (Rmult (Rdiv (Rminus (@dollar R N' _2459695 i) (@dollar R N' (@fst (cart R N') (cart R N') _2459693) i)) (Rminus (@dollar R N' (@snd (cart R N') (cart R N') _2459693) i) (@dollar R N' (@fst (cart R N') (cart R N') _2459693) i))) (Rminus (@dollar R N' (@snd (cart R N') (cart R N') _2459694) i) (@dollar R N' (@fst (cart R N') (cart R N') _2459694) i))))). +Proof. exact (eq_refl (@interval_bij N')). Qed. +Definition has_derivative {_1241185 _1241188 : Type'} : ((cart R _1241188) -> cart R _1241185) -> ((cart R _1241188) -> cart R _1241185) -> (net (cart R _1241188)) -> Prop := fun _2495383 : (cart R _1241188) -> cart R _1241185 => fun _2495384 : (cart R _1241188) -> cart R _1241185 => fun _2495385 : net (cart R _1241188) => (@linear _1241188 _1241185 _2495384) /\ (@FImp _1241185 (cart R _1241188) (fun y : cart R _1241188 => @percent _1241185 (Rinv (@vector_norm _1241188 (@vector_sub _1241188 y (@netlimit (cart R _1241188) _2495385)))) (@vector_sub _1241185 (_2495383 y) (@vector_add _1241185 (_2495383 (@netlimit (cart R _1241188) _2495385)) (_2495384 (@vector_sub _1241188 y (@netlimit (cart R _1241188) _2495385)))))) (@vec _1241185 (NUMERAL 0%N)) _2495385). +Lemma has_derivative_def {_1241185 _1241188 : Type'} : (@has_derivative _1241185 _1241188) = (fun _2495383 : (cart R _1241188) -> cart R _1241185 => fun _2495384 : (cart R _1241188) -> cart R _1241185 => fun _2495385 : net (cart R _1241188) => (@linear _1241188 _1241185 _2495384) /\ (@FImp _1241185 (cart R _1241188) (fun y : cart R _1241188 => @percent _1241185 (Rinv (@vector_norm _1241188 (@vector_sub _1241188 y (@netlimit (cart R _1241188) _2495385)))) (@vector_sub _1241185 (_2495383 y) (@vector_add _1241185 (_2495383 (@netlimit (cart R _1241188) _2495385)) (_2495384 (@vector_sub _1241188 y (@netlimit (cart R _1241188) _2495385)))))) (@vec _1241185 (NUMERAL 0%N)) _2495385)). +Proof. exact (eq_refl (@has_derivative _1241185 _1241188)). Qed. +Definition differentiable {_1243141 _1243142 : Type'} : ((cart R _1243142) -> cart R _1243141) -> (net (cart R _1243142)) -> Prop := fun _2495701 : (cart R _1243142) -> cart R _1243141 => fun _2495702 : net (cart R _1243142) => exists f' : (cart R _1243142) -> cart R _1243141, @has_derivative _1243141 _1243142 _2495701 f' _2495702. +Lemma differentiable_def {_1243141 _1243142 : Type'} : (@differentiable _1243141 _1243142) = (fun _2495701 : (cart R _1243142) -> cart R _1243141 => fun _2495702 : net (cart R _1243142) => exists f' : (cart R _1243142) -> cart R _1243141, @has_derivative _1243141 _1243142 _2495701 f' _2495702). +Proof. exact (eq_refl (@differentiable _1243141 _1243142)). Qed. +Definition differentiable_on {_1243159 _1243165 : Type'} : ((cart R _1243165) -> cart R _1243159) -> ((cart R _1243165) -> Prop) -> Prop := fun _2495713 : (cart R _1243165) -> cart R _1243159 => fun _2495714 : (cart R _1243165) -> Prop => forall x : cart R _1243165, (@IN (cart R _1243165) x _2495714) -> @differentiable _1243159 _1243165 _2495713 (@within (cart R _1243165) (@_at _1243165 x) _2495714). +Lemma differentiable_on_def {_1243159 _1243165 : Type'} : (@differentiable_on _1243159 _1243165) = (fun _2495713 : (cart R _1243165) -> cart R _1243159 => fun _2495714 : (cart R _1243165) -> Prop => forall x : cart R _1243165, (@IN (cart R _1243165) x _2495714) -> @differentiable _1243159 _1243165 _2495713 (@within (cart R _1243165) (@_at _1243165 x) _2495714)). +Proof. exact (eq_refl (@differentiable_on _1243159 _1243165)). Qed. +Definition frechet_derivative {_1243519 _1243520 : Type'} : ((cart R _1243520) -> cart R _1243519) -> (net (cart R _1243520)) -> (cart R _1243520) -> cart R _1243519 := fun _2496343 : (cart R _1243520) -> cart R _1243519 => fun _2496344 : net (cart R _1243520) => @ε ((cart R _1243520) -> cart R _1243519) (fun f' : (cart R _1243520) -> cart R _1243519 => @has_derivative _1243519 _1243520 _2496343 f' _2496344). +Lemma frechet_derivative_def {_1243519 _1243520 : Type'} : (@frechet_derivative _1243519 _1243520) = (fun _2496343 : (cart R _1243520) -> cart R _1243519 => fun _2496344 : net (cart R _1243520) => @ε ((cart R _1243520) -> cart R _1243519) (fun f' : (cart R _1243520) -> cart R _1243519 => @has_derivative _1243519 _1243520 _2496343 f' _2496344)). +Proof. exact (eq_refl (@frechet_derivative _1243519 _1243520)). Qed. +Definition jacobian {_1243578 _1243579 : Type'} : ((cart R _1243578) -> cart R _1243579) -> (net (cart R _1243578)) -> cart (cart R _1243578) _1243579 := fun _2496355 : (cart R _1243578) -> cart R _1243579 => fun _2496356 : net (cart R _1243578) => @matrix _1243578 _1243579 (@frechet_derivative _1243579 _1243578 _2496355 _2496356). +Lemma jacobian_def {_1243578 _1243579 : Type'} : (@jacobian _1243578 _1243579) = (fun _2496355 : (cart R _1243578) -> cart R _1243579 => fun _2496356 : net (cart R _1243578) => @matrix _1243578 _1243579 (@frechet_derivative _1243579 _1243578 _2496355 _2496356)). +Proof. exact (eq_refl (@jacobian _1243578 _1243579)). Qed. +Definition has_vector_derivative {_1272665 : Type'} : ((cart R unit) -> cart R _1272665) -> (cart R _1272665) -> (net (cart R unit)) -> Prop := fun _2661005 : (cart R unit) -> cart R _1272665 => fun _2661006 : cart R _1272665 => fun _2661007 : net (cart R unit) => @has_derivative _1272665 unit _2661005 (fun x : cart R unit => @percent _1272665 (drop x) _2661006) _2661007. +Lemma has_vector_derivative_def {_1272665 : Type'} : (@has_vector_derivative _1272665) = (fun _2661005 : (cart R unit) -> cart R _1272665 => fun _2661006 : cart R _1272665 => fun _2661007 : net (cart R unit) => @has_derivative _1272665 unit _2661005 (fun x : cart R unit => @percent _1272665 (drop x) _2661006) _2661007). +Proof. exact (eq_refl (@has_vector_derivative _1272665)). Qed. +Definition vector_derivative {N' : Type'} : ((cart R unit) -> cart R N') -> (net (cart R unit)) -> cart R N' := fun _2661026 : (cart R unit) -> cart R N' => fun _2661027 : net (cart R unit) => @ε (cart R N') (fun f' : cart R N' => @has_vector_derivative N' _2661026 f' _2661027). +Lemma vector_derivative_def {N' : Type'} : (@vector_derivative N') = (fun _2661026 : (cart R unit) -> cart R N' => fun _2661027 : net (cart R unit) => @ε (cart R N') (fun f' : cart R N' => @has_vector_derivative N' _2661026 f' _2661027)). +Proof. exact (eq_refl (@vector_derivative N')). Qed. +Definition bitset : N -> N -> Prop := fun _2663271 : N => @GSPEC N (fun GEN_PVAR_5739 : N => exists i : N, @SETSPEC N GEN_PVAR_5739 (ODD (N.div _2663271 (N.pow (NUMERAL (BIT0 (BIT1 0%N))) i))) i). +Lemma bitset_def : bitset = (fun _2663271 : N => @GSPEC N (fun GEN_PVAR_5739 : N => exists i : N, @SETSPEC N GEN_PVAR_5739 (ODD (N.div _2663271 (N.pow (NUMERAL (BIT0 (BIT1 0%N))) i))) i)). +Proof. exact (eq_refl bitset). Qed. +Definition binarysum : (N -> Prop) -> N := fun _2663276 : N -> Prop => @nsum N _2663276 (fun i : N => N.pow (NUMERAL (BIT0 (BIT1 0%N))) i). +Lemma binarysum_def : binarysum = (fun _2663276 : N -> Prop => @nsum N _2663276 (fun i : N => N.pow (NUMERAL (BIT0 (BIT1 0%N))) i)). +Proof. exact (eq_refl binarysum). Qed. +Definition setcode : (N -> Prop) -> N := fun _2664142 : N -> Prop => N.add (NUMERAL (BIT1 0%N)) (binarysum (@IMAGE N N N.pred _2664142)). +Lemma setcode_def : setcode = (fun _2664142 : N -> Prop => N.add (NUMERAL (BIT1 0%N)) (binarysum (@IMAGE N N N.pred _2664142))). +Proof. exact (eq_refl setcode). Qed. +Definition codeset : N -> N -> Prop := fun _2664147 : N => @IMAGE N N N.succ (bitset (N.sub _2664147 (NUMERAL (BIT1 0%N)))). +Lemma codeset_def : codeset = (fun _2664147 : N => @IMAGE N N N.succ (bitset (N.sub _2664147 (NUMERAL (BIT1 0%N))))). +Proof. exact (eq_refl codeset). Qed. +Definition dollardollar {N' : Type'} : (cart R (Multivector N')) -> (N -> Prop) -> R := fun _2664473 : cart R (Multivector N') => fun _2664474 : N -> Prop => @dollar R (Multivector N') _2664473 (setcode _2664474). +Lemma dollardollar_def {N' : Type'} : (@dollardollar N') = (fun _2664473 : cart R (Multivector N') => fun _2664474 : N -> Prop => @dollar R (Multivector N') _2664473 (setcode _2664474)). +Proof. exact (eq_refl (@dollardollar N')). Qed. +Definition lambdas {N' : Type'} : ((N -> Prop) -> R) -> cart R (Multivector N') := fun _2664485 : (N -> Prop) -> R => @lambda R (Multivector N') (fun i : N => _2664485 (codeset i)). +Lemma lambdas_def {N' : Type'} : (@lambdas N') = (fun _2664485 : (N -> Prop) -> R => @lambda R (Multivector N') (fun i : N => _2664485 (codeset i))). +Proof. exact (eq_refl (@lambdas N')). Qed. +Definition mbasis {_1278771 : Type'} : (N -> Prop) -> cart R (Multivector _1278771) := fun _2664528 : N -> Prop => @lambdas _1278771 (fun s : N -> Prop => @COND R (_2664528 = s) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Lemma mbasis_def {_1278771 : Type'} : (@mbasis _1278771) = (fun _2664528 : N -> Prop => @lambdas _1278771 (fun s : N -> Prop => @COND R (_2664528 = s) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N)))). +Proof. exact (eq_refl (@mbasis _1278771)). Qed. +Definition multivec {N' : Type'} : (cart R N') -> cart R (Multivector N') := fun _2664804 : cart R N' => @vsum N (Multivector N') (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @percent (Multivector N') (@dollar R N' _2664804 i) (@mbasis N' (@INSERT N i (@EMPTY N)))). +Lemma multivec_def {N' : Type'} : (@multivec N') = (fun _2664804 : cart R N' => @vsum N (Multivector N') (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @percent (Multivector N') (@dollar R N' _2664804 i) (@mbasis N' (@INSERT N i (@EMPTY N))))). +Proof. exact (eq_refl (@multivec N')). Qed. +Definition multivector {N' : Type'} : N -> (cart R (Multivector N')) -> Prop := fun _2664809 : N => fun _2664810 : cart R (Multivector N') => forall s : N -> Prop, ((@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (~ ((@dollardollar N' _2664810 s) = (R_of_N (NUMERAL 0%N))))) -> @HAS_SIZE N s _2664809. +Lemma multivector_def {N' : Type'} : (@multivector N') = (fun _2664809 : N => fun _2664810 : cart R (Multivector N') => forall s : N -> Prop, ((@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (~ ((@dollardollar N' _2664810 s) = (R_of_N (NUMERAL 0%N))))) -> @HAS_SIZE N s _2664809). +Proof. exact (eq_refl (@multivector N')). Qed. +Definition grade {N' : Type'} : N -> (cart R (Multivector N')) -> cart R (Multivector N') := fun _2664821 : N => fun _2664822 : cart R (Multivector N') => @lambdas N' (fun s : N -> Prop => @COND R (@HAS_SIZE N s _2664821) (@dollardollar N' _2664822 s) (R_of_N (NUMERAL 0%N))). +Lemma grade_def {N' : Type'} : (@grade N') = (fun _2664821 : N => fun _2664822 : cart R (Multivector N') => @lambdas N' (fun s : N -> Prop => @COND R (@HAS_SIZE N s _2664821) (@dollardollar N' _2664822 s) (R_of_N (NUMERAL 0%N)))). +Proof. exact (eq_refl (@grade N')). Qed. +Definition Product {N' : Type'} : ((N -> Prop) -> (N -> Prop) -> R) -> ((N -> Prop) -> (N -> Prop) -> N -> Prop) -> (cart R (Multivector N')) -> (cart R (Multivector N')) -> cart R (Multivector N') := fun _2664837 : (N -> Prop) -> (N -> Prop) -> R => fun _2664838 : (N -> Prop) -> (N -> Prop) -> N -> Prop => fun _2664839 : cart R (Multivector N') => fun _2664840 : cart R (Multivector N') => @vsum (N -> Prop) (Multivector N') (@GSPEC (N -> Prop) (fun GEN_PVAR_5752 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5752 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) s)) (fun s : N -> Prop => @vsum (N -> Prop) (Multivector N') (@GSPEC (N -> Prop) (fun GEN_PVAR_5753 : N -> Prop => exists s' : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5753 (@SUBSET N s' (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) s')) (fun t : N -> Prop => @percent (Multivector N') (Rmult (@dollardollar N' _2664839 s) (Rmult (@dollardollar N' _2664840 t) (_2664837 s t))) (@mbasis N' (_2664838 s t)))). +Lemma Product_def {N' : Type'} : (@Product N') = (fun _2664837 : (N -> Prop) -> (N -> Prop) -> R => fun _2664838 : (N -> Prop) -> (N -> Prop) -> N -> Prop => fun _2664839 : cart R (Multivector N') => fun _2664840 : cart R (Multivector N') => @vsum (N -> Prop) (Multivector N') (@GSPEC (N -> Prop) (fun GEN_PVAR_5752 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5752 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) s)) (fun s : N -> Prop => @vsum (N -> Prop) (Multivector N') (@GSPEC (N -> Prop) (fun GEN_PVAR_5753 : N -> Prop => exists s' : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5753 (@SUBSET N s' (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) s')) (fun t : N -> Prop => @percent (Multivector N') (Rmult (@dollardollar N' _2664839 s) (Rmult (@dollardollar N' _2664840 t) (_2664837 s t))) (@mbasis N' (_2664838 s t))))). +Proof. exact (eq_refl (@Product N')). Qed. +Definition geom_mul {N' : Type'} : (cart R (Multivector N')) -> (cart R (Multivector N')) -> cart R (Multivector N') := fun _2666016 : cart R (Multivector N') => fun _2666017 : cart R (Multivector N') => @Product N' (fun s : N -> Prop => fun t : N -> Prop => real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5755 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5755 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N i s) /\ ((@IN N j t) /\ (N.gt i j))))) (@pair N N i j))))) (fun s : N -> Prop => fun t : N -> Prop => @UNION N (@DIFF N s t) (@DIFF N t s)) _2666016 _2666017. +Lemma geom_mul_def {N' : Type'} : (@geom_mul N') = (fun _2666016 : cart R (Multivector N') => fun _2666017 : cart R (Multivector N') => @Product N' (fun s : N -> Prop => fun t : N -> Prop => real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5755 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5755 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N i s) /\ ((@IN N j t) /\ (N.gt i j))))) (@pair N N i j))))) (fun s : N -> Prop => fun t : N -> Prop => @UNION N (@DIFF N s t) (@DIFF N t s)) _2666016 _2666017). +Proof. exact (eq_refl (@geom_mul N')). Qed. +Definition outer {N' : Type'} : (cart R (Multivector N')) -> (cart R (Multivector N')) -> cart R (Multivector N') := fun _2666100 : cart R (Multivector N') => fun _2666101 : cart R (Multivector N') => @Product N' (fun s : N -> Prop => fun t : N -> Prop => @COND R (~ ((@INTER N s t) = (@EMPTY N))) (R_of_N (NUMERAL 0%N)) (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5756 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5756 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N i s) /\ ((@IN N j t) /\ (N.gt i j))))) (@pair N N i j)))))) (fun s : N -> Prop => fun t : N -> Prop => @UNION N (@DIFF N s t) (@DIFF N t s)) _2666100 _2666101. +Lemma outer_def {N' : Type'} : (@outer N') = (fun _2666100 : cart R (Multivector N') => fun _2666101 : cart R (Multivector N') => @Product N' (fun s : N -> Prop => fun t : N -> Prop => @COND R (~ ((@INTER N s t) = (@EMPTY N))) (R_of_N (NUMERAL 0%N)) (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5756 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5756 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N i s) /\ ((@IN N j t) /\ (N.gt i j))))) (@pair N N i j)))))) (fun s : N -> Prop => fun t : N -> Prop => @UNION N (@DIFF N s t) (@DIFF N t s)) _2666100 _2666101). +Proof. exact (eq_refl (@outer N')). Qed. +Definition inner {N' : Type'} : (cart R (Multivector N')) -> (cart R (Multivector N')) -> cart R (Multivector N') := fun _2666286 : cart R (Multivector N') => fun _2666287 : cart R (Multivector N') => @Product N' (fun s : N -> Prop => fun t : N -> Prop => @COND R ((s = (@EMPTY N)) \/ ((t = (@EMPTY N)) \/ (~ (((@DIFF N s t) = (@EMPTY N)) /\ (~ ((@DIFF N t s) = (@EMPTY N))))))) (R_of_N (NUMERAL 0%N)) (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5758 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5758 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N i s) /\ ((@IN N j t) /\ (N.gt i j))))) (@pair N N i j)))))) (fun s : N -> Prop => fun t : N -> Prop => @UNION N (@DIFF N s t) (@DIFF N t s)) _2666286 _2666287. +Lemma inner_def {N' : Type'} : (@inner N') = (fun _2666286 : cart R (Multivector N') => fun _2666287 : cart R (Multivector N') => @Product N' (fun s : N -> Prop => fun t : N -> Prop => @COND R ((s = (@EMPTY N)) \/ ((t = (@EMPTY N)) \/ (~ (((@DIFF N s t) = (@EMPTY N)) /\ (~ ((@DIFF N t s) = (@EMPTY N))))))) (R_of_N (NUMERAL 0%N)) (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5758 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5758 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N i s) /\ ((@IN N j t) /\ (N.gt i j))))) (@pair N N i j)))))) (fun s : N -> Prop => fun t : N -> Prop => @UNION N (@DIFF N s t) (@DIFF N t s)) _2666286 _2666287). +Proof. exact (eq_refl (@inner N')). Qed. +Definition seqiterate {_1282116 : Type'} : (_1282116 -> _1282116 -> _1282116) -> (N -> Prop) -> (N -> _1282116) -> _1282116 := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) -> (_1282116 -> _1282116 -> _1282116) -> (N -> Prop) -> (N -> _1282116) -> _1282116) (fun h : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) -> (_1282116 -> _1282116 -> _1282116) -> (N -> Prop) -> (N -> _1282116) -> _1282116 => forall _2667927 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))), forall op : _1282116 -> _1282116 -> _1282116, forall f : N -> _1282116, forall s : N -> Prop, (h _2667927 op s f) = (@COND _1282116 ((@INFINITE N s) \/ (s = (@EMPTY N))) (@neutral _1282116 op) (@LET N _1282116 (fun i : N => @LET_END _1282116 (@COND _1282116 (s = (@INSERT N i (@EMPTY N))) (f i) (op (f i) (h _2667927 op (@DELETE N s i) f)))) (minimal (fun x : N => @IN N x s))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))). +Lemma seqiterate_def {_1282116 : Type'} : (@seqiterate _1282116) = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) -> (_1282116 -> _1282116 -> _1282116) -> (N -> Prop) -> (N -> _1282116) -> _1282116) (fun h : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) -> (_1282116 -> _1282116 -> _1282116) -> (N -> Prop) -> (N -> _1282116) -> _1282116 => forall _2667927 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))), forall op : _1282116 -> _1282116 -> _1282116, forall f : N -> _1282116, forall s : N -> Prop, (h _2667927 op s f) = (@COND _1282116 ((@INFINITE N s) \/ (s = (@EMPTY N))) (@neutral _1282116 op) (@LET N _1282116 (fun i : N => @LET_END _1282116 (@COND _1282116 (s = (@INSERT N i (@EMPTY N))) (f i) (op (f i) (h _2667927 op (@DELETE N s i) f)))) (minimal (fun x : N => @IN N x s))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))). +Proof. exact (eq_refl (@seqiterate _1282116)). Qed. +Definition outermorphism {N' P : Type'} : ((cart R N') -> cart R P) -> (cart R (Multivector N')) -> cart R (Multivector P) := fun _2668197 : (cart R N') -> cart R P => fun _2668198 : cart R (Multivector N') => @vsum (N -> Prop) (Multivector P) (@GSPEC (N -> Prop) (fun GEN_PVAR_5766 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5766 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) s)) (fun s : N -> Prop => @percent (Multivector P) (@dollardollar N' _2668198 s) (@seqiterate (cart R (Multivector P)) (@outer P) s (@o N (cart R P) (cart R (Multivector P)) (@multivec P) (@o N (cart R N') (cart R P) _2668197 (@basis N'))))). +Lemma outermorphism_def {N' P : Type'} : (@outermorphism N' P) = (fun _2668197 : (cart R N') -> cart R P => fun _2668198 : cart R (Multivector N') => @vsum (N -> Prop) (Multivector P) (@GSPEC (N -> Prop) (fun GEN_PVAR_5766 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5766 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) s)) (fun s : N -> Prop => @percent (Multivector P) (@dollardollar N' _2668198 s) (@seqiterate (cart R (Multivector P)) (@outer P) s (@o N (cart R P) (cart R (Multivector P)) (@multivec P) (@o N (cart R N') (cart R P) _2668197 (@basis N')))))). +Proof. exact (eq_refl (@outermorphism N' P)). Qed. +Definition reversion {N' : Type'} : (cart R (Multivector N')) -> cart R (Multivector N') := fun _2668316 : cart R (Multivector N') => @lambdas N' (fun s : N -> Prop => Rmult (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (N.div (N.mul (@CARD N s) (N.sub (@CARD N s) (NUMERAL (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) (@dollardollar N' _2668316 s)). +Lemma reversion_def {N' : Type'} : (@reversion N') = (fun _2668316 : cart R (Multivector N') => @lambdas N' (fun s : N -> Prop => Rmult (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (N.div (N.mul (@CARD N s) (N.sub (@CARD N s) (NUMERAL (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) (@dollardollar N' _2668316 s))). +Proof. exact (eq_refl (@reversion N')). Qed. +Definition interval_upperbound {M : Type'} : ((cart R M) -> Prop) -> cart R M := fun _2668631 : (cart R M) -> Prop => @lambda R M (fun i : N => sup (@GSPEC R (fun GEN_PVAR_5770 : R => exists a : R, @SETSPEC R GEN_PVAR_5770 (exists x : cart R M, (@IN (cart R M) x _2668631) /\ ((@dollar R M x i) = a)) a))). +Lemma interval_upperbound_def {M : Type'} : (@interval_upperbound M) = (fun _2668631 : (cart R M) -> Prop => @lambda R M (fun i : N => sup (@GSPEC R (fun GEN_PVAR_5770 : R => exists a : R, @SETSPEC R GEN_PVAR_5770 (exists x : cart R M, (@IN (cart R M) x _2668631) /\ ((@dollar R M x i) = a)) a)))). +Proof. exact (eq_refl (@interval_upperbound M)). Qed. +Definition interval_lowerbound {M : Type'} : ((cart R M) -> Prop) -> cart R M := fun _2668636 : (cart R M) -> Prop => @lambda R M (fun i : N => inf (@GSPEC R (fun GEN_PVAR_5771 : R => exists a : R, @SETSPEC R GEN_PVAR_5771 (exists x : cart R M, (@IN (cart R M) x _2668636) /\ ((@dollar R M x i) = a)) a))). +Lemma interval_lowerbound_def {M : Type'} : (@interval_lowerbound M) = (fun _2668636 : (cart R M) -> Prop => @lambda R M (fun i : N => inf (@GSPEC R (fun GEN_PVAR_5771 : R => exists a : R, @SETSPEC R GEN_PVAR_5771 (exists x : cart R M, (@IN (cart R M) x _2668636) /\ ((@dollar R M x i) = a)) a)))). +Proof. exact (eq_refl (@interval_lowerbound M)). Qed. +Definition content {M : Type'} : ((cart R M) -> Prop) -> R := fun _2668743 : (cart R M) -> Prop => @COND R (_2668743 = (@EMPTY (cart R M))) (R_of_N (NUMERAL 0%N)) (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M))) (fun i : N => Rminus (@dollar R M (@interval_upperbound M _2668743) i) (@dollar R M (@interval_lowerbound M _2668743) i))). +Lemma content_def {M : Type'} : (@content M) = (fun _2668743 : (cart R M) -> Prop => @COND R (_2668743 = (@EMPTY (cart R M))) (R_of_N (NUMERAL 0%N)) (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M))) (fun i : N => Rminus (@dollar R M (@interval_upperbound M _2668743) i) (@dollar R M (@interval_lowerbound M _2668743) i)))). +Proof. exact (eq_refl (@content M)). Qed. +Definition gauge {_1284928 : Type'} : ((cart R _1284928) -> (cart R _1284928) -> Prop) -> Prop := fun _2669577 : (cart R _1284928) -> (cart R _1284928) -> Prop => forall x : cart R _1284928, (@IN (cart R _1284928) x (_2669577 x)) /\ (@_open _1284928 (_2669577 x)). +Lemma gauge_def {_1284928 : Type'} : (@gauge _1284928) = (fun _2669577 : (cart R _1284928) -> (cart R _1284928) -> Prop => forall x : cart R _1284928, (@IN (cart R _1284928) x (_2669577 x)) /\ (@_open _1284928 (_2669577 x))). +Proof. exact (eq_refl (@gauge _1284928)). Qed. +Definition division_of {_1285232 : Type'} : (((cart R _1285232) -> Prop) -> Prop) -> ((cart R _1285232) -> Prop) -> Prop := fun _2669616 : ((cart R _1285232) -> Prop) -> Prop => fun _2669617 : (cart R _1285232) -> Prop => (@FINITE ((cart R _1285232) -> Prop) _2669616) /\ ((forall k : (cart R _1285232) -> Prop, (@IN ((cart R _1285232) -> Prop) k _2669616) -> (@SUBSET (cart R _1285232) k _2669617) /\ ((~ (k = (@EMPTY (cart R _1285232)))) /\ (exists a : cart R _1285232, exists b : cart R _1285232, k = (@closed_interval _1285232 (@cons (prod (cart R _1285232) (cart R _1285232)) (@pair (cart R _1285232) (cart R _1285232) a b) (@nil (prod (cart R _1285232) (cart R _1285232)))))))) /\ ((forall k1 : (cart R _1285232) -> Prop, forall k2 : (cart R _1285232) -> Prop, ((@IN ((cart R _1285232) -> Prop) k1 _2669616) /\ ((@IN ((cart R _1285232) -> Prop) k2 _2669616) /\ (~ (k1 = k2)))) -> (@INTER (cart R _1285232) (@interior _1285232 k1) (@interior _1285232 k2)) = (@EMPTY (cart R _1285232))) /\ ((@UNIONS (cart R _1285232) _2669616) = _2669617))). +Lemma division_of_def {_1285232 : Type'} : (@division_of _1285232) = (fun _2669616 : ((cart R _1285232) -> Prop) -> Prop => fun _2669617 : (cart R _1285232) -> Prop => (@FINITE ((cart R _1285232) -> Prop) _2669616) /\ ((forall k : (cart R _1285232) -> Prop, (@IN ((cart R _1285232) -> Prop) k _2669616) -> (@SUBSET (cart R _1285232) k _2669617) /\ ((~ (k = (@EMPTY (cart R _1285232)))) /\ (exists a : cart R _1285232, exists b : cart R _1285232, k = (@closed_interval _1285232 (@cons (prod (cart R _1285232) (cart R _1285232)) (@pair (cart R _1285232) (cart R _1285232) a b) (@nil (prod (cart R _1285232) (cart R _1285232)))))))) /\ ((forall k1 : (cart R _1285232) -> Prop, forall k2 : (cart R _1285232) -> Prop, ((@IN ((cart R _1285232) -> Prop) k1 _2669616) /\ ((@IN ((cart R _1285232) -> Prop) k2 _2669616) /\ (~ (k1 = k2)))) -> (@INTER (cart R _1285232) (@interior _1285232 k1) (@interior _1285232 k2)) = (@EMPTY (cart R _1285232))) /\ ((@UNIONS (cart R _1285232) _2669616) = _2669617)))). +Proof. exact (eq_refl (@division_of _1285232)). Qed. +Definition tagged_partial_division_of {_1290787 : Type'} : ((prod (cart R _1290787) ((cart R _1290787) -> Prop)) -> Prop) -> ((cart R _1290787) -> Prop) -> Prop := fun _2700728 : (prod (cart R _1290787) ((cart R _1290787) -> Prop)) -> Prop => fun _2700729 : (cart R _1290787) -> Prop => (@FINITE (prod (cart R _1290787) ((cart R _1290787) -> Prop)) _2700728) /\ ((forall x : cart R _1290787, forall k : (cart R _1290787) -> Prop, (@IN (prod (cart R _1290787) ((cart R _1290787) -> Prop)) (@pair (cart R _1290787) ((cart R _1290787) -> Prop) x k) _2700728) -> (@IN (cart R _1290787) x k) /\ ((@SUBSET (cart R _1290787) k _2700729) /\ (exists a : cart R _1290787, exists b : cart R _1290787, k = (@closed_interval _1290787 (@cons (prod (cart R _1290787) (cart R _1290787)) (@pair (cart R _1290787) (cart R _1290787) a b) (@nil (prod (cart R _1290787) (cart R _1290787)))))))) /\ (forall x1 : cart R _1290787, forall k1 : (cart R _1290787) -> Prop, forall x2 : cart R _1290787, forall k2 : (cart R _1290787) -> Prop, ((@IN (prod (cart R _1290787) ((cart R _1290787) -> Prop)) (@pair (cart R _1290787) ((cart R _1290787) -> Prop) x1 k1) _2700728) /\ ((@IN (prod (cart R _1290787) ((cart R _1290787) -> Prop)) (@pair (cart R _1290787) ((cart R _1290787) -> Prop) x2 k2) _2700728) /\ (~ ((@pair (cart R _1290787) ((cart R _1290787) -> Prop) x1 k1) = (@pair (cart R _1290787) ((cart R _1290787) -> Prop) x2 k2))))) -> (@INTER (cart R _1290787) (@interior _1290787 k1) (@interior _1290787 k2)) = (@EMPTY (cart R _1290787)))). +Lemma tagged_partial_division_of_def {_1290787 : Type'} : (@tagged_partial_division_of _1290787) = (fun _2700728 : (prod (cart R _1290787) ((cart R _1290787) -> Prop)) -> Prop => fun _2700729 : (cart R _1290787) -> Prop => (@FINITE (prod (cart R _1290787) ((cart R _1290787) -> Prop)) _2700728) /\ ((forall x : cart R _1290787, forall k : (cart R _1290787) -> Prop, (@IN (prod (cart R _1290787) ((cart R _1290787) -> Prop)) (@pair (cart R _1290787) ((cart R _1290787) -> Prop) x k) _2700728) -> (@IN (cart R _1290787) x k) /\ ((@SUBSET (cart R _1290787) k _2700729) /\ (exists a : cart R _1290787, exists b : cart R _1290787, k = (@closed_interval _1290787 (@cons (prod (cart R _1290787) (cart R _1290787)) (@pair (cart R _1290787) (cart R _1290787) a b) (@nil (prod (cart R _1290787) (cart R _1290787)))))))) /\ (forall x1 : cart R _1290787, forall k1 : (cart R _1290787) -> Prop, forall x2 : cart R _1290787, forall k2 : (cart R _1290787) -> Prop, ((@IN (prod (cart R _1290787) ((cart R _1290787) -> Prop)) (@pair (cart R _1290787) ((cart R _1290787) -> Prop) x1 k1) _2700728) /\ ((@IN (prod (cart R _1290787) ((cart R _1290787) -> Prop)) (@pair (cart R _1290787) ((cart R _1290787) -> Prop) x2 k2) _2700728) /\ (~ ((@pair (cart R _1290787) ((cart R _1290787) -> Prop) x1 k1) = (@pair (cart R _1290787) ((cart R _1290787) -> Prop) x2 k2))))) -> (@INTER (cart R _1290787) (@interior _1290787 k1) (@interior _1290787 k2)) = (@EMPTY (cart R _1290787))))). +Proof. exact (eq_refl (@tagged_partial_division_of _1290787)). Qed. +Definition tagged_division_of {_1290798 : Type'} : ((prod (cart R _1290798) ((cart R _1290798) -> Prop)) -> Prop) -> ((cart R _1290798) -> Prop) -> Prop := fun _2700740 : (prod (cart R _1290798) ((cart R _1290798) -> Prop)) -> Prop => fun _2700741 : (cart R _1290798) -> Prop => (@tagged_partial_division_of _1290798 _2700740 _2700741) /\ ((@UNIONS (cart R _1290798) (@GSPEC ((cart R _1290798) -> Prop) (fun GEN_PVAR_5795 : (cart R _1290798) -> Prop => exists k : (cart R _1290798) -> Prop, @SETSPEC ((cart R _1290798) -> Prop) GEN_PVAR_5795 (exists x : cart R _1290798, @IN (prod (cart R _1290798) ((cart R _1290798) -> Prop)) (@pair (cart R _1290798) ((cart R _1290798) -> Prop) x k) _2700740) k))) = _2700741). +Lemma tagged_division_of_def {_1290798 : Type'} : (@tagged_division_of _1290798) = (fun _2700740 : (prod (cart R _1290798) ((cart R _1290798) -> Prop)) -> Prop => fun _2700741 : (cart R _1290798) -> Prop => (@tagged_partial_division_of _1290798 _2700740 _2700741) /\ ((@UNIONS (cart R _1290798) (@GSPEC ((cart R _1290798) -> Prop) (fun GEN_PVAR_5795 : (cart R _1290798) -> Prop => exists k : (cart R _1290798) -> Prop, @SETSPEC ((cart R _1290798) -> Prop) GEN_PVAR_5795 (exists x : cart R _1290798, @IN (prod (cart R _1290798) ((cart R _1290798) -> Prop)) (@pair (cart R _1290798) ((cart R _1290798) -> Prop) x k) _2700740) k))) = _2700741)). +Proof. exact (eq_refl (@tagged_division_of _1290798)). Qed. +Definition fine {_1292404 _1292405 : Type'} : (_1292405 -> _1292404 -> Prop) -> ((prod _1292405 (_1292404 -> Prop)) -> Prop) -> Prop := fun _2707544 : _1292405 -> _1292404 -> Prop => fun _2707545 : (prod _1292405 (_1292404 -> Prop)) -> Prop => forall x : _1292405, forall k : _1292404 -> Prop, (@IN (prod _1292405 (_1292404 -> Prop)) (@pair _1292405 (_1292404 -> Prop) x k) _2707545) -> @SUBSET _1292404 k (_2707544 x). +Lemma fine_def {_1292404 _1292405 : Type'} : (@fine _1292404 _1292405) = (fun _2707544 : _1292405 -> _1292404 -> Prop => fun _2707545 : (prod _1292405 (_1292404 -> Prop)) -> Prop => forall x : _1292405, forall k : _1292404 -> Prop, (@IN (prod _1292405 (_1292404 -> Prop)) (@pair _1292405 (_1292404 -> Prop) x k) _2707545) -> @SUBSET _1292404 k (_2707544 x)). +Proof. exact (eq_refl (@fine _1292404 _1292405)). Qed. +Definition has_integral_compact_interval {_1292658 _1292690 : Type'} : ((cart R _1292658) -> cart R _1292690) -> (cart R _1292690) -> ((cart R _1292658) -> Prop) -> Prop := fun _2707632 : (cart R _1292658) -> cart R _1292690 => fun _2707633 : cart R _1292690 => fun _2707634 : (cart R _1292658) -> Prop => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : (cart R _1292658) -> (cart R _1292658) -> Prop, (@gauge _1292658 d) /\ (forall p : (prod (cart R _1292658) ((cart R _1292658) -> Prop)) -> Prop, ((@tagged_division_of _1292658 p _2707634) /\ (@fine (cart R _1292658) (cart R _1292658) d p)) -> Rlt (@vector_norm _1292690 (@vector_sub _1292690 (@vsum (prod (cart R _1292658) ((cart R _1292658) -> Prop)) _1292690 p (@GABS ((prod (cart R _1292658) ((cart R _1292658) -> Prop)) -> cart R _1292690) (fun f : (prod (cart R _1292658) ((cart R _1292658) -> Prop)) -> cart R _1292690 => forall x : cart R _1292658, forall k : (cart R _1292658) -> Prop, @GEQ (cart R _1292690) (f (@pair (cart R _1292658) ((cart R _1292658) -> Prop) x k)) (@percent _1292690 (@content _1292658 k) (_2707632 x))))) _2707633)) e). +Lemma has_integral_compact_interval_def {_1292658 _1292690 : Type'} : (@has_integral_compact_interval _1292658 _1292690) = (fun _2707632 : (cart R _1292658) -> cart R _1292690 => fun _2707633 : cart R _1292690 => fun _2707634 : (cart R _1292658) -> Prop => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : (cart R _1292658) -> (cart R _1292658) -> Prop, (@gauge _1292658 d) /\ (forall p : (prod (cart R _1292658) ((cart R _1292658) -> Prop)) -> Prop, ((@tagged_division_of _1292658 p _2707634) /\ (@fine (cart R _1292658) (cart R _1292658) d p)) -> Rlt (@vector_norm _1292690 (@vector_sub _1292690 (@vsum (prod (cart R _1292658) ((cart R _1292658) -> Prop)) _1292690 p (@GABS ((prod (cart R _1292658) ((cart R _1292658) -> Prop)) -> cart R _1292690) (fun f : (prod (cart R _1292658) ((cart R _1292658) -> Prop)) -> cart R _1292690 => forall x : cart R _1292658, forall k : (cart R _1292658) -> Prop, @GEQ (cart R _1292690) (f (@pair (cart R _1292658) ((cart R _1292658) -> Prop) x k)) (@percent _1292690 (@content _1292658 k) (_2707632 x))))) _2707633)) e)). +Proof. exact (eq_refl (@has_integral_compact_interval _1292658 _1292690)). Qed. +Definition has_integral {_1292827 _1292831 : Type'} : ((cart R _1292827) -> cart R _1292831) -> (cart R _1292831) -> ((cart R _1292827) -> Prop) -> Prop := fun _2707653 : (cart R _1292827) -> cart R _1292831 => fun _2707654 : cart R _1292831 => fun _2707655 : (cart R _1292827) -> Prop => @COND Prop (exists a : cart R _1292827, exists b : cart R _1292827, _2707655 = (@closed_interval _1292827 (@cons (prod (cart R _1292827) (cart R _1292827)) (@pair (cart R _1292827) (cart R _1292827) a b) (@nil (prod (cart R _1292827) (cart R _1292827)))))) (@has_integral_compact_interval _1292827 _1292831 _2707653 _2707654 _2707655) (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall a : cart R _1292827, forall b : cart R _1292827, (@SUBSET (cart R _1292827) (@ball _1292827 (@pair (cart R _1292827) R (@vec _1292827 (NUMERAL 0%N)) B)) (@closed_interval _1292827 (@cons (prod (cart R _1292827) (cart R _1292827)) (@pair (cart R _1292827) (cart R _1292827) a b) (@nil (prod (cart R _1292827) (cart R _1292827)))))) -> exists z : cart R _1292831, (@has_integral_compact_interval _1292827 _1292831 (fun x : cart R _1292827 => @COND (cart R _1292831) (@IN (cart R _1292827) x _2707655) (_2707653 x) (@vec _1292831 (NUMERAL 0%N))) z (@closed_interval _1292827 (@cons (prod (cart R _1292827) (cart R _1292827)) (@pair (cart R _1292827) (cart R _1292827) a b) (@nil (prod (cart R _1292827) (cart R _1292827)))))) /\ (Rlt (@vector_norm _1292831 (@vector_sub _1292831 z _2707654)) e))). +Lemma has_integral_def {_1292827 _1292831 : Type'} : (@has_integral _1292827 _1292831) = (fun _2707653 : (cart R _1292827) -> cart R _1292831 => fun _2707654 : cart R _1292831 => fun _2707655 : (cart R _1292827) -> Prop => @COND Prop (exists a : cart R _1292827, exists b : cart R _1292827, _2707655 = (@closed_interval _1292827 (@cons (prod (cart R _1292827) (cart R _1292827)) (@pair (cart R _1292827) (cart R _1292827) a b) (@nil (prod (cart R _1292827) (cart R _1292827)))))) (@has_integral_compact_interval _1292827 _1292831 _2707653 _2707654 _2707655) (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall a : cart R _1292827, forall b : cart R _1292827, (@SUBSET (cart R _1292827) (@ball _1292827 (@pair (cart R _1292827) R (@vec _1292827 (NUMERAL 0%N)) B)) (@closed_interval _1292827 (@cons (prod (cart R _1292827) (cart R _1292827)) (@pair (cart R _1292827) (cart R _1292827) a b) (@nil (prod (cart R _1292827) (cart R _1292827)))))) -> exists z : cart R _1292831, (@has_integral_compact_interval _1292827 _1292831 (fun x : cart R _1292827 => @COND (cart R _1292831) (@IN (cart R _1292827) x _2707655) (_2707653 x) (@vec _1292831 (NUMERAL 0%N))) z (@closed_interval _1292827 (@cons (prod (cart R _1292827) (cart R _1292827)) (@pair (cart R _1292827) (cart R _1292827) a b) (@nil (prod (cart R _1292827) (cart R _1292827)))))) /\ (Rlt (@vector_norm _1292831 (@vector_sub _1292831 z _2707654)) e)))). +Proof. exact (eq_refl (@has_integral _1292827 _1292831)). Qed. +Definition integrable_on {_1293095 _1293096 : Type'} : ((cart R _1293096) -> cart R _1293095) -> ((cart R _1293096) -> Prop) -> Prop := fun _2708135 : (cart R _1293096) -> cart R _1293095 => fun _2708136 : (cart R _1293096) -> Prop => exists y : cart R _1293095, @has_integral _1293096 _1293095 _2708135 y _2708136. +Lemma integrable_on_def {_1293095 _1293096 : Type'} : (@integrable_on _1293095 _1293096) = (fun _2708135 : (cart R _1293096) -> cart R _1293095 => fun _2708136 : (cart R _1293096) -> Prop => exists y : cart R _1293095, @has_integral _1293096 _1293095 _2708135 y _2708136). +Proof. exact (eq_refl (@integrable_on _1293095 _1293096)). Qed. +Definition integral {_1293110 _1293111 : Type'} : ((cart R _1293111) -> Prop) -> ((cart R _1293111) -> cart R _1293110) -> cart R _1293110 := fun _2708147 : (cart R _1293111) -> Prop => fun _2708148 : (cart R _1293111) -> cart R _1293110 => @ε (cart R _1293110) (fun y : cart R _1293110 => @has_integral _1293111 _1293110 _2708148 y _2708147). +Lemma integral_def {_1293110 _1293111 : Type'} : (@integral _1293110 _1293111) = (fun _2708147 : (cart R _1293111) -> Prop => fun _2708148 : (cart R _1293111) -> cart R _1293110 => @ε (cart R _1293110) (fun y : cart R _1293110 => @has_integral _1293111 _1293110 _2708148 y _2708147)). +Proof. exact (eq_refl (@integral _1293110 _1293111)). Qed. +Definition operative {A N' : Type'} : (A -> A -> A) -> (((cart R N') -> Prop) -> A) -> Prop := fun _2725067 : A -> A -> A => fun _2725068 : ((cart R N') -> Prop) -> A => (forall a : cart R N', forall b : cart R N', ((@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N))) -> (_2725068 (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@neutral A _2725067)) /\ (forall a : cart R N', forall b : cart R N', forall c : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (_2725068 (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (_2725067 (_2725068 (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5871 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5871 (Rle (@dollar R N' x k) c) x)))) (_2725068 (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5872 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5872 (Rge (@dollar R N' x k) c) x)))))). +Lemma operative_def {A N' : Type'} : (@operative A N') = (fun _2725067 : A -> A -> A => fun _2725068 : ((cart R N') -> Prop) -> A => (forall a : cart R N', forall b : cart R N', ((@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N))) -> (_2725068 (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@neutral A _2725067)) /\ (forall a : cart R N', forall b : cart R N', forall c : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (_2725068 (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (_2725067 (_2725068 (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5871 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5871 (Rle (@dollar R N' x k) c) x)))) (_2725068 (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5872 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5872 (Rge (@dollar R N' x k) c) x))))))). +Proof. exact (eq_refl (@operative A N')). Qed. +Definition lifted {_1302122 _1302124 : Type'} : (_1302124 -> _1302124 -> _1302122) -> (option _1302124) -> (option _1302124) -> option _1302122 := @ε ((prod N (prod N (prod N (prod N (prod N N))))) -> (_1302124 -> _1302124 -> _1302122) -> (option _1302124) -> (option _1302124) -> option _1302122) (fun lifted' : (prod N (prod N (prod N (prod N (prod N N))))) -> (_1302124 -> _1302124 -> _1302122) -> (option _1302124) -> (option _1302124) -> option _1302122 => forall _2726389 : prod N (prod N (prod N (prod N (prod N N)))), (forall op : _1302124 -> _1302124 -> _1302122, forall __ : option _1302124, (lifted' _2726389 op (@None _1302124) __) = (@None _1302122)) /\ ((forall op : _1302124 -> _1302124 -> _1302122, forall __ : option _1302124, (lifted' _2726389 op __ (@None _1302124)) = (@None _1302122)) /\ (forall op : _1302124 -> _1302124 -> _1302122, forall x : _1302124, forall y : _1302124, (lifted' _2726389 op (@Some _1302124 x) (@Some _1302124 y)) = (@Some _1302122 (op x y))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))))). +Lemma lifted_def {_1302122 _1302124 : Type'} : (@lifted _1302122 _1302124) = (@ε ((prod N (prod N (prod N (prod N (prod N N))))) -> (_1302124 -> _1302124 -> _1302122) -> (option _1302124) -> (option _1302124) -> option _1302122) (fun lifted' : (prod N (prod N (prod N (prod N (prod N N))))) -> (_1302124 -> _1302124 -> _1302122) -> (option _1302124) -> (option _1302124) -> option _1302122 => forall _2726389 : prod N (prod N (prod N (prod N (prod N N)))), (forall op : _1302124 -> _1302124 -> _1302122, forall __ : option _1302124, (lifted' _2726389 op (@None _1302124) __) = (@None _1302122)) /\ ((forall op : _1302124 -> _1302124 -> _1302122, forall __ : option _1302124, (lifted' _2726389 op __ (@None _1302124)) = (@None _1302122)) /\ (forall op : _1302124 -> _1302124 -> _1302122, forall x : _1302124, forall y : _1302124, (lifted' _2726389 op (@Some _1302124 x) (@Some _1302124 y)) = (@Some _1302122 (op x y))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))))))). +Proof. exact (eq_refl (@lifted _1302122 _1302124)). Qed. +Definition division_points {N' : Type'} : ((cart R N') -> Prop) -> (((cart R N') -> Prop) -> Prop) -> (prod N R) -> Prop := fun _2726930 : (cart R N') -> Prop => fun _2726931 : ((cart R N') -> Prop) -> Prop => @GSPEC (prod N R) (fun GEN_PVAR_5873 : prod N R => exists j : N, exists x : R, @SETSPEC (prod N R) GEN_PVAR_5873 ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ ((Rlt (@dollar R N' (@interval_lowerbound N' _2726930) j) x) /\ ((Rlt x (@dollar R N' (@interval_upperbound N' _2726930) j)) /\ (exists i : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) i _2726931) /\ (((@dollar R N' (@interval_lowerbound N' i) j) = x) \/ ((@dollar R N' (@interval_upperbound N' i) j) = x))))))) (@pair N R j x)). +Lemma division_points_def {N' : Type'} : (@division_points N') = (fun _2726930 : (cart R N') -> Prop => fun _2726931 : ((cart R N') -> Prop) -> Prop => @GSPEC (prod N R) (fun GEN_PVAR_5873 : prod N R => exists j : N, exists x : R, @SETSPEC (prod N R) GEN_PVAR_5873 ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ ((Rlt (@dollar R N' (@interval_lowerbound N' _2726930) j) x) /\ ((Rlt x (@dollar R N' (@interval_upperbound N' _2726930) j)) /\ (exists i : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) i _2726931) /\ (((@dollar R N' (@interval_lowerbound N' i) j) = x) \/ ((@dollar R N' (@interval_upperbound N' i) j) = x))))))) (@pair N R j x))). +Proof. exact (eq_refl (@division_points N')). Qed. +Definition negligible {_1308079 : Type'} : ((cart R _1308079) -> Prop) -> Prop := fun _2745452 : (cart R _1308079) -> Prop => forall a : cart R _1308079, forall b : cart R _1308079, @has_integral _1308079 unit (@indicator _1308079 _2745452) (@vec unit (NUMERAL 0%N)) (@closed_interval _1308079 (@cons (prod (cart R _1308079) (cart R _1308079)) (@pair (cart R _1308079) (cart R _1308079) a b) (@nil (prod (cart R _1308079) (cart R _1308079))))). +Lemma negligible_def {_1308079 : Type'} : (@negligible _1308079) = (fun _2745452 : (cart R _1308079) -> Prop => forall a : cart R _1308079, forall b : cart R _1308079, @has_integral _1308079 unit (@indicator _1308079 _2745452) (@vec unit (NUMERAL 0%N)) (@closed_interval _1308079 (@cons (prod (cart R _1308079) (cart R _1308079)) (@pair (cart R _1308079) (cart R _1308079) a b) (@nil (prod (cart R _1308079) (cart R _1308079)))))). +Proof. exact (eq_refl (@negligible _1308079)). Qed. +Definition set_variation {M N' : Type'} : ((cart R M) -> Prop) -> (((cart R M) -> Prop) -> cart R N') -> R := fun _2796421 : (cart R M) -> Prop => fun _2796422 : ((cart R M) -> Prop) -> cart R N' => sup (@GSPEC R (fun GEN_PVAR_5997 : R => exists d : ((cart R M) -> Prop) -> Prop, @SETSPEC R GEN_PVAR_5997 (exists t : (cart R M) -> Prop, (@division_of M d t) /\ (@SUBSET (cart R M) t _2796421)) (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (_2796422 k))))). +Lemma set_variation_def {M N' : Type'} : (@set_variation M N') = (fun _2796421 : (cart R M) -> Prop => fun _2796422 : ((cart R M) -> Prop) -> cart R N' => sup (@GSPEC R (fun GEN_PVAR_5997 : R => exists d : ((cart R M) -> Prop) -> Prop, @SETSPEC R GEN_PVAR_5997 (exists t : (cart R M) -> Prop, (@division_of M d t) /\ (@SUBSET (cart R M) t _2796421)) (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (_2796422 k)))))). +Proof. exact (eq_refl (@set_variation M N')). Qed. +Definition has_bounded_setvariation_on {M N' : Type'} : (((cart R M) -> Prop) -> cart R N') -> ((cart R M) -> Prop) -> Prop := fun _2796433 : ((cart R M) -> Prop) -> cart R N' => fun _2796434 : (cart R M) -> Prop => exists B : R, forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ (@SUBSET (cart R M) t _2796434)) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (_2796433 k))) B. +Lemma has_bounded_setvariation_on_def {M N' : Type'} : (@has_bounded_setvariation_on M N') = (fun _2796433 : ((cart R M) -> Prop) -> cart R N' => fun _2796434 : (cart R M) -> Prop => exists B : R, forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ (@SUBSET (cart R M) t _2796434)) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (_2796433 k))) B). +Proof. exact (eq_refl (@has_bounded_setvariation_on M N')). Qed. +Definition absolutely_integrable_on {_1341718 _1341723 : Type'} : ((cart R _1341723) -> cart R _1341718) -> ((cart R _1341723) -> Prop) -> Prop := fun _2802931 : (cart R _1341723) -> cart R _1341718 => fun _2802932 : (cart R _1341723) -> Prop => (@integrable_on _1341718 _1341723 _2802931 _2802932) /\ (@integrable_on unit _1341723 (fun x : cart R _1341723 => lift (@vector_norm _1341718 (_2802931 x))) _2802932). +Lemma absolutely_integrable_on_def {_1341718 _1341723 : Type'} : (@absolutely_integrable_on _1341718 _1341723) = (fun _2802931 : (cart R _1341723) -> cart R _1341718 => fun _2802932 : (cart R _1341723) -> Prop => (@integrable_on _1341718 _1341723 _2802931 _2802932) /\ (@integrable_on unit _1341723 (fun x : cart R _1341723 => lift (@vector_norm _1341718 (_2802931 x))) _2802932)). +Proof. exact (eq_refl (@absolutely_integrable_on _1341718 _1341723)). Qed. +Definition equiintegrable_on {M N' : Type'} : (((cart R M) -> cart R N') -> Prop) -> ((cart R M) -> Prop) -> Prop := fun _2854785 : ((cart R M) -> cart R N') -> Prop => fun _2854786 : (cart R M) -> Prop => (forall f : (cart R M) -> cart R N', (@IN ((cart R M) -> cart R N') f _2854785) -> @integrable_on N' M f _2854786) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : (cart R M) -> (cart R M) -> Prop, (@gauge M d) /\ (forall f : (cart R M) -> cart R N', forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@IN ((cart R M) -> cart R N') f _2854785) /\ ((@tagged_division_of M p _2854786) /\ (@fine (cart R M) (cart R M) d p))) -> Rlt (@vector_norm N' (@vector_sub N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (f x))))) (@integral N' M _2854786 f))) e)). +Lemma equiintegrable_on_def {M N' : Type'} : (@equiintegrable_on M N') = (fun _2854785 : ((cart R M) -> cart R N') -> Prop => fun _2854786 : (cart R M) -> Prop => (forall f : (cart R M) -> cart R N', (@IN ((cart R M) -> cart R N') f _2854785) -> @integrable_on N' M f _2854786) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : (cart R M) -> (cart R M) -> Prop, (@gauge M d) /\ (forall f : (cart R M) -> cart R N', forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@IN ((cart R M) -> cart R N') f _2854785) /\ ((@tagged_division_of M p _2854786) /\ (@fine (cart R M) (cart R M) d p))) -> Rlt (@vector_norm N' (@vector_sub N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (f x))))) (@integral N' M _2854786 f))) e))). +Proof. exact (eq_refl (@equiintegrable_on M N')). Qed. +Definition has_bounded_variation_on {N' : Type'} : ((cart R unit) -> cart R N') -> ((cart R unit) -> Prop) -> Prop := fun _2915531 : (cart R unit) -> cart R N' => fun _2915532 : (cart R unit) -> Prop => @has_bounded_setvariation_on unit N' (fun k : (cart R unit) -> Prop => @vector_sub N' (_2915531 (@interval_upperbound unit k)) (_2915531 (@interval_lowerbound unit k))) _2915532. +Lemma has_bounded_variation_on_def {N' : Type'} : (@has_bounded_variation_on N') = (fun _2915531 : (cart R unit) -> cart R N' => fun _2915532 : (cart R unit) -> Prop => @has_bounded_setvariation_on unit N' (fun k : (cart R unit) -> Prop => @vector_sub N' (_2915531 (@interval_upperbound unit k)) (_2915531 (@interval_lowerbound unit k))) _2915532). +Proof. exact (eq_refl (@has_bounded_variation_on N')). Qed. +Definition vector_variation {N' : Type'} : ((cart R unit) -> Prop) -> ((cart R unit) -> cart R N') -> R := fun _2915543 : (cart R unit) -> Prop => fun _2915544 : (cart R unit) -> cart R N' => @set_variation unit N' _2915543 (fun k : (cart R unit) -> Prop => @vector_sub N' (_2915544 (@interval_upperbound unit k)) (_2915544 (@interval_lowerbound unit k))). +Lemma vector_variation_def {N' : Type'} : (@vector_variation N') = (fun _2915543 : (cart R unit) -> Prop => fun _2915544 : (cart R unit) -> cart R N' => @set_variation unit N' _2915543 (fun k : (cart R unit) -> Prop => @vector_sub N' (_2915544 (@interval_upperbound unit k)) (_2915544 (@interval_lowerbound unit k)))). +Proof. exact (eq_refl (@vector_variation N')). Qed. +Definition absolutely_setcontinuous_on {M N' : Type'} : (((cart R M) -> Prop) -> cart R N') -> ((cart R M) -> Prop) -> Prop := fun _2958000 : ((cart R M) -> Prop) -> cart R N' => fun _2958001 : (cart R M) -> Prop => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ ((@SUBSET (cart R M) t _2958001) /\ (Rlt (@sum ((cart R M) -> Prop) d (@content M)) r))) -> Rlt (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (_2958000 k))) e). +Lemma absolutely_setcontinuous_on_def {M N' : Type'} : (@absolutely_setcontinuous_on M N') = (fun _2958000 : ((cart R M) -> Prop) -> cart R N' => fun _2958001 : (cart R M) -> Prop => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ ((@SUBSET (cart R M) t _2958001) /\ (Rlt (@sum ((cart R M) -> Prop) d (@content M)) r))) -> Rlt (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (_2958000 k))) e)). +Proof. exact (eq_refl (@absolutely_setcontinuous_on M N')). Qed. +Definition absolutely_continuous_on {N' : Type'} : ((cart R unit) -> cart R N') -> ((cart R unit) -> Prop) -> Prop := fun _2969674 : (cart R unit) -> cart R N' => fun _2969675 : (cart R unit) -> Prop => @absolutely_setcontinuous_on unit N' (fun k : (cart R unit) -> Prop => @vector_sub N' (_2969674 (@interval_upperbound unit k)) (_2969674 (@interval_lowerbound unit k))) _2969675. +Lemma absolutely_continuous_on_def {N' : Type'} : (@absolutely_continuous_on N') = (fun _2969674 : (cart R unit) -> cart R N' => fun _2969675 : (cart R unit) -> Prop => @absolutely_setcontinuous_on unit N' (fun k : (cart R unit) -> Prop => @vector_sub N' (_2969674 (@interval_upperbound unit k)) (_2969674 (@interval_lowerbound unit k))) _2969675). +Proof. exact (eq_refl (@absolutely_continuous_on N')). Qed. +Definition rectifiable_path {N' : Type'} : ((cart R unit) -> cart R N') -> Prop := fun _2973608 : (cart R unit) -> cart R N' => (@path N' _2973608) /\ (@has_bounded_variation_on N' _2973608 (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Lemma rectifiable_path_def {N' : Type'} : (@rectifiable_path N') = (fun _2973608 : (cart R unit) -> cart R N' => (@path N' _2973608) /\ (@has_bounded_variation_on N' _2973608 (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))). +Proof. exact (eq_refl (@rectifiable_path N')). Qed. +Definition path_length {N' : Type'} : ((cart R unit) -> cart R N') -> R := fun _2973613 : (cart R unit) -> cart R N' => @vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) _2973613. +Lemma path_length_def {N' : Type'} : (@path_length N') = (fun _2973613 : (cart R unit) -> cart R N' => @vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) _2973613). +Proof. exact (eq_refl (@path_length N')). Qed. +Definition has_measure {_1428019 : Type'} : ((cart R _1428019) -> Prop) -> R -> Prop := fun _2987546 : (cart R _1428019) -> Prop => fun _2987547 : R => @has_integral _1428019 unit (fun x : cart R _1428019 => @vec unit (NUMERAL (BIT1 0%N))) (lift _2987547) _2987546. +Lemma has_measure_def {_1428019 : Type'} : (@has_measure _1428019) = (fun _2987546 : (cart R _1428019) -> Prop => fun _2987547 : R => @has_integral _1428019 unit (fun x : cart R _1428019 => @vec unit (NUMERAL (BIT1 0%N))) (lift _2987547) _2987546). +Proof. exact (eq_refl (@has_measure _1428019)). Qed. +Definition measurable {_1428035 : Type'} : ((cart R _1428035) -> Prop) -> Prop := fun _2987558 : (cart R _1428035) -> Prop => exists m : R, @has_measure _1428035 _2987558 m. +Lemma measurable_def {_1428035 : Type'} : (@measurable _1428035) = (fun _2987558 : (cart R _1428035) -> Prop => exists m : R, @has_measure _1428035 _2987558 m). +Proof. exact (eq_refl (@measurable _1428035)). Qed. +Definition measure {_1428047 : Type'} : ((cart R _1428047) -> Prop) -> R := fun _2987563 : (cart R _1428047) -> Prop => @ε R (fun m : R => @has_measure _1428047 _2987563 m). +Lemma measure_def {_1428047 : Type'} : (@measure _1428047) = (fun _2987563 : (cart R _1428047) -> Prop => @ε R (fun m : R => @has_measure _1428047 _2987563 m)). +Proof. exact (eq_refl (@measure _1428047)). Qed. +Definition measurable_on {M N' : Type'} : ((cart R M) -> cart R N') -> ((cart R M) -> Prop) -> Prop := fun _3064508 : (cart R M) -> cart R N' => fun _3064509 : (cart R M) -> Prop => exists k : (cart R M) -> Prop, exists g : N -> (cart R M) -> cart R N', (@negligible M k) /\ ((forall n : N, @continuous_on M N' (g n) (@UNIV (cart R M))) /\ (forall x : cart R M, (~ (@IN (cart R M) x k)) -> @FImp N' N (fun n : N => g n x) (@COND (cart R N') (@IN (cart R M) x _3064509) (_3064508 x) (@vec N' (NUMERAL 0%N))) sequentially)). +Lemma measurable_on_def {M N' : Type'} : (@measurable_on M N') = (fun _3064508 : (cart R M) -> cart R N' => fun _3064509 : (cart R M) -> Prop => exists k : (cart R M) -> Prop, exists g : N -> (cart R M) -> cart R N', (@negligible M k) /\ ((forall n : N, @continuous_on M N' (g n) (@UNIV (cart R M))) /\ (forall x : cart R M, (~ (@IN (cart R M) x k)) -> @FImp N' N (fun n : N => g n x) (@COND (cart R N') (@IN (cart R M) x _3064509) (_3064508 x) (@vec N' (NUMERAL 0%N))) sequentially))). +Proof. exact (eq_refl (@measurable_on M N')). Qed. +Definition lebesgue_measurable {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _3064520 : (cart R N') -> Prop => @measurable_on N' unit (@indicator N' _3064520) (@UNIV (cart R N')). +Lemma lebesgue_measurable_def {N' : Type'} : (@lebesgue_measurable N') = (fun _3064520 : (cart R N') -> Prop => @measurable_on N' unit (@indicator N' _3064520) (@UNIV (cart R N'))). +Proof. exact (eq_refl (@lebesgue_measurable N')). Qed. +Definition Re : (cart R (tybit0 unit)) -> R := fun _3329248 : cart R (tybit0 unit) => @dollar R (tybit0 unit) _3329248 (NUMERAL (BIT1 0%N)). +Lemma Re_def : Re = (fun _3329248 : cart R (tybit0 unit) => @dollar R (tybit0 unit) _3329248 (NUMERAL (BIT1 0%N))). +Proof. exact (eq_refl Re). Qed. +Definition Im : (cart R (tybit0 unit)) -> R := fun _3329253 : cart R (tybit0 unit) => @dollar R (tybit0 unit) _3329253 (NUMERAL (BIT0 (BIT1 0%N))). +Lemma Im_def : Im = (fun _3329253 : cart R (tybit0 unit) => @dollar R (tybit0 unit) _3329253 (NUMERAL (BIT0 (BIT1 0%N)))). +Proof. exact (eq_refl Im). Qed. +Definition complex : (prod R R) -> cart R (tybit0 unit) := fun _3329258 : prod R R => @vector R (tybit0 unit) (@cons R (@fst R R _3329258) (@cons R (@snd R R _3329258) (@nil R))). +Lemma complex_def : complex = (fun _3329258 : prod R R => @vector R (tybit0 unit) (@cons R (@fst R R _3329258) (@cons R (@snd R R _3329258) (@nil R)))). +Proof. exact (eq_refl complex). Qed. +Definition Cx : R -> cart R (tybit0 unit) := fun _3329267 : R => complex (@pair R R _3329267 (R_of_N (NUMERAL 0%N))). +Lemma Cx_def : Cx = (fun _3329267 : R => complex (@pair R R _3329267 (R_of_N (NUMERAL 0%N)))). +Proof. exact (eq_refl Cx). Qed. +Definition ii : cart R (tybit0 unit) := complex (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))). +Lemma ii_def : ii = (complex (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))). +Proof. exact (eq_refl ii). Qed. +Definition complex_mul : (cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3329272 : cart R (tybit0 unit) => fun _3329273 : cart R (tybit0 unit) => complex (@pair R R (Rminus (Rmult (Re _3329272) (Re _3329273)) (Rmult (Im _3329272) (Im _3329273))) (Rplus (Rmult (Re _3329272) (Im _3329273)) (Rmult (Im _3329272) (Re _3329273)))). +Lemma complex_mul_def : complex_mul = (fun _3329272 : cart R (tybit0 unit) => fun _3329273 : cart R (tybit0 unit) => complex (@pair R R (Rminus (Rmult (Re _3329272) (Re _3329273)) (Rmult (Im _3329272) (Im _3329273))) (Rplus (Rmult (Re _3329272) (Im _3329273)) (Rmult (Im _3329272) (Re _3329273))))). +Proof. exact (eq_refl complex_mul). Qed. +Definition complex_inv : (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3329284 : cart R (tybit0 unit) => complex (@pair R R (Rdiv (Re _3329284) (Rplus (real_pow (Re _3329284) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (Im _3329284) (NUMERAL (BIT0 (BIT1 0%N)))))) (Rdiv (Ropp (Im _3329284)) (Rplus (real_pow (Re _3329284) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (Im _3329284) (NUMERAL (BIT0 (BIT1 0%N))))))). +Lemma complex_inv_def : complex_inv = (fun _3329284 : cart R (tybit0 unit) => complex (@pair R R (Rdiv (Re _3329284) (Rplus (real_pow (Re _3329284) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (Im _3329284) (NUMERAL (BIT0 (BIT1 0%N)))))) (Rdiv (Ropp (Im _3329284)) (Rplus (real_pow (Re _3329284) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (Im _3329284) (NUMERAL (BIT0 (BIT1 0%N)))))))). +Proof. exact (eq_refl complex_inv). Qed. +Definition complex_div : (cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3329289 : cart R (tybit0 unit) => fun _3329290 : cart R (tybit0 unit) => complex_mul _3329289 (complex_inv _3329290). +Lemma complex_div_def : complex_div = (fun _3329289 : cart R (tybit0 unit) => fun _3329290 : cart R (tybit0 unit) => complex_mul _3329289 (complex_inv _3329290)). +Proof. exact (eq_refl complex_div). Qed. +Definition complex_pow : (cart R (tybit0 unit)) -> N -> cart R (tybit0 unit) := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (cart R (tybit0 unit)) -> N -> cart R (tybit0 unit)) (fun complex_pow' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (cart R (tybit0 unit)) -> N -> cart R (tybit0 unit) => forall _3329685 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))), (forall x : cart R (tybit0 unit), (complex_pow' _3329685 x (NUMERAL 0%N)) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) /\ (forall x : cart R (tybit0 unit), forall n : N, (complex_pow' _3329685 x (N.succ n)) = (complex_mul x (complex_pow' _3329685 x n)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))))))))))))). +Lemma complex_pow_def : complex_pow = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (cart R (tybit0 unit)) -> N -> cart R (tybit0 unit)) (fun complex_pow' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) -> (cart R (tybit0 unit)) -> N -> cart R (tybit0 unit) => forall _3329685 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))), (forall x : cart R (tybit0 unit), (complex_pow' _3329685 x (NUMERAL 0%N)) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) /\ (forall x : cart R (tybit0 unit), forall n : N, (complex_pow' _3329685 x (N.succ n)) = (complex_mul x (complex_pow' _3329685 x n)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N))))))))))))))))))). +Proof. exact (eq_refl complex_pow). Qed. +Definition cnj : (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3330120 : cart R (tybit0 unit) => complex (@pair R R (Re _3330120) (Ropp (Im _3330120))). +Lemma cnj_def : cnj = (fun _3330120 : cart R (tybit0 unit) => complex (@pair R R (Re _3330120) (Ropp (Im _3330120)))). +Proof. exact (eq_refl cnj). Qed. +Definition csqrt : (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3330185 : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) ((Im _3330185) = (R_of_N (NUMERAL 0%N))) (@COND (cart R (tybit0 unit)) (Rle (R_of_N (NUMERAL 0%N)) (Re _3330185)) (complex (@pair R R (sqrt (Re _3330185)) (R_of_N (NUMERAL 0%N)))) (complex (@pair R R (R_of_N (NUMERAL 0%N)) (sqrt (Ropp (Re _3330185)))))) (complex (@pair R R (sqrt (Rdiv (Rplus (@vector_norm (tybit0 unit) _3330185) (Re _3330185)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (Rmult (Rdiv (Im _3330185) (Rabs (Im _3330185))) (sqrt (Rdiv (Rminus (@vector_norm (tybit0 unit) _3330185) (Re _3330185)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))). +Lemma csqrt_def : csqrt = (fun _3330185 : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) ((Im _3330185) = (R_of_N (NUMERAL 0%N))) (@COND (cart R (tybit0 unit)) (Rle (R_of_N (NUMERAL 0%N)) (Re _3330185)) (complex (@pair R R (sqrt (Re _3330185)) (R_of_N (NUMERAL 0%N)))) (complex (@pair R R (R_of_N (NUMERAL 0%N)) (sqrt (Ropp (Re _3330185)))))) (complex (@pair R R (sqrt (Rdiv (Rplus (@vector_norm (tybit0 unit) _3330185) (Re _3330185)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (Rmult (Rdiv (Im _3330185) (Rabs (Im _3330185))) (sqrt (Rdiv (Rminus (@vector_norm (tybit0 unit) _3330185) (Re _3330185)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))))). +Proof. exact (eq_refl csqrt). Qed. +Definition real : (cart R (tybit0 unit)) -> Prop := fun _3330546 : cart R (tybit0 unit) => (Im _3330546) = (R_of_N (NUMERAL 0%N)). +Lemma real_def : real = (fun _3330546 : cart R (tybit0 unit) => (Im _3330546) = (R_of_N (NUMERAL 0%N))). +Proof. exact (eq_refl real). Qed. +Definition cproduct {_1609940 : Type'} : (_1609940 -> Prop) -> (_1609940 -> cart R (tybit0 unit)) -> cart R (tybit0 unit) := @iterate _1609940 (cart R (tybit0 unit)) complex_mul. +Lemma cproduct_def {_1609940 : Type'} : (@cproduct _1609940) = (@iterate _1609940 (cart R (tybit0 unit)) complex_mul). +Proof. exact (eq_refl (@cproduct _1609940)). Qed. +Definition has_complex_derivative : ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> (net (cart R (tybit0 unit))) -> Prop := fun _3333810 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => fun _3333811 : cart R (tybit0 unit) => fun _3333812 : net (cart R (tybit0 unit)) => @has_derivative (tybit0 unit) (tybit0 unit) _3333810 (fun x : cart R (tybit0 unit) => complex_mul _3333811 x) _3333812. +Lemma has_complex_derivative_def : has_complex_derivative = (fun _3333810 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => fun _3333811 : cart R (tybit0 unit) => fun _3333812 : net (cart R (tybit0 unit)) => @has_derivative (tybit0 unit) (tybit0 unit) _3333810 (fun x : cart R (tybit0 unit) => complex_mul _3333811 x) _3333812). +Proof. exact (eq_refl has_complex_derivative). Qed. +Definition complex_differentiable : ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (net (cart R (tybit0 unit))) -> Prop := fun _3333831 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => fun _3333832 : net (cart R (tybit0 unit)) => exists f' : cart R (tybit0 unit), has_complex_derivative _3333831 f' _3333832. +Lemma complex_differentiable_def : complex_differentiable = (fun _3333831 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => fun _3333832 : net (cart R (tybit0 unit)) => exists f' : cart R (tybit0 unit), has_complex_derivative _3333831 f' _3333832). +Proof. exact (eq_refl complex_differentiable). Qed. +Definition complex_derivative : ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3333843 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => fun _3333844 : cart R (tybit0 unit) => @ε (cart R (tybit0 unit)) (fun f' : cart R (tybit0 unit) => has_complex_derivative _3333843 f' (@_at (tybit0 unit) _3333844)). +Lemma complex_derivative_def : complex_derivative = (fun _3333843 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => fun _3333844 : cart R (tybit0 unit) => @ε (cart R (tybit0 unit)) (fun f' : cart R (tybit0 unit) => has_complex_derivative _3333843 f' (@_at (tybit0 unit) _3333844))). +Proof. exact (eq_refl complex_derivative). Qed. +Definition higher_complex_derivative : N -> ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> cart R (tybit0 unit) := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))))))) -> N -> ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> cart R (tybit0 unit)) (fun higher_complex_derivative' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))))))) -> N -> ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> cart R (tybit0 unit) => forall _3334239 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))))), (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (higher_complex_derivative' _3334239 (NUMERAL 0%N) f) = f) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : N, (higher_complex_derivative' _3334239 (N.succ n) f) = (complex_derivative (higher_complex_derivative' _3334239 n f)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))))))))))))))))). +Lemma higher_complex_derivative_def : higher_complex_derivative = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))))))) -> N -> ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> cart R (tybit0 unit)) (fun higher_complex_derivative' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))))))) -> N -> ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> cart R (tybit0 unit) => forall _3334239 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))))), (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (higher_complex_derivative' _3334239 (NUMERAL 0%N) f) = f) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : N, (higher_complex_derivative' _3334239 (N.succ n) f) = (complex_derivative (higher_complex_derivative' _3334239 n f)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))))))))))))))))))). +Proof. exact (eq_refl higher_complex_derivative). Qed. +Definition holomorphic_on : ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> ((cart R (tybit0 unit)) -> Prop) -> Prop := fun _3334240 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => fun _3334241 : (cart R (tybit0 unit)) -> Prop => forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x _3334241) -> exists f' : cart R (tybit0 unit), has_complex_derivative _3334240 f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) _3334241). +Lemma holomorphic_on_def : holomorphic_on = (fun _3334240 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => fun _3334241 : (cart R (tybit0 unit)) -> Prop => forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x _3334241) -> exists f' : cart R (tybit0 unit), has_complex_derivative _3334240 f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) _3334241)). +Proof. exact (eq_refl holomorphic_on). Qed. +Definition analytic_on : ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> ((cart R (tybit0 unit)) -> Prop) -> Prop := fun _3336443 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => fun _3336444 : (cart R (tybit0 unit)) -> Prop => forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x _3336444) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (holomorphic_on _3336443 (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R x e))). +Lemma analytic_on_def : analytic_on = (fun _3336443 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => fun _3336444 : (cart R (tybit0 unit)) -> Prop => forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x _3336444) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (holomorphic_on _3336443 (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R x e)))). +Proof. exact (eq_refl analytic_on). Qed. +Definition cexp : (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3342061 : cart R (tybit0 unit) => @infsum (tybit0 unit) (from (NUMERAL 0%N)) (fun n : N => complex_div (complex_pow _3342061 n) (Cx (R_of_N (FACT n)))). +Lemma cexp_def : cexp = (fun _3342061 : cart R (tybit0 unit) => @infsum (tybit0 unit) (from (NUMERAL 0%N)) (fun n : N => complex_div (complex_pow _3342061 n) (Cx (R_of_N (FACT n))))). +Proof. exact (eq_refl cexp). Qed. +Definition ccos : (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3342231 : cart R (tybit0 unit) => complex_div (@vector_add (tybit0 unit) (cexp (complex_mul ii _3342231)) (cexp (complex_mul (@vector_neg (tybit0 unit) ii) _3342231))) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Lemma ccos_def : ccos = (fun _3342231 : cart R (tybit0 unit) => complex_div (@vector_add (tybit0 unit) (cexp (complex_mul ii _3342231)) (cexp (complex_mul (@vector_neg (tybit0 unit) ii) _3342231))) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Proof. exact (eq_refl ccos). Qed. +Definition csin : (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3342236 : cart R (tybit0 unit) => complex_div (@vector_sub (tybit0 unit) (cexp (complex_mul ii _3342236)) (cexp (complex_mul (@vector_neg (tybit0 unit) ii) _3342236))) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) ii). +Lemma csin_def : csin = (fun _3342236 : cart R (tybit0 unit) => complex_div (@vector_sub (tybit0 unit) (cexp (complex_mul ii _3342236)) (cexp (complex_mul (@vector_neg (tybit0 unit) ii) _3342236))) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) ii)). +Proof. exact (eq_refl csin). Qed. +Definition exp : R -> R := fun _3342241 : R => Re (cexp (Cx _3342241)). +Lemma exp_def : exp = (fun _3342241 : R => Re (cexp (Cx _3342241))). +Proof. exact (eq_refl exp). Qed. +Definition sin : R -> R := fun _3342371 : R => Re (csin (Cx _3342371)). +Lemma sin_def : sin = (fun _3342371 : R => Re (csin (Cx _3342371))). +Proof. exact (eq_refl sin). Qed. +Definition cos : R -> R := fun _3342376 : R => Re (ccos (Cx _3342376)). +Lemma cos_def : cos = (fun _3342376 : R => Re (ccos (Cx _3342376))). +Proof. exact (eq_refl cos). Qed. +Definition log : R -> R := fun _3342477 : R => @ε R (fun x : R => (exp x) = _3342477). +Lemma log_def : log = (fun _3342477 : R => @ε R (fun x : R => (exp x) = _3342477)). +Proof. exact (eq_refl log). Qed. +Definition pi : R := @ε R (fun p : R => (Rlt (R_of_N (NUMERAL 0%N)) p) /\ (((sin p) = (R_of_N (NUMERAL 0%N))) /\ (forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x p)) -> ~ ((sin x) = (R_of_N (NUMERAL 0%N)))))). +Lemma pi_def : pi = (@ε R (fun p : R => (Rlt (R_of_N (NUMERAL 0%N)) p) /\ (((sin p) = (R_of_N (NUMERAL 0%N))) /\ (forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x p)) -> ~ ((sin x) = (R_of_N (NUMERAL 0%N))))))). +Proof. exact (eq_refl pi). Qed. +Definition Arg : (cart R (tybit0 unit)) -> R := fun _3343510 : cart R (tybit0 unit) => @COND R (_3343510 = (Cx (R_of_N (NUMERAL 0%N)))) (R_of_N (NUMERAL 0%N)) (@ε R (fun t : R => (Rle (R_of_N (NUMERAL 0%N)) t) /\ ((Rlt t (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) /\ (_3343510 = (complex_mul (Cx (@vector_norm (tybit0 unit) _3343510)) (cexp (complex_mul ii (Cx t)))))))). +Lemma Arg_def : Arg = (fun _3343510 : cart R (tybit0 unit) => @COND R (_3343510 = (Cx (R_of_N (NUMERAL 0%N)))) (R_of_N (NUMERAL 0%N)) (@ε R (fun t : R => (Rle (R_of_N (NUMERAL 0%N)) t) /\ ((Rlt t (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) /\ (_3343510 = (complex_mul (Cx (@vector_norm (tybit0 unit) _3343510)) (cexp (complex_mul ii (Cx t))))))))). +Proof. exact (eq_refl Arg). Qed. +Definition rotate2d : R -> (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3343778 : R => fun _3343779 : cart R (tybit0 unit) => @vector R (tybit0 unit) (@cons R (Rminus (Rmult (@dollar R (tybit0 unit) _3343779 (NUMERAL (BIT1 0%N))) (cos _3343778)) (Rmult (@dollar R (tybit0 unit) _3343779 (NUMERAL (BIT0 (BIT1 0%N)))) (sin _3343778))) (@cons R (Rplus (Rmult (@dollar R (tybit0 unit) _3343779 (NUMERAL (BIT1 0%N))) (sin _3343778)) (Rmult (@dollar R (tybit0 unit) _3343779 (NUMERAL (BIT0 (BIT1 0%N)))) (cos _3343778))) (@nil R))). +Lemma rotate2d_def : rotate2d = (fun _3343778 : R => fun _3343779 : cart R (tybit0 unit) => @vector R (tybit0 unit) (@cons R (Rminus (Rmult (@dollar R (tybit0 unit) _3343779 (NUMERAL (BIT1 0%N))) (cos _3343778)) (Rmult (@dollar R (tybit0 unit) _3343779 (NUMERAL (BIT0 (BIT1 0%N)))) (sin _3343778))) (@cons R (Rplus (Rmult (@dollar R (tybit0 unit) _3343779 (NUMERAL (BIT1 0%N))) (sin _3343778)) (Rmult (@dollar R (tybit0 unit) _3343779 (NUMERAL (BIT0 (BIT1 0%N)))) (cos _3343778))) (@nil R)))). +Proof. exact (eq_refl rotate2d). Qed. +Definition ctan : (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3344450 : cart R (tybit0 unit) => complex_div (csin _3344450) (ccos _3344450). +Lemma ctan_def : ctan = (fun _3344450 : cart R (tybit0 unit) => complex_div (csin _3344450) (ccos _3344450)). +Proof. exact (eq_refl ctan). Qed. +Definition tan : R -> R := fun _3344653 : R => Re (ctan (Cx _3344653)). +Lemma tan_def : tan = (fun _3344653 : R => Re (ctan (Cx _3344653))). +Proof. exact (eq_refl tan). Qed. +Definition clog : (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3344970 : cart R (tybit0 unit) => @ε (cart R (tybit0 unit)) (fun w : cart R (tybit0 unit) => ((cexp w) = _3344970) /\ ((Rlt (Ropp pi) (Im w)) /\ (Rle (Im w) pi))). +Lemma clog_def : clog = (fun _3344970 : cart R (tybit0 unit) => @ε (cart R (tybit0 unit)) (fun w : cart R (tybit0 unit) => ((cexp w) = _3344970) /\ ((Rlt (Ropp pi) (Im w)) /\ (Rle (Im w) pi)))). +Proof. exact (eq_refl clog). Qed. +Definition cpow : (cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3345971 : cart R (tybit0 unit) => fun _3345972 : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) (_3345971 = (Cx (R_of_N (NUMERAL 0%N)))) (Cx (R_of_N (NUMERAL 0%N))) (cexp (complex_mul _3345972 (clog _3345971))). +Lemma cpow_def : cpow = (fun _3345971 : cart R (tybit0 unit) => fun _3345972 : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) (_3345971 = (Cx (R_of_N (NUMERAL 0%N)))) (Cx (R_of_N (NUMERAL 0%N))) (cexp (complex_mul _3345972 (clog _3345971)))). +Proof. exact (eq_refl cpow). Qed. +Definition unwinding : (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3346173 : cart R (tybit0 unit) => complex_div (@vector_sub (tybit0 unit) _3346173 (clog (cexp _3346173))) (complex_mul (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) ii). +Lemma unwinding_def : unwinding = (fun _3346173 : cart R (tybit0 unit) => complex_div (@vector_sub (tybit0 unit) _3346173 (clog (cexp _3346173))) (complex_mul (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) ii)). +Proof. exact (eq_refl unwinding). Qed. +Definition catn : (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3346178 : cart R (tybit0 unit) => complex_mul (complex_div ii (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (clog (complex_div (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul ii _3346178)) (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul ii _3346178)))). +Lemma catn_def : catn = (fun _3346178 : cart R (tybit0 unit) => complex_mul (complex_div ii (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (clog (complex_div (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul ii _3346178)) (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul ii _3346178))))). +Proof. exact (eq_refl catn). Qed. +Definition atn : R -> R := fun _3346722 : R => Re (catn (Cx _3346722)). +Lemma atn_def : atn = (fun _3346722 : R => Re (catn (Cx _3346722))). +Proof. exact (eq_refl atn). Qed. +Definition casn : (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3347097 : cart R (tybit0 unit) => complex_mul (@vector_neg (tybit0 unit) ii) (clog (@vector_add (tybit0 unit) (complex_mul ii _3347097) (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow _3347097 (NUMERAL (BIT0 (BIT1 0%N)))))))). +Lemma casn_def : casn = (fun _3347097 : cart R (tybit0 unit) => complex_mul (@vector_neg (tybit0 unit) ii) (clog (@vector_add (tybit0 unit) (complex_mul ii _3347097) (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow _3347097 (NUMERAL (BIT0 (BIT1 0%N))))))))). +Proof. exact (eq_refl casn). Qed. +Definition cacs : (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3347591 : cart R (tybit0 unit) => complex_mul (@vector_neg (tybit0 unit) ii) (clog (@vector_add (tybit0 unit) _3347591 (complex_mul ii (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow _3347591 (NUMERAL (BIT0 (BIT1 0%N))))))))). +Lemma cacs_def : cacs = (fun _3347591 : cart R (tybit0 unit) => complex_mul (@vector_neg (tybit0 unit) ii) (clog (@vector_add (tybit0 unit) _3347591 (complex_mul ii (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow _3347591 (NUMERAL (BIT0 (BIT1 0%N)))))))))). +Proof. exact (eq_refl cacs). Qed. +Definition asn : R -> R := fun _3348126 : R => Re (casn (Cx _3348126)). +Lemma asn_def : asn = (fun _3348126 : R => Re (casn (Cx _3348126))). +Proof. exact (eq_refl asn). Qed. +Definition acs : R -> R := fun _3348211 : R => Re (cacs (Cx _3348211)). +Lemma acs_def : acs = (fun _3348211 : R => Re (cacs (Cx _3348211))). +Proof. exact (eq_refl acs). Qed. +Definition root : N -> R -> R := fun _3348721 : N => fun _3348722 : R => Rmult (real_sgn _3348722) (exp (Rdiv (log (Rabs _3348722)) (R_of_N _3348721))). +Lemma root_def : root = (fun _3348721 : N => fun _3348722 : R => Rmult (real_sgn _3348722) (exp (Rdiv (log (Rabs _3348722)) (R_of_N _3348721)))). +Proof. exact (eq_refl root). Qed. +Definition rpow : R -> R -> R := fun _3349071 : R => fun _3349072 : R => @COND R (Rlt (R_of_N (NUMERAL 0%N)) _3349071) (exp (Rmult _3349072 (log _3349071))) (@COND R (_3349071 = (R_of_N (NUMERAL 0%N))) (@COND R (_3349072 = (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@COND R (exists m : N, exists n : N, (ODD m) /\ ((ODD n) /\ ((Rabs _3349072) = (Rdiv (R_of_N m) (R_of_N n))))) (Ropp (exp (Rmult _3349072 (log (Ropp _3349071))))) (exp (Rmult _3349072 (log (Ropp _3349071)))))). +Lemma rpow_def : rpow = (fun _3349071 : R => fun _3349072 : R => @COND R (Rlt (R_of_N (NUMERAL 0%N)) _3349071) (exp (Rmult _3349072 (log _3349071))) (@COND R (_3349071 = (R_of_N (NUMERAL 0%N))) (@COND R (_3349072 = (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@COND R (exists m : N, exists n : N, (ODD m) /\ ((ODD n) /\ ((Rabs _3349072) = (Rdiv (R_of_N m) (R_of_N n))))) (Ropp (exp (Rmult _3349072 (log (Ropp _3349071))))) (exp (Rmult _3349072 (log (Ropp _3349071))))))). +Proof. exact (eq_refl rpow). Qed. +Definition longarrow {_1674736 : Type'} : (_1674736 -> R) -> R -> (net _1674736) -> Prop := fun _3352730 : _1674736 -> R => fun _3352731 : R => fun _3352732 : net _1674736 => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually _1674736 (fun x : _1674736 => Rlt (Rabs (Rminus (_3352730 x) _3352731)) e) _3352732. +Lemma longarrow_def {_1674736 : Type'} : (@longarrow _1674736) = (fun _3352730 : _1674736 -> R => fun _3352731 : R => fun _3352732 : net _1674736 => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually _1674736 (fun x : _1674736 => Rlt (Rabs (Rminus (_3352730 x) _3352731)) e) _3352732). +Proof. exact (eq_refl (@longarrow _1674736)). Qed. +Definition reallim {_1674750 : Type'} : (net _1674750) -> (_1674750 -> R) -> R := fun _3352751 : net _1674750 => fun _3352752 : _1674750 -> R => @ε R (fun l : R => @longarrow _1674750 _3352752 l _3352751). +Lemma reallim_def {_1674750 : Type'} : (@reallim _1674750) = (fun _3352751 : net _1674750 => fun _3352752 : _1674750 -> R => @ε R (fun l : R => @longarrow _1674750 _3352752 l _3352751)). +Proof. exact (eq_refl (@reallim _1674750)). Qed. +Definition real_sums : (N -> R) -> R -> (N -> Prop) -> Prop := fun _3353246 : N -> R => fun _3353247 : R => fun _3353248 : N -> Prop => @longarrow N (fun n : N => @sum N (@INTER N _3353248 (dotdot (NUMERAL 0%N) n)) _3353246) _3353247 sequentially. +Lemma real_sums_def : real_sums = (fun _3353246 : N -> R => fun _3353247 : R => fun _3353248 : N -> Prop => @longarrow N (fun n : N => @sum N (@INTER N _3353248 (dotdot (NUMERAL 0%N) n)) _3353246) _3353247 sequentially). +Proof. exact (eq_refl real_sums). Qed. +Definition real_infsum : (N -> Prop) -> (N -> R) -> R := fun _3353267 : N -> Prop => fun _3353268 : N -> R => @ε R (fun l : R => real_sums _3353268 l _3353267). +Lemma real_infsum_def : real_infsum = (fun _3353267 : N -> Prop => fun _3353268 : N -> R => @ε R (fun l : R => real_sums _3353268 l _3353267)). +Proof. exact (eq_refl real_infsum). Qed. +Definition real_summable : (N -> Prop) -> (N -> R) -> Prop := fun _3353279 : N -> Prop => fun _3353280 : N -> R => exists l : R, real_sums _3353280 l _3353279. +Lemma real_summable_def : real_summable = (fun _3353279 : N -> Prop => fun _3353280 : N -> R => exists l : R, real_sums _3353280 l _3353279). +Proof. exact (eq_refl real_summable). Qed. +Definition atreal : R -> net R := fun _3354706 : R => @atpointof R euclideanreal _3354706. +Lemma atreal_def : atreal = (fun _3354706 : R => @atpointof R euclideanreal _3354706). +Proof. exact (eq_refl atreal). Qed. +Definition real_continuous {_1684948 : Type'} : (_1684948 -> R) -> (net _1684948) -> Prop := fun _3355521 : _1684948 -> R => fun _3355522 : net _1684948 => @longarrow _1684948 _3355521 (_3355521 (@netlimit _1684948 _3355522)) _3355522. +Lemma real_continuous_def {_1684948 : Type'} : (@real_continuous _1684948) = (fun _3355521 : _1684948 -> R => fun _3355522 : net _1684948 => @longarrow _1684948 _3355521 (_3355521 (@netlimit _1684948 _3355522)) _3355522). +Proof. exact (eq_refl (@real_continuous _1684948)). Qed. +Definition real_continuous_on : (R -> R) -> (R -> Prop) -> Prop := fun _3356881 : R -> R => fun _3356882 : R -> Prop => forall x : R, (@IN R x _3356882) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : R, ((@IN R x' _3356882) /\ (Rlt (Rabs (Rminus x' x)) d)) -> Rlt (Rabs (Rminus (_3356881 x') (_3356881 x))) e). +Lemma real_continuous_on_def : real_continuous_on = (fun _3356881 : R -> R => fun _3356882 : R -> Prop => forall x : R, (@IN R x _3356882) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : R, ((@IN R x' _3356882) /\ (Rlt (Rabs (Rminus x' x)) d)) -> Rlt (Rabs (Rminus (_3356881 x') (_3356881 x))) e)). +Proof. exact (eq_refl real_continuous_on). Qed. +Definition real_uniformly_continuous_on : (R -> R) -> (R -> Prop) -> Prop := fun _3357306 : R -> R => fun _3357307 : R -> Prop => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : R, forall x' : R, ((@IN R x _3357307) /\ ((@IN R x' _3357307) /\ (Rlt (Rabs (Rminus x' x)) d))) -> Rlt (Rabs (Rminus (_3357306 x') (_3357306 x))) e). +Lemma real_uniformly_continuous_on_def : real_uniformly_continuous_on = (fun _3357306 : R -> R => fun _3357307 : R -> Prop => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : R, forall x' : R, ((@IN R x _3357307) /\ ((@IN R x' _3357307) /\ (Rlt (Rabs (Rminus x' x)) d))) -> Rlt (Rabs (Rminus (_3357306 x') (_3357306 x))) e)). +Proof. exact (eq_refl real_uniformly_continuous_on). Qed. +Definition has_real_derivative : (R -> R) -> R -> (net R) -> Prop := fun _3357396 : R -> R => fun _3357397 : R => fun _3357398 : net R => @longarrow R (fun x : R => Rmult (Rinv (Rminus x (@netlimit R _3357398))) (Rminus (_3357396 x) (Rplus (_3357396 (@netlimit R _3357398)) (Rmult _3357397 (Rminus x (@netlimit R _3357398)))))) (R_of_N (NUMERAL 0%N)) _3357398. +Lemma has_real_derivative_def : has_real_derivative = (fun _3357396 : R -> R => fun _3357397 : R => fun _3357398 : net R => @longarrow R (fun x : R => Rmult (Rinv (Rminus x (@netlimit R _3357398))) (Rminus (_3357396 x) (Rplus (_3357396 (@netlimit R _3357398)) (Rmult _3357397 (Rminus x (@netlimit R _3357398)))))) (R_of_N (NUMERAL 0%N)) _3357398). +Proof. exact (eq_refl has_real_derivative). Qed. +Definition real_differentiable : (R -> R) -> (net R) -> Prop := fun _3357417 : R -> R => fun _3357418 : net R => exists f' : R, has_real_derivative _3357417 f' _3357418. +Lemma real_differentiable_def : real_differentiable = (fun _3357417 : R -> R => fun _3357418 : net R => exists f' : R, has_real_derivative _3357417 f' _3357418). +Proof. exact (eq_refl real_differentiable). Qed. +Definition real_derivative : (R -> R) -> R -> R := fun _3357429 : R -> R => fun _3357430 : R => @ε R (fun f' : R => has_real_derivative _3357429 f' (atreal _3357430)). +Lemma real_derivative_def : real_derivative = (fun _3357429 : R -> R => fun _3357430 : R => @ε R (fun f' : R => has_real_derivative _3357429 f' (atreal _3357430))). +Proof. exact (eq_refl real_derivative). Qed. +Definition higher_real_derivative : N -> (R -> R) -> R -> R := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))) -> N -> (R -> R) -> R -> R) (fun higher_real_derivative' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))) -> N -> (R -> R) -> R -> R => forall _3357825 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))), (forall f : R -> R, (higher_real_derivative' _3357825 (NUMERAL 0%N) f) = f) /\ (forall f : R -> R, forall n : N, (higher_real_derivative' _3357825 (N.succ n) f) = (real_derivative (higher_real_derivative' _3357825 n f)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))))))))))))))). +Lemma higher_real_derivative_def : higher_real_derivative = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))) -> N -> (R -> R) -> R -> R) (fun higher_real_derivative' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))))) -> N -> (R -> R) -> R -> R => forall _3357825 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))), (forall f : R -> R, (higher_real_derivative' _3357825 (NUMERAL 0%N) f) = f) /\ (forall f : R -> R, forall n : N, (higher_real_derivative' _3357825 (N.succ n) f) = (real_derivative (higher_real_derivative' _3357825 n f)))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))))))))))))))). +Proof. exact (eq_refl higher_real_derivative). Qed. +Definition real_differentiable_on : (R -> R) -> (R -> Prop) -> Prop := fun _3357826 : R -> R => fun _3357827 : R -> Prop => forall x : R, (@IN R x _3357827) -> exists f' : R, has_real_derivative _3357826 f' (@within R (atreal x) _3357827). +Lemma real_differentiable_on_def : real_differentiable_on = (fun _3357826 : R -> R => fun _3357827 : R -> Prop => forall x : R, (@IN R x _3357827) -> exists f' : R, has_real_derivative _3357826 f' (@within R (atreal x) _3357827)). +Proof. exact (eq_refl real_differentiable_on). Qed. +Definition has_limsup {A : Type'} : (A -> R) -> R -> (net A) -> Prop := fun _3361879 : A -> R => fun _3361880 : R => fun _3361881 : net A => (@trivial_limit A _3361881) \/ (has_inf (@GSPEC R (fun GEN_PVAR_8465 : R => exists b : R, @SETSPEC R GEN_PVAR_8465 (@eventually A (fun x : A => Rle (_3361879 x) b) _3361881) b)) _3361880). +Lemma has_limsup_def {A : Type'} : (@has_limsup A) = (fun _3361879 : A -> R => fun _3361880 : R => fun _3361881 : net A => (@trivial_limit A _3361881) \/ (has_inf (@GSPEC R (fun GEN_PVAR_8465 : R => exists b : R, @SETSPEC R GEN_PVAR_8465 (@eventually A (fun x : A => Rle (_3361879 x) b) _3361881) b)) _3361880)). +Proof. exact (eq_refl (@has_limsup A)). Qed. +Definition has_liminf {A : Type'} : (A -> R) -> R -> (net A) -> Prop := fun _3361900 : A -> R => fun _3361901 : R => fun _3361902 : net A => (@trivial_limit A _3361902) \/ (has_sup (@GSPEC R (fun GEN_PVAR_8466 : R => exists b : R, @SETSPEC R GEN_PVAR_8466 (@eventually A (fun x : A => Rle b (_3361900 x)) _3361902) b)) _3361901). +Lemma has_liminf_def {A : Type'} : (@has_liminf A) = (fun _3361900 : A -> R => fun _3361901 : R => fun _3361902 : net A => (@trivial_limit A _3361902) \/ (has_sup (@GSPEC R (fun GEN_PVAR_8466 : R => exists b : R, @SETSPEC R GEN_PVAR_8466 (@eventually A (fun x : A => Rle b (_3361900 x)) _3361902) b)) _3361901)). +Proof. exact (eq_refl (@has_liminf A)). Qed. +Definition closed_real_segment : (list (prod R R)) -> R -> Prop := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) -> (list (prod R R)) -> R -> Prop) (fun closed_real_segment' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) -> (list (prod R R)) -> R -> Prop => forall _3363925 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))), forall a : R, forall b : R, (closed_real_segment' _3363925 (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@GSPEC R (fun GEN_PVAR_8483 : R => exists u : R, @SETSPEC R GEN_PVAR_8483 ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N))))) (Rplus (Rmult (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) a) (Rmult u b))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))))))))))))))))))))). +Lemma closed_real_segment_def : closed_real_segment = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) -> (list (prod R R)) -> R -> Prop) (fun closed_real_segment' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))))) -> (list (prod R R)) -> R -> Prop => forall _3363925 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))), forall a : R, forall b : R, (closed_real_segment' _3363925 (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@GSPEC R (fun GEN_PVAR_8483 : R => exists u : R, @SETSPEC R GEN_PVAR_8483 ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N))))) (Rplus (Rmult (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) a) (Rmult u b))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N))))))))))))))))))))))))))). +Proof. exact (eq_refl closed_real_segment). Qed. +Definition open_real_segment : (prod R R) -> R -> Prop := fun _3363926 : prod R R => @DIFF R (closed_real_segment (@cons (prod R R) (@pair R R (@fst R R _3363926) (@snd R R _3363926)) (@nil (prod R R)))) (@INSERT R (@fst R R _3363926) (@INSERT R (@snd R R _3363926) (@EMPTY R))). +Lemma open_real_segment_def : open_real_segment = (fun _3363926 : prod R R => @DIFF R (closed_real_segment (@cons (prod R R) (@pair R R (@fst R R _3363926) (@snd R R _3363926)) (@nil (prod R R)))) (@INSERT R (@fst R R _3363926) (@INSERT R (@snd R R _3363926) (@EMPTY R)))). +Proof. exact (eq_refl open_real_segment). Qed. +Definition real_convex_on : (R -> R) -> (R -> Prop) -> Prop := fun _3364268 : R -> R => fun _3364269 : R -> Prop => forall x : R, forall y : R, forall u : R, forall v : R, ((@IN R x _3364269) /\ ((@IN R y _3364269) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (_3364268 (Rplus (Rmult u x) (Rmult v y))) (Rplus (Rmult u (_3364268 x)) (Rmult v (_3364268 y))). +Lemma real_convex_on_def : real_convex_on = (fun _3364268 : R -> R => fun _3364269 : R -> Prop => forall x : R, forall y : R, forall u : R, forall v : R, ((@IN R x _3364269) /\ ((@IN R y _3364269) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (_3364268 (Rplus (Rmult u x) (Rmult v y))) (Rplus (Rmult u (_3364268 x)) (Rmult v (_3364268 y)))). +Proof. exact (eq_refl real_convex_on). Qed. +Definition log_convex_on {N' : Type'} : ((cart R N') -> R) -> ((cart R N') -> Prop) -> Prop := fun _3365513 : (cart R N') -> R => fun _3365514 : (cart R N') -> Prop => forall x : cart R N', forall y : cart R N', forall u : R, forall v : R, ((@IN (cart R N') x _3365514) /\ ((@IN (cart R N') y _3365514) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> (Rle (R_of_N (NUMERAL 0%N)) (_3365513 (@vector_add N' (@percent N' u x) (@percent N' v y)))) /\ (Rle (_3365513 (@vector_add N' (@percent N' u x) (@percent N' v y))) (Rmult (rpow (_3365513 x) u) (rpow (_3365513 y) v))). +Lemma log_convex_on_def {N' : Type'} : (@log_convex_on N') = (fun _3365513 : (cart R N') -> R => fun _3365514 : (cart R N') -> Prop => forall x : cart R N', forall y : cart R N', forall u : R, forall v : R, ((@IN (cart R N') x _3365514) /\ ((@IN (cart R N') y _3365514) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> (Rle (R_of_N (NUMERAL 0%N)) (_3365513 (@vector_add N' (@percent N' u x) (@percent N' v y)))) /\ (Rle (_3365513 (@vector_add N' (@percent N' u x) (@percent N' v y))) (Rmult (rpow (_3365513 x) u) (rpow (_3365513 y) v)))). +Proof. exact (eq_refl (@log_convex_on N')). Qed. +Definition real_log_convex_on : (R -> R) -> (R -> Prop) -> Prop := fun _3366359 : R -> R => fun _3366360 : R -> Prop => forall x : R, forall y : R, forall u : R, forall v : R, ((@IN R x _3366360) /\ ((@IN R y _3366360) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> (Rle (R_of_N (NUMERAL 0%N)) (_3366359 (Rplus (Rmult u x) (Rmult v y)))) /\ (Rle (_3366359 (Rplus (Rmult u x) (Rmult v y))) (Rmult (rpow (_3366359 x) u) (rpow (_3366359 y) v))). +Lemma real_log_convex_on_def : real_log_convex_on = (fun _3366359 : R -> R => fun _3366360 : R -> Prop => forall x : R, forall y : R, forall u : R, forall v : R, ((@IN R x _3366360) /\ ((@IN R y _3366360) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> (Rle (R_of_N (NUMERAL 0%N)) (_3366359 (Rplus (Rmult u x) (Rmult v y)))) /\ (Rle (_3366359 (Rplus (Rmult u x) (Rmult v y))) (Rmult (rpow (_3366359 x) u) (rpow (_3366359 y) v)))). +Proof. exact (eq_refl real_log_convex_on). Qed. +Definition has_real_integral : (R -> R) -> R -> (R -> Prop) -> Prop := fun _3367240 : R -> R => fun _3367241 : R => fun _3367242 : R -> Prop => @has_integral unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R _3367240 drop)) (lift _3367241) (@IMAGE R (cart R unit) lift _3367242). +Lemma has_real_integral_def : has_real_integral = (fun _3367240 : R -> R => fun _3367241 : R => fun _3367242 : R -> Prop => @has_integral unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R _3367240 drop)) (lift _3367241) (@IMAGE R (cart R unit) lift _3367242)). +Proof. exact (eq_refl has_real_integral). Qed. +Definition real_integrable_on : (R -> R) -> (R -> Prop) -> Prop := fun _3367261 : R -> R => fun _3367262 : R -> Prop => exists y : R, has_real_integral _3367261 y _3367262. +Lemma real_integrable_on_def : real_integrable_on = (fun _3367261 : R -> R => fun _3367262 : R -> Prop => exists y : R, has_real_integral _3367261 y _3367262). +Proof. exact (eq_refl real_integrable_on). Qed. +Definition real_integral : (R -> Prop) -> (R -> R) -> R := fun _3367273 : R -> Prop => fun _3367274 : R -> R => @ε R (fun y : R => has_real_integral _3367274 y _3367273). +Lemma real_integral_def : real_integral = (fun _3367273 : R -> Prop => fun _3367274 : R -> R => @ε R (fun y : R => has_real_integral _3367274 y _3367273)). +Proof. exact (eq_refl real_integral). Qed. +Definition real_negligible : (R -> Prop) -> Prop := fun _3367285 : R -> Prop => @negligible unit (@IMAGE R (cart R unit) lift _3367285). +Lemma real_negligible_def : real_negligible = (fun _3367285 : R -> Prop => @negligible unit (@IMAGE R (cart R unit) lift _3367285)). +Proof. exact (eq_refl real_negligible). Qed. +Definition absolutely_real_integrable_on : (R -> R) -> (R -> Prop) -> Prop := fun _3367290 : R -> R => fun _3367291 : R -> Prop => (real_integrable_on _3367290 _3367291) /\ (real_integrable_on (fun x : R => Rabs (_3367290 x)) _3367291). +Lemma absolutely_real_integrable_on_def : absolutely_real_integrable_on = (fun _3367290 : R -> R => fun _3367291 : R -> Prop => (real_integrable_on _3367290 _3367291) /\ (real_integrable_on (fun x : R => Rabs (_3367290 x)) _3367291)). +Proof. exact (eq_refl absolutely_real_integrable_on). Qed. +Definition has_real_measure : (R -> Prop) -> R -> Prop := fun _3367302 : R -> Prop => fun _3367303 : R => has_real_integral (fun x : R => R_of_N (NUMERAL (BIT1 0%N))) _3367303 _3367302. +Lemma has_real_measure_def : has_real_measure = (fun _3367302 : R -> Prop => fun _3367303 : R => has_real_integral (fun x : R => R_of_N (NUMERAL (BIT1 0%N))) _3367303 _3367302). +Proof. exact (eq_refl has_real_measure). Qed. +Definition real_measurable : (R -> Prop) -> Prop := fun _3367314 : R -> Prop => exists m : R, has_real_measure _3367314 m. +Lemma real_measurable_def : real_measurable = (fun _3367314 : R -> Prop => exists m : R, has_real_measure _3367314 m). +Proof. exact (eq_refl real_measurable). Qed. +Definition real_measure : (R -> Prop) -> R := fun _3367319 : R -> Prop => @ε R (fun m : R => has_real_measure _3367319 m). +Lemma real_measure_def : real_measure = (fun _3367319 : R -> Prop => @ε R (fun m : R => has_real_measure _3367319 m)). +Proof. exact (eq_refl real_measure). Qed. +Definition slice {_1737277 _1737298 : Type'} : N -> R -> ((cart R _1737298) -> Prop) -> (cart R _1737277) -> Prop := fun _3373426 : N => fun _3373427 : R => fun _3373428 : (cart R _1737298) -> Prop => @IMAGE (cart R _1737298) (cart R _1737277) (@dropout _1737298 _1737277 _3373426) (@INTER (cart R _1737298) _3373428 (@GSPEC (cart R _1737298) (fun GEN_PVAR_8546 : cart R _1737298 => exists x : cart R _1737298, @SETSPEC (cart R _1737298) GEN_PVAR_8546 ((@dollar R _1737298 x _3373426) = _3373427) x))). +Lemma slice_def {_1737277 _1737298 : Type'} : (@slice _1737277 _1737298) = (fun _3373426 : N => fun _3373427 : R => fun _3373428 : (cart R _1737298) -> Prop => @IMAGE (cart R _1737298) (cart R _1737277) (@dropout _1737298 _1737277 _3373426) (@INTER (cart R _1737298) _3373428 (@GSPEC (cart R _1737298) (fun GEN_PVAR_8546 : cart R _1737298 => exists x : cart R _1737298, @SETSPEC (cart R _1737298) GEN_PVAR_8546 ((@dollar R _1737298 x _3373426) = _3373427) x)))). +Proof. exact (eq_refl (@slice _1737277 _1737298)). Qed. +Definition bernstein : N -> N -> R -> R := fun _3382684 : N => fun _3382685 : N => fun _3382686 : R => Rmult (R_of_N (binom (@pair N N _3382684 _3382685))) (Rmult (real_pow _3382686 _3382685) (real_pow (Rminus (R_of_N (NUMERAL (BIT1 0%N))) _3382686) (N.sub _3382684 _3382685))). +Lemma bernstein_def : bernstein = (fun _3382684 : N => fun _3382685 : N => fun _3382686 : R => Rmult (R_of_N (binom (@pair N N _3382684 _3382685))) (Rmult (real_pow _3382686 _3382685) (real_pow (Rminus (R_of_N (NUMERAL (BIT1 0%N))) _3382686) (N.sub _3382684 _3382685)))). +Proof. exact (eq_refl bernstein). Qed. +Definition real_polynomial_function {N' : Type'} : ((cart R N') -> R) -> Prop := fun a : (cart R N') -> R => forall real_polynomial_function' : ((cart R N') -> R) -> Prop, (forall a' : (cart R N') -> R, ((exists i : N, (a' = (fun x : cart R N' => @dollar R N' x i)) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) \/ ((exists c : R, a' = (fun x : cart R N' => c)) \/ ((exists f : (cart R N') -> R, exists g : (cart R N') -> R, (a' = (fun x : cart R N' => Rplus (f x) (g x))) /\ ((real_polynomial_function' f) /\ (real_polynomial_function' g))) \/ (exists f : (cart R N') -> R, exists g : (cart R N') -> R, (a' = (fun x : cart R N' => Rmult (f x) (g x))) /\ ((real_polynomial_function' f) /\ (real_polynomial_function' g)))))) -> real_polynomial_function' a') -> real_polynomial_function' a. +Lemma real_polynomial_function_def {N' : Type'} : (@real_polynomial_function N') = (fun a : (cart R N') -> R => forall real_polynomial_function' : ((cart R N') -> R) -> Prop, (forall a' : (cart R N') -> R, ((exists i : N, (a' = (fun x : cart R N' => @dollar R N' x i)) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) \/ ((exists c : R, a' = (fun x : cart R N' => c)) \/ ((exists f : (cart R N') -> R, exists g : (cart R N') -> R, (a' = (fun x : cart R N' => Rplus (f x) (g x))) /\ ((real_polynomial_function' f) /\ (real_polynomial_function' g))) \/ (exists f : (cart R N') -> R, exists g : (cart R N') -> R, (a' = (fun x : cart R N' => Rmult (f x) (g x))) /\ ((real_polynomial_function' f) /\ (real_polynomial_function' g)))))) -> real_polynomial_function' a') -> real_polynomial_function' a). +Proof. exact (eq_refl (@real_polynomial_function N')). Qed. +Definition vector_polynomial_function {M N' : Type'} : ((cart R M) -> cart R N') -> Prop := fun _3396120 : (cart R M) -> cart R N' => forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @real_polynomial_function M (fun x : cart R M => @dollar R N' (_3396120 x) i). +Lemma vector_polynomial_function_def {M N' : Type'} : (@vector_polynomial_function M N') = (fun _3396120 : (cart R M) -> cart R N' => forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @real_polynomial_function M (fun x : cart R M => @dollar R N' (_3396120 x) i)). +Proof. exact (eq_refl (@vector_polynomial_function M N')). Qed. +Definition bernoulli : N -> R -> R := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) -> N -> R -> R) (fun bernoulli' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) -> N -> R -> R => forall _3398909 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))), (forall x : R, (bernoulli' _3398909 (NUMERAL 0%N) x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall n : N, forall x : R, (bernoulli' _3398909 (N.add n (NUMERAL (BIT1 0%N))) x) = (Rminus (real_pow x (N.add n (NUMERAL (BIT1 0%N)))) (Rdiv (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (R_of_N (binom (@pair N N (N.add n (NUMERAL (BIT0 (BIT1 0%N)))) k))) (bernoulli' _3398909 k x))) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))). +Lemma bernoulli_def : bernoulli = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) -> N -> R -> R) (fun bernoulli' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) -> N -> R -> R => forall _3398909 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))), (forall x : R, (bernoulli' _3398909 (NUMERAL 0%N) x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall n : N, forall x : R, (bernoulli' _3398909 (N.add n (NUMERAL (BIT1 0%N))) x) = (Rminus (real_pow x (N.add n (NUMERAL (BIT1 0%N)))) (Rdiv (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (R_of_N (binom (@pair N N (N.add n (NUMERAL (BIT0 (BIT1 0%N)))) k))) (bernoulli' _3398909 k x))) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))). +Proof. exact (eq_refl bernoulli). Qed. +Definition real_measurable_on : (R -> R) -> (R -> Prop) -> Prop := fun _3400317 : R -> R => fun _3400318 : R -> Prop => @measurable_on unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R _3400317 drop)) (@IMAGE R (cart R unit) lift _3400318). +Lemma real_measurable_on_def : real_measurable_on = (fun _3400317 : R -> R => fun _3400318 : R -> Prop => @measurable_on unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R _3400317 drop)) (@IMAGE R (cart R unit) lift _3400318)). +Proof. exact (eq_refl real_measurable_on). Qed. +Definition real_lebesgue_measurable : (R -> Prop) -> Prop := fun _3400329 : R -> Prop => real_measurable_on (fun x : R => @COND R (@IN R x _3400329) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@UNIV R). +Lemma real_lebesgue_measurable_def : real_lebesgue_measurable = (fun _3400329 : R -> Prop => real_measurable_on (fun x : R => @COND R (@IN R x _3400329) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@UNIV R)). +Proof. exact (eq_refl real_lebesgue_measurable). Qed. +Definition has_bounded_real_variation_on : (R -> R) -> (R -> Prop) -> Prop := fun _3404260 : R -> R => fun _3404261 : R -> Prop => @has_bounded_variation_on unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R _3404260 drop)) (@IMAGE R (cart R unit) lift _3404261). +Lemma has_bounded_real_variation_on_def : has_bounded_real_variation_on = (fun _3404260 : R -> R => fun _3404261 : R -> Prop => @has_bounded_variation_on unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R _3404260 drop)) (@IMAGE R (cart R unit) lift _3404261)). +Proof. exact (eq_refl has_bounded_real_variation_on). Qed. +Definition real_variation : (R -> Prop) -> (R -> R) -> R := fun _3404272 : R -> Prop => fun _3404273 : R -> R => @vector_variation unit (@IMAGE R (cart R unit) lift _3404272) (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R _3404273 drop)). +Lemma real_variation_def : real_variation = (fun _3404272 : R -> Prop => fun _3404273 : R -> R => @vector_variation unit (@IMAGE R (cart R unit) lift _3404272) (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R _3404273 drop))). +Proof. exact (eq_refl real_variation). Qed. +Definition borsukian {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _3567376 : (cart R N') -> Prop => forall f : (cart R N') -> cart R (tybit0 unit), ((@continuous_on N' (tybit0 unit) f _3567376) /\ (@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) f _3567376) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))))) -> exists a : cart R (tybit0 unit), @homotopic_with (cart R (tybit0 unit)) (cart R N') (fun h : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') _3567376) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))))) f (fun x : cart R N' => a). +Lemma borsukian_def {N' : Type'} : (@borsukian N') = (fun _3567376 : (cart R N') -> Prop => forall f : (cart R N') -> cart R (tybit0 unit), ((@continuous_on N' (tybit0 unit) f _3567376) /\ (@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) f _3567376) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))))) -> exists a : cart R (tybit0 unit), @homotopic_with (cart R (tybit0 unit)) (cart R N') (fun h : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') _3567376) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))))) f (fun x : cart R N' => a)). +Proof. exact (eq_refl (@borsukian N')). Qed. +Definition unicoherent {N' : Type'} : ((cart R N') -> Prop) -> Prop := fun _3573850 : (cart R N') -> Prop => forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@connected N' t) /\ (((@UNION (cart R N') s t) = _3573850) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') _3573850) s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') _3573850) t))))) -> @connected N' (@INTER (cart R N') s t). +Lemma unicoherent_def {N' : Type'} : (@unicoherent N') = (fun _3573850 : (cart R N') -> Prop => forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@connected N' t) /\ (((@UNION (cart R N') s t) = _3573850) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') _3573850) s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') _3573850) t))))) -> @connected N' (@INTER (cart R N') s t)). +Proof. exact (eq_refl (@unicoherent N')). Qed. +Definition piecewise_differentiable_on {_1808913 _1808940 : Type'} : ((cart R _1808940) -> cart R _1808913) -> ((cart R _1808940) -> Prop) -> Prop := fun _3640062 : (cart R _1808940) -> cart R _1808913 => fun _3640063 : (cart R _1808940) -> Prop => (@continuous_on _1808940 _1808913 _3640062 _3640063) /\ (exists s : (cart R _1808940) -> Prop, (@FINITE (cart R _1808940) s) /\ (forall x : cart R _1808940, (@IN (cart R _1808940) x (@DIFF (cart R _1808940) _3640063 s)) -> @differentiable _1808913 _1808940 _3640062 (@_at _1808940 x))). +Lemma piecewise_differentiable_on_def {_1808913 _1808940 : Type'} : (@piecewise_differentiable_on _1808913 _1808940) = (fun _3640062 : (cart R _1808940) -> cart R _1808913 => fun _3640063 : (cart R _1808940) -> Prop => (@continuous_on _1808940 _1808913 _3640062 _3640063) /\ (exists s : (cart R _1808940) -> Prop, (@FINITE (cart R _1808940) s) /\ (forall x : cart R _1808940, (@IN (cart R _1808940) x (@DIFF (cart R _1808940) _3640063 s)) -> @differentiable _1808913 _1808940 _3640062 (@_at _1808940 x)))). +Proof. exact (eq_refl (@piecewise_differentiable_on _1808913 _1808940)). Qed. +Definition valid_path : ((cart R unit) -> cart R (tybit0 unit)) -> Prop := fun _3640825 : (cart R unit) -> cart R (tybit0 unit) => @piecewise_differentiable_on (tybit0 unit) unit _3640825 (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))). +Lemma valid_path_def : valid_path = (fun _3640825 : (cart R unit) -> cart R (tybit0 unit) => @piecewise_differentiable_on (tybit0 unit) unit _3640825 (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Proof. exact (eq_refl valid_path). Qed. +Definition closed_path {_1809683 : Type'} : ((cart R unit) -> cart R _1809683) -> Prop := fun _3640830 : (cart R unit) -> cart R _1809683 => (@pathstart _1809683 _3640830) = (@pathfinish _1809683 _3640830). +Lemma closed_path_def {_1809683 : Type'} : (@closed_path _1809683) = (fun _3640830 : (cart R unit) -> cart R _1809683 => (@pathstart _1809683 _3640830) = (@pathfinish _1809683 _3640830)). +Proof. exact (eq_refl (@closed_path _1809683)). Qed. +Definition has_path_integral : ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> ((cart R unit) -> cart R (tybit0 unit)) -> Prop := @ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) -> ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> ((cart R unit) -> cart R (tybit0 unit)) -> Prop) (fun has_path_integral' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) -> ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> ((cart R unit) -> cart R (tybit0 unit)) -> Prop => forall _3641459 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (has_path_integral' _3641459 f i g) = (@has_integral unit (tybit0 unit) (fun x : cart R unit => complex_mul (f (g x)) (@vector_derivative (tybit0 unit) g (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) i (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))))))))). +Lemma has_path_integral_def : has_path_integral = (@ε ((prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) -> ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> ((cart R unit) -> cart R (tybit0 unit)) -> Prop) (fun has_path_integral' : (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))))) -> ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> ((cart R unit) -> cart R (tybit0 unit)) -> Prop => forall _3641459 : prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (has_path_integral' _3641459 f i g) = (@has_integral unit (tybit0 unit) (fun x : cart R unit => complex_mul (f (g x)) (@vector_derivative (tybit0 unit) g (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) i (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))))) (NUMERAL (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N)))))))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N (prod N N))))))) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N (prod N N)))))) (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N (prod N N))))) (NUMERAL (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N (prod N N)))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N (prod N N))) (NUMERAL (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N (prod N N)) (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (@pair N (prod N N) (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N)))))))) (@pair N N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))) (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 0%N))))))))))))))))))))))))). +Proof. exact (eq_refl has_path_integral). Qed. +Definition path_integral : ((cart R unit) -> cart R (tybit0 unit)) -> ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3641460 : (cart R unit) -> cart R (tybit0 unit) => fun _3641461 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => @ε (cart R (tybit0 unit)) (fun i : cart R (tybit0 unit) => has_path_integral _3641461 i _3641460). +Lemma path_integral_def : path_integral = (fun _3641460 : (cart R unit) -> cart R (tybit0 unit) => fun _3641461 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => @ε (cart R (tybit0 unit)) (fun i : cart R (tybit0 unit) => has_path_integral _3641461 i _3641460)). +Proof. exact (eq_refl path_integral). Qed. +Definition path_integrable_on : ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> ((cart R unit) -> cart R (tybit0 unit)) -> Prop := fun _3641472 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => fun _3641473 : (cart R unit) -> cart R (tybit0 unit) => exists i : cart R (tybit0 unit), has_path_integral _3641472 i _3641473. +Lemma path_integrable_on_def : path_integrable_on = (fun _3641472 : (cart R (tybit0 unit)) -> cart R (tybit0 unit) => fun _3641473 : (cart R unit) -> cart R (tybit0 unit) => exists i : cart R (tybit0 unit), has_path_integral _3641472 i _3641473). +Proof. exact (eq_refl path_integrable_on). Qed. +Definition winding_number : (prod ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit))) -> cart R (tybit0 unit) := fun _3677625 : prod ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) => @ε (cart R (tybit0 unit)) (fun n : cart R (tybit0 unit) => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists p : (cart R unit) -> cart R (tybit0 unit), (valid_path p) /\ ((~ (@IN (cart R (tybit0 unit)) (@snd ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) _3677625) (@path_image (tybit0 unit) p))) /\ (((@pathstart (tybit0 unit) p) = (@pathstart (tybit0 unit) (@fst ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) _3677625))) /\ (((@pathfinish (tybit0 unit) p) = (@pathfinish (tybit0 unit) (@fst ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) _3677625))) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (@fst ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) _3677625 t) (p t))) e) /\ ((path_integral p (fun w : cart R (tybit0 unit) => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_sub (tybit0 unit) w (@snd ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) _3677625)))) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii n))))))))). +Lemma winding_number_def : winding_number = (fun _3677625 : prod ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) => @ε (cart R (tybit0 unit)) (fun n : cart R (tybit0 unit) => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists p : (cart R unit) -> cart R (tybit0 unit), (valid_path p) /\ ((~ (@IN (cart R (tybit0 unit)) (@snd ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) _3677625) (@path_image (tybit0 unit) p))) /\ (((@pathstart (tybit0 unit) p) = (@pathstart (tybit0 unit) (@fst ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) _3677625))) /\ (((@pathfinish (tybit0 unit) p) = (@pathfinish (tybit0 unit) (@fst ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) _3677625))) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (@fst ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) _3677625 t) (p t))) e) /\ ((path_integral p (fun w : cart R (tybit0 unit) => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_sub (tybit0 unit) w (@snd ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) _3677625)))) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii n)))))))))). +Proof. exact (eq_refl winding_number). Qed. +Definition complex_integer : (cart R (tybit0 unit)) -> Prop := fun _3681650 : cart R (tybit0 unit) => (integer (Re _3681650)) /\ ((Im _3681650) = (R_of_N (NUMERAL 0%N))). +Lemma complex_integer_def : complex_integer = (fun _3681650 : cart R (tybit0 unit) => (integer (Re _3681650)) /\ ((Im _3681650) = (R_of_N (NUMERAL 0%N)))). +Proof. exact (eq_refl complex_integer). Qed. +Definition partcirclepath : (prod (cart R (tybit0 unit)) (prod R (prod R R))) -> (cart R unit) -> cart R (tybit0 unit) := fun _3700031 : prod (cart R (tybit0 unit)) (prod R (prod R R)) => fun x : cart R unit => @vector_add (tybit0 unit) (@fst (cart R (tybit0 unit)) (prod R (prod R R)) _3700031) (complex_mul (Cx (@fst R (prod R R) (@snd (cart R (tybit0 unit)) (prod R (prod R R)) _3700031))) (cexp (complex_mul ii (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx (@fst R R (@snd R (prod R R) (@snd (cart R (tybit0 unit)) (prod R (prod R R)) _3700031)))) (Cx (@snd R R (@snd R (prod R R) (@snd (cart R (tybit0 unit)) (prod R (prod R R)) _3700031))))) x)))). +Lemma partcirclepath_def : partcirclepath = (fun _3700031 : prod (cart R (tybit0 unit)) (prod R (prod R R)) => fun x : cart R unit => @vector_add (tybit0 unit) (@fst (cart R (tybit0 unit)) (prod R (prod R R)) _3700031) (complex_mul (Cx (@fst R (prod R R) (@snd (cart R (tybit0 unit)) (prod R (prod R R)) _3700031))) (cexp (complex_mul ii (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx (@fst R R (@snd R (prod R R) (@snd (cart R (tybit0 unit)) (prod R (prod R R)) _3700031)))) (Cx (@snd R R (@snd R (prod R R) (@snd (cart R (tybit0 unit)) (prod R (prod R R)) _3700031))))) x))))). +Proof. exact (eq_refl partcirclepath). Qed. +Definition circlepath : (prod (cart R (tybit0 unit)) R) -> (cart R unit) -> cart R (tybit0 unit) := fun _3701090 : prod (cart R (tybit0 unit)) R => partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) (@fst (cart R (tybit0 unit)) R _3701090) (@pair R (prod R R) (@snd (cart R (tybit0 unit)) R _3701090) (@pair R R (R_of_N (NUMERAL 0%N)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)))). +Lemma circlepath_def : circlepath = (fun _3701090 : prod (cart R (tybit0 unit)) R => partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) (@fst (cart R (tybit0 unit)) R _3701090) (@pair R (prod R R) (@snd (cart R (tybit0 unit)) R _3701090) (@pair R R (R_of_N (NUMERAL 0%N)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))))). +Proof. exact (eq_refl circlepath). Qed. +Definition moebius_function : R -> (cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> cart R (tybit0 unit) := fun _3777086 : R => fun _3777087 : cart R (tybit0 unit) => fun _3777088 : cart R (tybit0 unit) => complex_mul (cexp (complex_mul ii (Cx _3777086))) (complex_div (@vector_sub (tybit0 unit) _3777088 _3777087) (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul (cnj _3777087) _3777088))). +Lemma moebius_function_def : moebius_function = (fun _3777086 : R => fun _3777087 : cart R (tybit0 unit) => fun _3777088 : cart R (tybit0 unit) => complex_mul (cexp (complex_mul ii (Cx _3777086))) (complex_div (@vector_sub (tybit0 unit) _3777088 _3777087) (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul (cnj _3777087) _3777088)))). +Proof. exact (eq_refl moebius_function). Qed. diff --git a/theorems.v b/theorems.v index f14d7ea..d3d8ee8 100644 --- a/theorems.v +++ b/theorems.v @@ -1,2900 +1,17503 @@ -Require Import HOLLight_Real.HOLLight_Real HOLLight Rdefinitions Rbasic_fun Raxioms. +Require Import HOLLight_Real_With_N.mappings HOLLight.With_N BinNat Rbase Rdefinitions Rbasic_fun. Require Import HOLLight.theory_hol. Require Import HOLLight.terms. -Axiom thm_T_DEF : True = ((fun p : Prop => p) = (fun p : Prop => p)). -Axiom thm_AND_DEF : and = (fun p : Prop => fun q : Prop => (fun f : Prop -> Prop -> Prop => f p q) = (fun f : Prop -> Prop -> Prop => f True True)). -Axiom thm_IMP_DEF : imp = (fun p : Prop => fun q : Prop => (p /\ q) = p). -Axiom thm_FORALL_DEF : forall {A : Type'}, (@all A) = (fun P : A -> Prop => P = (fun x : A => True)). -Axiom thm_EXISTS_DEF : forall {A : Type'}, (@ex A) = (fun P : A -> Prop => forall q : Prop, (forall x : A, (P x) -> q) -> q). -Axiom thm_OR_DEF : or = (fun p : Prop => fun q : Prop => forall r : Prop, (p -> r) -> (q -> r) -> r). -Axiom thm_F_DEF : False = (forall p : Prop, p). -Axiom thm_NOT_DEF : not = (fun p : Prop => p -> False). -Axiom thm_EXISTS_UNIQUE_DEF : forall {A : Type'}, (@ex1 A) = (fun P : A -> Prop => (ex P) /\ (forall x : A, forall y : A, ((P x) /\ (P y)) -> x = y)). -Axiom thm__FALSITY_ : _FALSITY_ = False. -Axiom thm_EQ_REFL : forall {A : Type'}, forall x : A, x = x. -Axiom thm_REFL_CLAUSE : forall {A : Type'}, forall x : A, (x = x) = True. -Axiom thm_EQ_SYM : forall {A : Type'}, forall x : A, forall y : A, (x = y) -> y = x. -Axiom thm_EQ_SYM_EQ : forall {A : Type'}, forall x : A, forall y : A, (x = y) = (y = x). -Axiom thm_EQ_TRANS : forall {A : Type'}, forall x : A, forall y : A, forall z : A, ((x = y) /\ (y = z)) -> x = z. -Axiom thm_BETA_THM : forall {A B : Type'}, forall f : A -> B, forall y : A, ((fun x : A => f x) y) = (f y). -Axiom thm_ABS_SIMP : forall {A B : Type'}, forall t1 : A, forall t2 : B, ((fun x : B => t1) t2) = t1. -Axiom thm_CONJ_ASSOC : forall t1 : Prop, forall t2 : Prop, forall t3 : Prop, (t1 /\ (t2 /\ t3)) = ((t1 /\ t2) /\ t3). -Axiom thm_CONJ_SYM : forall t1 : Prop, forall t2 : Prop, (t1 /\ t2) = (t2 /\ t1). -Axiom thm_CONJ_ACI : forall (r : Prop) (p : Prop) (q : Prop), ((p /\ q) = (q /\ p)) /\ ((((p /\ q) /\ r) = (p /\ (q /\ r))) /\ (((p /\ (q /\ r)) = (q /\ (p /\ r))) /\ (((p /\ p) = p) /\ ((p /\ (p /\ q)) = (p /\ q))))). -Axiom thm_DISJ_ASSOC : forall t1 : Prop, forall t2 : Prop, forall t3 : Prop, (t1 \/ (t2 \/ t3)) = ((t1 \/ t2) \/ t3). -Axiom thm_DISJ_SYM : forall t1 : Prop, forall t2 : Prop, (t1 \/ t2) = (t2 \/ t1). -Axiom thm_DISJ_ACI : forall (r : Prop) (p : Prop) (q : Prop), ((p \/ q) = (q \/ p)) /\ ((((p \/ q) \/ r) = (p \/ (q \/ r))) /\ (((p \/ (q \/ r)) = (q \/ (p \/ r))) /\ (((p \/ p) = p) /\ ((p \/ (p \/ q)) = (p \/ q))))). -Axiom thm_IMP_CONJ : forall (p : Prop) (q : Prop) (r : Prop), ((p /\ q) -> r) = (p -> q -> r). -Axiom thm_IMP_CONJ_ALT : forall (q : Prop) (p : Prop) (r : Prop), ((p /\ q) -> r) = (q -> p -> r). -Axiom thm_LEFT_OR_DISTRIB : forall p : Prop, forall q : Prop, forall r : Prop, (p /\ (q \/ r)) = ((p /\ q) \/ (p /\ r)). -Axiom thm_RIGHT_OR_DISTRIB : forall p : Prop, forall q : Prop, forall r : Prop, ((p \/ q) /\ r) = ((p /\ r) \/ (q /\ r)). -Axiom thm_FORALL_SIMP : forall {A : Type'}, forall t : Prop, (forall x : A, t) = t. -Axiom thm_EXISTS_SIMP : forall {A : Type'}, forall t : Prop, (exists x : A, t) = t. -Axiom thm_EQ_CLAUSES : forall t : Prop, ((True = t) = t) /\ (((t = True) = t) /\ (((False = t) = (~ t)) /\ ((t = False) = (~ t)))). -Axiom thm_NOT_CLAUSES_WEAK : ((~ True) = False) /\ ((~ False) = True). -Axiom thm_AND_CLAUSES : forall t : Prop, ((True /\ t) = t) /\ (((t /\ True) = t) /\ (((False /\ t) = False) /\ (((t /\ False) = False) /\ ((t /\ t) = t)))). -Axiom thm_OR_CLAUSES : forall t : Prop, ((True \/ t) = True) /\ (((t \/ True) = True) /\ (((False \/ t) = t) /\ (((t \/ False) = t) /\ ((t \/ t) = t)))). -Axiom thm_IMP_CLAUSES : forall t : Prop, ((True -> t) = t) /\ (((t -> True) = True) /\ (((False -> t) = True) /\ (((t -> t) = True) /\ ((t -> False) = (~ t))))). -Axiom thm_EXISTS_UNIQUE_THM : forall {A : Type'}, forall P : A -> Prop, (@ex1 A (fun x : A => P x)) = ((exists x : A, P x) /\ (forall x : A, forall x' : A, ((P x) /\ (P x')) -> x = x')). -Axiom thm_EXISTS_REFL : forall {A : Type'}, forall a : A, exists x : A, x = a. -Axiom thm_EXISTS_UNIQUE_REFL : forall {A : Type'}, forall a : A, @ex1 A (fun x : A => x = a). -Axiom thm_UNWIND_THM1 : forall {A : Type'}, forall P : A -> Prop, forall a : A, (exists x : A, (a = x) /\ (P x)) = (P a). -Axiom thm_UNWIND_THM2 : forall {A : Type'}, forall P : A -> Prop, forall a : A, (exists x : A, (x = a) /\ (P x)) = (P a). -Axiom thm_FORALL_UNWIND_THM2 : forall {A : Type'}, forall P : A -> Prop, forall a : A, (forall x : A, (x = a) -> P x) = (P a). -Axiom thm_FORALL_UNWIND_THM1 : forall {A : Type'}, forall P : A -> Prop, forall a : A, (forall x : A, (a = x) -> P x) = (P a). -Axiom thm_SWAP_FORALL_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (forall x : A, forall y : B, P x y) = (forall y : B, forall x : A, P x y). -Axiom thm_SWAP_EXISTS_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (exists x : A, exists y : B, P x y) = (exists y : B, exists x : A, P x y). -Axiom thm_FORALL_AND_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, (forall x : A, (P x) /\ (Q x)) = ((forall x : A, P x) /\ (forall x : A, Q x)). -Axiom thm_AND_FORALL_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, ((forall x : A, P x) /\ (forall x : A, Q x)) = (forall x : A, (P x) /\ (Q x)). -Axiom thm_LEFT_AND_FORALL_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, ((forall x : A, P x) /\ Q) = (forall x : A, (P x) /\ Q). -Axiom thm_RIGHT_AND_FORALL_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (P /\ (forall x : A, Q x)) = (forall x : A, P /\ (Q x)). -Axiom thm_EXISTS_OR_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, (exists x : A, (P x) \/ (Q x)) = ((exists x : A, P x) \/ (exists x : A, Q x)). -Axiom thm_OR_EXISTS_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, ((exists x : A, P x) \/ (exists x : A, Q x)) = (exists x : A, (P x) \/ (Q x)). -Axiom thm_LEFT_OR_EXISTS_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, ((exists x : A, P x) \/ Q) = (exists x : A, (P x) \/ Q). -Axiom thm_RIGHT_OR_EXISTS_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (P \/ (exists x : A, Q x)) = (exists x : A, P \/ (Q x)). -Axiom thm_LEFT_EXISTS_AND_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, (exists x : A, (P x) /\ Q) = ((exists x : A, P x) /\ Q). -Axiom thm_RIGHT_EXISTS_AND_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (exists x : A, P /\ (Q x)) = (P /\ (exists x : A, Q x)). -Axiom thm_TRIV_EXISTS_AND_THM : forall {A : Type'}, forall P : Prop, forall Q : Prop, (exists x : A, P /\ Q) = ((exists x : A, P) /\ (exists x : A, Q)). -Axiom thm_LEFT_AND_EXISTS_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, ((exists x : A, P x) /\ Q) = (exists x : A, (P x) /\ Q). -Axiom thm_RIGHT_AND_EXISTS_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (P /\ (exists x : A, Q x)) = (exists x : A, P /\ (Q x)). -Axiom thm_TRIV_AND_EXISTS_THM : forall {A : Type'}, forall P : Prop, forall Q : Prop, ((exists x : A, P) /\ (exists x : A, Q)) = (exists x : A, P /\ Q). -Axiom thm_TRIV_FORALL_OR_THM : forall {A : Type'}, forall P : Prop, forall Q : Prop, (forall x : A, P \/ Q) = ((forall x : A, P) \/ (forall x : A, Q)). -Axiom thm_TRIV_OR_FORALL_THM : forall {A : Type'}, forall P : Prop, forall Q : Prop, ((forall x : A, P) \/ (forall x : A, Q)) = (forall x : A, P \/ Q). -Axiom thm_RIGHT_IMP_FORALL_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (P -> forall x : A, Q x) = (forall x : A, P -> Q x). -Axiom thm_RIGHT_FORALL_IMP_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (forall x : A, P -> Q x) = (P -> forall x : A, Q x). -Axiom thm_LEFT_IMP_EXISTS_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, ((exists x : A, P x) -> Q) = (forall x : A, (P x) -> Q). -Axiom thm_LEFT_FORALL_IMP_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, (forall x : A, (P x) -> Q) = ((exists x : A, P x) -> Q). -Axiom thm_TRIV_FORALL_IMP_THM : forall {A : Type'}, forall P : Prop, forall Q : Prop, (forall x : A, P -> Q) = ((exists x : A, P) -> forall x : A, Q). -Axiom thm_TRIV_EXISTS_IMP_THM : forall {A : Type'}, forall P : Prop, forall Q : Prop, (exists x : A, P -> Q) = ((forall x : A, P) -> exists x : A, Q). -Axiom thm_MONO_FORALL : forall {A : Type'} (P : A -> Prop) (Q : A -> Prop), (forall x : A, (P x) -> Q x) -> (forall x : A, P x) -> forall x : A, Q x. -Axiom thm_MONO_EXISTS : forall {A : Type'} (P : A -> Prop) (Q : A -> Prop), (forall x : A, (P x) -> Q x) -> (exists x : A, P x) -> exists x : A, Q x. -Axiom thm_WLOG_RELATION : forall {A : Type'}, forall R' : A -> A -> Prop, forall P : A -> A -> Prop, ((forall x : A, forall y : A, (P x y) -> P y x) /\ ((forall x : A, forall y : A, (R' x y) \/ (R' y x)) /\ (forall x : A, forall y : A, (R' x y) -> P x y))) -> forall x : A, forall y : A, P x y. -Axiom thm_EXISTS_UNIQUE_ALT : forall {A : Type'}, forall P : A -> Prop, (@ex1 A (fun x : A => P x)) = (exists x : A, forall y : A, (P y) = (x = y)). -Axiom thm_EXISTS_UNIQUE : forall {A : Type'}, forall P : A -> Prop, (@ex1 A (fun x : A => P x)) = (exists x : A, (P x) /\ (forall y : A, (P y) -> y = x)). -Axiom thm_ETA_AX : forall {A B : Type'}, forall t : A -> B, (fun x : A => t x) = t. -Axiom thm_EQ_EXT : forall {A B : Type'}, forall f : A -> B, forall g : A -> B, (forall x : A, (f x) = (g x)) -> f = g. -Axiom thm_FUN_EQ_THM : forall {A B : Type'}, forall f : A -> B, forall g : A -> B, (f = g) = (forall x : A, (f x) = (g x)). -Axiom thm_SELECT_AX : forall {A : Type'}, forall P : A -> Prop, forall x : A, (P x) -> P (@ε A P). -Axiom thm_EXISTS_THM : forall {A : Type'}, (@ex A) = (fun P : A -> Prop => P (@ε A P)). -Axiom thm_SELECT_REFL : forall {A : Type'}, forall x : A, (@ε A (fun y : A => y = x)) = x. -Axiom thm_SELECT_UNIQUE : forall {A : Type'}, forall P : A -> Prop, forall x : A, (forall y : A, (P y) = (y = x)) -> (@ε A P) = x. -Axiom thm_EXCLUDED_MIDDLE : forall t : Prop, t \/ (~ t). -Axiom thm_BOOL_CASES_AX : forall t : Prop, (t = True) \/ (t = False). -Axiom thm_DE_MORGAN_THM : forall t1 : Prop, forall t2 : Prop, ((~ (t1 /\ t2)) = ((~ t1) \/ (~ t2))) /\ ((~ (t1 \/ t2)) = ((~ t1) /\ (~ t2))). -Axiom thm_NOT_CLAUSES : (forall t : Prop, (~ (~ t)) = t) /\ (((~ True) = False) /\ ((~ False) = True)). -Axiom thm_NOT_IMP : forall t1 : Prop, forall t2 : Prop, (~ (t1 -> t2)) = (t1 /\ (~ t2)). -Axiom thm_CONTRAPOS_THM : forall t1 : Prop, forall t2 : Prop, ((~ t1) -> ~ t2) = (t2 -> t1). -Axiom thm_NOT_EXISTS_THM : forall {A : Type'}, forall P : A -> Prop, (~ (exists x : A, P x)) = (forall x : A, ~ (P x)). -Axiom thm_EXISTS_NOT_THM : forall {A : Type'}, forall P : A -> Prop, (exists x : A, ~ (P x)) = (~ (forall x : A, P x)). -Axiom thm_NOT_FORALL_THM : forall {A : Type'}, forall P : A -> Prop, (~ (forall x : A, P x)) = (exists x : A, ~ (P x)). -Axiom thm_FORALL_NOT_THM : forall {A : Type'}, forall P : A -> Prop, (forall x : A, ~ (P x)) = (~ (exists x : A, P x)). -Axiom thm_FORALL_BOOL_THM : forall (P : Prop -> Prop), (forall b : Prop, P b) = ((P True) /\ (P False)). -Axiom thm_EXISTS_BOOL_THM : forall (P : Prop -> Prop), (exists b : Prop, P b) = ((P True) \/ (P False)). -Axiom thm_LEFT_FORALL_OR_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, (forall x : A, (P x) \/ Q) = ((forall x : A, P x) \/ Q). -Axiom thm_RIGHT_FORALL_OR_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (forall x : A, P \/ (Q x)) = (P \/ (forall x : A, Q x)). -Axiom thm_LEFT_OR_FORALL_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, ((forall x : A, P x) \/ Q) = (forall x : A, (P x) \/ Q). -Axiom thm_RIGHT_OR_FORALL_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (P \/ (forall x : A, Q x)) = (forall x : A, P \/ (Q x)). -Axiom thm_LEFT_IMP_FORALL_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, ((forall x : A, P x) -> Q) = (exists x : A, (P x) -> Q). -Axiom thm_LEFT_EXISTS_IMP_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, (exists x : A, (P x) -> Q) = ((forall x : A, P x) -> Q). -Axiom thm_RIGHT_IMP_EXISTS_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (P -> exists x : A, Q x) = (exists x : A, P -> Q x). -Axiom thm_RIGHT_EXISTS_IMP_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (exists x : A, P -> Q x) = (P -> exists x : A, Q x). -Axiom thm_COND_DEF : forall {A : Type'}, (@COND A) = (fun t : Prop => fun t1 : A => fun t2 : A => @ε A (fun x : A => ((t = True) -> x = t1) /\ ((t = False) -> x = t2))). -Axiom thm_COND_CLAUSES : forall {A : Type'}, forall t1 : A, forall t2 : A, ((@COND A True t1 t2) = t1) /\ ((@COND A False t1 t2) = t2). -Axiom thm_COND_EXPAND : forall b : Prop, forall t1 : Prop, forall t2 : Prop, (@COND Prop b t1 t2) = (((~ b) \/ t1) /\ (b \/ t2)). -Axiom thm_COND_ID : forall {A : Type'}, forall b : Prop, forall t : A, (@COND A b t t) = t. -Axiom thm_COND_RAND : forall {A B : Type'}, forall b : Prop, forall f : A -> B, forall x : A, forall y : A, (f (@COND A b x y)) = (@COND B b (f x) (f y)). -Axiom thm_COND_RATOR : forall {A B : Type'}, forall b : Prop, forall f : A -> B, forall g : A -> B, forall x : A, (@COND (A -> B) b f g x) = (@COND B b (f x) (g x)). -Axiom thm_COND_ABS : forall {A B : Type'}, forall b : Prop, forall f : A -> B, forall g : A -> B, (fun x : A => @COND B b (f x) (g x)) = (@COND (A -> B) b f g). -Axiom thm_COND_SWAP : forall {A : Type'}, forall p : Prop, forall x : A, forall y : A, (@COND A (~ p) x y) = (@COND A p y x). -Axiom thm_MONO_COND : forall (A : Prop) (C : Prop) (b : Prop) (B : Prop) (D : Prop), ((A -> B) /\ (C -> D)) -> (@COND Prop b A C) -> @COND Prop b B D. -Axiom thm_COND_ELIM_THM : forall {A : Type'} (x : A) (c : Prop) (P : A -> Prop) (y : A), (P (@COND A c x y)) = ((c -> P x) /\ ((~ c) -> P y)). -Axiom thm_SKOLEM_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (forall x : A, exists y : B, P x y) = (exists y : A -> B, forall x : A, P x (y x)). -Axiom thm_SKOLEM_THM_GEN : forall {A B : Type'}, forall P : A -> Prop, forall R' : A -> B -> Prop, (forall x : A, (P x) -> exists y : B, R' x y) = (exists f : A -> B, forall x : A, (P x) -> R' x (f x)). -Axiom thm_UNIQUE_SKOLEM_ALT : forall {A B : Type'}, forall P : A -> B -> Prop, (forall x : A, @ex1 B (fun y : B => P x y)) = (exists f : A -> B, forall x : A, forall y : B, (P x y) = ((f x) = y)). -Axiom thm_UNIQUE_SKOLEM_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (forall x : A, @ex1 B (fun y : B => P x y)) = (@ex1 (A -> B) (fun f : A -> B => forall x : A, P x (f x))). -Axiom thm_bool_INDUCT : forall P : Prop -> Prop, ((P False) /\ (P True)) -> forall x : Prop, P x. -Axiom thm_bool_RECURSION : forall {A : Type'}, forall a : A, forall b : A, exists f : Prop -> A, ((f False) = a) /\ ((f True) = b). -Axiom thm_o_DEF : forall {A B C : Type'}, forall f : B -> C, forall g : A -> B, (@o A B C f g) = (fun x : A => f (g x)). -Axiom thm_I_DEF : forall {A : Type'}, (@I A) = (fun x : A => x). -Axiom thm_o_THM : forall {A B C : Type'}, forall f : B -> C, forall g : A -> B, forall x : A, (@o A B C f g x) = (f (g x)). -Axiom thm_o_ASSOC : forall {A B C D : Type'}, forall f : C -> D, forall g : B -> C, forall h : A -> B, (@o A C D f (@o A B C g h)) = (@o A B D (@o B C D f g) h). -Axiom thm_I_THM : forall {A : Type'}, forall x : A, (@I A x) = x. -Axiom thm_I_O_ID : forall {A B : Type'}, forall f : A -> B, ((@o A B B (@I B) f) = f) /\ ((@o A A B f (@I A)) = f). -Axiom thm_EXISTS_ONE_REP : exists b : Prop, b. -Axiom thm_one_DEF : tt = (@ε unit (fun x : unit => True)). -Axiom thm_one : forall v : unit, v = tt. -Axiom thm_one_axiom : forall {A : Type'}, forall f : A -> unit, forall g : A -> unit, f = g. -Axiom thm_one_INDUCT : forall P : unit -> Prop, (P tt) -> forall x : unit, P x. -Axiom thm_one_RECURSION : forall {A : Type'}, forall e : A, exists fn : unit -> A, (fn tt) = e. -Axiom thm_one_Axiom : forall {A : Type'}, forall e : A, @ex1 (unit -> A) (fun fn : unit -> A => (fn tt) = e). -Axiom thm_FORALL_ONE_THM : forall (P : unit -> Prop), (forall x : unit, P x) = (P tt). -Axiom thm_EXISTS_ONE_THM : forall (P : unit -> Prop), (exists x : unit, P x) = (P tt). -Axiom thm_ETA_ONE : forall {A : Type'}, forall f : unit -> A, (fun x : unit => f tt) = f. -Axiom thm_LET_DEF : forall {A B : Type'}, forall f : A -> B, forall x : A, (@LET A B f x) = (f x). -Axiom thm_LET_END_DEF : forall {A : Type'}, forall t : A, (@LET_END A t) = t. -Axiom thm_GABS_DEF : forall {A : Type'}, forall P : A -> Prop, (@GABS A P) = (@ε A P). -Axiom thm_GEQ_DEF : forall {A : Type'}, forall a : A, forall b : A, (@GEQ A a b) = (a = b). -Axiom thm__SEQPATTERN : forall {A B : Type'}, (@_SEQPATTERN A B) = (fun r : A -> B -> Prop => fun s : A -> B -> Prop => fun x : A => @COND (B -> Prop) (exists y : B, r x y) (r x) (s x)). -Axiom thm__UNGUARDED_PATTERN : _UNGUARDED_PATTERN = (fun p : Prop => fun r : Prop => p /\ r). -Axiom thm__GUARDED_PATTERN : _GUARDED_PATTERN = (fun p : Prop => fun g : Prop => fun r : Prop => p /\ (g /\ r)). -Axiom thm__MATCH : forall {A B : Type'}, (@_MATCH A B) = (fun e : A => fun r : A -> B -> Prop => @COND B (@ex1 B (r e)) (@ε B (r e)) (@ε B (fun z : B => False))). -Axiom thm__FUNCTION : forall {A B : Type'}, (@_FUNCTION A B) = (fun r : A -> B -> Prop => fun x : A => @COND B (@ex1 B (r x)) (@ε B (r x)) (@ε B (fun z : B => False))). -Axiom thm_mk_pair_def : forall {A B : Type'}, forall x : A, forall y : B, (@mk_pair A B x y) = (fun a : A => fun b : B => (a = x) /\ (b = y)). -Axiom thm_PAIR_EXISTS_THM : forall {A B : Type'}, exists x : A -> B -> Prop, exists a : A, exists b : B, x = (@mk_pair A B a b). -Axiom thm_REP_ABS_PAIR : forall {A B : Type'}, forall x : A, forall y : B, (@REP_prod A B (@ABS_prod A B (@mk_pair A B x y))) = (@mk_pair A B x y). -Axiom thm_COMMA_DEF : forall {A B : Type'}, forall x : A, forall y : B, (@pair A B x y) = (@ABS_prod A B (@mk_pair A B x y)). -Axiom thm_FST_DEF : forall {A B : Type'}, forall p : prod A B, (@fst A B p) = (@ε A (fun x : A => exists y : B, p = (@pair A B x y))). -Axiom thm_SND_DEF : forall {A B : Type'}, forall p : prod A B, (@snd A B p) = (@ε B (fun y : B => exists x : A, p = (@pair A B x y))). -Axiom thm_PAIR_EQ : forall {A B : Type'}, forall x : A, forall y : B, forall a : A, forall b : B, ((@pair A B x y) = (@pair A B a b)) = ((x = a) /\ (y = b)). -Axiom thm_PAIR_SURJECTIVE : forall {A B : Type'}, forall p : prod A B, exists x : A, exists y : B, p = (@pair A B x y). -Axiom thm_FST : forall {A B : Type'}, forall x : A, forall y : B, (@fst A B (@pair A B x y)) = x. -Axiom thm_SND : forall {A B : Type'}, forall x : A, forall y : B, (@snd A B (@pair A B x y)) = y. -Axiom thm_PAIR : forall {A B : Type'}, forall x : prod A B, (@pair A B (@fst A B x) (@snd A B x)) = x. -Axiom thm_pair_INDUCT : forall {A B : Type'}, forall P : (prod A B) -> Prop, (forall x : A, forall y : B, P (@pair A B x y)) -> forall p : prod A B, P p. -Axiom thm_pair_RECURSION : forall {A B C : Type'}, forall PAIR' : A -> B -> C, exists fn : (prod A B) -> C, forall a0 : A, forall a1 : B, (fn (@pair A B a0 a1)) = (PAIR' a0 a1). -Axiom thm_CURRY_DEF : forall {A B C : Type'}, forall f : (prod A B) -> C, forall x : A, forall y : B, (@CURRY A B C f x y) = (f (@pair A B x y)). -Axiom thm_UNCURRY_DEF : forall {A B C : Type'}, forall f : A -> B -> C, forall x : A, forall y : B, (@UNCURRY A B C f (@pair A B x y)) = (f x y). -Axiom thm_PASSOC_DEF : forall {A B C D : Type'}, forall f : (prod (prod A B) C) -> D, forall x : A, forall y : B, forall z : C, (@PASSOC A B C D f (@pair A (prod B C) x (@pair B C y z))) = (f (@pair (prod A B) C (@pair A B x y) z)). -Axiom thm_FORALL_PAIR_THM : forall {A B : Type'}, forall P : (prod A B) -> Prop, (forall p : prod A B, P p) = (forall p1 : A, forall p2 : B, P (@pair A B p1 p2)). -Axiom thm_EXISTS_PAIR_THM : forall {A B : Type'}, forall P : (prod A B) -> Prop, (exists p : prod A B, P p) = (exists p1 : A, exists p2 : B, P (@pair A B p1 p2)). -Axiom thm_LAMBDA_PAIR_THM : forall {A B C : Type'}, forall t : (prod A B) -> C, (fun p : prod A B => t p) = (@GABS ((prod A B) -> C) (fun f : (prod A B) -> C => forall x : A, forall y : B, @GEQ C (f (@pair A B x y)) (t (@pair A B x y)))). -Axiom thm_LAMBDA_PAIR : forall {A B C : Type'}, forall f : A -> B -> C, (@GABS ((prod A B) -> C) (fun f' : (prod A B) -> C => forall x : A, forall y : B, @GEQ C (f' (@pair A B x y)) (f x y))) = (fun p : prod A B => f (@fst A B p) (@snd A B p)). -Axiom thm_LAMBDA_TRIPLE_THM : forall {A B C D : Type'}, forall f : (prod A (prod B C)) -> D, (fun t : prod A (prod B C) => f t) = (@GABS ((prod A (prod B C)) -> D) (fun f' : (prod A (prod B C)) -> D => forall x : A, forall y : B, forall z : C, @GEQ D (f' (@pair A (prod B C) x (@pair B C y z))) (f (@pair A (prod B C) x (@pair B C y z))))). -Axiom thm_LAMBDA_TRIPLE : forall {A B C D : Type'}, forall f : A -> B -> C -> D, (@GABS ((prod A (prod B C)) -> D) (fun f' : (prod A (prod B C)) -> D => forall x : A, forall y : B, forall z : C, @GEQ D (f' (@pair A (prod B C) x (@pair B C y z))) (f x y z))) = (fun t : prod A (prod B C) => f (@fst A (prod B C) t) (@fst B C (@snd A (prod B C) t)) (@snd B C (@snd A (prod B C) t))). -Axiom thm_PAIRED_ETA_THM : forall {A B C D E : Type'}, (forall f : (prod A B) -> C, (@GABS ((prod A B) -> C) (fun f' : (prod A B) -> C => forall x : A, forall y : B, @GEQ C (f' (@pair A B x y)) (f (@pair A B x y)))) = f) /\ ((forall f : (prod A (prod B C)) -> D, (@GABS ((prod A (prod B C)) -> D) (fun f' : (prod A (prod B C)) -> D => forall x : A, forall y : B, forall z : C, @GEQ D (f' (@pair A (prod B C) x (@pair B C y z))) (f (@pair A (prod B C) x (@pair B C y z))))) = f) /\ (forall f : (prod A (prod B (prod C D))) -> E, (@GABS ((prod A (prod B (prod C D))) -> E) (fun f' : (prod A (prod B (prod C D))) -> E => forall w : A, forall x : B, forall y : C, forall z : D, @GEQ E (f' (@pair A (prod B (prod C D)) w (@pair B (prod C D) x (@pair C D y z)))) (f (@pair A (prod B (prod C D)) w (@pair B (prod C D) x (@pair C D y z)))))) = f)). -Axiom thm_FORALL_UNCURRY : forall {A B C : Type'}, forall P : (A -> B -> C) -> Prop, (forall f : A -> B -> C, P f) = (forall f : (prod A B) -> C, P (fun a : A => fun b : B => f (@pair A B a b))). -Axiom thm_EXISTS_UNCURRY : forall {A B C : Type'}, forall P : (A -> B -> C) -> Prop, (exists f : A -> B -> C, P f) = (exists f : (prod A B) -> C, P (fun a : A => fun b : B => f (@pair A B a b))). -Axiom thm_EXISTS_CURRY : forall {A B C : Type'}, forall P : ((prod A B) -> C) -> Prop, (exists f : (prod A B) -> C, P f) = (exists f : A -> B -> C, P (@GABS ((prod A B) -> C) (fun f' : (prod A B) -> C => forall a : A, forall b : B, @GEQ C (f' (@pair A B a b)) (f a b)))). -Axiom thm_FORALL_CURRY : forall {A B C : Type'}, forall P : ((prod A B) -> C) -> Prop, (forall f : (prod A B) -> C, P f) = (forall f : A -> B -> C, P (@GABS ((prod A B) -> C) (fun f' : (prod A B) -> C => forall a : A, forall b : B, @GEQ C (f' (@pair A B a b)) (f a b)))). -Axiom thm_FORALL_UNPAIR_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (forall x : A, forall y : B, P x y) = (forall z : prod A B, P (@fst A B z) (@snd A B z)). -Axiom thm_EXISTS_UNPAIR_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (exists x : A, exists y : B, P x y) = (exists z : prod A B, P (@fst A B z) (@snd A B z)). -Axiom thm_FORALL_PAIR_FUN_THM : forall {A B C : Type'}, forall P : (A -> prod B C) -> Prop, (forall f : A -> prod B C, P f) = (forall g : A -> B, forall h : A -> C, P (fun a : A => @pair B C (g a) (h a))). -Axiom thm_EXISTS_PAIR_FUN_THM : forall {A B C : Type'}, forall P : (A -> prod B C) -> Prop, (exists f : A -> prod B C, P f) = (exists g : A -> B, exists h : A -> C, P (fun a : A => @pair B C (g a) (h a))). -Axiom thm_FORALL_UNPAIR_FUN_THM : forall {A B C : Type'}, forall P : (A -> B) -> (A -> C) -> Prop, (forall f : A -> B, forall g : A -> C, P f g) = (forall h : A -> prod B C, P (@o A (prod B C) B (@fst B C) h) (@o A (prod B C) C (@snd B C) h)). -Axiom thm_EXISTS_UNPAIR_FUN_THM : forall {A B C : Type'}, forall P : (A -> B) -> (A -> C) -> Prop, (exists f : A -> B, exists g : A -> C, P f g) = (exists h : A -> prod B C, P (@o A (prod B C) B (@fst B C) h) (@o A (prod B C) C (@snd B C) h)). -Axiom thm_EXISTS_SWAP_FUN_THM : forall {A B C : Type'}, forall P : (A -> B -> C) -> Prop, (exists f : A -> B -> C, P f) = (exists f : B -> A -> C, P (fun a : A => fun b : B => f b a)). -Axiom thm_FORALL_PAIRED_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (all (@GABS ((prod A B) -> Prop) (fun f : (prod A B) -> Prop => forall x : A, forall y : B, @GEQ Prop (f (@pair A B x y)) (P x y)))) = (forall x : A, forall y : B, P x y). -Axiom thm_EXISTS_PAIRED_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (ex (@GABS ((prod A B) -> Prop) (fun f : (prod A B) -> Prop => forall x : A, forall y : B, @GEQ Prop (f (@pair A B x y)) (P x y)))) = (exists x : A, exists y : B, P x y). -Axiom thm_FORALL_TRIPLED_THM : forall {A B C : Type'}, forall P : A -> B -> C -> Prop, (all (@GABS ((prod A (prod B C)) -> Prop) (fun f : (prod A (prod B C)) -> Prop => forall x : A, forall y : B, forall z : C, @GEQ Prop (f (@pair A (prod B C) x (@pair B C y z))) (P x y z)))) = (forall x : A, forall y : B, forall z : C, P x y z). -Axiom thm_EXISTS_TRIPLED_THM : forall {A B C : Type'}, forall P : A -> B -> C -> Prop, (ex (@GABS ((prod A (prod B C)) -> Prop) (fun f : (prod A (prod B C)) -> Prop => forall x : A, forall y : B, forall z : C, @GEQ Prop (f (@pair A (prod B C) x (@pair B C y z))) (P x y z)))) = (exists x : A, exists y : B, exists z : C, P x y z). -Axiom thm_CHOICE_UNPAIR_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (@ε (prod A B) (@GABS ((prod A B) -> Prop) (fun f : (prod A B) -> Prop => forall x : A, forall y : B, @GEQ Prop (f (@pair A B x y)) (P x y)))) = (@ε (prod A B) (fun p : prod A B => P (@fst A B p) (@snd A B p))). -Axiom thm_CHOICE_PAIRED_THM : forall {A B : Type'}, forall P : A -> B -> Prop, forall Q : (prod A B) -> Prop, ((exists x : A, exists y : B, P x y) /\ (forall x : A, forall y : B, (P x y) -> Q (@pair A B x y))) -> Q (@ε (prod A B) (@GABS ((prod A B) -> Prop) (fun f : (prod A B) -> Prop => forall x : A, forall y : B, @GEQ Prop (f (@pair A B x y)) (P x y)))). -Axiom thm_ONE_ONE : forall {A B : Type'}, forall f : A -> B, (@ONE_ONE A B f) = (forall x1 : A, forall x2 : A, ((f x1) = (f x2)) -> x1 = x2). -Axiom thm_ONTO : forall {A B : Type'}, forall f : A -> B, (@ONTO A B f) = (forall y : B, exists x : A, y = (f x)). -Axiom thm_INFINITY_AX : exists f : ind -> ind, (@ONE_ONE ind ind f) /\ (~ (@ONTO ind ind f)). -Axiom thm_IND_SUC_0_EXISTS : exists f : ind -> ind, exists z : ind, (forall x1 : ind, forall x2 : ind, ((f x1) = (f x2)) = (x1 = x2)) /\ (forall x : ind, ~ ((f x) = z)). -Axiom thm_NUM_REP_RULES : (NUM_REP IND_0) /\ (forall i : ind, (NUM_REP i) -> NUM_REP (IND_SUC i)). -Axiom thm_NUM_REP_CASES : forall a : ind, (NUM_REP a) = ((a = IND_0) \/ (exists i : ind, (a = (IND_SUC i)) /\ (NUM_REP i))). -Axiom thm_NUM_REP_INDUCT : forall NUM_REP' : ind -> Prop, ((NUM_REP' IND_0) /\ (forall i : ind, (NUM_REP' i) -> NUM_REP' (IND_SUC i))) -> forall a : ind, (NUM_REP a) -> NUM_REP' a. -Axiom thm_ZERO_DEF : 0 = (mk_num IND_0). -Axiom thm_SUC_DEF : forall n : nat, (S n) = (mk_num (IND_SUC (dest_num n))). -Axiom thm_SUC_INJ : forall m : nat, forall n : nat, ((S m) = (S n)) = (m = n). -Axiom thm_NOT_SUC : forall n : nat, ~ ((S n) = (NUMERAL 0)). -Axiom thm_num_INDUCTION : forall P : nat -> Prop, ((P (NUMERAL 0)) /\ (forall n : nat, (P n) -> P (S n))) -> forall n : nat, P n. -Axiom thm_num_Axiom : forall {A : Type'}, forall e : A, forall f : A -> nat -> A, @ex1 (nat -> A) (fun fn : nat -> A => ((fn (NUMERAL 0)) = e) /\ (forall n : nat, (fn (S n)) = (f (fn n) n))). -Axiom thm_num_CASES : forall m : nat, (m = (NUMERAL 0)) \/ (exists n : nat, m = (S n)). -Axiom thm_PRE : ((Nat.pred (NUMERAL 0)) = (NUMERAL 0)) /\ (forall n : nat, (Nat.pred (S n)) = n). -Axiom thm_ADD : (forall n : nat, (Nat.add (NUMERAL 0) n) = n) /\ (forall m : nat, forall n : nat, (Nat.add (S m) n) = (S (Nat.add m n))). -Axiom thm_ADD_0 : forall m : nat, (Nat.add m (NUMERAL 0)) = m. -Axiom thm_ADD_SUC : forall m : nat, forall n : nat, (Nat.add m (S n)) = (S (Nat.add m n)). -Axiom thm_ADD_CLAUSES : (forall n : nat, (Nat.add (NUMERAL 0) n) = n) /\ ((forall m : nat, (Nat.add m (NUMERAL 0)) = m) /\ ((forall m : nat, forall n : nat, (Nat.add (S m) n) = (S (Nat.add m n))) /\ (forall m : nat, forall n : nat, (Nat.add m (S n)) = (S (Nat.add m n))))). -Axiom thm_ADD_SYM : forall m : nat, forall n : nat, (Nat.add m n) = (Nat.add n m). -Axiom thm_ADD_ASSOC : forall m : nat, forall n : nat, forall p : nat, (Nat.add m (Nat.add n p)) = (Nat.add (Nat.add m n) p). -Axiom thm_ADD_AC : forall (n : nat) (m : nat) (p : nat), ((Nat.add m n) = (Nat.add n m)) /\ (((Nat.add (Nat.add m n) p) = (Nat.add m (Nat.add n p))) /\ ((Nat.add m (Nat.add n p)) = (Nat.add n (Nat.add m p)))). -Axiom thm_ADD_EQ_0 : forall m : nat, forall n : nat, ((Nat.add m n) = (NUMERAL 0)) = ((m = (NUMERAL 0)) /\ (n = (NUMERAL 0))). -Axiom thm_EQ_ADD_LCANCEL : forall m : nat, forall n : nat, forall p : nat, ((Nat.add m n) = (Nat.add m p)) = (n = p). -Axiom thm_EQ_ADD_RCANCEL : forall m : nat, forall n : nat, forall p : nat, ((Nat.add m p) = (Nat.add n p)) = (m = n). -Axiom thm_EQ_ADD_LCANCEL_0 : forall m : nat, forall n : nat, ((Nat.add m n) = m) = (n = (NUMERAL 0)). -Axiom thm_EQ_ADD_RCANCEL_0 : forall m : nat, forall n : nat, ((Nat.add m n) = n) = (m = (NUMERAL 0)). -Axiom thm_BIT0 : forall n : nat, (BIT0 n) = (Nat.add n n). -Axiom thm_BIT1 : forall n : nat, (BIT1 n) = (S (Nat.add n n)). -Axiom thm_BIT0_THM : forall n : nat, (NUMERAL (BIT0 n)) = (Nat.add (NUMERAL n) (NUMERAL n)). -Axiom thm_BIT1_THM : forall n : nat, (NUMERAL (BIT1 n)) = (S (Nat.add (NUMERAL n) (NUMERAL n))). -Axiom thm_ONE : (NUMERAL (BIT1 0)) = (S (NUMERAL 0)). -Axiom thm_TWO : (NUMERAL (BIT0 (BIT1 0))) = (S (NUMERAL (BIT1 0))). -Axiom thm_ADD1 : forall m : nat, (S m) = (Nat.add m (NUMERAL (BIT1 0))). -Axiom thm_MULT : (forall n : nat, (Nat.mul (NUMERAL 0) n) = (NUMERAL 0)) /\ (forall m : nat, forall n : nat, (Nat.mul (S m) n) = (Nat.add (Nat.mul m n) n)). -Axiom thm_MULT_0 : forall m : nat, (Nat.mul m (NUMERAL 0)) = (NUMERAL 0). -Axiom thm_MULT_SUC : forall m : nat, forall n : nat, (Nat.mul m (S n)) = (Nat.add m (Nat.mul m n)). -Axiom thm_MULT_CLAUSES : (forall n : nat, (Nat.mul (NUMERAL 0) n) = (NUMERAL 0)) /\ ((forall m : nat, (Nat.mul m (NUMERAL 0)) = (NUMERAL 0)) /\ ((forall n : nat, (Nat.mul (NUMERAL (BIT1 0)) n) = n) /\ ((forall m : nat, (Nat.mul m (NUMERAL (BIT1 0))) = m) /\ ((forall m : nat, forall n : nat, (Nat.mul (S m) n) = (Nat.add (Nat.mul m n) n)) /\ (forall m : nat, forall n : nat, (Nat.mul m (S n)) = (Nat.add m (Nat.mul m n))))))). -Axiom thm_MULT_SYM : forall m : nat, forall n : nat, (Nat.mul m n) = (Nat.mul n m). -Axiom thm_LEFT_ADD_DISTRIB : forall m : nat, forall n : nat, forall p : nat, (Nat.mul m (Nat.add n p)) = (Nat.add (Nat.mul m n) (Nat.mul m p)). -Axiom thm_RIGHT_ADD_DISTRIB : forall m : nat, forall n : nat, forall p : nat, (Nat.mul (Nat.add m n) p) = (Nat.add (Nat.mul m p) (Nat.mul n p)). -Axiom thm_MULT_ASSOC : forall m : nat, forall n : nat, forall p : nat, (Nat.mul m (Nat.mul n p)) = (Nat.mul (Nat.mul m n) p). -Axiom thm_MULT_AC : forall (n : nat) (m : nat) (p : nat), ((Nat.mul m n) = (Nat.mul n m)) /\ (((Nat.mul (Nat.mul m n) p) = (Nat.mul m (Nat.mul n p))) /\ ((Nat.mul m (Nat.mul n p)) = (Nat.mul n (Nat.mul m p)))). -Axiom thm_MULT_EQ_0 : forall m : nat, forall n : nat, ((Nat.mul m n) = (NUMERAL 0)) = ((m = (NUMERAL 0)) \/ (n = (NUMERAL 0))). -Axiom thm_EQ_MULT_LCANCEL : forall m : nat, forall n : nat, forall p : nat, ((Nat.mul m n) = (Nat.mul m p)) = ((m = (NUMERAL 0)) \/ (n = p)). -Axiom thm_EQ_MULT_RCANCEL : forall m : nat, forall n : nat, forall p : nat, ((Nat.mul m p) = (Nat.mul n p)) = ((m = n) \/ (p = (NUMERAL 0))). -Axiom thm_MULT_2 : forall n : nat, (Nat.mul (NUMERAL (BIT0 (BIT1 0))) n) = (Nat.add n n). -Axiom thm_MULT_EQ_1 : forall m : nat, forall n : nat, ((Nat.mul m n) = (NUMERAL (BIT1 0))) = ((m = (NUMERAL (BIT1 0))) /\ (n = (NUMERAL (BIT1 0)))). -Axiom thm_EXP : (forall m : nat, (Nat.pow m (NUMERAL 0)) = (NUMERAL (BIT1 0))) /\ (forall m : nat, forall n : nat, (Nat.pow m (S n)) = (Nat.mul m (Nat.pow m n))). -Axiom thm_EXP_EQ_0 : forall m : nat, forall n : nat, ((Nat.pow m n) = (NUMERAL 0)) = ((m = (NUMERAL 0)) /\ (~ (n = (NUMERAL 0)))). -Axiom thm_EXP_EQ_1 : forall x : nat, forall n : nat, ((Nat.pow x n) = (NUMERAL (BIT1 0))) = ((x = (NUMERAL (BIT1 0))) \/ (n = (NUMERAL 0))). -Axiom thm_EXP_ZERO : forall n : nat, (Nat.pow (NUMERAL 0) n) = (@COND nat (n = (NUMERAL 0)) (NUMERAL (BIT1 0)) (NUMERAL 0)). -Axiom thm_EXP_ADD : forall m : nat, forall n : nat, forall p : nat, (Nat.pow m (Nat.add n p)) = (Nat.mul (Nat.pow m n) (Nat.pow m p)). -Axiom thm_EXP_ONE : forall n : nat, (Nat.pow (NUMERAL (BIT1 0)) n) = (NUMERAL (BIT1 0)). -Axiom thm_EXP_1 : forall n : nat, (Nat.pow n (NUMERAL (BIT1 0))) = n. -Axiom thm_EXP_2 : forall n : nat, (Nat.pow n (NUMERAL (BIT0 (BIT1 0)))) = (Nat.mul n n). -Axiom thm_MULT_EXP : forall p : nat, forall m : nat, forall n : nat, (Nat.pow (Nat.mul m n) p) = (Nat.mul (Nat.pow m p) (Nat.pow n p)). -Axiom thm_EXP_MULT : forall m : nat, forall n : nat, forall p : nat, (Nat.pow m (Nat.mul n p)) = (Nat.pow (Nat.pow m n) p). -Axiom thm_EXP_EXP : forall x : nat, forall m : nat, forall n : nat, (Nat.pow (Nat.pow x m) n) = (Nat.pow x (Nat.mul m n)). -Axiom thm_LE : (forall m : nat, (Peano.le m (NUMERAL 0)) = (m = (NUMERAL 0))) /\ (forall m : nat, forall n : nat, (Peano.le m (S n)) = ((m = (S n)) \/ (Peano.le m n))). -Axiom thm_LT : (forall m : nat, (Peano.lt m (NUMERAL 0)) = False) /\ (forall m : nat, forall n : nat, (Peano.lt m (S n)) = ((m = n) \/ (Peano.lt m n))). -Axiom thm_GE : forall n : nat, forall m : nat, (Peano.ge m n) = (Peano.le n m). -Axiom thm_GT : forall n : nat, forall m : nat, (Peano.gt m n) = (Peano.lt n m). -Axiom thm_MAX : forall m : nat, forall n : nat, (Nat.max m n) = (@COND nat (Peano.le m n) n m). -Axiom thm_MIN : forall m : nat, forall n : nat, (Nat.min m n) = (@COND nat (Peano.le m n) m n). -Axiom thm_LE_SUC_LT : forall m : nat, forall n : nat, (Peano.le (S m) n) = (Peano.lt m n). -Axiom thm_LT_SUC_LE : forall m : nat, forall n : nat, (Peano.lt m (S n)) = (Peano.le m n). -Axiom thm_LE_SUC : forall m : nat, forall n : nat, (Peano.le (S m) (S n)) = (Peano.le m n). -Axiom thm_LT_SUC : forall m : nat, forall n : nat, (Peano.lt (S m) (S n)) = (Peano.lt m n). -Axiom thm_LE_0 : forall n : nat, Peano.le (NUMERAL 0) n. -Axiom thm_LT_0 : forall n : nat, Peano.lt (NUMERAL 0) (S n). -Axiom thm_LE_REFL : forall n : nat, Peano.le n n. -Axiom thm_LT_REFL : forall n : nat, ~ (Peano.lt n n). -Axiom thm_LT_IMP_NE : forall m : nat, forall n : nat, (Peano.lt m n) -> ~ (m = n). -Axiom thm_LE_ANTISYM : forall m : nat, forall n : nat, ((Peano.le m n) /\ (Peano.le n m)) = (m = n). -Axiom thm_LT_ANTISYM : forall m : nat, forall n : nat, ~ ((Peano.lt m n) /\ (Peano.lt n m)). -Axiom thm_LET_ANTISYM : forall m : nat, forall n : nat, ~ ((Peano.le m n) /\ (Peano.lt n m)). -Axiom thm_LTE_ANTISYM : forall m : nat, forall n : nat, ~ ((Peano.lt m n) /\ (Peano.le n m)). -Axiom thm_LE_TRANS : forall m : nat, forall n : nat, forall p : nat, ((Peano.le m n) /\ (Peano.le n p)) -> Peano.le m p. -Axiom thm_LT_TRANS : forall m : nat, forall n : nat, forall p : nat, ((Peano.lt m n) /\ (Peano.lt n p)) -> Peano.lt m p. -Axiom thm_LET_TRANS : forall m : nat, forall n : nat, forall p : nat, ((Peano.le m n) /\ (Peano.lt n p)) -> Peano.lt m p. -Axiom thm_LTE_TRANS : forall m : nat, forall n : nat, forall p : nat, ((Peano.lt m n) /\ (Peano.le n p)) -> Peano.lt m p. -Axiom thm_LE_CASES : forall m : nat, forall n : nat, (Peano.le m n) \/ (Peano.le n m). -Axiom thm_LT_CASES : forall m : nat, forall n : nat, (Peano.lt m n) \/ ((Peano.lt n m) \/ (m = n)). -Axiom thm_LET_CASES : forall m : nat, forall n : nat, (Peano.le m n) \/ (Peano.lt n m). -Axiom thm_LTE_CASES : forall m : nat, forall n : nat, (Peano.lt m n) \/ (Peano.le n m). -Axiom thm_LE_LT : forall m : nat, forall n : nat, (Peano.le m n) = ((Peano.lt m n) \/ (m = n)). -Axiom thm_LT_LE : forall m : nat, forall n : nat, (Peano.lt m n) = ((Peano.le m n) /\ (~ (m = n))). -Axiom thm_NOT_LE : forall m : nat, forall n : nat, (~ (Peano.le m n)) = (Peano.lt n m). -Axiom thm_NOT_LT : forall m : nat, forall n : nat, (~ (Peano.lt m n)) = (Peano.le n m). -Axiom thm_LT_IMP_LE : forall m : nat, forall n : nat, (Peano.lt m n) -> Peano.le m n. -Axiom thm_EQ_IMP_LE : forall m : nat, forall n : nat, (m = n) -> Peano.le m n. -Axiom thm_LT_NZ : forall n : nat, (Peano.lt (NUMERAL 0) n) = (~ (n = (NUMERAL 0))). -Axiom thm_LE_1 : (forall n : nat, (~ (n = (NUMERAL 0))) -> Peano.lt (NUMERAL 0) n) /\ ((forall n : nat, (~ (n = (NUMERAL 0))) -> Peano.le (NUMERAL (BIT1 0)) n) /\ ((forall n : nat, (Peano.lt (NUMERAL 0) n) -> ~ (n = (NUMERAL 0))) /\ ((forall n : nat, (Peano.lt (NUMERAL 0) n) -> Peano.le (NUMERAL (BIT1 0)) n) /\ ((forall n : nat, (Peano.le (NUMERAL (BIT1 0)) n) -> Peano.lt (NUMERAL 0) n) /\ (forall n : nat, (Peano.le (NUMERAL (BIT1 0)) n) -> ~ (n = (NUMERAL 0))))))). -Axiom thm_LE_EXISTS : forall m : nat, forall n : nat, (Peano.le m n) = (exists d : nat, n = (Nat.add m d)). -Axiom thm_LT_EXISTS : forall m : nat, forall n : nat, (Peano.lt m n) = (exists d : nat, n = (Nat.add m (S d))). -Axiom thm_LE_ADD : forall m : nat, forall n : nat, Peano.le m (Nat.add m n). -Axiom thm_LE_ADDR : forall m : nat, forall n : nat, Peano.le n (Nat.add m n). -Axiom thm_LT_ADD : forall m : nat, forall n : nat, (Peano.lt m (Nat.add m n)) = (Peano.lt (NUMERAL 0) n). -Axiom thm_LT_ADDR : forall m : nat, forall n : nat, (Peano.lt n (Nat.add m n)) = (Peano.lt (NUMERAL 0) m). -Axiom thm_LE_ADD_LCANCEL : forall m : nat, forall n : nat, forall p : nat, (Peano.le (Nat.add m n) (Nat.add m p)) = (Peano.le n p). -Axiom thm_LE_ADD_RCANCEL : forall m : nat, forall n : nat, forall p : nat, (Peano.le (Nat.add m p) (Nat.add n p)) = (Peano.le m n). -Axiom thm_LT_ADD_LCANCEL : forall m : nat, forall n : nat, forall p : nat, (Peano.lt (Nat.add m n) (Nat.add m p)) = (Peano.lt n p). -Axiom thm_LT_ADD_RCANCEL : forall m : nat, forall n : nat, forall p : nat, (Peano.lt (Nat.add m p) (Nat.add n p)) = (Peano.lt m n). -Axiom thm_LE_ADD2 : forall m : nat, forall n : nat, forall p : nat, forall q : nat, ((Peano.le m p) /\ (Peano.le n q)) -> Peano.le (Nat.add m n) (Nat.add p q). -Axiom thm_LET_ADD2 : forall m : nat, forall n : nat, forall p : nat, forall q : nat, ((Peano.le m p) /\ (Peano.lt n q)) -> Peano.lt (Nat.add m n) (Nat.add p q). -Axiom thm_LTE_ADD2 : forall m : nat, forall n : nat, forall p : nat, forall q : nat, ((Peano.lt m p) /\ (Peano.le n q)) -> Peano.lt (Nat.add m n) (Nat.add p q). -Axiom thm_LT_ADD2 : forall m : nat, forall n : nat, forall p : nat, forall q : nat, ((Peano.lt m p) /\ (Peano.lt n q)) -> Peano.lt (Nat.add m n) (Nat.add p q). -Axiom thm_LT_MULT : forall m : nat, forall n : nat, (Peano.lt (NUMERAL 0) (Nat.mul m n)) = ((Peano.lt (NUMERAL 0) m) /\ (Peano.lt (NUMERAL 0) n)). -Axiom thm_LE_MULT2 : forall m : nat, forall n : nat, forall p : nat, forall q : nat, ((Peano.le m n) /\ (Peano.le p q)) -> Peano.le (Nat.mul m p) (Nat.mul n q). -Axiom thm_LT_LMULT : forall m : nat, forall n : nat, forall p : nat, ((~ (m = (NUMERAL 0))) /\ (Peano.lt n p)) -> Peano.lt (Nat.mul m n) (Nat.mul m p). -Axiom thm_LE_MULT_LCANCEL : forall m : nat, forall n : nat, forall p : nat, (Peano.le (Nat.mul m n) (Nat.mul m p)) = ((m = (NUMERAL 0)) \/ (Peano.le n p)). -Axiom thm_LE_MULT_RCANCEL : forall m : nat, forall n : nat, forall p : nat, (Peano.le (Nat.mul m p) (Nat.mul n p)) = ((Peano.le m n) \/ (p = (NUMERAL 0))). -Axiom thm_LT_MULT_LCANCEL : forall m : nat, forall n : nat, forall p : nat, (Peano.lt (Nat.mul m n) (Nat.mul m p)) = ((~ (m = (NUMERAL 0))) /\ (Peano.lt n p)). -Axiom thm_LT_MULT_RCANCEL : forall m : nat, forall n : nat, forall p : nat, (Peano.lt (Nat.mul m p) (Nat.mul n p)) = ((Peano.lt m n) /\ (~ (p = (NUMERAL 0)))). -Axiom thm_LT_MULT2 : forall m : nat, forall n : nat, forall p : nat, forall q : nat, ((Peano.lt m n) /\ (Peano.lt p q)) -> Peano.lt (Nat.mul m p) (Nat.mul n q). -Axiom thm_LE_SQUARE_REFL : forall n : nat, Peano.le n (Nat.mul n n). -Axiom thm_LT_POW2_REFL : forall n : nat, Peano.lt n (Nat.pow (NUMERAL (BIT0 (BIT1 0))) n). -Axiom thm_WLOG_LE : forall (P : nat -> nat -> Prop), ((forall m : nat, forall n : nat, (P m n) = (P n m)) /\ (forall m : nat, forall n : nat, (Peano.le m n) -> P m n)) -> forall m : nat, forall n : nat, P m n. -Axiom thm_WLOG_LT : forall (P : nat -> nat -> Prop), ((forall m : nat, P m m) /\ ((forall m : nat, forall n : nat, (P m n) = (P n m)) /\ (forall m : nat, forall n : nat, (Peano.lt m n) -> P m n))) -> forall m : nat, forall y : nat, P m y. -Axiom thm_WLOG_LE_3 : forall P : nat -> nat -> nat -> Prop, ((forall x : nat, forall y : nat, forall z : nat, (P x y z) -> (P y x z) /\ (P x z y)) /\ (forall x : nat, forall y : nat, forall z : nat, ((Peano.le x y) /\ (Peano.le y z)) -> P x y z)) -> forall x : nat, forall y : nat, forall z : nat, P x y z. -Axiom thm_num_WF : forall P : nat -> Prop, (forall n : nat, (forall m : nat, (Peano.lt m n) -> P m) -> P n) -> forall n : nat, P n. -Axiom thm_num_WOP : forall P : nat -> Prop, (exists n : nat, P n) = (exists n : nat, (P n) /\ (forall m : nat, (Peano.lt m n) -> ~ (P m))). -Axiom thm_num_MAX : forall P : nat -> Prop, ((exists x : nat, P x) /\ (exists M : nat, forall x : nat, (P x) -> Peano.le x M)) = (exists m : nat, (P m) /\ (forall x : nat, (P x) -> Peano.le x m)). -Axiom thm_LE_INDUCT : forall P : nat -> nat -> Prop, ((forall m : nat, P m m) /\ (forall m : nat, forall n : nat, ((Peano.le m n) /\ (P m n)) -> P m (S n))) -> forall m : nat, forall n : nat, (Peano.le m n) -> P m n. -Axiom thm_num_INDUCTION_DOWN : forall P : nat -> Prop, forall m : nat, ((forall n : nat, (Peano.le m n) -> P n) /\ (forall n : nat, ((Peano.lt n m) /\ (P (Nat.add n (NUMERAL (BIT1 0))))) -> P n)) -> forall n : nat, P n. -Axiom thm_EVEN : ((Coq.Arith.PeanoNat.Nat.Even (NUMERAL 0)) = True) /\ (forall n : nat, (Coq.Arith.PeanoNat.Nat.Even (S n)) = (~ (Coq.Arith.PeanoNat.Nat.Even n))). -Axiom thm_ODD : ((Coq.Arith.PeanoNat.Nat.Odd (NUMERAL 0)) = False) /\ (forall n : nat, (Coq.Arith.PeanoNat.Nat.Odd (S n)) = (~ (Coq.Arith.PeanoNat.Nat.Odd n))). -Axiom thm_NOT_EVEN : forall n : nat, (~ (Coq.Arith.PeanoNat.Nat.Even n)) = (Coq.Arith.PeanoNat.Nat.Odd n). -Axiom thm_NOT_ODD : forall n : nat, (~ (Coq.Arith.PeanoNat.Nat.Odd n)) = (Coq.Arith.PeanoNat.Nat.Even n). -Axiom thm_EVEN_OR_ODD : forall n : nat, (Coq.Arith.PeanoNat.Nat.Even n) \/ (Coq.Arith.PeanoNat.Nat.Odd n). -Axiom thm_EVEN_AND_ODD : forall n : nat, ~ ((Coq.Arith.PeanoNat.Nat.Even n) /\ (Coq.Arith.PeanoNat.Nat.Odd n)). -Axiom thm_EVEN_ADD : forall m : nat, forall n : nat, (Coq.Arith.PeanoNat.Nat.Even (Nat.add m n)) = ((Coq.Arith.PeanoNat.Nat.Even m) = (Coq.Arith.PeanoNat.Nat.Even n)). -Axiom thm_EVEN_MULT : forall m : nat, forall n : nat, (Coq.Arith.PeanoNat.Nat.Even (Nat.mul m n)) = ((Coq.Arith.PeanoNat.Nat.Even m) \/ (Coq.Arith.PeanoNat.Nat.Even n)). -Axiom thm_EVEN_EXP : forall m : nat, forall n : nat, (Coq.Arith.PeanoNat.Nat.Even (Nat.pow m n)) = ((Coq.Arith.PeanoNat.Nat.Even m) /\ (~ (n = (NUMERAL 0)))). -Axiom thm_ODD_ADD : forall m : nat, forall n : nat, (Coq.Arith.PeanoNat.Nat.Odd (Nat.add m n)) = (~ ((Coq.Arith.PeanoNat.Nat.Odd m) = (Coq.Arith.PeanoNat.Nat.Odd n))). -Axiom thm_ODD_MULT : forall m : nat, forall n : nat, (Coq.Arith.PeanoNat.Nat.Odd (Nat.mul m n)) = ((Coq.Arith.PeanoNat.Nat.Odd m) /\ (Coq.Arith.PeanoNat.Nat.Odd n)). -Axiom thm_ODD_EXP : forall m : nat, forall n : nat, (Coq.Arith.PeanoNat.Nat.Odd (Nat.pow m n)) = ((Coq.Arith.PeanoNat.Nat.Odd m) \/ (n = (NUMERAL 0))). -Axiom thm_EVEN_DOUBLE : forall n : nat, Coq.Arith.PeanoNat.Nat.Even (Nat.mul (NUMERAL (BIT0 (BIT1 0))) n). -Axiom thm_ODD_DOUBLE : forall n : nat, Coq.Arith.PeanoNat.Nat.Odd (S (Nat.mul (NUMERAL (BIT0 (BIT1 0))) n)). -Axiom thm_EVEN_EXISTS_LEMMA : forall n : nat, ((Coq.Arith.PeanoNat.Nat.Even n) -> exists m : nat, n = (Nat.mul (NUMERAL (BIT0 (BIT1 0))) m)) /\ ((~ (Coq.Arith.PeanoNat.Nat.Even n)) -> exists m : nat, n = (S (Nat.mul (NUMERAL (BIT0 (BIT1 0))) m))). -Axiom thm_EVEN_EXISTS : forall n : nat, (Coq.Arith.PeanoNat.Nat.Even n) = (exists m : nat, n = (Nat.mul (NUMERAL (BIT0 (BIT1 0))) m)). -Axiom thm_ODD_EXISTS : forall n : nat, (Coq.Arith.PeanoNat.Nat.Odd n) = (exists m : nat, n = (S (Nat.mul (NUMERAL (BIT0 (BIT1 0))) m))). -Axiom thm_EVEN_ODD_DECOMPOSITION : forall n : nat, (exists k : nat, exists m : nat, (Coq.Arith.PeanoNat.Nat.Odd m) /\ (n = (Nat.mul (Nat.pow (NUMERAL (BIT0 (BIT1 0))) k) m))) = (~ (n = (NUMERAL 0))). -Axiom thm_SUB : (forall m : nat, (Nat.sub m (NUMERAL 0)) = m) /\ (forall m : nat, forall n : nat, (Nat.sub m (S n)) = (Nat.pred (Nat.sub m n))). -Axiom thm_SUB_0 : forall m : nat, ((Nat.sub (NUMERAL 0) m) = (NUMERAL 0)) /\ ((Nat.sub m (NUMERAL 0)) = m). -Axiom thm_SUB_PRESUC : forall m : nat, forall n : nat, (Nat.pred (Nat.sub (S m) n)) = (Nat.sub m n). -Axiom thm_SUB_SUC : forall m : nat, forall n : nat, (Nat.sub (S m) (S n)) = (Nat.sub m n). -Axiom thm_SUB_REFL : forall n : nat, (Nat.sub n n) = (NUMERAL 0). -Axiom thm_ADD_SUB : forall m : nat, forall n : nat, (Nat.sub (Nat.add m n) n) = m. -Axiom thm_ADD_SUB2 : forall m : nat, forall n : nat, (Nat.sub (Nat.add m n) m) = n. -Axiom thm_SUB_EQ_0 : forall m : nat, forall n : nat, ((Nat.sub m n) = (NUMERAL 0)) = (Peano.le m n). -Axiom thm_ADD_SUBR2 : forall m : nat, forall n : nat, (Nat.sub m (Nat.add m n)) = (NUMERAL 0). -Axiom thm_ADD_SUBR : forall m : nat, forall n : nat, (Nat.sub n (Nat.add m n)) = (NUMERAL 0). -Axiom thm_SUB_ADD : forall m : nat, forall n : nat, (Peano.le n m) -> (Nat.add (Nat.sub m n) n) = m. -Axiom thm_SUB_ADD_LCANCEL : forall m : nat, forall n : nat, forall p : nat, (Nat.sub (Nat.add m n) (Nat.add m p)) = (Nat.sub n p). -Axiom thm_SUB_ADD_RCANCEL : forall m : nat, forall n : nat, forall p : nat, (Nat.sub (Nat.add m p) (Nat.add n p)) = (Nat.sub m n). -Axiom thm_LEFT_SUB_DISTRIB : forall m : nat, forall n : nat, forall p : nat, (Nat.mul m (Nat.sub n p)) = (Nat.sub (Nat.mul m n) (Nat.mul m p)). -Axiom thm_RIGHT_SUB_DISTRIB : forall m : nat, forall n : nat, forall p : nat, (Nat.mul (Nat.sub m n) p) = (Nat.sub (Nat.mul m p) (Nat.mul n p)). -Axiom thm_SUC_SUB1 : forall n : nat, (Nat.sub (S n) (NUMERAL (BIT1 0))) = n. -Axiom thm_EVEN_SUB : forall m : nat, forall n : nat, (Coq.Arith.PeanoNat.Nat.Even (Nat.sub m n)) = ((Peano.le m n) \/ ((Coq.Arith.PeanoNat.Nat.Even m) = (Coq.Arith.PeanoNat.Nat.Even n))). -Axiom thm_ODD_SUB : forall m : nat, forall n : nat, (Coq.Arith.PeanoNat.Nat.Odd (Nat.sub m n)) = ((Peano.lt n m) /\ (~ ((Coq.Arith.PeanoNat.Nat.Odd m) = (Coq.Arith.PeanoNat.Nat.Odd n)))). -Axiom thm_FACT : ((Factorial.fact (NUMERAL 0)) = (NUMERAL (BIT1 0))) /\ (forall n : nat, (Factorial.fact (S n)) = (Nat.mul (S n) (Factorial.fact n))). -Axiom thm_FACT_LT : forall n : nat, Peano.lt (NUMERAL 0) (Factorial.fact n). -Axiom thm_FACT_LE : forall n : nat, Peano.le (NUMERAL (BIT1 0)) (Factorial.fact n). -Axiom thm_FACT_NZ : forall n : nat, ~ ((Factorial.fact n) = (NUMERAL 0)). -Axiom thm_FACT_MONO : forall m : nat, forall n : nat, (Peano.le m n) -> Peano.le (Factorial.fact m) (Factorial.fact n). -Axiom thm_EXP_LT_0 : forall n : nat, forall x : nat, (Peano.lt (NUMERAL 0) (Nat.pow x n)) = ((~ (x = (NUMERAL 0))) \/ (n = (NUMERAL 0))). -Axiom thm_LT_EXP : forall x : nat, forall m : nat, forall n : nat, (Peano.lt (Nat.pow x m) (Nat.pow x n)) = (((Peano.le (NUMERAL (BIT0 (BIT1 0))) x) /\ (Peano.lt m n)) \/ ((x = (NUMERAL 0)) /\ ((~ (m = (NUMERAL 0))) /\ (n = (NUMERAL 0))))). -Axiom thm_LE_EXP : forall x : nat, forall m : nat, forall n : nat, (Peano.le (Nat.pow x m) (Nat.pow x n)) = (@COND Prop (x = (NUMERAL 0)) ((m = (NUMERAL 0)) -> n = (NUMERAL 0)) ((x = (NUMERAL (BIT1 0))) \/ (Peano.le m n))). -Axiom thm_EQ_EXP : forall x : nat, forall m : nat, forall n : nat, ((Nat.pow x m) = (Nat.pow x n)) = (@COND Prop (x = (NUMERAL 0)) ((m = (NUMERAL 0)) = (n = (NUMERAL 0))) ((x = (NUMERAL (BIT1 0))) \/ (m = n))). -Axiom thm_EXP_MONO_LE_IMP : forall x : nat, forall y : nat, forall n : nat, (Peano.le x y) -> Peano.le (Nat.pow x n) (Nat.pow y n). -Axiom thm_EXP_MONO_LT_IMP : forall x : nat, forall y : nat, forall n : nat, ((Peano.lt x y) /\ (~ (n = (NUMERAL 0)))) -> Peano.lt (Nat.pow x n) (Nat.pow y n). -Axiom thm_EXP_MONO_LE : forall x : nat, forall y : nat, forall n : nat, (Peano.le (Nat.pow x n) (Nat.pow y n)) = ((Peano.le x y) \/ (n = (NUMERAL 0))). -Axiom thm_EXP_MONO_LT : forall x : nat, forall y : nat, forall n : nat, (Peano.lt (Nat.pow x n) (Nat.pow y n)) = ((Peano.lt x y) /\ (~ (n = (NUMERAL 0)))). -Axiom thm_EXP_MONO_EQ : forall x : nat, forall y : nat, forall n : nat, ((Nat.pow x n) = (Nat.pow y n)) = ((x = y) \/ (n = (NUMERAL 0))). -Axiom thm_DIVMOD_EXIST : forall m : nat, forall n : nat, (~ (n = (NUMERAL 0))) -> exists q : nat, exists r : nat, (m = (Nat.add (Nat.mul q n) r)) /\ (Peano.lt r n). -Axiom thm_DIVMOD_EXIST_0 : forall m : nat, forall n : nat, exists q : nat, exists r : nat, @COND Prop (n = (NUMERAL 0)) ((q = (NUMERAL 0)) /\ (r = m)) ((m = (Nat.add (Nat.mul q n) r)) /\ (Peano.lt r n)). -Axiom thm_DIVISION : forall m : nat, forall n : nat, (~ (n = (NUMERAL 0))) -> (m = (Nat.add (Nat.mul (Nat.div m n) n) (Nat.modulo m n))) /\ (Peano.lt (Nat.modulo m n) n). -Axiom thm_DIV_ZERO : forall n : nat, (Nat.div n (NUMERAL 0)) = (NUMERAL 0). -Axiom thm_MOD_ZERO : forall n : nat, (Nat.modulo n (NUMERAL 0)) = n. -Axiom thm_DIVISION_SIMP : (forall m : nat, forall n : nat, (Nat.add (Nat.mul (Nat.div m n) n) (Nat.modulo m n)) = m) /\ (forall m : nat, forall n : nat, (Nat.add (Nat.mul n (Nat.div m n)) (Nat.modulo m n)) = m). -Axiom thm_EQ_DIVMOD : forall p : nat, forall m : nat, forall n : nat, (((Nat.div m p) = (Nat.div n p)) /\ ((Nat.modulo m p) = (Nat.modulo n p))) = (m = n). -Axiom thm_MOD_LT_EQ : forall m : nat, forall n : nat, (Peano.lt (Nat.modulo m n) n) = (~ (n = (NUMERAL 0))). -Axiom thm_MOD_LT_EQ_LT : forall m : nat, forall n : nat, (Peano.lt (Nat.modulo m n) n) = (Peano.lt (NUMERAL 0) n). -Axiom thm_DIVMOD_UNIQ_LEMMA : forall m : nat, forall n : nat, forall q1 : nat, forall r1 : nat, forall q2 : nat, forall r2 : nat, (((m = (Nat.add (Nat.mul q1 n) r1)) /\ (Peano.lt r1 n)) /\ ((m = (Nat.add (Nat.mul q2 n) r2)) /\ (Peano.lt r2 n))) -> (q1 = q2) /\ (r1 = r2). -Axiom thm_DIVMOD_UNIQ : forall m : nat, forall n : nat, forall q : nat, forall r : nat, ((m = (Nat.add (Nat.mul q n) r)) /\ (Peano.lt r n)) -> ((Nat.div m n) = q) /\ ((Nat.modulo m n) = r). -Axiom thm_MOD_UNIQ : forall m : nat, forall n : nat, forall q : nat, forall r : nat, ((m = (Nat.add (Nat.mul q n) r)) /\ (Peano.lt r n)) -> (Nat.modulo m n) = r. -Axiom thm_DIV_UNIQ : forall m : nat, forall n : nat, forall q : nat, forall r : nat, ((m = (Nat.add (Nat.mul q n) r)) /\ (Peano.lt r n)) -> (Nat.div m n) = q. -Axiom thm_MOD_0 : forall n : nat, (Nat.modulo (NUMERAL 0) n) = (NUMERAL 0). -Axiom thm_DIV_0 : forall n : nat, (Nat.div (NUMERAL 0) n) = (NUMERAL 0). -Axiom thm_MOD_MULT : forall m : nat, forall n : nat, (Nat.modulo (Nat.mul m n) m) = (NUMERAL 0). -Axiom thm_DIV_MULT : forall m : nat, forall n : nat, (~ (m = (NUMERAL 0))) -> (Nat.div (Nat.mul m n) m) = n. -Axiom thm_MOD_LT : forall m : nat, forall n : nat, (Peano.lt m n) -> (Nat.modulo m n) = m. -Axiom thm_MOD_EQ_SELF : forall m : nat, forall n : nat, ((Nat.modulo m n) = m) = ((n = (NUMERAL 0)) \/ (Peano.lt m n)). -Axiom thm_MOD_CASES : forall n : nat, forall p : nat, (Peano.lt n (Nat.mul (NUMERAL (BIT0 (BIT1 0))) p)) -> (Nat.modulo n p) = (@COND nat (Peano.lt n p) n (Nat.sub n p)). -Axiom thm_MOD_ADD_CASES : forall m : nat, forall n : nat, forall p : nat, ((Peano.lt m p) /\ (Peano.lt n p)) -> (Nat.modulo (Nat.add m n) p) = (@COND nat (Peano.lt (Nat.add m n) p) (Nat.add m n) (Nat.sub (Nat.add m n) p)). -Axiom thm_MOD_EQ : forall m : nat, forall n : nat, forall p : nat, forall q : nat, (m = (Nat.add n (Nat.mul q p))) -> (Nat.modulo m p) = (Nat.modulo n p). -Axiom thm_DIV_LE : forall m : nat, forall n : nat, Peano.le (Nat.div m n) m. -Axiom thm_DIV_MUL_LE : forall m : nat, forall n : nat, Peano.le (Nat.mul n (Nat.div m n)) m. -Axiom thm_MOD_LE_TWICE : forall m : nat, forall n : nat, ((Peano.lt (NUMERAL 0) m) /\ (Peano.le m n)) -> Peano.le (Nat.mul (NUMERAL (BIT0 (BIT1 0))) (Nat.modulo n m)) n. -Axiom thm_MOD_1 : forall n : nat, (Nat.modulo n (NUMERAL (BIT1 0))) = (NUMERAL 0). -Axiom thm_DIV_1 : forall n : nat, (Nat.div n (NUMERAL (BIT1 0))) = n. -Axiom thm_DIV_LT : forall m : nat, forall n : nat, (Peano.lt m n) -> (Nat.div m n) = (NUMERAL 0). -Axiom thm_MOD_MOD : forall m : nat, forall n : nat, forall p : nat, (Nat.modulo (Nat.modulo m (Nat.mul n p)) n) = (Nat.modulo m n). -Axiom thm_MOD_MOD_REFL : forall m : nat, forall n : nat, (Nat.modulo (Nat.modulo m n) n) = (Nat.modulo m n). -Axiom thm_MOD_MOD_LE : forall m : nat, forall n : nat, forall p : nat, ((~ (n = (NUMERAL 0))) /\ (Peano.le n p)) -> (Nat.modulo (Nat.modulo m n) p) = (Nat.modulo m n). -Axiom thm_MOD_EVEN_2 : forall m : nat, forall n : nat, (Coq.Arith.PeanoNat.Nat.Even n) -> (Nat.modulo (Nat.modulo m n) (NUMERAL (BIT0 (BIT1 0)))) = (Nat.modulo m (NUMERAL (BIT0 (BIT1 0)))). -Axiom thm_DIV_MULT2 : forall m : nat, forall n : nat, forall p : nat, (~ (m = (NUMERAL 0))) -> (Nat.div (Nat.mul m n) (Nat.mul m p)) = (Nat.div n p). -Axiom thm_MOD_MULT2 : forall m : nat, forall n : nat, forall p : nat, (Nat.modulo (Nat.mul m n) (Nat.mul m p)) = (Nat.mul m (Nat.modulo n p)). -Axiom thm_MOD_EXISTS : forall m : nat, forall n : nat, (exists q : nat, m = (Nat.mul n q)) = (@COND Prop (n = (NUMERAL 0)) (m = (NUMERAL 0)) ((Nat.modulo m n) = (NUMERAL 0))). -Axiom thm_LE_RDIV_EQ : forall a : nat, forall b : nat, forall n : nat, (~ (a = (NUMERAL 0))) -> (Peano.le n (Nat.div b a)) = (Peano.le (Nat.mul a n) b). -Axiom thm_RDIV_LT_EQ : forall a : nat, forall b : nat, forall n : nat, (~ (a = (NUMERAL 0))) -> (Peano.lt (Nat.div b a) n) = (Peano.lt b (Nat.mul a n)). -Axiom thm_LE_LDIV_EQ : forall a : nat, forall b : nat, forall n : nat, (~ (a = (NUMERAL 0))) -> (Peano.le (Nat.div b a) n) = (Peano.lt b (Nat.mul a (Nat.add n (NUMERAL (BIT1 0))))). -Axiom thm_LDIV_LT_EQ : forall a : nat, forall b : nat, forall n : nat, (~ (a = (NUMERAL 0))) -> (Peano.lt n (Nat.div b a)) = (Peano.le (Nat.mul a (Nat.add n (NUMERAL (BIT1 0)))) b). -Axiom thm_LE_LDIV : forall a : nat, forall b : nat, forall n : nat, ((~ (a = (NUMERAL 0))) /\ (Peano.le b (Nat.mul a n))) -> Peano.le (Nat.div b a) n. -Axiom thm_DIV_MONO : forall m : nat, forall n : nat, forall p : nat, (Peano.le m n) -> Peano.le (Nat.div m p) (Nat.div n p). -Axiom thm_DIV_MONO_LT : forall m : nat, forall n : nat, forall p : nat, ((~ (p = (NUMERAL 0))) /\ (Peano.le (Nat.add m p) n)) -> Peano.lt (Nat.div m p) (Nat.div n p). -Axiom thm_DIV_EQ_0 : forall m : nat, forall n : nat, (~ (n = (NUMERAL 0))) -> ((Nat.div m n) = (NUMERAL 0)) = (Peano.lt m n). -Axiom thm_MOD_DIV_EQ_0 : forall m : nat, forall n : nat, (~ (n = (NUMERAL 0))) -> (Nat.div (Nat.modulo m n) n) = (NUMERAL 0). -Axiom thm_MOD_EQ_0 : forall m : nat, forall n : nat, ((Nat.modulo m n) = (NUMERAL 0)) = (exists q : nat, m = (Nat.mul q n)). -Axiom thm_DIV_EQ_SELF : forall m : nat, forall n : nat, ((Nat.div m n) = m) = ((m = (NUMERAL 0)) \/ (n = (NUMERAL (BIT1 0)))). -Axiom thm_MOD_REFL : forall n : nat, (Nat.modulo n n) = (NUMERAL 0). -Axiom thm_EVEN_MOD : forall n : nat, (Coq.Arith.PeanoNat.Nat.Even n) = ((Nat.modulo n (NUMERAL (BIT0 (BIT1 0)))) = (NUMERAL 0)). -Axiom thm_ODD_MOD : forall n : nat, (Coq.Arith.PeanoNat.Nat.Odd n) = ((Nat.modulo n (NUMERAL (BIT0 (BIT1 0)))) = (NUMERAL (BIT1 0))). -Axiom thm_MOD_2_CASES : forall n : nat, (Nat.modulo n (NUMERAL (BIT0 (BIT1 0)))) = (@COND nat (Coq.Arith.PeanoNat.Nat.Even n) (NUMERAL 0) (NUMERAL (BIT1 0))). -Axiom thm_EVEN_MOD_EVEN : forall m : nat, forall n : nat, (Coq.Arith.PeanoNat.Nat.Even n) -> (Coq.Arith.PeanoNat.Nat.Even (Nat.modulo m n)) = (Coq.Arith.PeanoNat.Nat.Even m). -Axiom thm_ODD_MOD_EVEN : forall m : nat, forall n : nat, (Coq.Arith.PeanoNat.Nat.Even n) -> (Coq.Arith.PeanoNat.Nat.Odd (Nat.modulo m n)) = (Coq.Arith.PeanoNat.Nat.Odd m). -Axiom thm_HALF_DOUBLE : (forall n : nat, (Nat.div (Nat.mul (NUMERAL (BIT0 (BIT1 0))) n) (NUMERAL (BIT0 (BIT1 0)))) = n) /\ (forall n : nat, (Nat.div (Nat.mul n (NUMERAL (BIT0 (BIT1 0)))) (NUMERAL (BIT0 (BIT1 0)))) = n). -Axiom thm_DOUBLE_HALF : (forall n : nat, (Coq.Arith.PeanoNat.Nat.Even n) -> (Nat.mul (NUMERAL (BIT0 (BIT1 0))) (Nat.div n (NUMERAL (BIT0 (BIT1 0))))) = n) /\ (forall n : nat, (Coq.Arith.PeanoNat.Nat.Even n) -> (Nat.mul (Nat.div n (NUMERAL (BIT0 (BIT1 0)))) (NUMERAL (BIT0 (BIT1 0)))) = n). -Axiom thm_MOD_MULT_RMOD : forall m : nat, forall n : nat, forall p : nat, (Nat.modulo (Nat.mul m (Nat.modulo p n)) n) = (Nat.modulo (Nat.mul m p) n). -Axiom thm_MOD_MULT_LMOD : forall m : nat, forall n : nat, forall p : nat, (Nat.modulo (Nat.mul (Nat.modulo m n) p) n) = (Nat.modulo (Nat.mul m p) n). -Axiom thm_MOD_MULT_MOD2 : forall m : nat, forall n : nat, forall p : nat, (Nat.modulo (Nat.mul (Nat.modulo m n) (Nat.modulo p n)) n) = (Nat.modulo (Nat.mul m p) n). -Axiom thm_MOD_EXP_MOD : forall m : nat, forall n : nat, forall p : nat, (Nat.modulo (Nat.pow (Nat.modulo m n) p) n) = (Nat.modulo (Nat.pow m p) n). -Axiom thm_MOD_MULT_ADD : (forall m : nat, forall n : nat, forall p : nat, (Nat.modulo (Nat.add (Nat.mul m n) p) n) = (Nat.modulo p n)) /\ ((forall m : nat, forall n : nat, forall p : nat, (Nat.modulo (Nat.add (Nat.mul n m) p) n) = (Nat.modulo p n)) /\ ((forall m : nat, forall n : nat, forall p : nat, (Nat.modulo (Nat.add p (Nat.mul m n)) n) = (Nat.modulo p n)) /\ (forall m : nat, forall n : nat, forall p : nat, (Nat.modulo (Nat.add p (Nat.mul n m)) n) = (Nat.modulo p n)))). -Axiom thm_DIV_MULT_ADD : (forall a : nat, forall b : nat, forall n : nat, (~ (n = (NUMERAL 0))) -> (Nat.div (Nat.add (Nat.mul a n) b) n) = (Nat.add a (Nat.div b n))) /\ ((forall a : nat, forall b : nat, forall n : nat, (~ (n = (NUMERAL 0))) -> (Nat.div (Nat.add (Nat.mul n a) b) n) = (Nat.add a (Nat.div b n))) /\ ((forall a : nat, forall b : nat, forall n : nat, (~ (n = (NUMERAL 0))) -> (Nat.div (Nat.add b (Nat.mul a n)) n) = (Nat.add (Nat.div b n) a)) /\ (forall a : nat, forall b : nat, forall n : nat, (~ (n = (NUMERAL 0))) -> (Nat.div (Nat.add b (Nat.mul n a)) n) = (Nat.add (Nat.div b n) a)))). -Axiom thm_MOD_ADD_MOD : forall a : nat, forall b : nat, forall n : nat, (Nat.modulo (Nat.add (Nat.modulo a n) (Nat.modulo b n)) n) = (Nat.modulo (Nat.add a b) n). -Axiom thm_DIV_ADD_MOD : forall a : nat, forall b : nat, forall n : nat, (~ (n = (NUMERAL 0))) -> ((Nat.modulo (Nat.add a b) n) = (Nat.add (Nat.modulo a n) (Nat.modulo b n))) = ((Nat.div (Nat.add a b) n) = (Nat.add (Nat.div a n) (Nat.div b n))). -Axiom thm_MOD_ADD_EQ_EQ : forall n : nat, forall x : nat, forall y : nat, ((Nat.modulo (Nat.add x y) n) = (Nat.add (Nat.modulo x n) (Nat.modulo y n))) = ((n = (NUMERAL 0)) \/ (Peano.lt (Nat.add (Nat.modulo x n) (Nat.modulo y n)) n)). -Axiom thm_DIV_ADD_EQ_EQ : forall n : nat, forall x : nat, forall y : nat, ((Nat.div (Nat.add x y) n) = (Nat.add (Nat.div x n) (Nat.div y n))) = ((n = (NUMERAL 0)) \/ (Peano.lt (Nat.add (Nat.modulo x n) (Nat.modulo y n)) n)). -Axiom thm_DIV_ADD_EQ : forall n : nat, forall x : nat, forall y : nat, (Peano.lt (Nat.add (Nat.modulo x n) (Nat.modulo y n)) n) -> (Nat.div (Nat.add x y) n) = (Nat.add (Nat.div x n) (Nat.div y n)). -Axiom thm_MOD_ADD_EQ : forall n : nat, forall x : nat, forall y : nat, (Peano.lt (Nat.add (Nat.modulo x n) (Nat.modulo y n)) n) -> (Nat.modulo (Nat.add x y) n) = (Nat.add (Nat.modulo x n) (Nat.modulo y n)). -Axiom thm_DIV_REFL : forall n : nat, (~ (n = (NUMERAL 0))) -> (Nat.div n n) = (NUMERAL (BIT1 0)). -Axiom thm_MOD_LE : forall m : nat, forall n : nat, Peano.le (Nat.modulo m n) m. -Axiom thm_DIV_MONO2 : forall m : nat, forall n : nat, forall p : nat, ((~ (p = (NUMERAL 0))) /\ (Peano.le p m)) -> Peano.le (Nat.div n m) (Nat.div n p). -Axiom thm_DIV_LE_EXCLUSION : forall a : nat, forall b : nat, forall c : nat, forall d : nat, ((~ (b = (NUMERAL 0))) /\ (Peano.lt (Nat.mul b c) (Nat.mul (Nat.add a (NUMERAL (BIT1 0))) d))) -> Peano.le (Nat.div c d) (Nat.div a b). -Axiom thm_DIV_EQ_EXCLUSION : forall a : nat, forall b : nat, forall c : nat, forall d : nat, ((Peano.lt (Nat.mul b c) (Nat.mul (Nat.add a (NUMERAL (BIT1 0))) d)) /\ (Peano.lt (Nat.mul a d) (Nat.mul (Nat.add c (NUMERAL (BIT1 0))) b))) -> (Nat.div a b) = (Nat.div c d). -Axiom thm_MULT_DIV_LE : forall m : nat, forall n : nat, forall p : nat, Peano.le (Nat.mul m (Nat.div n p)) (Nat.div (Nat.mul m n) p). -Axiom thm_DIV_DIV : forall m : nat, forall n : nat, forall p : nat, (Nat.div (Nat.div m n) p) = (Nat.div m (Nat.mul n p)). -Axiom thm_DIV_MOD : forall m : nat, forall n : nat, forall p : nat, (Nat.modulo (Nat.div m n) p) = (Nat.div (Nat.modulo m (Nat.mul n p)) n). -Axiom thm_MOD_MULT_MOD : forall m : nat, forall n : nat, forall p : nat, (Nat.modulo m (Nat.mul n p)) = (Nat.add (Nat.mul n (Nat.modulo (Nat.div m n) p)) (Nat.modulo m n)). -Axiom thm_MOD_MOD_EXP_MIN : forall x : nat, forall p : nat, forall m : nat, forall n : nat, (Nat.modulo (Nat.modulo x (Nat.pow p m)) (Nat.pow p n)) = (Nat.modulo x (Nat.pow p (Nat.min m n))). -Axiom thm_MOD_EXP : forall m : nat, forall n : nat, forall p : nat, (~ (m = (NUMERAL 0))) -> (Nat.modulo (Nat.pow m n) (Nat.pow m p)) = (@COND nat ((Peano.le p n) \/ (m = (NUMERAL (BIT1 0)))) (NUMERAL 0) (Nat.pow m n)). -Axiom thm_DIV_EXP : forall m : nat, forall n : nat, forall p : nat, (~ (m = (NUMERAL 0))) -> (Nat.div (Nat.pow m n) (Nat.pow m p)) = (@COND nat (Peano.le p n) (Nat.pow m (Nat.sub n p)) (@COND nat (m = (NUMERAL (BIT1 0))) (NUMERAL (BIT1 0)) (NUMERAL 0))). -Axiom thm_FORALL_LT_MOD_THM : forall P : nat -> Prop, forall n : nat, (forall a : nat, (Peano.lt a n) -> P a) = ((n = (NUMERAL 0)) \/ (forall a : nat, P (Nat.modulo a n))). -Axiom thm_FORALL_MOD_THM : forall P : nat -> Prop, forall n : nat, (~ (n = (NUMERAL 0))) -> (forall a : nat, P (Nat.modulo a n)) = (forall a : nat, (Peano.lt a n) -> P a). -Axiom thm_EXISTS_LT_MOD_THM : forall P : nat -> Prop, forall n : nat, (exists a : nat, (Peano.lt a n) /\ (P a)) = ((~ (n = (NUMERAL 0))) /\ (exists a : nat, P (Nat.modulo a n))). -Axiom thm_EXISTS_MOD_THM : forall P : nat -> Prop, forall n : nat, (~ (n = (NUMERAL 0))) -> (exists a : nat, P (Nat.modulo a n)) = (exists a : nat, (Peano.lt a n) /\ (P a)). -Axiom thm_PRE_ELIM_THM : forall (n : nat) (P : nat -> Prop), (P (Nat.pred n)) = (forall m : nat, ((n = (S m)) \/ ((m = (NUMERAL 0)) /\ (n = (NUMERAL 0)))) -> P m). -Axiom thm_SUB_ELIM_THM : forall (a : nat) (b : nat) (P : nat -> Prop), (P (Nat.sub a b)) = (forall d : nat, ((a = (Nat.add b d)) \/ ((Peano.lt a b) /\ (d = (NUMERAL 0)))) -> P d). -Axiom thm_DIVMOD_ELIM_THM : forall (m : nat) (n : nat) (P : nat -> nat -> Prop), (P (Nat.div m n) (Nat.modulo m n)) = (forall q : nat, forall r : nat, (((n = (NUMERAL 0)) /\ ((q = (NUMERAL 0)) /\ (r = m))) \/ ((m = (Nat.add (Nat.mul q n) r)) /\ (Peano.lt r n))) -> P q r). -Axiom thm_minimal : forall P : nat -> Prop, (minimal P) = (@ε nat (fun n : nat => (P n) /\ (forall m : nat, (Peano.lt m n) -> ~ (P m)))). -Axiom thm_MINIMAL : forall P : nat -> Prop, (exists n : nat, P n) = ((P (minimal P)) /\ (forall m : nat, (Peano.lt m (minimal P)) -> ~ (P m))). -Axiom thm_MINIMAL_UNIQUE : forall P : nat -> Prop, forall n : nat, ((P n) /\ (forall m : nat, (Peano.lt m n) -> ~ (P m))) -> (minimal P) = n. -Axiom thm_LE_MINIMAL : forall P : nat -> Prop, forall n : nat, (exists r : nat, P r) -> (Peano.le n (minimal P)) = (forall i : nat, (P i) -> Peano.le n i). -Axiom thm_MINIMAL_LE : forall P : nat -> Prop, forall n : nat, (exists r : nat, P r) -> (Peano.le (minimal P) n) = (exists i : nat, (Peano.le i n) /\ (P i)). -Axiom thm_MINIMAL_UBOUND : forall P : nat -> Prop, forall n : nat, (P n) -> Peano.le (minimal P) n. -Axiom thm_MINIMAL_LBOUND : forall P : nat -> Prop, forall n : nat, ((exists r : nat, P r) /\ (forall m : nat, (Peano.lt m n) -> ~ (P m))) -> Peano.le n (minimal P). -Axiom thm_MINIMAL_MONO : forall P : nat -> Prop, forall Q : nat -> Prop, ((exists n : nat, P n) /\ (forall n : nat, (P n) -> Q n)) -> Peano.le (minimal Q) (minimal P). -Axiom thm_TRANSITIVE_STEPWISE_LT_EQ : forall R' : nat -> nat -> Prop, (forall x : nat, forall y : nat, forall z : nat, ((R' x y) /\ (R' y z)) -> R' x z) -> (forall m : nat, forall n : nat, (Peano.lt m n) -> R' m n) = (forall n : nat, R' n (S n)). -Axiom thm_TRANSITIVE_STEPWISE_LT : forall R' : nat -> nat -> Prop, ((forall x : nat, forall y : nat, forall z : nat, ((R' x y) /\ (R' y z)) -> R' x z) /\ (forall n : nat, R' n (S n))) -> forall m : nat, forall n : nat, (Peano.lt m n) -> R' m n. -Axiom thm_TRANSITIVE_STEPWISE_LE_EQ : forall R' : nat -> nat -> Prop, ((forall x : nat, R' x x) /\ (forall x : nat, forall y : nat, forall z : nat, ((R' x y) /\ (R' y z)) -> R' x z)) -> (forall m : nat, forall n : nat, (Peano.le m n) -> R' m n) = (forall n : nat, R' n (S n)). -Axiom thm_TRANSITIVE_STEPWISE_LE : forall R' : nat -> nat -> Prop, ((forall x : nat, R' x x) /\ ((forall x : nat, forall y : nat, forall z : nat, ((R' x y) /\ (R' y z)) -> R' x z) /\ (forall n : nat, R' n (S n)))) -> forall m : nat, forall n : nat, (Peano.le m n) -> R' m n. -Axiom thm_DEPENDENT_CHOICE_FIXED : forall {A : Type'}, forall P : nat -> A -> Prop, forall R' : nat -> A -> A -> Prop, forall a : A, ((P (NUMERAL 0) a) /\ (forall n : nat, forall x : A, (P n x) -> exists y : A, (P (S n) y) /\ (R' n x y))) -> exists f : nat -> A, ((f (NUMERAL 0)) = a) /\ ((forall n : nat, P n (f n)) /\ (forall n : nat, R' n (f n) (f (S n)))). -Axiom thm_DEPENDENT_CHOICE : forall {A : Type'}, forall P : nat -> A -> Prop, forall R' : nat -> A -> A -> Prop, ((exists a : A, P (NUMERAL 0) a) /\ (forall n : nat, forall x : A, (P n x) -> exists y : A, (P (S n) y) /\ (R' n x y))) -> exists f : nat -> A, (forall n : nat, P n (f n)) /\ (forall n : nat, R' n (f n) (f (S n))). -Axiom thm_WF : forall {A : Type'}, forall lt2 : A -> A -> Prop, (@WF A lt2) = (forall P : A -> Prop, (exists x : A, P x) -> exists x : A, (P x) /\ (forall y : A, (lt2 y x) -> ~ (P y))). -Axiom thm_WF_EQ : forall {A : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) = (forall P : A -> Prop, (exists x : A, P x) = (exists x : A, (P x) /\ (forall y : A, (lt2 y x) -> ~ (P y)))). -Axiom thm_WF_IND : forall {A : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) = (forall P : A -> Prop, (forall x : A, (forall y : A, (lt2 y x) -> P y) -> P x) -> forall x : A, P x). -Axiom thm_WF_DCHAIN : forall {A : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) = (~ (exists s : nat -> A, forall n : nat, lt2 (s (S n)) (s n))). -Axiom thm_WF_DHAIN_TRANSITIVE : forall {A : Type'}, forall lt2 : A -> A -> Prop, (forall x : A, forall y : A, forall z : A, ((lt2 x y) /\ (lt2 y z)) -> lt2 x z) -> (@WF A lt2) = (~ (exists s : nat -> A, forall i : nat, forall j : nat, (Peano.lt i j) -> lt2 (s j) (s i))). -Axiom thm_WF_UREC : forall {A B : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) -> forall H : (A -> B) -> A -> B, (forall f : A -> B, forall g : A -> B, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (H f x) = (H g x)) -> forall f : A -> B, forall g : A -> B, ((forall x : A, (f x) = (H f x)) /\ (forall x : A, (g x) = (H g x))) -> f = g. -Axiom thm_WF_UREC_WF : forall {A : Type'} (lt2 : A -> A -> Prop), (forall H : (A -> Prop) -> A -> Prop, (forall f : A -> Prop, forall g : A -> Prop, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (H f x) = (H g x)) -> forall f : A -> Prop, forall g : A -> Prop, ((forall x : A, (f x) = (H f x)) /\ (forall x : A, (g x) = (H g x))) -> f = g) -> @WF A lt2. -Axiom thm_WF_REC_INVARIANT : forall {A B : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) -> forall H : (A -> B) -> A -> B, forall S' : A -> B -> Prop, (forall f : A -> B, forall g : A -> B, forall x : A, (forall z : A, (lt2 z x) -> ((f z) = (g z)) /\ (S' z (f z))) -> ((H f x) = (H g x)) /\ (S' x (H f x))) -> exists f : A -> B, forall x : A, (f x) = (H f x). -Axiom thm_WF_REC : forall {A B : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) -> forall H : (A -> B) -> A -> B, (forall f : A -> B, forall g : A -> B, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (H f x) = (H g x)) -> exists f : A -> B, forall x : A, (f x) = (H f x). -Axiom thm_WF_REC_WF : forall {A : Type'} (lt2 : A -> A -> Prop), (forall H : (A -> nat) -> A -> nat, (forall f : A -> nat, forall g : A -> nat, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (H f x) = (H g x)) -> exists f : A -> nat, forall x : A, (f x) = (H f x)) -> @WF A lt2. -Axiom thm_WF_EREC : forall {A B : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) -> forall H : (A -> B) -> A -> B, (forall f : A -> B, forall g : A -> B, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (H f x) = (H g x)) -> @ex1 (A -> B) (fun f : A -> B => forall x : A, (f x) = (H f x)). -Axiom thm_WF_REC_EXISTS : forall {A B : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) -> forall P : (A -> B) -> A -> B -> Prop, ((forall f : A -> B, forall g : A -> B, forall x : A, forall y : B, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (P f x y) = (P g x y)) /\ (forall f : A -> B, forall x : A, (forall z : A, (lt2 z x) -> P f z (f z)) -> exists y : B, P f x y)) -> exists f : A -> B, forall x : A, P f x (f x). -Axiom thm_WF_SUBSET : forall {A : Type'}, forall lt2 : A -> A -> Prop, forall lt3 : A -> A -> Prop, ((forall x : A, forall y : A, (lt2 x y) -> lt3 x y) /\ (@WF A lt3)) -> @WF A lt2. -Axiom thm_WF_RESTRICT : forall {A : Type'}, forall lt2 : A -> A -> Prop, forall P : A -> Prop, (@WF A lt2) -> @WF A (fun x : A => fun y : A => (P x) /\ ((P y) /\ (lt2 x y))). -Axiom thm_WF_MEASURE_GEN : forall {A B : Type'}, forall lt2 : B -> B -> Prop, forall m : A -> B, (@WF B lt2) -> @WF A (fun x : A => fun x' : A => lt2 (m x) (m x')). -Axiom thm_WF_LEX_DEPENDENT : forall {A B : Type'}, forall R' : A -> A -> Prop, forall S' : A -> B -> B -> Prop, ((@WF A R') /\ (forall a : A, @WF B (S' a))) -> @WF (prod A B) (@GABS ((prod A B) -> (prod A B) -> Prop) (fun f : (prod A B) -> (prod A B) -> Prop => forall r1 : A, forall s1 : B, @GEQ ((prod A B) -> Prop) (f (@pair A B r1 s1)) (@GABS ((prod A B) -> Prop) (fun f' : (prod A B) -> Prop => forall r2 : A, forall s2 : B, @GEQ Prop (f' (@pair A B r2 s2)) ((R' r1 r2) \/ ((r1 = r2) /\ (S' r1 s1 s2))))))). -Axiom thm_WF_LEX : forall {A B : Type'}, forall R' : A -> A -> Prop, forall S' : B -> B -> Prop, ((@WF A R') /\ (@WF B S')) -> @WF (prod A B) (@GABS ((prod A B) -> (prod A B) -> Prop) (fun f : (prod A B) -> (prod A B) -> Prop => forall r1 : A, forall s1 : B, @GEQ ((prod A B) -> Prop) (f (@pair A B r1 s1)) (@GABS ((prod A B) -> Prop) (fun f' : (prod A B) -> Prop => forall r2 : A, forall s2 : B, @GEQ Prop (f' (@pair A B r2 s2)) ((R' r1 r2) \/ ((r1 = r2) /\ (S' s1 s2))))))). -Axiom thm_WF_POINTWISE : forall {A B : Type'} (lt2 : A -> A -> Prop) (lt3 : B -> B -> Prop), ((@WF A lt2) /\ (@WF B lt3)) -> @WF (prod A B) (@GABS ((prod A B) -> (prod A B) -> Prop) (fun f : (prod A B) -> (prod A B) -> Prop => forall x1 : A, forall y1 : B, @GEQ ((prod A B) -> Prop) (f (@pair A B x1 y1)) (@GABS ((prod A B) -> Prop) (fun f' : (prod A B) -> Prop => forall x2 : A, forall y2 : B, @GEQ Prop (f' (@pair A B x2 y2)) ((lt2 x1 x2) /\ (lt3 y1 y2)))))). -Axiom thm_WF_num : @WF nat Peano.lt. -Axiom thm_WF_REC_num : forall {A : Type'}, forall H : (nat -> A) -> nat -> A, (forall f : nat -> A, forall g : nat -> A, forall n : nat, (forall m : nat, (Peano.lt m n) -> (f m) = (g m)) -> (H f n) = (H g n)) -> exists f : nat -> A, forall n : nat, (f n) = (H f n). -Axiom thm_MEASURE : forall {A : Type'}, forall m : A -> nat, (@MEASURE A m) = (fun x : A => fun y : A => Peano.lt (m x) (m y)). -Axiom thm_WF_MEASURE : forall {A : Type'}, forall m : A -> nat, @WF A (@MEASURE A m). -Axiom thm_MEASURE_LE : forall {A : Type'} (a : A) (b : A), forall m : A -> nat, (forall y : A, (@MEASURE A m y a) -> @MEASURE A m y b) = (Peano.le (m a) (m b)). -Axiom thm_WF_ANTISYM : forall {A : Type'}, forall lt2 : A -> A -> Prop, forall x : A, forall y : A, (@WF A lt2) -> ~ ((lt2 x y) /\ (lt2 y x)). -Axiom thm_WF_REFL : forall {A : Type'} (lt2 : A -> A -> Prop), forall x : A, (@WF A lt2) -> ~ (lt2 x x). -Axiom thm_WF_FALSE : forall {A : Type'}, @WF A (fun x : A => fun y : A => False). -Axiom thm_MINIMAL_BAD_SEQUENCE : forall {A : Type'}, forall lt2 : A -> A -> Prop, forall bad : (nat -> A) -> Prop, ((@WF A lt2) /\ ((forall x : nat -> A, (~ (bad x)) -> exists n : nat, forall y : nat -> A, (forall k : nat, (Peano.lt k n) -> (y k) = (x k)) -> ~ (bad y)) /\ (exists x : nat -> A, bad x))) -> exists y : nat -> A, (bad y) /\ (forall z : nat -> A, forall n : nat, ((bad z) /\ (forall k : nat, (Peano.lt k n) -> (z k) = (y k))) -> ~ (lt2 (z n) (y n))). -Axiom thm_WF_REC_TAIL : forall {A B : Type'}, forall P : A -> Prop, forall g : A -> A, forall h : A -> B, exists f : A -> B, forall x : A, (f x) = (@COND B (P x) (f (g x)) (h x)). -Axiom thm_WF_REC_TAIL_GENERAL : forall {A B : Type'} (lt2 : A -> A -> Prop), forall P : (A -> B) -> A -> Prop, forall G : (A -> B) -> A -> A, forall H : (A -> B) -> A -> B, ((@WF A lt2) /\ ((forall f : A -> B, forall g : A -> B, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> ((P f x) = (P g x)) /\ (((G f x) = (G g x)) /\ ((H f x) = (H g x)))) /\ ((forall f : A -> B, forall g : A -> B, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (H f x) = (H g x)) /\ (forall f : A -> B, forall x : A, forall y : A, ((P f x) /\ (lt2 y (G f x))) -> lt2 y x)))) -> exists f : A -> B, forall x : A, (f x) = (@COND B (P f x) (f (G f x)) (H f x)). -Axiom thm_ARITH_ZERO : ((NUMERAL (NUMERAL 0)) = (NUMERAL 0)) /\ ((BIT0 0) = 0). -Axiom thm_BIT0_0 : (BIT0 (NUMERAL 0)) = (NUMERAL 0). -Axiom thm_BIT1_0 : (BIT1 (NUMERAL 0)) = (NUMERAL (BIT1 0)). -Axiom thm_ARITH_SUC : (forall n : nat, (S (NUMERAL n)) = (NUMERAL (S n))) /\ (((S 0) = (BIT1 0)) /\ ((forall n : nat, (S (BIT0 n)) = (BIT1 n)) /\ (forall n : nat, (S (BIT1 n)) = (BIT0 (S n))))). -Axiom thm_ARITH_PRE : (forall n : nat, (Nat.pred (NUMERAL n)) = (NUMERAL (Nat.pred n))) /\ (((Nat.pred 0) = 0) /\ ((forall n : nat, (Nat.pred (BIT0 n)) = (@COND nat (n = 0) 0 (BIT1 (Nat.pred n)))) /\ (forall n : nat, (Nat.pred (BIT1 n)) = (BIT0 n)))). -Axiom thm_ARITH_ADD : (forall m : nat, forall n : nat, (Nat.add (NUMERAL m) (NUMERAL n)) = (NUMERAL (Nat.add m n))) /\ (((Nat.add 0 0) = 0) /\ ((forall n : nat, (Nat.add 0 (BIT0 n)) = (BIT0 n)) /\ ((forall n : nat, (Nat.add 0 (BIT1 n)) = (BIT1 n)) /\ ((forall n : nat, (Nat.add (BIT0 n) 0) = (BIT0 n)) /\ ((forall n : nat, (Nat.add (BIT1 n) 0) = (BIT1 n)) /\ ((forall m : nat, forall n : nat, (Nat.add (BIT0 m) (BIT0 n)) = (BIT0 (Nat.add m n))) /\ ((forall m : nat, forall n : nat, (Nat.add (BIT0 m) (BIT1 n)) = (BIT1 (Nat.add m n))) /\ ((forall m : nat, forall n : nat, (Nat.add (BIT1 m) (BIT0 n)) = (BIT1 (Nat.add m n))) /\ (forall m : nat, forall n : nat, (Nat.add (BIT1 m) (BIT1 n)) = (BIT0 (S (Nat.add m n)))))))))))). -Axiom thm_ARITH_MULT : (forall m : nat, forall n : nat, (Nat.mul (NUMERAL m) (NUMERAL n)) = (NUMERAL (Nat.mul m n))) /\ (((Nat.mul 0 0) = 0) /\ ((forall n : nat, (Nat.mul 0 (BIT0 n)) = 0) /\ ((forall n : nat, (Nat.mul 0 (BIT1 n)) = 0) /\ ((forall n : nat, (Nat.mul (BIT0 n) 0) = 0) /\ ((forall n : nat, (Nat.mul (BIT1 n) 0) = 0) /\ ((forall m : nat, forall n : nat, (Nat.mul (BIT0 m) (BIT0 n)) = (BIT0 (BIT0 (Nat.mul m n)))) /\ ((forall m : nat, forall n : nat, (Nat.mul (BIT0 m) (BIT1 n)) = (Nat.add (BIT0 m) (BIT0 (BIT0 (Nat.mul m n))))) /\ ((forall m : nat, forall n : nat, (Nat.mul (BIT1 m) (BIT0 n)) = (Nat.add (BIT0 n) (BIT0 (BIT0 (Nat.mul m n))))) /\ (forall m : nat, forall n : nat, (Nat.mul (BIT1 m) (BIT1 n)) = (Nat.add (BIT1 m) (Nat.add (BIT0 n) (BIT0 (BIT0 (Nat.mul m n)))))))))))))). -Axiom thm_ARITH_EXP : (forall m : nat, forall n : nat, (Nat.pow (NUMERAL m) (NUMERAL n)) = (NUMERAL (Nat.pow m n))) /\ (((Nat.pow 0 0) = (BIT1 0)) /\ ((forall m : nat, (Nat.pow (BIT0 m) 0) = (BIT1 0)) /\ ((forall m : nat, (Nat.pow (BIT1 m) 0) = (BIT1 0)) /\ ((forall n : nat, (Nat.pow 0 (BIT0 n)) = (Nat.mul (Nat.pow 0 n) (Nat.pow 0 n))) /\ ((forall m : nat, forall n : nat, (Nat.pow (BIT0 m) (BIT0 n)) = (Nat.mul (Nat.pow (BIT0 m) n) (Nat.pow (BIT0 m) n))) /\ ((forall m : nat, forall n : nat, (Nat.pow (BIT1 m) (BIT0 n)) = (Nat.mul (Nat.pow (BIT1 m) n) (Nat.pow (BIT1 m) n))) /\ ((forall n : nat, (Nat.pow 0 (BIT1 n)) = 0) /\ ((forall m : nat, forall n : nat, (Nat.pow (BIT0 m) (BIT1 n)) = (Nat.mul (BIT0 m) (Nat.mul (Nat.pow (BIT0 m) n) (Nat.pow (BIT0 m) n)))) /\ (forall m : nat, forall n : nat, (Nat.pow (BIT1 m) (BIT1 n)) = (Nat.mul (BIT1 m) (Nat.mul (Nat.pow (BIT1 m) n) (Nat.pow (BIT1 m) n)))))))))))). -Axiom thm_ARITH_EVEN : (forall n : nat, (Coq.Arith.PeanoNat.Nat.Even (NUMERAL n)) = (Coq.Arith.PeanoNat.Nat.Even n)) /\ (((Coq.Arith.PeanoNat.Nat.Even 0) = True) /\ ((forall n : nat, (Coq.Arith.PeanoNat.Nat.Even (BIT0 n)) = True) /\ (forall n : nat, (Coq.Arith.PeanoNat.Nat.Even (BIT1 n)) = False))). -Axiom thm_ARITH_ODD : (forall n : nat, (Coq.Arith.PeanoNat.Nat.Odd (NUMERAL n)) = (Coq.Arith.PeanoNat.Nat.Odd n)) /\ (((Coq.Arith.PeanoNat.Nat.Odd 0) = False) /\ ((forall n : nat, (Coq.Arith.PeanoNat.Nat.Odd (BIT0 n)) = False) /\ (forall n : nat, (Coq.Arith.PeanoNat.Nat.Odd (BIT1 n)) = True))). -Axiom thm_ARITH_LE : (forall m : nat, forall n : nat, (Peano.le (NUMERAL m) (NUMERAL n)) = (Peano.le m n)) /\ (((Peano.le 0 0) = True) /\ ((forall n : nat, (Peano.le (BIT0 n) 0) = (Peano.le n 0)) /\ ((forall n : nat, (Peano.le (BIT1 n) 0) = False) /\ ((forall n : nat, (Peano.le 0 (BIT0 n)) = True) /\ ((forall n : nat, (Peano.le 0 (BIT1 n)) = True) /\ ((forall m : nat, forall n : nat, (Peano.le (BIT0 m) (BIT0 n)) = (Peano.le m n)) /\ ((forall m : nat, forall n : nat, (Peano.le (BIT0 m) (BIT1 n)) = (Peano.le m n)) /\ ((forall m : nat, forall n : nat, (Peano.le (BIT1 m) (BIT0 n)) = (Peano.lt m n)) /\ (forall m : nat, forall n : nat, (Peano.le (BIT1 m) (BIT1 n)) = (Peano.le m n)))))))))). -Axiom thm_ARITH_LT : (forall m : nat, forall n : nat, (Peano.lt (NUMERAL m) (NUMERAL n)) = (Peano.lt m n)) /\ (((Peano.lt 0 0) = False) /\ ((forall n : nat, (Peano.lt (BIT0 n) 0) = False) /\ ((forall n : nat, (Peano.lt (BIT1 n) 0) = False) /\ ((forall n : nat, (Peano.lt 0 (BIT0 n)) = (Peano.lt 0 n)) /\ ((forall n : nat, (Peano.lt 0 (BIT1 n)) = True) /\ ((forall m : nat, forall n : nat, (Peano.lt (BIT0 m) (BIT0 n)) = (Peano.lt m n)) /\ ((forall m : nat, forall n : nat, (Peano.lt (BIT0 m) (BIT1 n)) = (Peano.le m n)) /\ ((forall m : nat, forall n : nat, (Peano.lt (BIT1 m) (BIT0 n)) = (Peano.lt m n)) /\ (forall m : nat, forall n : nat, (Peano.lt (BIT1 m) (BIT1 n)) = (Peano.lt m n)))))))))). -Axiom thm_ARITH_EQ : (forall m : nat, forall n : nat, ((NUMERAL m) = (NUMERAL n)) = (m = n)) /\ (((0 = 0) = True) /\ ((forall n : nat, ((BIT0 n) = 0) = (n = 0)) /\ ((forall n : nat, ((BIT1 n) = 0) = False) /\ ((forall n : nat, (0 = (BIT0 n)) = (0 = n)) /\ ((forall n : nat, (0 = (BIT1 n)) = False) /\ ((forall m : nat, forall n : nat, ((BIT0 m) = (BIT0 n)) = (m = n)) /\ ((forall m : nat, forall n : nat, ((BIT0 m) = (BIT1 n)) = False) /\ ((forall m : nat, forall n : nat, ((BIT1 m) = (BIT0 n)) = False) /\ (forall m : nat, forall n : nat, ((BIT1 m) = (BIT1 n)) = (m = n)))))))))). -Axiom thm_ARITH_SUB : (forall m : nat, forall n : nat, (Nat.sub (NUMERAL m) (NUMERAL n)) = (NUMERAL (Nat.sub m n))) /\ (((Nat.sub 0 0) = 0) /\ ((forall n : nat, (Nat.sub 0 (BIT0 n)) = 0) /\ ((forall n : nat, (Nat.sub 0 (BIT1 n)) = 0) /\ ((forall n : nat, (Nat.sub (BIT0 n) 0) = (BIT0 n)) /\ ((forall n : nat, (Nat.sub (BIT1 n) 0) = (BIT1 n)) /\ ((forall m : nat, forall n : nat, (Nat.sub (BIT0 m) (BIT0 n)) = (BIT0 (Nat.sub m n))) /\ ((forall m : nat, forall n : nat, (Nat.sub (BIT0 m) (BIT1 n)) = (Nat.pred (BIT0 (Nat.sub m n)))) /\ ((forall m : nat, forall n : nat, (Nat.sub (BIT1 m) (BIT0 n)) = (@COND nat (Peano.le n m) (BIT1 (Nat.sub m n)) 0)) /\ (forall m : nat, forall n : nat, (Nat.sub (BIT1 m) (BIT1 n)) = (BIT0 (Nat.sub m n))))))))))). -Axiom thm_EXP_2_NE_0 : forall n : nat, ~ ((Nat.pow (NUMERAL (BIT0 (BIT1 0))) n) = (NUMERAL 0)). -Axiom thm_INJ_INVERSE2 : forall {A B C : Type'}, forall P : A -> B -> C, (forall x1 : A, forall y1 : B, forall x2 : A, forall y2 : B, ((P x1 y1) = (P x2 y2)) = ((x1 = x2) /\ (y1 = y2))) -> exists X : C -> A, exists Y : C -> B, forall x : A, forall y : B, ((X (P x y)) = x) /\ ((Y (P x y)) = y). -Axiom thm_NUMPAIR : forall x : nat, forall y : nat, (NUMPAIR x y) = (Nat.mul (Nat.pow (NUMERAL (BIT0 (BIT1 0))) x) (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) y) (NUMERAL (BIT1 0)))). -Axiom thm_NUMPAIR_INJ_LEMMA : forall x1 : nat, forall y1 : nat, forall x2 : nat, forall y2 : nat, ((NUMPAIR x1 y1) = (NUMPAIR x2 y2)) -> x1 = x2. -Axiom thm_NUMPAIR_INJ : forall x1 : nat, forall y1 : nat, forall x2 : nat, forall y2 : nat, ((NUMPAIR x1 y1) = (NUMPAIR x2 y2)) = ((x1 = x2) /\ (y1 = y2)). -Axiom thm_NUMSUM : forall b : Prop, forall x : nat, (NUMSUM b x) = (@COND nat b (S (Nat.mul (NUMERAL (BIT0 (BIT1 0))) x)) (Nat.mul (NUMERAL (BIT0 (BIT1 0))) x)). -Axiom thm_NUMSUM_INJ : forall b1 : Prop, forall x1 : nat, forall b2 : Prop, forall x2 : nat, ((NUMSUM b1 x1) = (NUMSUM b2 x2)) = ((b1 = b2) /\ (x1 = x2)). -Axiom thm_INJN : forall {A : Type'}, forall m : nat, (@INJN A m) = (fun n : nat => fun a : A => n = m). -Axiom thm_INJN_INJ : forall {A : Type'}, forall n1 : nat, forall n2 : nat, ((@INJN A n1) = (@INJN A n2)) = (n1 = n2). -Axiom thm_INJA : forall {A : Type'}, forall a : A, (@INJA A a) = (fun n : nat => fun b : A => b = a). -Axiom thm_INJA_INJ : forall {A : Type'}, forall a1 : A, forall a2 : A, ((@INJA A a1) = (@INJA A a2)) = (a1 = a2). -Axiom thm_INJF : forall {A : Type'}, forall f : nat -> nat -> A -> Prop, (@INJF A f) = (fun n : nat => f (NUMFST n) (NUMSND n)). -Axiom thm_INJF_INJ : forall {A : Type'}, forall f1 : nat -> nat -> A -> Prop, forall f2 : nat -> nat -> A -> Prop, ((@INJF A f1) = (@INJF A f2)) = (f1 = f2). -Axiom thm_INJP : forall {A : Type'}, forall f1 : nat -> A -> Prop, forall f2 : nat -> A -> Prop, (@INJP A f1 f2) = (fun n : nat => fun a : A => @COND Prop (NUMLEFT n) (f1 (NUMRIGHT n) a) (f2 (NUMRIGHT n) a)). -Axiom thm_INJP_INJ : forall {A : Type'}, forall f1 : nat -> A -> Prop, forall f1' : nat -> A -> Prop, forall f2 : nat -> A -> Prop, forall f2' : nat -> A -> Prop, ((@INJP A f1 f2) = (@INJP A f1' f2')) = ((f1 = f1') /\ (f2 = f2')). -Axiom thm_ZCONSTR : forall {A : Type'}, forall c : nat, forall i : A, forall r : nat -> nat -> A -> Prop, (@ZCONSTR A c i r) = (@INJP A (@INJN A (S c)) (@INJP A (@INJA A i) (@INJF A r))). -Axiom thm_ZBOT : forall {A : Type'}, (@ZBOT A) = (@INJP A (@INJN A (NUMERAL 0)) (@ε (nat -> A -> Prop) (fun z : nat -> A -> Prop => True))). -Axiom thm_ZCONSTR_ZBOT : forall {A : Type'}, forall c : nat, forall i : A, forall r : nat -> nat -> A -> Prop, ~ ((@ZCONSTR A c i r) = (@ZBOT A)). -Axiom thm_ZRECSPACE_RULES : forall {A : Type'}, (@ZRECSPACE A (@ZBOT A)) /\ (forall c : nat, forall i : A, forall r : nat -> nat -> A -> Prop, (forall n : nat, @ZRECSPACE A (r n)) -> @ZRECSPACE A (@ZCONSTR A c i r)). -Axiom thm_ZRECSPACE_CASES : forall {A : Type'}, forall a : nat -> A -> Prop, (@ZRECSPACE A a) = ((a = (@ZBOT A)) \/ (exists c : nat, exists i : A, exists r : nat -> nat -> A -> Prop, (a = (@ZCONSTR A c i r)) /\ (forall n : nat, @ZRECSPACE A (r n)))). -Axiom thm_ZRECSPACE_INDUCT : forall {A : Type'}, forall ZRECSPACE' : (nat -> A -> Prop) -> Prop, ((ZRECSPACE' (@ZBOT A)) /\ (forall c : nat, forall i : A, forall r : nat -> nat -> A -> Prop, (forall n : nat, ZRECSPACE' (r n)) -> ZRECSPACE' (@ZCONSTR A c i r))) -> forall a : nat -> A -> Prop, (@ZRECSPACE A a) -> ZRECSPACE' a. -Axiom thm_BOTTOM : forall {A : Type'}, (@BOTTOM A) = (@_mk_rec A (@ZBOT A)). -Axiom thm_CONSTR : forall {A : Type'}, forall c : nat, forall i : A, forall r : nat -> recspace A, (@CONSTR A c i r) = (@_mk_rec A (@ZCONSTR A c i (fun n : nat => @_dest_rec A (r n)))). -Axiom thm_MK_REC_INJ : forall {A : Type'}, forall x : nat -> A -> Prop, forall y : nat -> A -> Prop, ((@_mk_rec A x) = (@_mk_rec A y)) -> ((@ZRECSPACE A x) /\ (@ZRECSPACE A y)) -> x = y. -Axiom thm_DEST_REC_INJ : forall {A : Type'}, forall x : recspace A, forall y : recspace A, ((@_dest_rec A x) = (@_dest_rec A y)) = (x = y). -Axiom thm_CONSTR_BOT : forall {A : Type'}, forall c : nat, forall i : A, forall r : nat -> recspace A, ~ ((@CONSTR A c i r) = (@BOTTOM A)). -Axiom thm_CONSTR_INJ : forall {A : Type'}, forall c1 : nat, forall i1 : A, forall r1 : nat -> recspace A, forall c2 : nat, forall i2 : A, forall r2 : nat -> recspace A, ((@CONSTR A c1 i1 r1) = (@CONSTR A c2 i2 r2)) = ((c1 = c2) /\ ((i1 = i2) /\ (r1 = r2))). -Axiom thm_CONSTR_IND : forall {A : Type'}, forall P : (recspace A) -> Prop, ((P (@BOTTOM A)) /\ (forall c : nat, forall i : A, forall r : nat -> recspace A, (forall n : nat, P (r n)) -> P (@CONSTR A c i r))) -> forall x : recspace A, P x. -Axiom thm_CONSTR_REC : forall {A B : Type'}, forall Fn : nat -> A -> (nat -> recspace A) -> (nat -> B) -> B, exists f : (recspace A) -> B, forall c : nat, forall i : A, forall r : nat -> recspace A, (f (@CONSTR A c i r)) = (Fn c i r (fun n : nat => f (r n))). -Axiom thm_FCONS : forall {A : Type'}, (forall a : A, forall f : nat -> A, (@FCONS A a f (NUMERAL 0)) = a) /\ (forall a : A, forall f : nat -> A, forall n : nat, (@FCONS A a f (S n)) = (f n)). -Axiom thm_FCONS_UNDO : forall {A : Type'}, forall f : nat -> A, f = (@FCONS A (f (NUMERAL 0)) (@o nat nat A f S)). -Axiom thm_FNIL : forall {A : Type'}, forall n : nat, (@FNIL A n) = (@ε A (fun x : A => True)). -Axiom thm_sum_INDUCT : forall {A B : Type'}, forall P : (Datatypes.sum A B) -> Prop, ((forall a : A, P (@inl A B a)) /\ (forall a : B, P (@inr A B a))) -> forall x : Datatypes.sum A B, P x. -Axiom thm_sum_RECURSION : forall {A B Z : Type'}, forall INL' : A -> Z, forall INR' : B -> Z, exists fn : (Datatypes.sum A B) -> Z, (forall a : A, (fn (@inl A B a)) = (INL' a)) /\ (forall a : B, (fn (@inr A B a)) = (INR' a)). -Axiom thm_OUTL : forall {A B : Type'} (x : A), (@OUTL A B (@inl A B x)) = x. -Axiom thm_OUTR : forall {A B : Type'} (y : B), (@OUTR A B (@inr A B y)) = y. -Axiom thm_option_INDUCT : forall {A : Type'}, forall P : (option A) -> Prop, ((P (@None A)) /\ (forall a : A, P (@Some A a))) -> forall x : option A, P x. -Axiom thm_option_RECURSION : forall {A Z : Type'}, forall NONE' : Z, forall SOME' : A -> Z, exists fn : (option A) -> Z, ((fn (@None A)) = NONE') /\ (forall a : A, (fn (@Some A a)) = (SOME' a)). -Axiom thm_list_INDUCT : forall {A : Type'}, forall P : (list A) -> Prop, ((P (@nil A)) /\ (forall a0 : A, forall a1 : list A, (P a1) -> P (@cons A a0 a1))) -> forall x : list A, P x. -Axiom thm_list_RECURSION : forall {A Z : Type'}, forall NIL' : Z, forall CONS' : A -> (list A) -> Z -> Z, exists fn : (list A) -> Z, ((fn (@nil A)) = NIL') /\ (forall a0 : A, forall a1 : list A, (fn (@cons A a0 a1)) = (CONS' a0 a1 (fn a1))). -Axiom thm_FORALL_OPTION_THM : forall {A : Type'}, forall P : (option A) -> Prop, (forall x : option A, P x) = ((P (@None A)) /\ (forall a : A, P (@Some A a))). -Axiom thm_EXISTS_OPTION_THM : forall {A : Type'}, forall P : (option A) -> Prop, (exists x : option A, P x) = ((P (@None A)) \/ (exists a : A, P (@Some A a))). -Axiom thm_option_DISTINCT : forall {A : Type'}, forall a : A, ~ ((@Some A a) = (@None A)). -Axiom thm_option_INJ : forall {A : Type'}, forall a : A, forall b : A, ((@Some A a) = (@Some A b)) = (a = b). -Axiom thm_ISO : forall {A B : Type'}, forall g : B -> A, forall f : A -> B, (@ExtensionalityFacts.is_inverse A B f g) = ((forall x : B, (f (g x)) = x) /\ (forall y : A, (g (f y)) = y)). -Axiom thm_ISO_REFL : forall {A : Type'}, @ExtensionalityFacts.is_inverse A A (fun x : A => x) (fun x : A => x). -Axiom thm_ISO_FUN : forall {A A' B B' : Type'} (g : B -> B') (f' : A' -> A) (g' : B' -> B) (f : A -> A'), ((@ExtensionalityFacts.is_inverse A A' f f') /\ (@ExtensionalityFacts.is_inverse B B' g g')) -> @ExtensionalityFacts.is_inverse (A -> B) (A' -> B') (fun h : A -> B => fun a' : A' => g (h (f' a'))) (fun h : A' -> B' => fun a : A => g' (h (f a))). -Axiom thm_ISO_USAGE : forall {A B : Type'} (g : B -> A) (f : A -> B), (@ExtensionalityFacts.is_inverse A B f g) -> (forall P : A -> Prop, (forall x : A, P x) = (forall x : B, P (g x))) /\ ((forall P : A -> Prop, (exists x : A, P x) = (exists x : B, P (g x))) /\ (forall a : A, forall b : B, (a = (g b)) = ((f a) = b))). -Axiom thm_HD : forall {A : Type'} (t : list A) (h : A), (@hd A (@cons A h t)) = h. -Axiom thm_TL : forall {A : Type'} (h : A) (t : list A), (@tl A (@cons A h t)) = t. -Axiom thm_APPEND : forall {A : Type'}, (forall l : list A, (@List.app A (@nil A) l) = l) /\ (forall h : A, forall t : list A, forall l : list A, (@List.app A (@cons A h t) l) = (@cons A h (@List.app A t l))). -Axiom thm_REVERSE : forall {A : Type'} (l : list A) (x : A), ((@List.rev A (@nil A)) = (@nil A)) /\ ((@List.rev A (@cons A x l)) = (@List.app A (@List.rev A l) (@cons A x (@nil A)))). -Axiom thm_LENGTH : forall {A : Type'}, ((@List.length A (@nil A)) = (NUMERAL 0)) /\ (forall h : A, forall t : list A, (@List.length A (@cons A h t)) = (S (@List.length A t))). -Axiom thm_MAP : forall {A B : Type'}, (forall f : A -> B, (@List.map A B f (@nil A)) = (@nil B)) /\ (forall f : A -> B, forall h : A, forall t : list A, (@List.map A B f (@cons A h t)) = (@cons B (f h) (@List.map A B f t))). -Axiom thm_LAST : forall {A : Type'} (h : A) (t : list A), (@LAST A (@cons A h t)) = (@COND A (t = (@nil A)) h (@LAST A t)). -Axiom thm_BUTLAST : forall {A : Type'} (h : A) (t : list A), ((@List.removelast A (@nil A)) = (@nil A)) /\ ((@List.removelast A (@cons A h t)) = (@COND (list A) (t = (@nil A)) (@nil A) (@cons A h (@List.removelast A t)))). -Axiom thm_REPLICATE : forall {A : Type'} (n : nat) (x : A), ((@repeat_with_perm_args A (NUMERAL 0) x) = (@nil A)) /\ ((@repeat_with_perm_args A (S n) x) = (@cons A x (@repeat_with_perm_args A n x))). -Axiom thm_NULL : forall {A : Type'} (h : A) (t : list A), ((@NULL A (@nil A)) = True) /\ ((@NULL A (@cons A h t)) = False). -Axiom thm_ALL : forall {A : Type'} (h : A) (P : A -> Prop) (t : list A), ((@List.Forall A P (@nil A)) = True) /\ ((@List.Forall A P (@cons A h t)) = ((P h) /\ (@List.Forall A P t))). -Axiom thm_EX : forall {A : Type'} (h : A) (P : A -> Prop) (t : list A), ((@EX A P (@nil A)) = False) /\ ((@EX A P (@cons A h t)) = ((P h) \/ (@EX A P t))). -Axiom thm_ITLIST : forall {A B : Type'} (h : A) (f : A -> B -> B) (t : list A) (b : B), ((@ITLIST A B f (@nil A) b) = b) /\ ((@ITLIST A B f (@cons A h t) b) = (f h (@ITLIST A B f t b))). -Axiom thm_MEM : forall {A : Type'} (h : A) (x : A) (t : list A), ((@List.In A x (@nil A)) = False) /\ ((@List.In A x (@cons A h t)) = ((x = h) \/ (@List.In A x t))). -Axiom thm_ALL2_DEF : forall {A B : Type'} (h1' : A) (P : A -> B -> Prop) (t1 : list A) (l2 : list B), ((@ALL2 A B P (@nil A) l2) = (l2 = (@nil B))) /\ ((@ALL2 A B P (@cons A h1' t1) l2) = (@COND Prop (l2 = (@nil B)) False ((P h1' (@hd B l2)) /\ (@ALL2 A B P t1 (@tl B l2))))). -Axiom thm_ALL2 : forall {A B : Type'} (h1' : A) (h2' : B) (P : A -> B -> Prop) (t1 : list A) (t2 : list B), ((@ALL2 A B P (@nil A) (@nil B)) = True) /\ (((@ALL2 A B P (@cons A h1' t1) (@nil B)) = False) /\ (((@ALL2 A B P (@nil A) (@cons B h2' t2)) = False) /\ ((@ALL2 A B P (@cons A h1' t1) (@cons B h2' t2)) = ((P h1' h2') /\ (@ALL2 A B P t1 t2))))). -Axiom thm_MAP2_DEF : forall {A B C : Type'} (h1' : A) (f : A -> B -> C) (t1 : list A) (l : list B), ((@MAP2 A B C f (@nil A) l) = (@nil C)) /\ ((@MAP2 A B C f (@cons A h1' t1) l) = (@cons C (f h1' (@hd B l)) (@MAP2 A B C f t1 (@tl B l)))). -Axiom thm_MAP2 : forall {A B C : Type'} (h1' : A) (h2' : B) (f : A -> B -> C) (t1 : list A) (t2 : list B), ((@MAP2 A B C f (@nil A) (@nil B)) = (@nil C)) /\ ((@MAP2 A B C f (@cons A h1' t1) (@cons B h2' t2)) = (@cons C (f h1' h2') (@MAP2 A B C f t1 t2))). -Axiom thm_EL : forall {A : Type'} (n : nat) (l : list A), ((@EL A (NUMERAL 0) l) = (@hd A l)) /\ ((@EL A (S n) l) = (@EL A n (@tl A l))). -Axiom thm_FILTER : forall {A : Type'} (h : A) (P : A -> Prop) (t : list A), ((@FILTER A P (@nil A)) = (@nil A)) /\ ((@FILTER A P (@cons A h t)) = (@COND (list A) (P h) (@cons A h (@FILTER A P t)) (@FILTER A P t))). -Axiom thm_ASSOC : forall {A B : Type'} (h : prod A B) (a : A) (t : list (prod A B)), (@ASSOC A B a (@cons (prod A B) h t)) = (@COND B ((@fst A B h) = a) (@snd A B h) (@ASSOC A B a t)). -Axiom thm_ITLIST2_DEF : forall {A B C : Type'} (h1' : A) (f : A -> B -> C -> C) (t1 : list A) (l2 : list B) (b : C), ((@ITLIST2 A B C f (@nil A) l2 b) = b) /\ ((@ITLIST2 A B C f (@cons A h1' t1) l2 b) = (f h1' (@hd B l2) (@ITLIST2 A B C f t1 (@tl B l2) b))). -Axiom thm_ITLIST2 : forall {A B C : Type'} (h1' : A) (h2' : B) (f : A -> B -> C -> C) (t1 : list A) (t2 : list B) (b : C), ((@ITLIST2 A B C f (@nil A) (@nil B) b) = b) /\ ((@ITLIST2 A B C f (@cons A h1' t1) (@cons B h2' t2) b) = (f h1' h2' (@ITLIST2 A B C f t1 t2 b))). -Axiom thm_ZIP_DEF : forall {A B : Type'} (h1' : A) (t1 : list A) (l2 : list B), ((@ZIP A B (@nil A) l2) = (@nil (prod A B))) /\ ((@ZIP A B (@cons A h1' t1) l2) = (@cons (prod A B) (@pair A B h1' (@hd B l2)) (@ZIP A B t1 (@tl B l2)))). -Axiom thm_ZIP : forall {A B : Type'} (h1' : A) (h2' : B) (t1 : list A) (t2 : list B), ((@ZIP A B (@nil A) (@nil B)) = (@nil (prod A B))) /\ ((@ZIP A B (@cons A h1' t1) (@cons B h2' t2)) = (@cons (prod A B) (@pair A B h1' h2') (@ZIP A B t1 t2))). -Axiom thm_ALLPAIRS : forall {A B : Type'} (h : A) (f : A -> B -> Prop) (t : list A) (l : list B), ((@ALLPAIRS A B f (@nil A) l) = True) /\ ((@ALLPAIRS A B f (@cons A h t) l) = ((@List.Forall B (f h) l) /\ (@ALLPAIRS A B f t l))). -Axiom thm_PAIRWISE : forall {A : Type'} (h : A) (r : A -> A -> Prop) (t : list A), ((@List.ForallOrdPairs A r (@nil A)) = True) /\ ((@List.ForallOrdPairs A r (@cons A h t)) = ((@List.Forall A (r h) t) /\ (@List.ForallOrdPairs A r t))). -Axiom thm_list_of_seq : forall {A : Type'} (s : nat -> A) (n : nat), ((@list_of_seq A s (NUMERAL 0)) = (@nil A)) /\ ((@list_of_seq A s (S n)) = (@List.app A (@list_of_seq A s n) (@cons A (s n) (@nil A)))). -Axiom thm_NOT_CONS_NIL : forall {A : Type'}, forall h : A, forall t : list A, ~ ((@cons A h t) = (@nil A)). -Axiom thm_LAST_CLAUSES : forall {A : Type'} (h : A) (k : A) (t : list A), ((@LAST A (@cons A h (@nil A))) = h) /\ ((@LAST A (@cons A h (@cons A k t))) = (@LAST A (@cons A k t))). -Axiom thm_APPEND_NIL : forall {A : Type'}, forall l : list A, (@List.app A l (@nil A)) = l. -Axiom thm_APPEND_ASSOC : forall {A : Type'}, forall l : list A, forall m : list A, forall n : list A, (@List.app A l (@List.app A m n)) = (@List.app A (@List.app A l m) n). -Axiom thm_REVERSE_APPEND : forall {A : Type'}, forall l : list A, forall m : list A, (@List.rev A (@List.app A l m)) = (@List.app A (@List.rev A m) (@List.rev A l)). -Axiom thm_REVERSE_REVERSE : forall {A : Type'}, forall l : list A, (@List.rev A (@List.rev A l)) = l. -Axiom thm_REVERSE_EQ_EMPTY : forall {A : Type'}, forall l : list A, ((@List.rev A l) = (@nil A)) = (l = (@nil A)). -Axiom thm_CONS_11 : forall {A : Type'}, forall h1' : A, forall h2' : A, forall t1 : list A, forall t2 : list A, ((@cons A h1' t1) = (@cons A h2' t2)) = ((h1' = h2') /\ (t1 = t2)). -Axiom thm_list_CASES : forall {A : Type'}, forall l : list A, (l = (@nil A)) \/ (exists h : A, exists t : list A, l = (@cons A h t)). -Axiom thm_LIST_EQ : forall {A : Type'}, forall l1 : list A, forall l2 : list A, (l1 = l2) = (((@List.length A l1) = (@List.length A l2)) /\ (forall n : nat, (Peano.lt n (@List.length A l2)) -> (@EL A n l1) = (@EL A n l2))). -Axiom thm_LENGTH_APPEND : forall {A : Type'}, forall l : list A, forall m : list A, (@List.length A (@List.app A l m)) = (Nat.add (@List.length A l) (@List.length A m)). -Axiom thm_MAP_APPEND : forall {A B : Type'}, forall f : A -> B, forall l1 : list A, forall l2 : list A, (@List.map A B f (@List.app A l1 l2)) = (@List.app B (@List.map A B f l1) (@List.map A B f l2)). -Axiom thm_LENGTH_MAP : forall {A B : Type'}, forall l : list A, forall f : A -> B, (@List.length B (@List.map A B f l)) = (@List.length A l). -Axiom thm_LENGTH_EQ_NIL : forall {A : Type'}, forall l : list A, ((@List.length A l) = (NUMERAL 0)) = (l = (@nil A)). -Axiom thm_LENGTH_EQ_CONS : forall {A : Type'}, forall l : list A, forall n : nat, ((@List.length A l) = (S n)) = (exists h : A, exists t : list A, (l = (@cons A h t)) /\ ((@List.length A t) = n)). -Axiom thm_LENGTH_REVERSE : forall {A : Type'}, forall l : list A, (@List.length A (@List.rev A l)) = (@List.length A l). -Axiom thm_MAP_o : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall l : list A, (@List.map A C (@o A B C g f) l) = (@List.map B C g (@List.map A B f l)). -Axiom thm_MAP_EQ : forall {A B : Type'}, forall f : A -> B, forall g : A -> B, forall l : list A, (@List.Forall A (fun x : A => (f x) = (g x)) l) -> (@List.map A B f l) = (@List.map A B g l). -Axiom thm_ALL_IMP : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, forall l : list A, ((forall x : A, ((@List.In A x l) /\ (P x)) -> Q x) /\ (@List.Forall A P l)) -> @List.Forall A Q l. -Axiom thm_NOT_EX : forall {A : Type'}, forall P : A -> Prop, forall l : list A, (~ (@EX A P l)) = (@List.Forall A (fun x : A => ~ (P x)) l). -Axiom thm_NOT_ALL : forall {A : Type'}, forall P : A -> Prop, forall l : list A, (~ (@List.Forall A P l)) = (@EX A (fun x : A => ~ (P x)) l). -Axiom thm_ALL_MAP : forall {A B : Type'}, forall P : B -> Prop, forall f : A -> B, forall l : list A, (@List.Forall B P (@List.map A B f l)) = (@List.Forall A (@o A B Prop P f) l). -Axiom thm_ALL_EQ : forall {A : Type'} (R' : A -> Prop) (P : A -> Prop) (Q : A -> Prop), forall l : list A, ((@List.Forall A R' l) /\ (forall x : A, (R' x) -> (P x) = (Q x))) -> (@List.Forall A P l) = (@List.Forall A Q l). -Axiom thm_ALL_T : forall {A : Type'}, forall l : list A, @List.Forall A (fun x : A => True) l. -Axiom thm_MAP_EQ_ALL2 : forall {A B : Type'}, forall f : A -> B, forall l : list A, forall m : list A, (@ALL2 A A (fun x : A => fun y : A => (f x) = (f y)) l m) -> (@List.map A B f l) = (@List.map A B f m). -Axiom thm_ALL2_MAP : forall {A B : Type'}, forall P : B -> A -> Prop, forall f : A -> B, forall l : list A, (@ALL2 B A P (@List.map A B f l) l) = (@List.Forall A (fun a : A => P (f a) a) l). -Axiom thm_MAP_EQ_DEGEN : forall {A : Type'}, forall l : list A, forall f : A -> A, (@List.Forall A (fun x : A => (f x) = x) l) -> (@List.map A A f l) = l. -Axiom thm_ALL2_AND_RIGHT : forall {A B : Type'}, forall l : list A, forall m : list B, forall P : A -> Prop, forall Q : A -> B -> Prop, (@ALL2 A B (fun x : A => fun y : B => (P x) /\ (Q x y)) l m) = ((@List.Forall A P l) /\ (@ALL2 A B Q l m)). -Axiom thm_ITLIST_APPEND : forall {A B : Type'}, forall f : A -> B -> B, forall a : B, forall l1 : list A, forall l2 : list A, (@ITLIST A B f (@List.app A l1 l2) a) = (@ITLIST A B f l1 (@ITLIST A B f l2 a)). -Axiom thm_ITLIST_EXTRA : forall {A B : Type'} (a : A) (b : B), forall f : A -> B -> B, forall l : list A, (@ITLIST A B f (@List.app A l (@cons A a (@nil A))) b) = (@ITLIST A B f l (f a b)). -Axiom thm_ALL_MP : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, forall l : list A, ((@List.Forall A (fun x : A => (P x) -> Q x) l) /\ (@List.Forall A P l)) -> @List.Forall A Q l. -Axiom thm_AND_ALL : forall {A : Type'} (P : A -> Prop) (Q : A -> Prop), forall l : list A, ((@List.Forall A P l) /\ (@List.Forall A Q l)) = (@List.Forall A (fun x : A => (P x) /\ (Q x)) l). -Axiom thm_EX_IMP : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, forall l : list A, ((forall x : A, ((@List.In A x l) /\ (P x)) -> Q x) /\ (@EX A P l)) -> @EX A Q l. -Axiom thm_ALL_MEM : forall {A : Type'}, forall P : A -> Prop, forall l : list A, (forall x : A, (@List.In A x l) -> P x) = (@List.Forall A P l). -Axiom thm_LENGTH_REPLICATE : forall {A : Type'}, forall n : nat, forall x : A, (@List.length A (@repeat_with_perm_args A n x)) = n. -Axiom thm_MEM_REPLICATE : forall {A : Type'}, forall n : nat, forall x : A, forall y : A, (@List.In A x (@repeat_with_perm_args A n y)) = ((x = y) /\ (~ (n = (NUMERAL 0)))). -Axiom thm_EX_MAP : forall {A B : Type'}, forall P : B -> Prop, forall f : A -> B, forall l : list A, (@EX B P (@List.map A B f l)) = (@EX A (@o A B Prop P f) l). -Axiom thm_EXISTS_EX : forall {A B : Type'}, forall P : A -> B -> Prop, forall l : list B, (exists x : A, @EX B (P x) l) = (@EX B (fun s : B => exists x : A, P x s) l). -Axiom thm_FORALL_ALL : forall {A B : Type'}, forall P : A -> B -> Prop, forall l : list B, (forall x : A, @List.Forall B (P x) l) = (@List.Forall B (fun s : B => forall x : A, P x s) l). -Axiom thm_MEM_APPEND : forall {A : Type'}, forall x : A, forall l1 : list A, forall l2 : list A, (@List.In A x (@List.app A l1 l2)) = ((@List.In A x l1) \/ (@List.In A x l2)). -Axiom thm_MEM_MAP : forall {A B : Type'}, forall f : A -> B, forall y : B, forall l : list A, (@List.In B y (@List.map A B f l)) = (exists x : A, (@List.In A x l) /\ (y = (f x))). -Axiom thm_FILTER_APPEND : forall {A : Type'}, forall P : A -> Prop, forall l1 : list A, forall l2 : list A, (@FILTER A P (@List.app A l1 l2)) = (@List.app A (@FILTER A P l1) (@FILTER A P l2)). -Axiom thm_FILTER_MAP : forall {A B : Type'}, forall P : B -> Prop, forall f : A -> B, forall l : list A, (@FILTER B P (@List.map A B f l)) = (@List.map A B f (@FILTER A (@o A B Prop P f) l)). -Axiom thm_MEM_FILTER : forall {A : Type'}, forall P : A -> Prop, forall l : list A, forall x : A, (@List.In A x (@FILTER A P l)) = ((P x) /\ (@List.In A x l)). -Axiom thm_EX_MEM : forall {A : Type'}, forall P : A -> Prop, forall l : list A, (exists x : A, (P x) /\ (@List.In A x l)) = (@EX A P l). -Axiom thm_MAP_FST_ZIP : forall {A B : Type'}, forall l1 : list A, forall l2 : list B, ((@List.length A l1) = (@List.length B l2)) -> (@List.map (prod A B) A (@fst A B) (@ZIP A B l1 l2)) = l1. -Axiom thm_MAP_SND_ZIP : forall {A B : Type'}, forall l1 : list A, forall l2 : list B, ((@List.length A l1) = (@List.length B l2)) -> (@List.map (prod A B) B (@snd A B) (@ZIP A B l1 l2)) = l2. -Axiom thm_LENGTH_ZIP : forall {A B : Type'}, forall l1 : list A, forall l2 : list B, ((@List.length A l1) = (@List.length B l2)) -> (@List.length (prod A B) (@ZIP A B l1 l2)) = (@List.length B l2). -Axiom thm_MEM_ASSOC : forall {A B : Type'}, forall l : list (prod A B), forall x : A, (@List.In (prod A B) (@pair A B x (@ASSOC A B x l)) l) = (@List.In A x (@List.map (prod A B) A (@fst A B) l)). -Axiom thm_ALL_APPEND : forall {A : Type'}, forall P : A -> Prop, forall l1 : list A, forall l2 : list A, (@List.Forall A P (@List.app A l1 l2)) = ((@List.Forall A P l1) /\ (@List.Forall A P l2)). -Axiom thm_MEM_EL : forall {A : Type'}, forall l : list A, forall n : nat, (Peano.lt n (@List.length A l)) -> @List.In A (@EL A n l) l. -Axiom thm_MEM_EXISTS_EL : forall {A : Type'}, forall l : list A, forall x : A, (@List.In A x l) = (exists i : nat, (Peano.lt i (@List.length A l)) /\ (x = (@EL A i l))). -Axiom thm_ALL_EL : forall {A : Type'}, forall P : A -> Prop, forall l : list A, (forall i : nat, (Peano.lt i (@List.length A l)) -> P (@EL A i l)) = (@List.Forall A P l). -Axiom thm_ALL2_MAP2 : forall {A B C D : Type'} (P : B -> D -> Prop), forall f : A -> B, forall g : C -> D, forall l : list A, forall m : list C, (@ALL2 B D P (@List.map A B f l) (@List.map C D g m)) = (@ALL2 A C (fun x : A => fun y : C => P (f x) (g y)) l m). -Axiom thm_AND_ALL2 : forall {A B : Type'}, forall P : A -> B -> Prop, forall Q : A -> B -> Prop, forall l : list A, forall m : list B, ((@ALL2 A B P l m) /\ (@ALL2 A B Q l m)) = (@ALL2 A B (fun x : A => fun y : B => (P x y) /\ (Q x y)) l m). -Axiom thm_ALLPAIRS_SYM : forall {A B : Type'}, forall P : A -> B -> Prop, forall l : list A, forall m : list B, (@ALLPAIRS A B P l m) = (@ALLPAIRS B A (fun x : B => fun y : A => P y x) m l). -Axiom thm_ALLPAIRS_MEM : forall {A B : Type'}, forall P : A -> B -> Prop, forall l : list A, forall m : list B, (forall x : A, forall y : B, ((@List.In A x l) /\ (@List.In B y m)) -> P x y) = (@ALLPAIRS A B P l m). -Axiom thm_ALLPAIRS_MAP : forall {A B C D : Type'}, forall P : B -> D -> Prop, forall f : A -> B, forall g : C -> D, forall l : list A, forall m : list C, (@ALLPAIRS B D P (@List.map A B f l) (@List.map C D g m)) = (@ALLPAIRS A C (fun x : A => fun y : C => P (f x) (g y)) l m). -Axiom thm_ALLPAIRS_EQ : forall {A B : Type'} (R' : A -> B -> Prop) (R'' : A -> B -> Prop), forall l : list A, forall m : list B, forall P : A -> Prop, forall Q : B -> Prop, ((@List.Forall A P l) /\ ((@List.Forall B Q m) /\ (forall p : A, forall q : B, ((P p) /\ (Q q)) -> (R' p q) = (R'' p q)))) -> (@ALLPAIRS A B R' l m) = (@ALLPAIRS A B R'' l m). -Axiom thm_ALL2_ALL : forall {A : Type'}, forall P : A -> A -> Prop, forall l : list A, (@ALL2 A A P l l) = (@List.Forall A (fun x : A => P x x) l). -Axiom thm_APPEND_EQ_NIL : forall {A : Type'}, forall l : list A, forall m : list A, ((@List.app A l m) = (@nil A)) = ((l = (@nil A)) /\ (m = (@nil A))). -Axiom thm_APPEND_LCANCEL : forall {A : Type'}, forall l1 : list A, forall l2 : list A, forall l3 : list A, ((@List.app A l1 l2) = (@List.app A l1 l3)) = (l2 = l3). -Axiom thm_APPEND_RCANCEL : forall {A : Type'}, forall l1 : list A, forall l2 : list A, forall l3 : list A, ((@List.app A l1 l3) = (@List.app A l2 l3)) = (l1 = l2). -Axiom thm_LENGTH_MAP2 : forall {A B C : Type'}, forall f : A -> B -> C, forall l : list A, forall m : list B, ((@List.length A l) = (@List.length B m)) -> (@List.length C (@MAP2 A B C f l m)) = (@List.length B m). -Axiom thm_EL_MAP2 : forall {A B C : Type'}, forall f : A -> B -> C, forall l : list A, forall m : list B, forall k : nat, ((Peano.lt k (@List.length A l)) /\ (Peano.lt k (@List.length B m))) -> (@EL C k (@MAP2 A B C f l m)) = (f (@EL A k l) (@EL B k m)). -Axiom thm_MAP_EQ_NIL : forall {A B : Type'}, forall f : A -> B, forall l : list A, ((@List.map A B f l) = (@nil B)) = (l = (@nil A)). -Axiom thm_INJECTIVE_MAP : forall {A B : Type'}, forall f : A -> B, (forall l : list A, forall m : list A, ((@List.map A B f l) = (@List.map A B f m)) -> l = m) = (forall x : A, forall y : A, ((f x) = (f y)) -> x = y). -Axiom thm_SURJECTIVE_MAP : forall {A B : Type'}, forall f : A -> B, (forall m : list B, exists l : list A, (@List.map A B f l) = m) = (forall y : B, exists x : A, (f x) = y). -Axiom thm_MAP_ID : forall {A : Type'}, forall l : list A, (@List.map A A (fun x : A => x) l) = l. -Axiom thm_MAP_I : forall {A : Type'}, (@List.map A A (@I A)) = (@I (list A)). -Axiom thm_BUTLAST_CLAUSES : forall {A : Type'}, ((@List.removelast A (@nil A)) = (@nil A)) /\ ((forall a : A, (@List.removelast A (@cons A a (@nil A))) = (@nil A)) /\ (forall a : A, forall h : A, forall t : list A, (@List.removelast A (@cons A a (@cons A h t))) = (@cons A a (@List.removelast A (@cons A h t))))). -Axiom thm_BUTLAST_APPEND : forall {A : Type'}, forall l : list A, forall m : list A, (@List.removelast A (@List.app A l m)) = (@COND (list A) (m = (@nil A)) (@List.removelast A l) (@List.app A l (@List.removelast A m))). -Axiom thm_APPEND_BUTLAST_LAST : forall {A : Type'}, forall l : list A, (~ (l = (@nil A))) -> (@List.app A (@List.removelast A l) (@cons A (@LAST A l) (@nil A))) = l. -Axiom thm_LAST_APPEND : forall {A : Type'}, forall p : list A, forall q : list A, (@LAST A (@List.app A p q)) = (@COND A (q = (@nil A)) (@LAST A p) (@LAST A q)). -Axiom thm_LENGTH_TL : forall {A : Type'}, forall l : list A, (~ (l = (@nil A))) -> (@List.length A (@tl A l)) = (Nat.sub (@List.length A l) (NUMERAL (BIT1 0))). -Axiom thm_LAST_REVERSE : forall {A : Type'}, forall l : list A, (~ (l = (@nil A))) -> (@LAST A (@List.rev A l)) = (@hd A l). -Axiom thm_HD_REVERSE : forall {A : Type'}, forall l : list A, (~ (l = (@nil A))) -> (@hd A (@List.rev A l)) = (@LAST A l). -Axiom thm_EL_APPEND : forall {A : Type'}, forall k : nat, forall l : list A, forall m : list A, (@EL A k (@List.app A l m)) = (@COND A (Peano.lt k (@List.length A l)) (@EL A k l) (@EL A (Nat.sub k (@List.length A l)) m)). -Axiom thm_EL_TL : forall {A : Type'} (l : list A), forall n : nat, (@EL A n (@tl A l)) = (@EL A (Nat.add n (NUMERAL (BIT1 0))) l). -Axiom thm_EL_CONS : forall {A : Type'}, forall n : nat, forall h : A, forall t : list A, (@EL A n (@cons A h t)) = (@COND A (n = (NUMERAL 0)) h (@EL A (Nat.sub n (NUMERAL (BIT1 0))) t)). -Axiom thm_LAST_EL : forall {A : Type'}, forall l : list A, (~ (l = (@nil A))) -> (@LAST A l) = (@EL A (Nat.sub (@List.length A l) (NUMERAL (BIT1 0))) l). -Axiom thm_HD_APPEND : forall {A : Type'}, forall l : list A, forall m : list A, (@hd A (@List.app A l m)) = (@COND A (l = (@nil A)) (@hd A m) (@hd A l)). -Axiom thm_CONS_HD_TL : forall {A : Type'}, forall l : list A, (~ (l = (@nil A))) -> l = (@cons A (@hd A l) (@tl A l)). -Axiom thm_EL_MAP : forall {A B : Type'}, forall f : A -> B, forall n : nat, forall l : list A, (Peano.lt n (@List.length A l)) -> (@EL B n (@List.map A B f l)) = (f (@EL A n l)). -Axiom thm_MAP_REVERSE : forall {A B : Type'}, forall f : A -> B, forall l : list A, (@List.rev B (@List.map A B f l)) = (@List.map A B f (@List.rev A l)). -Axiom thm_ALL_FILTER : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, forall l : list A, (@List.Forall A P (@FILTER A Q l)) = (@List.Forall A (fun x : A => (Q x) -> P x) l). -Axiom thm_APPEND_SING : forall {A : Type'}, forall h : A, forall t : list A, (@List.app A (@cons A h (@nil A)) t) = (@cons A h t). -Axiom thm_MEM_APPEND_DECOMPOSE_LEFT : forall {A : Type'}, forall x : A, forall l : list A, (@List.In A x l) = (exists l1 : list A, exists l2 : list A, (~ (@List.In A x l1)) /\ (l = (@List.app A l1 (@cons A x l2)))). -Axiom thm_MEM_APPEND_DECOMPOSE : forall {A : Type'}, forall x : A, forall l : list A, (@List.In A x l) = (exists l1 : list A, exists l2 : list A, l = (@List.app A l1 (@cons A x l2))). -Axiom thm_PAIRWISE_APPEND : forall {A : Type'}, forall R' : A -> A -> Prop, forall l : list A, forall m : list A, (@List.ForallOrdPairs A R' (@List.app A l m)) = ((@List.ForallOrdPairs A R' l) /\ ((@List.ForallOrdPairs A R' m) /\ (forall x : A, forall y : A, ((@List.In A x l) /\ (@List.In A y m)) -> R' x y))). -Axiom thm_PAIRWISE_MAP : forall {A B : Type'}, forall R' : B -> B -> Prop, forall f : A -> B, forall l : list A, (@List.ForallOrdPairs B R' (@List.map A B f l)) = (@List.ForallOrdPairs A (fun x : A => fun y : A => R' (f x) (f y)) l). -Axiom thm_PAIRWISE_IMPLIES : forall {A : Type'}, forall R' : A -> A -> Prop, forall R'' : A -> A -> Prop, forall l : list A, ((@List.ForallOrdPairs A R' l) /\ (forall x : A, forall y : A, ((@List.In A x l) /\ ((@List.In A y l) /\ (R' x y))) -> R'' x y)) -> @List.ForallOrdPairs A R'' l. -Axiom thm_PAIRWISE_TRANSITIVE : forall {A : Type'}, forall R' : A -> A -> Prop, forall x : A, forall y : A, forall l : list A, (forall x' : A, forall y' : A, forall z : A, ((R' x' y') /\ (R' y' z)) -> R' x' z) -> (@List.ForallOrdPairs A R' (@cons A x (@cons A y l))) = ((R' x y) /\ (@List.ForallOrdPairs A R' (@cons A y l))). -Axiom thm_LENGTH_LIST_OF_SEQ : forall {A : Type'}, forall s : nat -> A, forall n : nat, (@List.length A (@list_of_seq A s n)) = n. -Axiom thm_EL_LIST_OF_SEQ : forall {A : Type'}, forall s : nat -> A, forall m : nat, forall n : nat, (Peano.lt m n) -> (@EL A m (@list_of_seq A s n)) = (s m). -Axiom thm_LIST_OF_SEQ_EQ_NIL : forall {A : Type'}, forall s : nat -> A, forall n : nat, ((@list_of_seq A s n) = (@nil A)) = (n = (NUMERAL 0)). -Axiom thm_MONO_ALL : forall {A : Type'} (P : A -> Prop) (Q : A -> Prop) (l : list A), (forall x : A, (P x) -> Q x) -> (@List.Forall A P l) -> @List.Forall A Q l. -Axiom thm_MONO_ALL2 : forall {A B : Type'} (P : A -> B -> Prop) (Q : A -> B -> Prop) (l : list A) (l' : list B), (forall x : A, forall y : B, (P x y) -> Q x y) -> (@ALL2 A B P l l') -> @ALL2 A B Q l l'. -Axiom thm_char_INDUCT : forall P : Ascii.ascii -> Prop, (forall a0 : Prop, forall a1 : Prop, forall a2 : Prop, forall a3 : Prop, forall a4 : Prop, forall a5 : Prop, forall a6 : Prop, forall a7 : Prop, P (ASCII a0 a1 a2 a3 a4 a5 a6 a7)) -> forall x : Ascii.ascii, P x. -Axiom thm_char_RECURSION : forall {Z : Type'}, forall f : Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Z, exists fn : Ascii.ascii -> Z, forall a0 : Prop, forall a1 : Prop, forall a2 : Prop, forall a3 : Prop, forall a4 : Prop, forall a5 : Prop, forall a6 : Prop, forall a7 : Prop, (fn (ASCII a0 a1 a2 a3 a4 a5 a6 a7)) = (f a0 a1 a2 a3 a4 a5 a6 a7). -Axiom thm_dist : forall n : nat, forall m : nat, (dist (@pair nat nat m n)) = (Nat.add (Nat.sub m n) (Nat.sub n m)). -Axiom thm_DIST_REFL : forall n : nat, (dist (@pair nat nat n n)) = (NUMERAL 0). -Axiom thm_DIST_LZERO : forall n : nat, (dist (@pair nat nat (NUMERAL 0) n)) = n. -Axiom thm_DIST_RZERO : forall n : nat, (dist (@pair nat nat n (NUMERAL 0))) = n. -Axiom thm_DIST_SYM : forall m : nat, forall n : nat, (dist (@pair nat nat m n)) = (dist (@pair nat nat n m)). -Axiom thm_DIST_LADD : forall m : nat, forall p : nat, forall n : nat, (dist (@pair nat nat (Nat.add m n) (Nat.add m p))) = (dist (@pair nat nat n p)). -Axiom thm_DIST_RADD : forall m : nat, forall p : nat, forall n : nat, (dist (@pair nat nat (Nat.add m p) (Nat.add n p))) = (dist (@pair nat nat m n)). -Axiom thm_DIST_LADD_0 : forall m : nat, forall n : nat, (dist (@pair nat nat (Nat.add m n) m)) = n. -Axiom thm_DIST_RADD_0 : forall m : nat, forall n : nat, (dist (@pair nat nat m (Nat.add m n))) = n. -Axiom thm_DIST_LMUL : forall m : nat, forall n : nat, forall p : nat, (Nat.mul m (dist (@pair nat nat n p))) = (dist (@pair nat nat (Nat.mul m n) (Nat.mul m p))). -Axiom thm_DIST_RMUL : forall m : nat, forall n : nat, forall p : nat, (Nat.mul (dist (@pair nat nat m n)) p) = (dist (@pair nat nat (Nat.mul m p) (Nat.mul n p))). -Axiom thm_DIST_EQ_0 : forall m : nat, forall n : nat, ((dist (@pair nat nat m n)) = (NUMERAL 0)) = (m = n). -Axiom thm_DIST_ELIM_THM : forall (y : nat) (x : nat) (P : nat -> Prop), (P (dist (@pair nat nat x y))) = (forall d : nat, ((x = (Nat.add y d)) -> P d) /\ ((y = (Nat.add x d)) -> P d)). -Axiom thm_DIST_TRIANGLE_LE : forall m : nat, forall n : nat, forall p : nat, forall q : nat, (Peano.le (Nat.add (dist (@pair nat nat m n)) (dist (@pair nat nat n p))) q) -> Peano.le (dist (@pair nat nat m p)) q. -Axiom thm_DIST_TRIANGLES_LE : forall m : nat, forall n : nat, forall p : nat, forall q : nat, forall r : nat, forall s : nat, ((Peano.le (dist (@pair nat nat m n)) r) /\ (Peano.le (dist (@pair nat nat p q)) s)) -> Peano.le (dist (@pair nat nat m p)) (Nat.add (dist (@pair nat nat n q)) (Nat.add r s)). -Axiom thm_BOUNDS_LINEAR : forall A : nat, forall B : nat, forall C : nat, (forall n : nat, Peano.le (Nat.mul A n) (Nat.add (Nat.mul B n) C)) = (Peano.le A B). -Axiom thm_BOUNDS_LINEAR_0 : forall A : nat, forall B : nat, (forall n : nat, Peano.le (Nat.mul A n) B) = (A = (NUMERAL 0)). -Axiom thm_BOUNDS_DIVIDED : forall P : nat -> nat, (exists B : nat, forall n : nat, Peano.le (P n) B) = (exists A : nat, exists B : nat, forall n : nat, Peano.le (Nat.mul n (P n)) (Nat.add (Nat.mul A n) B)). -Axiom thm_BOUNDS_NOTZERO : forall P : nat -> nat -> nat, forall A : nat, forall B : nat, (((P (NUMERAL 0) (NUMERAL 0)) = (NUMERAL 0)) /\ (forall m : nat, forall n : nat, Peano.le (P m n) (Nat.add (Nat.mul A (Nat.add m n)) B))) -> exists B' : nat, forall m : nat, forall n : nat, Peano.le (P m n) (Nat.mul B' (Nat.add m n)). -Axiom thm_BOUNDS_IGNORE : forall P : nat -> nat, forall Q : nat -> nat, (exists B : nat, forall i : nat, Peano.le (P i) (Nat.add (Q i) B)) = (exists B : nat, exists N : nat, forall i : nat, (Peano.le N i) -> Peano.le (P i) (Nat.add (Q i) B)). -Axiom thm_is_nadd : forall x : nat -> nat, (is_nadd x) = (exists B : nat, forall m : nat, forall n : nat, Peano.le (dist (@pair nat nat (Nat.mul m (x n)) (Nat.mul n (x m)))) (Nat.mul B (Nat.add m n))). -Axiom thm_is_nadd_0 : is_nadd (fun n : nat => NUMERAL 0). -Axiom thm_NADD_CAUCHY : forall x : nadd, exists B : nat, forall m : nat, forall n : nat, Peano.le (dist (@pair nat nat (Nat.mul m (dest_nadd x n)) (Nat.mul n (dest_nadd x m)))) (Nat.mul B (Nat.add m n)). -Axiom thm_NADD_BOUND : forall x : nadd, exists A : nat, exists B : nat, forall n : nat, Peano.le (dest_nadd x n) (Nat.add (Nat.mul A n) B). -Axiom thm_NADD_MULTIPLICATIVE : forall x : nadd, exists B : nat, forall m : nat, forall n : nat, Peano.le (dist (@pair nat nat (dest_nadd x (Nat.mul m n)) (Nat.mul m (dest_nadd x n)))) (Nat.add (Nat.mul B m) B). -Axiom thm_NADD_ADDITIVE : forall x : nadd, exists B : nat, forall m : nat, forall n : nat, Peano.le (dist (@pair nat nat (dest_nadd x (Nat.add m n)) (Nat.add (dest_nadd x m) (dest_nadd x n)))) B. -Axiom thm_NADD_SUC : forall x : nadd, exists B : nat, forall n : nat, Peano.le (dist (@pair nat nat (dest_nadd x (S n)) (dest_nadd x n))) B. -Axiom thm_NADD_DIST_LEMMA : forall x : nadd, exists B : nat, forall m : nat, forall n : nat, Peano.le (dist (@pair nat nat (dest_nadd x (Nat.add m n)) (dest_nadd x m))) (Nat.mul B n). -Axiom thm_NADD_DIST : forall x : nadd, exists B : nat, forall m : nat, forall n : nat, Peano.le (dist (@pair nat nat (dest_nadd x m) (dest_nadd x n))) (Nat.mul B (dist (@pair nat nat m n))). -Axiom thm_NADD_ALTMUL : forall x : nadd, forall y : nadd, exists A : nat, exists B : nat, forall n : nat, Peano.le (dist (@pair nat nat (Nat.mul n (dest_nadd x (dest_nadd y n))) (Nat.mul (dest_nadd x n) (dest_nadd y n)))) (Nat.add (Nat.mul A n) B). -Axiom thm_nadd_eq : forall x : nadd, forall y : nadd, (nadd_eq x y) = (exists B : nat, forall n : nat, Peano.le (dist (@pair nat nat (dest_nadd x n) (dest_nadd y n))) B). -Axiom thm_NADD_EQ_REFL : forall x : nadd, nadd_eq x x. -Axiom thm_NADD_EQ_SYM : forall x : nadd, forall y : nadd, (nadd_eq x y) = (nadd_eq y x). -Axiom thm_NADD_EQ_TRANS : forall x : nadd, forall y : nadd, forall z : nadd, ((nadd_eq x y) /\ (nadd_eq y z)) -> nadd_eq x z. -Axiom thm_nadd_of_num : forall k : nat, (nadd_of_num k) = (mk_nadd (fun n : nat => Nat.mul k n)). -Axiom thm_NADD_OF_NUM : forall k : nat, (dest_nadd (nadd_of_num k)) = (fun n : nat => Nat.mul k n). -Axiom thm_NADD_OF_NUM_WELLDEF : forall m : nat, forall n : nat, (m = n) -> nadd_eq (nadd_of_num m) (nadd_of_num n). -Axiom thm_NADD_OF_NUM_EQ : forall m : nat, forall n : nat, (nadd_eq (nadd_of_num m) (nadd_of_num n)) = (m = n). -Axiom thm_nadd_le : forall x : nadd, forall y : nadd, (nadd_le x y) = (exists B : nat, forall n : nat, Peano.le (dest_nadd x n) (Nat.add (dest_nadd y n) B)). -Axiom thm_NADD_LE_WELLDEF_LEMMA : forall x : nadd, forall x' : nadd, forall y : nadd, forall y' : nadd, ((nadd_eq x x') /\ ((nadd_eq y y') /\ (nadd_le x y))) -> nadd_le x' y'. -Axiom thm_NADD_LE_WELLDEF : forall x : nadd, forall x' : nadd, forall y : nadd, forall y' : nadd, ((nadd_eq x x') /\ (nadd_eq y y')) -> (nadd_le x y) = (nadd_le x' y'). -Axiom thm_NADD_LE_REFL : forall x : nadd, nadd_le x x. -Axiom thm_NADD_LE_TRANS : forall x : nadd, forall y : nadd, forall z : nadd, ((nadd_le x y) /\ (nadd_le y z)) -> nadd_le x z. -Axiom thm_NADD_LE_ANTISYM : forall x : nadd, forall y : nadd, ((nadd_le x y) /\ (nadd_le y x)) = (nadd_eq x y). -Axiom thm_NADD_LE_TOTAL_LEMMA : forall x : nadd, forall y : nadd, (~ (nadd_le x y)) -> forall B : nat, exists n : nat, (~ (n = (NUMERAL 0))) /\ (Peano.lt (Nat.add (dest_nadd y n) B) (dest_nadd x n)). -Axiom thm_NADD_LE_TOTAL : forall x : nadd, forall y : nadd, (nadd_le x y) \/ (nadd_le y x). -Axiom thm_NADD_ARCH : forall x : nadd, exists n : nat, nadd_le x (nadd_of_num n). -Axiom thm_NADD_OF_NUM_LE : forall m : nat, forall n : nat, (nadd_le (nadd_of_num m) (nadd_of_num n)) = (Peano.le m n). -Axiom thm_nadd_add : forall x : nadd, forall y : nadd, (nadd_add x y) = (mk_nadd (fun n : nat => Nat.add (dest_nadd x n) (dest_nadd y n))). -Axiom thm_NADD_ADD : forall x : nadd, forall y : nadd, (dest_nadd (nadd_add x y)) = (fun n : nat => Nat.add (dest_nadd x n) (dest_nadd y n)). -Axiom thm_NADD_ADD_WELLDEF : forall x : nadd, forall x' : nadd, forall y : nadd, forall y' : nadd, ((nadd_eq x x') /\ (nadd_eq y y')) -> nadd_eq (nadd_add x y) (nadd_add x' y'). -Axiom thm_NADD_ADD_SYM : forall x : nadd, forall y : nadd, nadd_eq (nadd_add x y) (nadd_add y x). -Axiom thm_NADD_ADD_ASSOC : forall x : nadd, forall y : nadd, forall z : nadd, nadd_eq (nadd_add x (nadd_add y z)) (nadd_add (nadd_add x y) z). -Axiom thm_NADD_ADD_LID : forall x : nadd, nadd_eq (nadd_add (nadd_of_num (NUMERAL 0)) x) x. -Axiom thm_NADD_ADD_LCANCEL : forall x : nadd, forall y : nadd, forall z : nadd, (nadd_eq (nadd_add x y) (nadd_add x z)) -> nadd_eq y z. -Axiom thm_NADD_LE_ADD : forall x : nadd, forall y : nadd, nadd_le x (nadd_add x y). -Axiom thm_NADD_LE_EXISTS : forall x : nadd, forall y : nadd, (nadd_le x y) -> exists d : nadd, nadd_eq y (nadd_add x d). -Axiom thm_NADD_OF_NUM_ADD : forall m : nat, forall n : nat, nadd_eq (nadd_add (nadd_of_num m) (nadd_of_num n)) (nadd_of_num (Nat.add m n)). -Axiom thm_nadd_mul : forall x : nadd, forall y : nadd, (nadd_mul x y) = (mk_nadd (fun n : nat => dest_nadd x (dest_nadd y n))). -Axiom thm_NADD_MUL : forall x : nadd, forall y : nadd, (dest_nadd (nadd_mul x y)) = (fun n : nat => dest_nadd x (dest_nadd y n)). -Axiom thm_NADD_MUL_SYM : forall x : nadd, forall y : nadd, nadd_eq (nadd_mul x y) (nadd_mul y x). -Axiom thm_NADD_MUL_ASSOC : forall x : nadd, forall y : nadd, forall z : nadd, nadd_eq (nadd_mul x (nadd_mul y z)) (nadd_mul (nadd_mul x y) z). -Axiom thm_NADD_MUL_LID : forall x : nadd, nadd_eq (nadd_mul (nadd_of_num (NUMERAL (BIT1 0))) x) x. -Axiom thm_NADD_LDISTRIB : forall x : nadd, forall y : nadd, forall z : nadd, nadd_eq (nadd_mul x (nadd_add y z)) (nadd_add (nadd_mul x y) (nadd_mul x z)). -Axiom thm_NADD_MUL_WELLDEF_LEMMA : forall x : nadd, forall y : nadd, forall y' : nadd, (nadd_eq y y') -> nadd_eq (nadd_mul x y) (nadd_mul x y'). -Axiom thm_NADD_MUL_WELLDEF : forall x : nadd, forall x' : nadd, forall y : nadd, forall y' : nadd, ((nadd_eq x x') /\ (nadd_eq y y')) -> nadd_eq (nadd_mul x y) (nadd_mul x' y'). -Axiom thm_NADD_OF_NUM_MUL : forall m : nat, forall n : nat, nadd_eq (nadd_mul (nadd_of_num m) (nadd_of_num n)) (nadd_of_num (Nat.mul m n)). -Axiom thm_NADD_LE_0 : forall x : nadd, nadd_le (nadd_of_num (NUMERAL 0)) x. -Axiom thm_NADD_EQ_IMP_LE : forall x : nadd, forall y : nadd, (nadd_eq x y) -> nadd_le x y. -Axiom thm_NADD_LE_LMUL : forall x : nadd, forall y : nadd, forall z : nadd, (nadd_le y z) -> nadd_le (nadd_mul x y) (nadd_mul x z). -Axiom thm_NADD_LE_RMUL : forall x : nadd, forall y : nadd, forall z : nadd, (nadd_le x y) -> nadd_le (nadd_mul x z) (nadd_mul y z). -Axiom thm_NADD_LE_RADD : forall x : nadd, forall y : nadd, forall z : nadd, (nadd_le (nadd_add x z) (nadd_add y z)) = (nadd_le x y). -Axiom thm_NADD_LE_LADD : forall x : nadd, forall y : nadd, forall z : nadd, (nadd_le (nadd_add x y) (nadd_add x z)) = (nadd_le y z). -Axiom thm_NADD_RDISTRIB : forall x : nadd, forall y : nadd, forall z : nadd, nadd_eq (nadd_mul (nadd_add x y) z) (nadd_add (nadd_mul x z) (nadd_mul y z)). -Axiom thm_NADD_ARCH_MULT : forall x : nadd, forall k : nat, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> exists N : nat, nadd_le (nadd_of_num k) (nadd_mul (nadd_of_num N) x). -Axiom thm_NADD_ARCH_ZERO : forall x : nadd, forall k : nadd, (forall n : nat, nadd_le (nadd_mul (nadd_of_num n) x) k) -> nadd_eq x (nadd_of_num (NUMERAL 0)). -Axiom thm_NADD_ARCH_LEMMA : forall x : nadd, forall y : nadd, forall z : nadd, (forall 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. -Axiom thm_NADD_COMPLETE : forall P : nadd -> Prop, ((exists x : nadd, P x) /\ (exists M : nadd, forall x : nadd, (P x) -> nadd_le x M)) -> exists M : nadd, (forall x : nadd, (P x) -> nadd_le x M) /\ (forall M' : nadd, (forall x : nadd, (P x) -> nadd_le x M') -> nadd_le M M'). -Axiom thm_NADD_UBOUND : forall x : nadd, exists B : nat, exists N : nat, forall n : nat, (Peano.le N n) -> Peano.le (dest_nadd x n) (Nat.mul B n). -Axiom thm_NADD_NONZERO : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> exists N : nat, forall n : nat, (Peano.le N n) -> ~ ((dest_nadd x n) = (NUMERAL 0)). -Axiom thm_NADD_LBOUND : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> exists A : nat, exists N : nat, forall n : nat, (Peano.le N n) -> Peano.le n (Nat.mul A (dest_nadd x n)). -Axiom thm_nadd_rinv : forall x : nadd, (nadd_rinv x) = (fun n : nat => Nat.div (Nat.mul n n) (dest_nadd x n)). -Axiom thm_NADD_MUL_LINV_LEMMA0 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> exists A : nat, exists B : nat, forall n : nat, Peano.le (nadd_rinv x n) (Nat.add (Nat.mul A n) B). -Axiom thm_NADD_MUL_LINV_LEMMA1 : forall x : nadd, forall n : nat, (~ ((dest_nadd x n) = (NUMERAL 0))) -> Peano.le (dist (@pair nat nat (Nat.mul (dest_nadd x n) (nadd_rinv x n)) (Nat.mul n n))) (dest_nadd x n). -Axiom thm_NADD_MUL_LINV_LEMMA2 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> exists N : nat, forall n : nat, (Peano.le N n) -> Peano.le (dist (@pair nat nat (Nat.mul (dest_nadd x n) (nadd_rinv x n)) (Nat.mul n n))) (dest_nadd x n). -Axiom thm_NADD_MUL_LINV_LEMMA3 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> exists N : nat, forall m : nat, forall n : nat, (Peano.le N n) -> Peano.le (dist (@pair nat nat (Nat.mul m (Nat.mul (dest_nadd x m) (Nat.mul (dest_nadd x n) (nadd_rinv x n)))) (Nat.mul m (Nat.mul (dest_nadd x m) (Nat.mul n n))))) (Nat.mul m (Nat.mul (dest_nadd x m) (dest_nadd x n))). -Axiom thm_NADD_MUL_LINV_LEMMA4 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> exists N : nat, forall m : nat, forall n : nat, ((Peano.le N m) /\ (Peano.le N n)) -> Peano.le (Nat.mul (Nat.mul (dest_nadd x m) (dest_nadd x n)) (dist (@pair nat nat (Nat.mul m (nadd_rinv x n)) (Nat.mul n (nadd_rinv x m))))) (Nat.add (Nat.mul (Nat.mul m n) (dist (@pair nat nat (Nat.mul m (dest_nadd x n)) (Nat.mul n (dest_nadd x m))))) (Nat.mul (Nat.mul (dest_nadd x m) (dest_nadd x n)) (Nat.add m n))). -Axiom thm_NADD_MUL_LINV_LEMMA5 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> exists B : nat, exists N : nat, forall m : nat, forall n : nat, ((Peano.le N m) /\ (Peano.le N n)) -> Peano.le (Nat.mul (Nat.mul (dest_nadd x m) (dest_nadd x n)) (dist (@pair nat nat (Nat.mul m (nadd_rinv x n)) (Nat.mul n (nadd_rinv x m))))) (Nat.mul B (Nat.mul (Nat.mul m n) (Nat.add m n))). -Axiom thm_NADD_MUL_LINV_LEMMA6 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> exists B : nat, exists N : nat, forall m : nat, forall n : nat, ((Peano.le N m) /\ (Peano.le N n)) -> Peano.le (Nat.mul (Nat.mul m n) (dist (@pair nat nat (Nat.mul m (nadd_rinv x n)) (Nat.mul n (nadd_rinv x m))))) (Nat.mul B (Nat.mul (Nat.mul m n) (Nat.add m n))). -Axiom thm_NADD_MUL_LINV_LEMMA7 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> exists B : nat, exists N : nat, forall m : nat, forall n : nat, ((Peano.le N m) /\ (Peano.le N n)) -> Peano.le (dist (@pair nat nat (Nat.mul m (nadd_rinv x n)) (Nat.mul n (nadd_rinv x m)))) (Nat.mul B (Nat.add m n)). -Axiom thm_NADD_MUL_LINV_LEMMA7a : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> forall N : nat, exists A : nat, exists B : nat, forall m : nat, forall n : nat, (Peano.le m N) -> Peano.le (dist (@pair nat nat (Nat.mul m (nadd_rinv x n)) (Nat.mul n (nadd_rinv x m)))) (Nat.add (Nat.mul A n) B). -Axiom thm_NADD_MUL_LINV_LEMMA8 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> exists B : nat, forall m : nat, forall n : nat, Peano.le (dist (@pair nat nat (Nat.mul m (nadd_rinv x n)) (Nat.mul n (nadd_rinv x m)))) (Nat.mul B (Nat.add m n)). -Axiom thm_nadd_inv : forall x : nadd, (nadd_inv x) = (@COND nadd (nadd_eq x (nadd_of_num (NUMERAL 0))) (nadd_of_num (NUMERAL 0)) (mk_nadd (nadd_rinv x))). -Axiom thm_NADD_INV : forall x : nadd, (dest_nadd (nadd_inv x)) = (@COND (nat -> nat) (nadd_eq x (nadd_of_num (NUMERAL 0))) (fun n : nat => NUMERAL 0) (nadd_rinv x)). -Axiom thm_NADD_MUL_LINV : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0)))) -> nadd_eq (nadd_mul (nadd_inv x) x) (nadd_of_num (NUMERAL (BIT1 0))). -Axiom thm_NADD_INV_0 : nadd_eq (nadd_inv (nadd_of_num (NUMERAL 0))) (nadd_of_num (NUMERAL 0)). -Axiom thm_NADD_INV_WELLDEF : forall x : nadd, forall y : nadd, (nadd_eq x y) -> nadd_eq (nadd_inv x) (nadd_inv y). -Axiom thm_HREAL_OF_NUM_EQ : forall m : nat, forall n : nat, ((hreal_of_num m) = (hreal_of_num n)) = (m = n). -Axiom thm_HREAL_OF_NUM_LE : forall m : nat, forall n : nat, (hreal_le (hreal_of_num m) (hreal_of_num n)) = (Peano.le m n). -Axiom thm_HREAL_OF_NUM_ADD : forall m : nat, forall n : nat, (hreal_add (hreal_of_num m) (hreal_of_num n)) = (hreal_of_num (Nat.add m n)). -Axiom thm_HREAL_OF_NUM_MUL : forall m : nat, forall n : nat, (hreal_mul (hreal_of_num m) (hreal_of_num n)) = (hreal_of_num (Nat.mul m n)). -Axiom thm_HREAL_LE_REFL : forall x : hreal, hreal_le x x. -Axiom thm_HREAL_LE_TRANS : forall x : hreal, forall y : hreal, forall z : hreal, ((hreal_le x y) /\ (hreal_le y z)) -> hreal_le x z. -Axiom thm_HREAL_LE_ANTISYM : forall x : hreal, forall y : hreal, ((hreal_le x y) /\ (hreal_le y x)) = (x = y). -Axiom thm_HREAL_LE_TOTAL : forall x : hreal, forall y : hreal, (hreal_le x y) \/ (hreal_le y x). -Axiom thm_HREAL_LE_ADD : forall x : hreal, forall y : hreal, hreal_le x (hreal_add x y). -Axiom thm_HREAL_LE_EXISTS : forall x : hreal, forall y : hreal, (hreal_le x y) -> exists d : hreal, y = (hreal_add x d). -Axiom thm_HREAL_ARCH : forall x : hreal, exists n : nat, hreal_le x (hreal_of_num n). -Axiom thm_HREAL_ADD_SYM : forall x : hreal, forall y : hreal, (hreal_add x y) = (hreal_add y x). -Axiom thm_HREAL_ADD_ASSOC : forall x : hreal, forall y : hreal, forall z : hreal, (hreal_add x (hreal_add y z)) = (hreal_add (hreal_add x y) z). -Axiom thm_HREAL_ADD_LID : forall x : hreal, (hreal_add (hreal_of_num (NUMERAL 0)) x) = x. -Axiom thm_HREAL_ADD_LCANCEL : forall x : hreal, forall y : hreal, forall z : hreal, ((hreal_add x y) = (hreal_add x z)) -> y = z. -Axiom thm_HREAL_MUL_SYM : forall x : hreal, forall y : hreal, (hreal_mul x y) = (hreal_mul y x). -Axiom thm_HREAL_MUL_ASSOC : forall x : hreal, forall y : hreal, forall z : hreal, (hreal_mul x (hreal_mul y z)) = (hreal_mul (hreal_mul x y) z). -Axiom thm_HREAL_MUL_LID : forall x : hreal, (hreal_mul (hreal_of_num (NUMERAL (BIT1 0))) x) = x. -Axiom thm_HREAL_ADD_LDISTRIB : forall x : hreal, forall y : hreal, forall z : hreal, (hreal_mul x (hreal_add y z)) = (hreal_add (hreal_mul x y) (hreal_mul x z)). -Axiom thm_HREAL_MUL_LINV : forall x : hreal, (~ (x = (hreal_of_num (NUMERAL 0)))) -> (hreal_mul (hreal_inv x) x) = (hreal_of_num (NUMERAL (BIT1 0))). -Axiom thm_HREAL_INV_0 : (hreal_inv (hreal_of_num (NUMERAL 0))) = (hreal_of_num (NUMERAL 0)). -Axiom thm_HREAL_LE_EXISTS_DEF : forall m : hreal, forall n : hreal, (hreal_le m n) = (exists d : hreal, n = (hreal_add m d)). -Axiom thm_HREAL_EQ_ADD_LCANCEL : forall m : hreal, forall n : hreal, forall p : hreal, ((hreal_add m n) = (hreal_add m p)) = (n = p). -Axiom thm_HREAL_EQ_ADD_RCANCEL : forall m : hreal, forall n : hreal, forall p : hreal, ((hreal_add m p) = (hreal_add n p)) = (m = n). -Axiom thm_HREAL_LE_ADD_LCANCEL : forall m : hreal, forall n : hreal, forall p : hreal, (hreal_le (hreal_add m n) (hreal_add m p)) = (hreal_le n p). -Axiom thm_HREAL_LE_ADD_RCANCEL : forall m : hreal, forall n : hreal, forall p : hreal, (hreal_le (hreal_add m p) (hreal_add n p)) = (hreal_le m n). -Axiom thm_HREAL_ADD_RID : forall n : hreal, (hreal_add n (hreal_of_num (NUMERAL 0))) = n. -Axiom thm_HREAL_ADD_RDISTRIB : forall m : hreal, forall n : hreal, forall p : hreal, (hreal_mul (hreal_add m n) p) = (hreal_add (hreal_mul m p) (hreal_mul n p)). -Axiom thm_HREAL_MUL_LZERO : forall m : hreal, (hreal_mul (hreal_of_num (NUMERAL 0)) m) = (hreal_of_num (NUMERAL 0)). -Axiom thm_HREAL_MUL_RZERO : forall m : hreal, (hreal_mul m (hreal_of_num (NUMERAL 0))) = (hreal_of_num (NUMERAL 0)). -Axiom thm_HREAL_ADD_AC : forall (n : hreal) (m : hreal) (p : hreal), ((hreal_add m n) = (hreal_add n m)) /\ (((hreal_add (hreal_add m n) p) = (hreal_add m (hreal_add n p))) /\ ((hreal_add m (hreal_add n p)) = (hreal_add n (hreal_add m p)))). -Axiom thm_HREAL_LE_ADD2 : forall a : hreal, forall b : hreal, forall c : hreal, forall d : hreal, ((hreal_le a b) /\ (hreal_le c d)) -> hreal_le (hreal_add a c) (hreal_add b d). -Axiom thm_HREAL_LE_MUL_RCANCEL_IMP : forall a : hreal, forall b : hreal, forall c : hreal, (hreal_le a b) -> hreal_le (hreal_mul a c) (hreal_mul b c). -Axiom thm_treal_of_num : forall n : nat, (treal_of_num n) = (@pair hreal hreal (hreal_of_num n) (hreal_of_num (NUMERAL 0))). -Axiom thm_treal_neg : forall y : hreal, forall x : hreal, (treal_neg (@pair hreal hreal x y)) = (@pair hreal hreal y x). -Axiom thm_treal_add : forall x1 : hreal, forall x2 : hreal, forall y1 : hreal, forall y2 : hreal, (treal_add (@pair hreal hreal x1 y1) (@pair hreal hreal x2 y2)) = (@pair hreal hreal (hreal_add x1 x2) (hreal_add y1 y2)). -Axiom thm_treal_mul : forall x1 : hreal, forall y2 : hreal, forall y1 : hreal, forall x2 : hreal, (treal_mul (@pair hreal hreal x1 y1) (@pair hreal hreal x2 y2)) = (@pair hreal hreal (hreal_add (hreal_mul x1 x2) (hreal_mul y1 y2)) (hreal_add (hreal_mul x1 y2) (hreal_mul y1 x2))). -Axiom thm_treal_le : forall x1 : hreal, forall y2 : hreal, forall x2 : hreal, forall y1 : hreal, (treal_le (@pair hreal hreal x1 y1) (@pair hreal hreal x2 y2)) = (hreal_le (hreal_add x1 y2) (hreal_add x2 y1)). -Axiom thm_treal_inv : forall y : hreal, forall x : hreal, (treal_inv (@pair hreal hreal x y)) = (@COND (prod hreal hreal) (x = y) (@pair hreal hreal (hreal_of_num (NUMERAL 0)) (hreal_of_num (NUMERAL 0))) (@COND (prod hreal hreal) (hreal_le y x) (@pair hreal hreal (hreal_inv (@ε hreal (fun d : hreal => x = (hreal_add y d)))) (hreal_of_num (NUMERAL 0))) (@pair hreal hreal (hreal_of_num (NUMERAL 0)) (hreal_inv (@ε hreal (fun d : hreal => y = (hreal_add x d))))))). -Axiom thm_treal_eq : forall x1 : hreal, forall y2 : hreal, forall x2 : hreal, forall y1 : hreal, (treal_eq (@pair hreal hreal x1 y1) (@pair hreal hreal x2 y2)) = ((hreal_add x1 y2) = (hreal_add x2 y1)). -Axiom thm_TREAL_EQ_REFL : forall x : prod hreal hreal, treal_eq x x. -Axiom thm_TREAL_EQ_SYM : forall x : prod hreal hreal, forall y : prod hreal hreal, (treal_eq x y) = (treal_eq y x). -Axiom thm_TREAL_EQ_TRANS : forall x : prod hreal hreal, forall y : prod hreal hreal, forall z : prod hreal hreal, ((treal_eq x y) /\ (treal_eq y z)) -> treal_eq x z. -Axiom thm_TREAL_EQ_AP : forall x : prod hreal hreal, forall y : prod hreal hreal, (x = y) -> treal_eq x y. -Axiom thm_TREAL_OF_NUM_EQ : forall m : nat, forall n : nat, (treal_eq (treal_of_num m) (treal_of_num n)) = (m = n). -Axiom thm_TREAL_OF_NUM_LE : forall m : nat, forall n : nat, (treal_le (treal_of_num m) (treal_of_num n)) = (Peano.le m n). -Axiom thm_TREAL_OF_NUM_ADD : forall m : nat, forall n : nat, treal_eq (treal_add (treal_of_num m) (treal_of_num n)) (treal_of_num (Nat.add m n)). -Axiom thm_TREAL_OF_NUM_MUL : forall m : nat, forall n : nat, treal_eq (treal_mul (treal_of_num m) (treal_of_num n)) (treal_of_num (Nat.mul m n)). -Axiom thm_TREAL_ADD_SYM_EQ : forall x : prod hreal hreal, forall y : prod hreal hreal, (treal_add x y) = (treal_add y x). -Axiom thm_TREAL_MUL_SYM_EQ : forall x : prod hreal hreal, forall y : prod hreal hreal, (treal_mul x y) = (treal_mul y x). -Axiom thm_TREAL_ADD_SYM : forall x : prod hreal hreal, forall y : prod hreal hreal, treal_eq (treal_add x y) (treal_add y x). -Axiom thm_TREAL_ADD_ASSOC : forall x : prod hreal hreal, forall y : prod hreal hreal, forall z : prod hreal hreal, treal_eq (treal_add x (treal_add y z)) (treal_add (treal_add x y) z). -Axiom thm_TREAL_ADD_LID : forall x : prod hreal hreal, treal_eq (treal_add (treal_of_num (NUMERAL 0)) x) x. -Axiom thm_TREAL_ADD_LINV : forall x : prod hreal hreal, treal_eq (treal_add (treal_neg x) x) (treal_of_num (NUMERAL 0)). -Axiom thm_TREAL_MUL_SYM : forall x : prod hreal hreal, forall y : prod hreal hreal, treal_eq (treal_mul x y) (treal_mul y x). -Axiom thm_TREAL_MUL_ASSOC : forall x : prod hreal hreal, forall y : prod hreal hreal, forall z : prod hreal hreal, treal_eq (treal_mul x (treal_mul y z)) (treal_mul (treal_mul x y) z). -Axiom thm_TREAL_MUL_LID : forall x : prod hreal hreal, treal_eq (treal_mul (treal_of_num (NUMERAL (BIT1 0))) x) x. -Axiom thm_TREAL_ADD_LDISTRIB : forall x : prod hreal hreal, forall y : prod hreal hreal, forall z : prod hreal hreal, treal_eq (treal_mul x (treal_add y z)) (treal_add (treal_mul x y) (treal_mul x z)). -Axiom thm_TREAL_LE_REFL : forall x : prod hreal hreal, treal_le x x. -Axiom thm_TREAL_LE_ANTISYM : forall x : prod hreal hreal, forall y : prod hreal hreal, ((treal_le x y) /\ (treal_le y x)) = (treal_eq x y). -Axiom thm_TREAL_LE_TRANS : forall x : prod hreal hreal, forall y : prod hreal hreal, forall z : prod hreal hreal, ((treal_le x y) /\ (treal_le y z)) -> treal_le x z. -Axiom thm_TREAL_LE_TOTAL : forall x : prod hreal hreal, forall y : prod hreal hreal, (treal_le x y) \/ (treal_le y x). -Axiom thm_TREAL_LE_LADD_IMP : forall x : prod hreal hreal, forall y : prod hreal hreal, forall z : prod hreal hreal, (treal_le y z) -> treal_le (treal_add x y) (treal_add x z). -Axiom thm_TREAL_LE_MUL : forall x : prod hreal hreal, forall y : prod hreal hreal, ((treal_le (treal_of_num (NUMERAL 0)) x) /\ (treal_le (treal_of_num (NUMERAL 0)) y)) -> treal_le (treal_of_num (NUMERAL 0)) (treal_mul x y). -Axiom thm_TREAL_INV_0 : treal_eq (treal_inv (treal_of_num (NUMERAL 0))) (treal_of_num (NUMERAL 0)). -Axiom thm_TREAL_MUL_LINV : forall x : prod hreal hreal, (~ (treal_eq x (treal_of_num (NUMERAL 0)))) -> treal_eq (treal_mul (treal_inv x) x) (treal_of_num (NUMERAL (BIT1 0))). -Axiom thm_TREAL_OF_NUM_WELLDEF : forall m : nat, forall n : nat, (m = n) -> treal_eq (treal_of_num m) (treal_of_num n). -Axiom thm_TREAL_NEG_WELLDEF : forall x1 : prod hreal hreal, forall x2 : prod hreal hreal, (treal_eq x1 x2) -> treal_eq (treal_neg x1) (treal_neg x2). -Axiom thm_TREAL_ADD_WELLDEFR : forall x1 : prod hreal hreal, forall x2 : prod hreal hreal, forall y : prod hreal hreal, (treal_eq x1 x2) -> treal_eq (treal_add x1 y) (treal_add x2 y). -Axiom thm_TREAL_ADD_WELLDEF : forall x1 : prod hreal hreal, forall x2 : prod hreal hreal, forall y1 : prod hreal hreal, forall y2 : prod hreal hreal, ((treal_eq x1 x2) /\ (treal_eq y1 y2)) -> treal_eq (treal_add x1 y1) (treal_add x2 y2). -Axiom thm_TREAL_MUL_WELLDEFR : forall x1 : prod hreal hreal, forall x2 : prod hreal hreal, forall y : prod hreal hreal, (treal_eq x1 x2) -> treal_eq (treal_mul x1 y) (treal_mul x2 y). -Axiom thm_TREAL_MUL_WELLDEF : forall x1 : prod hreal hreal, forall x2 : prod hreal hreal, forall y1 : prod hreal hreal, forall y2 : prod hreal hreal, ((treal_eq x1 x2) /\ (treal_eq y1 y2)) -> treal_eq (treal_mul x1 y1) (treal_mul x2 y2). -Axiom thm_TREAL_EQ_IMP_LE : forall x : prod hreal hreal, forall y : prod hreal hreal, (treal_eq x y) -> treal_le x y. -Axiom thm_TREAL_LE_WELLDEF : forall x1 : prod hreal hreal, forall x2 : prod hreal hreal, forall y1 : prod hreal hreal, forall y2 : prod hreal hreal, ((treal_eq x1 x2) /\ (treal_eq y1 y2)) -> (treal_le x1 y1) = (treal_le x2 y2). -Axiom thm_TREAL_INV_WELLDEF : forall x : prod hreal hreal, forall y : prod hreal hreal, (treal_eq x y) -> treal_eq (treal_inv x) (treal_inv y). -Axiom thm_REAL_ADD_SYM : forall x : R, forall y : R, (Rplus x y) = (Rplus y x). -Axiom thm_REAL_ADD_ASSOC : forall x : R, forall y : R, forall z : R, (Rplus x (Rplus y z)) = (Rplus (Rplus x y) z). -Axiom thm_REAL_ADD_LID : forall x : R, (Rplus (INR (NUMERAL 0)) x) = x. -Axiom thm_REAL_ADD_LINV : forall x : R, (Rplus (Ropp x) x) = (INR (NUMERAL 0)). -Axiom thm_REAL_MUL_SYM : forall x : R, forall y : R, (Rmult x y) = (Rmult y x). -Axiom thm_REAL_MUL_ASSOC : forall x : R, forall y : R, forall z : R, (Rmult x (Rmult y z)) = (Rmult (Rmult x y) z). -Axiom thm_REAL_MUL_LID : forall x : R, (Rmult (INR (NUMERAL (BIT1 0))) x) = x. -Axiom thm_REAL_ADD_LDISTRIB : forall x : R, forall y : R, forall z : R, (Rmult x (Rplus y z)) = (Rplus (Rmult x y) (Rmult x z)). -Axiom thm_REAL_LE_REFL : forall x : R, Rle x x. -Axiom thm_REAL_LE_ANTISYM : forall x : R, forall y : R, ((Rle x y) /\ (Rle y x)) = (x = y). -Axiom thm_REAL_LE_TRANS : forall x : R, forall y : R, forall z : R, ((Rle x y) /\ (Rle y z)) -> Rle x z. -Axiom thm_REAL_LE_TOTAL : forall x : R, forall y : R, (Rle x y) \/ (Rle y x). -Axiom thm_REAL_LE_LADD_IMP : forall x : R, forall y : R, forall z : R, (Rle y z) -> Rle (Rplus x y) (Rplus x z). -Axiom thm_REAL_LE_MUL : forall x : R, forall y : R, ((Rle (INR (NUMERAL 0)) x) /\ (Rle (INR (NUMERAL 0)) y)) -> Rle (INR (NUMERAL 0)) (Rmult x y). -Axiom thm_REAL_INV_0 : (Rinv (INR (NUMERAL 0))) = (INR (NUMERAL 0)). -Axiom thm_REAL_MUL_LINV : forall x : R, (~ (x = (INR (NUMERAL 0)))) -> (Rmult (Rinv x) x) = (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_OF_NUM_EQ : forall m : nat, forall n : nat, ((INR m) = (INR n)) = (m = n). -Axiom thm_REAL_OF_NUM_LE : forall m : nat, forall n : nat, (Rle (INR m) (INR n)) = (Peano.le m n). -Axiom thm_REAL_OF_NUM_ADD : forall m : nat, forall n : nat, (Rplus (INR m) (INR n)) = (INR (Nat.add m n)). -Axiom thm_REAL_OF_NUM_MUL : forall m : nat, forall n : nat, (Rmult (INR m) (INR n)) = (INR (Nat.mul m n)). -Axiom thm_real_sub : forall x : R, forall y : R, (Rminus x y) = (Rplus x (Ropp y)). -Axiom thm_real_lt : forall y : R, forall x : R, (Rlt x y) = (~ (Rle y x)). -Axiom thm_real_ge : forall y : R, forall x : R, (Rge x y) = (Rle y x). -Axiom thm_real_gt : forall y : R, forall x : R, (Rgt x y) = (Rlt y x). -Axiom thm_real_abs : forall x : R, (Rabs x) = (@COND R (Rle (INR (NUMERAL 0)) x) x (Ropp x)). -Axiom thm_real_pow : forall (x : R), ((Rpower_nat x (NUMERAL 0)) = (INR (NUMERAL (BIT1 0)))) /\ (forall n : nat, (Rpower_nat x (S n)) = (Rmult x (Rpower_nat x n))). -Axiom thm_real_div : forall x : R, forall y : R, (Rdiv x y) = (Rmult x (Rinv y)). -Axiom thm_real_max : forall n : R, forall m : R, (Rmax m n) = (@COND R (Rle m n) n m). -Axiom thm_real_min : forall m : R, forall n : R, (Rmin m n) = (@COND R (Rle m n) m n). -Axiom thm_REAL_HREAL_LEMMA1 : exists r : hreal -> R, (forall x : R, (Rle (INR (NUMERAL 0)) x) = (exists y : hreal, x = (r y))) /\ (forall y : hreal, forall z : hreal, (hreal_le y z) = (Rle (r y) (r z))). -Axiom thm_REAL_HREAL_LEMMA2 : exists h : R -> hreal, exists r : hreal -> R, (forall x : hreal, (h (r x)) = x) /\ ((forall x : R, (Rle (INR (NUMERAL 0)) x) -> (r (h x)) = x) /\ ((forall x : hreal, Rle (INR (NUMERAL 0)) (r x)) /\ (forall x : hreal, forall y : hreal, (hreal_le x y) = (Rle (r x) (r y))))). -Axiom thm_REAL_COMPLETE_SOMEPOS : forall P : R -> Prop, ((exists x : R, (P x) /\ (Rle (INR (NUMERAL 0)) x)) /\ (exists M : R, forall x : R, (P x) -> Rle x M)) -> exists M : R, (forall x : R, (P x) -> Rle x M) /\ (forall M' : R, (forall x : R, (P x) -> Rle x M') -> Rle M M'). -Axiom thm_REAL_COMPLETE : forall P : R -> Prop, ((exists x : R, P x) /\ (exists M : R, forall x : R, (P x) -> Rle x M)) -> exists M : R, (forall x : R, (P x) -> Rle x M) /\ (forall M' : R, (forall x : R, (P x) -> Rle x M') -> Rle M M'). -Axiom thm_REAL_ADD_AC : forall (n : R) (m : R) (p : R), ((Rplus m n) = (Rplus n m)) /\ (((Rplus (Rplus m n) p) = (Rplus m (Rplus n p))) /\ ((Rplus m (Rplus n p)) = (Rplus n (Rplus m p)))). -Axiom thm_REAL_ADD_RINV : forall x : R, (Rplus x (Ropp x)) = (INR (NUMERAL 0)). -Axiom thm_REAL_EQ_ADD_LCANCEL : forall x : R, forall y : R, forall z : R, ((Rplus x y) = (Rplus x z)) = (y = z). -Axiom thm_REAL_EQ_ADD_RCANCEL : forall x : R, forall y : R, forall z : R, ((Rplus x z) = (Rplus y z)) = (x = y). -Axiom thm_REAL_MUL_RZERO : forall x : R, (Rmult x (INR (NUMERAL 0))) = (INR (NUMERAL 0)). -Axiom thm_REAL_MUL_LZERO : forall x : R, (Rmult (INR (NUMERAL 0)) x) = (INR (NUMERAL 0)). -Axiom thm_REAL_NEG_NEG : forall x : R, (Ropp (Ropp x)) = x. -Axiom thm_REAL_MUL_RNEG : forall x : R, forall y : R, (Rmult x (Ropp y)) = (Ropp (Rmult x y)). -Axiom thm_REAL_MUL_LNEG : forall x : R, forall y : R, (Rmult (Ropp x) y) = (Ropp (Rmult x y)). -Axiom thm_REAL_NEG_ADD : forall x : R, forall y : R, (Ropp (Rplus x y)) = (Rplus (Ropp x) (Ropp y)). -Axiom thm_REAL_ADD_RID : forall x : R, (Rplus x (INR (NUMERAL 0))) = x. -Axiom thm_REAL_NEG_0 : (Ropp (INR (NUMERAL 0))) = (INR (NUMERAL 0)). -Axiom thm_REAL_LE_LNEG : forall x : R, forall y : R, (Rle (Ropp x) y) = (Rle (INR (NUMERAL 0)) (Rplus x y)). -Axiom thm_REAL_LE_NEG2 : forall x : R, forall y : R, (Rle (Ropp x) (Ropp y)) = (Rle y x). -Axiom thm_REAL_LE_RNEG : forall x : R, forall y : R, (Rle x (Ropp y)) = (Rle (Rplus x y) (INR (NUMERAL 0))). -Axiom thm_REAL_OF_NUM_POW : forall x : nat, forall n : nat, (Rpower_nat (INR x) n) = (INR (Nat.pow x n)). -Axiom thm_REAL_POW_NEG : forall x : R, forall n : nat, (Rpower_nat (Ropp x) n) = (@COND R (Coq.Arith.PeanoNat.Nat.Even n) (Rpower_nat x n) (Ropp (Rpower_nat x n))). -Axiom thm_REAL_ABS_NUM : forall n : nat, (Rabs (INR n)) = (INR n). -Axiom thm_REAL_ABS_NEG : forall x : R, (Rabs (Ropp x)) = (Rabs x). -Axiom thm_REAL_LTE_TOTAL : forall x : R, forall y : R, (Rlt x y) \/ (Rle y x). -Axiom thm_REAL_LET_TOTAL : forall x : R, forall y : R, (Rle x y) \/ (Rlt y x). -Axiom thm_REAL_LT_IMP_LE : forall x : R, forall y : R, (Rlt x y) -> Rle x y. -Axiom thm_REAL_LTE_TRANS : forall x : R, forall y : R, forall z : R, ((Rlt x y) /\ (Rle y z)) -> Rlt x z. -Axiom thm_REAL_LET_TRANS : forall x : R, forall y : R, forall z : R, ((Rle x y) /\ (Rlt y z)) -> Rlt x z. -Axiom thm_REAL_LT_TRANS : forall x : R, forall y : R, forall z : R, ((Rlt x y) /\ (Rlt y z)) -> Rlt x z. -Axiom thm_REAL_LE_ADD : forall x : R, forall y : R, ((Rle (INR (NUMERAL 0)) x) /\ (Rle (INR (NUMERAL 0)) y)) -> Rle (INR (NUMERAL 0)) (Rplus x y). -Axiom thm_REAL_LTE_ANTISYM : forall x : R, forall y : R, ~ ((Rlt x y) /\ (Rle y x)). -Axiom thm_REAL_SUB_LE : forall x : R, forall y : R, (Rle (INR (NUMERAL 0)) (Rminus x y)) = (Rle y x). -Axiom thm_REAL_NEG_SUB : forall x : R, forall y : R, (Ropp (Rminus x y)) = (Rminus y x). -Axiom thm_REAL_LE_LT : forall x : R, forall y : R, (Rle x y) = ((Rlt x y) \/ (x = y)). -Axiom thm_REAL_SUB_LT : forall x : R, forall y : R, (Rlt (INR (NUMERAL 0)) (Rminus x y)) = (Rlt y x). -Axiom thm_REAL_NOT_LT : forall x : R, forall y : R, (~ (Rlt x y)) = (Rle y x). -Axiom thm_REAL_SUB_0 : forall x : R, forall y : R, ((Rminus x y) = (INR (NUMERAL 0))) = (x = y). -Axiom thm_REAL_LT_LE : forall x : R, forall y : R, (Rlt x y) = ((Rle x y) /\ (~ (x = y))). -Axiom thm_REAL_LT_REFL : forall x : R, ~ (Rlt x x). -Axiom thm_REAL_LTE_ADD : forall x : R, forall y : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rle (INR (NUMERAL 0)) y)) -> Rlt (INR (NUMERAL 0)) (Rplus x y). -Axiom thm_REAL_LET_ADD : forall x : R, forall y : R, ((Rle (INR (NUMERAL 0)) x) /\ (Rlt (INR (NUMERAL 0)) y)) -> Rlt (INR (NUMERAL 0)) (Rplus x y). -Axiom thm_REAL_LT_ADD : forall x : R, forall y : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rlt (INR (NUMERAL 0)) y)) -> Rlt (INR (NUMERAL 0)) (Rplus x y). -Axiom thm_REAL_ENTIRE : forall x : R, forall y : R, ((Rmult x y) = (INR (NUMERAL 0))) = ((x = (INR (NUMERAL 0))) \/ (y = (INR (NUMERAL 0)))). -Axiom thm_REAL_LE_NEGTOTAL : forall x : R, (Rle (INR (NUMERAL 0)) x) \/ (Rle (INR (NUMERAL 0)) (Ropp x)). -Axiom thm_REAL_LE_SQUARE : forall x : R, Rle (INR (NUMERAL 0)) (Rmult x x). -Axiom thm_REAL_MUL_RID : forall x : R, (Rmult x (INR (NUMERAL (BIT1 0)))) = x. -Axiom thm_REAL_POW_2 : forall x : R, (Rpower_nat x (NUMERAL (BIT0 (BIT1 0)))) = (Rmult x x). -Axiom thm_REAL_POLY_CLAUSES : (forall x : R, forall y : R, forall z : R, (Rplus x (Rplus y z)) = (Rplus (Rplus x y) z)) /\ ((forall x : R, forall y : R, (Rplus x y) = (Rplus y x)) /\ ((forall x : R, (Rplus (INR (NUMERAL 0)) x) = x) /\ ((forall x : R, forall y : R, forall z : R, (Rmult x (Rmult y z)) = (Rmult (Rmult x y) z)) /\ ((forall x : R, forall y : R, (Rmult x y) = (Rmult y x)) /\ ((forall x : R, (Rmult (INR (NUMERAL (BIT1 0))) x) = x) /\ ((forall x : R, (Rmult (INR (NUMERAL 0)) x) = (INR (NUMERAL 0))) /\ ((forall x : R, forall y : R, forall z : R, (Rmult x (Rplus y z)) = (Rplus (Rmult x y) (Rmult x z))) /\ ((forall x : R, (Rpower_nat x (NUMERAL 0)) = (INR (NUMERAL (BIT1 0)))) /\ (forall x : R, forall n : nat, (Rpower_nat x (S n)) = (Rmult x (Rpower_nat x n))))))))))). -Axiom thm_REAL_POLY_NEG_CLAUSES : (forall x : R, (Ropp x) = (Rmult (Ropp (INR (NUMERAL (BIT1 0)))) x)) /\ (forall x : R, forall y : R, (Rminus x y) = (Rplus x (Rmult (Ropp (INR (NUMERAL (BIT1 0)))) y))). -Axiom thm_REAL_POS : forall n : nat, Rle (INR (NUMERAL 0)) (INR n). -Axiom thm_REAL_LT_NZ : forall n : nat, (~ ((INR n) = (INR (NUMERAL 0)))) = (Rlt (INR (NUMERAL 0)) (INR n)). -Axiom thm_REAL_POS_LT : forall n : nat, Rlt (INR (NUMERAL 0)) (INR (S n)). -Axiom thm_REAL_OF_NUM_LT : forall m : nat, forall n : nat, (Rlt (INR m) (INR n)) = (Peano.lt m n). -Axiom thm_REAL_OF_NUM_GE : forall m : nat, forall n : nat, (Rge (INR m) (INR n)) = (Peano.ge m n). -Axiom thm_REAL_OF_NUM_GT : forall m : nat, forall n : nat, (Rgt (INR m) (INR n)) = (Peano.gt m n). -Axiom thm_REAL_OF_NUM_MAX : forall m : nat, forall n : nat, (Rmax (INR m) (INR n)) = (INR (Nat.max m n)). -Axiom thm_REAL_OF_NUM_MIN : forall m : nat, forall n : nat, (Rmin (INR m) (INR n)) = (INR (Nat.min m n)). -Axiom thm_REAL_OF_NUM_SUC : forall n : nat, (Rplus (INR n) (INR (NUMERAL (BIT1 0)))) = (INR (S n)). -Axiom thm_REAL_OF_NUM_SUB : forall m : nat, forall n : nat, (Peano.le m n) -> (Rminus (INR n) (INR m)) = (INR (Nat.sub n m)). -Axiom thm_REAL_OF_NUM_SUB_CASES : forall m : nat, forall n : nat, (Rminus (INR m) (INR n)) = (@COND R (Peano.le n m) (INR (Nat.sub m n)) (Ropp (INR (Nat.sub n m)))). -Axiom thm_REAL_OF_NUM_CLAUSES : (forall m : nat, forall n : nat, ((INR m) = (INR n)) = (m = n)) /\ ((forall m : nat, forall n : nat, (Rge (INR m) (INR n)) = (Peano.ge m n)) /\ ((forall m : nat, forall n : nat, (Rgt (INR m) (INR n)) = (Peano.gt m n)) /\ ((forall m : nat, forall n : nat, (Rle (INR m) (INR n)) = (Peano.le m n)) /\ ((forall m : nat, forall n : nat, (Rlt (INR m) (INR n)) = (Peano.lt m n)) /\ ((forall m : nat, forall n : nat, (Rmax (INR m) (INR n)) = (INR (Nat.max m n))) /\ ((forall m : nat, forall n : nat, (Rmin (INR m) (INR n)) = (INR (Nat.min m n))) /\ ((forall m : nat, forall n : nat, (Rplus (INR m) (INR n)) = (INR (Nat.add m n))) /\ ((forall m : nat, forall n : nat, (Rmult (INR m) (INR n)) = (INR (Nat.mul m n))) /\ (forall x : nat, forall n : nat, (Rpower_nat (INR x) n) = (INR (Nat.pow x n))))))))))). -Axiom thm_REAL_MUL_AC : forall (n : R) (m : R) (p : R), ((Rmult m n) = (Rmult n m)) /\ (((Rmult (Rmult m n) p) = (Rmult m (Rmult n p))) /\ ((Rmult m (Rmult n p)) = (Rmult n (Rmult m p)))). -Axiom thm_REAL_ADD_RDISTRIB : forall x : R, forall y : R, forall z : R, (Rmult (Rplus x y) z) = (Rplus (Rmult x z) (Rmult y z)). -Axiom thm_REAL_LT_LADD_IMP : forall x : R, forall y : R, forall z : R, (Rlt y z) -> Rlt (Rplus x y) (Rplus x z). -Axiom thm_REAL_LT_MUL : forall x : R, forall y : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rlt (INR (NUMERAL 0)) y)) -> Rlt (INR (NUMERAL 0)) (Rmult x y). -Axiom thm_REAL_EQ_ADD_LCANCEL_0 : forall x : R, forall y : R, ((Rplus x y) = x) = (y = (INR (NUMERAL 0))). -Axiom thm_REAL_EQ_ADD_RCANCEL_0 : forall x : R, forall y : R, ((Rplus x y) = y) = (x = (INR (NUMERAL 0))). -Axiom thm_REAL_LNEG_UNIQ : forall x : R, forall y : R, ((Rplus x y) = (INR (NUMERAL 0))) = (x = (Ropp y)). -Axiom thm_REAL_RNEG_UNIQ : forall x : R, forall y : R, ((Rplus x y) = (INR (NUMERAL 0))) = (y = (Ropp x)). -Axiom thm_REAL_NEG_LMUL : forall x : R, forall y : R, (Ropp (Rmult x y)) = (Rmult (Ropp x) y). -Axiom thm_REAL_NEG_RMUL : forall x : R, forall y : R, (Ropp (Rmult x y)) = (Rmult x (Ropp y)). -Axiom thm_REAL_NEG_MUL2 : forall x : R, forall y : R, (Rmult (Ropp x) (Ropp y)) = (Rmult x y). -Axiom thm_REAL_LT_LADD : forall x : R, forall y : R, forall z : R, (Rlt (Rplus x y) (Rplus x z)) = (Rlt y z). -Axiom thm_REAL_LT_RADD : forall x : R, forall y : R, forall z : R, (Rlt (Rplus x z) (Rplus y z)) = (Rlt x y). -Axiom thm_REAL_LT_ANTISYM : forall x : R, forall y : R, ~ ((Rlt x y) /\ (Rlt y x)). -Axiom thm_REAL_LT_GT : forall x : R, forall y : R, (Rlt x y) -> ~ (Rlt y x). -Axiom thm_REAL_NOT_EQ : forall x : R, forall y : R, (~ (x = y)) = ((Rlt x y) \/ (Rlt y x)). -Axiom thm_REAL_NOT_LE : forall x : R, forall y : R, (~ (Rle x y)) = (Rlt y x). -Axiom thm_REAL_LET_ANTISYM : forall x : R, forall y : R, ~ ((Rle x y) /\ (Rlt y x)). -Axiom thm_REAL_NEG_LT0 : forall x : R, (Rlt (Ropp x) (INR (NUMERAL 0))) = (Rlt (INR (NUMERAL 0)) x). -Axiom thm_REAL_NEG_GT0 : forall x : R, (Rlt (INR (NUMERAL 0)) (Ropp x)) = (Rlt x (INR (NUMERAL 0))). -Axiom thm_REAL_NEG_LE0 : forall x : R, (Rle (Ropp x) (INR (NUMERAL 0))) = (Rle (INR (NUMERAL 0)) x). -Axiom thm_REAL_NEG_GE0 : forall x : R, (Rle (INR (NUMERAL 0)) (Ropp x)) = (Rle x (INR (NUMERAL 0))). -Axiom thm_REAL_LT_TOTAL : forall x : R, forall y : R, (x = y) \/ ((Rlt x y) \/ (Rlt y x)). -Axiom thm_REAL_LT_NEGTOTAL : forall x : R, (x = (INR (NUMERAL 0))) \/ ((Rlt (INR (NUMERAL 0)) x) \/ (Rlt (INR (NUMERAL 0)) (Ropp x))). -Axiom thm_REAL_LE_01 : Rle (INR (NUMERAL 0)) (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_LT_01 : Rlt (INR (NUMERAL 0)) (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_LE_LADD : forall x : R, forall y : R, forall z : R, (Rle (Rplus x y) (Rplus x z)) = (Rle y z). -Axiom thm_REAL_LE_RADD : forall x : R, forall y : R, forall z : R, (Rle (Rplus x z) (Rplus y z)) = (Rle x y). -Axiom thm_REAL_LT_ADD2 : forall w : R, forall x : R, forall y : R, forall z : R, ((Rlt w x) /\ (Rlt y z)) -> Rlt (Rplus w y) (Rplus x z). -Axiom thm_REAL_LE_ADD2 : forall w : R, forall x : R, forall y : R, forall z : R, ((Rle w x) /\ (Rle y z)) -> Rle (Rplus w y) (Rplus x z). -Axiom thm_REAL_LT_LNEG : forall x : R, forall y : R, (Rlt (Ropp x) y) = (Rlt (INR (NUMERAL 0)) (Rplus x y)). -Axiom thm_REAL_LT_RNEG : forall x : R, forall y : R, (Rlt x (Ropp y)) = (Rlt (Rplus x y) (INR (NUMERAL 0))). -Axiom thm_REAL_LT_ADDNEG : forall x : R, forall y : R, forall z : R, (Rlt y (Rplus x (Ropp z))) = (Rlt (Rplus y z) x). -Axiom thm_REAL_LT_ADDNEG2 : forall x : R, forall y : R, forall z : R, (Rlt (Rplus x (Ropp y)) z) = (Rlt x (Rplus z y)). -Axiom thm_REAL_LT_ADD1 : forall x : R, forall y : R, (Rle x y) -> Rlt x (Rplus y (INR (NUMERAL (BIT1 0)))). -Axiom thm_REAL_SUB_ADD : forall x : R, forall y : R, (Rplus (Rminus x y) y) = x. -Axiom thm_REAL_SUB_ADD2 : forall x : R, forall y : R, (Rplus y (Rminus x y)) = x. -Axiom thm_REAL_SUB_REFL : forall x : R, (Rminus x x) = (INR (NUMERAL 0)). -Axiom thm_REAL_LE_DOUBLE : forall x : R, (Rle (INR (NUMERAL 0)) (Rplus x x)) = (Rle (INR (NUMERAL 0)) x). -Axiom thm_REAL_LE_NEGL : forall x : R, (Rle (Ropp x) x) = (Rle (INR (NUMERAL 0)) x). -Axiom thm_REAL_LE_NEGR : forall x : R, (Rle x (Ropp x)) = (Rle x (INR (NUMERAL 0))). -Axiom thm_REAL_NEG_EQ_0 : forall x : R, ((Ropp x) = (INR (NUMERAL 0))) = (x = (INR (NUMERAL 0))). -Axiom thm_REAL_ADD_SUB : forall x : R, forall y : R, (Rminus (Rplus x y) x) = y. -Axiom thm_REAL_NEG_EQ : forall x : R, forall y : R, ((Ropp x) = y) = (x = (Ropp y)). -Axiom thm_REAL_NEG_MINUS1 : forall x : R, (Ropp x) = (Rmult (Ropp (INR (NUMERAL (BIT1 0)))) x). -Axiom thm_REAL_LT_IMP_NE : forall x : R, forall y : R, (Rlt x y) -> ~ (x = y). -Axiom thm_REAL_LE_ADDR : forall x : R, forall y : R, (Rle x (Rplus x y)) = (Rle (INR (NUMERAL 0)) y). -Axiom thm_REAL_LE_ADDL : forall x : R, forall y : R, (Rle y (Rplus x y)) = (Rle (INR (NUMERAL 0)) x). -Axiom thm_REAL_LT_ADDR : forall x : R, forall y : R, (Rlt x (Rplus x y)) = (Rlt (INR (NUMERAL 0)) y). -Axiom thm_REAL_LT_ADDL : forall x : R, forall y : R, (Rlt y (Rplus x y)) = (Rlt (INR (NUMERAL 0)) x). -Axiom thm_REAL_SUB_SUB : forall x : R, forall y : R, (Rminus (Rminus x y) x) = (Ropp y). -Axiom thm_REAL_LT_ADD_SUB : forall x : R, forall y : R, forall z : R, (Rlt (Rplus x y) z) = (Rlt x (Rminus z y)). -Axiom thm_REAL_LT_SUB_RADD : forall x : R, forall y : R, forall z : R, (Rlt (Rminus x y) z) = (Rlt x (Rplus z y)). -Axiom thm_REAL_LT_SUB_LADD : forall x : R, forall y : R, forall z : R, (Rlt x (Rminus y z)) = (Rlt (Rplus x z) y). -Axiom thm_REAL_LE_SUB_LADD : forall x : R, forall y : R, forall z : R, (Rle x (Rminus y z)) = (Rle (Rplus x z) y). -Axiom thm_REAL_LE_SUB_RADD : forall x : R, forall y : R, forall z : R, (Rle (Rminus x y) z) = (Rle x (Rplus z y)). -Axiom thm_REAL_ADD2_SUB2 : forall a : R, forall b : R, forall c : R, forall d : R, (Rminus (Rplus a b) (Rplus c d)) = (Rplus (Rminus a c) (Rminus b d)). -Axiom thm_REAL_SUB_LZERO : forall x : R, (Rminus (INR (NUMERAL 0)) x) = (Ropp x). -Axiom thm_REAL_SUB_RZERO : forall x : R, (Rminus x (INR (NUMERAL 0))) = x. -Axiom thm_REAL_LET_ADD2 : forall w : R, forall x : R, forall y : R, forall z : R, ((Rle w x) /\ (Rlt y z)) -> Rlt (Rplus w y) (Rplus x z). -Axiom thm_REAL_LTE_ADD2 : forall w : R, forall x : R, forall y : R, forall z : R, ((Rlt w x) /\ (Rle y z)) -> Rlt (Rplus w y) (Rplus x z). -Axiom thm_REAL_SUB_LNEG : forall x : R, forall y : R, (Rminus (Ropp x) y) = (Ropp (Rplus x y)). -Axiom thm_REAL_SUB_RNEG : forall x : R, forall y : R, (Rminus x (Ropp y)) = (Rplus x y). -Axiom thm_REAL_SUB_NEG2 : forall x : R, forall y : R, (Rminus (Ropp x) (Ropp y)) = (Rminus y x). -Axiom thm_REAL_SUB_TRIANGLE : forall a : R, forall b : R, forall c : R, (Rplus (Rminus a b) (Rminus b c)) = (Rminus a c). -Axiom thm_REAL_EQ_SUB_LADD : forall x : R, forall y : R, forall z : R, (x = (Rminus y z)) = ((Rplus x z) = y). -Axiom thm_REAL_EQ_SUB_RADD : forall x : R, forall y : R, forall z : R, ((Rminus x y) = z) = (x = (Rplus z y)). -Axiom thm_REAL_SUB_SUB2 : forall x : R, forall y : R, (Rminus x (Rminus x y)) = y. -Axiom thm_REAL_ADD_SUB2 : forall x : R, forall y : R, (Rminus x (Rplus x y)) = (Ropp y). -Axiom thm_REAL_EQ_IMP_LE : forall x : R, forall y : R, (x = y) -> Rle x y. -Axiom thm_REAL_LT_IMP_NZ : forall x : R, (Rlt (INR (NUMERAL 0)) x) -> ~ (x = (INR (NUMERAL 0))). -Axiom thm_REAL_DIFFSQ : forall x : R, forall y : R, (Rmult (Rplus x y) (Rminus x y)) = (Rminus (Rmult x x) (Rmult y y)). -Axiom thm_REAL_EQ_NEG2 : forall x : R, forall y : R, ((Ropp x) = (Ropp y)) = (x = y). -Axiom thm_REAL_LT_NEG2 : forall x : R, forall y : R, (Rlt (Ropp x) (Ropp y)) = (Rlt y x). -Axiom thm_REAL_SUB_LDISTRIB : forall x : R, forall y : R, forall z : R, (Rmult x (Rminus y z)) = (Rminus (Rmult x y) (Rmult x z)). -Axiom thm_REAL_SUB_RDISTRIB : forall x : R, forall y : R, forall z : R, (Rmult (Rminus x y) z) = (Rminus (Rmult x z) (Rmult y z)). -Axiom thm_REAL_ABS_ZERO : forall x : R, ((Rabs x) = (INR (NUMERAL 0))) = (x = (INR (NUMERAL 0))). -Axiom thm_REAL_ABS_0 : (Rabs (INR (NUMERAL 0))) = (INR (NUMERAL 0)). -Axiom thm_REAL_ABS_1 : (Rabs (INR (NUMERAL (BIT1 0)))) = (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_ABS_TRIANGLE : forall x : R, forall y : R, Rle (Rabs (Rplus x y)) (Rplus (Rabs x) (Rabs y)). -Axiom thm_REAL_ABS_TRIANGLE_LE : forall x : R, forall y : R, forall z : R, (Rle (Rplus (Rabs x) (Rabs (Rminus y x))) z) -> Rle (Rabs y) z. -Axiom thm_REAL_ABS_TRIANGLE_LT : forall x : R, forall y : R, forall z : R, (Rlt (Rplus (Rabs x) (Rabs (Rminus y x))) z) -> Rlt (Rabs y) z. -Axiom thm_REAL_ABS_POS : forall x : R, Rle (INR (NUMERAL 0)) (Rabs x). -Axiom thm_REAL_ABS_SUB : forall x : R, forall y : R, (Rabs (Rminus x y)) = (Rabs (Rminus y x)). -Axiom thm_REAL_ABS_NZ : forall x : R, (~ (x = (INR (NUMERAL 0)))) = (Rlt (INR (NUMERAL 0)) (Rabs x)). -Axiom thm_REAL_ABS_ABS : forall x : R, (Rabs (Rabs x)) = (Rabs x). -Axiom thm_REAL_ABS_LE : forall x : R, Rle x (Rabs x). -Axiom thm_REAL_ABS_REFL : forall x : R, ((Rabs x) = x) = (Rle (INR (NUMERAL 0)) x). -Axiom thm_REAL_ABS_BETWEEN : forall x : R, forall y : R, forall d : R, ((Rlt (INR (NUMERAL 0)) d) /\ ((Rlt (Rminus x d) y) /\ (Rlt y (Rplus x d)))) = (Rlt (Rabs (Rminus y x)) d). -Axiom thm_REAL_ABS_BOUND : forall x : R, forall y : R, forall d : R, (Rlt (Rabs (Rminus x y)) d) -> Rlt y (Rplus x d). -Axiom thm_REAL_ABS_STILLNZ : forall x : R, forall y : R, (Rlt (Rabs (Rminus x y)) (Rabs y)) -> ~ (x = (INR (NUMERAL 0))). -Axiom thm_REAL_ABS_CASES : forall x : R, (x = (INR (NUMERAL 0))) \/ (Rlt (INR (NUMERAL 0)) (Rabs x)). -Axiom thm_REAL_ABS_BETWEEN1 : forall x : R, forall y : R, forall z : R, ((Rlt x z) /\ (Rlt (Rabs (Rminus y x)) (Rminus z x))) -> Rlt y z. -Axiom thm_REAL_ABS_SIGN : forall x : R, forall y : R, (Rlt (Rabs (Rminus x y)) y) -> Rlt (INR (NUMERAL 0)) x. -Axiom thm_REAL_ABS_SIGN2 : forall x : R, forall y : R, (Rlt (Rabs (Rminus x y)) (Ropp y)) -> Rlt x (INR (NUMERAL 0)). -Axiom thm_REAL_ABS_CIRCLE : forall x : R, forall y : R, forall h : R, (Rlt (Rabs h) (Rminus (Rabs y) (Rabs x))) -> Rlt (Rabs (Rplus x h)) (Rabs y). -Axiom thm_REAL_SUB_ABS : forall x : R, forall y : R, Rle (Rminus (Rabs x) (Rabs y)) (Rabs (Rminus x y)). -Axiom thm_REAL_ABS_SUB_ABS : forall x : R, forall y : R, Rle (Rabs (Rminus (Rabs x) (Rabs y))) (Rabs (Rminus x y)). -Axiom thm_REAL_ABS_BETWEEN2 : forall x0 : R, forall x : R, forall y0 : R, forall y : R, ((Rlt x0 y0) /\ ((Rlt (Rmult (INR (NUMERAL (BIT0 (BIT1 0)))) (Rabs (Rminus x x0))) (Rminus y0 x0)) /\ (Rlt (Rmult (INR (NUMERAL (BIT0 (BIT1 0)))) (Rabs (Rminus y y0))) (Rminus y0 x0)))) -> Rlt x y. -Axiom thm_REAL_ABS_BOUNDS : forall x : R, forall k : R, (Rle (Rabs x) k) = ((Rle (Ropp k) x) /\ (Rle x k)). -Axiom thm_REAL_BOUNDS_LE : forall x : R, forall k : R, ((Rle (Ropp k) x) /\ (Rle x k)) = (Rle (Rabs x) k). -Axiom thm_REAL_BOUNDS_LT : forall x : R, forall k : R, ((Rlt (Ropp k) x) /\ (Rlt x k)) = (Rlt (Rabs x) k). -Axiom thm_REAL_MIN_MAX : forall x : R, forall y : R, (Rmin x y) = (Ropp (Rmax (Ropp x) (Ropp y))). -Axiom thm_REAL_MAX_MIN : forall x : R, forall y : R, (Rmax x y) = (Ropp (Rmin (Ropp x) (Ropp y))). -Axiom thm_REAL_MAX_MAX : forall x : R, forall y : R, (Rle x (Rmax x y)) /\ (Rle y (Rmax x y)). -Axiom thm_REAL_MIN_MIN : forall x : R, forall y : R, (Rle (Rmin x y) x) /\ (Rle (Rmin x y) y). -Axiom thm_REAL_MAX_SYM : forall x : R, forall y : R, (Rmax x y) = (Rmax y x). -Axiom thm_REAL_MIN_SYM : forall x : R, forall y : R, (Rmin x y) = (Rmin y x). -Axiom thm_REAL_LE_MAX : forall x : R, forall y : R, forall z : R, (Rle z (Rmax x y)) = ((Rle z x) \/ (Rle z y)). -Axiom thm_REAL_LE_MIN : forall x : R, forall y : R, forall z : R, (Rle z (Rmin x y)) = ((Rle z x) /\ (Rle z y)). -Axiom thm_REAL_LT_MAX : forall x : R, forall y : R, forall z : R, (Rlt z (Rmax x y)) = ((Rlt z x) \/ (Rlt z y)). -Axiom thm_REAL_LT_MIN : forall x : R, forall y : R, forall z : R, (Rlt z (Rmin x y)) = ((Rlt z x) /\ (Rlt z y)). -Axiom thm_REAL_MAX_LE : forall x : R, forall y : R, forall z : R, (Rle (Rmax x y) z) = ((Rle x z) /\ (Rle y z)). -Axiom thm_REAL_MIN_LE : forall x : R, forall y : R, forall z : R, (Rle (Rmin x y) z) = ((Rle x z) \/ (Rle y z)). -Axiom thm_REAL_MAX_LT : forall x : R, forall y : R, forall z : R, (Rlt (Rmax x y) z) = ((Rlt x z) /\ (Rlt y z)). -Axiom thm_REAL_MIN_LT : forall x : R, forall y : R, forall z : R, (Rlt (Rmin x y) z) = ((Rlt x z) \/ (Rlt y z)). -Axiom thm_REAL_MAX_ASSOC : forall x : R, forall y : R, forall z : R, (Rmax x (Rmax y z)) = (Rmax (Rmax x y) z). -Axiom thm_REAL_MIN_ASSOC : forall x : R, forall y : R, forall z : R, (Rmin x (Rmin y z)) = (Rmin (Rmin x y) z). -Axiom thm_REAL_MAX_ACI : forall (z : R) (x : R) (y : R), ((Rmax x y) = (Rmax y x)) /\ (((Rmax (Rmax x y) z) = (Rmax x (Rmax y z))) /\ (((Rmax x (Rmax y z)) = (Rmax y (Rmax x z))) /\ (((Rmax x x) = x) /\ ((Rmax x (Rmax x y)) = (Rmax x y))))). -Axiom thm_REAL_MIN_ACI : forall (z : R) (x : R) (y : R), ((Rmin x y) = (Rmin y x)) /\ (((Rmin (Rmin x y) z) = (Rmin x (Rmin y z))) /\ (((Rmin x (Rmin y z)) = (Rmin y (Rmin x z))) /\ (((Rmin x x) = x) /\ ((Rmin x (Rmin x y)) = (Rmin x y))))). -Axiom thm_REAL_ABS_MUL : forall x : R, forall y : R, (Rabs (Rmult x y)) = (Rmult (Rabs x) (Rabs y)). -Axiom thm_REAL_POW_LE : forall x : R, forall n : nat, (Rle (INR (NUMERAL 0)) x) -> Rle (INR (NUMERAL 0)) (Rpower_nat x n). -Axiom thm_REAL_POW_LT : forall x : R, forall n : nat, (Rlt (INR (NUMERAL 0)) x) -> Rlt (INR (NUMERAL 0)) (Rpower_nat x n). -Axiom thm_REAL_ABS_POW : forall x : R, forall n : nat, (Rabs (Rpower_nat x n)) = (Rpower_nat (Rabs x) n). -Axiom thm_REAL_LE_LMUL : forall x : R, forall y : R, forall z : R, ((Rle (INR (NUMERAL 0)) x) /\ (Rle y z)) -> Rle (Rmult x y) (Rmult x z). -Axiom thm_REAL_LE_RMUL : forall x : R, forall y : R, forall z : R, ((Rle x y) /\ (Rle (INR (NUMERAL 0)) z)) -> Rle (Rmult x z) (Rmult y z). -Axiom thm_REAL_LT_LMUL : forall x : R, forall y : R, forall z : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rlt y z)) -> Rlt (Rmult x y) (Rmult x z). -Axiom thm_REAL_LT_RMUL : forall x : R, forall y : R, forall z : R, ((Rlt x y) /\ (Rlt (INR (NUMERAL 0)) z)) -> Rlt (Rmult x z) (Rmult y z). -Axiom thm_REAL_EQ_MUL_LCANCEL : forall x : R, forall y : R, forall z : R, ((Rmult x y) = (Rmult x z)) = ((x = (INR (NUMERAL 0))) \/ (y = z)). -Axiom thm_REAL_EQ_MUL_RCANCEL : forall x : R, forall y : R, forall z : R, ((Rmult x z) = (Rmult y z)) = ((x = y) \/ (z = (INR (NUMERAL 0)))). -Axiom thm_REAL_MUL_LINV_UNIQ : forall x : R, forall y : R, ((Rmult x y) = (INR (NUMERAL (BIT1 0)))) -> (Rinv y) = x. -Axiom thm_REAL_MUL_RINV_UNIQ : forall x : R, forall y : R, ((Rmult x y) = (INR (NUMERAL (BIT1 0)))) -> (Rinv x) = y. -Axiom thm_REAL_INV_INV : forall x : R, (Rinv (Rinv x)) = x. -Axiom thm_REAL_EQ_INV2 : forall x : R, forall y : R, ((Rinv x) = (Rinv y)) = (x = y). -Axiom thm_REAL_INV_EQ_0 : forall x : R, ((Rinv x) = (INR (NUMERAL 0))) = (x = (INR (NUMERAL 0))). -Axiom thm_REAL_LT_INV : forall x : R, (Rlt (INR (NUMERAL 0)) x) -> Rlt (INR (NUMERAL 0)) (Rinv x). -Axiom thm_REAL_LT_INV_EQ : forall x : R, (Rlt (INR (NUMERAL 0)) (Rinv x)) = (Rlt (INR (NUMERAL 0)) x). -Axiom thm_REAL_INV_NEG : forall x : R, (Rinv (Ropp x)) = (Ropp (Rinv x)). -Axiom thm_REAL_LE_INV_EQ : forall x : R, (Rle (INR (NUMERAL 0)) (Rinv x)) = (Rle (INR (NUMERAL 0)) x). -Axiom thm_REAL_LE_INV : forall x : R, (Rle (INR (NUMERAL 0)) x) -> Rle (INR (NUMERAL 0)) (Rinv x). -Axiom thm_REAL_MUL_RINV : forall x : R, (~ (x = (INR (NUMERAL 0)))) -> (Rmult x (Rinv x)) = (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_INV_1 : (Rinv (INR (NUMERAL (BIT1 0)))) = (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_INV_EQ_1 : forall x : R, ((Rinv x) = (INR (NUMERAL (BIT1 0)))) = (x = (INR (NUMERAL (BIT1 0)))). -Axiom thm_REAL_DIV_1 : forall x : R, (Rdiv x (INR (NUMERAL (BIT1 0)))) = x. -Axiom thm_REAL_DIV_REFL : forall x : R, (~ (x = (INR (NUMERAL 0)))) -> (Rdiv x x) = (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_DIV_RMUL : forall x : R, forall y : R, (~ (y = (INR (NUMERAL 0)))) -> (Rmult (Rdiv x y) y) = x. -Axiom thm_REAL_DIV_LMUL : forall x : R, forall y : R, (~ (y = (INR (NUMERAL 0)))) -> (Rmult y (Rdiv x y)) = x. -Axiom thm_REAL_DIV_EQ_1 : forall x : R, forall y : R, ((Rdiv x y) = (INR (NUMERAL (BIT1 0)))) = ((x = y) /\ ((~ (x = (INR (NUMERAL 0)))) /\ (~ (y = (INR (NUMERAL 0)))))). -Axiom thm_REAL_ABS_INV : forall x : R, (Rabs (Rinv x)) = (Rinv (Rabs x)). -Axiom thm_REAL_ABS_DIV : forall x : R, forall y : R, (Rabs (Rdiv x y)) = (Rdiv (Rabs x) (Rabs y)). -Axiom thm_REAL_INV_MUL : forall x : R, forall y : R, (Rinv (Rmult x y)) = (Rmult (Rinv x) (Rinv y)). -Axiom thm_REAL_INV_DIV : forall x : R, forall y : R, (Rinv (Rdiv x y)) = (Rdiv y x). -Axiom thm_REAL_POW_MUL : forall x : R, forall y : R, forall n : nat, (Rpower_nat (Rmult x y) n) = (Rmult (Rpower_nat x n) (Rpower_nat y n)). -Axiom thm_REAL_POW_INV : forall x : R, forall n : nat, (Rpower_nat (Rinv x) n) = (Rinv (Rpower_nat x n)). -Axiom thm_REAL_INV_POW : forall x : R, forall n : nat, (Rinv (Rpower_nat x n)) = (Rpower_nat (Rinv x) n). -Axiom thm_REAL_POW_DIV : forall x : R, forall y : R, forall n : nat, (Rpower_nat (Rdiv x y) n) = (Rdiv (Rpower_nat x n) (Rpower_nat y n)). -Axiom thm_REAL_DIV_EQ_0 : forall x : R, forall y : R, ((Rdiv x y) = (INR (NUMERAL 0))) = ((x = (INR (NUMERAL 0))) \/ (y = (INR (NUMERAL 0)))). -Axiom thm_REAL_POW_ADD : forall x : R, forall m : nat, forall n : nat, (Rpower_nat x (Nat.add m n)) = (Rmult (Rpower_nat x m) (Rpower_nat x n)). -Axiom thm_REAL_POW_NZ : forall x : R, forall n : nat, (~ (x = (INR (NUMERAL 0)))) -> ~ ((Rpower_nat x n) = (INR (NUMERAL 0))). -Axiom thm_REAL_POW_SUB : forall x : R, forall m : nat, forall n : nat, ((~ (x = (INR (NUMERAL 0)))) /\ (Peano.le m n)) -> (Rpower_nat x (Nat.sub n m)) = (Rdiv (Rpower_nat x n) (Rpower_nat x m)). -Axiom thm_REAL_LT_LCANCEL_IMP : forall x : R, forall y : R, forall z : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rlt (Rmult x y) (Rmult x z))) -> Rlt y z. -Axiom thm_REAL_LT_RCANCEL_IMP : forall x : R, forall y : R, forall z : R, ((Rlt (INR (NUMERAL 0)) z) /\ (Rlt (Rmult x z) (Rmult y z))) -> Rlt x y. -Axiom thm_REAL_LE_LCANCEL_IMP : forall x : R, forall y : R, forall z : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rle (Rmult x y) (Rmult x z))) -> Rle y z. -Axiom thm_REAL_LE_RCANCEL_IMP : forall x : R, forall y : R, forall z : R, ((Rlt (INR (NUMERAL 0)) z) /\ (Rle (Rmult x z) (Rmult y z))) -> Rle x y. -Axiom thm_REAL_LE_RMUL_EQ : forall x : R, forall y : R, forall z : R, (Rlt (INR (NUMERAL 0)) z) -> (Rle (Rmult x z) (Rmult y z)) = (Rle x y). -Axiom thm_REAL_LE_LMUL_EQ : forall x : R, forall y : R, forall z : R, (Rlt (INR (NUMERAL 0)) z) -> (Rle (Rmult z x) (Rmult z y)) = (Rle x y). -Axiom thm_REAL_LT_RMUL_EQ : forall x : R, forall y : R, forall z : R, (Rlt (INR (NUMERAL 0)) z) -> (Rlt (Rmult x z) (Rmult y z)) = (Rlt x y). -Axiom thm_REAL_LT_LMUL_EQ : forall x : R, forall y : R, forall z : R, (Rlt (INR (NUMERAL 0)) z) -> (Rlt (Rmult z x) (Rmult z y)) = (Rlt x y). -Axiom thm_REAL_LE_MUL_EQ : (forall x : R, forall y : R, (Rlt (INR (NUMERAL 0)) x) -> (Rle (INR (NUMERAL 0)) (Rmult x y)) = (Rle (INR (NUMERAL 0)) y)) /\ (forall x : R, forall y : R, (Rlt (INR (NUMERAL 0)) y) -> (Rle (INR (NUMERAL 0)) (Rmult x y)) = (Rle (INR (NUMERAL 0)) x)). -Axiom thm_REAL_LT_MUL_EQ : (forall x : R, forall y : R, (Rlt (INR (NUMERAL 0)) x) -> (Rlt (INR (NUMERAL 0)) (Rmult x y)) = (Rlt (INR (NUMERAL 0)) y)) /\ (forall x : R, forall y : R, (Rlt (INR (NUMERAL 0)) y) -> (Rlt (INR (NUMERAL 0)) (Rmult x y)) = (Rlt (INR (NUMERAL 0)) x)). -Axiom thm_REAL_MUL_POS_LT : forall x : R, forall y : R, (Rlt (INR (NUMERAL 0)) (Rmult x y)) = (((Rlt (INR (NUMERAL 0)) x) /\ (Rlt (INR (NUMERAL 0)) y)) \/ ((Rlt x (INR (NUMERAL 0))) /\ (Rlt y (INR (NUMERAL 0))))). -Axiom thm_REAL_MUL_POS_LE : forall x : R, forall y : R, (Rle (INR (NUMERAL 0)) (Rmult x y)) = ((x = (INR (NUMERAL 0))) \/ ((y = (INR (NUMERAL 0))) \/ (((Rlt (INR (NUMERAL 0)) x) /\ (Rlt (INR (NUMERAL 0)) y)) \/ ((Rlt x (INR (NUMERAL 0))) /\ (Rlt y (INR (NUMERAL 0))))))). -Axiom thm_REAL_LE_RDIV_EQ : forall x : R, forall y : R, forall z : R, (Rlt (INR (NUMERAL 0)) z) -> (Rle x (Rdiv y z)) = (Rle (Rmult x z) y). -Axiom thm_REAL_LE_LDIV_EQ : forall x : R, forall y : R, forall z : R, (Rlt (INR (NUMERAL 0)) z) -> (Rle (Rdiv x z) y) = (Rle x (Rmult y z)). -Axiom thm_REAL_LT_RDIV_EQ : forall x : R, forall y : R, forall z : R, (Rlt (INR (NUMERAL 0)) z) -> (Rlt x (Rdiv y z)) = (Rlt (Rmult x z) y). -Axiom thm_REAL_LT_LDIV_EQ : forall x : R, forall y : R, forall z : R, (Rlt (INR (NUMERAL 0)) z) -> (Rlt (Rdiv x z) y) = (Rlt x (Rmult y z)). -Axiom thm_REAL_EQ_RDIV_EQ : forall x : R, forall y : R, forall z : R, (Rlt (INR (NUMERAL 0)) z) -> (x = (Rdiv y z)) = ((Rmult x z) = y). -Axiom thm_REAL_EQ_LDIV_EQ : forall x : R, forall y : R, forall z : R, (Rlt (INR (NUMERAL 0)) z) -> ((Rdiv x z) = y) = (x = (Rmult y z)). -Axiom thm_REAL_LT_DIV2_EQ : forall x : R, forall y : R, forall z : R, (Rlt (INR (NUMERAL 0)) z) -> (Rlt (Rdiv x z) (Rdiv y z)) = (Rlt x y). -Axiom thm_REAL_LE_DIV2_EQ : forall x : R, forall y : R, forall z : R, (Rlt (INR (NUMERAL 0)) z) -> (Rle (Rdiv x z) (Rdiv y z)) = (Rle x y). -Axiom thm_REAL_MUL_2 : forall x : R, (Rmult (INR (NUMERAL (BIT0 (BIT1 0)))) x) = (Rplus x x). -Axiom thm_REAL_POW_EQ_0 : forall x : R, forall n : nat, ((Rpower_nat x n) = (INR (NUMERAL 0))) = ((x = (INR (NUMERAL 0))) /\ (~ (n = (NUMERAL 0)))). -Axiom thm_REAL_LE_MUL2 : forall w : R, forall x : R, forall y : R, forall z : R, ((Rle (INR (NUMERAL 0)) w) /\ ((Rle w x) /\ ((Rle (INR (NUMERAL 0)) y) /\ (Rle y z)))) -> Rle (Rmult w y) (Rmult x z). -Axiom thm_REAL_LT_MUL2 : forall w : R, forall x : R, forall y : R, forall z : R, ((Rle (INR (NUMERAL 0)) w) /\ ((Rlt w x) /\ ((Rle (INR (NUMERAL 0)) y) /\ (Rlt y z)))) -> Rlt (Rmult w y) (Rmult x z). -Axiom thm_REAL_LT_SQUARE : forall x : R, (Rlt (INR (NUMERAL 0)) (Rmult x x)) = (~ (x = (INR (NUMERAL 0)))). -Axiom thm_REAL_POW_1 : forall x : R, (Rpower_nat x (NUMERAL (BIT1 0))) = x. -Axiom thm_REAL_POW_ONE : forall n : nat, (Rpower_nat (INR (NUMERAL (BIT1 0))) n) = (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_LT_INV2 : forall x : R, forall y : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rlt x y)) -> Rlt (Rinv y) (Rinv x). -Axiom thm_REAL_LE_INV2 : forall x : R, forall y : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rle x y)) -> Rle (Rinv y) (Rinv x). -Axiom thm_REAL_LT_LINV : forall x : R, forall y : R, ((Rlt (INR (NUMERAL 0)) y) /\ (Rlt (Rinv y) x)) -> Rlt (Rinv x) y. -Axiom thm_REAL_LT_RINV : forall x : R, forall y : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rlt x (Rinv y))) -> Rlt y (Rinv x). -Axiom thm_REAL_LE_LINV : forall x : R, forall y : R, ((Rlt (INR (NUMERAL 0)) y) /\ (Rle (Rinv y) x)) -> Rle (Rinv x) y. -Axiom thm_REAL_LE_RINV : forall x : R, forall y : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rle x (Rinv y))) -> Rle y (Rinv x). -Axiom thm_REAL_INV_LE_1 : forall x : R, (Rle (INR (NUMERAL (BIT1 0))) x) -> Rle (Rinv x) (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_INV_1_LE : forall x : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rle x (INR (NUMERAL (BIT1 0))))) -> Rle (INR (NUMERAL (BIT1 0))) (Rinv x). -Axiom thm_REAL_INV_LT_1 : forall x : R, (Rlt (INR (NUMERAL (BIT1 0))) x) -> Rlt (Rinv x) (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_INV_1_LT : forall x : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rlt x (INR (NUMERAL (BIT1 0))))) -> Rlt (INR (NUMERAL (BIT1 0))) (Rinv x). -Axiom thm_REAL_SUB_INV : forall x : R, forall y : R, ((~ (x = (INR (NUMERAL 0)))) /\ (~ (y = (INR (NUMERAL 0))))) -> (Rminus (Rinv x) (Rinv y)) = (Rdiv (Rminus y x) (Rmult x y)). -Axiom thm_REAL_DOWN : forall d : R, (Rlt (INR (NUMERAL 0)) d) -> exists e : R, (Rlt (INR (NUMERAL 0)) e) /\ (Rlt e d). -Axiom thm_REAL_DOWN2 : forall d1 : R, forall d2 : R, ((Rlt (INR (NUMERAL 0)) d1) /\ (Rlt (INR (NUMERAL 0)) d2)) -> exists e : R, (Rlt (INR (NUMERAL 0)) e) /\ ((Rlt e d1) /\ (Rlt e d2)). -Axiom thm_REAL_POW_LE2 : forall n : nat, forall x : R, forall y : R, ((Rle (INR (NUMERAL 0)) x) /\ (Rle x y)) -> Rle (Rpower_nat x n) (Rpower_nat y n). -Axiom thm_REAL_POW_LE_1 : forall n : nat, forall x : R, (Rle (INR (NUMERAL (BIT1 0))) x) -> Rle (INR (NUMERAL (BIT1 0))) (Rpower_nat x n). -Axiom thm_REAL_POW_1_LE : forall n : nat, forall x : R, ((Rle (INR (NUMERAL 0)) x) /\ (Rle x (INR (NUMERAL (BIT1 0))))) -> Rle (Rpower_nat x n) (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_POW_MONO : forall m : nat, forall n : nat, forall x : R, ((Rle (INR (NUMERAL (BIT1 0))) x) /\ (Peano.le m n)) -> Rle (Rpower_nat x m) (Rpower_nat x n). -Axiom thm_REAL_POW_LT2 : forall n : nat, forall x : R, forall y : R, ((~ (n = (NUMERAL 0))) /\ ((Rle (INR (NUMERAL 0)) x) /\ (Rlt x y))) -> Rlt (Rpower_nat x n) (Rpower_nat y n). -Axiom thm_REAL_POW_LT_1 : forall n : nat, forall x : R, ((~ (n = (NUMERAL 0))) /\ (Rlt (INR (NUMERAL (BIT1 0))) x)) -> Rlt (INR (NUMERAL (BIT1 0))) (Rpower_nat x n). -Axiom thm_REAL_POW_1_LT : forall n : nat, forall x : R, ((~ (n = (NUMERAL 0))) /\ ((Rle (INR (NUMERAL 0)) x) /\ (Rlt x (INR (NUMERAL (BIT1 0)))))) -> Rlt (Rpower_nat x n) (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_POW_MONO_LT : forall m : nat, forall n : nat, forall x : R, ((Rlt (INR (NUMERAL (BIT1 0))) x) /\ (Peano.lt m n)) -> Rlt (Rpower_nat x m) (Rpower_nat x n). -Axiom thm_REAL_POW_POW : forall x : R, forall m : nat, forall n : nat, (Rpower_nat (Rpower_nat x m) n) = (Rpower_nat x (Nat.mul m n)). -Axiom thm_REAL_EQ_RCANCEL_IMP : forall x : R, forall y : R, forall z : R, ((~ (z = (INR (NUMERAL 0)))) /\ ((Rmult x z) = (Rmult y z))) -> x = y. -Axiom thm_REAL_EQ_LCANCEL_IMP : forall x : R, forall y : R, forall z : R, ((~ (z = (INR (NUMERAL 0)))) /\ ((Rmult z x) = (Rmult z y))) -> x = y. -Axiom thm_REAL_LT_DIV : forall x : R, forall y : R, ((Rlt (INR (NUMERAL 0)) x) /\ (Rlt (INR (NUMERAL 0)) y)) -> Rlt (INR (NUMERAL 0)) (Rdiv x y). -Axiom thm_REAL_LE_DIV : forall x : R, forall y : R, ((Rle (INR (NUMERAL 0)) x) /\ (Rle (INR (NUMERAL 0)) y)) -> Rle (INR (NUMERAL 0)) (Rdiv x y). -Axiom thm_REAL_DIV_POW2 : forall x : R, forall m : nat, forall n : nat, (~ (x = (INR (NUMERAL 0)))) -> (Rdiv (Rpower_nat x m) (Rpower_nat x n)) = (@COND R (Peano.le n m) (Rpower_nat x (Nat.sub m n)) (Rinv (Rpower_nat x (Nat.sub n m)))). -Axiom thm_REAL_DIV_POW2_ALT : forall x : R, forall m : nat, forall n : nat, (~ (x = (INR (NUMERAL 0)))) -> (Rdiv (Rpower_nat x m) (Rpower_nat x n)) = (@COND R (Peano.lt n m) (Rpower_nat x (Nat.sub m n)) (Rinv (Rpower_nat x (Nat.sub n m)))). -Axiom thm_REAL_LT_POW2 : forall n : nat, Rlt (INR (NUMERAL 0)) (Rpower_nat (INR (NUMERAL (BIT0 (BIT1 0)))) n). -Axiom thm_REAL_LE_POW2 : forall n : nat, Rle (INR (NUMERAL (BIT1 0))) (Rpower_nat (INR (NUMERAL (BIT0 (BIT1 0)))) n). -Axiom thm_REAL_POW2_ABS : forall x : R, (Rpower_nat (Rabs x) (NUMERAL (BIT0 (BIT1 0)))) = (Rpower_nat x (NUMERAL (BIT0 (BIT1 0)))). -Axiom thm_REAL_LE_SQUARE_ABS : forall x : R, forall y : R, (Rle (Rabs x) (Rabs y)) = (Rle (Rpower_nat x (NUMERAL (BIT0 (BIT1 0)))) (Rpower_nat y (NUMERAL (BIT0 (BIT1 0))))). -Axiom thm_REAL_LT_SQUARE_ABS : forall x : R, forall y : R, (Rlt (Rabs x) (Rabs y)) = (Rlt (Rpower_nat x (NUMERAL (BIT0 (BIT1 0)))) (Rpower_nat y (NUMERAL (BIT0 (BIT1 0))))). -Axiom thm_REAL_EQ_SQUARE_ABS : forall x : R, forall y : R, ((Rabs x) = (Rabs y)) = ((Rpower_nat x (NUMERAL (BIT0 (BIT1 0)))) = (Rpower_nat y (NUMERAL (BIT0 (BIT1 0))))). -Axiom thm_REAL_LE_POW_2 : forall x : R, Rle (INR (NUMERAL 0)) (Rpower_nat x (NUMERAL (BIT0 (BIT1 0)))). -Axiom thm_REAL_LT_POW_2 : forall x : R, (Rlt (INR (NUMERAL 0)) (Rpower_nat x (NUMERAL (BIT0 (BIT1 0))))) = (~ (x = (INR (NUMERAL 0)))). -Axiom thm_REAL_SOS_EQ_0 : forall x : R, forall y : R, ((Rplus (Rpower_nat x (NUMERAL (BIT0 (BIT1 0)))) (Rpower_nat y (NUMERAL (BIT0 (BIT1 0))))) = (INR (NUMERAL 0))) = ((x = (INR (NUMERAL 0))) /\ (y = (INR (NUMERAL 0)))). -Axiom thm_REAL_POW_ZERO : forall n : nat, (Rpower_nat (INR (NUMERAL 0)) n) = (@COND R (n = (NUMERAL 0)) (INR (NUMERAL (BIT1 0))) (INR (NUMERAL 0))). -Axiom thm_REAL_POW_MONO_INV : forall m : nat, forall n : nat, forall x : R, ((Rle (INR (NUMERAL 0)) x) /\ ((Rle x (INR (NUMERAL (BIT1 0)))) /\ (Peano.le n m))) -> Rle (Rpower_nat x m) (Rpower_nat x n). -Axiom thm_REAL_POW_LE2_REV : forall n : nat, forall x : R, forall y : R, ((~ (n = (NUMERAL 0))) /\ ((Rle (INR (NUMERAL 0)) y) /\ (Rle (Rpower_nat x n) (Rpower_nat y n)))) -> Rle x y. -Axiom thm_REAL_POW_LT2_REV : forall n : nat, forall x : R, forall y : R, ((Rle (INR (NUMERAL 0)) y) /\ (Rlt (Rpower_nat x n) (Rpower_nat y n))) -> Rlt x y. -Axiom thm_REAL_POW_EQ : forall n : nat, forall x : R, forall y : R, ((~ (n = (NUMERAL 0))) /\ ((Rle (INR (NUMERAL 0)) x) /\ ((Rle (INR (NUMERAL 0)) y) /\ ((Rpower_nat x n) = (Rpower_nat y n))))) -> x = y. -Axiom thm_REAL_POW_EQ_ABS : forall n : nat, forall x : R, forall y : R, ((~ (n = (NUMERAL 0))) /\ ((Rpower_nat x n) = (Rpower_nat y n))) -> (Rabs x) = (Rabs y). -Axiom thm_REAL_POW_EQ_1_IMP : forall x : R, forall n : nat, ((~ (n = (NUMERAL 0))) /\ ((Rpower_nat x n) = (INR (NUMERAL (BIT1 0))))) -> (Rabs x) = (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_POW_EQ_1 : forall x : R, forall n : nat, ((Rpower_nat x n) = (INR (NUMERAL (BIT1 0)))) = ((((Rabs x) = (INR (NUMERAL (BIT1 0)))) /\ ((Rlt x (INR (NUMERAL 0))) -> Coq.Arith.PeanoNat.Nat.Even n)) \/ (n = (NUMERAL 0))). -Axiom thm_REAL_POW_LT2_ODD : forall n : nat, forall x : R, forall y : R, ((Rlt x y) /\ (Coq.Arith.PeanoNat.Nat.Odd n)) -> Rlt (Rpower_nat x n) (Rpower_nat y n). -Axiom thm_REAL_POW_LE2_ODD : forall n : nat, forall x : R, forall y : R, ((Rle x y) /\ (Coq.Arith.PeanoNat.Nat.Odd n)) -> Rle (Rpower_nat x n) (Rpower_nat y n). -Axiom thm_REAL_POW_LT2_ODD_EQ : forall n : nat, forall x : R, forall y : R, (Coq.Arith.PeanoNat.Nat.Odd n) -> (Rlt (Rpower_nat x n) (Rpower_nat y n)) = (Rlt x y). -Axiom thm_REAL_POW_LE2_ODD_EQ : forall n : nat, forall x : R, forall y : R, (Coq.Arith.PeanoNat.Nat.Odd n) -> (Rle (Rpower_nat x n) (Rpower_nat y n)) = (Rle x y). -Axiom thm_REAL_POW_EQ_ODD_EQ : forall n : nat, forall x : R, forall y : R, (Coq.Arith.PeanoNat.Nat.Odd n) -> ((Rpower_nat x n) = (Rpower_nat y n)) = (x = y). -Axiom thm_REAL_POW_EQ_ODD : forall n : nat, forall x : R, forall y : R, ((Coq.Arith.PeanoNat.Nat.Odd n) /\ ((Rpower_nat x n) = (Rpower_nat y n))) -> x = y. -Axiom thm_REAL_POW_EQ_EQ : forall n : nat, forall x : R, forall y : R, ((Rpower_nat x n) = (Rpower_nat y n)) = (@COND Prop (Coq.Arith.PeanoNat.Nat.Even n) ((n = (NUMERAL 0)) \/ ((Rabs x) = (Rabs y))) (x = y)). -Axiom thm_REAL_EVENPOW_ABS : forall x : R, forall n : nat, (Coq.Arith.PeanoNat.Nat.Even n) -> (Rpower_nat (Rabs x) n) = (Rpower_nat x n). -Axiom thm_REAL_OF_NUM_MOD : forall m : nat, forall n : nat, (INR (Nat.modulo m n)) = (Rminus (INR m) (Rmult (INR (Nat.div m n)) (INR n))). -Axiom thm_REAL_OF_NUM_DIV : forall m : nat, forall n : nat, (INR (Nat.div m n)) = (Rminus (Rdiv (INR m) (INR n)) (Rdiv (INR (Nat.modulo m n)) (INR n))). -Axiom thm_REAL_CONVEX_BOUND2_LT : forall (b : R), forall x : R, forall y : R, forall a : R, forall u : R, forall v : R, ((Rlt x a) /\ ((Rlt y b) /\ ((Rle (INR (NUMERAL 0)) u) /\ ((Rle (INR (NUMERAL 0)) v) /\ ((Rplus u v) = (INR (NUMERAL (BIT1 0)))))))) -> Rlt (Rplus (Rmult u x) (Rmult v y)) (Rplus (Rmult u a) (Rmult v b)). -Axiom thm_REAL_CONVEX_BOUND2_LE : forall (b : R), forall x : R, forall y : R, forall a : R, forall u : R, forall v : R, ((Rle x a) /\ ((Rle y b) /\ ((Rle (INR (NUMERAL 0)) u) /\ ((Rle (INR (NUMERAL 0)) v) /\ ((Rplus u v) = (INR (NUMERAL (BIT1 0)))))))) -> Rle (Rplus (Rmult u x) (Rmult v y)) (Rplus (Rmult u a) (Rmult v b)). -Axiom thm_REAL_CONVEX_BOUND_LT : forall x : R, forall y : R, forall a : R, forall u : R, forall v : R, ((Rlt x a) /\ ((Rlt y a) /\ ((Rle (INR (NUMERAL 0)) u) /\ ((Rle (INR (NUMERAL 0)) v) /\ ((Rplus u v) = (INR (NUMERAL (BIT1 0)))))))) -> Rlt (Rplus (Rmult u x) (Rmult v y)) a. -Axiom thm_REAL_CONVEX_BOUND_LE : forall x : R, forall y : R, forall a : R, forall u : R, forall v : R, ((Rle x a) /\ ((Rle y a) /\ ((Rle (INR (NUMERAL 0)) u) /\ ((Rle (INR (NUMERAL 0)) v) /\ ((Rplus u v) = (INR (NUMERAL (BIT1 0)))))))) -> Rle (Rplus (Rmult u x) (Rmult v y)) a. -Axiom thm_REAL_CONVEX_BOUND_GT : forall x : R, forall y : R, forall a : R, forall u : R, forall v : R, ((Rlt a x) /\ ((Rlt a y) /\ ((Rle (INR (NUMERAL 0)) u) /\ ((Rle (INR (NUMERAL 0)) v) /\ ((Rplus u v) = (INR (NUMERAL (BIT1 0)))))))) -> Rlt a (Rplus (Rmult u x) (Rmult v y)). -Axiom thm_REAL_CONVEX_BOUND_GE : forall x : R, forall y : R, forall a : R, forall u : R, forall v : R, ((Rle a x) /\ ((Rle a y) /\ ((Rle (INR (NUMERAL 0)) u) /\ ((Rle (INR (NUMERAL 0)) v) /\ ((Rplus u v) = (INR (NUMERAL (BIT1 0)))))))) -> Rle a (Rplus (Rmult u x) (Rmult v y)). -Axiom thm_REAL_CONVEX_BOUNDS_LE : forall x : R, forall y : R, forall a : R, forall b : R, forall u : R, forall v : R, ((Rle a x) /\ ((Rle x b) /\ ((Rle a y) /\ ((Rle y b) /\ ((Rle (INR (NUMERAL 0)) u) /\ ((Rle (INR (NUMERAL 0)) v) /\ ((Rplus u v) = (INR (NUMERAL (BIT1 0)))))))))) -> (Rle a (Rplus (Rmult u x) (Rmult v y))) /\ (Rle (Rplus (Rmult u x) (Rmult v y)) b). -Axiom thm_REAL_CONVEX_BOUNDS_LT : forall x : R, forall y : R, forall a : R, forall b : R, forall u : R, forall v : R, ((Rlt a x) /\ ((Rlt x b) /\ ((Rlt a y) /\ ((Rlt y b) /\ ((Rle (INR (NUMERAL 0)) u) /\ ((Rle (INR (NUMERAL 0)) v) /\ ((Rplus u v) = (INR (NUMERAL (BIT1 0)))))))))) -> (Rlt a (Rplus (Rmult u x) (Rmult v y))) /\ (Rlt (Rplus (Rmult u x) (Rmult v y)) b). -Axiom thm_REAL_ARCH_SIMPLE : forall x : R, exists n : nat, Rle x (INR n). -Axiom thm_REAL_ARCH_LT : forall x : R, exists n : nat, Rlt x (INR n). -Axiom thm_REAL_ARCH : forall x : R, (Rlt (INR (NUMERAL 0)) x) -> forall y : R, exists n : nat, Rlt y (Rmult (INR n) x). -Axiom thm_REAL_ARCH_INV : forall e : R, (Rlt (INR (NUMERAL 0)) e) = (exists n : nat, (~ (n = (NUMERAL 0))) /\ ((Rlt (INR (NUMERAL 0)) (Rinv (INR n))) /\ (Rlt (Rinv (INR n)) e))). -Axiom thm_REAL_POW_LBOUND : forall x : R, forall n : nat, (Rle (INR (NUMERAL 0)) x) -> Rle (Rplus (INR (NUMERAL (BIT1 0))) (Rmult (INR n) x)) (Rpower_nat (Rplus (INR (NUMERAL (BIT1 0))) x) n). -Axiom thm_REAL_ARCH_POW : forall x : R, forall y : R, (Rlt (INR (NUMERAL (BIT1 0))) x) -> exists n : nat, Rlt y (Rpower_nat x n). -Axiom thm_REAL_ARCH_POW2 : forall x : R, exists n : nat, Rlt x (Rpower_nat (INR (NUMERAL (BIT0 (BIT1 0)))) n). -Axiom thm_REAL_ARCH_POW_INV : forall x : R, forall y : R, ((Rlt (INR (NUMERAL 0)) y) /\ (Rlt x (INR (NUMERAL (BIT1 0))))) -> exists n : nat, Rlt (Rpower_nat x n) y. -Axiom thm_real_sgn : forall x : R, (real_sgn x) = (@COND R (Rlt (INR (NUMERAL 0)) x) (INR (NUMERAL (BIT1 0))) (@COND R (Rlt x (INR (NUMERAL 0))) (Ropp (INR (NUMERAL (BIT1 0)))) (INR (NUMERAL 0)))). -Axiom thm_REAL_SGN_0 : (real_sgn (INR (NUMERAL 0))) = (INR (NUMERAL 0)). -Axiom thm_REAL_SGN_NEG : forall x : R, (real_sgn (Ropp x)) = (Ropp (real_sgn x)). -Axiom thm_REAL_SGN_ABS : forall x : R, (Rmult (real_sgn x) (Rabs x)) = x. -Axiom thm_REAL_SGN_ABS_ALT : forall x : R, (Rmult (real_sgn x) x) = (Rabs x). -Axiom thm_REAL_EQ_SGN_ABS : forall x : R, forall y : R, (x = y) = (((real_sgn x) = (real_sgn y)) /\ ((Rabs x) = (Rabs y))). -Axiom thm_REAL_ABS_SGN : forall x : R, (Rabs (real_sgn x)) = (real_sgn (Rabs x)). -Axiom thm_REAL_SGN : forall x : R, (real_sgn x) = (Rdiv x (Rabs x)). -Axiom thm_REAL_SGN_MUL : forall x : R, forall y : R, (real_sgn (Rmult x y)) = (Rmult (real_sgn x) (real_sgn y)). -Axiom thm_REAL_SGN_INV : forall x : R, (real_sgn (Rinv x)) = (real_sgn x). -Axiom thm_REAL_SGN_DIV : forall x : R, forall y : R, (real_sgn (Rdiv x y)) = (Rdiv (real_sgn x) (real_sgn y)). -Axiom thm_REAL_SGN_EQ : (forall x : R, ((real_sgn x) = (INR (NUMERAL 0))) = (x = (INR (NUMERAL 0)))) /\ ((forall x : R, ((real_sgn x) = (INR (NUMERAL (BIT1 0)))) = (Rgt x (INR (NUMERAL 0)))) /\ (forall x : R, ((real_sgn x) = (Ropp (INR (NUMERAL (BIT1 0))))) = (Rlt x (INR (NUMERAL 0))))). -Axiom thm_REAL_SGN_CASES : forall x : R, ((real_sgn x) = (INR (NUMERAL 0))) \/ (((real_sgn x) = (INR (NUMERAL (BIT1 0)))) \/ ((real_sgn x) = (Ropp (INR (NUMERAL (BIT1 0)))))). -Axiom thm_REAL_SGN_INEQS : (forall x : R, (Rle (INR (NUMERAL 0)) (real_sgn x)) = (Rle (INR (NUMERAL 0)) x)) /\ ((forall x : R, (Rlt (INR (NUMERAL 0)) (real_sgn x)) = (Rlt (INR (NUMERAL 0)) x)) /\ ((forall x : R, (Rge (INR (NUMERAL 0)) (real_sgn x)) = (Rge (INR (NUMERAL 0)) x)) /\ ((forall x : R, (Rgt (INR (NUMERAL 0)) (real_sgn x)) = (Rgt (INR (NUMERAL 0)) x)) /\ ((forall x : R, ((INR (NUMERAL 0)) = (real_sgn x)) = ((INR (NUMERAL 0)) = x)) /\ ((forall x : R, (Rle (real_sgn x) (INR (NUMERAL 0))) = (Rle x (INR (NUMERAL 0)))) /\ ((forall x : R, (Rlt (real_sgn x) (INR (NUMERAL 0))) = (Rlt x (INR (NUMERAL 0)))) /\ ((forall x : R, (Rge (real_sgn x) (INR (NUMERAL 0))) = (Rge x (INR (NUMERAL 0)))) /\ ((forall x : R, (Rgt (real_sgn x) (INR (NUMERAL 0))) = (Rgt x (INR (NUMERAL 0)))) /\ (forall x : R, ((real_sgn x) = (INR (NUMERAL 0))) = (x = (INR (NUMERAL 0)))))))))))). -Axiom thm_REAL_SGN_POW : forall x : R, forall n : nat, (real_sgn (Rpower_nat x n)) = (Rpower_nat (real_sgn x) n). -Axiom thm_REAL_SGN_POW_2 : forall x : R, (real_sgn (Rpower_nat x (NUMERAL (BIT0 (BIT1 0))))) = (real_sgn (Rabs x)). -Axiom thm_REAL_SGN_REAL_SGN : forall x : R, (real_sgn (real_sgn x)) = (real_sgn x). -Axiom thm_REAL_INV_SGN : forall x : R, (Rinv (real_sgn x)) = (real_sgn x). -Axiom thm_REAL_SGN_EQ_INEQ : forall x : R, forall y : R, ((real_sgn x) = (real_sgn y)) = ((x = y) \/ (Rlt (Rabs (Rminus x y)) (Rmax (Rabs x) (Rabs y)))). -Axiom thm_REAL_SGNS_EQ : forall x : R, forall y : R, ((real_sgn x) = (real_sgn y)) = (((x = (INR (NUMERAL 0))) = (y = (INR (NUMERAL 0)))) /\ (((Rgt x (INR (NUMERAL 0))) = (Rgt y (INR (NUMERAL 0)))) /\ ((Rlt x (INR (NUMERAL 0))) = (Rlt y (INR (NUMERAL 0)))))). -Axiom thm_REAL_SGNS_EQ_ALT : forall x : R, forall y : R, ((real_sgn x) = (real_sgn y)) = (((x = (INR (NUMERAL 0))) -> y = (INR (NUMERAL 0))) /\ (((Rgt x (INR (NUMERAL 0))) -> Rgt y (INR (NUMERAL 0))) /\ ((Rlt x (INR (NUMERAL 0))) -> Rlt y (INR (NUMERAL 0))))). -Axiom thm_REAL_WLOG_LE : forall (P : R -> R -> Prop), ((forall x : R, forall y : R, (P x y) = (P y x)) /\ (forall x : R, forall y : R, (Rle x y) -> P x y)) -> forall x : R, forall y : R, P x y. -Axiom thm_REAL_WLOG_LT : forall (P : R -> R -> Prop), ((forall x : R, P x x) /\ ((forall x : R, forall y : R, (P x y) = (P y x)) /\ (forall x : R, forall y : R, (Rlt x y) -> P x y))) -> forall x : R, forall y : R, P x y. -Axiom thm_REAL_WLOG_LE_3 : forall P : R -> R -> R -> Prop, ((forall x : R, forall y : R, forall z : R, (P x y z) -> (P y x z) /\ (P x z y)) /\ (forall x : R, forall y : R, forall z : R, ((Rle x y) /\ (Rle y z)) -> P x y z)) -> forall x : R, forall y : R, forall z : R, P x y z. -Axiom thm_sqrt : forall x : R, (sqrt x) = (@ε R (fun y : R => ((real_sgn y) = (real_sgn x)) /\ ((Rpower_nat y (NUMERAL (BIT0 (BIT1 0)))) = (Rabs x)))). -Axiom thm_SQRT_UNIQUE : forall x : R, forall y : R, ((Rle (INR (NUMERAL 0)) y) /\ ((Rpower_nat y (NUMERAL (BIT0 (BIT1 0)))) = x)) -> (sqrt x) = y. -Axiom thm_POW_2_SQRT : forall x : R, (Rle (INR (NUMERAL 0)) x) -> (sqrt (Rpower_nat x (NUMERAL (BIT0 (BIT1 0))))) = x. -Axiom thm_SQRT_0 : (sqrt (INR (NUMERAL 0))) = (INR (NUMERAL 0)). -Axiom thm_SQRT_1 : (sqrt (INR (NUMERAL (BIT1 0)))) = (INR (NUMERAL (BIT1 0))). -Axiom thm_POW_2_SQRT_ABS : forall x : R, (sqrt (Rpower_nat x (NUMERAL (BIT0 (BIT1 0))))) = (Rabs x). -Axiom thm_SQRT_WORKS_GEN : forall x : R, ((real_sgn (sqrt x)) = (real_sgn x)) /\ ((Rpower_nat (sqrt x) (NUMERAL (BIT0 (BIT1 0)))) = (Rabs x)). -Axiom thm_SQRT_UNIQUE_GEN : forall x : R, forall y : R, (((real_sgn y) = (real_sgn x)) /\ ((Rpower_nat y (NUMERAL (BIT0 (BIT1 0)))) = (Rabs x))) -> (sqrt x) = y. -Axiom thm_SQRT_NEG : forall x : R, (sqrt (Ropp x)) = (Ropp (sqrt x)). -Axiom thm_REAL_SGN_SQRT : forall x : R, (real_sgn (sqrt x)) = (real_sgn x). -Axiom thm_SQRT_WORKS : forall x : R, (Rle (INR (NUMERAL 0)) x) -> (Rle (INR (NUMERAL 0)) (sqrt x)) /\ ((Rpower_nat (sqrt x) (NUMERAL (BIT0 (BIT1 0)))) = x). -Axiom thm_REAL_POS_EQ_SQUARE : forall x : R, (Rle (INR (NUMERAL 0)) x) = (exists y : R, (Rpower_nat y (NUMERAL (BIT0 (BIT1 0)))) = x). -Axiom thm_SQRT_POS_LE : forall x : R, (Rle (INR (NUMERAL 0)) x) -> Rle (INR (NUMERAL 0)) (sqrt x). -Axiom thm_SQRT_POW_2 : forall x : R, (Rle (INR (NUMERAL 0)) x) -> (Rpower_nat (sqrt x) (NUMERAL (BIT0 (BIT1 0)))) = x. -Axiom thm_SQRT_POW2 : forall x : R, ((Rpower_nat (sqrt x) (NUMERAL (BIT0 (BIT1 0)))) = x) = (Rle (INR (NUMERAL 0)) x). -Axiom thm_SQRT_MUL : forall x : R, forall y : R, (sqrt (Rmult x y)) = (Rmult (sqrt x) (sqrt y)). -Axiom thm_SQRT_INV : forall x : R, (sqrt (Rinv x)) = (Rinv (sqrt x)). -Axiom thm_SQRT_DIV : forall x : R, forall y : R, (sqrt (Rdiv x y)) = (Rdiv (sqrt x) (sqrt y)). -Axiom thm_SQRT_LT_0 : forall x : R, (Rlt (INR (NUMERAL 0)) (sqrt x)) = (Rlt (INR (NUMERAL 0)) x). -Axiom thm_SQRT_EQ_0 : forall x : R, ((sqrt x) = (INR (NUMERAL 0))) = (x = (INR (NUMERAL 0))). -Axiom thm_SQRT_LE_0 : forall x : R, (Rle (INR (NUMERAL 0)) (sqrt x)) = (Rle (INR (NUMERAL 0)) x). -Axiom thm_REAL_ABS_SQRT : forall x : R, (Rabs (sqrt x)) = (sqrt (Rabs x)). -Axiom thm_SQRT_MONO_LT : forall x : R, forall y : R, (Rlt x y) -> Rlt (sqrt x) (sqrt y). -Axiom thm_SQRT_MONO_LE : forall x : R, forall y : R, (Rle x y) -> Rle (sqrt x) (sqrt y). -Axiom thm_SQRT_MONO_LT_EQ : forall x : R, forall y : R, (Rlt (sqrt x) (sqrt y)) = (Rlt x y). -Axiom thm_SQRT_MONO_LE_EQ : forall x : R, forall y : R, (Rle (sqrt x) (sqrt y)) = (Rle x y). -Axiom thm_SQRT_INJ : forall x : R, forall y : R, ((sqrt x) = (sqrt y)) = (x = y). -Axiom thm_SQRT_EQ_1 : forall x : R, ((sqrt x) = (INR (NUMERAL (BIT1 0)))) = (x = (INR (NUMERAL (BIT1 0)))). -Axiom thm_SQRT_POS_LT : forall x : R, (Rlt (INR (NUMERAL 0)) x) -> Rlt (INR (NUMERAL 0)) (sqrt x). -Axiom thm_REAL_LE_LSQRT : forall x : R, forall y : R, ((Rle (INR (NUMERAL 0)) y) /\ (Rle x (Rpower_nat y (NUMERAL (BIT0 (BIT1 0)))))) -> Rle (sqrt x) y. -Axiom thm_REAL_LE_RSQRT : forall x : R, forall y : R, (Rle (Rpower_nat x (NUMERAL (BIT0 (BIT1 0)))) y) -> Rle x (sqrt y). -Axiom thm_REAL_LT_LSQRT : forall x : R, forall y : R, ((Rle (INR (NUMERAL 0)) y) /\ (Rlt x (Rpower_nat y (NUMERAL (BIT0 (BIT1 0)))))) -> Rlt (sqrt x) y. -Axiom thm_REAL_LT_RSQRT : forall x : R, forall y : R, (Rlt (Rpower_nat x (NUMERAL (BIT0 (BIT1 0)))) y) -> Rlt x (sqrt y). -Axiom thm_SQRT_EVEN_POW2 : forall n : nat, (Coq.Arith.PeanoNat.Nat.Even n) -> (sqrt (Rpower_nat (INR (NUMERAL (BIT0 (BIT1 0)))) n)) = (Rpower_nat (INR (NUMERAL (BIT0 (BIT1 0)))) (Nat.div n (NUMERAL (BIT0 (BIT1 0))))). -Axiom thm_REAL_DIV_SQRT : forall x : R, (Rle (INR (NUMERAL 0)) x) -> (Rdiv x (sqrt x)) = (sqrt x). -Axiom thm_REAL_RSQRT_LE : forall x : R, forall y : R, ((Rle (INR (NUMERAL 0)) x) /\ ((Rle (INR (NUMERAL 0)) y) /\ (Rle x (sqrt y)))) -> Rle (Rpower_nat x (NUMERAL (BIT0 (BIT1 0)))) y. -Axiom thm_REAL_LSQRT_LE : forall x : R, forall y : R, ((Rle (INR (NUMERAL 0)) x) /\ (Rle (sqrt x) y)) -> Rle x (Rpower_nat y (NUMERAL (BIT0 (BIT1 0)))). -Axiom thm_REAL_SQRT_POW_2 : forall x : R, (Rpower_nat (sqrt x) (NUMERAL (BIT0 (BIT1 0)))) = (Rabs x). -Axiom thm_REAL_ABS_LE_SQRT_POS : forall x : R, forall y : R, ((Rle (INR (NUMERAL 0)) x) /\ (Rle (INR (NUMERAL 0)) y)) -> Rle (Rabs (Rminus (sqrt x) (sqrt y))) (sqrt (Rabs (Rminus x y))). -Axiom thm_REAL_ABS_LE_SQRT : forall x : R, forall y : R, Rle (Rabs (Rminus (sqrt x) (sqrt y))) (sqrt (Rmult (INR (NUMERAL (BIT0 (BIT1 0)))) (Rabs (Rminus x y)))). -Axiom thm_DECIMAL : forall x : nat, forall y : nat, (DECIMAL x y) = (Rdiv (INR x) (INR y)). -Axiom thm_RAT_LEMMA1 : forall (x1 : R) (x2 : R) (y1 : R) (y2 : R), ((~ (y1 = (INR (NUMERAL 0)))) /\ (~ (y2 = (INR (NUMERAL 0))))) -> (Rplus (Rdiv x1 y1) (Rdiv x2 y2)) = (Rmult (Rplus (Rmult x1 y2) (Rmult x2 y1)) (Rmult (Rinv y1) (Rinv y2))). -Axiom thm_RAT_LEMMA2 : forall (x1 : R) (x2 : R) (y1 : R) (y2 : R), ((Rlt (INR (NUMERAL 0)) y1) /\ (Rlt (INR (NUMERAL 0)) y2)) -> (Rplus (Rdiv x1 y1) (Rdiv x2 y2)) = (Rmult (Rplus (Rmult x1 y2) (Rmult x2 y1)) (Rmult (Rinv y1) (Rinv y2))). -Axiom thm_RAT_LEMMA3 : forall (x1 : R) (x2 : R) (y1 : R) (y2 : R), ((Rlt (INR (NUMERAL 0)) y1) /\ (Rlt (INR (NUMERAL 0)) y2)) -> (Rminus (Rdiv x1 y1) (Rdiv x2 y2)) = (Rmult (Rminus (Rmult x1 y2) (Rmult x2 y1)) (Rmult (Rinv y1) (Rinv y2))). -Axiom thm_RAT_LEMMA4 : forall (x1 : R) (y2 : R) (x2 : R) (y1 : R), ((Rlt (INR (NUMERAL 0)) y1) /\ (Rlt (INR (NUMERAL 0)) y2)) -> (Rle (Rdiv x1 y1) (Rdiv x2 y2)) = (Rle (Rmult x1 y2) (Rmult x2 y1)). -Axiom thm_RAT_LEMMA5 : forall (x1 : R) (y2 : R) (x2 : R) (y1 : R), ((Rlt (INR (NUMERAL 0)) y1) /\ (Rlt (INR (NUMERAL 0)) y2)) -> ((Rdiv x1 y1) = (Rdiv x2 y2)) = ((Rmult x1 y2) = (Rmult x2 y1)). -Axiom thm_REAL_LE_TRANS_LE : forall x : R, forall y : R, (Rle x y) = (forall z : R, (Rle y z) -> Rle x z). -Axiom thm_REAL_LE_TRANS_LTE : forall x : R, forall y : R, (Rle x y) = (forall z : R, (Rlt y z) -> Rle x z). -Axiom thm_REAL_LE_TRANS_LT : forall x : R, forall y : R, (Rle x y) = (forall z : R, (Rlt y z) -> Rlt x z). -Axiom thm_REAL_SHRINK_RANGE : forall x : R, Rlt (Rabs (Rdiv x (Rplus (INR (NUMERAL (BIT1 0))) (Rabs x)))) (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_SHRINK_LT : forall x : R, forall y : R, (Rlt (Rdiv x (Rplus (INR (NUMERAL (BIT1 0))) (Rabs x))) (Rdiv y (Rplus (INR (NUMERAL (BIT1 0))) (Rabs y)))) = (Rlt x y). -Axiom thm_REAL_SHRINK_LE : forall x : R, forall y : R, (Rle (Rdiv x (Rplus (INR (NUMERAL (BIT1 0))) (Rabs x))) (Rdiv y (Rplus (INR (NUMERAL (BIT1 0))) (Rabs y)))) = (Rle x y). -Axiom thm_REAL_SHRINK_EQ : forall x : R, forall y : R, ((Rdiv x (Rplus (INR (NUMERAL (BIT1 0))) (Rabs x))) = (Rdiv y (Rplus (INR (NUMERAL (BIT1 0))) (Rabs y)))) = (x = y). -Axiom thm_REAL_SHRINK_GALOIS : forall x : R, forall y : R, ((Rdiv x (Rplus (INR (NUMERAL (BIT1 0))) (Rabs x))) = y) = ((Rlt (Rabs y) (INR (NUMERAL (BIT1 0)))) /\ ((Rdiv y (Rminus (INR (NUMERAL (BIT1 0))) (Rabs y))) = x)). -Axiom thm_REAL_GROW_SHRINK : forall x : R, (Rdiv (Rdiv x (Rplus (INR (NUMERAL (BIT1 0))) (Rabs x))) (Rminus (INR (NUMERAL (BIT1 0))) (Rabs (Rdiv x (Rplus (INR (NUMERAL (BIT1 0))) (Rabs x)))))) = x. -Axiom thm_REAL_SHRINK_GROW_EQ : forall x : R, ((Rdiv (Rdiv x (Rminus (INR (NUMERAL (BIT1 0))) (Rabs x))) (Rplus (INR (NUMERAL (BIT1 0))) (Rabs (Rdiv x (Rminus (INR (NUMERAL (BIT1 0))) (Rabs x)))))) = x) = (Rlt (Rabs x) (INR (NUMERAL (BIT1 0)))). -Axiom thm_REAL_SHRINK_GROW : forall x : R, (Rlt (Rabs x) (INR (NUMERAL (BIT1 0)))) -> (Rdiv (Rdiv x (Rminus (INR (NUMERAL (BIT1 0))) (Rabs x))) (Rplus (INR (NUMERAL (BIT1 0))) (Rabs (Rdiv x (Rminus (INR (NUMERAL (BIT1 0))) (Rabs x)))))) = x. -Axiom thm_integer : forall x : R, (integer x) = (exists n : nat, (Rabs x) = (INR n)). -Axiom thm_is_int : forall (x : R), (integer x) = (exists n : nat, (x = (INR n)) \/ (x = (Ropp (INR n)))). -Axiom thm_dest_int_rep : forall i : Z, exists n : nat, ((IZR i) = (INR n)) \/ ((IZR i) = (Ropp (INR n))). -Axiom thm_INTEGER_REAL_OF_INT : forall x : Z, integer (IZR x). -Axiom thm_int_eq : forall x : Z, forall y : Z, (x = y) = ((IZR x) = (IZR y)). -Axiom thm_int_le : forall x : Z, forall y : Z, (int_le x y) = (Rle (IZR x) (IZR y)). -Axiom thm_int_lt : forall x : Z, forall y : Z, (int_lt x y) = (Rlt (IZR x) (IZR y)). -Axiom thm_int_ge : forall x : Z, forall y : Z, (int_ge x y) = (Rge (IZR x) (IZR y)). -Axiom thm_int_gt : forall x : Z, forall y : Z, (int_gt x y) = (Rgt (IZR x) (IZR y)). -Axiom thm_int_of_num : forall n : nat, (int_of_num n) = (int_of_real (INR n)). -Axiom thm_int_of_num_th : forall n : nat, (IZR (int_of_num n)) = (INR n). -Axiom thm_int_neg : forall i : Z, (int_neg i) = (int_of_real (Ropp (IZR i))). -Axiom thm_int_neg_th : forall x : Z, (IZR (int_neg x)) = (Ropp (IZR x)). -Axiom thm_int_add : forall x : Z, forall y : Z, (int_add x y) = (int_of_real (Rplus (IZR x) (IZR y))). -Axiom thm_int_add_th : forall x : Z, forall y : Z, (IZR (int_add x y)) = (Rplus (IZR x) (IZR y)). -Axiom thm_int_sub : forall x : Z, forall y : Z, (int_sub x y) = (int_of_real (Rminus (IZR x) (IZR y))). -Axiom thm_int_sub_th : forall x : Z, forall y : Z, (IZR (int_sub x y)) = (Rminus (IZR x) (IZR y)). -Axiom thm_int_mul : forall x : Z, forall y : Z, (int_mul x y) = (int_of_real (Rmult (IZR x) (IZR y))). -Axiom thm_int_mul_th : forall x : Z, forall y : Z, (IZR (int_mul x y)) = (Rmult (IZR x) (IZR y)). -Axiom thm_int_abs : forall x : Z, (int_abs x) = (int_of_real (Rabs (IZR x))). -Axiom thm_int_abs_th : forall x : Z, (IZR (int_abs x)) = (Rabs (IZR x)). -Axiom thm_int_sgn : forall x : Z, (int_sgn x) = (int_of_real (real_sgn (IZR x))). -Axiom thm_int_sgn_th : forall x : Z, (IZR (int_sgn x)) = (real_sgn (IZR x)). -Axiom thm_int_max : forall x : Z, forall y : Z, (int_max x y) = (int_of_real (Rmax (IZR x) (IZR y))). -Axiom thm_int_max_th : forall x : Z, forall y : Z, (IZR (int_max x y)) = (Rmax (IZR x) (IZR y)). -Axiom thm_int_min : forall x : Z, forall y : Z, (int_min x y) = (int_of_real (Rmin (IZR x) (IZR y))). -Axiom thm_int_min_th : forall x : Z, forall y : Z, (IZR (int_min x y)) = (Rmin (IZR x) (IZR y)). -Axiom thm_int_pow : forall x : Z, forall n : nat, (int_pow x n) = (int_of_real (Rpower_nat (IZR x) n)). -Axiom thm_int_pow_th : forall x : Z, forall n : nat, (IZR (int_pow x n)) = (Rpower_nat (IZR x) n). -Axiom thm_REAL_OF_INT_CLAUSES : (forall x : Z, forall y : Z, ((IZR x) = (IZR y)) = (x = y)) /\ ((forall x : Z, forall y : Z, (Rge (IZR x) (IZR y)) = (int_ge x y)) /\ ((forall x : Z, forall y : Z, (Rgt (IZR x) (IZR y)) = (int_gt x y)) /\ ((forall x : Z, forall y : Z, (Rle (IZR x) (IZR y)) = (int_le x y)) /\ ((forall x : Z, forall y : Z, (Rlt (IZR x) (IZR y)) = (int_lt x y)) /\ ((forall x : Z, forall y : Z, (Rmax (IZR x) (IZR y)) = (IZR (int_max x y))) /\ ((forall x : Z, forall y : Z, (Rmin (IZR x) (IZR y)) = (IZR (int_min x y))) /\ ((forall n : nat, (INR n) = (IZR (int_of_num n))) /\ ((forall x : Z, (Ropp (IZR x)) = (IZR (int_neg x))) /\ ((forall x : Z, (Rabs (IZR x)) = (IZR (int_abs x))) /\ ((forall x : Z, forall y : Z, (Rmax (IZR x) (IZR y)) = (IZR (int_max x y))) /\ ((forall x : Z, forall y : Z, (Rmin (IZR x) (IZR y)) = (IZR (int_min x y))) /\ ((forall x : Z, (real_sgn (IZR x)) = (IZR (int_sgn x))) /\ ((forall x : Z, forall y : Z, (Rplus (IZR x) (IZR y)) = (IZR (int_add x y))) /\ ((forall x : Z, forall y : Z, (Rminus (IZR x) (IZR y)) = (IZR (int_sub x y))) /\ ((forall x : Z, forall y : Z, (Rmult (IZR x) (IZR y)) = (IZR (int_mul x y))) /\ (forall x : Z, forall n : nat, (Rpower_nat (IZR x) n) = (IZR (int_pow x n)))))))))))))))))). -Axiom thm_INT_IMAGE : forall x : Z, (exists n : nat, x = (int_of_num n)) \/ (exists n : nat, x = (int_neg (int_of_num n))). -Axiom thm_FORALL_INT_CASES : forall P : Z -> Prop, (forall x : Z, P x) = ((forall n : nat, P (int_of_num n)) /\ (forall n : nat, P (int_neg (int_of_num n)))). -Axiom thm_EXISTS_INT_CASES : forall P : Z -> Prop, (exists x : Z, P x) = ((exists n : nat, P (int_of_num n)) \/ (exists n : nat, P (int_neg (int_of_num n)))). -Axiom thm_INT_LT_DISCRETE : forall x : Z, forall y : Z, (int_lt x y) = (int_le (int_add x (int_of_num (NUMERAL (BIT1 0)))) y). -Axiom thm_INT_GT_DISCRETE : forall x : Z, forall y : Z, (int_gt x y) = (int_ge x (int_add y (int_of_num (NUMERAL (BIT1 0))))). -Axiom thm_INT_ABS_0 : (int_abs (int_of_num (NUMERAL 0))) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_ABS_1 : (int_abs (int_of_num (NUMERAL (BIT1 0)))) = (int_of_num (NUMERAL (BIT1 0))). -Axiom thm_INT_ABS_ABS : forall x : Z, (int_abs (int_abs x)) = (int_abs x). -Axiom thm_INT_ABS_BETWEEN : forall x : Z, forall y : Z, forall d : Z, ((int_lt (int_of_num (NUMERAL 0)) d) /\ ((int_lt (int_sub x d) y) /\ (int_lt y (int_add x d)))) = (int_lt (int_abs (int_sub y x)) d). -Axiom thm_INT_ABS_BETWEEN1 : forall x : Z, forall y : Z, forall z : Z, ((int_lt x z) /\ (int_lt (int_abs (int_sub y x)) (int_sub z x))) -> int_lt y z. -Axiom thm_INT_ABS_BETWEEN2 : forall x0 : Z, forall x : Z, forall y0 : Z, forall y : Z, ((int_lt x0 y0) /\ ((int_lt (int_mul (int_of_num (NUMERAL (BIT0 (BIT1 0)))) (int_abs (int_sub x x0))) (int_sub y0 x0)) /\ (int_lt (int_mul (int_of_num (NUMERAL (BIT0 (BIT1 0)))) (int_abs (int_sub y y0))) (int_sub y0 x0)))) -> int_lt x y. -Axiom thm_INT_ABS_BOUND : forall x : Z, forall y : Z, forall d : Z, (int_lt (int_abs (int_sub x y)) d) -> int_lt y (int_add x d). -Axiom thm_INT_ABS_BOUNDS : forall x : Z, forall k : Z, (int_le (int_abs x) k) = ((int_le (int_neg k) x) /\ (int_le x k)). -Axiom thm_INT_ABS_CASES : forall x : Z, (x = (int_of_num (NUMERAL 0))) \/ (int_lt (int_of_num (NUMERAL 0)) (int_abs x)). -Axiom thm_INT_ABS_CIRCLE : forall x : Z, forall y : Z, forall h : Z, (int_lt (int_abs h) (int_sub (int_abs y) (int_abs x))) -> int_lt (int_abs (int_add x h)) (int_abs y). -Axiom thm_INT_ABS_LE : forall x : Z, int_le x (int_abs x). -Axiom thm_INT_ABS_MUL : forall x : Z, forall y : Z, (int_abs (int_mul x y)) = (int_mul (int_abs x) (int_abs y)). -Axiom thm_INT_ABS_NEG : forall x : Z, (int_abs (int_neg x)) = (int_abs x). -Axiom thm_INT_ABS_NUM : forall n : nat, (int_abs (int_of_num n)) = (int_of_num n). -Axiom thm_INT_ABS_NZ : forall x : Z, (~ (x = (int_of_num (NUMERAL 0)))) = (int_lt (int_of_num (NUMERAL 0)) (int_abs x)). -Axiom thm_INT_ABS_POS : forall x : Z, int_le (int_of_num (NUMERAL 0)) (int_abs x). -Axiom thm_INT_ABS_POW : forall x : Z, forall n : nat, (int_abs (int_pow x n)) = (int_pow (int_abs x) n). -Axiom thm_INT_ABS_REFL : forall x : Z, ((int_abs x) = x) = (int_le (int_of_num (NUMERAL 0)) x). -Axiom thm_INT_ABS_SGN : forall x : Z, (int_abs (int_sgn x)) = (int_sgn (int_abs x)). -Axiom thm_INT_ABS_SIGN : forall x : Z, forall y : Z, (int_lt (int_abs (int_sub x y)) y) -> int_lt (int_of_num (NUMERAL 0)) x. -Axiom thm_INT_ABS_SIGN2 : forall x : Z, forall y : Z, (int_lt (int_abs (int_sub x y)) (int_neg y)) -> int_lt x (int_of_num (NUMERAL 0)). -Axiom thm_INT_ABS_STILLNZ : forall x : Z, forall y : Z, (int_lt (int_abs (int_sub x y)) (int_abs y)) -> ~ (x = (int_of_num (NUMERAL 0))). -Axiom thm_INT_ABS_SUB : forall x : Z, forall y : Z, (int_abs (int_sub x y)) = (int_abs (int_sub y x)). -Axiom thm_INT_ABS_SUB_ABS : forall x : Z, forall y : Z, int_le (int_abs (int_sub (int_abs x) (int_abs y))) (int_abs (int_sub x y)). -Axiom thm_INT_ABS_TRIANGLE : forall x : Z, forall y : Z, int_le (int_abs (int_add x y)) (int_add (int_abs x) (int_abs y)). -Axiom thm_INT_ABS_ZERO : forall x : Z, ((int_abs x) = (int_of_num (NUMERAL 0))) = (x = (int_of_num (NUMERAL 0))). -Axiom thm_INT_ADD2_SUB2 : forall a : Z, forall b : Z, forall c : Z, forall d : Z, (int_sub (int_add a b) (int_add c d)) = (int_add (int_sub a c) (int_sub b d)). -Axiom thm_INT_ADD_AC : forall (n : Z) (m : Z) (p : Z), ((int_add m n) = (int_add n m)) /\ (((int_add (int_add m n) p) = (int_add m (int_add n p))) /\ ((int_add m (int_add n p)) = (int_add n (int_add m p)))). -Axiom thm_INT_ADD_ASSOC : forall x : Z, forall y : Z, forall z : Z, (int_add x (int_add y z)) = (int_add (int_add x y) z). -Axiom thm_INT_ADD_LDISTRIB : forall x : Z, forall y : Z, forall z : Z, (int_mul x (int_add y z)) = (int_add (int_mul x y) (int_mul x z)). -Axiom thm_INT_ADD_LID : forall x : Z, (int_add (int_of_num (NUMERAL 0)) x) = x. -Axiom thm_INT_ADD_LINV : forall x : Z, (int_add (int_neg x) x) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_ADD_RDISTRIB : forall x : Z, forall y : Z, forall z : Z, (int_mul (int_add x y) z) = (int_add (int_mul x z) (int_mul y z)). -Axiom thm_INT_ADD_RID : forall x : Z, (int_add x (int_of_num (NUMERAL 0))) = x. -Axiom thm_INT_ADD_RINV : forall x : Z, (int_add x (int_neg x)) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_ADD_SUB : forall x : Z, forall y : Z, (int_sub (int_add x y) x) = y. -Axiom thm_INT_ADD_SUB2 : forall x : Z, forall y : Z, (int_sub x (int_add x y)) = (int_neg y). -Axiom thm_INT_ADD_SYM : forall x : Z, forall y : Z, (int_add x y) = (int_add y x). -Axiom thm_INT_BOUNDS_LE : forall x : Z, forall k : Z, ((int_le (int_neg k) x) /\ (int_le x k)) = (int_le (int_abs x) k). -Axiom thm_INT_BOUNDS_LT : forall x : Z, forall k : Z, ((int_lt (int_neg k) x) /\ (int_lt x k)) = (int_lt (int_abs x) k). -Axiom thm_INT_DIFFSQ : forall x : Z, forall y : Z, (int_mul (int_add x y) (int_sub x y)) = (int_sub (int_mul x x) (int_mul y y)). -Axiom thm_INT_ENTIRE : forall x : Z, forall y : Z, ((int_mul x y) = (int_of_num (NUMERAL 0))) = ((x = (int_of_num (NUMERAL 0))) \/ (y = (int_of_num (NUMERAL 0)))). -Axiom thm_INT_EQ_ADD_LCANCEL : forall x : Z, forall y : Z, forall z : Z, ((int_add x y) = (int_add x z)) = (y = z). -Axiom thm_INT_EQ_ADD_LCANCEL_0 : forall x : Z, forall y : Z, ((int_add x y) = x) = (y = (int_of_num (NUMERAL 0))). -Axiom thm_INT_EQ_ADD_RCANCEL : forall x : Z, forall y : Z, forall z : Z, ((int_add x z) = (int_add y z)) = (x = y). -Axiom thm_INT_EQ_ADD_RCANCEL_0 : forall x : Z, forall y : Z, ((int_add x y) = y) = (x = (int_of_num (NUMERAL 0))). -Axiom thm_INT_EQ_IMP_LE : forall x : Z, forall y : Z, (x = y) -> int_le x y. -Axiom thm_INT_EQ_LCANCEL_IMP : forall x : Z, forall y : Z, forall z : Z, ((~ (z = (int_of_num (NUMERAL 0)))) /\ ((int_mul z x) = (int_mul z y))) -> x = y. -Axiom thm_INT_EQ_MUL_LCANCEL : forall x : Z, forall y : Z, forall z : Z, ((int_mul x y) = (int_mul x z)) = ((x = (int_of_num (NUMERAL 0))) \/ (y = z)). -Axiom thm_INT_EQ_MUL_RCANCEL : forall x : Z, forall y : Z, forall z : Z, ((int_mul x z) = (int_mul y z)) = ((x = y) \/ (z = (int_of_num (NUMERAL 0)))). -Axiom thm_INT_EQ_NEG2 : forall x : Z, forall y : Z, ((int_neg x) = (int_neg y)) = (x = y). -Axiom thm_INT_EQ_RCANCEL_IMP : forall x : Z, forall y : Z, forall z : Z, ((~ (z = (int_of_num (NUMERAL 0)))) /\ ((int_mul x z) = (int_mul y z))) -> x = y. -Axiom thm_INT_EQ_SGN_ABS : forall x : Z, forall y : Z, (x = y) = (((int_sgn x) = (int_sgn y)) /\ ((int_abs x) = (int_abs y))). -Axiom thm_INT_EQ_SQUARE_ABS : forall x : Z, forall y : Z, ((int_abs x) = (int_abs y)) = ((int_pow x (NUMERAL (BIT0 (BIT1 0)))) = (int_pow y (NUMERAL (BIT0 (BIT1 0))))). -Axiom thm_INT_EQ_SUB_LADD : forall x : Z, forall y : Z, forall z : Z, (x = (int_sub y z)) = ((int_add x z) = y). -Axiom thm_INT_EQ_SUB_RADD : forall x : Z, forall y : Z, forall z : Z, ((int_sub x y) = z) = (x = (int_add z y)). -Axiom thm_INT_EVENPOW_ABS : forall x : Z, forall n : nat, (Coq.Arith.PeanoNat.Nat.Even n) -> (int_pow (int_abs x) n) = (int_pow x n). -Axiom thm_INT_LET_ADD : forall x : Z, forall y : Z, ((int_le (int_of_num (NUMERAL 0)) x) /\ (int_lt (int_of_num (NUMERAL 0)) y)) -> int_lt (int_of_num (NUMERAL 0)) (int_add x y). -Axiom thm_INT_LET_ADD2 : forall w : Z, forall x : Z, forall y : Z, forall z : Z, ((int_le w x) /\ (int_lt y z)) -> int_lt (int_add w y) (int_add x z). -Axiom thm_INT_LET_ANTISYM : forall x : Z, forall y : Z, ~ ((int_le x y) /\ (int_lt y x)). -Axiom thm_INT_LET_TOTAL : forall x : Z, forall y : Z, (int_le x y) \/ (int_lt y x). -Axiom thm_INT_LET_TRANS : forall x : Z, forall y : Z, forall z : Z, ((int_le x y) /\ (int_lt y z)) -> int_lt x z. -Axiom thm_INT_LE_01 : int_le (int_of_num (NUMERAL 0)) (int_of_num (NUMERAL (BIT1 0))). -Axiom thm_INT_LE_ADD : forall x : Z, forall y : Z, ((int_le (int_of_num (NUMERAL 0)) x) /\ (int_le (int_of_num (NUMERAL 0)) y)) -> int_le (int_of_num (NUMERAL 0)) (int_add x y). -Axiom thm_INT_LE_ADD2 : forall w : Z, forall x : Z, forall y : Z, forall z : Z, ((int_le w x) /\ (int_le y z)) -> int_le (int_add w y) (int_add x z). -Axiom thm_INT_LE_ADDL : forall x : Z, forall y : Z, (int_le y (int_add x y)) = (int_le (int_of_num (NUMERAL 0)) x). -Axiom thm_INT_LE_ADDR : forall x : Z, forall y : Z, (int_le x (int_add x y)) = (int_le (int_of_num (NUMERAL 0)) y). -Axiom thm_INT_LE_ANTISYM : forall x : Z, forall y : Z, ((int_le x y) /\ (int_le y x)) = (x = y). -Axiom thm_INT_LE_DOUBLE : forall x : Z, (int_le (int_of_num (NUMERAL 0)) (int_add x x)) = (int_le (int_of_num (NUMERAL 0)) x). -Axiom thm_INT_LE_LADD : forall x : Z, forall y : Z, forall z : Z, (int_le (int_add x y) (int_add x z)) = (int_le y z). -Axiom thm_INT_LE_LADD_IMP : forall x : Z, forall y : Z, forall z : Z, (int_le y z) -> int_le (int_add x y) (int_add x z). -Axiom thm_INT_LE_LCANCEL_IMP : forall x : Z, forall y : Z, forall z : Z, ((int_lt (int_of_num (NUMERAL 0)) x) /\ (int_le (int_mul x y) (int_mul x z))) -> int_le y z. -Axiom thm_INT_LE_LMUL : forall x : Z, forall y : Z, forall z : Z, ((int_le (int_of_num (NUMERAL 0)) x) /\ (int_le y z)) -> int_le (int_mul x y) (int_mul x z). -Axiom thm_INT_LE_LMUL_EQ : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_of_num (NUMERAL 0)) z) -> (int_le (int_mul z x) (int_mul z y)) = (int_le x y). -Axiom thm_INT_LE_LNEG : forall x : Z, forall y : Z, (int_le (int_neg x) y) = (int_le (int_of_num (NUMERAL 0)) (int_add x y)). -Axiom thm_INT_LE_LT : forall x : Z, forall y : Z, (int_le x y) = ((int_lt x y) \/ (x = y)). -Axiom thm_INT_LE_MAX : forall x : Z, forall y : Z, forall z : Z, (int_le z (int_max x y)) = ((int_le z x) \/ (int_le z y)). -Axiom thm_INT_LE_MIN : forall x : Z, forall y : Z, forall z : Z, (int_le z (int_min x y)) = ((int_le z x) /\ (int_le z y)). -Axiom thm_INT_LE_MUL : forall x : Z, forall y : Z, ((int_le (int_of_num (NUMERAL 0)) x) /\ (int_le (int_of_num (NUMERAL 0)) y)) -> int_le (int_of_num (NUMERAL 0)) (int_mul x y). -Axiom thm_INT_LE_MUL2 : forall w : Z, forall x : Z, forall y : Z, forall z : Z, ((int_le (int_of_num (NUMERAL 0)) w) /\ ((int_le w x) /\ ((int_le (int_of_num (NUMERAL 0)) y) /\ (int_le y z)))) -> int_le (int_mul w y) (int_mul x z). -Axiom thm_INT_LE_MUL_EQ : (forall x : Z, forall y : Z, (int_lt (int_of_num (NUMERAL 0)) x) -> (int_le (int_of_num (NUMERAL 0)) (int_mul x y)) = (int_le (int_of_num (NUMERAL 0)) y)) /\ (forall x : Z, forall y : Z, (int_lt (int_of_num (NUMERAL 0)) y) -> (int_le (int_of_num (NUMERAL 0)) (int_mul x y)) = (int_le (int_of_num (NUMERAL 0)) x)). -Axiom thm_INT_LE_NEG2 : forall x : Z, forall y : Z, (int_le (int_neg x) (int_neg y)) = (int_le y x). -Axiom thm_INT_LE_NEGL : forall x : Z, (int_le (int_neg x) x) = (int_le (int_of_num (NUMERAL 0)) x). -Axiom thm_INT_LE_NEGR : forall x : Z, (int_le x (int_neg x)) = (int_le x (int_of_num (NUMERAL 0))). -Axiom thm_INT_LE_NEGTOTAL : forall x : Z, (int_le (int_of_num (NUMERAL 0)) x) \/ (int_le (int_of_num (NUMERAL 0)) (int_neg x)). -Axiom thm_INT_LE_POW2 : forall n : nat, int_le (int_of_num (NUMERAL (BIT1 0))) (int_pow (int_of_num (NUMERAL (BIT0 (BIT1 0)))) n). -Axiom thm_INT_LE_POW_2 : forall x : Z, int_le (int_of_num (NUMERAL 0)) (int_pow x (NUMERAL (BIT0 (BIT1 0)))). -Axiom thm_INT_LE_RADD : forall x : Z, forall y : Z, forall z : Z, (int_le (int_add x z) (int_add y z)) = (int_le x y). -Axiom thm_INT_LE_RCANCEL_IMP : forall x : Z, forall y : Z, forall z : Z, ((int_lt (int_of_num (NUMERAL 0)) z) /\ (int_le (int_mul x z) (int_mul y z))) -> int_le x y. -Axiom thm_INT_LE_REFL : forall x : Z, int_le x x. -Axiom thm_INT_LE_RMUL : forall x : Z, forall y : Z, forall z : Z, ((int_le x y) /\ (int_le (int_of_num (NUMERAL 0)) z)) -> int_le (int_mul x z) (int_mul y z). -Axiom thm_INT_LE_RMUL_EQ : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_of_num (NUMERAL 0)) z) -> (int_le (int_mul x z) (int_mul y z)) = (int_le x y). -Axiom thm_INT_LE_RNEG : forall x : Z, forall y : Z, (int_le x (int_neg y)) = (int_le (int_add x y) (int_of_num (NUMERAL 0))). -Axiom thm_INT_LE_SQUARE : forall x : Z, int_le (int_of_num (NUMERAL 0)) (int_mul x x). -Axiom thm_INT_LE_SQUARE_ABS : forall x : Z, forall y : Z, (int_le (int_abs x) (int_abs y)) = (int_le (int_pow x (NUMERAL (BIT0 (BIT1 0)))) (int_pow y (NUMERAL (BIT0 (BIT1 0))))). -Axiom thm_INT_LE_SUB_LADD : forall x : Z, forall y : Z, forall z : Z, (int_le x (int_sub y z)) = (int_le (int_add x z) y). -Axiom thm_INT_LE_SUB_RADD : forall x : Z, forall y : Z, forall z : Z, (int_le (int_sub x y) z) = (int_le x (int_add z y)). -Axiom thm_INT_LE_TOTAL : forall x : Z, forall y : Z, (int_le x y) \/ (int_le y x). -Axiom thm_INT_LE_TRANS : forall x : Z, forall y : Z, forall z : Z, ((int_le x y) /\ (int_le y z)) -> int_le x z. -Axiom thm_INT_LNEG_UNIQ : forall x : Z, forall y : Z, ((int_add x y) = (int_of_num (NUMERAL 0))) = (x = (int_neg y)). -Axiom thm_INT_LTE_ADD : forall x : Z, forall y : Z, ((int_lt (int_of_num (NUMERAL 0)) x) /\ (int_le (int_of_num (NUMERAL 0)) y)) -> int_lt (int_of_num (NUMERAL 0)) (int_add x y). -Axiom thm_INT_LTE_ADD2 : forall w : Z, forall x : Z, forall y : Z, forall z : Z, ((int_lt w x) /\ (int_le y z)) -> int_lt (int_add w y) (int_add x z). -Axiom thm_INT_LTE_ANTISYM : forall x : Z, forall y : Z, ~ ((int_lt x y) /\ (int_le y x)). -Axiom thm_INT_LTE_TOTAL : forall x : Z, forall y : Z, (int_lt x y) \/ (int_le y x). -Axiom thm_INT_LTE_TRANS : forall x : Z, forall y : Z, forall z : Z, ((int_lt x y) /\ (int_le y z)) -> int_lt x z. -Axiom thm_INT_LT_01 : int_lt (int_of_num (NUMERAL 0)) (int_of_num (NUMERAL (BIT1 0))). -Axiom thm_INT_LT_ADD : forall x : Z, forall y : Z, ((int_lt (int_of_num (NUMERAL 0)) x) /\ (int_lt (int_of_num (NUMERAL 0)) y)) -> int_lt (int_of_num (NUMERAL 0)) (int_add x y). -Axiom thm_INT_LT_ADD1 : forall x : Z, forall y : Z, (int_le x y) -> int_lt x (int_add y (int_of_num (NUMERAL (BIT1 0)))). -Axiom thm_INT_LT_ADD2 : forall w : Z, forall x : Z, forall y : Z, forall z : Z, ((int_lt w x) /\ (int_lt y z)) -> int_lt (int_add w y) (int_add x z). -Axiom thm_INT_LT_ADDL : forall x : Z, forall y : Z, (int_lt y (int_add x y)) = (int_lt (int_of_num (NUMERAL 0)) x). -Axiom thm_INT_LT_ADDNEG : forall x : Z, forall y : Z, forall z : Z, (int_lt y (int_add x (int_neg z))) = (int_lt (int_add y z) x). -Axiom thm_INT_LT_ADDNEG2 : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_add x (int_neg y)) z) = (int_lt x (int_add z y)). -Axiom thm_INT_LT_ADDR : forall x : Z, forall y : Z, (int_lt x (int_add x y)) = (int_lt (int_of_num (NUMERAL 0)) y). -Axiom thm_INT_LT_ADD_SUB : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_add x y) z) = (int_lt x (int_sub z y)). -Axiom thm_INT_LT_ANTISYM : forall x : Z, forall y : Z, ~ ((int_lt x y) /\ (int_lt y x)). -Axiom thm_INT_LT_GT : forall x : Z, forall y : Z, (int_lt x y) -> ~ (int_lt y x). -Axiom thm_INT_LT_IMP_LE : forall x : Z, forall y : Z, (int_lt x y) -> int_le x y. -Axiom thm_INT_LT_IMP_NE : forall x : Z, forall y : Z, (int_lt x y) -> ~ (x = y). -Axiom thm_INT_LT_LADD : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_add x y) (int_add x z)) = (int_lt y z). -Axiom thm_INT_LT_LADD_IMP : forall x : Z, forall y : Z, forall z : Z, (int_lt y z) -> int_lt (int_add x y) (int_add x z). -Axiom thm_INT_LT_LCANCEL_IMP : forall x : Z, forall y : Z, forall z : Z, ((int_lt (int_of_num (NUMERAL 0)) x) /\ (int_lt (int_mul x y) (int_mul x z))) -> int_lt y z. -Axiom thm_INT_LT_LE : forall x : Z, forall y : Z, (int_lt x y) = ((int_le x y) /\ (~ (x = y))). -Axiom thm_INT_LT_LMUL : forall x : Z, forall y : Z, forall z : Z, ((int_lt (int_of_num (NUMERAL 0)) x) /\ (int_lt y z)) -> int_lt (int_mul x y) (int_mul x z). -Axiom thm_INT_LT_LMUL_EQ : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_of_num (NUMERAL 0)) z) -> (int_lt (int_mul z x) (int_mul z y)) = (int_lt x y). -Axiom thm_INT_LT_LNEG : forall x : Z, forall y : Z, (int_lt (int_neg x) y) = (int_lt (int_of_num (NUMERAL 0)) (int_add x y)). -Axiom thm_INT_LT_MAX : forall x : Z, forall y : Z, forall z : Z, (int_lt z (int_max x y)) = ((int_lt z x) \/ (int_lt z y)). -Axiom thm_INT_LT_MIN : forall x : Z, forall y : Z, forall z : Z, (int_lt z (int_min x y)) = ((int_lt z x) /\ (int_lt z y)). -Axiom thm_INT_LT_MUL : forall x : Z, forall y : Z, ((int_lt (int_of_num (NUMERAL 0)) x) /\ (int_lt (int_of_num (NUMERAL 0)) y)) -> int_lt (int_of_num (NUMERAL 0)) (int_mul x y). -Axiom thm_INT_LT_MUL2 : forall w : Z, forall x : Z, forall y : Z, forall z : Z, ((int_le (int_of_num (NUMERAL 0)) w) /\ ((int_lt w x) /\ ((int_le (int_of_num (NUMERAL 0)) y) /\ (int_lt y z)))) -> int_lt (int_mul w y) (int_mul x z). -Axiom thm_INT_LT_MUL_EQ : (forall x : Z, forall y : Z, (int_lt (int_of_num (NUMERAL 0)) x) -> (int_lt (int_of_num (NUMERAL 0)) (int_mul x y)) = (int_lt (int_of_num (NUMERAL 0)) y)) /\ (forall x : Z, forall y : Z, (int_lt (int_of_num (NUMERAL 0)) y) -> (int_lt (int_of_num (NUMERAL 0)) (int_mul x y)) = (int_lt (int_of_num (NUMERAL 0)) x)). -Axiom thm_INT_LT_NEG2 : forall x : Z, forall y : Z, (int_lt (int_neg x) (int_neg y)) = (int_lt y x). -Axiom thm_INT_LT_NEGTOTAL : forall x : Z, (x = (int_of_num (NUMERAL 0))) \/ ((int_lt (int_of_num (NUMERAL 0)) x) \/ (int_lt (int_of_num (NUMERAL 0)) (int_neg x))). -Axiom thm_INT_LT_POW2 : forall n : nat, int_lt (int_of_num (NUMERAL 0)) (int_pow (int_of_num (NUMERAL (BIT0 (BIT1 0)))) n). -Axiom thm_INT_LT_POW_2 : forall x : Z, (int_lt (int_of_num (NUMERAL 0)) (int_pow x (NUMERAL (BIT0 (BIT1 0))))) = (~ (x = (int_of_num (NUMERAL 0)))). -Axiom thm_INT_LT_RADD : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_add x z) (int_add y z)) = (int_lt x y). -Axiom thm_INT_LT_RCANCEL_IMP : forall x : Z, forall y : Z, forall z : Z, ((int_lt (int_of_num (NUMERAL 0)) z) /\ (int_lt (int_mul x z) (int_mul y z))) -> int_lt x y. -Axiom thm_INT_LT_REFL : forall x : Z, ~ (int_lt x x). -Axiom thm_INT_LT_RMUL : forall x : Z, forall y : Z, forall z : Z, ((int_lt x y) /\ (int_lt (int_of_num (NUMERAL 0)) z)) -> int_lt (int_mul x z) (int_mul y z). -Axiom thm_INT_LT_RMUL_EQ : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_of_num (NUMERAL 0)) z) -> (int_lt (int_mul x z) (int_mul y z)) = (int_lt x y). -Axiom thm_INT_LT_RNEG : forall x : Z, forall y : Z, (int_lt x (int_neg y)) = (int_lt (int_add x y) (int_of_num (NUMERAL 0))). -Axiom thm_INT_LT_SQUARE : forall x : Z, (int_lt (int_of_num (NUMERAL 0)) (int_mul x x)) = (~ (x = (int_of_num (NUMERAL 0)))). -Axiom thm_INT_LT_SQUARE_ABS : forall x : Z, forall y : Z, (int_lt (int_abs x) (int_abs y)) = (int_lt (int_pow x (NUMERAL (BIT0 (BIT1 0)))) (int_pow y (NUMERAL (BIT0 (BIT1 0))))). -Axiom thm_INT_LT_SUB_LADD : forall x : Z, forall y : Z, forall z : Z, (int_lt x (int_sub y z)) = (int_lt (int_add x z) y). -Axiom thm_INT_LT_SUB_RADD : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_sub x y) z) = (int_lt x (int_add z y)). -Axiom thm_INT_LT_TOTAL : forall x : Z, forall y : Z, (x = y) \/ ((int_lt x y) \/ (int_lt y x)). -Axiom thm_INT_LT_TRANS : forall x : Z, forall y : Z, forall z : Z, ((int_lt x y) /\ (int_lt y z)) -> int_lt x z. -Axiom thm_INT_MAX_ACI : forall (z : Z) (x : Z) (y : Z), ((int_max x y) = (int_max y x)) /\ (((int_max (int_max x y) z) = (int_max x (int_max y z))) /\ (((int_max x (int_max y z)) = (int_max y (int_max x z))) /\ (((int_max x x) = x) /\ ((int_max x (int_max x y)) = (int_max x y))))). -Axiom thm_INT_MAX_ASSOC : forall x : Z, forall y : Z, forall z : Z, (int_max x (int_max y z)) = (int_max (int_max x y) z). -Axiom thm_INT_MAX_LE : forall x : Z, forall y : Z, forall z : Z, (int_le (int_max x y) z) = ((int_le x z) /\ (int_le y z)). -Axiom thm_INT_MAX_LT : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_max x y) z) = ((int_lt x z) /\ (int_lt y z)). -Axiom thm_INT_MAX_MAX : forall x : Z, forall y : Z, (int_le x (int_max x y)) /\ (int_le y (int_max x y)). -Axiom thm_INT_MAX_MIN : forall x : Z, forall y : Z, (int_max x y) = (int_neg (int_min (int_neg x) (int_neg y))). -Axiom thm_INT_MAX_SYM : forall x : Z, forall y : Z, (int_max x y) = (int_max y x). -Axiom thm_INT_MIN_ACI : forall (z : Z) (x : Z) (y : Z), ((int_min x y) = (int_min y x)) /\ (((int_min (int_min x y) z) = (int_min x (int_min y z))) /\ (((int_min x (int_min y z)) = (int_min y (int_min x z))) /\ (((int_min x x) = x) /\ ((int_min x (int_min x y)) = (int_min x y))))). -Axiom thm_INT_MIN_ASSOC : forall x : Z, forall y : Z, forall z : Z, (int_min x (int_min y z)) = (int_min (int_min x y) z). -Axiom thm_INT_MIN_LE : forall x : Z, forall y : Z, forall z : Z, (int_le (int_min x y) z) = ((int_le x z) \/ (int_le y z)). -Axiom thm_INT_MIN_LT : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_min x y) z) = ((int_lt x z) \/ (int_lt y z)). -Axiom thm_INT_MIN_MAX : forall x : Z, forall y : Z, (int_min x y) = (int_neg (int_max (int_neg x) (int_neg y))). -Axiom thm_INT_MIN_MIN : forall x : Z, forall y : Z, (int_le (int_min x y) x) /\ (int_le (int_min x y) y). -Axiom thm_INT_MIN_SYM : forall x : Z, forall y : Z, (int_min x y) = (int_min y x). -Axiom thm_INT_MUL_2 : forall x : Z, (int_mul (int_of_num (NUMERAL (BIT0 (BIT1 0)))) x) = (int_add x x). -Axiom thm_INT_MUL_AC : forall (n : Z) (m : Z) (p : Z), ((int_mul m n) = (int_mul n m)) /\ (((int_mul (int_mul m n) p) = (int_mul m (int_mul n p))) /\ ((int_mul m (int_mul n p)) = (int_mul n (int_mul m p)))). -Axiom thm_INT_MUL_ASSOC : forall x : Z, forall y : Z, forall z : Z, (int_mul x (int_mul y z)) = (int_mul (int_mul x y) z). -Axiom thm_INT_MUL_LID : forall x : Z, (int_mul (int_of_num (NUMERAL (BIT1 0))) x) = x. -Axiom thm_INT_MUL_LNEG : forall x : Z, forall y : Z, (int_mul (int_neg x) y) = (int_neg (int_mul x y)). -Axiom thm_INT_MUL_LZERO : forall x : Z, (int_mul (int_of_num (NUMERAL 0)) x) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_MUL_POS_LE : forall x : Z, forall y : Z, (int_le (int_of_num (NUMERAL 0)) (int_mul x y)) = ((x = (int_of_num (NUMERAL 0))) \/ ((y = (int_of_num (NUMERAL 0))) \/ (((int_lt (int_of_num (NUMERAL 0)) x) /\ (int_lt (int_of_num (NUMERAL 0)) y)) \/ ((int_lt x (int_of_num (NUMERAL 0))) /\ (int_lt y (int_of_num (NUMERAL 0))))))). -Axiom thm_INT_MUL_POS_LT : forall x : Z, forall y : Z, (int_lt (int_of_num (NUMERAL 0)) (int_mul x y)) = (((int_lt (int_of_num (NUMERAL 0)) x) /\ (int_lt (int_of_num (NUMERAL 0)) y)) \/ ((int_lt x (int_of_num (NUMERAL 0))) /\ (int_lt y (int_of_num (NUMERAL 0))))). -Axiom thm_INT_MUL_RID : forall x : Z, (int_mul x (int_of_num (NUMERAL (BIT1 0)))) = x. -Axiom thm_INT_MUL_RNEG : forall x : Z, forall y : Z, (int_mul x (int_neg y)) = (int_neg (int_mul x y)). -Axiom thm_INT_MUL_RZERO : forall x : Z, (int_mul x (int_of_num (NUMERAL 0))) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_MUL_SYM : forall x : Z, forall y : Z, (int_mul x y) = (int_mul y x). -Axiom thm_INT_NEG_0 : (int_neg (int_of_num (NUMERAL 0))) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_NEG_ADD : forall x : Z, forall y : Z, (int_neg (int_add x y)) = (int_add (int_neg x) (int_neg y)). -Axiom thm_INT_NEG_EQ : forall x : Z, forall y : Z, ((int_neg x) = y) = (x = (int_neg y)). -Axiom thm_INT_NEG_EQ_0 : forall x : Z, ((int_neg x) = (int_of_num (NUMERAL 0))) = (x = (int_of_num (NUMERAL 0))). -Axiom thm_INT_NEG_GE0 : forall x : Z, (int_le (int_of_num (NUMERAL 0)) (int_neg x)) = (int_le x (int_of_num (NUMERAL 0))). -Axiom thm_INT_NEG_GT0 : forall x : Z, (int_lt (int_of_num (NUMERAL 0)) (int_neg x)) = (int_lt x (int_of_num (NUMERAL 0))). -Axiom thm_INT_NEG_LE0 : forall x : Z, (int_le (int_neg x) (int_of_num (NUMERAL 0))) = (int_le (int_of_num (NUMERAL 0)) x). -Axiom thm_INT_NEG_LMUL : forall x : Z, forall y : Z, (int_neg (int_mul x y)) = (int_mul (int_neg x) y). -Axiom thm_INT_NEG_LT0 : forall x : Z, (int_lt (int_neg x) (int_of_num (NUMERAL 0))) = (int_lt (int_of_num (NUMERAL 0)) x). -Axiom thm_INT_NEG_MINUS1 : forall x : Z, (int_neg x) = (int_mul (int_neg (int_of_num (NUMERAL (BIT1 0)))) x). -Axiom thm_INT_NEG_MUL2 : forall x : Z, forall y : Z, (int_mul (int_neg x) (int_neg y)) = (int_mul x y). -Axiom thm_INT_NEG_NEG : forall x : Z, (int_neg (int_neg x)) = x. -Axiom thm_INT_NEG_RMUL : forall x : Z, forall y : Z, (int_neg (int_mul x y)) = (int_mul x (int_neg y)). -Axiom thm_INT_NEG_SUB : forall x : Z, forall y : Z, (int_neg (int_sub x y)) = (int_sub y x). -Axiom thm_INT_NOT_EQ : forall x : Z, forall y : Z, (~ (x = y)) = ((int_lt x y) \/ (int_lt y x)). -Axiom thm_INT_NOT_LE : forall x : Z, forall y : Z, (~ (int_le x y)) = (int_lt y x). -Axiom thm_INT_NOT_LT : forall x : Z, forall y : Z, (~ (int_lt x y)) = (int_le y x). -Axiom thm_INT_OF_NUM_ADD : forall m : nat, forall n : nat, (int_add (int_of_num m) (int_of_num n)) = (int_of_num (Nat.add m n)). -Axiom thm_INT_OF_NUM_CLAUSES : (forall m : nat, forall n : nat, ((int_of_num m) = (int_of_num n)) = (m = n)) /\ ((forall m : nat, forall n : nat, (int_ge (int_of_num m) (int_of_num n)) = (Peano.ge m n)) /\ ((forall m : nat, forall n : nat, (int_gt (int_of_num m) (int_of_num n)) = (Peano.gt m n)) /\ ((forall m : nat, forall n : nat, (int_le (int_of_num m) (int_of_num n)) = (Peano.le m n)) /\ ((forall m : nat, forall n : nat, (int_lt (int_of_num m) (int_of_num n)) = (Peano.lt m n)) /\ ((forall m : nat, forall n : nat, (int_max (int_of_num m) (int_of_num n)) = (int_of_num (Nat.max m n))) /\ ((forall m : nat, forall n : nat, (int_min (int_of_num m) (int_of_num n)) = (int_of_num (Nat.min m n))) /\ ((forall m : nat, forall n : nat, (int_add (int_of_num m) (int_of_num n)) = (int_of_num (Nat.add m n))) /\ ((forall m : nat, forall n : nat, (int_mul (int_of_num m) (int_of_num n)) = (int_of_num (Nat.mul m n))) /\ (forall x : nat, forall n : nat, (int_pow (int_of_num x) n) = (int_of_num (Nat.pow x n))))))))))). -Axiom thm_INT_OF_NUM_EQ : forall m : nat, forall n : nat, ((int_of_num m) = (int_of_num n)) = (m = n). -Axiom thm_INT_OF_NUM_GE : forall m : nat, forall n : nat, (int_ge (int_of_num m) (int_of_num n)) = (Peano.ge m n). -Axiom thm_INT_OF_NUM_GT : forall m : nat, forall n : nat, (int_gt (int_of_num m) (int_of_num n)) = (Peano.gt m n). -Axiom thm_INT_OF_NUM_LE : forall m : nat, forall n : nat, (int_le (int_of_num m) (int_of_num n)) = (Peano.le m n). -Axiom thm_INT_OF_NUM_LT : forall m : nat, forall n : nat, (int_lt (int_of_num m) (int_of_num n)) = (Peano.lt m n). -Axiom thm_INT_OF_NUM_MAX : forall m : nat, forall n : nat, (int_max (int_of_num m) (int_of_num n)) = (int_of_num (Nat.max m n)). -Axiom thm_INT_OF_NUM_MIN : forall m : nat, forall n : nat, (int_min (int_of_num m) (int_of_num n)) = (int_of_num (Nat.min m n)). -Axiom thm_INT_OF_NUM_MOD : forall m : nat, forall n : nat, (int_of_num (Nat.modulo m n)) = (int_sub (int_of_num m) (int_mul (int_of_num (Nat.div m n)) (int_of_num n))). -Axiom thm_INT_OF_NUM_MUL : forall m : nat, forall n : nat, (int_mul (int_of_num m) (int_of_num n)) = (int_of_num (Nat.mul m n)). -Axiom thm_INT_OF_NUM_POW : forall x : nat, forall n : nat, (int_pow (int_of_num x) n) = (int_of_num (Nat.pow x n)). -Axiom thm_INT_OF_NUM_SUB : forall m : nat, forall n : nat, (Peano.le m n) -> (int_sub (int_of_num n) (int_of_num m)) = (int_of_num (Nat.sub n m)). -Axiom thm_INT_OF_NUM_SUB_CASES : forall m : nat, forall n : nat, (int_sub (int_of_num m) (int_of_num n)) = (@COND Z (Peano.le n m) (int_of_num (Nat.sub m n)) (int_neg (int_of_num (Nat.sub n m)))). -Axiom thm_INT_OF_NUM_SUC : forall n : nat, (int_add (int_of_num n) (int_of_num (NUMERAL (BIT1 0)))) = (int_of_num (S n)). -Axiom thm_INT_POS : forall n : nat, int_le (int_of_num (NUMERAL 0)) (int_of_num n). -Axiom thm_INT_POS_EQ_SQUARE : forall x : Z, (int_le (int_of_num (NUMERAL 0)) x) = (exists y : R, (Rpower_nat y (NUMERAL (BIT0 (BIT1 0)))) = (IZR x)). -Axiom thm_INT_POS_NZ : forall x : Z, (int_lt (int_of_num (NUMERAL 0)) x) -> ~ (x = (int_of_num (NUMERAL 0))). -Axiom thm_INT_POW2_ABS : forall x : Z, (int_pow (int_abs x) (NUMERAL (BIT0 (BIT1 0)))) = (int_pow x (NUMERAL (BIT0 (BIT1 0)))). -Axiom thm_INT_POW_1 : forall x : Z, (int_pow x (NUMERAL (BIT1 0))) = x. -Axiom thm_INT_POW_1_LE : forall n : nat, forall x : Z, ((int_le (int_of_num (NUMERAL 0)) x) /\ (int_le x (int_of_num (NUMERAL (BIT1 0))))) -> int_le (int_pow x n) (int_of_num (NUMERAL (BIT1 0))). -Axiom thm_INT_POW_1_LT : forall n : nat, forall x : Z, ((~ (n = (NUMERAL 0))) /\ ((int_le (int_of_num (NUMERAL 0)) x) /\ (int_lt x (int_of_num (NUMERAL (BIT1 0)))))) -> int_lt (int_pow x n) (int_of_num (NUMERAL (BIT1 0))). -Axiom thm_INT_POW_2 : forall x : Z, (int_pow x (NUMERAL (BIT0 (BIT1 0)))) = (int_mul x x). -Axiom thm_INT_POW_ADD : forall x : Z, forall m : nat, forall n : nat, (int_pow x (Nat.add m n)) = (int_mul (int_pow x m) (int_pow x n)). -Axiom thm_INT_POW_EQ : forall n : nat, forall x : Z, forall y : Z, ((~ (n = (NUMERAL 0))) /\ ((int_le (int_of_num (NUMERAL 0)) x) /\ ((int_le (int_of_num (NUMERAL 0)) y) /\ ((int_pow x n) = (int_pow y n))))) -> x = y. -Axiom thm_INT_POW_EQ_0 : forall x : Z, forall n : nat, ((int_pow x n) = (int_of_num (NUMERAL 0))) = ((x = (int_of_num (NUMERAL 0))) /\ (~ (n = (NUMERAL 0)))). -Axiom thm_INT_POW_EQ_1 : forall x : Z, forall n : nat, ((int_pow x n) = (int_of_num (NUMERAL (BIT1 0)))) = ((((int_abs x) = (int_of_num (NUMERAL (BIT1 0)))) /\ ((int_lt x (int_of_num (NUMERAL 0))) -> Coq.Arith.PeanoNat.Nat.Even n)) \/ (n = (NUMERAL 0))). -Axiom thm_INT_POW_EQ_1_IMP : forall x : Z, forall n : nat, ((~ (n = (NUMERAL 0))) /\ ((int_pow x n) = (int_of_num (NUMERAL (BIT1 0))))) -> (int_abs x) = (int_of_num (NUMERAL (BIT1 0))). -Axiom thm_INT_POW_EQ_ABS : forall n : nat, forall x : Z, forall y : Z, ((~ (n = (NUMERAL 0))) /\ ((int_pow x n) = (int_pow y n))) -> (int_abs x) = (int_abs y). -Axiom thm_INT_POW_EQ_EQ : forall n : nat, forall x : Z, forall y : Z, ((int_pow x n) = (int_pow y n)) = (@COND Prop (Coq.Arith.PeanoNat.Nat.Even n) ((n = (NUMERAL 0)) \/ ((int_abs x) = (int_abs y))) (x = y)). -Axiom thm_INT_POW_EQ_ODD : forall n : nat, forall x : Z, forall y : Z, ((Coq.Arith.PeanoNat.Nat.Odd n) /\ ((int_pow x n) = (int_pow y n))) -> x = y. -Axiom thm_INT_POW_EQ_ODD_EQ : forall n : nat, forall x : Z, forall y : Z, (Coq.Arith.PeanoNat.Nat.Odd n) -> ((int_pow x n) = (int_pow y n)) = (x = y). -Axiom thm_INT_POW_LBOUND : forall x : Z, forall n : nat, (int_le (int_of_num (NUMERAL 0)) x) -> int_le (int_add (int_of_num (NUMERAL (BIT1 0))) (int_mul (int_of_num n) x)) (int_pow (int_add (int_of_num (NUMERAL (BIT1 0))) x) n). -Axiom thm_INT_POW_LE : forall x : Z, forall n : nat, (int_le (int_of_num (NUMERAL 0)) x) -> int_le (int_of_num (NUMERAL 0)) (int_pow x n). -Axiom thm_INT_POW_LE2 : forall n : nat, forall x : Z, forall y : Z, ((int_le (int_of_num (NUMERAL 0)) x) /\ (int_le x y)) -> int_le (int_pow x n) (int_pow y n). -Axiom thm_INT_POW_LE2_ODD : forall n : nat, forall x : Z, forall y : Z, ((int_le x y) /\ (Coq.Arith.PeanoNat.Nat.Odd n)) -> int_le (int_pow x n) (int_pow y n). -Axiom thm_INT_POW_LE2_ODD_EQ : forall n : nat, forall x : Z, forall y : Z, (Coq.Arith.PeanoNat.Nat.Odd n) -> (int_le (int_pow x n) (int_pow y n)) = (int_le x y). -Axiom thm_INT_POW_LE2_REV : forall n : nat, forall x : Z, forall y : Z, ((~ (n = (NUMERAL 0))) /\ ((int_le (int_of_num (NUMERAL 0)) y) /\ (int_le (int_pow x n) (int_pow y n)))) -> int_le x y. -Axiom thm_INT_POW_LE_1 : forall n : nat, forall x : Z, (int_le (int_of_num (NUMERAL (BIT1 0))) x) -> int_le (int_of_num (NUMERAL (BIT1 0))) (int_pow x n). -Axiom thm_INT_POW_LT : forall x : Z, forall n : nat, (int_lt (int_of_num (NUMERAL 0)) x) -> int_lt (int_of_num (NUMERAL 0)) (int_pow x n). -Axiom thm_INT_POW_LT2 : forall n : nat, forall x : Z, forall y : Z, ((~ (n = (NUMERAL 0))) /\ ((int_le (int_of_num (NUMERAL 0)) x) /\ (int_lt x y))) -> int_lt (int_pow x n) (int_pow y n). -Axiom thm_INT_POW_LT2_ODD : forall n : nat, forall x : Z, forall y : Z, ((int_lt x y) /\ (Coq.Arith.PeanoNat.Nat.Odd n)) -> int_lt (int_pow x n) (int_pow y n). -Axiom thm_INT_POW_LT2_ODD_EQ : forall n : nat, forall x : Z, forall y : Z, (Coq.Arith.PeanoNat.Nat.Odd n) -> (int_lt (int_pow x n) (int_pow y n)) = (int_lt x y). -Axiom thm_INT_POW_LT2_REV : forall n : nat, forall x : Z, forall y : Z, ((int_le (int_of_num (NUMERAL 0)) y) /\ (int_lt (int_pow x n) (int_pow y n))) -> int_lt x y. -Axiom thm_INT_POW_LT_1 : forall n : nat, forall x : Z, ((~ (n = (NUMERAL 0))) /\ (int_lt (int_of_num (NUMERAL (BIT1 0))) x)) -> int_lt (int_of_num (NUMERAL (BIT1 0))) (int_pow x n). -Axiom thm_INT_POW_MONO : forall m : nat, forall n : nat, forall x : Z, ((int_le (int_of_num (NUMERAL (BIT1 0))) x) /\ (Peano.le m n)) -> int_le (int_pow x m) (int_pow x n). -Axiom thm_INT_POW_MONO_LT : forall m : nat, forall n : nat, forall x : Z, ((int_lt (int_of_num (NUMERAL (BIT1 0))) x) /\ (Peano.lt m n)) -> int_lt (int_pow x m) (int_pow x n). -Axiom thm_INT_POW_MUL : forall x : Z, forall y : Z, forall n : nat, (int_pow (int_mul x y) n) = (int_mul (int_pow x n) (int_pow y n)). -Axiom thm_INT_POW_NEG : forall x : Z, forall n : nat, (int_pow (int_neg x) n) = (@COND Z (Coq.Arith.PeanoNat.Nat.Even n) (int_pow x n) (int_neg (int_pow x n))). -Axiom thm_INT_POW_NZ : forall x : Z, forall n : nat, (~ (x = (int_of_num (NUMERAL 0)))) -> ~ ((int_pow x n) = (int_of_num (NUMERAL 0))). -Axiom thm_INT_POW_ONE : forall n : nat, (int_pow (int_of_num (NUMERAL (BIT1 0))) n) = (int_of_num (NUMERAL (BIT1 0))). -Axiom thm_INT_POW_POW : forall x : Z, forall m : nat, forall n : nat, (int_pow (int_pow x m) n) = (int_pow x (Nat.mul m n)). -Axiom thm_INT_POW_ZERO : forall n : nat, (int_pow (int_of_num (NUMERAL 0)) n) = (@COND Z (n = (NUMERAL 0)) (int_of_num (NUMERAL (BIT1 0))) (int_of_num (NUMERAL 0))). -Axiom thm_INT_RNEG_UNIQ : forall x : Z, forall y : Z, ((int_add x y) = (int_of_num (NUMERAL 0))) = (y = (int_neg x)). -Axiom thm_INT_SGN : forall x : Z, (int_sgn x) = (@COND Z (int_lt (int_of_num (NUMERAL 0)) x) (int_of_num (NUMERAL (BIT1 0))) (@COND Z (int_lt x (int_of_num (NUMERAL 0))) (int_neg (int_of_num (NUMERAL (BIT1 0)))) (int_of_num (NUMERAL 0)))). -Axiom thm_INT_SGNS_EQ : forall x : Z, forall y : Z, ((int_sgn x) = (int_sgn y)) = (((x = (int_of_num (NUMERAL 0))) = (y = (int_of_num (NUMERAL 0)))) /\ (((int_gt x (int_of_num (NUMERAL 0))) = (int_gt y (int_of_num (NUMERAL 0)))) /\ ((int_lt x (int_of_num (NUMERAL 0))) = (int_lt y (int_of_num (NUMERAL 0)))))). -Axiom thm_INT_SGNS_EQ_ALT : forall x : Z, forall y : Z, ((int_sgn x) = (int_sgn y)) = (((x = (int_of_num (NUMERAL 0))) -> y = (int_of_num (NUMERAL 0))) /\ (((int_gt x (int_of_num (NUMERAL 0))) -> int_gt y (int_of_num (NUMERAL 0))) /\ ((int_lt x (int_of_num (NUMERAL 0))) -> int_lt y (int_of_num (NUMERAL 0))))). -Axiom thm_INT_SGN_0 : (int_sgn (int_of_num (NUMERAL 0))) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_SGN_ABS : forall x : Z, (int_mul (int_sgn x) (int_abs x)) = x. -Axiom thm_INT_SGN_ABS_ALT : forall x : Z, (int_mul (int_sgn x) x) = (int_abs x). -Axiom thm_INT_SGN_CASES : forall x : Z, ((int_sgn x) = (int_of_num (NUMERAL 0))) \/ (((int_sgn x) = (int_of_num (NUMERAL (BIT1 0)))) \/ ((int_sgn x) = (int_neg (int_of_num (NUMERAL (BIT1 0)))))). -Axiom thm_INT_SGN_EQ : (forall x : Z, ((int_sgn x) = (int_of_num (NUMERAL 0))) = (x = (int_of_num (NUMERAL 0)))) /\ ((forall x : Z, ((int_sgn x) = (int_of_num (NUMERAL (BIT1 0)))) = (int_gt x (int_of_num (NUMERAL 0)))) /\ (forall x : Z, ((int_sgn x) = (int_neg (int_of_num (NUMERAL (BIT1 0))))) = (int_lt x (int_of_num (NUMERAL 0))))). -Axiom thm_INT_SGN_EQ_INEQ : forall x : Z, forall y : Z, ((int_sgn x) = (int_sgn y)) = ((x = y) \/ (int_lt (int_abs (int_sub x y)) (int_max (int_abs x) (int_abs y)))). -Axiom thm_INT_SGN_INEQS : (forall x : Z, (int_le (int_of_num (NUMERAL 0)) (int_sgn x)) = (int_le (int_of_num (NUMERAL 0)) x)) /\ ((forall x : Z, (int_lt (int_of_num (NUMERAL 0)) (int_sgn x)) = (int_lt (int_of_num (NUMERAL 0)) x)) /\ ((forall x : Z, (int_ge (int_of_num (NUMERAL 0)) (int_sgn x)) = (int_ge (int_of_num (NUMERAL 0)) x)) /\ ((forall x : Z, (int_gt (int_of_num (NUMERAL 0)) (int_sgn x)) = (int_gt (int_of_num (NUMERAL 0)) x)) /\ ((forall x : Z, ((int_of_num (NUMERAL 0)) = (int_sgn x)) = ((int_of_num (NUMERAL 0)) = x)) /\ ((forall x : Z, (int_le (int_sgn x) (int_of_num (NUMERAL 0))) = (int_le x (int_of_num (NUMERAL 0)))) /\ ((forall x : Z, (int_lt (int_sgn x) (int_of_num (NUMERAL 0))) = (int_lt x (int_of_num (NUMERAL 0)))) /\ ((forall x : Z, (int_ge (int_sgn x) (int_of_num (NUMERAL 0))) = (int_ge x (int_of_num (NUMERAL 0)))) /\ ((forall x : Z, (int_gt (int_sgn x) (int_of_num (NUMERAL 0))) = (int_gt x (int_of_num (NUMERAL 0)))) /\ (forall x : Z, ((int_sgn x) = (int_of_num (NUMERAL 0))) = (x = (int_of_num (NUMERAL 0)))))))))))). -Axiom thm_INT_SGN_INT_SGN : forall x : Z, (int_sgn (int_sgn x)) = (int_sgn x). -Axiom thm_INT_SGN_MUL : forall x : Z, forall y : Z, (int_sgn (int_mul x y)) = (int_mul (int_sgn x) (int_sgn y)). -Axiom thm_INT_SGN_NEG : forall x : Z, (int_sgn (int_neg x)) = (int_neg (int_sgn x)). -Axiom thm_INT_SGN_POW : forall x : Z, forall n : nat, (int_sgn (int_pow x n)) = (int_pow (int_sgn x) n). -Axiom thm_INT_SGN_POW_2 : forall x : Z, (int_sgn (int_pow x (NUMERAL (BIT0 (BIT1 0))))) = (int_sgn (int_abs x)). -Axiom thm_INT_SOS_EQ_0 : forall x : Z, forall y : Z, ((int_add (int_pow x (NUMERAL (BIT0 (BIT1 0)))) (int_pow y (NUMERAL (BIT0 (BIT1 0))))) = (int_of_num (NUMERAL 0))) = ((x = (int_of_num (NUMERAL 0))) /\ (y = (int_of_num (NUMERAL 0)))). -Axiom thm_INT_SUB_0 : forall x : Z, forall y : Z, ((int_sub x y) = (int_of_num (NUMERAL 0))) = (x = y). -Axiom thm_INT_SUB_ABS : forall x : Z, forall y : Z, int_le (int_sub (int_abs x) (int_abs y)) (int_abs (int_sub x y)). -Axiom thm_INT_SUB_ADD : forall x : Z, forall y : Z, (int_add (int_sub x y) y) = x. -Axiom thm_INT_SUB_ADD2 : forall x : Z, forall y : Z, (int_add y (int_sub x y)) = x. -Axiom thm_INT_SUB_LDISTRIB : forall x : Z, forall y : Z, forall z : Z, (int_mul x (int_sub y z)) = (int_sub (int_mul x y) (int_mul x z)). -Axiom thm_INT_SUB_LE : forall x : Z, forall y : Z, (int_le (int_of_num (NUMERAL 0)) (int_sub x y)) = (int_le y x). -Axiom thm_INT_SUB_LNEG : forall x : Z, forall y : Z, (int_sub (int_neg x) y) = (int_neg (int_add x y)). -Axiom thm_INT_SUB_LT : forall x : Z, forall y : Z, (int_lt (int_of_num (NUMERAL 0)) (int_sub x y)) = (int_lt y x). -Axiom thm_INT_SUB_LZERO : forall x : Z, (int_sub (int_of_num (NUMERAL 0)) x) = (int_neg x). -Axiom thm_INT_SUB_NEG2 : forall x : Z, forall y : Z, (int_sub (int_neg x) (int_neg y)) = (int_sub y x). -Axiom thm_INT_SUB_RDISTRIB : forall x : Z, forall y : Z, forall z : Z, (int_mul (int_sub x y) z) = (int_sub (int_mul x z) (int_mul y z)). -Axiom thm_INT_SUB_REFL : forall x : Z, (int_sub x x) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_SUB_RNEG : forall x : Z, forall y : Z, (int_sub x (int_neg y)) = (int_add x y). -Axiom thm_INT_SUB_RZERO : forall x : Z, (int_sub x (int_of_num (NUMERAL 0))) = x. -Axiom thm_INT_SUB_SUB : forall x : Z, forall y : Z, (int_sub (int_sub x y) x) = (int_neg y). -Axiom thm_INT_SUB_SUB2 : forall x : Z, forall y : Z, (int_sub x (int_sub x y)) = y. -Axiom thm_INT_SUB_TRIANGLE : forall a : Z, forall b : Z, forall c : Z, (int_add (int_sub a b) (int_sub b c)) = (int_sub a c). -Axiom thm_INT_WLOG_LE : forall (P : Z -> Z -> Prop), ((forall x : Z, forall y : Z, (P x y) = (P y x)) /\ (forall x : Z, forall y : Z, (int_le x y) -> P x y)) -> forall x : Z, forall y : Z, P x y. -Axiom thm_INT_WLOG_LT : forall (P : Z -> Z -> Prop), ((forall x : Z, P x x) /\ ((forall x : Z, forall y : Z, (P x y) = (P y x)) /\ (forall x : Z, forall y : Z, (int_lt x y) -> P x y))) -> forall x : Z, forall y : Z, P x y. -Axiom thm_INT_WLOG_LE_3 : forall P : Z -> Z -> Z -> Prop, ((forall x : Z, forall y : Z, forall z : Z, (P x y z) -> (P y x z) /\ (P x z y)) /\ (forall x : Z, forall y : Z, forall z : Z, ((int_le x y) /\ (int_le y z)) -> P x y z)) -> forall x : Z, forall y : Z, forall z : Z, P x y z. -Axiom thm_INT_FORALL_POS : forall P : Z -> Prop, (forall n : nat, P (int_of_num n)) = (forall i : Z, (int_le (int_of_num (NUMERAL 0)) i) -> P i). -Axiom thm_INT_EXISTS_POS : forall P : Z -> Prop, (exists n : nat, P (int_of_num n)) = (exists i : Z, (int_le (int_of_num (NUMERAL 0)) i) /\ (P i)). -Axiom thm_INT_FORALL_ABS : forall P : Z -> Prop, (forall n : nat, P (int_of_num n)) = (forall x : Z, P (int_abs x)). -Axiom thm_INT_EXISTS_ABS : forall P : Z -> Prop, (exists n : nat, P (int_of_num n)) = (exists x : Z, P (int_abs x)). -Axiom thm_INT_POW : forall (x : Z), ((int_pow x (NUMERAL 0)) = (int_of_num (NUMERAL (BIT1 0)))) /\ (forall n : nat, (int_pow x (S n)) = (int_mul x (int_pow x n))). -Axiom thm_INT_ABS : forall x : Z, (int_abs x) = (@COND Z (int_le (int_of_num (NUMERAL 0)) x) x (int_neg x)). -Axiom thm_INT_GE : forall x : Z, forall y : Z, (int_ge x y) = (int_le y x). -Axiom thm_INT_GT : forall x : Z, forall y : Z, (int_gt x y) = (int_lt y x). -Axiom thm_INT_LT : forall x : Z, forall y : Z, (int_lt x y) = (~ (int_le y x)). -Axiom thm_INT_SUB : forall x : Z, forall y : Z, (int_sub x y) = (int_add x (int_neg y)). -Axiom thm_INT_MAX : forall x : Z, forall y : Z, (int_max x y) = (@COND Z (int_le x y) y x). -Axiom thm_INT_MIN : forall x : Z, forall y : Z, (int_min x y) = (@COND Z (int_le x y) x y). -Axiom thm_INT_OF_NUM_EXISTS : forall x : Z, (exists n : nat, x = (int_of_num n)) = (int_le (int_of_num (NUMERAL 0)) x). -Axiom thm_INT_LE_DISCRETE : forall x : Z, forall y : Z, (int_le x y) = (int_lt x (int_add y (int_of_num (NUMERAL (BIT1 0))))). -Axiom thm_INT_LE_TRANS_LE : forall x : Z, forall y : Z, (int_le x y) = (forall z : Z, (int_le y z) -> int_le x z). -Axiom thm_INT_LE_TRANS_LT : forall x : Z, forall y : Z, (int_le x y) = (forall z : Z, (int_lt y z) -> int_lt x z). -Axiom thm_INT_MUL_EQ_1 : forall x : Z, forall y : Z, ((int_mul x y) = (int_of_num (NUMERAL (BIT1 0)))) = (((x = (int_of_num (NUMERAL (BIT1 0)))) /\ (y = (int_of_num (NUMERAL (BIT1 0))))) \/ ((x = (int_neg (int_of_num (NUMERAL (BIT1 0))))) /\ (y = (int_neg (int_of_num (NUMERAL (BIT1 0))))))). -Axiom thm_INT_ABS_MUL_1 : forall x : Z, forall y : Z, ((int_abs (int_mul x y)) = (int_of_num (NUMERAL (BIT1 0)))) = (((int_abs x) = (int_of_num (NUMERAL (BIT1 0)))) /\ ((int_abs y) = (int_of_num (NUMERAL (BIT1 0))))). -Axiom thm_INT_WOP : forall (P : Z -> Prop), (exists x : Z, (int_le (int_of_num (NUMERAL 0)) x) /\ (P x)) = (exists x : Z, (int_le (int_of_num (NUMERAL 0)) x) /\ ((P x) /\ (forall y : Z, ((int_le (int_of_num (NUMERAL 0)) y) /\ (P y)) -> int_le x y))). -Axiom thm_INT_ARCH : forall x : Z, forall d : Z, (~ (d = (int_of_num (NUMERAL 0)))) -> exists c : Z, int_lt x (int_mul c d). -Axiom thm_INT_DIVMOD_EXIST_0 : forall m : Z, forall n : Z, exists q : Z, exists r : Z, @COND Prop (n = (int_of_num (NUMERAL 0))) ((q = (int_of_num (NUMERAL 0))) /\ (r = m)) ((int_le (int_of_num (NUMERAL 0)) r) /\ ((int_lt r (int_abs n)) /\ (m = (int_add (int_mul q n) r)))). -Axiom thm_INT_DIVISION : forall m : Z, forall n : Z, (~ (n = (int_of_num (NUMERAL 0)))) -> (m = (int_add (int_mul (div m n) n) (rem m n))) /\ ((int_le (int_of_num (NUMERAL 0)) (rem m n)) /\ (int_lt (rem m n) (int_abs n))). -Axiom thm_INT_DIVISION_SIMP : forall m : Z, forall n : Z, (int_add (int_mul (div m n) n) (rem m n)) = m. -Axiom thm_INT_REM_POS : forall a : Z, forall b : Z, (~ (b = (int_of_num (NUMERAL 0)))) -> int_le (int_of_num (NUMERAL 0)) (rem a b). -Axiom thm_INT_DIV_0 : forall m : Z, (div m (int_of_num (NUMERAL 0))) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_REM_0 : forall m : Z, (rem m (int_of_num (NUMERAL 0))) = m. -Axiom thm_INT_REM_POS_EQ : forall m : Z, forall n : Z, (int_le (int_of_num (NUMERAL 0)) (rem m n)) = ((n = (int_of_num (NUMERAL 0))) -> int_le (int_of_num (NUMERAL 0)) m). -Axiom thm_INT_REM_DIV : forall m : Z, forall n : Z, (rem m n) = (int_sub m (int_mul (div m n) n)). -Axiom thm_INT_LT_REM : forall x : Z, forall n : Z, (int_lt (int_of_num (NUMERAL 0)) n) -> int_lt (rem x n) n. -Axiom thm_INT_LT_REM_EQ : forall m : Z, forall n : Z, (int_lt (rem m n) n) = ((int_lt (int_of_num (NUMERAL 0)) n) \/ ((n = (int_of_num (NUMERAL 0))) /\ (int_lt m (int_of_num (NUMERAL 0))))). -Axiom thm_cong : forall {A : Type'}, forall rel : A -> A -> Prop, forall x : A, forall y : A, (@eq2 A x y rel) = (rel x y). -Axiom thm_real_mod : forall x : R, forall y : R, forall n : R, (real_mod n x y) = (exists q : R, (integer q) /\ ((Rminus x y) = (Rmult q n))). -Axiom thm_int_divides : forall b : Z, forall a : Z, (int_divides a b) = (exists x : Z, b = (int_mul a x)). -Axiom thm_INT_DIVIDES_LE : forall x : Z, forall y : Z, (int_divides x y) -> (int_le (int_abs x) (int_abs y)) \/ (y = (int_of_num (NUMERAL 0))). -Axiom thm_int_mod : forall n : Z, forall x : Z, forall y : Z, (int_mod n x y) = (int_divides n (int_sub x y)). -Axiom thm_int_congruent : forall x : Z, forall y : Z, forall n : Z, (@eq2 Z x y (int_mod n)) = (exists d : Z, (int_sub x y) = (int_mul n d)). -Axiom thm_INT_CONG_IMP_EQ : forall x : Z, forall y : Z, forall n : Z, ((int_lt (int_abs (int_sub x y)) n) /\ (@eq2 Z x y (int_mod n))) -> x = y. -Axiom thm_int_coprime : forall a : Z, forall b : Z, (int_coprime (@pair Z Z a b)) = (exists x : Z, exists y : Z, (int_add (int_mul a x) (int_mul b y)) = (int_of_num (NUMERAL (BIT1 0)))). -Axiom thm_INT_DIVMOD_UNIQ : forall m : Z, forall n : Z, forall q : Z, forall r : Z, ((m = (int_add (int_mul q n) r)) /\ ((int_le (int_of_num (NUMERAL 0)) r) /\ (int_lt r (int_abs n)))) -> ((div m n) = q) /\ ((rem m n) = r). -Axiom thm_INT_DIV_UNIQ : forall m : Z, forall n : Z, forall q : Z, forall r : Z, ((m = (int_add (int_mul q n) r)) /\ ((int_le (int_of_num (NUMERAL 0)) r) /\ (int_lt r (int_abs n)))) -> (div m n) = q. -Axiom thm_INT_REM_UNIQ : forall m : Z, forall n : Z, forall q : Z, forall r : Z, ((m = (int_add (int_mul q n) r)) /\ ((int_le (int_of_num (NUMERAL 0)) r) /\ (int_lt r (int_abs n)))) -> (rem m n) = r. -Axiom thm_INT_REM_LT : forall m : Z, forall n : Z, (((~ (n = (int_of_num (NUMERAL 0)))) -> int_le (int_of_num (NUMERAL 0)) m) /\ (int_lt m n)) -> (rem m n) = m. -Axiom thm_INT_DIV_LT : forall m : Z, forall n : Z, (((~ (n = (int_of_num (NUMERAL 0)))) -> int_le (int_of_num (NUMERAL 0)) m) /\ (int_lt m n)) -> (div m n) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_REM_RNEG : forall m : Z, forall n : Z, (rem m (int_neg n)) = (rem m n). -Axiom thm_INT_DIV_RNEG : forall m : Z, forall n : Z, (div m (int_neg n)) = (int_neg (div m n)). -Axiom thm_INT_REM_RABS : forall x : Z, forall y : Z, (rem x (int_abs y)) = (rem x y). -Axiom thm_INT_REM_REM : forall m : Z, forall n : Z, (rem (rem m n) n) = (rem m n). -Axiom thm_INT_REM_EQ : forall m : Z, forall n : Z, forall p : Z, ((rem m p) = (rem n p)) = (@eq2 Z m n (int_mod p)). -Axiom thm_INT_REM_ZERO : forall n : Z, (rem (int_of_num (NUMERAL 0)) n) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_DIV_ZERO : forall n : Z, (div (int_of_num (NUMERAL 0)) n) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_REM_EQ_0 : forall m : Z, forall n : Z, ((rem m n) = (int_of_num (NUMERAL 0))) = (int_divides n m). -Axiom thm_INT_MUL_DIV_EQ : (forall m : Z, forall n : Z, ((int_mul n (div m n)) = m) = (int_divides n m)) /\ (forall m : Z, forall n : Z, ((int_mul (div m n) n) = m) = (int_divides n m)). -Axiom thm_INT_CONG_LREM : forall x : Z, forall y : Z, forall n : Z, (@eq2 Z (rem x n) y (int_mod n)) = (@eq2 Z x y (int_mod n)). -Axiom thm_INT_CONG_RREM : forall x : Z, forall y : Z, forall n : Z, (@eq2 Z x (rem y n) (int_mod n)) = (@eq2 Z x y (int_mod n)). -Axiom thm_INT_REM_MOD_SELF : forall m : Z, forall n : Z, @eq2 Z (rem m n) m (int_mod n). -Axiom thm_INT_REM_REM_MUL : (forall m : Z, forall n : Z, forall p : Z, (rem (rem m (int_mul n p)) n) = (rem m n)) /\ (forall m : Z, forall n : Z, forall p : Z, (rem (rem m (int_mul n p)) p) = (rem m p)). -Axiom thm_INT_CONG_SOLVE_BOUNDS : forall a : Z, forall n : Z, (~ (n = (int_of_num (NUMERAL 0)))) -> exists x : Z, (int_le (int_of_num (NUMERAL 0)) x) /\ ((int_lt x (int_abs n)) /\ (@eq2 Z x a (int_mod n))). -Axiom thm_INT_NEG_REM : forall n : Z, forall p : Z, (rem (int_neg (rem n p)) p) = (rem (int_neg n) p). -Axiom thm_INT_ADD_REM : forall m : Z, forall n : Z, forall p : Z, (rem (int_add (rem m p) (rem n p)) p) = (rem (int_add m n) p). -Axiom thm_INT_SUB_REM : forall m : Z, forall n : Z, forall p : Z, (rem (int_sub (rem m p) (rem n p)) p) = (rem (int_sub m n) p). -Axiom thm_INT_MUL_REM : forall m : Z, forall n : Z, forall p : Z, (rem (int_mul (rem m p) (rem n p)) p) = (rem (int_mul m n) p). -Axiom thm_INT_POW_REM : forall m : Z, forall n : nat, forall p : Z, (rem (int_pow (rem m p) n) p) = (rem (int_pow m n) p). -Axiom thm_INT_OF_NUM_REM : forall m : nat, forall n : nat, (rem (int_of_num m) (int_of_num n)) = (int_of_num (Nat.modulo m n)). -Axiom thm_INT_OF_NUM_DIV : forall m : nat, forall n : nat, (div (int_of_num m) (int_of_num n)) = (int_of_num (Nat.div m n)). -Axiom thm_INT_REM_REFL : forall n : Z, (rem n n) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_DIV_REFL : forall n : Z, (div n n) = (@COND Z (n = (int_of_num (NUMERAL 0))) (int_of_num (NUMERAL 0)) (int_of_num (NUMERAL (BIT1 0)))). -Axiom thm_INT_REM_LNEG : forall m : Z, forall n : Z, (rem (int_neg m) n) = (@COND Z ((rem m n) = (int_of_num (NUMERAL 0))) (int_of_num (NUMERAL 0)) (int_sub (int_abs n) (rem m n))). -Axiom thm_INT_DIV_LNEG : forall m : Z, forall n : Z, (div (int_neg m) n) = (@COND Z ((rem m n) = (int_of_num (NUMERAL 0))) (int_neg (div m n)) (int_sub (int_neg (div m n)) (int_sgn n))). -Axiom thm_INT_DIV_NEG2 : forall m : Z, forall n : Z, (div (int_neg m) (int_neg n)) = (@COND Z ((rem m n) = (int_of_num (NUMERAL 0))) (div m n) (int_add (div m n) (int_sgn n))). -Axiom thm_INT_REM_NEG2 : forall m : Z, forall n : Z, (rem (int_neg m) (int_neg n)) = (@COND Z ((rem m n) = (int_of_num (NUMERAL 0))) (int_of_num (NUMERAL 0)) (int_sub (int_abs n) (rem m n))). -Axiom thm_INT_REM_1 : forall n : Z, (rem n (int_of_num (NUMERAL (BIT1 0)))) = (int_of_num (NUMERAL 0)). -Axiom thm_INT_DIV_1 : forall n : Z, (div n (int_of_num (NUMERAL (BIT1 0)))) = n. -Axiom thm_INT_REM_MUL : (forall m : Z, forall n : Z, (rem (int_mul m n) n) = (int_of_num (NUMERAL 0))) /\ (forall m : Z, forall n : Z, (rem (int_mul m n) m) = (int_of_num (NUMERAL 0))). -Axiom thm_INT_DIV_MUL : (forall m : Z, forall n : Z, (~ (n = (int_of_num (NUMERAL 0)))) -> (div (int_mul m n) n) = m) /\ (forall m : Z, forall n : Z, (~ (m = (int_of_num (NUMERAL 0)))) -> (div (int_mul m n) m) = n). -Axiom thm_INT_DIV_LT_EQ : forall a : Z, forall b : Z, forall c : Z, (int_lt (int_of_num (NUMERAL 0)) a) -> (int_lt (div b a) c) = (int_lt b (int_mul a c)). -Axiom thm_INT_LE_DIV_EQ : forall a : Z, forall b : Z, forall c : Z, (int_lt (int_of_num (NUMERAL 0)) a) -> (int_le c (div b a)) = (int_le (int_mul a c) b). -Axiom thm_INT_DIV_LE_EQ : forall a : Z, forall b : Z, forall c : Z, (int_lt (int_of_num (NUMERAL 0)) a) -> (int_le (div b a) c) = (int_lt b (int_mul a (int_add c (int_of_num (NUMERAL (BIT1 0)))))). -Axiom thm_INT_LT_DIV_EQ : forall a : Z, forall b : Z, forall c : Z, (int_lt (int_of_num (NUMERAL 0)) a) -> (int_lt c (div b a)) = (int_le (int_mul a (int_add c (int_of_num (NUMERAL (BIT1 0))))) b). -Axiom thm_INT_DIV_LE : forall m : Z, forall n : Z, int_le (int_abs (div m n)) (int_abs m). -Axiom thm_INT_REM_MUL_REM : forall m : Z, forall n : Z, forall p : Z, (int_le (int_of_num (NUMERAL 0)) n) -> (rem m (int_mul n p)) = (int_add (int_mul n (rem (div m n) p)) (rem m n)). -Axiom thm_INT_DIV_DIV : forall m : Z, forall n : Z, forall p : Z, (int_le (int_of_num (NUMERAL 0)) n) -> (div (div m n) p) = (div m (int_mul n p)). -Axiom thm_INT_DIV_EQ_0 : forall m : Z, forall n : Z, ((div m n) = (int_of_num (NUMERAL 0))) = ((n = (int_of_num (NUMERAL 0))) \/ ((int_le (int_of_num (NUMERAL 0)) m) /\ (int_lt m (int_abs n)))). -Axiom thm_INT_REM_EQ_SELF : forall m : Z, forall n : Z, ((rem m n) = m) = ((n = (int_of_num (NUMERAL 0))) \/ ((int_le (int_of_num (NUMERAL 0)) m) /\ (int_lt m (int_abs n)))). -Axiom thm_INT_REM_UNIQUE : forall m : Z, forall n : Z, forall p : Z, ((rem m n) = p) = ((((n = (int_of_num (NUMERAL 0))) /\ (m = p)) \/ ((int_le (int_of_num (NUMERAL 0)) p) /\ (int_lt p (int_abs n)))) /\ (@eq2 Z m p (int_mod n))). -Axiom thm_INT_DIV_REM : forall m : Z, forall n : Z, forall p : Z, (int_le (int_of_num (NUMERAL 0)) n) -> (rem (div m n) p) = (div (rem m (int_mul n p)) n). -Axiom thm_INT_REM_REM_LE : forall m : Z, forall n : Z, forall p : Z, ((~ (n = (int_of_num (NUMERAL 0)))) /\ (int_le (int_abs n) (int_abs p))) -> (rem (rem m n) p) = (rem m n). -Axiom thm_INT_LE_DIV : forall m : Z, forall n : Z, ((int_le (int_of_num (NUMERAL 0)) m) /\ (int_le (int_of_num (NUMERAL 0)) n)) -> int_le (int_of_num (NUMERAL 0)) (div m n). -Axiom thm_INT_LT_DIV : forall m : Z, forall n : Z, ((int_lt (int_of_num (NUMERAL 0)) n) /\ (int_le n m)) -> int_lt (int_of_num (NUMERAL 0)) (div m n). -Axiom thm_INT_REM_LE_EQ : forall m : Z, forall n : Z, (int_le (rem m n) m) = ((n = (int_of_num (NUMERAL 0))) \/ (int_le (int_of_num (NUMERAL 0)) m)). -Axiom thm_INT_REM_LE : forall m : Z, forall n : Z, forall p : Z, (((n = (int_of_num (NUMERAL 0))) \/ (int_le (int_of_num (NUMERAL 0)) m)) /\ (int_le m p)) -> int_le (rem m n) p. -Axiom thm_INT_REM_MUL_ADD : (forall m : Z, forall n : Z, forall p : Z, (rem (int_add (int_mul m n) p) n) = (rem p n)) /\ ((forall m : Z, forall n : Z, forall p : Z, (rem (int_add (int_mul n m) p) n) = (rem p n)) /\ ((forall m : Z, forall n : Z, forall p : Z, (rem (int_add p (int_mul m n)) n) = (rem p n)) /\ (forall m : Z, forall n : Z, forall p : Z, (rem (int_add p (int_mul n m)) n) = (rem p n)))). -Axiom thm_INT_DIV_MUL_ADD : (forall m : Z, forall n : Z, forall p : Z, (~ (n = (int_of_num (NUMERAL 0)))) -> (div (int_add (int_mul m n) p) n) = (int_add m (div p n))) /\ ((forall m : Z, forall n : Z, forall p : Z, (~ (n = (int_of_num (NUMERAL 0)))) -> (div (int_add (int_mul n m) p) n) = (int_add m (div p n))) /\ ((forall m : Z, forall n : Z, forall p : Z, (~ (n = (int_of_num (NUMERAL 0)))) -> (div (int_add p (int_mul m n)) n) = (int_add (div p n) m)) /\ (forall m : Z, forall n : Z, forall p : Z, (~ (n = (int_of_num (NUMERAL 0)))) -> (div (int_add p (int_mul n m)) n) = (int_add (div p n) m)))). -Axiom thm_INT_CONG_DIV2 : forall a : Z, forall b : Z, forall m : Z, forall n : Z, (@eq2 Z a b (int_mod (int_mul m n))) -> @eq2 Z (div a m) (div b m) (int_mod n). -Axiom thm_INT_REM_2_CASES : forall n : Z, ((rem n (int_of_num (NUMERAL (BIT0 (BIT1 0))))) = (int_of_num (NUMERAL 0))) \/ ((rem n (int_of_num (NUMERAL (BIT0 (BIT1 0))))) = (int_of_num (NUMERAL (BIT1 0)))). -Axiom thm_NOT_INT_REM_2 : (forall n : Z, (~ ((rem n (int_of_num (NUMERAL (BIT0 (BIT1 0))))) = (int_of_num (NUMERAL 0)))) = ((rem n (int_of_num (NUMERAL (BIT0 (BIT1 0))))) = (int_of_num (NUMERAL (BIT1 0))))) /\ (forall n : Z, (~ ((rem n (int_of_num (NUMERAL (BIT0 (BIT1 0))))) = (int_of_num (NUMERAL (BIT1 0))))) = ((rem n (int_of_num (NUMERAL (BIT0 (BIT1 0))))) = (int_of_num (NUMERAL 0)))). -Axiom thm_INT_REM_2_DIVIDES : (forall n : Z, ((rem n (int_of_num (NUMERAL (BIT0 (BIT1 0))))) = (int_of_num (NUMERAL 0))) = (int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) n)) /\ (forall n : Z, ((rem n (int_of_num (NUMERAL (BIT0 (BIT1 0))))) = (int_of_num (NUMERAL (BIT1 0)))) = (~ (int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) n))). -Axiom thm_INT_REM_2_EXPAND : forall x : Z, (rem x (int_of_num (NUMERAL (BIT0 (BIT1 0))))) = (@COND Z (int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) x) (int_of_num (NUMERAL 0)) (int_of_num (NUMERAL (BIT1 0)))). -Axiom thm_INT_REM_2_NEG : forall x : Z, (rem (int_neg x) (int_of_num (NUMERAL (BIT0 (BIT1 0))))) = (rem x (int_of_num (NUMERAL (BIT0 (BIT1 0))))). -Axiom thm_INT_DIVIDES_DIV_SELF : forall n : Z, forall d : Z, (int_divides d n) -> int_divides (div n d) n. -Axiom thm_INT_DIV_BY_DIV : forall m : Z, forall n : Z, ((~ (n = (int_of_num (NUMERAL 0)))) /\ (int_divides m n)) -> (div n (div n m)) = m. -Axiom thm_INT_DIVIDES_DIV_DIVIDES : forall n : Z, forall d : Z, forall e : Z, ((int_divides d n) /\ ((n = (int_of_num (NUMERAL 0))) -> e = (int_of_num (NUMERAL 0)))) -> (int_divides (div n d) e) = (int_divides n (int_mul d e)). -Axiom thm_INT_DIVIDES_DIVIDES_DIV : forall n : Z, forall d : Z, forall e : Z, (int_divides d n) -> (int_divides e (div n d)) = (int_divides (int_mul d e) n). -Axiom thm_INT_DIVIDES_DIVIDES_DIV_EQ : forall n : Z, forall d : Z, forall e : Z, ((int_divides d n) /\ (int_divides e (div n d))) = (int_divides (int_mul d e) n). -Axiom thm_INT_2_DIVIDES_ADD : forall m : Z, forall n : Z, (int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) (int_add m n)) = ((int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) m) = (int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) n)). -Axiom thm_INT_2_DIVIDES_SUB : forall m : Z, forall n : Z, (int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) (int_sub m n)) = ((int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) m) = (int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) n)). -Axiom thm_INT_2_DIVIDES_MUL : forall m : Z, forall n : Z, (int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) (int_mul m n)) = ((int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) m) \/ (int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) n)). -Axiom thm_INT_2_DIVIDES_POW : forall n : Z, forall k : nat, (int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) (int_pow n k)) = ((int_divides (int_of_num (NUMERAL (BIT0 (BIT1 0)))) n) /\ (~ (k = (NUMERAL 0)))). -Axiom thm_WF_INT_MEASURE : forall {A : Type'}, forall P : A -> Prop, forall m : A -> Z, ((forall x : A, int_le (int_of_num (NUMERAL 0)) (m x)) /\ (forall x : A, (forall y : A, (int_lt (m y) (m x)) -> P y) -> P x)) -> forall x : A, P x. -Axiom thm_WF_INT_MEASURE_2 : forall {A B : Type'}, forall P : A -> B -> Prop, forall m : A -> B -> Z, ((forall x : A, forall y : B, int_le (int_of_num (NUMERAL 0)) (m x y)) /\ (forall x : A, forall y : B, (forall x' : A, forall y' : B, (int_lt (m x' y') (m x y)) -> P x' y') -> P x y)) -> forall x : A, forall y : B, P x y. -Axiom thm_INT_GCD_EXISTS : forall a : Z, forall b : Z, exists d : Z, (int_divides d a) /\ ((int_divides d b) /\ (exists x : Z, exists y : Z, d = (int_add (int_mul a x) (int_mul b y)))). -Axiom thm_INT_GCD_EXISTS_POS : forall a : Z, forall b : Z, exists d : Z, (int_le (int_of_num (NUMERAL 0)) d) /\ ((int_divides d a) /\ ((int_divides d b) /\ (exists x : Z, exists y : Z, d = (int_add (int_mul a x) (int_mul b y))))). -Axiom thm_int_lcm : forall m : Z, forall n : Z, (int_lcm (@pair Z Z m n)) = (@COND Z ((int_mul m n) = (int_of_num (NUMERAL 0))) (int_of_num (NUMERAL 0)) (div (int_abs (int_mul m n)) (int_gcd (@pair Z Z m n)))). -Axiom thm_INT_DIVIDES_LABS : forall d : Z, forall n : Z, (int_divides (int_abs d) n) = (int_divides d n). -Axiom thm_INT_DIVIDES_RABS : forall d : Z, forall n : Z, (int_divides d (int_abs n)) = (int_divides d n). -Axiom thm_INT_DIVIDES_ABS : (forall d : Z, forall n : Z, (int_divides (int_abs d) n) = (int_divides d n)) /\ (forall d : Z, forall n : Z, (int_divides d (int_abs n)) = (int_divides d n)). -Axiom thm_INT_LCM_POS : forall m : Z, forall n : Z, int_le (int_of_num (NUMERAL 0)) (int_lcm (@pair Z Z m n)). -Axiom thm_INT_MUL_GCD_LCM : forall m : Z, forall n : Z, (int_mul (int_gcd (@pair Z Z m n)) (int_lcm (@pair Z Z m n))) = (int_abs (int_mul m n)). -Axiom thm_INT_MUL_LCM_GCD : forall m : Z, forall n : Z, (int_mul (int_lcm (@pair Z Z m n)) (int_gcd (@pair Z Z m n))) = (int_abs (int_mul m n)). -Axiom thm_INT_DIVIDES_LCM_GCD : forall m : Z, forall n : Z, forall d : Z, (int_divides d (int_lcm (@pair Z Z m n))) = (int_divides (int_mul d (int_gcd (@pair Z Z m n))) (int_mul m n)). -Axiom thm_INT_LCM_DIVIDES : forall m : Z, forall n : Z, forall d : Z, (int_divides (int_lcm (@pair Z Z m n)) d) = ((int_divides m d) /\ (int_divides n d)). -Axiom thm_INT_LCM : forall m : Z, forall n : Z, (int_divides m (int_lcm (@pair Z Z m n))) /\ ((int_divides n (int_lcm (@pair Z Z m n))) /\ (forall d : Z, ((int_divides m d) /\ (int_divides n d)) -> int_divides (int_lcm (@pair Z Z m n)) d)). -Axiom thm_num_of_int : forall x : Z, (num_of_int x) = (@ε nat (fun n : nat => (int_of_num n) = x)). -Axiom thm_NUM_OF_INT_OF_NUM : forall n : nat, (num_of_int (int_of_num n)) = n. -Axiom thm_INT_OF_NUM_OF_INT : forall x : Z, (int_le (int_of_num (NUMERAL 0)) x) -> (int_of_num (num_of_int x)) = x. -Axiom thm_NUM_OF_INT : forall x : Z, (int_le (int_of_num (NUMERAL 0)) x) = ((int_of_num (num_of_int x)) = x). -Axiom thm_NUM_OF_INT_ADD : forall x : Z, forall y : Z, ((int_le (int_of_num (NUMERAL 0)) x) /\ (int_le (int_of_num (NUMERAL 0)) y)) -> (num_of_int (int_add x y)) = (Nat.add (num_of_int x) (num_of_int y)). -Axiom thm_NUM_OF_INT_MUL : forall x : Z, forall y : Z, ((int_le (int_of_num (NUMERAL 0)) x) /\ (int_le (int_of_num (NUMERAL 0)) y)) -> (num_of_int (int_mul x y)) = (Nat.mul (num_of_int x) (num_of_int y)). -Axiom thm_NUM_OF_INT_POW : forall x : Z, forall n : nat, (int_le (int_of_num (NUMERAL 0)) x) -> (num_of_int (int_pow x n)) = (Nat.pow (num_of_int x) n). -Axiom thm_num_divides : forall a : nat, forall b : nat, (num_divides a b) = (int_divides (int_of_num a) (int_of_num b)). -Axiom thm_num_mod : forall n : nat, forall x : nat, forall y : nat, (num_mod n x y) = (int_mod (int_of_num n) (int_of_num x) (int_of_num y)). -Axiom thm_num_congruent : forall x : nat, forall y : nat, forall n : nat, (@eq2 nat x y (num_mod n)) = (@eq2 Z (int_of_num x) (int_of_num y) (int_mod (int_of_num n))). -Axiom thm_num_coprime : forall a : nat, forall b : nat, (num_coprime (@pair nat nat a b)) = (int_coprime (@pair Z Z (int_of_num a) (int_of_num b))). -Axiom thm_num_gcd : forall a : nat, forall b : nat, (num_gcd (@pair nat nat a b)) = (num_of_int (int_gcd (@pair Z Z (int_of_num a) (int_of_num b)))). -Axiom thm_num_lcm : forall a : nat, forall b : nat, (num_lcm (@pair nat nat a b)) = (num_of_int (int_lcm (@pair Z Z (int_of_num a) (int_of_num b)))). -Axiom thm_BINARY_INDUCT : forall P : nat -> Prop, ((P (NUMERAL 0)) /\ (forall n : nat, (P n) -> (P (Nat.mul (NUMERAL (BIT0 (BIT1 0))) n)) /\ (P (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) n) (NUMERAL (BIT1 0)))))) -> forall n : nat, P n. -Axiom thm_NUM_CASES_BINARY : forall P : nat -> Prop, (forall n : nat, P n) = ((forall n : nat, P (Nat.mul (NUMERAL (BIT0 (BIT1 0))) n)) /\ (forall n : nat, P (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) n) (NUMERAL (BIT1 0))))). -Axiom thm_num_WF_DOWN : forall P : nat -> Prop, forall m : nat, ((forall n : nat, (Peano.le m n) -> P n) /\ (forall n : nat, ((Peano.lt n m) /\ (forall p : nat, (Peano.lt n p) -> P p)) -> P n)) -> forall n : nat, P n. -Axiom thm_INT_REM_REM_POW_MIN : forall x : Z, forall p : Z, forall m : nat, forall n : nat, (rem (rem x (int_pow p m)) (int_pow p n)) = (rem x (int_pow p (Nat.min m n))). -Axiom thm_NUM_GCD : forall a : nat, forall b : nat, (int_of_num (num_gcd (@pair nat nat a b))) = (int_gcd (@pair Z Z (int_of_num a) (int_of_num b))). -Axiom thm_NUM_LCM : forall a : nat, forall b : nat, (int_of_num (num_lcm (@pair nat nat a b))) = (int_lcm (@pair Z Z (int_of_num a) (int_of_num b))). -Axiom thm_CONG : forall x : nat, forall y : nat, forall n : nat, (@eq2 nat x y (num_mod n)) = ((Nat.modulo x n) = (Nat.modulo y n)). -Axiom thm_CONG_LMOD : forall x : nat, forall y : nat, forall n : nat, (@eq2 nat (Nat.modulo x n) y (num_mod n)) = (@eq2 nat x y (num_mod n)). -Axiom thm_CONG_RMOD : forall x : nat, forall y : nat, forall n : nat, (@eq2 nat x (Nat.modulo y n) (num_mod n)) = (@eq2 nat x y (num_mod n)). -Axiom thm_CONG_DIV2 : forall a : nat, forall b : nat, forall m : nat, forall n : nat, (@eq2 nat a b (num_mod (Nat.mul m n))) -> @eq2 nat (Nat.div a m) (Nat.div b m) (num_mod n). -Axiom thm_divides : forall (b : nat) (a : nat), (num_divides a b) = (exists x : nat, b = (Nat.mul a x)). -Axiom thm_DIVIDES_LE : forall m : nat, forall n : nat, (num_divides m n) -> (Peano.le m n) \/ (n = (NUMERAL 0)). -Axiom thm_DIVIDES_LE_STRONG : forall m : nat, forall n : nat, (num_divides m n) -> ((Peano.le (NUMERAL (BIT1 0)) m) /\ (Peano.le m n)) \/ (n = (NUMERAL 0)). -Axiom thm_DIVIDES_LE_IMP : forall m : nat, forall n : nat, ((num_divides m n) /\ ((n = (NUMERAL 0)) -> m = (NUMERAL 0))) -> Peano.le m n. -Axiom thm_PROPERLY_DIVIDES_LE_IMP : forall m : nat, forall n : nat, ((num_divides m n) /\ ((~ (n = (NUMERAL 0))) /\ (~ (m = n)))) -> Peano.le (Nat.mul (NUMERAL (BIT0 (BIT1 0))) m) n. -Axiom thm_DIVIDES_ANTISYM : forall m : nat, forall n : nat, ((num_divides m n) /\ (num_divides n m)) = (m = n). -Axiom thm_DIVIDES_ONE : forall n : nat, (num_divides n (NUMERAL (BIT1 0))) = (n = (NUMERAL (BIT1 0))). -Axiom thm_DIV_ADD : forall d : nat, forall a : nat, forall b : nat, ((num_divides d a) \/ (num_divides d b)) -> (Nat.div (Nat.add a b) d) = (Nat.add (Nat.div a d) (Nat.div b d)). -Axiom thm_DIVIDES_MOD : forall m : nat, forall n : nat, (num_divides m n) = ((Nat.modulo n m) = (NUMERAL 0)). -Axiom thm_DIVIDES_DIV_MULT : forall m : nat, forall n : nat, (num_divides m n) = ((Nat.mul (Nat.div n m) m) = n). -Axiom thm_DIV_BY_DIV : forall m : nat, forall n : nat, ((~ (n = (NUMERAL 0))) /\ (num_divides m n)) -> (Nat.div n (Nat.div n m)) = m. -Axiom thm_DIVIDES_DIV_DIVIDES : forall n : nat, forall d : nat, forall e : nat, ((num_divides d n) /\ ((n = (NUMERAL 0)) -> e = (NUMERAL 0))) -> (num_divides (Nat.div n d) e) = (num_divides n (Nat.mul d e)). -Axiom thm_DIVIDES_DIV_SELF : forall n : nat, forall d : nat, (num_divides d n) -> num_divides (Nat.div n d) n. -Axiom thm_DIVIDES_DIVIDES_DIV : forall n : nat, forall d : nat, forall e : nat, (num_divides d n) -> (num_divides e (Nat.div n d)) = (num_divides (Nat.mul d e) n). -Axiom thm_DIVIDES_DIVIDES_DIV_EQ : forall n : nat, forall d : nat, forall e : nat, ((num_divides d n) /\ (num_divides e (Nat.div n d))) = (num_divides (Nat.mul d e) n). -Axiom thm_DIVIDES_DIVIDES_DIV_IMP : forall n : nat, forall d : nat, forall e : nat, (num_divides (Nat.mul d e) n) -> num_divides e (Nat.div n d). -Axiom thm_MULT_DIV : (forall m : nat, forall n : nat, forall p : nat, (num_divides p m) -> (Nat.div (Nat.mul m n) p) = (Nat.mul (Nat.div m p) n)) /\ (forall m : nat, forall n : nat, forall p : nat, (num_divides p n) -> (Nat.div (Nat.mul m n) p) = (Nat.mul m (Nat.div n p))). -Axiom thm_COPRIME_LMOD : forall a : nat, forall n : nat, (num_coprime (@pair nat nat (Nat.modulo a n) n)) = (num_coprime (@pair nat nat a n)). -Axiom thm_COPRIME_RMOD : forall a : nat, forall n : nat, (num_coprime (@pair nat nat n (Nat.modulo a n))) = (num_coprime (@pair nat nat n a)). -Axiom thm_INT_CONG_NUM_EXISTS : forall x : Z, forall y : Z, ((y = (int_of_num (NUMERAL 0))) -> int_le (int_of_num (NUMERAL 0)) x) -> exists n : nat, @eq2 Z (int_of_num n) x (int_mod y). -Axiom thm_GCD : forall a : nat, forall b : nat, ((num_divides (num_gcd (@pair nat nat a b)) a) /\ (num_divides (num_gcd (@pair nat nat a b)) b)) /\ (forall e : nat, ((num_divides e a) /\ (num_divides e b)) -> num_divides e (num_gcd (@pair nat nat a b))). -Axiom thm_coprime : forall (a : nat) (b : nat), (num_coprime (@pair nat nat a b)) = (forall d : nat, ((num_divides d a) /\ (num_divides d b)) -> d = (NUMERAL (BIT1 0))). -Axiom thm_prime : forall p : nat, (prime p) = ((~ (p = (NUMERAL (BIT1 0)))) /\ (forall x : nat, (num_divides x p) -> (x = (NUMERAL (BIT1 0))) \/ (x = p))). -Axiom thm_ONE_OR_PRIME : forall p : nat, ((p = (NUMERAL (BIT1 0))) \/ (prime p)) = (forall n : nat, (num_divides n p) -> (n = (NUMERAL (BIT1 0))) \/ (n = p)). -Axiom thm_ONE_OR_PRIME_DIVIDES_OR_COPRIME : forall p : nat, ((p = (NUMERAL (BIT1 0))) \/ (prime p)) = (forall n : nat, (num_divides p n) \/ (num_coprime (@pair nat nat p n))). -Axiom thm_PRIME_COPRIME_EQ_NONDIVISIBLE : forall p : nat, (prime p) = (forall n : nat, (num_coprime (@pair nat nat p n)) = (~ (num_divides p n))). -Axiom thm_ZERO_ONE_OR_PRIME_DIVPROD : forall p : nat, forall a : nat, forall b : nat, ((p = (NUMERAL 0)) \/ ((p = (NUMERAL (BIT1 0))) \/ (prime p))) -> (num_divides p (Nat.mul a b)) = ((num_divides p a) \/ (num_divides p b)). -Axiom thm_ZERO_ONE_OR_PRIME : forall p : nat, ((p = (NUMERAL 0)) \/ ((p = (NUMERAL (BIT1 0))) \/ (prime p))) = (forall a : nat, forall b : nat, (num_divides p (Nat.mul a b)) -> (num_divides p a) \/ (num_divides p b)). -Axiom thm_real_zpow : forall z : R, forall i : Z, (real_zpow z i) = (@COND R (int_le (int_of_num (NUMERAL 0)) i) (Rpower_nat z (num_of_int i)) (Rinv (Rpower_nat z (num_of_int (int_neg i))))). -Axiom thm_REAL_POW_ZPOW : forall x : R, forall n : nat, (Rpower_nat x n) = (real_zpow x (int_of_num n)). -Axiom thm_REAL_ZPOW_NUM : forall x : R, forall n : nat, (real_zpow x (int_of_num n)) = (Rpower_nat x n). -Axiom thm_REAL_ZPOW_0 : forall x : R, (real_zpow x (int_of_num (NUMERAL 0))) = (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_ZPOW_1 : forall x : R, (real_zpow x (int_of_num (NUMERAL (BIT1 0)))) = x. -Axiom thm_REAL_ZPOW_2 : forall x : R, (real_zpow x (int_of_num (NUMERAL (BIT0 (BIT1 0))))) = (Rmult x x). -Axiom thm_REAL_ZPOW_ONE : forall n : Z, (real_zpow (INR (NUMERAL (BIT1 0))) n) = (INR (NUMERAL (BIT1 0))). -Axiom thm_REAL_ZPOW_NEG : forall x : R, forall n : Z, (real_zpow x (int_neg n)) = (Rinv (real_zpow x n)). -Axiom thm_REAL_ZPOW_MINUS1 : forall x : R, (real_zpow x (int_neg (int_of_num (NUMERAL (BIT1 0))))) = (Rinv x). -Axiom thm_REAL_ZPOW_ZERO : forall n : Z, (real_zpow (INR (NUMERAL 0)) n) = (@COND R (n = (int_of_num (NUMERAL 0))) (INR (NUMERAL (BIT1 0))) (INR (NUMERAL 0))). -Axiom thm_REAL_ZPOW_POW : (forall x : R, forall n : nat, (real_zpow x (int_of_num n)) = (Rpower_nat x n)) /\ (forall x : R, forall n : nat, (real_zpow x (int_neg (int_of_num n))) = (Rinv (Rpower_nat x n))). -Axiom thm_REAL_INV_ZPOW : forall x : R, forall n : Z, (Rinv (real_zpow x n)) = (real_zpow (Rinv x) n). -Axiom thm_REAL_ZPOW_INV : forall x : R, forall n : Z, (real_zpow (Rinv x) n) = (Rinv (real_zpow x n)). -Axiom thm_REAL_ZPOW_ZPOW : forall x : R, forall m : Z, forall n : Z, (real_zpow (real_zpow x m) n) = (real_zpow x (int_mul m n)). -Axiom thm_REAL_ZPOW_MUL : forall x : R, forall y : R, forall n : Z, (real_zpow (Rmult x y) n) = (Rmult (real_zpow x n) (real_zpow y n)). -Axiom thm_REAL_ZPOW_DIV : forall x : R, forall y : R, forall n : Z, (real_zpow (Rdiv x y) n) = (Rdiv (real_zpow x n) (real_zpow y n)). -Axiom thm_REAL_ZPOW_ADD : forall x : R, forall m : Z, forall n : Z, (~ (x = (INR (NUMERAL 0)))) -> (real_zpow x (int_add m n)) = (Rmult (real_zpow x m) (real_zpow x n)). -Axiom thm_REAL_ZPOW_SUB : forall x : R, forall m : Z, forall n : Z, (~ (x = (INR (NUMERAL 0)))) -> (real_zpow x (int_sub m n)) = (Rdiv (real_zpow x m) (real_zpow x n)). -Axiom thm_REAL_ZPOW_LE : forall x : R, forall n : Z, (Rle (INR (NUMERAL 0)) x) -> Rle (INR (NUMERAL 0)) (real_zpow x n). -Axiom thm_REAL_ZPOW_LT : forall x : R, forall n : Z, (Rlt (INR (NUMERAL 0)) x) -> Rlt (INR (NUMERAL 0)) (real_zpow x n). -Axiom thm_REAL_ZPOW_EQ_0 : forall x : R, forall n : Z, ((real_zpow x n) = (INR (NUMERAL 0))) = ((x = (INR (NUMERAL 0))) /\ (~ (n = (int_of_num (NUMERAL 0))))). -Axiom thm_REAL_ABS_ZPOW : forall x : R, forall n : Z, (Rabs (real_zpow x n)) = (real_zpow (Rabs x) n). -Axiom thm_REAL_SGN_ZPOW : forall x : R, forall n : Z, (real_sgn (real_zpow x n)) = (real_zpow (real_sgn x) n). -Axiom thm_IN : forall {A : Type'}, forall P : A -> Prop, forall x : A, (@IN A x P) = (P x). -Axiom thm_EXTENSION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (s = t) = (forall x : A, (@IN A x s) = (@IN A x t)). -Axiom thm_GSPEC : forall {A : Type'}, forall p : A -> Prop, (@GSPEC A p) = p. -Axiom thm_SETSPEC : forall {A : Type'}, forall P : Prop, forall v : A, forall t : A, (@SETSPEC A v P t) = (P /\ (v = t)). -Axiom thm_IN_ELIM_THM : forall {A : Type'}, (forall P : (Prop -> A -> Prop) -> Prop, forall x : A, (@IN A x (@GSPEC A (fun v : A => P (@SETSPEC A v)))) = (P (fun p : Prop => fun t : A => p /\ (x = t)))) /\ ((forall p : A -> Prop, forall x : A, (@IN A x (@GSPEC A (fun v : A => exists y : A, @SETSPEC A v (p y) y))) = (p x)) /\ ((forall P : (Prop -> A -> Prop) -> Prop, forall x : A, (@GSPEC A (fun v : A => P (@SETSPEC A v)) x) = (P (fun p : Prop => fun t : A => p /\ (x = t)))) /\ ((forall p : A -> Prop, forall x : A, (@GSPEC A (fun v : A => exists y : A, @SETSPEC A v (p y) y) x) = (p x)) /\ (forall p : A -> Prop, forall x : A, (@IN A x (fun y : A => p y)) = (p x))))). -Axiom thm_EMPTY : forall {A : Type'}, (@EMPTY A) = (fun x : A => False). -Axiom thm_INSERT_DEF : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@INSERT A x s) = (fun y : A => (@IN A y s) \/ (y = x)). -Axiom thm_UNIV : forall {A : Type'}, (@UNIV A) = (fun x : A => True). -Axiom thm_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@UNION A s t) = (@GSPEC A (fun GEN_PVAR_0 : A => exists x : A, @SETSPEC A GEN_PVAR_0 ((@IN A x s) \/ (@IN A x t)) x)). -Axiom thm_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@UNIONS A s) = (@GSPEC A (fun GEN_PVAR_1 : A => exists x : A, @SETSPEC A GEN_PVAR_1 (exists u : A -> Prop, (@IN (A -> Prop) u s) /\ (@IN A x u)) x)). -Axiom thm_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@INTER A s t) = (@GSPEC A (fun GEN_PVAR_2 : A => exists x : A, @SETSPEC A GEN_PVAR_2 ((@IN A x s) /\ (@IN A x t)) x)). -Axiom thm_INTERS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@INTERS A s) = (@GSPEC A (fun GEN_PVAR_3 : A => exists x : A, @SETSPEC A GEN_PVAR_3 (forall u : A -> Prop, (@IN (A -> Prop) u s) -> @IN A x u) x)). -Axiom thm_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@DIFF A s t) = (@GSPEC A (fun GEN_PVAR_4 : A => exists x : A, @SETSPEC A GEN_PVAR_4 ((@IN A x s) /\ (~ (@IN A x t))) x)). -Axiom thm_INSERT : forall {A : Type'} (s : A -> Prop) (x : A), (@INSERT A x s) = (@GSPEC A (fun GEN_PVAR_5 : A => exists y : A, @SETSPEC A GEN_PVAR_5 ((@IN A y s) \/ (y = x)) y)). -Axiom thm_DELETE : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@DELETE A s x) = (@GSPEC A (fun GEN_PVAR_6 : A => exists y : A, @SETSPEC A GEN_PVAR_6 ((@IN A y s) /\ (~ (y = x))) y)). -Axiom thm_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) = (forall x : A, (@IN A x s) -> @IN A x t). -Axiom thm_PSUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@PSUBSET A s t) = ((@SUBSET A s t) /\ (~ (s = t))). -Axiom thm_DISJOINT : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@DISJOINT A s t) = ((@INTER A s t) = (@EMPTY A)). -Axiom thm_SING : forall {A : Type'}, forall s : A -> Prop, (@SING A s) = (exists x : A, s = (@INSERT A x (@EMPTY A))). -Axiom thm_FINITE_RULES : forall {A : Type'}, (@FINITE A (@EMPTY A)) /\ (forall x : A, forall s : A -> Prop, (@FINITE A s) -> @FINITE A (@INSERT A x s)). -Axiom thm_FINITE_CASES : forall {A : Type'}, forall a : A -> Prop, (@FINITE A a) = ((a = (@EMPTY A)) \/ (exists x : A, exists s : A -> Prop, (a = (@INSERT A x s)) /\ (@FINITE A s))). -Axiom thm_FINITE_INDUCT : forall {A : Type'}, forall FINITE' : (A -> Prop) -> Prop, ((FINITE' (@EMPTY A)) /\ (forall x : A, forall s : A -> Prop, (FINITE' s) -> FINITE' (@INSERT A x s))) -> forall a : A -> Prop, (@FINITE A a) -> FINITE' a. -Axiom thm_INFINITE : forall {A : Type'}, forall s : A -> Prop, (@INFINITE A s) = (~ (@FINITE A s)). -Axiom thm_IMAGE : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, (@IMAGE A B f s) = (@GSPEC B (fun GEN_PVAR_7 : B => exists y : B, @SETSPEC B GEN_PVAR_7 (exists x : A, (@IN A x s) /\ (y = (f x))) y)). -Axiom thm_INJ : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, forall f : A -> B, (@INJ A B f s t) = ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y)). -Axiom thm_SURJ : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, forall f : A -> B, (@SURJ A B f s t) = ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall x : B, (@IN B x t) -> exists y : A, (@IN A y s) /\ ((f y) = x))). -Axiom thm_BIJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, (@BIJ A B f s t) = ((@INJ A B f s t) /\ (@SURJ A B f s t)). -Axiom thm_CHOICE : forall {A : Type'}, forall s : A -> Prop, (@CHOICE A s) = (@ε A (fun x : A => @IN A x s)). -Axiom thm_REST : forall {A : Type'}, forall s : A -> Prop, (@REST A s) = (@DELETE A s (@CHOICE A s)). -Axiom thm_NOT_IN_EMPTY : forall {A : Type'}, forall x : A, ~ (@IN A x (@EMPTY A)). -Axiom thm_IN_UNIV : forall {A : Type'}, forall x : A, @IN A x (@UNIV A). -Axiom thm_IN_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@IN A x (@UNION A s t)) = ((@IN A x s) \/ (@IN A x t)). -Axiom thm_IN_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall x : A, (@IN A x (@UNIONS A s)) = (exists t : A -> Prop, (@IN (A -> Prop) t s) /\ (@IN A x t)). -Axiom thm_IN_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@IN A x (@INTER A s t)) = ((@IN A x s) /\ (@IN A x t)). -Axiom thm_IN_INTERS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall x : A, (@IN A x (@INTERS A s)) = (forall t : A -> Prop, (@IN (A -> Prop) t s) -> @IN A x t). -Axiom thm_IN_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@IN A x (@DIFF A s t)) = ((@IN A x s) /\ (~ (@IN A x t))). -Axiom thm_IN_INSERT : forall {A : Type'}, forall x : A, forall y : A, forall s : A -> Prop, (@IN A x (@INSERT A y s)) = ((x = y) \/ (@IN A x s)). -Axiom thm_IN_DELETE : forall {A : Type'}, forall s : A -> Prop, forall x : A, forall y : A, (@IN A x (@DELETE A s y)) = ((@IN A x s) /\ (~ (x = y))). -Axiom thm_IN_SING : forall {A : Type'}, forall x : A, forall y : A, (@IN A x (@INSERT A y (@EMPTY A))) = (x = y). -Axiom thm_IN_IMAGE : forall {A B : Type'}, forall y : B, forall s : A -> Prop, forall f : A -> B, (@IN B y (@IMAGE A B f s)) = (exists x : A, (y = (f x)) /\ (@IN A x s)). -Axiom thm_IN_REST : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@IN A x (@REST A s)) = ((@IN A x s) /\ (~ (x = (@CHOICE A s)))). -Axiom thm_FORALL_IN_INSERT : forall {A : Type'}, forall P : A -> Prop, forall a : A, forall s : A -> Prop, (forall x : A, (@IN A x (@INSERT A a s)) -> P x) = ((P a) /\ (forall x : A, (@IN A x s) -> P x)). -Axiom thm_EXISTS_IN_INSERT : forall {A : Type'}, forall P : A -> Prop, forall a : A, forall s : A -> Prop, (exists x : A, (@IN A x (@INSERT A a s)) /\ (P x)) = ((P a) \/ (exists x : A, (@IN A x s) /\ (P x))). -Axiom thm_FORALL_IN_UNION : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (forall x : A, (@IN A x (@UNION A s t)) -> P x) = ((forall x : A, (@IN A x s) -> P x) /\ (forall x : A, (@IN A x t) -> P x)). -Axiom thm_EXISTS_IN_UNION : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (exists x : A, (@IN A x (@UNION A s t)) /\ (P x)) = ((exists x : A, (@IN A x s) /\ (P x)) \/ (exists x : A, (@IN A x t) /\ (P x))). -Axiom thm_FORALL_IN_IMAGE : forall {A B : Type'} (P : B -> Prop), forall f : A -> B, forall s : A -> Prop, (forall y : B, (@IN B y (@IMAGE A B f s)) -> P y) = (forall x : A, (@IN A x s) -> P (f x)). -Axiom thm_EXISTS_IN_IMAGE : forall {A B : Type'} (P : B -> Prop), forall f : A -> B, forall s : A -> Prop, (exists y : B, (@IN B y (@IMAGE A B f s)) /\ (P y)) = (exists x : A, (@IN A x s) /\ (P (f x))). -Axiom thm_FORALL_IN_GSPEC : forall {A B C D E : Type'}, (forall P : A -> Prop, forall Q : B -> Prop, forall f : A -> B, (forall z : B, (@IN B z (@GSPEC B (fun GEN_PVAR_8 : B => exists x : A, @SETSPEC B GEN_PVAR_8 (P x) (f x)))) -> Q z) = (forall x : A, (P x) -> Q (f x))) /\ ((forall P : A -> B -> Prop, forall Q : C -> Prop, forall f : A -> B -> C, (forall z : C, (@IN C z (@GSPEC C (fun GEN_PVAR_9 : C => exists x : A, exists y : B, @SETSPEC C GEN_PVAR_9 (P x y) (f x y)))) -> Q z) = (forall x : A, forall y : B, (P x y) -> Q (f x y))) /\ ((forall P : A -> B -> C -> Prop, forall Q : D -> Prop, forall f : A -> B -> C -> D, (forall z : D, (@IN D z (@GSPEC D (fun GEN_PVAR_10 : D => exists w : A, exists x : B, exists y : C, @SETSPEC D GEN_PVAR_10 (P w x y) (f w x y)))) -> Q z) = (forall w : A, forall x : B, forall y : C, (P w x y) -> Q (f w x y))) /\ (forall P : A -> B -> C -> D -> Prop, forall Q : E -> Prop, forall f : A -> B -> C -> D -> E, (forall z : E, (@IN E z (@GSPEC E (fun GEN_PVAR_11 : E => exists v : A, exists w : B, exists x : C, exists y : D, @SETSPEC E GEN_PVAR_11 (P v w x y) (f v w x y)))) -> Q z) = (forall v : A, forall w : B, forall x : C, forall y : D, (P v w x y) -> Q (f v w x y))))). -Axiom thm_EXISTS_IN_GSPEC : forall {A B C D E : Type'}, (forall P : A -> Prop, forall Q : B -> Prop, forall f : A -> B, (exists z : B, (@IN B z (@GSPEC B (fun GEN_PVAR_12 : B => exists x : A, @SETSPEC B GEN_PVAR_12 (P x) (f x)))) /\ (Q z)) = (exists x : A, (P x) /\ (Q (f x)))) /\ ((forall P : A -> B -> Prop, forall Q : C -> Prop, forall f : A -> B -> C, (exists z : C, (@IN C z (@GSPEC C (fun GEN_PVAR_13 : C => exists x : A, exists y : B, @SETSPEC C GEN_PVAR_13 (P x y) (f x y)))) /\ (Q z)) = (exists x : A, exists y : B, (P x y) /\ (Q (f x y)))) /\ ((forall P : A -> B -> C -> Prop, forall Q : D -> Prop, forall f : A -> B -> C -> D, (exists z : D, (@IN D z (@GSPEC D (fun GEN_PVAR_14 : D => exists w : A, exists x : B, exists y : C, @SETSPEC D GEN_PVAR_14 (P w x y) (f w x y)))) /\ (Q z)) = (exists w : A, exists x : B, exists y : C, (P w x y) /\ (Q (f w x y)))) /\ (forall P : A -> B -> C -> D -> Prop, forall Q : E -> Prop, forall f : A -> B -> C -> D -> E, (exists z : E, (@IN E z (@GSPEC E (fun GEN_PVAR_15 : E => exists v : A, exists w : B, exists x : C, exists y : D, @SETSPEC E GEN_PVAR_15 (P v w x y) (f v w x y)))) /\ (Q z)) = (exists v : A, exists w : B, exists x : C, exists y : D, (P v w x y) /\ (Q (f v w x y)))))). -Axiom thm_UNIONS_IMAGE : forall {A B : Type'}, forall f : A -> B -> Prop, forall s : A -> Prop, (@UNIONS B (@IMAGE A (B -> Prop) f s)) = (@GSPEC B (fun GEN_PVAR_16 : B => exists y : B, @SETSPEC B GEN_PVAR_16 (exists x : A, (@IN A x s) /\ (@IN B y (f x))) y)). -Axiom thm_INTERS_IMAGE : forall {A B : Type'}, forall f : A -> B -> Prop, forall s : A -> Prop, (@INTERS B (@IMAGE A (B -> Prop) f s)) = (@GSPEC B (fun GEN_PVAR_17 : B => exists y : B, @SETSPEC B GEN_PVAR_17 (forall x : A, (@IN A x s) -> @IN B y (f x)) y)). -Axiom thm_UNIONS_GSPEC : forall {A B C D : Type'}, (forall P : A -> Prop, forall f : A -> B -> Prop, (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_18 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_18 (P x) (f x)))) = (@GSPEC B (fun GEN_PVAR_19 : B => exists a : B, @SETSPEC B GEN_PVAR_19 (exists x : A, (P x) /\ (@IN B a (f x))) a))) /\ ((forall P : A -> B -> Prop, forall f : A -> B -> C -> Prop, (@UNIONS C (@GSPEC (C -> Prop) (fun GEN_PVAR_20 : C -> Prop => exists x : A, exists y : B, @SETSPEC (C -> Prop) GEN_PVAR_20 (P x y) (f x y)))) = (@GSPEC C (fun GEN_PVAR_21 : C => exists a : C, @SETSPEC C GEN_PVAR_21 (exists x : A, exists y : B, (P x y) /\ (@IN C a (f x y))) a))) /\ (forall P : A -> B -> C -> Prop, forall f : A -> B -> C -> D -> Prop, (@UNIONS D (@GSPEC (D -> Prop) (fun GEN_PVAR_22 : D -> Prop => exists x : A, exists y : B, exists z : C, @SETSPEC (D -> Prop) GEN_PVAR_22 (P x y z) (f x y z)))) = (@GSPEC D (fun GEN_PVAR_23 : D => exists a : D, @SETSPEC D GEN_PVAR_23 (exists x : A, exists y : B, exists z : C, (P x y z) /\ (@IN D a (f x y z))) a)))). -Axiom thm_INTERS_GSPEC : forall {A B C D : Type'}, (forall P : A -> Prop, forall f : A -> B -> Prop, (@INTERS B (@GSPEC (B -> Prop) (fun GEN_PVAR_24 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_24 (P x) (f x)))) = (@GSPEC B (fun GEN_PVAR_25 : B => exists a : B, @SETSPEC B GEN_PVAR_25 (forall x : A, (P x) -> @IN B a (f x)) a))) /\ ((forall P : A -> B -> Prop, forall f : A -> B -> C -> Prop, (@INTERS C (@GSPEC (C -> Prop) (fun GEN_PVAR_26 : C -> Prop => exists x : A, exists y : B, @SETSPEC (C -> Prop) GEN_PVAR_26 (P x y) (f x y)))) = (@GSPEC C (fun GEN_PVAR_27 : C => exists a : C, @SETSPEC C GEN_PVAR_27 (forall x : A, forall y : B, (P x y) -> @IN C a (f x y)) a))) /\ (forall P : A -> B -> C -> Prop, forall f : A -> B -> C -> D -> Prop, (@INTERS D (@GSPEC (D -> Prop) (fun GEN_PVAR_28 : D -> Prop => exists x : A, exists y : B, exists z : C, @SETSPEC (D -> Prop) GEN_PVAR_28 (P x y z) (f x y z)))) = (@GSPEC D (fun GEN_PVAR_29 : D => exists a : D, @SETSPEC D GEN_PVAR_29 (forall x : A, forall y : B, forall z : C, (P x y z) -> @IN D a (f x y z)) a)))). -Axiom thm_CHOICE_DEF : forall {A : Type'}, forall s : A -> Prop, (~ (s = (@EMPTY A))) -> @IN A (@CHOICE A s) s. -Axiom thm_NOT_EQUAL_SETS : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (~ (s = t)) = (exists x : A, (@IN A x t) = (~ (@IN A x s))). -Axiom thm_INSERT_RESTRICT : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall a : A, (@GSPEC A (fun GEN_PVAR_30 : A => exists x : A, @SETSPEC A GEN_PVAR_30 ((@IN A x (@INSERT A a s)) /\ (P x)) x)) = (@COND (A -> Prop) (P a) (@INSERT A a (@GSPEC A (fun GEN_PVAR_31 : A => exists x : A, @SETSPEC A GEN_PVAR_31 ((@IN A x s) /\ (P x)) x))) (@GSPEC A (fun GEN_PVAR_32 : A => exists x : A, @SETSPEC A GEN_PVAR_32 ((@IN A x s) /\ (P x)) x))). -Axiom thm_UNIV_1 : (@UNIV unit) = (@INSERT unit tt (@EMPTY unit)). -Axiom thm_MEMBER_NOT_EMPTY : forall {A : Type'}, forall s : A -> Prop, (exists x : A, @IN A x s) = (~ (s = (@EMPTY A))). -Axiom thm_UNIV_NOT_EMPTY : forall {A : Type'}, ~ ((@UNIV A) = (@EMPTY A)). -Axiom thm_EMPTY_NOT_UNIV : forall {A : Type'}, ~ ((@EMPTY A) = (@UNIV A)). -Axiom thm_EQ_UNIV : forall {A : Type'} (s : A -> Prop), (forall x : A, @IN A x s) = (s = (@UNIV A)). -Axiom thm_SUBSET_TRANS : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@SUBSET A s t) /\ (@SUBSET A t u)) -> @SUBSET A s u. -Axiom thm_SUBSET_REFL : forall {A : Type'}, forall s : A -> Prop, @SUBSET A s s. -Axiom thm_SUBSET_ANTISYM : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (@SUBSET A t s)) -> s = t. -Axiom thm_SUBSET_ANTISYM_EQ : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (@SUBSET A t s)) = (s = t). -Axiom thm_EMPTY_SUBSET : forall {A : Type'}, forall s : A -> Prop, @SUBSET A (@EMPTY A) s. -Axiom thm_SUBSET_EMPTY : forall {A : Type'}, forall s : A -> Prop, (@SUBSET A s (@EMPTY A)) = (s = (@EMPTY A)). -Axiom thm_SUBSET_UNIV : forall {A : Type'}, forall s : A -> Prop, @SUBSET A s (@UNIV A). -Axiom thm_UNIV_SUBSET : forall {A : Type'}, forall s : A -> Prop, (@SUBSET A (@UNIV A) s) = (s = (@UNIV A)). -Axiom thm_SING_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@SUBSET A (@INSERT A x (@EMPTY A)) s) = (@IN A x s). -Axiom thm_SUBSET_RESTRICT : forall {A : Type'}, forall s : A -> Prop, forall P : A -> Prop, @SUBSET A (@GSPEC A (fun GEN_PVAR_33 : A => exists x : A, @SETSPEC A GEN_PVAR_33 ((@IN A x s) /\ (P x)) x)) s. -Axiom thm_PSUBSET_TRANS : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@PSUBSET A s t) /\ (@PSUBSET A t u)) -> @PSUBSET A s u. -Axiom thm_PSUBSET_SUBSET_TRANS : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@PSUBSET A s t) /\ (@SUBSET A t u)) -> @PSUBSET A s u. -Axiom thm_SUBSET_PSUBSET_TRANS : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@SUBSET A s t) /\ (@PSUBSET A t u)) -> @PSUBSET A s u. -Axiom thm_PSUBSET_IRREFL : forall {A : Type'}, forall s : A -> Prop, ~ (@PSUBSET A s s). -Axiom thm_NOT_PSUBSET_EMPTY : forall {A : Type'}, forall s : A -> Prop, ~ (@PSUBSET A s (@EMPTY A)). -Axiom thm_NOT_UNIV_PSUBSET : forall {A : Type'}, forall s : A -> Prop, ~ (@PSUBSET A (@UNIV A) s). -Axiom thm_PSUBSET_UNIV : forall {A : Type'}, forall s : A -> Prop, (@PSUBSET A s (@UNIV A)) = (exists x : A, ~ (@IN A x s)). -Axiom thm_PSUBSET_ALT : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@PSUBSET A s t) = ((@SUBSET A s t) /\ (exists a : A, (@IN A a t) /\ (~ (@IN A a s)))). -Axiom thm_UNION_ASSOC : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@UNION A (@UNION A s t) u) = (@UNION A s (@UNION A t u)). -Axiom thm_UNION_IDEMPOT : forall {A : Type'}, forall s : A -> Prop, (@UNION A s s) = s. -Axiom thm_UNION_COMM : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@UNION A s t) = (@UNION A t s). -Axiom thm_SUBSET_UNION : forall {A : Type'}, (forall s : A -> Prop, forall t : A -> Prop, @SUBSET A s (@UNION A s t)) /\ (forall s : A -> Prop, forall t : A -> Prop, @SUBSET A s (@UNION A t s)). -Axiom thm_SUBSET_UNION_ABSORPTION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) = ((@UNION A s t) = t). -Axiom thm_UNION_EMPTY : forall {A : Type'}, (forall s : A -> Prop, (@UNION A (@EMPTY A) s) = s) /\ (forall s : A -> Prop, (@UNION A s (@EMPTY A)) = s). -Axiom thm_UNION_UNIV : forall {A : Type'}, (forall s : A -> Prop, (@UNION A (@UNIV A) s) = (@UNIV A)) /\ (forall s : A -> Prop, (@UNION A s (@UNIV A)) = (@UNIV A)). -Axiom thm_EMPTY_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@UNION A s t) = (@EMPTY A)) = ((s = (@EMPTY A)) /\ (t = (@EMPTY A))). -Axiom thm_UNION_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@SUBSET A (@UNION A s t) u) = ((@SUBSET A s u) /\ (@SUBSET A t u)). -Axiom thm_UNION_RESTRICT : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@GSPEC A (fun GEN_PVAR_34 : A => exists x : A, @SETSPEC A GEN_PVAR_34 ((@IN A x (@UNION A s t)) /\ (P x)) x)) = (@UNION A (@GSPEC A (fun GEN_PVAR_35 : A => exists x : A, @SETSPEC A GEN_PVAR_35 ((@IN A x s) /\ (P x)) x)) (@GSPEC A (fun GEN_PVAR_36 : A => exists x : A, @SETSPEC A GEN_PVAR_36 ((@IN A x t) /\ (P x)) x))). -Axiom thm_FORALL_SUBSET_UNION : forall {A : Type'} (P : (A -> Prop) -> Prop), forall t : A -> Prop, forall u : A -> Prop, (forall s : A -> Prop, (@SUBSET A s (@UNION A t u)) -> P s) = (forall t' : A -> Prop, forall u' : A -> Prop, ((@SUBSET A t' t) /\ (@SUBSET A u' u)) -> P (@UNION A t' u')). -Axiom thm_EXISTS_SUBSET_UNION : forall {A : Type'} (P : (A -> Prop) -> Prop), forall t : A -> Prop, forall u : A -> Prop, (exists s : A -> Prop, (@SUBSET A s (@UNION A t u)) /\ (P s)) = (exists t' : A -> Prop, exists u' : A -> Prop, (@SUBSET A t' t) /\ ((@SUBSET A u' u) /\ (P (@UNION A t' u')))). -Axiom thm_FORALL_SUBSET_INSERT : forall {A : Type'} (P : (A -> Prop) -> Prop), forall a : A, forall t : A -> Prop, (forall s : A -> Prop, (@SUBSET A s (@INSERT A a t)) -> P s) = (forall s : A -> Prop, (@SUBSET A s t) -> (P s) /\ (P (@INSERT A a s))). -Axiom thm_EXISTS_SUBSET_INSERT : forall {A : Type'} (P : (A -> Prop) -> Prop), forall a : A, forall t : A -> Prop, (exists s : A -> Prop, (@SUBSET A s (@INSERT A a t)) /\ (P s)) = (exists s : A -> Prop, (@SUBSET A s t) /\ ((P s) \/ (P (@INSERT A a s)))). -Axiom thm_INTER_ASSOC : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@INTER A (@INTER A s t) u) = (@INTER A s (@INTER A t u)). -Axiom thm_INTER_IDEMPOT : forall {A : Type'}, forall s : A -> Prop, (@INTER A s s) = s. -Axiom thm_INTER_COMM : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@INTER A s t) = (@INTER A t s). -Axiom thm_INTER_SUBSET : forall {A : Type'}, (forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@INTER A s t) s) /\ (forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@INTER A t s) s). -Axiom thm_SUBSET_INTER_ABSORPTION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) = ((@INTER A s t) = s). -Axiom thm_INTER_EMPTY : forall {A : Type'}, (forall s : A -> Prop, (@INTER A (@EMPTY A) s) = (@EMPTY A)) /\ (forall s : A -> Prop, (@INTER A s (@EMPTY A)) = (@EMPTY A)). -Axiom thm_INTER_UNIV : forall {A : Type'}, (forall s : A -> Prop, (@INTER A (@UNIV A) s) = s) /\ (forall s : A -> Prop, (@INTER A s (@UNIV A)) = s). -Axiom thm_SUBSET_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@SUBSET A s (@INTER A t u)) = ((@SUBSET A s t) /\ (@SUBSET A s u)). -Axiom thm_INTER_RESTRICT : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@GSPEC A (fun GEN_PVAR_37 : A => exists x : A, @SETSPEC A GEN_PVAR_37 ((@IN A x (@INTER A s t)) /\ (P x)) x)) = (@INTER A (@GSPEC A (fun GEN_PVAR_38 : A => exists x : A, @SETSPEC A GEN_PVAR_38 ((@IN A x s) /\ (P x)) x)) (@GSPEC A (fun GEN_PVAR_39 : A => exists x : A, @SETSPEC A GEN_PVAR_39 ((@IN A x t) /\ (P x)) x))). -Axiom thm_UNION_OVER_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@INTER A s (@UNION A t u)) = (@UNION A (@INTER A s t) (@INTER A s u)). -Axiom thm_INTER_OVER_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@UNION A s (@INTER A t u)) = (@INTER A (@UNION A s t) (@UNION A s u)). -Axiom thm_IN_DISJOINT : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@DISJOINT A s t) = (~ (exists x : A, (@IN A x s) /\ (@IN A x t))). -Axiom thm_DISJOINT_SYM : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@DISJOINT A s t) = (@DISJOINT A t s). -Axiom thm_DISJOINT_EMPTY : forall {A : Type'}, forall s : A -> Prop, (@DISJOINT A (@EMPTY A) s) /\ (@DISJOINT A s (@EMPTY A)). -Axiom thm_DISJOINT_EMPTY_REFL : forall {A : Type'}, forall s : A -> Prop, (s = (@EMPTY A)) = (@DISJOINT A s s). -Axiom thm_DISJOINT_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@DISJOINT A (@UNION A s t) u) = ((@DISJOINT A s u) /\ (@DISJOINT A t u)). -Axiom thm_DISJOINT_SING : forall {A : Type'}, (forall s : A -> Prop, forall a : A, (@DISJOINT A s (@INSERT A a (@EMPTY A))) = (~ (@IN A a s))) /\ (forall s : A -> Prop, forall a : A, (@DISJOINT A (@INSERT A a (@EMPTY A)) s) = (~ (@IN A a s))). -Axiom thm_DIFF_EMPTY : forall {A : Type'}, forall s : A -> Prop, (@DIFF A s (@EMPTY A)) = s. -Axiom thm_EMPTY_DIFF : forall {A : Type'}, forall s : A -> Prop, (@DIFF A (@EMPTY A) s) = (@EMPTY A). -Axiom thm_DIFF_UNIV : forall {A : Type'}, forall s : A -> Prop, (@DIFF A s (@UNIV A)) = (@EMPTY A). -Axiom thm_DIFF_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@DIFF A (@DIFF A s t) t) = (@DIFF A s t). -Axiom thm_DIFF_EQ_EMPTY : forall {A : Type'}, forall s : A -> Prop, (@DIFF A s s) = (@EMPTY A). -Axiom thm_SUBSET_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@DIFF A s t) s. -Axiom thm_COMPL_COMPL : forall {A : Type'}, forall s : A -> Prop, (@DIFF A (@UNIV A) (@DIFF A (@UNIV A) s)) = s. -Axiom thm_DIFF_RESTRICT : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@GSPEC A (fun GEN_PVAR_40 : A => exists x : A, @SETSPEC A GEN_PVAR_40 ((@IN A x (@DIFF A s t)) /\ (P x)) x)) = (@DIFF A (@GSPEC A (fun GEN_PVAR_41 : A => exists x : A, @SETSPEC A GEN_PVAR_41 ((@IN A x s) /\ (P x)) x)) (@GSPEC A (fun GEN_PVAR_42 : A => exists x : A, @SETSPEC A GEN_PVAR_42 ((@IN A x t) /\ (P x)) x))). -Axiom thm_COMPONENT : forall {A : Type'}, forall x : A, forall s : A -> Prop, @IN A x (@INSERT A x s). -Axiom thm_DECOMPOSITION : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@IN A x s) = (exists t : A -> Prop, (s = (@INSERT A x t)) /\ (~ (@IN A x t))). -Axiom thm_SET_CASES : forall {A : Type'}, forall s : A -> Prop, (s = (@EMPTY A)) \/ (exists x : A, exists t : A -> Prop, (s = (@INSERT A x t)) /\ (~ (@IN A x t))). -Axiom thm_ABSORPTION : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@IN A x s) = ((@INSERT A x s) = s). -Axiom thm_INSERT_INSERT : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@INSERT A x (@INSERT A x s)) = (@INSERT A x s). -Axiom thm_INSERT_COMM : forall {A : Type'}, forall x : A, forall y : A, forall s : A -> Prop, (@INSERT A x (@INSERT A y s)) = (@INSERT A y (@INSERT A x s)). -Axiom thm_INSERT_UNIV : forall {A : Type'}, forall x : A, (@INSERT A x (@UNIV A)) = (@UNIV A). -Axiom thm_NOT_INSERT_EMPTY : forall {A : Type'}, forall x : A, forall s : A -> Prop, ~ ((@INSERT A x s) = (@EMPTY A)). -Axiom thm_NOT_EMPTY_INSERT : forall {A : Type'}, forall x : A, forall s : A -> Prop, ~ ((@EMPTY A) = (@INSERT A x s)). -Axiom thm_INSERT_UNION : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@UNION A (@INSERT A x s) t) = (@COND (A -> Prop) (@IN A x t) (@UNION A s t) (@INSERT A x (@UNION A s t))). -Axiom thm_INSERT_UNION_EQ : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@UNION A (@INSERT A x s) t) = (@INSERT A x (@UNION A s t)). -Axiom thm_INSERT_INTER : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@INTER A (@INSERT A x s) t) = (@COND (A -> Prop) (@IN A x t) (@INSERT A x (@INTER A s t)) (@INTER A s t)). -Axiom thm_DISJOINT_INSERT : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@DISJOINT A (@INSERT A x s) t) = ((@DISJOINT A s t) /\ (~ (@IN A x t))). -Axiom thm_INSERT_SUBSET : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A (@INSERT A x s) t) = ((@IN A x t) /\ (@SUBSET A s t)). -Axiom thm_SUBSET_INSERT : forall {A : Type'}, forall x : A, forall s : A -> Prop, (~ (@IN A x s)) -> forall t : A -> Prop, (@SUBSET A s (@INSERT A x t)) = (@SUBSET A s t). -Axiom thm_INSERT_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@DIFF A (@INSERT A x s) t) = (@COND (A -> Prop) (@IN A x t) (@DIFF A s t) (@INSERT A x (@DIFF A s t))). -Axiom thm_INSERT_AC : forall {A : Type'} (y : A) (x : A) (s : A -> Prop), ((@INSERT A x (@INSERT A y s)) = (@INSERT A y (@INSERT A x s))) /\ ((@INSERT A x (@INSERT A x s)) = (@INSERT A x s)). -Axiom thm_INTER_ACI : forall {A : Type'} (r : A -> Prop) (p : A -> Prop) (q : A -> Prop), ((@INTER A p q) = (@INTER A q p)) /\ (((@INTER A (@INTER A p q) r) = (@INTER A p (@INTER A q r))) /\ (((@INTER A p (@INTER A q r)) = (@INTER A q (@INTER A p r))) /\ (((@INTER A p p) = p) /\ ((@INTER A p (@INTER A p q)) = (@INTER A p q))))). -Axiom thm_UNION_ACI : forall {A : Type'} (r : A -> Prop) (p : A -> Prop) (q : A -> Prop), ((@UNION A p q) = (@UNION A q p)) /\ (((@UNION A (@UNION A p q) r) = (@UNION A p (@UNION A q r))) /\ (((@UNION A p (@UNION A q r)) = (@UNION A q (@UNION A p r))) /\ (((@UNION A p p) = p) /\ ((@UNION A p (@UNION A p q)) = (@UNION A p q))))). -Axiom thm_DELETE_NON_ELEMENT : forall {A : Type'}, forall x : A, forall s : A -> Prop, (~ (@IN A x s)) = ((@DELETE A s x) = s). -Axiom thm_IN_DELETE_EQ : forall {A : Type'}, forall s : A -> Prop, forall x : A, forall x' : A, ((@IN A x s) = (@IN A x' s)) = ((@IN A x (@DELETE A s x')) = (@IN A x' (@DELETE A s x))). -Axiom thm_EMPTY_DELETE : forall {A : Type'}, forall x : A, (@DELETE A (@EMPTY A) x) = (@EMPTY A). -Axiom thm_DELETE_DELETE : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@DELETE A (@DELETE A s x) x) = (@DELETE A s x). -Axiom thm_DELETE_COMM : forall {A : Type'}, forall x : A, forall y : A, forall s : A -> Prop, (@DELETE A (@DELETE A s x) y) = (@DELETE A (@DELETE A s y) x). -Axiom thm_DELETE_SUBSET : forall {A : Type'}, forall x : A, forall s : A -> Prop, @SUBSET A (@DELETE A s x) s. -Axiom thm_SUBSET_DELETE : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s (@DELETE A t x)) = ((~ (@IN A x s)) /\ (@SUBSET A s t)). -Axiom thm_SUBSET_INSERT_DELETE : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s (@INSERT A x t)) = (@SUBSET A (@DELETE A s x) t). -Axiom thm_DIFF_INSERT : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@DIFF A s (@INSERT A x t)) = (@DIFF A (@DELETE A s x) t). -Axiom thm_PSUBSET_INSERT_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@PSUBSET A s t) = (exists x : A, (~ (@IN A x s)) /\ (@SUBSET A (@INSERT A x s) t)). -Axiom thm_DELETE_INSERT : forall {A : Type'}, forall x : A, forall y : A, forall s : A -> Prop, (@DELETE A (@INSERT A x s) y) = (@COND (A -> Prop) (x = y) (@DELETE A s y) (@INSERT A x (@DELETE A s y))). -Axiom thm_INSERT_DELETE : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@IN A x s) -> (@INSERT A x (@DELETE A s x)) = s. -Axiom thm_DELETE_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@INTER A (@DELETE A s x) t) = (@DELETE A (@INTER A s t) x). -Axiom thm_DISJOINT_DELETE_SYM : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@DISJOINT A (@DELETE A s x) t) = (@DISJOINT A (@DELETE A t x) s). -Axiom thm_UNIONS_0 : forall {A : Type'}, (@UNIONS A (@EMPTY (A -> Prop))) = (@EMPTY A). -Axiom thm_UNIONS_1 : forall {A : Type'}, forall s : A -> Prop, (@UNIONS A (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) = s. -Axiom thm_UNIONS_2 : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@UNIONS A (@INSERT (A -> Prop) s (@INSERT (A -> Prop) t (@EMPTY (A -> Prop))))) = (@UNION A s t). -Axiom thm_UNIONS_INSERT : forall {A : Type'}, forall s : A -> Prop, forall u : (A -> Prop) -> Prop, (@UNIONS A (@INSERT (A -> Prop) s u)) = (@UNION A s (@UNIONS A u)). -Axiom thm_FORALL_IN_UNIONS : forall {A : Type'}, forall P : A -> Prop, forall s : (A -> Prop) -> Prop, (forall x : A, (@IN A x (@UNIONS A s)) -> P x) = (forall t : A -> Prop, forall x : A, ((@IN (A -> Prop) t s) /\ (@IN A x t)) -> P x). -Axiom thm_EXISTS_IN_UNIONS : forall {A : Type'}, forall P : A -> Prop, forall s : (A -> Prop) -> Prop, (exists x : A, (@IN A x (@UNIONS A s)) /\ (P x)) = (exists t : A -> Prop, exists x : A, (@IN (A -> Prop) t s) /\ ((@IN A x t) /\ (P x))). -Axiom thm_EMPTY_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, ((@UNIONS A s) = (@EMPTY A)) = (forall t : A -> Prop, (@IN (A -> Prop) t s) -> t = (@EMPTY A)). -Axiom thm_INTER_UNIONS : forall {A : Type'}, (forall s : (A -> Prop) -> Prop, forall t : A -> Prop, (@INTER A (@UNIONS A s) t) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_43 : A -> Prop => exists x : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_43 (@IN (A -> Prop) x s) (@INTER A x t))))) /\ (forall s : (A -> Prop) -> Prop, forall t : A -> Prop, (@INTER A t (@UNIONS A s)) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_44 : A -> Prop => exists x : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_44 (@IN (A -> Prop) x s) (@INTER A t x))))). -Axiom thm_UNIONS_SUBSET : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall t : A -> Prop, (@SUBSET A (@UNIONS A f) t) = (forall s : A -> Prop, (@IN (A -> Prop) s f) -> @SUBSET A s t). -Axiom thm_SUBSET_UNIONS : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall g : (A -> Prop) -> Prop, (@SUBSET (A -> Prop) f g) -> @SUBSET A (@UNIONS A f) (@UNIONS A g). -Axiom thm_UNIONS_UNION : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : (A -> Prop) -> Prop, (@UNIONS A (@UNION (A -> Prop) s t)) = (@UNION A (@UNIONS A s) (@UNIONS A t)). -Axiom thm_INTERS_UNION : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : (A -> Prop) -> Prop, (@INTERS A (@UNION (A -> Prop) s t)) = (@INTER A (@INTERS A s) (@INTERS A t)). -Axiom thm_UNIONS_MONO : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : (A -> Prop) -> Prop, (forall x : A -> Prop, (@IN (A -> Prop) x s) -> exists y : A -> Prop, (@IN (A -> Prop) y t) /\ (@SUBSET A x y)) -> @SUBSET A (@UNIONS A s) (@UNIONS A t). -Axiom thm_UNIONS_MONO_IMAGE : forall {A B : Type'}, forall f : A -> B -> Prop, forall g : A -> B -> Prop, forall s : A -> Prop, (forall x : A, (@IN A x s) -> @SUBSET B (f x) (g x)) -> @SUBSET B (@UNIONS B (@IMAGE A (B -> Prop) f s)) (@UNIONS B (@IMAGE A (B -> Prop) g s)). -Axiom thm_UNIONS_UNIV : forall {A : Type'}, (@UNIONS A (@UNIV (A -> Prop))) = (@UNIV A). -Axiom thm_UNIONS_INSERT_EMPTY : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@UNIONS A (@INSERT (A -> Prop) (@EMPTY A) s)) = (@UNIONS A s). -Axiom thm_UNIONS_DELETE_EMPTY : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@UNIONS A (@DELETE (A -> Prop) s (@EMPTY A))) = (@UNIONS A s). -Axiom thm_INTERS_0 : forall {A : Type'}, (@INTERS A (@EMPTY (A -> Prop))) = (@UNIV A). -Axiom thm_INTERS_1 : forall {A : Type'}, forall s : A -> Prop, (@INTERS A (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) = s. -Axiom thm_INTERS_2 : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@INTERS A (@INSERT (A -> Prop) s (@INSERT (A -> Prop) t (@EMPTY (A -> Prop))))) = (@INTER A s t). -Axiom thm_INTERS_INSERT : forall {A : Type'}, forall s : A -> Prop, forall u : (A -> Prop) -> Prop, (@INTERS A (@INSERT (A -> Prop) s u)) = (@INTER A s (@INTERS A u)). -Axiom thm_SUBSET_INTERS : forall {A : Type'}, forall s : A -> Prop, forall f : (A -> Prop) -> Prop, (@SUBSET A s (@INTERS A f)) = (forall t : A -> Prop, (@IN (A -> Prop) t f) -> @SUBSET A s t). -Axiom thm_INTERS_SUBSET : forall {A : Type'}, forall u : (A -> Prop) -> Prop, forall s : A -> Prop, ((~ (u = (@EMPTY (A -> Prop)))) /\ (forall t : A -> Prop, (@IN (A -> Prop) t u) -> @SUBSET A t s)) -> @SUBSET A (@INTERS A u) s. -Axiom thm_INTERS_SUBSET_STRONG : forall {A : Type'}, forall u : (A -> Prop) -> Prop, forall s : A -> Prop, (exists t : A -> Prop, (@IN (A -> Prop) t u) /\ (@SUBSET A t s)) -> @SUBSET A (@INTERS A u) s. -Axiom thm_INTERS_ANTIMONO : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall g : (A -> Prop) -> Prop, (@SUBSET (A -> Prop) g f) -> @SUBSET A (@INTERS A f) (@INTERS A g). -Axiom thm_INTERS_EQ_UNIV : forall {A : Type'}, forall f : (A -> Prop) -> Prop, ((@INTERS A f) = (@UNIV A)) = (forall s : A -> Prop, (@IN (A -> Prop) s f) -> s = (@UNIV A)). -Axiom thm_INTERS_ANTIMONO_GEN : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : (A -> Prop) -> Prop, (forall y : A -> Prop, (@IN (A -> Prop) y t) -> exists x : A -> Prop, (@IN (A -> Prop) x s) /\ (@SUBSET A x y)) -> @SUBSET A (@INTERS A s) (@INTERS A t). -Axiom thm_IMAGE_CLAUSES : forall {A B : Type'} (x : A) (f : A -> B) (s : A -> Prop), ((@IMAGE A B f (@EMPTY A)) = (@EMPTY B)) /\ ((@IMAGE A B f (@INSERT A x s)) = (@INSERT B (f x) (@IMAGE A B f s))). -Axiom thm_IMAGE_UNION : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, (@IMAGE A B f (@UNION A s t)) = (@UNION B (@IMAGE A B f s) (@IMAGE A B f t)). -Axiom thm_IMAGE_ID : forall {A : Type'}, forall s : A -> Prop, (@IMAGE A A (fun x : A => x) s) = s. -Axiom thm_IMAGE_I : forall {A : Type'}, forall s : A -> Prop, (@IMAGE A A (@I A) s) = s. -Axiom thm_IMAGE_o : forall {A B C : Type'}, forall f : B -> C, forall g : A -> B, forall s : A -> Prop, (@IMAGE A C (@o A B C f g) s) = (@IMAGE B C f (@IMAGE A B g s)). -Axiom thm_IMAGE_SUBSET : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> @SUBSET B (@IMAGE A B f s) (@IMAGE A B f t). -Axiom thm_IMAGE_INTER_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, (forall x : A, forall y : A, ((f x) = (f y)) -> x = y) -> (@IMAGE A B f (@INTER A s t)) = (@INTER B (@IMAGE A B f s) (@IMAGE A B f t)). -Axiom thm_IMAGE_DIFF_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y t) /\ ((f x) = (f y)))) -> x = y) -> (@IMAGE A B f (@DIFF A s t)) = (@DIFF B (@IMAGE A B f s) (@IMAGE A B f t)). -Axiom thm_IMAGE_DIFF_INJ_ALT : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@SUBSET A t s)) -> (@IMAGE A B f (@DIFF A s t)) = (@DIFF B (@IMAGE A B f s) (@IMAGE A B f t)). -Axiom thm_IMAGE_DELETE_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall a : A, (forall x : A, ((@IN A x s) /\ ((f x) = (f a))) -> x = a) -> (@IMAGE A B f (@DELETE A s a)) = (@DELETE B (@IMAGE A B f s) (f a)). -Axiom thm_IMAGE_DELETE_INJ_ALT : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall a : A, ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@IN A a s)) -> (@IMAGE A B f (@DELETE A s a)) = (@DELETE B (@IMAGE A B f s) (f a)). -Axiom thm_IMAGE_EQ_EMPTY : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, ((@IMAGE A B f s) = (@EMPTY B)) = (s = (@EMPTY A)). -Axiom thm_FORALL_IN_IMAGE_2 : forall {A B : Type'}, forall f : A -> B, forall P : B -> B -> Prop, forall s : A -> Prop, (forall x : B, forall y : B, ((@IN B x (@IMAGE A B f s)) /\ (@IN B y (@IMAGE A B f s))) -> P x y) = (forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> P (f x) (f y)). -Axiom thm_IMAGE_CONST : forall {A B : Type'}, forall s : A -> Prop, forall c : B, (@IMAGE A B (fun x : A => c) s) = (@COND (B -> Prop) (s = (@EMPTY A)) (@EMPTY B) (@INSERT B c (@EMPTY B))). -Axiom thm_SIMPLE_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@GSPEC B (fun GEN_PVAR_45 : B => exists x : A, @SETSPEC B GEN_PVAR_45 (@IN A x s) (f x))) = (@IMAGE A B f s). -Axiom thm_SIMPLE_IMAGE_GEN : forall {A B : Type'}, forall f : A -> B, forall P : A -> Prop, (@GSPEC B (fun GEN_PVAR_46 : B => exists x : A, @SETSPEC B GEN_PVAR_46 (P x) (f x))) = (@IMAGE A B f (@GSPEC A (fun GEN_PVAR_47 : A => exists x : A, @SETSPEC A GEN_PVAR_47 (P x) x))). -Axiom thm_IMAGE_UNIONS : forall {A B : Type'}, forall f : A -> B, forall s : (A -> Prop) -> Prop, (@IMAGE A B f (@UNIONS A s)) = (@UNIONS B (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) s)). -Axiom thm_FUN_IN_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall x : A, (@IN A x s) -> @IN B (f x) (@IMAGE A B f s). -Axiom thm_SURJECTIVE_IMAGE_EQ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((forall y : B, (@IN B y t) -> exists x : A, (f x) = y) /\ (forall x : A, (@IN B (f x) t) = (@IN A x s))) -> (@IMAGE A B f s) = t. -Axiom thm_IMAGE_EQ : forall {A B : Type'}, forall f : A -> B, forall g : A -> B, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (g x)) -> (@IMAGE A B f s) = (@IMAGE A B g s). -Axiom thm_EMPTY_GSPEC : forall {A : Type'}, (@GSPEC A (fun GEN_PVAR_48 : A => exists x : A, @SETSPEC A GEN_PVAR_48 False x)) = (@EMPTY A). -Axiom thm_UNIV_GSPEC : forall {A : Type'}, (@GSPEC A (fun GEN_PVAR_49 : A => exists x : A, @SETSPEC A GEN_PVAR_49 True x)) = (@UNIV A). -Axiom thm_SING_GSPEC : forall {A : Type'}, (forall a : A, (@GSPEC A (fun GEN_PVAR_50 : A => exists x : A, @SETSPEC A GEN_PVAR_50 (x = a) x)) = (@INSERT A a (@EMPTY A))) /\ (forall a : A, (@GSPEC A (fun GEN_PVAR_51 : A => exists x : A, @SETSPEC A GEN_PVAR_51 (a = x) x)) = (@INSERT A a (@EMPTY A))). -Axiom thm_SING_ALT : forall {A : Type'}, forall s : A -> Prop, (exists x : A, s = (@INSERT A x (@EMPTY A))) = (@ex1 A (fun x : A => @IN A x s)). -Axiom thm_IN_GSPEC : forall {A : Type'}, forall s : A -> Prop, (@GSPEC A (fun GEN_PVAR_52 : A => exists x : A, @SETSPEC A GEN_PVAR_52 (@IN A x s) x)) = s. -Axiom thm_IN_ELIM_PAIR_THM : forall {A B : Type'}, forall P : A -> B -> Prop, forall a : A, forall b : B, (@IN (prod A B) (@pair A B a b) (@GSPEC (prod A B) (fun GEN_PVAR_53 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_53 (P x y) (@pair A B x y)))) = (P a b). -Axiom thm_IN_ELIM_TRIPLE_THM : forall {A B C : Type'}, (forall P : A -> B -> C -> Prop, forall a : A, forall b : B, forall c : C, (@IN (prod A (prod B C)) (@pair A (prod B C) a (@pair B C b c)) (@GSPEC (prod A (prod B C)) (fun GEN_PVAR_54 : prod A (prod B C) => exists x : A, exists y : B, exists z : C, @SETSPEC (prod A (prod B C)) GEN_PVAR_54 (P x y z) (@pair A (prod B C) x (@pair B C y z))))) = (P a b c)) /\ (forall P : A -> B -> C -> Prop, forall a : A, forall b : B, forall c : C, (@IN (prod (prod A B) C) (@pair (prod A B) C (@pair A B a b) c) (@GSPEC (prod (prod A B) C) (fun GEN_PVAR_55 : prod (prod A B) C => exists x : A, exists y : B, exists z : C, @SETSPEC (prod (prod A B) C) GEN_PVAR_55 (P x y z) (@pair (prod A B) C (@pair A B x y) z)))) = (P a b c)). -Axiom thm_IN_ELIM_QUAD_THM : forall {A B C D : Type'}, (forall P : A -> B -> C -> D -> Prop, forall a : A, forall b : B, forall c : C, forall d : D, (@IN (prod A (prod B (prod C D))) (@pair A (prod B (prod C D)) a (@pair B (prod C D) b (@pair C D c d))) (@GSPEC (prod A (prod B (prod C D))) (fun GEN_PVAR_56 : prod A (prod B (prod C D)) => exists w : A, exists x : B, exists y : C, exists z : D, @SETSPEC (prod A (prod B (prod C D))) GEN_PVAR_56 (P w x y z) (@pair A (prod B (prod C D)) w (@pair B (prod C D) x (@pair C D y z)))))) = (P a b c d)) /\ ((forall P : A -> B -> C -> D -> Prop, forall a : A, forall b : B, forall c : C, forall d : D, (@IN (prod (prod A B) (prod C D)) (@pair (prod A B) (prod C D) (@pair A B a b) (@pair C D c d)) (@GSPEC (prod (prod A B) (prod C D)) (fun GEN_PVAR_57 : prod (prod A B) (prod C D) => exists w : A, exists x : B, exists y : C, exists z : D, @SETSPEC (prod (prod A B) (prod C D)) GEN_PVAR_57 (P w x y z) (@pair (prod A B) (prod C D) (@pair A B w x) (@pair C D y z))))) = (P a b c d)) /\ (forall P : A -> B -> C -> D -> Prop, forall a : A, forall b : B, forall c : C, forall d : D, (@IN (prod (prod (prod A B) C) D) (@pair (prod (prod A B) C) D (@pair (prod A B) C (@pair A B a b) c) d) (@GSPEC (prod (prod (prod A B) C) D) (fun GEN_PVAR_58 : prod (prod (prod A B) C) D => exists w : A, exists x : B, exists y : C, exists z : D, @SETSPEC (prod (prod (prod A B) C) D) GEN_PVAR_58 (P w x y z) (@pair (prod (prod A B) C) D (@pair (prod A B) C (@pair A B w x) y) z)))) = (P a b c d))). -Axiom thm_SET_PAIR_THM : forall {A B : Type'}, forall P : (prod A B) -> Prop, (@GSPEC (prod A B) (fun GEN_PVAR_59 : prod A B => exists p : prod A B, @SETSPEC (prod A B) GEN_PVAR_59 (P p) p)) = (@GSPEC (prod A B) (fun GEN_PVAR_60 : prod A B => exists a : A, exists b : B, @SETSPEC (prod A B) GEN_PVAR_60 (P (@pair A B a b)) (@pair A B a b))). -Axiom thm_SET_PROVE_CASES : forall {A : Type'}, forall P : (A -> Prop) -> Prop, ((P (@EMPTY A)) /\ (forall a : A, forall s : A -> Prop, (~ (@IN A a s)) -> P (@INSERT A a s))) -> forall s : A -> Prop, P s. -Axiom thm_UNIONS_SINGS_GEN : forall {A : Type'}, forall P : A -> Prop, (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_61 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_61 (P x) (@INSERT A x (@EMPTY A))))) = (@GSPEC A (fun GEN_PVAR_62 : A => exists x : A, @SETSPEC A GEN_PVAR_62 (P x) x)). -Axiom thm_UNIONS_SINGS : forall {A : Type'}, forall s : A -> Prop, (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_63 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_63 (@IN A x s) (@INSERT A x (@EMPTY A))))) = s. -Axiom thm_IMAGE_INTERS : forall {A B : Type'}, forall f : A -> B, forall s : (A -> Prop) -> Prop, ((~ (s = (@EMPTY (A -> Prop)))) /\ (forall x : A, forall y : A, ((@IN A x (@UNIONS A s)) /\ ((@IN A y (@UNIONS A s)) /\ ((f x) = (f y)))) -> x = y)) -> (@IMAGE A B f (@INTERS A s)) = (@INTERS B (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) s)). -Axiom thm_DIFF_INTERS : forall {A : Type'}, forall u : A -> Prop, forall s : (A -> Prop) -> Prop, (@DIFF A u (@INTERS A s)) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_64 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_64 (@IN (A -> Prop) t s) (@DIFF A u t)))). -Axiom thm_INTERS_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@INTERS A s) = (@DIFF A (@UNIV A) (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_65 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_65 (@IN (A -> Prop) t s) (@DIFF A (@UNIV A) t))))). -Axiom thm_UNIONS_INTERS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@UNIONS A s) = (@DIFF A (@UNIV A) (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_66 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_66 (@IN (A -> Prop) t s) (@DIFF A (@UNIV A) t))))). -Axiom thm_UNIONS_DIFF : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : A -> Prop, (@DIFF A (@UNIONS A s) t) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_67 : A -> Prop => exists x : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_67 (@IN (A -> Prop) x s) (@DIFF A x t)))). -Axiom thm_DIFF_UNIONS : forall {A : Type'}, forall u : A -> Prop, forall s : (A -> Prop) -> Prop, (@DIFF A u (@UNIONS A s)) = (@INTER A u (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_68 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_68 (@IN (A -> Prop) t s) (@DIFF A u t))))). -Axiom thm_DIFF_UNIONS_NONEMPTY : forall {A : Type'}, forall u : A -> Prop, forall s : (A -> Prop) -> Prop, (~ (s = (@EMPTY (A -> Prop)))) -> (@DIFF A u (@UNIONS A s)) = (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_69 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_69 (@IN (A -> Prop) t s) (@DIFF A u t)))). -Axiom thm_INTERS_OVER_UNIONS : forall {A B : Type'}, forall f : A -> (B -> Prop) -> Prop, forall s : A -> Prop, (@INTERS B (@GSPEC (B -> Prop) (fun GEN_PVAR_70 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_70 (@IN A x s) (@UNIONS B (f x))))) = (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_74 : B -> Prop => exists g : A -> B -> Prop, @SETSPEC (B -> Prop) GEN_PVAR_74 (forall x : A, (@IN A x s) -> @IN (B -> Prop) (g x) (f x)) (@INTERS B (@GSPEC (B -> Prop) (fun GEN_PVAR_73 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_73 (@IN A x s) (g x))))))). -Axiom thm_INTER_INTERS : forall {A : Type'}, (forall f : (A -> Prop) -> Prop, forall s : A -> Prop, (@INTER A s (@INTERS A f)) = (@COND (A -> Prop) (f = (@EMPTY (A -> Prop))) s (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_75 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_75 (@IN (A -> Prop) t f) (@INTER A s t)))))) /\ (forall f : (A -> Prop) -> Prop, forall s : A -> Prop, (@INTER A (@INTERS A f) s) = (@COND (A -> Prop) (f = (@EMPTY (A -> Prop))) s (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_76 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_76 (@IN (A -> Prop) t f) (@INTER A t s)))))). -Axiom thm_UNIONS_OVER_INTERS : forall {A B : Type'}, forall f : A -> (B -> Prop) -> Prop, forall s : A -> Prop, (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_77 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_77 (@IN A x s) (@INTERS B (f x))))) = (@INTERS B (@GSPEC (B -> Prop) (fun GEN_PVAR_81 : B -> Prop => exists g : A -> B -> Prop, @SETSPEC (B -> Prop) GEN_PVAR_81 (forall x : A, (@IN A x s) -> @IN (B -> Prop) (g x) (f x)) (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_80 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_80 (@IN A x s) (g x))))))). -Axiom thm_UNIONS_EQ_INTERS : forall {A : Type'}, forall f : (A -> Prop) -> Prop, ((@UNIONS A f) = (@INTERS A f)) = (exists s : A -> Prop, f = (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))). -Axiom thm_EXISTS_UNIQUE_UNIONS_INTERS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@ex1 (A -> Prop) (fun s : A -> Prop => P s)) = ((@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_82 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_82 (P s) s))) = (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_83 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_83 (P s) s)))). -Axiom thm_IMAGE_INTERS_SUBSET : forall {A B : Type'}, forall f : A -> B, forall g : (A -> Prop) -> Prop, @SUBSET B (@IMAGE A B f (@INTERS A g)) (@INTERS B (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) g)). -Axiom thm_IMAGE_INTER_SUBSET : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, @SUBSET B (@IMAGE A B f (@INTER A s t)) (@INTER B (@IMAGE A B f s) (@IMAGE A B f t)). -Axiom thm_IMAGE_INTER_SATURATED_GEN : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (((@SUBSET A (@GSPEC A (fun GEN_PVAR_84 : A => exists x : A, @SETSPEC A GEN_PVAR_84 ((@IN A x u) /\ (@IN B (f x) (@IMAGE A B f s))) x)) s) /\ (@SUBSET A t u)) \/ ((@SUBSET A (@GSPEC A (fun GEN_PVAR_85 : A => exists x : A, @SETSPEC A GEN_PVAR_85 ((@IN A x u) /\ (@IN B (f x) (@IMAGE A B f t))) x)) t) /\ (@SUBSET A s u))) -> (@IMAGE A B f (@INTER A s t)) = (@INTER B (@IMAGE A B f s) (@IMAGE A B f t)). -Axiom thm_IMAGE_INTERS_SATURATED_GEN : forall {A B : Type'}, forall f : A -> B, forall g : (A -> Prop) -> Prop, forall s : A -> Prop, forall u : A -> Prop, ((~ (g = (@EMPTY (A -> Prop)))) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t g) -> @SUBSET A t u) /\ (forall t : A -> Prop, (@IN (A -> Prop) t (@DELETE (A -> Prop) g s)) -> @SUBSET A (@GSPEC A (fun GEN_PVAR_87 : A => exists x : A, @SETSPEC A GEN_PVAR_87 ((@IN A x u) /\ (@IN B (f x) (@IMAGE A B f t))) x)) t))) -> (@IMAGE A B f (@INTERS A g)) = (@INTERS B (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) g)). -Axiom thm_IMAGE_INTER_SATURATED : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A (@GSPEC A (fun GEN_PVAR_88 : A => exists x : A, @SETSPEC A GEN_PVAR_88 (@IN B (f x) (@IMAGE A B f s)) x)) s) \/ (@SUBSET A (@GSPEC A (fun GEN_PVAR_89 : A => exists x : A, @SETSPEC A GEN_PVAR_89 (@IN B (f x) (@IMAGE A B f t)) x)) t)) -> (@IMAGE A B f (@INTER A s t)) = (@INTER B (@IMAGE A B f s) (@IMAGE A B f t)). -Axiom thm_IMAGE_INTERS_SATURATED : forall {A B : Type'}, forall f : A -> B, forall g : (A -> Prop) -> Prop, forall s : A -> Prop, ((~ (g = (@EMPTY (A -> Prop)))) /\ (forall t : A -> Prop, (@IN (A -> Prop) t (@DELETE (A -> Prop) g s)) -> @SUBSET A (@GSPEC A (fun GEN_PVAR_90 : A => exists x : A, @SETSPEC A GEN_PVAR_90 (@IN B (f x) (@IMAGE A B f t)) x)) t)) -> (@IMAGE A B f (@INTERS A g)) = (@INTERS B (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) g)). -Axiom thm_FINITE_INDUCT_STRONG : forall {A : Type'}, forall P : (A -> Prop) -> Prop, ((P (@EMPTY A)) /\ (forall x : A, forall s : A -> Prop, ((P s) /\ ((~ (@IN A x s)) /\ (@FINITE A s))) -> P (@INSERT A x s))) -> forall s : A -> Prop, (@FINITE A s) -> P s. -Axiom thm_INJECTIVE_ON_ALT : forall {A B : Type'}, forall P : A -> Prop, forall f : A -> B, (forall x : A, forall y : A, ((P x) /\ ((P y) /\ ((f x) = (f y)))) -> x = y) = (forall x : A, forall y : A, ((P x) /\ (P y)) -> ((f x) = (f y)) = (x = y)). -Axiom thm_INJECTIVE_ALT : forall {A B : Type'}, forall f : A -> B, (forall x : A, forall y : A, ((f x) = (f y)) -> x = y) = (forall x : A, forall y : A, ((f x) = (f y)) = (x = y)). -Axiom thm_SURJECTIVE_ON_RIGHT_INVERSE : forall {A B : Type'} (s : A -> Prop), forall f : A -> B, forall t : B -> Prop, (forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ ((f x) = y)) = (exists g : B -> A, forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)). -Axiom thm_INJECTIVE_ON_LEFT_INVERSE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) = (exists g : B -> A, forall x : A, (@IN A x s) -> (g (f x)) = x). -Axiom thm_BIJECTIVE_ON_LEFT_RIGHT_INVERSE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, (forall x : A, (@IN A x s) -> @IN B (f x) t) -> ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ ((f x) = y))) = (exists g : B -> A, (forall y : B, (@IN B y t) -> @IN A (g y) s) /\ ((forall y : B, (@IN B y t) -> (f (g y)) = y) /\ (forall x : A, (@IN A x s) -> (g (f x)) = x))). -Axiom thm_SURJECTIVE_RIGHT_INVERSE : forall {A B : Type'}, forall f : A -> B, (forall y : B, exists x : A, (f x) = y) = (exists g : B -> A, forall y : B, (f (g y)) = y). -Axiom thm_INJECTIVE_LEFT_INVERSE : forall {A B : Type'}, forall f : A -> B, (forall x : A, forall y : A, ((f x) = (f y)) -> x = y) = (exists g : B -> A, forall x : A, (g (f x)) = x). -Axiom thm_BIJECTIVE_LEFT_RIGHT_INVERSE : forall {A B : Type'}, forall f : A -> B, ((forall x : A, forall y : A, ((f x) = (f y)) -> x = y) /\ (forall y : B, exists x : A, (f x) = y)) = (exists g : B -> A, (forall y : B, (f (g y)) = y) /\ (forall x : A, (g (f x)) = x)). -Axiom thm_FUNCTION_FACTORS_LEFT_GEN : forall {A B C : Type'}, forall P : A -> Prop, forall f : A -> B, forall g : A -> C, (forall x : A, forall y : A, ((P x) /\ ((P y) /\ ((g x) = (g y)))) -> (f x) = (f y)) = (exists h : C -> B, forall x : A, (P x) -> (f x) = (h (g x))). -Axiom thm_FUNCTION_FACTORS_LEFT : forall {A B C : Type'}, forall f : A -> B, forall g : A -> C, (forall x : A, forall y : A, ((g x) = (g y)) -> (f x) = (f y)) = (exists h : C -> B, f = (@o A C B h g)). -Axiom thm_FUNCTION_FACTORS_RIGHT_GEN : forall {A B C : Type'}, forall P : A -> Prop, forall f : A -> C, forall g : B -> C, (forall x : A, (P x) -> exists y : B, (g y) = (f x)) = (exists h : A -> B, forall x : A, (P x) -> (f x) = (g (h x))). -Axiom thm_FUNCTION_FACTORS_RIGHT : forall {A B C : Type'}, forall f : A -> C, forall g : B -> C, (forall x : A, exists y : B, (g y) = (f x)) = (exists h : A -> B, f = (@o A B C g h)). -Axiom thm_SURJECTIVE_FORALL_THM : forall {A B : Type'}, forall f : A -> B, (forall y : B, exists x : A, (f x) = y) = (forall P : B -> Prop, (forall x : A, P (f x)) = (forall y : B, P y)). -Axiom thm_SURJECTIVE_EXISTS_THM : forall {A B : Type'}, forall f : A -> B, (forall y : B, exists x : A, (f x) = y) = (forall P : B -> Prop, (exists x : A, P (f x)) = (exists y : B, P y)). -Axiom thm_SURJECTIVE_IMAGE_THM : forall {A B : Type'}, forall f : A -> B, (forall y : B, exists x : A, (f x) = y) = (forall P : B -> Prop, (@IMAGE A B f (@GSPEC A (fun GEN_PVAR_91 : A => exists x : A, @SETSPEC A GEN_PVAR_91 (P (f x)) x))) = (@GSPEC B (fun GEN_PVAR_92 : B => exists x : B, @SETSPEC B GEN_PVAR_92 (P x) x))). -Axiom thm_IMAGE_INJECTIVE_IMAGE_OF_SUBSET : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, exists t : A -> Prop, (@SUBSET A t s) /\ (((@IMAGE A B f s) = (@IMAGE A B f t)) /\ (forall x : A, forall y : A, ((@IN A x t) /\ ((@IN A y t) /\ ((f x) = (f y)))) -> x = y)). -Axiom thm_FINITE_EMPTY : forall {A : Type'}, @FINITE A (@EMPTY A). -Axiom thm_FINITE_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (@SUBSET A s t)) -> @FINITE A s. -Axiom thm_FINITE_RESTRICT : forall {A : Type'}, forall s : A -> Prop, forall P : A -> Prop, (@FINITE A s) -> @FINITE A (@GSPEC A (fun GEN_PVAR_93 : A => exists x : A, @SETSPEC A GEN_PVAR_93 ((@IN A x s) /\ (P x)) x)). -Axiom thm_FINITE_UNION_IMP : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@FINITE A t)) -> @FINITE A (@UNION A s t). -Axiom thm_FINITE_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@FINITE A (@UNION A s t)) = ((@FINITE A s) /\ (@FINITE A t)). -Axiom thm_FINITE_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) \/ (@FINITE A t)) -> @FINITE A (@INTER A s t). -Axiom thm_FINITE_INSERT : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@FINITE A (@INSERT A x s)) = (@FINITE A s). -Axiom thm_FINITE_SING : forall {A : Type'}, forall a : A, @FINITE A (@INSERT A a (@EMPTY A)). -Axiom thm_FINITE_DELETE_IMP : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@FINITE A s) -> @FINITE A (@DELETE A s x). -Axiom thm_FINITE_DELETE : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@FINITE A (@DELETE A s x)) = (@FINITE A s). -Axiom thm_FINITE_FINITE_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@FINITE (A -> Prop) s) -> (@FINITE A (@UNIONS A s)) = (forall t : A -> Prop, (@IN (A -> Prop) t s) -> @FINITE A t). -Axiom thm_FINITE_IMAGE_EXPAND : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@FINITE A s) -> @FINITE B (@GSPEC B (fun GEN_PVAR_96 : B => exists y : B, @SETSPEC B GEN_PVAR_96 (exists x : A, (@IN A x s) /\ (y = (f x))) y)). -Axiom thm_FINITE_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@FINITE A s) -> @FINITE B (@IMAGE A B f s). -Axiom thm_FINITE_IMAGE_INJ_GENERAL : forall {A B : Type'}, forall f : A -> B, forall A' : B -> Prop, forall s : A -> Prop, ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@FINITE B A')) -> @FINITE A (@GSPEC A (fun GEN_PVAR_97 : A => exists x : A, @SETSPEC A GEN_PVAR_97 ((@IN A x s) /\ (@IN B (f x) A')) x)). -Axiom thm_FINITE_FINITE_PREIMAGE_GENERAL : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE B t) /\ (forall y : B, (@IN B y t) -> @FINITE A (@GSPEC A (fun GEN_PVAR_100 : A => exists x : A, @SETSPEC A GEN_PVAR_100 ((@IN A x s) /\ ((f x) = y)) x)))) -> @FINITE A (@GSPEC A (fun GEN_PVAR_101 : A => exists x : A, @SETSPEC A GEN_PVAR_101 ((@IN A x s) /\ (@IN B (f x) t)) x)). -Axiom thm_FINITE_FINITE_PREIMAGE : forall {A B : Type'}, forall f : A -> B, forall t : B -> Prop, ((@FINITE B t) /\ (forall y : B, (@IN B y t) -> @FINITE A (@GSPEC A (fun GEN_PVAR_102 : A => exists x : A, @SETSPEC A GEN_PVAR_102 ((f x) = y) x)))) -> @FINITE A (@GSPEC A (fun GEN_PVAR_103 : A => exists x : A, @SETSPEC A GEN_PVAR_103 (@IN B (f x) t) x)). -Axiom thm_FINITE_IMAGE_INJ_EQ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) -> (@FINITE B (@IMAGE A B f s)) = (@FINITE A s). -Axiom thm_FINITE_IMAGE_INJ : forall {A B : Type'}, forall f : A -> B, forall A' : B -> Prop, ((forall x : A, forall y : A, ((f x) = (f y)) -> x = y) /\ (@FINITE B A')) -> @FINITE A (@GSPEC A (fun GEN_PVAR_104 : A => exists x : A, @SETSPEC A GEN_PVAR_104 (@IN B (f x) A') x)). -Axiom thm_FINITE_IMAGE_GEN : forall {A B C : Type'}, forall f : A -> B, forall g : A -> C, forall s : A -> Prop, forall t : B -> Prop, ((@SUBSET B (@IMAGE A B f s) t) /\ ((@FINITE B t) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> (g x) = (g y)))) -> @FINITE C (@IMAGE A C g s). -Axiom thm_INFINITE_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, ((@INFINITE A s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y)) -> @INFINITE B (@IMAGE A B f s). -Axiom thm_INFINITE_IMAGE_INJ : forall {A B : Type'}, forall f : A -> B, (forall x : A, forall y : A, ((f x) = (f y)) -> x = y) -> forall s : A -> Prop, (@INFINITE A s) -> @INFINITE B (@IMAGE A B f s). -Axiom thm_INFINITE_NONEMPTY : forall {A : Type'}, forall s : A -> Prop, (@INFINITE A s) -> ~ (s = (@EMPTY A)). -Axiom thm_INFINITE_DIFF_FINITE : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@INFINITE A s) /\ (@FINITE A t)) -> @INFINITE A (@DIFF A s t). -Axiom thm_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall f : A -> B, forall s : B -> Prop, forall t : A -> Prop, (@SUBSET B s (@IMAGE A B f t)) = (exists u : A -> Prop, (@SUBSET A u t) /\ ((forall x : A, forall y : A, ((@IN A x u) /\ (@IN A y u)) -> ((f x) = (f y)) = (x = y)) /\ (s = (@IMAGE A B f u)))). -Axiom thm_SUBSET_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : B -> Prop, forall t : A -> Prop, (@SUBSET B s (@IMAGE A B f t)) = (exists u : A -> Prop, (@SUBSET A u t) /\ (s = (@IMAGE A B f u))). -Axiom thm_EXISTS_SUBSET_IMAGE : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (exists t : B -> Prop, (@SUBSET B t (@IMAGE A B f s)) /\ (P t)) = (exists t : A -> Prop, (@SUBSET A t s) /\ (P (@IMAGE A B f t))). -Axiom thm_FORALL_SUBSET_IMAGE : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (forall t : B -> Prop, (@SUBSET B t (@IMAGE A B f s)) -> P t) = (forall t : A -> Prop, (@SUBSET A t s) -> P (@IMAGE A B f t)). -Axiom thm_EXISTS_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (exists t : B -> Prop, (@SUBSET B t (@IMAGE A B f s)) /\ (P t)) = (exists t : A -> Prop, (@SUBSET A t s) /\ ((forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y)) /\ (P (@IMAGE A B f t)))). -Axiom thm_FORALL_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (forall t : B -> Prop, (@SUBSET B t (@IMAGE A B f s)) -> P t) = (forall t : A -> Prop, ((@SUBSET A t s) /\ (forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y))) -> P (@IMAGE A B f t)). -Axiom thm_EXISTS_FINITE_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (exists t : B -> Prop, (@FINITE B t) /\ ((@SUBSET B t (@IMAGE A B f s)) /\ (P t))) = (exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ ((forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y)) /\ (P (@IMAGE A B f t))))). -Axiom thm_FORALL_FINITE_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (forall t : B -> Prop, ((@FINITE B t) /\ (@SUBSET B t (@IMAGE A B f s))) -> P t) = (forall t : A -> Prop, ((@FINITE A t) /\ ((@SUBSET A t s) /\ (forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y)))) -> P (@IMAGE A B f t)). -Axiom thm_EXISTS_FINITE_SUBSET_IMAGE : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (exists t : B -> Prop, (@FINITE B t) /\ ((@SUBSET B t (@IMAGE A B f s)) /\ (P t))) = (exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ (P (@IMAGE A B f t)))). -Axiom thm_FORALL_FINITE_SUBSET_IMAGE : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (forall t : B -> Prop, ((@FINITE B t) /\ (@SUBSET B t (@IMAGE A B f s))) -> P t) = (forall t : A -> Prop, ((@FINITE A t) /\ (@SUBSET A t s)) -> P (@IMAGE A B f t)). -Axiom thm_FINITE_SUBSET_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE B t) /\ (@SUBSET B t (@IMAGE A B f s))) = (exists s' : A -> Prop, (@FINITE A s') /\ ((@SUBSET A s' s) /\ (t = (@IMAGE A B f s')))). -Axiom thm_FINITE_SUBSET_IMAGE_IMP : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE B t) /\ (@SUBSET B t (@IMAGE A B f s))) -> exists s' : A -> Prop, (@FINITE A s') /\ ((@SUBSET A s' s) /\ (@SUBSET B t (@IMAGE A B f s'))). -Axiom thm_FINITE_IMAGE_EQ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@FINITE B (@IMAGE A B f s)) = (exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ ((@IMAGE A B f s) = (@IMAGE A B f t)))). -Axiom thm_FINITE_IMAGE_EQ_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@FINITE B (@IMAGE A B f s)) = (exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ (((@IMAGE A B f s) = (@IMAGE A B f t)) /\ (forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y))))). -Axiom thm_FINITE_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@FINITE A s) -> @FINITE A (@DIFF A s t). -Axiom thm_INFINITE_SUPERSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@INFINITE A s) /\ (@SUBSET A s t)) -> @INFINITE A t. -Axiom thm_FINITE_TRANSITIVITY_CHAIN : forall {A : Type'}, forall R' : A -> A -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, ~ (R' x x)) /\ ((forall x : A, forall y : A, forall z : A, ((R' x y) /\ (R' y z)) -> R' x z) /\ (forall x : A, (@IN A x s) -> exists y : A, (@IN A y s) /\ (R' x y))))) -> s = (@EMPTY A). -Axiom thm_UNIONS_MAXIMAL_SETS : forall {A : Type'}, forall f : (A -> Prop) -> Prop, (@FINITE (A -> Prop) f) -> (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_106 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_106 ((@IN (A -> Prop) t f) /\ (forall u : A -> Prop, (@IN (A -> Prop) u f) -> ~ (@PSUBSET A t u))) t))) = (@UNIONS A f). -Axiom thm_FINITE_SUBSET_UNIONS : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ (@SUBSET A s (@UNIONS A f))) -> exists f' : (A -> Prop) -> Prop, (@FINITE (A -> Prop) f') /\ ((@SUBSET (A -> Prop) f' f) /\ (@SUBSET A s (@UNIONS A f'))). -Axiom thm_UNIONS_IN_CHAIN : forall {A : Type'}, forall f : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) f) /\ ((~ (f = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s f) /\ (@IN (A -> Prop) t f)) -> (@SUBSET A s t) \/ (@SUBSET A t s)))) -> @IN (A -> Prop) (@UNIONS A f) f. -Axiom thm_INTERS_IN_CHAIN : forall {A : Type'}, forall f : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) f) /\ ((~ (f = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s f) /\ (@IN (A -> Prop) t f)) -> (@SUBSET A s t) \/ (@SUBSET A t s)))) -> @IN (A -> Prop) (@INTERS A f) f. -Axiom thm_FINITE_SUBSET_UNIONS_DIRECTED_EQ : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall s : A -> Prop, ((~ (f = (@EMPTY (A -> Prop)))) /\ ((forall t : A -> Prop, forall u : A -> Prop, ((@IN (A -> Prop) t f) /\ (@IN (A -> Prop) u f)) -> exists v : A -> Prop, (@IN (A -> Prop) v f) /\ ((@SUBSET A t v) /\ (@SUBSET A u v))) /\ (@FINITE A s))) -> (@SUBSET A s (@UNIONS A f)) = (exists t : A -> Prop, (@IN (A -> Prop) t f) /\ (@SUBSET A s t)). -Axiom thm_FINITE_SUBSET_UNIONS_CHAIN : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((@SUBSET A s (@UNIONS A f)) /\ ((~ (f = (@EMPTY (A -> Prop)))) /\ (forall t : A -> Prop, forall u : A -> Prop, ((@IN (A -> Prop) t f) /\ (@IN (A -> Prop) u f)) -> (@SUBSET A t u) \/ (@SUBSET A u t))))) -> exists t : A -> Prop, (@IN (A -> Prop) t f) /\ (@SUBSET A s t). -Axiom thm_FINREC : forall {A B : Type'} (b : B) (s : A -> Prop) (n : nat) (a : B) (f : A -> B -> B), ((@FINREC A B f b s a (NUMERAL 0)) = ((s = (@EMPTY A)) /\ (a = b))) /\ ((@FINREC A B f b s a (S n)) = (exists x : A, exists c : B, (@IN A x s) /\ ((@FINREC A B f b (@DELETE A s x) c n) /\ (a = (f x c))))). -Axiom thm_FINREC_1_LEMMA : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, forall s : A -> Prop, forall a : B, (@FINREC A B f b s a (S (NUMERAL 0))) = (exists x : A, (s = (@INSERT A x (@EMPTY A))) /\ (a = (f x b))). -Axiom thm_FINREC_SUC_LEMMA : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, (forall x : A, forall y : A, forall s : B, (~ (x = y)) -> (f x (f y s)) = (f y (f x s))) -> forall n : nat, forall s : A -> Prop, forall z : B, (@FINREC A B f b s z (S n)) -> forall x : A, (@IN A x s) -> exists w : B, (@FINREC A B f b (@DELETE A s x) w n) /\ (z = (f x w)). -Axiom thm_FINREC_UNIQUE_LEMMA : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, (forall x : A, forall y : A, forall s : B, (~ (x = y)) -> (f x (f y s)) = (f y (f x s))) -> forall n1 : nat, forall n2 : nat, forall s : A -> Prop, forall a1 : B, forall a2 : B, ((@FINREC A B f b s a1 n1) /\ (@FINREC A B f b s a2 n2)) -> (a1 = a2) /\ (n1 = n2). -Axiom thm_FINREC_EXISTS_LEMMA : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, forall s : A -> Prop, (@FINITE A s) -> exists a : B, exists n : nat, @FINREC A B f b s a n. -Axiom thm_FINREC_FUN_LEMMA : forall {A B C : Type'}, forall P : A -> Prop, forall R' : A -> B -> C -> Prop, ((forall s : A, (P s) -> exists a : B, exists n : C, R' s a n) /\ (forall n1 : C, forall n2 : C, forall s : A, forall a1 : B, forall a2 : B, ((R' s a1 n1) /\ (R' s a2 n2)) -> (a1 = a2) /\ (n1 = n2))) -> exists f : A -> B, forall s : A, forall a : B, (P s) -> (exists n : C, R' s a n) = ((f s) = a). -Axiom thm_FINREC_FUN : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, (forall x : A, forall y : A, forall s : B, (~ (x = y)) -> (f x (f y s)) = (f y (f x s))) -> exists g : (A -> Prop) -> B, ((g (@EMPTY A)) = b) /\ (forall s : A -> Prop, forall x : A, ((@FINITE A s) /\ (@IN A x s)) -> (g s) = (f x (g (@DELETE A s x)))). -Axiom thm_SET_RECURSION_LEMMA : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, (forall x : A, forall y : A, forall s : B, (~ (x = y)) -> (f x (f y s)) = (f y (f x s))) -> exists g : (A -> Prop) -> B, ((g (@EMPTY A)) = b) /\ (forall x : A, forall s : A -> Prop, (@FINITE A s) -> (g (@INSERT A x s)) = (@COND B (@IN A x s) (g s) (f x (g s)))). -Axiom thm_ITSET : forall {A B : Type'}, forall b : B, forall f : A -> B -> B, forall s : A -> Prop, (@ITSET A B f s b) = (@ε ((A -> Prop) -> B) (fun g : (A -> Prop) -> B => ((g (@EMPTY A)) = b) /\ (forall x : A, forall s' : A -> Prop, (@FINITE A s') -> (g (@INSERT A x s')) = (@COND B (@IN A x s') (g s') (f x (g s'))))) s). -Axiom thm_FINITE_RECURSION : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, (forall x : A, forall y : A, forall s : B, (~ (x = y)) -> (f x (f y s)) = (f y (f x s))) -> ((@ITSET A B f (@EMPTY A) b) = b) /\ (forall x : A, forall s : A -> Prop, (@FINITE A s) -> (@ITSET A B f (@INSERT A x s) b) = (@COND B (@IN A x s) (@ITSET A B f s b) (f x (@ITSET A B f s b)))). -Axiom thm_FINITE_RECURSION_DELETE : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, (forall x : A, forall y : A, forall s : B, (~ (x = y)) -> (f x (f y s)) = (f y (f x s))) -> ((@ITSET A B f (@EMPTY A) b) = b) /\ (forall x : A, forall s : A -> Prop, (@FINITE A s) -> (@ITSET A B f s b) = (@COND B (@IN A x s) (f x (@ITSET A B f (@DELETE A s x) b)) (@ITSET A B f (@DELETE A s x) b))). -Axiom thm_ITSET_EQ : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B -> B, forall g : A -> B -> B, forall b : B, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> (f x) = (g x)) /\ ((forall x : A, forall y : A, forall s' : B, (~ (x = y)) -> (f x (f y s')) = (f y (f x s'))) /\ (forall x : A, forall y : A, forall s' : B, (~ (x = y)) -> (g x (g y s')) = (g y (g x s')))))) -> (@ITSET A B f s b) = (@ITSET A B g s b). -Axiom thm_CARD : forall {A : Type'}, forall s : A -> Prop, (@CARD A s) = (@ITSET A nat (fun x : A => fun n : nat => S n) s (NUMERAL 0)). -Axiom thm_CARD_CLAUSES : forall {A : Type'}, ((@CARD A (@EMPTY A)) = (NUMERAL 0)) /\ (forall x : A, forall s : A -> Prop, (@FINITE A s) -> (@CARD A (@INSERT A x s)) = (@COND nat (@IN A x s) (@CARD A s) (S (@CARD A s)))). -Axiom thm_CARD_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ ((@INTER A s t) = (@EMPTY A)))) -> (@CARD A (@UNION A s t)) = (Nat.add (@CARD A s) (@CARD A t)). -Axiom thm_CARD_DELETE : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@FINITE A s) -> (@CARD A (@DELETE A s x)) = (@COND nat (@IN A x s) (Nat.sub (@CARD A s) (NUMERAL (BIT1 0))) (@CARD A s)). -Axiom thm_CARD_UNION_EQ : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@FINITE A u) /\ (((@INTER A s t) = (@EMPTY A)) /\ ((@UNION A s t) = u))) -> (Nat.add (@CARD A s) (@CARD A t)) = (@CARD A u). -Axiom thm_CARD_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@SUBSET A t s)) -> (@CARD A (@DIFF A s t)) = (Nat.sub (@CARD A s) (@CARD A t)). -Axiom thm_CARD_EQ_0 : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> ((@CARD A s) = (NUMERAL 0)) = (s = (@EMPTY A)). -Axiom thm_CARD_SING : forall {A : Type'}, forall a : A, (@CARD A (@INSERT A a (@EMPTY A))) = (NUMERAL (BIT1 0)). -Axiom thm_FINITE_INDUCT_DELETE : forall {A : Type'}, forall P : (A -> Prop) -> Prop, ((P (@EMPTY A)) /\ (forall s : A -> Prop, ((@FINITE A s) /\ (~ (s = (@EMPTY A)))) -> exists x : A, (@IN A x s) /\ ((P (@DELETE A s x)) -> P s))) -> forall s : A -> Prop, (@FINITE A s) -> P s. -Axiom thm_HAS_SIZE : forall {A : Type'}, forall s : A -> Prop, forall n : nat, (@HAS_SIZE A s n) = ((@FINITE A s) /\ ((@CARD A s) = n)). -Axiom thm_HAS_SIZE_CARD : forall {A : Type'}, forall s : A -> Prop, forall n : nat, (@HAS_SIZE A s n) -> (@CARD A s) = n. -Axiom thm_HAS_SIZE_0 : forall {A : Type'}, forall s : A -> Prop, (@HAS_SIZE A s (NUMERAL 0)) = (s = (@EMPTY A)). -Axiom thm_HAS_SIZE_SUC : forall {A : Type'}, forall s : A -> Prop, forall n : nat, (@HAS_SIZE A s (S n)) = ((~ (s = (@EMPTY A))) /\ (forall a : A, (@IN A a s) -> @HAS_SIZE A (@DELETE A s a) n)). -Axiom thm_HAS_SIZE_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall m : nat, forall n : nat, ((@HAS_SIZE A s m) /\ ((@HAS_SIZE A t n) /\ (@DISJOINT A s t))) -> @HAS_SIZE A (@UNION A s t) (Nat.add m n). -Axiom thm_HAS_SIZE_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall m : nat, forall n : nat, ((@HAS_SIZE A s m) /\ ((@HAS_SIZE A t n) /\ (@SUBSET A t s))) -> @HAS_SIZE A (@DIFF A s t) (Nat.sub m n). -Axiom thm_HAS_SIZE_UNIONS : forall {A B : Type'}, forall s : A -> Prop, forall t : A -> B -> Prop, forall m : nat, forall n : nat, ((@HAS_SIZE A s m) /\ ((forall x : A, (@IN A x s) -> @HAS_SIZE B (t x) n) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @DISJOINT B (t x) (t y)))) -> @HAS_SIZE B (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_109 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_109 (@IN A x s) (t x)))) (Nat.mul m n). -Axiom thm_FINITE_HAS_SIZE : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) = (@HAS_SIZE A s (@CARD A s)). -Axiom thm_HAS_SIZE_CLAUSES : forall {A : Type'} (n : nat) (s : A -> Prop), ((@HAS_SIZE A s (NUMERAL 0)) = (s = (@EMPTY A))) /\ ((@HAS_SIZE A s (S n)) = (exists a : A, exists t : A -> Prop, (@HAS_SIZE A t n) /\ ((~ (@IN A a t)) /\ (s = (@INSERT A a t))))). -Axiom thm_CARD_SUBSET_EQ : forall {A : Type'}, forall a : A -> Prop, forall b : A -> Prop, ((@FINITE A b) /\ ((@SUBSET A a b) /\ ((@CARD A a) = (@CARD A b)))) -> a = b. -Axiom thm_CARD_SUBSET : forall {A : Type'}, forall a : A -> Prop, forall b : A -> Prop, ((@SUBSET A a b) /\ (@FINITE A b)) -> Peano.le (@CARD A a) (@CARD A b). -Axiom thm_CARD_SUBSET_LE : forall {A : Type'}, forall a : A -> Prop, forall b : A -> Prop, ((@FINITE A b) /\ ((@SUBSET A a b) /\ (Peano.le (@CARD A b) (@CARD A a)))) -> a = b. -Axiom thm_SUBSET_CARD_EQ : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (@SUBSET A s t)) -> ((@CARD A s) = (@CARD A t)) = (s = t). -Axiom thm_FINITE_CARD_LE_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall n : nat, ((@SUBSET A s t) /\ ((@FINITE A t) /\ (Peano.le (@CARD A t) n))) -> (@FINITE A s) /\ (Peano.le (@CARD A s) n). -Axiom thm_CARD_PSUBSET : forall {A : Type'}, forall a : A -> Prop, forall b : A -> Prop, ((@PSUBSET A a b) /\ (@FINITE A b)) -> Peano.lt (@CARD A a) (@CARD A b). -Axiom thm_CARD_PSUBSET_IMP : forall {A : Type'}, forall a : A -> Prop, forall b : A -> Prop, ((@SUBSET A a b) /\ (~ ((@CARD A a) = (@CARD A b)))) -> @PSUBSET A a b. -Axiom thm_CARD_PSUBSET_EQ : forall {A : Type'}, forall a : A -> Prop, forall b : A -> Prop, ((@FINITE A b) /\ (@SUBSET A a b)) -> (@PSUBSET A a b) = (Peano.lt (@CARD A a) (@CARD A b)). -Axiom thm_CARD_UNION_LE : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@FINITE A t)) -> Peano.le (@CARD A (@UNION A s t)) (Nat.add (@CARD A s) (@CARD A t)). -Axiom thm_FINITE_CARD_LE_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall m : nat, forall n : nat, (((@FINITE A s) /\ (Peano.le (@CARD A s) m)) /\ ((@FINITE A t) /\ (Peano.le (@CARD A t) n))) -> (@FINITE A (@UNION A s t)) /\ (Peano.le (@CARD A (@UNION A s t)) (Nat.add m n)). -Axiom thm_CARD_UNIONS_LE : forall {A B : Type'}, forall s : A -> Prop, forall t : A -> B -> Prop, forall m : nat, forall n : nat, ((@HAS_SIZE A s m) /\ (forall x : A, (@IN A x s) -> (@FINITE B (t x)) /\ (Peano.le (@CARD B (t x)) n))) -> Peano.le (@CARD B (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_115 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_115 (@IN A x s) (t x))))) (Nat.mul m n). -Axiom thm_CARD_UNION_GEN : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@FINITE A t)) -> (@CARD A (@UNION A s t)) = (Nat.sub (Nat.add (@CARD A s) (@CARD A t)) (@CARD A (@INTER A s t))). -Axiom thm_CARD_UNION_OVERLAP_EQ : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@FINITE A t)) -> ((@CARD A (@UNION A s t)) = (Nat.add (@CARD A s) (@CARD A t))) = ((@INTER A s t) = (@EMPTY A)). -Axiom thm_CARD_UNION_OVERLAP : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (Peano.lt (@CARD A (@UNION A s t)) (Nat.add (@CARD A s) (@CARD A t))))) -> ~ ((@INTER A s t) = (@EMPTY A)). -Axiom thm_CARD_IMAGE_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@FINITE A s)) -> (@CARD B (@IMAGE A B f s)) = (@CARD A s). -Axiom thm_HAS_SIZE_IMAGE_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall n : nat, ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@HAS_SIZE A s n)) -> @HAS_SIZE B (@IMAGE A B f s) n. -Axiom thm_CARD_IMAGE_LE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@FINITE A s) -> Peano.le (@CARD B (@IMAGE A B f s)) (@CARD A s). -Axiom thm_FINITE_CARD_LE_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall n : nat, ((@FINITE A s) /\ (Peano.le (@CARD A s) n)) -> (@FINITE B (@IMAGE A B f s)) /\ (Peano.le (@CARD B (@IMAGE A B f s)) n). -Axiom thm_CARD_IMAGE_INJ_EQ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ ((f x) = y))))) -> (@CARD B t) = (@CARD A s). -Axiom thm_CARD_SUBSET_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : B -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (@SUBSET B s (@IMAGE A B f t))) -> Peano.le (@CARD B s) (@CARD A t). -Axiom thm_HAS_SIZE_IMAGE_INJ_EQ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall n : nat, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) -> (@HAS_SIZE B (@IMAGE A B f s) n) = (@HAS_SIZE A s n). -Axiom thm_CARD_IMAGE_EQ_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@FINITE A s) -> ((@CARD B (@IMAGE A B f s)) = (@CARD A s)) = (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y). -Axiom thm_EXISTS_SMALL_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, forall n : nat, (exists t : B -> Prop, (@FINITE B t) /\ ((Peano.lt (@CARD B t) n) /\ ((@SUBSET B t (@IMAGE A B f s)) /\ (P t)))) = (exists t : A -> Prop, (@FINITE A t) /\ ((Peano.lt (@CARD A t) n) /\ ((@SUBSET A t s) /\ ((forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y)) /\ (P (@IMAGE A B f t)))))). -Axiom thm_FORALL_SMALL_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, forall n : nat, (forall t : B -> Prop, ((@FINITE B t) /\ ((Peano.lt (@CARD B t) n) /\ (@SUBSET B t (@IMAGE A B f s)))) -> P t) = (forall t : A -> Prop, ((@FINITE A t) /\ ((Peano.lt (@CARD A t) n) /\ ((@SUBSET A t s) /\ (forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y))))) -> P (@IMAGE A B f t)). -Axiom thm_EXISTS_SMALL_SUBSET_IMAGE : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, forall n : nat, (exists t : B -> Prop, (@FINITE B t) /\ ((Peano.lt (@CARD B t) n) /\ ((@SUBSET B t (@IMAGE A B f s)) /\ (P t)))) = (exists t : A -> Prop, (@FINITE A t) /\ ((Peano.lt (@CARD A t) n) /\ ((@SUBSET A t s) /\ (P (@IMAGE A B f t))))). -Axiom thm_FORALL_SMALL_SUBSET_IMAGE : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, forall n : nat, (forall t : B -> Prop, ((@FINITE B t) /\ ((Peano.lt (@CARD B t) n) /\ (@SUBSET B t (@IMAGE A B f s)))) -> P t) = (forall t : A -> Prop, ((@FINITE A t) /\ ((Peano.lt (@CARD A t) n) /\ (@SUBSET A t s))) -> P (@IMAGE A B f t)). -Axiom thm_CARD_IMAGE_LE2 : forall {A B C : Type'}, forall f : A -> B, forall g : A -> C, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((g x) = (g y)))) -> (f x) = (f y))) -> Peano.le (@CARD B (@IMAGE A B f s)) (@CARD C (@IMAGE A C g s)). -Axiom thm_CARD_IMAGE_LT2 : forall {A B C : Type'}, forall f : A -> B, forall g : A -> C, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((g x) = (g y)))) -> (f x) = (f y)) /\ (~ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> (g x) = (g y))))) -> Peano.lt (@CARD B (@IMAGE A B f s)) (@CARD C (@IMAGE A C g s)). -Axiom thm_CHOOSE_SUBSET_STRONG : forall {A : Type'}, forall n : nat, forall s : A -> Prop, ((@FINITE A s) -> Peano.le n (@CARD A s)) -> exists t : A -> Prop, (@SUBSET A t s) /\ (@HAS_SIZE A t n). -Axiom thm_CHOOSE_SUBSET_EQ : forall {A : Type'}, forall n : nat, forall s : A -> Prop, ((@FINITE A s) -> Peano.le n (@CARD A s)) = (exists t : A -> Prop, (@SUBSET A t s) /\ (@HAS_SIZE A t n)). -Axiom thm_CHOOSE_SUBSET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> forall n : nat, (Peano.le n (@CARD A s)) -> exists t : A -> Prop, (@SUBSET A t s) /\ (@HAS_SIZE A t n). -Axiom thm_CHOOSE_SUBSET_BETWEEN : forall {A : Type'}, forall n : nat, forall s : A -> Prop, forall u : A -> Prop, ((@SUBSET A s u) /\ ((@FINITE A s) /\ ((Peano.le (@CARD A s) n) /\ ((@FINITE A u) -> Peano.le n (@CARD A u))))) -> exists t : A -> Prop, (@SUBSET A s t) /\ ((@SUBSET A t u) /\ (@HAS_SIZE A t n)). -Axiom thm_CARD_LE_UNIONS_CHAIN : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall n : nat, ((forall t : A -> Prop, forall u : A -> Prop, ((@IN (A -> Prop) t f) /\ (@IN (A -> Prop) u f)) -> (@SUBSET A t u) \/ (@SUBSET A u t)) /\ (forall t : A -> Prop, (@IN (A -> Prop) t f) -> (@FINITE A t) /\ (Peano.le (@CARD A t) n))) -> (@FINITE A (@UNIONS A f)) /\ (Peano.le (@CARD A (@UNIONS A f)) n). -Axiom thm_CARD_LE_1 : forall {A : Type'}, forall s : A -> Prop, ((@FINITE A s) /\ (Peano.le (@CARD A s) (NUMERAL (BIT1 0)))) = (exists a : A, @SUBSET A s (@INSERT A a (@EMPTY A))). -Axiom thm_INVOLUTION_EVEN_NOFIXPOINTS : forall {A : Type'}, forall f : A -> A, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> (@IN A (f x) s) /\ ((~ ((f x) = x)) /\ ((f (f x)) = x)))) -> Coq.Arith.PeanoNat.Nat.Even (@CARD A s). -Axiom thm_INVOLUTION_EVEN_FIXPOINTS : forall {A : Type'}, forall f : A -> A, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> (@IN A (f x) s) /\ ((f (f x)) = x))) -> (Coq.Arith.PeanoNat.Nat.Even (@CARD A (@GSPEC A (fun GEN_PVAR_120 : A => exists x : A, @SETSPEC A GEN_PVAR_120 ((@IN A x s) /\ ((f x) = x)) x)))) = (Coq.Arith.PeanoNat.Nat.Even (@CARD A s)). -Axiom thm_HAS_SIZE_PRODUCT_DEPENDENT : forall {A B : Type'}, forall s : A -> Prop, forall m : nat, forall t : A -> B -> Prop, forall n : nat, ((@HAS_SIZE A s m) /\ (forall x : A, (@IN A x s) -> @HAS_SIZE B (t x) n)) -> @HAS_SIZE (prod A B) (@GSPEC (prod A B) (fun GEN_PVAR_123 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_123 ((@IN A x s) /\ (@IN B y (t x))) (@pair A B x y))) (Nat.mul m n). -Axiom thm_FINITE_PRODUCT_DEPENDENT : forall {A B C : Type'}, forall f : A -> B -> C, forall s : A -> Prop, forall t : A -> B -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> @FINITE B (t x))) -> @FINITE C (@GSPEC C (fun GEN_PVAR_128 : C => exists x : A, exists y : B, @SETSPEC C GEN_PVAR_128 ((@IN A x s) /\ (@IN B y (t x))) (f x y))). -Axiom thm_FINITE_PRODUCT : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> @FINITE (prod A B) (@GSPEC (prod A B) (fun GEN_PVAR_129 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_129 ((@IN A x s) /\ (@IN B y t)) (@pair A B x y))). -Axiom thm_CARD_PRODUCT : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@CARD (prod A B) (@GSPEC (prod A B) (fun GEN_PVAR_130 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_130 ((@IN A x s) /\ (@IN B y t)) (@pair A B x y)))) = (Nat.mul (@CARD A s) (@CARD B t)). -Axiom thm_HAS_SIZE_PRODUCT : forall {A B : Type'}, forall s : A -> Prop, forall m : nat, forall t : B -> Prop, forall n : nat, ((@HAS_SIZE A s m) /\ (@HAS_SIZE B t n)) -> @HAS_SIZE (prod A B) (@GSPEC (prod A B) (fun GEN_PVAR_131 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_131 ((@IN A x s) /\ (@IN B y t)) (@pair A B x y))) (Nat.mul m n). -Axiom thm_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@CROSS A B s t) = (@GSPEC (prod A B) (fun GEN_PVAR_132 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_132 ((@IN A x s) /\ (@IN B y t)) (@pair A B x y))). -Axiom thm_IN_CROSS : forall {A B : Type'}, forall x : A, forall y : B, forall s : A -> Prop, forall t : B -> Prop, (@IN (prod A B) (@pair A B x y) (@CROSS A B s t)) = ((@IN A x s) /\ (@IN B y t)). -Axiom thm_HAS_SIZE_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall m : nat, forall n : nat, ((@HAS_SIZE A s m) /\ (@HAS_SIZE B t n)) -> @HAS_SIZE (prod A B) (@CROSS A B s t) (Nat.mul m n). -Axiom thm_FINITE_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> @FINITE (prod A B) (@CROSS A B s t). -Axiom thm_CARD_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@CARD (prod A B) (@CROSS A B s t)) = (Nat.mul (@CARD A s) (@CARD B t)). -Axiom thm_CROSS_EQ_EMPTY : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@CROSS A B s t) = (@EMPTY (prod A B))) = ((s = (@EMPTY A)) \/ (t = (@EMPTY B))). -Axiom thm_CROSS_EMPTY : forall {_98484 _98497 A B : Type'}, (forall s : A -> Prop, (@CROSS A _98484 s (@EMPTY _98484)) = (@EMPTY (prod A _98484))) /\ (forall t : B -> Prop, (@CROSS _98497 B (@EMPTY _98497) t) = (@EMPTY (prod _98497 B))). -Axiom thm_CROSS_SING : forall {A B : Type'}, forall x : A, forall y : B, (@CROSS A B (@INSERT A x (@EMPTY A)) (@INSERT B y (@EMPTY B))) = (@INSERT (prod A B) (@pair A B x y) (@EMPTY (prod A B))). -Axiom thm_CROSS_UNIV : forall {A B : Type'}, (@CROSS A B (@UNIV A) (@UNIV B)) = (@UNIV (prod A B)). -Axiom thm_FINITE_CROSS_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@FINITE (prod A B) (@CROSS A B s t)) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@FINITE A s) /\ (@FINITE B t)))). -Axiom thm_INFINITE_CROSS_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@INFINITE (prod A B) (@CROSS A B s t)) = (((~ (s = (@EMPTY A))) /\ (@INFINITE B t)) \/ ((@INFINITE A s) /\ (~ (t = (@EMPTY B))))). -Axiom thm_FINITE_CROSS_UNIV : forall {A B : Type'}, (@FINITE (prod A B) (@UNIV (prod A B))) = ((@FINITE A (@UNIV A)) /\ (@FINITE B (@UNIV B))). -Axiom thm_INFINITE_CROSS_UNIV : forall {A B : Type'}, (@INFINITE (prod A B) (@UNIV (prod A B))) = ((@INFINITE A (@UNIV A)) \/ (@INFINITE B (@UNIV B))). -Axiom thm_FINITE_UNIV_PAIR : forall {A : Type'}, (@FINITE (prod A A) (@UNIV (prod A A))) = (@FINITE A (@UNIV A)). -Axiom thm_INFINITE_UNIV_PAIR : forall {A : Type'}, (@INFINITE (prod A A) (@UNIV (prod A A))) = (@INFINITE A (@UNIV A)). -Axiom thm_FORALL_IN_CROSS : forall {A B : Type'}, forall P : (prod A B) -> Prop, forall s : A -> Prop, forall t : B -> Prop, (forall z : prod A B, (@IN (prod A B) z (@CROSS A B s t)) -> P z) = (forall x : A, forall y : B, ((@IN A x s) /\ (@IN B y t)) -> P (@pair A B x y)). -Axiom thm_EXISTS_IN_CROSS : forall {A B : Type'}, forall P : (prod A B) -> Prop, forall s : A -> Prop, forall t : B -> Prop, (exists z : prod A B, (@IN (prod A B) z (@CROSS A B s t)) /\ (P z)) = (exists x : A, exists y : B, (@IN A x s) /\ ((@IN B y t) /\ (P (@pair A B x y)))). -Axiom thm_SUBSET_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall s' : A -> Prop, forall t' : B -> Prop, (@SUBSET (prod A B) (@CROSS A B s t) (@CROSS A B s' t')) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@SUBSET A s s') /\ (@SUBSET B t t')))). -Axiom thm_CROSS_MONO : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall s' : A -> Prop, forall t' : B -> Prop, ((@SUBSET A s s') /\ (@SUBSET B t t')) -> @SUBSET (prod A B) (@CROSS A B s t) (@CROSS A B s' t'). -Axiom thm_CROSS_EQ : forall {A B : Type'}, forall s : A -> Prop, forall s' : A -> Prop, forall t : B -> Prop, forall t' : B -> Prop, ((@CROSS A B s t) = (@CROSS A B s' t')) = ((((s = (@EMPTY A)) \/ (t = (@EMPTY B))) /\ ((s' = (@EMPTY A)) \/ (t' = (@EMPTY B)))) \/ ((s = s') /\ (t = t'))). -Axiom thm_IMAGE_FST_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@IMAGE (prod A B) A (@fst A B) (@CROSS A B s t)) = (@COND (A -> Prop) (t = (@EMPTY B)) (@EMPTY A) s). -Axiom thm_IMAGE_SND_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@IMAGE (prod A B) B (@snd A B) (@CROSS A B s t)) = (@COND (B -> Prop) (s = (@EMPTY A)) (@EMPTY B) t). -Axiom thm_IMAGE_PAIRED_CROSS : forall {A B C D : Type'}, forall f : A -> B, forall g : C -> D, forall s : A -> Prop, forall t : C -> Prop, (@IMAGE (prod A C) (prod B D) (@GABS ((prod A C) -> prod B D) (fun f' : (prod A C) -> prod B D => forall x : A, forall y : C, @GEQ (prod B D) (f' (@pair A C x y)) (@pair B D (f x) (g y)))) (@CROSS A C s t)) = (@CROSS B D (@IMAGE A B f s) (@IMAGE C D g t)). -Axiom thm_CROSS_INTER : forall {A B : Type'}, (forall s : A -> Prop, forall t : B -> Prop, forall u : B -> Prop, (@CROSS A B s (@INTER B t u)) = (@INTER (prod A B) (@CROSS A B s t) (@CROSS A B s u))) /\ (forall s : A -> Prop, forall t : A -> Prop, forall u : B -> Prop, (@CROSS A B (@INTER A s t) u) = (@INTER (prod A B) (@CROSS A B s u) (@CROSS A B t u))). -Axiom thm_CROSS_UNION : forall {A B : Type'}, (forall s : A -> Prop, forall t : B -> Prop, forall u : B -> Prop, (@CROSS A B s (@UNION B t u)) = (@UNION (prod A B) (@CROSS A B s t) (@CROSS A B s u))) /\ (forall s : A -> Prop, forall t : A -> Prop, forall u : B -> Prop, (@CROSS A B (@UNION A s t) u) = (@UNION (prod A B) (@CROSS A B s u) (@CROSS A B t u))). -Axiom thm_CROSS_DIFF : forall {A B : Type'}, (forall s : A -> Prop, forall t : B -> Prop, forall u : B -> Prop, (@CROSS A B s (@DIFF B t u)) = (@DIFF (prod A B) (@CROSS A B s t) (@CROSS A B s u))) /\ (forall s : A -> Prop, forall t : A -> Prop, forall u : B -> Prop, (@CROSS A B (@DIFF A s t) u) = (@DIFF (prod A B) (@CROSS A B s u) (@CROSS A B t u))). -Axiom thm_INTER_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall s' : A -> Prop, forall t : B -> Prop, forall t' : B -> Prop, (@INTER (prod A B) (@CROSS A B s t) (@CROSS A B s' t')) = (@CROSS A B (@INTER A s s') (@INTER B t t')). -Axiom thm_CROSS_UNIONS : forall {A B : Type'}, (forall s : A -> Prop, forall f : (A -> Prop) -> Prop, (@CROSS A A s (@UNIONS A f)) = (@UNIONS (prod A A) (@GSPEC ((prod A A) -> Prop) (fun GEN_PVAR_134 : (prod A A) -> Prop => exists t : A -> Prop, @SETSPEC ((prod A A) -> Prop) GEN_PVAR_134 (@IN (A -> Prop) t f) (@CROSS A A s t))))) /\ (forall f : (A -> Prop) -> Prop, forall t : B -> Prop, (@CROSS A B (@UNIONS A f) t) = (@UNIONS (prod A B) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_135 : (prod A B) -> Prop => exists s : A -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_135 (@IN (A -> Prop) s f) (@CROSS A B s t))))). -Axiom thm_CROSS_UNIONS_UNIONS : forall {A B : Type'}, forall f : (A -> Prop) -> Prop, forall g : (B -> Prop) -> Prop, (@CROSS A B (@UNIONS A f) (@UNIONS B g)) = (@UNIONS (prod A B) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_133 : (prod A B) -> Prop => exists s : A -> Prop, exists t : B -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_133 ((@IN (A -> Prop) s f) /\ (@IN (B -> Prop) t g)) (@CROSS A B s t)))). -Axiom thm_CROSS_INTERS : forall {A B : Type'}, (forall s : A -> Prop, forall f : (A -> Prop) -> Prop, (@CROSS A A s (@INTERS A f)) = (@COND ((prod A A) -> Prop) (f = (@EMPTY (A -> Prop))) (@CROSS A A s (@UNIV A)) (@INTERS (prod A A) (@GSPEC ((prod A A) -> Prop) (fun GEN_PVAR_139 : (prod A A) -> Prop => exists t : A -> Prop, @SETSPEC ((prod A A) -> Prop) GEN_PVAR_139 (@IN (A -> Prop) t f) (@CROSS A A s t)))))) /\ (forall f : (A -> Prop) -> Prop, forall t : B -> Prop, (@CROSS A B (@INTERS A f) t) = (@COND ((prod A B) -> Prop) (f = (@EMPTY (A -> Prop))) (@CROSS A B (@UNIV A) t) (@INTERS (prod A B) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_140 : (prod A B) -> Prop => exists s : A -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_140 (@IN (A -> Prop) s f) (@CROSS A B s t)))))). -Axiom thm_CROSS_INTERS_INTERS : forall {A B : Type'}, forall f : (A -> Prop) -> Prop, forall g : (B -> Prop) -> Prop, (@CROSS A B (@INTERS A f) (@INTERS B g)) = (@COND ((prod A B) -> Prop) (f = (@EMPTY (A -> Prop))) (@INTERS (prod A B) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_136 : (prod A B) -> Prop => exists t : B -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_136 (@IN (B -> Prop) t g) (@CROSS A B (@UNIV A) t)))) (@COND ((prod A B) -> Prop) (g = (@EMPTY (B -> Prop))) (@INTERS (prod A B) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_137 : (prod A B) -> Prop => exists s : A -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_137 (@IN (A -> Prop) s f) (@CROSS A B s (@UNIV B))))) (@INTERS (prod A B) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_138 : (prod A B) -> Prop => exists s : A -> Prop, exists t : B -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_138 ((@IN (A -> Prop) s f) /\ (@IN (B -> Prop) t g)) (@CROSS A B s t)))))). -Axiom thm_DISJOINT_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall s' : A -> Prop, forall t' : B -> Prop, (@DISJOINT (prod A B) (@CROSS A B s t) (@CROSS A B s' t')) = ((@DISJOINT A s s') \/ (@DISJOINT B t t')). -Axiom thm_ARB : forall {A : Type'}, (@ARB A) = (@ε A (fun x : A => False)). -Axiom thm_EXTENSIONAL : forall {A B : Type'}, forall s : A -> Prop, (@EXTENSIONAL A B s) = (@GSPEC (A -> B) (fun GEN_PVAR_141 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_141 (forall x : A, (~ (@IN A x s)) -> (f x) = (@ARB B)) f)). -Axiom thm_IN_EXTENSIONAL : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, (@IN (A -> B) f (@EXTENSIONAL A B s)) = (forall x : A, (~ (@IN A x s)) -> (f x) = (@ARB B)). -Axiom thm_IN_EXTENSIONAL_UNDEFINED : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall x : A, ((@IN (A -> B) f (@EXTENSIONAL A B s)) /\ (~ (@IN A x s))) -> (f x) = (@ARB B). -Axiom thm_EXTENSIONAL_EMPTY : forall {A B : Type'}, (@EXTENSIONAL A B (@EMPTY A)) = (@INSERT (A -> B) (fun x : A => @ARB B) (@EMPTY (A -> B))). -Axiom thm_EXTENSIONAL_UNIV : forall {A B : Type'}, forall f : A -> B, @EXTENSIONAL A B (@UNIV A) f. -Axiom thm_EXTENSIONAL_EQ : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall g : A -> B, ((@IN (A -> B) f (@EXTENSIONAL A B s)) /\ ((@IN (A -> B) g (@EXTENSIONAL A B s)) /\ (forall x : A, (@IN A x s) -> (f x) = (g x)))) -> f = g. -Axiom thm_RESTRICTION : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall x : A, (@RESTRICTION A B s f x) = (@COND B (@IN A x s) (f x) (@ARB B)). -Axiom thm_RESTRICTION_THM : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, (@RESTRICTION A B s f) = (fun x : A => @COND B (@IN A x s) (f x) (@ARB B)). -Axiom thm_RESTRICTION_DEFINED : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall x : A, (@IN A x s) -> (@RESTRICTION A B s f x) = (f x). -Axiom thm_RESTRICTION_UNDEFINED : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall x : A, (~ (@IN A x s)) -> (@RESTRICTION A B s f x) = (@ARB B). -Axiom thm_RESTRICTION_EQ : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall x : A, forall y : B, ((@IN A x s) /\ ((f x) = y)) -> (@RESTRICTION A B s f x) = y. -Axiom thm_RESTRICTION_IN_EXTENSIONAL : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, @IN (A -> B) (@RESTRICTION A B s f) (@EXTENSIONAL A B s). -Axiom thm_RESTRICTION_EXTENSION : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall g : A -> B, ((@RESTRICTION A B s f) = (@RESTRICTION A B s g)) = (forall x : A, (@IN A x s) -> (f x) = (g x)). -Axiom thm_RESTRICTION_FIXPOINT : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, ((@RESTRICTION A B s f) = f) = (@IN (A -> B) f (@EXTENSIONAL A B s)). -Axiom thm_RESTRICTION_UNIV : forall {A B : Type'}, forall f : A -> B, (@RESTRICTION A B (@UNIV A) f) = f. -Axiom thm_RESTRICTION_RESTRICTION : forall {A B : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall f : A -> B, (@SUBSET A s t) -> (@RESTRICTION A B s (@RESTRICTION A B t f)) = (@RESTRICTION A B s f). -Axiom thm_RESTRICTION_IDEMP : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, (@RESTRICTION A B s (@RESTRICTION A B s f)) = (@RESTRICTION A B s f). -Axiom thm_IMAGE_RESTRICTION : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> (@IMAGE A B (@RESTRICTION A B t f) s) = (@IMAGE A B f s). -Axiom thm_RESTRICTION_COMPOSE_RIGHT : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall s : A -> Prop, (@RESTRICTION A C s (@o A B C g (@RESTRICTION A B s f))) = (@RESTRICTION A C s (@o A B C g f)). -Axiom thm_RESTRICTION_COMPOSE_LEFT : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall s : A -> Prop, forall t : B -> Prop, (@SUBSET B (@IMAGE A B f s) t) -> (@RESTRICTION A C s (@o A B C (@RESTRICTION B C t g) f)) = (@RESTRICTION A C s (@o A B C g f)). -Axiom thm_RESTRICTION_COMPOSE : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall s : A -> Prop, forall t : B -> Prop, (@SUBSET B (@IMAGE A B f s) t) -> (@RESTRICTION A C s (@o A B C (@RESTRICTION B C t g) (@RESTRICTION A B s f))) = (@RESTRICTION A C s (@o A B C g f)). -Axiom thm_RESTRICTION_UNIQUE : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall g : A -> B, ((@RESTRICTION A B s f) = g) = ((@EXTENSIONAL A B s g) /\ (forall x : A, (@IN A x s) -> (f x) = (g x))). -Axiom thm_RESTRICTION_UNIQUE_ALT : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall g : A -> B, (f = (@RESTRICTION A B s g)) = ((@EXTENSIONAL A B s f) /\ (forall x : A, (@IN A x s) -> (f x) = (g x))). -Axiom thm_cartesian_product : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, (@cartesian_product A K k s) = (@GSPEC (K -> A) (fun GEN_PVAR_142 : K -> A => exists f : K -> A, @SETSPEC (K -> A) GEN_PVAR_142 ((@EXTENSIONAL K A k f) /\ (forall i : K, (@IN K i k) -> @IN A (f i) (s i))) f)). -Axiom thm_IN_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall x : K -> A, (@IN (K -> A) x (@cartesian_product A K k s)) = ((@EXTENSIONAL K A k x) /\ (forall i : K, (@IN K i k) -> @IN A (x i) (s i))). -Axiom thm_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, (@cartesian_product A K k s) = (@GSPEC (K -> A) (fun GEN_PVAR_143 : K -> A => exists f : K -> A, @SETSPEC (K -> A) GEN_PVAR_143 (forall i : K, @IN A (f i) (@COND (A -> Prop) (@IN K i k) (s i) (@INSERT A (@ARB A) (@EMPTY A)))) f)). -Axiom thm_RESTRICTION_IN_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall f : K -> A, (@IN (K -> A) (@RESTRICTION K A k f) (@cartesian_product A K k s)) = (forall i : K, (@IN K i k) -> @IN A (f i) (s i)). -Axiom thm_CARTESIAN_PRODUCT_AS_RESTRICTIONS : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, (@cartesian_product A K k s) = (@GSPEC (K -> A) (fun GEN_PVAR_144 : K -> A => exists f : K -> A, @SETSPEC (K -> A) GEN_PVAR_144 (forall i : K, (@IN K i k) -> @IN A (f i) (s i)) (@RESTRICTION K A k f))). -Axiom thm_CARTESIAN_PRODUCT_EQ_EMPTY : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, ((@cartesian_product A K k s) = (@EMPTY (K -> A))) = (exists i : K, (@IN K i k) /\ ((s i) = (@EMPTY A))). -Axiom thm_CARTESIAN_PRODUCT_EMPTY : forall {A K : Type'}, forall s : K -> A -> Prop, (@cartesian_product A K (@EMPTY K) s) = (@INSERT (K -> A) (fun i : K => @ARB A) (@EMPTY (K -> A))). -Axiom thm_CARTESIAN_PRODUCT_EQ_MEMBERS : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall x : K -> A, forall y : K -> A, ((@IN (K -> A) x (@cartesian_product A K k s)) /\ ((@IN (K -> A) y (@cartesian_product A K k s)) /\ (forall i : K, (@IN K i k) -> (x i) = (y i)))) -> x = y. -Axiom thm_CARTESIAN_PRODUCT_EQ_MEMBERS_EQ : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall x : K -> A, forall y : K -> A, ((@IN (K -> A) x (@cartesian_product A K k s)) /\ (@IN (K -> A) y (@cartesian_product A K k s))) -> (x = y) = (forall i : K, (@IN K i k) -> (x i) = (y i)). -Axiom thm_SUBSET_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@SUBSET (K -> A) (@cartesian_product A K k s) (@cartesian_product A K k t)) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @SUBSET A (s i) (t i))). -Axiom thm_CARTESIAN_PRODUCT_EQ : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, ((@cartesian_product A K k s) = (@cartesian_product A K k t)) = ((((@cartesian_product A K k s) = (@EMPTY (K -> A))) /\ ((@cartesian_product A K k t) = (@EMPTY (K -> A)))) \/ (forall i : K, (@IN K i k) -> (s i) = (t i))). -Axiom thm_INTER_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@INTER (K -> A) (@cartesian_product A K k s) (@cartesian_product A K k t)) = (@cartesian_product A K k (fun i : K => @INTER A (s i) (t i))). -Axiom thm_CARTESIAN_PRODUCT_UNIV : forall {A K : Type'}, (@cartesian_product A K (@UNIV K) (fun i : K => @UNIV A)) = (@UNIV (K -> A)). -Axiom thm_CARTESIAN_PRODUCT_SINGS : forall {A K : Type'}, forall k : K -> Prop, forall x : K -> A, (@EXTENSIONAL K A k x) -> (@cartesian_product A K k (fun i : K => @INSERT A (x i) (@EMPTY A))) = (@INSERT (K -> A) x (@EMPTY (K -> A))). -Axiom thm_CARTESIAN_PRODUCT_SINGS_GEN : forall {A K : Type'}, forall k : K -> Prop, forall x : K -> A, (@cartesian_product A K k (fun i : K => @INSERT A (x i) (@EMPTY A))) = (@INSERT (K -> A) (@RESTRICTION K A k x) (@EMPTY (K -> A))). -Axiom thm_IMAGE_PROJECTION_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall i : K, (@IMAGE (K -> A) A (fun x : K -> A => x i) (@cartesian_product A K k s)) = (@COND (A -> Prop) ((@cartesian_product A K k s) = (@EMPTY (K -> A))) (@EMPTY A) (@COND (A -> Prop) (@IN K i k) (s i) (@INSERT A (@ARB A) (@EMPTY A)))). -Axiom thm_FORALL_CARTESIAN_PRODUCT_ELEMENTS : forall {A K : Type'}, forall P : K -> A -> Prop, forall k : K -> Prop, forall s : K -> A -> Prop, (forall z : K -> A, forall i : K, ((@IN (K -> A) z (@cartesian_product A K k s)) /\ (@IN K i k)) -> P i (z i)) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ (forall i : K, forall x : A, ((@IN K i k) /\ (@IN A x (s i))) -> P i x)). -Axiom thm_FORALL_CARTESIAN_PRODUCT_ELEMENTS_EQ : forall {A K : Type'}, forall P : K -> A -> Prop, forall k : K -> Prop, forall s : K -> A -> Prop, (~ ((@cartesian_product A K k s) = (@EMPTY (K -> A)))) -> (forall i : K, forall x : A, ((@IN K i k) /\ (@IN A x (s i))) -> P i x) = (forall z : K -> A, forall i : K, ((@IN (K -> A) z (@cartesian_product A K k s)) /\ (@IN K i k)) -> P i (z i)). -Axiom thm_EXISTS_CARTESIAN_PRODUCT_ELEMENT : forall {A K : Type'}, forall P : K -> A -> Prop, forall k : K -> Prop, forall s : K -> A -> Prop, (exists z : K -> A, (@IN (K -> A) z (@cartesian_product A K k s)) /\ (forall i : K, (@IN K i k) -> P i (z i))) = (forall i : K, (@IN K i k) -> exists x : A, (@IN A x (s i)) /\ (P i x)). -Axiom thm_product_map : forall {A B K : Type'}, forall k : K -> Prop, forall f : K -> A -> B, (@product_map A B K k f) = (fun x : K -> A => @RESTRICTION K B k (fun i : K => f i (x i))). -Axiom thm_PRODUCT_MAP_RESTRICTION : forall {A B K : Type'}, forall f : K -> A -> B, forall k : K -> Prop, forall x : K -> A, (@product_map A B K k f (@RESTRICTION K A k x)) = (@RESTRICTION K B k (fun i : K => f i (x i))). -Axiom thm_IMAGE_PRODUCT_MAP : forall {A B K : Type'}, forall f : K -> A -> B, forall k : K -> Prop, forall s : K -> A -> Prop, (@IMAGE (K -> A) (K -> B) (@product_map A B K k f) (@cartesian_product A K k s)) = (@cartesian_product B K k (fun i : K => @IMAGE A B (f i) (s i))). -Axiom thm_disjoint_union : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, (@disjoint_union A K k s) = (@GSPEC (prod K A) (fun GEN_PVAR_145 : prod K A => exists i : K, exists x : A, @SETSPEC (prod K A) GEN_PVAR_145 ((@IN K i k) /\ (@IN A x (s i))) (@pair K A i x))). -Axiom thm_SUBSET_DISJOINT_UNION : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@SUBSET (prod K A) (@disjoint_union A K k s) (@disjoint_union A K k t)) = (forall i : K, (@IN K i k) -> @SUBSET A (s i) (t i)). -Axiom thm_DISJOINT_UNION_EQ : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, ((@disjoint_union A K k s) = (@disjoint_union A K k t)) = (forall i : K, (@IN K i k) -> (s i) = (t i)). -Axiom thm_SUBSET_DISJOINT_UNION_EXISTS : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall u : (prod K A) -> Prop, (@SUBSET (prod K A) u (@disjoint_union A K k s)) = (exists t : K -> A -> Prop, (u = (@disjoint_union A K k t)) /\ (forall i : K, (@IN K i k) -> @SUBSET A (t i) (s i))). -Axiom thm_INTER_DISJOINT_UNION : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@INTER (prod K A) (@disjoint_union A K k s) (@disjoint_union A K k t)) = (@disjoint_union A K k (fun i : K => @INTER A (s i) (t i))). -Axiom thm_UNION_DISJOINT_UNION : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@UNION (prod K A) (@disjoint_union A K k s) (@disjoint_union A K k t)) = (@disjoint_union A K k (fun i : K => @UNION A (s i) (t i))). -Axiom thm_DISJOINT_UNION_EQ_EMPTY : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, ((@disjoint_union A K k s) = (@EMPTY (prod K A))) = (forall i : K, (@IN K i k) -> (s i) = (@EMPTY A)). -Axiom thm_DISJOINT_DISJOINT_UNION : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@DISJOINT (prod K A) (@disjoint_union A K k s) (@disjoint_union A K k t)) = (forall i : K, (@IN K i k) -> @DISJOINT A (s i) (t i)). -Axiom thm_HAS_SIZE_FUNSPACE : forall {A B : Type'}, forall d : B, forall n : nat, forall t : B -> Prop, forall m : nat, forall s : A -> Prop, ((@HAS_SIZE A s m) /\ (@HAS_SIZE B t n)) -> @HAS_SIZE (A -> B) (@GSPEC (A -> B) (fun GEN_PVAR_150 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_150 ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall x : A, (~ (@IN A x s)) -> (f x) = d)) f)) (Nat.pow n m). -Axiom thm_CARD_FUNSPACE : forall {A B : Type'} (d : B), forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@CARD (A -> B) (@GSPEC (A -> B) (fun GEN_PVAR_151 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_151 ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall x : A, (~ (@IN A x s)) -> (f x) = d)) f))) = (Nat.pow (@CARD B t) (@CARD A s)). -Axiom thm_FINITE_FUNSPACE : forall {A B : Type'} (d : B), forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> @FINITE (A -> B) (@GSPEC (A -> B) (fun GEN_PVAR_152 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_152 ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall x : A, (~ (@IN A x s)) -> (f x) = d)) f)). -Axiom thm_HAS_SIZE_FUNSPACE_UNIV : forall {A B : Type'}, forall m : nat, forall n : nat, ((@HAS_SIZE A (@UNIV A) m) /\ (@HAS_SIZE B (@UNIV B) n)) -> @HAS_SIZE (A -> B) (@UNIV (A -> B)) (Nat.pow n m). -Axiom thm_CARD_FUNSPACE_UNIV : forall {A B : Type'}, ((@FINITE A (@UNIV A)) /\ (@FINITE B (@UNIV B))) -> (@CARD (A -> B) (@UNIV (A -> B))) = (Nat.pow (@CARD B (@UNIV B)) (@CARD A (@UNIV A))). -Axiom thm_FINITE_FUNSPACE_UNIV : forall {A B : Type'}, ((@FINITE A (@UNIV A)) /\ (@FINITE B (@UNIV B))) -> @FINITE (A -> B) (@UNIV (A -> B)). -Axiom thm_HAS_SIZE_BOOL : @HAS_SIZE Prop (@UNIV Prop) (NUMERAL (BIT0 (BIT1 0))). -Axiom thm_CARD_BOOL : (@CARD Prop (@UNIV Prop)) = (NUMERAL (BIT0 (BIT1 0))). -Axiom thm_FINITE_BOOL : @FINITE Prop (@UNIV Prop). -Axiom thm_HAS_SIZE_POWERSET : forall {A : Type'}, forall s : A -> Prop, forall n : nat, (@HAS_SIZE A s n) -> @HAS_SIZE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_155 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_155 (@SUBSET A t s) t)) (Nat.pow (NUMERAL (BIT0 (BIT1 0))) n). -Axiom thm_CARD_POWERSET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_156 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_156 (@SUBSET A t s) t))) = (Nat.pow (NUMERAL (BIT0 (BIT1 0))) (@CARD A s)). -Axiom thm_FINITE_POWERSET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> @FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_157 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_157 (@SUBSET A t s) t)). -Axiom thm_FINITE_POWERSET_EQ : forall {A : Type'}, forall s : A -> Prop, (@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_158 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_158 (@SUBSET A t s) t))) = (@FINITE A s). -Axiom thm_FINITE_RESTRICTED_SUBSETS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@FINITE A s) -> @FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_160 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_160 ((@SUBSET A t s) /\ (P t)) t)). -Axiom thm_FINITE_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@FINITE A (@UNIONS A s)) = ((@FINITE (A -> Prop) s) /\ (forall t : A -> Prop, (@IN (A -> Prop) t s) -> @FINITE A t)). -Axiom thm_FINITE_CARD_LE_UNIONS : forall {A B : Type'}, forall s : A -> Prop, forall t : A -> B -> Prop, forall m : nat, forall n : nat, ((forall x : A, (@IN A x s) -> (@FINITE B (t x)) /\ (Peano.le (@CARD B (t x)) n)) /\ ((@FINITE A s) /\ (Peano.le (@CARD A s) m))) -> (@FINITE B (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_161 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_161 (@IN A x s) (t x))))) /\ (Peano.le (@CARD B (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_162 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_162 (@IN A x s) (t x))))) (Nat.mul m n)). -Axiom thm_POWERSET_CLAUSES : forall {A : Type'}, ((@GSPEC (A -> Prop) (fun GEN_PVAR_163 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_163 (@SUBSET A s (@EMPTY A)) s)) = (@INSERT (A -> Prop) (@EMPTY A) (@EMPTY (A -> Prop)))) /\ (forall a : A, forall t : A -> Prop, (@GSPEC (A -> Prop) (fun GEN_PVAR_164 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_164 (@SUBSET A s (@INSERT A a t)) s)) = (@UNION (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_165 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_165 (@SUBSET A s t) s)) (@IMAGE (A -> Prop) (A -> Prop) (fun s : A -> Prop => @INSERT A a s) (@GSPEC (A -> Prop) (fun GEN_PVAR_166 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_166 (@SUBSET A s t) s))))). -Axiom thm_FINITE_IMAGE_INFINITE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, ((@INFINITE A s) /\ (@FINITE B (@IMAGE A B f s))) -> exists a : A, (@IN A a s) /\ (@INFINITE A (@GSPEC A (fun GEN_PVAR_171 : A => exists x : A, @SETSPEC A GEN_PVAR_171 ((@IN A x s) /\ ((f x) = (f a))) x))). -Axiom thm_FINITE_RESTRICTED_POWERSET : forall {A : Type'}, forall s : A -> Prop, forall n : nat, (@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_176 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_176 ((@SUBSET A t s) /\ (@HAS_SIZE A t n)) t))) = ((@FINITE A s) \/ (n = (NUMERAL 0))). -Axiom thm_FINITE_RESTRICTED_FUNSPACE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall k : A -> B, ((@FINITE A s) /\ (@FINITE B t)) -> @FINITE (A -> B) (@GSPEC (A -> B) (fun GEN_PVAR_180 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_180 ((@SUBSET B (@IMAGE A B f s) t) /\ (@SUBSET A (@GSPEC A (fun GEN_PVAR_179 : A => exists x : A, @SETSPEC A GEN_PVAR_179 (~ ((f x) = (k x))) x)) s)) f)). -Axiom thm_NUMSEG_CLAUSES_LT : ((@GSPEC nat (fun GEN_PVAR_181 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_181 (Peano.lt i (NUMERAL 0)) i)) = (@EMPTY nat)) /\ (forall k : nat, (@GSPEC nat (fun GEN_PVAR_182 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_182 (Peano.lt i (S k)) i)) = (@INSERT nat k (@GSPEC nat (fun GEN_PVAR_183 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_183 (Peano.lt i k) i)))). -Axiom thm_HAS_SIZE_NUMSEG_LT : forall n : nat, @HAS_SIZE nat (@GSPEC nat (fun GEN_PVAR_184 : nat => exists m : nat, @SETSPEC nat GEN_PVAR_184 (Peano.lt m n) m)) n. -Axiom thm_CARD_NUMSEG_LT : forall n : nat, (@CARD nat (@GSPEC nat (fun GEN_PVAR_185 : nat => exists m : nat, @SETSPEC nat GEN_PVAR_185 (Peano.lt m n) m))) = n. -Axiom thm_FINITE_NUMSEG_LT : forall n : nat, @FINITE nat (@GSPEC nat (fun GEN_PVAR_186 : nat => exists m : nat, @SETSPEC nat GEN_PVAR_186 (Peano.lt m n) m)). -Axiom thm_NUMSEG_CLAUSES_LE : ((@GSPEC nat (fun GEN_PVAR_187 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_187 (Peano.le i (NUMERAL 0)) i)) = (@INSERT nat (NUMERAL 0) (@EMPTY nat))) /\ (forall k : nat, (@GSPEC nat (fun GEN_PVAR_188 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_188 (Peano.le i (S k)) i)) = (@INSERT nat (S k) (@GSPEC nat (fun GEN_PVAR_189 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_189 (Peano.le i k) i)))). -Axiom thm_HAS_SIZE_NUMSEG_LE : forall n : nat, @HAS_SIZE nat (@GSPEC nat (fun GEN_PVAR_190 : nat => exists m : nat, @SETSPEC nat GEN_PVAR_190 (Peano.le m n) m)) (Nat.add n (NUMERAL (BIT1 0))). -Axiom thm_FINITE_NUMSEG_LE : forall n : nat, @FINITE nat (@GSPEC nat (fun GEN_PVAR_191 : nat => exists m : nat, @SETSPEC nat GEN_PVAR_191 (Peano.le m n) m)). -Axiom thm_CARD_NUMSEG_LE : forall n : nat, (@CARD nat (@GSPEC nat (fun GEN_PVAR_192 : nat => exists m : nat, @SETSPEC nat GEN_PVAR_192 (Peano.le m n) m))) = (Nat.add n (NUMERAL (BIT1 0))). -Axiom thm_num_FINITE : forall s : nat -> Prop, (@FINITE nat s) = (exists a : nat, forall x : nat, (@IN nat x s) -> Peano.le x a). -Axiom thm_num_FINITE_AVOID : forall s : nat -> Prop, (@FINITE nat s) -> exists a : nat, ~ (@IN nat a s). -Axiom thm_num_INFINITE_EQ : forall s : nat -> Prop, (@INFINITE nat s) = (forall N : nat, exists n : nat, (Peano.le N n) /\ (@IN nat n s)). -Axiom thm_num_INFINITE : @INFINITE nat (@UNIV nat). -Axiom thm_string_INFINITE : @INFINITE (list Ascii.ascii) (@UNIV (list Ascii.ascii)). -Axiom thm_FINITE_REAL_INTERVAL : (forall a : R, ~ (@FINITE R (@GSPEC R (fun GEN_PVAR_202 : R => exists x : R, @SETSPEC R GEN_PVAR_202 (Rlt a x) x)))) /\ ((forall a : R, ~ (@FINITE R (@GSPEC R (fun GEN_PVAR_203 : R => exists x : R, @SETSPEC R GEN_PVAR_203 (Rle a x) x)))) /\ ((forall b : R, ~ (@FINITE R (@GSPEC R (fun GEN_PVAR_204 : R => exists x : R, @SETSPEC R GEN_PVAR_204 (Rlt x b) x)))) /\ ((forall b : R, ~ (@FINITE R (@GSPEC R (fun GEN_PVAR_205 : R => exists x : R, @SETSPEC R GEN_PVAR_205 (Rle x b) x)))) /\ ((forall a : R, forall b : R, (@FINITE R (@GSPEC R (fun GEN_PVAR_206 : R => exists x : R, @SETSPEC R GEN_PVAR_206 ((Rlt a x) /\ (Rlt x b)) x))) = (Rle b a)) /\ ((forall a : R, forall b : R, (@FINITE R (@GSPEC R (fun GEN_PVAR_207 : R => exists x : R, @SETSPEC R GEN_PVAR_207 ((Rle a x) /\ (Rlt x b)) x))) = (Rle b a)) /\ ((forall a : R, forall b : R, (@FINITE R (@GSPEC R (fun GEN_PVAR_208 : R => exists x : R, @SETSPEC R GEN_PVAR_208 ((Rlt a x) /\ (Rle x b)) x))) = (Rle b a)) /\ (forall a : R, forall b : R, (@FINITE R (@GSPEC R (fun GEN_PVAR_209 : R => exists x : R, @SETSPEC R GEN_PVAR_209 ((Rle a x) /\ (Rle x b)) x))) = (Rle b a)))))))). -Axiom thm_real_INFINITE : @INFINITE R (@UNIV R). -Axiom thm_HAS_SIZE_INDEX : forall {A : Type'}, forall s : A -> Prop, forall n : nat, (@HAS_SIZE A s n) -> exists f : nat -> A, (forall m : nat, (Peano.lt m n) -> @IN A (f m) s) /\ (forall x : A, (@IN A x s) -> @ex1 nat (fun m : nat => (Peano.lt m n) /\ ((f m) = x))). -Axiom thm_INFINITE_ENUMERATE : forall s : nat -> Prop, (@INFINITE nat s) -> exists r : nat -> nat, (forall m : nat, forall n : nat, (Peano.lt m n) -> Peano.lt (r m) (r n)) /\ ((@IMAGE nat nat r (@UNIV nat)) = s). -Axiom thm_INFINITE_ENUMERATE_EQ : forall s : nat -> Prop, (@INFINITE nat s) = (exists r : nat -> nat, (forall m : nat, forall n : nat, (Peano.lt m n) -> Peano.lt (r m) (r n)) /\ ((@IMAGE nat nat r (@UNIV nat)) = s)). -Axiom thm_INFINITE_ENUMERATE_SUBSET : forall {A : Type'}, forall s : A -> Prop, (@INFINITE A s) = (exists f : nat -> A, (forall x : nat, @IN A (f x) s) /\ (forall x : nat, forall y : nat, ((f x) = (f y)) -> x = y)). -Axiom thm_set_of_list : forall {A : Type'} (h : A) (t : list A), ((@set_of_list A (@nil A)) = (@EMPTY A)) /\ ((@set_of_list A (@cons A h t)) = (@INSERT A h (@set_of_list A t))). -Axiom thm_list_of_set : forall {A : Type'}, forall s : A -> Prop, (@list_of_set A s) = (@ε (list A) (fun l : list A => ((@set_of_list A l) = s) /\ ((@List.length A l) = (@CARD A s)))). -Axiom thm_LIST_OF_SET_PROPERTIES : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> ((@set_of_list A (@list_of_set A s)) = s) /\ ((@List.length A (@list_of_set A s)) = (@CARD A s)). -Axiom thm_SET_OF_LIST_OF_SET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> (@set_of_list A (@list_of_set A s)) = s. -Axiom thm_LENGTH_LIST_OF_SET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> (@List.length A (@list_of_set A s)) = (@CARD A s). -Axiom thm_MEM_LIST_OF_SET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> forall x : A, (@List.In A x (@list_of_set A s)) = (@IN A x s). -Axiom thm_FINITE_SET_OF_LIST : forall {A : Type'}, forall l : list A, @FINITE A (@set_of_list A l). -Axiom thm_IN_SET_OF_LIST : forall {A : Type'}, forall x : A, forall l : list A, (@IN A x (@set_of_list A l)) = (@List.In A x l). -Axiom thm_SET_OF_LIST_APPEND : forall {A : Type'}, forall l1 : list A, forall l2 : list A, (@set_of_list A (@List.app A l1 l2)) = (@UNION A (@set_of_list A l1) (@set_of_list A l2)). -Axiom thm_SET_OF_LIST_MAP : forall {A B : Type'}, forall f : A -> B, forall l : list A, (@set_of_list B (@List.map A B f l)) = (@IMAGE A B f (@set_of_list A l)). -Axiom thm_SET_OF_LIST_EQ_EMPTY : forall {A : Type'}, forall l : list A, ((@set_of_list A l) = (@EMPTY A)) = (l = (@nil A)). -Axiom thm_LIST_OF_SET_EMPTY : forall {A : Type'}, (@list_of_set A (@EMPTY A)) = (@nil A). -Axiom thm_LIST_OF_SET_SING : forall {A : Type'}, forall a : A, (@list_of_set A (@INSERT A a (@EMPTY A))) = (@cons A a (@nil A)). -Axiom thm_pairwise : forall {A : Type'}, forall s : A -> Prop, forall r : A -> A -> Prop, (@pairwise A r s) = (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> r x y). -Axiom thm_PAIRWISE_EMPTY : forall {A : Type'}, forall r : A -> A -> Prop, (@pairwise A r (@EMPTY A)) = True. -Axiom thm_PAIRWISE_SING : forall {A : Type'}, forall r : A -> A -> Prop, forall x : A, (@pairwise A r (@INSERT A x (@EMPTY A))) = True. -Axiom thm_PAIRWISE_IMP : forall {A : Type'}, forall P : A -> A -> Prop, forall Q : A -> A -> Prop, forall s : A -> Prop, ((@pairwise A P s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((P x y) /\ (~ (x = y))))) -> Q x y)) -> @pairwise A Q s. -Axiom thm_PAIRWISE_MONO : forall {A : Type'}, forall r : A -> A -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@pairwise A r s) /\ (@SUBSET A t s)) -> @pairwise A r t. -Axiom thm_PAIRWISE_AND : forall {A : Type'}, forall R' : A -> A -> Prop, forall R'' : A -> A -> Prop, forall s : A -> Prop, ((@pairwise A R' s) /\ (@pairwise A R'' s)) = (@pairwise A (fun x : A => fun y : A => (R' x y) /\ (R'' x y)) s). -Axiom thm_PAIRWISE_INSERT : forall {A : Type'}, forall r : A -> A -> Prop, forall x : A, forall s : A -> Prop, (@pairwise A r (@INSERT A x s)) = ((forall y : A, ((@IN A y s) /\ (~ (y = x))) -> (r x y) /\ (r y x)) /\ (@pairwise A r s)). -Axiom thm_PAIRWISE_INSERT_SYMMETRIC : forall {A : Type'}, forall r : A -> A -> Prop, forall x : A, forall s : A -> Prop, (forall y : A, (@IN A y s) -> (r x y) = (r y x)) -> (@pairwise A r (@INSERT A x s)) = ((forall y : A, ((@IN A y s) /\ (~ (y = x))) -> r x y) /\ (@pairwise A r s)). -Axiom thm_PAIRWISE_IMAGE : forall {A B : Type'} (s : A -> Prop), forall r : B -> B -> Prop, forall f : A -> B, (@pairwise B r (@IMAGE A B f s)) = (@pairwise A (fun x : A => fun y : A => (~ ((f x) = (f y))) -> r (f x) (f y)) s). -Axiom thm_PAIRWISE_UNION : forall {A : Type'}, forall R' : A -> A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@pairwise A R' (@UNION A s t)) = ((@pairwise A R' s) /\ ((@pairwise A R' t) /\ (forall x : A, forall y : A, ((@IN A x (@DIFF A s t)) /\ (@IN A y (@DIFF A t s))) -> (R' x y) /\ (R' y x)))). -Axiom thm_PAIRWISE_CHAIN_UNIONS : forall {A : Type'}, forall R' : A -> A -> Prop, forall c : (A -> Prop) -> Prop, ((forall s : A -> Prop, (@IN (A -> Prop) s c) -> @pairwise A R' s) /\ (forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s c) /\ (@IN (A -> Prop) t c)) -> (@SUBSET A s t) \/ (@SUBSET A t s))) -> @pairwise A R' (@UNIONS A c). -Axiom thm_DIFF_UNIONS_PAIRWISE_DISJOINT : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : (A -> Prop) -> Prop, ((@pairwise (A -> Prop) (@DISJOINT A) s) /\ (@SUBSET (A -> Prop) t s)) -> (@DIFF A (@UNIONS A s) (@UNIONS A t)) = (@UNIONS A (@DIFF (A -> Prop) s t)). -Axiom thm_INTER_UNIONS_PAIRWISE_DISJOINT : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : (A -> Prop) -> Prop, (@pairwise (A -> Prop) (@DISJOINT A) (@UNION (A -> Prop) s t)) -> (@INTER A (@UNIONS A s) (@UNIONS A t)) = (@UNIONS A (@INTER (A -> Prop) s t)). -Axiom thm_PSUBSET_UNIONS_PAIRWISE_DISJOINT : forall {A : Type'}, forall u : (A -> Prop) -> Prop, forall v : (A -> Prop) -> Prop, ((@pairwise (A -> Prop) (@DISJOINT A) v) /\ (@PSUBSET (A -> Prop) u (@DELETE (A -> Prop) v (@EMPTY A)))) -> @PSUBSET A (@UNIONS A u) (@UNIONS A v). -Axiom thm_UNION_OF : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, (@UNION_OF A P Q) = (fun s : A -> Prop => exists u : (A -> Prop) -> Prop, (P u) /\ ((forall c : A -> Prop, (@IN (A -> Prop) c u) -> Q c) /\ ((@UNIONS A u) = s))). -Axiom thm_INTERSECTION_OF : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, (@INTERSECTION_OF A P Q) = (fun s : A -> Prop => exists u : (A -> Prop) -> Prop, (P u) /\ ((forall c : A -> Prop, (@IN (A -> Prop) c u) -> Q c) /\ ((@INTERS A u) = s))). -Axiom thm_UNION_OF_INC : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, forall s : A -> Prop, ((P (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) /\ (Q s)) -> @UNION_OF A P Q s. -Axiom thm_INTERSECTION_OF_INC : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, forall s : A -> Prop, ((P (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) /\ (Q s)) -> @INTERSECTION_OF A P Q s. -Axiom thm_UNION_OF_MONO : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, forall Q' : (A -> Prop) -> Prop, forall s : A -> Prop, ((@UNION_OF A P Q s) /\ (forall x : A -> Prop, (Q x) -> Q' x)) -> @UNION_OF A P Q' s. -Axiom thm_INTERSECTION_OF_MONO : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, forall Q' : (A -> Prop) -> Prop, forall s : A -> Prop, ((@INTERSECTION_OF A P Q s) /\ (forall x : A -> Prop, (Q x) -> Q' x)) -> @INTERSECTION_OF A P Q' s. -Axiom thm_FORALL_UNION_OF : forall {A : Type'} (P : ((A -> Prop) -> Prop) -> Prop) (Q : (A -> Prop) -> Prop) (R' : (A -> Prop) -> Prop), (forall s : A -> Prop, (@UNION_OF A P Q s) -> R' s) = (forall t : (A -> Prop) -> Prop, ((P t) /\ (forall c : A -> Prop, (@IN (A -> Prop) c t) -> Q c)) -> R' (@UNIONS A t)). -Axiom thm_FORALL_INTERSECTION_OF : forall {A : Type'} (P : ((A -> Prop) -> Prop) -> Prop) (Q : (A -> Prop) -> Prop) (R' : (A -> Prop) -> Prop), (forall s : A -> Prop, (@INTERSECTION_OF A P Q s) -> R' s) = (forall t : (A -> Prop) -> Prop, ((P t) /\ (forall c : A -> Prop, (@IN (A -> Prop) c t) -> Q c)) -> R' (@INTERS A t)). -Axiom thm_UNION_OF_EMPTY : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, (P (@EMPTY (A -> Prop))) -> @UNION_OF A P Q (@EMPTY A). -Axiom thm_INTERSECTION_OF_EMPTY : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, (P (@EMPTY (A -> Prop))) -> @INTERSECTION_OF A P Q (@UNIV A). -Axiom thm_ARBITRARY : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@ARBITRARY A s) = True. -Axiom thm_ARBITRARY_UNION_OF_ALT : forall {A : Type'}, forall B : (A -> Prop) -> Prop, forall s : A -> Prop, (@UNION_OF A (@ARBITRARY A) B s) = (forall x : A, (@IN A x s) -> exists u : A -> Prop, (@IN (A -> Prop) u B) /\ ((@IN A x u) /\ (@SUBSET A u s))). -Axiom thm_ARBITRARY_UNION_OF_EMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, @UNION_OF A (@ARBITRARY A) P (@EMPTY A). -Axiom thm_ARBITRARY_INTERSECTION_OF_EMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, @INTERSECTION_OF A (@ARBITRARY A) P (@UNIV A). -Axiom thm_ARBITRARY_UNION_OF_INC : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (P s) -> @UNION_OF A (@ARBITRARY A) P s. -Axiom thm_ARBITRARY_INTERSECTION_OF_INC : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (P s) -> @INTERSECTION_OF A (@ARBITRARY A) P s. -Axiom thm_ARBITRARY_UNION_OF_COMPLEMENT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@UNION_OF A (@ARBITRARY A) P s) = (@INTERSECTION_OF A (@ARBITRARY A) (fun s' : A -> Prop => P (@DIFF A (@UNIV A) s')) (@DIFF A (@UNIV A) s)). -Axiom thm_ARBITRARY_INTERSECTION_OF_COMPLEMENT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@INTERSECTION_OF A (@ARBITRARY A) P s) = (@UNION_OF A (@ARBITRARY A) (fun s' : A -> Prop => P (@DIFF A (@UNIV A) s')) (@DIFF A (@UNIV A) s)). -Axiom thm_ARBITRARY_UNION_OF_IDEMPOT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@UNION_OF A (@ARBITRARY A) (@UNION_OF A (@ARBITRARY A) P)) = (@UNION_OF A (@ARBITRARY A) P). -Axiom thm_ARBITRARY_INTERSECTION_OF_IDEMPOT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@INTERSECTION_OF A (@ARBITRARY A) (@INTERSECTION_OF A (@ARBITRARY A) P)) = (@INTERSECTION_OF A (@ARBITRARY A) P). -Axiom thm_ARBITRARY_UNION_OF_UNIONS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @UNION_OF A (@ARBITRARY A) P s) -> @UNION_OF A (@ARBITRARY A) P (@UNIONS A u). -Axiom thm_ARBITRARY_UNION_OF_UNION : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@ARBITRARY A) P s) /\ (@UNION_OF A (@ARBITRARY A) P t)) -> @UNION_OF A (@ARBITRARY A) P (@UNION A s t). -Axiom thm_ARBITRARY_INTERSECTION_OF_INTERS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @INTERSECTION_OF A (@ARBITRARY A) P s) -> @INTERSECTION_OF A (@ARBITRARY A) P (@INTERS A u). -Axiom thm_ARBITRARY_INTERSECTION_OF_INTER : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@ARBITRARY A) P s) /\ (@INTERSECTION_OF A (@ARBITRARY A) P t)) -> @INTERSECTION_OF A (@ARBITRARY A) P (@INTER A s t). -Axiom thm_ARBITRARY_UNION_OF_INTER_EQ : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@ARBITRARY A) P s) /\ (@UNION_OF A (@ARBITRARY A) P t)) -> @UNION_OF A (@ARBITRARY A) P (@INTER A s t)) = (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> @UNION_OF A (@ARBITRARY A) P (@INTER A s t)). -Axiom thm_ARBITRARY_UNION_OF_INTER : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@INTER A s t)) -> forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@ARBITRARY A) P s) /\ (@UNION_OF A (@ARBITRARY A) P t)) -> @UNION_OF A (@ARBITRARY A) P (@INTER A s t). -Axiom thm_ARBITRARY_INTERSECTION_OF_UNION_EQ : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@ARBITRARY A) P s) /\ (@INTERSECTION_OF A (@ARBITRARY A) P t)) -> @INTERSECTION_OF A (@ARBITRARY A) P (@UNION A s t)) = (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> @INTERSECTION_OF A (@ARBITRARY A) P (@UNION A s t)). -Axiom thm_ARBITRARY_INTERSECTION_OF_UNION : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@UNION A s t)) -> forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@ARBITRARY A) P s) /\ (@INTERSECTION_OF A (@ARBITRARY A) P t)) -> @INTERSECTION_OF A (@ARBITRARY A) P (@UNION A s t). -Axiom thm_FINITE_UNION_OF_EMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, @UNION_OF A (@FINITE (A -> Prop)) P (@EMPTY A). -Axiom thm_FINITE_INTERSECTION_OF_EMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, @INTERSECTION_OF A (@FINITE (A -> Prop)) P (@UNIV A). -Axiom thm_FINITE_UNION_OF_INC : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (P s) -> @UNION_OF A (@FINITE (A -> Prop)) P s. -Axiom thm_FINITE_INTERSECTION_OF_INC : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (P s) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P s. -Axiom thm_FINITE_UNION_OF_COMPLEMENT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@UNION_OF A (@FINITE (A -> Prop)) P s) = (@INTERSECTION_OF A (@FINITE (A -> Prop)) (fun s' : A -> Prop => P (@DIFF A (@UNIV A) s')) (@DIFF A (@UNIV A) s)). -Axiom thm_FINITE_INTERSECTION_OF_COMPLEMENT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@INTERSECTION_OF A (@FINITE (A -> Prop)) P s) = (@UNION_OF A (@FINITE (A -> Prop)) (fun s' : A -> Prop => P (@DIFF A (@UNIV A) s')) (@DIFF A (@UNIV A) s)). -Axiom thm_FINITE_UNION_OF_IDEMPOT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@UNION_OF A (@FINITE (A -> Prop)) (@UNION_OF A (@FINITE (A -> Prop)) P)) = (@UNION_OF A (@FINITE (A -> Prop)) P). -Axiom thm_FINITE_INTERSECTION_OF_IDEMPOT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@INTERSECTION_OF A (@FINITE (A -> Prop)) (@INTERSECTION_OF A (@FINITE (A -> Prop)) P)) = (@INTERSECTION_OF A (@FINITE (A -> Prop)) P). -Axiom thm_FINITE_UNION_OF_UNIONS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) u) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @UNION_OF A (@FINITE (A -> Prop)) P s)) -> @UNION_OF A (@FINITE (A -> Prop)) P (@UNIONS A u). -Axiom thm_FINITE_UNION_OF_UNION : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@FINITE (A -> Prop)) P s) /\ (@UNION_OF A (@FINITE (A -> Prop)) P t)) -> @UNION_OF A (@FINITE (A -> Prop)) P (@UNION A s t). -Axiom thm_FINITE_INTERSECTION_OF_INTERS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) u) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P s)) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P (@INTERS A u). -Axiom thm_FINITE_INTERSECTION_OF_INTER : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@FINITE (A -> Prop)) P s) /\ (@INTERSECTION_OF A (@FINITE (A -> Prop)) P t)) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P (@INTER A s t). -Axiom thm_FINITE_UNION_OF_INTER_EQ : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@FINITE (A -> Prop)) P s) /\ (@UNION_OF A (@FINITE (A -> Prop)) P t)) -> @UNION_OF A (@FINITE (A -> Prop)) P (@INTER A s t)) = (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> @UNION_OF A (@FINITE (A -> Prop)) P (@INTER A s t)). -Axiom thm_FINITE_UNION_OF_INTER : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@INTER A s t)) -> forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@FINITE (A -> Prop)) P s) /\ (@UNION_OF A (@FINITE (A -> Prop)) P t)) -> @UNION_OF A (@FINITE (A -> Prop)) P (@INTER A s t). -Axiom thm_FINITE_INTERSECTION_OF_UNION_EQ : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@FINITE (A -> Prop)) P s) /\ (@INTERSECTION_OF A (@FINITE (A -> Prop)) P t)) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P (@UNION A s t)) = (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P (@UNION A s t)). -Axiom thm_FINITE_INTERSECTION_OF_UNION : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@UNION A s t)) -> forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@FINITE (A -> Prop)) P s) /\ (@INTERSECTION_OF A (@FINITE (A -> Prop)) P t)) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P (@UNION A s t). -Axiom thm_CARD_SET_OF_LIST_LE : forall {A : Type'}, forall l : list A, Peano.le (@CARD A (@set_of_list A l)) (@List.length A l). -Axiom thm_HAS_SIZE_SET_OF_LIST : forall {A : Type'}, forall l : list A, (@HAS_SIZE A (@set_of_list A l) (@List.length A l)) = (@List.ForallOrdPairs A (fun x : A => fun y : A => ~ (x = y)) l). -Axiom thm_SURJECTIVE_IFF_INJECTIVE_GEN : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, ((@FINITE A s) /\ ((@FINITE B t) /\ (((@CARD A s) = (@CARD B t)) /\ (@SUBSET B (@IMAGE A B f s) t)))) -> (forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ ((f x) = y)) = (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y). -Axiom thm_SURJECTIVE_IFF_INJECTIVE : forall {A : Type'}, forall s : A -> Prop, forall f : A -> A, ((@FINITE A s) /\ (@SUBSET A (@IMAGE A A f s) s)) -> (forall y : A, (@IN A y s) -> exists x : A, (@IN A x s) /\ ((f x) = y)) = (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y). -Axiom thm_IMAGE_IMP_INJECTIVE_GEN : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, ((@FINITE A s) /\ (((@CARD A s) = (@CARD B t)) /\ ((@IMAGE A B f s) = t))) -> forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y. -Axiom thm_IMAGE_IMP_INJECTIVE : forall {A : Type'}, forall s : A -> Prop, forall f : A -> A, ((@FINITE A s) /\ ((@IMAGE A A f s) = s)) -> forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y. -Axiom thm_HAS_SIZE_IMAGE_INJ_RESTRICT : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, forall P : B -> Prop, forall n : nat, ((@FINITE A s) /\ ((@FINITE B t) /\ (((@CARD A s) = (@CARD B t)) /\ ((@SUBSET B (@IMAGE A B f s) t) /\ ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@HAS_SIZE A (@GSPEC A (fun GEN_PVAR_219 : A => exists x : A, @SETSPEC A GEN_PVAR_219 ((@IN A x s) /\ (P (f x))) x)) n)))))) -> @HAS_SIZE B (@GSPEC B (fun GEN_PVAR_220 : B => exists x : B, @SETSPEC B GEN_PVAR_220 ((@IN B x t) /\ (P x)) x)) n. -Axiom thm_CARD_LE_INJ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ ((@FINITE B t) /\ (Peano.le (@CARD A s) (@CARD B t)))) -> exists f : A -> B, (@SUBSET B (@IMAGE A B f s) t) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y). -Axiom thm_FORALL_IN_CLAUSES : forall {A : Type'}, (forall P : A -> Prop, (forall x : A, (@IN A x (@EMPTY A)) -> P x) = True) /\ (forall P : A -> Prop, forall a : A, forall s : A -> Prop, (forall x : A, (@IN A x (@INSERT A a s)) -> P x) = ((P a) /\ (forall x : A, (@IN A x s) -> P x))). -Axiom thm_EXISTS_IN_CLAUSES : forall {A : Type'}, (forall P : A -> Prop, (exists x : A, (@IN A x (@EMPTY A)) /\ (P x)) = False) /\ (forall P : A -> Prop, forall a : A, forall s : A -> Prop, (exists x : A, (@IN A x (@INSERT A a s)) /\ (P x)) = ((P a) \/ (exists x : A, (@IN A x s) /\ (P x)))). -Axiom thm_INJECTIVE_ON_IMAGE : forall {A B : Type'}, forall f : A -> B, forall u : A -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s u) /\ ((@SUBSET A t u) /\ ((@IMAGE A B f s) = (@IMAGE A B f t)))) -> s = t) = (forall x : A, forall y : A, ((@IN A x u) /\ ((@IN A y u) /\ ((f x) = (f y)))) -> x = y). -Axiom thm_INJECTIVE_IMAGE : forall {A B : Type'}, forall f : A -> B, (forall s : A -> Prop, forall t : A -> Prop, ((@IMAGE A B f s) = (@IMAGE A B f t)) -> s = t) = (forall x : A, forall y : A, ((f x) = (f y)) -> x = y). -Axiom thm_SURJECTIVE_ON_IMAGE : forall {A B : Type'}, forall f : A -> B, forall u : A -> Prop, forall v : B -> Prop, (forall t : B -> Prop, (@SUBSET B t v) -> exists s : A -> Prop, (@SUBSET A s u) /\ ((@IMAGE A B f s) = t)) = (forall y : B, (@IN B y v) -> exists x : A, (@IN A x u) /\ ((f x) = y)). -Axiom thm_SURJECTIVE_IMAGE : forall {A B : Type'}, forall f : A -> B, (forall t : B -> Prop, exists s : A -> Prop, (@IMAGE A B f s) = t) = (forall y : B, exists x : A, (f x) = y). -Axiom thm_INJECTIVE_ON_PREIMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall u : B -> Prop, (forall t : B -> Prop, forall t' : B -> Prop, ((@SUBSET B t u) /\ ((@SUBSET B t' u) /\ ((@GSPEC A (fun GEN_PVAR_222 : A => exists x : A, @SETSPEC A GEN_PVAR_222 ((@IN A x s) /\ (@IN B (f x) t)) x)) = (@GSPEC A (fun GEN_PVAR_223 : A => exists x : A, @SETSPEC A GEN_PVAR_223 ((@IN A x s) /\ (@IN B (f x) t')) x))))) -> t = t') = (@SUBSET B u (@IMAGE A B f s)). -Axiom thm_SURJECTIVE_ON_PREIMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall u : B -> Prop, (forall k : A -> Prop, (@SUBSET A k s) -> exists t : B -> Prop, (@SUBSET B t u) /\ ((@GSPEC A (fun GEN_PVAR_224 : A => exists x : A, @SETSPEC A GEN_PVAR_224 ((@IN A x s) /\ (@IN B (f x) t)) x)) = k)) = ((@SUBSET B (@IMAGE A B f s) u) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y)). -Axiom thm_INJECTIVE_PREIMAGE : forall {A B : Type'}, forall f : A -> B, (forall t : B -> Prop, forall t' : B -> Prop, ((@GSPEC A (fun GEN_PVAR_225 : A => exists x : A, @SETSPEC A GEN_PVAR_225 (@IN B (f x) t) x)) = (@GSPEC A (fun GEN_PVAR_226 : A => exists x : A, @SETSPEC A GEN_PVAR_226 (@IN B (f x) t') x))) -> t = t') = ((@IMAGE A B f (@UNIV A)) = (@UNIV B)). -Axiom thm_SURJECTIVE_PREIMAGE : forall {A B : Type'}, forall f : A -> B, (forall k : A -> Prop, exists t : B -> Prop, (@GSPEC A (fun GEN_PVAR_227 : A => exists x : A, @SETSPEC A GEN_PVAR_227 (@IN B (f x) t) x)) = k) = (forall x : A, forall y : A, ((f x) = (f y)) -> x = y). -Axiom thm_CARD_EQ_BIJECTION : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ ((@FINITE B t) /\ ((@CARD A s) = (@CARD B t)))) -> exists f : A -> B, (forall x : A, (@IN A x s) -> @IN B (f x) t) /\ ((forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ ((f x) = y)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y)). -Axiom thm_CARD_EQ_BIJECTIONS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ ((@FINITE B t) /\ ((@CARD A s) = (@CARD B t)))) -> exists f : A -> B, exists g : B -> A, (forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)). -Axiom thm_CARD_EQ_BIJECTIONS_SPECIAL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall a : A, forall b : B, ((@FINITE A s) /\ ((@FINITE B t) /\ (((@CARD A s) = (@CARD B t)) /\ ((@IN A a s) /\ (@IN B b t))))) -> exists f : A -> B, exists g : B -> A, ((f a) = b) /\ (((g b) = a) /\ ((forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)))). -Axiom thm_BIJECTIONS_HAS_SIZE : forall {A B : Type'} (n : nat), forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, forall g : B -> A, ((forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ ((forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)) /\ (@HAS_SIZE A s n))) -> @HAS_SIZE B t n. -Axiom thm_BIJECTIONS_HAS_SIZE_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, forall g : B -> A, ((forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y))) -> forall n : nat, (@HAS_SIZE A s n) = (@HAS_SIZE B t n). -Axiom thm_BIJECTIONS_CARD_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, forall g : B -> A, (((@FINITE A s) \/ (@FINITE B t)) /\ ((forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)))) -> (@CARD A s) = (@CARD B t). -Axiom thm_WF_FINITE : forall {A : Type'}, forall lt2 : A -> A -> Prop, ((forall x : A, ~ (lt2 x x)) /\ ((forall x : A, forall y : A, forall z : A, ((lt2 x y) /\ (lt2 y z)) -> lt2 x z) /\ (forall x : A, @FINITE A (@GSPEC A (fun GEN_PVAR_229 : A => exists y : A, @SETSPEC A GEN_PVAR_229 (lt2 y x) y))))) -> @WF A lt2. -Axiom thm_WF_PSUBSET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> @WF (A -> Prop) (fun t1 : A -> Prop => fun t2 : A -> Prop => (@PSUBSET A t1 t2) /\ (@SUBSET A t2 s)). -Axiom thm_le_c : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, (@le_c A B s t) = (exists f : A -> B, (forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y)). -Axiom thm_lt_c : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, (@lt_c A B s t) = ((@le_c A B s t) /\ (~ (@le_c B A t s))). -Axiom thm_eq_c : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, (@eq_c A B s t) = (exists f : A -> B, (forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ ((f x) = y)))). -Axiom thm_ge_c : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, (@ge_c A B s t) = (@le_c B A t s). -Axiom thm_gt_c : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, (@gt_c A B s t) = (@lt_c B A t s). -Axiom thm_LE_C : forall {A B : Type'}, forall s : B -> Prop, forall t : A -> Prop, (@le_c B A s t) = (exists g : A -> B, forall x : B, (@IN B x s) -> exists y : A, (@IN A y t) /\ ((g y) = x)). -Axiom thm_GE_C : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@ge_c A B s t) = (exists f : A -> B, forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ (y = (f x))). -Axiom thm_COUNTABLE : forall {A : Type'}, forall t : A -> Prop, (@COUNTABLE A t) = (@ge_c nat A (@UNIV nat) t). -Axiom thm_sup : forall s : R -> Prop, (sup s) = (@ε R (fun a : R => (forall x : R, (@IN R x s) -> Rle x a) /\ (forall b : R, (forall x : R, (@IN R x s) -> Rle x b) -> Rle a b))). -Axiom thm_SUP_EQ : forall s : R -> Prop, forall t : R -> Prop, (forall b : R, (forall x : R, (@IN R x s) -> Rle x b) = (forall x : R, (@IN R x t) -> Rle x b)) -> (sup s) = (sup t). -Axiom thm_SUP : forall s : R -> Prop, ((~ (s = (@EMPTY R))) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle x b)) -> (forall x : R, (@IN R x s) -> Rle x (sup s)) /\ (forall b : R, (forall x : R, (@IN R x s) -> Rle x b) -> Rle (sup s) b). -Axiom thm_SUP_FINITE_LEMMA : forall s : R -> Prop, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> exists b : R, (@IN R b s) /\ (forall x : R, (@IN R x s) -> Rle x b). -Axiom thm_SUP_FINITE : forall s : R -> Prop, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (@IN R (sup s) s) /\ (forall x : R, (@IN R x s) -> Rle x (sup s)). -Axiom thm_REAL_LE_SUP_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rle a (sup s)) = (exists x : R, (@IN R x s) /\ (Rle a x)). -Axiom thm_REAL_SUP_LE_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rle (sup s) a) = (forall x : R, (@IN R x s) -> Rle x a). -Axiom thm_REAL_LT_SUP_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rlt a (sup s)) = (exists x : R, (@IN R x s) /\ (Rlt a x)). -Axiom thm_REAL_SUP_LT_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rlt (sup s) a) = (forall x : R, (@IN R x s) -> Rlt x a). -Axiom thm_REAL_SUP_UNIQUE : forall s : R -> Prop, forall b : R, ((forall x : R, (@IN R x s) -> Rle x b) /\ (forall b' : R, (Rlt b' b) -> exists x : R, (@IN R x s) /\ (Rlt b' x))) -> (sup s) = b. -Axiom thm_REAL_SUP_LE : forall (s : R -> Prop), forall b : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle x b)) -> Rle (sup s) b. -Axiom thm_REAL_SUP_LE_SUBSET : forall s : R -> Prop, forall t : R -> Prop, ((~ (s = (@EMPTY R))) /\ ((@SUBSET R s t) /\ (exists b : R, forall x : R, (@IN R x t) -> Rle x b))) -> Rle (sup s) (sup t). -Axiom thm_REAL_SUP_BOUNDS : forall s : R -> Prop, forall a : R, forall b : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> (Rle a x) /\ (Rle x b))) -> (Rle a (sup s)) /\ (Rle (sup s) b). -Axiom thm_REAL_ABS_SUP_LE : forall s : R -> Prop, forall a : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle (Rabs x) a)) -> Rle (Rabs (sup s)) a. -Axiom thm_REAL_SUP_ASCLOSE : forall s : R -> Prop, forall l : R, forall e : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle (Rabs (Rminus x l)) e)) -> Rle (Rabs (Rminus (sup s) l)) e. -Axiom thm_SUP_UNIQUE_FINITE : forall (a : R), forall s : R -> Prop, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> ((sup s) = a) = ((@IN R a s) /\ (forall y : R, (@IN R y s) -> Rle y a)). -Axiom thm_SUP_INSERT_FINITE : forall x : R, forall s : R -> Prop, (@FINITE R s) -> (sup (@INSERT R x s)) = (@COND R (s = (@EMPTY R)) x (Rmax x (sup s))). -Axiom thm_SUP_SING : forall a : R, (sup (@INSERT R a (@EMPTY R))) = a. -Axiom thm_SUP_INSERT_INSERT : forall a : R, forall b : R, forall s : R -> Prop, (sup (@INSERT R b (@INSERT R a s))) = (sup (@INSERT R (Rmax a b) s)). -Axiom thm_REAL_LE_SUP : forall s : R -> Prop, forall a : R, forall b : R, forall y : R, ((@IN R y s) /\ ((Rle a y) /\ (forall x : R, (@IN R x s) -> Rle x b))) -> Rle a (sup s). -Axiom thm_REAL_SUP_LE_EQ : forall s : R -> Prop, forall y : R, ((~ (s = (@EMPTY R))) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle x b)) -> (Rle (sup s) y) = (forall x : R, (@IN R x s) -> Rle x y). -Axiom thm_SUP_UNIQUE : forall s : R -> Prop, forall b : R, (forall c : R, (forall x : R, (@IN R x s) -> Rle x c) = (Rle b c)) -> (sup s) = b. -Axiom thm_SUP_UNION : forall s : R -> Prop, forall t : R -> Prop, ((~ (s = (@EMPTY R))) /\ ((~ (t = (@EMPTY R))) /\ ((exists b : R, forall x : R, (@IN R x s) -> Rle x b) /\ (exists c : R, forall x : R, (@IN R x t) -> Rle x c)))) -> (sup (@UNION R s t)) = (Rmax (sup s) (sup t)). -Axiom thm_ELEMENT_LE_SUP : forall s : R -> Prop, forall a : R, ((exists b : R, forall x : R, (@IN R x s) -> Rle x b) /\ (@IN R a s)) -> Rle a (sup s). -Axiom thm_SUP_APPROACH : forall s : R -> Prop, forall c : R, ((~ (s = (@EMPTY R))) /\ ((exists b : R, forall x : R, (@IN R x s) -> Rle x b) /\ (Rlt c (sup s)))) -> exists x : R, (@IN R x s) /\ (Rlt c x). -Axiom thm_REAL_MAX_SUP : forall x : R, forall y : R, (Rmax x y) = (sup (@INSERT R x (@INSERT R y (@EMPTY R)))). -Axiom thm_inf : forall s : R -> Prop, (inf s) = (@ε R (fun a : R => (forall x : R, (@IN R x s) -> Rle a x) /\ (forall b : R, (forall x : R, (@IN R x s) -> Rle b x) -> Rle b a))). -Axiom thm_INF_EQ : forall s : R -> Prop, forall t : R -> Prop, (forall a : R, (forall x : R, (@IN R x s) -> Rle a x) = (forall x : R, (@IN R x t) -> Rle a x)) -> (inf s) = (inf t). -Axiom thm_INF : forall s : R -> Prop, ((~ (s = (@EMPTY R))) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle b x)) -> (forall x : R, (@IN R x s) -> Rle (inf s) x) /\ (forall b : R, (forall x : R, (@IN R x s) -> Rle b x) -> Rle b (inf s)). -Axiom thm_INF_FINITE_LEMMA : forall s : R -> Prop, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> exists b : R, (@IN R b s) /\ (forall x : R, (@IN R x s) -> Rle b x). -Axiom thm_INF_FINITE : forall s : R -> Prop, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (@IN R (inf s) s) /\ (forall x : R, (@IN R x s) -> Rle (inf s) x). -Axiom thm_REAL_LE_INF_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rle a (inf s)) = (forall x : R, (@IN R x s) -> Rle a x). -Axiom thm_REAL_INF_LE_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rle (inf s) a) = (exists x : R, (@IN R x s) /\ (Rle x a)). -Axiom thm_REAL_LT_INF_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rlt a (inf s)) = (forall x : R, (@IN R x s) -> Rlt a x). -Axiom thm_REAL_INF_LT_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rlt (inf s) a) = (exists x : R, (@IN R x s) /\ (Rlt x a)). -Axiom thm_REAL_INF_UNIQUE : forall s : R -> Prop, forall b : R, ((forall x : R, (@IN R x s) -> Rle b x) /\ (forall b' : R, (Rlt b b') -> exists x : R, (@IN R x s) /\ (Rlt x b'))) -> (inf s) = b. -Axiom thm_REAL_LE_INF : forall (s : R -> Prop), forall b : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle b x)) -> Rle b (inf s). -Axiom thm_REAL_LE_INF_SUBSET : forall s : R -> Prop, forall t : R -> Prop, ((~ (t = (@EMPTY R))) /\ ((@SUBSET R t s) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle b x))) -> Rle (inf s) (inf t). -Axiom thm_REAL_INF_BOUNDS : forall s : R -> Prop, forall a : R, forall b : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> (Rle a x) /\ (Rle x b))) -> (Rle a (inf s)) /\ (Rle (inf s) b). -Axiom thm_REAL_ABS_INF_LE : forall s : R -> Prop, forall a : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle (Rabs x) a)) -> Rle (Rabs (inf s)) a. -Axiom thm_REAL_INF_ASCLOSE : forall s : R -> Prop, forall l : R, forall e : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle (Rabs (Rminus x l)) e)) -> Rle (Rabs (Rminus (inf s) l)) e. -Axiom thm_INF_UNIQUE_FINITE : forall (a : R), forall s : R -> Prop, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> ((inf s) = a) = ((@IN R a s) /\ (forall y : R, (@IN R y s) -> Rle a y)). -Axiom thm_INF_INSERT_FINITE : forall x : R, forall s : R -> Prop, (@FINITE R s) -> (inf (@INSERT R x s)) = (@COND R (s = (@EMPTY R)) x (Rmin x (inf s))). -Axiom thm_INF_SING : forall a : R, (inf (@INSERT R a (@EMPTY R))) = a. -Axiom thm_INF_INSERT_INSERT : forall a : R, forall b : R, forall s : R -> Prop, (inf (@INSERT R b (@INSERT R a s))) = (inf (@INSERT R (Rmin a b) s)). -Axiom thm_REAL_SUP_EQ_INF : forall s : R -> Prop, ((~ (s = (@EMPTY R))) /\ (exists B : R, forall x : R, (@IN R x s) -> Rle (Rabs x) B)) -> ((sup s) = (inf s)) = (exists a : R, s = (@INSERT R a (@EMPTY R))). -Axiom thm_REAL_INF_LE : forall s : R -> Prop, forall a : R, forall b : R, forall y : R, ((@IN R y s) /\ ((Rle y b) /\ (forall x : R, (@IN R x s) -> Rle a x))) -> Rle (inf s) b. -Axiom thm_REAL_LE_INF_EQ : forall s : R -> Prop, forall y : R, ((~ (s = (@EMPTY R))) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle b x)) -> (Rle y (inf s)) = (forall x : R, (@IN R x s) -> Rle y x). -Axiom thm_INF_UNIQUE : forall s : R -> Prop, forall b : R, (forall c : R, (forall x : R, (@IN R x s) -> Rle c x) = (Rle c b)) -> (inf s) = b. -Axiom thm_INF_UNION : forall s : R -> Prop, forall t : R -> Prop, ((~ (s = (@EMPTY R))) /\ ((~ (t = (@EMPTY R))) /\ ((exists b : R, forall x : R, (@IN R x s) -> Rle b x) /\ (exists c : R, forall x : R, (@IN R x t) -> Rle c x)))) -> (inf (@UNION R s t)) = (Rmin (inf s) (inf t)). -Axiom thm_INF_LE_ELEMENT : forall s : R -> Prop, forall a : R, ((exists b : R, forall x : R, (@IN R x s) -> Rle b x) /\ (@IN R a s)) -> Rle (inf s) a. -Axiom thm_INF_APPROACH : forall s : R -> Prop, forall c : R, ((~ (s = (@EMPTY R))) /\ ((exists b : R, forall x : R, (@IN R x s) -> Rle b x) /\ (Rlt (inf s) c))) -> exists x : R, (@IN R x s) /\ (Rlt x c). -Axiom thm_REAL_MIN_INF : forall x : R, forall y : R, (Rmin x y) = (inf (@INSERT R x (@INSERT R y (@EMPTY R)))). -Axiom thm_has_inf : forall s : R -> Prop, forall b : R, (has_inf s b) = (forall c : R, (forall x : R, (@IN R x s) -> Rle c x) = (Rle c b)). -Axiom thm_has_sup : forall s : R -> Prop, forall b : R, (has_sup s b) = (forall c : R, (forall x : R, (@IN R x s) -> Rle x c) = (Rle b c)). -Axiom thm_HAS_INF_LBOUND : forall s : R -> Prop, forall b : R, forall x : R, ((has_inf s b) /\ (@IN R x s)) -> Rle b x. -Axiom thm_HAS_SUP_UBOUND : forall s : R -> Prop, forall b : R, forall x : R, ((has_sup s b) /\ (@IN R x s)) -> Rle x b. -Axiom thm_HAS_INF_INF : forall s : R -> Prop, forall l : R, (has_inf s l) = ((~ (s = (@EMPTY R))) /\ ((exists b : R, forall x : R, (@IN R x s) -> Rle b x) /\ ((inf s) = l))). -Axiom thm_HAS_SUP_SUP : forall s : R -> Prop, forall l : R, (has_sup s l) = ((~ (s = (@EMPTY R))) /\ ((exists b : R, forall x : R, (@IN R x s) -> Rle x b) /\ ((sup s) = l))). -Axiom thm_INF_EXISTS : forall s : R -> Prop, (exists l : R, has_inf s l) = ((~ (s = (@EMPTY R))) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle b x)). -Axiom thm_SUP_EXISTS : forall s : R -> Prop, (exists l : R, has_sup s l) = ((~ (s = (@EMPTY R))) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle x b)). -Axiom thm_HAS_INF_APPROACH : forall s : R -> Prop, forall l : R, forall c : R, ((has_inf s l) /\ (Rlt l c)) -> exists x : R, (@IN R x s) /\ (Rlt x c). -Axiom thm_HAS_SUP_APPROACH : forall s : R -> Prop, forall l : R, forall c : R, ((has_sup s l) /\ (Rlt c l)) -> exists x : R, (@IN R x s) /\ (Rlt c x). -Axiom thm_HAS_INF : forall s : R -> Prop, forall l : R, (has_inf s l) = ((~ (s = (@EMPTY R))) /\ ((forall x : R, (@IN R x s) -> Rle l x) /\ (forall c : R, (Rlt l c) -> exists x : R, (@IN R x s) /\ (Rlt x c)))). -Axiom thm_HAS_SUP : forall s : R -> Prop, forall l : R, (has_sup s l) = ((~ (s = (@EMPTY R))) /\ ((forall x : R, (@IN R x s) -> Rle x l) /\ (forall c : R, (Rlt c l) -> exists x : R, (@IN R x s) /\ (Rlt c x)))). -Axiom thm_HAS_INF_LE : forall s : R -> Prop, forall t : R -> Prop, forall l : R, forall m : R, ((has_inf s l) /\ ((has_inf t m) /\ (forall y : R, (@IN R y t) -> exists x : R, (@IN R x s) /\ (Rle x y)))) -> Rle l m. -Axiom thm_HAS_SUP_LE : forall s : R -> Prop, forall t : R -> Prop, forall l : R, forall m : R, ((has_sup s l) /\ ((has_sup t m) /\ (forall y : R, (@IN R y t) -> exists x : R, (@IN R x s) /\ (Rle y x)))) -> Rle m l. -Axiom thm_numseg : forall m : nat, forall n : nat, (dotdot m n) = (@GSPEC nat (fun GEN_PVAR_231 : nat => exists x : nat, @SETSPEC nat GEN_PVAR_231 ((Peano.le m x) /\ (Peano.le x n)) x)). -Axiom thm_FINITE_NUMSEG : forall m : nat, forall n : nat, @FINITE nat (dotdot m n). -Axiom thm_NUMSEG_COMBINE_R : forall m : nat, forall p : nat, forall n : nat, ((Peano.le m (Nat.add p (NUMERAL (BIT1 0)))) /\ (Peano.le p n)) -> (@UNION nat (dotdot m p) (dotdot (Nat.add p (NUMERAL (BIT1 0))) n)) = (dotdot m n). -Axiom thm_NUMSEG_COMBINE_L : forall m : nat, forall p : nat, forall n : nat, ((Peano.le m p) /\ (Peano.le p (Nat.add n (NUMERAL (BIT1 0))))) -> (@UNION nat (dotdot m (Nat.sub p (NUMERAL (BIT1 0)))) (dotdot p n)) = (dotdot m n). -Axiom thm_NUMSEG_LREC : forall m : nat, forall n : nat, (Peano.le m n) -> (@INSERT nat m (dotdot (Nat.add m (NUMERAL (BIT1 0))) n)) = (dotdot m n). -Axiom thm_NUMSEG_RREC : forall m : nat, forall n : nat, (Peano.le m n) -> (@INSERT nat n (dotdot m (Nat.sub n (NUMERAL (BIT1 0))))) = (dotdot m n). -Axiom thm_NUMSEG_REC : forall m : nat, forall n : nat, (Peano.le m (S n)) -> (dotdot m (S n)) = (@INSERT nat (S n) (dotdot m n)). -Axiom thm_IN_NUMSEG : forall m : nat, forall n : nat, forall p : nat, (@IN nat p (dotdot m n)) = ((Peano.le m p) /\ (Peano.le p n)). -Axiom thm_IN_NUMSEG_0 : forall m : nat, forall n : nat, (@IN nat m (dotdot (NUMERAL 0) n)) = (Peano.le m n). -Axiom thm_NUMSEG_SING : forall n : nat, (dotdot n n) = (@INSERT nat n (@EMPTY nat)). -Axiom thm_NUMSEG_EMPTY : forall m : nat, forall n : nat, ((dotdot m n) = (@EMPTY nat)) = (Peano.lt n m). -Axiom thm_EMPTY_NUMSEG : forall m : nat, forall n : nat, (Peano.lt n m) -> (dotdot m n) = (@EMPTY nat). -Axiom thm_FINITE_SUBSET_NUMSEG : forall s : nat -> Prop, (@FINITE nat s) = (exists n : nat, @SUBSET nat s (dotdot (NUMERAL 0) n)). -Axiom thm_CARD_NUMSEG_LEMMA : forall m : nat, forall d : nat, (@CARD nat (dotdot m (Nat.add m d))) = (Nat.add d (NUMERAL (BIT1 0))). -Axiom thm_CARD_NUMSEG : forall m : nat, forall n : nat, (@CARD nat (dotdot m n)) = (Nat.sub (Nat.add n (NUMERAL (BIT1 0))) m). -Axiom thm_HAS_SIZE_NUMSEG : forall m : nat, forall n : nat, @HAS_SIZE nat (dotdot m n) (Nat.sub (Nat.add n (NUMERAL (BIT1 0))) m). -Axiom thm_CARD_NUMSEG_1 : forall n : nat, (@CARD nat (dotdot (NUMERAL (BIT1 0)) n)) = n. -Axiom thm_HAS_SIZE_NUMSEG_1 : forall n : nat, @HAS_SIZE nat (dotdot (NUMERAL (BIT1 0)) n) n. -Axiom thm_NUMSEG_CLAUSES : (forall m : nat, (dotdot m (NUMERAL 0)) = (@COND (nat -> Prop) (m = (NUMERAL 0)) (@INSERT nat (NUMERAL 0) (@EMPTY nat)) (@EMPTY nat))) /\ (forall m : nat, forall n : nat, (dotdot m (S n)) = (@COND (nat -> Prop) (Peano.le m (S n)) (@INSERT nat (S n) (dotdot m n)) (dotdot m n))). -Axiom thm_FINITE_INDEX_NUMSEG : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) = (exists f : nat -> A, (forall i : nat, forall j : nat, ((@IN nat i (dotdot (NUMERAL (BIT1 0)) (@CARD A s))) /\ ((@IN nat j (dotdot (NUMERAL (BIT1 0)) (@CARD A s))) /\ ((f i) = (f j)))) -> i = j) /\ (s = (@IMAGE nat A f (dotdot (NUMERAL (BIT1 0)) (@CARD A s))))). -Axiom thm_FINITE_INDEX_NUMBERS : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) = (exists k : nat -> Prop, exists f : nat -> A, (forall i : nat, forall j : nat, ((@IN nat i k) /\ ((@IN nat j k) /\ ((f i) = (f j)))) -> i = j) /\ ((@FINITE nat k) /\ (s = (@IMAGE nat A f k)))). -Axiom thm_INTER_NUMSEG : forall m : nat, forall n : nat, forall p : nat, forall q : nat, (@INTER nat (dotdot m n) (dotdot p q)) = (dotdot (Nat.max m p) (Nat.min n q)). -Axiom thm_DISJOINT_NUMSEG : forall m : nat, forall n : nat, forall p : nat, forall q : nat, (@DISJOINT nat (dotdot m n) (dotdot p q)) = ((Peano.lt n p) \/ ((Peano.lt q m) \/ ((Peano.lt n m) \/ (Peano.lt q p)))). -Axiom thm_NUMSEG_ADD_SPLIT : forall m : nat, forall n : nat, forall p : nat, (Peano.le m (Nat.add n (NUMERAL (BIT1 0)))) -> (dotdot m (Nat.add n p)) = (@UNION nat (dotdot m n) (dotdot (Nat.add n (NUMERAL (BIT1 0))) (Nat.add n p))). -Axiom thm_NUMSEG_OFFSET_IMAGE : forall m : nat, forall n : nat, forall p : nat, (dotdot (Nat.add m p) (Nat.add n p)) = (@IMAGE nat nat (fun i : nat => Nat.add i p) (dotdot m n)). -Axiom thm_SUBSET_NUMSEG : forall m : nat, forall n : nat, forall p : nat, forall q : nat, (@SUBSET nat (dotdot m n) (dotdot p q)) = ((Peano.lt n m) \/ ((Peano.le p m) /\ (Peano.le n q))). -Axiom thm_NUMSEG_LE : forall n : nat, (@GSPEC nat (fun GEN_PVAR_233 : nat => exists x : nat, @SETSPEC nat GEN_PVAR_233 (Peano.le x n) x)) = (dotdot (NUMERAL 0) n). -Axiom thm_NUMSEG_LT : forall n : nat, (@GSPEC nat (fun GEN_PVAR_234 : nat => exists x : nat, @SETSPEC nat GEN_PVAR_234 (Peano.lt x n) x)) = (@COND (nat -> Prop) (n = (NUMERAL 0)) (@EMPTY nat) (dotdot (NUMERAL 0) (Nat.sub n (NUMERAL (BIT1 0))))). -Axiom thm_TOPOLOGICAL_SORT : forall {A : Type'}, forall lt2 : A -> A -> Prop, ((forall x : A, forall y : A, ((lt2 x y) /\ (lt2 y x)) -> x = y) /\ (forall x : A, forall y : A, forall z : A, ((lt2 x y) /\ (lt2 y z)) -> lt2 x z)) -> forall n : nat, forall s : A -> Prop, (@HAS_SIZE A s n) -> exists f : nat -> A, (s = (@IMAGE nat A f (dotdot (NUMERAL (BIT1 0)) n))) /\ (forall j : nat, forall k : nat, ((@IN nat j (dotdot (NUMERAL (BIT1 0)) n)) /\ ((@IN nat k (dotdot (NUMERAL (BIT1 0)) n)) /\ (Peano.lt j k))) -> ~ (lt2 (f k) (f j))). -Axiom thm_FINITE_INT_SEG : (forall l : Z, forall r : Z, @FINITE Z (@GSPEC Z (fun GEN_PVAR_235 : Z => exists x : Z, @SETSPEC Z GEN_PVAR_235 ((int_le l x) /\ (int_le x r)) x))) /\ ((forall l : Z, forall r : Z, @FINITE Z (@GSPEC Z (fun GEN_PVAR_236 : Z => exists x : Z, @SETSPEC Z GEN_PVAR_236 ((int_le l x) /\ (int_lt x r)) x))) /\ ((forall l : Z, forall r : Z, @FINITE Z (@GSPEC Z (fun GEN_PVAR_237 : Z => exists x : Z, @SETSPEC Z GEN_PVAR_237 ((int_lt l x) /\ (int_le x r)) x))) /\ (forall l : Z, forall r : Z, @FINITE Z (@GSPEC Z (fun GEN_PVAR_238 : Z => exists x : Z, @SETSPEC Z GEN_PVAR_238 ((int_lt l x) /\ (int_lt x r)) x))))). -Axiom thm_neutral : forall {A : Type'}, forall op : A -> A -> A, (@neutral A op) = (@ε A (fun x : A => forall y : A, ((op x y) = y) /\ ((op y x) = y))). -Axiom thm_monoidal : forall {A : Type'}, forall op : A -> A -> A, (@monoidal A op) = ((forall x : A, forall y : A, (op x y) = (op y x)) /\ ((forall x : A, forall y : A, forall z : A, (op x (op y z)) = (op (op x y) z)) /\ (forall x : A, (op (@neutral A op) x) = x))). -Axiom thm_MONOIDAL_AC : forall {A : Type'}, forall op : A -> A -> A, (@monoidal A op) -> (forall a : A, (op (@neutral A op) a) = a) /\ ((forall a : A, (op a (@neutral A op)) = a) /\ ((forall a : A, forall b : A, (op a b) = (op b a)) /\ ((forall a : A, forall b : A, forall c : A, (op (op a b) c) = (op a (op b c))) /\ (forall a : A, forall b : A, forall c : A, (op a (op b c)) = (op b (op a c)))))). -Axiom thm_support : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall op : B -> B -> B, (@support A B op f s) = (@GSPEC A (fun GEN_PVAR_239 : A => exists x : A, @SETSPEC A GEN_PVAR_239 ((@IN A x s) /\ (~ ((f x) = (@neutral B op)))) x)). -Axiom thm_iterate : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall op : B -> B -> B, (@iterate A B op s f) = (@COND B (@FINITE A (@support A B op f s)) (@ITSET A B (fun x : A => fun a : B => op (f x) a) (@support A B op f s) (@neutral B op)) (@neutral B op)). -Axiom thm_IN_SUPPORT : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall x : A, forall s : A -> Prop, (@IN A x (@support A B op f s)) = ((@IN A x s) /\ (~ ((f x) = (@neutral B op)))). -Axiom thm_SUPPORT_SUPPORT : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall s : A -> Prop, (@support A B op f (@support A B op f s)) = (@support A B op f s). -Axiom thm_SUPPORT_EMPTY : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (@neutral B op)) = ((@support A B op f s) = (@EMPTY A)). -Axiom thm_SUPPORT_SUBSET : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall s : A -> Prop, @SUBSET A (@support A B op f s) s. -Axiom thm_FINITE_SUPPORT : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall s : A -> Prop, (@FINITE A s) -> @FINITE A (@support A B op f s). -Axiom thm_SUPPORT_CLAUSES : forall {A B C : Type'} (op : C -> C -> C), (forall f : A -> C, (@support A C op f (@EMPTY A)) = (@EMPTY A)) /\ ((forall f : A -> C, forall x : A, forall s : A -> Prop, (@support A C op f (@INSERT A x s)) = (@COND (A -> Prop) ((f x) = (@neutral C op)) (@support A C op f s) (@INSERT A x (@support A C op f s)))) /\ ((forall f : A -> C, forall x : A, forall s : A -> Prop, (@support A C op f (@DELETE A s x)) = (@DELETE A (@support A C op f s) x)) /\ ((forall f : A -> C, forall s : A -> Prop, forall t : A -> Prop, (@support A C op f (@UNION A s t)) = (@UNION A (@support A C op f s) (@support A C op f t))) /\ ((forall f : A -> C, forall s : A -> Prop, forall t : A -> Prop, (@support A C op f (@INTER A s t)) = (@INTER A (@support A C op f s) (@support A C op f t))) /\ ((forall f : A -> C, forall s : A -> Prop, forall t : A -> Prop, (@support A C op f (@DIFF A s t)) = (@DIFF A (@support A C op f s) (@support A C op f t))) /\ (forall f : A -> B, forall g : B -> C, forall s : A -> Prop, (@support B C op g (@IMAGE A B f s)) = (@IMAGE A B f (@support A C op (@o A B C g f) s)))))))). -Axiom thm_SUPPORT_DELTA : forall {A B : Type'}, forall op : B -> B -> B, forall s : A -> Prop, forall f : A -> B, forall a : A, (@support A B op (fun x : A => @COND B (x = a) (f x) (@neutral B op)) s) = (@COND (A -> Prop) (@IN A a s) (@support A B op f (@INSERT A a (@EMPTY A))) (@EMPTY A)). -Axiom thm_FINITE_SUPPORT_DELTA : forall {A B : Type'} (s : A -> Prop), forall op : B -> B -> B, forall f : A -> B, forall a : A, @FINITE A (@support A B op (fun x : A => @COND B (x = a) (f x) (@neutral B op)) s). -Axiom thm_ITERATE_SUPPORT : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall s : A -> Prop, (@iterate A B op (@support A B op f s) f) = (@iterate A B op s f). -Axiom thm_ITERATE_EXPAND_CASES : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall s : A -> Prop, (@iterate A B op s f) = (@COND B (@FINITE A (@support A B op f s)) (@iterate A B op (@support A B op f s) f) (@neutral B op)). -Axiom thm_ITERATE_CLAUSES_GEN : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> (forall f : A -> B, (@iterate A B op (@EMPTY A) f) = (@neutral B op)) /\ (forall f : A -> B, forall x : A, forall s : A -> Prop, (@FINITE A (@support A B op f s)) -> (@iterate A B op (@INSERT A x s) f) = (@COND B (@IN A x s) (@iterate A B op s f) (op (f x) (@iterate A B op s f)))). -Axiom thm_ITERATE_CLAUSES : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> (forall f : A -> C, (@iterate A C op (@EMPTY A) f) = (@neutral C op)) /\ (forall f : B -> C, forall x : B, forall s : B -> Prop, (@FINITE B s) -> (@iterate B C op (@INSERT B x s) f) = (@COND C (@IN B x s) (@iterate B C op s f) (op (f x) (@iterate B C op s f)))). -Axiom thm_ITERATE_UNION : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (@DISJOINT A s t))) -> (@iterate A B op (@UNION A s t) f) = (op (@iterate A B op s f) (@iterate A B op t f)). -Axiom thm_ITERATE_UNION_GEN : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A (@support A B op f s)) /\ ((@FINITE A (@support A B op f t)) /\ (@DISJOINT A (@support A B op f s) (@support A B op f t)))) -> (@iterate A B op (@UNION A s t) f) = (op (@iterate A B op s f) (@iterate A B op t f)). -Axiom thm_ITERATE_DIFF : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@SUBSET A t s)) -> (op (@iterate A B op (@DIFF A s t) f) (@iterate A B op t f)) = (@iterate A B op s f). -Axiom thm_ITERATE_DIFF_GEN : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A (@support A B op f s)) /\ (@SUBSET A (@support A B op f t) (@support A B op f s))) -> (op (@iterate A B op (@DIFF A s t) f) (@iterate A B op t f)) = (@iterate A B op s f). -Axiom thm_ITERATE_INCL_EXCL : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall s : A -> Prop, forall t : A -> Prop, forall f : A -> B, ((@FINITE A s) /\ (@FINITE A t)) -> (op (@iterate A B op s f) (@iterate A B op t f)) = (op (@iterate A B op (@UNION A s t) f) (@iterate A B op (@INTER A s t) f)). -Axiom thm_ITERATE_CLOSED : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall P : B -> Prop, ((P (@neutral B op)) /\ (forall x : B, forall y : B, ((P x) /\ (P y)) -> P (op x y))) -> forall f : A -> B, forall s : A -> Prop, (forall x : A, ((@IN A x s) /\ (~ ((f x) = (@neutral B op)))) -> P (f x)) -> P (@iterate A B op s f). -Axiom thm_ITERATE_RELATED : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall R' : B -> B -> Prop, ((R' (@neutral B op) (@neutral B op)) /\ (forall x1 : B, forall y1 : B, forall x2 : B, forall y2 : B, ((R' x1 x2) /\ (R' y1 y2)) -> R' (op x1 y1) (op x2 y2))) -> forall f : A -> B, forall g : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> R' (f x) (g x))) -> R' (@iterate A B op s f) (@iterate A B op s g). -Axiom thm_ITERATE_EQ_NEUTRAL : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (@neutral B op)) -> (@iterate A B op s f) = (@neutral B op). -Axiom thm_ITERATE_SING : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall x : A, (@iterate A B op (@INSERT A x (@EMPTY A)) f) = (f x). -Axiom thm_ITERATE_CLOSED_NONEMPTY : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall P : B -> Prop, (forall x : B, forall y : B, ((P x) /\ (P y)) -> P (op x y)) -> forall f : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> P (f x)))) -> P (@iterate A B op s f). -Axiom thm_ITERATE_RELATED_NONEMPTY : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall R' : B -> B -> Prop, (forall x1 : B, forall y1 : B, forall x2 : B, forall y2 : B, ((R' x1 x2) /\ (R' y1 y2)) -> R' (op x1 y1) (op x2 y2)) -> forall f : A -> B, forall g : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> R' (f x) (g x)))) -> R' (@iterate A B op s f) (@iterate A B op s g). -Axiom thm_ITERATE_DELETE : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, forall a : A, ((@FINITE A s) /\ (@IN A a s)) -> (op (f a) (@iterate A B op (@DELETE A s a) f)) = (@iterate A B op s f). -Axiom thm_ITERATE_DELTA : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall a : A, forall s : A -> Prop, (@iterate A B op s (fun x : A => @COND B (x = a) (f x) (@neutral B op))) = (@COND B (@IN A a s) (f a) (@neutral B op)). -Axiom thm_ITERATE_IMAGE : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall f : A -> B, forall g : B -> C, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) -> (@iterate B C op (@IMAGE A B f s) g) = (@iterate A C op s (@o A B C g f)). -Axiom thm_ITERATE_BIJECTION : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall p : A -> A, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall y : A, (@IN A y s) -> @ex1 A (fun x : A => (@IN A x s) /\ ((p x) = y)))) -> (@iterate A B op s f) = (@iterate A B op s (@o A A B f p)). -Axiom thm_ITERATE_ITERATE_PRODUCT : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall s : A -> Prop, forall t : A -> B -> Prop, forall x : A -> B -> C, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> @FINITE B (t i))) -> (@iterate A C op s (fun i : A => @iterate B C op (t i) (x i))) = (@iterate (prod A B) C op (@GSPEC (prod A B) (fun GEN_PVAR_243 : prod A B => exists i : A, exists j : B, @SETSPEC (prod A B) GEN_PVAR_243 ((@IN A i s) /\ (@IN B j (t i))) (@pair A B i j))) (@GABS ((prod A B) -> C) (fun f : (prod A B) -> C => forall i : A, forall j : B, @GEQ C (f (@pair A B i j)) (x i j)))). -Axiom thm_ITERATE_EQ : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall g : A -> B, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (g x)) -> (@iterate A B op s f) = (@iterate A B op s g). -Axiom thm_ITERATE_RESTRICT_SET : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall P : A -> Prop, forall s : A -> Prop, forall f : A -> B, (@iterate A B op (@GSPEC A (fun GEN_PVAR_244 : A => exists x : A, @SETSPEC A GEN_PVAR_244 ((@IN A x s) /\ (P x)) x)) f) = (@iterate A B op s (fun x : A => @COND B (P x) (f x) (@neutral B op))). -Axiom thm_ITERATE_EQ_GENERAL : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall s : A -> Prop, forall t : B -> Prop, forall f : A -> C, forall g : B -> C, forall h : A -> B, ((forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ ((h x) = y))) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ ((g (h x)) = (f x)))) -> (@iterate A C op s f) = (@iterate B C op t g). -Axiom thm_ITERATE_EQ_GENERAL_INVERSES : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall s : A -> Prop, forall t : B -> Prop, forall f : A -> C, forall g : B -> C, forall h : A -> B, forall k : B -> A, ((forall y : B, (@IN B y t) -> (@IN A (k y) s) /\ ((h (k y)) = y)) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ (((k (h x)) = x) /\ ((g (h x)) = (f x))))) -> (@iterate A C op s f) = (@iterate B C op t g). -Axiom thm_ITERATE_INJECTION : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall p : A -> A, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((p x) = (p y)))) -> x = y))) -> (@iterate A B op s (@o A A B f p)) = (@iterate A B op s f). -Axiom thm_ITERATE_UNION_NONZERO : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (forall x : A, (@IN A x (@INTER A s t)) -> (f x) = (@neutral B op)))) -> (@iterate A B op (@UNION A s t) f) = (op (@iterate A B op s f) (@iterate A B op t f)). -Axiom thm_ITERATE_OP : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall g : A -> B, forall s : A -> Prop, (@FINITE A s) -> (@iterate A B op s (fun x : A => op (f x) (g x))) = (op (@iterate A B op s f) (@iterate A B op s g)). -Axiom thm_ITERATE_SUPERSET : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall u : A -> Prop, forall v : A -> Prop, ((@SUBSET A u v) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (@neutral B op))) -> (@iterate A B op v f) = (@iterate A B op u f). -Axiom thm_ITERATE_UNIV : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, (@SUBSET A (@support A B op f (@UNIV A)) s) -> (@iterate A B op s f) = (@iterate A B op (@UNIV A) f). -Axiom thm_ITERATE_SWAP : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall f : A -> B -> C, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@iterate A C op s (fun i : A => @iterate B C op t (f i))) = (@iterate B C op t (fun j : B => @iterate A C op s (fun i : A => f i j))). -Axiom thm_ITERATE_IMAGE_NONZERO : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall g : B -> C, forall f : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((~ (x = y)) /\ ((f x) = (f y))))) -> (g (f x)) = (@neutral C op))) -> (@iterate B C op (@IMAGE A B f s) g) = (@iterate A C op s (@o A B C g f)). -Axiom thm_ITERATE_IMAGE_GEN : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall f : A -> B, forall g : A -> C, forall s : A -> Prop, (@FINITE A s) -> (@iterate A C op s g) = (@iterate B C op (@IMAGE A B f s) (fun y : B => @iterate A C op (@GSPEC A (fun GEN_PVAR_247 : A => exists x : A, @SETSPEC A GEN_PVAR_247 ((@IN A x s) /\ ((f x) = y)) x)) g)). -Axiom thm_ITERATE_CASES : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall s : A -> Prop, forall P : A -> Prop, forall f : A -> B, forall g : A -> B, (@FINITE A s) -> (@iterate A B op s (fun x : A => @COND B (P x) (f x) (g x))) = (op (@iterate A B op (@GSPEC A (fun GEN_PVAR_250 : A => exists x : A, @SETSPEC A GEN_PVAR_250 ((@IN A x s) /\ (P x)) x)) f) (@iterate A B op (@GSPEC A (fun GEN_PVAR_251 : A => exists x : A, @SETSPEC A GEN_PVAR_251 ((@IN A x s) /\ (~ (P x))) x)) g)). -Axiom thm_ITERATE_OP_GEN : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall g : A -> B, forall s : A -> Prop, ((@FINITE A (@support A B op f s)) /\ (@FINITE A (@support A B op g s))) -> (@iterate A B op s (fun x : A => op (f x) (g x))) = (op (@iterate A B op s f) (@iterate A B op s g)). -Axiom thm_ITERATE_CLAUSES_NUMSEG : forall {A : Type'} (f : nat -> A), forall op : A -> A -> A, (@monoidal A op) -> (forall m : nat, (@iterate nat A op (dotdot m (NUMERAL 0)) f) = (@COND A (m = (NUMERAL 0)) (f (NUMERAL 0)) (@neutral A op))) /\ (forall m : nat, forall n : nat, (@iterate nat A op (dotdot m (S n)) f) = (@COND A (Peano.le m (S n)) (op (@iterate nat A op (dotdot m n) f) (f (S n))) (@iterate nat A op (dotdot m n) f))). -Axiom thm_ITERATE_CLAUSES_NUMSEG_LT : forall {A : Type'} (f : nat -> A), forall op : A -> A -> A, (@monoidal A op) -> ((@iterate nat A op (@GSPEC nat (fun GEN_PVAR_256 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_256 (Peano.lt i (NUMERAL 0)) i)) f) = (@neutral A op)) /\ (forall k : nat, (@iterate nat A op (@GSPEC nat (fun GEN_PVAR_257 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_257 (Peano.lt i (S k)) i)) f) = (op (@iterate nat A op (@GSPEC nat (fun GEN_PVAR_258 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_258 (Peano.lt i k) i)) f) (f k))). -Axiom thm_ITERATE_CLAUSES_NUMSEG_LE : forall {A : Type'} (f : nat -> A), forall op : A -> A -> A, (@monoidal A op) -> ((@iterate nat A op (@GSPEC nat (fun GEN_PVAR_259 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_259 (Peano.le i (NUMERAL 0)) i)) f) = (f (NUMERAL 0))) /\ (forall k : nat, (@iterate nat A op (@GSPEC nat (fun GEN_PVAR_260 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_260 (Peano.le i (S k)) i)) f) = (op (@iterate nat A op (@GSPEC nat (fun GEN_PVAR_261 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_261 (Peano.le i k) i)) f) (f (S k)))). -Axiom thm_ITERATE_PAIR : forall {A : Type'}, forall op : A -> A -> A, (@monoidal A op) -> forall f : nat -> A, forall m : nat, forall n : nat, (@iterate nat A op (dotdot (Nat.mul (NUMERAL (BIT0 (BIT1 0))) m) (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) n) (NUMERAL (BIT1 0)))) f) = (@iterate nat A op (dotdot m n) (fun i : nat => op (f (Nat.mul (NUMERAL (BIT0 (BIT1 0))) i)) (f (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) i) (NUMERAL (BIT1 0)))))). -Axiom thm_ITERATE_REFLECT : forall {A : Type'}, forall op : A -> A -> A, (@monoidal A op) -> forall x : nat -> A, forall m : nat, forall n : nat, (@iterate nat A op (dotdot m n) x) = (@COND A (Peano.lt n m) (@neutral A op) (@iterate nat A op (dotdot (NUMERAL 0) (Nat.sub n m)) (fun i : nat => x (Nat.sub n i)))). -Axiom thm_ITERATO_SUPPORT : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, (@iterato A K dom neut op ltle (@GSPEC K (fun GEN_PVAR_270 : K => exists i : K, @SETSPEC K GEN_PVAR_270 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i)) f) = (@iterato A K dom neut op ltle k f). -Axiom thm_ITERATO_EXPAND_CASES : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, (@iterato A K dom neut op ltle k f) = (@COND A (@FINITE K (@GSPEC K (fun GEN_PVAR_271 : K => exists i : K, @SETSPEC K GEN_PVAR_271 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i))) (@iterato A K dom neut op ltle (@GSPEC K (fun GEN_PVAR_272 : K => exists i : K, @SETSPEC K GEN_PVAR_272 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i)) f) neut). -Axiom thm_ITERATO_CLAUSES_GEN : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall f : K -> A, ((@iterato A K dom neut op ltle (@EMPTY K) f) = neut) /\ (forall i : K, forall k : K -> Prop, ((@FINITE K (@GSPEC K (fun GEN_PVAR_274 : K => exists j : K, @SETSPEC K GEN_PVAR_274 ((@IN K j k) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) j))) /\ ((forall j : K, (@IN K j k) -> (i = j) \/ ((ltle i j) \/ (ltle j i))) /\ (forall j : K, ((ltle j i) /\ ((@IN K j k) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))) -> j = i))) -> (@iterato A K dom neut op ltle (@INSERT K i k) f) = (@COND A ((@IN A (f i) dom) -> ((f i) = neut) \/ (@IN K i k)) (@iterato A K dom neut op ltle k f) (op (f i) (@iterato A K dom neut op ltle k f)))). -Axiom thm_ITERATO_CLAUSES : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall f : K -> A, ((@iterato A K dom neut op ltle (@EMPTY K) f) = neut) /\ (forall i : K, forall k : K -> Prop, ((@FINITE K (@GSPEC K (fun GEN_PVAR_275 : K => exists i' : K, @SETSPEC K GEN_PVAR_275 ((@IN K i' k) /\ (@IN A (f i') (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i'))) /\ (forall j : K, (@IN K j k) -> (ltle i j) /\ (~ (ltle j i)))) -> (@iterato A K dom neut op ltle (@INSERT K i k) f) = (@COND A ((@IN A (f i) dom) -> ((f i) = neut) \/ (@IN K i k)) (@iterato A K dom neut op ltle k f) (op (f i) (@iterato A K dom neut op ltle k f)))). -Axiom thm_ITERATO_CLAUSES_EXISTS : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall f : K -> A, ((@iterato A K dom neut op ltle (@EMPTY K) f) = neut) /\ (forall k : K -> Prop, ((@FINITE K (@GSPEC K (fun GEN_PVAR_276 : K => exists i : K, @SETSPEC K GEN_PVAR_276 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i))) /\ (~ ((@GSPEC K (fun GEN_PVAR_277 : K => exists i : K, @SETSPEC K GEN_PVAR_277 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i)) = (@EMPTY K)))) -> exists i : K, (@IN K i k) /\ ((@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))) /\ ((@iterato A K dom neut op ltle k f) = (op (f i) (@iterato A K dom neut op ltle (@DELETE K k i) f))))). -Axiom thm_ITERATO_EQ : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, forall g : K -> A, (forall i : K, (@IN K i k) -> (f i) = (g i)) -> (@iterato A K dom neut op ltle k f) = (@iterato A K dom neut op ltle k g). -Axiom thm_ITERATO_INDUCT : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, forall P : A -> Prop, ((P neut) /\ (forall i : K, forall x : A, ((@IN K i k) /\ ((@IN A (f i) dom) /\ ((~ ((f i) = neut)) /\ (P x)))) -> P (op (f i) x))) -> P (@iterato A K dom neut op ltle k f). -Axiom thm_ITERATO_CLOSED : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, forall P : A -> Prop, ((P neut) /\ ((forall x : A, forall y : A, ((P x) /\ (P y)) -> P (op x y)) /\ (forall i : K, ((@IN K i k) /\ ((@IN A (f i) dom) /\ (~ ((f i) = neut)))) -> P (f i)))) -> P (@iterato A K dom neut op ltle k f). -Axiom thm_ITERATO_ITERATE : forall {A K : Type'}, forall op : A -> A -> A, forall ltle : K -> K -> Prop, (@monoidal A op) -> (@iterato A K (@UNIV A) (@neutral A op) op ltle) = (@iterate K A op). -Axiom thm_ITERATO_CLAUSES_NUMSEG_LEFT : forall {A : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall f : nat -> A, forall m : nat, forall n : nat, (@iterato A nat dom neut op Peano.le (dotdot m n) f) = (@COND A (Peano.le m n) (@COND A ((@IN A (f m) dom) -> (f m) = neut) (@iterato A nat dom neut op Peano.le (dotdot (Nat.add m (NUMERAL (BIT1 0))) n) f) (op (f m) (@iterato A nat dom neut op Peano.le (dotdot (Nat.add m (NUMERAL (BIT1 0))) n) f))) neut). -Axiom thm_nproduct : forall {A : Type'}, (@nproduct A) = (@iterate A nat Nat.mul). -Axiom thm_NEUTRAL_MUL : (@neutral nat Nat.mul) = (NUMERAL (BIT1 0)). -Axiom thm_MONOIDAL_MUL : @monoidal nat Nat.mul. -Axiom thm_NPRODUCT_CLAUSES : forall {A B : Type'}, (forall f : A -> nat, (@nproduct A (@EMPTY A) f) = (NUMERAL (BIT1 0))) /\ (forall x : B, forall f : B -> nat, forall s : B -> Prop, (@FINITE B s) -> (@nproduct B (@INSERT B x s) f) = (@COND nat (@IN B x s) (@nproduct B s f) (Nat.mul (f x) (@nproduct B s f)))). -Axiom thm_iproduct : forall {A : Type'}, (@iproduct A) = (@iterate A Z int_mul). -Axiom thm_NEUTRAL_INT_MUL : (@neutral Z int_mul) = (int_of_num (NUMERAL (BIT1 0))). -Axiom thm_MONOIDAL_INT_MUL : @monoidal Z int_mul. -Axiom thm_IPRODUCT_CLAUSES : forall {A B : Type'}, (forall f : A -> Z, (@iproduct A (@EMPTY A) f) = (int_of_num (NUMERAL (BIT1 0)))) /\ (forall x : B, forall f : B -> Z, forall s : B -> Prop, (@FINITE B s) -> (@iproduct B (@INSERT B x s) f) = (@COND Z (@IN B x s) (@iproduct B s f) (int_mul (f x) (@iproduct B s f)))). -Axiom thm_product : forall {A : Type'}, (@product A) = (@iterate A R Rmult). -Axiom thm_NEUTRAL_REAL_MUL : (@neutral R Rmult) = (INR (NUMERAL (BIT1 0))). -Axiom thm_MONOIDAL_REAL_MUL : @monoidal R Rmult. -Axiom thm_PRODUCT_CLAUSES : forall {A B : Type'}, (forall f : A -> R, (@product A (@EMPTY A) f) = (INR (NUMERAL (BIT1 0)))) /\ (forall x : B, forall f : B -> R, forall s : B -> Prop, (@FINITE B s) -> (@product B (@INSERT B x s) f) = (@COND R (@IN B x s) (@product B s f) (Rmult (f x) (@product B s f)))). -Axiom thm_isum : forall {A : Type'}, (@isum A) = (@iterate A Z int_add). -Axiom thm_NEUTRAL_INT_ADD : (@neutral Z int_add) = (int_of_num (NUMERAL 0)). -Axiom thm_MONOIDAL_INT_ADD : @monoidal Z int_add. -Axiom thm_ISUM_CLAUSES : forall {A B : Type'}, (forall f : A -> Z, (@isum A (@EMPTY A) f) = (int_of_num (NUMERAL 0))) /\ (forall x : B, forall f : B -> Z, forall s : B -> Prop, (@FINITE B s) -> (@isum B (@INSERT B x s) f) = (@COND Z (@IN B x s) (@isum B s f) (int_add (f x) (@isum B s f)))). -Axiom thm_nsum : forall {A : Type'}, (@nsum A) = (@iterate A nat Nat.add). -Axiom thm_NEUTRAL_ADD : (@neutral nat Nat.add) = (NUMERAL 0). -Axiom thm_MONOIDAL_ADD : @monoidal nat Nat.add. -Axiom thm_NSUM_DEGENERATE : forall {A : Type'}, forall f : A -> nat, forall s : A -> Prop, (~ (@FINITE A (@GSPEC A (fun GEN_PVAR_286 : A => exists x : A, @SETSPEC A GEN_PVAR_286 ((@IN A x s) /\ (~ ((f x) = (NUMERAL 0)))) x)))) -> (@nsum A s f) = (NUMERAL 0). -Axiom thm_NSUM_CLAUSES : forall {A B : Type'}, (forall f : A -> nat, (@nsum A (@EMPTY A) f) = (NUMERAL 0)) /\ (forall x : B, forall f : B -> nat, forall s : B -> Prop, (@FINITE B s) -> (@nsum B (@INSERT B x s) f) = (@COND nat (@IN B x s) (@nsum B s f) (Nat.add (f x) (@nsum B s f)))). -Axiom thm_NSUM_UNION : forall {A : Type'}, forall f : A -> nat, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (@DISJOINT A s t))) -> (@nsum A (@UNION A s t) f) = (Nat.add (@nsum A s f) (@nsum A t f)). -Axiom thm_NSUM_DIFF : forall {A : Type'}, forall f : A -> nat, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@SUBSET A t s)) -> (@nsum A (@DIFF A s t) f) = (Nat.sub (@nsum A s f) (@nsum A t f)). -Axiom thm_NSUM_INCL_EXCL : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall f : A -> nat, ((@FINITE A s) /\ (@FINITE A t)) -> (Nat.add (@nsum A s f) (@nsum A t f)) = (Nat.add (@nsum A (@UNION A s t) f) (@nsum A (@INTER A s t) f)). -Axiom thm_NSUM_SUPPORT : forall {A : Type'}, forall f : A -> nat, forall s : A -> Prop, (@nsum A (@support A nat Nat.add f s) f) = (@nsum A s f). -Axiom thm_NSUM_ADD : forall {A : Type'}, forall f : A -> nat, forall g : A -> nat, forall s : A -> Prop, (@FINITE A s) -> (@nsum A s (fun x : A => Nat.add (f x) (g x))) = (Nat.add (@nsum A s f) (@nsum A s g)). -Axiom thm_NSUM_ADD_GEN : forall {A : Type'}, forall f : A -> nat, forall g : A -> nat, forall s : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_287 : A => exists x : A, @SETSPEC A GEN_PVAR_287 ((@IN A x s) /\ (~ ((f x) = (NUMERAL 0)))) x))) /\ (@FINITE A (@GSPEC A (fun GEN_PVAR_288 : A => exists x : A, @SETSPEC A GEN_PVAR_288 ((@IN A x s) /\ (~ ((g x) = (NUMERAL 0)))) x)))) -> (@nsum A s (fun x : A => Nat.add (f x) (g x))) = (Nat.add (@nsum A s f) (@nsum A s g)). -Axiom thm_NSUM_EQ_0 : forall {A : Type'}, forall f : A -> nat, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (NUMERAL 0)) -> (@nsum A s f) = (NUMERAL 0). -Axiom thm_NSUM_0 : forall {A : Type'}, forall s : A -> Prop, (@nsum A s (fun n : A => NUMERAL 0)) = (NUMERAL 0). -Axiom thm_NSUM_LMUL : forall {A : Type'}, forall f : A -> nat, forall c : nat, forall s : A -> Prop, (@nsum A s (fun x : A => Nat.mul c (f x))) = (Nat.mul c (@nsum A s f)). -Axiom thm_NSUM_RMUL : forall {A : Type'}, forall f : A -> nat, forall c : nat, forall s : A -> Prop, (@nsum A s (fun x : A => Nat.mul (f x) c)) = (Nat.mul (@nsum A s f) c). -Axiom thm_NSUM_LE : forall {A : Type'}, forall f : A -> nat, forall g : A -> nat, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Peano.le (f x) (g x))) -> Peano.le (@nsum A s f) (@nsum A s g). -Axiom thm_NSUM_LT : forall {A : Type'}, forall f : A -> nat, forall g : A -> nat, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> Peano.le (f x) (g x)) /\ (exists x : A, (@IN A x s) /\ (Peano.lt (f x) (g x))))) -> Peano.lt (@nsum A s f) (@nsum A s g). -Axiom thm_NSUM_LT_ALL : forall {A : Type'}, forall f : A -> nat, forall g : A -> nat, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> Peano.lt (f x) (g x)))) -> Peano.lt (@nsum A s f) (@nsum A s g). -Axiom thm_NSUM_EQ : forall {A : Type'}, forall f : A -> nat, forall g : A -> nat, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (g x)) -> (@nsum A s f) = (@nsum A s g). -Axiom thm_NSUM_CONST : forall {A : Type'}, forall c : nat, forall s : A -> Prop, (@FINITE A s) -> (@nsum A s (fun n : A => c)) = (Nat.mul (@CARD A s) c). -Axiom thm_NSUM_POS_BOUND : forall {A : Type'}, forall f : A -> nat, forall b : nat, forall s : A -> Prop, ((@FINITE A s) /\ (Peano.le (@nsum A s f) b)) -> forall x : A, (@IN A x s) -> Peano.le (f x) b. -Axiom thm_NSUM_EQ_0_IFF : forall {A : Type'} (f : A -> nat), forall s : A -> Prop, (@FINITE A s) -> ((@nsum A s f) = (NUMERAL 0)) = (forall x : A, (@IN A x s) -> (f x) = (NUMERAL 0)). -Axiom thm_NSUM_POS_LT : forall {A : Type'}, forall f : A -> nat, forall s : A -> Prop, ((@FINITE A s) /\ (exists x : A, (@IN A x s) /\ (Peano.lt (NUMERAL 0) (f x)))) -> Peano.lt (NUMERAL 0) (@nsum A s f). -Axiom thm_NSUM_POS_LT_ALL : forall {A : Type'}, forall s : A -> Prop, forall f : A -> nat, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall i : A, (@IN A i s) -> Peano.lt (NUMERAL 0) (f i)))) -> Peano.lt (NUMERAL 0) (@nsum A s f). -Axiom thm_NSUM_DELETE : forall {A : Type'}, forall f : A -> nat, forall s : A -> Prop, forall a : A, ((@FINITE A s) /\ (@IN A a s)) -> (Nat.add (f a) (@nsum A (@DELETE A s a) f)) = (@nsum A s f). -Axiom thm_NSUM_SING : forall {A : Type'}, forall f : A -> nat, forall x : A, (@nsum A (@INSERT A x (@EMPTY A)) f) = (f x). -Axiom thm_NSUM_DELTA : forall {A : Type'} (b : nat), forall s : A -> Prop, forall a : A, (@nsum A s (fun x : A => @COND nat (x = a) b (NUMERAL 0))) = (@COND nat (@IN A a s) b (NUMERAL 0)). -Axiom thm_NSUM_SWAP : forall {A B : Type'}, forall f : A -> B -> nat, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@nsum A s (fun i : A => @nsum B t (f i))) = (@nsum B t (fun j : B => @nsum A s (fun i : A => f i j))). -Axiom thm_NSUM_IMAGE : forall {A B : Type'}, forall f : A -> B, forall g : B -> nat, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) -> (@nsum B (@IMAGE A B f s) g) = (@nsum A s (@o A B nat g f)). -Axiom thm_NSUM_SUPERSET : forall {A : Type'}, forall f : A -> nat, forall u : A -> Prop, forall v : A -> Prop, ((@SUBSET A u v) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (NUMERAL 0))) -> (@nsum A v f) = (@nsum A u f). -Axiom thm_NSUM_UNIV : forall {A : Type'}, forall f : A -> nat, forall s : A -> Prop, (@SUBSET A (@support A nat Nat.add f (@UNIV A)) s) -> (@nsum A s f) = (@nsum A (@UNIV A) f). -Axiom thm_NSUM_UNION_RZERO : forall {A : Type'}, forall f : A -> nat, forall u : A -> Prop, forall v : A -> Prop, ((@FINITE A u) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (NUMERAL 0))) -> (@nsum A (@UNION A u v) f) = (@nsum A u f). -Axiom thm_NSUM_UNION_LZERO : forall {A : Type'}, forall f : A -> nat, forall u : A -> Prop, forall v : A -> Prop, ((@FINITE A v) /\ (forall x : A, ((@IN A x u) /\ (~ (@IN A x v))) -> (f x) = (NUMERAL 0))) -> (@nsum A (@UNION A u v) f) = (@nsum A v f). -Axiom thm_NSUM_RESTRICT : forall {A : Type'}, forall f : A -> nat, forall s : A -> Prop, (@FINITE A s) -> (@nsum A s (fun x : A => @COND nat (@IN A x s) (f x) (NUMERAL 0))) = (@nsum A s f). -Axiom thm_NSUM_BOUND : forall {A : Type'}, forall s : A -> Prop, forall f : A -> nat, forall b : nat, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Peano.le (f x) b)) -> Peano.le (@nsum A s f) (Nat.mul (@CARD A s) b). -Axiom thm_NSUM_BOUND_GEN : forall {A : Type'}, forall s : A -> Prop, forall f : A -> nat, forall b : nat, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> Peano.le (f x) (Nat.div b (@CARD A s))))) -> Peano.le (@nsum A s f) b. -Axiom thm_NSUM_BOUND_LT : forall {A : Type'}, forall s : A -> Prop, forall f : A -> nat, forall b : nat, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> Peano.le (f x) b) /\ (exists x : A, (@IN A x s) /\ (Peano.lt (f x) b)))) -> Peano.lt (@nsum A s f) (Nat.mul (@CARD A s) b). -Axiom thm_NSUM_BOUND_LT_ALL : forall {A : Type'}, forall s : A -> Prop, forall f : A -> nat, forall b : nat, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> Peano.lt (f x) b))) -> Peano.lt (@nsum A s f) (Nat.mul (@CARD A s) b). -Axiom thm_NSUM_BOUND_LT_GEN : forall {A : Type'}, forall s : A -> Prop, forall f : A -> nat, forall b : nat, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> Peano.lt (f x) (Nat.div b (@CARD A s))))) -> Peano.lt (@nsum A s f) b. -Axiom thm_NSUM_UNION_EQ : forall {A : Type'} (f : A -> nat), forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@FINITE A u) /\ (((@INTER A s t) = (@EMPTY A)) /\ ((@UNION A s t) = u))) -> (Nat.add (@nsum A s f) (@nsum A t f)) = (@nsum A u f). -Axiom thm_NSUM_EQ_SUPERSET : forall {A : Type'} (g : A -> nat), forall f : A -> nat, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ ((@SUBSET A t s) /\ ((forall x : A, (@IN A x t) -> (f x) = (g x)) /\ (forall x : A, ((@IN A x s) /\ (~ (@IN A x t))) -> (f x) = (NUMERAL 0))))) -> (@nsum A s f) = (@nsum A t g). -Axiom thm_NSUM_RESTRICT_SET : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall f : A -> nat, (@nsum A (@GSPEC A (fun GEN_PVAR_289 : A => exists x : A, @SETSPEC A GEN_PVAR_289 ((@IN A x s) /\ (P x)) x)) f) = (@nsum A s (fun x : A => @COND nat (P x) (f x) (NUMERAL 0))). -Axiom thm_NSUM_NSUM_RESTRICT : forall {A B : Type'}, forall R' : A -> B -> Prop, forall f : A -> B -> nat, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@nsum A s (fun x : A => @nsum B (@GSPEC B (fun GEN_PVAR_290 : B => exists y : B, @SETSPEC B GEN_PVAR_290 ((@IN B y t) /\ (R' x y)) y)) (fun y : B => f x y))) = (@nsum B t (fun y : B => @nsum A (@GSPEC A (fun GEN_PVAR_291 : A => exists x : A, @SETSPEC A GEN_PVAR_291 ((@IN A x s) /\ (R' x y)) x)) (fun x : A => f x y))). -Axiom thm_CARD_EQ_NSUM : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> (@CARD A s) = (@nsum A s (fun x : A => NUMERAL (BIT1 0))). -Axiom thm_NSUM_MULTICOUNT_GEN : forall {A B : Type'}, forall R' : A -> B -> Prop, forall s : A -> Prop, forall t : B -> Prop, forall k : B -> nat, ((@FINITE A s) /\ ((@FINITE B t) /\ (forall j : B, (@IN B j t) -> (@CARD A (@GSPEC A (fun GEN_PVAR_293 : A => exists i : A, @SETSPEC A GEN_PVAR_293 ((@IN A i s) /\ (R' i j)) i))) = (k j)))) -> (@nsum A s (fun i : A => @CARD B (@GSPEC B (fun GEN_PVAR_294 : B => exists j : B, @SETSPEC B GEN_PVAR_294 ((@IN B j t) /\ (R' i j)) j)))) = (@nsum B t (fun i : B => k i)). -Axiom thm_NSUM_MULTICOUNT : forall {A B : Type'}, forall R' : A -> B -> Prop, forall s : A -> Prop, forall t : B -> Prop, forall k : nat, ((@FINITE A s) /\ ((@FINITE B t) /\ (forall j : B, (@IN B j t) -> (@CARD A (@GSPEC A (fun GEN_PVAR_295 : A => exists i : A, @SETSPEC A GEN_PVAR_295 ((@IN A i s) /\ (R' i j)) i))) = k))) -> (@nsum A s (fun i : A => @CARD B (@GSPEC B (fun GEN_PVAR_296 : B => exists j : B, @SETSPEC B GEN_PVAR_296 ((@IN B j t) /\ (R' i j)) j)))) = (Nat.mul k (@CARD B t)). -Axiom thm_NSUM_IMAGE_GEN : forall {A B : Type'}, forall f : A -> B, forall g : A -> nat, forall s : A -> Prop, (@FINITE A s) -> (@nsum A s g) = (@nsum B (@IMAGE A B f s) (fun y : B => @nsum A (@GSPEC A (fun GEN_PVAR_297 : A => exists x : A, @SETSPEC A GEN_PVAR_297 ((@IN A x s) /\ ((f x) = y)) x)) g)). -Axiom thm_NSUM_GROUP : forall {A B : Type'}, forall f : A -> B, forall g : A -> nat, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@SUBSET B (@IMAGE A B f s) t)) -> (@nsum B t (fun y : B => @nsum A (@GSPEC A (fun GEN_PVAR_298 : A => exists x : A, @SETSPEC A GEN_PVAR_298 ((@IN A x s) /\ ((f x) = y)) x)) g)) = (@nsum A s g). -Axiom thm_NSUM_GROUP_RELATION : forall {A B : Type'}, forall R' : A -> B -> Prop, forall g : A -> nat, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> @ex1 B (fun y : B => (@IN B y t) /\ (R' x y)))) -> (@nsum B t (fun y : B => @nsum A (@GSPEC A (fun GEN_PVAR_299 : A => exists x : A, @SETSPEC A GEN_PVAR_299 ((@IN A x s) /\ (R' x y)) x)) g)) = (@nsum A s g). -Axiom thm_NSUM_SUBSET : forall {A : Type'}, forall u : A -> Prop, forall v : A -> Prop, forall f : A -> nat, ((@FINITE A u) /\ ((@FINITE A v) /\ (forall x : A, (@IN A x (@DIFF A u v)) -> (f x) = (NUMERAL 0)))) -> Peano.le (@nsum A u f) (@nsum A v f). -Axiom thm_NSUM_SUBSET_SIMPLE : forall {A : Type'}, forall u : A -> Prop, forall v : A -> Prop, forall f : A -> nat, ((@FINITE A v) /\ (@SUBSET A u v)) -> Peano.le (@nsum A u f) (@nsum A v f). -Axiom thm_NSUM_LE_GEN : forall {A : Type'}, forall f : A -> nat, forall g : A -> nat, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> Peano.le (f x) (g x)) /\ (@FINITE A (@GSPEC A (fun GEN_PVAR_301 : A => exists x : A, @SETSPEC A GEN_PVAR_301 ((@IN A x s) /\ (~ ((g x) = (NUMERAL 0)))) x)))) -> Peano.le (@nsum A s f) (@nsum A s g). -Axiom thm_NSUM_MUL_BOUND : forall {A : Type'}, forall a : A -> nat, forall b : A -> nat, forall s : A -> Prop, (@FINITE A s) -> Peano.le (@nsum A s (fun i : A => Nat.mul (a i) (b i))) (Nat.mul (@nsum A s a) (@nsum A s b)). -Axiom thm_NSUM_IMAGE_NONZERO : forall {A B : Type'}, forall d : B -> nat, forall i : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((~ (x = y)) /\ ((i x) = (i y))))) -> (d (i x)) = (NUMERAL 0))) -> (@nsum B (@IMAGE A B i s) d) = (@nsum A s (@o A B nat d i)). -Axiom thm_NSUM_BIJECTION : forall {A : Type'}, forall f : A -> nat, forall p : A -> A, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall y : A, (@IN A y s) -> @ex1 A (fun x : A => (@IN A x s) /\ ((p x) = y)))) -> (@nsum A s f) = (@nsum A s (@o A A nat f p)). -Axiom thm_NSUM_NSUM_PRODUCT : forall {A B : Type'}, forall s : A -> Prop, forall t : A -> B -> Prop, forall x : A -> B -> nat, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> @FINITE B (t i))) -> (@nsum A s (fun i : A => @nsum B (t i) (x i))) = (@nsum (prod A B) (@GSPEC (prod A B) (fun GEN_PVAR_302 : prod A B => exists i : A, exists j : B, @SETSPEC (prod A B) GEN_PVAR_302 ((@IN A i s) /\ (@IN B j (t i))) (@pair A B i j))) (@GABS ((prod A B) -> nat) (fun f : (prod A B) -> nat => forall i : A, forall j : B, @GEQ nat (f (@pair A B i j)) (x i j)))). -Axiom thm_NSUM_EQ_GENERAL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> nat, forall g : B -> nat, forall h : A -> B, ((forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ ((h x) = y))) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ ((g (h x)) = (f x)))) -> (@nsum A s f) = (@nsum B t g). -Axiom thm_NSUM_EQ_GENERAL_INVERSES : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> nat, forall g : B -> nat, forall h : A -> B, forall k : B -> A, ((forall y : B, (@IN B y t) -> (@IN A (k y) s) /\ ((h (k y)) = y)) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ (((k (h x)) = x) /\ ((g (h x)) = (f x))))) -> (@nsum A s f) = (@nsum B t g). -Axiom thm_NSUM_INJECTION : forall {A : Type'}, forall f : A -> nat, forall p : A -> A, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((p x) = (p y)))) -> x = y))) -> (@nsum A s (@o A A nat f p)) = (@nsum A s f). -Axiom thm_NSUM_UNION_NONZERO : forall {A : Type'}, forall f : A -> nat, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (forall x : A, (@IN A x (@INTER A s t)) -> (f x) = (NUMERAL 0)))) -> (@nsum A (@UNION A s t) f) = (Nat.add (@nsum A s f) (@nsum A t f)). -Axiom thm_NSUM_UNIONS_NONZERO : forall {A : Type'}, forall f : A -> nat, forall s : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) s) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t s) -> @FINITE A t) /\ (forall t1 : A -> Prop, forall t2 : A -> Prop, forall x : A, ((@IN (A -> Prop) t1 s) /\ ((@IN (A -> Prop) t2 s) /\ ((~ (t1 = t2)) /\ ((@IN A x t1) /\ (@IN A x t2))))) -> (f x) = (NUMERAL 0)))) -> (@nsum A (@UNIONS A s) f) = (@nsum (A -> Prop) s (fun t : A -> Prop => @nsum A t f)). -Axiom thm_NSUM_CASES : forall {A : Type'}, forall s : A -> Prop, forall P : A -> Prop, forall f : A -> nat, forall g : A -> nat, (@FINITE A s) -> (@nsum A s (fun x : A => @COND nat (P x) (f x) (g x))) = (Nat.add (@nsum A (@GSPEC A (fun GEN_PVAR_303 : A => exists x : A, @SETSPEC A GEN_PVAR_303 ((@IN A x s) /\ (P x)) x)) f) (@nsum A (@GSPEC A (fun GEN_PVAR_304 : A => exists x : A, @SETSPEC A GEN_PVAR_304 ((@IN A x s) /\ (~ (P x))) x)) g)). -Axiom thm_NSUM_CLOSED : forall {A : Type'}, forall P : nat -> Prop, forall f : A -> nat, forall s : A -> Prop, ((P (NUMERAL 0)) /\ ((forall x : nat, forall y : nat, ((P x) /\ (P y)) -> P (Nat.add x y)) /\ (forall a : A, (@IN A a s) -> P (f a)))) -> P (@nsum A s f). -Axiom thm_NSUM_RELATED : forall {A : Type'}, forall R' : nat -> nat -> Prop, forall f : A -> nat, forall g : A -> nat, forall s : A -> Prop, ((R' (NUMERAL 0) (NUMERAL 0)) /\ ((forall m : nat, forall n : nat, forall m' : nat, forall n' : nat, ((R' m n) /\ (R' m' n')) -> R' (Nat.add m m') (Nat.add n n')) /\ ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> R' (f x) (g x))))) -> R' (@nsum A s f) (@nsum A s g). -Axiom thm_NSUM_CLOSED_NONEMPTY : forall {A : Type'}, forall P : nat -> Prop, forall f : A -> nat, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ ((forall x : nat, forall y : nat, ((P x) /\ (P y)) -> P (Nat.add x y)) /\ (forall a : A, (@IN A a s) -> P (f a))))) -> P (@nsum A s f). -Axiom thm_NSUM_RELATED_NONEMPTY : forall {A : Type'}, forall R' : nat -> nat -> Prop, forall f : A -> nat, forall g : A -> nat, forall s : A -> Prop, ((forall m : nat, forall n : nat, forall m' : nat, forall n' : nat, ((R' m n) /\ (R' m' n')) -> R' (Nat.add m m') (Nat.add n n')) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> R' (f x) (g x))))) -> R' (@nsum A s f) (@nsum A s g). -Axiom thm_NSUM_ADD_NUMSEG : forall f : nat -> nat, forall g : nat -> nat, forall m : nat, forall n : nat, (@nsum nat (dotdot m n) (fun i : nat => Nat.add (f i) (g i))) = (Nat.add (@nsum nat (dotdot m n) f) (@nsum nat (dotdot m n) g)). -Axiom thm_NSUM_LE_NUMSEG : forall f : nat -> nat, forall g : nat -> nat, forall m : nat, forall n : nat, (forall i : nat, ((Peano.le m i) /\ (Peano.le i n)) -> Peano.le (f i) (g i)) -> Peano.le (@nsum nat (dotdot m n) f) (@nsum nat (dotdot m n) g). -Axiom thm_NSUM_EQ_NUMSEG : forall f : nat -> nat, forall g : nat -> nat, forall m : nat, forall n : nat, (forall i : nat, ((Peano.le m i) /\ (Peano.le i n)) -> (f i) = (g i)) -> (@nsum nat (dotdot m n) f) = (@nsum nat (dotdot m n) g). -Axiom thm_NSUM_CONST_NUMSEG : forall c : nat, forall m : nat, forall n : nat, (@nsum nat (dotdot m n) (fun n' : nat => c)) = (Nat.mul (Nat.sub (Nat.add n (NUMERAL (BIT1 0))) m) c). -Axiom thm_NSUM_EQ_0_NUMSEG : forall f : nat -> nat, forall m : nat, forall n : nat, (forall i : nat, ((Peano.le m i) /\ (Peano.le i n)) -> (f i) = (NUMERAL 0)) -> (@nsum nat (dotdot m n) f) = (NUMERAL 0). -Axiom thm_NSUM_EQ_0_IFF_NUMSEG : forall f : nat -> nat, forall m : nat, forall n : nat, ((@nsum nat (dotdot m n) f) = (NUMERAL 0)) = (forall i : nat, ((Peano.le m i) /\ (Peano.le i n)) -> (f i) = (NUMERAL 0)). -Axiom thm_NSUM_TRIV_NUMSEG : forall f : nat -> nat, forall m : nat, forall n : nat, (Peano.lt n m) -> (@nsum nat (dotdot m n) f) = (NUMERAL 0). -Axiom thm_NSUM_SING_NUMSEG : forall f : nat -> nat, forall n : nat, (@nsum nat (dotdot n n) f) = (f n). -Axiom thm_NSUM_CLAUSES_NUMSEG : forall (f : nat -> nat), (forall m : nat, (@nsum nat (dotdot m (NUMERAL 0)) f) = (@COND nat (m = (NUMERAL 0)) (f (NUMERAL 0)) (NUMERAL 0))) /\ (forall m : nat, forall n : nat, (@nsum nat (dotdot m (S n)) f) = (@COND nat (Peano.le m (S n)) (Nat.add (@nsum nat (dotdot m n) f) (f (S n))) (@nsum nat (dotdot m n) f))). -Axiom thm_NSUM_CLAUSES_NUMSEG_LT : forall (f : nat -> nat), ((@nsum nat (@GSPEC nat (fun GEN_PVAR_305 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_305 (Peano.lt i (NUMERAL 0)) i)) f) = (NUMERAL 0)) /\ (forall k : nat, (@nsum nat (@GSPEC nat (fun GEN_PVAR_306 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_306 (Peano.lt i (S k)) i)) f) = (Nat.add (@nsum nat (@GSPEC nat (fun GEN_PVAR_307 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_307 (Peano.lt i k) i)) f) (f k))). -Axiom thm_NSUM_CLAUSES_NUMSEG_LE : forall (f : nat -> nat), ((@nsum nat (@GSPEC nat (fun GEN_PVAR_308 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_308 (Peano.le i (NUMERAL 0)) i)) f) = (f (NUMERAL 0))) /\ (forall k : nat, (@nsum nat (@GSPEC nat (fun GEN_PVAR_309 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_309 (Peano.le i (S k)) i)) f) = (Nat.add (@nsum nat (@GSPEC nat (fun GEN_PVAR_310 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_310 (Peano.le i k) i)) f) (f (S k)))). -Axiom thm_NSUM_SWAP_NUMSEG : forall a : nat, forall b : nat, forall c : nat, forall d : nat, forall f : nat -> nat -> nat, (@nsum nat (dotdot a b) (fun i : nat => @nsum nat (dotdot c d) (f i))) = (@nsum nat (dotdot c d) (fun j : nat => @nsum nat (dotdot a b) (fun i : nat => f i j))). -Axiom thm_NSUM_ADD_SPLIT : forall f : nat -> nat, forall m : nat, forall n : nat, forall p : nat, (Peano.le m (Nat.add n (NUMERAL (BIT1 0)))) -> (@nsum nat (dotdot m (Nat.add n p)) f) = (Nat.add (@nsum nat (dotdot m n) f) (@nsum nat (dotdot (Nat.add n (NUMERAL (BIT1 0))) (Nat.add n p)) f)). -Axiom thm_NSUM_OFFSET : forall p : nat, forall f : nat -> nat, forall m : nat, forall n : nat, (@nsum nat (dotdot (Nat.add m p) (Nat.add n p)) f) = (@nsum nat (dotdot m n) (fun i : nat => f (Nat.add i p))). -Axiom thm_NSUM_OFFSET_0 : forall f : nat -> nat, forall m : nat, forall n : nat, (Peano.le m n) -> (@nsum nat (dotdot m n) f) = (@nsum nat (dotdot (NUMERAL 0) (Nat.sub n m)) (fun i : nat => f (Nat.add i m))). -Axiom thm_NSUM_CLAUSES_LEFT : forall f : nat -> nat, forall m : nat, forall n : nat, (Peano.le m n) -> (@nsum nat (dotdot m n) f) = (Nat.add (f m) (@nsum nat (dotdot (Nat.add m (NUMERAL (BIT1 0))) n) f)). -Axiom thm_NSUM_CLAUSES_RIGHT : forall f : nat -> nat, forall m : nat, forall n : nat, ((Peano.lt (NUMERAL 0) n) /\ (Peano.le m n)) -> (@nsum nat (dotdot m n) f) = (Nat.add (@nsum nat (dotdot m (Nat.sub n (NUMERAL (BIT1 0)))) f) (f n)). -Axiom thm_NSUM_PAIR : forall f : nat -> nat, forall m : nat, forall n : nat, (@nsum nat (dotdot (Nat.mul (NUMERAL (BIT0 (BIT1 0))) m) (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) n) (NUMERAL (BIT1 0)))) f) = (@nsum nat (dotdot m n) (fun i : nat => Nat.add (f (Nat.mul (NUMERAL (BIT0 (BIT1 0))) i)) (f (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) i) (NUMERAL (BIT1 0)))))). -Axiom thm_NSUM_REFLECT : forall x : nat -> nat, forall m : nat, forall n : nat, (@nsum nat (dotdot m n) x) = (@COND nat (Peano.lt n m) (NUMERAL 0) (@nsum nat (dotdot (NUMERAL 0) (Nat.sub n m)) (fun i : nat => x (Nat.sub n i)))). -Axiom thm_MOD_NSUM_MOD : forall {A : Type'}, forall f : A -> nat, forall n : nat, forall s : A -> Prop, (@FINITE A s) -> (Nat.modulo (@nsum A s f) n) = (Nat.modulo (@nsum A s (fun i : A => Nat.modulo (f i) n)) n). -Axiom thm_MOD_NSUM_MOD_NUMSEG : forall f : nat -> nat, forall a : nat, forall b : nat, forall n : nat, (Nat.modulo (@nsum nat (dotdot a b) f) n) = (Nat.modulo (@nsum nat (dotdot a b) (fun i : nat => Nat.modulo (f i) n)) n). -Axiom thm_CONG_NSUM : forall {A : Type'}, forall n : nat, forall f : A -> nat, forall g : A -> nat, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> @eq2 nat (f x) (g x) (num_mod n))) -> @eq2 nat (@nsum A s f) (@nsum A s g) (num_mod n). -Axiom thm_CARD_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) s) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t s) -> @FINITE A t) /\ (forall t : A -> Prop, forall u : A -> Prop, ((@IN (A -> Prop) t s) /\ ((@IN (A -> Prop) u s) /\ (~ (t = u)))) -> (@INTER A t u) = (@EMPTY A)))) -> (@CARD A (@UNIONS A s)) = (@nsum (A -> Prop) s (@CARD A)). -Axiom thm_sum : forall {A : Type'}, (@sum A) = (@iterate A R Rplus). -Axiom thm_NEUTRAL_REAL_ADD : (@neutral R Rplus) = (INR (NUMERAL 0)). -Axiom thm_MONOIDAL_REAL_ADD : @monoidal R Rplus. -Axiom thm_SUM_DEGENERATE : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (~ (@FINITE A (@GSPEC A (fun GEN_PVAR_313 : A => exists x : A, @SETSPEC A GEN_PVAR_313 ((@IN A x s) /\ (~ ((f x) = (INR (NUMERAL 0))))) x)))) -> (@sum A s f) = (INR (NUMERAL 0)). -Axiom thm_SUM_CLAUSES : forall {A B : Type'}, (forall f : A -> R, (@sum A (@EMPTY A) f) = (INR (NUMERAL 0))) /\ (forall x : B, forall f : B -> R, forall s : B -> Prop, (@FINITE B s) -> (@sum B (@INSERT B x s) f) = (@COND R (@IN B x s) (@sum B s f) (Rplus (f x) (@sum B s f)))). -Axiom thm_SUM_UNION : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (@DISJOINT A s t))) -> (@sum A (@UNION A s t) f) = (Rplus (@sum A s f) (@sum A t f)). -Axiom thm_SUM_DIFF : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@SUBSET A t s)) -> (@sum A (@DIFF A s t) f) = (Rminus (@sum A s f) (@sum A t f)). -Axiom thm_SUM_INCL_EXCL : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall f : A -> R, ((@FINITE A s) /\ (@FINITE A t)) -> (Rplus (@sum A s f) (@sum A t f)) = (Rplus (@sum A (@UNION A s t) f) (@sum A (@INTER A s t) f)). -Axiom thm_SUM_SUPPORT : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@sum A (@support A R Rplus f s) f) = (@sum A s f). -Axiom thm_SUM_ADD : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, (@FINITE A s) -> (@sum A s (fun x : A => Rplus (f x) (g x))) = (Rplus (@sum A s f) (@sum A s g)). -Axiom thm_SUM_ADD_GEN : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_314 : A => exists x : A, @SETSPEC A GEN_PVAR_314 ((@IN A x s) /\ (~ ((f x) = (INR (NUMERAL 0))))) x))) /\ (@FINITE A (@GSPEC A (fun GEN_PVAR_315 : A => exists x : A, @SETSPEC A GEN_PVAR_315 ((@IN A x s) /\ (~ ((g x) = (INR (NUMERAL 0))))) x)))) -> (@sum A s (fun x : A => Rplus (f x) (g x))) = (Rplus (@sum A s f) (@sum A s g)). -Axiom thm_SUM_EQ_0 : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (INR (NUMERAL 0))) -> (@sum A s f) = (INR (NUMERAL 0)). -Axiom thm_SUM_0 : forall {A : Type'}, forall s : A -> Prop, (@sum A s (fun n : A => INR (NUMERAL 0))) = (INR (NUMERAL 0)). -Axiom thm_SUM_LMUL : forall {A : Type'}, forall f : A -> R, forall c : R, forall s : A -> Prop, (@sum A s (fun x : A => Rmult c (f x))) = (Rmult c (@sum A s f)). -Axiom thm_SUM_RMUL : forall {A : Type'}, forall f : A -> R, forall c : R, forall s : A -> Prop, (@sum A s (fun x : A => Rmult (f x) c)) = (Rmult (@sum A s f) c). -Axiom thm_SUM_NEG : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@sum A s (fun x : A => Ropp (f x))) = (Ropp (@sum A s f)). -Axiom thm_SUM_SUB : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, (@FINITE A s) -> (@sum A s (fun x : A => Rminus (f x) (g x))) = (Rminus (@sum A s f) (@sum A s g)). -Axiom thm_SUM_LE : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rle (f x) (g x))) -> Rle (@sum A s f) (@sum A s g). -Axiom thm_SUM_LT : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> Rle (f x) (g x)) /\ (exists x : A, (@IN A x s) /\ (Rlt (f x) (g x))))) -> Rlt (@sum A s f) (@sum A s g). -Axiom thm_SUM_LT_ALL : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> Rlt (f x) (g x)))) -> Rlt (@sum A s f) (@sum A s g). -Axiom thm_SUM_POS_LT : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> Rle (INR (NUMERAL 0)) (f x)) /\ (exists x : A, (@IN A x s) /\ (Rlt (INR (NUMERAL 0)) (f x))))) -> Rlt (INR (NUMERAL 0)) (@sum A s f). -Axiom thm_SUM_POS_LT_ALL : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall i : A, (@IN A i s) -> Rlt (INR (NUMERAL 0)) (f i)))) -> Rlt (INR (NUMERAL 0)) (@sum A s f). -Axiom thm_SUM_EQ : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (g x)) -> (@sum A s f) = (@sum A s g). -Axiom thm_SUM_ABS : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@FINITE A s) -> Rle (Rabs (@sum A s f)) (@sum A s (fun x : A => Rabs (f x))). -Axiom thm_SUM_ABS_LE : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rle (Rabs (f x)) (g x))) -> Rle (Rabs (@sum A s f)) (@sum A s g). -Axiom thm_SUM_CONST : forall {A : Type'}, forall c : R, forall s : A -> Prop, (@FINITE A s) -> (@sum A s (fun n : A => c)) = (Rmult (INR (@CARD A s)) c). -Axiom thm_SUM_POS_LE : forall {A : Type'} (f : A -> R), forall s : A -> Prop, (forall x : A, (@IN A x s) -> Rle (INR (NUMERAL 0)) (f x)) -> Rle (INR (NUMERAL 0)) (@sum A s f). -Axiom thm_SUM_POS_BOUND : forall {A : Type'}, forall f : A -> R, forall b : R, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> Rle (INR (NUMERAL 0)) (f x)) /\ (Rle (@sum A s f) b))) -> forall x : A, (@IN A x s) -> Rle (f x) b. -Axiom thm_SUM_POS_EQ_0 : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> Rle (INR (NUMERAL 0)) (f x)) /\ ((@sum A s f) = (INR (NUMERAL 0))))) -> forall x : A, (@IN A x s) -> (f x) = (INR (NUMERAL 0)). -Axiom thm_SUM_ZERO_EXISTS : forall {A : Type'}, forall u : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((@sum A s u) = (INR (NUMERAL 0)))) -> (forall i : A, (@IN A i s) -> (u i) = (INR (NUMERAL 0))) \/ (exists j : A, exists k : A, (@IN A j s) /\ ((Rlt (u j) (INR (NUMERAL 0))) /\ ((@IN A k s) /\ (Rgt (u k) (INR (NUMERAL 0)))))). -Axiom thm_SUM_DELETE : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, forall a : A, ((@FINITE A s) /\ (@IN A a s)) -> (@sum A (@DELETE A s a) f) = (Rminus (@sum A s f) (f a)). -Axiom thm_SUM_DELETE_CASES : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, forall a : A, (@FINITE A s) -> (@sum A (@DELETE A s a) f) = (@COND R (@IN A a s) (Rminus (@sum A s f) (f a)) (@sum A s f)). -Axiom thm_SUM_SING : forall {A : Type'}, forall f : A -> R, forall x : A, (@sum A (@INSERT A x (@EMPTY A)) f) = (f x). -Axiom thm_SUM_DELTA : forall {A : Type'} (b : R), forall s : A -> Prop, forall a : A, (@sum A s (fun x : A => @COND R (x = a) b (INR (NUMERAL 0)))) = (@COND R (@IN A a s) b (INR (NUMERAL 0))). -Axiom thm_SUM_SWAP : forall {A B : Type'}, forall f : A -> B -> R, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@sum A s (fun i : A => @sum B t (f i))) = (@sum B t (fun j : B => @sum A s (fun i : A => f i j))). -Axiom thm_SUM_IMAGE : forall {A B : Type'}, forall f : A -> B, forall g : B -> R, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) -> (@sum B (@IMAGE A B f s) g) = (@sum A s (@o A B R g f)). -Axiom thm_SUM_SUPERSET : forall {A : Type'}, forall f : A -> R, forall u : A -> Prop, forall v : A -> Prop, ((@SUBSET A u v) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (INR (NUMERAL 0)))) -> (@sum A v f) = (@sum A u f). -Axiom thm_SUM_UNIV : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@SUBSET A (@support A R Rplus f (@UNIV A)) s) -> (@sum A s f) = (@sum A (@UNIV A) f). -Axiom thm_SUM_UNION_RZERO : forall {A : Type'}, forall f : A -> R, forall u : A -> Prop, forall v : A -> Prop, ((@FINITE A u) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (INR (NUMERAL 0)))) -> (@sum A (@UNION A u v) f) = (@sum A u f). -Axiom thm_SUM_UNION_LZERO : forall {A : Type'}, forall f : A -> R, forall u : A -> Prop, forall v : A -> Prop, ((@FINITE A v) /\ (forall x : A, ((@IN A x u) /\ (~ (@IN A x v))) -> (f x) = (INR (NUMERAL 0)))) -> (@sum A (@UNION A u v) f) = (@sum A v f). -Axiom thm_SUM_RESTRICT : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@FINITE A s) -> (@sum A s (fun x : A => @COND R (@IN A x s) (f x) (INR (NUMERAL 0)))) = (@sum A s f). -Axiom thm_SUM_BOUND : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, forall b : R, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rle (f x) b)) -> Rle (@sum A s f) (Rmult (INR (@CARD A s)) b). -Axiom thm_SUM_BOUND_GEN : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, forall b : R, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> Rle (f x) (Rdiv b (INR (@CARD A s)))))) -> Rle (@sum A s f) b. -Axiom thm_SUM_ABS_BOUND : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, forall b : R, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rle (Rabs (f x)) b)) -> Rle (Rabs (@sum A s f)) (Rmult (INR (@CARD A s)) b). -Axiom thm_SUM_BOUND_LT : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, forall b : R, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> Rle (f x) b) /\ (exists x : A, (@IN A x s) /\ (Rlt (f x) b)))) -> Rlt (@sum A s f) (Rmult (INR (@CARD A s)) b). -Axiom thm_SUM_BOUND_LT_ALL : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, forall b : R, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> Rlt (f x) b))) -> Rlt (@sum A s f) (Rmult (INR (@CARD A s)) b). -Axiom thm_SUM_BOUND_LT_GEN : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, forall b : R, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> Rlt (f x) (Rdiv b (INR (@CARD A s)))))) -> Rlt (@sum A s f) b. -Axiom thm_SUM_UNION_EQ : forall {A : Type'} (f : A -> R), forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@FINITE A u) /\ (((@INTER A s t) = (@EMPTY A)) /\ ((@UNION A s t) = u))) -> (Rplus (@sum A s f) (@sum A t f)) = (@sum A u f). -Axiom thm_SUM_EQ_SUPERSET : forall {A : Type'} (g : A -> R), forall f : A -> R, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ ((@SUBSET A t s) /\ ((forall x : A, (@IN A x t) -> (f x) = (g x)) /\ (forall x : A, ((@IN A x s) /\ (~ (@IN A x t))) -> (f x) = (INR (NUMERAL 0)))))) -> (@sum A s f) = (@sum A t g). -Axiom thm_SUM_RESTRICT_SET : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall f : A -> R, (@sum A (@GSPEC A (fun GEN_PVAR_318 : A => exists x : A, @SETSPEC A GEN_PVAR_318 ((@IN A x s) /\ (P x)) x)) f) = (@sum A s (fun x : A => @COND R (P x) (f x) (INR (NUMERAL 0)))). -Axiom thm_SUM_SUM_RESTRICT : forall {A B : Type'}, forall R' : A -> B -> Prop, forall f : A -> B -> R, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@sum A s (fun x : A => @sum B (@GSPEC B (fun GEN_PVAR_319 : B => exists y : B, @SETSPEC B GEN_PVAR_319 ((@IN B y t) /\ (R' x y)) y)) (fun y : B => f x y))) = (@sum B t (fun y : B => @sum A (@GSPEC A (fun GEN_PVAR_320 : A => exists x : A, @SETSPEC A GEN_PVAR_320 ((@IN A x s) /\ (R' x y)) x)) (fun x : A => f x y))). -Axiom thm_CARD_EQ_SUM : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> (INR (@CARD A s)) = (@sum A s (fun x : A => INR (NUMERAL (BIT1 0)))). -Axiom thm_SUM_MULTICOUNT_GEN : forall {A B : Type'}, forall R' : A -> B -> Prop, forall s : A -> Prop, forall t : B -> Prop, forall k : B -> nat, ((@FINITE A s) /\ ((@FINITE B t) /\ (forall j : B, (@IN B j t) -> (@CARD A (@GSPEC A (fun GEN_PVAR_322 : A => exists i : A, @SETSPEC A GEN_PVAR_322 ((@IN A i s) /\ (R' i j)) i))) = (k j)))) -> (@sum A s (fun i : A => INR (@CARD B (@GSPEC B (fun GEN_PVAR_323 : B => exists j : B, @SETSPEC B GEN_PVAR_323 ((@IN B j t) /\ (R' i j)) j))))) = (@sum B t (fun i : B => INR (k i))). -Axiom thm_SUM_MULTICOUNT : forall {A B : Type'}, forall R' : A -> B -> Prop, forall s : A -> Prop, forall t : B -> Prop, forall k : nat, ((@FINITE A s) /\ ((@FINITE B t) /\ (forall j : B, (@IN B j t) -> (@CARD A (@GSPEC A (fun GEN_PVAR_324 : A => exists i : A, @SETSPEC A GEN_PVAR_324 ((@IN A i s) /\ (R' i j)) i))) = k))) -> (@sum A s (fun i : A => INR (@CARD B (@GSPEC B (fun GEN_PVAR_325 : B => exists j : B, @SETSPEC B GEN_PVAR_325 ((@IN B j t) /\ (R' i j)) j))))) = (INR (Nat.mul k (@CARD B t))). -Axiom thm_SUM_IMAGE_GEN : forall {A B : Type'}, forall f : A -> B, forall g : A -> R, forall s : A -> Prop, (@FINITE A s) -> (@sum A s g) = (@sum B (@IMAGE A B f s) (fun y : B => @sum A (@GSPEC A (fun GEN_PVAR_326 : A => exists x : A, @SETSPEC A GEN_PVAR_326 ((@IN A x s) /\ ((f x) = y)) x)) g)). -Axiom thm_SUM_GROUP : forall {A B : Type'}, forall f : A -> B, forall g : A -> R, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@SUBSET B (@IMAGE A B f s) t)) -> (@sum B t (fun y : B => @sum A (@GSPEC A (fun GEN_PVAR_327 : A => exists x : A, @SETSPEC A GEN_PVAR_327 ((@IN A x s) /\ ((f x) = y)) x)) g)) = (@sum A s g). -Axiom thm_SUM_GROUP_RELATION : forall {A B : Type'}, forall R' : A -> B -> Prop, forall g : A -> R, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> @ex1 B (fun y : B => (@IN B y t) /\ (R' x y)))) -> (@sum B t (fun y : B => @sum A (@GSPEC A (fun GEN_PVAR_328 : A => exists x : A, @SETSPEC A GEN_PVAR_328 ((@IN A x s) /\ (R' x y)) x)) g)) = (@sum A s g). -Axiom thm_REAL_OF_NUM_SUM : forall {A : Type'}, forall f : A -> nat, forall s : A -> Prop, (@FINITE A s) -> (INR (@nsum A s f)) = (@sum A s (fun x : A => INR (f x))). -Axiom thm_SUM_SUBSET : forall {A : Type'}, forall u : A -> Prop, forall v : A -> Prop, forall f : A -> R, ((@FINITE A u) /\ ((@FINITE A v) /\ ((forall x : A, (@IN A x (@DIFF A u v)) -> Rle (f x) (INR (NUMERAL 0))) /\ (forall x : A, (@IN A x (@DIFF A v u)) -> Rle (INR (NUMERAL 0)) (f x))))) -> Rle (@sum A u f) (@sum A v f). -Axiom thm_SUM_SUBSET_SIMPLE : forall {A : Type'}, forall u : A -> Prop, forall v : A -> Prop, forall f : A -> R, ((@FINITE A v) /\ ((@SUBSET A u v) /\ (forall x : A, (@IN A x (@DIFF A v u)) -> Rle (INR (NUMERAL 0)) (f x)))) -> Rle (@sum A u f) (@sum A v f). -Axiom thm_SUM_MUL_BOUND : forall {A : Type'}, forall a : A -> R, forall b : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> (Rle (INR (NUMERAL 0)) (a i)) /\ (Rle (INR (NUMERAL 0)) (b i)))) -> Rle (@sum A s (fun i : A => Rmult (a i) (b i))) (Rmult (@sum A s a) (@sum A s b)). -Axiom thm_SUM_IMAGE_NONZERO : forall {A B : Type'}, forall d : B -> R, forall i : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((~ (x = y)) /\ ((i x) = (i y))))) -> (d (i x)) = (INR (NUMERAL 0)))) -> (@sum B (@IMAGE A B i s) d) = (@sum A s (@o A B R d i)). -Axiom thm_SUM_BIJECTION : forall {A : Type'}, forall f : A -> R, forall p : A -> A, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall y : A, (@IN A y s) -> @ex1 A (fun x : A => (@IN A x s) /\ ((p x) = y)))) -> (@sum A s f) = (@sum A s (@o A A R f p)). -Axiom thm_SUM_SUM_PRODUCT : forall {A B : Type'}, forall s : A -> Prop, forall t : A -> B -> Prop, forall x : A -> B -> R, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> @FINITE B (t i))) -> (@sum A s (fun i : A => @sum B (t i) (x i))) = (@sum (prod A B) (@GSPEC (prod A B) (fun GEN_PVAR_329 : prod A B => exists i : A, exists j : B, @SETSPEC (prod A B) GEN_PVAR_329 ((@IN A i s) /\ (@IN B j (t i))) (@pair A B i j))) (@GABS ((prod A B) -> R) (fun f : (prod A B) -> R => forall i : A, forall j : B, @GEQ R (f (@pair A B i j)) (x i j)))). -Axiom thm_SUM_EQ_GENERAL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> R, forall g : B -> R, forall h : A -> B, ((forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ ((h x) = y))) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ ((g (h x)) = (f x)))) -> (@sum A s f) = (@sum B t g). -Axiom thm_SUM_EQ_GENERAL_INVERSES : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> R, forall g : B -> R, forall h : A -> B, forall k : B -> A, ((forall y : B, (@IN B y t) -> (@IN A (k y) s) /\ ((h (k y)) = y)) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ (((k (h x)) = x) /\ ((g (h x)) = (f x))))) -> (@sum A s f) = (@sum B t g). -Axiom thm_SUM_INJECTION : forall {A : Type'}, forall f : A -> R, forall p : A -> A, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((p x) = (p y)))) -> x = y))) -> (@sum A s (@o A A R f p)) = (@sum A s f). -Axiom thm_SUM_UNION_NONZERO : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (forall x : A, (@IN A x (@INTER A s t)) -> (f x) = (INR (NUMERAL 0))))) -> (@sum A (@UNION A s t) f) = (Rplus (@sum A s f) (@sum A t f)). -Axiom thm_SUM_UNIONS_NONZERO : forall {A : Type'}, forall f : A -> R, forall s : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) s) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t s) -> @FINITE A t) /\ (forall t1 : A -> Prop, forall t2 : A -> Prop, forall x : A, ((@IN (A -> Prop) t1 s) /\ ((@IN (A -> Prop) t2 s) /\ ((~ (t1 = t2)) /\ ((@IN A x t1) /\ (@IN A x t2))))) -> (f x) = (INR (NUMERAL 0))))) -> (@sum A (@UNIONS A s) f) = (@sum (A -> Prop) s (fun t : A -> Prop => @sum A t f)). -Axiom thm_SUM_CASES : forall {A : Type'}, forall s : A -> Prop, forall P : A -> Prop, forall f : A -> R, forall g : A -> R, (@FINITE A s) -> (@sum A s (fun x : A => @COND R (P x) (f x) (g x))) = (Rplus (@sum A (@GSPEC A (fun GEN_PVAR_330 : A => exists x : A, @SETSPEC A GEN_PVAR_330 ((@IN A x s) /\ (P x)) x)) f) (@sum A (@GSPEC A (fun GEN_PVAR_331 : A => exists x : A, @SETSPEC A GEN_PVAR_331 ((@IN A x s) /\ (~ (P x))) x)) g)). -Axiom thm_SUM_CASES_1 : forall {A : Type'} (y : R) (f : A -> R), forall s : A -> Prop, forall a : A, ((@FINITE A s) /\ (@IN A a s)) -> (@sum A s (fun x : A => @COND R (x = a) y (f x))) = (Rplus (@sum A s f) (Rminus y (f a))). -Axiom thm_SUM_LE_INCLUDED : forall {A B : Type'}, forall f : A -> R, forall g : B -> R, forall s : A -> Prop, forall t : B -> Prop, forall i : B -> A, ((@FINITE A s) /\ ((@FINITE B t) /\ ((forall y : B, (@IN B y t) -> Rle (INR (NUMERAL 0)) (g y)) /\ (forall x : A, (@IN A x s) -> exists y : B, (@IN B y t) /\ (((i y) = x) /\ (Rle (f x) (g y))))))) -> Rle (@sum A s f) (@sum B t g). -Axiom thm_SUM_IMAGE_LE : forall {A B : Type'}, forall f : A -> B, forall g : B -> R, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rle (INR (NUMERAL 0)) (g (f x)))) -> Rle (@sum B (@IMAGE A B f s) g) (@sum A s (@o A B R g f)). -Axiom thm_SUM_CLOSED : forall {A : Type'}, forall P : R -> Prop, forall f : A -> R, forall s : A -> Prop, ((P (INR (NUMERAL 0))) /\ ((forall x : R, forall y : R, ((P x) /\ (P y)) -> P (Rplus x y)) /\ (forall a : A, (@IN A a s) -> P (f a)))) -> P (@sum A s f). -Axiom thm_SUM_RELATED : forall {A : Type'}, forall R' : R -> R -> Prop, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((R' (INR (NUMERAL 0)) (INR (NUMERAL 0))) /\ ((forall m : R, forall n : R, forall m' : R, forall n' : R, ((R' m n) /\ (R' m' n')) -> R' (Rplus m m') (Rplus n n')) /\ ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> R' (f x) (g x))))) -> R' (@sum A s f) (@sum A s g). -Axiom thm_SUM_CLOSED_NONEMPTY : forall {A : Type'}, forall P : R -> Prop, forall f : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ ((forall x : R, forall y : R, ((P x) /\ (P y)) -> P (Rplus x y)) /\ (forall a : A, (@IN A a s) -> P (f a))))) -> P (@sum A s f). -Axiom thm_SUM_RELATED_NONEMPTY : forall {A : Type'}, forall R' : R -> R -> Prop, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((forall m : R, forall n : R, forall m' : R, forall n' : R, ((R' m n) /\ (R' m' n')) -> R' (Rplus m m') (Rplus n n')) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> R' (f x) (g x))))) -> R' (@sum A s f) (@sum A s g). -Axiom thm_REAL_OF_NUM_SUM_GEN : forall {A : Type'}, forall f : A -> nat, forall s : A -> Prop, (@FINITE A (@GSPEC A (fun GEN_PVAR_335 : A => exists i : A, @SETSPEC A GEN_PVAR_335 ((@IN A i s) /\ (~ ((f i) = (NUMERAL 0)))) i))) -> (INR (@nsum A s f)) = (@sum A s (fun x : A => INR (f x))). -Axiom thm_SUM_ADD_NUMSEG : forall f : nat -> R, forall g : nat -> R, forall m : nat, forall n : nat, (@sum nat (dotdot m n) (fun i : nat => Rplus (f i) (g i))) = (Rplus (@sum nat (dotdot m n) f) (@sum nat (dotdot m n) g)). -Axiom thm_SUM_SUB_NUMSEG : forall f : nat -> R, forall g : nat -> R, forall m : nat, forall n : nat, (@sum nat (dotdot m n) (fun i : nat => Rminus (f i) (g i))) = (Rminus (@sum nat (dotdot m n) f) (@sum nat (dotdot m n) g)). -Axiom thm_SUM_LE_NUMSEG : forall f : nat -> R, forall g : nat -> R, forall m : nat, forall n : nat, (forall i : nat, ((Peano.le m i) /\ (Peano.le i n)) -> Rle (f i) (g i)) -> Rle (@sum nat (dotdot m n) f) (@sum nat (dotdot m n) g). -Axiom thm_SUM_EQ_NUMSEG : forall f : nat -> R, forall g : nat -> R, forall m : nat, forall n : nat, (forall i : nat, ((Peano.le m i) /\ (Peano.le i n)) -> (f i) = (g i)) -> (@sum nat (dotdot m n) f) = (@sum nat (dotdot m n) g). -Axiom thm_SUM_ABS_NUMSEG : forall f : nat -> R, forall m : nat, forall n : nat, Rle (Rabs (@sum nat (dotdot m n) f)) (@sum nat (dotdot m n) (fun i : nat => Rabs (f i))). -Axiom thm_SUM_CONST_NUMSEG : forall c : R, forall m : nat, forall n : nat, (@sum nat (dotdot m n) (fun n' : nat => c)) = (Rmult (INR (Nat.sub (Nat.add n (NUMERAL (BIT1 0))) m)) c). -Axiom thm_SUM_EQ_0_NUMSEG : forall f : nat -> R, forall m : nat, forall n : nat, (forall i : nat, ((Peano.le m i) /\ (Peano.le i n)) -> (f i) = (INR (NUMERAL 0))) -> (@sum nat (dotdot m n) f) = (INR (NUMERAL 0)). -Axiom thm_SUM_TRIV_NUMSEG : forall f : nat -> R, forall m : nat, forall n : nat, (Peano.lt n m) -> (@sum nat (dotdot m n) f) = (INR (NUMERAL 0)). -Axiom thm_SUM_POS_LE_NUMSEG : forall m : nat, forall n : nat, forall f : nat -> R, (forall p : nat, ((Peano.le m p) /\ (Peano.le p n)) -> Rle (INR (NUMERAL 0)) (f p)) -> Rle (INR (NUMERAL 0)) (@sum nat (dotdot m n) f). -Axiom thm_SUM_POS_EQ_0_NUMSEG : forall f : nat -> R, forall m : nat, forall n : nat, ((forall p : nat, ((Peano.le m p) /\ (Peano.le p n)) -> Rle (INR (NUMERAL 0)) (f p)) /\ ((@sum nat (dotdot m n) f) = (INR (NUMERAL 0)))) -> forall p : nat, ((Peano.le m p) /\ (Peano.le p n)) -> (f p) = (INR (NUMERAL 0)). -Axiom thm_SUM_SING_NUMSEG : forall f : nat -> R, forall n : nat, (@sum nat (dotdot n n) f) = (f n). -Axiom thm_SUM_CLAUSES_NUMSEG : forall (f : nat -> R), (forall m : nat, (@sum nat (dotdot m (NUMERAL 0)) f) = (@COND R (m = (NUMERAL 0)) (f (NUMERAL 0)) (INR (NUMERAL 0)))) /\ (forall m : nat, forall n : nat, (@sum nat (dotdot m (S n)) f) = (@COND R (Peano.le m (S n)) (Rplus (@sum nat (dotdot m n) f) (f (S n))) (@sum nat (dotdot m n) f))). -Axiom thm_SUM_CLAUSES_NUMSEG_LT : forall (f : nat -> R), ((@sum nat (@GSPEC nat (fun GEN_PVAR_336 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_336 (Peano.lt i (NUMERAL 0)) i)) f) = (INR (NUMERAL 0))) /\ (forall k : nat, (@sum nat (@GSPEC nat (fun GEN_PVAR_337 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_337 (Peano.lt i (S k)) i)) f) = (Rplus (@sum nat (@GSPEC nat (fun GEN_PVAR_338 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_338 (Peano.lt i k) i)) f) (f k))). -Axiom thm_SUM_CLAUSES_NUMSEG_LE : forall (f : nat -> R), ((@sum nat (@GSPEC nat (fun GEN_PVAR_339 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_339 (Peano.le i (NUMERAL 0)) i)) f) = (f (NUMERAL 0))) /\ (forall k : nat, (@sum nat (@GSPEC nat (fun GEN_PVAR_340 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_340 (Peano.le i (S k)) i)) f) = (Rplus (@sum nat (@GSPEC nat (fun GEN_PVAR_341 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_341 (Peano.le i k) i)) f) (f (S k)))). -Axiom thm_SUM_SWAP_NUMSEG : forall a : nat, forall b : nat, forall c : nat, forall d : nat, forall f : nat -> nat -> R, (@sum nat (dotdot a b) (fun i : nat => @sum nat (dotdot c d) (f i))) = (@sum nat (dotdot c d) (fun j : nat => @sum nat (dotdot a b) (fun i : nat => f i j))). -Axiom thm_SUM_ADD_SPLIT : forall f : nat -> R, forall m : nat, forall n : nat, forall p : nat, (Peano.le m (Nat.add n (NUMERAL (BIT1 0)))) -> (@sum nat (dotdot m (Nat.add n p)) f) = (Rplus (@sum nat (dotdot m n) f) (@sum nat (dotdot (Nat.add n (NUMERAL (BIT1 0))) (Nat.add n p)) f)). -Axiom thm_SUM_OFFSET : forall p : nat, forall f : nat -> R, forall m : nat, forall n : nat, (@sum nat (dotdot (Nat.add m p) (Nat.add n p)) f) = (@sum nat (dotdot m n) (fun i : nat => f (Nat.add i p))). -Axiom thm_SUM_OFFSET_0 : forall f : nat -> R, forall m : nat, forall n : nat, (Peano.le m n) -> (@sum nat (dotdot m n) f) = (@sum nat (dotdot (NUMERAL 0) (Nat.sub n m)) (fun i : nat => f (Nat.add i m))). -Axiom thm_SUM_CLAUSES_LEFT : forall f : nat -> R, forall m : nat, forall n : nat, (Peano.le m n) -> (@sum nat (dotdot m n) f) = (Rplus (f m) (@sum nat (dotdot (Nat.add m (NUMERAL (BIT1 0))) n) f)). -Axiom thm_SUM_CLAUSES_RIGHT : forall f : nat -> R, forall m : nat, forall n : nat, ((Peano.lt (NUMERAL 0) n) /\ (Peano.le m n)) -> (@sum nat (dotdot m n) f) = (Rplus (@sum nat (dotdot m (Nat.sub n (NUMERAL (BIT1 0)))) f) (f n)). -Axiom thm_SUM_PAIR : forall f : nat -> R, forall m : nat, forall n : nat, (@sum nat (dotdot (Nat.mul (NUMERAL (BIT0 (BIT1 0))) m) (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) n) (NUMERAL (BIT1 0)))) f) = (@sum nat (dotdot m n) (fun i : nat => Rplus (f (Nat.mul (NUMERAL (BIT0 (BIT1 0))) i)) (f (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) i) (NUMERAL (BIT1 0)))))). -Axiom thm_SUM_REFLECT : forall x : nat -> R, forall m : nat, forall n : nat, (@sum nat (dotdot m n) x) = (@COND R (Peano.lt n m) (INR (NUMERAL 0)) (@sum nat (dotdot (NUMERAL 0) (Nat.sub n m)) (fun i : nat => x (Nat.sub n i)))). -Axiom thm_REAL_OF_NUM_SUM_NUMSEG : forall f : nat -> nat, forall m : nat, forall n : nat, (INR (@nsum nat (dotdot m n) f)) = (@sum nat (dotdot m n) (fun i : nat => INR (f i))). -Axiom thm_SUM_PARTIAL_SUC : forall f : nat -> R, forall g : nat -> R, forall m : nat, forall n : nat, (@sum nat (dotdot m n) (fun k : nat => Rmult (f k) (Rminus (g (Nat.add k (NUMERAL (BIT1 0)))) (g k)))) = (@COND R (Peano.le m n) (Rminus (Rminus (Rmult (f (Nat.add n (NUMERAL (BIT1 0)))) (g (Nat.add n (NUMERAL (BIT1 0))))) (Rmult (f m) (g m))) (@sum nat (dotdot m n) (fun k : nat => Rmult (g (Nat.add k (NUMERAL (BIT1 0)))) (Rminus (f (Nat.add k (NUMERAL (BIT1 0)))) (f k))))) (INR (NUMERAL 0))). -Axiom thm_SUM_PARTIAL_PRE : forall f : nat -> R, forall g : nat -> R, forall m : nat, forall n : nat, (@sum nat (dotdot m n) (fun k : nat => Rmult (f k) (Rminus (g k) (g (Nat.sub k (NUMERAL (BIT1 0))))))) = (@COND R (Peano.le m n) (Rminus (Rminus (Rmult (f (Nat.add n (NUMERAL (BIT1 0)))) (g n)) (Rmult (f m) (g (Nat.sub m (NUMERAL (BIT1 0)))))) (@sum nat (dotdot m n) (fun k : nat => Rmult (g k) (Rminus (f (Nat.add k (NUMERAL (BIT1 0)))) (f k))))) (INR (NUMERAL 0))). -Axiom thm_SUM_DIFFS : forall (f : nat -> R), forall m : nat, forall n : nat, (@sum nat (dotdot m n) (fun k : nat => Rminus (f k) (f (Nat.add k (NUMERAL (BIT1 0)))))) = (@COND R (Peano.le m n) (Rminus (f m) (f (Nat.add n (NUMERAL (BIT1 0))))) (INR (NUMERAL 0))). -Axiom thm_SUM_DIFFS_ALT : forall (f : nat -> R), forall m : nat, forall n : nat, (@sum nat (dotdot m n) (fun k : nat => Rminus (f (Nat.add k (NUMERAL (BIT1 0)))) (f k))) = (@COND R (Peano.le m n) (Rminus (f (Nat.add n (NUMERAL (BIT1 0)))) (f m)) (INR (NUMERAL 0))). -Axiom thm_SUM_COMBINE_R : forall f : nat -> R, forall m : nat, forall n : nat, forall p : nat, ((Peano.le m (Nat.add n (NUMERAL (BIT1 0)))) /\ (Peano.le n p)) -> (Rplus (@sum nat (dotdot m n) f) (@sum nat (dotdot (Nat.add n (NUMERAL (BIT1 0))) p) f)) = (@sum nat (dotdot m p) f). -Axiom thm_SUM_COMBINE_L : forall f : nat -> R, forall m : nat, forall n : nat, forall p : nat, ((Peano.lt (NUMERAL 0) n) /\ ((Peano.le m n) /\ (Peano.le n (Nat.add p (NUMERAL (BIT1 0)))))) -> (Rplus (@sum nat (dotdot m (Nat.sub n (NUMERAL (BIT1 0)))) f) (@sum nat (dotdot n p) f)) = (@sum nat (dotdot m p) f). -Axiom thm_REAL_SUB_POW : forall x : R, forall y : R, forall n : nat, (Peano.le (NUMERAL (BIT1 0)) n) -> (Rminus (Rpower_nat x n) (Rpower_nat y n)) = (Rmult (Rminus x y) (@sum nat (dotdot (NUMERAL 0) (Nat.sub n (NUMERAL (BIT1 0)))) (fun i : nat => Rmult (Rpower_nat x i) (Rpower_nat y (Nat.sub (Nat.sub n (NUMERAL (BIT1 0))) i))))). -Axiom thm_REAL_SUB_POW_R1 : forall x : R, forall n : nat, (Peano.le (NUMERAL (BIT1 0)) n) -> (Rminus (Rpower_nat x n) (INR (NUMERAL (BIT1 0)))) = (Rmult (Rminus x (INR (NUMERAL (BIT1 0)))) (@sum nat (dotdot (NUMERAL 0) (Nat.sub n (NUMERAL (BIT1 0)))) (fun i : nat => Rpower_nat x i))). -Axiom thm_REAL_SUB_POW_L1 : forall x : R, forall n : nat, (Peano.le (NUMERAL (BIT1 0)) n) -> (Rminus (INR (NUMERAL (BIT1 0))) (Rpower_nat x n)) = (Rmult (Rminus (INR (NUMERAL (BIT1 0))) x) (@sum nat (dotdot (NUMERAL 0) (Nat.sub n (NUMERAL (BIT1 0)))) (fun i : nat => Rpower_nat x i))). -Axiom thm_REAL_SUB_POLYFUN : forall a : nat -> R, forall x : R, forall y : R, forall n : nat, (Peano.le (NUMERAL (BIT1 0)) n) -> (Rminus (@sum nat (dotdot (NUMERAL 0) n) (fun i : nat => Rmult (a i) (Rpower_nat x i))) (@sum nat (dotdot (NUMERAL 0) n) (fun i : nat => Rmult (a i) (Rpower_nat y i)))) = (Rmult (Rminus x y) (@sum nat (dotdot (NUMERAL 0) (Nat.sub n (NUMERAL (BIT1 0)))) (fun j : nat => Rmult (@sum nat (dotdot (Nat.add j (NUMERAL (BIT1 0))) n) (fun i : nat => Rmult (a i) (Rpower_nat y (Nat.sub (Nat.sub i j) (NUMERAL (BIT1 0)))))) (Rpower_nat x j)))). -Axiom thm_REAL_SUB_POLYFUN_ALT : forall a : nat -> R, forall x : R, forall y : R, forall n : nat, (Peano.le (NUMERAL (BIT1 0)) n) -> (Rminus (@sum nat (dotdot (NUMERAL 0) n) (fun i : nat => Rmult (a i) (Rpower_nat x i))) (@sum nat (dotdot (NUMERAL 0) n) (fun i : nat => Rmult (a i) (Rpower_nat y i)))) = (Rmult (Rminus x y) (@sum nat (dotdot (NUMERAL 0) (Nat.sub n (NUMERAL (BIT1 0)))) (fun j : nat => Rmult (@sum nat (dotdot (NUMERAL 0) (Nat.sub (Nat.sub n j) (NUMERAL (BIT1 0)))) (fun k : nat => Rmult (a (Nat.add j (Nat.add k (NUMERAL (BIT1 0))))) (Rpower_nat y k))) (Rpower_nat x j)))). -Axiom thm_REAL_POLYFUN_ROOTBOUND : forall n : nat, forall c : nat -> R, (~ (forall i : nat, (@IN nat i (dotdot (NUMERAL 0) n)) -> (c i) = (INR (NUMERAL 0)))) -> (@FINITE R (@GSPEC R (fun GEN_PVAR_347 : R => exists x : R, @SETSPEC R GEN_PVAR_347 ((@sum nat (dotdot (NUMERAL 0) n) (fun i : nat => Rmult (c i) (Rpower_nat x i))) = (INR (NUMERAL 0))) x))) /\ (Peano.le (@CARD R (@GSPEC R (fun GEN_PVAR_348 : R => exists x : R, @SETSPEC R GEN_PVAR_348 ((@sum nat (dotdot (NUMERAL 0) n) (fun i : nat => Rmult (c i) (Rpower_nat x i))) = (INR (NUMERAL 0))) x))) n). -Axiom thm_REAL_POLYFUN_FINITE_ROOTS : forall n : nat, forall c : nat -> R, (@FINITE R (@GSPEC R (fun GEN_PVAR_350 : R => exists x : R, @SETSPEC R GEN_PVAR_350 ((@sum nat (dotdot (NUMERAL 0) n) (fun i : nat => Rmult (c i) (Rpower_nat x i))) = (INR (NUMERAL 0))) x))) = (exists i : nat, (@IN nat i (dotdot (NUMERAL 0) n)) /\ (~ ((c i) = (INR (NUMERAL 0))))). -Axiom thm_REAL_POLYFUN_EQ_0 : forall n : nat, forall c : nat -> R, (forall x : R, (@sum nat (dotdot (NUMERAL 0) n) (fun i : nat => Rmult (c i) (Rpower_nat x i))) = (INR (NUMERAL 0))) = (forall i : nat, (@IN nat i (dotdot (NUMERAL 0) n)) -> (c i) = (INR (NUMERAL 0))). -Axiom thm_REAL_POLYFUN_EQ_CONST : forall n : nat, forall c : nat -> R, forall k : R, (forall x : R, (@sum nat (dotdot (NUMERAL 0) n) (fun i : nat => Rmult (c i) (Rpower_nat x i))) = k) = (((c (NUMERAL 0)) = k) /\ (forall i : nat, (@IN nat i (dotdot (NUMERAL (BIT1 0)) n)) -> (c i) = (INR (NUMERAL 0)))). -Axiom thm_polynomial_function : forall p : R -> R, (polynomial_function p) = (exists m : nat, exists c : nat -> R, forall x : R, (p x) = (@sum nat (dotdot (NUMERAL 0) m) (fun i : nat => Rmult (c i) (Rpower_nat x i)))). -Axiom thm_POLYNOMIAL_FUNCTION_CONST : forall c : R, polynomial_function (fun x : R => c). -Axiom thm_POLYNOMIAL_FUNCTION_ID : polynomial_function (fun x : R => x). -Axiom thm_POLYNOMIAL_FUNCTION_I : polynomial_function (@I R). -Axiom thm_POLYNOMIAL_FUNCTION_ADD : forall p : R -> R, forall q : R -> R, ((polynomial_function p) /\ (polynomial_function q)) -> polynomial_function (fun x : R => Rplus (p x) (q x)). -Axiom thm_POLYNOMIAL_FUNCTION_LMUL : forall p : R -> R, forall c : R, (polynomial_function p) -> polynomial_function (fun x : R => Rmult c (p x)). -Axiom thm_POLYNOMIAL_FUNCTION_RMUL : forall p : R -> R, forall c : R, (polynomial_function p) -> polynomial_function (fun x : R => Rmult (p x) c). -Axiom thm_POLYNOMIAL_FUNCTION_NEG : forall p : R -> R, (polynomial_function (fun x : R => Ropp (p x))) = (polynomial_function p). -Axiom thm_POLYNOMIAL_FUNCTION_SUB : forall p : R -> R, forall q : R -> R, ((polynomial_function p) /\ (polynomial_function q)) -> polynomial_function (fun x : R => Rminus (p x) (q x)). -Axiom thm_POLYNOMIAL_FUNCTION_MUL : forall p : R -> R, forall q : R -> R, ((polynomial_function p) /\ (polynomial_function q)) -> polynomial_function (fun x : R => Rmult (p x) (q x)). -Axiom thm_POLYNOMIAL_FUNCTION_SUM : forall {A : Type'}, forall s : A -> Prop, forall p : R -> A -> R, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> polynomial_function (fun x : R => p x i))) -> polynomial_function (fun x : R => @sum A s (p x)). -Axiom thm_POLYNOMIAL_FUNCTION_POW : forall p : R -> R, forall n : nat, (polynomial_function p) -> polynomial_function (fun x : R => Rpower_nat (p x) n). -Axiom thm_POLYNOMIAL_FUNCTION_INDUCT : forall P : (R -> R) -> Prop, ((P (fun x : R => x)) /\ ((forall c : R, P (fun x : R => c)) /\ ((forall p : R -> R, forall q : R -> R, ((P p) /\ (P q)) -> P (fun x : R => Rplus (p x) (q x))) /\ (forall p : R -> R, forall q : R -> R, ((P p) /\ (P q)) -> P (fun x : R => Rmult (p x) (q x)))))) -> forall p : R -> R, (polynomial_function p) -> P p. -Axiom thm_POLYNOMIAL_FUNCTION_o : forall p : R -> R, forall q : R -> R, ((polynomial_function p) /\ (polynomial_function q)) -> polynomial_function (@o R R R p q). -Axiom thm_POLYNOMIAL_FUNCTION_FINITE_ROOTS : forall p : R -> R, forall a : R, (polynomial_function p) -> (@FINITE R (@GSPEC R (fun GEN_PVAR_353 : R => exists x : R, @SETSPEC R GEN_PVAR_353 ((p x) = a) x))) = (~ (forall x : R, (p x) = a)). -Axiom thm_dimindex : forall {A : Type'}, forall s : A -> Prop, (@dimindex A s) = (@COND nat (@FINITE A (@UNIV A)) (@CARD A (@UNIV A)) (NUMERAL (BIT1 0))). -Axiom thm_DIMINDEX_NONZERO : forall {A : Type'}, forall s : A -> Prop, ~ ((@dimindex A s) = (NUMERAL 0)). -Axiom thm_DIMINDEX_GE_1 : forall {A : Type'}, forall s : A -> Prop, Peano.le (NUMERAL (BIT1 0)) (@dimindex A s). -Axiom thm_DIMINDEX_UNIV : forall {A : Type'}, forall s : A -> Prop, (@dimindex A s) = (@dimindex A (@UNIV A)). -Axiom thm_DIMINDEX_UNIQUE : forall {A : Type'} (n : nat), (@HAS_SIZE A (@UNIV A) n) -> (@dimindex A (@UNIV A)) = n. -Axiom thm_UNIV_HAS_SIZE_DIMINDEX : forall {N : Type'}, (@HAS_SIZE N (@UNIV N) (@dimindex N (@UNIV N))) = (@FINITE N (@UNIV N)). -Axiom thm_HAS_SIZE_1 : @HAS_SIZE unit (@UNIV unit) (NUMERAL (BIT1 0)). -Axiom thm_NUMSEG_LT_DIMINDEX : forall {N : Type'}, (@GSPEC nat (fun GEN_PVAR_354 : nat => exists i : nat, @SETSPEC nat GEN_PVAR_354 (Peano.lt i (@dimindex N (@UNIV N))) i)) = (dotdot (NUMERAL 0) (Nat.sub (@dimindex N (@UNIV N)) (NUMERAL (BIT1 0)))). -Axiom thm_FINITE_IMAGE_IMAGE : forall {A : Type'}, (@UNIV (finite_image A)) = (@IMAGE nat (finite_image A) (@finite_index A) (dotdot (NUMERAL (BIT1 0)) (@dimindex A (@UNIV A)))). -Axiom thm_HAS_SIZE_FINITE_IMAGE : forall {A : Type'}, forall s : A -> Prop, @HAS_SIZE (finite_image A) (@UNIV (finite_image A)) (@dimindex A s). -Axiom thm_CARD_FINITE_IMAGE : forall {A : Type'}, forall s : A -> Prop, (@CARD (finite_image A) (@UNIV (finite_image A))) = (@dimindex A s). -Axiom thm_FINITE_FINITE_IMAGE : forall {A : Type'}, @FINITE (finite_image A) (@UNIV (finite_image A)). -Axiom thm_DIMINDEX_FINITE_IMAGE : forall {A : Type'}, forall s : (finite_image A) -> Prop, forall t : A -> Prop, (@dimindex (finite_image A) s) = (@dimindex A t). -Axiom thm_FINITE_INDEX_WORKS : forall {A : Type'}, forall i : finite_image A, @ex1 nat (fun n : nat => (Peano.le (NUMERAL (BIT1 0)) n) /\ ((Peano.le n (@dimindex A (@UNIV A))) /\ ((@finite_index A n) = i))). -Axiom thm_FINITE_INDEX_INJ : forall {A : Type'}, forall i : nat, forall j : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ ((Peano.le i (@dimindex A (@UNIV A))) /\ ((Peano.le (NUMERAL (BIT1 0)) j) /\ (Peano.le j (@dimindex A (@UNIV A)))))) -> ((@finite_index A i) = (@finite_index A j)) = (i = j). -Axiom thm_FORALL_FINITE_INDEX : forall {N : Type'} (P : (finite_image N) -> Prop), (forall k : finite_image N, P k) = (forall i : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ (Peano.le i (@dimindex N (@UNIV N)))) -> P (@finite_index N i)). -Axiom thm_finite_index : forall {A N : Type'}, forall x : cart A N, forall i : nat, (@dollar A N x i) = (@dest_cart A N x (@finite_index N i)). -Axiom thm_CART_EQ : forall {A B : Type'}, forall x : cart A B, forall y : cart A B, (x = y) = (forall i : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ (Peano.le i (@dimindex B (@UNIV B)))) -> (@dollar A B x i) = (@dollar A B y i)). -Axiom thm_lambda : forall {A B : Type'}, forall g : nat -> A, (@lambda A B g) = (@ε (cart A B) (fun f : cart A B => forall i : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ (Peano.le i (@dimindex B (@UNIV B)))) -> (@dollar A B f i) = (g i))). -Axiom thm_LAMBDA_BETA : forall {A B : Type'} (g : nat -> A), forall i : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ (Peano.le i (@dimindex B (@UNIV B)))) -> (@dollar A B (@lambda A B g) i) = (g i). -Axiom thm_LAMBDA_UNIQUE : forall {A B : Type'}, forall f : cart A B, forall g : nat -> A, (forall i : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ (Peano.le i (@dimindex B (@UNIV B)))) -> (@dollar A B f i) = (g i)) = ((@lambda A B g) = f). -Axiom thm_LAMBDA_ETA : forall {A B : Type'}, forall g : cart A B, (@lambda A B (fun i : nat => @dollar A B g i)) = g. -Axiom thm_FINITE_INDEX_INRANGE : forall {A N : Type'}, forall i : nat, exists k : nat, (Peano.le (NUMERAL (BIT1 0)) k) /\ ((Peano.le k (@dimindex N (@UNIV N))) /\ (forall x : cart A N, (@dollar A N x i) = (@dollar A N x k))). -Axiom thm_FINITE_INDEX_INRANGE_2 : forall {A B N : Type'}, forall i : nat, exists k : nat, (Peano.le (NUMERAL (BIT1 0)) k) /\ ((Peano.le k (@dimindex N (@UNIV N))) /\ ((forall x : cart A N, (@dollar A N x i) = (@dollar A N x k)) /\ (forall y : cart B N, (@dollar B N y i) = (@dollar B N y k)))). -Axiom thm_CART_EQ_FULL : forall {A N : Type'}, forall x : cart A N, forall y : cart A N, (x = y) = (forall i : nat, (@dollar A N x i) = (@dollar A N y i)). -Axiom thm_pastecart : forall {A M N : Type'}, forall f : cart A M, forall g : cart A N, (@pastecart A M N f g) = (@lambda A (finite_sum M N) (fun i : nat => @COND A (Peano.le i (@dimindex M (@UNIV M))) (@dollar A M f i) (@dollar A N g (Nat.sub i (@dimindex M (@UNIV M)))))). -Axiom thm_fstcart : forall {A M N : Type'}, forall f : cart A (finite_sum M N), (@fstcart A M N f) = (@lambda A M (fun i : nat => @dollar A (finite_sum M N) f i)). -Axiom thm_sndcart : forall {A M N : Type'}, forall f : cart A (finite_sum M N), (@sndcart A M N f) = (@lambda A N (fun i : nat => @dollar A (finite_sum M N) f (Nat.add i (@dimindex M (@UNIV M))))). -Axiom thm_FINITE_SUM_IMAGE : forall {A B : Type'}, (@UNIV (finite_sum A B)) = (@IMAGE nat (finite_sum A B) (@mk_finite_sum A B) (dotdot (NUMERAL (BIT1 0)) (Nat.add (@dimindex A (@UNIV A)) (@dimindex B (@UNIV B))))). -Axiom thm_DIMINDEX_HAS_SIZE_FINITE_SUM : forall {M N : Type'}, @HAS_SIZE (finite_sum M N) (@UNIV (finite_sum M N)) (Nat.add (@dimindex M (@UNIV M)) (@dimindex N (@UNIV N))). -Axiom thm_DIMINDEX_FINITE_SUM : forall {M N : Type'}, (@dimindex (finite_sum M N) (@UNIV (finite_sum M N))) = (Nat.add (@dimindex M (@UNIV M)) (@dimindex N (@UNIV N))). -Axiom thm_FSTCART_PASTECART : forall {A M N : Type'}, forall x : cart A M, forall y : cart A N, (@fstcart A M N (@pastecart A M N x y)) = x. -Axiom thm_SNDCART_PASTECART : forall {A M N : Type'}, forall x : cart A M, forall y : cart A N, (@sndcart A M N (@pastecart A M N x y)) = y. -Axiom thm_PASTECART_FST_SND : forall {A M N : Type'}, forall z : cart A (finite_sum M N), (@pastecart A M N (@fstcart A M N z) (@sndcart A M N z)) = z. -Axiom thm_PASTECART_EQ : forall {A M N : Type'}, forall x : cart A (finite_sum M N), forall y : cart A (finite_sum M N), (x = y) = (((@fstcart A M N x) = (@fstcart A M N y)) /\ ((@sndcart A M N x) = (@sndcart A M N y))). -Axiom thm_FORALL_PASTECART : forall {A M N : Type'} (P : (cart A (finite_sum M N)) -> Prop), (forall p : cart A (finite_sum M N), P p) = (forall x : cart A M, forall y : cart A N, P (@pastecart A M N x y)). -Axiom thm_EXISTS_PASTECART : forall {A M N : Type'} (P : (cart A (finite_sum M N)) -> Prop), (exists p : cart A (finite_sum M N), P p) = (exists x : cart A M, exists y : cart A N, P (@pastecart A M N x y)). -Axiom thm_PASTECART_INJ : forall {A M N : Type'}, forall x : cart A M, forall y : cart A N, forall w : cart A M, forall z : cart A N, ((@pastecart A M N x y) = (@pastecart A M N w z)) = ((x = w) /\ (y = z)). -Axiom thm_FSTCART_COMPONENT : forall {A M N : Type'}, forall x : cart A (finite_sum M N), forall i : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ (Peano.le i (@dimindex M (@UNIV M)))) -> (@dollar A M (@fstcart A M N x) i) = (@dollar A (finite_sum M N) x i). -Axiom thm_SNDCART_COMPONENT : forall {A M N : Type'}, forall x : cart A (finite_sum M N), forall i : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ (Peano.le i (@dimindex N (@UNIV N)))) -> (@dollar A N (@sndcart A M N x) i) = (@dollar A (finite_sum M N) x (Nat.add i (@dimindex M (@UNIV M)))). -Axiom thm_PASTECART_COMPONENT : forall {A M N : Type'}, (forall u : cart A M, forall v : cart A N, forall i : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ (Peano.le i (@dimindex M (@UNIV M)))) -> (@dollar A (finite_sum M N) (@pastecart A M N u v) i) = (@dollar A M u i)) /\ (forall u : cart A M, forall v : cart A N, forall i : nat, ((Peano.le (Nat.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0))) i) /\ (Peano.le i (Nat.add (@dimindex M (@UNIV M)) (@dimindex N (@UNIV N))))) -> (@dollar A (finite_sum M N) (@pastecart A M N u v) i) = (@dollar A N v (Nat.sub i (@dimindex M (@UNIV M))))). -Axiom thm_FINITE_DIFF_IMAGE : forall {A B : Type'}, (@UNIV (finite_diff A B)) = (@IMAGE nat (finite_diff A B) (@mk_finite_diff A B) (dotdot (NUMERAL (BIT1 0)) (@COND nat (Peano.lt (@dimindex B (@UNIV B)) (@dimindex A (@UNIV A))) (Nat.sub (@dimindex A (@UNIV A)) (@dimindex B (@UNIV B))) (NUMERAL (BIT1 0))))). -Axiom thm_DIMINDEX_HAS_SIZE_FINITE_DIFF : forall {M N : Type'}, @HAS_SIZE (finite_diff M N) (@UNIV (finite_diff M N)) (@COND nat (Peano.lt (@dimindex N (@UNIV N)) (@dimindex M (@UNIV M))) (Nat.sub (@dimindex M (@UNIV M)) (@dimindex N (@UNIV N))) (NUMERAL (BIT1 0))). -Axiom thm_DIMINDEX_FINITE_DIFF : forall {M N : Type'}, (@dimindex (finite_diff M N) (@UNIV (finite_diff M N))) = (@COND nat (Peano.lt (@dimindex N (@UNIV N)) (@dimindex M (@UNIV M))) (Nat.sub (@dimindex M (@UNIV M)) (@dimindex N (@UNIV N))) (NUMERAL (BIT1 0))). -Axiom thm_FINITE_PROD_IMAGE : forall {A B : Type'}, (@UNIV (finite_prod A B)) = (@IMAGE nat (finite_prod A B) (@mk_finite_prod A B) (dotdot (NUMERAL (BIT1 0)) (Nat.mul (@dimindex A (@UNIV A)) (@dimindex B (@UNIV B))))). -Axiom thm_DIMINDEX_HAS_SIZE_FINITE_PROD : forall {M N : Type'}, @HAS_SIZE (finite_prod M N) (@UNIV (finite_prod M N)) (Nat.mul (@dimindex M (@UNIV M)) (@dimindex N (@UNIV N))). -Axiom thm_DIMINDEX_FINITE_PROD : forall {M N : Type'}, (@dimindex (finite_prod M N) (@UNIV (finite_prod M N))) = (Nat.mul (@dimindex M (@UNIV M)) (@dimindex N (@UNIV N))). -Axiom thm_tybit0_INDUCT : forall {A : Type'}, forall P : (tybit0 A) -> Prop, (forall a : finite_sum A A, P (@mktybit0 A a)) -> forall x : tybit0 A, P x. -Axiom thm_tybit0_RECURSION : forall {A Z : Type'}, forall f : (finite_sum A A) -> Z, exists fn : (tybit0 A) -> Z, forall a : finite_sum A A, (fn (@mktybit0 A a)) = (f a). -Axiom thm_tybit1_INDUCT : forall {A : Type'}, forall P : (tybit1 A) -> Prop, (forall a : finite_sum (finite_sum A A) unit, P (@mktybit1 A a)) -> forall x : tybit1 A, P x. -Axiom thm_tybit1_RECURSION : forall {A Z : Type'}, forall f : (finite_sum (finite_sum A A) unit) -> Z, exists fn : (tybit1 A) -> Z, forall a : finite_sum (finite_sum A A) unit, (fn (@mktybit1 A a)) = (f a). -Axiom thm_HAS_SIZE_TYBIT0 : forall {A : Type'}, @HAS_SIZE (tybit0 A) (@UNIV (tybit0 A)) (Nat.mul (NUMERAL (BIT0 (BIT1 0))) (@dimindex A (@UNIV A))). -Axiom thm_HAS_SIZE_TYBIT1 : forall {A : Type'}, @HAS_SIZE (tybit1 A) (@UNIV (tybit1 A)) (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) (@dimindex A (@UNIV A))) (NUMERAL (BIT1 0))). -Axiom thm_DIMINDEX_TYBIT0 : forall {A : Type'}, (@dimindex (tybit0 A) (@UNIV (tybit0 A))) = (Nat.mul (NUMERAL (BIT0 (BIT1 0))) (@dimindex A (@UNIV A))). -Axiom thm_DIMINDEX_TYBIT1 : forall {A : Type'}, (@dimindex (tybit1 A) (@UNIV (tybit1 A))) = (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) (@dimindex A (@UNIV A))) (NUMERAL (BIT1 0))). -Axiom thm_DIMINDEX_CLAUSES : forall {A : Type'}, ((@dimindex unit (@UNIV unit)) = (NUMERAL (BIT1 0))) /\ (((@dimindex (tybit0 A) (@UNIV (tybit0 A))) = (Nat.mul (NUMERAL (BIT0 (BIT1 0))) (@dimindex A (@UNIV A)))) /\ ((@dimindex (tybit1 A) (@UNIV (tybit1 A))) = (Nat.add (Nat.mul (NUMERAL (BIT0 (BIT1 0))) (@dimindex A (@UNIV A))) (NUMERAL (BIT1 0))))). -Axiom thm_FINITE_1 : @FINITE unit (@UNIV unit). -Axiom thm_FINITE_TYBIT0 : forall {A : Type'}, @FINITE (tybit0 A) (@UNIV (tybit0 A)). -Axiom thm_FINITE_TYBIT1 : forall {A : Type'}, @FINITE (tybit1 A) (@UNIV (tybit1 A)). -Axiom thm_FINITE_CLAUSES : forall {A : Type'}, (@FINITE unit (@UNIV unit)) /\ ((@FINITE (tybit0 A) (@UNIV (tybit0 A))) /\ (@FINITE (tybit1 A) (@UNIV (tybit1 A)))). -Axiom thm_DIMINDEX_2 : (@dimindex (tybit0 unit) (@UNIV (tybit0 unit))) = (NUMERAL (BIT0 (BIT1 0))). -Axiom thm_DIMINDEX_3 : (@dimindex (tybit1 unit) (@UNIV (tybit1 unit))) = (NUMERAL (BIT1 (BIT1 0))). -Axiom thm_DIMINDEX_4 : (@dimindex (tybit0 (tybit0 unit)) (@UNIV (tybit0 (tybit0 unit)))) = (NUMERAL (BIT0 (BIT0 (BIT1 0)))). -Axiom thm_FINITE_CART : forall {A N : Type'}, forall P : nat -> A -> Prop, (forall i : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ (Peano.le i (@dimindex N (@UNIV N)))) -> @FINITE A (@GSPEC A (fun GEN_PVAR_360 : A => exists x : A, @SETSPEC A GEN_PVAR_360 (P i x) x))) -> @FINITE (cart A N) (@GSPEC (cart A N) (fun GEN_PVAR_361 : cart A N => exists v : cart A N, @SETSPEC (cart A N) GEN_PVAR_361 (forall i : nat, ((Peano.le (NUMERAL (BIT1 0)) i) /\ (Peano.le i (@dimindex N (@UNIV N)))) -> P i (@dollar A N v i)) v)). -Axiom thm_HAS_SIZE_CART_UNIV : forall {A N : Type'}, forall m : nat, (@HAS_SIZE A (@UNIV A) m) -> @HAS_SIZE (cart A N) (@UNIV (cart A N)) (Nat.pow m (@dimindex N (@UNIV N))). -Axiom thm_CARD_CART_UNIV : forall {A N : Type'}, (@FINITE A (@UNIV A)) -> (@CARD (cart A N) (@UNIV (cart A N))) = (Nat.pow (@CARD A (@UNIV A)) (@dimindex N (@UNIV N))). -Axiom thm_FINITE_CART_UNIV : forall {A N : Type'}, (@FINITE A (@UNIV A)) -> @FINITE (cart A N) (@UNIV (cart A N)). -Axiom thm_vector : forall {A N : Type'}, forall l : list A, (@vector A N l) = (@lambda A N (fun i : nat => @EL A (Nat.sub i (NUMERAL (BIT1 0))) l)). -Axiom thm_IN_ELIM_PASTECART_THM : forall {A M N : Type'}, forall P : (cart A M) -> (cart A N) -> Prop, forall a : cart A M, forall b : cart A N, (@IN (cart A (finite_sum M N)) (@pastecart A M N a b) (@GSPEC (cart A (finite_sum M N)) (fun GEN_PVAR_362 : cart A (finite_sum M N) => exists x : cart A M, exists y : cart A N, @SETSPEC (cart A (finite_sum M N)) GEN_PVAR_362 (P x y) (@pastecart A M N x y)))) = (P a b). -Axiom thm_PCROSS : forall {A M N : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N) -> Prop, (@PCROSS A M N s t) = (@GSPEC (cart A (finite_sum M N)) (fun GEN_PVAR_363 : cart A (finite_sum M N) => exists x : cart A M, exists y : cart A N, @SETSPEC (cart A (finite_sum M N)) GEN_PVAR_363 ((@IN (cart A M) x s) /\ (@IN (cart A N) y t)) (@pastecart A M N x y))). -Axiom thm_FORALL_IN_PCROSS : forall {A M N : Type'} (s : (cart A M) -> Prop) (t : (cart A N) -> Prop) (P : (cart A (finite_sum M N)) -> Prop), (forall z : cart A (finite_sum M N), (@IN (cart A (finite_sum M N)) z (@PCROSS A M N s t)) -> P z) = (forall x : cart A M, forall y : cart A N, ((@IN (cart A M) x s) /\ (@IN (cart A N) y t)) -> P (@pastecart A M N x y)). -Axiom thm_EXISTS_IN_PCROSS : forall {A M N : Type'} (s : (cart A M) -> Prop) (t : (cart A N) -> Prop) (P : (cart A (finite_sum M N)) -> Prop), (exists z : cart A (finite_sum M N), (@IN (cart A (finite_sum M N)) z (@PCROSS A M N s t)) /\ (P z)) = (exists x : cart A M, exists y : cart A N, (@IN (cart A M) x s) /\ ((@IN (cart A N) y t) /\ (P (@pastecart A M N x y)))). -Axiom thm_PASTECART_IN_PCROSS : forall {A M N : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N) -> Prop, forall x : cart A M, forall y : cart A N, (@IN (cart A (finite_sum M N)) (@pastecart A M N x y) (@PCROSS A M N s t)) = ((@IN (cart A M) x s) /\ (@IN (cart A N) y t)). -Axiom thm_PCROSS_EQ_EMPTY : forall {A M N : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N) -> Prop, ((@PCROSS A M N s t) = (@EMPTY (cart A (finite_sum M N)))) = ((s = (@EMPTY (cart A M))) \/ (t = (@EMPTY (cart A N)))). -Axiom thm_PCROSS_EMPTY : forall {A M N : Type'}, (forall s : (cart A M) -> Prop, (@PCROSS A M N s (@EMPTY (cart A N))) = (@EMPTY (cart A (finite_sum M N)))) /\ (forall t : (cart A N) -> Prop, (@PCROSS A M N (@EMPTY (cart A M)) t) = (@EMPTY (cart A (finite_sum M N)))). -Axiom thm_PCROSS_SING : forall {A M N : Type'}, forall x : cart A M, forall y : cart A N, (@PCROSS A M N (@INSERT (cart A M) x (@EMPTY (cart A M))) (@INSERT (cart A N) y (@EMPTY (cart A N)))) = (@INSERT (cart A (finite_sum M N)) (@pastecart A M N x y) (@EMPTY (cart A (finite_sum M N)))). -Axiom thm_SUBSET_PCROSS : forall {A M N : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N) -> Prop, forall s' : (cart A M) -> Prop, forall t' : (cart A N) -> Prop, (@SUBSET (cart A (finite_sum M N)) (@PCROSS A M N s t) (@PCROSS A M N s' t')) = ((s = (@EMPTY (cart A M))) \/ ((t = (@EMPTY (cart A N))) \/ ((@SUBSET (cart A M) s s') /\ (@SUBSET (cart A N) t t')))). -Axiom thm_PCROSS_MONO : forall {A M N : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N) -> Prop, forall s' : (cart A M) -> Prop, forall t' : (cart A N) -> Prop, ((@SUBSET (cart A M) s s') /\ (@SUBSET (cart A N) t t')) -> @SUBSET (cart A (finite_sum M N)) (@PCROSS A M N s t) (@PCROSS A M N s' t'). -Axiom thm_PCROSS_EQ : forall {M N : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, forall t : (cart R N) -> Prop, forall t' : (cart R N) -> Prop, ((@PCROSS R M N s t) = (@PCROSS R M N s' t')) = ((((s = (@EMPTY (cart R M))) \/ (t = (@EMPTY (cart R N)))) /\ ((s' = (@EMPTY (cart R M))) \/ (t' = (@EMPTY (cart R N))))) \/ ((s = s') /\ (t = t'))). -Axiom thm_UNIV_PCROSS_UNIV : forall {A M N : Type'}, (@PCROSS A M N (@UNIV (cart A M)) (@UNIV (cart A N))) = (@UNIV (cart A (finite_sum M N))). -Axiom thm_HAS_SIZE_PCROSS : forall {A M N : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N) -> Prop, forall m : nat, forall n : nat, ((@HAS_SIZE (cart A M) s m) /\ (@HAS_SIZE (cart A N) t n)) -> @HAS_SIZE (cart A (finite_sum M N)) (@PCROSS A M N s t) (Nat.mul m n). -Axiom thm_FINITE_PCROSS : forall {A M N : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N) -> Prop, ((@FINITE (cart A M) s) /\ (@FINITE (cart A N) t)) -> @FINITE (cart A (finite_sum M N)) (@PCROSS A M N s t). -Axiom thm_FINITE_PCROSS_EQ : forall {A M N : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N) -> Prop, (@FINITE (cart A (finite_sum M N)) (@PCROSS A M N s t)) = ((s = (@EMPTY (cart A M))) \/ ((t = (@EMPTY (cart A N))) \/ ((@FINITE (cart A M) s) /\ (@FINITE (cart A N) t)))). -Axiom thm_IMAGE_FSTCART_PCROSS : forall {M N : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N) -> Prop, (@IMAGE (cart R (finite_sum M N)) (cart R M) (@fstcart R M N) (@PCROSS R M N s t)) = (@COND ((cart R M) -> Prop) (t = (@EMPTY (cart R N))) (@EMPTY (cart R M)) s). -Axiom thm_IMAGE_SNDCART_PCROSS : forall {M N : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N) -> Prop, (@IMAGE (cart R (finite_sum M N)) (cart R N) (@sndcart R M N) (@PCROSS R M N s t)) = (@COND ((cart R N) -> Prop) (s = (@EMPTY (cart R M))) (@EMPTY (cart R N)) t). -Axiom thm_PCROSS_INTER : forall {A M N : Type'}, (forall s : (cart A M) -> Prop, forall t : (cart A N) -> Prop, forall u : (cart A N) -> Prop, (@PCROSS A M N s (@INTER (cart A N) t u)) = (@INTER (cart A (finite_sum M N)) (@PCROSS A M N s t) (@PCROSS A M N s u))) /\ (forall s : (cart A M) -> Prop, forall t : (cart A M) -> Prop, forall u : (cart A N) -> Prop, (@PCROSS A M N (@INTER (cart A M) s t) u) = (@INTER (cart A (finite_sum M N)) (@PCROSS A M N s u) (@PCROSS A M N t u))). -Axiom thm_PCROSS_UNION : forall {A M N : Type'}, (forall s : (cart A M) -> Prop, forall t : (cart A N) -> Prop, forall u : (cart A N) -> Prop, (@PCROSS A M N s (@UNION (cart A N) t u)) = (@UNION (cart A (finite_sum M N)) (@PCROSS A M N s t) (@PCROSS A M N s u))) /\ (forall s : (cart A M) -> Prop, forall t : (cart A M) -> Prop, forall u : (cart A N) -> Prop, (@PCROSS A M N (@UNION (cart A M) s t) u) = (@UNION (cart A (finite_sum M N)) (@PCROSS A M N s u) (@PCROSS A M N t u))). -Axiom thm_PCROSS_DIFF : forall {A M N : Type'}, (forall s : (cart A M) -> Prop, forall t : (cart A N) -> Prop, forall u : (cart A N) -> Prop, (@PCROSS A M N s (@DIFF (cart A N) t u)) = (@DIFF (cart A (finite_sum M N)) (@PCROSS A M N s t) (@PCROSS A M N s u))) /\ (forall s : (cart A M) -> Prop, forall t : (cart A M) -> Prop, forall u : (cart A N) -> Prop, (@PCROSS A M N (@DIFF (cart A M) s t) u) = (@DIFF (cart A (finite_sum M N)) (@PCROSS A M N s u) (@PCROSS A M N t u))). -Axiom thm_INTER_PCROSS : forall {A M N : Type'}, forall s : (cart A M) -> Prop, forall s' : (cart A M) -> Prop, forall t : (cart A N) -> Prop, forall t' : (cart A N) -> Prop, (@INTER (cart A (finite_sum M N)) (@PCROSS A M N s t) (@PCROSS A M N s' t')) = (@PCROSS A M N (@INTER (cart A M) s s') (@INTER (cart A N) t t')). -Axiom thm_PCROSS_UNIONS : forall {A M N : Type'}, (forall s : (cart A M) -> Prop, forall f : ((cart A N) -> Prop) -> Prop, (@PCROSS A M N s (@UNIONS (cart A N) f)) = (@UNIONS (cart A (finite_sum M N)) (@GSPEC ((cart A (finite_sum M N)) -> Prop) (fun GEN_PVAR_365 : (cart A (finite_sum M N)) -> Prop => exists t : (cart A N) -> Prop, @SETSPEC ((cart A (finite_sum M N)) -> Prop) GEN_PVAR_365 (@IN ((cart A N) -> Prop) t f) (@PCROSS A M N s t))))) /\ (forall f : ((cart A M) -> Prop) -> Prop, forall t : (cart A N) -> Prop, (@PCROSS A M N (@UNIONS (cart A M) f) t) = (@UNIONS (cart A (finite_sum M N)) (@GSPEC ((cart A (finite_sum M N)) -> Prop) (fun GEN_PVAR_366 : (cart A (finite_sum M N)) -> Prop => exists s : (cart A M) -> Prop, @SETSPEC ((cart A (finite_sum M N)) -> Prop) GEN_PVAR_366 (@IN ((cart A M) -> Prop) s f) (@PCROSS A M N s t))))). -Axiom thm_PCROSS_UNIONS_UNIONS : forall {A M N : Type'}, forall f : ((cart A M) -> Prop) -> Prop, forall g : ((cart A N) -> Prop) -> Prop, (@PCROSS A M N (@UNIONS (cart A M) f) (@UNIONS (cart A N) g)) = (@UNIONS (cart A (finite_sum M N)) (@GSPEC ((cart A (finite_sum M N)) -> Prop) (fun GEN_PVAR_364 : (cart A (finite_sum M N)) -> Prop => exists s : (cart A M) -> Prop, exists t : (cart A N) -> Prop, @SETSPEC ((cart A (finite_sum M N)) -> Prop) GEN_PVAR_364 ((@IN ((cart A M) -> Prop) s f) /\ (@IN ((cart A N) -> Prop) t g)) (@PCROSS A M N s t)))). -Axiom thm_PCROSS_INTERS : forall {A M N : Type'}, (forall s : (cart A M) -> Prop, forall f : ((cart A N) -> Prop) -> Prop, (@PCROSS A M N s (@INTERS (cart A N) f)) = (@COND ((cart A (finite_sum M N)) -> Prop) (f = (@EMPTY ((cart A N) -> Prop))) (@PCROSS A M N s (@UNIV (cart A N))) (@INTERS (cart A (finite_sum M N)) (@GSPEC ((cart A (finite_sum M N)) -> Prop) (fun GEN_PVAR_370 : (cart A (finite_sum M N)) -> Prop => exists t : (cart A N) -> Prop, @SETSPEC ((cart A (finite_sum M N)) -> Prop) GEN_PVAR_370 (@IN ((cart A N) -> Prop) t f) (@PCROSS A M N s t)))))) /\ (forall f : ((cart A M) -> Prop) -> Prop, forall t : (cart A N) -> Prop, (@PCROSS A M N (@INTERS (cart A M) f) t) = (@COND ((cart A (finite_sum M N)) -> Prop) (f = (@EMPTY ((cart A M) -> Prop))) (@PCROSS A M N (@UNIV (cart A M)) t) (@INTERS (cart A (finite_sum M N)) (@GSPEC ((cart A (finite_sum M N)) -> Prop) (fun GEN_PVAR_371 : (cart A (finite_sum M N)) -> Prop => exists s : (cart A M) -> Prop, @SETSPEC ((cart A (finite_sum M N)) -> Prop) GEN_PVAR_371 (@IN ((cart A M) -> Prop) s f) (@PCROSS A M N s t)))))). -Axiom thm_PCROSS_INTERS_INTERS : forall {A M N : Type'}, forall f : ((cart A M) -> Prop) -> Prop, forall g : ((cart A N) -> Prop) -> Prop, (@PCROSS A M N (@INTERS (cart A M) f) (@INTERS (cart A N) g)) = (@COND ((cart A (finite_sum M N)) -> Prop) (f = (@EMPTY ((cart A M) -> Prop))) (@INTERS (cart A (finite_sum M N)) (@GSPEC ((cart A (finite_sum M N)) -> Prop) (fun GEN_PVAR_367 : (cart A (finite_sum M N)) -> Prop => exists t : (cart A N) -> Prop, @SETSPEC ((cart A (finite_sum M N)) -> Prop) GEN_PVAR_367 (@IN ((cart A N) -> Prop) t g) (@PCROSS A M N (@UNIV (cart A M)) t)))) (@COND ((cart A (finite_sum M N)) -> Prop) (g = (@EMPTY ((cart A N) -> Prop))) (@INTERS (cart A (finite_sum M N)) (@GSPEC ((cart A (finite_sum M N)) -> Prop) (fun GEN_PVAR_368 : (cart A (finite_sum M N)) -> Prop => exists s : (cart A M) -> Prop, @SETSPEC ((cart A (finite_sum M N)) -> Prop) GEN_PVAR_368 (@IN ((cart A M) -> Prop) s f) (@PCROSS A M N s (@UNIV (cart A N)))))) (@INTERS (cart A (finite_sum M N)) (@GSPEC ((cart A (finite_sum M N)) -> Prop) (fun GEN_PVAR_369 : (cart A (finite_sum M N)) -> Prop => exists s : (cart A M) -> Prop, exists t : (cart A N) -> Prop, @SETSPEC ((cart A (finite_sum M N)) -> Prop) GEN_PVAR_369 ((@IN ((cart A M) -> Prop) s f) /\ (@IN ((cart A N) -> Prop) t g)) (@PCROSS A M N s t)))))). -Axiom thm_DISJOINT_PCROSS : forall {A M N : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N) -> Prop, forall s' : (cart A M) -> Prop, forall t' : (cart A N) -> Prop, (@DISJOINT (cart A (finite_sum M N)) (@PCROSS A M N s t) (@PCROSS A M N s' t')) = ((@DISJOINT (cart A M) s s') \/ (@DISJOINT (cart A N) t t')). -Axiom thm_CASEWISE_DEF : forall {_137714 _137750 _137754 _137755 : Type'} (h : prod (_137750 -> _137754) (_137755 -> _137750 -> _137714)) (t : list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) (f : _137755) (x : _137754), ((@CASEWISE _137714 _137750 _137754 _137755 (@nil (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) f x) = (@ε _137714 (fun y : _137714 => True))) /\ ((@CASEWISE _137714 _137750 _137754 _137755 (@cons (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714)) h t) f x) = (@COND _137714 (exists y : _137750, (@fst (_137750 -> _137754) (_137755 -> _137750 -> _137714) h y) = x) (@snd (_137750 -> _137754) (_137755 -> _137750 -> _137714) h f (@ε _137750 (fun y : _137750 => (@fst (_137750 -> _137754) (_137755 -> _137750 -> _137714) h y) = x))) (@CASEWISE _137714 _137750 _137754 _137755 t f x))). -Axiom thm_CASEWISE : forall {_137766 _137774 _137775 _137814 _137815 _137817 : Type'} (t : _137815 -> _137817 -> _137775) (s : _137817 -> _137814) (clauses : list (prod (_137817 -> _137814) (_137815 -> _137817 -> _137775))) (f : _137815) (x : _137814), ((@CASEWISE _137774 _137766 _137814 _137815 (@nil (prod (_137766 -> _137814) (_137815 -> _137766 -> _137774))) f x) = (@ε _137774 (fun y : _137774 => True))) /\ ((@CASEWISE _137775 _137817 _137814 _137815 (@cons (prod (_137817 -> _137814) (_137815 -> _137817 -> _137775)) (@pair (_137817 -> _137814) (_137815 -> _137817 -> _137775) s t) clauses) f x) = (@COND _137775 (exists y : _137817, (s y) = x) (t f (@ε _137817 (fun y : _137817 => (s y) = x))) (@CASEWISE _137775 _137817 _137814 _137815 clauses f x))). -Axiom thm_CASEWISE_CASES : forall {_137906 _137907 _137909 _137916 : Type'}, forall clauses : list (prod (_137909 -> _137906) (_137907 -> _137909 -> _137916)), forall c : _137907, forall x : _137906, (exists s : _137909 -> _137906, exists t : _137907 -> _137909 -> _137916, exists a : _137909, (@List.In (prod (_137909 -> _137906) (_137907 -> _137909 -> _137916)) (@pair (_137909 -> _137906) (_137907 -> _137909 -> _137916) s t) clauses) /\ (((s a) = x) /\ ((@CASEWISE _137916 _137909 _137906 _137907 clauses c x) = (t c a)))) \/ ((~ (exists s : _137909 -> _137906, exists t : _137907 -> _137909 -> _137916, exists a : _137909, (@List.In (prod (_137909 -> _137906) (_137907 -> _137909 -> _137916)) (@pair (_137909 -> _137906) (_137907 -> _137909 -> _137916) s t) clauses) /\ ((s a) = x))) /\ ((@CASEWISE _137916 _137909 _137906 _137907 clauses c x) = (@ε _137916 (fun y : _137916 => True)))). -Axiom thm_CASEWISE_WORKS : forall {A B C P : Type'}, forall clauses : list (prod (P -> A) (C -> P -> B)), forall c : C, (forall s : P -> A, forall t : C -> P -> B, forall s' : P -> A, forall t' : C -> P -> B, forall x : P, forall y : P, ((@List.In (prod (P -> A) (C -> P -> B)) (@pair (P -> A) (C -> P -> B) s t) clauses) /\ ((@List.In (prod (P -> A) (C -> P -> B)) (@pair (P -> A) (C -> P -> B) s' t') clauses) /\ ((s x) = (s' y)))) -> (t c x) = (t' c y)) -> @List.Forall (prod (P -> A) (C -> P -> B)) (@GABS ((prod (P -> A) (C -> P -> B)) -> Prop) (fun f : (prod (P -> A) (C -> P -> B)) -> Prop => forall s : P -> A, forall t : C -> P -> B, @GEQ Prop (f (@pair (P -> A) (C -> P -> B) s t)) (forall x : P, (@CASEWISE B P A C clauses c (s x)) = (t c x)))) clauses. -Axiom thm_admissible : forall {_138045 _138048 _138052 _138053 _138058 : Type'}, forall p : (_138052 -> _138048) -> _138058 -> Prop, forall lt2 : _138052 -> _138045 -> Prop, forall s : _138058 -> _138045, forall t : (_138052 -> _138048) -> _138058 -> _138053, (@admissible _138045 _138048 _138052 _138053 _138058 lt2 p s t) = (forall f : _138052 -> _138048, forall g : _138052 -> _138048, forall a : _138058, ((p f a) /\ ((p g a) /\ (forall z : _138052, (lt2 z (s a)) -> (f z) = (g z)))) -> (t f a) = (t g a)). -Axiom thm_tailadmissible : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall s : P -> A, forall p : (A -> B) -> P -> Prop, forall t : (A -> B) -> P -> B, (@tailadmissible A B P lt2 p s t) = (exists P' : (A -> B) -> P -> Prop, exists G : (A -> B) -> P -> A, exists H : (A -> B) -> P -> B, (forall f : A -> B, forall a : P, forall y : A, ((P' f a) /\ (lt2 y (G f a))) -> lt2 y (s a)) /\ ((forall f : A -> B, forall g : A -> B, forall a : P, (forall z : A, (lt2 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)))) /\ (forall f : A -> B, forall a : P, (p f a) -> (t f a) = (@COND B (P' f a) (f (G f a)) (H f a))))). -Axiom thm_superadmissible : forall {_138202 _138204 _138210 : Type'}, forall lt2 : _138202 -> _138202 -> Prop, forall p : (_138202 -> _138204) -> _138210 -> Prop, forall s : _138210 -> _138202, forall t : (_138202 -> _138204) -> _138210 -> _138204, (@superadmissible _138202 _138204 _138210 lt2 p s t) = ((@admissible _138202 _138204 _138202 Prop _138210 lt2 (fun f : _138202 -> _138204 => fun a : _138210 => True) s p) -> @tailadmissible _138202 _138204 _138210 lt2 p s t). -Axiom thm_MATCH_SEQPATTERN : forall {_138238 _138245 : Type'} (r : _138245 -> _138238 -> Prop) (x : _138245) (s : _138245 -> _138238 -> Prop), (@_MATCH _138245 _138238 x (@_SEQPATTERN _138245 _138238 r s)) = (@COND _138238 (exists y : _138238, r x y) (@_MATCH _138245 _138238 x r) (@_MATCH _138245 _138238 x s)). -Axiom thm_ADMISSIBLE_CONST : forall {_138265 _138266 _138267 _138268 _138269 : Type'} (lt2 : _138266 -> _138265 -> Prop), forall p : (_138266 -> _138267) -> _138268 -> Prop, forall s : _138268 -> _138265, forall c : _138268 -> _138269, @admissible _138265 _138267 _138266 _138269 _138268 lt2 p s (fun f : _138266 -> _138267 => c). -Axiom thm_ADMISSIBLE_BASE : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall t : P -> A, (forall f : A -> B, forall a : P, (p f a) -> lt2 (t a) (s a)) -> @admissible A B A B P lt2 p s (fun f : A -> B => fun x : P => f (t x)). -Axiom thm_ADMISSIBLE_COMB : forall {A B C D P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall g : (A -> B) -> P -> C -> D, forall y : (A -> B) -> P -> C, ((@admissible A B A (C -> D) P lt2 p s g) /\ (@admissible A B A C P lt2 p s y)) -> @admissible A B A D P lt2 p s (fun f : A -> B => fun x : P => g f x (y f x)). -Axiom thm_ADMISSIBLE_RAND : forall {A B C D P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall g : P -> C -> D, forall y : (A -> B) -> P -> C, (@admissible A B A C P lt2 p s y) -> @admissible A B A D P lt2 p s (fun f : A -> B => fun x : P => g x (y f x)). -Axiom thm_ADMISSIBLE_LAMBDA : forall {A B C P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall t : (A -> B) -> C -> P -> Prop, (@admissible A B A Prop (prod C P) lt2 (fun f : A -> B => @GABS ((prod C P) -> Prop) (fun f' : (prod C P) -> Prop => forall u : C, forall x : P, @GEQ Prop (f' (@pair C P u x)) (p f x))) (@GABS ((prod C P) -> A) (fun f : (prod C P) -> A => forall u : C, forall x : P, @GEQ A (f (@pair C P u x)) (s x))) (fun f : A -> B => @GABS ((prod C P) -> Prop) (fun f' : (prod C P) -> Prop => forall u : C, forall x : P, @GEQ Prop (f' (@pair C P u x)) (t f u x)))) -> @admissible A B A (C -> Prop) P lt2 p s (fun f : A -> B => fun x : P => fun u : C => t f u x). -Axiom thm_ADMISSIBLE_NEST : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall t : (A -> B) -> P -> A, ((@admissible A B A A P lt2 p s t) /\ (forall f : A -> B, forall a : P, (p f a) -> lt2 (t f a) (s a))) -> @admissible A B A B P lt2 p s (fun f : A -> B => fun x : P => f (t f x)). -Axiom thm_ADMISSIBLE_COND : forall {_138602 _138603 _138634 _138659 P : Type'}, forall lt2 : _138603 -> _138602 -> Prop, forall p : (_138603 -> _138634) -> P -> Prop, forall P' : (_138603 -> _138634) -> P -> Prop, forall s : P -> _138602, forall h : (_138603 -> _138634) -> P -> _138659, forall k : (_138603 -> _138634) -> P -> _138659, ((@admissible _138602 _138634 _138603 Prop P lt2 p s P') /\ ((@admissible _138602 _138634 _138603 _138659 P lt2 (fun f : _138603 -> _138634 => fun x : P => (p f x) /\ (P' f x)) s h) /\ (@admissible _138602 _138634 _138603 _138659 P lt2 (fun f : _138603 -> _138634 => fun x : P => (p f x) /\ (~ (P' f x))) s k))) -> @admissible _138602 _138634 _138603 _138659 P lt2 p s (fun f : _138603 -> _138634 => fun x : P => @COND _138659 (P' f x) (h f x) (k f x)). -Axiom thm_ADMISSIBLE_MATCH : forall {_138700 _138701 _138702 _138734 _138737 P : Type'}, forall lt2 : _138701 -> _138700 -> Prop, forall p : (_138701 -> _138702) -> P -> Prop, forall s : P -> _138700, forall e : (_138701 -> _138702) -> P -> _138737, forall c : (_138701 -> _138702) -> P -> _138737 -> _138734 -> Prop, ((@admissible _138700 _138702 _138701 _138737 P lt2 p s e) /\ (@admissible _138700 _138702 _138701 (_138734 -> Prop) P lt2 p s (fun f : _138701 -> _138702 => fun x : P => c f x (e f x)))) -> @admissible _138700 _138702 _138701 _138734 P lt2 p s (fun f : _138701 -> _138702 => fun x : P => @_MATCH _138737 _138734 (e f x) (c f x)). -Axiom thm_ADMISSIBLE_SEQPATTERN : forall {_138777 _138778 _138840 _138856 _138866 P : Type'}, forall lt2 : _138778 -> _138777 -> Prop, forall p : (_138778 -> _138840) -> P -> Prop, forall s : P -> _138777, forall c1 : (_138778 -> _138840) -> P -> _138866 -> _138856 -> Prop, forall c2 : (_138778 -> _138840) -> P -> _138866 -> _138856 -> Prop, forall e : (_138778 -> _138840) -> P -> _138866, ((@admissible _138777 _138840 _138778 Prop P lt2 p s (fun f : _138778 -> _138840 => fun x : P => exists y : _138856, c1 f x (e f x) y)) /\ ((@admissible _138777 _138840 _138778 (_138856 -> Prop) P lt2 (fun f : _138778 -> _138840 => fun x : P => (p f x) /\ (exists y : _138856, c1 f x (e f x) y)) s (fun f : _138778 -> _138840 => fun x : P => c1 f x (e f x))) /\ (@admissible _138777 _138840 _138778 (_138856 -> Prop) P lt2 (fun f : _138778 -> _138840 => fun x : P => (p f x) /\ (~ (exists y : _138856, c1 f x (e f x) y))) s (fun f : _138778 -> _138840 => fun x : P => c2 f x (e f x))))) -> @admissible _138777 _138840 _138778 (_138856 -> Prop) P lt2 p s (fun f : _138778 -> _138840 => fun x : P => @_SEQPATTERN _138866 _138856 (c1 f x) (c2 f x) (e f x)). -Axiom thm_ADMISSIBLE_UNGUARDED_PATTERN : forall {_138951 _138952 _138999 _139032 _139039 P : Type'}, forall lt2 : _138952 -> _138951 -> Prop, forall p : (_138952 -> _138999) -> P -> Prop, forall s : P -> _138951, forall pat : (_138952 -> _138999) -> P -> _139032, forall e : (_138952 -> _138999) -> P -> _139032, forall t : (_138952 -> _138999) -> P -> _139039, forall y : (_138952 -> _138999) -> P -> _139039, ((@admissible _138951 _138999 _138952 _139032 P lt2 p s pat) /\ ((@admissible _138951 _138999 _138952 _139032 P lt2 p s e) /\ ((@admissible _138951 _138999 _138952 _139039 P lt2 (fun f : _138952 -> _138999 => fun x : P => (p f x) /\ ((pat f x) = (e f x))) s t) /\ (@admissible _138951 _138999 _138952 _139039 P lt2 (fun f : _138952 -> _138999 => fun x : P => (p f x) /\ ((pat f x) = (e f x))) s y)))) -> @admissible _138951 _138999 _138952 Prop P lt2 p s (fun f : _138952 -> _138999 => fun x : P => _UNGUARDED_PATTERN (@GEQ _139032 (pat f x) (e f x)) (@GEQ _139039 (t f x) (y f x))). -Axiom thm_ADMISSIBLE_GUARDED_PATTERN : forall {_139125 _139126 _139203 _139241 _139250 P : Type'}, forall lt2 : _139126 -> _139125 -> Prop, forall p : (_139126 -> _139203) -> P -> Prop, forall s : P -> _139125, forall pat : (_139126 -> _139203) -> P -> _139241, forall q : (_139126 -> _139203) -> P -> Prop, forall e : (_139126 -> _139203) -> P -> _139241, forall t : (_139126 -> _139203) -> P -> _139250, forall y : (_139126 -> _139203) -> P -> _139250, ((@admissible _139125 _139203 _139126 _139241 P lt2 p s pat) /\ ((@admissible _139125 _139203 _139126 _139241 P lt2 p s e) /\ ((@admissible _139125 _139203 _139126 _139250 P lt2 (fun f : _139126 -> _139203 => fun x : P => (p f x) /\ (((pat f x) = (e f x)) /\ (q f x))) s t) /\ ((@admissible _139125 _139203 _139126 Prop P lt2 (fun f : _139126 -> _139203 => fun x : P => (p f x) /\ ((pat f x) = (e f x))) s q) /\ (@admissible _139125 _139203 _139126 _139250 P lt2 (fun f : _139126 -> _139203 => fun x : P => (p f x) /\ (((pat f x) = (e f x)) /\ (q f x))) s y))))) -> @admissible _139125 _139203 _139126 Prop P lt2 p s (fun f : _139126 -> _139203 => fun x : P => _GUARDED_PATTERN (@GEQ _139241 (pat f x) (e f x)) (q f x) (@GEQ _139250 (t f x) (y f x))). -Axiom thm_ADMISSIBLE_NSUM : forall {A B C P : Type'}, forall lt2 : B -> A -> Prop, forall p : (B -> C) -> P -> Prop, forall s : P -> A, forall h : (B -> C) -> P -> nat -> nat, forall a : P -> nat, forall b : P -> nat, (@admissible A C B nat (prod nat P) lt2 (fun f : B -> C => @GABS ((prod nat P) -> Prop) (fun f' : (prod nat P) -> Prop => forall k : nat, forall x : P, @GEQ Prop (f' (@pair nat P k x)) ((Peano.le (a x) k) /\ ((Peano.le k (b x)) /\ (p f x))))) (@GABS ((prod nat P) -> A) (fun f : (prod nat P) -> A => forall k : nat, forall x : P, @GEQ A (f (@pair nat P k x)) (s x))) (fun f : B -> C => @GABS ((prod nat P) -> nat) (fun f' : (prod nat P) -> nat => forall k : nat, forall x : P, @GEQ nat (f' (@pair nat P k x)) (h f x k)))) -> @admissible A C B nat P lt2 p s (fun f : B -> C => fun x : P => @nsum nat (dotdot (a x) (b x)) (h f x)). -Axiom thm_ADMISSIBLE_SUM : forall {A B C P : Type'}, forall lt2 : B -> A -> Prop, forall p : (B -> C) -> P -> Prop, forall s : P -> A, forall h : (B -> C) -> P -> nat -> R, forall a : P -> nat, forall b : P -> nat, (@admissible A C B R (prod nat P) lt2 (fun f : B -> C => @GABS ((prod nat P) -> Prop) (fun f' : (prod nat P) -> Prop => forall k : nat, forall x : P, @GEQ Prop (f' (@pair nat P k x)) ((Peano.le (a x) k) /\ ((Peano.le k (b x)) /\ (p f x))))) (@GABS ((prod nat P) -> A) (fun f : (prod nat P) -> A => forall k : nat, forall x : P, @GEQ A (f (@pair nat P k x)) (s x))) (fun f : B -> C => @GABS ((prod nat P) -> R) (fun f' : (prod nat P) -> R => forall k : nat, forall x : P, @GEQ R (f' (@pair nat P k x)) (h f x k)))) -> @admissible A C B R P lt2 p s (fun f : B -> C => fun x : P => @sum nat (dotdot (a x) (b x)) (h f x)). -Axiom thm_ADMISSIBLE_MAP : forall {_139543 _139552 _139558 A B P : Type'}, forall lt2 : A -> _139543 -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> _139543, forall h : (A -> B) -> P -> _139558 -> _139552, forall l : (A -> B) -> P -> list _139558, ((@admissible _139543 B A (list _139558) P lt2 p s l) /\ (@admissible _139543 B A _139552 (prod _139558 P) lt2 (fun f : A -> B => @GABS ((prod _139558 P) -> Prop) (fun f' : (prod _139558 P) -> Prop => forall y : _139558, forall x : P, @GEQ Prop (f' (@pair _139558 P y x)) ((p f x) /\ (@List.In _139558 y (l f x))))) (@GABS ((prod _139558 P) -> _139543) (fun f : (prod _139558 P) -> _139543 => forall y : _139558, forall x : P, @GEQ _139543 (f (@pair _139558 P y x)) (s x))) (fun f : A -> B => @GABS ((prod _139558 P) -> _139552) (fun f' : (prod _139558 P) -> _139552 => forall y : _139558, forall x : P, @GEQ _139552 (f' (@pair _139558 P y x)) (h f x y))))) -> @admissible _139543 B A (list _139552) P lt2 p s (fun f : A -> B => fun x : P => @List.map _139558 _139552 (h f x) (l f x)). -Axiom thm_ADMISSIBLE_MATCH_SEQPATTERN : forall {_139615 _139616 _139681 _139705 _139736 P : Type'}, forall lt2 : _139616 -> _139615 -> Prop, forall p : (_139616 -> _139681) -> P -> Prop, forall s : P -> _139615, forall c1 : (_139616 -> _139681) -> P -> _139736 -> _139705 -> Prop, forall c2 : (_139616 -> _139681) -> P -> _139736 -> _139705 -> Prop, forall e : (_139616 -> _139681) -> P -> _139736, ((@admissible _139615 _139681 _139616 Prop P lt2 p s (fun f : _139616 -> _139681 => fun x : P => exists y : _139705, c1 f x (e f x) y)) /\ ((@admissible _139615 _139681 _139616 _139705 P lt2 (fun f : _139616 -> _139681 => fun x : P => (p f x) /\ (exists y : _139705, c1 f x (e f x) y)) s (fun f : _139616 -> _139681 => fun x : P => @_MATCH _139736 _139705 (e f x) (c1 f x))) /\ (@admissible _139615 _139681 _139616 _139705 P lt2 (fun f : _139616 -> _139681 => fun x : P => (p f x) /\ (~ (exists y : _139705, c1 f x (e f x) y))) s (fun f : _139616 -> _139681 => fun x : P => @_MATCH _139736 _139705 (e f x) (c2 f x))))) -> @admissible _139615 _139681 _139616 _139705 P lt2 p s (fun f : _139616 -> _139681 => fun x : P => @_MATCH _139736 _139705 (e f x) (@_SEQPATTERN _139736 _139705 (c1 f x) (c2 f x))). -Axiom thm_ADMISSIBLE_IMP_SUPERADMISSIBLE : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall t : (A -> B) -> P -> B, (@admissible A B A B P lt2 p s t) -> @superadmissible A B P lt2 p s t. -Axiom thm_SUPERADMISSIBLE_CONST : forall {_139815 _139816 _139817 : Type'} (lt2 : _139815 -> _139815 -> Prop), forall p : (_139815 -> _139817) -> _139816 -> Prop, forall s : _139816 -> _139815, forall c : _139816 -> _139817, @superadmissible _139815 _139817 _139816 lt2 p s (fun f : _139815 -> _139817 => c). -Axiom thm_SUPERADMISSIBLE_TAIL : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall t : (A -> B) -> P -> A, ((@admissible A B A A P lt2 p s t) /\ (forall f : A -> B, forall a : P, (p f a) -> forall y : A, (lt2 y (t f a)) -> lt2 y (s a))) -> @superadmissible A B P lt2 p s (fun f : A -> B => fun x : P => f (t f x)). -Axiom thm_SUPERADMISSIBLE_COND : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall P' : (A -> B) -> P -> Prop, forall s : P -> A, forall h : (A -> B) -> P -> B, forall k : (A -> B) -> P -> B, ((@admissible A B A Prop P lt2 p s P') /\ ((@superadmissible A B P lt2 (fun f : A -> B => fun x : P => (p f x) /\ (P' f x)) s h) /\ (@superadmissible A B P lt2 (fun f : A -> B => fun x : P => (p f x) /\ (~ (P' f x))) s k))) -> @superadmissible A B P lt2 p s (fun f : A -> B => fun x : P => @COND B (P' f x) (h f x) (k f x)). -Axiom thm_SUPERADMISSIBLE_MATCH_SEQPATTERN : forall {_140136 _140251 _140252 P : Type'}, forall lt2 : _140136 -> _140136 -> Prop, forall p : (_140136 -> _140252) -> P -> Prop, forall s : P -> _140136, forall c1 : (_140136 -> _140252) -> P -> _140251 -> _140252 -> Prop, forall c2 : (_140136 -> _140252) -> P -> _140251 -> _140252 -> Prop, forall e : (_140136 -> _140252) -> P -> _140251, ((@admissible _140136 _140252 _140136 Prop P lt2 p s (fun f : _140136 -> _140252 => fun x : P => exists y : _140252, c1 f x (e f x) y)) /\ ((@superadmissible _140136 _140252 P lt2 (fun f : _140136 -> _140252 => fun x : P => (p f x) /\ (exists y : _140252, c1 f x (e f x) y)) s (fun f : _140136 -> _140252 => fun x : P => @_MATCH _140251 _140252 (e f x) (c1 f x))) /\ (@superadmissible _140136 _140252 P lt2 (fun f : _140136 -> _140252 => fun x : P => (p f x) /\ (~ (exists y : _140252, c1 f x (e f x) y))) s (fun f : _140136 -> _140252 => fun x : P => @_MATCH _140251 _140252 (e f x) (c2 f x))))) -> @superadmissible _140136 _140252 P lt2 p s (fun f : _140136 -> _140252 => fun x : P => @_MATCH _140251 _140252 (e f x) (@_SEQPATTERN _140251 _140252 (c1 f x) (c2 f x))). -Axiom thm_SUPERADMISSIBLE_MATCH_UNGUARDED_PATTERN : forall {A B D P Q : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall e : P -> D, forall pat : Q -> D, forall arg : P -> Q -> A, ((forall f : A -> B, forall a : P, forall t : Q, forall u : Q, ((p f a) /\ (((pat t) = (e a)) /\ ((pat u) = (e a)))) -> (arg a t) = (arg a u)) /\ (forall f : A -> B, forall a : P, forall t : Q, ((p f a) /\ ((pat t) = (e a))) -> forall y : A, (lt2 y (arg a t)) -> lt2 y (s a))) -> @superadmissible A B P lt2 p s (fun f : A -> B => fun x : P => @_MATCH D B (e x) (fun u : D => fun v : B => exists t : Q, _UNGUARDED_PATTERN (@GEQ D (pat t) u) (@GEQ B (f (arg x t)) v))). -Axiom thm_SUPERADMISSIBLE_MATCH_GUARDED_PATTERN : forall {A B D P Q : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall e : P -> D, forall pat : Q -> D, forall q : P -> Q -> Prop, forall arg : P -> Q -> A, ((forall f : A -> B, forall a : P, forall t : Q, forall u : Q, ((p f a) /\ (((pat t) = (e a)) /\ ((q a t) /\ (((pat u) = (e a)) /\ (q a u))))) -> (arg a t) = (arg a u)) /\ (forall f : A -> B, forall a : P, forall t : Q, ((p f a) /\ ((q a t) /\ ((pat t) = (e a)))) -> forall y : A, (lt2 y (arg a t)) -> lt2 y (s a))) -> @superadmissible A B P lt2 p s (fun f : A -> B => fun x : P => @_MATCH D B (e x) (fun u : D => fun v : B => exists t : Q, _GUARDED_PATTERN (@GEQ D (pat t) u) (q x t) (@GEQ B (f (arg x t)) v))). -Axiom thm_WF_REC_CASES : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall clauses : list (prod (P -> A) ((A -> B) -> P -> B)), ((@WF A lt2) /\ (@List.Forall (prod (P -> A) ((A -> B) -> P -> B)) (@GABS ((prod (P -> A) ((A -> B) -> P -> B)) -> Prop) (fun f : (prod (P -> A) ((A -> B) -> P -> B)) -> Prop => forall s : P -> A, forall t : (A -> B) -> P -> B, @GEQ Prop (f (@pair (P -> A) ((A -> B) -> P -> B) s t)) (exists P' : (A -> B) -> P -> Prop, exists G : (A -> B) -> P -> A, exists H : (A -> B) -> P -> B, (forall f' : A -> B, forall a : P, forall y : A, ((P' f' a) /\ (lt2 y (G f' a))) -> lt2 y (s a)) /\ ((forall f' : A -> B, forall g : A -> B, forall a : P, (forall z : A, (lt2 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)))) /\ (forall f' : A -> B, forall a : P, (t f' a) = (@COND B (P' f' a) (f' (G f' a)) (H f' a))))))) clauses)) -> exists f : A -> B, forall x : A, (f x) = (@CASEWISE B P A (A -> B) clauses f x). -Axiom thm_RECURSION_CASEWISE : forall {A B P : Type'}, forall clauses : list (prod (P -> A) ((A -> B) -> P -> B)), ((exists lt2 : A -> A -> Prop, (@WF A lt2) /\ (@List.Forall (prod (P -> A) ((A -> B) -> P -> B)) (@GABS ((prod (P -> A) ((A -> B) -> P -> B)) -> Prop) (fun f : (prod (P -> A) ((A -> B) -> P -> B)) -> Prop => forall s : P -> A, forall t : (A -> B) -> P -> B, @GEQ Prop (f (@pair (P -> A) ((A -> B) -> P -> B) s t)) (@tailadmissible A B P lt2 (fun f' : A -> B => fun a : P => True) s t))) clauses)) /\ (forall s : P -> A, forall t : (A -> B) -> P -> B, forall s' : P -> A, forall t' : (A -> B) -> P -> B, forall f : A -> B, forall x : P, forall y : P, ((@List.In (prod (P -> A) ((A -> B) -> P -> B)) (@pair (P -> A) ((A -> B) -> P -> B) s t) clauses) /\ (@List.In (prod (P -> A) ((A -> B) -> P -> B)) (@pair (P -> A) ((A -> B) -> P -> B) s' t') clauses)) -> ((s x) = (s' y)) -> (t f x) = (t' f y))) -> exists f : A -> B, @List.Forall (prod (P -> A) ((A -> B) -> P -> B)) (@GABS ((prod (P -> A) ((A -> B) -> P -> B)) -> Prop) (fun f' : (prod (P -> A) ((A -> B) -> P -> B)) -> Prop => forall s : P -> A, forall t : (A -> B) -> P -> B, @GEQ Prop (f' (@pair (P -> A) ((A -> B) -> P -> B) s t)) (forall x : P, (f (s x)) = (t f x)))) clauses. -Axiom thm_RECURSION_CASEWISE_PAIRWISE : forall {_141475 _141491 _141495 : Type'}, forall clauses : list (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)), ((exists lt2 : _141475 -> _141475 -> Prop, (@WF _141475 lt2) /\ (@List.Forall (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) (@GABS ((prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop) (fun f : (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop => forall s : _141495 -> _141475, forall t : (_141475 -> _141491) -> _141495 -> _141491, @GEQ Prop (f (@pair (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491) s t)) (@tailadmissible _141475 _141491 _141495 lt2 (fun f' : _141475 -> _141491 => fun a : _141495 => True) s t))) clauses)) /\ ((@List.Forall (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) (@GABS ((prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop) (fun f : (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop => forall s : _141495 -> _141475, forall t : (_141475 -> _141491) -> _141495 -> _141491, @GEQ Prop (f (@pair (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491) s t)) (forall f' : _141475 -> _141491, forall x : _141495, forall y : _141495, ((s x) = (s y)) -> (t f' x) = (t f' y)))) clauses) /\ (@List.ForallOrdPairs (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) (@GABS ((prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop) (fun f : (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop => forall s : _141495 -> _141475, forall t : (_141475 -> _141491) -> _141495 -> _141491, @GEQ ((prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop) (f (@pair (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491) s t)) (@GABS ((prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop) (fun f' : (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop => forall s' : _141495 -> _141475, forall t' : (_141475 -> _141491) -> _141495 -> _141491, @GEQ Prop (f' (@pair (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491) s' t')) (forall f'' : _141475 -> _141491, forall x : _141495, forall y : _141495, ((s x) = (s' y)) -> (t f'' x) = (t' f'' y)))))) clauses))) -> exists f : _141475 -> _141491, @List.Forall (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) (@GABS ((prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop) (fun f' : (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop => forall s : _141495 -> _141475, forall t : (_141475 -> _141491) -> _141495 -> _141491, @GEQ Prop (f' (@pair (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491) s t)) (forall x : _141495, (f (s x)) = (t f x)))) clauses. -Axiom thm_SUPERADMISSIBLE_T : forall {_141605 _141607 _141611 : Type'} (lt2 : _141605 -> _141605 -> Prop) (s : _141611 -> _141605) (t : (_141605 -> _141607) -> _141611 -> _141607), (@superadmissible _141605 _141607 _141611 lt2 (fun f : _141605 -> _141607 => fun x : _141611 => True) s t) = (@tailadmissible _141605 _141607 _141611 lt2 (fun f : _141605 -> _141607 => fun x : _141611 => True) s t). +Axiom thm_SUBSET_PRED : forall {_142395 : Type'}, forall P : _142395 -> Prop, forall Q : _142395 -> Prop, (@SUBSET _142395 P Q) = (forall x : _142395, (P x) -> Q x). +Axiom thm_UNIONS_PRED : forall {_142411 : Type'} (P : (_142411 -> Prop) -> Prop), (@UNIONS _142411 P) = (fun x : _142411 => exists p : _142411 -> Prop, (P p) /\ (p x)). +Axiom thm_fld : forall {A : Type'}, forall R' : A -> A -> Prop, (@fld A R') = (@GSPEC A (fun GEN_PVAR_372 : A => exists x : A, @SETSPEC A GEN_PVAR_372 (exists y : A, (R' x y) \/ (R' y x)) x)). +Axiom thm_IN_FLD : forall {A : Type'}, forall l : A -> A -> Prop, forall x : A, (@IN A x (@fld A l)) = (exists y : A, (l x y) \/ (l y x)). +Axiom thm_FLD_EQ_EMPTY : forall {A : Type'}, forall R' : A -> A -> Prop, ((@fld A R') = (@EMPTY A)) = (R' = (fun x : A => fun y : A => False)). +Axiom thm_FLD_SUBSET : forall {_142516 : Type'}, forall l : _142516 -> _142516 -> Prop, forall r : _142516 -> _142516 -> Prop, (forall x : _142516, forall y : _142516, (l x y) -> r x y) -> @SUBSET _142516 (@fld _142516 l) (@fld _142516 r). +Axiom thm_FINITE_FLD : forall {A : Type'}, forall l : A -> A -> Prop, (@FINITE A (@fld A l)) = (@FINITE (prod A A) (@GSPEC (prod A A) (fun GEN_PVAR_373 : prod A A => exists x : A, exists y : A, @SETSPEC (prod A A) GEN_PVAR_373 (l x y) (@pair A A x y)))). +Axiom thm_qoset : forall {A : Type'}, forall l : A -> A -> Prop, (@qoset A l) = ((forall x : A, (@IN A x (@fld A l)) -> l x x) /\ (forall x : A, forall y : A, forall z : A, ((l x y) /\ (l y z)) -> l x z)). +Axiom thm_poset : forall {A : Type'}, forall l : A -> A -> Prop, (@poset A l) = ((forall x : A, (@IN A x (@fld A l)) -> l x x) /\ ((forall x : A, forall y : A, forall z : A, ((l x y) /\ (l y z)) -> l x z) /\ (forall x : A, forall y : A, ((l x y) /\ (l y x)) -> x = y))). +Axiom thm_toset : forall {A : Type'}, forall l : A -> A -> Prop, (@toset A l) = ((forall x : A, (@IN A x (@fld A l)) -> l x x) /\ ((forall x : A, forall y : A, forall z : A, ((l x y) /\ (l y z)) -> l x z) /\ ((forall x : A, forall y : A, ((l x y) /\ (l y x)) -> x = y) /\ (forall x : A, forall y : A, ((@IN A x (@fld A l)) /\ (@IN A y (@fld A l))) -> (l x y) \/ (l y x))))). +Axiom thm_woset : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) = ((forall x : A, (@IN A x (@fld A l)) -> l x x) /\ ((forall x : A, forall y : A, forall z : A, ((l x y) /\ (l y z)) -> l x z) /\ ((forall x : A, forall y : A, ((l x y) /\ (l y x)) -> x = y) /\ ((forall x : A, forall y : A, ((@IN A x (@fld A l)) /\ (@IN A y (@fld A l))) -> (l x y) \/ (l y x)) /\ (forall s : A -> Prop, ((@SUBSET A s (@fld A l)) /\ (~ (s = (@EMPTY A)))) -> exists x : A, (@IN A x s) /\ (forall y : A, (@IN A y s) -> l x y)))))). +Axiom thm_wqoset : forall {A : Type'}, forall l : A -> A -> Prop, (@wqoset A l) = ((forall x : A, (@IN A x (@fld A l)) -> l x x) /\ ((forall x : A, forall y : A, forall z : A, ((l x y) /\ (l y z)) -> l x z) /\ (forall s : A -> Prop, (@SUBSET A s (@fld A l)) -> exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ (forall y : A, (@IN A y s) -> exists x : A, (@IN A x t) /\ (l x y)))))). +Axiom thm_chain : forall {A : Type'}, forall s : A -> Prop, forall l : A -> A -> Prop, (@chain A l s) = (forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> (l x y) \/ (l y x)). +Axiom thm_antichain : forall {A : Type'}, forall l : A -> A -> Prop, forall s : A -> Prop, (@antichain A l s) = ((@SUBSET A s (@fld A l)) /\ (@pairwise A (fun x : A => fun y : A => ~ (l x y)) s)). +Axiom thm_CHAIN : forall {A : Type'}, forall l : A -> A -> Prop, forall s : A -> Prop, (@chain A l s) = ((@SUBSET A s (@fld A l)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> (l x y) \/ (l y x))). +Axiom thm_ANTICHAIN : forall {A : Type'}, forall l : A -> A -> Prop, forall s : A -> Prop, (@antichain A l s) = ((@SUBSET A s (@fld A l)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> ~ (l x y))). +Axiom thm_CHAIN_SUBSET : forall {A : Type'}, forall l : A -> A -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@chain A l s) /\ (@SUBSET A t s)) -> @chain A l t. +Axiom thm_ANTICHAIN_SUBSET : forall {A : Type'}, forall l : A -> A -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@antichain A l s) /\ (@SUBSET A t s)) -> @antichain A l t. +Axiom thm_QOSET_REFL : forall {A : Type'}, forall l : A -> A -> Prop, (@qoset A l) -> forall x : A, (@fld A l x) -> l x x. +Axiom thm_QOSET_TRANS : forall {A : Type'}, forall l : A -> A -> Prop, (@qoset A l) -> forall x : A, forall y : A, forall z : A, ((l x y) /\ (l y z)) -> l x z. +Axiom thm_QOSET_REFL_EQ : forall {A : Type'}, forall l : A -> A -> Prop, forall x : A, (@qoset A l) -> (l x x) = (@IN A x (@fld A l)). +Axiom thm_QOSET_FLDEQ : forall {A : Type'}, forall l : A -> A -> Prop, (@qoset A l) -> forall x : A, (@fld A l x) = (l x x). +Axiom thm_QOSET_FLD : forall {A : Type'}, forall l : A -> A -> Prop, (@qoset A l) -> (@fld A l) = (@GSPEC A (fun GEN_PVAR_374 : A => exists x : A, @SETSPEC A GEN_PVAR_374 (l x x) x)). +Axiom thm_WOSET_IMP_TOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> @toset A l. +Axiom thm_WOSET_IMP_POSET : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> @poset A l. +Axiom thm_WOSET_IMP_QOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> @qoset A l. +Axiom thm_TOSET_IMP_POSET : forall {A : Type'}, forall l : A -> A -> Prop, (@toset A l) -> @poset A l. +Axiom thm_TOSET_IMP_QOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@toset A l) -> @qoset A l. +Axiom thm_POSET_IMP_QOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@poset A l) -> @qoset A l. +Axiom thm_WQOSET_IMP_QOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@wqoset A l) -> @qoset A l. +Axiom thm_strictly : forall {A : Type'}, forall R' : A -> A -> Prop, (@strictly A R') = (fun x : A => fun y : A => (R' x y) /\ (~ (R' y x))). +Axiom thm_properly : forall {A : Type'}, forall R' : A -> A -> Prop, (@properly A R') = (fun x : A => fun y : A => (R' x y) /\ (~ (x = y))). +Axiom thm_PROPERLY_EQ_STRICTLY : forall {A : Type'}, forall l : A -> A -> Prop, (@poset A l) -> (@properly A l) = (@strictly A l). +Axiom thm_STRICTLY_EQ_PROPERLY : forall {A : Type'}, forall l : A -> A -> Prop, (@poset A l) -> (@strictly A l) = (@properly A l). +Axiom thm_STRICTLY_IMP_PROPERLY : forall {A : Type'}, forall l : A -> A -> Prop, forall x : A, forall y : A, ((@qoset A l) /\ (@strictly A l x y)) -> @properly A l x y. +Axiom thm_STRICTLY_STRICTLY : forall {A : Type'}, forall R' : A -> A -> Prop, (@strictly A (@strictly A R')) = (@strictly A R'). +Axiom thm_PROPERLY_PROPERLY : forall {A : Type'}, forall R' : A -> A -> Prop, (@properly A (@properly A R')) = (@properly A R'). +Axiom thm_STRICTLY_PROPERLY : forall {A : Type'}, forall R' : A -> A -> Prop, (@strictly A (@properly A R')) = (@strictly A R'). +Axiom thm_PROPERLY_STRICTLY : forall {A : Type'}, forall R' : A -> A -> Prop, (@properly A (@strictly A R')) = (@strictly A R'). +Axiom thm_PROPERLY_MONO : forall {_143537 : Type'}, forall R' : _143537 -> _143537 -> Prop, forall S' : _143537 -> _143537 -> Prop, (forall x : _143537, forall y : _143537, (R' x y) -> S' x y) -> forall x : _143537, forall y : _143537, (@properly _143537 R' x y) -> @properly _143537 S' x y. +Axiom thm_POSET_QOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@poset A l) = ((@qoset A l) /\ (forall x : A, forall y : A, ((l x y) /\ (l y x)) -> x = y)). +Axiom thm_TOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@toset A l) = ((forall x : A, forall y : A, forall z : A, ((l x y) /\ (l y z)) -> l x z) /\ ((forall x : A, forall y : A, ((l x y) /\ (l y x)) -> x = y) /\ (forall x : A, forall y : A, ((@IN A x (@fld A l)) /\ (@IN A y (@fld A l))) -> (l x y) \/ (l y x)))). +Axiom thm_TOSET_POSET : forall {A : Type'}, forall l : A -> A -> Prop, (@toset A l) = ((@poset A l) /\ (forall x : A, forall y : A, ((@IN A x (@fld A l)) /\ (@IN A y (@fld A l))) -> (l x y) \/ (l y x))). +Axiom thm_WOSET_TOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) = ((@toset A l) /\ (forall s : A -> Prop, ((@SUBSET A s (@fld A l)) /\ (~ (s = (@EMPTY A)))) -> exists x : A, (@IN A x s) /\ (forall y : A, (@IN A y s) -> l x y))). +Axiom thm_WQOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@wqoset A l) = ((forall x : A, forall y : A, forall z : A, ((l x y) /\ (l y z)) -> l x z) /\ (forall s : A -> Prop, (@SUBSET A s (@fld A l)) -> exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ (forall y : A, (@IN A y s) -> exists x : A, (@IN A x t) /\ (l x y))))). +Axiom thm_WQOSET_QOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@wqoset A l) = ((@qoset A l) /\ (forall s : A -> Prop, (@SUBSET A s (@fld A l)) -> exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ (forall y : A, (@IN A y s) -> exists x : A, (@IN A x t) /\ (l x y))))). +Axiom thm_WOSET_POSET : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) = ((@poset A l) /\ (forall s : A -> Prop, ((@SUBSET A s (@fld A l)) /\ (~ (s = (@EMPTY A)))) -> exists x : A, (@IN A x s) /\ (forall y : A, (@IN A y s) -> l x y))). +Axiom thm_WOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) = ((forall x : A, forall y : A, ((l x y) /\ (l y x)) -> x = y) /\ (forall s : A -> Prop, ((@SUBSET A s (@fld A l)) /\ (~ (s = (@EMPTY A)))) -> exists x : A, (@IN A x s) /\ (forall y : A, (@IN A y s) -> l x y))). +Axiom thm_WOSET_WF : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) = ((forall x : A, forall y : A, ((@IN A x (@fld A l)) /\ (@IN A y (@fld A l))) -> (l x y) \/ (l y x)) /\ (@WF A (@properly A l))). +Axiom thm_WOSET_IMP_WQOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> @wqoset A l. +Axiom thm_WQOSET_SUPERSET : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, ((@wqoset A l) /\ ((@qoset A m) /\ ((@SUBSET A (@fld A m) (@fld A l)) /\ (forall x : A, forall y : A, (l x y) -> m x y)))) -> @wqoset A m. +Axiom thm_WQOSET_NOBAD : forall {A : Type'}, forall l : A -> A -> Prop, (@wqoset A l) = ((@qoset A l) /\ (forall x : N -> A, (forall n : N, @IN A (x n) (@fld A l)) -> exists i : N, exists j : N, (N.lt i j) /\ (l (x i) (x j)))). +Axiom thm_WQOSET_ANTICHAIN : forall {A : Type'}, forall l : A -> A -> Prop, (@wqoset A l) = ((@qoset A l) /\ ((@WF A (@strictly A l)) /\ (forall s : A -> Prop, (@antichain A l s) -> @FINITE A s))). +Axiom thm_WQOSET_NOBAD_SUBSEQ : forall {A : Type'}, forall l : A -> A -> Prop, (@wqoset A l) = ((@qoset A l) /\ (forall x : N -> A, (forall n : N, @IN A (x n) (@fld A l)) -> exists r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (forall i : N, forall j : N, (N.le i j) -> l (x (r i)) (x (r j))))). +Axiom thm_WQOSET_IMP_WF : forall {A : Type'}, forall l : A -> A -> Prop, (@wqoset A l) -> @WF A (@strictly A l). +Axiom thm_WQOSET_WF_SUPERSET : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, ((@wqoset A l) /\ ((@qoset A m) /\ ((@SUBSET A (@fld A m) (@fld A l)) /\ (forall x : A, forall y : A, (l x y) -> m x y)))) -> @WF A (@strictly A m). +Axiom thm_WQOSET_WF_SUPERSET_EQ : forall {A : Type'}, forall l : A -> A -> Prop, (@wqoset A l) = ((@qoset A l) /\ (forall m : A -> A -> Prop, ((@qoset A m) /\ (((@fld A m) = (@fld A l)) /\ (forall x : A, forall y : A, (l x y) -> m x y))) -> @WF A (@strictly A m))). +Axiom thm_WOSET_WQOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) = ((@toset A l) /\ (@wqoset A l)). +Axiom thm_FLD_RESTRICT_QOSET : forall {A : Type'}, forall l : A -> A -> Prop, forall P : A -> Prop, (@qoset A l) -> (@fld A (fun x : A => fun y : A => (P x) /\ ((P y) /\ (l x y)))) = (@GSPEC A (fun GEN_PVAR_384 : A => exists x : A, @SETSPEC A GEN_PVAR_384 ((@IN A x (@fld A l)) /\ (P x)) x)). +Axiom thm_FLD_RESTRICT_POSET : forall {A : Type'}, forall l : A -> A -> Prop, forall P : A -> Prop, (@poset A l) -> (@fld A (fun x : A => fun y : A => (P x) /\ ((P y) /\ (l x y)))) = (@GSPEC A (fun GEN_PVAR_385 : A => exists x : A, @SETSPEC A GEN_PVAR_385 ((@IN A x (@fld A l)) /\ (P x)) x)). +Axiom thm_FLD_RESTRICT_TOSET : forall {A : Type'}, forall l : A -> A -> Prop, forall P : A -> Prop, (@toset A l) -> (@fld A (fun x : A => fun y : A => (P x) /\ ((P y) /\ (l x y)))) = (@GSPEC A (fun GEN_PVAR_386 : A => exists x : A, @SETSPEC A GEN_PVAR_386 ((@IN A x (@fld A l)) /\ (P x)) x)). +Axiom thm_FLD_RESTRICT_WOSET : forall {A : Type'}, forall l : A -> A -> Prop, forall P : A -> Prop, (@woset A l) -> (@fld A (fun x : A => fun y : A => (P x) /\ ((P y) /\ (l x y)))) = (@GSPEC A (fun GEN_PVAR_387 : A => exists x : A, @SETSPEC A GEN_PVAR_387 ((@IN A x (@fld A l)) /\ (P x)) x)). +Axiom thm_FLD_RESTRICT_WQOSET : forall {A : Type'}, forall l : A -> A -> Prop, forall P : A -> Prop, (@wqoset A l) -> (@fld A (fun x : A => fun y : A => (P x) /\ ((P y) /\ (l x y)))) = (@GSPEC A (fun GEN_PVAR_388 : A => exists x : A, @SETSPEC A GEN_PVAR_388 ((@IN A x (@fld A l)) /\ (P x)) x)). +Axiom thm_QOSET_RESTRICT : forall {A : Type'}, forall l : A -> A -> Prop, forall P : A -> Prop, (@qoset A l) -> @qoset A (fun x : A => fun y : A => (P x) /\ ((P y) /\ (l x y))). +Axiom thm_POSET_RESTRICT : forall {A : Type'}, forall l : A -> A -> Prop, forall P : A -> Prop, (@poset A l) -> @poset A (fun x : A => fun y : A => (P x) /\ ((P y) /\ (l x y))). +Axiom thm_TOSET_RESTRICT : forall {A : Type'}, forall l : A -> A -> Prop, forall P : A -> Prop, (@toset A l) -> @toset A (fun x : A => fun y : A => (P x) /\ ((P y) /\ (l x y))). +Axiom thm_WOSET_RESTRICT : forall {A : Type'}, forall l : A -> A -> Prop, forall P : A -> Prop, (@woset A l) -> @woset A (fun x : A => fun y : A => (P x) /\ ((P y) /\ (l x y))). +Axiom thm_WQOSET_RESTRICT : forall {A : Type'}, forall l : A -> A -> Prop, forall P : A -> Prop, (@wqoset A l) -> @wqoset A (fun x : A => fun y : A => (P x) /\ ((P y) /\ (l x y))). +Axiom thm_QOSET_MAX : forall {A : Type'}, forall l : A -> A -> Prop, forall s : A -> Prop, ((@qoset A l) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (@SUBSET A s (@fld A l))))) -> exists a : A, (@IN A a s) /\ (forall x : A, (@IN A x s) -> ~ (@strictly A l a x)). +Axiom thm_QOSET_MIN : forall {A : Type'}, forall l : A -> A -> Prop, forall s : A -> Prop, ((@qoset A l) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (@SUBSET A s (@fld A l))))) -> exists a : A, (@IN A a s) /\ (forall x : A, (@IN A x s) -> ~ (@strictly A l x a)). +Axiom thm_POSET_MAX : forall {A : Type'}, forall l : A -> A -> Prop, forall s : A -> Prop, ((@poset A l) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (@SUBSET A s (@fld A l))))) -> exists a : A, (@IN A a s) /\ (forall x : A, (@IN A x s) -> ~ (@properly A l a x)). +Axiom thm_POSET_MIN : forall {A : Type'}, forall l : A -> A -> Prop, forall s : A -> Prop, ((@poset A l) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (@SUBSET A s (@fld A l))))) -> exists a : A, (@IN A a s) /\ (forall x : A, (@IN A x s) -> ~ (@properly A l x a)). +Axiom thm_TOSET_MAX : forall {A : Type'}, forall l : A -> A -> Prop, forall s : A -> Prop, ((@toset A l) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (@SUBSET A s (@fld A l))))) -> exists a : A, (@IN A a s) /\ (forall x : A, (@IN A x s) -> l x a). +Axiom thm_TOSET_MIN : forall {A : Type'}, forall l : A -> A -> Prop, forall s : A -> Prop, ((@toset A l) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (@SUBSET A s (@fld A l))))) -> exists a : A, (@IN A a s) /\ (forall x : A, (@IN A x s) -> l a x). +Axiom thm_FLD_TRIVIAL : forall {A : Type'}, (@fld A (fun x : A => fun y : A => False)) = (@EMPTY A). +Axiom thm_WOSET_TRIVIAL : forall {A : Type'}, @woset A (fun x : A => fun y : A => False). +Axiom thm_WQOSET_TRIVIAL : forall {A : Type'}, @wqoset A (fun x : A => fun y : A => False). +Axiom thm_TOSET_TRIVIAL : forall {A : Type'}, @toset A (fun x : A => fun y : A => False). +Axiom thm_POSET_TRIVIAL : forall {A : Type'}, @poset A (fun x : A => fun y : A => False). +Axiom thm_QOSET_TRIVIAL : forall {A : Type'}, @qoset A (fun x : A => fun y : A => False). +Axiom thm_FLD_num : (@fld N N.le) = (@UNIV N). +Axiom thm_WOSET_num : @woset N N.le. +Axiom thm_WQOSET_num : @wqoset N N.le. +Axiom thm_TOSET_num : @toset N N.le. +Axiom thm_POSET_num : @poset N N.le. +Axiom thm_QOSET_num : @qoset N N.le. +Axiom thm_QOSET_POINTWISE : forall {A K : Type'}, forall l : A -> A -> Prop, forall s : K -> Prop, (@qoset (K -> A) (fun x : K -> A => fun y : K -> A => forall i : K, (@IN K i s) -> l (x i) (y i))) = ((s = (@EMPTY K)) \/ (@qoset A l)). +Axiom thm_FLD_POINTWISE : forall {A K : Type'}, forall l : A -> A -> Prop, forall s : K -> Prop, (@qoset A l) -> (@fld (K -> A) (fun x : K -> A => fun y : K -> A => forall i : K, (@IN K i s) -> l (x i) (y i))) = (@GSPEC (K -> A) (fun GEN_PVAR_389 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_389 (forall i : K, (@IN K i s) -> @IN A (x i) (@fld A l)) x)). +Axiom thm_WQOSET_POINTWISE : forall {A K : Type'}, forall l : A -> A -> Prop, forall s : K -> Prop, ((@wqoset A l) /\ (@FINITE K s)) -> @wqoset (K -> A) (fun x : K -> A => fun y : K -> A => forall i : K, (@IN K i s) -> l (x i) (y i)). +Axiom thm_DICKSON : forall n : N, forall x : N -> N -> N, exists i : N, exists j : N, (N.lt i j) /\ (forall k : N, (N.lt k n) -> N.le (x i k) (x j k)). +Axiom thm_inseg : forall {A : Type'}, forall m : A -> A -> Prop, forall l : A -> A -> Prop, (@inseg A l m) = (forall x : A, forall y : A, (l x y) = ((m x y) /\ (@fld A l y))). +Axiom thm_INSEG_ANTISYM : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, ((@inseg A l m) /\ (@inseg A m l)) -> l = m. +Axiom thm_INSEG_REFL : forall {A : Type'}, forall l : A -> A -> Prop, @inseg A l l. +Axiom thm_INSEG_TRANS : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, forall n : A -> A -> Prop, ((@inseg A l m) /\ (@inseg A m n)) -> @inseg A l n. +Axiom thm_linseg : forall {A : Type'}, forall l : A -> A -> Prop, forall a : A, (@linseg A l a) = (fun x : A => fun y : A => (l x y) /\ (@properly A l y a)). +Axiom thm_ordinal : forall {A : Type'}, forall l : A -> A -> Prop, (@ordinal A l) = ((@woset A l) /\ (forall x : A, (@fld A l x) -> x = (@ε A (fun y : A => ~ (@properly A l y x))))). +Axiom thm_POSET_REFL : forall {A : Type'}, forall l : A -> A -> Prop, (@poset A l) -> forall x : A, (@fld A l x) -> l x x. +Axiom thm_POSET_TRANS : forall {A : Type'}, forall l : A -> A -> Prop, (@poset A l) -> forall x : A, forall y : A, forall z : A, ((l x y) /\ (l y z)) -> l x z. +Axiom thm_POSET_ANTISYM : forall {A : Type'}, forall l : A -> A -> Prop, (@poset A l) -> forall x : A, forall y : A, ((l x y) /\ (l y x)) -> x = y. +Axiom thm_POSET_FLDEQ : forall {A : Type'}, forall l : A -> A -> Prop, (@poset A l) -> forall x : A, (@fld A l x) = (l x x). +Axiom thm_WOSET_REFL : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> forall x : A, (@fld A l x) -> l x x. +Axiom thm_WOSET_TRANS : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> forall x : A, forall y : A, forall z : A, ((l x y) /\ (l y z)) -> l x z. +Axiom thm_WOSET_ANTISYM : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> forall x : A, forall y : A, ((l x y) /\ (l y x)) -> x = y. +Axiom thm_WOSET_TOTAL : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> forall x : A, forall y : A, ((@fld A l x) /\ (@fld A l y)) -> (l x y) \/ (l y x). +Axiom thm_WOSET_WELL : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> forall s : A -> Prop, ((forall x : A, (s x) -> @fld A l x) /\ (exists x : A, s x)) -> exists x : A, (s x) /\ (forall y : A, (s y) -> l x y). +Axiom thm_WOSET_FLDEQ : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> forall x : A, (@fld A l x) = (l x x). +Axiom thm_WOSET_TRANS_LESS : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> forall x : A, forall y : A, forall z : A, ((@properly A l x y) /\ (l y z)) -> @properly A l x z. +Axiom thm_PAIRED_EXT : forall {A B C : Type'}, forall l : A -> B -> C, forall m : A -> B -> C, (forall x : A, forall y : B, (l x y) = (m x y)) = (l = m). +Axiom thm_WOSET_TRANS_LE : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> forall x : A, forall y : A, forall z : A, ((l x y) /\ (@properly A l y z)) -> @properly A l x z. +Axiom thm_WOSET_WELL_CONTRAPOS : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> forall P : A -> Prop, ((forall x : A, (P x) -> @fld A l x) /\ (exists x : A, P x)) -> exists y : A, (P y) /\ (forall z : A, (@properly A l z y) -> ~ (P z)). +Axiom thm_WOSET_TOTAL_LE : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> forall x : A, forall y : A, ((@fld A l x) /\ (@fld A l y)) -> (l x y) \/ (@properly A l y x). +Axiom thm_WOSET_TOTAL_LT : forall {A : Type'}, forall l : A -> A -> Prop, (@woset A l) -> forall x : A, forall y : A, ((@fld A l x) /\ (@fld A l y)) -> (x = y) \/ ((@properly A l x y) \/ (@properly A l y x)). +Axiom thm_ORDINAL_IMP_WOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@ordinal A l) -> @woset A l. +Axiom thm_WOSET_FINITE_TOSET : forall {A : Type'}, forall l : A -> A -> Prop, ((@toset A l) /\ (@FINITE (prod A A) (@GSPEC (prod A A) (fun GEN_PVAR_391 : prod A A => exists x : A, exists y : A, @SETSPEC (prod A A) GEN_PVAR_391 (l x y) (@pair A A x y))))) -> @woset A l. +Axiom thm_UNION_FLD : forall {A : Type'} (x : A), forall P : (A -> A -> Prop) -> Prop, (@fld A (fun x' : A => fun y : A => exists l : A -> A -> Prop, (P l) /\ (l x' y)) x) = (exists l : A -> A -> Prop, (P l) /\ (@fld A l x)). +Axiom thm_UNION_INSEG : forall {A : Type'}, forall P : (A -> A -> Prop) -> Prop, forall l : A -> A -> Prop, (forall m : A -> A -> Prop, (P m) -> @inseg A m l) -> @inseg A (fun x : A => fun y : A => exists l' : A -> A -> Prop, (P l') /\ (l' x y)) l. +Axiom thm_INSEG_SUBSET : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, (@inseg A m l) -> forall x : A, forall y : A, (m x y) -> l x y. +Axiom thm_INSEG_SUBSET_FLD : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, (@inseg A m l) -> forall x : A, (@fld A m x) -> @fld A l x. +Axiom thm_INSEG_FLD_SUBSET : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, (@inseg A l m) -> @SUBSET A (@fld A l) (@fld A m). +Axiom thm_INSEG_WOSET : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, ((@inseg A m l) /\ (@woset A l)) -> @woset A m. +Axiom thm_INSEG_ORDINAL : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, ((@inseg A m l) /\ (@ordinal A l)) -> @ordinal A m. +Axiom thm_LINSEG_INSEG : forall {A : Type'}, forall l : A -> A -> Prop, forall a : A, (@woset A l) -> @inseg A (@linseg A l a) l. +Axiom thm_LINSEG_WOSET : forall {A : Type'}, forall l : A -> A -> Prop, forall a : A, (@woset A l) -> @woset A (@linseg A l a). +Axiom thm_LINSEG_FLD : forall {A : Type'}, forall l : A -> A -> Prop, forall a : A, forall x : A, (@woset A l) -> (@fld A (@linseg A l a) x) = (@properly A l x a). +Axiom thm_INSEG_PROPER_SUBSET : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, ((@inseg A m l) /\ (~ (l = m))) -> exists x : A, exists y : A, (l x y) /\ (~ (m x y)). +Axiom thm_INSEG_PROPER_SUBSET_FLD : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, ((@inseg A m l) /\ (~ (l = m))) -> exists a : A, (@fld A l a) /\ (~ (@fld A m a)). +Axiom thm_INSEG_LINSEG : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, (@woset A l) -> (@inseg A m l) = ((m = l) \/ (exists a : A, (@fld A l a) /\ (m = (@linseg A l a)))). +Axiom thm_EXTEND_FLD : forall {A : Type'} (a : A), forall l : A -> A -> Prop, forall x : A, (@woset A l) -> (@fld A (fun x' : A => fun y : A => (l x' y) /\ (l y a)) x) = (l x a). +Axiom thm_EXTEND_INSEG : forall {A : Type'}, forall l : A -> A -> Prop, forall a : A, ((@woset A l) /\ (@fld A l a)) -> @inseg A (fun x : A => fun y : A => (l x y) /\ (l y a)) l. +Axiom thm_EXTEND_LINSEG : forall {A : Type'}, forall l : A -> A -> Prop, forall a : A, ((@woset A l) /\ (@fld A l a)) -> @inseg A (fun x : A => fun y : A => (@linseg A l a x y) \/ ((y = a) /\ ((@fld A (@linseg A l a) x) \/ (x = a)))) l. +Axiom thm_ORDINAL_CHAINED_LEMMA : forall {A : Type'}, forall k : A -> A -> Prop, forall l : A -> A -> Prop, forall m : A -> A -> Prop, ((@ordinal A l) /\ (@ordinal A m)) -> ((@inseg A k l) /\ (@inseg A k m)) -> (k = l) \/ ((k = m) \/ (exists a : A, (@fld A l a) /\ ((@fld A m a) /\ ((k = (@linseg A l a)) /\ (k = (@linseg A m a)))))). +Axiom thm_ORDINAL_CHAINED : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, ((@ordinal A l) /\ (@ordinal A m)) -> (@inseg A m l) \/ (@inseg A l m). +Axiom thm_ORDINAL_FLD_UNIQUE : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, ((@ordinal A l) /\ ((@ordinal A m) /\ ((@fld A l) = (@fld A m)))) -> l = m. +Axiom thm_ORDINAL_FLD_SUBSET : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, ((@ordinal A l) /\ ((@ordinal A m) /\ (@SUBSET A (@fld A l) (@fld A m)))) -> @inseg A l m. +Axiom thm_ORDINAL_FLD_SUBSET_EQ : forall {A : Type'}, forall l : A -> A -> Prop, forall m : A -> A -> Prop, ((@ordinal A l) /\ (@ordinal A m)) -> (@SUBSET A (@fld A l) (@fld A m)) = (@inseg A l m). +Axiom thm_FLD_SUC : forall {A : Type'} (x : A), forall l : A -> A -> Prop, forall a : A, (@fld A (fun x' : A => fun y : A => (l x' y) \/ ((y = a) /\ ((@fld A l x') \/ (x' = a)))) x) = ((@fld A l x) \/ (x = a)). +Axiom thm_ORDINAL_SUC : forall {A : Type'}, forall l : A -> A -> Prop, ((@ordinal A l) /\ (exists x : A, ~ (@fld A l x))) -> @ordinal A (fun x : A => fun y : A => (l x y) \/ ((y = (@ε A (fun y' : A => ~ (@fld A l y')))) /\ ((@fld A l x) \/ (x = (@ε A (fun y' : A => ~ (@fld A l y'))))))). +Axiom thm_ORDINAL_UNION : forall {A : Type'}, forall P : (A -> A -> Prop) -> Prop, (forall l : A -> A -> Prop, (P l) -> @ordinal A l) -> @ordinal A (fun x : A => fun y : A => exists l : A -> A -> Prop, (P l) /\ (l x y)). +Axiom thm_ORDINAL_UNION_LEMMA : forall {A : Type'}, forall l : A -> A -> Prop, forall x : A, (@ordinal A l) -> (@fld A l x) -> @fld A (fun a : A => fun b : A => exists l' : A -> A -> Prop, (@ordinal A l') /\ (l' a b)) x. +Axiom thm_ORDINAL_UP : forall {A : Type'}, forall l : A -> A -> Prop, (@ordinal A l) -> (forall x : A, @fld A l x) \/ (exists m : A -> A -> Prop, exists x : A, (@ordinal A m) /\ ((@fld A m x) /\ (~ (@fld A l x)))). +Axiom thm_WO_ORDINAL : forall {A : Type'}, exists l : A -> A -> Prop, (@ordinal A l) /\ (forall x : A, @fld A l x). +Axiom thm_FLD_RESTRICT : forall {A : Type'} (x : A), forall l : A -> A -> Prop, (@woset A l) -> forall P : A -> Prop, (@fld A (fun x' : A => fun y : A => (P x') /\ ((P y) /\ (l x' y))) x) = ((P x) /\ (@fld A l x)). +Axiom thm_WO : forall {A : Type'}, forall P : A -> Prop, exists l : A -> A -> Prop, (@woset A l) /\ ((@fld A l) = P). +Axiom thm_WF_INSEG_WOSET : forall {A : Type'}, @WF (A -> A -> Prop) (fun x : A -> A -> Prop => fun y : A -> A -> Prop => (@woset A x) /\ ((@woset A y) /\ ((@inseg A x y) /\ (~ (x = y))))). +Axiom thm_WOSET_INSEG_ORDINAL : forall {A : Type'}, @woset (A -> A -> Prop) (fun x : A -> A -> Prop => fun y : A -> A -> Prop => (@ordinal A x) /\ ((@ordinal A y) /\ (@inseg A x y))). +Axiom thm_SUBWOSET_ISO_INSEG : forall {A : Type'}, forall l : A -> A -> Prop, forall s : A -> Prop, ((@woset A l) /\ ((@fld A l) = (@UNIV A))) -> exists f : A -> A, (forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> (l (f x) (f y)) = (l x y)) /\ (forall x : A, forall y : A, ((@IN A y (@IMAGE A A f s)) /\ (l x y)) -> @IN A x (@IMAGE A A f s)). +Axiom thm_HP : forall {A : Type'}, forall l : A -> A -> Prop, (@qoset A l) -> exists P : A -> Prop, (@chain A l P) /\ (forall Q : A -> Prop, ((@chain A l Q) /\ (@SUBSET A P Q)) -> Q = P). +Axiom thm_ZL_STRONG : forall {A : Type'}, forall l : A -> A -> Prop, ((@qoset A l) /\ (forall c : A -> Prop, (@chain A l c) -> exists y : A, (@IN A y (@fld A l)) /\ (forall x : A, (@IN A x c) -> l x y))) -> exists y : A, (@IN A y (@fld A l)) /\ (forall x : A, (l y x) -> l x y). +Axiom thm_ZL : forall {A : Type'}, forall l : A -> A -> Prop, ((@poset A l) /\ (forall P : A -> Prop, (@chain A l P) -> exists y : A, (@fld A l y) /\ (forall x : A, (P x) -> l x y))) -> exists y : A, (@fld A l y) /\ (forall x : A, (l y x) -> y = x). +Axiom thm_KL_POSET_LEMMA : forall {A : Type'} (C : A -> Prop) (l : A -> A -> Prop), @poset (A -> Prop) (fun c1 : A -> Prop => fun c2 : A -> Prop => (@SUBSET A C c1) /\ ((@SUBSET A c1 c2) /\ (@chain A l c2))). +Axiom thm_KL : forall {A : Type'}, forall l : A -> A -> Prop, (@poset A l) -> forall C : A -> Prop, (@chain A l C) -> exists P : A -> Prop, ((@chain A l P) /\ (@SUBSET A C P)) /\ (forall R' : A -> Prop, ((@chain A l R') /\ (@SUBSET A P R')) -> R' = P). +Axiom thm_POSET_RESTRICTED_SUBSET : forall {_149716 : Type'}, forall P : (_149716 -> Prop) -> Prop, @poset (_149716 -> Prop) (fun x : _149716 -> Prop => fun y : _149716 -> Prop => (P x) /\ ((P y) /\ (@SUBSET _149716 x y))). +Axiom thm_FLD_RESTRICTED_SUBSET : forall {_149739 : Type'}, forall P : (_149739 -> Prop) -> Prop, (@fld (_149739 -> Prop) (fun x : _149739 -> Prop => fun y : _149739 -> Prop => (P x) /\ ((P y) /\ (@SUBSET _149739 x y)))) = P. +Axiom thm_ZL_SUBSETS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall c : (A -> Prop) -> Prop, ((forall x : A -> Prop, (@IN (A -> Prop) x c) -> P x) /\ (forall x : A -> Prop, forall y : A -> Prop, ((@IN (A -> Prop) x c) /\ (@IN (A -> Prop) y c)) -> (@SUBSET A x y) \/ (@SUBSET A y x))) -> exists z : A -> Prop, (P z) /\ (forall x : A -> Prop, (@IN (A -> Prop) x c) -> @SUBSET A x z)) -> exists a : A -> Prop, (P a) /\ (forall x : A -> Prop, ((P x) /\ (@SUBSET A a x)) -> a = x). +Axiom thm_ZL_SUBSETS_UNIONS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall c : (A -> Prop) -> Prop, ((forall x : A -> Prop, (@IN (A -> Prop) x c) -> P x) /\ (forall x : A -> Prop, forall y : A -> Prop, ((@IN (A -> Prop) x c) /\ (@IN (A -> Prop) y c)) -> (@SUBSET A x y) \/ (@SUBSET A y x))) -> P (@UNIONS A c)) -> exists a : A -> Prop, (P a) /\ (forall x : A -> Prop, ((P x) /\ (@SUBSET A a x)) -> a = x). +Axiom thm_ZL_SUBSETS_UNIONS_NONEMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, ((exists x : A -> Prop, P x) /\ (forall c : (A -> Prop) -> Prop, ((exists x : A -> Prop, @IN (A -> Prop) x c) /\ ((forall x : A -> Prop, (@IN (A -> Prop) x c) -> P x) /\ (forall x : A -> Prop, forall y : A -> Prop, ((@IN (A -> Prop) x c) /\ (@IN (A -> Prop) y c)) -> (@SUBSET A x y) \/ (@SUBSET A y x)))) -> P (@UNIONS A c))) -> exists a : A -> Prop, (P a) /\ (forall x : A -> Prop, ((P x) /\ (@SUBSET A a x)) -> a = x). +Axiom thm_TUKEY : forall {A : Type'}, forall s : (A -> Prop) -> Prop, ((~ (s = (@EMPTY (A -> Prop)))) /\ (forall t : A -> Prop, (forall c : A -> Prop, ((@FINITE A c) /\ (@SUBSET A c t)) -> @IN (A -> Prop) c s) = (@IN (A -> Prop) t s))) -> exists u : A -> Prop, (@IN (A -> Prop) u s) /\ (forall v : A -> Prop, ((@IN (A -> Prop) v s) /\ (@SUBSET A u v)) -> u = v). +Axiom thm_OEP : forall {A : Type'}, forall p : A -> A -> Prop, (@poset A p) -> exists t : A -> A -> Prop, (@toset A t) /\ (((@fld A t) = (@fld A p)) /\ (forall x : A, forall y : A, (p x y) -> t x y)). +Axiom thm_TOSET_COFINAL_WOSET : forall {A : Type'}, forall l : A -> A -> Prop, (@toset A l) -> exists w : A -> A -> Prop, (forall x : A, forall y : A, (w x y) -> l x y) /\ ((@woset A w) /\ (forall x : A, (@IN A x (@fld A l)) -> exists y : A, (@IN A y (@fld A w)) /\ (l x y))). +Axiom thm_sum_CASES : forall {A B : Type'}, forall x : Datatypes.sum A B, (exists a : A, x = (@inl A B a)) \/ (exists a : B, x = (@inr A B a)). +Axiom thm_FORALL_SUM_THM : forall {_151106 _151107 : Type'} (P : (Datatypes.sum _151107 _151106) -> Prop), (forall z : Datatypes.sum _151107 _151106, P z) = ((forall x : _151107, P (@inl _151107 _151106 x)) /\ (forall x : _151106, P (@inr _151107 _151106 x))). +Axiom thm_EXISTS_SUM_THM : forall {_151132 _151133 : Type'} (P : (Datatypes.sum _151133 _151132) -> Prop), (exists z : Datatypes.sum _151133 _151132, P z) = ((exists x : _151133, P (@inl _151133 _151132 x)) \/ (exists x : _151132, P (@inr _151133 _151132 x))). +Axiom thm_FLATTEN_LEMMA : forall {_151171 _151174 : Type'} (s : _151171 -> Prop) (f : _151171 -> _151174) (g : _151174 -> _151171), (forall x : _151171, (@IN _151171 x s) -> (g (f x)) = x) = (forall y : _151174, forall x : _151171, ((@IN _151171 x s) /\ (y = (f x))) -> (g y) = x). +Axiom thm_TARSKI_SET : forall {A : Type'}, forall f : (A -> Prop) -> A -> Prop, (forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> @SUBSET A (f s) (f t)) -> exists s : A -> Prop, (f s) = s. +Axiom thm_INJECTIVE_LEFT_INVERSE_NONEMPTY : forall {_151338 _151339 : Type'} (t : _151338 -> Prop) (s : _151339 -> Prop) (f : _151339 -> _151338), (exists x : _151339, @IN _151339 x s) -> (forall x : _151339, forall y : _151339, ((@IN _151339 x s) /\ ((@IN _151339 y s) /\ ((f x) = (f y)))) -> x = y) = (exists g : _151338 -> _151339, (forall y : _151338, (@IN _151338 y t) -> @IN _151339 (g y) s) /\ (forall x : _151339, (@IN _151339 x s) -> (g (f x)) = x)). +Axiom thm_BIJECTIVE_INJECTIVE_SURJECTIVE : forall {_151443 _151446 : Type'} (t : _151443 -> Prop) (s : _151446 -> Prop) (f : _151446 -> _151443), ((forall x : _151446, (@IN _151446 x s) -> @IN _151443 (f x) t) /\ (forall y : _151443, (@IN _151443 y t) -> @ex1 _151446 (fun x : _151446 => (@IN _151446 x s) /\ ((f x) = y)))) = ((forall x : _151446, (@IN _151446 x s) -> @IN _151443 (f x) t) /\ ((forall x : _151446, forall y : _151446, ((@IN _151446 x s) /\ ((@IN _151446 y s) /\ ((f x) = (f y)))) -> x = y) /\ (forall y : _151443, (@IN _151443 y t) -> exists x : _151446, (@IN _151446 x s) /\ ((f x) = y)))). +Axiom thm_BIJECTIVE_INVERSES : forall {_151562 _151563 : Type'} (t : _151562 -> Prop) (s : _151563 -> Prop) (f : _151563 -> _151562), ((forall x : _151563, (@IN _151563 x s) -> @IN _151562 (f x) t) /\ (forall y : _151562, (@IN _151562 y t) -> @ex1 _151563 (fun x : _151563 => (@IN _151563 x s) /\ ((f x) = y)))) = ((forall x : _151563, (@IN _151563 x s) -> @IN _151562 (f x) t) /\ (exists g : _151562 -> _151563, (forall y : _151562, (@IN _151562 y t) -> @IN _151563 (g y) s) /\ ((forall y : _151562, (@IN _151562 y t) -> (f (g y)) = y) /\ (forall x : _151563, (@IN _151563 x s) -> (g (f x)) = x)))). +Axiom thm_EQ_C_BIJECTIONS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@eq_c A B s t) = (exists f : A -> B, exists g : B -> A, (forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y))). +Axiom thm_EQ_C : forall {A B : Type'} (t : B -> Prop) (s : A -> Prop), (@eq_c A B s t) = (exists R' : (prod A B) -> Prop, (forall x : A, forall y : B, (R' (@pair A B x y)) -> (@IN A x s) /\ (@IN B y t)) /\ ((forall x : A, (@IN A x s) -> @ex1 B (fun y : B => (@IN B y t) /\ (R' (@pair A B x y)))) /\ (forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ (R' (@pair A B x y)))))). +Axiom thm_EQ_C_ALT : forall {A B : Type'} (t : B -> Prop) (s : A -> Prop), (@eq_c A B s t) = (exists R' : (prod A B) -> Prop, (forall x : A, (@IN A x s) -> @ex1 B (fun y : B => (@IN B y t) /\ (R' (@pair A B x y)))) /\ (forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ (R' (@pair A B x y))))). +Axiom thm_CARD_LE_REFL : forall {A : Type'}, forall s : A -> Prop, @le_c A A s s. +Axiom thm_CARD_EMPTY_LE : forall {A B : Type'}, forall s : B -> Prop, @le_c A B (@EMPTY A) s. +Axiom thm_CARD_LE_TRANS : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, ((@le_c A B s t) /\ (@le_c B C t u)) -> @le_c A C s u. +Axiom thm_CARD_LT_REFL : forall {A : Type'}, forall s : A -> Prop, ~ (@lt_c A A s s). +Axiom thm_CARD_LET_TRANS : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, ((@le_c A B s t) /\ (@lt_c B C t u)) -> @lt_c A C s u. +Axiom thm_CARD_LTE_TRANS : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, ((@lt_c A B s t) /\ (@le_c B C t u)) -> @lt_c A C s u. +Axiom thm_CARD_LT_TRANS : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, ((@lt_c A B s t) /\ (@lt_c B C t u)) -> @lt_c A C s u. +Axiom thm_CARD_EQ_REFL : forall {A : Type'}, forall s : A -> Prop, @eq_c A A s s. +Axiom thm_CARD_EQ_REFL_IMP : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (s = t) -> @eq_c A A s t. +Axiom thm_CARD_EQ_SYM : forall {_152079 _152080 : Type'}, forall s : _152079 -> Prop, forall t : _152080 -> Prop, (@eq_c _152079 _152080 s t) = (@eq_c _152080 _152079 t s). +Axiom thm_CARD_EQ_IMP_LE : forall {_152098 _152099 : Type'}, forall s : _152098 -> Prop, forall t : _152099 -> Prop, (@eq_c _152098 _152099 s t) -> @le_c _152098 _152099 s t. +Axiom thm_CARD_LT_IMP_LE : forall {_152117 _152118 : Type'}, forall s : _152117 -> Prop, forall t : _152118 -> Prop, (@lt_c _152117 _152118 s t) -> @le_c _152117 _152118 s t. +Axiom thm_CARD_LE_RELATIONAL : forall {A B : Type'} (s : A -> Prop), forall R' : A -> B -> Prop, (forall x : A, forall y : B, forall y' : B, ((@IN A x s) /\ ((R' x y) /\ (R' x y'))) -> y = y') -> @le_c B A (@GSPEC B (fun GEN_PVAR_402 : B => exists y : B, @SETSPEC B GEN_PVAR_402 (exists x : A, (@IN A x s) /\ (R' x y)) y)) s. +Axiom thm_CARD_LE_RELATIONAL_FULL : forall {A B : Type'}, forall R' : A -> B -> Prop, forall s : A -> Prop, forall t : B -> Prop, ((forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ (R' x y)) /\ (forall x : A, forall y : B, forall y' : B, ((@IN A x s) /\ ((@IN B y t) /\ ((@IN B y' t) /\ ((R' x y) /\ (R' x y'))))) -> y = y')) -> @le_c B A t s. +Axiom thm_CARD_LE_EMPTY : forall {_152303 _152307 : Type'}, forall s : _152307 -> Prop, (@le_c _152307 _152303 s (@EMPTY _152303)) = (s = (@EMPTY _152307)). +Axiom thm_CARD_EQ_EMPTY : forall {_152319 _152323 : Type'}, forall s : _152323 -> Prop, (@eq_c _152323 _152319 s (@EMPTY _152319)) = (s = (@EMPTY _152323)). +Axiom thm_CARD_LE_ANTISYM : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@le_c A B s t) /\ (@le_c B A t s)) = (@eq_c A B s t). +Axiom thm_CARD_LE_TOTAL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@le_c A B s t) \/ (@le_c B A t s). +Axiom thm_CARD_LET_TOTAL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@le_c A B s t) \/ (@lt_c B A t s). +Axiom thm_CARD_LTE_TOTAL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@lt_c A B s t) \/ (@le_c B A t s). +Axiom thm_CARD_LT_TOTAL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@eq_c A B s t) \/ ((@lt_c A B s t) \/ (@lt_c B A t s)). +Axiom thm_CARD_NOT_LE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (~ (@le_c A B s t)) = (@lt_c B A t s). +Axiom thm_CARD_NOT_LT : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (~ (@lt_c A B s t)) = (@le_c B A t s). +Axiom thm_CARD_LT_LE : forall {_152727 _152728 : Type'}, forall s : _152727 -> Prop, forall t : _152728 -> Prop, (@lt_c _152727 _152728 s t) = ((@le_c _152727 _152728 s t) /\ (~ (@eq_c _152727 _152728 s t))). +Axiom thm_CARD_LE_LT : forall {_152753 _152754 : Type'}, forall s : _152753 -> Prop, forall t : _152754 -> Prop, (@le_c _152753 _152754 s t) = ((@lt_c _152753 _152754 s t) \/ (@eq_c _152753 _152754 s t)). +Axiom thm_CARD_LE_CONG : forall {A B C D : Type'}, forall s : A -> Prop, forall s' : B -> Prop, forall t : C -> Prop, forall t' : D -> Prop, ((@eq_c A B s s') /\ (@eq_c C D t t')) -> (@le_c A C s t) = (@le_c B D s' t'). +Axiom thm_CARD_LT_CONG : forall {A B C D : Type'}, forall s : A -> Prop, forall s' : B -> Prop, forall t : C -> Prop, forall t' : D -> Prop, ((@eq_c A B s s') /\ (@eq_c C D t t')) -> (@lt_c A C s t) = (@lt_c B D s' t'). +Axiom thm_CARD_EQ_TRANS : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, ((@eq_c A B s t) /\ (@eq_c B C t u)) -> @eq_c A C s u. +Axiom thm_CARD_EQ_CONG : forall {A B C D : Type'}, forall s : A -> Prop, forall s' : B -> Prop, forall t : C -> Prop, forall t' : D -> Prop, ((@eq_c A B s s') /\ (@eq_c C D t t')) -> (@eq_c A C s t) = (@eq_c B D s' t'). +Axiom thm_INFINITE_CARD_LE : forall {A : Type'}, forall s : A -> Prop, (@INFINITE A s) = (@le_c N A (@UNIV N) s). +Axiom thm_FINITE_CARD_LT : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) = (@lt_c A N s (@UNIV N)). +Axiom thm_CARD_LE_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> @le_c A A s t. +Axiom thm_CARD_LE_UNIV : forall {A : Type'}, forall s : A -> Prop, @le_c A A s (@UNIV A). +Axiom thm_CARD_LE_EQ_SUBSET : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@le_c A B s t) = (exists u : B -> Prop, (@SUBSET B u t) /\ (@eq_c A B s u)). +Axiom thm_CARD_LE_EQ_SUBSET_UNIV : forall {A B : Type'}, forall s : A -> Prop, (exists t : B -> Prop, @eq_c B A t s) = (@le_c A B s (@UNIV B)). +Axiom thm_CARD_INFINITE_CONG : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@eq_c A B s t) -> (@INFINITE A s) = (@INFINITE B t). +Axiom thm_CARD_FINITE_CONG : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@eq_c A B s t) -> (@FINITE A s) = (@FINITE B t). +Axiom thm_CARD_LE_FINITE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE B t) /\ (@le_c A B s t)) -> @FINITE A s. +Axiom thm_CARD_EQ_FINITE : forall {_153843 A : Type'}, forall s : _153843 -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (@eq_c _153843 A s t)) -> @FINITE _153843 s. +Axiom thm_CARD_EQ_INFINITE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@INFINITE B t) /\ (@eq_c A B s t)) -> @INFINITE A s. +Axiom thm_CARD_LE_INFINITE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@INFINITE A s) /\ (@le_c A B s t)) -> @INFINITE B t. +Axiom thm_CARD_LT_FINITE_INFINITE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@INFINITE B t)) -> @lt_c A B s t. +Axiom thm_CARD_LE_FINITE_INFINITE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@INFINITE B t)) -> @le_c A B s t. +Axiom thm_CARD_LE_CARD_IMP : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE B t) /\ (@le_c A B s t)) -> N.le (@CARD A s) (@CARD B t). +Axiom thm_CARD_EQ_CARD_IMP : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE B t) /\ (@eq_c A B s t)) -> (@CARD A s) = (@CARD B t). +Axiom thm_CARD_LE_CARD : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@le_c A B s t) = (N.le (@CARD A s) (@CARD B t)). +Axiom thm_CARD_EQ_CARD : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@eq_c A B s t) = ((@CARD A s) = (@CARD B t)). +Axiom thm_CARD_LT_CARD : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@lt_c A B s t) = (N.lt (@CARD A s) (@CARD B t)). +Axiom thm_CARD_HAS_SIZE_CONG : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall n : N, (@eq_c A B s t) -> (@HAS_SIZE A s n) = (@HAS_SIZE B t n). +Axiom thm_NUMSEG_CARD_LE : forall {A : Type'} (n : N), forall s : A -> Prop, (@le_c N A (dotdot (NUMERAL (BIT1 0%N)) n) s) = ((@FINITE A s) -> N.le n (@CARD A s)). +Axiom thm_CARD_LE_IMAGE : forall {_154191 _154192 : Type'}, forall f : _154191 -> _154192, forall s : _154191 -> Prop, @le_c _154192 _154191 (@IMAGE _154191 _154192 f s) s. +Axiom thm_CARD_LE_IMAGE_GEN : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, (@SUBSET B t (@IMAGE A B f s)) -> @le_c B A t s. +Axiom thm_CARD_EQ_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) -> @eq_c B A (@IMAGE A B f s) s. +Axiom thm_CARD_GE_PREIMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, (@SUBSET B t (@IMAGE A B f s)) -> @le_c B A t (@GSPEC A (fun GEN_PVAR_403 : A => exists x : A, @SETSPEC A GEN_PVAR_403 ((@IN A x s) /\ (@IN B (f x) t)) x)). +Axiom thm_CARD_LE_PREIMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((@IN B (f x) t) /\ ((@IN B (f y) t) /\ ((f x) = (f y)))))) -> x = y) -> @le_c A B (@GSPEC A (fun GEN_PVAR_404 : A => exists x : A, @SETSPEC A GEN_PVAR_404 ((@IN A x s) /\ (@IN B (f x) t)) x)) t. +Axiom thm_CARD_EQ_PREIMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((@IN B (f x) t) /\ ((@IN B (f y) t) /\ ((f x) = (f y)))))) -> x = y) /\ (@SUBSET B t (@IMAGE A B f s))) -> @eq_c A B (@GSPEC A (fun GEN_PVAR_405 : A => exists x : A, @SETSPEC A GEN_PVAR_405 ((@IN A x s) /\ (@IN B (f x) t)) x)) t. +Axiom thm_CARD_LE_IMAGES : forall {A B C : Type'}, forall f : A -> B, forall g : A -> C, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((g x) = (g y)))) -> (f x) = (f y)) -> @le_c B C (@IMAGE A B f s) (@IMAGE A C g s). +Axiom thm_CARD_EQ_IMAGES : forall {A B C : Type'}, forall f : A -> B, forall g : A -> C, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> ((f x) = (f y)) = ((g x) = (g y))) -> @eq_c B C (@IMAGE A B f s) (@IMAGE A C g s). +Axiom thm_LE_C_IMAGE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@le_c A B s t) = ((s = (@EMPTY A)) \/ (exists f : B -> A, (@IMAGE B A f t) = s)). +Axiom thm_LE_C_IMAGE_SUBSET : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@le_c A B s t) = (exists f : B -> A, @SUBSET A s (@IMAGE B A f t)). +Axiom thm_CARD_LE_SING : forall {A B : Type'}, forall c : B, forall s : A -> Prop, (@le_c A B s (@INSERT B c (@EMPTY B))) = (exists a : A, @SUBSET A s (@INSERT A a (@EMPTY A))). +Axiom thm_CARD_SING_LE : forall {A B : Type'}, forall a : A, forall s : B -> Prop, (@le_c A B (@INSERT A a (@EMPTY A)) s) = (~ (s = (@EMPTY B))). +Axiom thm_CARD_EQ_ORDINAL_EXISTS : forall {A : Type'}, forall s : A -> Prop, exists l : A -> A -> Prop, (@ordinal A l) /\ (@eq_c A A (@fld A l) s). +Axiom thm_WF_CARD_LT : forall {A : Type'}, @WF (A -> Prop) (@lt_c A A). +Axiom thm_add_c : forall {_154958 _154959 : Type'}, forall s : _154959 -> Prop, forall t : _154958 -> Prop, (@add_c _154958 _154959 s t) = (@UNION (Datatypes.sum _154959 _154958) (@GSPEC (Datatypes.sum _154959 _154958) (fun GEN_PVAR_406 : Datatypes.sum _154959 _154958 => exists x : _154959, @SETSPEC (Datatypes.sum _154959 _154958) GEN_PVAR_406 (@IN _154959 x s) (@inl _154959 _154958 x))) (@GSPEC (Datatypes.sum _154959 _154958) (fun GEN_PVAR_407 : Datatypes.sum _154959 _154958 => exists y : _154958, @SETSPEC (Datatypes.sum _154959 _154958) GEN_PVAR_407 (@IN _154958 y t) (@inr _154959 _154958 y)))). +Axiom thm_mul_c : forall {_154991 _154992 : Type'}, forall s : _154992 -> Prop, forall t : _154991 -> Prop, (@mul_c _154991 _154992 s t) = (@GSPEC (prod _154992 _154991) (fun GEN_PVAR_408 : prod _154992 _154991 => exists x : _154992, exists y : _154991, @SETSPEC (prod _154992 _154991) GEN_PVAR_408 ((@IN _154992 x s) /\ (@IN _154991 y t)) (@pair _154992 _154991 x y))). +Axiom thm_CARD_LE_ADD : forall {A B C D : Type'}, forall s : A -> Prop, forall s' : B -> Prop, forall t : C -> Prop, forall t' : D -> Prop, ((@le_c A B s s') /\ (@le_c C D t t')) -> @le_c (Datatypes.sum A C) (Datatypes.sum B D) (@add_c C A s t) (@add_c D B s' t'). +Axiom thm_CARD_LE_MUL : forall {A B C D : Type'}, forall s : A -> Prop, forall s' : B -> Prop, forall t : C -> Prop, forall t' : D -> Prop, ((@le_c A B s s') /\ (@le_c C D t t')) -> @le_c (prod A C) (prod B D) (@mul_c C A s t) (@mul_c D B s' t'). +Axiom thm_CARD_FUNSPACE_LE : forall {A A' B B' : Type'}, ((@le_c A A' (@UNIV A) (@UNIV A')) /\ (@le_c B B' (@UNIV B) (@UNIV B'))) -> @le_c (A -> B) (A' -> B') (@UNIV (A -> B)) (@UNIV (A' -> B')). +Axiom thm_CARD_ADD_CONG : forall {A B C D : Type'}, forall s : A -> Prop, forall s' : B -> Prop, forall t : C -> Prop, forall t' : D -> Prop, ((@eq_c A B s s') /\ (@eq_c C D t t')) -> @eq_c (Datatypes.sum A C) (Datatypes.sum B D) (@add_c C A s t) (@add_c D B s' t'). +Axiom thm_CARD_MUL_CONG : forall {A B C D : Type'}, forall s : A -> Prop, forall s' : B -> Prop, forall t : C -> Prop, forall t' : D -> Prop, ((@eq_c A B s s') /\ (@eq_c C D t t')) -> @eq_c (prod A C) (prod B D) (@mul_c C A s t) (@mul_c D B s' t'). +Axiom thm_CARD_FUNSPACE_CONG : forall {A A' B B' : Type'}, ((@eq_c A A' (@UNIV A) (@UNIV A')) /\ (@eq_c B B' (@UNIV B) (@UNIV B'))) -> @eq_c (A -> B) (A' -> B') (@UNIV (A -> B)) (@UNIV (A' -> B')). +Axiom thm_MUL_C_UNIV : forall {A B : Type'}, (@mul_c B A (@UNIV A) (@UNIV B)) = (@UNIV (prod A B)). +Axiom thm_CARD_FUNSPACE_CURRY : forall {A B C : Type'}, @eq_c (A -> B -> C) ((prod A B) -> C) (@UNIV (A -> B -> C)) (@UNIV ((prod A B) -> C)). +Axiom thm_IN_CARD_ADD : forall {_155346 _155365 : Type'} (s : _155346 -> Prop) (t : _155365 -> Prop), (forall x : _155346, (@IN (Datatypes.sum _155346 _155365) (@inl _155346 _155365 x) (@add_c _155365 _155346 s t)) = (@IN _155346 x s)) /\ (forall y : _155365, (@IN (Datatypes.sum _155346 _155365) (@inr _155346 _155365 y) (@add_c _155365 _155346 s t)) = (@IN _155365 y t)). +Axiom thm_IN_CARD_MUL : forall {_155400 _155403 : Type'}, forall s : _155400 -> Prop, forall t : _155403 -> Prop, forall x : _155400, forall y : _155403, (@IN (prod _155400 _155403) (@pair _155400 _155403 x y) (@mul_c _155403 _155400 s t)) = ((@IN _155400 x s) /\ (@IN _155403 y t)). +Axiom thm_CARD_LE_SQUARE : forall {A : Type'}, forall s : A -> Prop, @le_c A (prod A A) s (@mul_c A A s s). +Axiom thm_CARD_SQUARE_NUM : @eq_c (prod N N) N (@mul_c N N (@UNIV N) (@UNIV N)) (@UNIV N). +Axiom thm_UNION_LE_ADD_C : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, @le_c A (Datatypes.sum A A) (@UNION A s t) (@add_c A A s t). +Axiom thm_CARD_ADD_C : forall {_155575 _155577 : Type'}, forall s : _155575 -> Prop, forall t : _155577 -> Prop, ((@FINITE _155575 s) /\ (@FINITE _155577 t)) -> (@CARD (Datatypes.sum _155575 _155577) (@add_c _155577 _155575 s t)) = (N.add (@CARD _155575 s) (@CARD _155577 t)). +Axiom thm_CARD_MUL_C : forall {_155608 _155610 : Type'}, forall s : _155608 -> Prop, forall t : _155610 -> Prop, ((@FINITE _155608 s) /\ (@FINITE _155610 t)) -> (@CARD (prod _155608 _155610) (@mul_c _155610 _155608 s t)) = (N.mul (@CARD _155608 s) (@CARD _155610 t)). +Axiom thm_CARD_ADD_SYM : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, @eq_c (Datatypes.sum A B) (Datatypes.sum B A) (@add_c B A s t) (@add_c A B t s). +Axiom thm_CARD_ADD_ASSOC : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, @eq_c (Datatypes.sum A (Datatypes.sum B C)) (Datatypes.sum (Datatypes.sum A B) C) (@add_c (Datatypes.sum B C) A s (@add_c C B t u)) (@add_c C (Datatypes.sum A B) (@add_c B A s t) u). +Axiom thm_CARD_MUL_SYM : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, @eq_c (prod A B) (prod B A) (@mul_c B A s t) (@mul_c A B t s). +Axiom thm_CARD_MUL_ASSOC : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, @eq_c (prod A (prod B C)) (prod (prod A B) C) (@mul_c (prod B C) A s (@mul_c C B t u)) (@mul_c C (prod A B) (@mul_c B A s t) u). +Axiom thm_CARD_LDISTRIB : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, @eq_c (prod A (Datatypes.sum B C)) (Datatypes.sum (prod A B) (prod A C)) (@mul_c (Datatypes.sum B C) A s (@add_c C B t u)) (@add_c (prod A C) (prod A B) (@mul_c B A s t) (@mul_c C A s u)). +Axiom thm_CARD_RDISTRIB : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, @eq_c (prod (Datatypes.sum A B) C) (Datatypes.sum (prod A C) (prod B C)) (@mul_c C (Datatypes.sum A B) (@add_c B A s t) u) (@add_c (prod B C) (prod A C) (@mul_c C A s u) (@mul_c C B t u)). +Axiom thm_CARD_LE_ADDR : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, @le_c A (Datatypes.sum A B) s (@add_c B A s t). +Axiom thm_CARD_LE_ADDL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, @le_c B (Datatypes.sum A B) t (@add_c B A s t). +Axiom thm_CARD_MUL_LID : forall {A B : Type'}, forall a : A, forall t : B -> Prop, @eq_c (prod A B) B (@mul_c B A (@INSERT A a (@EMPTY A)) t) t. +Axiom thm_CARD_MUL_RID : forall {A B : Type'}, forall s : A -> Prop, forall b : B, @eq_c (prod A B) A (@mul_c B A s (@INSERT B b (@EMPTY B))) s. +Axiom thm_CARD_ADD_LE_MUL_INFINITE : forall {A : Type'}, forall s : A -> Prop, (@INFINITE A s) -> @le_c (Datatypes.sum A A) (prod A A) (@add_c A A s s) (@mul_c A A s s). +Axiom thm_CARD_DISJOINT_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@INTER A s t) = (@EMPTY A)) -> @eq_c A (Datatypes.sum A A) (@UNION A s t) (@add_c A A s t). +Axiom thm_CARD_LE_EXISTS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@le_c A B s t) = (exists u : B -> Prop, @eq_c B (Datatypes.sum A B) t (@add_c B A s u)). +Axiom thm_CARD_LT_IMP_SUC_LE : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall a : C, (@lt_c A B s t) -> @le_c (Datatypes.sum A C) B (@add_c C A s (@INSERT C a (@EMPTY C))) t. +Axiom thm_CARD_SQUARE_INFINITE : forall {A : Type'}, forall k : A -> Prop, (@INFINITE A k) -> @eq_c (prod A A) A (@mul_c A A k k) k. +Axiom thm_CARD_ADD_FINITE : forall {_157322 _157324 : Type'}, forall s : _157322 -> Prop, forall t : _157324 -> Prop, ((@FINITE _157322 s) /\ (@FINITE _157324 t)) -> @FINITE (Datatypes.sum _157322 _157324) (@add_c _157324 _157322 s t). +Axiom thm_CARD_ADD_FINITE_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@FINITE (Datatypes.sum A B) (@add_c B A s t)) = ((@FINITE A s) /\ (@FINITE B t)). +Axiom thm_CARD_MUL_FINITE : forall {_157368 _157370 : Type'}, forall s : _157368 -> Prop, forall t : _157370 -> Prop, ((@FINITE _157368 s) /\ (@FINITE _157370 t)) -> @FINITE (prod _157368 _157370) (@mul_c _157370 _157368 s t). +Axiom thm_CARD_MUL_FINITE_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@FINITE (prod A B) (@mul_c B A s t)) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@FINITE A s) /\ (@FINITE B t)))). +Axiom thm_CARD_MUL_ABSORB_LE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@INFINITE B t) /\ (@le_c A B s t)) -> @le_c (prod A B) B (@mul_c B A s t) t. +Axiom thm_CARD_MUL2_ABSORB_LE : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, ((@INFINITE C u) /\ ((@le_c A C s u) /\ (@le_c B C t u))) -> @le_c (prod A B) C (@mul_c B A s t) u. +Axiom thm_CARD_MUL2_ABSORB_LE_ALT : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, (((@INFINITE A s) \/ (@INFINITE B t)) /\ ((@le_c A C s u) /\ (@le_c B C t u))) -> @le_c (prod A B) C (@mul_c B A s t) u. +Axiom thm_CARD_ADD_ABSORB_LE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@INFINITE B t) /\ (@le_c A B s t)) -> @le_c (Datatypes.sum A B) B (@add_c B A s t) t. +Axiom thm_CARD_ADD2_ABSORB_LE : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, ((@INFINITE C u) /\ ((@le_c A C s u) /\ (@le_c B C t u))) -> @le_c (Datatypes.sum A B) C (@add_c B A s t) u. +Axiom thm_CARD_MUL_ABSORB : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@INFINITE B t) /\ ((~ (s = (@EMPTY A))) /\ (@le_c A B s t))) -> @eq_c (prod A B) B (@mul_c B A s t) t. +Axiom thm_CARD_ADD_ABSORB_LEFT : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@INFINITE B t) /\ (@le_c A B s t)) -> @eq_c (Datatypes.sum A B) B (@add_c B A s t) t. +Axiom thm_CARD_ADD_ABSORB_RIGHT : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@INFINITE A s) /\ (@le_c B A t s)) -> @eq_c (Datatypes.sum A B) A (@add_c B A s t) s. +Axiom thm_CARD_UNION_ABSORB_LEFT : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@INFINITE A t) /\ (@le_c A A s t)) -> @eq_c A A (@UNION A s t) t. +Axiom thm_CARD_UNION_ABSORB_RIGHT : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@INFINITE A s) /\ (@le_c A A t s)) -> @eq_c A A (@UNION A s t) s. +Axiom thm_CARD_ADD2_ABSORB_LT : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, ((@INFINITE C u) /\ ((@lt_c A C s u) /\ (@lt_c B C t u))) -> @lt_c (Datatypes.sum A B) C (@add_c B A s t) u. +Axiom thm_CARD_DIFF_ABSORB : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@INFINITE A s) /\ (@lt_c A A t s)) -> @eq_c A A (@DIFF A s t) s. +Axiom thm_CARD_LT_ADD : forall {A B C D : Type'}, forall s : A -> Prop, forall s' : B -> Prop, forall t : C -> Prop, forall t' : D -> Prop, ((@lt_c A B s s') /\ (@lt_c C D t t')) -> @lt_c (Datatypes.sum A C) (Datatypes.sum B D) (@add_c C A s t) (@add_c D B s' t'). +Axiom thm_CARD_LE_ADD_LCANCEL : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, (((@FINITE A s) \/ (@le_c A C s u)) /\ (@le_c (Datatypes.sum A B) (Datatypes.sum A C) (@add_c B A s t) (@add_c C A s u))) -> @le_c B C t u. +Axiom thm_CARD_LE_ADD_LCANCEL_EQ : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, ((@FINITE A s) \/ (@le_c A C s u)) -> (@le_c (Datatypes.sum A B) (Datatypes.sum A C) (@add_c B A s t) (@add_c C A s u)) = (@le_c B C t u). +Axiom thm_CARD_LE_ADD_RCANCEL : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, (((@FINITE C u) \/ (@le_c C B u t)) /\ (@le_c (Datatypes.sum A C) (Datatypes.sum B C) (@add_c C A s u) (@add_c C B t u))) -> @le_c A B s t. +Axiom thm_CARD_LE_ADD_RCANCEL_EQ : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, ((@FINITE C u) \/ (@le_c C B u t)) -> (@le_c (Datatypes.sum A C) (Datatypes.sum B C) (@add_c C A s u) (@add_c C B t u)) = (@le_c A B s t). +Axiom thm_CARD_EQ_ADD_LCANCEL : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, (((@FINITE A s) \/ ((@le_c A B s t) /\ (@le_c A C s u))) /\ (@eq_c (Datatypes.sum A B) (Datatypes.sum A C) (@add_c B A s t) (@add_c C A s u))) -> @eq_c B C t u. +Axiom thm_CARD_EQ_ADD_LCANCEL_EQ : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, ((@FINITE A s) \/ ((@le_c A B s t) /\ (@le_c A C s u))) -> (@eq_c (Datatypes.sum A B) (Datatypes.sum A C) (@add_c B A s t) (@add_c C A s u)) = (@eq_c B C t u). +Axiom thm_CARD_EQ_ADD_RCANCEL : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, (((@FINITE C u) \/ ((@le_c C A u s) /\ (@le_c C B u t))) /\ (@eq_c (Datatypes.sum A C) (Datatypes.sum B C) (@add_c C A s u) (@add_c C B t u))) -> @eq_c A B s t. +Axiom thm_CARD_EQ_ADD_RCANCEL_EQ : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, ((@FINITE C u) \/ ((@le_c C A u s) /\ (@le_c C B u t))) -> (@eq_c (Datatypes.sum A C) (Datatypes.sum B C) (@add_c C A s u) (@add_c C B t u)) = (@eq_c A B s t). +Axiom thm_CARD_LE_UNIONS2 : forall {A B C : Type'}, forall u : (A -> Prop) -> Prop, forall k : B -> Prop, forall l : C -> Prop, ((@le_c (A -> Prop) B u k) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @le_c A C s l)) -> @le_c A (prod B C) (@UNIONS A u) (@mul_c C B k l). +Axiom thm_CARD_LE_UNIONS : forall {A B : Type'}, forall k : B -> Prop, forall u : (A -> Prop) -> Prop, ((@INFINITE B k) /\ ((@le_c (A -> Prop) B u k) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @le_c A B s k))) -> @le_c A B (@UNIONS A u) k. +Axiom thm_CARD_LE_DISJOINT_UNIONS : forall {A B : Type'}, forall s : (A -> Prop) -> Prop, forall t : B -> Prop, ((@pairwise (A -> Prop) (@DISJOINT A) s) /\ (forall u : A -> Prop, (@IN (A -> Prop) u s) -> @le_c B A t u)) -> @le_c (prod (A -> Prop) B) A (@mul_c B (A -> Prop) s t) (@UNIONS A s). +Axiom thm_CARD_EQ_DISJOINT_UNIONS : forall {A B : Type'}, forall s : (A -> Prop) -> Prop, forall t : B -> Prop, ((@pairwise (A -> Prop) (@DISJOINT A) s) /\ (forall u : A -> Prop, (@IN (A -> Prop) u s) -> @eq_c A B u t)) -> @eq_c A (prod (A -> Prop) B) (@UNIONS A s) (@mul_c B (A -> Prop) s t). +Axiom thm_CARD_EQ_IMAGE_MUL_FIBRES : forall {A B C : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : C -> Prop, (forall x : A, (@IN A x s) -> @eq_c A C (@GSPEC A (fun GEN_PVAR_415 : A => exists z : A, @SETSPEC A GEN_PVAR_415 ((@IN A z s) /\ ((f z) = (f x))) z)) t) -> @eq_c (prod B C) A (@mul_c C B (@IMAGE A B f s) t) s. +Axiom thm_CARD_DIFF_CONG : forall {A B : Type'}, forall s : A -> Prop, forall s' : A -> Prop, forall t : B -> Prop, forall t' : B -> Prop, ((@SUBSET A s' s) /\ ((@SUBSET B t' t) /\ ((@eq_c A B s t) /\ ((@eq_c A B s' t') /\ ((@INFINITE A s) -> @lt_c A A s' s))))) -> @eq_c A B (@DIFF A s s') (@DIFF B t t'). +Axiom thm_EQ_C_BIJECTIONS_DISJOINT : forall {A B : Type'}, forall s : A -> Prop, forall s' : A -> Prop, forall t : B -> Prop, forall t' : B -> Prop, ((@DISJOINT A s s') /\ (@DISJOINT B t t')) -> ((@eq_c A B s t) /\ (@eq_c A B s' t')) = (exists f : A -> B, exists g : B -> A, (forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ ((forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)) /\ ((forall x : A, (@IN A x s') -> (@IN B (f x) t') /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y t') -> (@IN A (g y) s') /\ ((f (g y)) = y))))). +Axiom thm_EQ_C_BIJECTIONS_SUBSETS : forall {A B : Type'}, forall s : A -> Prop, forall s' : A -> Prop, forall t : B -> Prop, forall t' : B -> Prop, ((@SUBSET A s' s) /\ (@SUBSET B t' t)) -> ((@eq_c A B s' t') /\ (@eq_c A B (@DIFF A s s') (@DIFF B t t'))) = (exists f : A -> B, exists g : B -> A, (forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ ((forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)) /\ (((@IMAGE A B f s') = t') /\ ((@IMAGE B A g t') = s')))). +Axiom thm_EQ_C_BIJECTIONS_SUBSETS_LT : forall {A B : Type'}, forall s : A -> Prop, forall s' : A -> Prop, forall t : B -> Prop, forall t' : B -> Prop, ((@SUBSET A s' s) /\ ((@SUBSET B t' t) /\ ((@INFINITE A s) -> @lt_c A A s' s))) -> ((@eq_c A B s t) /\ (@eq_c A B s' t')) = (exists f : A -> B, exists g : B -> A, (forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ ((forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)) /\ (((@IMAGE A B f s') = t') /\ ((@IMAGE B A g t') = s')))). +Axiom thm_EQ_C_BIJECTIONS_EXTEND : forall {A B : Type'}, forall f : A -> B, forall g : B -> A, forall s : A -> Prop, forall s' : A -> Prop, forall t : B -> Prop, forall t' : B -> Prop, ((@SUBSET A s s') /\ ((@SUBSET B t t') /\ ((@eq_c A B (@DIFF A s' s) (@DIFF B t' t)) /\ ((forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)))))) -> exists f' : A -> B, exists g' : B -> A, (forall x : A, (@IN A x s') -> (@IN B (f' x) t') /\ ((g' (f' x)) = x)) /\ ((forall y : B, (@IN B y t') -> (@IN A (g' y) s') /\ ((f' (g' y)) = y)) /\ ((forall x : A, (@IN A x s) -> (f' x) = (f x)) /\ (forall y : B, (@IN B y t) -> (g' y) = (g y)))). +Axiom thm_EQ_C_INVOLUTION : forall {A : Type'}, forall f : A -> A, forall s : A -> Prop, forall t : A -> Prop, ((forall x : A, (@IN A x s) -> @IN A (f x) t) /\ ((forall x : A, (@IN A x t) -> @IN A (f x) s) /\ (forall x : A, ((@IN A x s) \/ (@IN A x t)) -> (f (f x)) = x))) -> @eq_c A A s t. +Axiom thm_CARD_MUL_LT_LEMMA : forall {_159396 _159403 B : Type'}, forall s : _159396 -> Prop, forall t : B -> Prop, forall u : _159403 -> Prop, ((@le_c _159396 B s t) /\ ((@lt_c B _159403 t u) /\ (@INFINITE _159403 u))) -> @lt_c (prod _159396 B) _159403 (@mul_c B _159396 s t) u. +Axiom thm_CARD_MUL_LT_INFINITE : forall {_159441 A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : _159441 -> Prop, ((@lt_c A _159441 s u) /\ ((@lt_c B _159441 t u) /\ (@INFINITE _159441 u))) -> @lt_c (prod A B) _159441 (@mul_c B A s t) u. +Axiom thm_CANTOR_THM : forall {A : Type'}, forall s : A -> Prop, @lt_c A (A -> Prop) s (@GSPEC (A -> Prop) (fun GEN_PVAR_416 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_416 (@SUBSET A t s) t)). +Axiom thm_CANTOR_THM_UNIV : forall {A : Type'}, @lt_c A (A -> Prop) (@UNIV A) (@UNIV (A -> Prop)). +Axiom thm_NUM_COUNTABLE : @COUNTABLE N (@UNIV N). +Axiom thm_COUNTABLE_ALT : forall {_159515 : Type'}, forall s : _159515 -> Prop, (@COUNTABLE _159515 s) = (@le_c _159515 N s (@UNIV N)). +Axiom thm_COUNTABLE_CASES : forall {_159529 : Type'}, forall s : _159529 -> Prop, (@COUNTABLE _159529 s) = ((@FINITE _159529 s) \/ (@eq_c _159529 N s (@UNIV N))). +Axiom thm_CARD_LE_COUNTABLE : forall {_159557 A : Type'}, forall s : _159557 -> Prop, forall t : A -> Prop, ((@COUNTABLE A t) /\ (@le_c _159557 A s t)) -> @COUNTABLE _159557 s. +Axiom thm_CARD_EQ_COUNTABLE : forall {_159578 A : Type'}, forall s : _159578 -> Prop, forall t : A -> Prop, ((@COUNTABLE A t) /\ (@eq_c _159578 A s t)) -> @COUNTABLE _159578 s. +Axiom thm_CARD_COUNTABLE_CONG : forall {_159595 _159596 : Type'}, forall s : _159595 -> Prop, forall t : _159596 -> Prop, (@eq_c _159595 _159596 s t) -> (@COUNTABLE _159595 s) = (@COUNTABLE _159596 t). +Axiom thm_COUNTABLE_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@COUNTABLE A t) /\ (@SUBSET A s t)) -> @COUNTABLE A s. +Axiom thm_COUNTABLE_RESTRICT : forall {_159647 : Type'}, forall s : _159647 -> Prop, forall P : _159647 -> Prop, (@COUNTABLE _159647 s) -> @COUNTABLE _159647 (@GSPEC _159647 (fun GEN_PVAR_417 : _159647 => exists x : _159647, @SETSPEC _159647 GEN_PVAR_417 ((@IN _159647 x s) /\ (P x)) x)). +Axiom thm_COUNTABLE_SUBSET_NUM : forall s : N -> Prop, @COUNTABLE N s. +Axiom thm_FINITE_IMP_COUNTABLE : forall {_159672 : Type'}, forall s : _159672 -> Prop, (@FINITE _159672 s) -> @COUNTABLE _159672 s. +Axiom thm_CARD_LE_COUNTABLE_INFINITE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@COUNTABLE A s) /\ (@INFINITE B t)) -> @le_c A B s t. +Axiom thm_CARD_LT_COUNTABLE_UNCOUNTABLE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@COUNTABLE A s) /\ (~ (@COUNTABLE B t))) -> @lt_c A B s t. +Axiom thm_COUNTABLE_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@COUNTABLE A s) -> @COUNTABLE B (@IMAGE A B f s). +Axiom thm_COUNTABLE_IMAGE_INJ_GENERAL : forall {A B : Type'}, forall f : A -> B, forall A' : B -> Prop, forall s : A -> Prop, ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@COUNTABLE B A')) -> @COUNTABLE A (@GSPEC A (fun GEN_PVAR_418 : A => exists x : A, @SETSPEC A GEN_PVAR_418 ((@IN A x s) /\ (@IN B (f x) A')) x)). +Axiom thm_COUNTABLE_IMAGE_INJ_EQ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) -> (@COUNTABLE B (@IMAGE A B f s)) = (@COUNTABLE A s). +Axiom thm_COUNTABLE_IMAGE_INJ : forall {A B : Type'}, forall f : A -> B, forall A' : B -> Prop, ((forall x : A, forall y : A, ((f x) = (f y)) -> x = y) /\ (@COUNTABLE B A')) -> @COUNTABLE A (@GSPEC A (fun GEN_PVAR_419 : A => exists x : A, @SETSPEC A GEN_PVAR_419 (@IN B (f x) A') x)). +Axiom thm_COUNTABLE_EMPTY : forall {_159921 : Type'}, @COUNTABLE _159921 (@EMPTY _159921). +Axiom thm_COUNTABLE_INTER : forall {_159951 : Type'}, forall s : _159951 -> Prop, forall t : _159951 -> Prop, ((@COUNTABLE _159951 s) \/ (@COUNTABLE _159951 t)) -> @COUNTABLE _159951 (@INTER _159951 s t). +Axiom thm_COUNTABLE_UNION_IMP : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@COUNTABLE A s) /\ (@COUNTABLE A t)) -> @COUNTABLE A (@UNION A s t). +Axiom thm_COUNTABLE_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@COUNTABLE A (@UNION A s t)) = ((@COUNTABLE A s) /\ (@COUNTABLE A t)). +Axiom thm_COUNTABLE_SING : forall {_160016 : Type'}, forall x : _160016, @COUNTABLE _160016 (@INSERT _160016 x (@EMPTY _160016)). +Axiom thm_COUNTABLE_INSERT : forall {_160045 : Type'}, forall x : _160045, forall s : _160045 -> Prop, (@COUNTABLE _160045 (@INSERT _160045 x s)) = (@COUNTABLE _160045 s). +Axiom thm_COUNTABLE_DELETE : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@COUNTABLE A (@DELETE A s x)) = (@COUNTABLE A s). +Axiom thm_COUNTABLE_DIFF_FINITE : forall {_160121 : Type'}, forall s : _160121 -> Prop, forall t : _160121 -> Prop, (@FINITE _160121 s) -> (@COUNTABLE _160121 (@DIFF _160121 t s)) = (@COUNTABLE _160121 t). +Axiom thm_COUNTABLE_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@COUNTABLE A s) -> @COUNTABLE A (@DIFF A s t). +Axiom thm_COUNTABLE_CROSS : forall {_160170 _160172 : Type'}, forall s : _160170 -> Prop, forall t : _160172 -> Prop, ((@COUNTABLE _160170 s) /\ (@COUNTABLE _160172 t)) -> @COUNTABLE (prod _160170 _160172) (@CROSS _160170 _160172 s t). +Axiom thm_COUNTABLE_AS_IMAGE_SUBSET : forall {_160198 : Type'}, forall s : _160198 -> Prop, (@COUNTABLE _160198 s) -> exists f : N -> _160198, @SUBSET _160198 s (@IMAGE N _160198 f (@UNIV N)). +Axiom thm_COUNTABLE_AS_IMAGE_SUBSET_EQ : forall {A : Type'}, forall s : A -> Prop, (@COUNTABLE A s) = (exists f : N -> A, @SUBSET A s (@IMAGE N A f (@UNIV N))). +Axiom thm_COUNTABLE_AS_IMAGE : forall {A : Type'}, forall s : A -> Prop, ((@COUNTABLE A s) /\ (~ (s = (@EMPTY A)))) -> exists f : N -> A, s = (@IMAGE N A f (@UNIV N)). +Axiom thm_FORALL_COUNTABLE_AS_IMAGE : forall {_160287 : Type'} (P : (_160287 -> Prop) -> Prop), (forall d : _160287 -> Prop, (@COUNTABLE _160287 d) -> P d) = ((P (@EMPTY _160287)) /\ (forall f : N -> _160287, P (@IMAGE N _160287 f (@UNIV N)))). +Axiom thm_COUNTABLE_AS_INJECTIVE_IMAGE : forall {_160326 : Type'}, forall s : _160326 -> Prop, ((@COUNTABLE _160326 s) /\ (@INFINITE _160326 s)) -> exists f : N -> _160326, (s = (@IMAGE N _160326 f (@UNIV N))) /\ (forall m : N, forall n : N, ((f m) = (f n)) -> m = n). +Axiom thm_COUNTABLE_AS_INJECTIVE_IMAGE_SUBSET : forall {A : Type'}, forall s : A -> Prop, (@COUNTABLE A s) = (exists f : N -> A, exists k : N -> Prop, (s = (@IMAGE N A f k)) /\ (forall m : N, forall n : N, ((@IN N m k) /\ ((@IN N n k) /\ ((f m) = (f n)))) -> m = n)). +Axiom thm_COUNTABLE_AS_IMAGE_NUM_SUBSET : forall {A : Type'}, forall s : A -> Prop, (@COUNTABLE A s) = (exists f : N -> A, exists k : N -> Prop, s = (@IMAGE N A f k)). +Axiom thm_COUNTABLE_UNIONS : forall {A : Type'}, forall A' : (A -> Prop) -> Prop, ((@COUNTABLE (A -> Prop) A') /\ (forall s : A -> Prop, (@IN (A -> Prop) s A') -> @COUNTABLE A s)) -> @COUNTABLE A (@UNIONS A A'). +Axiom thm_COUNTABLE_PRODUCT_DEPENDENT : forall {A B C : Type'}, forall f : A -> B -> C, forall s : A -> Prop, forall t : A -> B -> Prop, ((@COUNTABLE A s) /\ (forall x : A, (@IN A x s) -> @COUNTABLE B (t x))) -> @COUNTABLE C (@GSPEC C (fun GEN_PVAR_422 : C => exists x : A, exists y : B, @SETSPEC C GEN_PVAR_422 ((@IN A x s) /\ (@IN B y (t x))) (f x y))). +Axiom thm_COUNTABLE_CARD_ADD : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@COUNTABLE A s) /\ (@COUNTABLE B t)) -> @COUNTABLE (Datatypes.sum A B) (@add_c B A s t). +Axiom thm_COUNTABLE_CARD_ADD_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@COUNTABLE (Datatypes.sum A B) (@add_c B A s t)) = ((@COUNTABLE A s) /\ (@COUNTABLE B t)). +Axiom thm_COUNTABLE_CARD_MUL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@COUNTABLE A s) /\ (@COUNTABLE B t)) -> @COUNTABLE (prod A B) (@mul_c B A s t). +Axiom thm_COUNTABLE_CARD_MUL_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@COUNTABLE (prod A B) (@mul_c B A s t)) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@COUNTABLE A s) /\ (@COUNTABLE B t)))). +Axiom thm_CARD_EQ_PCROSS : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, @eq_c (cart A (finite_sum M N')) (prod (cart A M) (cart A N')) (@PCROSS A M N' s t) (@mul_c (cart A N') (cart A M) s t). +Axiom thm_COUNTABLE_PCROSS_EQ : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, (@COUNTABLE (cart A (finite_sum M N')) (@PCROSS A M N' s t)) = ((s = (@EMPTY (cart A M))) \/ ((t = (@EMPTY (cart A N'))) \/ ((@COUNTABLE (cart A M) s) /\ (@COUNTABLE (cart A N') t)))). +Axiom thm_COUNTABLE_PCROSS : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, ((@COUNTABLE (cart A M) s) /\ (@COUNTABLE (cart A N') t)) -> @COUNTABLE (cart A (finite_sum M N')) (@PCROSS A M N' s t). +Axiom thm_INT_COUNTABLE : @COUNTABLE Z (@UNIV Z). +Axiom thm_CARD_EQ_INT_NUM : @eq_c Z N (@UNIV Z) (@UNIV N). +Axiom thm_int_INFINITE : @INFINITE Z (@UNIV Z). +Axiom thm_COUNTABLE_CART : forall {A N' : Type'}, forall P : N -> A -> Prop, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @COUNTABLE A (@GSPEC A (fun GEN_PVAR_429 : A => exists x : A, @SETSPEC A GEN_PVAR_429 (P i x) x))) -> @COUNTABLE (cart A N') (@GSPEC (cart A N') (fun GEN_PVAR_430 : cart A N' => exists v : cart A N', @SETSPEC (cart A N') GEN_PVAR_430 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> P i (@dollar A N' v i)) v)). +Axiom thm_EXISTS_COUNTABLE_SUBSET_IMAGE_INJ : forall {_161520 _161527 : Type'}, forall P : (_161527 -> Prop) -> Prop, forall f : _161520 -> _161527, forall s : _161520 -> Prop, (exists t : _161527 -> Prop, (@COUNTABLE _161527 t) /\ ((@SUBSET _161527 t (@IMAGE _161520 _161527 f s)) /\ (P t))) = (exists t : _161520 -> Prop, (@COUNTABLE _161520 t) /\ ((@SUBSET _161520 t s) /\ ((forall x : _161520, forall y : _161520, ((@IN _161520 x t) /\ (@IN _161520 y t)) -> ((f x) = (f y)) = (x = y)) /\ (P (@IMAGE _161520 _161527 f t))))). +Axiom thm_FORALL_COUNTABLE_SUBSET_IMAGE_INJ : forall {_161616 _161623 : Type'}, forall P : (_161623 -> Prop) -> Prop, forall f : _161616 -> _161623, forall s : _161616 -> Prop, (forall t : _161623 -> Prop, ((@COUNTABLE _161623 t) /\ (@SUBSET _161623 t (@IMAGE _161616 _161623 f s))) -> P t) = (forall t : _161616 -> Prop, ((@COUNTABLE _161616 t) /\ ((@SUBSET _161616 t s) /\ (forall x : _161616, forall y : _161616, ((@IN _161616 x t) /\ (@IN _161616 y t)) -> ((f x) = (f y)) = (x = y)))) -> P (@IMAGE _161616 _161623 f t)). +Axiom thm_EXISTS_COUNTABLE_SUBSET_IMAGE : forall {_161654 _161674 : Type'}, forall P : (_161674 -> Prop) -> Prop, forall f : _161654 -> _161674, forall s : _161654 -> Prop, (exists t : _161674 -> Prop, (@COUNTABLE _161674 t) /\ ((@SUBSET _161674 t (@IMAGE _161654 _161674 f s)) /\ (P t))) = (exists t : _161654 -> Prop, (@COUNTABLE _161654 t) /\ ((@SUBSET _161654 t s) /\ (P (@IMAGE _161654 _161674 f t)))). +Axiom thm_FORALL_COUNTABLE_SUBSET_IMAGE : forall {_161720 _161740 : Type'}, forall P : (_161740 -> Prop) -> Prop, forall f : _161720 -> _161740, forall s : _161720 -> Prop, (forall t : _161740 -> Prop, ((@COUNTABLE _161740 t) /\ (@SUBSET _161740 t (@IMAGE _161720 _161740 f s))) -> P t) = (forall t : _161720 -> Prop, ((@COUNTABLE _161720 t) /\ (@SUBSET _161720 t s)) -> P (@IMAGE _161720 _161740 f t)). +Axiom thm_COUNTABLE_SUBSET_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((@COUNTABLE B t) /\ (@SUBSET B t (@IMAGE A B f s))) = (exists s' : A -> Prop, (@COUNTABLE A s') /\ ((@SUBSET A s' s) /\ (t = (@IMAGE A B f s')))). +Axiom thm_COUNTABLE_IMAGE_EQ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@COUNTABLE B (@IMAGE A B f s)) = (exists t : A -> Prop, (@COUNTABLE A t) /\ ((@SUBSET A t s) /\ ((@IMAGE A B f s) = (@IMAGE A B f t)))). +Axiom thm_COUNTABLE_IMAGE_EQ_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@COUNTABLE B (@IMAGE A B f s)) = (exists t : A -> Prop, (@COUNTABLE A t) /\ ((@SUBSET A t s) /\ (((@IMAGE A B f s) = (@IMAGE A B f t)) /\ (forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y))))). +Axiom thm_COUNTABLE_FLD : forall {A : Type'}, forall l : A -> A -> Prop, (@COUNTABLE A (@fld A l)) = (@COUNTABLE (prod A A) (@GSPEC (prod A A) (fun GEN_PVAR_431 : prod A A => exists x : A, exists y : A, @SETSPEC (prod A A) GEN_PVAR_431 (l x y) (@pair A A x y)))). +Axiom thm_COUNTABLE_UNION_OF_EMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, @UNION_OF A (@COUNTABLE (A -> Prop)) P (@EMPTY A). +Axiom thm_COUNTABLE_INTERSECTION_OF_EMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, @INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P (@UNIV A). +Axiom thm_COUNTABLE_UNION_OF_INC : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (P s) -> @UNION_OF A (@COUNTABLE (A -> Prop)) P s. +Axiom thm_COUNTABLE_INTERSECTION_OF_INC : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (P s) -> @INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P s. +Axiom thm_COUNTABLE_UNION_OF_COMPLEMENT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@UNION_OF A (@COUNTABLE (A -> Prop)) P s) = (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) (fun s' : A -> Prop => P (@DIFF A (@UNIV A) s')) (@DIFF A (@UNIV A) s)). +Axiom thm_COUNTABLE_INTERSECTION_OF_COMPLEMENT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P s) = (@UNION_OF A (@COUNTABLE (A -> Prop)) (fun s' : A -> Prop => P (@DIFF A (@UNIV A) s')) (@DIFF A (@UNIV A) s)). +Axiom thm_COUNTABLE_UNION_OF_EXPLICIT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (P (@EMPTY A)) -> (@UNION_OF A (@COUNTABLE (A -> Prop)) P s) = (exists t : N -> A -> Prop, (forall n : N, P (t n)) /\ ((@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_434 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_434 (@IN N n (@UNIV N)) (t n)))) = s)). +Axiom thm_COUNTABLE_UNION_OF_ASCENDING : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, ((P (@EMPTY A)) /\ (forall t : A -> Prop, forall u : A -> Prop, ((P t) /\ (P u)) -> P (@UNION A t u))) -> (@UNION_OF A (@COUNTABLE (A -> Prop)) P s) = (exists t : N -> A -> Prop, (forall n : N, P (t n)) /\ ((forall n : N, @SUBSET A (t n) (t (N.succ n))) /\ ((@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_440 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_440 (@IN N n (@UNIV N)) (t n)))) = s))). +Axiom thm_COUNTABLE_UNION_OF_IDEMPOT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@UNION_OF A (@COUNTABLE (A -> Prop)) (@UNION_OF A (@COUNTABLE (A -> Prop)) P)) = (@UNION_OF A (@COUNTABLE (A -> Prop)) P). +Axiom thm_COUNTABLE_INTERSECTION_OF_IDEMPOT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P)) = (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P). +Axiom thm_COUNTABLE_UNION_OF_UNIONS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, ((@COUNTABLE (A -> Prop) u) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @UNION_OF A (@COUNTABLE (A -> Prop)) P s)) -> @UNION_OF A (@COUNTABLE (A -> Prop)) P (@UNIONS A u). +Axiom thm_COUNTABLE_UNION_OF_UNION : forall {_166386 : Type'}, forall P : (_166386 -> Prop) -> Prop, forall s : _166386 -> Prop, forall t : _166386 -> Prop, ((@UNION_OF _166386 (@COUNTABLE (_166386 -> Prop)) P s) /\ (@UNION_OF _166386 (@COUNTABLE (_166386 -> Prop)) P t)) -> @UNION_OF _166386 (@COUNTABLE (_166386 -> Prop)) P (@UNION _166386 s t). +Axiom thm_COUNTABLE_INTERSECTION_OF_INTERS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, ((@COUNTABLE (A -> Prop) u) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P s)) -> @INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P (@INTERS A u). +Axiom thm_COUNTABLE_INTERSECTION_OF_INTER : forall {_166458 : Type'}, forall P : (_166458 -> Prop) -> Prop, forall s : _166458 -> Prop, forall t : _166458 -> Prop, ((@INTERSECTION_OF _166458 (@COUNTABLE (_166458 -> Prop)) P s) /\ (@INTERSECTION_OF _166458 (@COUNTABLE (_166458 -> Prop)) P t)) -> @INTERSECTION_OF _166458 (@COUNTABLE (_166458 -> Prop)) P (@INTER _166458 s t). +Axiom thm_COUNTABLE_UNION_OF_INTER_EQ : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@COUNTABLE (A -> Prop)) P s) /\ (@UNION_OF A (@COUNTABLE (A -> Prop)) P t)) -> @UNION_OF A (@COUNTABLE (A -> Prop)) P (@INTER A s t)) = (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> @UNION_OF A (@COUNTABLE (A -> Prop)) P (@INTER A s t)). +Axiom thm_COUNTABLE_UNION_OF_INTER : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@INTER A s t)) -> forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@COUNTABLE (A -> Prop)) P s) /\ (@UNION_OF A (@COUNTABLE (A -> Prop)) P t)) -> @UNION_OF A (@COUNTABLE (A -> Prop)) P (@INTER A s t). +Axiom thm_COUNTABLE_INTERSECTION_OF_UNION_EQ : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P s) /\ (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P t)) -> @INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P (@UNION A s t)) = (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> @INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P (@UNION A s t)). +Axiom thm_COUNTABLE_INTERSECTION_OF_UNION : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@UNION A s t)) -> forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P s) /\ (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P t)) -> @INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P (@UNION A s t). +Axiom thm_COUNTABLE_INTERSECTION_OF_UNIONS_NONEMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, ((forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@UNION A s t)) /\ ((@FINITE (A -> Prop) u) /\ ((~ (u = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P s)))) -> @INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P (@UNIONS A u). +Axiom thm_COUNTABLE_INTERSECTION_OF_UNIONS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, ((@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P (@EMPTY A)) /\ ((forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@UNION A s t)) /\ ((@FINITE (A -> Prop) u) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P s)))) -> @INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P (@UNIONS A u). +Axiom thm_COUNTABLE_UNION_OF_INTERS_NONEMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, ((forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@INTER A s t)) /\ ((@FINITE (A -> Prop) u) /\ ((~ (u = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @UNION_OF A (@COUNTABLE (A -> Prop)) P s)))) -> @UNION_OF A (@COUNTABLE (A -> Prop)) P (@INTERS A u). +Axiom thm_COUNTABLE_UNION_OF_INTERS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, ((@UNION_OF A (@COUNTABLE (A -> Prop)) P (@UNIV A)) /\ ((forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@INTER A s t)) /\ ((@FINITE (A -> Prop) u) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @UNION_OF A (@COUNTABLE (A -> Prop)) P s)))) -> @UNION_OF A (@COUNTABLE (A -> Prop)) P (@INTERS A u). +Axiom thm_COUNTABLE_DISJOINT_UNION_OF_IDEMPOT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@UNION_OF A (@INTER ((A -> Prop) -> Prop) (@COUNTABLE (A -> Prop)) (@pairwise (A -> Prop) (@DISJOINT A))) (@UNION_OF A (@INTER ((A -> Prop) -> Prop) (@COUNTABLE (A -> Prop)) (@pairwise (A -> Prop) (@DISJOINT A))) P)) = (@UNION_OF A (@INTER ((A -> Prop) -> Prop) (@COUNTABLE (A -> Prop)) (@pairwise (A -> Prop) (@DISJOINT A))) P). +Axiom thm_COUNTABLE_ASCENDING_CHAIN : forall {A : Type'}, forall f : (A -> Prop) -> Prop, ((@COUNTABLE (A -> Prop) f) /\ ((~ (f = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s f) /\ (@IN (A -> Prop) t f)) -> (@SUBSET A s t) \/ (@SUBSET A t s)))) -> exists u : N -> A -> Prop, (forall n : N, @IN (A -> Prop) (u n) f) /\ ((forall n : N, @SUBSET A (u n) (u (N.succ n))) /\ ((@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_443 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_443 (@IN N n (@UNIV N)) (u n)))) = (@UNIONS A f))). +Axiom thm_COUNTABLE_DESCENDING_CHAIN : forall {A : Type'}, forall f : (A -> Prop) -> Prop, ((@COUNTABLE (A -> Prop) f) /\ ((~ (f = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s f) /\ (@IN (A -> Prop) t f)) -> (@SUBSET A s t) \/ (@SUBSET A t s)))) -> exists u : N -> A -> Prop, (forall n : N, @IN (A -> Prop) (u n) f) /\ ((forall n : N, @SUBSET A (u (N.succ n)) (u n)) /\ ((@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_444 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_444 (@IN N n (@UNIV N)) (u n)))) = (@INTERS A f))). +Axiom thm_CARD_EQ_LIST_GEN : forall {A : Type'}, forall s : A -> Prop, (@INFINITE A s) -> @eq_c (list A) A (@GSPEC (list A) (fun GEN_PVAR_445 : list A => exists l : list A, @SETSPEC (list A) GEN_PVAR_445 (forall x : A, (@List.In A x l) -> @IN A x s) l)) s. +Axiom thm_CARD_EQ_LIST : forall {A : Type'}, (@INFINITE A (@UNIV A)) -> @eq_c (list A) A (@UNIV (list A)) (@UNIV A). +Axiom thm_CARD_EQ_CART : forall {A N' : Type'}, (@INFINITE A (@UNIV A)) -> @eq_c (cart A N') A (@UNIV (cart A N')) (@UNIV A). +Axiom thm_CARD_EQ_REAL : @eq_c R (N -> Prop) (@UNIV R) (@UNIV (N -> Prop)). +Axiom thm_UNCOUNTABLE_REAL : ~ (@COUNTABLE R (@UNIV R)). +Axiom thm_CARD_EQ_REAL_IMP_UNCOUNTABLE : forall {_168395 : Type'}, forall s : _168395 -> Prop, (@eq_c _168395 R s (@UNIV R)) -> ~ (@COUNTABLE _168395 s). +Axiom thm_COUNTABLE_IMP_CARD_LT_REAL : forall {A : Type'}, forall s : A -> Prop, (@COUNTABLE A s) -> @lt_c A R s (@UNIV R). +Axiom thm_CARD_LT_NUM_REAL : @lt_c N R (@UNIV N) (@UNIV R). +Axiom thm_CARD_EQ_REAL_SUBSET : forall s : R -> Prop, forall a : R, forall b : R, ((Rlt a b) /\ (forall x : R, ((Rlt a x) /\ (Rlt x b)) -> @IN R x s)) -> @eq_c R R s (@UNIV R). +Axiom thm_exp_c : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@pow_c A B s t) = (@GSPEC (B -> A) (fun GEN_PVAR_450 : B -> A => exists f : B -> A, @SETSPEC (B -> A) GEN_PVAR_450 ((forall x : B, (@IN B x t) -> @IN A (f x) s) /\ (forall x : B, (~ (@IN B x t)) -> (f x) = (@ε A (fun y : A => False)))) f)). +Axiom thm_EXP_C : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@pow_c A B s t) = (@GSPEC (B -> A) (fun GEN_PVAR_451 : B -> A => exists f : B -> A, @SETSPEC (B -> A) GEN_PVAR_451 ((@SUBSET A (@IMAGE B A f t) s) /\ (@EXTENSIONAL B A t f)) f)). +Axiom thm_CARD_EXP_UNIV : forall {A B : Type'}, (@pow_c A B (@UNIV A) (@UNIV B)) = (@UNIV (B -> A)). +Axiom thm_CARD_EXP_GRAPH : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, @eq_c (B -> A) (B -> A -> Prop) (@pow_c A B s t) (@GSPEC (B -> A -> Prop) (fun GEN_PVAR_452 : B -> A -> Prop => exists R' : B -> A -> Prop, @SETSPEC (B -> A -> Prop) GEN_PVAR_452 ((forall x : B, forall y : A, (R' x y) -> (@IN B x t) /\ (@IN A y s)) /\ (forall x : B, (@IN B x t) -> @ex1 A (fun y : A => R' x y))) R')). +Axiom thm_CARD_EXP_GRAPH_PAIRED : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, @eq_c (B -> A) ((prod B A) -> Prop) (@pow_c A B s t) (@GSPEC ((prod B A) -> Prop) (fun GEN_PVAR_453 : (prod B A) -> Prop => exists R' : (prod B A) -> Prop, @SETSPEC ((prod B A) -> Prop) GEN_PVAR_453 ((forall x : B, forall y : A, (R' (@pair B A x y)) -> (@IN B x t) /\ (@IN A y s)) /\ (forall x : B, (@IN B x t) -> @ex1 A (fun y : A => R' (@pair B A x y)))) R')). +Axiom thm_CARD_EXP_0 : forall {A B C : Type'}, forall s : A -> Prop, forall c : C, @eq_c (B -> A) C (@pow_c A B s (@EMPTY B)) (@INSERT C c (@EMPTY C)). +Axiom thm_CARD_EXP_ZERO : forall {A B C : Type'}, forall s : B -> Prop, forall c : C, @eq_c (B -> A) C (@pow_c A B (@EMPTY A) s) (@COND (C -> Prop) (s = (@EMPTY B)) (@INSERT C c (@EMPTY C)) (@EMPTY C)). +Axiom thm_CARD_EXP_ADD : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, @eq_c ((Datatypes.sum B C) -> A) (prod (B -> A) (C -> A)) (@pow_c A (Datatypes.sum B C) s (@add_c C B t u)) (@mul_c (C -> A) (B -> A) (@pow_c A B s t) (@pow_c A C s u)). +Axiom thm_CARD_EXP_MUL : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, @eq_c ((prod B C) -> A) (C -> B -> A) (@pow_c A (prod B C) s (@mul_c C B t u)) (@pow_c (B -> A) C (@pow_c A B s t) u). +Axiom thm_CARD_MUL_EXP : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall u : C -> Prop, @eq_c (C -> prod A B) (prod (C -> A) (C -> B)) (@pow_c (prod A B) C (@mul_c B A s t) u) (@mul_c (C -> B) (C -> A) (@pow_c A C s u) (@pow_c B C t u)). +Axiom thm_CARD_EXP_SING : forall {A B : Type'}, forall s : A -> Prop, forall b : B, @eq_c (B -> A) A (@pow_c A B s (@INSERT B b (@EMPTY B))) s. +Axiom thm_CARD_LE_EXP_LEFT : forall {A B C : Type'}, forall s : A -> Prop, forall s' : B -> Prop, forall t : C -> Prop, (@le_c A B s s') -> @le_c (C -> A) (C -> B) (@pow_c A C s t) (@pow_c B C s' t). +Axiom thm_CARD_LE_EXP_RIGHT : forall {A B C : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall t' : C -> Prop, ((~ (s = (@EMPTY A))) /\ (@le_c B C t t')) -> @le_c (B -> A) (C -> A) (@pow_c A B s t) (@pow_c A C s t'). +Axiom thm_CARD_LE_EXP : forall {A B C D : Type'}, forall s : A -> Prop, forall s' : B -> Prop, forall t : C -> Prop, forall t' : D -> Prop, ((~ (s = (@EMPTY A))) /\ ((@le_c A B s s') /\ (@le_c C D t t'))) -> @le_c (C -> A) (D -> B) (@pow_c A C s t) (@pow_c B D s' t'). +Axiom thm_CARD_EXP_CONG : forall {A B C D : Type'}, forall s : A -> Prop, forall s' : B -> Prop, forall t : C -> Prop, forall t' : D -> Prop, ((@eq_c A B s s') /\ (@eq_c C D t t')) -> @eq_c (C -> A) (D -> B) (@pow_c A C s t) (@pow_c B D s' t'). +Axiom thm_CARD_EXP_FINITE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> @FINITE (B -> A) (@pow_c A B s t). +Axiom thm_CARD_EXP_C : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@CARD (B -> A) (@pow_c A B s t)) = (N.pow (@CARD A s) (@CARD B t)). +Axiom thm_CARD_EXP_POWERSET : forall {A : Type'}, forall s : A -> Prop, @eq_c (A -> Prop) (A -> Prop) (@pow_c Prop A (@UNIV Prop) s) (@GSPEC (A -> Prop) (fun GEN_PVAR_457 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_457 (@SUBSET A t s) t)). +Axiom thm_CARD_EXP_CANTOR : forall {A : Type'}, forall s : A -> Prop, @lt_c A (A -> Prop) s (@pow_c Prop A (@UNIV Prop) s). +Axiom thm_CARD_EXP_ABSORB : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@INFINITE B t) /\ ((@le_c Prop A (@UNIV Prop) s) /\ (@le_c A (B -> Prop) s (@pow_c Prop B (@UNIV Prop) t)))) -> @eq_c (B -> A) (B -> Prop) (@pow_c A B s t) (@pow_c Prop B (@UNIV Prop) t). +Axiom thm_CARD_EXP_LE_REAL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@le_c A R s (@UNIV R)) /\ (@COUNTABLE B t)) -> @le_c (B -> A) R (@pow_c A B s t) (@UNIV R). +Axiom thm_CARD_EXP_EQ_REAL : forall {A : Type'}, forall s : A -> Prop, ((@COUNTABLE A s) /\ (~ (s = (@EMPTY A)))) -> @eq_c (A -> R) R (@pow_c R A (@UNIV R) s) (@UNIV R). +Axiom thm_CARD_EQ_LIMITED_POWERSET : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@INFINITE A s) -> @COND Prop (@le_c B A t s) (@eq_c (A -> Prop) (B -> A) (@GSPEC (A -> Prop) (fun GEN_PVAR_466 : A -> Prop => exists k : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_466 ((@SUBSET A k s) /\ (@le_c A B k t)) k)) (@pow_c A B s t)) (@eq_c (A -> Prop) (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_467 : A -> Prop => exists k : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_467 ((@SUBSET A k s) /\ (@le_c A B k t)) k)) (@pow_c Prop A (@UNIV Prop) s)). +Axiom thm_CARD_EQ_RESTRICTED_POWERSET : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@INFINITE A s) -> @eq_c (A -> Prop) (B -> A) (@GSPEC (A -> Prop) (fun GEN_PVAR_465 : A -> Prop => exists k : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_465 ((@SUBSET A k s) /\ (@eq_c A B k t)) k)) (@COND ((B -> A) -> Prop) (@le_c B A t s) (@pow_c A B s t) (@EMPTY (B -> A))). +Axiom thm_CARD_EQ_FULLSIZE_POWERSET : forall {A : Type'}, forall s : A -> Prop, (@INFINITE A s) -> @eq_c (A -> Prop) (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_468 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_468 ((@SUBSET A t s) /\ (@eq_c A A t s)) t)) (@GSPEC (A -> Prop) (fun GEN_PVAR_469 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_469 (@SUBSET A t s) t)). +Axiom thm_CARD_EQ_EXP_INFINITE_FINITE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@INFINITE A s) /\ ((@FINITE B t) /\ (~ (t = (@EMPTY B))))) -> @eq_c (B -> A) A (@pow_c A B s t) s. +Axiom thm_CARD_EQ_FINITE_SUBSETS : forall {A : Type'}, forall s : A -> Prop, (@INFINITE A s) -> @eq_c (A -> Prop) A (@GSPEC (A -> Prop) (fun GEN_PVAR_471 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_471 ((@SUBSET A t s) /\ (@FINITE A t)) t)) s. +Axiom thm_CARD_LE_LIST : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@le_c A B s t) -> @le_c (list A) (list B) (@GSPEC (list A) (fun GEN_PVAR_472 : list A => exists l : list A, @SETSPEC (list A) GEN_PVAR_472 (forall x : A, (@List.In A x l) -> @IN A x s) l)) (@GSPEC (list B) (fun GEN_PVAR_473 : list B => exists l : list B, @SETSPEC (list B) GEN_PVAR_473 (forall x : B, (@List.In B x l) -> @IN B x t) l)). +Axiom thm_CARD_LE_SUBPOWERSET : forall {A B : Type'} (P : (A -> Prop) -> Prop) (Q : (B -> Prop) -> Prop), forall s : A -> Prop, forall t : B -> Prop, ((@le_c A B s t) /\ (forall f : A -> B, forall s' : A -> Prop, (P s') -> Q (@IMAGE A B f s'))) -> @le_c (A -> Prop) (B -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_474 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_474 ((@SUBSET A u s) /\ (P u)) u)) (@GSPEC (B -> Prop) (fun GEN_PVAR_475 : B -> Prop => exists v : B -> Prop, @SETSPEC (B -> Prop) GEN_PVAR_475 ((@SUBSET B v t) /\ (Q v)) v)). +Axiom thm_CARD_LE_FINITE_SUBSETS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@le_c A B s t) -> @le_c (A -> Prop) (B -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_476 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_476 ((@SUBSET A u s) /\ (@FINITE A u)) u)) (@GSPEC (B -> Prop) (fun GEN_PVAR_477 : B -> Prop => exists v : B -> Prop, @SETSPEC (B -> Prop) GEN_PVAR_477 ((@SUBSET B v t) /\ (@FINITE B v)) v)). +Axiom thm_CARD_LE_COUNTABLE_SUBSETS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@le_c A B s t) -> @le_c (A -> Prop) (B -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_478 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_478 ((@SUBSET A u s) /\ (@COUNTABLE A u)) u)) (@GSPEC (B -> Prop) (fun GEN_PVAR_479 : B -> Prop => exists v : B -> Prop, @SETSPEC (B -> Prop) GEN_PVAR_479 ((@SUBSET B v t) /\ (@COUNTABLE B v)) v)). +Axiom thm_CARD_LE_POWERSET : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@le_c A B s t) -> @le_c (A -> Prop) (B -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_482 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_482 (@SUBSET A u s) u)) (@GSPEC (B -> Prop) (fun GEN_PVAR_483 : B -> Prop => exists v : B -> Prop, @SETSPEC (B -> Prop) GEN_PVAR_483 (@SUBSET B v t) v)). +Axiom thm_CARD_POWERSET_CONG : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@eq_c A B s t) -> @eq_c (A -> Prop) (B -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_484 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_484 (@SUBSET A u s) u)) (@GSPEC (B -> Prop) (fun GEN_PVAR_485 : B -> Prop => exists v : B -> Prop, @SETSPEC (B -> Prop) GEN_PVAR_485 (@SUBSET B v t) v)). +Axiom thm_COUNTABLE_LIST_GEN : forall {A : Type'}, forall s : A -> Prop, (@COUNTABLE A s) -> @COUNTABLE (list A) (@GSPEC (list A) (fun GEN_PVAR_487 : list A => exists l : list A, @SETSPEC (list A) GEN_PVAR_487 (forall x : A, (@List.In A x l) -> @IN A x s) l)). +Axiom thm_COUNTABLE_LIST : forall {A : Type'}, (@COUNTABLE A (@UNIV A)) -> @COUNTABLE (list A) (@UNIV (list A)). +Axiom thm_COUNTABLE_FINITE_SUBSETS : forall {A : Type'}, forall s : A -> Prop, (@COUNTABLE A s) -> @COUNTABLE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_490 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_490 ((@SUBSET A t s) /\ (@FINITE A t)) t)). +Axiom thm_CARD_EQ_REAL_SEQUENCES : @eq_c (N -> R) R (@UNIV (N -> R)) (@UNIV R). +Axiom thm_CARD_EQ_COUNTABLE_SUBSETS_SUBREAL : forall {A : Type'}, forall s : A -> Prop, ((@INFINITE A s) /\ (@le_c A R s (@UNIV R))) -> @eq_c (A -> Prop) R (@GSPEC (A -> Prop) (fun GEN_PVAR_491 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_491 ((@SUBSET A t s) /\ (@COUNTABLE A t)) t)) (@UNIV R). +Axiom thm_CARD_EQ_COUNTABLE_SUBSETS_REAL : @eq_c (R -> Prop) R (@GSPEC (R -> Prop) (fun GEN_PVAR_492 : R -> Prop => exists s : R -> Prop, @SETSPEC (R -> Prop) GEN_PVAR_492 (@COUNTABLE R s) s)) (@UNIV R). +Axiom thm_CARD_LE_RESTRICTED_FUNSPACE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall k : A -> B, @le_c (A -> B) ((prod A B) -> Prop) (@GSPEC (A -> B) (fun GEN_PVAR_496 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_496 ((@SUBSET B (@IMAGE A B f s) t) /\ ((@SUBSET A (@GSPEC A (fun GEN_PVAR_494 : A => exists x : A, @SETSPEC A GEN_PVAR_494 (~ ((f x) = (k x))) x)) s) /\ (@FINITE A (@GSPEC A (fun GEN_PVAR_495 : A => exists x : A, @SETSPEC A GEN_PVAR_495 (~ ((f x) = (k x))) x))))) f)) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_497 : (prod A B) -> Prop => exists u : (prod A B) -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_497 ((@SUBSET (prod A B) u (@CROSS A B s t)) /\ (@FINITE (prod A B) u)) u)). +Axiom thm_COUNTABLE_RESTRICTED_FUNSPACE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall k : A -> B, ((@COUNTABLE A s) /\ (@COUNTABLE B t)) -> @COUNTABLE (A -> B) (@GSPEC (A -> B) (fun GEN_PVAR_500 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_500 ((@SUBSET B (@IMAGE A B f s) t) /\ ((@SUBSET A (@GSPEC A (fun GEN_PVAR_498 : A => exists x : A, @SETSPEC A GEN_PVAR_498 (~ ((f x) = (k x))) x)) s) /\ (@FINITE A (@GSPEC A (fun GEN_PVAR_499 : A => exists x : A, @SETSPEC A GEN_PVAR_499 (~ ((f x) = (k x))) x))))) f)). +Axiom thm_CARD_LE_RESTRICTED_FUNSPACE_INFINITE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall k : A -> B, ((@INFINITE A s) /\ (~ (t = (@EMPTY B)))) -> @le_c (A -> B) (prod A B) (@GSPEC (A -> B) (fun GEN_PVAR_503 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_503 ((@SUBSET B (@IMAGE A B f s) t) /\ ((@SUBSET A (@GSPEC A (fun GEN_PVAR_501 : A => exists x : A, @SETSPEC A GEN_PVAR_501 (~ ((f x) = (k x))) x)) s) /\ (@FINITE A (@GSPEC A (fun GEN_PVAR_502 : A => exists x : A, @SETSPEC A GEN_PVAR_502 (~ ((f x) = (k x))) x))))) f)) (@mul_c B A s t). +Axiom thm_CARD_EQ_RESTRICTED_FUNSPACE_INFINITE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall k : A -> B, ((@INFINITE A s) /\ ((~ (exists a : B, @SUBSET B t (@INSERT B a (@EMPTY B)))) /\ (@SUBSET B (@IMAGE A B k s) t))) -> @eq_c (A -> B) (prod A B) (@GSPEC (A -> B) (fun GEN_PVAR_506 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_506 ((@SUBSET B (@IMAGE A B f s) t) /\ ((@SUBSET A (@GSPEC A (fun GEN_PVAR_504 : A => exists x : A, @SETSPEC A GEN_PVAR_504 (~ ((f x) = (k x))) x)) s) /\ (@FINITE A (@GSPEC A (fun GEN_PVAR_505 : A => exists x : A, @SETSPEC A GEN_PVAR_505 (~ ((f x) = (k x))) x))))) f)) (@mul_c B A s t). +Axiom thm_CARD_EQ_FUNSPACE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall k : A -> B, @eq_c (A -> B) (A -> B) (@GSPEC (A -> B) (fun GEN_PVAR_508 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_508 ((@SUBSET B (@IMAGE A B f s) t) /\ (@SUBSET A (@GSPEC A (fun GEN_PVAR_507 : A => exists x : A, @SETSPEC A GEN_PVAR_507 (~ ((f x) = (k x))) x)) s)) f)) (@pow_c B A t s). +Axiom thm_CARTESIAN_PRODUCT_CONST : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@cartesian_product A B t (fun i : B => s)) = (@pow_c A B s t). +Axiom thm_CARD_LE_CARTESIAN_PRODUCT : forall {A B K : Type'}, forall s : K -> A -> Prop, forall t : K -> B -> Prop, forall k : K -> Prop, (forall i : K, (@IN K i k) -> @le_c A B (s i) (t i)) -> @le_c (K -> A) (K -> B) (@cartesian_product A K k s) (@cartesian_product B K k t). +Axiom thm_CARD_EQ_CARTESIAN_PRODUCT : forall {A B K : Type'}, forall s : K -> A -> Prop, forall t : K -> B -> Prop, forall k : K -> Prop, (forall i : K, (@IN K i k) -> @eq_c A B (s i) (t i)) -> @eq_c (K -> A) (K -> B) (@cartesian_product A K k s) (@cartesian_product B K k t). +Axiom thm_CARD_LE_CARTESIAN_PRODUCT_SUBINDEX : forall {A K : Type'}, forall s : K -> A -> Prop, forall k : K -> Prop, forall l : K -> Prop, ((@SUBSET K k l) /\ (~ ((@cartesian_product A K l s) = (@EMPTY (K -> A))))) -> @le_c (K -> A) (K -> A) (@cartesian_product A K k s) (@cartesian_product A K l s). +Axiom thm_FINITE_CARTESIAN_PRODUCT : forall {A K : Type'}, forall s : K -> A -> Prop, forall k : K -> Prop, (@FINITE (K -> A) (@cartesian_product A K k s)) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ ((@FINITE K (@GSPEC K (fun GEN_PVAR_514 : K => exists i : K, @SETSPEC K GEN_PVAR_514 ((@IN K i k) /\ (~ (exists a : A, @SUBSET A (s i) (@INSERT A a (@EMPTY A))))) i))) /\ (forall i : K, (@IN K i k) -> @FINITE A (s i)))). +Axiom thm_COUNTABLE_CARTESIAN_PRODUCT : forall {A K : Type'}, forall s : K -> A -> Prop, forall k : K -> Prop, (@COUNTABLE (K -> A) (@cartesian_product A K k s)) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ ((@FINITE K (@GSPEC K (fun GEN_PVAR_521 : K => exists i : K, @SETSPEC K GEN_PVAR_521 ((@IN K i k) /\ (~ (exists a : A, @SUBSET A (s i) (@INSERT A a (@EMPTY A))))) i))) /\ (forall i : K, (@IN K i k) -> @COUNTABLE A (s i)))). +Axiom thm_CARD_EXP_FINITE_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@FINITE (B -> A) (@pow_c A B s t)) = ((exists a : A, @SUBSET A s (@INSERT A a (@EMPTY A))) \/ ((t = (@EMPTY B)) \/ ((@FINITE A s) /\ (@FINITE B t)))). +Axiom thm_CARD_EQ_CARTESIAN_PRODUCT_DISJOINT_UNION : forall {A K : Type'}, forall f : K -> A -> Prop, forall k : K -> Prop, forall l : K -> Prop, (@DISJOINT K k l) -> @eq_c (K -> A) (prod (K -> A) (K -> A)) (@cartesian_product A K (@UNION K k l) f) (@CROSS (K -> A) (K -> A) (@cartesian_product A K k f) (@cartesian_product A K l f)). +Axiom thm_permutes : forall {_172930 : Type'}, forall s : _172930 -> Prop, forall p : _172930 -> _172930, (@permutes _172930 p s) = ((forall x : _172930, (~ (@IN _172930 x s)) -> (p x) = x) /\ (forall y : _172930, @ex1 _172930 (fun x : _172930 => (p x) = y))). +Axiom thm_inverse : forall {_172945 _172948 : Type'}, forall f : _172948 -> _172945, (@inverse _172945 _172948 f) = (fun y : _172945 => @ε _172948 (fun x : _172948 => (f x) = y)). +Axiom thm_SURJECTIVE_INVERSE : forall {_172972 _172975 : Type'}, forall f : _172975 -> _172972, (forall y : _172972, exists x : _172975, (f x) = y) = (forall y : _172972, (f (@inverse _172972 _172975 f y)) = y). +Axiom thm_SURJECTIVE_INVERSE_o : forall {_173009 _173010 : Type'}, forall f : _173009 -> _173010, (forall y : _173010, exists x : _173009, (f x) = y) = ((@o _173010 _173009 _173010 f (@inverse _173010 _173009 f)) = (@I _173010)). +Axiom thm_INJECTIVE_INVERSE : forall {_173028 _173047 : Type'}, forall f : _173047 -> _173028, (forall x : _173047, forall x' : _173047, ((f x) = (f x')) -> x = x') = (forall x : _173047, (@inverse _173028 _173047 f (f x)) = x). +Axiom thm_INJECTIVE_INVERSE_o : forall {_173065 _173084 : Type'}, forall f : _173084 -> _173065, (forall x : _173084, forall x' : _173084, ((f x) = (f x')) -> x = x') = ((@o _173084 _173065 _173084 (@inverse _173065 _173084 f) f) = (@I _173084)). +Axiom thm_INVERSE_UNIQUE_o : forall {_173106 _173115 : Type'}, forall f : _173115 -> _173106, forall g : _173106 -> _173115, (((@o _173106 _173115 _173106 f g) = (@I _173106)) /\ ((@o _173115 _173106 _173115 g f) = (@I _173115))) -> (@inverse _173106 _173115 f) = g. +Axiom thm_INVERSE_I : forall {_173130 : Type'}, (@inverse _173130 _173130 (@I _173130)) = (@I _173130). +Axiom thm_swap : forall {_173152 : Type'}, forall j : _173152, forall i : _173152, forall k : _173152, (@swap _173152 (@pair _173152 _173152 i j) k) = (@COND _173152 (k = i) j (@COND _173152 (k = j) i k)). +Axiom thm_SWAP_REFL : forall {_173169 : Type'}, forall a : _173169, (@swap _173169 (@pair _173169 _173169 a a)) = (@I _173169). +Axiom thm_SWAP_SYM : forall {_173190 : Type'}, forall a : _173190, forall b : _173190, (@swap _173190 (@pair _173190 _173190 a b)) = (@swap _173190 (@pair _173190 _173190 b a)). +Axiom thm_SWAP_IDEMPOTENT : forall {_173223 : Type'}, forall a : _173223, forall b : _173223, (@o _173223 _173223 _173223 (@swap _173223 (@pair _173223 _173223 a b)) (@swap _173223 (@pair _173223 _173223 a b))) = (@I _173223). +Axiom thm_INVERSE_SWAP : forall {_173247 : Type'}, forall a : _173247, forall b : _173247, (@inverse _173247 _173247 (@swap _173247 (@pair _173247 _173247 a b))) = (@swap _173247 (@pair _173247 _173247 a b)). +Axiom thm_SWAP_GALOIS : forall {_173286 : Type'}, forall a : _173286, forall b : _173286, forall x : _173286, forall y : _173286, (x = (@swap _173286 (@pair _173286 _173286 a b) y)) = (y = (@swap _173286 (@pair _173286 _173286 a b) x)). +Axiom thm_PERMUTES_IN_IMAGE : forall {_173315 : Type'}, forall p : _173315 -> _173315, forall s : _173315 -> Prop, forall x : _173315, (@permutes _173315 p s) -> (@IN _173315 (p x) s) = (@IN _173315 x s). +Axiom thm_PERMUTES_IMAGE : forall {_173330 : Type'}, forall p : _173330 -> _173330, forall s : _173330 -> Prop, (@permutes _173330 p s) -> (@IMAGE _173330 _173330 p s) = s. +Axiom thm_PERMUTES_INJECTIVE : forall {_173367 : Type'}, forall p : _173367 -> _173367, forall s : _173367 -> Prop, (@permutes _173367 p s) -> forall x : _173367, forall y : _173367, ((p x) = (p y)) = (x = y). +Axiom thm_PERMUTES_SURJECTIVE : forall {_173392 : Type'}, forall p : _173392 -> _173392, forall s : _173392 -> Prop, (@permutes _173392 p s) -> forall y : _173392, exists x : _173392, (p x) = y. +Axiom thm_PERMUTES_INVERSES_o : forall {_173435 : Type'}, forall p : _173435 -> _173435, forall s : _173435 -> Prop, (@permutes _173435 p s) -> ((@o _173435 _173435 _173435 p (@inverse _173435 _173435 p)) = (@I _173435)) /\ ((@o _173435 _173435 _173435 (@inverse _173435 _173435 p) p) = (@I _173435)). +Axiom thm_PERMUTES_INVERSES : forall {_173475 : Type'}, forall p : _173475 -> _173475, forall s : _173475 -> Prop, (@permutes _173475 p s) -> (forall x : _173475, (p (@inverse _173475 _173475 p x)) = x) /\ (forall x : _173475, (@inverse _173475 _173475 p (p x)) = x). +Axiom thm_PERMUTES_SUBSET : forall {_173495 : Type'}, forall p : _173495 -> _173495, forall s : _173495 -> Prop, forall t : _173495 -> Prop, ((@permutes _173495 p s) /\ (@SUBSET _173495 s t)) -> @permutes _173495 p t. +Axiom thm_PERMUTES_EMPTY : forall {_173516 : Type'}, forall p : _173516 -> _173516, (@permutes _173516 p (@EMPTY _173516)) = (p = (@I _173516)). +Axiom thm_PERMUTES_SING : forall {_173538 : Type'}, forall p : _173538 -> _173538, forall a : _173538, (@permutes _173538 p (@INSERT _173538 a (@EMPTY _173538))) = (p = (@I _173538)). +Axiom thm_PERMUTES_UNIV : forall {A : Type'}, forall p : A -> A, (@permutes A p (@UNIV A)) = (forall y : A, @ex1 A (fun x : A => (p x) = y)). +Axiom thm_PERMUTES_INVERSE_EQ : forall {_173593 : Type'}, forall p : _173593 -> _173593, forall s : _173593 -> Prop, (@permutes _173593 p s) -> forall x : _173593, forall y : _173593, ((@inverse _173593 _173593 p y) = x) = ((p x) = y). +Axiom thm_PERMUTES_SWAP : forall {_173625 : Type'}, forall a : _173625, forall b : _173625, forall s : _173625 -> Prop, ((@IN _173625 a s) /\ (@IN _173625 b s)) -> @permutes _173625 (@swap _173625 (@pair _173625 _173625 a b)) s. +Axiom thm_PERMUTES_SUPERSET : forall {_173661 : Type'}, forall p : _173661 -> _173661, forall s : _173661 -> Prop, forall t : _173661 -> Prop, ((@permutes _173661 p s) /\ (forall x : _173661, (@IN _173661 x (@DIFF _173661 s t)) -> (p x) = x)) -> @permutes _173661 p t. +Axiom thm_PERMUTES_BIJECTIONS : forall {_173760 : Type'} (s : _173760 -> Prop), forall p : _173760 -> _173760, forall q : _173760 -> _173760, ((forall x : _173760, (@IN _173760 x s) -> @IN _173760 (p x) s) /\ ((forall x : _173760, (~ (@IN _173760 x s)) -> (p x) = x) /\ ((forall x : _173760, (@IN _173760 x s) -> @IN _173760 (q x) s) /\ ((forall x : _173760, (~ (@IN _173760 x s)) -> (q x) = x) /\ ((forall x : _173760, (p (q x)) = x) /\ (forall x : _173760, (q (p x)) = x)))))) -> @permutes _173760 p s. +Axiom thm_PERMUTES_INVERSE_FUNCTION : forall {A : Type'}, forall s : A -> Prop, forall p : A -> A, (@permutes A p s) = (exists q : A -> A, (forall x : A, (~ (@IN A x s)) -> (p x) = x) /\ ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall x : A, (@IN A x s) -> ((p (q x)) = x) /\ ((q (p x)) = x)))). +Axiom thm_PERMUTES_ALT : forall {A : Type'}, forall p : A -> A, forall s : A -> Prop, (@permutes A p s) = ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ ((forall x : A, (~ (@IN A x s)) -> (p x) = x) /\ (forall y : A, (@IN A y s) -> @ex1 A (fun x : A => (@IN A x s) /\ ((p x) = y))))). +Axiom thm_PERMUTES_RESTRICT_SET : forall {A : Type'}, forall Q : A -> Prop, forall p : A -> A, forall s : A -> Prop, ((@permutes A p s) /\ (forall x : A, (@IN A x s) -> (Q (p x)) = (Q x))) -> @permutes A (fun i : A => @COND A (Q i) (p i) i) (@GSPEC A (fun GEN_PVAR_522 : A => exists x : A, @SETSPEC A GEN_PVAR_522 ((@IN A x s) /\ (Q x)) x)). +Axiom thm_PERMUTES_RESTRICT : forall {A : Type'}, forall Q : A -> Prop, forall p : A -> A, forall s : A -> Prop, ((@permutes A p s) /\ (forall x : A, (@IN A x s) -> (Q (p x)) = (Q x))) -> @permutes A (fun i : A => @COND A (Q i) (p i) i) s. +Axiom thm_PERMUTES_CARTESIAN_PRODUCT : forall {A B : Type'}, forall p : A -> A, forall q : B -> B, forall s : A -> Prop, forall t : B -> Prop, ((@permutes A p s) /\ (@permutes B q t)) -> @permutes (prod A B) (@GABS ((prod A B) -> prod A B) (fun f : (prod A B) -> prod A B => forall i : A, forall j : B, @GEQ (prod A B) (f (@pair A B i j)) (@COND (prod A B) ((@IN A i s) /\ (@IN B j t)) (@pair A B (p i) (q j)) (@pair A B i j)))) (@CROSS A B s t). +Axiom thm_PERMUTES_TRANSFER_BIJECTIONS : forall {A B : Type'}, forall f : A -> B, forall f' : B -> A, forall p : B -> B, forall s : A -> Prop, forall t : B -> Prop, ((forall x : A, (f' (f x)) = x) /\ ((forall y : B, (f (f' y)) = y) /\ ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall y : B, (@IN B y t) -> @IN A (f' y) s)))) -> (@permutes A (@o A B A f' (@o A B B p f)) s) = (@permutes B p t). +Axiom thm_PERMUTES_TRANSFER : forall {A B : Type'}, forall f : A -> B, forall p : A -> A, forall q : B -> B, forall s : A -> Prop, ((@permutes A p s) /\ ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ ((forall x : A, (@IN A x s) -> (q (f x)) = (f (p x))) /\ (forall y : B, (~ (@IN B y (@IMAGE A B f s))) -> (q y) = y)))) -> @permutes B q (@IMAGE A B f s). +Axiom thm_PERMUTES_ID : forall {A : Type'}, forall s : A -> Prop, @permutes A (fun x : A => x) s. +Axiom thm_PERMUTES_I : forall {_174329 : Type'}, forall s : _174329 -> Prop, @permutes _174329 (@I _174329) s. +Axiom thm_PERMUTES_COMPOSE : forall {_174349 : Type'}, forall p : _174349 -> _174349, forall q : _174349 -> _174349, forall s : _174349 -> Prop, ((@permutes _174349 p s) /\ (@permutes _174349 q s)) -> @permutes _174349 (@o _174349 _174349 _174349 q p) s. +Axiom thm_PERMUTES_INVERSE : forall {_195402 : Type'}, forall p : _195402 -> _195402, forall s : _195402 -> Prop, (@permutes _195402 p s) -> @permutes _195402 (@inverse _195402 _195402 p) s. +Axiom thm_PERMUTES_INVERSE_INVERSE : forall {_195418 : Type'} (s : _195418 -> Prop), forall p : _195418 -> _195418, (@permutes _195418 p s) -> (@inverse _195418 _195418 (@inverse _195418 _195418 p)) = p. +Axiom thm_PERMUTES_INSERT_LEMMA : forall {A : Type'}, forall p : A -> A, forall a : A, forall s : A -> Prop, (@permutes A p (@INSERT A a s)) -> @permutes A (@o A A A (@swap A (@pair A A a (p a))) p) s. +Axiom thm_PERMUTES_INSERT : forall {A : Type'} (a : A) (s : A -> Prop), (@GSPEC (A -> A) (fun GEN_PVAR_523 : A -> A => exists p : A -> A, @SETSPEC (A -> A) GEN_PVAR_523 (@permutes A p (@INSERT A a s)) p)) = (@IMAGE (prod A (A -> A)) (A -> A) (@GABS ((prod A (A -> A)) -> A -> A) (fun f : (prod A (A -> A)) -> A -> A => forall b : A, forall p : A -> A, @GEQ (A -> A) (f (@pair A (A -> A) b p)) (@o A A A (@swap A (@pair A A a b)) p))) (@GSPEC (prod A (A -> A)) (fun GEN_PVAR_525 : prod A (A -> A) => exists b : A, exists p : A -> A, @SETSPEC (prod A (A -> A)) GEN_PVAR_525 ((@IN A b (@INSERT A a s)) /\ (@IN (A -> A) p (@GSPEC (A -> A) (fun GEN_PVAR_524 : A -> A => exists p' : A -> A, @SETSPEC (A -> A) GEN_PVAR_524 (@permutes A p' s) p')))) (@pair A (A -> A) b p)))). +Axiom thm_HAS_SIZE_PERMUTATIONS : forall {A : Type'}, forall s : A -> Prop, forall n : N, (@HAS_SIZE A s n) -> @HAS_SIZE (A -> A) (@GSPEC (A -> A) (fun GEN_PVAR_527 : A -> A => exists p : A -> A, @SETSPEC (A -> A) GEN_PVAR_527 (@permutes A p s) p)) (FACT n). +Axiom thm_FINITE_PERMUTATIONS : forall {_195676 : Type'}, forall s : _195676 -> Prop, (@FINITE _195676 s) -> @FINITE (_195676 -> _195676) (@GSPEC (_195676 -> _195676) (fun GEN_PVAR_528 : _195676 -> _195676 => exists p : _195676 -> _195676, @SETSPEC (_195676 -> _195676) GEN_PVAR_528 (@permutes _195676 p s) p)). +Axiom thm_CARD_PERMUTATIONS : forall {_195702 : Type'}, forall s : _195702 -> Prop, (@FINITE _195702 s) -> (@CARD (_195702 -> _195702) (@GSPEC (_195702 -> _195702) (fun GEN_PVAR_529 : _195702 -> _195702 => exists p : _195702 -> _195702, @SETSPEC (_195702 -> _195702) GEN_PVAR_529 (@permutes _195702 p s) p))) = (FACT (@CARD _195702 s)). +Axiom thm_PERMUTES_FINITE_INJECTIVE : forall {A : Type'}, forall s : A -> Prop, forall p : A -> A, (@FINITE A s) -> (@permutes A p s) = ((forall x : A, (~ (@IN A x s)) -> (p x) = x) /\ ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((p x) = (p y)))) -> x = y))). +Axiom thm_PERMUTES_FINITE_SURJECTIVE : forall {A : Type'}, forall s : A -> Prop, forall p : A -> A, (@FINITE A s) -> (@permutes A p s) = ((forall x : A, (~ (@IN A x s)) -> (p x) = x) /\ ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall y : A, (@IN A y s) -> exists x : A, (@IN A x s) /\ ((p x) = y)))). +Axiom thm_ITERATE_PERMUTE : forall {_195954 _195955 : Type'}, forall op : _195955 -> _195955 -> _195955, (@monoidal _195955 op) -> forall f : _195954 -> _195955, forall p : _195954 -> _195954, forall s : _195954 -> Prop, (@permutes _195954 p s) -> (@iterate _195954 _195955 op s f) = (@iterate _195954 _195955 op s (@o _195954 _195954 _195955 f p)). +Axiom thm_NSUM_PERMUTE : forall {_195986 : Type'}, forall f : _195986 -> N, forall p : _195986 -> _195986, forall s : _195986 -> Prop, (@permutes _195986 p s) -> (@nsum _195986 s f) = (@nsum _195986 s (@o _195986 _195986 N f p)). +Axiom thm_NSUM_PERMUTE_NUMSEG : forall f : N -> N, forall p : N -> N, forall m : N, forall n : N, (@permutes N p (dotdot m n)) -> (@nsum N (dotdot m n) f) = (@nsum N (dotdot m n) (@o N N N f p)). +Axiom thm_SUM_PERMUTE : forall {_196060 : Type'}, forall f : _196060 -> R, forall p : _196060 -> _196060, forall s : _196060 -> Prop, (@permutes _196060 p s) -> (@sum _196060 s f) = (@sum _196060 s (@o _196060 _196060 R f p)). +Axiom thm_SUM_PERMUTE_NUMSEG : forall f : N -> R, forall p : N -> N, forall m : N, forall n : N, (@permutes N p (dotdot m n)) -> (@sum N (dotdot m n) f) = (@sum N (dotdot m n) (@o N N R f p)). +Axiom thm_SWAP_COMMON : forall {A : Type'}, forall a : A, forall b : A, forall c : A, ((~ (a = c)) /\ (~ (b = c))) -> (@o A A A (@swap A (@pair A A a b)) (@swap A (@pair A A a c))) = (@o A A A (@swap A (@pair A A b c)) (@swap A (@pair A A a b))). +Axiom thm_SWAP_INDEPENDENT : forall {A : Type'}, forall a : A, forall b : A, forall c : A, forall d : A, ((~ (a = c)) /\ ((~ (a = d)) /\ ((~ (b = c)) /\ (~ (b = d))))) -> (@o A A A (@swap A (@pair A A a b)) (@swap A (@pair A A c d))) = (@o A A A (@swap A (@pair A A c d)) (@swap A (@pair A A a b))). +Axiom thm_swapseq_RULES : forall {_196374 : Type'}, (@swapseq _196374 (NUMERAL 0%N) (@I _196374)) /\ (forall a : _196374, forall b : _196374, forall p : _196374 -> _196374, forall n : N, ((@swapseq _196374 n p) /\ (~ (a = b))) -> @swapseq _196374 (N.succ n) (@o _196374 _196374 _196374 (@swap _196374 (@pair _196374 _196374 a b)) p)). +Axiom thm_swapseq_CASES : forall {_196374 : Type'}, forall a0 : N, forall a1 : _196374 -> _196374, (@swapseq _196374 a0 a1) = (((a0 = (NUMERAL 0%N)) /\ (a1 = (@I _196374))) \/ (exists a : _196374, exists b : _196374, exists p : _196374 -> _196374, exists n : N, (a0 = (N.succ n)) /\ ((a1 = (@o _196374 _196374 _196374 (@swap _196374 (@pair _196374 _196374 a b)) p)) /\ ((@swapseq _196374 n p) /\ (~ (a = b)))))). +Axiom thm_swapseq_INDUCT : forall {_196374 : Type'}, forall swapseq' : N -> (_196374 -> _196374) -> Prop, ((swapseq' (NUMERAL 0%N) (@I _196374)) /\ (forall a : _196374, forall b : _196374, forall p : _196374 -> _196374, forall n : N, ((swapseq' n p) /\ (~ (a = b))) -> swapseq' (N.succ n) (@o _196374 _196374 _196374 (@swap _196374 (@pair _196374 _196374 a b)) p))) -> forall a0 : N, forall a1 : _196374 -> _196374, (@swapseq _196374 a0 a1) -> swapseq' a0 a1. +Axiom thm_permutation : forall {_196388 : Type'}, forall p : _196388 -> _196388, (@permutation _196388 p) = (exists n : N, @swapseq _196388 n p). +Axiom thm_PERMUTATION_I : forall {_196392 : Type'}, @permutation _196392 (@I _196392). +Axiom thm_SWAPSEQ_SWAP : forall {_196415 : Type'}, forall a : _196415, forall b : _196415, @swapseq _196415 (@COND N (a = b) (NUMERAL 0%N) (NUMERAL (BIT1 0%N))) (@swap _196415 (@pair _196415 _196415 a b)). +Axiom thm_PERMUTATION_SWAP : forall {_196432 : Type'}, forall a : _196432, forall b : _196432, @permutation _196432 (@swap _196432 (@pair _196432 _196432 a b)). +Axiom thm_SWAPSEQ_COMPOSE : forall {_196462 : Type'}, forall n : N, forall p : _196462 -> _196462, forall m : N, forall q : _196462 -> _196462, ((@swapseq _196462 n p) /\ (@swapseq _196462 m q)) -> @swapseq _196462 (N.add n m) (@o _196462 _196462 _196462 p q). +Axiom thm_PERMUTATION_COMPOSE : forall {_196490 : Type'}, forall p : _196490 -> _196490, forall q : _196490 -> _196490, ((@permutation _196490 p) /\ (@permutation _196490 q)) -> @permutation _196490 (@o _196490 _196490 _196490 p q). +Axiom thm_SWAPSEQ_ENDSWAP : forall {A : Type'}, forall n : N, forall p : A -> A, forall a : A, forall b : A, ((@swapseq A n p) /\ (~ (a = b))) -> @swapseq A (N.succ n) (@o A A A p (@swap A (@pair A A a b))). +Axiom thm_SWAPSEQ_INVERSE_EXISTS : forall {A : Type'}, forall n : N, forall p : A -> A, (@swapseq A n p) -> exists q : A -> A, (@swapseq A n q) /\ (((@o A A A p q) = (@I A)) /\ ((@o A A A q p) = (@I A))). +Axiom thm_SWAPSEQ_INVERSE : forall {_196613 : Type'}, forall n : N, forall p : _196613 -> _196613, (@swapseq _196613 n p) -> @swapseq _196613 n (@inverse _196613 _196613 p). +Axiom thm_PERMUTATION_INVERSE : forall {_196628 : Type'}, forall p : _196628 -> _196628, (@permutation _196628 p) -> @permutation _196628 (@inverse _196628 _196628 p). +Axiom thm_SYMMETRY_LEMMA : forall {A : Type'} (P : A -> A -> A -> A -> Prop), ((forall a : A, forall b : A, forall c : A, forall d : A, (P a b c d) -> P a b d c) /\ (forall a : A, forall b : A, forall c : A, forall d : A, ((~ (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)) -> forall a : A, forall b : A, forall c : A, forall d : A, ((~ (a = b)) /\ (~ (c = d))) -> P a b c d. +Axiom thm_SWAP_GENERAL : forall {A : Type'}, forall a : A, forall b : A, forall c : A, forall d : A, ((~ (a = b)) /\ (~ (c = d))) -> ((@o A A A (@swap A (@pair A A a b)) (@swap A (@pair A A c d))) = (@I A)) \/ (exists x : A, exists y : A, exists z : A, (~ (x = a)) /\ ((~ (y = a)) /\ ((~ (z = a)) /\ ((~ (x = y)) /\ ((@o A A A (@swap A (@pair A A a b)) (@swap A (@pair A A c d))) = (@o A A A (@swap A (@pair A A x y)) (@swap A (@pair A A a z)))))))). +Axiom thm_FIXING_SWAPSEQ_DECREASE : forall {A : Type'}, forall n : N, forall p : A -> A, forall a : A, forall b : A, ((@swapseq A n p) /\ ((~ (a = b)) /\ ((@o A A A (@swap A (@pair A A a b)) p a) = a))) -> (~ (n = (NUMERAL 0%N))) /\ (@swapseq A (N.sub n (NUMERAL (BIT1 0%N))) (@o A A A (@swap A (@pair A A a b)) p)). +Axiom thm_SWAPSEQ_IDENTITY_EVEN : forall {A : Type'}, forall n : N, (@swapseq A n (@I A)) -> EVEN n. +Axiom thm_evenperm : forall {_197091 : Type'}, forall p : _197091 -> _197091, (@evenperm _197091 p) = (EVEN (@ε N (fun n : N => @swapseq _197091 n p))). +Axiom thm_SWAPSEQ_EVEN_EVEN : forall {A : Type'}, forall m : N, forall n : N, forall p : A -> A, ((@swapseq A m p) /\ (@swapseq A n p)) -> (EVEN m) = (EVEN n). +Axiom thm_EVENPERM_UNIQUE : forall {_197144 : Type'}, forall n : N, forall p : _197144 -> _197144, forall b : Prop, ((@swapseq _197144 n p) /\ ((EVEN n) = b)) -> (@evenperm _197144 p) = b. +Axiom thm_EVENPERM_I : forall {_197160 : Type'}, (@evenperm _197160 (@I _197160)) = True. +Axiom thm_EVENPERM_ID : forall {A : Type'}, @evenperm A (fun x : A => x). +Axiom thm_EVENPERM_SWAP : forall {A : Type'}, forall a : A, forall b : A, (@evenperm A (@swap A (@pair A A a b))) = (a = b). +Axiom thm_EVENPERM_COMPOSE : forall {_197209 : Type'}, forall p : _197209 -> _197209, forall q : _197209 -> _197209, ((@permutation _197209 p) /\ (@permutation _197209 q)) -> (@evenperm _197209 (@o _197209 _197209 _197209 p q)) = ((@evenperm _197209 p) = (@evenperm _197209 q)). +Axiom thm_EVENPERM_INVERSE : forall {_197235 : Type'}, forall p : _197235 -> _197235, (@permutation _197235 p) -> (@evenperm _197235 (@inverse _197235 _197235 p)) = (@evenperm _197235 p). +Axiom thm_PERMUTATION_BIJECTIVE : forall {_197263 : Type'}, forall p : _197263 -> _197263, (@permutation _197263 p) -> forall y : _197263, @ex1 _197263 (fun x : _197263 => (p x) = y). +Axiom thm_PERMUTATION_FINITE_SUPPORT : forall {A : Type'}, forall p : A -> A, (@permutation A p) -> @FINITE A (@GSPEC A (fun GEN_PVAR_532 : A => exists x : A, @SETSPEC A GEN_PVAR_532 (~ ((p x) = x)) x)). +Axiom thm_PERMUTATION_LEMMA : forall {A : Type'}, forall s : A -> Prop, forall p : A -> A, ((@FINITE A s) /\ ((forall y : A, @ex1 A (fun x : A => (p x) = y)) /\ (forall x : A, (~ (@IN A x s)) -> (p x) = x))) -> @permutation A p. +Axiom thm_PERMUTATION : forall {A : Type'}, forall p : A -> A, (@permutation A p) = ((forall y : A, @ex1 A (fun x : A => (p x) = y)) /\ (@FINITE A (@GSPEC A (fun GEN_PVAR_534 : A => exists x : A, @SETSPEC A GEN_PVAR_534 (~ ((p x) = x)) x)))). +Axiom thm_PERMUTATION_INVERSE_WORKS : forall {_197569 : Type'}, forall p : _197569 -> _197569, (@permutation _197569 p) -> ((@o _197569 _197569 _197569 (@inverse _197569 _197569 p) p) = (@I _197569)) /\ ((@o _197569 _197569 _197569 p (@inverse _197569 _197569 p)) = (@I _197569)). +Axiom thm_PERMUTATION_INVERSE_COMPOSE : forall {_197608 : Type'}, forall p : _197608 -> _197608, forall q : _197608 -> _197608, ((@permutation _197608 p) /\ (@permutation _197608 q)) -> (@inverse _197608 _197608 (@o _197608 _197608 _197608 p q)) = (@o _197608 _197608 _197608 (@inverse _197608 _197608 q) (@inverse _197608 _197608 p)). +Axiom thm_PERMUTATION_COMPOSE_EQ : forall {A : Type'}, (forall p : A -> A, forall q : A -> A, (@permutation A p) -> (@permutation A (@o A A A p q)) = (@permutation A q)) /\ (forall p : A -> A, forall q : A -> A, (@permutation A q) -> (@permutation A (@o A A A p q)) = (@permutation A p)). +Axiom thm_PERMUTATION_COMPOSE_SWAP : forall {A : Type'}, (forall p : A -> A, forall a : A, forall b : A, (@permutation A (@o A A A (@swap A (@pair A A a b)) p)) = (@permutation A p)) /\ (forall p : A -> A, forall a : A, forall b : A, (@permutation A (@o A A A p (@swap A (@pair A A a b)))) = (@permutation A p)). +Axiom thm_PERMUTATION_PERMUTES : forall {A : Type'}, forall p : A -> A, (@permutation A p) = (exists s : A -> Prop, (@FINITE A s) /\ (@permutes A p s)). +Axiom thm_PERMUTATION_RESTRICT : forall {A : Type'}, forall Q : A -> Prop, forall p : A -> A, ((@permutation A p) /\ (forall x : A, (Q (p x)) = (Q x))) -> @permutation A (fun i : A => @COND A (Q i) (p i) i). +Axiom thm_PERMUTES_INDUCT : forall {A : Type'}, forall P : (A -> A) -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((P (@I A)) /\ (forall a : A, forall b : A, forall p : A -> A, ((@IN A a s) /\ ((@IN A b s) /\ ((P p) /\ (@permutation A p)))) -> P (@o A A A (@swap A (@pair A A a b)) p)))) -> forall p : A -> A, (@permutes A p s) -> P p. +Axiom thm_PERMUTES_INDUCT_STRONG : forall {A : Type'}, forall P : (A -> A) -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((P (@I A)) /\ (forall a : A, forall b : A, forall p : A -> A, ((@IN A a s) /\ ((@IN A b s) /\ ((~ (a = b)) /\ ((P p) /\ (@permutes A p s))))) -> P (@o A A A (@swap A (@pair A A a b)) p)))) -> forall p : A -> A, (@permutes A p s) -> P p. +Axiom thm_sign : forall {_198015 : Type'}, forall p : _198015 -> _198015, (@sign _198015 p) = (@COND R (@evenperm _198015 p) (R_of_N (NUMERAL (BIT1 0%N))) (Ropp (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_SIGN_NZ : forall {_198032 : Type'}, forall p : _198032 -> _198032, ~ ((@sign _198032 p) = (R_of_N (NUMERAL 0%N))). +Axiom thm_SIGN_I : forall {_198041 : Type'}, (@sign _198041 (@I _198041)) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_SIGN_ID : forall {A : Type'}, (@sign A (fun x : A => x)) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_SIGN_INVERSE : forall {_198062 : Type'}, forall p : _198062 -> _198062, (@permutation _198062 p) -> (@sign _198062 (@inverse _198062 _198062 p)) = (@sign _198062 p). +Axiom thm_SIGN_COMPOSE : forall {_198089 : Type'}, forall p : _198089 -> _198089, forall q : _198089 -> _198089, ((@permutation _198089 p) /\ (@permutation _198089 q)) -> (@sign _198089 (@o _198089 _198089 _198089 p q)) = (Rmult (@sign _198089 p) (@sign _198089 q)). +Axiom thm_SIGN_SWAP : forall {_198131 : Type'}, forall a : _198131, forall b : _198131, (@sign _198131 (@swap _198131 (@pair _198131 _198131 a b))) = (@COND R (a = b) (R_of_N (NUMERAL (BIT1 0%N))) (Ropp (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_SIGN_IDEMPOTENT : forall {_198152 : Type'}, forall p : _198152 -> _198152, (Rmult (@sign _198152 p) (@sign _198152 p)) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_ABS_SIGN : forall {_198168 : Type'}, forall p : _198168 -> _198168, (Rabs (@sign _198168 p)) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_SGN_SIGN : forall {A : Type'}, forall p : A -> A, (real_sgn (@sign A p)) = (@sign A p). +Axiom thm_EVENPERM_TRANSFER : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall p : A -> A, forall q : B -> B, ((@FINITE A s) /\ ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ ((@permutes A p s) /\ ((forall x : A, (@IN A x s) -> (q (f x)) = (f (p x))) /\ (forall y : B, (~ (@IN B y (@IMAGE A B f s))) -> (q y) = y))))) -> (@evenperm B q) = (@evenperm A p). +Axiom thm_SIGN_TRANSFER : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall p : A -> A, forall q : B -> B, ((@FINITE A s) /\ ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ ((@permutes A p s) /\ ((forall x : A, (@IN A x s) -> (q (f x)) = (f (p x))) /\ (forall y : B, (~ (@IN B y (@IMAGE A B f s))) -> (q y) = y))))) -> (@sign B q) = (@sign A p). +Axiom thm_SIGN_CARTESIAN_PRODUCT : forall {A B : Type'}, forall p : A -> A, forall q : B -> B, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ ((@FINITE B t) /\ ((@permutes A p s) /\ (@permutes B q t)))) -> (@sign (prod A B) (@GABS ((prod A B) -> prod A B) (fun f : (prod A B) -> prod A B => forall i : A, forall j : B, @GEQ (prod A B) (f (@pair A B i j)) (@COND (prod A B) ((@IN A i s) /\ (@IN B j t)) (@pair A B (p i) (q j)) (@pair A B i j))))) = (Rmult (real_pow (@sign A p) (@CARD B t)) (real_pow (@sign B q) (@CARD A s))). +Axiom thm_PERMUTES_NUMSET_LE : forall p : N -> N, forall s : N -> Prop, ((@permutes N p s) /\ (forall i : N, (@IN N i s) -> N.le (p i) i)) -> p = (@I N). +Axiom thm_PERMUTES_NUMSET_GE : forall p : N -> N, forall s : N -> Prop, ((@permutes N p s) /\ (forall i : N, (@IN N i s) -> N.le i (p i))) -> p = (@I N). +Axiom thm_IMAGE_INVERSE_PERMUTATIONS : forall {A : Type'}, forall s : A -> Prop, (@GSPEC (A -> A) (fun GEN_PVAR_536 : A -> A => exists p : A -> A, @SETSPEC (A -> A) GEN_PVAR_536 (@permutes A p s) (@inverse A A p))) = (@GSPEC (A -> A) (fun GEN_PVAR_537 : A -> A => exists p : A -> A, @SETSPEC (A -> A) GEN_PVAR_537 (@permutes A p s) p)). +Axiom thm_IMAGE_COMPOSE_PERMUTATIONS_L : forall {A : Type'}, forall s : A -> Prop, forall q : A -> A, (@permutes A q s) -> (@GSPEC (A -> A) (fun GEN_PVAR_538 : A -> A => exists p : A -> A, @SETSPEC (A -> A) GEN_PVAR_538 (@permutes A p s) (@o A A A q p))) = (@GSPEC (A -> A) (fun GEN_PVAR_539 : A -> A => exists p : A -> A, @SETSPEC (A -> A) GEN_PVAR_539 (@permutes A p s) p)). +Axiom thm_IMAGE_COMPOSE_PERMUTATIONS_R : forall {A : Type'}, forall s : A -> Prop, forall q : A -> A, (@permutes A q s) -> (@GSPEC (A -> A) (fun GEN_PVAR_540 : A -> A => exists p : A -> A, @SETSPEC (A -> A) GEN_PVAR_540 (@permutes A p s) (@o A A A p q))) = (@GSPEC (A -> A) (fun GEN_PVAR_541 : A -> A => exists p : A -> A, @SETSPEC (A -> A) GEN_PVAR_541 (@permutes A p s) p)). +Axiom thm_PERMUTES_IN_NUMSEG : forall p : N -> N, forall n : N, forall i : N, ((@permutes N p (dotdot (NUMERAL (BIT1 0%N)) n)) /\ (@IN N i (dotdot (NUMERAL (BIT1 0%N)) n))) -> (N.le (NUMERAL (BIT1 0%N)) (p i)) /\ (N.le (p i) n). +Axiom thm_SUM_PERMUTATIONS_INVERSE : forall f : (N -> N) -> R, forall m : N, forall n : N, (@sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_544 : N -> N => exists p : N -> N, @SETSPEC (N -> N) GEN_PVAR_544 (@permutes N p (dotdot m n)) p)) f) = (@sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_545 : N -> N => exists p : N -> N, @SETSPEC (N -> N) GEN_PVAR_545 (@permutes N p (dotdot m n)) p)) (fun p : N -> N => f (@inverse N N p))). +Axiom thm_SUM_PERMUTATIONS_COMPOSE_L : forall f : (N -> N) -> R, forall m : N, forall n : N, forall q : N -> N, (@permutes N q (dotdot m n)) -> (@sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_548 : N -> N => exists p : N -> N, @SETSPEC (N -> N) GEN_PVAR_548 (@permutes N p (dotdot m n)) p)) f) = (@sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_549 : N -> N => exists p : N -> N, @SETSPEC (N -> N) GEN_PVAR_549 (@permutes N p (dotdot m n)) p)) (fun p : N -> N => f (@o N N N q p))). +Axiom thm_SUM_PERMUTATIONS_COMPOSE_R : forall f : (N -> N) -> R, forall m : N, forall n : N, forall q : N -> N, (@permutes N q (dotdot m n)) -> (@sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_552 : N -> N => exists p : N -> N, @SETSPEC (N -> N) GEN_PVAR_552 (@permutes N p (dotdot m n)) p)) f) = (@sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_553 : N -> N => exists p : N -> N, @SETSPEC (N -> N) GEN_PVAR_553 (@permutes N p (dotdot m n)) p)) (fun p : N -> N => f (@o N N N p q))). +Axiom thm_CARD_EVEN_PERMUTATIONS : forall {A : Type'}, forall s : A -> Prop, ((@FINITE A s) /\ (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@CARD A s))) -> (N.mul (NUMERAL (BIT0 (BIT1 0%N))) (@CARD (A -> A) (@GSPEC (A -> A) (fun GEN_PVAR_565 : A -> A => exists p : A -> A, @SETSPEC (A -> A) GEN_PVAR_565 ((@permutes A p s) /\ (@evenperm A p)) p)))) = (FACT (@CARD A s)). +Axiom thm_PERMUTES_INVOLUTION : forall {A : Type'}, forall p : A -> A, forall s : A -> Prop, ((forall x : A, (p (p x)) = x) /\ (forall x : A, (~ (@IN A x s)) -> (p x) = x)) -> @permutes A p s. +Axiom thm_SIGN_INVOLUTION : forall {A : Type'}, forall p : A -> A, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (p (p x)) = x) /\ (forall x : A, (~ (@IN A x s)) -> (p x) = x))) -> (@sign A p) = (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (N.div (@CARD A (@GSPEC A (fun GEN_PVAR_569 : A => exists x : A, @SETSPEC A GEN_PVAR_569 (~ ((p x) = x)) x))) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_PERMUTES_CYCLIC : forall n : N, @permutes N (fun i : N => @COND N (N.lt i n) (N.modulo (N.add i (NUMERAL (BIT1 0%N))) n) i) (@GSPEC N (fun GEN_PVAR_570 : N => exists i : N, @SETSPEC N GEN_PVAR_570 (N.lt i n) i)). +Axiom thm_PERMUTES_CYCLIC_N : forall n : N, forall k : N, @permutes N (fun i : N => @COND N (N.lt i n) (N.modulo (N.add i k) n) i) (@GSPEC N (fun GEN_PVAR_571 : N => exists i : N, @SETSPEC N GEN_PVAR_571 (N.lt i n) i)). +Axiom thm_PERMUTATION_CYCLIC : forall n : N, @permutation N (fun i : N => @COND N (N.lt i n) (N.modulo (N.add i (NUMERAL (BIT1 0%N))) n) i). +Axiom thm_PERMUTATION_CYCLIC_N : forall n : N, forall k : N, @permutation N (fun i : N => @COND N (N.lt i n) (N.modulo (N.add i k) n) i). +Axiom thm_EVENPERM_CYCLIC : forall n : N, (@evenperm N (fun i : N => @COND N (N.lt i n) (N.modulo (N.add i (NUMERAL (BIT1 0%N))) n) i)) = ((n = (NUMERAL 0%N)) \/ (ODD n)). +Axiom thm_EVENPERM_CYCLIC_N : forall n : N, forall k : N, (@evenperm N (fun i : N => @COND N (N.lt i n) (N.modulo (N.add i k) n) i)) = ((n = (NUMERAL 0%N)) \/ ((ODD n) \/ (EVEN k))). +Axiom thm_SIGN_CYCLIC : forall n : N, (@sign N (fun i : N => @COND N (N.lt i n) (N.modulo (N.add i (NUMERAL (BIT1 0%N))) n) i)) = (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (N.sub n (NUMERAL (BIT1 0%N)))). +Axiom thm_SIGN_CYCLIC_N : forall n : N, forall k : N, (@sign N (fun i : N => @COND N (N.lt i n) (N.modulo (N.add i k) n) i)) = (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (N.mul k (N.sub n (NUMERAL (BIT1 0%N))))). +Axiom thm_SUM_OVER_PERMUTATIONS_INSERT : forall {A : Type'}, forall f : (A -> A) -> R, forall a : A, forall s : A -> Prop, ((@FINITE A s) /\ (~ (@IN A a s))) -> (@sum (A -> A) (@GSPEC (A -> A) (fun GEN_PVAR_578 : A -> A => exists p : A -> A, @SETSPEC (A -> A) GEN_PVAR_578 (@permutes A p (@INSERT A a s)) p)) f) = (@sum A (@INSERT A a s) (fun b : A => @sum (A -> A) (@GSPEC (A -> A) (fun GEN_PVAR_579 : A -> A => exists p : A -> A, @SETSPEC (A -> A) GEN_PVAR_579 (@permutes A p s) p)) (fun q : A -> A => f (@o A A A (@swap A (@pair A A a b)) q)))). +Axiom thm_SUM_OVER_PERMUTATIONS_NUMSEG : forall f : (N -> N) -> R, forall m : N, forall n : N, (N.le m n) -> (@sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_580 : N -> N => exists p : N -> N, @SETSPEC (N -> N) GEN_PVAR_580 (@permutes N p (dotdot m n)) p)) f) = (@sum N (dotdot m n) (fun i : N => @sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_581 : N -> N => exists p : N -> N, @SETSPEC (N -> N) GEN_PVAR_581 (@permutes N p (dotdot (N.add m (NUMERAL (BIT1 0%N))) n)) p)) (fun q : N -> N => f (@o N N N (@swap N (@pair N N m i)) q)))). +Axiom thm_NPRODUCT_SUPPORT : forall {_201379 : Type'}, forall f : _201379 -> N, forall s : _201379 -> Prop, (@nproduct _201379 (@support _201379 N N.mul f s) f) = (@nproduct _201379 s f). +Axiom thm_NPRODUCT_UNION : forall {_201406 : Type'}, forall f : _201406 -> N, forall s : _201406 -> Prop, forall t : _201406 -> Prop, ((@FINITE _201406 s) /\ ((@FINITE _201406 t) /\ (@DISJOINT _201406 s t))) -> (@nproduct _201406 (@UNION _201406 s t) f) = (N.mul (@nproduct _201406 s f) (@nproduct _201406 t f)). +Axiom thm_NPRODUCT_IMAGE : forall {_201463 _201487 : Type'}, forall f : _201487 -> _201463, forall g : _201463 -> N, forall s : _201487 -> Prop, (forall x : _201487, forall y : _201487, ((@IN _201487 x s) /\ ((@IN _201487 y s) /\ ((f x) = (f y)))) -> x = y) -> (@nproduct _201463 (@IMAGE _201487 _201463 f s) g) = (@nproduct _201487 s (@o _201487 _201463 N g f)). +Axiom thm_NPRODUCT_INJECTION : forall {_201560 : Type'}, forall f : _201560 -> N, forall p : _201560 -> _201560, forall s : _201560 -> Prop, ((@FINITE _201560 s) /\ ((forall x : _201560, (@IN _201560 x s) -> @IN _201560 (p x) s) /\ (forall x : _201560, forall y : _201560, ((@IN _201560 x s) /\ ((@IN _201560 y s) /\ ((p x) = (p y)))) -> x = y))) -> (@nproduct _201560 s (@o _201560 _201560 N f p)) = (@nproduct _201560 s f). +Axiom thm_NPRODUCT_ADD_SPLIT : forall f : N -> N, forall m : N, forall n : N, forall p : N, (N.le m (N.add n (NUMERAL (BIT1 0%N)))) -> (@nproduct N (dotdot m (N.add n p)) f) = (N.mul (@nproduct N (dotdot m n) f) (@nproduct N (dotdot (N.add n (NUMERAL (BIT1 0%N))) (N.add n p)) f)). +Axiom thm_NPRODUCT_POS_LT : forall {_201654 : Type'}, forall f : _201654 -> N, forall s : _201654 -> Prop, ((@FINITE _201654 s) /\ (forall x : _201654, (@IN _201654 x s) -> N.lt (NUMERAL 0%N) (f x))) -> N.lt (NUMERAL 0%N) (@nproduct _201654 s f). +Axiom thm_NPRODUCT_POS_LT_NUMSEG : forall f : N -> N, forall m : N, forall n : N, (forall x : N, ((N.le m x) /\ (N.le x n)) -> N.lt (NUMERAL 0%N) (f x)) -> N.lt (NUMERAL 0%N) (@nproduct N (dotdot m n) f). +Axiom thm_NPRODUCT_OFFSET : forall (n : N), forall f : N -> N, forall m : N, forall p : N, (@nproduct N (dotdot (N.add m p) (N.add n p)) f) = (@nproduct N (dotdot m n) (fun i : N => f (N.add i p))). +Axiom thm_NPRODUCT_SING : forall {_201759 : Type'}, forall f : _201759 -> N, forall x : _201759, (@nproduct _201759 (@INSERT _201759 x (@EMPTY _201759)) f) = (f x). +Axiom thm_NPRODUCT_SING_NUMSEG : forall f : N -> N, forall n : N, (@nproduct N (dotdot n n) f) = (f n). +Axiom thm_NPRODUCT_CLAUSES_NUMSEG : forall (f : N -> N), (forall m : N, (@nproduct N (dotdot m (NUMERAL 0%N)) f) = (@COND N (m = (NUMERAL 0%N)) (f (NUMERAL 0%N)) (NUMERAL (BIT1 0%N)))) /\ (forall m : N, forall n : N, (@nproduct N (dotdot m (N.succ n)) f) = (@COND N (N.le m (N.succ n)) (N.mul (@nproduct N (dotdot m n) f) (f (N.succ n))) (@nproduct N (dotdot m n) f))). +Axiom thm_NPRODUCT_EQ : forall {_201875 : Type'}, forall f : _201875 -> N, forall g : _201875 -> N, forall s : _201875 -> Prop, (forall x : _201875, (@IN _201875 x s) -> (f x) = (g x)) -> (@nproduct _201875 s f) = (@nproduct _201875 s g). +Axiom thm_NPRODUCT_EQ_NUMSEG : forall f : N -> N, forall g : N -> N, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> (f i) = (g i)) -> (@nproduct N (dotdot m n) f) = (@nproduct N (dotdot m n) g). +Axiom thm_NPRODUCT_EQ_0 : forall {_201969 : Type'}, forall f : _201969 -> N, forall s : _201969 -> Prop, (@FINITE _201969 s) -> ((@nproduct _201969 s f) = (NUMERAL 0%N)) = (exists x : _201969, (@IN _201969 x s) /\ ((f x) = (NUMERAL 0%N))). +Axiom thm_NPRODUCT_EQ_0_NUMSEG : forall f : N -> N, forall m : N, forall n : N, ((@nproduct N (dotdot m n) f) = (NUMERAL 0%N)) = (exists x : N, (N.le m x) /\ ((N.le x n) /\ ((f x) = (NUMERAL 0%N)))). +Axiom thm_NPRODUCT_RESTRICT : forall {_202039 : Type'}, forall f : _202039 -> N, forall s : _202039 -> Prop, (@FINITE _202039 s) -> (@nproduct _202039 s (fun i : _202039 => @COND N (@IN _202039 i s) (f i) (NUMERAL (BIT1 0%N)))) = (@nproduct _202039 s f). +Axiom thm_NPRODUCT_RESTRICT_SET : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall f : A -> N, (@nproduct A (@GSPEC A (fun GEN_PVAR_582 : A => exists i : A, @SETSPEC A GEN_PVAR_582 ((@IN A i s) /\ (P i)) i)) f) = (@nproduct A s (fun i : A => @COND N (P i) (f i) (NUMERAL (BIT1 0%N)))). +Axiom thm_NPRODUCT_LE : forall {_202119 : Type'} (g : _202119 -> N), forall f : _202119 -> N, forall s : _202119 -> Prop, ((@FINITE _202119 s) /\ (forall x : _202119, (@IN _202119 x s) -> N.le (f x) (g x))) -> N.le (@nproduct _202119 s f) (@nproduct _202119 s g). +Axiom thm_NPRODUCT_LE_NUMSEG : forall (g : N -> N), forall f : N -> N, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> N.le (f i) (g i)) -> N.le (@nproduct N (dotdot m n) f) (@nproduct N (dotdot m n) g). +Axiom thm_NPRODUCT_EQ_1 : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (NUMERAL (BIT1 0%N))) -> (@nproduct A s f) = (NUMERAL (BIT1 0%N)). +Axiom thm_NPRODUCT_EQ_1_NUMSEG : forall f : N -> N, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> (f i) = (NUMERAL (BIT1 0%N))) -> (@nproduct N (dotdot m n) f) = (NUMERAL (BIT1 0%N)). +Axiom thm_NPRODUCT_MUL_GEN : forall {_202324 : Type'}, forall f : _202324 -> N, forall g : _202324 -> N, forall s : _202324 -> Prop, ((@FINITE _202324 (@GSPEC _202324 (fun GEN_PVAR_583 : _202324 => exists x : _202324, @SETSPEC _202324 GEN_PVAR_583 ((@IN _202324 x s) /\ (~ ((f x) = (NUMERAL (BIT1 0%N))))) x))) /\ (@FINITE _202324 (@GSPEC _202324 (fun GEN_PVAR_584 : _202324 => exists x : _202324, @SETSPEC _202324 GEN_PVAR_584 ((@IN _202324 x s) /\ (~ ((g x) = (NUMERAL (BIT1 0%N))))) x)))) -> (@nproduct _202324 s (fun x : _202324 => N.mul (f x) (g x))) = (N.mul (@nproduct _202324 s f) (@nproduct _202324 s g)). +Axiom thm_NPRODUCT_MUL : forall {_202363 : Type'}, forall f : _202363 -> N, forall g : _202363 -> N, forall s : _202363 -> Prop, (@FINITE _202363 s) -> (@nproduct _202363 s (fun x : _202363 => N.mul (f x) (g x))) = (N.mul (@nproduct _202363 s f) (@nproduct _202363 s g)). +Axiom thm_NPRODUCT_MUL_NUMSEG : forall f : N -> N, forall g : N -> N, forall m : N, forall n : N, (@nproduct N (dotdot m n) (fun x : N => N.mul (f x) (g x))) = (N.mul (@nproduct N (dotdot m n) f) (@nproduct N (dotdot m n) g)). +Axiom thm_NPRODUCT_CONST : forall {_202438 : Type'}, forall c : N, forall s : _202438 -> Prop, (@FINITE _202438 s) -> (@nproduct _202438 s (fun x : _202438 => c)) = (N.pow c (@CARD _202438 s)). +Axiom thm_NPRODUCT_CONST_NUMSEG : forall c : N, forall m : N, forall n : N, (@nproduct N (dotdot m n) (fun x : N => c)) = (N.pow c (N.sub (N.add n (NUMERAL (BIT1 0%N))) m)). +Axiom thm_NPRODUCT_CONST_NUMSEG_1 : forall c : N, forall n : N, (@nproduct N (dotdot (NUMERAL (BIT1 0%N)) n) (fun x : N => c)) = (N.pow c n). +Axiom thm_NPRODUCT_ONE : forall {_202507 : Type'}, forall s : _202507 -> Prop, (@nproduct _202507 s (fun n : _202507 => NUMERAL (BIT1 0%N))) = (NUMERAL (BIT1 0%N)). +Axiom thm_NPRODUCT_CLOSED : forall {A : Type'}, forall P : N -> Prop, forall f : A -> N, forall s : A -> Prop, ((P (NUMERAL (BIT1 0%N))) /\ ((forall x : N, forall y : N, ((P x) /\ (P y)) -> P (N.mul x y)) /\ (forall a : A, (@IN A a s) -> P (f a)))) -> P (@nproduct A s f). +Axiom thm_NPRODUCT_RELATED : forall {A : Type'}, forall R' : N -> N -> Prop, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, ((R' (NUMERAL (BIT1 0%N)) (NUMERAL (BIT1 0%N))) /\ ((forall m : N, forall n : N, forall m' : N, forall n' : N, ((R' m n) /\ (R' m' n')) -> R' (N.mul m m') (N.mul n n')) /\ ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> R' (f i) (g i))))) -> R' (@nproduct A s f) (@nproduct A s g). +Axiom thm_NPRODUCT_CLOSED_NONEMPTY : forall {A : Type'}, forall P : N -> Prop, forall f : A -> N, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ ((forall x : N, forall y : N, ((P x) /\ (P y)) -> P (N.mul x y)) /\ (forall a : A, (@IN A a s) -> P (f a))))) -> P (@nproduct A s f). +Axiom thm_NPRODUCT_RELATED_NONEMPTY : forall {A : Type'}, forall R' : N -> N -> Prop, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, ((forall m : N, forall n : N, forall m' : N, forall n' : N, ((R' m n) /\ (R' m' n')) -> R' (N.mul m m') (N.mul n n')) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall i : A, (@IN A i s) -> R' (f i) (g i))))) -> R' (@nproduct A s f) (@nproduct A s g). +Axiom thm_CONG_NPRODUCT : forall {A : Type'}, forall n : N, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> @eq2 N (f x) (g x) (num_mod n))) -> @eq2 N (@nproduct A s f) (@nproduct A s g) (num_mod n). +Axiom thm_NPRODUCT_CLAUSES_LEFT : forall f : N -> N, forall m : N, forall n : N, (N.le m n) -> (@nproduct N (dotdot m n) f) = (N.mul (f m) (@nproduct N (dotdot (N.add m (NUMERAL (BIT1 0%N))) n) f)). +Axiom thm_NPRODUCT_CLAUSES_RIGHT : forall f : N -> N, forall m : N, forall n : N, ((N.lt (NUMERAL 0%N) n) /\ (N.le m n)) -> (@nproduct N (dotdot m n) f) = (N.mul (@nproduct N (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f) (f n)). +Axiom thm_NPRODUCT_SUPERSET : forall {A : Type'}, forall f : A -> N, forall u : A -> Prop, forall v : A -> Prop, ((@SUBSET A u v) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (NUMERAL (BIT1 0%N)))) -> (@nproduct A v f) = (@nproduct A u f). +Axiom thm_NPRODUCT_UNIV : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (@SUBSET A (@support A N N.mul f (@UNIV A)) s) -> (@nproduct A s f) = (@nproduct A (@UNIV A) f). +Axiom thm_NPRODUCT_PAIR : forall f : N -> N, forall m : N, forall n : N, (@nproduct N (dotdot (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) f) = (@nproduct N (dotdot m n) (fun i : N => N.mul (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i) (NUMERAL (BIT1 0%N)))))). +Axiom thm_NPRODUCT_REFLECT : forall x : N -> N, forall m : N, forall n : N, (@nproduct N (dotdot m n) x) = (@COND N (N.lt n m) (NUMERAL (BIT1 0%N)) (@nproduct N (dotdot (NUMERAL 0%N) (N.sub n m)) (fun i : N => x (N.sub n i)))). +Axiom thm_NPRODUCT_DELETE : forall {_203140 : Type'}, forall f : _203140 -> N, forall s : _203140 -> Prop, forall a : _203140, ((@FINITE _203140 s) /\ (@IN _203140 a s)) -> (N.mul (f a) (@nproduct _203140 (@DELETE _203140 s a) f)) = (@nproduct _203140 s f). +Axiom thm_NPRODUCT_FACT : forall n : N, (@nproduct N (dotdot (NUMERAL (BIT1 0%N)) n) (fun m : N => m)) = (FACT n). +Axiom thm_NPRODUCT_DELTA : forall {_203200 : Type'} (b : N), forall s : _203200 -> Prop, forall a : _203200, (@nproduct _203200 s (fun x : _203200 => @COND N (x = a) b (NUMERAL (BIT1 0%N)))) = (@COND N (@IN _203200 a s) b (NUMERAL (BIT1 0%N))). +Axiom thm_EXP_NSUM : forall {A : Type'}, forall m : N, forall n : A -> N, forall s : A -> Prop, (@FINITE A s) -> (N.pow m (@nsum A s n)) = (@nproduct A s (fun i : A => N.pow m (n i))). +Axiom thm_HAS_SIZE_CART : forall {A N' : Type'}, forall P : N -> A -> Prop, forall m : N -> N, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @HAS_SIZE A (@GSPEC A (fun GEN_PVAR_590 : A => exists x : A, @SETSPEC A GEN_PVAR_590 (P i x) x)) (m i)) -> @HAS_SIZE (cart A N') (@GSPEC (cart A N') (fun GEN_PVAR_591 : cart A N' => exists v : cart A N', @SETSPEC (cart A N') GEN_PVAR_591 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> P i (@dollar A N' v i)) v)) (@nproduct N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) m). +Axiom thm_CARD_CART : forall {A N' : Type'}, forall P : N -> A -> Prop, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @FINITE A (@GSPEC A (fun GEN_PVAR_592 : A => exists x : A, @SETSPEC A GEN_PVAR_592 (P i x) x))) -> (@CARD (cart A N') (@GSPEC (cart A N') (fun GEN_PVAR_593 : cart A N' => exists v : cart A N', @SETSPEC (cart A N') GEN_PVAR_593 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> P i (@dollar A N' v i)) v))) = (@nproduct N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @CARD A (@GSPEC A (fun GEN_PVAR_594 : A => exists x : A, @SETSPEC A GEN_PVAR_594 (P i x) x)))). +Axiom thm_IPRODUCT_SUPPORT : forall {_204070 : Type'}, forall f : _204070 -> Z, forall s : _204070 -> Prop, (@iproduct _204070 (@support _204070 Z int_mul f s) f) = (@iproduct _204070 s f). +Axiom thm_IPRODUCT_UNION : forall {_204097 : Type'}, forall f : _204097 -> Z, forall s : _204097 -> Prop, forall t : _204097 -> Prop, ((@FINITE _204097 s) /\ ((@FINITE _204097 t) /\ (@DISJOINT _204097 s t))) -> (@iproduct _204097 (@UNION _204097 s t) f) = (int_mul (@iproduct _204097 s f) (@iproduct _204097 t f)). +Axiom thm_IPRODUCT_IMAGE : forall {_204154 _204178 : Type'}, forall f : _204178 -> _204154, forall g : _204154 -> Z, forall s : _204178 -> Prop, (forall x : _204178, forall y : _204178, ((@IN _204178 x s) /\ ((@IN _204178 y s) /\ ((f x) = (f y)))) -> x = y) -> (@iproduct _204154 (@IMAGE _204178 _204154 f s) g) = (@iproduct _204178 s (@o _204178 _204154 Z g f)). +Axiom thm_IPRODUCT_INJECTION : forall {_204251 : Type'}, forall f : _204251 -> Z, forall p : _204251 -> _204251, forall s : _204251 -> Prop, ((@FINITE _204251 s) /\ ((forall x : _204251, (@IN _204251 x s) -> @IN _204251 (p x) s) /\ (forall x : _204251, forall y : _204251, ((@IN _204251 x s) /\ ((@IN _204251 y s) /\ ((p x) = (p y)))) -> x = y))) -> (@iproduct _204251 s (@o _204251 _204251 Z f p)) = (@iproduct _204251 s f). +Axiom thm_IPRODUCT_ADD_SPLIT : forall f : N -> Z, forall m : N, forall n : N, forall p : N, (N.le m (N.add n (NUMERAL (BIT1 0%N)))) -> (@iproduct N (dotdot m (N.add n p)) f) = (int_mul (@iproduct N (dotdot m n) f) (@iproduct N (dotdot (N.add n (NUMERAL (BIT1 0%N))) (N.add n p)) f)). +Axiom thm_IPRODUCT_POS_LE : forall {_204347 : Type'}, forall f : _204347 -> Z, forall s : _204347 -> Prop, ((@FINITE _204347 s) /\ (forall x : _204347, (@IN _204347 x s) -> int_le (Z_of_N (NUMERAL 0%N)) (f x))) -> int_le (Z_of_N (NUMERAL 0%N)) (@iproduct _204347 s f). +Axiom thm_IPRODUCT_POS_LE_NUMSEG : forall f : N -> Z, forall m : N, forall n : N, (forall x : N, ((N.le m x) /\ (N.le x n)) -> int_le (Z_of_N (NUMERAL 0%N)) (f x)) -> int_le (Z_of_N (NUMERAL 0%N)) (@iproduct N (dotdot m n) f). +Axiom thm_IPRODUCT_POS_LT : forall {_204430 : Type'}, forall f : _204430 -> Z, forall s : _204430 -> Prop, ((@FINITE _204430 s) /\ (forall x : _204430, (@IN _204430 x s) -> int_lt (Z_of_N (NUMERAL 0%N)) (f x))) -> int_lt (Z_of_N (NUMERAL 0%N)) (@iproduct _204430 s f). +Axiom thm_IPRODUCT_POS_LT_NUMSEG : forall f : N -> Z, forall m : N, forall n : N, (forall x : N, ((N.le m x) /\ (N.le x n)) -> int_lt (Z_of_N (NUMERAL 0%N)) (f x)) -> int_lt (Z_of_N (NUMERAL 0%N)) (@iproduct N (dotdot m n) f). +Axiom thm_IPRODUCT_OFFSET : forall (n : N), forall f : N -> Z, forall m : N, forall p : N, (@iproduct N (dotdot (N.add m p) (N.add n p)) f) = (@iproduct N (dotdot m n) (fun i : N => f (N.add i p))). +Axiom thm_IPRODUCT_SING : forall {_204541 : Type'}, forall f : _204541 -> Z, forall x : _204541, (@iproduct _204541 (@INSERT _204541 x (@EMPTY _204541)) f) = (f x). +Axiom thm_IPRODUCT_SING_NUMSEG : forall f : N -> Z, forall n : N, (@iproduct N (dotdot n n) f) = (f n). +Axiom thm_IPRODUCT_CLAUSES_NUMSEG : forall (f : N -> Z), (forall m : N, (@iproduct N (dotdot m (NUMERAL 0%N)) f) = (@COND Z (m = (NUMERAL 0%N)) (f (NUMERAL 0%N)) (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (forall m : N, forall n : N, (@iproduct N (dotdot m (N.succ n)) f) = (@COND Z (N.le m (N.succ n)) (int_mul (@iproduct N (dotdot m n) f) (f (N.succ n))) (@iproduct N (dotdot m n) f))). +Axiom thm_IPRODUCT_EQ : forall {_204659 : Type'}, forall f : _204659 -> Z, forall g : _204659 -> Z, forall s : _204659 -> Prop, (forall x : _204659, (@IN _204659 x s) -> (f x) = (g x)) -> (@iproduct _204659 s f) = (@iproduct _204659 s g). +Axiom thm_IPRODUCT_EQ_NUMSEG : forall f : N -> Z, forall g : N -> Z, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> (f i) = (g i)) -> (@iproduct N (dotdot m n) f) = (@iproduct N (dotdot m n) g). +Axiom thm_IPRODUCT_EQ_0 : forall {_204755 : Type'}, forall f : _204755 -> Z, forall s : _204755 -> Prop, (@FINITE _204755 s) -> ((@iproduct _204755 s f) = (Z_of_N (NUMERAL 0%N))) = (exists x : _204755, (@IN _204755 x s) /\ ((f x) = (Z_of_N (NUMERAL 0%N)))). +Axiom thm_IPRODUCT_EQ_0_NUMSEG : forall f : N -> Z, forall m : N, forall n : N, ((@iproduct N (dotdot m n) f) = (Z_of_N (NUMERAL 0%N))) = (exists x : N, (N.le m x) /\ ((N.le x n) /\ ((f x) = (Z_of_N (NUMERAL 0%N))))). +Axiom thm_IPRODUCT_RESTRICT : forall {_204831 : Type'}, forall f : _204831 -> Z, forall s : _204831 -> Prop, (@FINITE _204831 s) -> (@iproduct _204831 s (fun i : _204831 => @COND Z (@IN _204831 i s) (f i) (Z_of_N (NUMERAL (BIT1 0%N))))) = (@iproduct _204831 s f). +Axiom thm_IPRODUCT_RESTRICT_SET : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall f : A -> Z, (@iproduct A (@GSPEC A (fun GEN_PVAR_597 : A => exists i : A, @SETSPEC A GEN_PVAR_597 ((@IN A i s) /\ (P i)) i)) f) = (@iproduct A s (fun i : A => @COND Z (P i) (f i) (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_IPRODUCT_LE : forall {_204923 : Type'} (g : _204923 -> Z), forall f : _204923 -> Z, forall s : _204923 -> Prop, ((@FINITE _204923 s) /\ (forall x : _204923, (@IN _204923 x s) -> (int_le (Z_of_N (NUMERAL 0%N)) (f x)) /\ (int_le (f x) (g x)))) -> int_le (@iproduct _204923 s f) (@iproduct _204923 s g). +Axiom thm_IPRODUCT_LE_NUMSEG : forall (g : N -> Z), forall f : N -> Z, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> (int_le (Z_of_N (NUMERAL 0%N)) (f i)) /\ (int_le (f i) (g i))) -> int_le (@iproduct N (dotdot m n) f) (@iproduct N (dotdot m n) g). +Axiom thm_IPRODUCT_EQ_1 : forall {A : Type'}, forall f : A -> Z, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (Z_of_N (NUMERAL (BIT1 0%N)))) -> (@iproduct A s f) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_IPRODUCT_EQ_1_NUMSEG : forall f : N -> Z, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> (f i) = (Z_of_N (NUMERAL (BIT1 0%N)))) -> (@iproduct N (dotdot m n) f) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_IPRODUCT_MUL_GEN : forall {_205148 : Type'}, forall f : _205148 -> Z, forall g : _205148 -> Z, forall s : _205148 -> Prop, ((@FINITE _205148 (@GSPEC _205148 (fun GEN_PVAR_598 : _205148 => exists x : _205148, @SETSPEC _205148 GEN_PVAR_598 ((@IN _205148 x s) /\ (~ ((f x) = (Z_of_N (NUMERAL (BIT1 0%N)))))) x))) /\ (@FINITE _205148 (@GSPEC _205148 (fun GEN_PVAR_599 : _205148 => exists x : _205148, @SETSPEC _205148 GEN_PVAR_599 ((@IN _205148 x s) /\ (~ ((g x) = (Z_of_N (NUMERAL (BIT1 0%N)))))) x)))) -> (@iproduct _205148 s (fun x : _205148 => int_mul (f x) (g x))) = (int_mul (@iproduct _205148 s f) (@iproduct _205148 s g)). +Axiom thm_IPRODUCT_MUL : forall {_205187 : Type'}, forall f : _205187 -> Z, forall g : _205187 -> Z, forall s : _205187 -> Prop, (@FINITE _205187 s) -> (@iproduct _205187 s (fun x : _205187 => int_mul (f x) (g x))) = (int_mul (@iproduct _205187 s f) (@iproduct _205187 s g)). +Axiom thm_IPRODUCT_MUL_NUMSEG : forall f : N -> Z, forall g : N -> Z, forall m : N, forall n : N, (@iproduct N (dotdot m n) (fun x : N => int_mul (f x) (g x))) = (int_mul (@iproduct N (dotdot m n) f) (@iproduct N (dotdot m n) g)). +Axiom thm_IPRODUCT_CONST : forall {_205262 : Type'}, forall c : Z, forall s : _205262 -> Prop, (@FINITE _205262 s) -> (@iproduct _205262 s (fun x : _205262 => c)) = (int_pow c (@CARD _205262 s)). +Axiom thm_IPRODUCT_CONST_NUMSEG : forall c : Z, forall m : N, forall n : N, (@iproduct N (dotdot m n) (fun x : N => c)) = (int_pow c (N.sub (N.add n (NUMERAL (BIT1 0%N))) m)). +Axiom thm_IPRODUCT_CONST_NUMSEG_1 : forall c : Z, forall n : N, (@iproduct N (dotdot (NUMERAL (BIT1 0%N)) n) (fun x : N => c)) = (int_pow c n). +Axiom thm_IPRODUCT_NEG : forall {A : Type'}, forall f : A -> Z, forall s : A -> Prop, (@FINITE A s) -> (@iproduct A s (fun i : A => int_neg (f i))) = (int_mul (int_pow (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (@CARD A s)) (@iproduct A s f)). +Axiom thm_IPRODUCT_NEG_NUMSEG : forall f : N -> Z, forall m : N, forall n : N, (@iproduct N (dotdot m n) (fun i : N => int_neg (f i))) = (int_mul (int_pow (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (N.sub (N.add n (NUMERAL (BIT1 0%N))) m)) (@iproduct N (dotdot m n) f)). +Axiom thm_IPRODUCT_NEG_NUMSEG_1 : forall f : N -> Z, forall n : N, (@iproduct N (dotdot (NUMERAL (BIT1 0%N)) n) (fun i : N => int_neg (f i))) = (int_mul (int_pow (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) (@iproduct N (dotdot (NUMERAL (BIT1 0%N)) n) f)). +Axiom thm_IPRODUCT_ONE : forall {_205457 : Type'}, forall s : _205457 -> Prop, (@iproduct _205457 s (fun n : _205457 => Z_of_N (NUMERAL (BIT1 0%N)))) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_IPRODUCT_LE_1 : forall {_205497 : Type'}, forall f : _205497 -> Z, forall s : _205497 -> Prop, ((@FINITE _205497 s) /\ (forall x : _205497, (@IN _205497 x s) -> (int_le (Z_of_N (NUMERAL 0%N)) (f x)) /\ (int_le (f x) (Z_of_N (NUMERAL (BIT1 0%N)))))) -> int_le (@iproduct _205497 s f) (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_IPRODUCT_ABS : forall {_205531 : Type'}, forall f : _205531 -> Z, forall s : _205531 -> Prop, (@FINITE _205531 s) -> (@iproduct _205531 s (fun x : _205531 => int_abs (f x))) = (int_abs (@iproduct _205531 s f)). +Axiom thm_IPRODUCT_CLOSED : forall {A : Type'}, forall P : Z -> Prop, forall f : A -> Z, forall s : A -> Prop, ((P (Z_of_N (NUMERAL (BIT1 0%N)))) /\ ((forall x : Z, forall y : Z, ((P x) /\ (P y)) -> P (int_mul x y)) /\ (forall a : A, (@IN A a s) -> P (f a)))) -> P (@iproduct A s f). +Axiom thm_IPRODUCT_RELATED : forall {A : Type'}, forall R' : Z -> Z -> Prop, forall f : A -> Z, forall g : A -> Z, forall s : A -> Prop, ((R' (Z_of_N (NUMERAL (BIT1 0%N))) (Z_of_N (NUMERAL (BIT1 0%N)))) /\ ((forall m : Z, forall n : Z, forall m' : Z, forall n' : Z, ((R' m n) /\ (R' m' n')) -> R' (int_mul m m') (int_mul n n')) /\ ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> R' (f i) (g i))))) -> R' (@iproduct A s f) (@iproduct A s g). +Axiom thm_IPRODUCT_CLOSED_NONEMPTY : forall {A : Type'}, forall P : Z -> Prop, forall f : A -> Z, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ ((forall x : Z, forall y : Z, ((P x) /\ (P y)) -> P (int_mul x y)) /\ (forall a : A, (@IN A a s) -> P (f a))))) -> P (@iproduct A s f). +Axiom thm_IPRODUCT_RELATED_NONEMPTY : forall {A : Type'}, forall R' : Z -> Z -> Prop, forall f : A -> Z, forall g : A -> Z, forall s : A -> Prop, ((forall m : Z, forall n : Z, forall m' : Z, forall n' : Z, ((R' m n) /\ (R' m' n')) -> R' (int_mul m m') (int_mul n n')) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall i : A, (@IN A i s) -> R' (f i) (g i))))) -> R' (@iproduct A s f) (@iproduct A s g). +Axiom thm_IPRODUCT_CLAUSES_LEFT : forall f : N -> Z, forall m : N, forall n : N, (N.le m n) -> (@iproduct N (dotdot m n) f) = (int_mul (f m) (@iproduct N (dotdot (N.add m (NUMERAL (BIT1 0%N))) n) f)). +Axiom thm_IPRODUCT_CLAUSES_RIGHT : forall f : N -> Z, forall m : N, forall n : N, ((N.lt (NUMERAL 0%N) n) /\ (N.le m n)) -> (@iproduct N (dotdot m n) f) = (int_mul (@iproduct N (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f) (f n)). +Axiom thm_INT_OF_NUM_NPRODUCT : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (@FINITE A s) -> (Z_of_N (@nproduct A s f)) = (@iproduct A s (fun x : A => Z_of_N (f x))). +Axiom thm_IPRODUCT_SUPERSET : forall {A : Type'}, forall f : A -> Z, forall u : A -> Prop, forall v : A -> Prop, ((@SUBSET A u v) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (Z_of_N (NUMERAL (BIT1 0%N))))) -> (@iproduct A v f) = (@iproduct A u f). +Axiom thm_IPRODUCT_UNIV : forall {A : Type'}, forall f : A -> Z, forall s : A -> Prop, (@SUBSET A (@support A Z int_mul f (@UNIV A)) s) -> (@iproduct A s f) = (@iproduct A (@UNIV A) f). +Axiom thm_IPRODUCT_PAIR : forall f : N -> Z, forall m : N, forall n : N, (@iproduct N (dotdot (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) f) = (@iproduct N (dotdot m n) (fun i : N => int_mul (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i) (NUMERAL (BIT1 0%N)))))). +Axiom thm_IPRODUCT_REFLECT : forall x : N -> Z, forall m : N, forall n : N, (@iproduct N (dotdot m n) x) = (@COND Z (N.lt n m) (Z_of_N (NUMERAL (BIT1 0%N))) (@iproduct N (dotdot (NUMERAL 0%N) (N.sub n m)) (fun i : N => x (N.sub n i)))). +Axiom thm_IPRODUCT_DELETE : forall {_206142 : Type'}, forall f : _206142 -> Z, forall s : _206142 -> Prop, forall a : _206142, ((@FINITE _206142 s) /\ (@IN _206142 a s)) -> (int_mul (f a) (@iproduct _206142 (@DELETE _206142 s a) f)) = (@iproduct _206142 s f). +Axiom thm_IPRODUCT_DELTA : forall {_206183 : Type'} (b : Z), forall s : _206183 -> Prop, forall a : _206183, (@iproduct _206183 s (fun x : _206183 => @COND Z (x = a) b (Z_of_N (NUMERAL (BIT1 0%N))))) = (@COND Z (@IN _206183 a s) b (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_INT_POW_NSUM : forall {A : Type'}, forall x : Z, forall n : A -> N, forall s : A -> Prop, (@FINITE A s) -> (int_pow x (@nsum A s n)) = (@iproduct A s (fun i : A => int_pow x (n i))). +Axiom thm_PRODUCT_SUPPORT : forall {_206403 : Type'}, forall f : _206403 -> R, forall s : _206403 -> Prop, (@product _206403 (@support _206403 R Rmult f s) f) = (@product _206403 s f). +Axiom thm_PRODUCT_UNION : forall {_206430 : Type'}, forall f : _206430 -> R, forall s : _206430 -> Prop, forall t : _206430 -> Prop, ((@FINITE _206430 s) /\ ((@FINITE _206430 t) /\ (@DISJOINT _206430 s t))) -> (@product _206430 (@UNION _206430 s t) f) = (Rmult (@product _206430 s f) (@product _206430 t f)). +Axiom thm_PRODUCT_IMAGE : forall {_206487 _206511 : Type'}, forall f : _206511 -> _206487, forall g : _206487 -> R, forall s : _206511 -> Prop, (forall x : _206511, forall y : _206511, ((@IN _206511 x s) /\ ((@IN _206511 y s) /\ ((f x) = (f y)))) -> x = y) -> (@product _206487 (@IMAGE _206511 _206487 f s) g) = (@product _206511 s (@o _206511 _206487 R g f)). +Axiom thm_PRODUCT_INJECTION : forall {_206584 : Type'}, forall f : _206584 -> R, forall p : _206584 -> _206584, forall s : _206584 -> Prop, ((@FINITE _206584 s) /\ ((forall x : _206584, (@IN _206584 x s) -> @IN _206584 (p x) s) /\ (forall x : _206584, forall y : _206584, ((@IN _206584 x s) /\ ((@IN _206584 y s) /\ ((p x) = (p y)))) -> x = y))) -> (@product _206584 s (@o _206584 _206584 R f p)) = (@product _206584 s f). +Axiom thm_PRODUCT_ADD_SPLIT : forall f : N -> R, forall m : N, forall n : N, forall p : N, (N.le m (N.add n (NUMERAL (BIT1 0%N)))) -> (@product N (dotdot m (N.add n p)) f) = (Rmult (@product N (dotdot m n) f) (@product N (dotdot (N.add n (NUMERAL (BIT1 0%N))) (N.add n p)) f)). +Axiom thm_PRODUCT_POS_LE : forall {_206680 : Type'}, forall f : _206680 -> R, forall s : _206680 -> Prop, ((@FINITE _206680 s) /\ (forall x : _206680, (@IN _206680 x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x))) -> Rle (R_of_N (NUMERAL 0%N)) (@product _206680 s f). +Axiom thm_PRODUCT_POS_LE_NUMSEG : forall f : N -> R, forall m : N, forall n : N, (forall x : N, ((N.le m x) /\ (N.le x n)) -> Rle (R_of_N (NUMERAL 0%N)) (f x)) -> Rle (R_of_N (NUMERAL 0%N)) (@product N (dotdot m n) f). +Axiom thm_PRODUCT_POS_LT : forall {_206763 : Type'}, forall f : _206763 -> R, forall s : _206763 -> Prop, ((@FINITE _206763 s) /\ (forall x : _206763, (@IN _206763 x s) -> Rlt (R_of_N (NUMERAL 0%N)) (f x))) -> Rlt (R_of_N (NUMERAL 0%N)) (@product _206763 s f). +Axiom thm_PRODUCT_POS_LT_NUMSEG : forall f : N -> R, forall m : N, forall n : N, (forall x : N, ((N.le m x) /\ (N.le x n)) -> Rlt (R_of_N (NUMERAL 0%N)) (f x)) -> Rlt (R_of_N (NUMERAL 0%N)) (@product N (dotdot m n) f). +Axiom thm_PRODUCT_OFFSET : forall (n : N), forall f : N -> R, forall m : N, forall p : N, (@product N (dotdot (N.add m p) (N.add n p)) f) = (@product N (dotdot m n) (fun i : N => f (N.add i p))). +Axiom thm_PRODUCT_SING : forall {_206874 : Type'}, forall f : _206874 -> R, forall x : _206874, (@product _206874 (@INSERT _206874 x (@EMPTY _206874)) f) = (f x). +Axiom thm_PRODUCT_SING_NUMSEG : forall f : N -> R, forall n : N, (@product N (dotdot n n) f) = (f n). +Axiom thm_PRODUCT_CLAUSES_NUMSEG : forall (f : N -> R), (forall m : N, (@product N (dotdot m (NUMERAL 0%N)) f) = (@COND R (m = (NUMERAL 0%N)) (f (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) /\ (forall m : N, forall n : N, (@product N (dotdot m (N.succ n)) f) = (@COND R (N.le m (N.succ n)) (Rmult (@product N (dotdot m n) f) (f (N.succ n))) (@product N (dotdot m n) f))). +Axiom thm_PRODUCT_EQ : forall {_206992 : Type'}, forall f : _206992 -> R, forall g : _206992 -> R, forall s : _206992 -> Prop, (forall x : _206992, (@IN _206992 x s) -> (f x) = (g x)) -> (@product _206992 s f) = (@product _206992 s g). +Axiom thm_PRODUCT_EQ_NUMSEG : forall f : N -> R, forall g : N -> R, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> (f i) = (g i)) -> (@product N (dotdot m n) f) = (@product N (dotdot m n) g). +Axiom thm_PRODUCT_EQ_0 : forall {_207088 : Type'}, forall f : _207088 -> R, forall s : _207088 -> Prop, (@FINITE _207088 s) -> ((@product _207088 s f) = (R_of_N (NUMERAL 0%N))) = (exists x : _207088, (@IN _207088 x s) /\ ((f x) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_PRODUCT_EQ_0_NUMSEG : forall f : N -> R, forall m : N, forall n : N, ((@product N (dotdot m n) f) = (R_of_N (NUMERAL 0%N))) = (exists x : N, (N.le m x) /\ ((N.le x n) /\ ((f x) = (R_of_N (NUMERAL 0%N))))). +Axiom thm_PRODUCT_RESTRICT : forall {_207164 : Type'}, forall f : _207164 -> R, forall s : _207164 -> Prop, (@FINITE _207164 s) -> (@product _207164 s (fun i : _207164 => @COND R (@IN _207164 i s) (f i) (R_of_N (NUMERAL (BIT1 0%N))))) = (@product _207164 s f). +Axiom thm_PRODUCT_RESTRICT_SET : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall f : A -> R, (@product A (@GSPEC A (fun GEN_PVAR_602 : A => exists i : A, @SETSPEC A GEN_PVAR_602 ((@IN A i s) /\ (P i)) i)) f) = (@product A s (fun i : A => @COND R (P i) (f i) (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_PRODUCT_LE : forall {_207256 : Type'} (g : _207256 -> R), forall f : _207256 -> R, forall s : _207256 -> Prop, ((@FINITE _207256 s) /\ (forall x : _207256, (@IN _207256 x s) -> (Rle (R_of_N (NUMERAL 0%N)) (f x)) /\ (Rle (f x) (g x)))) -> Rle (@product _207256 s f) (@product _207256 s g). +Axiom thm_PRODUCT_LE_NUMSEG : forall (g : N -> R), forall f : N -> R, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> (Rle (R_of_N (NUMERAL 0%N)) (f i)) /\ (Rle (f i) (g i))) -> Rle (@product N (dotdot m n) f) (@product N (dotdot m n) g). +Axiom thm_PRODUCT_EQ_1 : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (R_of_N (NUMERAL (BIT1 0%N)))) -> (@product A s f) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_PRODUCT_EQ_1_NUMSEG : forall f : N -> R, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> (f i) = (R_of_N (NUMERAL (BIT1 0%N)))) -> (@product N (dotdot m n) f) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_PRODUCT_MUL_GEN : forall {_207481 : Type'}, forall f : _207481 -> R, forall g : _207481 -> R, forall s : _207481 -> Prop, ((@FINITE _207481 (@GSPEC _207481 (fun GEN_PVAR_603 : _207481 => exists x : _207481, @SETSPEC _207481 GEN_PVAR_603 ((@IN _207481 x s) /\ (~ ((f x) = (R_of_N (NUMERAL (BIT1 0%N)))))) x))) /\ (@FINITE _207481 (@GSPEC _207481 (fun GEN_PVAR_604 : _207481 => exists x : _207481, @SETSPEC _207481 GEN_PVAR_604 ((@IN _207481 x s) /\ (~ ((g x) = (R_of_N (NUMERAL (BIT1 0%N)))))) x)))) -> (@product _207481 s (fun x : _207481 => Rmult (f x) (g x))) = (Rmult (@product _207481 s f) (@product _207481 s g)). +Axiom thm_PRODUCT_MUL : forall {_207520 : Type'}, forall f : _207520 -> R, forall g : _207520 -> R, forall s : _207520 -> Prop, (@FINITE _207520 s) -> (@product _207520 s (fun x : _207520 => Rmult (f x) (g x))) = (Rmult (@product _207520 s f) (@product _207520 s g)). +Axiom thm_PRODUCT_MUL_NUMSEG : forall f : N -> R, forall g : N -> R, forall m : N, forall n : N, (@product N (dotdot m n) (fun x : N => Rmult (f x) (g x))) = (Rmult (@product N (dotdot m n) f) (@product N (dotdot m n) g)). +Axiom thm_PRODUCT_CONST : forall {_207595 : Type'}, forall c : R, forall s : _207595 -> Prop, (@FINITE _207595 s) -> (@product _207595 s (fun x : _207595 => c)) = (real_pow c (@CARD _207595 s)). +Axiom thm_PRODUCT_CONST_NUMSEG : forall c : R, forall m : N, forall n : N, (@product N (dotdot m n) (fun x : N => c)) = (real_pow c (N.sub (N.add n (NUMERAL (BIT1 0%N))) m)). +Axiom thm_PRODUCT_CONST_NUMSEG_1 : forall c : R, forall n : N, (@product N (dotdot (NUMERAL (BIT1 0%N)) n) (fun x : N => c)) = (real_pow c n). +Axiom thm_PRODUCT_NEG : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@FINITE A s) -> (@product A s (fun i : A => Ropp (f i))) = (Rmult (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD A s)) (@product A s f)). +Axiom thm_PRODUCT_NEG_NUMSEG : forall f : N -> R, forall m : N, forall n : N, (@product N (dotdot m n) (fun i : N => Ropp (f i))) = (Rmult (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (N.sub (N.add n (NUMERAL (BIT1 0%N))) m)) (@product N (dotdot m n) f)). +Axiom thm_PRODUCT_NEG_NUMSEG_1 : forall f : N -> R, forall n : N, (@product N (dotdot (NUMERAL (BIT1 0%N)) n) (fun i : N => Ropp (f i))) = (Rmult (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) n) (@product N (dotdot (NUMERAL (BIT1 0%N)) n) f)). +Axiom thm_PRODUCT_INV : forall {_207800 : Type'}, forall f : _207800 -> R, forall s : _207800 -> Prop, (@FINITE _207800 s) -> (@product _207800 s (fun x : _207800 => Rinv (f x))) = (Rinv (@product _207800 s f)). +Axiom thm_PRODUCT_DIV : forall {_207833 : Type'}, forall f : _207833 -> R, forall g : _207833 -> R, forall s : _207833 -> Prop, (@FINITE _207833 s) -> (@product _207833 s (fun x : _207833 => Rdiv (f x) (g x))) = (Rdiv (@product _207833 s f) (@product _207833 s g)). +Axiom thm_PRODUCT_DIV_NUMSEG : forall f : N -> R, forall g : N -> R, forall m : N, forall n : N, (@product N (dotdot m n) (fun x : N => Rdiv (f x) (g x))) = (Rdiv (@product N (dotdot m n) f) (@product N (dotdot m n) g)). +Axiom thm_PRODUCT_ONE : forall {_207897 : Type'}, forall s : _207897 -> Prop, (@product _207897 s (fun n : _207897 => R_of_N (NUMERAL (BIT1 0%N)))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_PRODUCT_LE_1 : forall {_207937 : Type'}, forall f : _207937 -> R, forall s : _207937 -> Prop, ((@FINITE _207937 s) /\ (forall x : _207937, (@IN _207937 x s) -> (Rle (R_of_N (NUMERAL 0%N)) (f x)) /\ (Rle (f x) (R_of_N (NUMERAL (BIT1 0%N)))))) -> Rle (@product _207937 s f) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_PRODUCT_ABS : forall {_207971 : Type'}, forall f : _207971 -> R, forall s : _207971 -> Prop, (@FINITE _207971 s) -> (@product _207971 s (fun x : _207971 => Rabs (f x))) = (Rabs (@product _207971 s f)). +Axiom thm_PRODUCT_CLOSED : forall {A : Type'}, forall P : R -> Prop, forall f : A -> R, forall s : A -> Prop, ((P (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((forall x : R, forall y : R, ((P x) /\ (P y)) -> P (Rmult x y)) /\ (forall a : A, (@IN A a s) -> P (f a)))) -> P (@product A s f). +Axiom thm_PRODUCT_RELATED : forall {A : Type'}, forall R' : R -> R -> Prop, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((R' (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((forall m : R, forall n : R, forall m' : R, forall n' : R, ((R' m n) /\ (R' m' n')) -> R' (Rmult m m') (Rmult n n')) /\ ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> R' (f i) (g i))))) -> R' (@product A s f) (@product A s g). +Axiom thm_PRODUCT_CLOSED_NONEMPTY : forall {A : Type'}, forall P : R -> Prop, forall f : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ ((forall x : R, forall y : R, ((P x) /\ (P y)) -> P (Rmult x y)) /\ (forall a : A, (@IN A a s) -> P (f a))))) -> P (@product A s f). +Axiom thm_PRODUCT_RELATED_NONEMPTY : forall {A : Type'}, forall R' : R -> R -> Prop, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((forall m : R, forall n : R, forall m' : R, forall n' : R, ((R' m n) /\ (R' m' n')) -> R' (Rmult m m') (Rmult n n')) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall i : A, (@IN A i s) -> R' (f i) (g i))))) -> R' (@product A s f) (@product A s g). +Axiom thm_PRODUCT_CLAUSES_LEFT : forall f : N -> R, forall m : N, forall n : N, (N.le m n) -> (@product N (dotdot m n) f) = (Rmult (f m) (@product N (dotdot (N.add m (NUMERAL (BIT1 0%N))) n) f)). +Axiom thm_PRODUCT_CLAUSES_RIGHT : forall f : N -> R, forall m : N, forall n : N, ((N.lt (NUMERAL 0%N) n) /\ (N.le m n)) -> (@product N (dotdot m n) f) = (Rmult (@product N (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f) (f n)). +Axiom thm_REAL_OF_NUM_NPRODUCT : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (@FINITE A s) -> (R_of_N (@nproduct A s f)) = (@product A s (fun x : A => R_of_N (f x))). +Axiom thm_PRODUCT_SUPERSET : forall {A : Type'}, forall f : A -> R, forall u : A -> Prop, forall v : A -> Prop, ((@SUBSET A u v) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (R_of_N (NUMERAL (BIT1 0%N))))) -> (@product A v f) = (@product A u f). +Axiom thm_PRODUCT_UNIV : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@SUBSET A (@support A R Rmult f (@UNIV A)) s) -> (@product A s f) = (@product A (@UNIV A) f). +Axiom thm_PRODUCT_PAIR : forall f : N -> R, forall m : N, forall n : N, (@product N (dotdot (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) f) = (@product N (dotdot m n) (fun i : N => Rmult (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i) (NUMERAL (BIT1 0%N)))))). +Axiom thm_PRODUCT_REFLECT : forall x : N -> R, forall m : N, forall n : N, (@product N (dotdot m n) x) = (@COND R (N.lt n m) (R_of_N (NUMERAL (BIT1 0%N))) (@product N (dotdot (NUMERAL 0%N) (N.sub n m)) (fun i : N => x (N.sub n i)))). +Axiom thm_PRODUCT_DELETE : forall {_208582 : Type'}, forall f : _208582 -> R, forall s : _208582 -> Prop, forall a : _208582, ((@FINITE _208582 s) /\ (@IN _208582 a s)) -> (Rmult (f a) (@product _208582 (@DELETE _208582 s a) f)) = (@product _208582 s f). +Axiom thm_PRODUCT_DELTA : forall {_208623 : Type'} (b : R), forall s : _208623 -> Prop, forall a : _208623, (@product _208623 s (fun x : _208623 => @COND R (x = a) b (R_of_N (NUMERAL (BIT1 0%N))))) = (@COND R (@IN _208623 a s) b (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_REAL_POW_NSUM : forall {A : Type'}, forall x : R, forall n : A -> N, forall s : A -> Prop, (@FINITE A s) -> (real_pow x (@nsum A s n)) = (@product A s (fun i : A => real_pow x (n i))). +Axiom thm_POLYNOMIAL_FUNCTION_PRODUCT : forall {A : Type'}, forall s : A -> Prop, forall p : R -> A -> R, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> polynomial_function (fun x : R => p x i))) -> polynomial_function (fun x : R => @product A s (p x)). +Axiom thm_INTEGER_CASES : forall (x : R), (integer x) = ((exists n : N, x = (R_of_N n)) \/ (exists n : N, x = (Ropp (R_of_N n)))). +Axiom thm_REAL_ABS_INTEGER_LEMMA : forall x : R, ((integer x) /\ (~ (x = (R_of_N (NUMERAL 0%N))))) -> Rle (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x). +Axiom thm_INTEGER_CLOSED : (forall n : N, integer (R_of_N n)) /\ ((forall x : R, forall y : R, ((integer x) /\ (integer y)) -> integer (Rplus x y)) /\ ((forall x : R, forall y : R, ((integer x) /\ (integer y)) -> integer (Rminus x y)) /\ ((forall x : R, forall y : R, ((integer x) /\ (integer y)) -> integer (Rmult x y)) /\ ((forall x : R, forall r : N, (integer x) -> integer (real_pow x r)) /\ ((forall x : R, (integer x) -> integer (Ropp x)) /\ ((forall x : R, (integer x) -> integer (Rabs x)) /\ ((forall x : R, forall y : R, ((integer x) /\ (integer y)) -> integer (Rmax x y)) /\ (forall x : R, forall y : R, ((integer x) /\ (integer y)) -> integer (Rmin x y))))))))). +Axiom thm_INTEGER_ADD : forall x : R, forall y : R, ((integer x) /\ (integer y)) -> integer (Rplus x y). +Axiom thm_INTEGER_SUB : forall x : R, forall y : R, ((integer x) /\ (integer y)) -> integer (Rminus x y). +Axiom thm_INTEGER_MUL : forall x : R, forall y : R, ((integer x) /\ (integer y)) -> integer (Rmult x y). +Axiom thm_INTEGER_POW : forall x : R, forall n : N, (integer x) -> integer (real_pow x n). +Axiom thm_REAL_LE_INTEGERS : forall x : R, forall y : R, ((integer x) /\ (integer y)) -> (Rle x y) = ((x = y) \/ (Rle (Rplus x (R_of_N (NUMERAL (BIT1 0%N)))) y)). +Axiom thm_REAL_LE_CASES_INTEGERS : forall x : R, forall y : R, ((integer x) /\ (integer y)) -> (Rle x y) \/ (Rle (Rplus y (R_of_N (NUMERAL (BIT1 0%N)))) x). +Axiom thm_REAL_LE_REVERSE_INTEGERS : forall x : R, forall y : R, ((integer x) /\ ((integer y) /\ (~ (Rle (Rplus y (R_of_N (NUMERAL (BIT1 0%N)))) x)))) -> Rle x y. +Axiom thm_REAL_LT_INTEGERS : forall x : R, forall y : R, ((integer x) /\ (integer y)) -> (Rlt x y) = (Rle (Rplus x (R_of_N (NUMERAL (BIT1 0%N)))) y). +Axiom thm_REAL_EQ_INTEGERS : forall x : R, forall y : R, ((integer x) /\ (integer y)) -> (x = y) = (Rlt (Rabs (Rminus x y)) (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_REAL_EQ_INTEGERS_IMP : forall x : R, forall y : R, ((integer x) /\ ((integer y) /\ (Rlt (Rabs (Rminus x y)) (R_of_N (NUMERAL (BIT1 0%N)))))) -> x = y. +Axiom thm_INTEGER_NEG : forall x : R, (integer (Ropp x)) = (integer x). +Axiom thm_INTEGER_ABS : forall x : R, (integer (Rabs x)) = (integer x). +Axiom thm_INTEGER_POS : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> (integer x) = (exists n : N, x = (R_of_N n)). +Axiom thm_NONNEGATIVE_INTEGER : forall x : R, ((integer x) /\ (Rle (R_of_N (NUMERAL 0%N)) x)) = (exists n : N, x = (R_of_N n)). +Axiom thm_NONPOSITIVE_INTEGER : forall x : R, ((integer x) /\ (Rle x (R_of_N (NUMERAL 0%N)))) = (exists n : N, x = (Ropp (R_of_N n))). +Axiom thm_NONPOSITIVE_INTEGER_ALT : forall x : R, ((integer x) /\ (Rle x (R_of_N (NUMERAL 0%N)))) = (exists n : N, (Rplus x (R_of_N n)) = (R_of_N (NUMERAL 0%N))). +Axiom thm_INTEGER_ADD_EQ : (forall x : R, forall y : R, (integer x) -> (integer (Rplus x y)) = (integer y)) /\ (forall x : R, forall y : R, (integer y) -> (integer (Rplus x y)) = (integer x)). +Axiom thm_INTEGER_SUB_EQ : (forall x : R, forall y : R, (integer x) -> (integer (Rminus x y)) = (integer y)) /\ (forall x : R, forall y : R, (integer y) -> (integer (Rminus x y)) = (integer x)). +Axiom thm_FORALL_INTEGER : forall P : R -> Prop, ((forall n : N, P (R_of_N n)) /\ (forall x : R, (P x) -> P (Ropp x))) -> forall x : R, (integer x) -> P x. +Axiom thm_INTEGER_SUM : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (forall x : A, (@IN A x s) -> integer (f x)) -> integer (@sum A s f). +Axiom thm_INTEGER_ABS_MUL_EQ_1 : forall x : R, forall y : R, ((integer x) /\ (integer y)) -> ((Rabs (Rmult x y)) = (R_of_N (NUMERAL (BIT1 0%N)))) = (((Rabs x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((Rabs y) = (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_INTEGER_DIV : forall m : N, forall n : N, (integer (Rdiv (R_of_N m) (R_of_N n))) = ((n = (NUMERAL 0%N)) \/ (num_divides n m)). +Axiom thm_rational : forall x : R, (rational x) = (exists m : R, exists n : R, (integer m) /\ ((integer n) /\ ((~ (n = (R_of_N (NUMERAL 0%N)))) /\ (x = (Rdiv m n))))). +Axiom thm_RATIONAL_INTEGER : forall x : R, (integer x) -> rational x. +Axiom thm_RATIONAL_NUM : forall n : N, rational (R_of_N n). +Axiom thm_RATIONAL_NEG : forall x : R, (rational x) -> rational (Ropp x). +Axiom thm_RATIONAL_ABS : forall x : R, (rational x) -> rational (Rabs x). +Axiom thm_RATIONAL_INV : forall x : R, (rational x) -> rational (Rinv x). +Axiom thm_RATIONAL_ADD : forall x : R, forall y : R, ((rational x) /\ (rational y)) -> rational (Rplus x y). +Axiom thm_RATIONAL_SUB : forall x : R, forall y : R, ((rational x) /\ (rational y)) -> rational (Rminus x y). +Axiom thm_RATIONAL_MUL : forall x : R, forall y : R, ((rational x) /\ (rational y)) -> rational (Rmult x y). +Axiom thm_RATIONAL_DIV : forall x : R, forall y : R, ((rational x) /\ (rational y)) -> rational (Rdiv x y). +Axiom thm_RATIONAL_POW : forall x : R, forall n : N, (rational x) -> rational (real_pow x n). +Axiom thm_RATIONAL_CLOSED : (forall n : N, rational (R_of_N n)) /\ ((forall x : R, (integer x) -> rational x) /\ ((forall x : R, forall y : R, ((rational x) /\ (rational y)) -> rational (Rplus x y)) /\ ((forall x : R, forall y : R, ((rational x) /\ (rational y)) -> rational (Rminus x y)) /\ ((forall x : R, forall y : R, ((rational x) /\ (rational y)) -> rational (Rmult x y)) /\ ((forall x : R, forall y : R, ((rational x) /\ (rational y)) -> rational (Rdiv x y)) /\ ((forall x : R, forall r : N, (rational x) -> rational (real_pow x r)) /\ ((forall x : R, (rational x) -> rational (Ropp x)) /\ ((forall x : R, (rational x) -> rational (Rinv x)) /\ (forall x : R, (rational x) -> rational (Rabs x)))))))))). +Axiom thm_RATIONAL_NEG_EQ : forall x : R, (rational (Ropp x)) = (rational x). +Axiom thm_RATIONAL_ABS_EQ : forall x : R, (rational (Rabs x)) = (rational x). +Axiom thm_RATIONAL_INV_EQ : forall x : R, (rational (Rinv x)) = (rational x). +Axiom thm_RATIONAL_SUM : forall {_210257 : Type'}, forall s : _210257 -> Prop, forall x : _210257 -> R, (forall i : _210257, (@IN _210257 i s) -> rational (x i)) -> rational (@sum _210257 s x). +Axiom thm_RATIONAL_ALT : forall x : R, (rational x) = (exists p : N, exists q : N, (~ (q = (NUMERAL 0%N))) /\ ((Rabs x) = (Rdiv (R_of_N p) (R_of_N q)))). +Axiom thm_REAL_TRUNCATE_POS : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> exists n : N, exists r : R, (Rle (R_of_N (NUMERAL 0%N)) r) /\ ((Rlt r (R_of_N (NUMERAL (BIT1 0%N)))) /\ (x = (Rplus (R_of_N n) r))). +Axiom thm_REAL_TRUNCATE : forall x : R, exists n : R, exists r : R, (integer n) /\ ((Rle (R_of_N (NUMERAL 0%N)) r) /\ ((Rlt r (R_of_N (NUMERAL (BIT1 0%N)))) /\ (x = (Rplus n r)))). +Axiom thm_FLOOR_UNIQUE : forall x : R, forall a : R, ((integer a) /\ ((Rle a x) /\ (Rlt x (Rplus a (R_of_N (NUMERAL (BIT1 0%N))))))) = ((floor x) = a). +Axiom thm_FLOOR_EQ_0 : forall x : R, ((floor x) = (R_of_N (NUMERAL 0%N))) = ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_FLOOR : forall x : R, (integer (floor x)) /\ ((Rle (floor x) x) /\ (Rlt x (Rplus (floor x) (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_FLOOR_DOUBLE : forall u : R, (Rle (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (floor u)) (floor (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) u))) /\ (Rle (floor (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) u)) (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (floor u)) (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_FRAC_FLOOR : forall x : R, (frac x) = (Rminus x (floor x)). +Axiom thm_FLOOR_NUM : forall n : N, (floor (R_of_N n)) = (R_of_N n). +Axiom thm_REAL_LE_FLOOR : forall x : R, forall n : R, (integer n) -> (Rle n (floor x)) = (Rle n x). +Axiom thm_REAL_FLOOR_LE : forall x : R, forall n : R, (integer n) -> (Rle (floor x) n) = (Rlt (Rminus x (R_of_N (NUMERAL (BIT1 0%N)))) n). +Axiom thm_REAL_FLOOR_LT : forall x : R, forall n : R, (integer n) -> (Rlt (floor x) n) = (Rlt x n). +Axiom thm_REAL_LT_FLOOR : forall x : R, forall n : R, (integer n) -> (Rlt n (floor x)) = (Rle n (Rminus x (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_FLOOR_POS : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> exists n : N, (floor x) = (R_of_N n). +Axiom thm_FLOOR_DIV_DIV : forall m : N, forall n : N, (~ (m = (NUMERAL 0%N))) -> (floor (Rdiv (R_of_N n) (R_of_N m))) = (R_of_N (N.div n m)). +Axiom thm_FLOOR_MONO : forall x : R, forall y : R, (Rle x y) -> Rle (floor x) (floor y). +Axiom thm_REAL_FLOOR_EQ : forall x : R, ((floor x) = x) = (integer x). +Axiom thm_REAL_FLOOR_LT_REFL : forall x : R, (Rlt (floor x) x) = (~ (integer x)). +Axiom thm_REAL_FRAC_EQ_0 : forall x : R, ((frac x) = (R_of_N (NUMERAL 0%N))) = (integer x). +Axiom thm_REAL_FRAC_POS_LT : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) (frac x)) = (~ (integer x)). +Axiom thm_FRAC_NUM : forall n : N, (frac (R_of_N n)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_FLOOR_REFL : forall x : R, (integer x) -> (floor x) = x. +Axiom thm_REAL_FRAC_ZERO : forall x : R, (integer x) -> (frac x) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_FLOOR_ADD : forall x : R, forall y : R, (floor (Rplus x y)) = (@COND R (Rlt (Rplus (frac x) (frac y)) (R_of_N (NUMERAL (BIT1 0%N)))) (Rplus (floor x) (floor y)) (Rplus (Rplus (floor x) (floor y)) (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_REAL_FLOOR_TRIANGLE : forall x : R, forall y : R, (Rle (Rplus (floor x) (floor y)) (floor (Rplus x y))) /\ (Rle (floor (Rplus x y)) (Rplus (Rplus (floor x) (floor y)) (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_REAL_FLOOR_NEG : forall x : R, (floor (Ropp x)) = (@COND R (integer x) (Ropp x) (Ropp (Rplus (floor x) (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_REAL_FRAC_ADD : forall x : R, forall y : R, (frac (Rplus x y)) = (@COND R (Rlt (Rplus (frac x) (frac y)) (R_of_N (NUMERAL (BIT1 0%N)))) (Rplus (frac x) (frac y)) (Rminus (Rplus (frac x) (frac y)) (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_FLOOR_POS_LE : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) (floor x)) = (Rle (R_of_N (NUMERAL 0%N)) x). +Axiom thm_FRAC_UNIQUE : forall x : R, forall a : R, ((integer (Rminus x a)) /\ ((Rle (R_of_N (NUMERAL 0%N)) a) /\ (Rlt a (R_of_N (NUMERAL (BIT1 0%N)))))) = ((frac x) = a). +Axiom thm_REAL_FRAC_EQ : forall x : R, ((frac x) = x) = ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_INTEGER_ROUND : forall x : R, exists n : R, (integer n) /\ (Rle (Rabs (Rminus x n)) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_FRAC_DIV_MOD : forall m : N, forall n : N, (~ (n = (NUMERAL 0%N))) -> (frac (Rdiv (R_of_N m) (R_of_N n))) = (Rdiv (R_of_N (N.modulo m n)) (R_of_N n)). +Axiom thm_FRAC_NEG : forall x : R, (frac (Ropp x)) = (@COND R (integer x) (R_of_N (NUMERAL 0%N)) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (frac x))). +Axiom thm_REAL_FLOOR_FLOOR_DIV : forall x : R, forall n : N, (floor (Rdiv (floor x) (R_of_N n))) = (floor (Rdiv x (R_of_N n))). +Axiom thm_INTEGER_EXISTS_BETWEEN_ALT : forall x : R, forall y : R, (Rle (Rplus x (R_of_N (NUMERAL (BIT1 0%N)))) y) -> exists n : R, (integer n) /\ ((Rlt x n) /\ (Rle n y)). +Axiom thm_INTEGER_EXISTS_BETWEEN_LT : forall x : R, forall y : R, (Rlt (Rplus x (R_of_N (NUMERAL (BIT1 0%N)))) y) -> exists n : R, (integer n) /\ ((Rlt x n) /\ (Rlt n y)). +Axiom thm_INTEGER_EXISTS_BETWEEN : forall x : R, forall y : R, (Rle (Rplus x (R_of_N (NUMERAL (BIT1 0%N)))) y) -> exists n : R, (integer n) /\ ((Rle x n) /\ (Rlt n y)). +Axiom thm_INTEGER_EXISTS_BETWEEN_ABS : forall x : R, forall y : R, (Rle (R_of_N (NUMERAL (BIT1 0%N))) (Rabs (Rminus x y))) -> exists n : R, (integer n) /\ (((Rle x n) /\ (Rlt n y)) \/ ((Rle y n) /\ (Rlt n x))). +Axiom thm_INTEGER_EXISTS_BETWEEN_ABS_LT : forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL (BIT1 0%N))) (Rabs (Rminus x y))) -> exists n : R, (integer n) /\ (((Rlt x n) /\ (Rlt n y)) \/ ((Rlt y n) /\ (Rlt n x))). +Axiom thm_REAL_OF_INT_OF_REAL : forall x : R, (integer x) -> (IZR (int_of_real x)) = x. +Axiom thm_IMAGE_REAL_OF_INT_UNIV : (@IMAGE Z R IZR (@UNIV Z)) = integer. +Axiom thm_HAS_SIZE_INTSEG_NUM : forall m : N, forall n : N, @HAS_SIZE R (@GSPEC R (fun GEN_PVAR_608 : R => exists x : R, @SETSPEC R GEN_PVAR_608 ((integer x) /\ ((Rle (R_of_N m) x) /\ (Rle x (R_of_N n)))) x)) (N.sub (N.add n (NUMERAL (BIT1 0%N))) m). +Axiom thm_FINITE_INTSEG : forall a : R, forall b : R, @FINITE R (@GSPEC R (fun GEN_PVAR_610 : R => exists x : R, @SETSPEC R GEN_PVAR_610 ((integer x) /\ ((Rle a x) /\ (Rle x b))) x)). +Axiom thm_HAS_SIZE_INTSEG_INT : forall a : R, forall b : R, ((integer a) /\ (integer b)) -> @HAS_SIZE R (@GSPEC R (fun GEN_PVAR_613 : R => exists x : R, @SETSPEC R GEN_PVAR_613 ((integer x) /\ ((Rle a x) /\ (Rle x b))) x)) (@COND N (Rlt b a) (NUMERAL 0%N) (num_of_int (int_of_real (Rplus (Rminus b a) (R_of_N (NUMERAL (BIT1 0%N))))))). +Axiom thm_CARD_INTSEG_INT : forall a : R, forall b : R, ((integer a) /\ (integer b)) -> (@CARD R (@GSPEC R (fun GEN_PVAR_614 : R => exists x : R, @SETSPEC R GEN_PVAR_614 ((integer x) /\ ((Rle a x) /\ (Rle x b))) x))) = (@COND N (Rlt b a) (NUMERAL 0%N) (num_of_int (int_of_real (Rplus (Rminus b a) (R_of_N (NUMERAL (BIT1 0%N))))))). +Axiom thm_REAL_CARD_INTSEG_INT : forall a : R, forall b : R, ((integer a) /\ (integer b)) -> (R_of_N (@CARD R (@GSPEC R (fun GEN_PVAR_615 : R => exists x : R, @SETSPEC R GEN_PVAR_615 ((integer x) /\ ((Rle a x) /\ (Rle x b))) x)))) = (@COND R (Rlt b a) (R_of_N (NUMERAL 0%N)) (Rplus (Rminus b a) (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_INFINITE_INTEGER : @INFINITE R integer. +Axiom thm_INFINITE_RATIONAL : @INFINITE R rational. +Axiom thm_PADIC_RATIONAL_APPROXIMATION_STRADDLE : forall p : R, forall x : R, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (Rlt (R_of_N (NUMERAL (BIT1 0%N))) p)) -> exists n : N, exists q : R, exists r : R, (integer q) /\ ((integer r) /\ ((Rlt (Rdiv q (real_pow p n)) x) /\ ((Rlt x (Rdiv r (real_pow p n))) /\ (Rlt (Rabs (Rminus (Rdiv q (real_pow p n)) (Rdiv r (real_pow p n)))) e)))). +Axiom thm_PADIC_RATIONAL_APPROXIMATION_STRADDLE_POS_LE : forall p : R, forall x : R, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((Rlt (R_of_N (NUMERAL (BIT1 0%N))) p) /\ (Rle (R_of_N (NUMERAL 0%N)) x))) -> exists n : N, exists q : N, exists r : N, (Rle (Rdiv (R_of_N q) (real_pow p n)) x) /\ ((Rlt x (Rdiv (R_of_N r) (real_pow p n))) /\ (Rlt (Rabs (Rminus (Rdiv (R_of_N q) (real_pow p n)) (Rdiv (R_of_N r) (real_pow p n)))) e)). +Axiom thm_PADIC_RATIONAL_APPROXIMATION_STRADDLE_POS : forall p : R, forall x : R, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((Rlt (R_of_N (NUMERAL (BIT1 0%N))) p) /\ (Rlt (R_of_N (NUMERAL 0%N)) x))) -> exists n : N, exists q : N, exists r : N, (Rlt (Rdiv (R_of_N q) (real_pow p n)) x) /\ ((Rlt x (Rdiv (R_of_N r) (real_pow p n))) /\ (Rlt (Rabs (Rminus (Rdiv (R_of_N q) (real_pow p n)) (Rdiv (R_of_N r) (real_pow p n)))) e)). +Axiom thm_RATIONAL_APPROXIMATION : forall x : R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists r : R, (rational r) /\ (Rlt (Rabs (Rminus r x)) e). +Axiom thm_RATIONAL_BETWEEN : forall a : R, forall b : R, (Rlt a b) -> exists q : R, (rational q) /\ ((Rlt a q) /\ (Rlt q b)). +Axiom thm_RATIONAL_BETWEEN_EQ : forall a : R, forall b : R, (exists q : R, (rational q) /\ ((Rlt a q) /\ (Rlt q b))) = (Rlt a b). +Axiom thm_RATIONAL_APPROXIMATION_STRADDLE : forall x : R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists a : R, exists b : R, (rational a) /\ ((rational b) /\ ((Rlt a x) /\ ((Rlt x b) /\ (Rlt (Rabs (Rminus b a)) e)))). +Axiom thm_RATIONAL_APPROXIMATION_ABOVE : forall x : R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists q : R, (rational q) /\ ((Rlt x q) /\ (Rlt q (Rplus x e))). +Axiom thm_RATIONAL_APPROXIMATION_BELOW : forall x : R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists q : R, (rational q) /\ ((Rlt (Rminus x e) q) /\ (Rlt q x)). +Axiom thm_INFINITE_RATIONAL_IN_RANGE : forall a : R, forall b : R, (Rlt a b) -> @INFINITE R (@GSPEC R (fun GEN_PVAR_616 : R => exists q : R, @SETSPEC R GEN_PVAR_616 ((rational q) /\ ((Rlt a q) /\ (Rlt q b))) q)). +Axiom thm_REAL_CONGRUENCE : forall a : N, forall b : N, forall n : N, (@eq2 N a b (num_mod n)) = (@COND Prop (n = (NUMERAL 0%N)) ((R_of_N a) = (R_of_N b)) (integer (Rdiv (Rminus (R_of_N a) (R_of_N b)) (R_of_N n)))). +Axiom thm_REAL_INT_CONGRUENCE : forall a : Z, forall b : Z, forall n : Z, (@eq2 Z a b (int_mod n)) = (@COND Prop (n = (Z_of_N (NUMERAL 0%N))) ((IZR a) = (IZR b)) (integer (Rdiv (Rminus (IZR a) (IZR b)) (IZR n)))). +Axiom thm_FORALL_DIFF : forall {A : Type'} (P : (A -> Prop) -> Prop), (forall s : A -> Prop, P (@DIFF A (@UNIV A) s)) = (forall s : A -> Prop, P s). +Axiom thm_EXISTS_DIFF : forall {A : Type'} (P : (A -> Prop) -> Prop), (exists s : A -> Prop, P (@DIFF A (@UNIV A) s)) = (exists s : A -> Prop, P s). +Axiom thm_FORALL_DIFF_ALT : forall {A : Type'} (P : (A -> Prop) -> Prop), forall u : A -> Prop, (forall s : A -> Prop, (@SUBSET A s u) -> P (@DIFF A u s)) = (forall s : A -> Prop, (@SUBSET A s u) -> P s). +Axiom thm_FORALL_DIFF_GEN : forall {A : Type'} (P : (A -> Prop) -> Prop), forall u : A -> Prop, (forall s : A -> Prop, P (@DIFF A u s)) = (forall s : A -> Prop, (@SUBSET A s u) -> P s). +Axiom thm_GE_REFL : forall n : N, N.ge n n. +Axiom thm_FORALL_SUC : forall (P : N -> Prop), (forall n : N, (~ (n = (NUMERAL 0%N))) -> P n) = (forall n : N, P (N.succ n)). +Axiom thm_SEQ_MONO_LEMMA : forall (m : N), forall d : N -> R, forall e : N -> R, ((forall n : N, (N.ge n m) -> Rlt (d n) (e n)) /\ (forall n : N, (N.ge n m) -> Rle (e n) (e m))) -> forall n : N, (N.ge n m) -> Rlt (d n) (e m). +Axiom thm_REAL_HALF : (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) = (Rlt (R_of_N (NUMERAL 0%N)) e)) /\ ((forall e : R, (Rplus (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) = e) /\ (forall e : R, (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) = e)). +Axiom thm_ABS_SQUARE_LT_1 : forall x : R, (Rlt (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (R_of_N (NUMERAL (BIT1 0%N)))) = (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_ABS_SQUARE_LE_1 : forall x : R, (Rle (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (R_of_N (NUMERAL (BIT1 0%N)))) = (Rle (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_ABS_SQUARE_EQ_1 : forall x : R, ((real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) = (R_of_N (NUMERAL (BIT1 0%N)))) = ((Rabs x) = (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_UPPER_BOUND_FINITE_SET : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (@FINITE A s) -> exists a : N, forall x : A, (@IN A x s) -> N.le (f x) a. +Axiom thm_UPPER_BOUND_FINITE_SET_REAL : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@FINITE A s) -> exists a : R, forall x : A, (@IN A x s) -> Rle (f x) a. +Axiom thm_LOWER_BOUND_FINITE_SET : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (@FINITE A s) -> exists a : N, forall x : A, (@IN A x s) -> N.le a (f x). +Axiom thm_LOWER_BOUND_FINITE_SET_REAL : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@FINITE A s) -> exists a : R, forall x : A, (@IN A x s) -> Rle a (f x). +Axiom thm_REAL_CONVEX_SUM_BOUND_LE : forall {A : Type'}, forall s : A -> Prop, forall d : R, forall a : A -> R, forall b : R, forall x : A -> R, ((forall i : A, (@IN A i s) -> Rle (R_of_N (NUMERAL 0%N)) (x i)) /\ (((@sum A s x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : A, (@IN A i s) -> Rle (Rabs (Rminus (a i) b)) d))) -> Rle (Rabs (Rminus (@sum A s (fun i : A => Rmult (a i) (x i))) b)) d. +Axiom thm_REAL_CONVEX_SUM_BOUND_LT : forall {A : Type'}, forall s : A -> Prop, forall d : R, forall a : A -> R, forall b : R, forall x : A -> R, ((forall i : A, (@IN A i s) -> Rle (R_of_N (NUMERAL 0%N)) (x i)) /\ (((@sum A s x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : A, (@IN A i s) -> Rlt (Rabs (Rminus (a i) b)) d))) -> Rlt (Rabs (Rminus (@sum A s (fun i : A => Rmult (a i) (x i))) b)) d. +Axiom thm_APPROACHABLE_LT_LE : forall {_215070 : Type'}, forall P : _215070 -> Prop, forall f : _215070 -> R, (exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : _215070, (Rlt (f x) d) -> P x)) = (exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : _215070, (Rle (f x) d) -> P x)). +Axiom thm_REAL_LE_BETWEEN : forall a : R, forall b : R, (Rle a b) = (exists x : R, (Rle a x) /\ (Rle x b)). +Axiom thm_REAL_LET_BETWEEN : forall a : R, forall b : R, (Rlt a b) = (exists x : R, (Rle a x) /\ (Rlt x b)). +Axiom thm_REAL_LTE_BETWEEN : forall a : R, forall b : R, (Rlt a b) = (exists x : R, (Rlt a x) /\ (Rle x b)). +Axiom thm_REAL_LT_BETWEEN : forall a : R, forall b : R, (Rlt a b) = (exists x : R, (Rlt a x) /\ (Rlt x b)). +Axiom thm_REAL_LT_BETWEEN_GEN : forall s : R -> Prop, forall t : R -> Prop, ((@FINITE R s) /\ (@FINITE R t)) -> (exists x : R, (forall a : R, (@IN R a s) -> Rlt a x) /\ (forall b : R, (@IN R b t) -> Rlt x b)) = (forall a : R, forall b : R, ((@IN R a s) /\ (@IN R b t)) -> Rlt a b). +Axiom thm_TRIANGLE_LEMMA : forall x : R, forall y : R, forall z : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ ((Rle (R_of_N (NUMERAL 0%N)) z) /\ (Rle (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (Rplus (real_pow y (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow z (NUMERAL (BIT0 (BIT1 0%N))))))))) -> Rle x (Rplus y z). +Axiom thm_LAMBDA_SKOLEM : forall {A N' : Type'} (P : N -> A -> Prop), (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> exists x : A, P i x) = (exists x : cart A N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> P i (@dollar A N' x i)). +Axiom thm_EPSILON_DELTA_MINIMAL : forall {A : Type'}, forall P : R -> A -> Prop, forall Q : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_629 : A => exists x : A, @SETSPEC A GEN_PVAR_629 (Q x) x))) /\ ((forall d : R, forall e : R, forall x : A, ((Q x) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (Rlt e d))) -> (P d x) -> P e x) /\ (forall x : A, (Q x) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (P d x)))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : A, (Q x) -> P d x). +Axiom thm_HAS_SIZE_1_EXISTS : forall {_215709 : Type'}, forall s : _215709 -> Prop, (@HAS_SIZE _215709 s (NUMERAL (BIT1 0%N))) = (@ex1 _215709 (fun x : _215709 => @IN _215709 x s)). +Axiom thm_LINEAR_EQUATIONS_1_EQ : forall a : R, forall b : R, (exists x : R, (Rmult a x) = b) = ((a = (R_of_N (NUMERAL 0%N))) -> b = (R_of_N (NUMERAL 0%N))). +Axiom thm_LINEAR_EQUATIONS_2_EQ : forall a : R, forall b : R, forall c : R, forall d : R, forall u : R, forall v : R, (exists x : R, exists y : R, ((Rplus (Rmult a x) (Rmult b y)) = u) /\ ((Rplus (Rmult c x) (Rmult d y)) = v)) = ((((Rmult a d) = (Rmult b c)) -> ((Rmult d u) = (Rmult b v)) /\ ((Rmult c u) = (Rmult a v))) /\ (((a = (R_of_N (NUMERAL 0%N))) /\ ((b = (R_of_N (NUMERAL 0%N))) /\ ((c = (R_of_N (NUMERAL 0%N))) /\ (d = (R_of_N (NUMERAL 0%N)))))) -> (u = (R_of_N (NUMERAL 0%N))) /\ (v = (R_of_N (NUMERAL 0%N))))). +Axiom thm_is_realinterval : forall s : R -> Prop, (is_realinterval s) = (forall a : R, forall b : R, forall c : R, ((@IN R a s) /\ ((@IN R b s) /\ ((Rle a c) /\ (Rle c b)))) -> @IN R c s). +Axiom thm_IS_REALINTERVAL_EMPTY : is_realinterval (@EMPTY R). +Axiom thm_IS_REALINTERVAL_UNION : forall s : R -> Prop, forall t : R -> Prop, ((is_realinterval s) /\ ((is_realinterval t) /\ (~ ((@INTER R s t) = (@EMPTY R))))) -> is_realinterval (@UNION R s t). +Axiom thm_IS_REALINTERVAL_UNIV : is_realinterval (@UNIV R). +Axiom thm_IS_REALINTERVAL_INTER : forall s : R -> Prop, forall t : R -> Prop, ((is_realinterval s) /\ (is_realinterval t)) -> is_realinterval (@INTER R s t). +Axiom thm_open_real_interval : forall a : R, forall b : R, (open_real_interval (@pair R R a b)) = (@GSPEC R (fun GEN_PVAR_630 : R => exists x : R, @SETSPEC R GEN_PVAR_630 ((Rlt a x) /\ (Rlt x b)) x)). +Axiom thm_real_interval : forall (a : R) (b : R), ((open_real_interval (@pair R R a b)) = (@GSPEC R (fun GEN_PVAR_632 : R => exists x : R, @SETSPEC R GEN_PVAR_632 ((Rlt a x) /\ (Rlt x b)) x))) /\ ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@GSPEC R (fun GEN_PVAR_633 : R => exists x : R, @SETSPEC R GEN_PVAR_633 ((Rle a x) /\ (Rle x b)) x))). +Axiom thm_IN_REAL_INTERVAL : forall a : R, forall b : R, forall x : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = ((Rle a x) /\ (Rle x b))) /\ ((@IN R x (open_real_interval (@pair R R a b))) = ((Rlt a x) /\ (Rlt x b))). +Axiom thm_EMPTY_AS_REAL_INTERVAL : (@EMPTY R) = (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@nil (prod R R)))). +Axiom thm_REAL_INTERVAL_OPEN_SUBSET_CLOSED : forall a : R, forall b : R, @SUBSET R (open_real_interval (@pair R R a b)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTERVAL_EQ_EMPTY : (forall a : R, forall b : R, ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R)) = (Rlt b a)) /\ (forall a : R, forall b : R, ((open_real_interval (@pair R R a b)) = (@EMPTY R)) = (Rle b a)). +Axiom thm_REAL_INTERVAL_NE_EMPTY : (forall a : R, forall b : R, (~ ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R))) = (Rle a b)) /\ (forall a : R, forall b : R, (~ ((open_real_interval (@pair R R a b)) = (@EMPTY R))) = (Rlt a b)). +Axiom thm_REAL_INTERVAL_SING : forall a : R, ((closed_real_interval (@cons (prod R R) (@pair R R a a) (@nil (prod R R)))) = (@INSERT R a (@EMPTY R))) /\ ((open_real_interval (@pair R R a a)) = (@EMPTY R)). +Axiom thm_ENDS_IN_REAL_INTERVAL : (forall a : R, forall b : R, (@IN R a (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (~ ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R)))) /\ ((forall a : R, forall b : R, (@IN R b (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (~ ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R)))) /\ ((forall a : R, forall b : R, ~ (@IN R a (open_real_interval (@pair R R a b)))) /\ (forall a : R, forall b : R, ~ (@IN R b (open_real_interval (@pair R R a b)))))). +Axiom thm_IN_REAL_INTERVAL_REFLECT : (forall a : R, forall b : R, forall x : R, (@IN R (Ropp x) (closed_real_interval (@cons (prod R R) (@pair R R (Ropp b) (Ropp a)) (@nil (prod R R))))) = (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ (forall a : R, forall b : R, forall x : R, (@IN R (Ropp x) (open_real_interval (@pair R R (Ropp b) (Ropp a)))) = (@IN R x (open_real_interval (@pair R R a b)))). +Axiom thm_REFLECT_REAL_INTERVAL : (forall a : R, forall b : R, (@IMAGE R R Ropp (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (closed_real_interval (@cons (prod R R) (@pair R R (Ropp b) (Ropp a)) (@nil (prod R R))))) /\ (forall a : R, forall b : R, (@IMAGE R R Ropp (open_real_interval (@pair R R a b))) = (open_real_interval (@pair R R (Ropp b) (Ropp a)))). +Axiom thm_IS_REALINTERVAL_INTERVAL : forall a : R, forall b : R, (is_realinterval (open_real_interval (@pair R R a b))) /\ (is_realinterval (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_ENDS_IN_UNIT_REAL_INTERVAL : (@IN R (R_of_N (NUMERAL 0%N)) (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) /\ (@IN R (R_of_N (NUMERAL (BIT1 0%N))) (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))). +Axiom thm_INTER_REAL_INTERVAL : forall a : R, forall b : R, forall c : R, forall d : R, (@INTER R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) = (closed_real_interval (@cons (prod R R) (@pair R R (Rmax a c) (Rmin b d)) (@nil (prod R R)))). +Axiom thm_REAL_OPEN_CLOSED_INTERVAL : forall a : R, forall b : R, (open_real_interval (@pair R R a b)) = (@DIFF R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (@INSERT R a (@INSERT R b (@EMPTY R)))). +Axiom thm_REAL_CLOSED_OPEN_INTERVAL : forall a : R, forall b : R, (Rle a b) -> (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@UNION R (open_real_interval (@pair R R a b)) (@INSERT R a (@INSERT R b (@EMPTY R)))). +Axiom thm_IS_REALINTERVAL_SING : forall a : R, is_realinterval (@INSERT R a (@EMPTY R)). +Axiom thm_IS_REALINTERVAL_CONTAINS_INTERVAL : forall s : R -> Prop, forall a : R, forall b : R, ((is_realinterval s) /\ ((@IN R a s) /\ (@IN R b s))) -> @SUBSET R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) s. +Axiom thm_IS_REALINTERVAL_SHRINK : forall s : R -> Prop, (is_realinterval (@IMAGE R R (fun x : R => Rdiv x (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x))) s)) = (is_realinterval s). +Axiom thm_SUBSET_REAL_INTERVAL : forall a : R, forall b : R, forall c : R, forall d : R, ((@SUBSET R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) = ((Rlt b a) \/ ((Rle c a) /\ ((Rle a b) /\ (Rle b d))))) /\ (((@SUBSET R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (open_real_interval (@pair R R c d))) = ((Rlt b a) \/ ((Rlt c a) /\ ((Rle a b) /\ (Rlt b d))))) /\ (((@SUBSET R (open_real_interval (@pair R R a b)) (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) = ((Rle b a) \/ ((Rle c a) /\ ((Rlt a b) /\ (Rle b d))))) /\ ((@SUBSET R (open_real_interval (@pair R R a b)) (open_real_interval (@pair R R c d))) = ((Rle b a) \/ ((Rle c a) /\ ((Rlt a b) /\ (Rle b d))))))). +Axiom thm_vectorize : forall {A M N' : Type'}, (@vectorize A M N') = (fun x : cart (cart A N') M => @lambda A (finite_prod M N') (fun i : N => @dollar A N' (@dollar (cart A N') M x (N.add (NUMERAL (BIT1 0%N)) (N.div (N.sub i (NUMERAL (BIT1 0%N))) (@dimindex N' (@UNIV N'))))) (N.add (NUMERAL (BIT1 0%N)) (N.modulo (N.sub i (NUMERAL (BIT1 0%N))) (@dimindex N' (@UNIV N')))))). +Axiom thm_matrify : forall {A M N' : Type'}, (@matrify A M N') = (fun x : cart A (finite_prod M N') => @lambda (cart A N') M (fun i : N => @lambda A N' (fun j : N => @dollar A (finite_prod M N') x (N.add (N.mul (N.sub i (NUMERAL (BIT1 0%N))) (@dimindex N' (@UNIV N'))) j)))). +Axiom thm_VECTORIZE_COMPONENT : forall {A M N' : Type'}, forall m : cart (cart A N') M, forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (N.mul (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))))) -> (@dollar A (finite_prod M N') (@vectorize A M N' m) i) = (@dollar A N' (@dollar (cart A N') M m (N.add (NUMERAL (BIT1 0%N)) (N.div (N.sub i (NUMERAL (BIT1 0%N))) (@dimindex N' (@UNIV N'))))) (N.add (NUMERAL (BIT1 0%N)) (N.modulo (N.sub i (NUMERAL (BIT1 0%N))) (@dimindex N' (@UNIV N'))))). +Axiom thm_MATRIFY_COMPONENT : forall {A M N' : Type'}, forall v : cart A (finite_prod M N'), forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> (@dollar A N' (@dollar (cart A N') M (@matrify A M N' v) i) j) = (@dollar A (finite_prod M N') v (N.add (N.mul (N.sub i (NUMERAL (BIT1 0%N))) (@dimindex N' (@UNIV N'))) j)). +Axiom thm_VECTORIZE_MATRIFY : forall {A M N' : Type'}, forall a : cart A (finite_prod M N'), (@vectorize A M N' (@matrify A M N' a)) = a. +Axiom thm_MATRIFY_VECTORIZE : forall {A M N' : Type'}, forall m : cart (cart A N') M, (@matrify A M N' (@vectorize A M N' m)) = m. +Axiom thm_FORALL_VECTORIZE : forall {_219072 _219073 _219074 : Type'}, forall P : (cart _219072 (finite_prod _219073 _219074)) -> Prop, (forall x : cart _219072 (finite_prod _219073 _219074), P x) = (forall x : cart (cart _219072 _219074) _219073, P (@vectorize _219072 _219073 _219074 x)). +Axiom thm_FORALL_MATRIFY : forall {_219093 _219094 _219095 : Type'}, forall P : (cart (cart _219093 _219094) _219095) -> Prop, (forall x : cart (cart _219093 _219094) _219095, P x) = (forall x : cart _219093 (finite_prod _219095 _219094), P (@matrify _219093 _219095 _219094 x)). +Axiom thm_EXISTS_VECTORIZE : forall {_219114 _219115 _219116 : Type'}, forall P : (cart _219114 (finite_prod _219115 _219116)) -> Prop, (exists x : cart _219114 (finite_prod _219115 _219116), P x) = (exists x : cart (cart _219114 _219116) _219115, P (@vectorize _219114 _219115 _219116 x)). +Axiom thm_EXISTS_MATRIFY : forall {_219135 _219136 _219137 : Type'}, forall P : (cart (cart _219135 _219136) _219137) -> Prop, (exists x : cart (cart _219135 _219136) _219137, P x) = (exists x : cart _219135 (finite_prod _219137 _219136), P (@matrify _219135 _219137 _219136 x)). +Axiom thm_VECTORIZE_GSPEC : forall {A M N' : Type'}, forall P : (cart (cart A N') M) -> Prop, (@GSPEC (cart A (finite_prod M N')) (fun GEN_PVAR_634 : cart A (finite_prod M N') => exists m : cart (cart A N') M, @SETSPEC (cart A (finite_prod M N')) GEN_PVAR_634 (P m) (@vectorize A M N' m))) = (@GSPEC (cart A (finite_prod M N')) (fun GEN_PVAR_635 : cart A (finite_prod M N') => exists v : cart A (finite_prod M N'), @SETSPEC (cart A (finite_prod M N')) GEN_PVAR_635 (P (@matrify A M N' v)) v)). +Axiom thm_VECTORIZE_EQ : forall {M N' : Type'}, forall m1 : cart (cart R N') M, forall m2 : cart (cart R N') M, ((@vectorize R M N' m1) = (@vectorize R M N' m2)) = (m1 = m2). +Axiom thm_MATRIFY_EQ : forall {M N' : Type'}, forall m1 : cart R (finite_prod M N'), forall m2 : cart R (finite_prod M N'), ((@matrify R M N' m1) = (@matrify R M N' m2)) = (m1 = m2). +Axiom thm_hull : forall {_219255 : Type'}, forall P : (_219255 -> Prop) -> Prop, forall s : _219255 -> Prop, (@hull _219255 P s) = (@INTERS _219255 (@GSPEC (_219255 -> Prop) (fun GEN_PVAR_636 : _219255 -> Prop => exists t : _219255 -> Prop, @SETSPEC (_219255 -> Prop) GEN_PVAR_636 ((P t) /\ (@SUBSET _219255 s t)) t))). +Axiom thm_HULL_P : forall {_219273 : Type'}, forall P : (_219273 -> Prop) -> Prop, forall s : _219273 -> Prop, (P s) -> (@hull _219273 P s) = s. +Axiom thm_P_HULL : forall {_219307 : Type'}, forall P : (_219307 -> Prop) -> Prop, forall s : _219307 -> Prop, (forall f : (_219307 -> Prop) -> Prop, (forall s' : _219307 -> Prop, (@IN (_219307 -> Prop) s' f) -> P s') -> P (@INTERS _219307 f)) -> P (@hull _219307 P s). +Axiom thm_HULL_EQ : forall {_219345 : Type'}, forall P : (_219345 -> Prop) -> Prop, forall s : _219345 -> Prop, (forall f : (_219345 -> Prop) -> Prop, (forall s' : _219345 -> Prop, (@IN (_219345 -> Prop) s' f) -> P s') -> P (@INTERS _219345 f)) -> ((@hull _219345 P s) = s) = (P s). +Axiom thm_HULL_HULL : forall {_219367 : Type'}, forall P : (_219367 -> Prop) -> Prop, forall s : _219367 -> Prop, (@hull _219367 P (@hull _219367 P s)) = (@hull _219367 P s). +Axiom thm_HULL_SUBSET : forall {_219382 : Type'}, forall P : (_219382 -> Prop) -> Prop, forall s : _219382 -> Prop, @SUBSET _219382 s (@hull _219382 P s). +Axiom thm_HULL_MONO : forall {_219409 : Type'}, forall P : (_219409 -> Prop) -> Prop, forall s : _219409 -> Prop, forall t : _219409 -> Prop, (@SUBSET _219409 s t) -> @SUBSET _219409 (@hull _219409 P s) (@hull _219409 P t). +Axiom thm_HULL_ANTIMONO : forall {_219436 : Type'}, forall P : (_219436 -> Prop) -> Prop, forall Q : (_219436 -> Prop) -> Prop, forall s : _219436 -> Prop, (@SUBSET (_219436 -> Prop) P Q) -> @SUBSET _219436 (@hull _219436 Q s) (@hull _219436 P s). +Axiom thm_HULL_UNIV : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@hull A P (@UNIV A)) = (@UNIV A). +Axiom thm_HULL_MINIMAL : forall {_219476 : Type'}, forall P : (_219476 -> Prop) -> Prop, forall s : _219476 -> Prop, forall t : _219476 -> Prop, ((@SUBSET _219476 s t) /\ (P t)) -> @SUBSET _219476 (@hull _219476 P s) t. +Axiom thm_SUBSET_HULL : forall {_219500 : Type'}, forall P : (_219500 -> Prop) -> Prop, forall s : _219500 -> Prop, forall t : _219500 -> Prop, (P t) -> (@SUBSET _219500 (@hull _219500 P s) t) = (@SUBSET _219500 s t). +Axiom thm_HULL_UNIQUE : forall {_219547 : Type'}, forall P : (_219547 -> Prop) -> Prop, forall s : _219547 -> Prop, forall t : _219547 -> Prop, ((@SUBSET _219547 s t) /\ ((P t) /\ (forall t' : _219547 -> Prop, ((@SUBSET _219547 s t') /\ (P t')) -> @SUBSET _219547 t t'))) -> (@hull _219547 P s) = t. +Axiom thm_HULL_UNION_SUBSET : forall {_219578 : Type'}, forall P : (_219578 -> Prop) -> Prop, forall s : _219578 -> Prop, forall t : _219578 -> Prop, @SUBSET _219578 (@UNION _219578 (@hull _219578 P s) (@hull _219578 P t)) (@hull _219578 P (@UNION _219578 s t)). +Axiom thm_HULL_UNION : forall {_219612 : Type'}, forall P : (_219612 -> Prop) -> Prop, forall s : _219612 -> Prop, forall t : _219612 -> Prop, (@hull _219612 P (@UNION _219612 s t)) = (@hull _219612 P (@UNION _219612 (@hull _219612 P s) (@hull _219612 P t))). +Axiom thm_HULL_UNION_LEFT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@hull A P (@UNION A s t)) = (@hull A P (@UNION A (@hull A P s) t)). +Axiom thm_HULL_UNION_RIGHT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@hull A P (@UNION A s t)) = (@hull A P (@UNION A s (@hull A P t))). +Axiom thm_HULL_INSERT : forall {_219719 : Type'}, forall P : (_219719 -> Prop) -> Prop, forall a : _219719, forall s : _219719 -> Prop, (@hull _219719 P (@INSERT _219719 a s)) = (@hull _219719 P (@INSERT _219719 a (@hull _219719 P s))). +Axiom thm_HULL_REDUNDANT_EQ : forall {_219752 : Type'}, forall P : (_219752 -> Prop) -> Prop, forall a : _219752, forall s : _219752 -> Prop, (@IN _219752 a (@hull _219752 P s)) = ((@hull _219752 P (@INSERT _219752 a s)) = (@hull _219752 P s)). +Axiom thm_HULL_REDUNDANT : forall {_219785 : Type'}, forall P : (_219785 -> Prop) -> Prop, forall a : _219785, forall s : _219785 -> Prop, (@IN _219785 a (@hull _219785 P s)) -> (@hull _219785 P (@INSERT _219785 a s)) = (@hull _219785 P s). +Axiom thm_HULL_INDUCT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall p : A -> Prop, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> p x) /\ (P (@GSPEC A (fun GEN_PVAR_638 : A => exists x : A, @SETSPEC A GEN_PVAR_638 (p x) x)))) -> forall x : A, (@IN A x (@hull A P s)) -> p x. +Axiom thm_HULL_INC : forall {_219879 : Type'}, forall P : (_219879 -> Prop) -> Prop, forall s : _219879 -> Prop, forall x : _219879, (@IN _219879 x s) -> @IN _219879 x (@hull _219879 P s). +Axiom thm_HULL_IMAGE_SUBSET : forall {_219929 : Type'}, forall P : (_219929 -> Prop) -> Prop, forall f : _219929 -> _219929, forall s : _219929 -> Prop, ((P (@hull _219929 P s)) /\ (forall s' : _219929 -> Prop, (P s') -> P (@IMAGE _219929 _219929 f s'))) -> @SUBSET _219929 (@hull _219929 P (@IMAGE _219929 _219929 f s)) (@IMAGE _219929 _219929 f (@hull _219929 P s)). +Axiom thm_HULL_IMAGE_GALOIS : forall {_220027 : Type'}, forall P : (_220027 -> Prop) -> Prop, forall f : _220027 -> _220027, forall g : _220027 -> _220027, forall s : _220027 -> Prop, ((forall s' : _220027 -> Prop, P (@hull _220027 P s')) /\ ((forall s' : _220027 -> Prop, (P s') -> P (@IMAGE _220027 _220027 f s')) /\ ((forall s' : _220027 -> Prop, (P s') -> P (@IMAGE _220027 _220027 g s')) /\ (forall s' : _220027 -> Prop, forall t : _220027 -> Prop, (@SUBSET _220027 s' (@IMAGE _220027 _220027 g t)) = (@SUBSET _220027 (@IMAGE _220027 _220027 f s') t))))) -> (@hull _220027 P (@IMAGE _220027 _220027 f s)) = (@IMAGE _220027 _220027 f (@hull _220027 P s)). +Axiom thm_HULL_IMAGE : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall f : A -> A, forall s : A -> Prop, ((forall s' : A -> Prop, P (@hull A P s')) /\ ((forall s' : A -> Prop, (P (@IMAGE A A f s')) = (P s')) /\ ((forall x : A, forall y : A, ((f x) = (f y)) -> x = y) /\ (forall y : A, exists x : A, (f x) = y)))) -> (@hull A P (@IMAGE A A f s)) = (@IMAGE A A f (@hull A P s)). +Axiom thm_IS_HULL : forall {_220161 : Type'}, forall P : (_220161 -> Prop) -> Prop, forall s : _220161 -> Prop, (forall f : (_220161 -> Prop) -> Prop, (forall s' : _220161 -> Prop, (@IN (_220161 -> Prop) s' f) -> P s') -> P (@INTERS _220161 f)) -> (P s) = (exists t : _220161 -> Prop, s = (@hull _220161 P t)). +Axiom thm_HULLS_EQ : forall {_220220 : Type'}, forall P : (_220220 -> Prop) -> Prop, forall s : _220220 -> Prop, forall t : _220220 -> Prop, ((forall f : (_220220 -> Prop) -> Prop, (forall s' : _220220 -> Prop, (@IN (_220220 -> Prop) s' f) -> P s') -> P (@INTERS _220220 f)) /\ ((@SUBSET _220220 s (@hull _220220 P t)) /\ (@SUBSET _220220 t (@hull _220220 P s)))) -> (@hull _220220 P s) = (@hull _220220 P t). +Axiom thm_HULL_P_AND_Q : forall {_220302 : Type'} (s : _220302 -> Prop), forall P : (_220302 -> Prop) -> Prop, forall Q : (_220302 -> Prop) -> Prop, ((forall f : (_220302 -> Prop) -> Prop, (forall s' : _220302 -> Prop, (@IN (_220302 -> Prop) s' f) -> P s') -> P (@INTERS _220302 f)) /\ ((forall f : (_220302 -> Prop) -> Prop, (forall s' : _220302 -> Prop, (@IN (_220302 -> Prop) s' f) -> Q s') -> Q (@INTERS _220302 f)) /\ (forall s' : _220302 -> Prop, (Q s') -> Q (@hull _220302 P s')))) -> (@hull _220302 (fun x : _220302 -> Prop => (P x) /\ (Q x)) s) = (@hull _220302 P (@hull _220302 Q s)). +Axiom thm_HULL_UNIONS_SUBSET : forall {_220339 : Type'}, forall P : (_220339 -> Prop) -> Prop, forall f : (_220339 -> Prop) -> Prop, @SUBSET _220339 (@UNIONS _220339 (@GSPEC (_220339 -> Prop) (fun GEN_PVAR_639 : _220339 -> Prop => exists s : _220339 -> Prop, @SETSPEC (_220339 -> Prop) GEN_PVAR_639 (@IN (_220339 -> Prop) s f) (@hull _220339 P s)))) (@hull _220339 P (@UNIONS _220339 f)). +Axiom thm_HULL_INTERS_SUBSET : forall {_220376 : Type'}, forall P : (_220376 -> Prop) -> Prop, forall f : (_220376 -> Prop) -> Prop, @SUBSET _220376 (@hull _220376 P (@INTERS _220376 f)) (@INTERS _220376 (@GSPEC (_220376 -> Prop) (fun GEN_PVAR_640 : _220376 -> Prop => exists s : _220376 -> Prop, @SETSPEC (_220376 -> Prop) GEN_PVAR_640 (@IN (_220376 -> Prop) s f) (@hull _220376 P s)))). +Axiom thm_HULL_INTER_SUBSET : forall {_220407 : Type'}, forall P : (_220407 -> Prop) -> Prop, forall s : _220407 -> Prop, forall t : _220407 -> Prop, @SUBSET _220407 (@hull _220407 P (@INTER _220407 s t)) (@INTER _220407 (@hull _220407 P s) (@hull _220407 P t)). +Axiom thm_FORALL_POS_MONO : forall P : R -> Prop, ((forall d : R, forall e : R, ((Rlt d e) /\ (P d)) -> P e) /\ (forall n : N, (~ (n = (NUMERAL 0%N))) -> P (Rinv (R_of_N n)))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> P e. +Axiom thm_FORALL_POS_MONO_1 : forall P : R -> Prop, ((forall d : R, forall e : R, ((Rlt d e) /\ (P d)) -> P e) /\ (forall n : N, P (Rinv (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> P e. +Axiom thm_FORALL_POS_MONO_EQ : forall P : R -> Prop, (forall d : R, forall e : R, ((Rlt d e) /\ (P d)) -> P e) -> (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> P e) = (forall n : N, (~ (n = (NUMERAL 0%N))) -> P (Rinv (R_of_N n))). +Axiom thm_FORALL_POS_MONO_1_EQ : forall P : R -> Prop, (forall d : R, forall e : R, ((Rlt d e) /\ (P d)) -> P e) -> (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> P e) = (forall n : N, P (Rinv (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_REAL_ARCH_RDIV_EQ_0 : forall x : R, forall c : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle (R_of_N (NUMERAL 0%N)) c) /\ (forall m : N, (N.lt (NUMERAL 0%N) m) -> Rle (Rmult (R_of_N m) x) c))) -> x = (R_of_N (NUMERAL 0%N)). +Axiom thm_FINITE_INDEX_NUMSEG_SPECIAL : forall {A : Type'}, forall s : A -> Prop, forall a : A, ((@FINITE A s) /\ (@IN A a s)) -> exists f : N -> A, (forall i : N, forall j : N, ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@CARD A s))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@CARD A s))) /\ ((f i) = (f j)))) -> i = j) /\ ((s = (@IMAGE N A f (dotdot (NUMERAL (BIT1 0%N)) (@CARD A s)))) /\ ((f (NUMERAL (BIT1 0%N))) = a)). +Axiom thm_SUM_GP_BASIC : forall x : R, forall n : N, (Rmult (Rminus (R_of_N (NUMERAL (BIT1 0%N))) x) (@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => real_pow x i))) = (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (N.succ n))). +Axiom thm_SUM_GP_MULTIPLIED : forall x : R, forall m : N, forall n : N, (N.le m n) -> (Rmult (Rminus (R_of_N (NUMERAL (BIT1 0%N))) x) (@sum N (dotdot m n) (fun i : N => real_pow x i))) = (Rminus (real_pow x m) (real_pow x (N.succ n))). +Axiom thm_SUM_GP : forall x : R, forall m : N, forall n : N, (@sum N (dotdot m n) (fun i : N => real_pow x i)) = (@COND R (N.lt n m) (R_of_N (NUMERAL 0%N)) (@COND R (x = (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N (N.sub (N.add n (NUMERAL (BIT1 0%N))) m)) (Rdiv (Rminus (real_pow x m) (real_pow x (N.succ n))) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) x)))). +Axiom thm_SUM_GP_OFFSET : forall x : R, forall m : N, forall n : N, (@sum N (dotdot m (N.add m n)) (fun i : N => real_pow x i)) = (@COND R (x = (R_of_N (NUMERAL (BIT1 0%N)))) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))) (Rmult (real_pow x m) (Rdiv (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (N.succ n))) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) x)))). +Axiom thm_from : forall n : N, (from n) = (@GSPEC N (fun GEN_PVAR_641 : N => exists m : N, @SETSPEC N GEN_PVAR_641 (N.le n m) m)). +Axiom thm_FROM_0 : (from (NUMERAL 0%N)) = (@UNIV N). +Axiom thm_IN_FROM : forall m : N, forall n : N, (@IN N m (from n)) = (N.le n m). +Axiom thm_FROM_MONO : forall m : N, forall n : N, (@SUBSET N (from m) (from n)) = (N.le n m). +Axiom thm_FROM_INTER_NUMSEG_GEN : forall k : N, forall m : N, forall n : N, (@INTER N (from k) (dotdot m n)) = (@COND (N -> Prop) (N.lt m k) (dotdot k n) (dotdot m n)). +Axiom thm_FROM_INTER_NUMSEG_MAX : forall m : N, forall n : N, forall p : N, (@INTER N (from p) (dotdot m n)) = (dotdot (N.max p m) n). +Axiom thm_FROM_INTER_NUMSEG : forall k : N, forall n : N, (@INTER N (from k) (dotdot (NUMERAL 0%N) n)) = (dotdot k n). +Axiom thm_INFINITE_FROM : forall n : N, @INFINITE N (from n). +Axiom thm_FINITE_INTER_NUMSEG : forall s : N -> Prop, forall m : N, forall n : N, @FINITE N (@INTER N s (dotdot m n)). +Axiom thm_FROM_NONEMPTY : forall n : N, ~ ((from n) = (@EMPTY N)). +Axiom thm_SUBSEQUENCE_STEPWISE : forall r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) = (forall n : N, N.lt (r n) (r (N.succ n))). +Axiom thm_SUBSEQUENCE_IMP_INJECTIVE : forall r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) -> forall m : N, forall n : N, ((r m) = (r n)) = (m = n). +Axiom thm_MONOTONE_BIGGER : forall r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) -> forall n : N, N.le n (r n). +Axiom thm_INFINITE_ENUMERATE_WEAK : forall s : N -> Prop, (@INFINITE N s) -> exists r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (forall n : N, @IN N (r n) s). +Axiom thm_INFINITE_ENUMERATE_EQ_ALT : forall s : N -> Prop, (@INFINITE N s) = (exists r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (forall n : N, @IN N (r n) s)). +Axiom thm_MONOTONE_SUBSEQUENCE : forall s : N -> R, exists r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ ((forall m : N, forall n : N, (N.le m n) -> Rle (s (r m)) (s (r n))) \/ (forall m : N, forall n : N, (N.le m n) -> Rle (s (r n)) (s (r m)))). +Axiom thm_CONVERGENT_BOUNDED_INCREASING : forall s : N -> R, forall b : R, ((forall m : N, forall n : N, (N.le m n) -> Rle (s m) (s n)) /\ (forall n : N, Rle (Rabs (s n)) b)) -> exists l : R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, (N.le N' n) -> Rlt (Rabs (Rminus (s n) l)) e. +Axiom thm_CONVERGENT_BOUNDED_MONOTONE : forall s : N -> R, forall b : R, ((forall n : N, Rle (Rabs (s n)) b) /\ ((forall m : N, forall n : N, (N.le m n) -> Rle (s m) (s n)) \/ (forall m : N, forall n : N, (N.le m n) -> Rle (s n) (s m)))) -> exists l : R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, (N.le N' n) -> Rlt (Rabs (Rminus (s n) l)) e. +Axiom thm_STRICTLY_INCREASING_ALT : forall P : R -> Prop, forall f : R -> R, (forall x : R, forall y : R, ((P x) /\ ((P y) /\ (Rlt x y))) -> Rlt (f x) (f y)) = ((forall x : R, forall y : R, ((P x) /\ ((P y) /\ (Rle x y))) -> Rle (f x) (f y)) /\ (forall x : R, forall y : R, ((P x) /\ ((P y) /\ ((f x) = (f y)))) -> x = y)). +Axiom thm_STRICTLY_DECREASING_ALT : forall P : R -> Prop, forall f : R -> R, (forall x : R, forall y : R, ((P x) /\ ((P y) /\ (Rlt x y))) -> Rlt (f y) (f x)) = ((forall x : R, forall y : R, ((P x) /\ ((P y) /\ (Rle x y))) -> Rle (f y) (f x)) /\ (forall x : R, forall y : R, ((P x) /\ ((P y) /\ ((f x) = (f y)))) -> x = y)). +Axiom thm_REAL_NON_MONOTONE : forall P : R -> Prop, forall f : R -> R, ((forall x : R, forall y : R, ((P x) /\ ((P y) /\ (Rle x y))) -> Rle (f x) (f y)) \/ (forall x : R, forall y : R, ((P x) /\ ((P y) /\ (Rle x y))) -> Rle (f y) (f x))) = (~ (exists x : R, exists y : R, exists z : R, (P x) /\ ((P y) /\ ((P z) /\ ((Rlt x y) /\ ((Rlt y z) /\ (((Rlt (f x) (f y)) /\ (Rlt (f z) (f y))) \/ ((Rlt (f y) (f x)) /\ (Rlt (f y) (f z)))))))))). +Axiom thm_SUBSEQUENCE_DIAGONALIZATION_LEMMA : forall {A : Type'}, forall P : N -> (N -> A) -> Prop, ((forall i : N, forall r : N -> A, exists k : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (k m) (k n)) /\ (P i (@o N N A r k))) /\ (forall i : N, forall r : N -> A, forall k1 : N -> N, forall k2 : N -> N, forall N' : N, ((P i (@o N N A r k1)) /\ (forall j : N, (N.le N' j) -> exists j' : N, (N.le j j') /\ ((k2 j) = (k1 j')))) -> P i (@o N N A r k2))) -> forall r : N -> A, exists k : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (k m) (k n)) /\ (forall i : N, P i (@o N N A r k)). +Axiom thm_COUNTABLE_INTEGER : @COUNTABLE R integer. +Axiom thm_CARD_EQ_INTEGER : @eq_c R N integer (@UNIV N). +Axiom thm_COUNTABLE_RATIONAL : @COUNTABLE R rational. +Axiom thm_CARD_EQ_RATIONAL : @eq_c R N rational (@UNIV N). +Axiom thm_COUNTABLE_INTEGER_COORDINATES : forall {N' : Type'}, @COUNTABLE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_644 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_644 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> integer (@dollar R N' x i)) x)). +Axiom thm_COUNTABLE_RATIONAL_COORDINATES : forall {N' : Type'}, @COUNTABLE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_646 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_646 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> rational (@dollar R N' x i)) x)). +Axiom thm_IRRATIONAL_APPROXIMATION : forall x : R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists y : R, (~ (rational y)) /\ (Rlt (Rabs (Rminus y x)) e). +Axiom thm_IRRATIONAL_BETWEEN : forall a : R, forall b : R, (Rlt a b) -> exists q : R, (~ (rational q)) /\ ((Rlt a q) /\ (Rlt q b)). +Axiom thm_IRRATIONAL_BETWEEN_EQ : forall a : R, forall b : R, (exists q : R, (~ (rational q)) /\ ((Rlt a q) /\ (Rlt q b))) = (Rlt a b). +Axiom thm_IRRATIONAL_APPROXIMATION_STRADDLE : forall x : R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists a : R, exists b : R, (~ (rational a)) /\ ((~ (rational b)) /\ ((Rlt a x) /\ ((Rlt x b) /\ (Rlt (Rabs (Rminus b a)) e)))). +Axiom thm_IRRATIONAL_APPROXIMATION_ABOVE : forall x : R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists q : R, (~ (rational q)) /\ ((Rlt x q) /\ (Rlt q (Rplus x e))). +Axiom thm_IRRATIONAL_APPROXIMATION_BELOW : forall x : R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists q : R, (~ (rational q)) /\ ((Rlt (Rminus x e) q) /\ (Rlt q x)). +Axiom thm_INFINITE_IRRATIONAL_IN_RANGE : forall a : R, forall b : R, (Rlt a b) -> @INFINITE R (@GSPEC R (fun GEN_PVAR_647 : R => exists q : R, @SETSPEC R GEN_PVAR_647 ((~ (rational q)) /\ ((Rlt a q) /\ (Rlt q b))) q)). +Axiom thm_COUNTABLE_LOCAL_MAXIMA : forall f : R -> R, @COUNTABLE R (@GSPEC R (fun GEN_PVAR_650 : R => exists x : R, @SETSPEC R GEN_PVAR_650 (exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : R, (Rlt (Rabs (Rminus x' x)) d) -> Rle (f x') (f x))) (f x))). +Axiom thm_COUNTABLE_LOCAL_MINIMA : forall f : R -> R, @COUNTABLE R (@GSPEC R (fun GEN_PVAR_651 : R => exists x : R, @SETSPEC R GEN_PVAR_651 (exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : R, (Rlt (Rabs (Rminus x' x)) d) -> Rle (f x) (f x'))) (f x))). +Axiom thm_COUNTABLE_STRICT_LOCAL_MAXIMA : forall f : R -> R, @COUNTABLE R (@GSPEC R (fun GEN_PVAR_653 : R => exists x : R, @SETSPEC R GEN_PVAR_653 (exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : R, ((Rlt (Rabs (Rminus x' x)) d) /\ (~ (x' = x))) -> Rlt (f x') (f x))) x)). +Axiom thm_COUNTABLE_STRICT_LOCAL_MINIMA : forall f : R -> R, @COUNTABLE R (@GSPEC R (fun GEN_PVAR_654 : R => exists x : R, @SETSPEC R GEN_PVAR_654 (exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : R, ((Rlt (Rabs (Rminus x' x)) d) /\ (~ (x' = x))) -> Rlt (f x) (f x'))) x)). +Axiom thm_RELATIVE_TO_UNIV : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@relative_to A P (@UNIV A) s) = (P s). +Axiom thm_RELATIVE_TO_IMP_SUBSET : forall {_231330 : Type'}, forall P : (_231330 -> Prop) -> Prop, forall s : _231330 -> Prop, forall t : _231330 -> Prop, (@relative_to _231330 P s t) -> @SUBSET _231330 t s. +Axiom thm_FORALL_RELATIVE_TO : forall {_231358 : Type'} (P : (_231358 -> Prop) -> Prop) (Q : (_231358 -> Prop) -> Prop) (u : _231358 -> Prop), (forall s : _231358 -> Prop, (@relative_to _231358 P u s) -> Q s) = (forall s : _231358 -> Prop, (P s) -> Q (@INTER _231358 u s)). +Axiom thm_RELATIVE_TO_INC : forall {_231381 : Type'}, forall P : (_231381 -> Prop) -> Prop, forall u : _231381 -> Prop, forall s : _231381 -> Prop, (P s) -> @relative_to _231381 P u (@INTER _231381 u s). +Axiom thm_RELATIVE_TO : forall {_231404 : Type'} (P : (_231404 -> Prop) -> Prop) (u : _231404 -> Prop), (@relative_to _231404 P u) = (@GSPEC (_231404 -> Prop) (fun GEN_PVAR_655 : _231404 -> Prop => exists s : _231404 -> Prop, @SETSPEC (_231404 -> Prop) GEN_PVAR_655 (P s) (@INTER _231404 u s))). +Axiom thm_RELATIVE_TO_RELATIVE_TO : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@relative_to A (@relative_to A P s) t) = (@relative_to A P (@INTER A s t)). +Axiom thm_RELATIVE_TO_COMPL : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, forall s : A -> Prop, (@SUBSET A s u) -> (@relative_to A P u (@DIFF A u s)) = (@relative_to A (fun c : A -> Prop => P (@DIFF A (@UNIV A) c)) u s). +Axiom thm_RELATIVE_TO_SUBSET : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (P s)) -> @relative_to A P t s. +Axiom thm_RELATIVE_TO_SUBSET_TRANS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@relative_to A P u s) /\ ((@SUBSET A s t) /\ (@SUBSET A t u))) -> @relative_to A P t s. +Axiom thm_RELATIVE_TO_MONO : forall {_231629 : Type'} (s : _231629 -> Prop), forall P : (_231629 -> Prop) -> Prop, forall Q : (_231629 -> Prop) -> Prop, (forall s' : _231629 -> Prop, (P s') -> Q s') -> forall u : _231629 -> Prop, (@relative_to _231629 P u s) -> @relative_to _231629 Q u s. +Axiom thm_RELATIVE_TO_SUBSET_INC : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, forall s : A -> Prop, ((@SUBSET A s u) /\ (P s)) -> @relative_to A P u s. +Axiom thm_RELATIVE_TO_INTER : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (forall c : A -> Prop, forall d : A -> Prop, ((P c) /\ (P d)) -> P (@INTER A c d)) -> forall c : A -> Prop, forall d : A -> Prop, ((@relative_to A P s c) /\ (@relative_to A P s d)) -> @relative_to A P s (@INTER A c d). +Axiom thm_RELATIVE_TO_UNION : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (forall c : A -> Prop, forall d : A -> Prop, ((P c) /\ (P d)) -> P (@UNION A c d)) -> forall c : A -> Prop, forall d : A -> Prop, ((@relative_to A P s c) /\ (@relative_to A P s d)) -> @relative_to A P s (@UNION A c d). +Axiom thm_ARBITRARY_UNION_OF_RELATIVE_TO : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, (@relative_to A (@UNION_OF A (@ARBITRARY A) P) u) = (@UNION_OF A (@ARBITRARY A) (@relative_to A P u)). +Axiom thm_FINITE_UNION_OF_RELATIVE_TO : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, (@relative_to A (@UNION_OF A (@FINITE (A -> Prop)) P) u) = (@UNION_OF A (@FINITE (A -> Prop)) (@relative_to A P u)). +Axiom thm_COUNTABLE_UNION_OF_RELATIVE_TO : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, (@relative_to A (@UNION_OF A (@COUNTABLE (A -> Prop)) P) u) = (@UNION_OF A (@COUNTABLE (A -> Prop)) (@relative_to A P u)). +Axiom thm_ARBITRARY_INTERSECTION_OF_RELATIVE_TO : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, (@relative_to A (@INTERSECTION_OF A (@ARBITRARY A) P) u) = (@relative_to A (@INTERSECTION_OF A (@ARBITRARY A) (@relative_to A P u)) u). +Axiom thm_FINITE_INTERSECTION_OF_RELATIVE_TO : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, (@relative_to A (@INTERSECTION_OF A (@FINITE (A -> Prop)) P) u) = (@relative_to A (@INTERSECTION_OF A (@FINITE (A -> Prop)) (@relative_to A P u)) u). +Axiom thm_COUNTABLE_INTERSECTION_OF_RELATIVE_TO : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, (@relative_to A (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P) u) = (@relative_to A (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) (@relative_to A P u)) u). +Axiom thm_FINITE_INTERSECTION_OF_RELATIVE_TO_ALT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, forall s : A -> Prop, (P u) -> (@relative_to A (@INTERSECTION_OF A (@FINITE (A -> Prop)) P) u s) = ((@INTERSECTION_OF A (@FINITE (A -> Prop)) P s) /\ (@SUBSET A s u)). +Axiom thm_COUNTABLE_INTERSECTION_OF_RELATIVE_TO_ALT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, forall s : A -> Prop, (P u) -> (@relative_to A (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P) u s) = ((@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P s) /\ (@SUBSET A s u)). +Axiom thm_ARBITRARY_UNION_OF_NONEMPTY_FINITE_INTERSECTION : forall {A : Type'}, forall u : (A -> Prop) -> Prop, (@UNION_OF A (@ARBITRARY A) (@INTERSECTION_OF A (fun s : (A -> Prop) -> Prop => (@FINITE (A -> Prop) s) /\ (~ (s = (@EMPTY (A -> Prop))))) u)) = (@UNION_OF A (@ARBITRARY A) (@relative_to A (@INTERSECTION_OF A (@FINITE (A -> Prop)) u) (@UNIONS A u))). +Axiom thm_GENERAL_REDUCTION_THEOREM : forall {A : Type'}, forall P : (A -> Prop) -> Prop, ((P (@EMPTY A)) /\ ((forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@UNION A s t)) /\ (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@DIFF A s t)))) -> forall s : N -> A -> Prop, (forall n : N, @UNION_OF A (@COUNTABLE (A -> Prop)) P (s n)) -> exists t : N -> A -> Prop, (forall n : N, @UNION_OF A (@COUNTABLE (A -> Prop)) P (t n)) /\ ((forall n : N, @SUBSET A (t n) (s n)) /\ ((@pairwise N (fun m : N => fun n : N => @DISJOINT A (t m) (t n)) (@UNIV N)) /\ ((@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_675 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_675 (@IN N n (@UNIV N)) (t n)))) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_676 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_676 (@IN N n (@UNIV N)) (s n))))))). +Axiom thm_GENERAL_REDUCTION_THEOREM_2 : forall {A : Type'}, forall P : (A -> Prop) -> Prop, ((P (@EMPTY A)) /\ ((forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@UNION A s t)) /\ (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@DIFF A s t)))) -> forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@COUNTABLE (A -> Prop)) P s) /\ (@UNION_OF A (@COUNTABLE (A -> Prop)) P t)) -> exists s' : A -> Prop, exists t' : A -> Prop, (@UNION_OF A (@COUNTABLE (A -> Prop)) P s') /\ ((@UNION_OF A (@COUNTABLE (A -> Prop)) P t') /\ ((@SUBSET A s' s) /\ ((@SUBSET A t' t) /\ ((@DISJOINT A s' t') /\ ((@UNION A s' t') = (@UNION A s t)))))). +Axiom thm_BACK_AND_FORTH_ALT : forall {A B : Type'}, forall P : (prod A B) -> (prod A B) -> Prop, forall s : A -> Prop, forall t : B -> Prop, ((@COUNTABLE A s) /\ ((@COUNTABLE B t) /\ (forall R' : (prod A B) -> Prop, ((@FINITE (prod A B) R') /\ ((@SUBSET (prod A B) R' (@CROSS A B s t)) /\ (@pairwise (prod A B) P R'))) -> (forall x : A, (@IN A x s) -> exists y : B, (@IN B y t) /\ (@pairwise (prod A B) P (@INSERT (prod A B) (@pair A B x y) R'))) /\ (forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ (@pairwise (prod A B) P (@INSERT (prod A B) (@pair A B x y) R')))))) -> exists R' : (prod A B) -> Prop, (@SUBSET (prod A B) R' (@CROSS A B s t)) /\ ((@pairwise (prod A B) P R') /\ ((forall x : A, (@IN A x s) -> exists y : B, (@IN B y t) /\ (@IN (prod A B) (@pair A B x y) R')) /\ (forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ (@IN (prod A B) (@pair A B x y) R')))). +Axiom thm_BACK_AND_FORTH : forall {A B : Type'}, forall R' : A -> A -> B -> B -> Prop, forall s : A -> Prop, forall t : B -> Prop, ((forall x : A, forall y : B, ((@IN A x s) /\ (@IN B y t)) -> R' x x y y) /\ ((forall x : A, forall y : B, forall x' : A, forall y' : B, ((@IN A x s) /\ ((@IN A x' s) /\ ((@IN B y t) /\ ((@IN B y' t) /\ ((~ (x = x')) /\ ((~ (y = y')) /\ (R' x x' y y'))))))) -> R' x' x y' y) /\ ((@COUNTABLE A s) /\ ((@COUNTABLE B t) /\ (forall f : A -> B, forall s' : A -> Prop, forall t' : B -> Prop, ((@FINITE A s') /\ ((@SUBSET A s' s) /\ ((@FINITE B t') /\ ((@SUBSET B t' t) /\ (((@IMAGE A B f s') = t') /\ ((forall x : A, forall y : A, ((@IN A x s') /\ (@IN A y s')) -> ((f x) = (f y)) = (x = y)) /\ (forall x : A, forall y : A, ((@IN A x s') /\ (@IN A y s')) -> R' x y (f x) (f y)))))))) -> (forall x : A, (@IN A x (@DIFF A s s')) -> exists y : B, (@IN B y (@DIFF B t t')) /\ (forall z : A, (@IN A z s') -> R' x z y (f z))) /\ (forall y : B, (@IN B y (@DIFF B t t')) -> exists x : A, (@IN A x (@DIFF A s s')) /\ (forall z : A, (@IN A z s') -> R' x z y (f z)))))))) -> exists f : A -> B, ((@IMAGE A B f s) = t) /\ ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> R' x y (f x) (f y))). +Axiom thm_BACK_AND_FORTH_2 : forall {A B : Type'}, forall R' : A -> A -> B -> B -> Prop, forall s : A -> Prop, forall t : B -> Prop, ((forall x : A, forall y : B, ((@IN A x s) /\ (@IN B y t)) -> R' x x y y) /\ ((forall x : A, forall y : B, forall x' : A, forall y' : B, ((@IN A x s) /\ ((@IN A x' s) /\ ((@IN B y t) /\ ((@IN B y' t) /\ ((~ (x = x')) /\ ((~ (y = y')) /\ (R' x x' y y'))))))) -> R' x' x y' y) /\ ((@COUNTABLE A s) /\ ((@COUNTABLE B t) /\ ((forall f : A -> B, forall s' : A -> Prop, forall t' : B -> Prop, forall x : A, ((@FINITE A s') /\ ((@SUBSET A s' s) /\ ((@FINITE B t') /\ ((@SUBSET B t' t) /\ (((@IMAGE A B f s') = t') /\ ((forall x' : A, forall y : A, ((@IN A x' s') /\ (@IN A y s')) -> ((f x') = (f y)) = (x' = y)) /\ ((forall x' : A, forall y : A, ((@IN A x' s') /\ (@IN A y s')) -> R' x' y (f x') (f y)) /\ (@IN A x (@DIFF A s s'))))))))) -> exists y : B, (@IN B y (@DIFF B t t')) /\ (forall z : A, (@IN A z s') -> R' x z y (f z))) /\ (forall f : B -> A, forall t' : B -> Prop, forall s' : A -> Prop, forall x : B, ((@FINITE B t') /\ ((@SUBSET B t' t) /\ ((@FINITE A s') /\ ((@SUBSET A s' s) /\ (((@IMAGE B A f t') = s') /\ ((forall x' : B, forall y : B, ((@IN B x' t') /\ (@IN B y t')) -> ((f x') = (f y)) = (x' = y)) /\ ((forall x' : B, forall y : B, ((@IN B x' t') /\ (@IN B y t')) -> R' (f x') (f y) x' y) /\ (@IN B x (@DIFF B t t'))))))))) -> exists y : A, (@IN A y (@DIFF A s s')) /\ (forall z : B, (@IN B z t') -> R' y (f z) x z))))))) -> exists f : A -> B, ((@IMAGE A B f s) = t) /\ ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> R' x y (f x) (f y))). +Axiom thm_RECURSION_ON_DYADIC_FRACTIONS : forall {A : Type'}, forall R' : A -> A -> Prop, forall a : A, forall b : A, ((forall x : A, forall y : A, forall z : A, ((R' x y) /\ (R' y z)) -> R' x z) /\ ((R' a b) /\ (forall x : A, forall y : A, (R' x y) -> exists z : A, (R' x z) /\ (R' z y)))) -> exists f : R -> A, ((f (R_of_N (NUMERAL 0%N))) = a) /\ (((f (R_of_N (NUMERAL (BIT1 0%N)))) = b) /\ (forall x : R, forall y : R, ((@IN R x (@GSPEC R (fun GEN_PVAR_678 : R => exists k : N, exists n : N, @SETSPEC R GEN_PVAR_678 (N.le k (N.pow (NUMERAL (BIT0 (BIT1 0%N))) n)) (Rdiv (R_of_N k) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n))))) /\ ((@IN R y (@GSPEC R (fun GEN_PVAR_679 : R => exists k : N, exists n : N, @SETSPEC R GEN_PVAR_679 (N.le k (N.pow (NUMERAL (BIT0 (BIT1 0%N))) n)) (Rdiv (R_of_N k) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n))))) /\ (Rlt x y))) -> R' (f x) (f y))). +Axiom thm_suslin_operation : forall {A : Type'}, forall f : (list N) -> A -> Prop, (@suslin_operation A f) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_682 : A -> Prop => exists s : N -> N, @SETSPEC (A -> Prop) GEN_PVAR_682 (@IN (N -> N) s (@UNIV (N -> N))) (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_681 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_681 (N.le (NUMERAL (BIT1 0%N)) n) (f (@list_of_seq N s n)))))))). +Axiom thm_suslin : forall {_235636 : Type'}, forall u : (_235636 -> Prop) -> Prop, (@suslin _235636 u) = (@GSPEC (_235636 -> Prop) (fun GEN_PVAR_683 : _235636 -> Prop => exists f : (list N) -> _235636 -> Prop, @SETSPEC (_235636 -> Prop) GEN_PVAR_683 (forall l : list N, (~ (l = (@nil N))) -> @IN (_235636 -> Prop) (f l) u) (@suslin_operation _235636 f))). +Axiom thm_SUSLIN_INC : forall {A : Type'}, forall C : (A -> Prop) -> Prop, forall s : A -> Prop, (C s) -> @suslin A C s. +Axiom thm_SUSLIN_SUPERSET : forall {A : Type'}, forall u : (A -> Prop) -> Prop, @SUBSET (A -> Prop) u (@suslin A u). +Axiom thm_SUSLIN_SUBSET : forall {A : Type'}, forall C : (A -> Prop) -> Prop, forall D : (A -> Prop) -> Prop, (@SUBSET (A -> Prop) C D) -> @SUBSET (A -> Prop) (@suslin A C) (@suslin A D). +Axiom thm_SUSLIN_MONO : forall {A : Type'}, forall C : (A -> Prop) -> Prop, forall D : (A -> Prop) -> Prop, forall s : A -> Prop, ((forall t : A -> Prop, (C t) -> D t) /\ (@suslin A C s)) -> @suslin A D s. +Axiom thm_SUSLIN_REGULAR : forall {A : Type'}, forall u : (A -> Prop) -> Prop, (forall c : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) c) /\ ((~ (c = (@EMPTY (A -> Prop)))) /\ (@SUBSET (A -> Prop) c u))) -> @IN (A -> Prop) (@INTERS A c) u) -> (@suslin A u) = (@GSPEC (A -> Prop) (fun GEN_PVAR_685 : A -> Prop => exists f : (list N) -> A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_685 ((forall l : list N, (~ (l = (@nil N))) -> @IN (A -> Prop) (f l) u) /\ (forall s : N -> N, forall m : N, forall n : N, ((N.le (NUMERAL (BIT1 0%N)) m) /\ (N.le m n)) -> @SUBSET A (f (@list_of_seq N s n)) (f (@list_of_seq N s m)))) (@suslin_operation A f))). +Axiom thm_SUSLIN_SUSLIN : forall {A : Type'}, forall u : (A -> Prop) -> Prop, (@suslin A (@suslin A u)) = (@suslin A u). +Axiom thm_SUSLIN_INTERS : forall {A : Type'}, forall C : (A -> Prop) -> Prop, forall f : (A -> Prop) -> Prop, ((@COUNTABLE (A -> Prop) f) /\ ((~ (f = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, (@IN (A -> Prop) s f) -> @suslin A C s))) -> @suslin A C (@INTERS A f). +Axiom thm_SUSLIN_INTER : forall {A : Type'}, forall C : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@suslin A C s) /\ (@suslin A C t)) -> @suslin A C (@INTER A s t). +Axiom thm_SUSLIN_UNIONS : forall {A : Type'}, forall C : (A -> Prop) -> Prop, forall f : (A -> Prop) -> Prop, ((@COUNTABLE (A -> Prop) f) /\ ((~ (f = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, (@IN (A -> Prop) s f) -> @suslin A C s))) -> @suslin A C (@UNIONS A f). +Axiom thm_SUSLIN_UNION : forall {A : Type'}, forall C : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@suslin A C s) /\ (@suslin A C t)) -> @suslin A C (@UNION A s t). +Axiom thm_CARD_SUSLIN_LE : forall {A : Type'}, forall C : (A -> Prop) -> Prop, (@le_c (A -> Prop) R C (@UNIV R)) -> @le_c (A -> Prop) R (@suslin A C) (@UNIV R). +Axiom thm_CARD_SUSLIN_EQ : forall {A : Type'}, forall C : (A -> Prop) -> Prop, (@eq_c (A -> Prop) R C (@UNIV R)) -> @eq_c (A -> Prop) R (@suslin A C) (@UNIV R). +Axiom thm_ITER_POINTLESS : forall {_237904 _237927 : Type'}, (forall f : _237904 -> _237904, (@ITER _237904 (NUMERAL 0%N) f) = (@I _237904)) /\ (forall f : _237927 -> _237927, forall n : N, (@ITER _237927 (N.succ n) f) = (@o _237927 _237927 _237927 f (@ITER _237927 n f))). +Axiom thm_ITER_ALT : forall {_237939 _237970 : Type'}, (forall f : _237939 -> _237939, forall x : _237939, (@ITER _237939 (NUMERAL 0%N) f x) = x) /\ (forall f : _237970 -> _237970, forall n : N, forall x : _237970, (@ITER _237970 (N.succ n) f x) = (@ITER _237970 n f (f x))). +Axiom thm_ITER_ALT_POINTLESS : forall {_237984 _238007 : Type'}, (forall f : _237984 -> _237984, (@ITER _237984 (NUMERAL 0%N) f) = (@I _237984)) /\ (forall f : _238007 -> _238007, forall n : N, (@ITER _238007 (N.succ n) f) = (@o _238007 _238007 _238007 (@ITER _238007 n f) f)). +Axiom thm_ITER_1 : forall {_238025 : Type'}, forall f : _238025 -> _238025, forall x : _238025, (@ITER _238025 (NUMERAL (BIT1 0%N)) f x) = (f x). +Axiom thm_ITER_ADD : forall {_238043 : Type'}, forall f : _238043 -> _238043, forall n : N, forall m : N, forall x : _238043, (@ITER _238043 n f (@ITER _238043 m f x)) = (@ITER _238043 (N.add n m) f x). +Axiom thm_ITER_ADD_POINTLESS : forall {_238089 : Type'} (f : _238089 -> _238089), forall m : N, forall n : N, (@ITER _238089 (N.add m n) f) = (@o _238089 _238089 _238089 (@ITER _238089 m f) (@ITER _238089 n f)). +Axiom thm_ITER_MUL : forall {_238116 : Type'}, forall f : _238116 -> _238116, forall n : N, forall m : N, forall x : _238116, (@ITER _238116 n (@ITER _238116 m f) x) = (@ITER _238116 (N.mul n m) f x). +Axiom thm_ITER_FIXPOINT : forall {_238139 : Type'}, forall f : _238139 -> _238139, forall n : N, forall x : _238139, ((f x) = x) -> (@ITER _238139 n f x) = x. +Axiom thm_ORDER_EXISTENCE_GEN : forall {A : Type'}, forall P : A -> Prop, forall f : N -> A, ((P (f (NUMERAL 0%N))) /\ (forall m : N, forall n : N, ((P (f m)) /\ (~ (m = (NUMERAL 0%N)))) -> (P (f (N.add m n))) = (P (f n)))) -> exists d : N, forall n : N, (P (f n)) = (num_divides d n). +Axiom thm_ORDER_EXISTENCE_ITER : forall {A : Type'}, forall R' : A -> A -> Prop, forall f : A -> A, forall z : A, ((R' z z) /\ ((forall x : A, forall y : A, (R' x y) -> R' y x) /\ ((forall x : A, forall y : A, forall z' : A, ((R' x y) /\ (R' y z')) -> R' x z') /\ (forall x : A, forall y : A, (R' x y) -> R' (f x) (f y))))) -> exists d : N, forall n : N, (R' (@ITER A n f z) z) = (num_divides d n). +Axiom thm_ORDER_EXISTENCE_CARD : forall {A : Type'}, forall R' : A -> A -> Prop, forall f : A -> A, forall z : A, forall k : N, ((@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_705 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_705 (@IN N n (@UNIV N)) (R' (@ITER A n f z))))) /\ ((N.le (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_706 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_706 (@IN N n (@UNIV N)) (R' (@ITER A n f z))))) k) /\ ((R' z z) /\ ((forall x : A, forall y : A, (R' x y) -> R' y x) /\ ((forall x : A, forall y : A, forall z' : A, ((R' x y) /\ (R' y z')) -> R' x z') /\ (forall x : A, forall y : A, (R' (f x) (f y)) = (R' x y))))))) -> exists d : N, (N.lt (NUMERAL 0%N) d) /\ ((N.le d k) /\ (forall n : N, (R' (@ITER A n f z) z) = (num_divides d n))). +Axiom thm_ORDER_EXISTENCE_FINITE : forall {A : Type'}, forall R' : A -> A -> Prop, forall f : A -> A, forall z : A, ((@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_708 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_708 (@IN N n (@UNIV N)) (R' (@ITER A n f z))))) /\ ((R' z z) /\ ((forall x : A, forall y : A, (R' x y) -> R' y x) /\ ((forall x : A, forall y : A, forall z' : A, ((R' x y) /\ (R' y z')) -> R' x z') /\ (forall x : A, forall y : A, (R' (f x) (f y)) = (R' x y)))))) -> exists d : N, (N.lt (NUMERAL 0%N) d) /\ (forall n : N, (R' (@ITER A n f z) z) = (num_divides d n)). +Axiom thm_frag_support : forall {A : Type'}, forall x : frag A, (@frag_support A x) = (@GSPEC A (fun GEN_PVAR_710 : A => exists a : A, @SETSPEC A GEN_PVAR_710 (~ ((@dest_frag A x a) = (Z_of_N (NUMERAL 0%N)))) a)). +Axiom thm_frag_0 : forall {A : Type'}, (@frag_0 A) = (@mk_frag A (fun x : A => Z_of_N (NUMERAL 0%N))). +Axiom thm_frag_of : forall {A : Type'}, forall c : A, (@frag_of A c) = (@mk_frag A (fun a : A => @COND Z (a = c) (Z_of_N (NUMERAL (BIT1 0%N))) (Z_of_N (NUMERAL 0%N)))). +Axiom thm_frag_neg : forall {A : Type'}, forall x : frag A, (@frag_neg A x) = (@mk_frag A (fun a : A => int_neg (@dest_frag A x a))). +Axiom thm_frag_cmul : forall {A : Type'}, forall c : Z, forall x : frag A, (@frag_cmul A c x) = (@mk_frag A (fun a : A => int_mul c (@dest_frag A x a))). +Axiom thm_frag_add : forall {A : Type'}, forall x : frag A, forall y : frag A, (@frag_add A x y) = (@mk_frag A (fun a : A => int_add (@dest_frag A x a) (@dest_frag A y a))). +Axiom thm_frag_sub : forall {A : Type'}, forall x : frag A, forall y : frag A, (@frag_sub A x y) = (@mk_frag A (fun a : A => int_sub (@dest_frag A x a) (@dest_frag A y a))). +Axiom thm_FRAG_EQ : forall {A : Type'}, forall c1 : frag A, forall c2 : frag A, (c1 = c2) = ((@dest_frag A c1) = (@dest_frag A c2)). +Axiom thm_DEST_FRAG_0 : forall {A : Type'}, (@dest_frag A (@frag_0 A)) = (fun x : A => Z_of_N (NUMERAL 0%N)). +Axiom thm_DEST_FRAG_OF : forall {A : Type'}, forall c : A, (@dest_frag A (@frag_of A c)) = (fun a : A => @COND Z (a = c) (Z_of_N (NUMERAL (BIT1 0%N))) (Z_of_N (NUMERAL 0%N))). +Axiom thm_DEST_FRAG_NEG : forall {A : Type'}, forall x : frag A, (@dest_frag A (@frag_neg A x)) = (fun a : A => int_neg (@dest_frag A x a)). +Axiom thm_DEST_FRAG_CMUL : forall {A : Type'}, forall c : Z, forall x : frag A, (@dest_frag A (@frag_cmul A c x)) = (fun a : A => int_mul c (@dest_frag A x a)). +Axiom thm_DEST_FRAG_ADD : forall {A : Type'}, forall x : frag A, forall y : frag A, (@dest_frag A (@frag_add A x y)) = (fun a : A => int_add (@dest_frag A x a) (@dest_frag A y a)). +Axiom thm_DEST_FRAG_SUB : forall {A : Type'}, forall x : frag A, forall y : frag A, (@dest_frag A (@frag_sub A x y)) = (fun a : A => int_sub (@dest_frag A x a) (@dest_frag A y a)). +Axiom thm_FRAG_OF_NONZERO : forall {A : Type'}, forall a : A, ~ ((@frag_of A a) = (@frag_0 A)). +Axiom thm_FINITE_FRAG_SUPPORT : forall {A : Type'}, forall x : frag A, @FINITE A (@frag_support A x). +Axiom thm_FRAG_SUPPORT_0 : forall {_239419 : Type'}, (@frag_support _239419 (@frag_0 _239419)) = (@EMPTY _239419). +Axiom thm_FRAG_SUPPORT_OF : forall {A : Type'}, forall a : A, (@frag_support A (@frag_of A a)) = (@INSERT A a (@EMPTY A)). +Axiom thm_FRAG_SUPPORT_NEG : forall {A : Type'}, forall x : frag A, (@frag_support A (@frag_neg A x)) = (@frag_support A x). +Axiom thm_FRAG_SUPPORT_CMUL : forall {A : Type'}, forall a : Z, forall x : frag A, @SUBSET A (@frag_support A (@frag_cmul A a x)) (@frag_support A x). +Axiom thm_FRAG_SUPPORT_ADD : forall {A : Type'}, forall x : frag A, forall y : frag A, @SUBSET A (@frag_support A (@frag_add A x y)) (@UNION A (@frag_support A x) (@frag_support A y)). +Axiom thm_FRAG_SUPPORT_SUB : forall {A : Type'}, forall x : frag A, forall y : frag A, @SUBSET A (@frag_support A (@frag_sub A x y)) (@UNION A (@frag_support A x) (@frag_support A y)). +Axiom thm_FRAG_SUPPORT_EQ_EMPTY : forall {A : Type'}, forall c : frag A, ((@frag_support A c) = (@EMPTY A)) = (c = (@frag_0 A)). +Axiom thm_FRAG_OF_EQ : forall {A : Type'}, forall x : A, forall y : A, ((@frag_of A x) = (@frag_of A y)) = (x = y). +Axiom thm_FRAG_ADD_EQ_0 : forall {A : Type'}, forall c1 : frag A, forall c2 : frag A, ((@DISJOINT A (@frag_support A c1) (@frag_support A c2)) /\ ((@frag_add A c1 c2) = (@frag_0 A))) -> (c1 = (@frag_0 A)) /\ (c2 = (@frag_0 A)). +Axiom thm_NEUTRAL_FRAG_ADD : forall {A : Type'}, (@neutral (frag A) (@frag_add A)) = (@frag_0 A). +Axiom thm_MONOIDAL_FRAG_ADD : forall {_239708 : Type'}, @monoidal (frag _239708) (@frag_add _239708). +Axiom thm_FRAG_CMUL_SUM : forall {A B : Type'}, forall f : B -> frag A, forall k : B -> Prop, forall a : Z, (@frag_cmul A a (@iterate B (frag A) (@frag_add A) k f)) = (@iterate B (frag A) (@frag_add A) k (fun b : B => @frag_cmul A a (f b))). +Axiom thm_FRAG_SUPPORT_SUM : forall {A B : Type'}, forall f : B -> frag A, forall k : B -> Prop, @SUBSET A (@frag_support A (@iterate B (frag A) (@frag_add A) k f)) (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_719 : A -> Prop => exists i : B, @SETSPEC (A -> Prop) GEN_PVAR_719 (@IN B i k) (@frag_support A (f i))))). +Axiom thm_frag_extend : forall {A B : Type'}, forall x : frag A, forall f : A -> frag B, (@frag_extend A B f x) = (@iterate A (frag B) (@frag_add B) (@frag_support A x) (fun a : A => @frag_cmul B (@dest_frag A x a) (f a))). +Axiom thm_FRAG_EXTEND : forall {A B : Type'}, forall f : A -> frag B, forall x : frag A, (@frag_extend A B f x) = (@iterate A (frag B) (@frag_add B) (@UNIV A) (fun a : A => @frag_cmul B (@dest_frag A x a) (f a))). +Axiom thm_FRAG_EXTEND_0 : forall {A B : Type'}, forall f : A -> frag B, (@frag_extend A B f (@frag_0 A)) = (@frag_0 B). +Axiom thm_FRAG_EXTEND_OF : forall {A B : Type'}, forall f : A -> frag B, forall a : A, (@frag_extend A B f (@frag_of A a)) = (f a). +Axiom thm_FRAG_EXTEND_CMUL : forall {A B : Type'}, forall f : A -> frag B, forall c : Z, forall x : frag A, (@frag_extend A B f (@frag_cmul A c x)) = (@frag_cmul B c (@frag_extend A B f x)). +Axiom thm_FRAG_EXTEND_NEG : forall {A B : Type'}, forall f : A -> frag B, forall x : frag A, (@frag_extend A B f (@frag_neg A x)) = (@frag_neg B (@frag_extend A B f x)). +Axiom thm_FRAG_EXTEND_ADD : forall {A B : Type'}, forall f : A -> frag B, forall x : frag A, forall y : frag A, (@frag_extend A B f (@frag_add A x y)) = (@frag_add B (@frag_extend A B f x) (@frag_extend A B f y)). +Axiom thm_FRAG_EXTEND_SUB : forall {A B : Type'}, forall f : A -> frag B, forall x : frag A, forall y : frag A, (@frag_extend A B f (@frag_sub A x y)) = (@frag_sub B (@frag_extend A B f x) (@frag_extend A B f y)). +Axiom thm_FRAG_EXTEND_SUM : forall {A B C : Type'}, forall f : A -> frag B, forall g : C -> frag A, forall k : C -> Prop, (@FINITE C k) -> (@frag_extend A B f (@iterate C (frag A) (@frag_add A) k g)) = (@iterate C (frag B) (@frag_add B) k (@o C (frag A) (frag B) (@frag_extend A B f) g)). +Axiom thm_FRAG_EXTEND_EQ : forall {A B : Type'}, forall g : A -> frag B, forall h : A -> frag B, forall c : frag A, (forall f : A, (@IN A f (@frag_support A c)) -> (g f) = (h f)) -> (@frag_extend A B g c) = (@frag_extend A B h c). +Axiom thm_FRAG_EXTEND_EQ_0 : forall {A B : Type'}, forall f : A -> frag B, forall c : frag A, (forall a : A, (@IN A a (@frag_support A c)) -> (f a) = (@frag_0 B)) -> (@frag_extend A B f c) = (@frag_0 B). +Axiom thm_FRAG_SUPPORT_FRAG_EXTEND : forall {A B : Type'}, forall f : A -> frag B, forall c : frag A, @SUBSET B (@frag_support B (@frag_extend A B f c)) (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_720 : B -> Prop => exists a : A, @SETSPEC (B -> Prop) GEN_PVAR_720 (@IN A a (@frag_support A c)) (@frag_support B (f a))))). +Axiom thm_FRAG_EXPANSION : forall {A : Type'}, forall x : frag A, x = (@frag_extend A A (@frag_of A) x). +Axiom thm_FRAG_CLOSURE_SUB_CMUL : forall {A : Type'}, forall P : (frag A) -> Prop, ((P (@frag_0 A)) /\ (forall c1 : frag A, forall c2 : frag A, ((P c1) /\ (P c2)) -> P (@frag_sub A c1 c2))) -> forall a : Z, forall c : frag A, (P c) -> P (@frag_cmul A a c). +Axiom thm_FRAG_INDUCTION : forall {A : Type'}, forall P : (frag A) -> Prop, forall s : A -> Prop, ((P (@frag_0 A)) /\ ((forall a : A, (@IN A a s) -> P (@frag_of A a)) /\ (forall c1 : frag A, forall c2 : frag A, ((P c1) /\ (P c2)) -> P (@frag_sub A c1 c2)))) -> forall c : frag A, (@SUBSET A (@frag_support A c) s) -> P c. +Axiom thm_FRAG_EXTEND_COMPOSE : forall {A B C : Type'}, forall f : B -> frag C, forall g : A -> B, forall c : frag A, (@frag_extend B C f (@frag_extend A B (@o A B (frag B) (@frag_of B) g) c)) = (@frag_extend A C (@o A B (frag C) f g) c). +Axiom thm_FRAG_SPLIT : forall {A : Type'}, forall c : frag A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A (@frag_support A c) (@UNION A s t)) -> exists d : frag A, exists e : frag A, (@SUBSET A (@frag_support A d) s) /\ ((@SUBSET A (@frag_support A e) t) /\ ((@frag_add A d e) = c)). +Axiom thm_DIVIDES_0 : forall x : N, num_divides x (NUMERAL 0%N). +Axiom thm_DIVIDES_ZERO : forall x : N, (num_divides (NUMERAL 0%N) x) = (x = (NUMERAL 0%N)). +Axiom thm_DIVIDES_1 : forall x : N, num_divides (NUMERAL (BIT1 0%N)) x. +Axiom thm_DIVIDES_REFL : forall x : N, num_divides x x. +Axiom thm_DIVIDES_TRANS : forall a : N, forall b : N, forall c : N, ((num_divides a b) /\ (num_divides b c)) -> num_divides a c. +Axiom thm_DIVIDES_ADD : forall d : N, forall a : N, forall b : N, ((num_divides d a) /\ (num_divides d b)) -> num_divides d (N.add a b). +Axiom thm_DIVIDES_SUB_EQ : forall d : N, forall a : N, forall b : N, (num_divides d (N.sub a b)) = ((N.lt a b) \/ (@eq2 N a b (num_mod d))). +Axiom thm_DIVIDES_SUB : forall d : N, forall a : N, forall b : N, ((num_divides d a) /\ (num_divides d b)) -> num_divides d (N.sub a b). +Axiom thm_DIVIDES_SUB_1 : forall d : N, forall n : N, (num_divides d (N.sub n (NUMERAL (BIT1 0%N)))) = ((n = (NUMERAL 0%N)) \/ (@eq2 N n (NUMERAL (BIT1 0%N)) (num_mod d))). +Axiom thm_DIVIDES_LMUL : forall d : N, forall a : N, forall x : N, (num_divides d a) -> num_divides d (N.mul x a). +Axiom thm_DIVIDES_RMUL : forall d : N, forall a : N, forall x : N, (num_divides d a) -> num_divides d (N.mul a x). +Axiom thm_DIVIDES_ADD_REVR : forall d : N, forall a : N, forall b : N, ((num_divides d a) /\ (num_divides d (N.add a b))) -> num_divides d b. +Axiom thm_DIVIDES_ADD_REVL : forall d : N, forall a : N, forall b : N, ((num_divides d b) /\ (num_divides d (N.add a b))) -> num_divides d a. +Axiom thm_DIVIDES_MUL_L : forall a : N, forall b : N, forall c : N, (num_divides a b) -> num_divides (N.mul c a) (N.mul c b). +Axiom thm_DIVIDES_MUL_R : forall a : N, forall b : N, forall c : N, (num_divides a b) -> num_divides (N.mul a c) (N.mul b c). +Axiom thm_DIVIDES_LMUL2 : forall d : N, forall a : N, forall x : N, (num_divides (N.mul x d) a) -> num_divides d a. +Axiom thm_DIVIDES_RMUL2 : forall d : N, forall a : N, forall x : N, (num_divides (N.mul d x) a) -> num_divides d a. +Axiom thm_DIVIDES_CMUL2 : forall a : N, forall b : N, forall c : N, ((num_divides (N.mul c a) (N.mul c b)) /\ (~ (c = (NUMERAL 0%N)))) -> num_divides a b. +Axiom thm_DIVIDES_LMUL2_EQ : forall a : N, forall b : N, forall c : N, (~ (c = (NUMERAL 0%N))) -> (num_divides (N.mul c a) (N.mul c b)) = (num_divides a b). +Axiom thm_DIVIDES_RMUL2_EQ : forall a : N, forall b : N, forall c : N, (~ (c = (NUMERAL 0%N))) -> (num_divides (N.mul a c) (N.mul b c)) = (num_divides a b). +Axiom thm_DIVIDES_EQ_ZERO : forall p : N, forall n : N, (N.lt n p) -> (num_divides p n) = (n = (NUMERAL 0%N)). +Axiom thm_DIVIDES_CASES : forall m : N, forall n : N, (num_divides n m) -> (m = (NUMERAL 0%N)) \/ ((m = n) \/ (N.le (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) m)). +Axiom thm_DIVIDES_DIV_NOT : forall n : N, forall x : N, forall q : N, forall r : N, ((x = (N.add (N.mul q n) r)) /\ ((N.lt (NUMERAL 0%N) r) /\ (N.lt r n))) -> ~ (num_divides n x). +Axiom thm_DIVIDES_MUL2 : forall a : N, forall b : N, forall c : N, forall d : N, ((num_divides a b) /\ (num_divides c d)) -> num_divides (N.mul a c) (N.mul b d). +Axiom thm_DIVIDES_EXP : forall x : N, forall y : N, forall n : N, (num_divides x y) -> num_divides (N.pow x n) (N.pow y n). +Axiom thm_DIVIDES_EXP2 : forall n : N, forall x : N, forall y : N, ((~ (n = (NUMERAL 0%N))) /\ (num_divides (N.pow x n) y)) -> num_divides x y. +Axiom thm_DIVIDES_EXP_LE_IMP : forall p : N, forall m : N, forall n : N, (N.le m n) -> num_divides (N.pow p m) (N.pow p n). +Axiom thm_DIVIDES_EXP_LE : forall p : N, forall m : N, forall n : N, (N.le (NUMERAL (BIT0 (BIT1 0%N))) p) -> (num_divides (N.pow p m) (N.pow p n)) = (N.le m n). +Axiom thm_DIVIDES_TRIVIAL_UPPERBOUND : forall p : N, forall n : N, ((~ (n = (NUMERAL 0%N))) /\ (N.le (NUMERAL (BIT0 (BIT1 0%N))) p)) -> ~ (num_divides (N.pow p n) n). +Axiom thm_DIVIDES_FACT : forall n : N, forall p : N, ((N.le (NUMERAL (BIT1 0%N)) p) /\ (N.le p n)) -> num_divides p (FACT n). +Axiom thm_DIVIDES_2 : forall n : N, (num_divides (NUMERAL (BIT0 (BIT1 0%N))) n) = (EVEN n). +Axiom thm_DIVIDES_REXP_SUC : forall x : N, forall y : N, forall n : N, (num_divides x y) -> num_divides x (N.pow y (N.succ n)). +Axiom thm_DIVIDES_REXP : forall x : N, forall y : N, forall n : N, ((num_divides x y) /\ (~ (n = (NUMERAL 0%N)))) -> num_divides x (N.pow y n). +Axiom thm_FINITE_DIVISORS : forall n : N, (~ (n = (NUMERAL 0%N))) -> @FINITE N (@GSPEC N (fun GEN_PVAR_722 : N => exists d : N, @SETSPEC N GEN_PVAR_722 (num_divides d n) d)). +Axiom thm_FINITE_SPECIAL_DIVISORS : forall (P : N -> Prop), forall n : N, (~ (n = (NUMERAL 0%N))) -> @FINITE N (@GSPEC N (fun GEN_PVAR_724 : N => exists d : N, @SETSPEC N GEN_PVAR_724 ((P d) /\ (num_divides d n)) d)). +Axiom thm_DIVISORS_EQ : forall m : N, forall n : N, (m = n) = (forall d : N, (num_divides d m) = (num_divides d n)). +Axiom thm_MULTIPLES_EQ : forall m : N, forall n : N, (m = n) = (forall d : N, (num_divides m d) = (num_divides n d)). +Axiom thm_DIVIDES_NSUM : forall {_241951 : Type'}, forall n : N, forall f : _241951 -> N, forall s : _241951 -> Prop, ((@FINITE _241951 s) /\ (forall i : _241951, (@IN _241951 i s) -> num_divides n (f i))) -> num_divides n (@nsum _241951 s f). +Axiom thm_DIVIDES_GCD : forall a : N, forall b : N, forall d : N, (num_divides d (num_gcd (@pair N N a b))) = ((num_divides d a) /\ (num_divides d b)). +Axiom thm_GCD_0 : (forall a : N, (num_gcd (@pair N N (NUMERAL 0%N) a)) = a) /\ (forall a : N, (num_gcd (@pair N N a (NUMERAL 0%N))) = a). +Axiom thm_GCD_ZERO : forall a : N, forall b : N, ((num_gcd (@pair N N a b)) = (NUMERAL 0%N)) = ((a = (NUMERAL 0%N)) /\ (b = (NUMERAL 0%N))). +Axiom thm_GCD_REFL : forall a : N, (num_gcd (@pair N N a a)) = a. +Axiom thm_GCD_1 : (forall a : N, (num_gcd (@pair N N (NUMERAL (BIT1 0%N)) a)) = (NUMERAL (BIT1 0%N))) /\ (forall a : N, (num_gcd (@pair N N a (NUMERAL (BIT1 0%N)))) = (NUMERAL (BIT1 0%N))). +Axiom thm_GCD_MULTIPLE : forall a : N, forall b : N, (num_gcd (@pair N N b (N.mul a b))) = b. +Axiom thm_GCD_ADD : (forall a : N, forall b : N, (num_gcd (@pair N N (N.add a b) b)) = (num_gcd (@pair N N a b))) /\ ((forall a : N, forall b : N, (num_gcd (@pair N N (N.add b a) b)) = (num_gcd (@pair N N a b))) /\ ((forall a : N, forall b : N, (num_gcd (@pair N N a (N.add a b))) = (num_gcd (@pair N N a b))) /\ (forall a : N, forall b : N, (num_gcd (@pair N N a (N.add b a))) = (num_gcd (@pair N N a b))))). +Axiom thm_GCD_SUB : (forall a : N, forall b : N, (N.le b a) -> (num_gcd (@pair N N (N.sub a b) b)) = (num_gcd (@pair N N a b))) /\ (forall a : N, forall b : N, (N.le a b) -> (num_gcd (@pair N N a (N.sub b a))) = (num_gcd (@pair N N a b))). +Axiom thm_DIVIDES_GCD_LEFT : forall m : N, forall n : N, (num_divides m n) = ((num_gcd (@pair N N m n)) = m). +Axiom thm_DIVIDES_GCD_RIGHT : forall m : N, forall n : N, (num_divides n m) = ((num_gcd (@pair N N m n)) = n). +Axiom thm_GCD_COPRIME_LMUL : forall a : N, forall b : N, forall c : N, (num_coprime (@pair N N a b)) -> (num_gcd (@pair N N (N.mul a b) c)) = (N.mul (num_gcd (@pair N N a c)) (num_gcd (@pair N N b c))). +Axiom thm_GCD_COPRIME_RMUL : forall a : N, forall b : N, forall c : N, (num_coprime (@pair N N a b)) -> (num_gcd (@pair N N c (N.mul a b))) = (N.mul (num_gcd (@pair N N c a)) (num_gcd (@pair N N c b))). +Axiom thm_DIVIDES_LMUL_GCD : (forall d : N, forall a : N, forall b : N, (num_divides d (N.mul (num_gcd (@pair N N d a)) b)) = (num_divides d (N.mul a b))) /\ (forall d : N, forall a : N, forall b : N, (num_divides d (N.mul (num_gcd (@pair N N a d)) b)) = (num_divides d (N.mul a b))). +Axiom thm_DIVIDES_RMUL_GCD : (forall d : N, forall a : N, forall b : N, (num_divides d (N.mul a (num_gcd (@pair N N d b)))) = (num_divides d (N.mul a b))) /\ (forall d : N, forall a : N, forall b : N, (num_divides d (N.mul a (num_gcd (@pair N N b d)))) = (num_divides d (N.mul a b))). +Axiom thm_GCD_MUL_COPRIME : (forall a : N, forall b : N, forall c : N, (num_coprime (@pair N N a b)) -> (num_gcd (@pair N N a (N.mul b c))) = (num_gcd (@pair N N a c))) /\ ((forall a : N, forall b : N, forall c : N, (num_coprime (@pair N N a c)) -> (num_gcd (@pair N N a (N.mul b c))) = (num_gcd (@pair N N a b))) /\ ((forall a : N, forall b : N, forall c : N, (num_coprime (@pair N N b c)) -> (num_gcd (@pair N N a (N.mul b c))) = (N.mul (num_gcd (@pair N N a b)) (num_gcd (@pair N N a c)))) /\ ((forall a : N, forall b : N, forall c : N, (num_coprime (@pair N N a c)) -> (num_gcd (@pair N N (N.mul a b) c)) = (num_gcd (@pair N N b c))) /\ ((forall a : N, forall b : N, forall c : N, (num_coprime (@pair N N b c)) -> (num_gcd (@pair N N (N.mul a b) c)) = (num_gcd (@pair N N a c))) /\ (forall a : N, forall b : N, forall c : N, (num_coprime (@pair N N a b)) -> (num_gcd (@pair N N (N.mul a b) c)) = (N.mul (num_gcd (@pair N N a c)) (num_gcd (@pair N N b c)))))))). +Axiom thm_GCD_SYM : forall a : N, forall b : N, (num_gcd (@pair N N a b)) = (num_gcd (@pair N N b a)). +Axiom thm_GCD_ASSOC : forall a : N, forall b : N, forall c : N, (num_gcd (@pair N N a (num_gcd (@pair N N b c)))) = (num_gcd (@pair N N (num_gcd (@pair N N a b)) c)). +Axiom thm_GCD_LMUL : forall a : N, forall b : N, forall c : N, (num_gcd (@pair N N (N.mul c a) (N.mul c b))) = (N.mul c (num_gcd (@pair N N a b))). +Axiom thm_GCD_RMUL : forall a : N, forall b : N, forall c : N, (num_gcd (@pair N N (N.mul a c) (N.mul b c))) = (N.mul c (num_gcd (@pair N N a b))). +Axiom thm_GCD_BEZOUT_SUM : forall a : N, forall b : N, forall d : N, forall x : N, forall y : N, ((N.add (N.mul a x) (N.mul b y)) = d) -> num_divides (num_gcd (@pair N N a b)) d. +Axiom thm_GCD_COPRIME_DIVIDES_LMUL : forall a : N, forall b : N, forall c : N, ((num_coprime (@pair N N a b)) /\ (num_divides a c)) -> (num_gcd (@pair N N (N.mul a b) c)) = (N.mul a (num_gcd (@pair N N b c))). +Axiom thm_GCD_COPRIME_DIVIDES_RMUL : forall a : N, forall b : N, forall c : N, ((num_coprime (@pair N N b c)) /\ (num_divides b a)) -> (num_gcd (@pair N N a (N.mul b c))) = (N.mul b (num_gcd (@pair N N a c))). +Axiom thm_GCD_UNIQUE : forall d : N, forall a : N, forall b : N, (((num_divides d a) /\ (num_divides d b)) /\ (forall e : N, ((num_divides e a) /\ (num_divides e b)) -> num_divides e d)) = (d = (num_gcd (@pair N N a b))). +Axiom thm_GCD_EQ : forall (x : N) (y : N) (u : N) (v : N), (forall d : N, ((num_divides d x) /\ (num_divides d y)) = ((num_divides d u) /\ (num_divides d v))) -> (num_gcd (@pair N N x y)) = (num_gcd (@pair N N u v)). +Axiom thm_BEZOUT_GCD_STRONG : forall a : N, forall b : N, (~ (a = (NUMERAL 0%N))) -> exists x : N, exists y : N, (N.mul a x) = (N.add (N.mul b y) (num_gcd (@pair N N a b))). +Axiom thm_BEZOUT_ADD_STRONG : forall a : N, forall b : N, (~ (a = (NUMERAL 0%N))) -> exists d : N, exists x : N, exists y : N, (num_divides d a) /\ ((num_divides d b) /\ ((N.mul a x) = (N.add (N.mul b y) d))). +Axiom thm_BEZOUT_GCD : forall a : N, forall b : N, exists x : N, exists y : N, ((N.sub (N.mul a x) (N.mul b y)) = (num_gcd (@pair N N a b))) \/ ((N.sub (N.mul b x) (N.mul a y)) = (num_gcd (@pair N N a b))). +Axiom thm_BEZOUT_ADD : forall a : N, forall b : N, exists d : N, exists x : N, exists y : N, ((num_divides d a) /\ (num_divides d b)) /\ (((N.mul a x) = (N.add (N.mul b y) d)) \/ ((N.mul b x) = (N.add (N.mul a y) d))). +Axiom thm_BEZOUT : forall a : N, forall b : N, exists d : N, exists x : N, exists y : N, ((num_divides d a) /\ (num_divides d b)) /\ (((N.sub (N.mul a x) (N.mul b y)) = d) \/ ((N.sub (N.mul b x) (N.mul a y)) = d)). +Axiom thm_GCD_BEZOUT : forall a : N, forall b : N, forall d : N, (exists x : N, exists y : N, ((N.sub (N.mul a x) (N.mul b y)) = d) \/ ((N.sub (N.mul b x) (N.mul a y)) = d)) = (num_divides (num_gcd (@pair N N a b)) d). +Axiom thm_GCD_LE : (forall m : N, forall n : N, (N.le (num_gcd (@pair N N m n)) m) = ((m = (NUMERAL 0%N)) -> n = (NUMERAL 0%N))) /\ (forall m : N, forall n : N, (N.le (num_gcd (@pair N N m n)) n) = ((n = (NUMERAL 0%N)) -> m = (NUMERAL 0%N))). +Axiom thm_GCD_LE_MIN_EQ : forall m : N, forall n : N, (N.le (num_gcd (@pair N N m n)) (N.min m n)) = ((m = (NUMERAL 0%N)) = (n = (NUMERAL 0%N))). +Axiom thm_GCD_LE_MIN : forall m : N, forall n : N, ((m = (NUMERAL 0%N)) = (n = (NUMERAL 0%N))) -> N.le (num_gcd (@pair N N m n)) (N.min m n). +Axiom thm_GCD_LE_MAX : forall m : N, forall n : N, N.le (num_gcd (@pair N N m n)) (N.max m n). +Axiom thm_COPRIME : forall a : N, forall b : N, (num_coprime (@pair N N a b)) = (forall d : N, ((num_divides d a) /\ (num_divides d b)) = (d = (NUMERAL (BIT1 0%N)))). +Axiom thm_COPRIME_GCD : forall a : N, forall b : N, (num_coprime (@pair N N a b)) = ((num_gcd (@pair N N a b)) = (NUMERAL (BIT1 0%N))). +Axiom thm_GCD_ONE : forall a : N, forall b : N, (num_coprime (@pair N N a b)) -> (num_gcd (@pair N N a b)) = (NUMERAL (BIT1 0%N)). +Axiom thm_COPRIME_SYM : forall a : N, forall b : N, (num_coprime (@pair N N a b)) = (num_coprime (@pair N N b a)). +Axiom thm_COPRIME_BEZOUT : forall a : N, forall b : N, (num_coprime (@pair N N a b)) = (exists x : N, exists y : N, ((N.sub (N.mul a x) (N.mul b y)) = (NUMERAL (BIT1 0%N))) \/ ((N.sub (N.mul b x) (N.mul a y)) = (NUMERAL (BIT1 0%N)))). +Axiom thm_COPRIME_DIVPROD : forall d : N, forall a : N, forall b : N, ((num_divides d (N.mul a b)) /\ (num_coprime (@pair N N d a))) -> num_divides d b. +Axiom thm_COPRIME_1 : (forall a : N, num_coprime (@pair N N a (NUMERAL (BIT1 0%N)))) /\ (forall a : N, num_coprime (@pair N N (NUMERAL (BIT1 0%N)) a)). +Axiom thm_GCD_COPRIME : forall a : N, forall b : N, forall a' : N, forall b' : N, ((~ ((num_gcd (@pair N N a b)) = (NUMERAL 0%N))) /\ ((a = (N.mul a' (num_gcd (@pair N N a b)))) /\ (b = (N.mul b' (num_gcd (@pair N N a b)))))) -> num_coprime (@pair N N a' b'). +Axiom thm_GCD_COPRIME_EXISTS : forall a : N, forall b : N, exists a' : N, exists b' : N, (a = (N.mul a' (num_gcd (@pair N N a b)))) /\ ((b = (N.mul b' (num_gcd (@pair N N a b)))) /\ (num_coprime (@pair N N a' b'))). +Axiom thm_COPRIME_DIVPROD_IFF : forall d : N, forall a : N, (~ (d = (NUMERAL 0%N))) -> (forall b : N, (num_divides d (N.mul a b)) -> num_divides d b) = (num_coprime (@pair N N d a)). +Axiom thm_CONG_MULT_LCANCEL_IFF : forall a : N, forall n : N, (~ (n = (NUMERAL 0%N))) -> (forall x : N, forall y : N, (@eq2 N (N.mul a x) (N.mul a y) (num_mod n)) -> @eq2 N x y (num_mod n)) = (num_coprime (@pair N N a n)). +Axiom thm_CONG_MULT_RCANCEL_IFF : forall a : N, forall n : N, (~ (n = (NUMERAL 0%N))) -> (forall x : N, forall y : N, (@eq2 N (N.mul x a) (N.mul y a) (num_mod n)) -> @eq2 N x y (num_mod n)) = (num_coprime (@pair N N a n)). +Axiom thm_COPRIME_0 : (forall d : N, (num_coprime (@pair N N d (NUMERAL 0%N))) = (d = (NUMERAL (BIT1 0%N)))) /\ (forall d : N, (num_coprime (@pair N N (NUMERAL 0%N) d)) = (d = (NUMERAL (BIT1 0%N)))). +Axiom thm_COPRIME_MUL : forall d : N, forall a : N, forall b : N, ((num_coprime (@pair N N d a)) /\ (num_coprime (@pair N N d b))) -> num_coprime (@pair N N d (N.mul a b)). +Axiom thm_COPRIME_LMUL2 : forall d : N, forall a : N, forall b : N, (num_coprime (@pair N N d (N.mul a b))) -> num_coprime (@pair N N d b). +Axiom thm_COPRIME_RMUL2 : forall d : N, forall a : N, forall b : N, (num_coprime (@pair N N d (N.mul a b))) -> num_coprime (@pair N N d a). +Axiom thm_COPRIME_LMUL : forall d : N, forall a : N, forall b : N, (num_coprime (@pair N N (N.mul a b) d)) = ((num_coprime (@pair N N a d)) /\ (num_coprime (@pair N N b d))). +Axiom thm_COPRIME_RMUL : forall d : N, forall a : N, forall b : N, (num_coprime (@pair N N d (N.mul a b))) = ((num_coprime (@pair N N d a)) /\ (num_coprime (@pair N N d b))). +Axiom thm_COPRIME_EXP : forall n : N, forall a : N, forall d : N, (num_coprime (@pair N N d a)) -> num_coprime (@pair N N d (N.pow a n)). +Axiom thm_COPRIME_EXP_IMP : forall n : N, forall a : N, forall b : N, (num_coprime (@pair N N a b)) -> num_coprime (@pair N N (N.pow a n) (N.pow b n)). +Axiom thm_COPRIME_REXP : forall m : N, forall n : N, forall k : N, (num_coprime (@pair N N m (N.pow n k))) = ((num_coprime (@pair N N m n)) \/ (k = (NUMERAL 0%N))). +Axiom thm_COPRIME_LEXP : forall m : N, forall n : N, forall k : N, (num_coprime (@pair N N (N.pow m k) n)) = ((num_coprime (@pair N N m n)) \/ (k = (NUMERAL 0%N))). +Axiom thm_COPRIME_EXP2 : forall m : N, forall n : N, forall k : N, (num_coprime (@pair N N (N.pow m k) (N.pow n k))) = ((num_coprime (@pair N N m n)) \/ (k = (NUMERAL 0%N))). +Axiom thm_COPRIME_EXP2_SUC : forall n : N, forall a : N, forall b : N, (num_coprime (@pair N N (N.pow a (N.succ n)) (N.pow b (N.succ n)))) = (num_coprime (@pair N N a b)). +Axiom thm_COPRIME_NPRODUCT_EQ : forall {A : Type'}, (forall f : A -> N, forall a : N, forall s : A -> Prop, (@FINITE A s) -> (num_coprime (@pair N N a (@nproduct A s f))) = (forall i : A, (@IN A i s) -> num_coprime (@pair N N a (f i)))) /\ (forall f : A -> N, forall b : N, forall s : A -> Prop, (@FINITE A s) -> (num_coprime (@pair N N (@nproduct A s f) b)) = (forall i : A, (@IN A i s) -> num_coprime (@pair N N (f i) b))). +Axiom thm_COPRIME_NPRODUCT : forall {_244871 : Type'} (a : _244871 -> N), forall s : _244871 -> Prop, forall n : N, ((@FINITE _244871 s) /\ (forall x : _244871, (@IN _244871 x s) -> num_coprime (@pair N N n (a x)))) -> num_coprime (@pair N N n (@nproduct _244871 s a)). +Axiom thm_COPRIME_DIVISORS : forall a : N, forall b : N, forall d : N, forall e : N, ((num_divides d a) /\ ((num_divides e b) /\ (num_coprime (@pair N N a b)))) -> num_coprime (@pair N N d e). +Axiom thm_COPRIME_REFL : forall n : N, (num_coprime (@pair N N n n)) = (n = (NUMERAL (BIT1 0%N))). +Axiom thm_COPRIME_PLUS1 : forall n : N, num_coprime (@pair N N (N.add n (NUMERAL (BIT1 0%N))) n). +Axiom thm_COPRIME_MINUS1 : forall n : N, (~ (n = (NUMERAL 0%N))) -> num_coprime (@pair N N (N.sub n (NUMERAL (BIT1 0%N))) n). +Axiom thm_GCD_EXP : forall n : N, forall a : N, forall b : N, (num_gcd (@pair N N (N.pow a n) (N.pow b n))) = (N.pow (num_gcd (@pair N N a b)) n). +Axiom thm_DIVIDES_EXP2_REV : forall n : N, forall a : N, forall b : N, ((num_divides (N.pow a n) (N.pow b n)) /\ (~ (n = (NUMERAL 0%N)))) -> num_divides a b. +Axiom thm_DIVIDES_EXP2_EQ : forall n : N, forall a : N, forall b : N, (~ (n = (NUMERAL 0%N))) -> (num_divides (N.pow a n) (N.pow b n)) = (num_divides a b). +Axiom thm_DIVIDES_MUL : forall m : N, forall n : N, forall r : N, ((num_divides m r) /\ ((num_divides n r) /\ (num_coprime (@pair N N m n)))) -> num_divides (N.mul m n) r. +Axiom thm_DIVISION_DECOMP : forall a : N, forall b : N, forall c : N, (num_divides a (N.mul b c)) -> exists b' : N, exists c' : N, (a = (N.mul b' c')) /\ ((num_divides b' b) /\ (num_divides c' c)). +Axiom thm_PRIME_0 : ~ (prime (NUMERAL 0%N)). +Axiom thm_PRIME_1 : ~ (prime (NUMERAL (BIT1 0%N))). +Axiom thm_PRIME_ALT : forall p : N, (prime p) = ((~ (p = (NUMERAL 0%N))) /\ ((~ (p = (NUMERAL (BIT1 0%N)))) /\ (forall n : N, ((N.lt (NUMERAL (BIT1 0%N)) n) /\ (N.lt n p)) -> ~ (num_divides n p)))). +Axiom thm_PRIME_2 : prime (NUMERAL (BIT0 (BIT1 0%N))). +Axiom thm_PRIME_COPRIME_STRONG : forall n : N, forall p : N, (prime p) -> (num_divides p n) \/ (num_coprime (@pair N N p n)). +Axiom thm_PRIME_COPRIME : forall n : N, forall p : N, (prime p) -> (n = (NUMERAL (BIT1 0%N))) \/ ((num_divides p n) \/ (num_coprime (@pair N N p n))). +Axiom thm_PRIME_COPRIME_EQ : forall p : N, forall n : N, (prime p) -> (num_coprime (@pair N N p n)) = (~ (num_divides p n)). +Axiom thm_COPRIME_PRIME : forall p : N, forall a : N, forall b : N, (num_coprime (@pair N N a b)) -> ~ ((prime p) /\ ((num_divides p a) /\ (num_divides p b))). +Axiom thm_PRIME_DIVPROD : forall p : N, forall a : N, forall b : N, ((prime p) /\ (num_divides p (N.mul a b))) -> (num_divides p a) \/ (num_divides p b). +Axiom thm_PRIME_DIVPROD_EQ : forall p : N, forall a : N, forall b : N, (prime p) -> (num_divides p (N.mul a b)) = ((num_divides p a) \/ (num_divides p b)). +Axiom thm_PRIME_INT_DIVPROD_EQ : forall p : N, forall a : Z, forall b : Z, (prime p) -> (int_divides (Z_of_N p) (int_mul a b)) = ((int_divides (Z_of_N p) a) \/ (int_divides (Z_of_N p) b)). +Axiom thm_PRIME_GE_2 : forall p : N, (prime p) -> N.le (NUMERAL (BIT0 (BIT1 0%N))) p. +Axiom thm_PRIME_FACTOR : forall n : N, (~ (n = (NUMERAL (BIT1 0%N)))) -> exists p : N, (prime p) /\ (num_divides p n). +Axiom thm_PRIME : forall p : N, (prime p) = ((~ (p = (NUMERAL 0%N))) /\ ((~ (p = (NUMERAL (BIT1 0%N)))) /\ (forall m : N, ((N.lt (NUMERAL 0%N) m) /\ (N.lt m p)) -> num_coprime (@pair N N p m)))). +Axiom thm_PRIME_PRIME_FACTOR : forall n : N, (prime n) = ((~ (n = (NUMERAL (BIT1 0%N)))) /\ (forall p : N, ((prime p) /\ (num_divides p n)) -> p = n)). +Axiom thm_PRIME_FACTOR_LT : forall n : N, forall m : N, forall p : N, ((prime p) /\ ((~ (n = (NUMERAL 0%N))) /\ (n = (N.mul p m)))) -> N.lt m n. +Axiom thm_COPRIME_PRIME_EQ : forall a : N, forall b : N, (num_coprime (@pair N N a b)) = (forall p : N, ~ ((prime p) /\ ((num_divides p a) /\ (num_divides p b)))). +Axiom thm_GCD_PRIME_CASES : (forall p : N, forall n : N, (prime p) -> (num_gcd (@pair N N p n)) = (@COND N (num_divides p n) p (NUMERAL (BIT1 0%N)))) /\ (forall p : N, forall n : N, (prime p) -> (num_gcd (@pair N N n p)) = (@COND N (num_divides p n) p (NUMERAL (BIT1 0%N)))). +Axiom thm_GCD_2_CASES : (forall n : N, (num_gcd (@pair N N (NUMERAL (BIT0 (BIT1 0%N))) n)) = (@COND N (EVEN n) (NUMERAL (BIT0 (BIT1 0%N))) (NUMERAL (BIT1 0%N)))) /\ (forall n : N, (num_gcd (@pair N N n (NUMERAL (BIT0 (BIT1 0%N))))) = (@COND N (EVEN n) (NUMERAL (BIT0 (BIT1 0%N))) (NUMERAL (BIT1 0%N)))). +Axiom thm_COPRIME_PRIMEPOW : forall p : N, forall k : N, forall m : N, ((prime p) /\ (~ (k = (NUMERAL 0%N)))) -> (num_coprime (@pair N N m (N.pow p k))) = (~ (num_divides p m)). +Axiom thm_COPRIME_BEZOUT_STRONG : forall a : N, forall b : N, ((num_coprime (@pair N N a b)) /\ (~ (b = (NUMERAL (BIT1 0%N))))) -> exists x : N, exists y : N, (N.mul a x) = (N.add (N.mul b y) (NUMERAL (BIT1 0%N))). +Axiom thm_COPRIME_BEZOUT_ALT : forall a : N, forall b : N, ((num_coprime (@pair N N a b)) /\ (~ (a = (NUMERAL 0%N)))) -> exists x : N, exists y : N, (N.mul a x) = (N.add (N.mul b y) (NUMERAL (BIT1 0%N))). +Axiom thm_BEZOUT_PRIME : forall a : N, forall p : N, ((prime p) /\ (~ (num_divides p a))) -> exists x : N, exists y : N, (N.mul a x) = (N.add (N.mul p y) (NUMERAL (BIT1 0%N))). +Axiom thm_PRIME_DIVEXP : forall n : N, forall p : N, forall x : N, ((prime p) /\ (num_divides p (N.pow x n))) -> num_divides p x. +Axiom thm_PRIME_DIVEXP_N : forall n : N, forall p : N, forall x : N, ((prime p) /\ (num_divides p (N.pow x n))) -> num_divides (N.pow p n) (N.pow x n). +Axiom thm_PRIME_DIVEXP_EQ : forall n : N, forall p : N, forall x : N, (prime p) -> (num_divides p (N.pow x n)) = ((num_divides p x) /\ (~ (n = (NUMERAL 0%N)))). +Axiom thm_COPRIME_SOS : forall x : N, forall y : N, (num_coprime (@pair N N x y)) -> num_coprime (@pair N N (N.mul x y) (N.add (N.pow x (NUMERAL (BIT0 (BIT1 0%N)))) (N.pow y (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_PRIME_IMP_NZ : forall p : N, (prime p) -> ~ (p = (NUMERAL 0%N)). +Axiom thm_DISTINCT_PRIME_COPRIME : forall p : N, forall q : N, ((prime p) /\ ((prime q) /\ (~ (p = q)))) -> num_coprime (@pair N N p q). +Axiom thm_PRIME_COPRIME_LT : forall x : N, forall p : N, ((prime p) /\ ((N.lt (NUMERAL 0%N) x) /\ (N.lt x p))) -> num_coprime (@pair N N x p). +Axiom thm_DIVIDES_PRIME_PRIME : forall p : N, forall q : N, ((prime p) /\ (prime q)) -> (num_divides p q) = (p = q). +Axiom thm_COPRIME_PRIME_PRIME : forall p : N, forall q : N, ((prime p) /\ (prime q)) -> (num_coprime (@pair N N p q)) = (~ (p = q)). +Axiom thm_DIVIDES_PRIME_EXP_LE : forall p : N, forall q : N, forall m : N, forall n : N, ((prime p) /\ (prime q)) -> (num_divides (N.pow p m) (N.pow q n)) = ((m = (NUMERAL 0%N)) \/ ((p = q) /\ (N.le m n))). +Axiom thm_EQ_PRIME_EXP : forall p : N, forall q : N, forall m : N, forall n : N, ((prime p) /\ (prime q)) -> ((N.pow p m) = (N.pow q n)) = (((m = (NUMERAL 0%N)) /\ (n = (NUMERAL 0%N))) \/ ((p = q) /\ (m = n))). +Axiom thm_PRIME_ODD : forall p : N, (prime p) -> (p = (NUMERAL (BIT0 (BIT1 0%N)))) \/ (ODD p). +Axiom thm_ODD_PRIME : forall p : N, (prime p) -> (ODD p) = (N.le (NUMERAL (BIT1 (BIT1 0%N))) p). +Axiom thm_DIVIDES_FACT_PRIME : forall p : N, (prime p) -> forall n : N, (num_divides p (FACT n)) = (N.le p n). +Axiom thm_EQ_PRIMEPOW : forall p : N, forall m : N, forall n : N, (prime p) -> ((N.pow p m) = (N.pow p n)) = (m = n). +Axiom thm_COPRIME_2 : (forall n : N, (num_coprime (@pair N N (NUMERAL (BIT0 (BIT1 0%N))) n)) = (ODD n)) /\ (forall n : N, (num_coprime (@pair N N n (NUMERAL (BIT0 (BIT1 0%N))))) = (ODD n)). +Axiom thm_DIVIDES_EXP_PLUS1 : forall n : N, forall k : N, (ODD k) -> num_divides (N.add n (NUMERAL (BIT1 0%N))) (N.add (N.pow n k) (NUMERAL (BIT1 0%N))). +Axiom thm_DIVIDES_EXP_MINUS1 : forall k : N, forall n : N, num_divides (N.sub n (NUMERAL (BIT1 0%N))) (N.sub (N.pow n k) (NUMERAL (BIT1 0%N))). +Axiom thm_PRIME_IRREDUCIBLE : forall p : N, (prime p) = ((N.gt p (NUMERAL (BIT1 0%N))) /\ (forall a : N, forall b : N, (num_divides p (N.mul a b)) -> (num_divides p a) \/ (num_divides p b))). +Axiom thm_COPRIME_EXP_DIVPROD : forall d : N, forall n : N, forall a : N, forall b : N, ((num_divides (N.pow d n) (N.mul a b)) /\ (num_coprime (@pair N N d a))) -> num_divides (N.pow d n) b. +Axiom thm_PRIME_COPRIME_CASES : forall p : N, forall a : N, forall b : N, ((prime p) /\ (num_coprime (@pair N N a b))) -> (num_coprime (@pair N N p a)) \/ (num_coprime (@pair N N p b)). +Axiom thm_PRIME_DIVPROD_POW_GEN : forall n : N, forall p : N, forall a : N, forall b : N, ((prime p) /\ ((~ (num_divides p (num_gcd (@pair N N a b)))) /\ (num_divides (N.pow p n) (N.mul a b)))) -> (num_divides (N.pow p n) a) \/ (num_divides (N.pow p n) b). +Axiom thm_PRIME_DIVPROD_POW_GEN_EQ : forall n : N, forall p : N, forall a : N, forall b : N, ((prime p) /\ (~ (num_divides p (num_gcd (@pair N N a b))))) -> (num_divides (N.pow p n) (N.mul a b)) = ((num_divides (N.pow p n) a) \/ (num_divides (N.pow p n) b)). +Axiom thm_PRIME_DIVPROD_POW : forall n : N, forall p : N, forall a : N, forall b : N, ((prime p) /\ ((num_coprime (@pair N N a b)) /\ (num_divides (N.pow p n) (N.mul a b)))) -> (num_divides (N.pow p n) a) \/ (num_divides (N.pow p n) b). +Axiom thm_PRIME_DIVPROD_POW_EQ : forall n : N, forall p : N, forall a : N, forall b : N, ((prime p) /\ (num_coprime (@pair N N a b))) -> (num_divides (N.pow p n) (N.mul a b)) = ((num_divides (N.pow p n) a) \/ (num_divides (N.pow p n) b)). +Axiom thm_PRIME_FACTOR_INDUCT : forall P : N -> Prop, ((P (NUMERAL 0%N)) /\ ((P (NUMERAL (BIT1 0%N))) /\ (forall p : N, forall n : N, ((prime p) /\ ((~ (n = (NUMERAL 0%N))) /\ (P n))) -> P (N.mul p n)))) -> forall n : N, P n. +Axiom thm_COMPLETE_FACTOR_INDUCT : forall P : N -> Prop, ((P (NUMERAL 0%N)) /\ ((P (NUMERAL (BIT1 0%N))) /\ ((forall p : N, (prime p) -> P p) /\ (forall m : N, forall n : N, ((P m) /\ (P n)) -> P (N.mul m n))))) -> forall n : N, P n. +Axiom thm_PRIME_FACTOR_PARTITION : forall Q : N -> Prop, forall n : N, (~ (n = (NUMERAL 0%N))) -> exists n1 : N, exists n2 : N, ((N.mul n1 n2) = n) /\ ((forall p : N, ((prime p) /\ (num_divides p n1)) -> Q p) /\ (forall p : N, ((prime p) /\ (num_divides p n2)) -> ~ (Q p))). +Axiom thm_COPRIME_PAIR_DECOMP : forall n1 : N, forall n2 : N, forall m : N, ((num_coprime (@pair N N n1 n2)) /\ (~ (m = (NUMERAL 0%N)))) -> exists m1 : N, exists m2 : N, (num_coprime (@pair N N m1 n1)) /\ ((num_coprime (@pair N N m2 n2)) /\ ((num_coprime (@pair N N m1 m2)) /\ ((N.mul m1 m2) = m))). +Axiom thm_EXP_MULT_EXISTS : forall m : N, forall n : N, forall p : N, forall k : N, ((~ (m = (NUMERAL 0%N))) /\ ((N.mul (N.pow m k) n) = (N.pow p k))) -> exists q : N, n = (N.pow q k). +Axiom thm_COPRIME_POW : forall n : N, forall a : N, forall b : N, forall c : N, ((num_coprime (@pair N N a b)) /\ ((N.mul a b) = (N.pow c n))) -> exists r : N, exists s : N, (a = (N.pow r n)) /\ (b = (N.pow s n)). +Axiom thm_PRIME_EXP : forall p : N, forall n : N, (prime (N.pow p n)) = ((prime p) /\ (n = (NUMERAL (BIT1 0%N)))). +Axiom thm_PRIME_POWER_MULT : forall k : N, forall x : N, forall y : N, forall p : N, ((prime p) /\ ((N.mul x y) = (N.pow p k))) -> exists i : N, exists j : N, (x = (N.pow p i)) /\ (y = (N.pow p j)). +Axiom thm_PRIME_POWER_EXP : forall n : N, forall x : N, forall p : N, forall k : N, ((prime p) /\ ((~ (n = (NUMERAL 0%N))) /\ ((N.pow x n) = (N.pow p k)))) -> exists i : N, x = (N.pow p i). +Axiom thm_DIVIDES_PRIMEPOW : forall (k : N), forall p : N, (prime p) -> forall d : N, (num_divides d (N.pow p k)) = (exists i : N, (N.le i k) /\ (d = (N.pow p i))). +Axiom thm_PRIMEPOW_DIVIDES_PROD : forall p : N, forall k : N, forall m : N, forall n : N, ((prime p) /\ (num_divides (N.pow p k) (N.mul m n))) -> exists i : N, exists j : N, (num_divides (N.pow p i) m) /\ ((num_divides (N.pow p j) n) /\ (k = (N.add i j))). +Axiom thm_EUCLID_BOUND : forall n : N, exists p : N, (prime p) /\ ((N.lt n p) /\ (N.le p (N.succ (FACT n)))). +Axiom thm_EUCLID : forall n : N, exists p : N, (prime p) /\ (N.gt p n). +Axiom thm_PRIMES_INFINITE : @INFINITE N (@GSPEC N (fun GEN_PVAR_725 : N => exists p : N, @SETSPEC N GEN_PVAR_725 (prime p) p)). +Axiom thm_FACTORIZATION_INDEX : forall n : N, forall p : N, ((~ (n = (NUMERAL 0%N))) /\ (N.le (NUMERAL (BIT0 (BIT1 0%N))) p)) -> exists k : N, (num_divides (N.pow p k) n) /\ (forall l : N, (N.lt k l) -> ~ (num_divides (N.pow p l) n)). +Axiom thm_PRIMEPOW_FACTOR : forall n : N, (N.le (NUMERAL (BIT0 (BIT1 0%N))) n) -> exists p : N, exists k : N, exists m : N, (prime p) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((num_coprime (@pair N N p m)) /\ (n = (N.mul (N.pow p k) m)))). +Axiom thm_PRIMEPOW_DIVISORS_DIVIDES : forall m : N, forall n : N, (num_divides m n) = (forall p : N, forall k : N, ((prime p) /\ (num_divides (N.pow p k) m)) -> num_divides (N.pow p k) n). +Axiom thm_PRIMEPOW_DIVISORS_EQ : forall m : N, forall n : N, (m = n) = (forall p : N, forall k : N, (prime p) -> (num_divides (N.pow p k) m) = (num_divides (N.pow p k) n)). +Axiom thm_CHINESE_REMAINDER : forall a : N, forall b : N, forall u : N, forall v : N, ((num_coprime (@pair N N a b)) /\ ((~ (a = (NUMERAL 0%N))) /\ (~ (b = (NUMERAL 0%N))))) -> exists x : N, exists q1 : N, exists q2 : N, (x = (N.add u (N.mul q1 a))) /\ (x = (N.add v (N.mul q2 b))). +Axiom thm_FINITE_EXP_LE : forall P : N -> Prop, forall p : N, forall n : N, (N.le (NUMERAL (BIT0 (BIT1 0%N))) p) -> @FINITE N (@GSPEC N (fun GEN_PVAR_726 : N => exists j : N, @SETSPEC N GEN_PVAR_726 ((P j) /\ (N.le (N.pow p j) n)) j)). +Axiom thm_FINITE_INDICES : forall P : N -> Prop, forall p : N, forall n : N, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) p) /\ (~ (n = (NUMERAL 0%N)))) -> @FINITE N (@GSPEC N (fun GEN_PVAR_728 : N => exists j : N, @SETSPEC N GEN_PVAR_728 ((P j) /\ (num_divides (N.pow p j) n)) j)). +Axiom thm_index_def : forall p : N, forall n : N, (index p n) = (@COND N ((N.le p (NUMERAL (BIT1 0%N))) \/ (n = (NUMERAL 0%N))) (NUMERAL 0%N) (@CARD N (@GSPEC N (fun GEN_PVAR_729 : N => exists j : N, @SETSPEC N GEN_PVAR_729 ((N.le (NUMERAL (BIT1 0%N)) j) /\ (num_divides (N.pow p j) n)) j)))). +Axiom thm_INDEX_0 : forall p : N, (index p (NUMERAL 0%N)) = (NUMERAL 0%N). +Axiom thm_PRIMEPOW_DIVIDES_INDEX : forall n : N, forall p : N, forall k : N, (num_divides (N.pow p k) n) = ((n = (NUMERAL 0%N)) \/ ((p = (NUMERAL (BIT1 0%N))) \/ (N.le k (index p n)))). +Axiom thm_LE_INDEX : forall n : N, forall p : N, forall k : N, (N.le k (index p n)) = ((((n = (NUMERAL 0%N)) \/ (p = (NUMERAL (BIT1 0%N)))) -> k = (NUMERAL 0%N)) /\ (num_divides (N.pow p k) n)). +Axiom thm_EXP_INDEX_DIVIDES : forall p : N, forall n : N, num_divides (N.pow p (index p n)) n. +Axiom thm_INDEX_LT : forall n : N, forall p : N, forall k : N, (((~ (n = (NUMERAL 0%N))) \/ (~ (k = (NUMERAL 0%N)))) /\ (N.lt n (N.pow p k))) -> N.lt (index p n) k. +Axiom thm_INDEX_1 : forall p : N, (index p (NUMERAL (BIT1 0%N))) = (NUMERAL 0%N). +Axiom thm_INDEX_MUL : forall (p : N), forall m : N, forall n : N, ((prime p) /\ ((~ (m = (NUMERAL 0%N))) /\ (~ (n = (NUMERAL 0%N))))) -> (index p (N.mul m n)) = (N.add (index p m) (index p n)). +Axiom thm_INDEX_EXP : forall p : N, forall n : N, forall k : N, (prime p) -> (index p (N.pow n k)) = (N.mul k (index p n)). +Axiom thm_INDEX_FACT : forall p : N, forall n : N, (prime p) -> (index p (FACT n)) = (@nsum N (dotdot (NUMERAL (BIT1 0%N)) n) (fun m : N => index p m)). +Axiom thm_INDEX_FACT_ALT : forall p : N, forall n : N, (prime p) -> (index p (FACT n)) = (@nsum N (@GSPEC N (fun GEN_PVAR_732 : N => exists j : N, @SETSPEC N GEN_PVAR_732 ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le (N.pow p j) n)) j)) (fun j : N => N.div n (N.pow p j))). +Axiom thm_INDEX_FACT_UNBOUNDED : forall p : N, forall n : N, (prime p) -> (index p (FACT n)) = (@nsum N (@GSPEC N (fun GEN_PVAR_733 : N => exists j : N, @SETSPEC N GEN_PVAR_733 (N.le (NUMERAL (BIT1 0%N)) j) j)) (fun j : N => N.div n (N.pow p j))). +Axiom thm_PRIMEPOW_DIVIDES_FACT : forall p : N, forall n : N, forall k : N, (prime p) -> (num_divides (N.pow p k) (FACT n)) = (N.le k (@nsum N (@GSPEC N (fun GEN_PVAR_734 : N => exists j : N, @SETSPEC N GEN_PVAR_734 ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le (N.pow p j) n)) j)) (fun j : N => N.div n (N.pow p j)))). +Axiom thm_INDEX_REFL : forall n : N, (index n n) = (@COND N (N.le n (NUMERAL (BIT1 0%N))) (NUMERAL 0%N) (NUMERAL (BIT1 0%N))). +Axiom thm_INDEX_EQ_0 : forall p : N, forall n : N, ((index p n) = (NUMERAL 0%N)) = ((n = (NUMERAL 0%N)) \/ ((p = (NUMERAL (BIT1 0%N))) \/ (~ (num_divides p n)))). +Axiom thm_INDEX_ZERO : forall p : N, forall n : N, (~ (num_divides p n)) -> (index p n) = (NUMERAL 0%N). +Axiom thm_INDEX_POW : forall p : N, forall n : N, forall k : N, (index (N.pow p k) n) = (N.div (index p n) k). +Axiom thm_INDEX_PRIME : forall p : N, forall a : N, (prime p) -> (index a p) = (@COND N (p = a) (NUMERAL (BIT1 0%N)) (NUMERAL 0%N)). +Axiom thm_INDEX_TRIVIAL_BOUND : forall n : N, forall p : N, N.le (index p n) n. +Axiom thm_INDEX_DECOMPOSITION : forall n : N, forall p : N, exists m : N, ((N.mul (N.pow p (index p n)) m) = n) /\ ((n = (NUMERAL 0%N)) \/ ((p = (NUMERAL (BIT1 0%N))) \/ (~ (num_divides p m)))). +Axiom thm_INDEX_DECOMPOSITION_PRIME : forall n : N, forall p : N, (prime p) -> exists m : N, ((N.mul (N.pow p (index p n)) m) = n) /\ ((n = (NUMERAL 0%N)) \/ (num_coprime (@pair N N p m))). +Axiom thm_INDEX_DECOMPOSITION_LE : forall p : N, forall e1 : N, forall m1 : N, forall e2 : N, forall m2 : N, (((N.mul (N.pow p e1) m1) = (N.mul (N.pow p e2) m2)) /\ ((~ (p = (NUMERAL 0%N))) /\ (~ (num_divides p m2)))) -> N.le e1 e2. +Axiom thm_INDEX_DECOMPOSITION_UNIQUE : forall p : N, forall e1 : N, forall m1 : N, forall e2 : N, forall m2 : N, (((N.mul (N.pow p e1) m1) = (N.mul (N.pow p e2) m2)) /\ ((~ (p = (NUMERAL 0%N))) /\ ((~ (num_divides p m1)) /\ (~ (num_divides p m2))))) -> e1 = e2. +Axiom thm_INDEX_UNIQUE : forall p : N, forall m : N, forall n : N, forall e : N, (((N.mul (N.pow p e) m) = n) /\ (((p = (NUMERAL 0%N)) -> e = (NUMERAL 0%N)) /\ (~ (num_divides p m)))) -> (index p n) = e. +Axiom thm_INDEX_UNIQUE_EQ : forall n : N, forall p : N, forall k : N, ((index p n) = k) = (@COND Prop ((p = (NUMERAL (BIT1 0%N))) \/ (n = (NUMERAL 0%N))) (k = (NUMERAL 0%N)) (forall j : N, (num_divides (N.pow p j) n) = (N.le j k))). +Axiom thm_INDEX_UNIQUE_ALT : forall n : N, forall p : N, forall k : N, ((index p n) = k) = (@COND Prop ((p = (NUMERAL (BIT1 0%N))) \/ (n = (NUMERAL 0%N))) (k = (NUMERAL 0%N)) ((num_divides (N.pow p k) n) /\ (~ (num_divides (N.pow p (N.add k (NUMERAL (BIT1 0%N)))) n)))). +Axiom thm_INDEX_ADD_MIN : forall p : N, forall m : N, forall n : N, N.le (N.min (index p m) (index p n)) (index p (N.add m n)). +Axiom thm_INDEX_SUB_MIN : forall p : N, forall m : N, forall n : N, (N.lt n m) -> N.le (N.min (index p m) (index p n)) (index p (N.sub m n)). +Axiom thm_INDEX_ADD : forall p : N, forall n : N, forall m : N, ((~ (n = (NUMERAL 0%N))) /\ ((~ (m = (NUMERAL 0%N))) -> N.lt (index p n) (index p m))) -> (index p (N.add m n)) = (index p n). +Axiom thm_INDEX_MULT_BASE : (forall p : N, forall n : N, (index p (N.mul p n)) = (@COND N ((N.le p (NUMERAL (BIT1 0%N))) \/ (n = (NUMERAL 0%N))) (NUMERAL 0%N) (N.add (index p n) (NUMERAL (BIT1 0%N))))) /\ (forall p : N, forall n : N, (index p (N.mul n p)) = (@COND N ((N.le p (NUMERAL (BIT1 0%N))) \/ (n = (NUMERAL 0%N))) (NUMERAL 0%N) (N.add (index p n) (NUMERAL (BIT1 0%N))))). +Axiom thm_INDEX_MULT_EXP : (forall p : N, forall n : N, forall k : N, (index p (N.mul (N.pow p k) n)) = (@COND N ((N.le p (NUMERAL (BIT1 0%N))) \/ (n = (NUMERAL 0%N))) (NUMERAL 0%N) (N.add k (index p n)))) /\ (forall p : N, forall n : N, forall k : N, (index p (N.mul n (N.pow p k))) = (@COND N ((n = (NUMERAL 0%N)) \/ (N.le p (NUMERAL (BIT1 0%N)))) (NUMERAL 0%N) (N.add (index p n) k))). +Axiom thm_INDEX_MULT_ADD : (forall p : N, forall m : N, forall n : N, forall k : N, ((~ (n = (NUMERAL 0%N))) /\ (N.lt (index p n) k)) -> (index p (N.add (N.mul (N.pow p k) m) n)) = (index p n)) /\ ((forall p : N, forall m : N, forall n : N, forall k : N, ((~ (n = (NUMERAL 0%N))) /\ (N.lt (index p n) k)) -> (index p (N.add (N.mul m (N.pow p k)) n)) = (index p n)) /\ ((forall p : N, forall m : N, forall n : N, forall k : N, ((~ (n = (NUMERAL 0%N))) /\ (N.lt (index p n) k)) -> (index p (N.add n (N.mul m (N.pow p k)))) = (index p n)) /\ (forall p : N, forall m : N, forall n : N, forall k : N, ((~ (n = (NUMERAL 0%N))) /\ (N.lt (index p n) k)) -> (index p (N.add n (N.mul (N.pow p k) m))) = (index p n)))). +Axiom thm_INDEX_NSUM_LE : forall {A : Type'}, forall f : A -> N, forall p : N, forall n : N, forall k : A -> Prop, ((@FINITE A k) /\ ((~ (k = (@EMPTY A))) /\ (forall a : A, (@IN A a k) -> N.le n (index p (f a))))) -> N.le n (index p (@nsum A k f)). +Axiom thm_DIVIDES_INDEX : forall m : N, forall n : N, (num_divides m n) = ((n = (NUMERAL 0%N)) \/ ((~ (m = (NUMERAL 0%N))) /\ (forall p : N, (prime p) -> N.le (index p m) (index p n)))). +Axiom thm_EQ_INDEX : forall m : N, forall n : N, (m = n) = (((m = (NUMERAL 0%N)) = (n = (NUMERAL 0%N))) /\ (forall p : N, (prime p) -> (index p m) = (index p n))). +Axiom thm_COPRIME_INDEX : forall m : N, forall n : N, (num_coprime (@pair N N m n)) = (((m = (NUMERAL 0%N)) -> n = (NUMERAL (BIT1 0%N))) /\ (((n = (NUMERAL 0%N)) -> m = (NUMERAL (BIT1 0%N))) /\ (forall p : N, (prime p) -> ((index p m) = (NUMERAL 0%N)) \/ ((index p n) = (NUMERAL 0%N))))). +Axiom thm_INDEX_GCD : forall m : N, forall n : N, forall p : N, (prime p) -> (index p (num_gcd (@pair N N m n))) = (@COND N (m = (NUMERAL 0%N)) (index p n) (@COND N (n = (NUMERAL 0%N)) (index p m) (N.min (index p m) (index p n)))). +Axiom thm_FORALL_PRIME_INDEX : (forall p : N, (prime p) -> forall P : N -> Prop, (forall x : N, P (index p x)) = (forall k : N, P k)) /\ (forall p : N, (prime p) -> forall P : N -> Prop, (forall x : N, (~ (x = (NUMERAL 0%N))) -> P (index p x)) = (forall k : N, P k)). +Axiom thm_INDEX_FACT_PRIME_MULT : forall p : N, forall n : N, (prime p) -> (index p (FACT (N.mul p n))) = (N.add n (index p (FACT n))). +Axiom thm_PRIME_FACTORIZATION_INDEX : forall k : N -> N, (@FINITE N (@GSPEC N (fun GEN_PVAR_737 : N => exists p : N, @SETSPEC N GEN_PVAR_737 ((prime p) /\ (~ ((k p) = (NUMERAL 0%N)))) p))) -> exists n : N, (~ (n = (NUMERAL 0%N))) /\ (forall p : N, (prime p) -> (index p n) = (k p)). +Axiom thm_PRIME_POWER_EXISTS : forall n : N, forall q : N, (prime q) -> (exists i : N, n = (N.pow q i)) = (forall p : N, ((prime p) /\ (num_divides p n)) -> p = q). +Axiom thm_PRIME_POWER_EXISTS_ALT : forall n : N, forall p : N, (prime p) -> (exists i : N, n = (N.pow p i)) = (forall d : N, (num_divides d n) -> (d = (NUMERAL (BIT1 0%N))) \/ (num_divides p d)). +Axiom thm_PRIME_FACTORIZATION_ALT : forall n : N, (~ (n = (NUMERAL 0%N))) -> (@nproduct N (@GSPEC N (fun GEN_PVAR_738 : N => exists p : N, @SETSPEC N GEN_PVAR_738 (prime p) p)) (fun p : N => N.pow p (index p n))) = n. +Axiom thm_PRIME_FACTORIZATION : forall n : N, (~ (n = (NUMERAL 0%N))) -> (@nproduct N (@GSPEC N (fun GEN_PVAR_739 : N => exists p : N, @SETSPEC N GEN_PVAR_739 ((prime p) /\ (num_divides p n)) p)) (fun p : N => N.pow p (index p n))) = n. +Axiom thm_lcm : forall (m : N) (n : N), (num_lcm (@pair N N m n)) = (@COND N ((N.mul m n) = (NUMERAL 0%N)) (NUMERAL 0%N) (N.div (N.mul m n) (num_gcd (@pair N N m n)))). +Axiom thm_LCM_DIVIDES : forall m : N, forall n : N, forall d : N, (num_divides (num_lcm (@pair N N m n)) d) = ((num_divides m d) /\ (num_divides n d)). +Axiom thm_LCM : forall m : N, forall n : N, (num_divides m (num_lcm (@pair N N m n))) /\ ((num_divides n (num_lcm (@pair N N m n))) /\ (forall d : N, ((num_divides m d) /\ (num_divides n d)) -> num_divides (num_lcm (@pair N N m n)) d)). +Axiom thm_LCM_DIVIDES_MUL : forall m : N, forall n : N, num_divides (num_lcm (@pair N N m n)) (N.mul m n). +Axiom thm_DIVIDES_LCM : forall m : N, forall n : N, forall r : N, ((num_divides r m) \/ (num_divides r n)) -> num_divides r (num_lcm (@pair N N m n)). +Axiom thm_LCM_0 : (forall n : N, (num_lcm (@pair N N (NUMERAL 0%N) n)) = (NUMERAL 0%N)) /\ (forall n : N, (num_lcm (@pair N N n (NUMERAL 0%N))) = (NUMERAL 0%N)). +Axiom thm_LCM_1 : (forall n : N, (num_lcm (@pair N N (NUMERAL (BIT1 0%N)) n)) = n) /\ (forall n : N, (num_lcm (@pair N N n (NUMERAL (BIT1 0%N)))) = n). +Axiom thm_LCM_SYM : forall m : N, forall n : N, (num_lcm (@pair N N m n)) = (num_lcm (@pair N N n m)). +Axiom thm_DIVIDES_LCM_GCD : forall m : N, forall n : N, forall d : N, (num_divides d (num_lcm (@pair N N m n))) = (num_divides (N.mul d (num_gcd (@pair N N m n))) (N.mul m n)). +Axiom thm_PRIMEPOW_DIVIDES_LCM : forall m : N, forall n : N, forall p : N, forall k : N, (prime p) -> (num_divides (N.pow p k) (num_lcm (@pair N N m n))) = ((num_divides (N.pow p k) m) \/ (num_divides (N.pow p k) n)). +Axiom thm_PRIME_DIVIDES_LCM : forall m : N, forall n : N, forall p : N, (prime p) -> (num_divides p (num_lcm (@pair N N m n))) = ((num_divides p m) \/ (num_divides p n)). +Axiom thm_LCM_ZERO : forall m : N, forall n : N, ((num_lcm (@pair N N m n)) = (NUMERAL 0%N)) = ((m = (NUMERAL 0%N)) \/ (n = (NUMERAL 0%N))). +Axiom thm_INDEX_LCM : forall m : N, forall n : N, forall p : N, (prime p) -> (index p (num_lcm (@pair N N m n))) = (@COND N ((m = (NUMERAL 0%N)) \/ (n = (NUMERAL 0%N))) (NUMERAL 0%N) (N.max (index p m) (index p n))). +Axiom thm_LCM_ASSOC : forall m : N, forall n : N, forall p : N, (num_lcm (@pair N N m (num_lcm (@pair N N n p)))) = (num_lcm (@pair N N (num_lcm (@pair N N m n)) p)). +Axiom thm_LCM_REFL : forall n : N, (num_lcm (@pair N N n n)) = n. +Axiom thm_LCM_MULTIPLE : forall a : N, forall b : N, (num_lcm (@pair N N b (N.mul a b))) = (N.mul a b). +Axiom thm_LCM_GCD_DISTRIB : forall a : N, forall b : N, forall c : N, (num_lcm (@pair N N a (num_gcd (@pair N N b c)))) = (num_gcd (@pair N N (num_lcm (@pair N N a b)) (num_lcm (@pair N N a c)))). +Axiom thm_GCD_LCM_DISTRIB : forall a : N, forall b : N, forall c : N, (num_gcd (@pair N N a (num_lcm (@pair N N b c)))) = (num_lcm (@pair N N (num_gcd (@pair N N a b)) (num_gcd (@pair N N a c)))). +Axiom thm_LCM_UNIQUE : forall d : N, forall m : N, forall n : N, ((num_divides m d) /\ ((num_divides n d) /\ (forall e : N, ((num_divides m e) /\ (num_divides n e)) -> num_divides d e))) = (d = (num_lcm (@pair N N m n))). +Axiom thm_LCM_EQ : forall x : N, forall y : N, forall u : N, forall v : N, (forall d : N, ((num_divides x d) /\ (num_divides y d)) = ((num_divides u d) /\ (num_divides v d))) -> (num_lcm (@pair N N x y)) = (num_lcm (@pair N N u v)). +Axiom thm_LCM_EQ_1 : forall m : N, forall n : N, ((num_lcm (@pair N N m n)) = (NUMERAL (BIT1 0%N))) = ((m = (NUMERAL (BIT1 0%N))) /\ (n = (NUMERAL (BIT1 0%N)))). +Axiom thm_DIVIDES_LCM_LEFT : forall m : N, forall n : N, (num_divides n m) = ((num_lcm (@pair N N m n)) = m). +Axiom thm_DIVIDES_LCM_RIGHT : forall m : N, forall n : N, (num_divides m n) = ((num_lcm (@pair N N m n)) = n). +Axiom thm_MULT_LCM_GCD : forall m : N, forall n : N, (N.mul (num_lcm (@pair N N m n)) (num_gcd (@pair N N m n))) = (N.mul m n). +Axiom thm_MULT_GCD_LCM : forall m : N, forall n : N, (N.mul (num_gcd (@pair N N m n)) (num_lcm (@pair N N m n))) = (N.mul m n). +Axiom thm_LCM_LMUL : forall a : N, forall b : N, forall c : N, (num_lcm (@pair N N (N.mul c a) (N.mul c b))) = (N.mul c (num_lcm (@pair N N a b))). +Axiom thm_LCM_RMUL : forall a : N, forall b : N, forall c : N, (num_lcm (@pair N N (N.mul a c) (N.mul b c))) = (N.mul c (num_lcm (@pair N N a b))). +Axiom thm_LCM_EXP : forall n : N, forall a : N, forall b : N, (num_lcm (@pair N N (N.pow a n) (N.pow b n))) = (N.pow (num_lcm (@pair N N a b)) n). +Axiom thm_LCM_COPRIME_DECOMP : forall m : N, forall n : N, exists m' : N, exists n' : N, (num_divides m' m) /\ ((num_divides n' n) /\ ((num_coprime (@pair N N m' n')) /\ ((N.mul m' n') = (num_lcm (@pair N N m n))))). +Axiom thm_LE_LCM : (forall m : N, forall n : N, (N.le m (num_lcm (@pair N N m n))) = ((n = (NUMERAL 0%N)) -> m = (NUMERAL 0%N))) /\ (forall m : N, forall n : N, (N.le n (num_lcm (@pair N N m n))) = ((m = (NUMERAL 0%N)) -> n = (NUMERAL 0%N))). +Axiom thm_LCM_LE_MULT : forall m : N, forall n : N, N.le (num_lcm (@pair N N m n)) (N.mul m n). +Axiom thm_LCM_EQ_MULT : forall m : N, forall n : N, ((num_lcm (@pair N N m n)) = (N.mul m n)) = ((m = (NUMERAL 0%N)) \/ ((n = (NUMERAL 0%N)) \/ (num_coprime (@pair N N m n)))). +Axiom thm_MAX_LE_LCM_EQ : forall m : N, forall n : N, (N.le (N.max m n) (num_lcm (@pair N N m n))) = ((m = (NUMERAL 0%N)) = (n = (NUMERAL 0%N))). +Axiom thm_MAX_LE_LCM : forall m : N, forall n : N, ((m = (NUMERAL 0%N)) = (n = (NUMERAL 0%N))) -> N.le (N.max m n) (num_lcm (@pair N N m n)). +Axiom thm_NEUTRAL_GCD : (@neutral N (fun m : N => fun n : N => num_gcd (@pair N N m n))) = (NUMERAL 0%N). +Axiom thm_MONOIDAL_GCD : @monoidal N (fun m : N => fun n : N => num_gcd (@pair N N m n)). +Axiom thm_NEUTRAL_LCM : (@neutral N (fun m : N => fun n : N => num_lcm (@pair N N m n))) = (NUMERAL (BIT1 0%N)). +Axiom thm_MONOIDAL_LCM : @monoidal N (fun m : N => fun n : N => num_lcm (@pair N N m n)). +Axiom thm_ITERATE_GCD_DIVIDES : forall {K : Type'}, forall f : K -> N, forall k : K -> Prop, forall i : K, ((@FINITE K k) /\ (@IN K i k)) -> num_divides (@iterate K N (fun m : N => fun n : N => num_gcd (@pair N N m n)) k f) (f i). +Axiom thm_ITERATE_GCD_DIVIDES_EQ : forall {K : Type'}, forall f : K -> N, forall k : K -> Prop, forall i : K, (@IN K i k) -> (num_divides (@iterate K N (fun m : N => fun n : N => num_gcd (@pair N N m n)) k f) (f i)) = ((@FINITE K (@GSPEC K (fun GEN_PVAR_740 : K => exists j : K, @SETSPEC K GEN_PVAR_740 ((@IN K j k) /\ (~ ((f j) = (NUMERAL 0%N)))) j))) \/ ((f i) = (NUMERAL 0%N))). +Axiom thm_DIVIDES_ITERATE_GCD : forall {K : Type'}, forall f : K -> N, forall k : K -> Prop, forall d : N, (@FINITE K k) -> (num_divides d (@iterate K N (fun m : N => fun n : N => num_gcd (@pair N N m n)) k f)) = (forall i : K, (@IN K i k) -> num_divides d (f i)). +Axiom thm_DIVIDES_ITERATE_GCD_GEN : forall {K : Type'}, forall f : K -> N, forall k : K -> Prop, forall d : N, (num_divides d (@iterate K N (fun m : N => fun n : N => num_gcd (@pair N N m n)) k f)) = ((@FINITE K (@GSPEC K (fun GEN_PVAR_741 : K => exists j : K, @SETSPEC K GEN_PVAR_741 ((@IN K j k) /\ (~ ((f j) = (NUMERAL 0%N)))) j))) -> forall i : K, (@IN K i k) -> num_divides d (f i)). +Axiom thm_DIVIDES_ITERATE_LCM : forall {K : Type'}, forall f : K -> N, forall k : K -> Prop, forall i : K, ((@FINITE K k) /\ (@IN K i k)) -> num_divides (f i) (@iterate K N (fun m : N => fun n : N => num_lcm (@pair N N m n)) k f). +Axiom thm_DIVIDES_ITERATE_LCM_GEN : forall {K : Type'}, forall f : K -> N, forall k : K -> Prop, forall i : K, (@IN K i k) -> (num_divides (f i) (@iterate K N (fun m : N => fun n : N => num_lcm (@pair N N m n)) k f)) = ((@FINITE K (@GSPEC K (fun GEN_PVAR_742 : K => exists j : K, @SETSPEC K GEN_PVAR_742 ((@IN K j k) /\ (~ ((f j) = (NUMERAL (BIT1 0%N))))) j))) \/ ((f i) = (NUMERAL (BIT1 0%N)))). +Axiom thm_ITERATE_LCM_DIVIDES : forall {K : Type'}, forall f : K -> N, forall k : K -> Prop, forall n : N, (@FINITE K k) -> (num_divides (@iterate K N (fun m : N => fun n' : N => num_lcm (@pair N N m n')) k f) n) = (forall i : K, (@IN K i k) -> num_divides (f i) n). +Axiom thm_ITERATE_LCM_DIVIDES_GEN : forall {K : Type'}, forall f : K -> N, forall k : K -> Prop, forall n : N, (num_divides (@iterate K N (fun m : N => fun n' : N => num_lcm (@pair N N m n')) k f) n) = ((@FINITE K (@GSPEC K (fun GEN_PVAR_743 : K => exists j : K, @SETSPEC K GEN_PVAR_743 ((@IN K j k) /\ (~ ((f j) = (NUMERAL (BIT1 0%N))))) j))) -> forall i : K, (@IN K i k) -> num_divides (f i) n). +Axiom thm_PRIMEPOW_DIVIDES_ITERATE_LCM : forall {K : Type'}, forall f : K -> N, forall k : K -> Prop, forall p : N, forall m : N, ((@FINITE K k) /\ (prime p)) -> (num_divides (N.pow p m) (@iterate K N (fun m' : N => fun n : N => num_lcm (@pair N N m' n)) k f)) = ((m = (NUMERAL 0%N)) \/ (exists i : K, (@IN K i k) /\ (num_divides (N.pow p m) (f i)))). +Axiom thm_PRIMEPOW_DIVIDES_ITERATE_LCM_GEN : forall {K : Type'}, forall f : K -> N, forall k : K -> Prop, forall p : N, forall m : N, (prime p) -> (num_divides (N.pow p m) (@iterate K N (fun m' : N => fun n : N => num_lcm (@pair N N m' n)) k f)) = ((m = (NUMERAL 0%N)) \/ ((@FINITE K (@GSPEC K (fun GEN_PVAR_744 : K => exists j : K, @SETSPEC K GEN_PVAR_744 ((@IN K j k) /\ (~ ((f j) = (NUMERAL (BIT1 0%N))))) j))) /\ (exists i : K, (@IN K i k) /\ (num_divides (N.pow p m) (f i))))). +Axiom thm_PRIME_DIVIDES_ITERATE_LCM_GEN : forall {K : Type'}, forall f : K -> N, forall k : K -> Prop, forall p : N, (prime p) -> (num_divides p (@iterate K N (fun m : N => fun n : N => num_lcm (@pair N N m n)) k f)) = ((@FINITE K (@GSPEC K (fun GEN_PVAR_745 : K => exists j : K, @SETSPEC K GEN_PVAR_745 ((@IN K j k) /\ (~ ((f j) = (NUMERAL (BIT1 0%N))))) j))) /\ (exists i : K, (@IN K i k) /\ (num_divides p (f i)))). +Axiom thm_PRIME_DIVIDES_ITERATE_LCM : forall {K : Type'}, forall f : K -> N, forall k : K -> Prop, forall p : N, ((@FINITE K k) /\ (prime p)) -> (num_divides p (@iterate K N (fun m : N => fun n : N => num_lcm (@pair N N m n)) k f)) = (exists i : K, (@IN K i k) /\ (num_divides p (f i))). +Axiom thm_ITERATE_LCM_EQ_0_GEN : forall {K : Type'}, forall k : K -> Prop, forall f : K -> N, ((@iterate K N (fun m : N => fun n : N => num_lcm (@pair N N m n)) k f) = (NUMERAL 0%N)) = ((@FINITE K (@GSPEC K (fun GEN_PVAR_748 : K => exists j : K, @SETSPEC K GEN_PVAR_748 ((@IN K j k) /\ (~ ((f j) = (NUMERAL (BIT1 0%N))))) j))) /\ (exists j : K, (@IN K j k) /\ ((f j) = (NUMERAL 0%N)))). +Axiom thm_ITERATE_LCM_EQ_0 : forall {K : Type'}, forall k : K -> Prop, forall f : K -> N, (@FINITE K k) -> ((@iterate K N (fun m : N => fun n : N => num_lcm (@pair N N m n)) k f) = (NUMERAL 0%N)) = (exists j : K, (@IN K j k) /\ ((f j) = (NUMERAL 0%N))). +Axiom thm_ITERATE_LCM_EQ_1_GEN : forall {K : Type'}, forall k : K -> Prop, forall f : K -> N, ((@iterate K N (fun m : N => fun n : N => num_lcm (@pair N N m n)) k f) = (NUMERAL (BIT1 0%N))) = ((@FINITE K (@GSPEC K (fun GEN_PVAR_751 : K => exists j : K, @SETSPEC K GEN_PVAR_751 ((@IN K j k) /\ (~ ((f j) = (NUMERAL (BIT1 0%N))))) j))) -> forall j : K, (@IN K j k) -> (f j) = (NUMERAL (BIT1 0%N))). +Axiom thm_ITERATE_LCM_EQ_1 : forall {K : Type'}, forall k : K -> Prop, forall f : K -> N, (@FINITE K k) -> ((@iterate K N (fun m : N => fun n : N => num_lcm (@pair N N m n)) k f) = (NUMERAL (BIT1 0%N))) = (forall j : K, (@IN K j k) -> (f j) = (NUMERAL (BIT1 0%N))). +Axiom thm_ITERATE_GCD_EQ_0_GEN : forall {K : Type'}, forall k : K -> Prop, forall f : K -> N, ((@iterate K N (fun m : N => fun n : N => num_gcd (@pair N N m n)) k f) = (NUMERAL 0%N)) = ((@FINITE K (@GSPEC K (fun GEN_PVAR_754 : K => exists j : K, @SETSPEC K GEN_PVAR_754 ((@IN K j k) /\ (~ ((f j) = (NUMERAL 0%N)))) j))) -> forall j : K, (@IN K j k) -> (f j) = (NUMERAL 0%N)). +Axiom thm_ITERATE_GCD_EQ_0 : forall {K : Type'}, forall k : K -> Prop, forall f : K -> N, (@FINITE K k) -> ((@iterate K N (fun m : N => fun n : N => num_gcd (@pair N N m n)) k f) = (NUMERAL 0%N)) = (forall j : K, (@IN K j k) -> (f j) = (NUMERAL 0%N)). +Axiom thm_INDUCT_COPRIME : forall P : N -> Prop, ((forall a : N, forall b : N, ((N.lt (NUMERAL (BIT1 0%N)) a) /\ ((N.lt (NUMERAL (BIT1 0%N)) b) /\ ((num_coprime (@pair N N a b)) /\ ((P a) /\ (P b))))) -> P (N.mul a b)) /\ (forall p : N, forall k : N, (prime p) -> P (N.pow p k))) -> forall n : N, (N.lt (NUMERAL (BIT1 0%N)) n) -> P n. +Axiom thm_INDUCT_COPRIME_STRONG : forall P : N -> Prop, ((forall a : N, forall b : N, ((N.lt (NUMERAL (BIT1 0%N)) a) /\ ((N.lt (NUMERAL (BIT1 0%N)) b) /\ ((num_coprime (@pair N N a b)) /\ ((P a) /\ (P b))))) -> P (N.mul a b)) /\ (forall p : N, forall k : N, ((prime p) /\ (~ (k = (NUMERAL 0%N)))) -> P (N.pow p k))) -> forall n : N, (N.lt (NUMERAL (BIT1 0%N)) n) -> P n. +Axiom thm_INDUCT_COPRIME_ALT : forall P : N -> Prop, ((P (NUMERAL 0%N)) /\ ((forall a : N, forall b : N, ((N.lt (NUMERAL (BIT1 0%N)) a) /\ ((N.lt (NUMERAL (BIT1 0%N)) b) /\ ((num_coprime (@pair N N a b)) /\ ((P a) /\ (P b))))) -> P (N.mul a b)) /\ (forall p : N, forall k : N, (prime p) -> P (N.pow p k)))) -> forall n : N, P n. +Axiom thm_group_carrier : forall {A : Type'}, (@group_carrier A) = (fun g : Group A => @fst (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_operations A g)). +Axiom thm_group_id : forall {A : Type'}, (@group_id A) = (fun g : Group A => @fst A (prod (A -> A) (A -> A -> A)) (@snd (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_operations A g))). +Axiom thm_group_inv : forall {A : Type'}, (@group_inv A) = (fun g : Group A => @fst (A -> A) (A -> A -> A) (@snd A (prod (A -> A) (A -> A -> A)) (@snd (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_operations A g)))). +Axiom thm_group_mul : forall {A : Type'}, (@group_mul A) = (fun g : Group A => @snd (A -> A) (A -> A -> A) (@snd A (prod (A -> A) (A -> A -> A)) (@snd (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_operations A g)))). +Axiom thm_GROUPS_EQ : forall {A : Type'}, forall G : Group A, forall H : Group A, (G = H) = (((@group_carrier A G) = (@group_carrier A H)) /\ (((@group_id A G) = (@group_id A H)) /\ (((@group_inv A G) = (@group_inv A H)) /\ ((@group_mul A G) = (@group_mul A H))))). +Axiom thm_GROUP_CARRIER_NONEMPTY : forall {A : Type'}, forall G : Group A, ~ ((@group_carrier A G) = (@EMPTY A)). +Axiom thm_singleton_group : forall {A : Type'}, forall a : A, (@singleton_group A a) = (@group A (@pair (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@INSERT A a (@EMPTY A)) (@pair A (prod (A -> A) (A -> A -> A)) a (@pair (A -> A) (A -> A -> A) (fun x : A => a) (fun x : A => fun y : A => a))))). +Axiom thm_SINGLETON_GROUP : forall {A : Type'}, (forall a : A, (@group_carrier A (@singleton_group A a)) = (@INSERT A a (@EMPTY A))) /\ ((forall a : A, (@group_id A (@singleton_group A a)) = a) /\ ((forall a : A, (@group_inv A (@singleton_group A a)) = (fun x : A => a)) /\ (forall a : A, (@group_mul A (@singleton_group A a)) = (fun x : A => fun y : A => a)))). +Axiom thm_trivial_group : forall {_255474 : Type'}, forall G : Group _255474, (@trivial_group _255474 G) = ((@group_carrier _255474 G) = (@INSERT _255474 (@group_id _255474 G) (@EMPTY _255474))). +Axiom thm_TRIVIAL_IMP_FINITE_GROUP : forall {A : Type'}, forall G : Group A, (@trivial_group A G) -> @FINITE A (@group_carrier A G). +Axiom thm_TRIVIAL_GROUP_SINGLETON_GROUP : forall {A : Type'}, forall a : A, @trivial_group A (@singleton_group A a). +Axiom thm_FINITE_SINGLETON_GROUP : forall {A : Type'}, forall a : A, @FINITE A (@group_carrier A (@singleton_group A a)). +Axiom thm_TRIVIAL_GROUP_SUBSET : forall {A : Type'}, forall G : Group A, (@trivial_group A G) = (@SUBSET A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))). +Axiom thm_TRIVIAL_GROUP : forall {A : Type'}, forall G : Group A, (@trivial_group A G) = (exists a : A, (@group_carrier A G) = (@INSERT A a (@EMPTY A))). +Axiom thm_TRIVIAL_GROUP_ALT : forall {A : Type'}, forall G : Group A, (@trivial_group A G) = (exists a : A, @SUBSET A (@group_carrier A G) (@INSERT A a (@EMPTY A))). +Axiom thm_TRIVIAL_GROUP_HAS_SIZE_1 : forall {A : Type'}, forall G : Group A, (@trivial_group A G) = (@HAS_SIZE A (@group_carrier A G) (NUMERAL (BIT1 0%N))). +Axiom thm_GROUP_CARRIER_HAS_SIZE_1 : forall {A : Type'}, forall G : Group A, (@HAS_SIZE A (@group_carrier A G) (NUMERAL (BIT1 0%N))) = (@trivial_group A G). +Axiom thm_opposite_group : forall {A : Type'}, forall G : Group A, (@opposite_group A G) = (@group A (@pair (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@group_carrier A G) (@pair A (prod (A -> A) (A -> A -> A)) (@group_id A G) (@pair (A -> A) (A -> A -> A) (@group_inv A G) (fun x : A => fun y : A => @group_mul A G y x))))). +Axiom thm_OPPOSITE_GROUP : forall {A : Type'}, forall G : Group A, ((@group_carrier A (@opposite_group A G)) = (@group_carrier A G)) /\ (((@group_id A (@opposite_group A G)) = (@group_id A G)) /\ (((@group_inv A (@opposite_group A G)) = (@group_inv A G)) /\ ((@group_mul A (@opposite_group A G)) = (fun x : A => fun y : A => @group_mul A G y x)))). +Axiom thm_OPPOSITE_OPPOSITE_GROUP : forall {A : Type'}, forall G : Group A, (@opposite_group A (@opposite_group A G)) = G. +Axiom thm_OPPOSITE_GROUP_INV : forall {A : Type'}, forall G : Group A, forall x : A, (@group_inv A (@opposite_group A G) x) = (@group_inv A G x). +Axiom thm_OPPOSITE_GROUP_MUL : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, (@group_mul A (@opposite_group A G) x y) = (@group_mul A G y x). +Axiom thm_OPPOSITE_SINGLETON_GROUP : forall {A : Type'}, forall a : A, (@opposite_group A (@singleton_group A a)) = (@singleton_group A a). +Axiom thm_TRIVIAL_OPPOSITE_GROUP : forall {A : Type'}, forall G : Group A, (@trivial_group A (@opposite_group A G)) = (@trivial_group A G). +Axiom thm_FINITE_OPPOSITE_GROUP : forall {A : Type'}, forall G : Group A, (@FINITE A (@group_carrier A (@opposite_group A G))) = (@FINITE A (@group_carrier A G)). +Axiom thm_group_div : forall {_255847 : Type'}, forall x : _255847, forall G : Group _255847, forall y : _255847, (@group_div _255847 G x y) = (@group_mul _255847 G x (@group_inv _255847 G y)). +Axiom thm_GROUP_DIV : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> @IN A (@group_div A G x y) (@group_carrier A G). +Axiom thm_GROUP_MUL_LCANCEL : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall z : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A z (@group_carrier A G)))) -> ((@group_mul A G x y) = (@group_mul A G x z)) = (y = z). +Axiom thm_GROUP_MUL_LCANCEL_IMP : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall z : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@IN A z (@group_carrier A G)) /\ ((@group_mul A G x y) = (@group_mul A G x z))))) -> y = z. +Axiom thm_GROUP_MUL_RCANCEL : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall z : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A z (@group_carrier A G)))) -> ((@group_mul A G x z) = (@group_mul A G y z)) = (x = y). +Axiom thm_GROUP_MUL_RCANCEL_IMP : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall z : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@IN A z (@group_carrier A G)) /\ ((@group_mul A G x z) = (@group_mul A G y z))))) -> x = y. +Axiom thm_GROUP_LID_UNIQUE : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_mul A G x y) = y))) -> x = (@group_id A G). +Axiom thm_GROUP_RID_UNIQUE : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_mul A G x y) = x))) -> y = (@group_id A G). +Axiom thm_GROUP_LID_EQ : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> ((@group_mul A G x y) = y) = (x = (@group_id A G)). +Axiom thm_GROUP_RID_EQ : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> ((@group_mul A G x y) = x) = (y = (@group_id A G)). +Axiom thm_GROUP_LINV_UNIQUE : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_mul A G x y) = (@group_id A G)))) -> (@group_inv A G x) = y. +Axiom thm_GROUP_RINV_UNIQUE : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_mul A G x y) = (@group_id A G)))) -> (@group_inv A G y) = x. +Axiom thm_GROUP_LINV_EQ : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> ((@group_inv A G x) = y) = ((@group_mul A G x y) = (@group_id A G)). +Axiom thm_GROUP_RINV_EQ : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> ((@group_inv A G x) = y) = ((@group_mul A G y x) = (@group_id A G)). +Axiom thm_GROUP_MUL_EQ_ID : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> ((@group_mul A G x y) = (@group_id A G)) = ((@group_mul A G y x) = (@group_id A G)). +Axiom thm_GROUP_INV_INV : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@group_inv A G (@group_inv A G x)) = x. +Axiom thm_GROUP_INV_ID : forall {A : Type'}, forall G : Group A, (@group_inv A G (@group_id A G)) = (@group_id A G). +Axiom thm_GROUP_INV_EQ_ID : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> ((@group_inv A G x) = (@group_id A G)) = (x = (@group_id A G)). +Axiom thm_GROUP_INV_MUL : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> (@group_inv A G (@group_mul A G x y)) = (@group_mul A G (@group_inv A G y) (@group_inv A G x)). +Axiom thm_GROUP_INV_EQ : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> ((@group_inv A G x) = (@group_inv A G y)) = (x = y). +Axiom thm_GROUP_DIV_REFL : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@group_div A G x x) = (@group_id A G). +Axiom thm_GROUP_DIV_EQ_ID : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> ((@group_div A G x y) = (@group_id A G)) = (x = y). +Axiom thm_GROUP_COMMUTES_INV : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_mul A G x y) = (@group_mul A G y x)))) -> (@group_mul A G (@group_inv A G x) y) = (@group_mul A G y (@group_inv A G x)). +Axiom thm_GROUP_COMMUTES_INV_EQ : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> ((@group_mul A G (@group_inv A G x) y) = (@group_mul A G y (@group_inv A G x))) = ((@group_mul A G x y) = (@group_mul A G y x)). +Axiom thm_GROUP_COMMUTES_MUL : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall z : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@IN A z (@group_carrier A G)) /\ (((@group_mul A G x z) = (@group_mul A G z x)) /\ ((@group_mul A G y z) = (@group_mul A G z y)))))) -> (@group_mul A G (@group_mul A G x y) z) = (@group_mul A G z (@group_mul A G x y)). +Axiom thm_FORALL_IN_GROUP_CARRIER_INV : forall {A : Type'}, forall P : A -> Prop, forall G : Group A, (forall x : A, (@IN A x (@group_carrier A G)) -> P (@group_inv A G x)) = (forall x : A, (@IN A x (@group_carrier A G)) -> P x). +Axiom thm_EXISTS_IN_GROUP_CARRIER_INV : forall {A : Type'}, forall P : A -> Prop, forall G : Group A, (exists x : A, (@IN A x (@group_carrier A G)) /\ (P (@group_inv A G x))) = (exists x : A, (@IN A x (@group_carrier A G)) /\ (P x)). +Axiom thm_group_pow : forall {_257039 : Type'} (G : Group _257039) (x : _257039) (n : N), ((@group_pow _257039 G x (NUMERAL 0%N)) = (@group_id _257039 G)) /\ ((@group_pow _257039 G x (N.succ n)) = (@group_mul _257039 G x (@group_pow _257039 G x n))). +Axiom thm_GROUP_POW : forall {A : Type'}, forall G : Group A, forall x : A, forall n : N, (@IN A x (@group_carrier A G)) -> @IN A (@group_pow A G x n) (@group_carrier A G). +Axiom thm_GROUP_POW_0 : forall {A : Type'}, forall G : Group A, forall x : A, (@group_pow A G x (NUMERAL 0%N)) = (@group_id A G). +Axiom thm_GROUP_POW_1 : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@group_pow A G x (NUMERAL (BIT1 0%N))) = x. +Axiom thm_GROUP_POW_2 : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@group_pow A G x (NUMERAL (BIT0 (BIT1 0%N)))) = (@group_mul A G x x). +Axiom thm_GROUP_POW_ID : forall {_257146 : Type'} (G : Group _257146), forall n : N, (@group_pow _257146 G (@group_id _257146 G) n) = (@group_id _257146 G). +Axiom thm_GROUP_POW_ADD : forall {A : Type'}, forall G : Group A, forall x : A, forall m : N, forall n : N, (@IN A x (@group_carrier A G)) -> (@group_pow A G x (N.add m n)) = (@group_mul A G (@group_pow A G x m) (@group_pow A G x n)). +Axiom thm_GROUP_POW_SUB : forall {A : Type'}, forall G : Group A, forall x : A, forall m : N, forall n : N, ((@IN A x (@group_carrier A G)) /\ (N.le n m)) -> (@group_pow A G x (N.sub m n)) = (@group_div A G (@group_pow A G x m) (@group_pow A G x n)). +Axiom thm_GROUP_POW_SUB_ALT : forall {A : Type'}, forall G : Group A, forall x : A, forall m : N, forall n : N, ((@IN A x (@group_carrier A G)) /\ (N.le n m)) -> (@group_pow A G x (N.sub m n)) = (@group_mul A G (@group_inv A G (@group_pow A G x n)) (@group_pow A G x m)). +Axiom thm_GROUP_INV_POW : forall {A : Type'}, forall G : Group A, forall x : A, forall n : N, (@IN A x (@group_carrier A G)) -> (@group_inv A G (@group_pow A G x n)) = (@group_pow A G (@group_inv A G x) n). +Axiom thm_GROUP_POW_MUL : forall {A : Type'}, forall G : Group A, forall x : A, forall m : N, forall n : N, (@IN A x (@group_carrier A G)) -> (@group_pow A G x (N.mul m n)) = (@group_pow A G (@group_pow A G x m) n). +Axiom thm_GROUP_POW_POW : forall {A : Type'}, forall G : Group A, forall x : A, forall m : N, forall n : N, (@IN A x (@group_carrier A G)) -> (@group_pow A G (@group_pow A G x m) n) = (@group_pow A G x (N.mul m n)). +Axiom thm_GROUP_COMMUTES_POW : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall n : N, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_mul A G x y) = (@group_mul A G y x)))) -> (@group_mul A G (@group_pow A G x n) y) = (@group_mul A G y (@group_pow A G x n)). +Axiom thm_GROUP_MUL_POW : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall n : N, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_mul A G x y) = (@group_mul A G y x)))) -> (@group_pow A G (@group_mul A G x y) n) = (@group_mul A G (@group_pow A G x n) (@group_pow A G y n)). +Axiom thm_group_zpow : forall {A : Type'}, forall G : Group A, forall x : A, forall n : Z, (@group_zpow A G x n) = (@COND A (int_le (Z_of_N (NUMERAL 0%N)) n) (@group_pow A G x (num_of_int n)) (@group_inv A G (@group_pow A G x (num_of_int (int_neg n))))). +Axiom thm_GROUP_ZPOW : forall {A : Type'}, forall G : Group A, forall x : A, forall n : Z, (@IN A x (@group_carrier A G)) -> @IN A (@group_zpow A G x n) (@group_carrier A G). +Axiom thm_GROUP_NPOW : forall {A : Type'}, forall G : Group A, forall x : A, forall n : N, (@group_zpow A G x (Z_of_N n)) = (@group_pow A G x n). +Axiom thm_GROUP_ZPOW_0 : forall {A : Type'}, forall G : Group A, forall x : A, (@group_zpow A G x (Z_of_N (NUMERAL 0%N))) = (@group_id A G). +Axiom thm_GROUP_ZPOW_1 : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@group_zpow A G x (Z_of_N (NUMERAL (BIT1 0%N)))) = x. +Axiom thm_GROUP_ZPOW_2 : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@group_zpow A G x (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) = (@group_mul A G x x). +Axiom thm_GROUP_ZPOW_ID : forall {_257759 : Type'} (G : Group _257759), forall n : Z, (@group_zpow _257759 G (@group_id _257759 G) n) = (@group_id _257759 G). +Axiom thm_GROUP_ZPOW_NEG : forall {A : Type'}, forall G : Group A, forall x : A, forall n : Z, (@IN A x (@group_carrier A G)) -> (@group_zpow A G x (int_neg n)) = (@group_inv A G (@group_zpow A G x n)). +Axiom thm_GROUP_ZPOW_MINUS1 : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@group_zpow A G x (int_neg (Z_of_N (NUMERAL (BIT1 0%N))))) = (@group_inv A G x). +Axiom thm_GROUP_ZPOW_POW : forall {A : Type'}, (forall G : Group A, forall x : A, forall n : N, (@group_zpow A G x (Z_of_N n)) = (@group_pow A G x n)) /\ (forall G : Group A, forall x : A, forall n : N, (@group_zpow A G x (int_neg (Z_of_N n))) = (@group_inv A G (@group_pow A G x n))). +Axiom thm_GROUP_ZPOW_ABS_EQ_ID : forall {A : Type'}, forall G : Group A, forall x : A, forall n : Z, (@IN A x (@group_carrier A G)) -> ((@group_zpow A G x (int_abs n)) = (@group_id A G)) = ((@group_zpow A G x n) = (@group_id A G)). +Axiom thm_GROUP_ZPOW_ADD : forall {A : Type'}, forall G : Group A, forall x : A, forall m : Z, forall n : Z, (@IN A x (@group_carrier A G)) -> (@group_zpow A G x (int_add m n)) = (@group_mul A G (@group_zpow A G x m) (@group_zpow A G x n)). +Axiom thm_GROUP_ZPOW_SUB : forall {A : Type'}, forall G : Group A, forall x : A, forall m : Z, forall n : Z, (@IN A x (@group_carrier A G)) -> (@group_zpow A G x (int_sub m n)) = (@group_div A G (@group_zpow A G x m) (@group_zpow A G x n)). +Axiom thm_GROUP_ZPOW_SUB_ALT : forall {A : Type'}, forall G : Group A, forall x : A, forall m : Z, forall n : Z, (@IN A x (@group_carrier A G)) -> (@group_zpow A G x (int_sub m n)) = (@group_mul A G (@group_inv A G (@group_zpow A G x n)) (@group_zpow A G x m)). +Axiom thm_GROUP_INV_ZPOW : forall {A : Type'}, forall G : Group A, forall x : A, forall n : Z, (@IN A x (@group_carrier A G)) -> (@group_inv A G (@group_zpow A G x n)) = (@group_zpow A G (@group_inv A G x) n). +Axiom thm_GROUP_ZPOW_INV : forall {A : Type'}, forall G : Group A, forall x : A, forall n : Z, (@IN A x (@group_carrier A G)) -> (@group_zpow A G (@group_inv A G x) n) = (@group_zpow A G x (int_neg n)). +Axiom thm_GROUP_ZPOW_MUL : forall {A : Type'}, forall G : Group A, forall x : A, forall m : Z, forall n : Z, (@IN A x (@group_carrier A G)) -> (@group_zpow A G x (int_mul m n)) = (@group_zpow A G (@group_zpow A G x m) n). +Axiom thm_GROUP_COMMUTES_ZPOW : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall n : Z, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_mul A G x y) = (@group_mul A G y x)))) -> (@group_mul A G (@group_zpow A G x n) y) = (@group_mul A G y (@group_zpow A G x n)). +Axiom thm_GROUP_MUL_ZPOW : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall n : Z, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_mul A G x y) = (@group_mul A G y x)))) -> (@group_zpow A G (@group_mul A G x y) n) = (@group_mul A G (@group_zpow A G x n) (@group_zpow A G y n)). +Axiom thm_abelian_group : forall {A : Type'}, forall G : Group A, (@abelian_group A G) = (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> (@group_mul A G x y) = (@group_mul A G y x)). +Axiom thm_TRIVIAL_IMP_ABELIAN_GROUP : forall {A : Type'}, forall G : Group A, (@trivial_group A G) -> @abelian_group A G. +Axiom thm_ABELIAN_SINGLETON_GROUP : forall {A : Type'}, forall a : A, @abelian_group A (@singleton_group A a). +Axiom thm_ABELIAN_OPPOSITE_GROUP : forall {A : Type'}, forall G : Group A, (@abelian_group A (@opposite_group A G)) = (@abelian_group A G). +Axiom thm_ABELIAN_GROUP_MUL_POW : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall n : N, ((@abelian_group A G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> (@group_pow A G (@group_mul A G x y) n) = (@group_mul A G (@group_pow A G x n) (@group_pow A G y n)). +Axiom thm_ABELIAN_GROUP_MUL_ZPOW : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall n : Z, ((@abelian_group A G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> (@group_zpow A G (@group_mul A G x y) n) = (@group_mul A G (@group_zpow A G x n) (@group_zpow A G y n)). +Axiom thm_ABELIAN_GROUP_DIV_ZPOW : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall n : Z, ((@abelian_group A G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> (@group_zpow A G (@group_div A G x y) n) = (@group_div A G (@group_zpow A G x n) (@group_zpow A G y n)). +Axiom thm_ABELIAN_GROUP_MUL_AC : forall {A : Type'}, forall G : Group A, (@abelian_group A G) = ((forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> (@group_mul A G x y) = (@group_mul A G y x)) /\ ((forall x : A, forall y : A, forall z : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A z (@group_carrier A G)))) -> (@group_mul A G (@group_mul A G x y) z) = (@group_mul A G x (@group_mul A G y z))) /\ (forall x : A, forall y : A, forall z : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A z (@group_carrier A G)))) -> (@group_mul A G x (@group_mul A G y z)) = (@group_mul A G y (@group_mul A G x z))))). +Axiom thm_group_neg : forall {_258875 : Type'}, forall G : Group _258875, forall x : _258875, (@group_neg _258875 G x) = (@COND _258875 (@IN _258875 x (@group_carrier _258875 G)) (@group_inv _258875 G x) x). +Axiom thm_group_add : forall {A : Type'}, forall y : A, forall x : A, forall G : Group A, (@group_add A G x y) = (@COND A ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) (@group_mul A G x y) (@COND A (@IN A x (@group_carrier A G)) y (@COND A (@IN A y (@group_carrier A G)) x (@ε A (fun w : A => ~ (@IN A w (@group_carrier A G))))))). +Axiom thm_group_nmul : forall {_258956 : Type'} (G : Group _258956) (n : N) (x : _258956), ((@group_nmul _258956 G (NUMERAL 0%N) x) = (@group_id _258956 G)) /\ ((@group_nmul _258956 G (N.succ n) x) = (@group_add _258956 G x (@group_nmul _258956 G n x))). +Axiom thm_GROUP_NEG : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A (@group_neg A G x) (@group_carrier A G)) = (@IN A x (@group_carrier A G)). +Axiom thm_GROUP_ADD : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, (@IN A (@group_add A G x y) (@group_carrier A G)) = ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))). +Axiom thm_GROUP_NEG_EQ_INV : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@group_neg A G x) = (@group_inv A G x). +Axiom thm_GROUP_ADD_EQ_MUL : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> (@group_add A G x y) = (@group_mul A G x y). +Axiom thm_GROUP_ADD_LID : forall {A : Type'}, forall G : Group A, forall x : A, (@group_add A G (@group_id A G) x) = x. +Axiom thm_GROUP_ADD_RID : forall {A : Type'}, forall G : Group A, forall x : A, (@group_add A G x (@group_id A G)) = x. +Axiom thm_GROUP_ADD_ASSOC : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall z : A, (@group_add A G x (@group_add A G y z)) = (@group_add A G (@group_add A G x y) z). +Axiom thm_GROUP_NEG_ADD : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, (@group_neg A G (@group_add A G x y)) = (@group_add A G (@group_neg A G y) (@group_neg A G x)). +Axiom thm_GROUP_NEG_NEG : forall {A : Type'}, forall G : Group A, forall x : A, (@group_neg A G (@group_neg A G x)) = x. +Axiom thm_GROUP_NEG_ID : forall {A : Type'}, forall G : Group A, (@group_neg A G (@group_id A G)) = (@group_id A G). +Axiom thm_GROUP_ADD_EQ_ID : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@group_add A G x y) = (@group_id A G)) = ((@group_add A G y x) = (@group_id A G)). +Axiom thm_GROUP_NEG_EQ_ID : forall {A : Type'}, forall G : Group A, forall x : A, ((@group_neg A G x) = (@group_id A G)) = (x = (@group_id A G)). +Axiom thm_GROUP_NMUL_EQ_POW : forall {A : Type'}, forall G : Group A, forall x : A, forall n : N, (@IN A x (@group_carrier A G)) -> (@group_nmul A G n x) = (@group_pow A G x n). +Axiom thm_GROUP_NMUL_ADD : forall {A : Type'}, forall G : Group A, forall x : A, forall m : N, forall n : N, (@group_nmul A G (N.add m n) x) = (@group_add A G (@group_nmul A G m x) (@group_nmul A G n x)). +Axiom thm_GROUP_NMUL_MUL : forall {A : Type'}, forall G : Group A, forall x : A, forall m : N, forall n : N, (@group_nmul A G (N.mul m n) x) = (@group_nmul A G m (@group_nmul A G n x)). +Axiom thm_GROUP_NMUL_1 : forall {A : Type'}, forall G : Group A, forall x : A, (@group_nmul A G (NUMERAL (BIT1 0%N)) x) = x. +Axiom thm_GROUP_NEG_NMUL : forall {A : Type'}, forall G : Group A, forall x : A, forall n : N, (@group_neg A G (@group_nmul A G n x)) = (@group_nmul A G n (@group_neg A G x)). +Axiom thm_GROUP_ADD_SYM : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, (@abelian_group A G) -> (@group_add A G x y) = (@group_add A G y x). +Axiom thm_GROUP_ADD_SYM_EQ : forall {A : Type'}, forall G : Group A, (forall x : A, forall y : A, (@group_add A G x y) = (@group_add A G y x)) = (@abelian_group A G). +Axiom thm_GROUP_ADD_NMUL : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall n : N, (@abelian_group A G) -> (@group_nmul A G n (@group_add A G x y)) = (@group_add A G (@group_nmul A G n x) (@group_nmul A G n y)). +Axiom thm_NEUTRAL_GROUP_ADD : forall {A : Type'}, forall G : Group A, (@neutral A (@group_add A G)) = (@group_id A G). +Axiom thm_MONOIDAL_GROUP_ADD : forall {A : Type'}, forall G : Group A, (@monoidal A (@group_add A G)) = (@abelian_group A G). +Axiom thm_group_product : forall {_260068 A : Type'}, forall G : Group A, (@group_product _260068 A G) = (@iterato A _260068 (@group_carrier A G) (@group_id A G) (@group_mul A G)). +Axiom thm_group_sum : forall {A K : Type'}, forall G : Group A, (@group_sum A K G) = (@group_product K A G (@ε (K -> K -> Prop) (fun l : K -> K -> Prop => (@woset K l) /\ ((@fld K l) = (@UNIV K))))). +Axiom thm_GROUP_PRODUCT_EQ : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, forall g : K -> A, (forall i : K, (@IN K i k) -> (f i) = (g i)) -> (@group_product K A G ltle k f) = (@group_product K A G ltle k g). +Axiom thm_GROUP_SUM_EQ : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, forall g : K -> A, (forall i : K, (@IN K i k) -> (f i) = (g i)) -> (@group_sum A K G k f) = (@group_sum A K G k g). +Axiom thm_GROUP_PRODUCT_CLOSED : forall {A K : Type'}, forall P : A -> Prop, forall G : Group A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, ((P (@group_id A G)) /\ ((forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((P x) /\ (P y)))) -> P (@group_mul A G x y)) /\ (forall i : K, ((@IN K i k) /\ ((@IN A (f i) (@group_carrier A G)) /\ (~ ((f i) = (@group_id A G))))) -> P (f i)))) -> P (@group_product K A G ltle k f). +Axiom thm_GROUP_SUM_CLOSED : forall {A K : Type'}, forall P : A -> Prop, forall G : Group A, forall k : K -> Prop, forall f : K -> A, ((P (@group_id A G)) /\ ((forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((P x) /\ (P y)))) -> P (@group_mul A G x y)) /\ (forall i : K, ((@IN K i k) /\ ((@IN A (f i) (@group_carrier A G)) /\ (~ ((f i) = (@group_id A G))))) -> P (f i)))) -> P (@group_sum A K G k f). +Axiom thm_GROUP_PRODUCT : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, @IN A (@group_product K A G ltle k f) (@group_carrier A G). +Axiom thm_GROUP_SUM : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, @IN A (@group_sum A K G k f) (@group_carrier A G). +Axiom thm_GROUP_PRODUCT_SUPPORT : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, (@group_product K A G ltle (@GSPEC K (fun GEN_PVAR_755 : K => exists i : K, @SETSPEC K GEN_PVAR_755 ((@IN K i k) /\ (~ ((f i) = (@group_id A G)))) i)) f) = (@group_product K A G ltle k f). +Axiom thm_GROUP_SUM_SUPPORT : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, (@group_sum A K G (@GSPEC K (fun GEN_PVAR_756 : K => exists i : K, @SETSPEC K GEN_PVAR_756 ((@IN K i k) /\ (~ ((f i) = (@group_id A G)))) i)) f) = (@group_sum A K G k f). +Axiom thm_GROUP_PRODUCT_RESTRICT : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, (@group_product K A G ltle (@GSPEC K (fun GEN_PVAR_757 : K => exists i : K, @SETSPEC K GEN_PVAR_757 ((@IN K i k) /\ (@IN A (f i) (@group_carrier A G))) i)) f) = (@group_product K A G ltle k f). +Axiom thm_GROUP_SUM_RESTRICT : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, (@group_sum A K G (@GSPEC K (fun GEN_PVAR_758 : K => exists i : K, @SETSPEC K GEN_PVAR_758 ((@IN K i k) /\ (@IN A (f i) (@group_carrier A G))) i)) f) = (@group_sum A K G k f). +Axiom thm_GROUP_PRODUCT_EXPAND_CASES : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, (@group_product K A G ltle k f) = (@COND A (@FINITE K (@GSPEC K (fun GEN_PVAR_759 : K => exists i : K, @SETSPEC K GEN_PVAR_759 ((@IN K i k) /\ (@IN A (f i) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) i))) (@group_product K A G ltle (@GSPEC K (fun GEN_PVAR_760 : K => exists i : K, @SETSPEC K GEN_PVAR_760 ((@IN K i k) /\ (@IN A (f i) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) i)) f) (@group_id A G)). +Axiom thm_GROUP_SUM_EXPAND_CASES : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, (@group_sum A K G k f) = (@COND A (@FINITE K (@GSPEC K (fun GEN_PVAR_761 : K => exists i : K, @SETSPEC K GEN_PVAR_761 ((@IN K i k) /\ (@IN A (f i) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) i))) (@group_sum A K G (@GSPEC K (fun GEN_PVAR_762 : K => exists i : K, @SETSPEC K GEN_PVAR_762 ((@IN K i k) /\ (@IN A (f i) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) i)) f) (@group_id A G)). +Axiom thm_GROUP_PRODUCT_RESTRICT_SET : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall P : K -> Prop, forall s : K -> Prop, forall f : K -> A, (@group_product K A G ltle (@GSPEC K (fun GEN_PVAR_763 : K => exists x : K, @SETSPEC K GEN_PVAR_763 ((@IN K x s) /\ (P x)) x)) f) = (@group_product K A G ltle s (fun x : K => @COND A (P x) (f x) (@group_id A G))). +Axiom thm_GROUP_SUM_RESTRICT_SET : forall {A K : Type'}, forall G : Group A, forall P : K -> Prop, forall s : K -> Prop, forall f : K -> A, (@group_sum A K G (@GSPEC K (fun GEN_PVAR_764 : K => exists x : K, @SETSPEC K GEN_PVAR_764 ((@IN K x s) /\ (P x)) x)) f) = (@group_sum A K G s (fun x : K => @COND A (P x) (f x) (@group_id A G))). +Axiom thm_GROUP_PRODUCT_SUPERSET : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall s : K -> Prop, forall t : K -> Prop, forall f : K -> A, ((@SUBSET K t s) /\ (forall x : K, ((@IN K x s) /\ (~ (@IN K x t))) -> (f x) = (@group_id A G))) -> (@group_product K A G ltle s f) = (@group_product K A G ltle t f). +Axiom thm_GROUP_SUM_SUPERSET : forall {A K : Type'}, forall G : Group A, forall s : K -> Prop, forall t : K -> Prop, forall f : K -> A, ((@SUBSET K t s) /\ (forall x : K, ((@IN K x s) /\ (~ (@IN K x t))) -> (f x) = (@group_id A G))) -> (@group_sum A K G s f) = (@group_sum A K G t f). +Axiom thm_GROUP_PRODUCT_CLAUSES : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall f : K -> A, ((@group_product K A G ltle (@EMPTY K) f) = (@group_id A G)) /\ (forall i : K, forall k : K -> Prop, ((@FINITE K (@GSPEC K (fun GEN_PVAR_765 : K => exists j : K, @SETSPEC K GEN_PVAR_765 ((@IN K j k) /\ (@IN A (f j) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) j))) /\ (forall j : K, (@IN K j k) -> (ltle i j) /\ (~ (ltle j i)))) -> (@group_product K A G ltle (@INSERT K i k) f) = (@COND A ((@IN A (f i) (@group_carrier A G)) -> @IN K i k) (@group_product K A G ltle k f) (@group_mul A G (f i) (@group_product K A G ltle k f)))). +Axiom thm_GROUP_PRODUCT_CLAUSES_EXISTS : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall f : K -> A, ((@group_product K A G ltle (@EMPTY K) f) = (@group_id A G)) /\ (forall k : K -> Prop, ((@FINITE K (@GSPEC K (fun GEN_PVAR_766 : K => exists i : K, @SETSPEC K GEN_PVAR_766 ((@IN K i k) /\ (@IN A (f i) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) i))) /\ (~ ((@GSPEC K (fun GEN_PVAR_767 : K => exists i : K, @SETSPEC K GEN_PVAR_767 ((@IN K i k) /\ (@IN A (f i) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) i)) = (@EMPTY K)))) -> exists i : K, (@IN K i k) /\ ((@IN A (f i) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A)))) /\ ((@group_product K A G ltle k f) = (@group_mul A G (f i) (@group_product K A G ltle (@DELETE K k i) f))))). +Axiom thm_GROUP_SUM_CLAUSES_EXISTS : forall {A K : Type'}, forall G : Group A, forall f : K -> A, ((@group_sum A K G (@EMPTY K) f) = (@group_id A G)) /\ (forall k : K -> Prop, ((@FINITE K (@GSPEC K (fun GEN_PVAR_768 : K => exists i : K, @SETSPEC K GEN_PVAR_768 ((@IN K i k) /\ (@IN A (f i) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) i))) /\ (~ ((@GSPEC K (fun GEN_PVAR_769 : K => exists i : K, @SETSPEC K GEN_PVAR_769 ((@IN K i k) /\ (@IN A (f i) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) i)) = (@EMPTY K)))) -> exists i : K, (@IN K i k) /\ ((@IN A (f i) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A)))) /\ ((@group_sum A K G k f) = (@group_mul A G (f i) (@group_sum A K G (@DELETE K k i) f))))). +Axiom thm_GROUP_PRODUCT_EQ_ID : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall s : K -> Prop, forall f : K -> A, (forall i : K, (@IN K i s) -> (f i) = (@group_id A G)) -> (@group_product K A G ltle s f) = (@group_id A G). +Axiom thm_GROUP_SUM_EQ_ID : forall {A K : Type'}, forall G : Group A, forall s : K -> Prop, forall f : K -> A, (forall i : K, (@IN K i s) -> (f i) = (@group_id A G)) -> (@group_sum A K G s f) = (@group_id A G). +Axiom thm_GROUP_PRODUCT_ID : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall s : K -> Prop, (@group_product K A G ltle s (fun x : K => @group_id A G)) = (@group_id A G). +Axiom thm_GROUP_SUM_ID : forall {A K : Type'}, forall G : Group A, forall s : K -> Prop, (@group_sum A K G s (fun x : K => @group_id A G)) = (@group_id A G). +Axiom thm_GROUP_COMMUTES_PRODUCT : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, forall z : A, ((forall i : K, ((@IN K i k) /\ ((@IN A (f i) (@group_carrier A G)) /\ (~ ((f i) = (@group_id A G))))) -> (@group_mul A G (f i) z) = (@group_mul A G z (f i))) /\ (@IN A z (@group_carrier A G))) -> (@group_mul A G (@group_product K A G ltle k f) z) = (@group_mul A G z (@group_product K A G ltle k f)). +Axiom thm_GROUP_COMMUTES_SUM : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, forall z : A, ((forall i : K, ((@IN K i k) /\ ((@IN A (f i) (@group_carrier A G)) /\ (~ ((f i) = (@group_id A G))))) -> (@group_mul A G (f i) z) = (@group_mul A G z (f i))) /\ (@IN A z (@group_carrier A G))) -> (@group_mul A G (@group_sum A K G k f) z) = (@group_mul A G z (@group_sum A K G k f)). +Axiom thm_GROUP_PRODUCT_SING : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall i : K, forall f : K -> A, (@group_product K A G ltle (@INSERT K i (@EMPTY K)) f) = (@COND A (@IN A (f i) (@group_carrier A G)) (f i) (@group_id A G)). +Axiom thm_GROUP_SUM_SING : forall {A K : Type'}, forall G : Group A, forall i : K, forall f : K -> A, (@group_sum A K G (@INSERT K i (@EMPTY K)) f) = (@COND A (@IN A (f i) (@group_carrier A G)) (f i) (@group_id A G)). +Axiom thm_GROUP_PRODUCT_UNION : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall f : K -> A, forall s : K -> Prop, forall t : K -> Prop, ((@woset K ltle) /\ (((@fld K ltle) = (@UNIV K)) /\ (((@FINITE K (@GSPEC K (fun GEN_PVAR_780 : K => exists i : K, @SETSPEC K GEN_PVAR_780 ((@IN K i s) /\ (@IN A (f i) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) i))) = (@FINITE K (@GSPEC K (fun GEN_PVAR_781 : K => exists i : K, @SETSPEC K GEN_PVAR_781 ((@IN K i t) /\ (@IN A (f i) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) i)))) /\ (forall x : K, forall y : K, ((@IN K x s) /\ (@IN K y t)) -> (ltle x y) /\ (~ (x = y)))))) -> (@group_product K A G ltle (@UNION K s t) f) = (@group_mul A G (@group_product K A G ltle s f) (@group_product K A G ltle t f)). +Axiom thm_GROUP_PRODUCT_CLAUSES_LEFT : forall {A : Type'}, forall G : Group A, forall f : N -> A, forall m : N, forall n : N, (@group_product N A G N.le (dotdot m n) f) = (@COND A (N.le m n) (@COND A (@IN A (f m) (@group_carrier A G)) (@group_mul A G (f m) (@group_product N A G N.le (dotdot (N.add m (NUMERAL (BIT1 0%N))) n) f)) (@group_product N A G N.le (dotdot (N.add m (NUMERAL (BIT1 0%N))) n) f)) (@group_id A G)). +Axiom thm_GROUP_PRODUCT_CLAUSES_RIGHT : forall {A : Type'}, forall G : Group A, forall f : N -> A, forall m : N, forall n : N, (@group_product N A G N.le (dotdot m n) f) = (@COND A (N.le m n) (@COND A (@IN A (f n) (@group_carrier A G)) (@COND A (n = (NUMERAL 0%N)) (f (NUMERAL 0%N)) (@group_mul A G (@group_product N A G N.le (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f) (f n))) (@group_product N A G N.le (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f)) (@group_id A G)). +Axiom thm_GROUP_PRODUCT_CLAUSES_NUMSEG : forall {A : Type'}, (forall G : Group A, forall m : N, forall f : N -> A, (@group_product N A G N.le (dotdot m (NUMERAL 0%N)) f) = (@COND A ((m = (NUMERAL 0%N)) /\ (@IN A (f (NUMERAL 0%N)) (@group_carrier A G))) (f (NUMERAL 0%N)) (@group_id A G))) /\ (forall G : Group A, forall m : N, forall n : N, forall f : N -> A, (@group_product N A G N.le (dotdot m (N.succ n)) f) = (@COND A ((N.le m (N.succ n)) /\ (@IN A (f (N.succ n)) (@group_carrier A G))) (@group_mul A G (@group_product N A G N.le (dotdot m n) f) (f (N.succ n))) (@group_product N A G N.le (dotdot m n) f))). +Axiom thm_GROUP_PRODUCT_CLAUSES_COMMUTING : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall i : K, forall k : K -> Prop, forall f : K -> A, ((@woset K ltle) /\ (((@fld K ltle) = (@UNIV K)) /\ ((@FINITE K (@GSPEC K (fun GEN_PVAR_784 : K => exists j : K, @SETSPEC K GEN_PVAR_784 ((@IN K j k) /\ (@IN A (f j) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) j))) /\ (forall j : K, ((@IN K j k) /\ ((ltle j i) /\ ((~ (j = i)) /\ ((@IN A (f i) (@group_carrier A G)) /\ (@IN A (f j) (@group_carrier A G)))))) -> (@group_mul A G (f i) (f j)) = (@group_mul A G (f j) (f i)))))) -> (@group_product K A G ltle (@INSERT K i k) f) = (@COND A ((@IN A (f i) (@group_carrier A G)) -> @IN K i k) (@group_product K A G ltle k f) (@group_mul A G (f i) (@group_product K A G ltle k f))). +Axiom thm_ABELIAN_GROUP_PRODUCT_CLAUSES : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall i : K, forall k : K -> Prop, forall f : K -> A, ((@woset K ltle) /\ (((@fld K ltle) = (@UNIV K)) /\ ((@abelian_group A G) /\ (@FINITE K (@GSPEC K (fun GEN_PVAR_785 : K => exists j : K, @SETSPEC K GEN_PVAR_785 ((@IN K j k) /\ (@IN A (f j) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) j)))))) -> (@group_product K A G ltle (@INSERT K i k) f) = (@COND A ((@IN A (f i) (@group_carrier A G)) -> @IN K i k) (@group_product K A G ltle k f) (@group_mul A G (f i) (@group_product K A G ltle k f))). +Axiom thm_GROUP_SUM_CLAUSES_COMMUTING : forall {A K : Type'}, forall G : Group A, forall i : K, forall k : K -> Prop, forall f : K -> A, ((@FINITE K (@GSPEC K (fun GEN_PVAR_786 : K => exists j : K, @SETSPEC K GEN_PVAR_786 ((@IN K j k) /\ (@IN A (f j) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) j))) /\ (forall j : K, ((@IN K j k) /\ ((~ (j = i)) /\ ((@IN A (f i) (@group_carrier A G)) /\ (@IN A (f j) (@group_carrier A G))))) -> (@group_mul A G (f i) (f j)) = (@group_mul A G (f j) (f i)))) -> (@group_sum A K G (@INSERT K i k) f) = (@COND A ((@IN A (f i) (@group_carrier A G)) -> @IN K i k) (@group_sum A K G k f) (@group_mul A G (f i) (@group_sum A K G k f))). +Axiom thm_ABELIAN_GROUP_SUM_CLAUSES : forall {A K : Type'}, forall G : Group A, forall i : K, forall k : K -> Prop, forall f : K -> A, ((@abelian_group A G) /\ (@FINITE K (@GSPEC K (fun GEN_PVAR_787 : K => exists j : K, @SETSPEC K GEN_PVAR_787 ((@IN K j k) /\ (@IN A (f j) (@DIFF A (@group_carrier A G) (@INSERT A (@group_id A G) (@EMPTY A))))) j)))) -> (@group_sum A K G (@INSERT K i k) f) = (@COND A ((@IN A (f i) (@group_carrier A G)) -> @IN K i k) (@group_sum A K G k f) (@group_mul A G (f i) (@group_sum A K G k f))). +Axiom thm_GROUP_PRODUCT_MUL : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, forall g : K -> A, ((@woset K ltle) /\ (((@fld K ltle) = (@UNIV K)) /\ ((@FINITE K (@GSPEC K (fun GEN_PVAR_788 : K => exists i : K, @SETSPEC K GEN_PVAR_788 ((@IN K i k) /\ (~ ((f i) = (@group_id A G)))) i))) /\ ((@FINITE K (@GSPEC K (fun GEN_PVAR_789 : K => exists i : K, @SETSPEC K GEN_PVAR_789 ((@IN K i k) /\ (~ ((g i) = (@group_id A G)))) i))) /\ ((forall i : K, (@IN K i k) -> (@IN A (f i) (@group_carrier A G)) /\ (@IN A (g i) (@group_carrier A G))) /\ (@pairwise K (fun i : K => fun j : K => (@group_mul A G (f i) (g j)) = (@group_mul A G (g j) (f i))) k)))))) -> (@group_product K A G ltle k (fun i : K => @group_mul A G (f i) (g i))) = (@group_mul A G (@group_product K A G ltle k f) (@group_product K A G ltle k g)). +Axiom thm_GROUP_SUM_MUL : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, forall g : K -> A, ((@FINITE K (@GSPEC K (fun GEN_PVAR_790 : K => exists i : K, @SETSPEC K GEN_PVAR_790 ((@IN K i k) /\ (~ ((f i) = (@group_id A G)))) i))) /\ ((@FINITE K (@GSPEC K (fun GEN_PVAR_791 : K => exists i : K, @SETSPEC K GEN_PVAR_791 ((@IN K i k) /\ (~ ((g i) = (@group_id A G)))) i))) /\ ((forall i : K, (@IN K i k) -> (@IN A (f i) (@group_carrier A G)) /\ (@IN A (g i) (@group_carrier A G))) /\ (@pairwise K (fun i : K => fun j : K => (@group_mul A G (f i) (g j)) = (@group_mul A G (g j) (f i))) k)))) -> (@group_sum A K G k (fun i : K => @group_mul A G (f i) (g i))) = (@group_mul A G (@group_sum A K G k f) (@group_sum A K G k g)). +Axiom thm_ABELIAN_GROUP_SUM_MUL : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, forall g : K -> A, ((@abelian_group A G) /\ ((@FINITE K (@GSPEC K (fun GEN_PVAR_792 : K => exists i : K, @SETSPEC K GEN_PVAR_792 ((@IN K i k) /\ (~ ((f i) = (@group_id A G)))) i))) /\ ((@FINITE K (@GSPEC K (fun GEN_PVAR_793 : K => exists i : K, @SETSPEC K GEN_PVAR_793 ((@IN K i k) /\ (~ ((g i) = (@group_id A G)))) i))) /\ (forall i : K, (@IN K i k) -> (@IN A (f i) (@group_carrier A G)) /\ (@IN A (g i) (@group_carrier A G)))))) -> (@group_sum A K G k (fun i : K => @group_mul A G (f i) (g i))) = (@group_mul A G (@group_sum A K G k f) (@group_sum A K G k g)). +Axiom thm_GROUP_SUM_INV : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, ((@FINITE K (@GSPEC K (fun GEN_PVAR_794 : K => exists i : K, @SETSPEC K GEN_PVAR_794 ((@IN K i k) /\ (~ ((f i) = (@group_id A G)))) i))) /\ ((forall i : K, (@IN K i k) -> @IN A (f i) (@group_carrier A G)) /\ (@pairwise K (fun i : K => fun j : K => (@group_mul A G (f i) (f j)) = (@group_mul A G (f j) (f i))) k))) -> (@group_sum A K G k (fun i : K => @group_inv A G (f i))) = (@group_inv A G (@group_sum A K G k f)). +Axiom thm_ABELIAN_GROUP_SUM_INV : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, ((@abelian_group A G) /\ ((@FINITE K (@GSPEC K (fun GEN_PVAR_795 : K => exists i : K, @SETSPEC K GEN_PVAR_795 ((@IN K i k) /\ (~ ((f i) = (@group_id A G)))) i))) /\ (forall i : K, (@IN K i k) -> @IN A (f i) (@group_carrier A G)))) -> (@group_sum A K G k (fun i : K => @group_inv A G (f i))) = (@group_inv A G (@group_sum A K G k f)). +Axiom thm_GROUP_SUM_POW : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, forall n : N, ((@FINITE K (@GSPEC K (fun GEN_PVAR_796 : K => exists i : K, @SETSPEC K GEN_PVAR_796 ((@IN K i k) /\ (~ ((f i) = (@group_id A G)))) i))) /\ ((forall i : K, (@IN K i k) -> @IN A (f i) (@group_carrier A G)) /\ (@pairwise K (fun i : K => fun j : K => (@group_mul A G (f i) (f j)) = (@group_mul A G (f j) (f i))) k))) -> (@group_sum A K G k (fun i : K => @group_pow A G (f i) n)) = (@group_pow A G (@group_sum A K G k f) n). +Axiom thm_ABELIAN_GROUP_SUM_POW : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, forall n : N, ((@abelian_group A G) /\ ((@FINITE K (@GSPEC K (fun GEN_PVAR_797 : K => exists i : K, @SETSPEC K GEN_PVAR_797 ((@IN K i k) /\ (~ ((f i) = (@group_id A G)))) i))) /\ (forall i : K, (@IN K i k) -> @IN A (f i) (@group_carrier A G)))) -> (@group_sum A K G k (fun i : K => @group_pow A G (f i) n)) = (@group_pow A G (@group_sum A K G k f) n). +Axiom thm_GROUP_SUM_ZPOW : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, forall n : Z, ((@FINITE K (@GSPEC K (fun GEN_PVAR_798 : K => exists i : K, @SETSPEC K GEN_PVAR_798 ((@IN K i k) /\ (~ ((f i) = (@group_id A G)))) i))) /\ ((forall i : K, (@IN K i k) -> @IN A (f i) (@group_carrier A G)) /\ (@pairwise K (fun i : K => fun j : K => (@group_mul A G (f i) (f j)) = (@group_mul A G (f j) (f i))) k))) -> (@group_sum A K G k (fun i : K => @group_zpow A G (f i) n)) = (@group_zpow A G (@group_sum A K G k f) n). +Axiom thm_ABELIAN_GROUP_SUM_ZPOW : forall {A K : Type'}, forall G : Group A, forall k : K -> Prop, forall f : K -> A, forall n : Z, ((@abelian_group A G) /\ ((@FINITE K (@GSPEC K (fun GEN_PVAR_799 : K => exists i : K, @SETSPEC K GEN_PVAR_799 ((@IN K i k) /\ (~ ((f i) = (@group_id A G)))) i))) /\ (forall i : K, (@IN K i k) -> @IN A (f i) (@group_carrier A G)))) -> (@group_sum A K G k (fun i : K => @group_zpow A G (f i) n)) = (@group_zpow A G (@group_sum A K G k f) n). +Axiom thm_GROUP_SUM_IMAGE : forall {A B K : Type'}, forall G : Group B, forall f : K -> A, forall g : A -> B, forall s : K -> Prop, ((@abelian_group B G) /\ (forall x : K, forall y : K, ((@IN K x s) /\ ((@IN K y s) /\ ((f x) = (f y)))) -> x = y)) -> (@group_sum B A G (@IMAGE K A f s) g) = (@group_sum B K G s (@o K A B g f)). +Axiom thm_ABELIAN_GROUP_PRODUCT_ITERATE : forall {A K : Type'}, forall G : Group A, forall ltle : K -> K -> Prop, forall x : K -> A, forall k : K -> Prop, ((@woset K ltle) /\ (((@fld K ltle) = (@UNIV K)) /\ ((@abelian_group A G) /\ (forall i : K, (@IN K i k) -> @IN A (x i) (@group_carrier A G))))) -> (@group_product K A G ltle k x) = (@iterate K A (@group_add A G) k x). +Axiom thm_ABELIAN_GROUP_SUM_ITERATE : forall {A K : Type'}, forall G : Group A, forall x : K -> A, forall k : K -> Prop, ((@abelian_group A G) /\ (forall i : K, (@IN K i k) -> @IN A (x i) (@group_carrier A G))) -> (@group_sum A K G k x) = (@iterate K A (@group_add A G) k x). +Axiom thm_ABELIAN_GROUP_ITERATE : forall {A K : Type'}, forall G : Group A, forall x : K -> A, forall k : K -> Prop, ((@abelian_group A G) /\ (forall i : K, (@IN K i k) -> @IN A (x i) (@group_carrier A G))) -> @IN A (@iterate K A (@group_add A G) k x) (@group_carrier A G). +Axiom thm_group_conjugation : forall {_265504 : Type'}, forall x : _265504, forall G : Group _265504, forall a : _265504, (@group_conjugation _265504 G a x) = (@group_mul _265504 G a (@group_mul _265504 G x (@group_inv _265504 G a))). +Axiom thm_GROUP_CONJUGATION : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> @IN A (@group_conjugation A G x y) (@group_carrier A G). +Axiom thm_GROUP_CONJUGATION_CONJUGATION : forall {A : Type'}, forall G : Group A, forall a : A, forall b : A, forall x : A, ((@IN A a (@group_carrier A G)) /\ ((@IN A b (@group_carrier A G)) /\ (@IN A x (@group_carrier A G)))) -> (@group_conjugation A G a (@group_conjugation A G b x)) = (@group_conjugation A G (@group_mul A G a b) x). +Axiom thm_GROUP_CONJUGATION_EQ : forall {A : Type'}, forall G : Group A, forall a : A, forall x : A, forall y : A, ((@IN A a (@group_carrier A G)) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> ((@group_conjugation A G a x) = (@group_conjugation A G a y)) = (x = y). +Axiom thm_GROUP_CONJUGATION_EQ_SELF : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> ((@group_conjugation A G x y) = y) = ((@group_mul A G x y) = (@group_mul A G y x)). +Axiom thm_GROUP_CONJUGATION_EQ_ID : forall {A : Type'}, forall G : Group A, forall a : A, forall x : A, ((@IN A a (@group_carrier A G)) /\ (@IN A x (@group_carrier A G))) -> ((@group_conjugation A G a x) = (@group_id A G)) = (x = (@group_id A G)). +Axiom thm_GROUP_CONJUGATION_BY_ID : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@group_conjugation A G (@group_id A G) x) = x. +Axiom thm_GROUP_CONJUGATION_LINV : forall {A : Type'}, forall G : Group A, forall a : A, forall x : A, ((@IN A a (@group_carrier A G)) /\ (@IN A x (@group_carrier A G))) -> (@group_conjugation A G (@group_inv A G a) (@group_conjugation A G a x)) = x. +Axiom thm_GROUP_CONJUGATION_RINV : forall {A : Type'}, forall G : Group A, forall a : A, forall x : A, ((@IN A a (@group_carrier A G)) /\ (@IN A x (@group_carrier A G))) -> (@group_conjugation A G a (@group_conjugation A G (@group_inv A G a) x)) = x. +Axiom thm_IN_IMAGE_GROUP_CONJUGATION : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (@SUBSET A s (@group_carrier A G)))) -> (@IN A x (@IMAGE A A (@group_conjugation A G y) s)) = (@IN A (@group_conjugation A G (@group_inv A G y) x) s). +Axiom thm_IMAGE_GROUP_CONJUGATION_SUBSET : forall {A : Type'}, forall G : Group A, forall a : A, forall s : A -> Prop, ((@IN A a (@group_carrier A G)) /\ (@SUBSET A s (@group_carrier A G))) -> @SUBSET A (@IMAGE A A (@group_conjugation A G a) s) (@group_carrier A G). +Axiom thm_IMAGE_GROUP_CONJUGATION_BY_ID : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@SUBSET A s (@group_carrier A G)) -> (@IMAGE A A (@group_conjugation A G (@group_id A G)) s) = s. +Axiom thm_IMAGE_GROUP_CONJUGATION_BY_MUL : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall a : A, forall b : A, ((@IN A a (@group_carrier A G)) /\ ((@IN A b (@group_carrier A G)) /\ (@SUBSET A s (@group_carrier A G)))) -> (@IMAGE A A (@group_conjugation A G (@group_mul A G a b)) s) = (@IMAGE A A (@group_conjugation A G a) (@IMAGE A A (@group_conjugation A G b) s)). +Axiom thm_IMAGE_GROUP_CONJUGATION_BY_INV : forall {A : Type'}, forall G : Group A, forall a : A, forall s : A -> Prop, forall t : A -> Prop, ((@IN A a (@group_carrier A G)) /\ ((@SUBSET A s (@group_carrier A G)) /\ (@SUBSET A t (@group_carrier A G)))) -> ((@IMAGE A A (@group_conjugation A G (@group_inv A G a)) s) = t) = ((@IMAGE A A (@group_conjugation A G a) t) = s). +Axiom thm_IMAGE_GROUP_CONJUGATION_EQ_SWAP : forall {A : Type'}, forall G : Group A, forall a : A, forall s : A -> Prop, forall t : A -> Prop, ((@IN A a (@group_carrier A G)) /\ ((@SUBSET A s (@group_carrier A G)) /\ ((@SUBSET A t (@group_carrier A G)) /\ ((@IMAGE A A (@group_conjugation A G (@group_inv A G a)) s) = t)))) -> (@IMAGE A A (@group_conjugation A G a) t) = s. +Axiom thm_IMAGE_GROUP_CONJUGATION_EQ_PREIMAGE : forall {A : Type'}, forall G : Group A, forall a : A, forall s : A -> Prop, forall t : A -> Prop, ((@IN A a (@group_carrier A G)) /\ ((@SUBSET A s (@group_carrier A G)) /\ (@SUBSET A t (@group_carrier A G)))) -> ((@IMAGE A A (@group_conjugation A G a) s) = t) = ((@GSPEC A (fun GEN_PVAR_805 : A => exists x : A, @SETSPEC A GEN_PVAR_805 ((@IN A x (@group_carrier A G)) /\ (@IN A (@group_conjugation A G a x) t)) x)) = s). +Axiom thm_subgroup_of : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@subgroup_of A s G) = ((@SUBSET A s (@group_carrier A G)) /\ ((@IN A (@group_id A G) s) /\ ((forall x : A, (@IN A x s) -> @IN A (@group_inv A G x) s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> @IN A (@group_mul A G x y) s)))). +Axiom thm_IN_SUBGROUP_ID : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> @IN A (@group_id A G) h. +Axiom thm_IN_SUBGROUP_INV : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@subgroup_of A h G) /\ (@IN A x h)) -> @IN A (@group_inv A G x) h. +Axiom thm_IN_SUBGROUP_MUL : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x h) /\ (@IN A y h))) -> @IN A (@group_mul A G x y) h. +Axiom thm_IN_SUBGROUP_DIV : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x h) /\ (@IN A y h))) -> @IN A (@group_div A G x y) h. +Axiom thm_IN_SUBGROUP_POW : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall n : N, ((@subgroup_of A h G) /\ (@IN A x h)) -> @IN A (@group_pow A G x n) h. +Axiom thm_IN_SUBGROUP_ZPOW : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall n : Z, ((@subgroup_of A h G) /\ (@IN A x h)) -> @IN A (@group_zpow A G x n) h. +Axiom thm_IN_SUBGROUP_CONJUGATION : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall a : A, forall x : A, ((@subgroup_of A h G) /\ ((@IN A a h) /\ (@IN A x h))) -> @IN A (@group_conjugation A G a x) h. +Axiom thm_IN_SUBGROUP_PRODUCT : forall {A K : Type'}, forall G : Group A, forall h : A -> Prop, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, ((@subgroup_of A h G) /\ (forall i : K, ((@IN K i k) /\ (@IN A (f i) (@group_carrier A G))) -> @IN A (f i) h)) -> @IN A (@group_product K A G ltle k f) h. +Axiom thm_IN_SUBGROUP_SUM : forall {A K : Type'}, forall G : Group A, forall h : A -> Prop, forall k : K -> Prop, forall f : K -> A, ((@subgroup_of A h G) /\ (forall i : K, ((@IN K i k) /\ (@IN A (f i) (@group_carrier A G))) -> @IN A (f i) h)) -> @IN A (@group_sum A K G k f) h. +Axiom thm_IMAGE_GROUP_CONJUGATION_SUBGROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall a : A, ((@subgroup_of A h G) /\ (@IN A a h)) -> (@IMAGE A A (@group_conjugation A G a) h) = h. +Axiom thm_SUBGROUP_OF_INTERS : forall {A : Type'}, forall G : Group A, forall gs : (A -> Prop) -> Prop, ((forall g : A -> Prop, (@IN (A -> Prop) g gs) -> @subgroup_of A g G) /\ (~ (gs = (@EMPTY (A -> Prop))))) -> @subgroup_of A (@INTERS A gs) G. +Axiom thm_SUBGROUP_OF_INTER : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@subgroup_of A h G)) -> @subgroup_of A (@INTER A g h) G. +Axiom thm_SUBGROUP_OF_UNIONS : forall {A : Type'}, forall G : Group A, forall u : (A -> Prop) -> Prop, ((~ (u = (@EMPTY (A -> Prop)))) /\ ((forall h : A -> Prop, (@IN (A -> Prop) h u) -> @subgroup_of A h G) /\ (forall g : A -> Prop, forall h : A -> Prop, ((@IN (A -> Prop) g u) /\ (@IN (A -> Prop) h u)) -> (@SUBSET A g h) \/ (@SUBSET A h g)))) -> @subgroup_of A (@UNIONS A u) G. +Axiom thm_SUBGROUP_OF_OPPOSITE_GROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h (@opposite_group A G)) = (@subgroup_of A h G). +Axiom thm_SUBGROUP_OF_IMP_SUBSET : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@subgroup_of A s G) -> @SUBSET A s (@group_carrier A G). +Axiom thm_SUBGROUP_OF_IMP_NONEMPTY : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@subgroup_of A s G) -> ~ (s = (@EMPTY A)). +Axiom thm_TRIVIAL_SUBGROUP_OF : forall {A : Type'}, forall G : Group A, @subgroup_of A (@INSERT A (@group_id A G) (@EMPTY A)) G. +Axiom thm_CARRIER_SUBGROUP_OF : forall {A : Type'}, forall G : Group A, @subgroup_of A (@group_carrier A G) G. +Axiom thm_FINITE_SUBGROUPS : forall {A : Type'}, forall G : Group A, (@FINITE A (@group_carrier A G)) -> @FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_807 : A -> Prop => exists h : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_807 (@subgroup_of A h G) h)). +Axiom thm_FINITE_RESTRICTED_SUBGROUPS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall G : Group A, (@FINITE A (@group_carrier A G)) -> @FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_809 : A -> Prop => exists h : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_809 ((@subgroup_of A h G) /\ (P h)) h)). +Axiom thm_subgroup_generated : forall {A : Type'}, forall s : A -> Prop, forall G : Group A, (@subgroup_generated A G s) = (@group A (@pair (A -> Prop) (prod A (prod (A -> A) (A -> A -> A))) (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_810 : A -> Prop => exists h : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_810 ((@subgroup_of A h G) /\ (@SUBSET A (@INTER A (@group_carrier A G) s) h)) h))) (@pair A (prod (A -> A) (A -> A -> A)) (@group_id A G) (@pair (A -> A) (A -> A -> A) (@group_inv A G) (@group_mul A G))))). +Axiom thm_SUBGROUP_GENERATED : forall {A : Type'}, (forall G : Group A, forall s : A -> Prop, (@group_carrier A (@subgroup_generated A G s)) = (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_811 : A -> Prop => exists h : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_811 ((@subgroup_of A h G) /\ (@SUBSET A (@INTER A (@group_carrier A G) s) h)) h)))) /\ ((forall G : Group A, forall s : A -> Prop, (@group_id A (@subgroup_generated A G s)) = (@group_id A G)) /\ ((forall G : Group A, forall s : A -> Prop, (@group_inv A (@subgroup_generated A G s)) = (@group_inv A G)) /\ (forall G : Group A, forall s : A -> Prop, (@group_mul A (@subgroup_generated A G s)) = (@group_mul A G)))). +Axiom thm_SUBGROUP_GENERATED_EQ : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@subgroup_generated A G s) = G) = ((@group_carrier A (@subgroup_generated A G s)) = (@group_carrier A G)). +Axiom thm_GROUP_ID_SUBGROUP : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, @IN A (@group_id A G) (@group_carrier A (@subgroup_generated A G s)). +Axiom thm_GROUP_INV_SUBGROUP : forall {_267524 : Type'} (G : Group _267524) (s : _267524 -> Prop), forall x : _267524, (@IN _267524 x (@group_carrier _267524 (@subgroup_generated _267524 G s))) -> @IN _267524 (@group_inv _267524 G x) (@group_carrier _267524 (@subgroup_generated _267524 G s)). +Axiom thm_GROUP_MUL_SUBGROUP : forall {_267565 : Type'} (G : Group _267565) (s : _267565 -> Prop), forall x : _267565, forall y : _267565, ((@IN _267565 x (@group_carrier _267565 (@subgroup_generated _267565 G s))) /\ (@IN _267565 y (@group_carrier _267565 (@subgroup_generated _267565 G s)))) -> @IN _267565 (@group_mul _267565 G x y) (@group_carrier _267565 (@subgroup_generated _267565 G s)). +Axiom thm_ABELIAN_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@abelian_group A G) -> @abelian_group A (@subgroup_generated A G h). +Axiom thm_GROUP_DIV_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@group_div A (@subgroup_generated A G s)) = (@group_div A G). +Axiom thm_GROUP_POW_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@group_pow A (@subgroup_generated A G s)) = (@group_pow A G). +Axiom thm_GROUP_ZPOW_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@group_zpow A (@subgroup_generated A G s)) = (@group_zpow A G). +Axiom thm_GROUP_CONJUGATION_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@group_conjugation A (@subgroup_generated A G s)) = (@group_conjugation A G). +Axiom thm_SUBGROUP_GENERATED_RESTRICT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@subgroup_generated A G s) = (@subgroup_generated A G (@INTER A (@group_carrier A G) s)). +Axiom thm_SUBGROUP_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, @subgroup_of A (@group_carrier A (@subgroup_generated A G s)) G. +Axiom thm_SUBGROUP_GENERATED_MONO : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> @SUBSET A (@group_carrier A (@subgroup_generated A G s)) (@group_carrier A (@subgroup_generated A G t)). +Axiom thm_SUBGROUP_GENERATED_MINIMAL : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall s : A -> Prop, ((@SUBSET A s h) /\ (@subgroup_of A h G)) -> @SUBSET A (@group_carrier A (@subgroup_generated A G s)) h. +Axiom thm_SUBGROUPS_GENERATED_EQ : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@group_carrier A (@subgroup_generated A G t))) /\ (@SUBSET A t (@group_carrier A (@subgroup_generated A G s)))) -> (@subgroup_generated A G s) = (@subgroup_generated A G t). +Axiom thm_SUBGROUP_GENERATED_INDUCT : forall {A : Type'}, forall G : Group A, forall P : A -> Prop, forall s : A -> Prop, ((forall x : A, ((@IN A x (@group_carrier A G)) /\ (@IN A x s)) -> P x) /\ ((P (@group_id A G)) /\ ((forall x : A, (P x) -> P (@group_inv A G x)) /\ (forall x : A, forall y : A, ((P x) /\ (P y)) -> P (@group_mul A G x y))))) -> forall x : A, (@IN A x (@group_carrier A (@subgroup_generated A G s))) -> P x. +Axiom thm_GROUP_CARRIER_SUBGROUP_GENERATED_SUBSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, @SUBSET A (@group_carrier A (@subgroup_generated A G h)) (@group_carrier A G). +Axiom thm_SUBGROUP_GENERATED_SUPERSET : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@subgroup_generated A G s) = G) = (@SUBSET A (@group_carrier A G) (@group_carrier A (@subgroup_generated A G s))). +Axiom thm_SUBGROUP_OF_SUBGROUP_GENERATED_EQ : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall k : A -> Prop, (@subgroup_of A h (@subgroup_generated A G k)) = ((@subgroup_of A h G) /\ (@SUBSET A h (@group_carrier A (@subgroup_generated A G k)))). +Axiom thm_SUBGROUP_GENERATED_INDUCT_STRONG : forall {A : Type'}, forall G : Group A, forall P : A -> Prop, forall s : A -> Prop, ((forall x : A, ((@IN A x (@group_carrier A G)) /\ (@IN A x s)) -> P x) /\ ((P (@group_id A G)) /\ ((forall x : A, ((@IN A x (@group_carrier A G)) /\ (P x)) -> P (@group_inv A G x)) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((P x) /\ (P y)))) -> P (@group_mul A G x y))))) -> forall x : A, (@IN A x (@group_carrier A (@subgroup_generated A G s))) -> P x. +Axiom thm_SUBGROUP_GENERATED_INDUCT_ALT : forall {A : Type'}, forall G : Group A, forall P : A -> Prop, forall s : A -> Prop, ((P (@group_id A G)) /\ ((forall x : A, ((@IN A x (@group_carrier A G)) /\ (@IN A x s)) -> (P x) /\ (P (@group_inv A G x))) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((P x) /\ (P y)))) -> P (@group_mul A G x y)))) -> forall x : A, (@IN A x (@group_carrier A (@subgroup_generated A G s))) -> P x. +Axiom thm_SUBGROUP_GENERATED_INDUCT_LEFT : forall {A : Type'}, forall G : Group A, forall P : A -> Prop, forall s : A -> Prop, ((P (@group_id A G)) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A x s) /\ ((@IN A y (@group_carrier A G)) /\ (P y)))) -> (P (@group_mul A G x y)) /\ (P (@group_mul A G (@group_inv A G x) y)))) -> forall x : A, (@IN A x (@group_carrier A (@subgroup_generated A G s))) -> P x. +Axiom thm_FINITE_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@FINITE A (@group_carrier A G)) -> @FINITE A (@group_carrier A (@subgroup_generated A G s)). +Axiom thm_CARD_LE_SUBGROUP_GENERATED : forall {A K : Type'}, forall G : Group A, forall s : A -> Prop, forall k : K -> Prop, ((@INFINITE K k) /\ (@le_c A K s k)) -> @le_c A K (@group_carrier A (@subgroup_generated A G s)) k. +Axiom thm_COUNTABLE_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@COUNTABLE A (@group_carrier A G)) \/ (@COUNTABLE A s)) -> @COUNTABLE A (@group_carrier A (@subgroup_generated A G s)). +Axiom thm_SUBGROUP_GENERATED_SUBSET_CARRIER : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, @SUBSET A (@INTER A (@group_carrier A G) h) (@group_carrier A (@subgroup_generated A G h)). +Axiom thm_SUBSET_CARRIER_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@group_carrier A G)) /\ (@SUBSET A s t)) -> @SUBSET A s (@group_carrier A (@subgroup_generated A G t)). +Axiom thm_SUBGROUP_GENERATED_MINIMAL_EQ : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall s : A -> Prop, (@subgroup_of A h G) -> (@SUBSET A (@group_carrier A (@subgroup_generated A G s)) h) = (@SUBSET A (@INTER A (@group_carrier A G) s) h). +Axiom thm_CARRIER_SUBGROUP_GENERATED_SUBGROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> (@group_carrier A (@subgroup_generated A G h)) = h. +Axiom thm_SUBGROUP_OF_SUBGROUP_GENERATED_SUBGROUP_EQ : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall k : A -> Prop, (@subgroup_of A k G) -> (@subgroup_of A h (@subgroup_generated A G k)) = ((@subgroup_of A h G) /\ (@SUBSET A h k)). +Axiom thm_SUBGROUP_GENERATED_GROUP_CARRIER : forall {A : Type'}, forall G : Group A, (@subgroup_generated A G (@group_carrier A G)) = G. +Axiom thm_SUBGROUP_OF_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@SUBSET A g h)) -> @subgroup_of A g (@subgroup_generated A G h). +Axiom thm_SUBGROUP_GENERATED_SUBSET_CARRIER_SUBSET : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@SUBSET A s (@group_carrier A G)) -> @SUBSET A s (@group_carrier A (@subgroup_generated A G s)). +Axiom thm_SUBGROUP_GENERATED_REFL : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@SUBSET A (@group_carrier A G) s) -> (@subgroup_generated A G s) = G. +Axiom thm_SUBGROUP_GENERATED_INC : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall x : A, ((@SUBSET A s (@group_carrier A G)) /\ (@IN A x s)) -> @IN A x (@group_carrier A (@subgroup_generated A G s)). +Axiom thm_SUBGROUP_GENERATED_INC_GEN : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall x : A, ((@IN A x (@group_carrier A G)) /\ (@IN A x s)) -> @IN A x (@group_carrier A (@subgroup_generated A G s)). +Axiom thm_SUBGROUP_OF_SUBGROUP_GENERATED_REV : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, (@subgroup_of A g (@subgroup_generated A G h)) -> @subgroup_of A g G. +Axiom thm_TRIVIAL_GROUP_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@trivial_group A G) -> @trivial_group A (@subgroup_generated A G s). +Axiom thm_TRIVIAL_GROUP_SUBGROUP_GENERATED_TRIVIAL : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@SUBSET A s (@INSERT A (@group_id A G) (@EMPTY A))) -> @trivial_group A (@subgroup_generated A G s). +Axiom thm_TRIVIAL_GROUP_SUBGROUP_GENERATED_EQ : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@trivial_group A (@subgroup_generated A G s)) = (@SUBSET A (@INTER A (@group_carrier A G) s) (@INSERT A (@group_id A G) (@EMPTY A))). +Axiom thm_TRIVIAL_GROUP_GENERATED_BY_ANYTHING : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@trivial_group A G) -> (@subgroup_generated A G s) = G. +Axiom thm_SUBGROUP_GENERATED_BY_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@subgroup_generated A G (@group_carrier A (@subgroup_generated A G s))) = (@subgroup_generated A G s). +Axiom thm_SUBGROUP_GENERATED_INSERT_ID : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@subgroup_generated A G (@INSERT A (@group_id A G) s)) = (@subgroup_generated A G s). +Axiom thm_GROUP_CARRIER_SUBGROUP_GENERATED_MONO : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@group_carrier A (@subgroup_generated A (@subgroup_generated A G s) t)) (@group_carrier A (@subgroup_generated A G t)). +Axiom thm_SUBGROUP_GENERATED_IDEMPOT_GEN : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s (@group_carrier A (@subgroup_generated A G t))) -> (@subgroup_generated A (@subgroup_generated A G t) s) = (@subgroup_generated A G s). +Axiom thm_SUBGROUP_GENERATED_IDEMPOT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> (@subgroup_generated A (@subgroup_generated A G t) s) = (@subgroup_generated A G s). +Axiom thm_SUBGROUP_GENERATED_BY_SUBGROUP_GENERATED_IDEMPOT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> (@subgroup_generated A (@subgroup_generated A G t) (@group_carrier A (@subgroup_generated A G s))) = (@subgroup_generated A G s). +Axiom thm_SUBGROUP_GENERATED_UNION_LEFT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@subgroup_generated A G (@UNION A (@group_carrier A (@subgroup_generated A G s)) t)) = (@subgroup_generated A G (@UNION A s t)). +Axiom thm_SUBGROUP_GENERATED_UNION_RIGHT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@subgroup_generated A G (@UNION A s (@group_carrier A (@subgroup_generated A G t)))) = (@subgroup_generated A G (@UNION A s t)). +Axiom thm_SUBGROUP_GENERATED_UNION : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@subgroup_generated A G (@UNION A (@group_carrier A (@subgroup_generated A G s)) (@group_carrier A (@subgroup_generated A G t)))) = (@subgroup_generated A G (@UNION A s t)). +Axiom thm_TRIVIAL_GROUP_SUBGROUP_GENERATED_EMPTY : forall {A : Type'}, forall G : Group A, @trivial_group A (@subgroup_generated A G (@EMPTY A)). +Axiom thm_SUBGROUP_OF_COMMUTING_ELEMENTS : forall {A : Type'}, forall G : Group A, forall z : A, (@IN A z (@group_carrier A G)) -> @subgroup_of A (@GSPEC A (fun GEN_PVAR_814 : A => exists x : A, @SETSPEC A GEN_PVAR_814 ((@IN A x (@group_carrier A G)) /\ ((@group_mul A G x z) = (@group_mul A G z x))) x)) G. +Axiom thm_GROUP_COMMUTES_SUBGROUP_GENERATED_EQ : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall z : A, (@IN A z (@group_carrier A G)) -> (forall x : A, (@IN A x (@group_carrier A (@subgroup_generated A G s))) -> (@group_mul A G x z) = (@group_mul A G z x)) = (forall x : A, ((@IN A x (@group_carrier A G)) /\ (@IN A x s)) -> (@group_mul A G x z) = (@group_mul A G z x)). +Axiom thm_GROUP_COMMUTES_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall z : A, ((forall x : A, (@IN A x s) -> (@group_mul A G x z) = (@group_mul A G z x)) /\ (@IN A z (@group_carrier A G))) -> forall x : A, (@IN A x (@group_carrier A (@subgroup_generated A G s))) -> (@group_mul A G x z) = (@group_mul A G z x). +Axiom thm_GROUP_COMMUTES_SUBGROUPS_GENERATED_EQ : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (forall x : A, forall y : A, ((@IN A x (@group_carrier A (@subgroup_generated A G s))) /\ (@IN A y (@group_carrier A (@subgroup_generated A G t)))) -> (@group_mul A G x y) = (@group_mul A G y x)) = (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A x s) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A y t)))) -> (@group_mul A G x y) = (@group_mul A G y x)). +Axiom thm_ABELIAN_GROUP_SUBGROUP_GENERATED_GEN : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A x s) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A y s)))) -> (@group_mul A G x y) = (@group_mul A G y x)) -> @abelian_group A (@subgroup_generated A G s). +Axiom thm_prod_group : forall {A B : Type'}, forall G : Group A, forall G' : Group B, (@prod_group A B G G') = (@group (prod A B) (@pair ((prod A B) -> Prop) (prod (prod A B) (prod ((prod A B) -> prod A B) ((prod A B) -> (prod A B) -> prod A B))) (@CROSS A B (@group_carrier A G) (@group_carrier B G')) (@pair (prod A B) (prod ((prod A B) -> prod A B) ((prod A B) -> (prod A B) -> prod A B)) (@pair A B (@group_id A G) (@group_id B G')) (@pair ((prod A B) -> prod A B) ((prod A B) -> (prod A B) -> prod A B) (@GABS ((prod A B) -> prod A B) (fun f : (prod A B) -> prod A B => forall x : A, forall x' : B, @GEQ (prod A B) (f (@pair A B x x')) (@pair A B (@group_inv A G x) (@group_inv B G' x')))) (@GABS ((prod A B) -> (prod A B) -> prod A B) (fun f : (prod A B) -> (prod A B) -> prod A B => forall x : A, forall x' : B, @GEQ ((prod A B) -> prod A B) (f (@pair A B x x')) (@GABS ((prod A B) -> prod A B) (fun f' : (prod A B) -> prod A B => forall y : A, forall y' : B, @GEQ (prod A B) (f' (@pair A B y y')) (@pair A B (@group_mul A G x y) (@group_mul B G' x' y')))))))))). +Axiom thm_PROD_GROUP : forall {A B : Type'}, (forall G : Group A, forall G' : Group B, (@group_carrier (prod A B) (@prod_group A B G G')) = (@CROSS A B (@group_carrier A G) (@group_carrier B G'))) /\ ((forall G : Group A, forall G' : Group B, (@group_id (prod A B) (@prod_group A B G G')) = (@pair A B (@group_id A G) (@group_id B G'))) /\ ((forall G : Group A, forall G' : Group B, (@group_inv (prod A B) (@prod_group A B G G')) = (@GABS ((prod A B) -> prod A B) (fun f : (prod A B) -> prod A B => forall x : A, forall x' : B, @GEQ (prod A B) (f (@pair A B x x')) (@pair A B (@group_inv A G x) (@group_inv B G' x'))))) /\ (forall G : Group A, forall G' : Group B, (@group_mul (prod A B) (@prod_group A B G G')) = (@GABS ((prod A B) -> (prod A B) -> prod A B) (fun f : (prod A B) -> (prod A B) -> prod A B => forall x : A, forall x' : B, @GEQ ((prod A B) -> prod A B) (f (@pair A B x x')) (@GABS ((prod A B) -> prod A B) (fun f' : (prod A B) -> prod A B => forall y : A, forall y' : B, @GEQ (prod A B) (f' (@pair A B y y')) (@pair A B (@group_mul A G x y) (@group_mul B G' x' y'))))))))). +Axiom thm_GROUP_POW_PROD_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall x : A, forall y : B, forall n : N, ((@IN A x (@group_carrier A G)) /\ (@IN B y (@group_carrier B H))) -> (@group_pow (prod A B) (@prod_group A B G H) (@pair A B x y) n) = (@pair A B (@group_pow A G x n) (@group_pow B H y n)). +Axiom thm_GROUP_ZPOW_PROD_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall x : A, forall y : B, forall n : Z, ((@IN A x (@group_carrier A G)) /\ (@IN B y (@group_carrier B H))) -> (@group_zpow (prod A B) (@prod_group A B G H) (@pair A B x y) n) = (@pair A B (@group_zpow A G x n) (@group_zpow B H y n)). +Axiom thm_OPPOSITE_PROD_GROUP : forall {A B : Type'}, forall G1 : Group A, forall G2 : Group B, (@opposite_group (prod A B) (@prod_group A B G1 G2)) = (@prod_group A B (@opposite_group A G1) (@opposite_group B G2)). +Axiom thm_TRIVIAL_PROD_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@trivial_group (prod A B) (@prod_group A B G H)) = ((@trivial_group A G) /\ (@trivial_group B H)). +Axiom thm_FINITE_PROD_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@FINITE (prod A B) (@group_carrier (prod A B) (@prod_group A B G H))) = ((@FINITE A (@group_carrier A G)) /\ (@FINITE B (@group_carrier B H))). +Axiom thm_ABELIAN_PROD_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@abelian_group (prod A B) (@prod_group A B G H)) = ((@abelian_group A G) /\ (@abelian_group B H)). +Axiom thm_CROSS_SUBGROUP_OF_PROD_GROUP : forall {A B : Type'}, forall G1 : Group A, forall G2 : Group B, forall h1' : A -> Prop, forall h2' : B -> Prop, (@subgroup_of (prod A B) (@CROSS A B h1' h2') (@prod_group A B G1 G2)) = ((@subgroup_of A h1' G1) /\ (@subgroup_of B h2' G2)). +Axiom thm_PROD_GROUP_SUBGROUP_GENERATED : forall {A B : Type'}, forall G1 : Group A, forall G2 : Group B, forall h1' : A -> Prop, forall h2' : B -> Prop, ((@subgroup_of A h1' G1) /\ (@subgroup_of B h2' G2)) -> (@prod_group A B (@subgroup_generated A G1 h1') (@subgroup_generated B G2 h2')) = (@subgroup_generated (prod A B) (@prod_group A B G1 G2) (@CROSS A B h1' h2')). +Axiom thm_product_group : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, (@product_group A K k G) = (@group (K -> A) (@pair ((K -> A) -> Prop) (prod (K -> A) (prod ((K -> A) -> K -> A) ((K -> A) -> (K -> A) -> K -> A))) (@cartesian_product A K k (fun i : K => @group_carrier A (G i))) (@pair (K -> A) (prod ((K -> A) -> K -> A) ((K -> A) -> (K -> A) -> K -> A)) (@RESTRICTION K A k (fun i : K => @group_id A (G i))) (@pair ((K -> A) -> K -> A) ((K -> A) -> (K -> A) -> K -> A) (fun x : K -> A => @RESTRICTION K A k (fun i : K => @group_inv A (G i) (x i))) (fun x : K -> A => fun y : K -> A => @RESTRICTION K A k (fun i : K => @group_mul A (G i) (x i) (y i))))))). +Axiom thm_PRODUCT_GROUP : forall {A K : Type'}, (forall k : K -> Prop, forall G : K -> Group A, (@group_carrier (K -> A) (@product_group A K k G)) = (@cartesian_product A K k (fun i : K => @group_carrier A (G i)))) /\ ((forall k : K -> Prop, forall G : K -> Group A, (@group_id (K -> A) (@product_group A K k G)) = (@RESTRICTION K A k (fun i : K => @group_id A (G i)))) /\ ((forall k : K -> Prop, forall G : K -> Group A, (@group_inv (K -> A) (@product_group A K k G)) = (fun x : K -> A => @RESTRICTION K A k (fun i : K => @group_inv A (G i) (x i)))) /\ (forall k : K -> Prop, forall G : K -> Group A, (@group_mul (K -> A) (@product_group A K k G)) = (fun x : K -> A => fun y : K -> A => @RESTRICTION K A k (fun i : K => @group_mul A (G i) (x i) (y i)))))). +Axiom thm_GROUP_POW_PRODUCT_GROUP : forall {A K : Type'}, forall G : K -> Group A, forall k : K -> Prop, forall x : K -> A, forall n : N, (@group_pow (K -> A) (@product_group A K k G) x n) = (@RESTRICTION K A k (fun i : K => @group_pow A (G i) (x i) n)). +Axiom thm_GROUP_ZPOW_PRODUCT_GROUP : forall {A K : Type'}, forall G : K -> Group A, forall k : K -> Prop, forall x : K -> A, forall n : Z, (@group_zpow (K -> A) (@product_group A K k G) x n) = (@RESTRICTION K A k (fun i : K => @group_zpow A (G i) (x i) n)). +Axiom thm_OPPOSITE_PRODUCT_GROUP : forall {A K : Type'}, forall G : K -> Group A, forall k : K -> Prop, (@opposite_group (K -> A) (@product_group A K k G)) = (@product_group A K k (fun i : K => @opposite_group A (G i))). +Axiom thm_GROUP_PRODUCT_INJECTION : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, forall a : A, forall i : K, (@IN (K -> A) (@RESTRICTION K A k (fun j : K => @COND A (j = i) a (@group_id A (G j)))) (@group_carrier (K -> A) (@product_group A K k G))) = ((@IN K i k) -> @IN A a (@group_carrier A (G i))). +Axiom thm_TRIVIAL_PRODUCT_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, (@trivial_group (K -> A) (@product_group A K k G)) = (forall i : K, (@IN K i k) -> @trivial_group A (G i)). +Axiom thm_CARTESIAN_PRODUCT_SUBGROUP_OF_PRODUCT_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall h : K -> A -> Prop, forall G : K -> Group A, (@subgroup_of (K -> A) (@cartesian_product A K k h) (@product_group A K k G)) = (forall i : K, (@IN K i k) -> @subgroup_of A (h i) (G i)). +Axiom thm_PRODUCT_GROUP_SUBGROUP_GENERATED : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, forall h : K -> A -> Prop, (forall i : K, (@IN K i k) -> @subgroup_of A (h i) (G i)) -> (@product_group A K k (fun i : K => @subgroup_generated A (G i) (h i))) = (@subgroup_generated (K -> A) (@product_group A K k G) (@cartesian_product A K k h)). +Axiom thm_FINITE_PRODUCT_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, (@FINITE (K -> A) (@group_carrier (K -> A) (@product_group A K k G))) = ((@FINITE K (@GSPEC K (fun GEN_PVAR_818 : K => exists i : K, @SETSPEC K GEN_PVAR_818 ((@IN K i k) /\ (~ (@trivial_group A (G i)))) i))) /\ (forall i : K, (@IN K i k) -> @FINITE A (@group_carrier A (G i)))). +Axiom thm_ABELIAN_PRODUCT_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, (@abelian_group (K -> A) (@product_group A K k G)) = (forall i : K, (@IN K i k) -> @abelian_group A (G i)). +Axiom thm_sum_group : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, (@sum_group A K k G) = (@subgroup_generated (K -> A) (@product_group A K k G) (@GSPEC (K -> A) (fun GEN_PVAR_820 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_820 ((@IN (K -> A) x (@cartesian_product A K k (fun i : K => @group_carrier A (G i)))) /\ (@FINITE K (@GSPEC K (fun GEN_PVAR_819 : K => exists i : K, @SETSPEC K GEN_PVAR_819 ((@IN K i k) /\ (~ ((x i) = (@group_id A (G i))))) i)))) x))). +Axiom thm_SUM_GROUP_ALT : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, (@sum_group A K k G) = (@subgroup_generated (K -> A) (@product_group A K k G) (@GSPEC (K -> A) (fun GEN_PVAR_822 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_822 (@FINITE K (@GSPEC K (fun GEN_PVAR_821 : K => exists i : K, @SETSPEC K GEN_PVAR_821 ((@IN K i k) /\ (~ ((x i) = (@group_id A (G i))))) i))) x))). +Axiom thm_SUM_GROUP_EQ_PRODUCT_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, (@FINITE K k) -> (@sum_group A K k G) = (@product_group A K k G). +Axiom thm_SUBGROUP_SUM_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, @subgroup_of (K -> A) (@GSPEC (K -> A) (fun GEN_PVAR_824 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_824 ((@IN (K -> A) x (@cartesian_product A K k (fun i : K => @group_carrier A (G i)))) /\ (@FINITE K (@GSPEC K (fun GEN_PVAR_823 : K => exists i : K, @SETSPEC K GEN_PVAR_823 ((@IN K i k) /\ (~ ((x i) = (@group_id A (G i))))) i)))) x)) (@product_group A K k G). +Axiom thm_SUM_GROUP_CLAUSES : forall {A K : Type'}, (forall k : K -> Prop, forall G : K -> Group A, (@group_carrier (K -> A) (@sum_group A K k G)) = (@GSPEC (K -> A) (fun GEN_PVAR_826 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_826 ((@IN (K -> A) x (@cartesian_product A K k (fun i : K => @group_carrier A (G i)))) /\ (@FINITE K (@GSPEC K (fun GEN_PVAR_825 : K => exists i : K, @SETSPEC K GEN_PVAR_825 ((@IN K i k) /\ (~ ((x i) = (@group_id A (G i))))) i)))) x))) /\ ((forall k : K -> Prop, forall G : K -> Group A, (@group_id (K -> A) (@sum_group A K k G)) = (@RESTRICTION K A k (fun i : K => @group_id A (G i)))) /\ ((forall k : K -> Prop, forall G : K -> Group A, (@group_inv (K -> A) (@sum_group A K k G)) = (fun x : K -> A => @RESTRICTION K A k (fun i : K => @group_inv A (G i) (x i)))) /\ (forall k : K -> Prop, forall G : K -> Group A, (@group_mul (K -> A) (@sum_group A K k G)) = (fun x : K -> A => fun y : K -> A => @RESTRICTION K A k (fun i : K => @group_mul A (G i) (x i) (y i)))))). +Axiom thm_GROUP_POW_SUM_GROUP : forall {A K : Type'}, forall G : K -> Group A, forall k : K -> Prop, forall x : K -> A, forall n : N, (@group_pow (K -> A) (@sum_group A K k G) x n) = (@RESTRICTION K A k (fun i : K => @group_pow A (G i) (x i) n)). +Axiom thm_GROUP_ZPOW_SUM_GROUP : forall {A K : Type'}, forall G : K -> Group A, forall k : K -> Prop, forall x : K -> A, forall n : Z, (@group_zpow (K -> A) (@sum_group A K k G) x n) = (@RESTRICTION K A k (fun i : K => @group_zpow A (G i) (x i) n)). +Axiom thm_GROUP_SUM_INJECTION : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, forall a : A, forall i : K, (@IN (K -> A) (@RESTRICTION K A k (fun j : K => @COND A (j = i) a (@group_id A (G j)))) (@group_carrier (K -> A) (@sum_group A K k G))) = ((@IN K i k) -> @IN A a (@group_carrier A (G i))). +Axiom thm_TRIVIAL_SUM_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, (@trivial_group (K -> A) (@sum_group A K k G)) = (forall i : K, (@IN K i k) -> @trivial_group A (G i)). +Axiom thm_CARTESIAN_PRODUCT_SUBGROUP_OF_SUM_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall h : K -> A -> Prop, forall G : K -> Group A, (@subgroup_of (K -> A) (@cartesian_product A K k h) (@sum_group A K k G)) = ((forall i : K, (@IN K i k) -> @subgroup_of A (h i) (G i)) /\ (forall z : K -> A, (@IN (K -> A) z (@cartesian_product A K k h)) -> @FINITE K (@GSPEC K (fun GEN_PVAR_827 : K => exists i : K, @SETSPEC K GEN_PVAR_827 ((@IN K i k) /\ (~ ((z i) = (@group_id A (G i))))) i)))). +Axiom thm_SUM_GROUP_SUBGROUP_GENERATED : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, forall h : K -> A -> Prop, (forall i : K, (@IN K i k) -> @subgroup_of A (h i) (G i)) -> (@sum_group A K k (fun i : K => @subgroup_generated A (G i) (h i))) = (@subgroup_generated (K -> A) (@sum_group A K k G) (@cartesian_product A K k h)). +Axiom thm_ABELIAN_SUM_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, (@abelian_group (K -> A) (@sum_group A K k G)) = (forall i : K, (@IN K i k) -> @abelian_group A (G i)). +Axiom thm_group_homomorphism : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) = ((@SUBSET B (@IMAGE A B f (@group_carrier A G)) (@group_carrier B G')) /\ (((f (@group_id A G)) = (@group_id B G')) /\ ((forall x : A, (@IN A x (@group_carrier A G)) -> (f (@group_inv A G x)) = (@group_inv B G' (f x))) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> (f (@group_mul A G x y)) = (@group_mul B G' (f x) (f y)))))). +Axiom thm_group_monomorphism : forall {A B : Type'}, forall G' : Group B, forall G : Group A, forall f : A -> B, (@group_monomorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((f x) = (f y)))) -> x = y)). +Axiom thm_group_epimorphism : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall G' : Group B, (@group_epimorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ ((@IMAGE A B f (@group_carrier A G)) = (@group_carrier B G'))). +Axiom thm_group_endomorphism : forall {A : Type'}, forall G : Group A, forall f : A -> A, (@group_endomorphism A G f) = (@group_homomorphism A A (@pair (Group A) (Group A) G G) f). +Axiom thm_group_isomorphisms : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, forall g : B -> A, (@group_isomorphisms A B (@pair (Group A) (Group B) G G') (@pair (A -> B) (B -> A) f g)) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ ((@group_homomorphism B A (@pair (Group B) (Group A) G' G) g) /\ ((forall x : A, (@IN A x (@group_carrier A G)) -> (g (f x)) = x) /\ (forall y : B, (@IN B y (@group_carrier B G')) -> (f (g y)) = y)))). +Axiom thm_group_isomorphism : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_isomorphism A B (@pair (Group A) (Group B) G G') f) = (exists g : B -> A, @group_isomorphisms A B (@pair (Group A) (Group B) G G') (@pair (A -> B) (B -> A) f g)). +Axiom thm_group_automorphism : forall {A : Type'}, forall G : Group A, forall f : A -> A, (@group_automorphism A G f) = (@group_isomorphism A A (@pair (Group A) (Group A) G G) f). +Axiom thm_GROUP_HOMOMORPHISM_EQ : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall f' : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (f' x) = (f x))) -> @group_homomorphism A B (@pair (Group A) (Group B) G H) f'. +Axiom thm_GROUP_MONOMORPHISM_EQ : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall f' : A -> B, ((@group_monomorphism A B (@pair (Group A) (Group B) G H) f) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (f' x) = (f x))) -> @group_monomorphism A B (@pair (Group A) (Group B) G H) f'. +Axiom thm_GROUP_EPIMORPHISM_EQ : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall f' : A -> B, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (f' x) = (f x))) -> @group_epimorphism A B (@pair (Group A) (Group B) G H) f'. +Axiom thm_GROUP_ENDOMORPHISM_EQ : forall {A : Type'}, forall G : Group A, forall f : A -> A, forall f' : A -> A, ((@group_endomorphism A G f) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (f' x) = (f x))) -> @group_endomorphism A G f'. +Axiom thm_GROUP_ISOMORPHISMS_EQ : forall {A B : Type'} (f' : A -> B) (g' : B -> A), forall G : Group A, forall H : Group B, forall f : A -> B, forall g : B -> A, ((@group_isomorphisms A B (@pair (Group A) (Group B) G H) (@pair (A -> B) (B -> A) f g)) /\ ((forall x : A, (@IN A x (@group_carrier A G)) -> (f' x) = (f x)) /\ (forall y : B, (@IN B y (@group_carrier B H)) -> (g' y) = (g y)))) -> @group_isomorphisms A B (@pair (Group A) (Group B) G H) (@pair (A -> B) (B -> A) f' g'). +Axiom thm_GROUP_ISOMORPHISM_EQ : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall f' : A -> B, ((@group_isomorphism A B (@pair (Group A) (Group B) G H) f) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (f' x) = (f x))) -> @group_isomorphism A B (@pair (Group A) (Group B) G H) f'. +Axiom thm_GROUP_AUTOMORPHISM_EQ : forall {A : Type'}, forall G : Group A, forall f : A -> A, forall f' : A -> A, ((@group_automorphism A G f) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (f' x) = (f x))) -> @group_automorphism A G f'. +Axiom thm_GROUP_HOMOMORPHISMS_EQ_ON_GENERATORS : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall s : A -> Prop, forall f : A -> B, forall g : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@group_homomorphism A B (@pair (Group A) (Group B) G H) g) /\ (forall x : A, ((@IN A x (@group_carrier A G)) /\ (@IN A x s)) -> (f x) = (g x)))) -> forall x : A, (@IN A x (@group_carrier A (@subgroup_generated A G s))) -> (f x) = (g x). +Axiom thm_GROUP_ISOMORPHISMS_SYM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, forall g : B -> A, (@group_isomorphisms A B (@pair (Group A) (Group B) G G') (@pair (A -> B) (B -> A) f g)) = (@group_isomorphisms B A (@pair (Group B) (Group A) G' G) (@pair (B -> A) (A -> B) g f)). +Axiom thm_GROUP_ISOMORPHISMS_IMP_ISOMORPHISM : forall {A B : Type'}, forall f : A -> B, forall g : B -> A, forall G : Group A, forall G' : Group B, (@group_isomorphisms A B (@pair (Group A) (Group B) G G') (@pair (A -> B) (B -> A) f g)) -> @group_isomorphism A B (@pair (Group A) (Group B) G G') f. +Axiom thm_GROUP_ISOMORPHISMS_IMP_ISOMORPHISM_ALT : forall {A B : Type'}, forall f : A -> B, forall g : B -> A, forall G : Group A, forall G' : Group B, (@group_isomorphisms A B (@pair (Group A) (Group B) G G') (@pair (A -> B) (B -> A) f g)) -> @group_isomorphism B A (@pair (Group B) (Group A) G' G) g. +Axiom thm_GROUP_HOMOMORPHISM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) = ((@SUBSET B (@IMAGE A B f (@group_carrier A G)) (@group_carrier B G')) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> (f (@group_mul A G x y)) = (@group_mul B G' (f x) (f y)))). +Axiom thm_GROUP_EPIMORPHISM_SUBSET : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_epimorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ (@SUBSET B (@group_carrier B G') (@IMAGE A B f (@group_carrier A G)))). +Axiom thm_GROUP_ISOMORPHISMS : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall g : B -> A, (@group_isomorphisms A B (@pair (Group A) (Group B) G H) (@pair (A -> B) (B -> A) f g)) = ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((forall x : A, (@IN A x (@group_carrier A G)) -> (g (f x)) = x) /\ (forall y : B, (@IN B y (@group_carrier B H)) -> (@IN A (g y) (@group_carrier A G)) /\ ((f (g y)) = y)))). +Axiom thm_GROUP_HOMOMORPHISM_OF_ID : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall G' : Group B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) -> (f (@group_id A G)) = (@group_id B G'). +Axiom thm_GROUP_HOMOMORPHISM_INV : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) -> forall x : A, (@IN A x (@group_carrier A G)) -> (f (@group_inv A G x)) = (@group_inv B G' (f x)). +Axiom thm_GROUP_HOMOMORPHISM_MUL : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) -> forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> (f (@group_mul A G x y)) = (@group_mul B G' (f x) (f y)). +Axiom thm_GROUP_HOMOMORPHISM_DIV : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) -> forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> (f (@group_div A G x y)) = (@group_div B G' (f x) (f y)). +Axiom thm_GROUP_HOMOMORPHISM_POW : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) -> forall x : A, forall n : N, (@IN A x (@group_carrier A G)) -> (f (@group_pow A G x n)) = (@group_pow B G' (f x) n). +Axiom thm_GROUP_HOMOMORPHISM_ZPOW : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) -> forall x : A, forall n : Z, (@IN A x (@group_carrier A G)) -> (f (@group_zpow A G x n)) = (@group_zpow B G' (f x) n). +Axiom thm_GROUP_HOMOMORPHISM_TRIVIAL : forall {_273244 _273245 : Type'}, forall G : Group _273245, forall H : Group _273244, @group_homomorphism _273245 _273244 (@pair (Group _273245) (Group _273244) G H) (fun x : _273245 => @group_id _273244 H). +Axiom thm_GROUP_HOMOMORPHISM_ID : forall {A : Type'}, forall G : Group A, @group_homomorphism A A (@pair (Group A) (Group A) G G) (fun x : A => x). +Axiom thm_GROUP_MONOMORPHISM_ID : forall {A : Type'}, forall G : Group A, @group_monomorphism A A (@pair (Group A) (Group A) G G) (fun x : A => x). +Axiom thm_GROUP_EPIMORPHISM_ID : forall {A : Type'}, forall G : Group A, @group_epimorphism A A (@pair (Group A) (Group A) G G) (fun x : A => x). +Axiom thm_GROUP_ISOMORPHISMS_ID : forall {A : Type'}, forall G : Group A, @group_isomorphisms A A (@pair (Group A) (Group A) G G) (@pair (A -> A) (A -> A) (fun x : A => x) (fun x : A => x)). +Axiom thm_GROUP_ISOMORPHISM_ID : forall {A : Type'}, forall G : Group A, @group_isomorphism A A (@pair (Group A) (Group A) G G) (fun x : A => x). +Axiom thm_GROUP_HOMOMORPHISM_COMPOSE : forall {A B C : Type'}, forall G1 : Group A, forall G2 : Group B, forall G3 : Group C, forall f : A -> B, forall g : B -> C, ((@group_homomorphism A B (@pair (Group A) (Group B) G1 G2) f) /\ (@group_homomorphism B C (@pair (Group B) (Group C) G2 G3) g)) -> @group_homomorphism A C (@pair (Group A) (Group C) G1 G3) (@o A B C g f). +Axiom thm_GROUP_MONOMORPHISM_COMPOSE : forall {A B C : Type'}, forall G1 : Group A, forall G2 : Group B, forall G3 : Group C, forall f : A -> B, forall g : B -> C, ((@group_monomorphism A B (@pair (Group A) (Group B) G1 G2) f) /\ (@group_monomorphism B C (@pair (Group B) (Group C) G2 G3) g)) -> @group_monomorphism A C (@pair (Group A) (Group C) G1 G3) (@o A B C g f). +Axiom thm_GROUP_MONOMORPHISM_COMPOSE_REV : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, ((@group_homomorphism A B (@pair (Group A) (Group B) A' B') f) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) B' C') g) /\ (@group_monomorphism A C (@pair (Group A) (Group C) A' C') (@o A B C g f)))) -> @group_monomorphism A B (@pair (Group A) (Group B) A' B') f. +Axiom thm_GROUP_EPIMORPHISM_COMPOSE : forall {A B C : Type'}, forall G1 : Group A, forall G2 : Group B, forall G3 : Group C, forall f : A -> B, forall g : B -> C, ((@group_epimorphism A B (@pair (Group A) (Group B) G1 G2) f) /\ (@group_epimorphism B C (@pair (Group B) (Group C) G2 G3) g)) -> @group_epimorphism A C (@pair (Group A) (Group C) G1 G3) (@o A B C g f). +Axiom thm_GROUP_EPIMORPHISM_COMPOSE_REV : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, ((@group_homomorphism A B (@pair (Group A) (Group B) A' B') f) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) B' C') g) /\ (@group_epimorphism A C (@pair (Group A) (Group C) A' C') (@o A B C g f)))) -> @group_epimorphism B C (@pair (Group B) (Group C) B' C') g. +Axiom thm_GROUP_MONOMORPHISM_LEFT_INVERTIBLE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall g : B -> A, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (g (f x)) = x)) -> @group_monomorphism A B (@pair (Group A) (Group B) G H) f. +Axiom thm_GROUP_EPIMORPHISM_RIGHT_INVERTIBLE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall g : B -> A, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@group_homomorphism B A (@pair (Group B) (Group A) H G) g) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (g (f x)) = x))) -> @group_epimorphism B A (@pair (Group B) (Group A) H G) g. +Axiom thm_GROUP_HOMOMORPHISM_INTO_SUBGROUP : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall h : B -> Prop, forall f : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ (@SUBSET B (@IMAGE A B f (@group_carrier A G)) h)) -> @group_homomorphism A B (@pair (Group A) (Group B) G (@subgroup_generated B G' h)) f. +Axiom thm_GROUP_HOMOMORPHISM_INTO_SUBGROUP_EQ_GEN : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, forall s : B -> Prop, (@group_homomorphism A B (@pair (Group A) (Group B) G (@subgroup_generated B H s)) f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@SUBSET B (@IMAGE A B f (@group_carrier A G)) (@group_carrier B (@subgroup_generated B H s)))). +Axiom thm_GROUP_HOMOMORPHISM_INTO_SUBGROUP_EQ : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall h : B -> Prop, forall f : A -> B, (@subgroup_of B h G') -> (@group_homomorphism A B (@pair (Group A) (Group B) G (@subgroup_generated B G' h)) f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ (@SUBSET B (@IMAGE A B f (@group_carrier A G)) h)). +Axiom thm_GROUP_HOMOMORPHISM_FROM_SUBGROUP_GENERATED : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, forall s : A -> Prop, (@group_homomorphism A B (@pair (Group A) (Group B) G H) f) -> @group_homomorphism A B (@pair (Group A) (Group B) (@subgroup_generated A G s) H) f. +Axiom thm_GROUP_HOMOMORPHISM_BETWEEN_SUBGROUPS : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall g : A -> Prop, forall h : B -> Prop, forall f : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@SUBSET B (@IMAGE A B f g) h)) -> @group_homomorphism A B (@pair (Group A) (Group B) (@subgroup_generated A G g) (@subgroup_generated B H h)) f. +Axiom thm_GROUP_HOMOMORPHISM_BETWEEN_SUBGROUPS_ALT : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall g : A -> Prop, forall h : B -> Prop, forall f : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@SUBSET B (@IMAGE A B f (@INTER A (@group_carrier A G) g)) h)) -> @group_homomorphism A B (@pair (Group A) (Group B) (@subgroup_generated A G g) (@subgroup_generated B H h)) f. +Axiom thm_GROUP_MONOMORPHISM_FROM_SUBGROUP_GENERATED : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, forall s : A -> Prop, (@group_monomorphism A B (@pair (Group A) (Group B) G H) f) -> @group_monomorphism A B (@pair (Group A) (Group B) (@subgroup_generated A G s) H) f. +Axiom thm_GROUP_MONOMORPHISM_BETWEEN_SUBGROUPS : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, ((@group_monomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@SUBSET B (@IMAGE A B f s) t)) -> @group_monomorphism A B (@pair (Group A) (Group B) (@subgroup_generated A G s) (@subgroup_generated B H t)) f. +Axiom thm_GROUP_MONOMORPHISM_INTO_SUPERGROUP : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall t : B -> Prop, forall f : A -> B, (@group_monomorphism A B (@pair (Group A) (Group B) G (@subgroup_generated B G' t)) f) -> @group_monomorphism A B (@pair (Group A) (Group B) G G') f. +Axiom thm_GROUP_HOMOMORPHISM_INCLUSION : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, @group_homomorphism A A (@pair (Group A) (Group A) (@subgroup_generated A G s) G) (fun x : A => x). +Axiom thm_GROUP_MONOMORPHISM_INCLUSION : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, @group_monomorphism A A (@pair (Group A) (Group A) (@subgroup_generated A G s) G) (fun x : A => x). +Axiom thm_SUBGROUP_GENERATED_BY_HOMOMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall s : A -> Prop, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@SUBSET A s (@group_carrier A G))) -> (@group_carrier B (@subgroup_generated B H (@IMAGE A B f s))) = (@IMAGE A B f (@group_carrier A (@subgroup_generated A G s))). +Axiom thm_SUBGROUP_GENERATED_BY_HOMOMORPHIC_IMAGE_EQ : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall s : A -> Prop, forall t : A -> Prop, forall f : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@SUBSET A s (@group_carrier A G)) /\ ((@SUBSET A t (@group_carrier A G)) /\ ((@subgroup_generated A G s) = (@subgroup_generated A G t))))) -> (@subgroup_generated B H (@IMAGE A B f s)) = (@subgroup_generated B H (@IMAGE A B f t)). +Axiom thm_SUBGROUP_GENERATED_BY_EPIMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall s : A -> Prop, forall f : A -> B, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@SUBSET A s (@group_carrier A G)) /\ ((@subgroup_generated A G s) = G))) -> (@subgroup_generated B H (@IMAGE A B f s)) = H. +Axiom thm_GROUP_EPIMORPHISM_BETWEEN_SUBGROUPS : forall {A B : Type'} (s : A -> Prop), forall G : Group A, forall H : Group B, forall f : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@SUBSET A s (@group_carrier A G))) -> @group_epimorphism A B (@pair (Group A) (Group B) (@subgroup_generated A G s) (@subgroup_generated B H (@IMAGE A B f s))) f. +Axiom thm_GROUP_EPIMORPHISM_INTO_SUBGROUP_EQ_GEN : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, forall s : B -> Prop, (@group_epimorphism A B (@pair (Group A) (Group B) G (@subgroup_generated B H s)) f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@IMAGE A B f (@group_carrier A G)) = (@group_carrier B (@subgroup_generated B H s)))). +Axiom thm_GROUP_EPIMORPHISM_INTO_SUBGROUP_EQ : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall h : B -> Prop, forall f : A -> B, (@subgroup_of B h G') -> (@group_epimorphism A B (@pair (Group A) (Group B) G (@subgroup_generated B G' h)) f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ ((@IMAGE A B f (@group_carrier A G)) = h)). +Axiom thm_GROUP_ISOMORPHISM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_isomorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ (((@IMAGE A B f (@group_carrier A G)) = (@group_carrier B G')) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((f x) = (f y)))) -> x = y))). +Axiom thm_GROUP_ISOMORPHISM_SUBSET : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_isomorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ ((forall z : B, (@IN B z (@group_carrier B G')) -> exists x : A, (@IN A x (@group_carrier A G)) /\ ((f x) = z)) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((f x) = (f y)))) -> x = y))). +Axiom thm_SUBGROUP_OF_HOMOMORPHIC_IMAGE : forall {A B : Type'} (h : A -> Prop), forall G : Group A, forall G' : Group B, forall f : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ (@subgroup_of A h G)) -> @subgroup_of B (@IMAGE A B f h) G'. +Axiom thm_SUBGROUP_OF_HOMOMORPHIC_PREIMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall h : B -> Prop, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@subgroup_of B h H)) -> @subgroup_of A (@GSPEC A (fun GEN_PVAR_828 : A => exists x : A, @SETSPEC A GEN_PVAR_828 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) h)) x)) G. +Axiom thm_SUBGROUP_OF_EPIMORPHIC_PREIMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall h : B -> Prop, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ (@subgroup_of B h H)) -> (@subgroup_of A (@GSPEC A (fun GEN_PVAR_829 : A => exists x : A, @SETSPEC A GEN_PVAR_829 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) h)) x)) G) /\ ((@IMAGE A B f (@GSPEC A (fun GEN_PVAR_830 : A => exists x : A, @SETSPEC A GEN_PVAR_830 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) h)) x))) = h). +Axiom thm_GROUP_MONOMORPHISM_EPIMORPHISM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, ((@group_monomorphism A B (@pair (Group A) (Group B) G G') f) /\ (@group_epimorphism A B (@pair (Group A) (Group B) G G') f)) = (@group_isomorphism A B (@pair (Group A) (Group B) G G') f). +Axiom thm_GROUP_ISOMORPHISM_EPIMORPHISM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_isomorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_epimorphism A B (@pair (Group A) (Group B) G G') f) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((f x) = (f y)))) -> x = y)). +Axiom thm_SUBGROUP_MONOMORPHISM_EPIMORPHISM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall s : B -> Prop, forall f : A -> B, ((@group_monomorphism A B (@pair (Group A) (Group B) G G') f) /\ (@group_epimorphism A B (@pair (Group A) (Group B) G (@subgroup_generated B G' s)) f)) = (@group_isomorphism A B (@pair (Group A) (Group B) G (@subgroup_generated B G' s)) f). +Axiom thm_GROUP_ISOMORPHISM_IMP_MONOMORPHISM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_isomorphism A B (@pair (Group A) (Group B) G G') f) -> @group_monomorphism A B (@pair (Group A) (Group B) G G') f. +Axiom thm_GROUP_ISOMORPHISM_IMP_EPIMORPHISM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_isomorphism A B (@pair (Group A) (Group B) G G') f) -> @group_epimorphism A B (@pair (Group A) (Group B) G G') f. +Axiom thm_GROUP_MONOMORPHISM_IMP_HOMOMORPHISM : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, (@group_monomorphism A B (@pair (Group A) (Group B) G H) f) -> @group_homomorphism A B (@pair (Group A) (Group B) G H) f. +Axiom thm_GROUP_EPIMORPHISM_IMP_HOMOMORPHISM : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, (@group_epimorphism A B (@pair (Group A) (Group B) G H) f) -> @group_homomorphism A B (@pair (Group A) (Group B) G H) f. +Axiom thm_GROUP_ISOMORPHISM_IMP_HOMOMORPHISM : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, (@group_isomorphism A B (@pair (Group A) (Group B) G H) f) -> @group_homomorphism A B (@pair (Group A) (Group B) G H) f. +Axiom thm_GROUP_AUTOMORPHISM_IMP_ENDOMORPHISM : forall {A : Type'}, forall G : Group A, forall f : A -> A, (@group_automorphism A G f) -> @group_endomorphism A G f. +Axiom thm_GROUP_ISOMORPHISM_EQ_MONOMORPHISM_FINITE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@FINITE A (@group_carrier A G)) /\ ((@FINITE B (@group_carrier B H)) /\ ((@CARD A (@group_carrier A G)) = (@CARD B (@group_carrier B H))))) -> (@group_isomorphism A B (@pair (Group A) (Group B) G H) f) = (@group_monomorphism A B (@pair (Group A) (Group B) G H) f). +Axiom thm_GROUP_ISOMORPHISM_EQ_EPIMORPHISM_FINITE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@FINITE A (@group_carrier A G)) /\ ((@FINITE B (@group_carrier B H)) /\ ((@CARD A (@group_carrier A G)) = (@CARD B (@group_carrier B H))))) -> (@group_isomorphism A B (@pair (Group A) (Group B) G H) f) = (@group_epimorphism A B (@pair (Group A) (Group B) G H) f). +Axiom thm_GROUP_ISOMORPHISMS_CONJUGATION : forall {A : Type'}, forall G : Group A, forall a : A, (@IN A a (@group_carrier A G)) -> @group_isomorphisms A A (@pair (Group A) (Group A) G G) (@pair (A -> A) (A -> A) (@group_conjugation A G a) (@group_conjugation A G (@group_inv A G a))). +Axiom thm_GROUP_AUTOMORPHISM_CONJUGATION : forall {A : Type'}, forall G : Group A, forall a : A, (@IN A a (@group_carrier A G)) -> @group_automorphism A G (@group_conjugation A G a). +Axiom thm_GROUP_ISOMORPHISM_CONJUGATION : forall {A : Type'}, forall G : Group A, forall a : A, (@IN A a (@group_carrier A G)) -> @group_isomorphism A A (@pair (Group A) (Group A) G G) (@group_conjugation A G a). +Axiom thm_GROUP_HOMOMORPHISM_CONJUGATION : forall {A : Type'}, forall G : Group A, forall a : A, (@IN A a (@group_carrier A G)) -> @group_homomorphism A A (@pair (Group A) (Group A) G G) (@group_conjugation A G a). +Axiom thm_CARD_LE_GROUP_MONOMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, (@group_monomorphism A B (@pair (Group A) (Group B) G H) f) -> @le_c A B (@group_carrier A G) (@group_carrier B H). +Axiom thm_CARD_LE_GROUP_EPIMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, (@group_epimorphism A B (@pair (Group A) (Group B) G H) f) -> @le_c B A (@group_carrier B H) (@group_carrier A G). +Axiom thm_CARD_EQ_GROUP_ISOMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, (@group_isomorphism A B (@pair (Group A) (Group B) G H) f) -> @eq_c A B (@group_carrier A G) (@group_carrier B H). +Axiom thm_FINITE_GROUP_MONOMORPHIC_PREIMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@group_monomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@FINITE B (@group_carrier B H))) -> @FINITE A (@group_carrier A G). +Axiom thm_FINITE_GROUP_EPIMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ (@FINITE A (@group_carrier A G))) -> @FINITE B (@group_carrier B H). +Axiom thm_CARD_EQ_GROUP_MONOMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, (@group_monomorphism A B (@pair (Group A) (Group B) G H) f) -> @eq_c B A (@IMAGE A B f (@group_carrier A G)) (@group_carrier A G). +Axiom thm_GROUP_ISOMORPHISMS_BETWEEN_SUBGROUPS : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall g : A -> Prop, forall h : B -> Prop, forall f : A -> B, forall f' : B -> A, ((@group_isomorphisms A B (@pair (Group A) (Group B) G H) (@pair (A -> B) (B -> A) f f')) /\ ((@SUBSET B (@IMAGE A B f g) h) /\ (@SUBSET A (@IMAGE B A f' h) g))) -> @group_isomorphisms A B (@pair (Group A) (Group B) (@subgroup_generated A G g) (@subgroup_generated B H h)) (@pair (A -> B) (B -> A) f f'). +Axiom thm_GROUP_ISOMORPHISMS_BETWEEN_SUBGROUPS_ALT : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall g : A -> Prop, forall h : B -> Prop, forall f : A -> B, forall f' : B -> A, ((@group_isomorphisms A B (@pair (Group A) (Group B) G H) (@pair (A -> B) (B -> A) f f')) /\ ((@SUBSET B (@IMAGE A B f (@INTER A (@group_carrier A G) g)) h) /\ (@SUBSET A (@IMAGE B A f' (@INTER B (@group_carrier B H) h)) g))) -> @group_isomorphisms A B (@pair (Group A) (Group B) (@subgroup_generated A G g) (@subgroup_generated B H h)) (@pair (A -> B) (B -> A) f f'). +Axiom thm_GROUP_ISOMORPHISM_BETWEEN_SUBGROUPS : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall g : A -> Prop, forall h : B -> Prop, forall f : A -> B, ((@group_isomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@SUBSET A g (@group_carrier A G)) /\ ((@IMAGE A B f g) = h))) -> @group_isomorphism A B (@pair (Group A) (Group B) (@subgroup_generated A G g) (@subgroup_generated B H h)) f. +Axiom thm_GROUP_ISOMORPHISMS_COMPOSE : forall {A B C : Type'}, forall G1 : Group A, forall G2 : Group B, forall G3 : Group C, forall f1 : A -> B, forall f2 : B -> C, forall g1 : B -> A, forall g2 : C -> B, ((@group_isomorphisms A B (@pair (Group A) (Group B) G1 G2) (@pair (A -> B) (B -> A) f1 g1)) /\ (@group_isomorphisms B C (@pair (Group B) (Group C) G2 G3) (@pair (B -> C) (C -> B) f2 g2))) -> @group_isomorphisms A C (@pair (Group A) (Group C) G1 G3) (@pair (A -> C) (C -> A) (@o A B C f2 f1) (@o C B A g1 g2)). +Axiom thm_GROUP_ISOMORPHISM_COMPOSE : forall {A B C : Type'}, forall G1 : Group A, forall G2 : Group B, forall G3 : Group C, forall f : A -> B, forall g : B -> C, ((@group_isomorphism A B (@pair (Group A) (Group B) G1 G2) f) /\ (@group_isomorphism B C (@pair (Group B) (Group C) G2 G3) g)) -> @group_isomorphism A C (@pair (Group A) (Group C) G1 G3) (@o A B C g f). +Axiom thm_GROUP_ISOMORPHISM_COMPOSE_REV : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, ((@group_homomorphism A B (@pair (Group A) (Group B) A' B') f) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) B' C') g) /\ (@group_isomorphism A C (@pair (Group A) (Group C) A' C') (@o A B C g f)))) -> (@group_monomorphism A B (@pair (Group A) (Group B) A' B') f) /\ (@group_epimorphism B C (@pair (Group B) (Group C) B' C') g). +Axiom thm_GROUP_EPIMORPHISM_ISOMORPHISM_COMPOSE_REV : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, ((@group_epimorphism A B (@pair (Group A) (Group B) A' B') f) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) B' C') g) /\ (@group_isomorphism A C (@pair (Group A) (Group C) A' C') (@o A B C g f)))) -> (@group_isomorphism A B (@pair (Group A) (Group B) A' B') f) /\ (@group_isomorphism B C (@pair (Group B) (Group C) B' C') g). +Axiom thm_GROUP_MONOMORPHISM_ISOMORPHISM_COMPOSE_REV : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, ((@group_homomorphism A B (@pair (Group A) (Group B) A' B') f) /\ ((@group_monomorphism B C (@pair (Group B) (Group C) B' C') g) /\ (@group_isomorphism A C (@pair (Group A) (Group C) A' C') (@o A B C g f)))) -> (@group_isomorphism A B (@pair (Group A) (Group B) A' B') f) /\ (@group_isomorphism B C (@pair (Group B) (Group C) B' C') g). +Axiom thm_GROUP_ISOMORPHISM_INVERSE : forall {A B : Type'}, forall f : A -> B, forall g : B -> A, forall G : Group A, forall H : Group B, ((@group_isomorphism A B (@pair (Group A) (Group B) G H) f) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (g (f x)) = x)) -> @group_isomorphism B A (@pair (Group B) (Group A) H G) g. +Axiom thm_GROUP_ISOMORPHISMS_OPPOSITE_GROUP : forall {A : Type'}, forall G : Group A, @group_isomorphisms A A (@pair (Group A) (Group A) G (@opposite_group A G)) (@pair (A -> A) (A -> A) (@group_inv A G) (@group_inv A G)). +Axiom thm_GROUP_ISOMORPHISM_OPPOSITE_GROUP : forall {A : Type'}, forall G : Group A, @group_isomorphism A A (@pair (Group A) (Group A) G (@opposite_group A G)) (@group_inv A G). +Axiom thm_GROUP_HOMOMORPHISM_FROM_TRIVIAL_GROUP : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, (@trivial_group A G) -> (@group_homomorphism A B (@pair (Group A) (Group B) G H) f) = ((f (@group_id A G)) = (@group_id B H)). +Axiom thm_GROUP_MONOMORPHISM_FROM_TRIVIAL_GROUP : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, (@trivial_group A G) -> (@group_monomorphism A B (@pair (Group A) (Group B) G H) f) = (@group_homomorphism A B (@pair (Group A) (Group B) G H) f). +Axiom thm_GROUP_MONOMORPHISM_TO_TRIVIAL_GROUP : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, (@trivial_group B H) -> (@group_monomorphism A B (@pair (Group A) (Group B) G H) f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@trivial_group A G)). +Axiom thm_GROUP_EPIMORPHISM_FROM_TRIVIAL_GROUP : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, (@trivial_group A G) -> (@group_epimorphism A B (@pair (Group A) (Group B) G H) f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@trivial_group B H)). +Axiom thm_GROUP_EPIMORPHISM_TO_TRIVIAL_GROUP : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, (@trivial_group B H) -> (@group_epimorphism A B (@pair (Group A) (Group B) G H) f) = (@group_homomorphism A B (@pair (Group A) (Group B) G H) f). +Axiom thm_GROUP_HOMOMORPHISM_PAIRWISE : forall {A B C : Type'}, forall f : A -> prod B C, forall G : Group A, forall H : Group B, forall K : Group C, (@group_homomorphism A (prod B C) (@pair (Group A) (Group (prod B C)) G (@prod_group B C H K)) f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G H) (@o A (prod B C) B (@fst B C) f)) /\ (@group_homomorphism A C (@pair (Group A) (Group C) G K) (@o A (prod B C) C (@snd B C) f))). +Axiom thm_GROUP_HOMOMORPHISM_PAIRED : forall {A B C : Type'}, forall f : A -> B, forall g : A -> C, forall G : Group A, forall H : Group B, forall K : Group C, (@group_homomorphism A (prod B C) (@pair (Group A) (Group (prod B C)) G (@prod_group B C H K)) (fun x : A => @pair B C (f x) (g x))) = ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@group_homomorphism A C (@pair (Group A) (Group C) G K) g)). +Axiom thm_GROUP_HOMOMORPHISM_PAIRED2 : forall {A B C D : Type'}, forall f : A -> B, forall g : C -> D, forall G : Group A, forall H : Group C, forall G' : Group B, forall H' : Group D, (@group_homomorphism (prod A C) (prod B D) (@pair (Group (prod A C)) (Group (prod B D)) (@prod_group A C G H) (@prod_group B D G' H')) (@GABS ((prod A C) -> prod B D) (fun f' : (prod A C) -> prod B D => forall x : A, forall y : C, @GEQ (prod B D) (f' (@pair A C x y)) (@pair B D (f x) (g y))))) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ (@group_homomorphism C D (@pair (Group C) (Group D) H H') g)). +Axiom thm_GROUP_ISOMORPHISMS_PAIRED2 : forall {A B C D : Type'}, forall f : A -> B, forall g : C -> D, forall f' : B -> A, forall g' : D -> C, forall G : Group A, forall H : Group C, forall G' : Group B, forall H' : Group D, (@group_isomorphisms (prod A C) (prod B D) (@pair (Group (prod A C)) (Group (prod B D)) (@prod_group A C G H) (@prod_group B D G' H')) (@pair ((prod A C) -> prod B D) ((prod B D) -> prod A C) (@GABS ((prod A C) -> prod B D) (fun f'' : (prod A C) -> prod B D => forall x : A, forall y : C, @GEQ (prod B D) (f'' (@pair A C x y)) (@pair B D (f x) (g y)))) (@GABS ((prod B D) -> prod A C) (fun f'' : (prod B D) -> prod A C => forall x : B, forall y : D, @GEQ (prod A C) (f'' (@pair B D x y)) (@pair A C (f' x) (g' y)))))) = ((@group_isomorphisms A B (@pair (Group A) (Group B) G G') (@pair (A -> B) (B -> A) f f')) /\ (@group_isomorphisms C D (@pair (Group C) (Group D) H H') (@pair (C -> D) (D -> C) g g'))). +Axiom thm_GROUP_ISOMORPHISM_PAIRED2 : forall {A B C D : Type'}, forall f : A -> B, forall g : C -> D, forall G : Group A, forall H : Group C, forall G' : Group B, forall H' : Group D, (@group_isomorphism (prod A C) (prod B D) (@pair (Group (prod A C)) (Group (prod B D)) (@prod_group A C G H) (@prod_group B D G' H')) (@GABS ((prod A C) -> prod B D) (fun f' : (prod A C) -> prod B D => forall x : A, forall y : C, @GEQ (prod B D) (f' (@pair A C x y)) (@pair B D (f x) (g y))))) = ((@group_isomorphism A B (@pair (Group A) (Group B) G G') f) /\ (@group_isomorphism C D (@pair (Group C) (Group D) H H') g)). +Axiom thm_GROUP_HOMOMORPHISM_OF_FST : forall {A B C : Type'}, forall f : A -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, (@group_homomorphism (prod A B) C (@pair (Group (prod A B)) (Group C) (@prod_group A B A' B') C') (@o (prod A B) A C f (@fst A B))) = (@group_homomorphism A C (@pair (Group A) (Group C) A' C') f). +Axiom thm_GROUP_HOMOMORPHISM_OF_SND : forall {A B C : Type'}, forall f : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, (@group_homomorphism (prod A B) C (@pair (Group (prod A B)) (Group C) (@prod_group A B A' B') C') (@o (prod A B) B C f (@snd A B))) = (@group_homomorphism B C (@pair (Group B) (Group C) B' C') f). +Axiom thm_GROUP_EPIMORPHISM_OF_FST : forall {A B C : Type'}, forall f : A -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, (@group_epimorphism (prod A B) C (@pair (Group (prod A B)) (Group C) (@prod_group A B A' B') C') (@o (prod A B) A C f (@fst A B))) = (@group_epimorphism A C (@pair (Group A) (Group C) A' C') f). +Axiom thm_GROUP_EPIMORPHISM_OF_SND : forall {A B C : Type'}, forall f : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, (@group_epimorphism (prod A B) C (@pair (Group (prod A B)) (Group C) (@prod_group A B A' B') C') (@o (prod A B) B C f (@snd A B))) = (@group_epimorphism B C (@pair (Group B) (Group C) B' C') f). +Axiom thm_GROUP_HOMOMORPHISM_FST : forall {A B : Type'}, forall A' : Group A, forall B' : Group B, @group_homomorphism (prod A B) A (@pair (Group (prod A B)) (Group A) (@prod_group A B A' B') A') (@fst A B). +Axiom thm_GROUP_HOMOMORPHISM_SND : forall {A B : Type'}, forall A' : Group A, forall B' : Group B, @group_homomorphism (prod A B) B (@pair (Group (prod A B)) (Group B) (@prod_group A B A' B') B') (@snd A B). +Axiom thm_GROUP_EPIMORPHISM_FST : forall {A B : Type'}, forall A' : Group A, forall B' : Group B, @group_epimorphism (prod A B) A (@pair (Group (prod A B)) (Group A) (@prod_group A B A' B') A') (@fst A B). +Axiom thm_GROUP_EPIMORPHISM_SND : forall {A B : Type'}, forall A' : Group A, forall B' : Group B, @group_epimorphism (prod A B) B (@pair (Group (prod A B)) (Group B) (@prod_group A B A' B') B') (@snd A B). +Axiom thm_GROUP_ISOMORPHISM_FST : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@group_isomorphism (prod A B) A (@pair (Group (prod A B)) (Group A) (@prod_group A B G H) G) (@fst A B)) = (@trivial_group B H). +Axiom thm_GROUP_ISOMORPHISM_SND : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@group_isomorphism (prod A B) B (@pair (Group (prod A B)) (Group B) (@prod_group A B G H) H) (@snd A B)) = (@trivial_group A G). +Axiom thm_GROUP_ISOMORPHISMS_PROD_GROUP_SWAP : forall {A B : Type'}, forall G : Group A, forall H : Group B, @group_isomorphisms (prod A B) (prod B A) (@pair (Group (prod A B)) (Group (prod B A)) (@prod_group A B G H) (@prod_group B A H G)) (@pair ((prod A B) -> prod B A) ((prod B A) -> prod A B) (@GABS ((prod A B) -> prod B A) (fun f : (prod A B) -> prod B A => forall x : A, forall y : B, @GEQ (prod B A) (f (@pair A B x y)) (@pair B A y x))) (@GABS ((prod B A) -> prod A B) (fun f : (prod B A) -> prod A B => forall y : B, forall x : A, @GEQ (prod A B) (f (@pair B A y x)) (@pair A B x y)))). +Axiom thm_GROUP_HOMOMORPHISM_COMPONENTWISE : forall {A B K : Type'}, forall G : Group A, forall k : K -> Prop, forall H : K -> Group B, forall f : A -> K -> B, (@group_homomorphism A (K -> B) (@pair (Group A) (Group (K -> B)) G (@product_group B K k H)) f) = ((@SUBSET (K -> B) (@IMAGE A (K -> B) f (@group_carrier A G)) (@EXTENSIONAL K B k)) /\ (forall i : K, (@IN K i k) -> @group_homomorphism A B (@pair (Group A) (Group B) G (H i)) (fun x : A => f x i))). +Axiom thm_GROUP_HOMOMORPHISM_COMPONENTWISE_UNIV : forall {A B K : Type'}, forall G : Group A, forall H : K -> Group B, forall f : A -> K -> B, (@group_homomorphism A (K -> B) (@pair (Group A) (Group (K -> B)) G (@product_group B K (@UNIV K) H)) f) = (forall i : K, @group_homomorphism A B (@pair (Group A) (Group B) G (H i)) (fun x : A => f x i)). +Axiom thm_GROUP_HOMOMORPHISM_PRODUCT_PROJECTION : forall {A K : Type'}, forall G : K -> Group A, forall k : K -> Prop, forall i : K, (@IN K i k) -> @group_homomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@product_group A K k G) (G i)) (fun x : K -> A => x i). +Axiom thm_GROUP_HOMOMORPHISM_SUM_PROJECTION : forall {A K : Type'}, forall G : K -> Group A, forall k : K -> Prop, forall i : K, (@IN K i k) -> @group_homomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k G) (G i)) (fun x : K -> A => x i). +Axiom thm_GROUP_HOMOMORPHISM_PRODUCT_INJECTION : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, forall i : K, @group_homomorphism A (K -> A) (@pair (Group A) (Group (K -> A)) (G i) (@product_group A K k G)) (fun a : A => @RESTRICTION K A k (fun j : K => @COND A (j = i) a (@group_id A (G j)))). +Axiom thm_GROUP_HOMOMORPHISM_SUM_INJECTION : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, forall i : K, @group_homomorphism A (K -> A) (@pair (Group A) (Group (K -> A)) (G i) (@sum_group A K k G)) (fun a : A => @RESTRICTION K A k (fun j : K => @COND A (j = i) a (@group_id A (G j)))). +Axiom thm_GROUP_HOMOMORPHISM_PRODUCT : forall {A B K : Type'}, forall f : K -> A -> B, forall k : K -> Prop, forall G : K -> Group A, forall H : K -> Group B, (@group_homomorphism (K -> A) (K -> B) (@pair (Group (K -> A)) (Group (K -> B)) (@product_group A K k G) (@product_group B K k H)) (fun x : K -> A => @RESTRICTION K B k (fun i : K => f i (x i)))) = (forall i : K, (@IN K i k) -> @group_homomorphism A B (@pair (Group A) (Group B) (G i) (H i)) (f i)). +Axiom thm_GROUP_HOMOMORPHISM_SUM : forall {A B K : Type'}, forall f : K -> A -> B, forall k : K -> Prop, forall G : K -> Group A, forall H : K -> Group B, (@group_homomorphism (K -> A) (K -> B) (@pair (Group (K -> A)) (Group (K -> B)) (@sum_group A K k G) (@sum_group B K k H)) (fun x : K -> A => @RESTRICTION K B k (fun i : K => f i (x i)))) = (forall i : K, (@IN K i k) -> @group_homomorphism A B (@pair (Group A) (Group B) (G i) (H i)) (f i)). +Axiom thm_GROUP_EPIMORPHISM_PRODUCT_PROJECTION : forall {A K : Type'}, forall G : K -> Group A, forall k : K -> Prop, forall i : K, (@IN K i k) -> @group_epimorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@product_group A K k G) (G i)) (fun x : K -> A => x i). +Axiom thm_GROUP_ISOMORPHISM_PRODUCT_PROJECTION : forall {_278055 _278057 : Type'}, forall G : _278057 -> Group _278055, forall k : _278057, @group_isomorphism (_278057 -> _278055) _278055 (@pair (Group (_278057 -> _278055)) (Group _278055) (@product_group _278055 _278057 (@INSERT _278057 k (@EMPTY _278057)) G) (G k)) (fun x : _278057 -> _278055 => x k). +Axiom thm_GROUP_EPIMORPHISM_SUM_PROJECTION : forall {A K : Type'}, forall G : K -> Group A, forall k : K -> Prop, forall i : K, (@IN K i k) -> @group_epimorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k G) (G i)) (fun x : K -> A => x i). +Axiom thm_GROUP_ISOMORPHISM_SUM_PROJECTION : forall {_278141 _278143 : Type'}, forall G : _278143 -> Group _278141, forall k : _278143, @group_isomorphism (_278143 -> _278141) _278141 (@pair (Group (_278143 -> _278141)) (Group _278141) (@sum_group _278141 _278143 (@INSERT _278143 k (@EMPTY _278143)) G) (G k)) (fun x : _278143 -> _278141 => x k). +Axiom thm_ABELIAN_GROUP_EPIMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ (@abelian_group A G)) -> @abelian_group B H. +Axiom thm_ABELIAN_GROUP_HOMOMORPHISM_GROUP_MUL : forall {A B : Type'}, forall f : A -> B, forall g : A -> B, forall A' : Group A, forall B' : Group B, ((@abelian_group B B') /\ ((@group_homomorphism A B (@pair (Group A) (Group B) A' B') f) /\ (@group_homomorphism A B (@pair (Group A) (Group B) A' B') g))) -> @group_homomorphism A B (@pair (Group A) (Group B) A' B') (fun x : A => @group_mul B B' (f x) (g x)). +Axiom thm_ABELIAN_GROUP_HOMOMORPHISM_INVERSION : forall {A : Type'}, forall G : Group A, (@group_homomorphism A A (@pair (Group A) (Group A) G G) (@group_inv A G)) = (@abelian_group A G). +Axiom thm_ABELIAN_GROUP_ISOMORPHISMS_INVERSION : forall {A : Type'}, forall G : Group A, (@group_isomorphisms A A (@pair (Group A) (Group A) G G) (@pair (A -> A) (A -> A) (@group_inv A G) (@group_inv A G))) = (@abelian_group A G). +Axiom thm_ABELIAN_GROUP_ISOMORPHISM_INVERSION : forall {A : Type'}, forall G : Group A, (@group_isomorphism A A (@pair (Group A) (Group A) G G) (@group_inv A G)) = (@abelian_group A G). +Axiom thm_ABELIAN_GROUP_MONOMORPHISM_INVERSION : forall {A : Type'}, forall G : Group A, (@group_monomorphism A A (@pair (Group A) (Group A) G G) (@group_inv A G)) = (@abelian_group A G). +Axiom thm_ABELIAN_GROUP_EPIMORPHISM_INVERSION : forall {A : Type'}, forall G : Group A, (@group_epimorphism A A (@pair (Group A) (Group A) G G) (@group_inv A G)) = (@abelian_group A G). +Axiom thm_ABELIAN_GROUP_HOMOMORPHISM_POWERING : forall {A : Type'}, forall G : Group A, forall n : N, (@abelian_group A G) -> @group_homomorphism A A (@pair (Group A) (Group A) G G) (fun x : A => @group_pow A G x n). +Axiom thm_ABELIAN_GROUP_HOMOMORPHISM_ZPOWERING : forall {A : Type'}, forall G : Group A, forall n : Z, (@abelian_group A G) -> @group_homomorphism A A (@pair (Group A) (Group A) G G) (fun x : A => @group_zpow A G x n). +Axiom thm_isomorphic_group : forall {A B : Type'}, forall G : Group A, forall G' : Group B, (@isomorphic_group A B G G') = (exists f : A -> B, @group_isomorphism A B (@pair (Group A) (Group B) G G') f). +Axiom thm_GROUP_ISOMORPHISM_IMP_ISOMORPHIC : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, (@group_isomorphism A B (@pair (Group A) (Group B) G H) f) -> @isomorphic_group A B G H. +Axiom thm_ISOMORPHIC_PRODUCT_GROUP_SING : forall {A K : Type'}, forall G : K -> Group A, forall k : K, @isomorphic_group (K -> A) A (@product_group A K (@INSERT K k (@EMPTY K)) G) (G k). +Axiom thm_ISOMORPHIC_SUM_GROUP_SING : forall {A K : Type'}, forall G : K -> Group A, forall k : K, @isomorphic_group (K -> A) A (@sum_group A K (@INSERT K k (@EMPTY K)) G) (G k). +Axiom thm_ISOMORPHIC_GROUP_REFL : forall {A : Type'}, forall G : Group A, @isomorphic_group A A G G. +Axiom thm_ISOMORPHIC_GROUP_SYM : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@isomorphic_group A B G H) = (@isomorphic_group B A H G). +Axiom thm_ISOMORPHIC_GROUP_TRANS : forall {A B C : Type'}, forall G1 : Group A, forall G2 : Group B, forall G3 : Group C, ((@isomorphic_group A B G1 G2) /\ (@isomorphic_group B C G2 G3)) -> @isomorphic_group A C G1 G3. +Axiom thm_ISOMORPHIC_GROUP_OPPOSITE_GROUP : forall {A : Type'}, forall G : Group A, @isomorphic_group A A (@opposite_group A G) G. +Axiom thm_ISOMORPHIC_GROUP_TRIVIALITY : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@isomorphic_group A B G H) -> (@trivial_group A G) = (@trivial_group B H). +Axiom thm_ISOMORPHIC_TO_TRIVIAL_GROUP : forall {A B : Type'}, (forall G : Group A, forall H : Group B, (@trivial_group A G) -> (@isomorphic_group A B G H) = (@trivial_group B H)) /\ (forall G : Group A, forall H : Group B, (@trivial_group B H) -> (@isomorphic_group A B G H) = (@trivial_group A G)). +Axiom thm_ISOMORPHIC_TRIVIAL_GROUPS : forall {A B : Type'}, forall G : Group A, forall H : Group B, ((@trivial_group A G) /\ (@trivial_group B H)) -> @isomorphic_group A B G H. +Axiom thm_ISOMORPHIC_GROUP_SINGLETON_GROUP : forall {A B : Type'}, (forall G : Group A, forall b : B, (@isomorphic_group A B G (@singleton_group B b)) = (@trivial_group A G)) /\ (forall a : A, forall G : Group B, (@isomorphic_group A B (@singleton_group A a) G) = (@trivial_group B G)). +Axiom thm_ISOMORPHIC_GROUP_PROD_GROUPS : forall {A B C D : Type'}, forall G : Group A, forall G' : Group B, forall H : Group C, forall H' : Group D, ((@isomorphic_group A B G G') /\ (@isomorphic_group C D H H')) -> @isomorphic_group (prod A C) (prod B D) (@prod_group A C G H) (@prod_group B D G' H'). +Axiom thm_ISOMORPHIC_GROUP_PROD_GROUP_SYM : forall {A B : Type'}, forall G : Group A, forall H : Group B, @isomorphic_group (prod A B) (prod B A) (@prod_group A B G H) (@prod_group B A H G). +Axiom thm_ISOMORPHIC_GROUP_PROD_GROUP_SWAP_LEFT : forall {A B C : Type'}, forall G : Group A, forall H : Group B, forall K : Group C, (@isomorphic_group (prod A B) C (@prod_group A B G H) K) = (@isomorphic_group (prod B A) C (@prod_group B A H G) K). +Axiom thm_ISOMORPHIC_GROUP_PROD_GROUP_SWAP_RIGHT : forall {A B C : Type'}, forall G : Group A, forall H : Group B, forall K : Group C, (@isomorphic_group A (prod B C) G (@prod_group B C H K)) = (@isomorphic_group A (prod C B) G (@prod_group C B K H)). +Axiom thm_ISOMORPHIC_PROD_TRIVIAL_GROUP : forall {A B : Type'}, (forall G : Group A, forall H : Group B, (@trivial_group A G) -> @isomorphic_group (prod A B) B (@prod_group A B G H) H) /\ ((forall G : Group A, forall H : Group B, (@trivial_group B H) -> @isomorphic_group (prod A B) A (@prod_group A B G H) G) /\ ((forall G : Group A, forall H : Group B, (@trivial_group A G) -> @isomorphic_group B (prod A B) H (@prod_group A B G H)) /\ (forall G : Group A, forall H : Group B, (@trivial_group B H) -> @isomorphic_group A (prod A B) G (@prod_group A B G H)))). +Axiom thm_ISOMORPHIC_PRODUCT_GROUP_SUPPORT : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, @isomorphic_group (K -> A) (K -> A) (@product_group A K (@GSPEC K (fun GEN_PVAR_832 : K => exists i : K, @SETSPEC K GEN_PVAR_832 ((@IN K i k) /\ (~ (@trivial_group A (G i)))) i)) G) (@product_group A K k G). +Axiom thm_ISOMORPHIC_PRODUCT_GROUP_SYMDIFF : forall {A K : Type'}, forall k : K -> Prop, forall l : K -> Prop, forall G : K -> Group A, (forall i : K, (@IN K i (@UNION K (@DIFF K k l) (@DIFF K l k))) -> @trivial_group A (G i)) -> @isomorphic_group (K -> A) (K -> A) (@product_group A K k G) (@product_group A K l G). +Axiom thm_ISOMORPHIC_SUM_GROUP_SUPPORT : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, @isomorphic_group (K -> A) (K -> A) (@sum_group A K (@GSPEC K (fun GEN_PVAR_834 : K => exists i : K, @SETSPEC K GEN_PVAR_834 ((@IN K i k) /\ (~ (@trivial_group A (G i)))) i)) G) (@sum_group A K k G). +Axiom thm_ISOMORPHIC_SUM_GROUP_SYMDIFF : forall {A K : Type'}, forall k : K -> Prop, forall l : K -> Prop, forall G : K -> Group A, (forall i : K, (@IN K i (@UNION K (@DIFF K k l) (@DIFF K l k))) -> @trivial_group A (G i)) -> @isomorphic_group (K -> A) (K -> A) (@sum_group A K k G) (@sum_group A K l G). +Axiom thm_ISOMORPHIC_SUM_GROUP_BIJECTIONS : forall {A B K L : Type'}, forall s : K -> Prop, forall G : K -> Group A, forall t : L -> Prop, forall H : L -> Group B, forall f : K -> L, forall g : L -> K, ((forall x : K, (@IN K x s) -> (@IN L (f x) t) /\ ((g (f x)) = x)) /\ ((forall y : L, (@IN L y t) -> (@IN K (g y) s) /\ ((f (g y)) = y)) /\ (forall i : K, (@IN K i s) -> @isomorphic_group A B (G i) (H (f i))))) -> @isomorphic_group (K -> A) (L -> B) (@sum_group A K s G) (@sum_group B L t H). +Axiom thm_ISOMORPHIC_PRODUCT_GROUP_BIJECTIONS : forall {A B K L : Type'}, forall s : K -> Prop, forall G : K -> Group A, forall t : L -> Prop, forall H : L -> Group B, forall f : K -> L, forall g : L -> K, ((forall x : K, (@IN K x s) -> (@IN L (f x) t) /\ ((g (f x)) = x)) /\ ((forall y : L, (@IN L y t) -> (@IN K (g y) s) /\ ((f (g y)) = y)) /\ (forall i : K, (@IN K i s) -> @isomorphic_group A B (G i) (H (f i))))) -> @isomorphic_group (K -> A) (L -> B) (@product_group A K s G) (@product_group B L t H). +Axiom thm_ISOMORPHIC_GROUP_PRODUCT_GROUP : forall {A B K : Type'}, forall G : K -> Group A, forall H : K -> Group B, forall k : K -> Prop, (forall i : K, (@IN K i k) -> @isomorphic_group A B (G i) (H i)) -> @isomorphic_group (K -> A) (K -> B) (@product_group A K k G) (@product_group B K k H). +Axiom thm_ISOMORPHIC_GROUP_SUM_GROUP : forall {A B K : Type'}, forall G : K -> Group A, forall H : K -> Group B, forall k : K -> Prop, (forall i : K, (@IN K i k) -> @isomorphic_group A B (G i) (H i)) -> @isomorphic_group (K -> A) (K -> B) (@sum_group A K k G) (@sum_group B K k H). +Axiom thm_GROUP_ISOMORPHISMS_PRODUCT_GROUP_DISJOINT_UNION : forall {A K : Type'}, forall f : K -> Group A, forall k : K -> Prop, forall l : K -> Prop, (@DISJOINT K k l) -> @group_isomorphisms (K -> A) (prod (K -> A) (K -> A)) (@pair (Group (K -> A)) (Group (prod (K -> A) (K -> A))) (@product_group A K (@UNION K k l) f) (@prod_group (K -> A) (K -> A) (@product_group A K k f) (@product_group A K l f))) (@pair ((K -> A) -> prod (K -> A) (K -> A)) ((prod (K -> A) (K -> A)) -> K -> A) (fun f' : K -> A => @pair (K -> A) (K -> A) (@RESTRICTION K A k f') (@RESTRICTION K A l f')) (@GABS ((prod (K -> A) (K -> A)) -> K -> A) (fun f' : (prod (K -> A) (K -> A)) -> K -> A => forall f'' : K -> A, forall g : K -> A, @GEQ (K -> A) (f' (@pair (K -> A) (K -> A) f'' g)) (fun x : K => @COND A (@IN K x k) (f'' x) (g x))))). +Axiom thm_GROUP_ISOMORPHISMS_SUM_GROUP_DISJOINT_UNION : forall {A K : Type'}, forall f : K -> Group A, forall k : K -> Prop, forall l : K -> Prop, (@DISJOINT K k l) -> @group_isomorphisms (K -> A) (prod (K -> A) (K -> A)) (@pair (Group (K -> A)) (Group (prod (K -> A) (K -> A))) (@sum_group A K (@UNION K k l) f) (@prod_group (K -> A) (K -> A) (@sum_group A K k f) (@sum_group A K l f))) (@pair ((K -> A) -> prod (K -> A) (K -> A)) ((prod (K -> A) (K -> A)) -> K -> A) (fun f' : K -> A => @pair (K -> A) (K -> A) (@RESTRICTION K A k f') (@RESTRICTION K A l f')) (@GABS ((prod (K -> A) (K -> A)) -> K -> A) (fun f' : (prod (K -> A) (K -> A)) -> K -> A => forall f'' : K -> A, forall g : K -> A, @GEQ (K -> A) (f' (@pair (K -> A) (K -> A) f'' g)) (fun x : K => @COND A (@IN K x k) (f'' x) (g x))))). +Axiom thm_GROUP_ISOMORPHISM_PRODUCT_GROUP_DISJOINT_UNION : forall {A K : Type'}, forall f : K -> Group A, forall k : K -> Prop, forall l : K -> Prop, (@DISJOINT K k l) -> @group_isomorphism (K -> A) (prod (K -> A) (K -> A)) (@pair (Group (K -> A)) (Group (prod (K -> A) (K -> A))) (@product_group A K (@UNION K k l) f) (@prod_group (K -> A) (K -> A) (@product_group A K k f) (@product_group A K l f))) (fun f' : K -> A => @pair (K -> A) (K -> A) (@RESTRICTION K A k f') (@RESTRICTION K A l f')). +Axiom thm_GROUP_ISOMORPHISM_SUM_GROUP_DISJOINT_UNION : forall {A K : Type'}, forall f : K -> Group A, forall k : K -> Prop, forall l : K -> Prop, (@DISJOINT K k l) -> @group_isomorphism (K -> A) (prod (K -> A) (K -> A)) (@pair (Group (K -> A)) (Group (prod (K -> A) (K -> A))) (@sum_group A K (@UNION K k l) f) (@prod_group (K -> A) (K -> A) (@sum_group A K k f) (@sum_group A K l f))) (fun f' : K -> A => @pair (K -> A) (K -> A) (@RESTRICTION K A k f') (@RESTRICTION K A l f')). +Axiom thm_ISOMORPHIC_PRODUCT_GROUP_DISJOINT_UNION : forall {A K : Type'}, forall f : K -> Group A, forall k : K -> Prop, forall l : K -> Prop, (@DISJOINT K k l) -> @isomorphic_group (K -> A) (prod (K -> A) (K -> A)) (@product_group A K (@UNION K k l) f) (@prod_group (K -> A) (K -> A) (@product_group A K k f) (@product_group A K l f)). +Axiom thm_ISOMORPHIC_SUM_GROUP_DISJOINT_UNION : forall {A K : Type'}, forall f : K -> Group A, forall k : K -> Prop, forall l : K -> Prop, (@DISJOINT K k l) -> @isomorphic_group (K -> A) (prod (K -> A) (K -> A)) (@sum_group A K (@UNION K k l) f) (@prod_group (K -> A) (K -> A) (@sum_group A K k f) (@sum_group A K l f)). +Axiom thm_ISOMORPHIC_PRODUCT_GROUP_INSERT : forall {A K : Type'}, forall f : K -> Group A, forall i : K, forall k : K -> Prop, (~ (@IN K i k)) -> @isomorphic_group (K -> A) (prod A (K -> A)) (@product_group A K (@INSERT K i k) f) (@prod_group A (K -> A) (f i) (@product_group A K k f)). +Axiom thm_ISOMORPHIC_SUM_GROUP_INSERT : forall {A K : Type'}, forall f : K -> Group A, forall i : K, forall k : K -> Prop, (~ (@IN K i k)) -> @isomorphic_group (K -> A) (prod A (K -> A)) (@sum_group A K (@INSERT K i k) f) (@prod_group A (K -> A) (f i) (@sum_group A K k f)). +Axiom thm_ISOMORPHIC_GROUP_CARD_EQ : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@isomorphic_group A B G H) -> @eq_c A B (@group_carrier A G) (@group_carrier B H). +Axiom thm_ISOMORPHIC_GROUP_FINITENESS : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@isomorphic_group A B G H) -> (@FINITE A (@group_carrier A G)) = (@FINITE B (@group_carrier B H)). +Axiom thm_ISOMORPHIC_GROUP_INFINITENESS : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@isomorphic_group A B G H) -> (@INFINITE A (@group_carrier A G)) = (@INFINITE B (@group_carrier B H)). +Axiom thm_ISOMORPHIC_GROUP_HAS_ORDER : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall n : N, (@isomorphic_group A B G H) -> (@HAS_SIZE A (@group_carrier A G) n) = (@HAS_SIZE B (@group_carrier B H) n). +Axiom thm_ISOMORPHIC_GROUP_ORDER : forall {A B : Type'}, forall G : Group A, forall H : Group B, ((@isomorphic_group A B G H) /\ ((@FINITE A (@group_carrier A G)) \/ (@FINITE B (@group_carrier B H)))) -> (@CARD A (@group_carrier A G)) = (@CARD B (@group_carrier B H)). +Axiom thm_ISOMORPHIC_GROUP_ABELIANNESS : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@isomorphic_group A B G H) -> (@abelian_group A G) = (@abelian_group B H). +Axiom thm_CREATE_ISOMORPHIC_COPY_OF_GROUP : forall {A B : Type'}, forall f : A -> B, forall g : B -> A, forall G : Group A, forall s : B -> Prop, forall z : B, forall i : B -> B, forall m : B -> B -> B, ((@IN B z s) /\ ((forall x : A, (@IN A x (@group_carrier A G)) -> (@IN B (f x) s) /\ ((g (f x)) = x)) /\ ((forall y : B, (@IN B y s) -> (@IN A (g y) (@group_carrier A G)) /\ ((f (g y)) = y)) /\ (((g z) = (@group_id A G)) /\ ((forall x : B, (@IN B x s) -> (i x) = (f (@group_inv A G (g x)))) /\ (forall x : B, forall y : B, ((@IN B x s) /\ (@IN B y s)) -> (m x y) = (f (@group_mul A G (g x) (g y))))))))) -> (@group_isomorphisms A B (@pair (Group A) (Group B) G (@group B (@pair (B -> Prop) (prod B (prod (B -> B) (B -> B -> B))) s (@pair B (prod (B -> B) (B -> B -> B)) z (@pair (B -> B) (B -> B -> B) i m))))) (@pair (A -> B) (B -> A) f g)) /\ (((@group_carrier B (@group B (@pair (B -> Prop) (prod B (prod (B -> B) (B -> B -> B))) s (@pair B (prod (B -> B) (B -> B -> B)) z (@pair (B -> B) (B -> B -> B) i m))))) = s) /\ (((@group_id B (@group B (@pair (B -> Prop) (prod B (prod (B -> B) (B -> B -> B))) s (@pair B (prod (B -> B) (B -> B -> B)) z (@pair (B -> B) (B -> B -> B) i m))))) = z) /\ (((@group_inv B (@group B (@pair (B -> Prop) (prod B (prod (B -> B) (B -> B -> B))) s (@pair B (prod (B -> B) (B -> B -> B)) z (@pair (B -> B) (B -> B -> B) i m))))) = i) /\ ((@group_mul B (@group B (@pair (B -> Prop) (prod B (prod (B -> B) (B -> B -> B))) s (@pair B (prod (B -> B) (B -> B -> B)) z (@pair (B -> B) (B -> B -> B) i m))))) = m)))). +Axiom thm_ISOMORPHIC_COPY_OF_GROUP : forall {A B : Type'}, forall G : Group A, forall s : B -> Prop, (exists G' : Group B, ((@group_carrier B G') = s) /\ (@isomorphic_group A B G G')) = (@eq_c A B (@group_carrier A G) s). +Axiom thm_GROUP_DIRECT_LIMIT : forall {A : Type'}, forall c : (Group A) -> Prop, ((~ (c = (@EMPTY (Group A)))) /\ (forall g : Group A, forall g' : Group A, ((@IN (Group A) g c) /\ (@IN (Group A) g' c)) -> exists G : Group A, (@IN (Group A) G c) /\ ((@group_monomorphism A A (@pair (Group A) (Group A) g G) (@I A)) /\ (@group_monomorphism A A (@pair (Group A) (Group A) g' G) (@I A))))) -> exists G : Group A, ((@group_carrier A G) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_841 : A -> Prop => exists g : Group A, @SETSPEC (A -> Prop) GEN_PVAR_841 (@IN (Group A) g c) (@group_carrier A g))))) /\ (forall g : Group A, (@IN (Group A) g c) -> @group_monomorphism A A (@pair (Group A) (Group A) g G) (@I A)). +Axiom thm_group_setinv : forall {_281127 : Type'}, forall g : _281127 -> Prop, forall G : Group _281127, (@group_setinv _281127 G g) = (@GSPEC _281127 (fun GEN_PVAR_842 : _281127 => exists x : _281127, @SETSPEC _281127 GEN_PVAR_842 (@IN _281127 x g) (@group_inv _281127 G x))). +Axiom thm_group_setmul : forall {_281156 : Type'}, forall g : _281156 -> Prop, forall h : _281156 -> Prop, forall G : Group _281156, (@group_setmul _281156 G g h) = (@GSPEC _281156 (fun GEN_PVAR_843 : _281156 => exists x : _281156, exists y : _281156, @SETSPEC _281156 GEN_PVAR_843 ((@IN _281156 x g) /\ (@IN _281156 y h)) (@group_mul _281156 G x y))). +Axiom thm_GROUP_SETINV_AS_IMAGE : forall {A : Type'}, forall G : Group A, (@group_setinv A G) = (@IMAGE A A (@group_inv A G)). +Axiom thm_SUBGROUP_OF_SETWISE : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@subgroup_of A s G) = ((@SUBSET A s (@group_carrier A G)) /\ ((@IN A (@group_id A G) s) /\ ((@SUBSET A (@group_setinv A G s) s) /\ (@SUBSET A (@group_setmul A G s s) s)))). +Axiom thm_FINITE_SUBGROUP_OF_SETWISE : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@FINITE A s) -> (@subgroup_of A s G) = ((@SUBSET A s (@group_carrier A G)) /\ ((~ (s = (@EMPTY A))) /\ (@SUBSET A (@group_setmul A G s s) s))). +Axiom thm_OPPOSITE_GROUP_SETINV : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@group_setinv A (@opposite_group A G) s) = (@group_setinv A G s). +Axiom thm_OPPOSITE_GROUP_SETMUL : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@group_setmul A (@opposite_group A G) s t) = (@group_setmul A G t s). +Axiom thm_GROUP_SETINV_EQ_EMPTY : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, ((@group_setinv A G g) = (@EMPTY A)) = (g = (@EMPTY A)). +Axiom thm_GROUP_SETMUL_EQ_EMPTY : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@group_setmul A G g h) = (@EMPTY A)) = ((g = (@EMPTY A)) \/ (h = (@EMPTY A))). +Axiom thm_GROUP_SETMUL_EMPTY : forall {A : Type'}, (forall G : Group A, forall s : A -> Prop, (@group_setmul A G s (@EMPTY A)) = (@EMPTY A)) /\ (forall G : Group A, forall t : A -> Prop, (@group_setmul A G (@EMPTY A) t) = (@EMPTY A)). +Axiom thm_GROUP_SETINV_MONO : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall s' : A -> Prop, (@SUBSET A s s') -> @SUBSET A (@group_setinv A G s) (@group_setinv A G s'). +Axiom thm_GROUP_SETMUL_MONO : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, forall s' : A -> Prop, forall t' : A -> Prop, ((@SUBSET A s s') /\ (@SUBSET A t t')) -> @SUBSET A (@group_setmul A G s t) (@group_setmul A G s' t'). +Axiom thm_GROUP_SETMUL_INC_GEN : forall {A : Type'}, (forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, ((@IN A (@group_id A G) s) /\ (@SUBSET A t (@group_carrier A G))) -> @SUBSET A t (@group_setmul A G s t)) /\ (forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@group_carrier A G)) /\ (@IN A (@group_id A G) t)) -> @SUBSET A s (@group_setmul A G s t)). +Axiom thm_GROUP_SETMUL_INC : forall {A : Type'}, (forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, ((@subgroup_of A s G) /\ (@subgroup_of A t G)) -> @SUBSET A t (@group_setmul A G s t)) /\ (forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, ((@subgroup_of A s G) /\ (@subgroup_of A t G)) -> @SUBSET A s (@group_setmul A G s t)). +Axiom thm_FINITE_GROUP_SETMUL : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@FINITE A t)) -> @FINITE A (@group_setmul A G s t). +Axiom thm_GROUP_SETMUL_SYM_ELEMENTWISE : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (forall a : A, (@IN A a s) -> (@group_setmul A G (@INSERT A a (@EMPTY A)) t) = (@group_setmul A G u (@INSERT A a (@EMPTY A)))) -> (@group_setmul A G s t) = (@group_setmul A G u s). +Axiom thm_GROUP_SETINV_SING : forall {A : Type'}, forall G : Group A, forall x : A, (@group_setinv A G (@INSERT A x (@EMPTY A))) = (@INSERT A (@group_inv A G x) (@EMPTY A)). +Axiom thm_GROUP_SETMUL_SING : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, (@group_setmul A G (@INSERT A x (@EMPTY A)) (@INSERT A y (@EMPTY A))) = (@INSERT A (@group_mul A G x y) (@EMPTY A)). +Axiom thm_GROUP_SETINV : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, (@SUBSET A g (@group_carrier A G)) -> @SUBSET A (@group_setinv A G g) (@group_carrier A G). +Axiom thm_GROUP_SETMUL : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@SUBSET A g (@group_carrier A G)) /\ (@SUBSET A h (@group_carrier A G))) -> @SUBSET A (@group_setmul A G g h) (@group_carrier A G). +Axiom thm_GROUP_SETMUL_LID : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, (@SUBSET A g (@group_carrier A G)) -> (@group_setmul A G (@INSERT A (@group_id A G) (@EMPTY A)) g) = g. +Axiom thm_GROUP_SETMUL_RID : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, (@SUBSET A g (@group_carrier A G)) -> (@group_setmul A G g (@INSERT A (@group_id A G) (@EMPTY A))) = g. +Axiom thm_GROUP_SETMUL_ASSOC : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, forall i : A -> Prop, ((@SUBSET A g (@group_carrier A G)) /\ ((@SUBSET A h (@group_carrier A G)) /\ (@SUBSET A i (@group_carrier A G)))) -> (@group_setmul A G g (@group_setmul A G h i)) = (@group_setmul A G (@group_setmul A G g h) i). +Axiom thm_GROUP_SETMUL_SYM : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@abelian_group A G) /\ ((@SUBSET A g (@group_carrier A G)) /\ (@SUBSET A h (@group_carrier A G)))) -> (@group_setmul A G g h) = (@group_setmul A G h g). +Axiom thm_GROUP_SETINV_SUBGROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> (@group_setinv A G h) = h. +Axiom thm_GROUP_SETMUL_LSUBSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall s : A -> Prop, ((@subgroup_of A h G) /\ ((@SUBSET A s h) /\ (~ (s = (@EMPTY A))))) -> (@group_setmul A G s h) = h. +Axiom thm_GROUP_SETMUL_RSUBSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall s : A -> Prop, ((@subgroup_of A h G) /\ ((@SUBSET A s h) /\ (~ (s = (@EMPTY A))))) -> (@group_setmul A G h s) = h. +Axiom thm_GROUP_SETMUL_LSUBSET_EQ : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall s : A -> Prop, ((@subgroup_of A h G) /\ (@SUBSET A s (@group_carrier A G))) -> ((@group_setmul A G s h) = h) = ((@SUBSET A s h) /\ (~ (s = (@EMPTY A)))). +Axiom thm_GROUP_SETMUL_RSUBSET_EQ : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall s : A -> Prop, ((@subgroup_of A h G) /\ (@SUBSET A s (@group_carrier A G))) -> ((@group_setmul A G h s) = h) = ((@SUBSET A s h) /\ (~ (s = (@EMPTY A)))). +Axiom thm_IMAGE_GROUP_CONJUGATION : forall {A : Type'}, forall G : Group A, forall a : A, forall s : A -> Prop, (@IMAGE A A (@group_conjugation A G a) s) = (@group_setmul A G (@INSERT A a (@EMPTY A)) (@group_setmul A G s (@INSERT A (@group_inv A G a) (@EMPTY A)))). +Axiom thm_IMAGE_GROUP_CONJUGATION_EQ : forall {A : Type'}, forall G : Group A, forall a : A, forall s : A -> Prop, forall t : A -> Prop, ((@IN A a (@group_carrier A G)) /\ ((@SUBSET A s (@group_carrier A G)) /\ (@SUBSET A t (@group_carrier A G)))) -> ((@IMAGE A A (@group_conjugation A G a) s) = t) = ((@group_setmul A G (@INSERT A a (@EMPTY A)) s) = (@group_setmul A G t (@INSERT A a (@EMPTY A)))). +Axiom thm_GROUP_SETMUL_SUBGROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> (@group_setmul A G h h) = h. +Axiom thm_GROUP_SETMUL_LCANCEL : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, forall x : A, ((@IN A x (@group_carrier A G)) /\ ((@SUBSET A g (@group_carrier A G)) /\ (@SUBSET A h (@group_carrier A G)))) -> ((@group_setmul A G (@INSERT A x (@EMPTY A)) g) = (@group_setmul A G (@INSERT A x (@EMPTY A)) h)) = (g = h). +Axiom thm_GROUP_SETMUL_RCANCEL : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, forall x : A, ((@IN A x (@group_carrier A G)) /\ ((@SUBSET A g (@group_carrier A G)) /\ (@SUBSET A h (@group_carrier A G)))) -> ((@group_setmul A G g (@INSERT A x (@EMPTY A))) = (@group_setmul A G h (@INSERT A x (@EMPTY A)))) = (g = h). +Axiom thm_GROUP_SETMUL_LCANCEL_SET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (@subgroup_of A h G))) -> ((@group_setmul A G h (@INSERT A x (@EMPTY A))) = (@group_setmul A G h (@INSERT A y (@EMPTY A)))) = (@IN A (@group_div A G x y) h). +Axiom thm_GROUP_SETMUL_RCANCEL_SET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (@subgroup_of A h G))) -> ((@group_setmul A G (@INSERT A x (@EMPTY A)) h) = (@group_setmul A G (@INSERT A y (@EMPTY A)) h)) = (@IN A (@group_mul A G (@group_inv A G x) y) h). +Axiom thm_SUBGROUP_SETMUL_EQ : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@subgroup_of A h G)) -> (@subgroup_of A (@group_setmul A G g h) G) = ((@group_setmul A G g h) = (@group_setmul A G h g)). +Axiom thm_SUBGROUP_SETMUL : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@abelian_group A G) /\ ((@subgroup_of A g G) /\ (@subgroup_of A h G))) -> @subgroup_of A (@group_setmul A G g h) G. +Axiom thm_SUBGROUP_GENERATED_SETMUL : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@subgroup_of A h G)) -> (@subgroup_generated A G (@group_setmul A G g h)) = (@subgroup_generated A G (@UNION A g h)). +Axiom thm_CARRIER_SUBGROUP_GENERATED_UNION : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ ((@subgroup_of A h G) /\ ((@group_setmul A G g h) = (@group_setmul A G h g)))) -> (@group_carrier A (@subgroup_generated A G (@UNION A g h))) = (@group_setmul A G g h). +Axiom thm_group_action : forall {A X : Type'}, forall s : X -> Prop, forall G : Group A, forall a : A -> X -> X, (@group_action A X G s a) = ((forall g : A, forall x : X, ((@IN A g (@group_carrier A G)) /\ (@IN X x s)) -> @IN X (a g x) s) /\ ((forall x : X, (@IN X x s) -> (a (@group_id A G) x) = x) /\ (forall g : A, forall h : A, forall x : X, ((@IN A g (@group_carrier A G)) /\ ((@IN A h (@group_carrier A G)) /\ (@IN X x s))) -> (a (@group_mul A G g h) x) = (a g (a h x))))). +Axiom thm_GROUP_ACTION_ALT : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, (@group_action A X G s a) = ((forall g : A, forall x : X, ((@IN A g (@group_carrier A G)) /\ (@IN X x s)) -> @IN X (a g x) s) /\ ((forall x : X, (@IN X x s) -> (a (@group_id A G) x) = x) /\ (forall g : A, forall h : A, forall x : X, ((@IN A g (@group_carrier A G)) /\ ((@IN A h (@group_carrier A G)) /\ (@IN X x s))) -> (a g (a h x)) = (a (@group_mul A G g h) x)))). +Axiom thm_GROUP_ACTION_MUL : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall g : A, forall h : A, forall x : X, ((@group_action A X G s a) /\ ((@IN A g (@group_carrier A G)) /\ ((@IN A h (@group_carrier A G)) /\ (@IN X x s)))) -> (a g (a h x)) = (a (@group_mul A G g h) x). +Axiom thm_GROUP_ACTION_LINV : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall g : A, forall x : X, ((@group_action A X G s a) /\ ((@IN A g (@group_carrier A G)) /\ (@IN X x s))) -> (a (@group_inv A G g) (a g x)) = x. +Axiom thm_GROUP_ACTION_RINV : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall g : A, forall x : X, ((@group_action A X G s a) /\ ((@IN A g (@group_carrier A G)) /\ (@IN X x s))) -> (a g (a (@group_inv A G g) x)) = x. +Axiom thm_GROUP_ACTION_BIJECTIVE : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall g : A, ((@group_action A X G s a) /\ (@IN A g (@group_carrier A G))) -> forall y : X, (@IN X y s) -> @ex1 X (fun x : X => (@IN X x s) /\ ((a g x) = y)). +Axiom thm_GROUP_ACTION_SURJECTIVE : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall g : A, forall y : X, ((@group_action A X G s a) /\ ((@IN A g (@group_carrier A G)) /\ (@IN X y s))) -> exists x : X, (a g x) = y. +Axiom thm_GROUP_ACTION_INJECTIVE : forall {A X : Type'} (g : A) (x : X) (y : X), forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, ((@group_action A X G s a) /\ ((@IN A g (@group_carrier A G)) /\ ((@IN X x s) /\ (@IN X y s)))) -> ((a g x) = (a g y)) = (x = y). +Axiom thm_GROUP_ACTION_ON_SUBSET : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall t : X -> Prop, forall a : A -> X -> X, ((@group_action A X G s a) /\ ((@SUBSET X t s) /\ (forall g : A, forall x : X, ((@IN A g (@group_carrier A G)) /\ (@IN X x t)) -> @IN X (a g x) t))) -> @group_action A X G t a. +Axiom thm_GROUP_ACTION_FROM_SUBGROUP : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall h : A -> Prop, forall a : A -> X -> X, (@group_action A X G s a) -> @group_action A X (@subgroup_generated A G h) s a. +Axiom thm_GROUP_ACTION_IMAGE : forall {A X : Type'}, forall G : Group A, forall u : (X -> Prop) -> Prop, forall s : X -> Prop, forall a : A -> X -> X, ((@group_action A X G s a) /\ ((forall t : X -> Prop, (@IN (X -> Prop) t u) -> @SUBSET X t s) /\ (forall g : A, forall t : X -> Prop, ((@IN A g (@group_carrier A G)) /\ (@IN (X -> Prop) t u)) -> @IN (X -> Prop) (@IMAGE X X (a g) t) u))) -> @group_action A (X -> Prop) G u (@o A (X -> X) ((X -> Prop) -> X -> Prop) (@IMAGE X X) a). +Axiom thm_GROUP_ACTION_IMAGE_SIZED : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall k : N, forall a : A -> X -> X, (@group_action A X G s a) -> @group_action A (X -> Prop) G (@GSPEC (X -> Prop) (fun GEN_PVAR_854 : X -> Prop => exists t : X -> Prop, @SETSPEC (X -> Prop) GEN_PVAR_854 ((@SUBSET X t s) /\ (@HAS_SIZE X t k)) t)) (@o A (X -> X) ((X -> Prop) -> X -> Prop) (@IMAGE X X) a). +Axiom thm_group_stabilizer : forall {A X : Type'}, forall G : Group A, forall a : A -> X -> X, forall x : X, (@group_stabilizer A X G a x) = (@GSPEC A (fun GEN_PVAR_855 : A => exists g : A, @SETSPEC A GEN_PVAR_855 ((@IN A g (@group_carrier A G)) /\ ((a g x) = x)) g)). +Axiom thm_GROUP_STABILIZER_SUBSET_CARRIER : forall {_284320 _284326 : Type'}, forall G : Group _284326, forall a : _284326 -> _284320 -> _284320, forall x : _284320, @SUBSET _284326 (@group_stabilizer _284326 _284320 G a x) (@group_carrier _284326 G). +Axiom thm_FINITE_GROUP_STABILIZER : forall {A X : Type'}, forall G : Group A, forall a : A -> X -> X, forall x : X, (@FINITE A (@group_carrier A G)) -> @FINITE A (@group_stabilizer A X G a x). +Axiom thm_SUBGROUP_OF_GROUP_STABILIZER : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, ((@group_action A X G s a) /\ (@IN X x s)) -> @subgroup_of A (@group_stabilizer A X G a x) G. +Axiom thm_GROUP_STABILIZER_NONEMPTY : forall {A X : Type'}, forall G : Group A, forall a : A -> X -> X, forall s : X -> Prop, forall x : X, ((@group_action A X G s a) /\ (@IN X x s)) -> ~ ((@group_stabilizer A X G a x) = (@EMPTY A)). +Axiom thm_GROUP_STABILIZER_SUBGROUP_GENERATED : forall {A X : Type'}, forall G : Group A, forall h : A -> Prop, forall a : A -> X -> X, forall x : X, (@group_stabilizer A X (@subgroup_generated A G h) a x) = (@INTER A (@group_carrier A (@subgroup_generated A G h)) (@group_stabilizer A X G a x)). +Axiom thm_GROUP_STABILIZER_ON_SUBGROUP : forall {A X : Type'}, forall G : Group A, forall h : A -> Prop, forall a : A -> X -> X, forall x : X, (@subgroup_of A h G) -> (@group_stabilizer A X (@subgroup_generated A G h) a x) = (@INTER A h (@group_stabilizer A X G a x)). +Axiom thm_GROUP_ACTION_KERNEL_POINTWISE : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, (@GSPEC A (fun GEN_PVAR_856 : A => exists g : A, @SETSPEC A GEN_PVAR_856 ((@IN A g (@group_carrier A G)) /\ (forall x : X, (@IN X x s) -> (a g x) = x)) g)) = (@COND (A -> Prop) (s = (@EMPTY X)) (@group_carrier A G) (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_857 : A -> Prop => exists x : X, @SETSPEC (A -> Prop) GEN_PVAR_857 (@IN X x s) (@group_stabilizer A X G a x))))). +Axiom thm_GROUP_ACTION_EQ : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall g : A, forall h : A, forall x : X, ((@group_action A X G s a) /\ ((@IN A g (@group_carrier A G)) /\ ((@IN A h (@group_carrier A G)) /\ (@IN X x s)))) -> ((a g x) = (a h x)) = (@IN A (@group_mul A G (@group_inv A G g) h) (@group_stabilizer A X G a x)). +Axiom thm_GROUP_ACTION_FIBRES : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall h : A, forall x : X, ((@group_action A X G s a) /\ ((@IN A h (@group_carrier A G)) /\ (@IN X x s))) -> (@GSPEC A (fun GEN_PVAR_859 : A => exists g : A, @SETSPEC A GEN_PVAR_859 ((@IN A g (@group_carrier A G)) /\ ((a g x) = (a h x))) g)) = (@IMAGE A A (@group_mul A G h) (@group_stabilizer A X G a x)). +Axiom thm_group_orbit : forall {A X : Type'}, forall s : X -> Prop, forall G : Group A, forall a : A -> X -> X, forall x : X, forall y : X, (@group_orbit A X G s a x y) = ((@IN X x s) /\ ((@IN X y s) /\ (exists g : A, (@IN A g (@group_carrier A G)) /\ ((a g x) = y)))). +Axiom thm_GROUP_ORBIT_IN_SET : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall y : X, (@group_orbit A X G s a x y) -> (@IN X x s) /\ (@IN X y s). +Axiom thm_IN_GROUP_ORBIT : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall y : X, (@IN X y (@group_orbit A X G s a x)) = ((@IN X x s) /\ ((@IN X y s) /\ (exists g : A, (@IN A g (@group_carrier A G)) /\ ((a g x) = y)))). +Axiom thm_GROUP_ORBIT : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, (@group_action A X G s a) -> (@group_orbit A X G s a x) = (@COND (X -> Prop) (@IN X x s) (@GSPEC X (fun GEN_PVAR_860 : X => exists g : A, @SETSPEC X GEN_PVAR_860 (@IN A g (@group_carrier A G)) (a g x))) (@EMPTY X)). +Axiom thm_GROUP_ORBIT_SUBSET : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, @SUBSET X (@group_orbit A X G s a x) s. +Axiom thm_GROUP_ORBIT_ON_SUBSET : forall {A X : Type'} (x : X), forall G : Group A, forall s : X -> Prop, forall t : X -> Prop, forall a : A -> X -> X, ((@SUBSET X t s) /\ (@IN X x t)) -> (@group_orbit A X G t a x) = (@INTER X t (@group_orbit A X G s a x)). +Axiom thm_FINITE_GROUP_ORBIT : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, ((@FINITE A (@group_carrier A G)) \/ (@FINITE X s)) -> @FINITE X (@group_orbit A X G s a x). +Axiom thm_GROUP_ORBIT_REFL_EQ : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, (@group_action A X G s a) -> (@group_orbit A X G s a x x) = (@IN X x s). +Axiom thm_GROUP_ORBIT_REFL : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, ((@group_action A X G s a) /\ (@IN X x s)) -> @group_orbit A X G s a x x. +Axiom thm_IN_GROUP_ORBIT_SELF : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, ((@group_action A X G s a) /\ (@IN X x s)) -> @IN X x (@group_orbit A X G s a x). +Axiom thm_GROUP_ORBIT_EMPTY : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, (~ (@IN X x s)) -> (@group_orbit A X G s a x) = (@EMPTY X). +Axiom thm_GROUP_ORBIT_EQ_EMPTY : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, (@group_action A X G s a) -> ((@group_orbit A X G s a x) = (@EMPTY X)) = (~ (@IN X x s)). +Axiom thm_GROUP_ORBIT_SYM_EQ : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall y : X, (@group_action A X G s a) -> (@group_orbit A X G s a x y) = (@group_orbit A X G s a y x). +Axiom thm_GROUP_ORBIT_SYM : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall y : X, ((@group_action A X G s a) /\ (@group_orbit A X G s a x y)) -> @group_orbit A X G s a y x. +Axiom thm_GROUP_ORBIT_TRANS : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall y : X, forall z : X, ((@group_action A X G s a) /\ ((@group_orbit A X G s a x y) /\ (@group_orbit A X G s a y z))) -> @group_orbit A X G s a x z. +Axiom thm_GROUP_ORBIT_EQ : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall y : X, ((@group_action A X G s a) /\ ((@IN X x s) /\ (@IN X y s))) -> ((@group_orbit A X G s a x) = (@group_orbit A X G s a y)) = (@group_orbit A X G s a x y). +Axiom thm_CLOSED_GROUP_ORBIT : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall g : A, ((@group_action A X G s a) /\ (@IN A g (@group_carrier A G))) -> @SUBSET X (@IMAGE X X (a g) (@group_orbit A X G s a x)) (@group_orbit A X G s a x). +Axiom thm_GROUP_ORBIT_EQ_SING : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall y : X, (@group_action A X G s a) -> ((@group_orbit A X G s a y) = (@INSERT X x (@EMPTY X))) = ((@IN X x s) /\ ((y = x) /\ (forall g : A, (@IN A g (@group_carrier A G)) -> (a g x) = x))). +Axiom thm_GROUP_ORBIT_EQ_SING_SELF : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, (@group_action A X G s a) -> ((@group_orbit A X G s a x) = (@INSERT X x (@EMPTY X))) = ((@IN X x s) /\ (forall g : A, (@IN A g (@group_carrier A G)) -> (a g x) = x)). +Axiom thm_GROUP_ORBIT_HAS_SIZE_1 : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, (@group_action A X G s a) -> (@HAS_SIZE X (@group_orbit A X G s a x) (NUMERAL (BIT1 0%N))) = ((@IN X x s) /\ (forall g : A, (@IN A g (@group_carrier A G)) -> (a g x) = x)). +Axiom thm_GROUP_ACTION_INVARIANT_SUBSET : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall t : X -> Prop, ((@group_action A X G s a) /\ (@SUBSET X t s)) -> (forall g : A, (@IN A g (@group_carrier A G)) -> @SUBSET X (@IMAGE X X (a g) t) t) = (forall g : A, (@IN A g (@group_carrier A G)) -> (@IMAGE X X (a g) t) = t). +Axiom thm_GROUP_ACTION_CLOSED : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall g : A, ((@group_action A X G s a) /\ (@IN A g (@group_carrier A G))) -> @SUBSET X (@IMAGE X X (a g) s) s. +Axiom thm_GROUP_ACTION_INVARIANT : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall g : A, ((@group_action A X G s a) /\ (@IN A g (@group_carrier A G))) -> (@IMAGE X X (a g) s) = s. +Axiom thm_INVARIANT_GROUP_ORBIT : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall g : A, ((@group_action A X G s a) /\ (@IN A g (@group_carrier A G))) -> (@IMAGE X X (a g) (@group_orbit A X G s a x)) = (@group_orbit A X G s a x). +Axiom thm_SUBSET_GROUP_ORBIT_CLOSED : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall t : X -> Prop, ((@group_action A X G s a) /\ ((@SUBSET X t s) /\ (forall g : A, (@IN A g (@group_carrier A G)) -> @SUBSET X (@IMAGE X X (a g) t) t))) -> (@SUBSET X (@group_orbit A X G s a x) t) = ((@IN X x s) -> ~ (@DISJOINT X (@group_orbit A X G s a x) t)). +Axiom thm_SUBSET_GROUP_ORBIT_INVARIANT : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall t : X -> Prop, ((@group_action A X G s a) /\ ((@SUBSET X t s) /\ (forall g : A, (@IN A g (@group_carrier A G)) -> (@IMAGE X X (a g) t) = t))) -> (@SUBSET X (@group_orbit A X G s a x) t) = ((@IN X x s) -> ~ (@DISJOINT X (@group_orbit A X G s a x) t)). +Axiom thm_GROUP_ORBITS_EQ : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall y : X, ((@group_action A X G s a) /\ ((@IN X x s) /\ (@IN X y s))) -> ((@group_orbit A X G s a x) = (@group_orbit A X G s a y)) = (~ (@DISJOINT X (@group_orbit A X G s a x) (@group_orbit A X G s a y))). +Axiom thm_DISJOINT_GROUP_ORBITS : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall y : X, ((@group_action A X G s a) /\ ((@IN X x s) /\ (@IN X y s))) -> (@DISJOINT X (@group_orbit A X G s a x) (@group_orbit A X G s a y)) = (~ ((@group_orbit A X G s a x) = (@group_orbit A X G s a y))). +Axiom thm_PAIRWISE_DISJOINT_GROUP_ORBITS : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, (@group_action A X G s a) -> @pairwise (X -> Prop) (@DISJOINT X) (@GSPEC (X -> Prop) (fun GEN_PVAR_861 : X -> Prop => exists x : X, @SETSPEC (X -> Prop) GEN_PVAR_861 (@IN X x s) (@group_orbit A X G s a x))). +Axiom thm_UNIONS_GROUP_ORBITS_CLOSED : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall t : X -> Prop, ((@group_action A X G s a) /\ ((@SUBSET X t s) /\ (forall g : A, (@IN A g (@group_carrier A G)) -> @SUBSET X (@IMAGE X X (a g) t) t))) -> (@UNIONS X (@GSPEC (X -> Prop) (fun GEN_PVAR_863 : X -> Prop => exists x : X, @SETSPEC (X -> Prop) GEN_PVAR_863 (@IN X x t) (@group_orbit A X G s a x)))) = t. +Axiom thm_UNIONS_GROUP_ORBITS_INVARIANT : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall t : X -> Prop, ((@group_action A X G s a) /\ ((@SUBSET X t s) /\ (forall g : A, (@IN A g (@group_carrier A G)) -> (@IMAGE X X (a g) t) = t))) -> (@UNIONS X (@GSPEC (X -> Prop) (fun GEN_PVAR_864 : X -> Prop => exists x : X, @SETSPEC (X -> Prop) GEN_PVAR_864 (@IN X x t) (@group_orbit A X G s a x)))) = t. +Axiom thm_UNIONS_GROUP_ORBITS : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, (@group_action A X G s a) -> (@UNIONS X (@GSPEC (X -> Prop) (fun GEN_PVAR_865 : X -> Prop => exists x : X, @SETSPEC (X -> Prop) GEN_PVAR_865 (@IN X x s) (@group_orbit A X G s a x)))) = s. +Axiom thm_NSUM_CARD_GROUP_ORBITS : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, ((@group_action A X G s a) /\ (@FINITE X s)) -> (@nsum (X -> Prop) (@GSPEC (X -> Prop) (fun GEN_PVAR_866 : X -> Prop => exists x : X, @SETSPEC (X -> Prop) GEN_PVAR_866 (@IN X x s) (@group_orbit A X G s a x))) (@CARD X)) = (@CARD X s). +Axiom thm_ORBIT_STABILIZER_MUL_GEN : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, ((@group_action A X G s a) /\ (@IN X x s)) -> @eq_c (prod X A) A (@mul_c A X (@group_orbit A X G s a x) (@group_stabilizer A X G a x)) (@group_carrier A G). +Axiom thm_ORBIT_STABILIZER_MUL : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, ((@FINITE A (@group_carrier A G)) /\ ((@group_action A X G s a) /\ (@IN X x s))) -> (N.mul (@CARD X (@group_orbit A X G s a x)) (@CARD A (@group_stabilizer A X G a x))) = (@CARD A (@group_carrier A G)). +Axiom thm_CARD_GROUP_ORBIT_DIVIDES : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, ((@FINITE A (@group_carrier A G)) /\ ((@group_action A X G s a) /\ (@IN X x s))) -> num_divides (@CARD X (@group_orbit A X G s a x)) (@CARD A (@group_carrier A G)). +Axiom thm_CARD_GROUP_STABILIZER_DIVIDES : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, ((@FINITE A (@group_carrier A G)) /\ ((@group_action A X G s a) /\ (@IN X x s))) -> num_divides (@CARD A (@group_stabilizer A X G a x)) (@CARD A (@group_carrier A G)). +Axiom thm_GROUP_STABILIZER_OF_ACTION : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall g : A, forall x : X, ((@group_action A X G s a) /\ ((@IN A g (@group_carrier A G)) /\ (@IN X x s))) -> (@group_stabilizer A X G a (a g x)) = (@IMAGE A A (@group_conjugation A G g) (@group_stabilizer A X G a x)). +Axiom thm_GROUP_ACTION_SUBGROUP_TRANSLATION : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, @group_action A A (@subgroup_generated A G h) (@group_carrier A G) (@group_mul A G). +Axiom thm_GROUP_STABILIZER_SUBGROUP_TRANSLATION : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall a : A, ((@subgroup_of A h G) /\ (@IN A a (@group_carrier A G))) -> (@group_stabilizer A A (@subgroup_generated A G h) (@group_mul A G) a) = (@INSERT A (@group_id A G) (@EMPTY A)). +Axiom thm_GROUP_ACTION_GROUP_TRANSLATION : forall {_287259 : Type'}, forall G : Group _287259, @group_action _287259 _287259 G (@group_carrier _287259 G) (@group_mul _287259 G). +Axiom thm_GROUP_STABILIZER_GROUP_TRANSLATION : forall {A : Type'}, forall G : Group A, forall a : A, (@IN A a (@group_carrier A G)) -> (@group_stabilizer A A G (@group_mul A G) a) = (@INSERT A (@group_id A G) (@EMPTY A)). +Axiom thm_GROUP_ACTION_SUBSET_TRANSLATION : forall {A : Type'}, forall G : Group A, forall u : (A -> Prop) -> Prop, ((forall s : A -> Prop, (@IN (A -> Prop) s u) -> @SUBSET A s (@group_carrier A G)) /\ (forall a : A, forall s : A -> Prop, ((@IN A a (@group_carrier A G)) /\ (@IN (A -> Prop) s u)) -> @IN (A -> Prop) (@IMAGE A A (@group_mul A G a) s) u)) -> @group_action A (A -> Prop) G u (@o A (A -> A) ((A -> Prop) -> A -> Prop) (@IMAGE A A) (@group_mul A G)). +Axiom thm_GROUP_ACTION_CONJUGATION : forall {A : Type'}, forall G : Group A, @group_action A A G (@group_carrier A G) (@group_conjugation A G). +Axiom thm_CARD_GROUP_SETMUL_GEN : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@subgroup_of A h G)) -> @eq_c (prod A A) (prod A A) (@mul_c A A (@group_setmul A G g h) (@INTER A g h)) (@mul_c A A g h). +Axiom thm_CARD_GROUP_SETMUL_MUL : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@FINITE A g) /\ ((@FINITE A h) /\ ((@subgroup_of A g G) /\ (@subgroup_of A h G)))) -> (N.mul (@CARD A (@group_setmul A G g h)) (@CARD A (@INTER A g h))) = (N.mul (@CARD A g) (@CARD A h)). +Axiom thm_CARD_GROUP_SETMUL : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@FINITE A g) /\ ((@FINITE A h) /\ ((@subgroup_of A g G) /\ (@subgroup_of A h G)))) -> (@CARD A (@group_setmul A G g h)) = (N.div (N.mul (@CARD A g) (@CARD A h)) (@CARD A (@INTER A g h))). +Axiom thm_CARD_GROUP_SETMUL_DIVIDES : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@FINITE A g) /\ ((@FINITE A h) /\ ((@subgroup_of A g G) /\ (@subgroup_of A h G)))) -> num_divides (@CARD A (@group_setmul A G g h)) (N.mul (@CARD A g) (@CARD A h)). +Axiom thm_GROUP_ORBIT_COMMON_DIVISOR : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall n : N, ((@group_action A X G s a) /\ ((@FINITE X s) /\ (forall x : X, (@IN X x s) -> num_divides n (@CARD X (@group_orbit A X G s a x))))) -> num_divides n (@CARD X s). +Axiom thm_GROUP_ORBIT_COMMON_INDEX : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall p : N, forall k : N, ((@group_action A X G s a) /\ ((@FINITE X s) /\ (((s = (@EMPTY X)) -> k = (NUMERAL 0%N)) /\ (forall x : X, (@IN X x s) -> N.le k (index p (@CARD X (@group_orbit A X G s a x))))))) -> N.le k (index p (@CARD X s)). +Axiom thm_right_coset : forall {_287922 : Type'}, forall G : Group _287922, forall h : _287922 -> Prop, forall x : _287922, (@right_coset _287922 G h x) = (@group_setmul _287922 G h (@INSERT _287922 x (@EMPTY _287922))). +Axiom thm_left_coset : forall {_287937 : Type'}, forall G : Group _287937, forall x : _287937, forall h : _287937 -> Prop, (@left_coset _287937 G x h) = (@group_setmul _287937 G (@INSERT _287937 x (@EMPTY _287937)) h). +Axiom thm_LEFT_COSET_AS_IMAGE : forall {A : Type'} (G : Group A), forall x : A, forall h : A -> Prop, (@left_coset A G x h) = (@IMAGE A A (@group_mul A G x) h). +Axiom thm_RIGHT_COSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@IN A x (@group_carrier A G)) /\ (@SUBSET A h (@group_carrier A G))) -> @SUBSET A (@right_coset A G h x) (@group_carrier A G). +Axiom thm_LEFT_COSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@IN A x (@group_carrier A G)) /\ (@SUBSET A h (@group_carrier A G))) -> @SUBSET A (@left_coset A G x h) (@group_carrier A G). +Axiom thm_IN_RIGHT_COSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall a : A, ((@SUBSET A h (@group_carrier A G)) /\ ((@IN A a (@group_carrier A G)) /\ (@IN A x (@group_carrier A G)))) -> (@IN A x (@right_coset A G h a)) = (@IN A (@group_mul A G x (@group_inv A G a)) h). +Axiom thm_IN_LEFT_COSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall a : A, ((@SUBSET A h (@group_carrier A G)) /\ ((@IN A a (@group_carrier A G)) /\ (@IN A x (@group_carrier A G)))) -> (@IN A x (@left_coset A G a h)) = (@IN A (@group_mul A G (@group_inv A G a) x) h). +Axiom thm_IN_RIGHT_COSET_INV : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@SUBSET A h (@group_carrier A G)) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> (@IN A x (@right_coset A G h (@group_inv A G y))) = (@IN A (@group_mul A G x y) h). +Axiom thm_IN_LEFT_COSET_INV : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@SUBSET A h (@group_carrier A G)) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> (@IN A x (@left_coset A G (@group_inv A G y) h)) = (@IN A (@group_mul A G y x) h). +Axiom thm_GROUP_SETINV_RIGHT_COSET_GEN : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall a : A, ((@subgroup_of A h G) /\ (@IN A a (@group_carrier A G))) -> (@group_setinv A G (@right_coset A G h a)) = (@left_coset A G (@group_inv A G a) h). +Axiom thm_GROUP_SETINV_LEFT_COSET_GEN : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall a : A, ((@subgroup_of A h G) /\ (@IN A a (@group_carrier A G))) -> (@group_setinv A G (@left_coset A G a h)) = (@right_coset A G h (@group_inv A G a)). +Axiom thm_RIGHT_COSET_OPPOSITE_GROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, (@right_coset A G h x) = (@left_coset A (@opposite_group A G) x h). +Axiom thm_LEFT_COSET_OPPOSITE_GROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, (@left_coset A G x h) = (@right_coset A (@opposite_group A G) h x). +Axiom thm_GROUP_CONJUGATION_RIGHT_COSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@IN A x (@group_carrier A G)) /\ (@SUBSET A h (@group_carrier A G))) -> (@IMAGE A A (@group_conjugation A G x) (@right_coset A G h x)) = (@left_coset A G x h). +Axiom thm_RIGHT_COSET_GROUP_CONJUGATION : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@IN A x (@group_carrier A G)) /\ (@SUBSET A h (@group_carrier A G))) -> (@right_coset A G (@IMAGE A A (@group_conjugation A G x) h) x) = (@left_coset A G x h). +Axiom thm_LEFT_COSET_LEFT_COSET : forall {A : Type'} (G : Group A), forall x : A, forall y : A, forall h : A -> Prop, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (@SUBSET A h (@group_carrier A G)))) -> (@left_coset A G x (@left_coset A G y h)) = (@left_coset A G (@group_mul A G x y) h). +Axiom thm_RIGHT_COSET_RIGHT_COSET : forall {A : Type'} (G : Group A), forall x : A, forall y : A, forall h : A -> Prop, ((@SUBSET A h (@group_carrier A G)) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> (@right_coset A G (@right_coset A G h x) y) = (@right_coset A G h (@group_mul A G x y)). +Axiom thm_RIGHT_COSET_ID : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@SUBSET A h (@group_carrier A G)) -> (@right_coset A G h (@group_id A G)) = h. +Axiom thm_LEFT_COSET_ID : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@SUBSET A h (@group_carrier A G)) -> (@left_coset A G (@group_id A G) h) = h. +Axiom thm_LEFT_COSET_TRIVIAL : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@left_coset A G x (@INSERT A (@group_id A G) (@EMPTY A))) = (@INSERT A x (@EMPTY A)). +Axiom thm_RIGHT_COSET_TRIVIAL : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@right_coset A G (@INSERT A (@group_id A G) (@EMPTY A)) x) = (@INSERT A x (@EMPTY A)). +Axiom thm_LEFT_COSET_CARRIER : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@left_coset A G x (@group_carrier A G)) = (@group_carrier A G). +Axiom thm_RIGHT_COSET_CARRIER : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@right_coset A G (@group_carrier A G) x) = (@group_carrier A G). +Axiom thm_RIGHT_COSET_EQ : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> ((@right_coset A G h x) = (@right_coset A G h y)) = (@IN A (@group_div A G x y) h). +Axiom thm_LEFT_COSET_EQ : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> ((@left_coset A G x h) = (@left_coset A G y h)) = (@IN A (@group_mul A G (@group_inv A G x) y) h). +Axiom thm_RIGHT_COSET_EQ_SUBGROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@subgroup_of A h G) /\ (@IN A x (@group_carrier A G))) -> ((@right_coset A G h x) = h) = (@IN A x h). +Axiom thm_LEFT_COSET_EQ_SUBGROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@subgroup_of A h G) /\ (@IN A x (@group_carrier A G))) -> ((@left_coset A G x h) = h) = (@IN A x h). +Axiom thm_RIGHT_COSET_EQ_EMPTY : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@right_coset A G h x) = (@EMPTY A)) = (h = (@EMPTY A)). +Axiom thm_LEFT_COSET_EQ_EMPTY : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@left_coset A G x h) = (@EMPTY A)) = (h = (@EMPTY A)). +Axiom thm_RIGHT_COSET_NONEMPTY : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, (@subgroup_of A h G) -> ~ ((@right_coset A G h x) = (@EMPTY A)). +Axiom thm_LEFT_COSET_NONEMPTY : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, (@subgroup_of A h G) -> ~ ((@left_coset A G x h) = (@EMPTY A)). +Axiom thm_IN_RIGHT_COSET_SELF : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@subgroup_of A h G) /\ (@IN A x (@group_carrier A G))) -> @IN A x (@right_coset A G h x). +Axiom thm_IN_LEFT_COSET_SELF : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@subgroup_of A h G) /\ (@IN A x (@group_carrier A G))) -> @IN A x (@left_coset A G x h). +Axiom thm_UNIONS_RIGHT_COSETS : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_874 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_874 (@IN A x (@group_carrier A G)) (@right_coset A G h x)))) = (@group_carrier A G). +Axiom thm_UNIONS_LEFT_COSETS : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_875 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_875 (@IN A x (@group_carrier A G)) (@left_coset A G x h)))) = (@group_carrier A G). +Axiom thm_RIGHT_COSETS_EQ : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> ((@right_coset A G h x) = (@right_coset A G h y)) = (~ (@DISJOINT A (@right_coset A G h x) (@right_coset A G h y))). +Axiom thm_LEFT_COSETS_EQ : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> ((@left_coset A G x h) = (@left_coset A G y h)) = (~ (@DISJOINT A (@left_coset A G x h) (@left_coset A G y h))). +Axiom thm_DISJOINT_RIGHT_COSETS : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> (@DISJOINT A (@right_coset A G h x) (@right_coset A G h y)) = (~ ((@right_coset A G h x) = (@right_coset A G h y))). +Axiom thm_DISJOINT_LEFT_COSETS : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> (@DISJOINT A (@left_coset A G x h) (@left_coset A G y h)) = (~ ((@left_coset A G x h) = (@left_coset A G y h))). +Axiom thm_PAIRWISE_DISJOINT_RIGHT_COSETS : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> @pairwise (A -> Prop) (@DISJOINT A) (@GSPEC (A -> Prop) (fun GEN_PVAR_876 : A -> Prop => exists a : A, @SETSPEC (A -> Prop) GEN_PVAR_876 (@IN A a (@group_carrier A G)) (@right_coset A G h a))). +Axiom thm_PAIRWISE_DISJOINT_LEFT_COSETS : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> @pairwise (A -> Prop) (@DISJOINT A) (@GSPEC (A -> Prop) (fun GEN_PVAR_877 : A -> Prop => exists a : A, @SETSPEC (A -> Prop) GEN_PVAR_877 (@IN A a (@group_carrier A G)) (@left_coset A G a h))). +Axiom thm_IMAGE_RIGHT_COSET_SWITCH : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> (@IMAGE A A (fun a : A => @group_mul A G a (@group_mul A G (@group_inv A G x) y)) (@right_coset A G h x)) = (@right_coset A G h y). +Axiom thm_IMAGE_LEFT_COSET_SWITCH : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> (@IMAGE A A (fun a : A => @group_mul A G (@group_div A G y x) a) (@left_coset A G x h)) = (@left_coset A G y h). +Axiom thm_CARD_EQ_LEFT_RIGHT_COSETS : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> @eq_c (A -> Prop) (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_878 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_878 (@IN A x (@group_carrier A G)) (@left_coset A G x h))) (@GSPEC (A -> Prop) (fun GEN_PVAR_879 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_879 (@IN A x (@group_carrier A G)) (@right_coset A G h x))). +Axiom thm_HAS_SIZE_LEFT_RIGHT_COSETS : forall {A : Type'} (n : N), forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> (@HAS_SIZE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_880 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_880 (@IN A x (@group_carrier A G)) (@left_coset A G x h))) n) = (@HAS_SIZE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_881 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_881 (@IN A x (@group_carrier A G)) (@right_coset A G h x))) n). +Axiom thm_CARD_EQ_RIGHT_COSETS : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> @eq_c A A (@right_coset A G h x) (@right_coset A G h y). +Axiom thm_GROUP_ID_IN_LEFT_COSET_GEN : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@SUBSET A h (@group_carrier A G)) /\ (@IN A x (@group_carrier A G))) -> (@IN A (@group_id A G) (@left_coset A G x h)) = (@IN A (@group_inv A G x) h). +Axiom thm_GROUP_ID_IN_LEFT_COSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@subgroup_of A h G) /\ (@IN A x (@group_carrier A G))) -> (@IN A (@group_id A G) (@left_coset A G x h)) = (@IN A x h). +Axiom thm_SUBGROUP_OF_LEFT_COSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@subgroup_of A h G) /\ (@IN A x (@group_carrier A G))) -> (@subgroup_of A (@left_coset A G x h) G) = ((@left_coset A G x h) = h). +Axiom thm_GROUP_ID_IN_RIGHT_COSET_GEN : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@SUBSET A h (@group_carrier A G)) /\ (@IN A x (@group_carrier A G))) -> (@IN A (@group_id A G) (@right_coset A G h x)) = (@IN A (@group_inv A G x) h). +Axiom thm_GROUP_ID_IN_RIGHT_COSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@subgroup_of A h G) /\ (@IN A x (@group_carrier A G))) -> (@IN A (@group_id A G) (@right_coset A G h x)) = (@IN A x h). +Axiom thm_SUBGROUP_OF_RIGHT_COSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@subgroup_of A h G) /\ (@IN A x (@group_carrier A G))) -> (@subgroup_of A (@right_coset A G h x) G) = ((@right_coset A G h x) = h). +Axiom thm_CARD_EQ_LEFT_COSETS : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> @eq_c A A (@left_coset A G x h) (@left_coset A G y h). +Axiom thm_CARD_EQ_RIGHT_COSET_SUBGROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> @eq_c A A (@right_coset A G h x) h. +Axiom thm_CARD_EQ_LEFT_COSET_SUBGROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, forall y : A, ((@subgroup_of A h G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> @eq_c A A (@left_coset A G x h) h. +Axiom thm_GROUP_ORBIT_SUBGROUP_TRANSLATION : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall a : A, ((@subgroup_of A h G) /\ (@IN A a (@group_carrier A G))) -> (@group_orbit A A (@subgroup_generated A G h) (@group_carrier A G) (@group_mul A G) a) = (@right_coset A G h a). +Axiom thm_GROUP_ORBIT_GROUP_TRANSLATION : forall {A : Type'}, forall G : Group A, forall a : A, (@IN A a (@group_carrier A G)) -> (@group_orbit A A G (@group_carrier A G) (@group_mul A G) a) = (@group_carrier A G). +Axiom thm_ORBIT_STABILIZER_GEN : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, ((@group_action A X G s a) /\ (@IN X x s)) -> @eq_c X (A -> Prop) (@group_orbit A X G s a x) (@GSPEC (A -> Prop) (fun GEN_PVAR_882 : A -> Prop => exists g : A, @SETSPEC (A -> Prop) GEN_PVAR_882 (@IN A g (@group_carrier A G)) (@left_coset A G g (@group_stabilizer A X G a x)))). +Axiom thm_ORBIT_STABILIZER : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, ((@FINITE A (@group_carrier A G)) /\ ((@group_action A X G s a) /\ (@IN X x s))) -> (@CARD X (@group_orbit A X G s a x)) = (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_883 : A -> Prop => exists g : A, @SETSPEC (A -> Prop) GEN_PVAR_883 (@IN A g (@group_carrier A G)) (@left_coset A G g (@group_stabilizer A X G a x))))). +Axiom thm_GROUP_ACTION_LEFT_COSET_MULTIPLICATION : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@SUBSET A h (@group_carrier A G)) -> @group_action A (A -> Prop) G (@GSPEC (A -> Prop) (fun GEN_PVAR_884 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_884 (@IN A x (@group_carrier A G)) (@left_coset A G x h))) (@o A (A -> A) ((A -> Prop) -> A -> Prop) (@IMAGE A A) (@group_mul A G)). +Axiom thm_GROUP_ORBIT_LEFT_COSET_MULTIPLICATION : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall a : A, ((@IN A a (@group_carrier A G)) /\ (@subgroup_of A h G)) -> (@group_orbit A (A -> Prop) G (@GSPEC (A -> Prop) (fun GEN_PVAR_885 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_885 (@IN A x (@group_carrier A G)) (@left_coset A G x h))) (@o A (A -> A) ((A -> Prop) -> A -> Prop) (@IMAGE A A) (@group_mul A G)) (@left_coset A G a h)) = (@GSPEC (A -> Prop) (fun GEN_PVAR_886 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_886 (@IN A x (@group_carrier A G)) (@left_coset A G x h))). +Axiom thm_GROUP_STABILIZER_LEFT_COSET_MULTIPLICATION : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall a : A, ((@IN A a (@group_carrier A G)) /\ (@subgroup_of A h G)) -> (@group_stabilizer A (A -> Prop) G (@o A (A -> A) ((A -> Prop) -> A -> Prop) (@IMAGE A A) (@group_mul A G)) (@left_coset A G a h)) = (@IMAGE A A (@group_conjugation A G a) h). +Axiom thm_GROUP_ORBIT_LEFT_COSET_MULTIPLICATION_ID : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> (@group_orbit A (A -> Prop) G (@GSPEC (A -> Prop) (fun GEN_PVAR_888 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_888 (@IN A x (@group_carrier A G)) (@left_coset A G x h))) (@o A (A -> A) ((A -> Prop) -> A -> Prop) (@IMAGE A A) (@group_mul A G)) h) = (@GSPEC (A -> Prop) (fun GEN_PVAR_889 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_889 (@IN A x (@group_carrier A G)) (@left_coset A G x h))). +Axiom thm_GROUP_STABILIZER_LEFT_COSET_MULTIPLICATION_ID : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> (@group_stabilizer A (A -> Prop) G (@o A (A -> A) ((A -> Prop) -> A -> Prop) (@IMAGE A A) (@group_mul A G)) h) = h. +Axiom thm_LAGRANGE_THEOREM_LEFT_GEN : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> @eq_c (prod (A -> Prop) A) A (@mul_c A (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_890 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_890 (@IN A x (@group_carrier A G)) (@left_coset A G x h))) h) (@group_carrier A G). +Axiom thm_LAGRANGE_THEOREM_RIGHT_GEN : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> @eq_c (prod (A -> Prop) A) A (@mul_c A (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_891 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_891 (@IN A x (@group_carrier A G)) (@right_coset A G h x))) h) (@group_carrier A G). +Axiom thm_LAGRANGE_THEOREM_LEFT : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ (@subgroup_of A h G)) -> (N.mul (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_892 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_892 (@IN A x (@group_carrier A G)) (@left_coset A G x h)))) (@CARD A h)) = (@CARD A (@group_carrier A G)). +Axiom thm_LAGRANGE_THEOREM_RIGHT : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ (@subgroup_of A h G)) -> (N.mul (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_893 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_893 (@IN A x (@group_carrier A G)) (@right_coset A G h x)))) (@CARD A h)) = (@CARD A (@group_carrier A G)). +Axiom thm_LAGRANGE_THEOREM : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ (@subgroup_of A h G)) -> num_divides (@CARD A h) (@CARD A (@group_carrier A G)). +Axiom thm_CARD_LEFT_COSETS_DIVIDES : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ (@subgroup_of A h G)) -> num_divides (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_894 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_894 (@IN A x (@group_carrier A G)) (@left_coset A G x h)))) (@CARD A (@group_carrier A G)). +Axiom thm_CARD_RIGHT_COSETS_DIVIDES : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ (@subgroup_of A h G)) -> num_divides (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_895 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_895 (@IN A x (@group_carrier A G)) (@right_coset A G h x)))) (@CARD A (@group_carrier A G)). +Axiom thm_LAGRANGE_THEOREM_LEFT_DIV : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ (@subgroup_of A h G)) -> (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_896 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_896 (@IN A x (@group_carrier A G)) (@left_coset A G x h)))) = (N.div (@CARD A (@group_carrier A G)) (@CARD A h)). +Axiom thm_LAGRANGE_THEOREM_RIGHT_DIV : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ (@subgroup_of A h G)) -> (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_897 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_897 (@IN A x (@group_carrier A G)) (@right_coset A G h x)))) = (N.div (@CARD A (@group_carrier A G)) (@CARD A h)). +Axiom thm_GROUP_SETMUL_PROD_GROUP : forall {A B : Type'}, forall G1 : Group A, forall G2 : Group B, forall s1 : A -> Prop, forall s2 : B -> Prop, forall t1 : A -> Prop, forall t2 : B -> Prop, (@group_setmul (prod A B) (@prod_group A B G1 G2) (@CROSS A B s1 s2) (@CROSS A B t1 t2)) = (@CROSS A B (@group_setmul A G1 s1 t1) (@group_setmul B G2 s2 t2)). +Axiom thm_RIGHT_COSET_PROD_GROUP : forall {A B : Type'}, forall G1 : Group A, forall G2 : Group B, forall h1' : A -> Prop, forall h2' : B -> Prop, forall x1 : A, forall x2 : B, (@right_coset (prod A B) (@prod_group A B G1 G2) (@CROSS A B h1' h2') (@pair A B x1 x2)) = (@CROSS A B (@right_coset A G1 h1' x1) (@right_coset B G2 h2' x2)). +Axiom thm_LEFT_COSET_PROD_GROUP : forall {A B : Type'}, forall G1 : Group A, forall G2 : Group B, forall h1' : A -> Prop, forall h2' : B -> Prop, forall x1 : A, forall x2 : B, (@left_coset (prod A B) (@prod_group A B G1 G2) (@pair A B x1 x2) (@CROSS A B h1' h2')) = (@CROSS A B (@left_coset A G1 x1 h1') (@left_coset B G2 x2 h2')). +Axiom thm_GROUP_SETMUL_PRODUCT_GROUP : forall {A K : Type'}, forall G : K -> Group A, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@group_setmul (K -> A) (@product_group A K k G) (@cartesian_product A K k s) (@cartesian_product A K k t)) = (@cartesian_product A K k (fun i : K => @group_setmul A (G i) (s i) (t i))). +Axiom thm_RIGHT_COSET_PRODUCT_GROUP : forall {A K : Type'}, forall G : K -> Group A, forall h : K -> A -> Prop, forall x : K -> A, forall k : K -> Prop, (@right_coset (K -> A) (@product_group A K k G) (@cartesian_product A K k h) x) = (@cartesian_product A K k (fun i : K => @right_coset A (G i) (h i) (x i))). +Axiom thm_LEFT_COSET_PRODUCT_GROUP : forall {A K : Type'}, forall G : K -> Group A, forall h : K -> A -> Prop, forall x : K -> A, forall k : K -> Prop, (@left_coset (K -> A) (@product_group A K k G) x (@cartesian_product A K k h)) = (@cartesian_product A K k (fun i : K => @left_coset A (G i) (x i) (h i))). +Axiom thm_GROUP_SETINV_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@group_setinv A (@subgroup_generated A G h)) = (@group_setinv A G). +Axiom thm_GROUP_SETMUL_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@group_setmul A (@subgroup_generated A G h)) = (@group_setmul A G). +Axiom thm_RIGHT_COSET_SUBGROUP_GENERATED : forall {_292572 : Type'}, forall G : Group _292572, forall h : _292572 -> Prop, forall k : _292572 -> Prop, forall x : _292572, (@right_coset _292572 (@subgroup_generated _292572 G h) k x) = (@right_coset _292572 G k x). +Axiom thm_LEFT_COSET_SUBGROUP_GENERATED : forall {_292604 : Type'}, forall G : Group _292604, forall h : _292604 -> Prop, forall k : _292604 -> Prop, forall x : _292604, (@left_coset _292604 (@subgroup_generated _292604 G h) x k) = (@left_coset _292604 G x k). +Axiom thm_SCHREIER_TRANSVERSAL_LEMMA : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@subgroup_of A h G) /\ ((@SUBSET A s (@group_carrier A G)) /\ (((@subgroup_generated A G s) = G) /\ ((forall x : A, (@IN A x s) -> @IN A (@group_inv A G x) s) /\ ((@SUBSET A t (@group_carrier A G)) /\ (((@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_916 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_916 (@IN A x t) (@right_coset A G h x)))) = (@group_carrier A G)) /\ (@SUBSET A (@INTER A t h) (@INSERT A (@group_id A G) (@EMPTY A))))))))) -> (@group_carrier A (@subgroup_generated A G (@INTER A h (@group_setmul A G t (@group_setmul A G s (@group_setinv A G t)))))) = h. +Axiom thm_normal_subgroup_of : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) = ((@subgroup_of A n G) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (@left_coset A G x n) = (@right_coset A G n x))). +Axiom thm_NORMAL_SUBGROUP_IMP_SUBGROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> @subgroup_of A n G. +Axiom thm_NORMAL_SUBGROUP_OF_IMP_SUBSET : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> @SUBSET A n (@group_carrier A G). +Axiom thm_NORMAL_SUBGROUP_OF_OPPOSITE_GROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n (@opposite_group A G)) = (@normal_subgroup_of A n G). +Axiom thm_ABELIAN_GROUP_NORMAL_SUBGROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@abelian_group A G) -> (@normal_subgroup_of A n G) = (@subgroup_of A n G). +Axiom thm_NORMAL_SUBGROUP_CONJUGATE_ALT : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) = ((@subgroup_of A n G) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (@group_setmul A G (@INSERT A (@group_inv A G x) (@EMPTY A)) (@group_setmul A G n (@INSERT A x (@EMPTY A)))) = n)). +Axiom thm_NORMAL_SUBGROUP_CONJUGATE_INV : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) = ((@subgroup_of A n G) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> @SUBSET A (@group_setmul A G (@INSERT A (@group_inv A G x) (@EMPTY A)) (@group_setmul A G n (@INSERT A x (@EMPTY A)))) n)). +Axiom thm_NORMAL_SUBGROUP_CONJUGATION_EQ : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@normal_subgroup_of A h G) = ((@subgroup_of A h G) /\ (forall a : A, (@IN A a (@group_carrier A G)) -> (@IMAGE A A (@group_conjugation A G a) h) = h)). +Axiom thm_NORMAL_SUBGROUP_CONJUGATION : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@normal_subgroup_of A h G) = ((@subgroup_of A h G) /\ (forall a : A, (@IN A a (@group_carrier A G)) -> @SUBSET A (@IMAGE A A (@group_conjugation A G a) h) h)). +Axiom thm_NORMAL_SUBGROUP_CONJUGATION_SUPERSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@normal_subgroup_of A h G) = ((@subgroup_of A h G) /\ (forall a : A, (@IN A a (@group_carrier A G)) -> @SUBSET A h (@IMAGE A A (@group_conjugation A G a) h))). +Axiom thm_ABELIAN_GROUP_CONJUGATION : forall {A : Type'}, forall G : Group A, forall a : A, forall x : A, ((@abelian_group A G) /\ ((@IN A a (@group_carrier A G)) /\ (@IN A x (@group_carrier A G)))) -> (@group_conjugation A G a x) = x. +Axiom thm_NORMAL_SUBGROUP_OF_INTERS : forall {_293823 : Type'}, forall G : Group _293823, forall gs : (_293823 -> Prop) -> Prop, ((forall g : _293823 -> Prop, (@IN (_293823 -> Prop) g gs) -> @normal_subgroup_of _293823 g G) /\ (~ (gs = (@EMPTY (_293823 -> Prop))))) -> @normal_subgroup_of _293823 (@INTERS _293823 gs) G. +Axiom thm_NORMAL_SUBGROUP_OF_INTER : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@normal_subgroup_of A g G) /\ (@normal_subgroup_of A h G)) -> @normal_subgroup_of A (@INTER A g h) G. +Axiom thm_NORMAL_SUBGROUP_OF_UNIONS : forall {A : Type'}, forall G : Group A, forall u : (A -> Prop) -> Prop, ((~ (u = (@EMPTY (A -> Prop)))) /\ ((forall h : A -> Prop, (@IN (A -> Prop) h u) -> @normal_subgroup_of A h G) /\ (forall g : A -> Prop, forall h : A -> Prop, ((@IN (A -> Prop) g u) /\ (@IN (A -> Prop) h u)) -> (@SUBSET A g h) \/ (@SUBSET A h g)))) -> @normal_subgroup_of A (@UNIONS A u) G. +Axiom thm_NORMAL_SUBGROUP_ACTION_KERNEL : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, (@group_action A X G s a) -> @normal_subgroup_of A (@GSPEC A (fun GEN_PVAR_921 : A => exists g : A, @SETSPEC A GEN_PVAR_921 ((@IN A g (@group_carrier A G)) /\ (forall x : X, (@IN X x s) -> (a g x) = x)) g)) G. +Axiom thm_NORMAL_SUBGROUP_LEFT_EQ_RIGHT_COSETS : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) = ((@subgroup_of A n G) /\ ((@GSPEC (A -> Prop) (fun GEN_PVAR_926 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_926 (@IN A x (@group_carrier A G)) (@left_coset A G x n))) = (@GSPEC (A -> Prop) (fun GEN_PVAR_927 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_927 (@IN A x (@group_carrier A G)) (@right_coset A G n x))))). +Axiom thm_NORMAL_SUBGROUP_RIGHT_SUBSET_LEFT_COSETS : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) = ((@subgroup_of A n G) /\ (@SUBSET (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_930 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_930 (@IN A x (@group_carrier A G)) (@right_coset A G n x))) (@GSPEC (A -> Prop) (fun GEN_PVAR_931 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_931 (@IN A x (@group_carrier A G)) (@left_coset A G x n))))). +Axiom thm_NORMAL_SUBGROUP_LEFT_SUBSET_RIGHT_COSETS : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) = ((@subgroup_of A n G) /\ (@SUBSET (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_928 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_928 (@IN A x (@group_carrier A G)) (@left_coset A G x n))) (@GSPEC (A -> Prop) (fun GEN_PVAR_929 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_929 (@IN A x (@group_carrier A G)) (@right_coset A G n x))))). +Axiom thm_NORMAL_SUBGROUP_MUL_SYM : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@normal_subgroup_of A h G) = ((@subgroup_of A h G) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> (@IN A (@group_mul A G x y) h) = (@IN A (@group_mul A G y x) h))). +Axiom thm_TRIVIAL_NORMAL_SUBGROUP_OF : forall {A : Type'}, forall G : Group A, @normal_subgroup_of A (@INSERT A (@group_id A G) (@EMPTY A)) G. +Axiom thm_CARRIER_NORMAL_SUBGROUP_OF : forall {A : Type'}, forall G : Group A, @normal_subgroup_of A (@group_carrier A G) G. +Axiom thm_GROUP_SETINV_RIGHT_COSET : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall a : A, ((@normal_subgroup_of A n G) /\ (@IN A a (@group_carrier A G))) -> (@group_setinv A G (@right_coset A G n a)) = (@right_coset A G n (@group_inv A G a)). +Axiom thm_GROUP_SETINV_LEFT_COSET : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall a : A, ((@normal_subgroup_of A n G) /\ (@IN A a (@group_carrier A G))) -> (@group_setinv A G (@left_coset A G a n)) = (@left_coset A G (@group_inv A G a) n). +Axiom thm_GROUP_SETMUL_RIGHT_COSET : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall a : A, forall b : A, ((@normal_subgroup_of A n G) /\ ((@IN A a (@group_carrier A G)) /\ (@IN A b (@group_carrier A G)))) -> (@group_setmul A G (@right_coset A G n a) (@right_coset A G n b)) = (@right_coset A G n (@group_mul A G a b)). +Axiom thm_GROUP_SETMUL_LEFT_COSET : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall a : A, forall b : A, ((@normal_subgroup_of A n G) /\ ((@IN A a (@group_carrier A G)) /\ (@IN A b (@group_carrier A G)))) -> (@group_setmul A G (@left_coset A G a n) (@left_coset A G b n)) = (@left_coset A G (@group_mul A G a b) n). +Axiom thm_CROSS_NORMAL_SUBGROUP_OF_PROD_GROUP : forall {A B : Type'}, forall G1 : Group A, forall G2 : Group B, forall h1' : A -> Prop, forall h2' : B -> Prop, (@normal_subgroup_of (prod A B) (@CROSS A B h1' h2') (@prod_group A B G1 G2)) = ((@normal_subgroup_of A h1' G1) /\ (@normal_subgroup_of B h2' G2)). +Axiom thm_NORMAL_SUBGROUP_OF_SUBGROUP_GENERATED_GEN : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall h : A -> Prop, ((@normal_subgroup_of A h G) /\ (@SUBSET A h (@group_carrier A (@subgroup_generated A G s)))) -> @normal_subgroup_of A h (@subgroup_generated A G s). +Axiom thm_NORMAL_SUBGROUP_OF_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall h : A -> Prop, ((@normal_subgroup_of A h G) /\ (@SUBSET A h s)) -> @normal_subgroup_of A h (@subgroup_generated A G s). +Axiom thm_GROUP_SETMUL_NORMAL_SUBGROUP_LEFT : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall h : A -> Prop, ((@normal_subgroup_of A n G) /\ (@subgroup_of A h G)) -> @subgroup_of A (@group_setmul A G n h) G. +Axiom thm_GROUP_SETMUL_NORMAL_SUBGROUP_RIGHT : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall n : A -> Prop, ((@subgroup_of A h G) /\ (@normal_subgroup_of A n G)) -> @subgroup_of A (@group_setmul A G h n) G. +Axiom thm_GROUP_SETMUL_NORMAL_SUBGROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall k : A -> Prop, ((@normal_subgroup_of A h G) /\ (@normal_subgroup_of A k G)) -> @normal_subgroup_of A (@group_setmul A G h k) G. +Axiom thm_CARRIER_SUBGROUP_GENERATED_UNION_LEFT : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@normal_subgroup_of A g G) /\ (@subgroup_of A h G)) -> (@group_carrier A (@subgroup_generated A G (@UNION A g h))) = (@group_setmul A G g h). +Axiom thm_CARRIER_SUBGROUP_GENERATED_UNION_RIGHT : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@normal_subgroup_of A h G)) -> (@group_carrier A (@subgroup_generated A G (@UNION A g h))) = (@group_setmul A G g h). +Axiom thm_group_conjugate : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@group_conjugate A G s t) = ((@SUBSET A s (@group_carrier A G)) /\ ((@SUBSET A t (@group_carrier A G)) /\ (exists a : A, (@IN A a (@group_carrier A G)) /\ ((@IMAGE A A (@group_conjugation A G a) s) = t)))). +Axiom thm_GROUP_CONJUGATE_REFL : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@group_conjugate A G s s) = (@SUBSET A s (@group_carrier A G)). +Axiom thm_GROUP_CONJUGATE_SYM : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@group_conjugate A G s t) = (@group_conjugate A G t s). +Axiom thm_GROUP_CONJUGATE_TRANS : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@group_conjugate A G s t) /\ (@group_conjugate A G t u)) -> @group_conjugate A G s u. +Axiom thm_GROUP_CONJUGATE_SUBGROUPS_GENERATED : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@group_conjugate A G s t) -> @group_conjugate A G (@group_carrier A (@subgroup_generated A G s)) (@group_carrier A (@subgroup_generated A G t)). +Axiom thm_GROUP_CONJUGATE_IMP_ISOMORPHIC : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@group_conjugate A G s t) -> @isomorphic_group A A (@subgroup_generated A G s) (@subgroup_generated A G t). +Axiom thm_GROUP_CONJUGATE_IMP_CARD_EQ : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@group_conjugate A G s t) -> @eq_c A A s t. +Axiom thm_GROUP_ORBIT_CONJUGATE_STABILIZERS : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall y : X, ((@group_action A X G s a) /\ (@group_orbit A X G s a x y)) -> @group_conjugate A G (@group_stabilizer A X G a x) (@group_stabilizer A X G a y). +Axiom thm_CARD_EQ_GROUP_ORBIT_STABILIZERS : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall x : X, forall y : X, ((@group_action A X G s a) /\ (@group_orbit A X G s a x y)) -> @eq_c A A (@group_stabilizer A X G a x) (@group_stabilizer A X G a y). +Axiom thm_group_centralizer : forall {A : Type'}, forall s : A -> Prop, forall G : Group A, (@group_centralizer A G s) = (@GSPEC A (fun GEN_PVAR_944 : A => exists x : A, @SETSPEC A GEN_PVAR_944 ((@IN A x (@group_carrier A G)) /\ (forall y : A, ((@IN A y (@group_carrier A G)) /\ (@IN A y s)) -> (@group_mul A G x y) = (@group_mul A G y x))) x)). +Axiom thm_group_normalizer : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@group_normalizer A G s) = (@GSPEC A (fun GEN_PVAR_945 : A => exists x : A, @SETSPEC A GEN_PVAR_945 ((@IN A x (@group_carrier A G)) /\ ((@group_setmul A G (@INSERT A x (@EMPTY A)) (@INTER A (@group_carrier A G) s)) = (@group_setmul A G (@INTER A (@group_carrier A G) s) (@INSERT A x (@EMPTY A))))) x)). +Axiom thm_GROUP_CENTRALIZER : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@SUBSET A s (@group_carrier A G)) -> (@group_centralizer A G s) = (@GSPEC A (fun GEN_PVAR_946 : A => exists x : A, @SETSPEC A GEN_PVAR_946 ((@IN A x (@group_carrier A G)) /\ (forall y : A, (@IN A y s) -> (@group_mul A G x y) = (@group_mul A G y x))) x)). +Axiom thm_GROUP_NORMALIZER : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@SUBSET A s (@group_carrier A G)) -> (@group_normalizer A G s) = (@GSPEC A (fun GEN_PVAR_947 : A => exists x : A, @SETSPEC A GEN_PVAR_947 ((@IN A x (@group_carrier A G)) /\ ((@group_setmul A G (@INSERT A x (@EMPTY A)) s) = (@group_setmul A G s (@INSERT A x (@EMPTY A))))) x)). +Axiom thm_GROUP_NORMALIZER_CONJUGATION_EQ : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@group_normalizer A G s) = (@GSPEC A (fun GEN_PVAR_948 : A => exists x : A, @SETSPEC A GEN_PVAR_948 ((@IN A x (@group_carrier A G)) /\ ((@IMAGE A A (@group_conjugation A G x) (@INTER A (@group_carrier A G) s)) = (@INTER A (@group_carrier A G) s))) x)). +Axiom thm_GROUP_NORMALIZER_CONJUGATION : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@SUBSET A s (@group_carrier A G)) -> (@group_normalizer A G s) = (@GSPEC A (fun GEN_PVAR_949 : A => exists x : A, @SETSPEC A GEN_PVAR_949 ((@IN A x (@group_carrier A G)) /\ ((@IMAGE A A (@group_conjugation A G x) s) = s)) x)). +Axiom thm_GROUP_NORMALIZER_FINITE : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@SUBSET A s (@group_carrier A G)) /\ (@FINITE A s)) -> (@group_normalizer A G s) = (@GSPEC A (fun GEN_PVAR_950 : A => exists x : A, @SETSPEC A GEN_PVAR_950 ((@IN A x (@group_carrier A G)) /\ (@SUBSET A (@IMAGE A A (@group_conjugation A G x) s) s)) x)). +Axiom thm_GROUP_CENTRALIZER_RESTRICT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@group_centralizer A G s) = (@group_centralizer A G (@INTER A (@group_carrier A G) s)). +Axiom thm_GROUP_NORMALIZER_RESTRICT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@group_normalizer A G s) = (@group_normalizer A G (@INTER A (@group_carrier A G) s)). +Axiom thm_GROUP_CENTRALIZER_SUBSET_CARRIER : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, @SUBSET A (@group_centralizer A G s) (@group_carrier A G). +Axiom thm_GROUP_NORMALIZER_SUBSET_CARRIER : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, @SUBSET A (@group_normalizer A G s) (@group_carrier A G). +Axiom thm_FINITE_GROUP_CENTRALIZER : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@FINITE A (@group_carrier A G)) -> @FINITE A (@group_centralizer A G s). +Axiom thm_FINITE_GROUP_NORMALIZER : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@FINITE A (@group_carrier A G)) -> @FINITE A (@group_normalizer A G s). +Axiom thm_GROUP_CENTRALIZER_SUBSET_NORMALIZER : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, @SUBSET A (@group_centralizer A G s) (@group_normalizer A G s). +Axiom thm_SUBGROUP_GROUP_CENTRALIZER : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, @subgroup_of A (@group_centralizer A G s) G. +Axiom thm_SUBGROUP_GROUP_NORMALIZER : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, @subgroup_of A (@group_normalizer A G s) G. +Axiom thm_GROUP_CENTRALIZER_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall s : A -> Prop, ((@SUBSET A s h) /\ (@subgroup_of A h G)) -> (@group_centralizer A (@subgroup_generated A G h) s) = (@INTER A h (@group_centralizer A G s)). +Axiom thm_GROUP_NORMALIZER_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall s : A -> Prop, ((@SUBSET A s h) /\ (@subgroup_of A h G)) -> (@group_normalizer A (@subgroup_generated A G h) s) = (@INTER A h (@group_normalizer A G s)). +Axiom thm_IN_GROUP_CENTRALIZER_ID : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, @IN A (@group_id A G) (@group_centralizer A G s). +Axiom thm_IN_GROUP_NORMALIZER_ID : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, @IN A (@group_id A G) (@group_normalizer A G s). +Axiom thm_GROUP_CENTRALIZER_NONEMPTY : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ~ ((@group_centralizer A G s) = (@EMPTY A)). +Axiom thm_GROUP_NORMALIZER_NONEMPTY : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ~ ((@group_normalizer A G s) = (@EMPTY A)). +Axiom thm_GROUP_CENTRALIZER_SUBSET : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@SUBSET A s (@group_centralizer A G s)) = ((@SUBSET A s (@group_carrier A G)) /\ (forall a : A, forall b : A, ((@IN A a s) /\ (@IN A b s)) -> (@group_mul A G a b) = (@group_mul A G b a))). +Axiom thm_GROUP_CENTRALIZER_SUBSET_EQ : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> (@SUBSET A h (@group_centralizer A G h)) = (@abelian_group A (@subgroup_generated A G h)). +Axiom thm_GROUP_CENTRE_EQ_CARRIER : forall {A : Type'}, forall G : Group A, ((@group_centralizer A G (@group_carrier A G)) = (@group_carrier A G)) = (@abelian_group A G). +Axiom thm_GROUP_CENTRALIZER_CENTRALIZER_SUBSET : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@SUBSET A s (@group_centralizer A G (@group_centralizer A G s))) = (@SUBSET A s (@group_carrier A G)). +Axiom thm_GROUP_NORMALIZER_MAXIMAL_GEN : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall n : A -> Prop, (@normal_subgroup_of A h (@subgroup_generated A G n)) = ((@subgroup_of A h (@subgroup_generated A G n)) /\ (@SUBSET A (@INTER A (@group_carrier A G) n) (@group_normalizer A G h))). +Axiom thm_GROUP_NORMALIZER_MAXIMAL : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall n : A -> Prop, (@subgroup_of A n G) -> (@normal_subgroup_of A h (@subgroup_generated A G n)) = ((@subgroup_of A h G) /\ ((@SUBSET A h n) /\ (@SUBSET A n (@group_normalizer A G h)))). +Axiom thm_NORMAL_SUBGROUP_NORMALIZER_CONTAINS_CARRIER : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) = ((@subgroup_of A n G) /\ (@SUBSET A (@group_carrier A G) (@group_normalizer A G n))). +Axiom thm_NORMAL_SUBGROUP_NORMALIZER_EQ_CARRIER : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) = ((@subgroup_of A n G) /\ ((@group_normalizer A G n) = (@group_carrier A G))). +Axiom thm_GROUP_NORMALIZER_SUBSET : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@subgroup_of A h G) -> @SUBSET A h (@group_normalizer A G h). +Axiom thm_NORMAL_SUBGROUP_OF_NORMALIZER : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, (@normal_subgroup_of A h (@subgroup_generated A G (@group_normalizer A G h))) = (@subgroup_of A h G). +Axiom thm_GROUP_CENTRALIZER_POINTWISE : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@group_centralizer A G s) = (@COND (A -> Prop) (s = (@EMPTY A)) (@group_carrier A G) (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_952 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_952 (@IN A x s) (@group_centralizer A G (@INSERT A x (@EMPTY A))))))). +Axiom thm_GROUP_CENTRALIZER_ALT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@group_centralizer A G s) = (@GSPEC A (fun GEN_PVAR_953 : A => exists x : A, @SETSPEC A GEN_PVAR_953 ((@IN A x (@group_carrier A G)) /\ (forall y : A, ((@IN A y (@group_carrier A G)) /\ (@IN A y s)) -> (@group_conjugation A G x y) = y)) x)). +Axiom thm_NORMAL_SUBGROUP_CENTRALIZER_NORMALIZER : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, @normal_subgroup_of A (@group_centralizer A G h) (@subgroup_generated A G (@group_normalizer A G h)). +Axiom thm_NORMAL_SUBGROUP_CENTRALIZER : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> @normal_subgroup_of A (@group_centralizer A G n) G. +Axiom thm_GROUP_NORMALIZER_SING : forall {A : Type'}, forall G : Group A, forall a : A, (@group_normalizer A G (@INSERT A a (@EMPTY A))) = (@group_centralizer A G (@INSERT A a (@EMPTY A))). +Axiom thm_GROUP_CENTRALIZER_GALOIS_EQ : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@group_carrier A G)) /\ (@SUBSET A t (@group_carrier A G))) -> (@SUBSET A s (@group_centralizer A G t)) = (@SUBSET A t (@group_centralizer A G s)). +Axiom thm_GROUP_CENTRALIZER_GALOIS : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@group_carrier A G)) /\ (@SUBSET A t (@group_centralizer A G s))) -> @SUBSET A s (@group_centralizer A G t). +Axiom thm_GROUP_CENTRALIZER_MONO : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> @SUBSET A (@group_centralizer A G t) (@group_centralizer A G s). +Axiom thm_GROUP_ACTION_CONJUGATION_NORMAL_SUBGROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> @group_action A A G n (@group_conjugation A G). +Axiom thm_GROUP_STABILIZER_CONJUGATION : forall {A : Type'}, forall G : Group A, forall a : A, (@IN A a (@group_carrier A G)) -> (@group_stabilizer A A G (@group_conjugation A G) a) = (@group_centralizer A G (@INSERT A a (@EMPTY A))). +Axiom thm_GROUP_ORBIT_CONJUGATION_GEN : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall x : A, (@SUBSET A s (@group_carrier A G)) -> (@group_orbit A A G s (@group_conjugation A G) x) = (@COND (A -> Prop) (@IN A x s) (@GSPEC A (fun GEN_PVAR_954 : A => exists y : A, @SETSPEC A GEN_PVAR_954 ((@IN A y s) /\ (@group_conjugate A G (@INSERT A x (@EMPTY A)) (@INSERT A y (@EMPTY A)))) y)) (@EMPTY A)). +Axiom thm_GROUP_ORBIT_CONJUGATION : forall {A : Type'}, forall G : Group A, forall x : A, (@group_orbit A A G (@group_carrier A G) (@group_conjugation A G) x) = (@COND (A -> Prop) (@IN A x (@group_carrier A G)) (@GSPEC A (fun GEN_PVAR_955 : A => exists y : A, @SETSPEC A GEN_PVAR_955 ((@IN A y (@group_carrier A G)) /\ (@group_conjugate A G (@INSERT A x (@EMPTY A)) (@INSERT A y (@EMPTY A)))) y)) (@EMPTY A)). +Axiom thm_GROUP_ACTION_IMAGE_CONJUGATION : forall {A : Type'}, forall G : Group A, forall u : (A -> Prop) -> Prop, ((forall t : A -> Prop, (@IN (A -> Prop) t u) -> @SUBSET A t (@group_carrier A G)) /\ (forall g : A, forall t : A -> Prop, ((@IN A g (@group_carrier A G)) /\ (@IN (A -> Prop) t u)) -> @IN (A -> Prop) (@IMAGE A A (@group_conjugation A G g) t) u)) -> @group_action A (A -> Prop) G u (@o A (A -> A) ((A -> Prop) -> A -> Prop) (@IMAGE A A) (@group_conjugation A G)). +Axiom thm_GROUP_STABILIZER_IMAGE_CONJUGATION : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@SUBSET A s (@group_carrier A G)) -> (@group_stabilizer A (A -> Prop) G (@o A (A -> A) ((A -> Prop) -> A -> Prop) (@IMAGE A A) (@group_conjugation A G)) s) = (@group_normalizer A G s). +Axiom thm_GROUP_ACTION_IMAGE_CONJUGATION_CARRIER : forall {A : Type'}, forall G : Group A, @group_action A (A -> Prop) G (@GSPEC (A -> Prop) (fun GEN_PVAR_956 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_956 (@SUBSET A s (@group_carrier A G)) s)) (@o A (A -> A) ((A -> Prop) -> A -> Prop) (@IMAGE A A) (@group_conjugation A G)). +Axiom thm_GROUP_ACTION_IMAGE_CONJUGATION_SUBGROUPS : forall {A : Type'}, forall G : Group A, @group_action A (A -> Prop) G (@GSPEC (A -> Prop) (fun GEN_PVAR_957 : A -> Prop => exists n : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_957 (@subgroup_of A n G) n)) (@o A (A -> A) ((A -> Prop) -> A -> Prop) (@IMAGE A A) (@group_conjugation A G)). +Axiom thm_GROUP_ORBIT_IMAGE_CONJUGATION : forall {_297601 : Type'}, forall G : Group _297601, (@group_orbit _297601 (_297601 -> Prop) G (@GSPEC (_297601 -> Prop) (fun GEN_PVAR_958 : _297601 -> Prop => exists s : _297601 -> Prop, @SETSPEC (_297601 -> Prop) GEN_PVAR_958 (@SUBSET _297601 s (@group_carrier _297601 G)) s)) (@o _297601 (_297601 -> _297601) ((_297601 -> Prop) -> _297601 -> Prop) (@IMAGE _297601 _297601) (@group_conjugation _297601 G))) = (@group_conjugate _297601 G). +Axiom thm_GROUP_ORBIT_IMAGE_CONJUGATION_GEN : forall {A : Type'}, forall G : Group A, forall u : (A -> Prop) -> Prop, forall s : A -> Prop, ((forall t : A -> Prop, (@IN (A -> Prop) t u) -> @SUBSET A t (@group_carrier A G)) /\ (@IN (A -> Prop) s u)) -> (@group_orbit A (A -> Prop) G u (@o A (A -> A) ((A -> Prop) -> A -> Prop) (@IMAGE A A) (@group_conjugation A G)) s) = (fun t : A -> Prop => (@IN (A -> Prop) t u) /\ (@group_conjugate A G s t)). +Axiom thm_CARD_CONJUGATE_SUBSETS_MUL_GEN : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, (@SUBSET A s (@group_carrier A G)) -> @eq_c (prod (A -> Prop) A) A (@mul_c A (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_960 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_960 (@group_conjugate A G s t) t)) (@group_normalizer A G s)) (@group_carrier A G). +Axiom thm_CARD_CONJUGATE_SUBSETS_MUL : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ (@SUBSET A s (@group_carrier A G))) -> (N.mul (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_961 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_961 (@group_conjugate A G s t) t))) (@CARD A (@group_normalizer A G s))) = (@CARD A (@group_carrier A G)). +Axiom thm_CARD_CONJUGATE_SUBSETS : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ (@SUBSET A s (@group_carrier A G))) -> (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_962 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_962 (@group_conjugate A G s t) t))) = (N.div (@CARD A (@group_carrier A G)) (@CARD A (@group_normalizer A G s))). +Axiom thm_quotient_group : forall {A : Type'}, forall n : A -> Prop, forall G : Group A, (@quotient_group A G n) = (@group (A -> Prop) (@pair ((A -> Prop) -> Prop) (prod (A -> Prop) (prod ((A -> Prop) -> A -> Prop) ((A -> Prop) -> (A -> Prop) -> A -> Prop))) (@GSPEC (A -> Prop) (fun GEN_PVAR_963 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_963 (@IN A x (@group_carrier A G)) (@right_coset A G n x))) (@pair (A -> Prop) (prod ((A -> Prop) -> A -> Prop) ((A -> Prop) -> (A -> Prop) -> A -> Prop)) n (@pair ((A -> Prop) -> A -> Prop) ((A -> Prop) -> (A -> Prop) -> A -> Prop) (@group_setinv A G) (@group_setmul A G))))). +Axiom thm_QUOTIENT_GROUP : forall {A : Type'}, (forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> (@group_carrier (A -> Prop) (@quotient_group A G n)) = (@GSPEC (A -> Prop) (fun GEN_PVAR_964 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_964 (@IN A x (@group_carrier A G)) (@right_coset A G n x)))) /\ ((forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> (@group_id (A -> Prop) (@quotient_group A G n)) = n) /\ ((forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> (@group_inv (A -> Prop) (@quotient_group A G n)) = (@group_setinv A G)) /\ (forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> (@group_mul (A -> Prop) (@quotient_group A G n)) = (@group_setmul A G)))). +Axiom thm_ABELIAN_QUOTIENT_GROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, ((@abelian_group A G) /\ (@subgroup_of A n G)) -> @abelian_group (A -> Prop) (@quotient_group A G n). +Axiom thm_FINITE_QUOTIENT_GROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ (@normal_subgroup_of A n G)) -> @FINITE (A -> Prop) (@group_carrier (A -> Prop) (@quotient_group A G n)). +Axiom thm_TRIVIAL_QUOTIENT_GROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, ((@trivial_group A G) /\ (@normal_subgroup_of A n G)) -> @trivial_group (A -> Prop) (@quotient_group A G n). +Axiom thm_QUOTIENT_GROUP_ID : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> (@group_id (A -> Prop) (@quotient_group A G n)) = n. +Axiom thm_QUOTIENT_GROUP_INV : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall a : A, ((@normal_subgroup_of A n G) /\ (@IN A a (@group_carrier A G))) -> (@group_inv (A -> Prop) (@quotient_group A G n) (@right_coset A G n a)) = (@right_coset A G n (@group_inv A G a)). +Axiom thm_QUOTIENT_GROUP_MUL : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall a : A, forall b : A, ((@normal_subgroup_of A n G) /\ ((@IN A a (@group_carrier A G)) /\ (@IN A b (@group_carrier A G)))) -> (@group_mul (A -> Prop) (@quotient_group A G n) (@right_coset A G n a) (@right_coset A G n b)) = (@right_coset A G n (@group_mul A G a b)). +Axiom thm_QUOTIENT_GROUP_DIV : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall a : A, forall b : A, ((@normal_subgroup_of A n G) /\ ((@IN A a (@group_carrier A G)) /\ (@IN A b (@group_carrier A G)))) -> (@group_div (A -> Prop) (@quotient_group A G n) (@right_coset A G n a) (@right_coset A G n b)) = (@right_coset A G n (@group_div A G a b)). +Axiom thm_QUOTIENT_GROUP_POW : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall a : A, forall k : N, ((@normal_subgroup_of A n G) /\ (@IN A a (@group_carrier A G))) -> (@group_pow (A -> Prop) (@quotient_group A G n) (@right_coset A G n a) k) = (@right_coset A G n (@group_pow A G a k)). +Axiom thm_QUOTIENT_GROUP_ZPOW : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall a : A, forall k : Z, ((@normal_subgroup_of A n G) /\ (@IN A a (@group_carrier A G))) -> (@group_zpow (A -> Prop) (@quotient_group A G n) (@right_coset A G n a) k) = (@right_coset A G n (@group_zpow A G a k)). +Axiom thm_GROUP_HOMOMORPHISM_RIGHT_COSET : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> @group_homomorphism A (A -> Prop) (@pair (Group A) (Group (A -> Prop)) G (@quotient_group A G n)) (@right_coset A G n). +Axiom thm_GROUP_EPIMORPHISM_RIGHT_COSET : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> @group_epimorphism A (A -> Prop) (@pair (Group A) (Group (A -> Prop)) G (@quotient_group A G n)) (@right_coset A G n). +Axiom thm_CARD_LE_QUOTIENT_GROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> @le_c (A -> Prop) A (@group_carrier (A -> Prop) (@quotient_group A G n)) (@group_carrier A G). +Axiom thm_CARD_QUOTIENT_GROUP_DIVIDES : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ (@normal_subgroup_of A n G)) -> num_divides (@CARD (A -> Prop) (@group_carrier (A -> Prop) (@quotient_group A G n))) (@CARD A (@group_carrier A G)). +Axiom thm_TRIVIAL_QUOTIENT_GROUP_EQ : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> (@trivial_group (A -> Prop) (@quotient_group A G n)) = (n = (@group_carrier A G)). +Axiom thm_TRIVIAL_QUOTIENT_GROUP_SELF : forall {A : Type'}, forall G : Group A, @trivial_group (A -> Prop) (@quotient_group A G (@group_carrier A G)). +Axiom thm_QUOTIENT_GROUP_TRIVIAL : forall {A : Type'}, forall G : Group A, @isomorphic_group (A -> Prop) A (@quotient_group A G (@INSERT A (@group_id A G) (@EMPTY A))) G. +Axiom thm_GROUP_ISOMORPHISM_PROD_QUOTIENT_GROUP : forall {A B : Type'}, forall G1 : Group A, forall G2 : Group B, forall n1 : A -> Prop, forall n2 : B -> Prop, ((@normal_subgroup_of A n1 G1) /\ (@normal_subgroup_of B n2 G2)) -> @group_isomorphism (prod (A -> Prop) (B -> Prop)) ((prod A B) -> Prop) (@pair (Group (prod (A -> Prop) (B -> Prop))) (Group ((prod A B) -> Prop)) (@prod_group (A -> Prop) (B -> Prop) (@quotient_group A G1 n1) (@quotient_group B G2 n2)) (@quotient_group (prod A B) (@prod_group A B G1 G2) (@CROSS A B n1 n2))) (@GABS ((prod (A -> Prop) (B -> Prop)) -> (prod A B) -> Prop) (fun f : (prod (A -> Prop) (B -> Prop)) -> (prod A B) -> Prop => forall s : A -> Prop, forall t : B -> Prop, @GEQ ((prod A B) -> Prop) (f (@pair (A -> Prop) (B -> Prop) s t)) (@CROSS A B s t))). +Axiom thm_ISOMORPHIC_QUOTIENT_PROD_GROUP : forall {A B : Type'}, forall G1 : Group A, forall G2 : Group B, forall n1 : A -> Prop, forall n2 : B -> Prop, ((@normal_subgroup_of A n1 G1) /\ (@normal_subgroup_of B n2 G2)) -> @isomorphic_group ((prod A B) -> Prop) (prod (A -> Prop) (B -> Prop)) (@quotient_group (prod A B) (@prod_group A B G1 G2) (@CROSS A B n1 n2)) (@prod_group (A -> Prop) (B -> Prop) (@quotient_group A G1 n1) (@quotient_group B G2 n2)). +Axiom thm_CARTESIAN_PRODUCT_NORMAL_SUBGROUP_OF_PRODUCT_GROUP : forall {A K : Type'}, forall G : K -> Group A, forall h : K -> A -> Prop, forall k : K -> Prop, (@normal_subgroup_of (K -> A) (@cartesian_product A K k h) (@product_group A K k G)) = (forall i : K, (@IN K i k) -> @normal_subgroup_of A (h i) (G i)). +Axiom thm_GROUP_ISOMORPHISM_PRODUCT_QUOTIENT_GROUP : forall {A K : Type'}, forall G : K -> Group A, forall n : K -> A -> Prop, forall k : K -> Prop, (forall i : K, (@IN K i k) -> @normal_subgroup_of A (n i) (G i)) -> @group_isomorphism (K -> A -> Prop) ((K -> A) -> Prop) (@pair (Group (K -> A -> Prop)) (Group ((K -> A) -> Prop)) (@product_group (A -> Prop) K k (fun i : K => @quotient_group A (G i) (n i))) (@quotient_group (K -> A) (@product_group A K k G) (@cartesian_product A K k n))) (@cartesian_product A K k). +Axiom thm_ISOMORPHIC_QUOTIENT_PRODUCT_GROUP : forall {A K : Type'}, forall G : K -> Group A, forall n : K -> A -> Prop, forall k : K -> Prop, (forall i : K, (@IN K i k) -> @normal_subgroup_of A (n i) (G i)) -> @isomorphic_group ((K -> A) -> Prop) (K -> A -> Prop) (@quotient_group (K -> A) (@product_group A K k G) (@cartesian_product A K k n)) (@product_group (A -> Prop) K k (fun i : K => @quotient_group A (G i) (n i))). +Axiom thm_SUBGROUP_OF_QUOTIENT_GROUP_ALT : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall h : (A -> Prop) -> Prop, (@normal_subgroup_of A n G) -> (@subgroup_of (A -> Prop) h (@quotient_group A G n)) = (exists k : A -> Prop, (@subgroup_of A k G) /\ ((@SUBSET A n k) /\ ((@GSPEC (A -> Prop) (fun GEN_PVAR_969 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_969 (@IN A x k) (@right_coset A G n x))) = h))). +Axiom thm_SUBGROUP_OF_QUOTIENT_GROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall h : (A -> Prop) -> Prop, (@normal_subgroup_of A n G) -> (@subgroup_of (A -> Prop) h (@quotient_group A G n)) = (exists k : A -> Prop, (@subgroup_of A k G) /\ ((@GSPEC (A -> Prop) (fun GEN_PVAR_968 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_968 (@IN A x k) (@right_coset A G n x))) = h)). +Axiom thm_SUBGROUP_OF_QUOTIENT_GROUP_GENERATED_BY : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall h : (A -> Prop) -> Prop, ((@normal_subgroup_of A n G) /\ (@subgroup_of (A -> Prop) h (@quotient_group A G n))) -> exists k : A -> Prop, (@subgroup_of A k G) /\ ((@SUBSET A n k) /\ ((@quotient_group A (@subgroup_generated A G k) n) = (@subgroup_generated (A -> Prop) (@quotient_group A G n) h))). +Axiom thm_QUOTIENT_GROUP_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall n : A -> Prop, ((@normal_subgroup_of A n G) /\ ((@subgroup_of A h G) /\ (@SUBSET A n h))) -> (@quotient_group A (@subgroup_generated A G h) n) = (@subgroup_generated (A -> Prop) (@quotient_group A G n) (@GSPEC (A -> Prop) (fun GEN_PVAR_970 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_970 (@IN A x h) (@right_coset A G n x)))). +Axiom thm_group_kernel : forall {A B : Type'}, forall G : Group A, forall f : A -> B, forall G' : Group B, (@group_kernel A B (@pair (Group A) (Group B) G G') f) = (@GSPEC A (fun GEN_PVAR_971 : A => exists x : A, @SETSPEC A GEN_PVAR_971 ((@IN A x (@group_carrier A G)) /\ ((f x) = (@group_id B G'))) x)). +Axiom thm_group_image : forall {A B : Type'}, forall G' : Group B, forall f : A -> B, forall G : Group A, (@group_image A B (@pair (Group A) (Group B) G G') f) = (@IMAGE A B f (@group_carrier A G)). +Axiom thm_GROUP_KERNEL_ID : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) -> @IN A (@group_id A G) (@group_kernel A B (@pair (Group A) (Group B) G G') f). +Axiom thm_GROUP_KERNEL_NONEMPTY : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G H) f) -> ~ ((@group_kernel A B (@pair (Group A) (Group B) G H) f) = (@EMPTY A)). +Axiom thm_GROUP_KERNEL_SUBSET_CARRIER : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, @SUBSET A (@group_kernel A B (@pair (Group A) (Group B) G H) f) (@group_carrier A G). +Axiom thm_GROUP_MONOMORPHISM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_monomorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ ((@group_kernel A B (@pair (Group A) (Group B) G G') f) = (@INSERT A (@group_id A G) (@EMPTY A)))). +Axiom thm_GROUP_MONOMORPHISM_ALT : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_monomorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ (forall x : A, ((@IN A x (@group_carrier A G)) /\ ((f x) = (@group_id B G'))) -> x = (@group_id A G))). +Axiom thm_GROUP_MONOMORPHISM_ALT_EQ : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_monomorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> ((f x) = (@group_id B G')) = (x = (@group_id A G)))). +Axiom thm_GROUP_EPIMORPHISM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_epimorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ ((@group_image A B (@pair (Group A) (Group B) G G') f) = (@group_carrier B G'))). +Axiom thm_GROUP_EPIMORPHISM_ALT : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_epimorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ (@SUBSET B (@group_carrier B G') (@group_image A B (@pair (Group A) (Group B) G G') f))). +Axiom thm_GROUP_ISOMORPHISM_EPIMORPHISM_ALT : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_isomorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_epimorphism A B (@pair (Group A) (Group B) G G') f) /\ (forall x : A, ((@IN A x (@group_carrier A G)) /\ ((f x) = (@group_id B G'))) -> x = (@group_id A G))). +Axiom thm_GROUP_ISOMORPHISM_GROUP_KERNEL_GROUP_IMAGE : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_isomorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ (((@group_kernel A B (@pair (Group A) (Group B) G G') f) = (@INSERT A (@group_id A G) (@EMPTY A))) /\ ((@group_image A B (@pair (Group A) (Group B) G G') f) = (@group_carrier B G')))). +Axiom thm_GROUP_ISOMORPHISM_ALT : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_isomorphism A B (@pair (Group A) (Group B) G G') f) = (((@IMAGE A B f (@group_carrier A G)) = (@group_carrier B G')) /\ ((forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> (f (@group_mul A G x y)) = (@group_mul B G' (f x) (f y))) /\ (forall x : A, ((@IN A x (@group_carrier A G)) /\ ((f x) = (@group_id B G'))) -> x = (@group_id A G)))). +Axiom thm_SUBGROUP_GROUP_KERNEL : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) -> @subgroup_of A (@group_kernel A B (@pair (Group A) (Group B) G G') f) G. +Axiom thm_SUBGROUP_GROUP_IMAGE : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) -> @subgroup_of B (@group_image A B (@pair (Group A) (Group B) G G') f) G'. +Axiom thm_GROUP_KERNEL_TO_SUBGROUP_GENERATED : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall s : B -> Prop, forall f : A -> B, (@group_kernel A B (@pair (Group A) (Group B) G (@subgroup_generated B H s)) f) = (@group_kernel A B (@pair (Group A) (Group B) G H) f). +Axiom thm_GROUP_IMAGE_TO_SUBGROUP_GENERATED : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall s : B -> Prop, forall f : A -> B, (@group_image A B (@pair (Group A) (Group B) G (@subgroup_generated B H s)) f) = (@group_image A B (@pair (Group A) (Group B) G H) f). +Axiom thm_GROUP_KERNEL_FROM_SUBGROUP_GENERATED : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall s : A -> Prop, forall f : A -> B, (@subgroup_of A s G) -> (@group_kernel A B (@pair (Group A) (Group B) (@subgroup_generated A G s) H) f) = (@INTER A (@group_kernel A B (@pair (Group A) (Group B) G H) f) s). +Axiom thm_GROUP_IMAGE_FROM_SUBGROUP_GENERATED : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall s : A -> Prop, forall f : A -> B, (@subgroup_of A s G) -> (@group_image A B (@pair (Group A) (Group B) (@subgroup_generated A G s) H) f) = (@INTER B (@group_image A B (@pair (Group A) (Group B) G H) f) (@IMAGE A B f s)). +Axiom thm_GROUP_ISOMORPHISM_ONTO_IMAGE : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, (@group_isomorphism A B (@pair (Group A) (Group B) G (@subgroup_generated B H (@group_image A B (@pair (Group A) (Group B) G H) f))) f) = (@group_monomorphism A B (@pair (Group A) (Group B) G H) f). +Axiom thm_NORMAL_SUBGROUP_GROUP_KERNEL : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) -> @normal_subgroup_of A (@group_kernel A B (@pair (Group A) (Group B) G G') f) G. +Axiom thm_GROUP_KERNEL_RIGHT_COSET : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> (@group_kernel A (A -> Prop) (@pair (Group A) (Group (A -> Prop)) G (@quotient_group A G n)) (@right_coset A G n)) = n. +Axiom thm_CARD_EQ_GROUP_IMAGE_KERNEL : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G H) f) -> @eq_c (prod B A) A (@mul_c A B (@group_image A B (@pair (Group A) (Group B) G H) f) (@group_kernel A B (@pair (Group A) (Group B) G H) f)) (@group_carrier A G). +Axiom thm_CARD_DIVIDES_GROUP_MONOMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@group_monomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@FINITE B (@group_carrier B H))) -> num_divides (@CARD A (@group_carrier A G)) (@CARD B (@group_carrier B H)). +Axiom thm_CARD_DIVIDES_GROUP_EPIMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ (@FINITE A (@group_carrier A G))) -> num_divides (@CARD B (@group_carrier B H)) (@CARD A (@group_carrier A G)). +Axiom thm_QUOTIENT_GROUP_UNIVERSAL_EXPLICIT : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall n : A -> Prop, forall f : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ ((@normal_subgroup_of A n G) /\ (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@right_coset A G n x) = (@right_coset A G n y)))) -> (f x) = (f y)))) -> exists g : (A -> Prop) -> B, (@group_homomorphism (A -> Prop) B (@pair (Group (A -> Prop)) (Group B) (@quotient_group A G n) G') g) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (g (@right_coset A G n x)) = (f x)). +Axiom thm_QUOTIENT_GROUP_UNIVERSAL : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall n : A -> Prop, forall f : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ ((@normal_subgroup_of A n G) /\ (@SUBSET A n (@group_kernel A B (@pair (Group A) (Group B) G G') f)))) -> exists g : (A -> Prop) -> B, (@group_homomorphism (A -> Prop) B (@pair (Group (A -> Prop)) (Group B) (@quotient_group A G n) G') g) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (g (@right_coset A G n x)) = (f x)). +Axiom thm_QUOTIENT_GROUP_UNIVERSAL_EPIMORPHISM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall n : A -> Prop, forall f : A -> B, ((@group_epimorphism A B (@pair (Group A) (Group B) G G') f) /\ ((@normal_subgroup_of A n G) /\ (@SUBSET A n (@group_kernel A B (@pair (Group A) (Group B) G G') f)))) -> exists g : (A -> Prop) -> B, (@group_epimorphism (A -> Prop) B (@pair (Group (A -> Prop)) (Group B) (@quotient_group A G n) G') g) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (g (@right_coset A G n x)) = (f x)). +Axiom thm_GROUP_KERNEL_FROM_TRIVIAL_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@trivial_group A G)) -> (@group_kernel A B (@pair (Group A) (Group B) G H) f) = (@group_carrier A G). +Axiom thm_GROUP_IMAGE_FROM_TRIVIAL_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@trivial_group A G)) -> (@group_image A B (@pair (Group A) (Group B) G H) f) = (@INSERT B (@group_id B H) (@EMPTY B)). +Axiom thm_GROUP_KERNEL_TO_TRIVIAL_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@trivial_group B H)) -> (@group_kernel A B (@pair (Group A) (Group B) G H) f) = (@group_carrier A G). +Axiom thm_GROUP_IMAGE_TO_TRIVIAL_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@trivial_group B H)) -> (@group_image A B (@pair (Group A) (Group B) G H) f) = (@group_carrier B H). +Axiom thm_FIRST_GROUP_ISOMORPHISM_THEOREM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) -> @isomorphic_group (A -> Prop) B (@quotient_group A G (@group_kernel A B (@pair (Group A) (Group B) G G') f)) (@subgroup_generated B G' (@group_image A B (@pair (Group A) (Group B) G G') f)). +Axiom thm_FIRST_GROUP_EPIMORPHISM_THEOREM : forall {A B : Type'}, forall G : Group A, forall G' : Group B, forall f : A -> B, (@group_epimorphism A B (@pair (Group A) (Group B) G G') f) -> @isomorphic_group (A -> Prop) B (@quotient_group A G (@group_kernel A B (@pair (Group A) (Group B) G G') f)) G'. +Axiom thm_GROUP_HOMOMORPHISM_PREIMAGE_IMAGE_RIGHT : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall s : A -> Prop, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@SUBSET A s (@group_carrier A G))) -> (@GSPEC A (fun GEN_PVAR_976 : A => exists x : A, @SETSPEC A GEN_PVAR_976 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) (@IMAGE A B f s))) x)) = (@group_setmul A G s (@group_kernel A B (@pair (Group A) (Group B) G H) f)). +Axiom thm_GROUP_HOMOMORPHISM_PREIMAGE_IMAGE_LEFT : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall s : A -> Prop, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@SUBSET A s (@group_carrier A G))) -> (@GSPEC A (fun GEN_PVAR_977 : A => exists x : A, @SETSPEC A GEN_PVAR_977 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) (@IMAGE A B f s))) x)) = (@group_setmul A G (@group_kernel A B (@pair (Group A) (Group B) G H) f) s). +Axiom thm_GROUP_HOMOMORPHISM_IMAGE_PREIMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall t : B -> Prop, (@group_homomorphism A B (@pair (Group A) (Group B) G H) f) -> (@IMAGE A B f (@GSPEC A (fun GEN_PVAR_978 : A => exists x : A, @SETSPEC A GEN_PVAR_978 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) t)) x))) = (@INTER B t (@group_image A B (@pair (Group A) (Group B) G H) f)). +Axiom thm_GROUP_HOMOMORPHISM_PREIMAGE_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall s : A -> Prop, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@SUBSET A (@group_kernel A B (@pair (Group A) (Group B) G H) f) s) /\ (@subgroup_of A s G))) -> (@GSPEC A (fun GEN_PVAR_979 : A => exists x : A, @SETSPEC A GEN_PVAR_979 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) (@IMAGE A B f s))) x)) = s. +Axiom thm_GROUP_HOMOMORPHISM_IMAGE_PREIMAGE_EQ : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall t : B -> Prop, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@SUBSET B t (@group_image A B (@pair (Group A) (Group B) G H) f))) -> (@IMAGE A B f (@GSPEC A (fun GEN_PVAR_980 : A => exists x : A, @SETSPEC A GEN_PVAR_980 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) t)) x))) = t. +Axiom thm_GROUP_EPIMORPHISM_SUBGROUP_CORRESPONDENCE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall k : B -> Prop, (@group_epimorphism A B (@pair (Group A) (Group B) G H) f) -> (@subgroup_of B k H) = (exists j : A -> Prop, (@subgroup_of A j G) /\ ((@SUBSET A (@group_kernel A B (@pair (Group A) (Group B) G H) f) j) /\ (((@GSPEC A (fun GEN_PVAR_982 : A => exists x : A, @SETSPEC A GEN_PVAR_982 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) k)) x)) = j) /\ ((@IMAGE A B f j) = k)))). +Axiom thm_GROUP_EPIMORPHISM_SUBGROUP_CORRESPONDENCE_ALT : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall j : A -> Prop, (@group_epimorphism A B (@pair (Group A) (Group B) G H) f) -> ((@subgroup_of A j G) /\ (@SUBSET A (@group_kernel A B (@pair (Group A) (Group B) G H) f) j)) = (exists k : B -> Prop, (@subgroup_of B k H) /\ (((@GSPEC A (fun GEN_PVAR_984 : A => exists x : A, @SETSPEC A GEN_PVAR_984 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) k)) x)) = j) /\ ((@IMAGE A B f j) = k))). +Axiom thm_NORMAL_SUBGROUP_OF_HOMOMORPHIC_PREIMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall j : B -> Prop, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@normal_subgroup_of B j H)) -> @normal_subgroup_of A (@GSPEC A (fun GEN_PVAR_985 : A => exists x : A, @SETSPEC A GEN_PVAR_985 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) j)) x)) G. +Axiom thm_NORMAL_SUBGROUP_OF_EPIMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall n : A -> Prop, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ (@normal_subgroup_of A n G)) -> @normal_subgroup_of B (@IMAGE A B f n) H. +Axiom thm_NORMAL_SUBGROUP_OF_EPIMORPHIC_PREIMAGE_EQ : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall j : A -> Prop, forall k : B -> Prop, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@subgroup_of B k H) /\ ((@GSPEC A (fun GEN_PVAR_986 : A => exists x : A, @SETSPEC A GEN_PVAR_986 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) k)) x)) = j))) -> (@normal_subgroup_of A j G) = (@normal_subgroup_of B k H). +Axiom thm_GROUP_EPIMORPHISM_NORMAL_SUBGROUP_CORRESPONDENCE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall k : B -> Prop, (@group_epimorphism A B (@pair (Group A) (Group B) G H) f) -> (@normal_subgroup_of B k H) = (exists j : A -> Prop, (@normal_subgroup_of A j G) /\ ((@SUBSET A (@group_kernel A B (@pair (Group A) (Group B) G H) f) j) /\ (((@GSPEC A (fun GEN_PVAR_987 : A => exists x : A, @SETSPEC A GEN_PVAR_987 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) k)) x)) = j) /\ ((@IMAGE A B f j) = k)))). +Axiom thm_GROUP_EPIMORPHISM_NORMAL_SUBGROUP_CORRESPONDENCE_ALT : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall j : A -> Prop, (@group_epimorphism A B (@pair (Group A) (Group B) G H) f) -> ((@normal_subgroup_of A j G) /\ (@SUBSET A (@group_kernel A B (@pair (Group A) (Group B) G H) f) j)) = (exists k : B -> Prop, (@normal_subgroup_of B k H) /\ (((@GSPEC A (fun GEN_PVAR_988 : A => exists x : A, @SETSPEC A GEN_PVAR_988 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) k)) x)) = j) /\ ((@IMAGE A B f j) = k))). +Axiom thm_SUBGROUP_OF_ISOMORPHIC_IMAGE_EQ : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall j : A -> Prop, ((@group_isomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@SUBSET A j (@group_carrier A G))) -> (@subgroup_of B (@IMAGE A B f j) H) = (@subgroup_of A j G). +Axiom thm_NORMAL_SUBGROUP_OF_ISOMORPHIC_IMAGE_EQ : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall j : A -> Prop, ((@group_isomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@SUBSET A j (@group_carrier A G))) -> (@normal_subgroup_of B (@IMAGE A B f j) H) = (@normal_subgroup_of A j G). +Axiom thm_GROUP_CONJUGATE_SUBGROUP_OF : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@group_conjugate A G s t) -> (@subgroup_of A s G) = (@subgroup_of A t G). +Axiom thm_GROUP_CONJUGATE_NORMAL_SUBGROUP_OF : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall t : A -> Prop, (@group_conjugate A G s t) -> (@normal_subgroup_of A s G) = (@normal_subgroup_of A t G). +Axiom thm_NORMAL_SUBGROUP_CONJUGATE : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) = ((@subgroup_of A n G) /\ (forall n' : A -> Prop, (@group_conjugate A G n n') -> n' = n)). +Axiom thm_NORMAL_SUBGROUP_CONJUGATE_EQ : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall n' : A -> Prop, ((@normal_subgroup_of A n G) \/ (@normal_subgroup_of A n' G)) -> (@group_conjugate A G n n') = (n = n'). +Axiom thm_QUOTIENT_SUBGROUP_CORRESPONDENCE : forall {A : Type'}, forall G : Group A, forall j : A -> Prop, forall k : (A -> Prop) -> Prop, (@normal_subgroup_of A j G) -> (@subgroup_of (A -> Prop) k (@quotient_group A G j)) = (exists i : A -> Prop, (@subgroup_of A i G) /\ ((@SUBSET A j i) /\ (((@GSPEC A (fun GEN_PVAR_990 : A => exists x : A, @SETSPEC A GEN_PVAR_990 ((@IN A x (@group_carrier A G)) /\ (@IN (A -> Prop) (@right_coset A G j x) k)) x)) = i) /\ ((@IMAGE A (A -> Prop) (@right_coset A G j) i) = k)))). +Axiom thm_QUOTIENT_NORMAL_SUBGROUP_CORRESPONDENCE : forall {A : Type'}, forall G : Group A, forall j : A -> Prop, forall k : (A -> Prop) -> Prop, (@normal_subgroup_of A j G) -> (@normal_subgroup_of (A -> Prop) k (@quotient_group A G j)) = (exists i : A -> Prop, (@normal_subgroup_of A i G) /\ ((@SUBSET A j i) /\ (((@GSPEC A (fun GEN_PVAR_991 : A => exists x : A, @SETSPEC A GEN_PVAR_991 ((@IN A x (@group_carrier A G)) /\ (@IN (A -> Prop) (@right_coset A G j x) k)) x)) = i) /\ ((@IMAGE A (A -> Prop) (@right_coset A G j) i) = k)))). +Axiom thm_FIRST_GROUP_ISOMORPHISM_THEOREM_GEN : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall j : A -> Prop, forall k : B -> Prop, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@normal_subgroup_of B k H) /\ ((@GSPEC A (fun GEN_PVAR_992 : A => exists x : A, @SETSPEC A GEN_PVAR_992 ((@IN A x (@group_carrier A G)) /\ (@IN B (f x) k)) x)) = j))) -> @isomorphic_group (A -> Prop) (B -> Prop) (@quotient_group A G j) (@quotient_group B H k). +Axiom thm_FIRST_GROUP_ISOMORPHISM_THEOREM_GEN_ALT : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall j : A -> Prop, forall k : B -> Prop, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@normal_subgroup_of A j G) /\ ((@SUBSET A (@group_kernel A B (@pair (Group A) (Group B) G H) f) j) /\ ((@IMAGE A B f j) = k)))) -> @isomorphic_group (A -> Prop) (B -> Prop) (@quotient_group A G j) (@quotient_group B H k). +Axiom thm_SIMPLE_GROUP_EPIMORPHIC_IMAGE_EQ : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, (@group_epimorphism A B (@pair (Group A) (Group B) G H) f) -> (forall k : B -> Prop, (@normal_subgroup_of B k H) -> (k = (@INSERT B (@group_id B H) (@EMPTY B))) \/ (k = (@group_carrier B H))) = (forall h : A -> Prop, ((@normal_subgroup_of A h G) /\ (@PSUBSET A (@group_kernel A B (@pair (Group A) (Group B) G H) f) h)) -> h = (@group_carrier A G)). +Axiom thm_NO_PROPER_SUBGROUP_EPIMORPHIC_IMAGE_EQ : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, (@group_epimorphism A B (@pair (Group A) (Group B) G H) f) -> (forall k : B -> Prop, (@subgroup_of B k H) -> (k = (@INSERT B (@group_id B H) (@EMPTY B))) \/ (k = (@group_carrier B H))) = (forall h : A -> Prop, ((@subgroup_of A h G) /\ (@PSUBSET A (@group_kernel A B (@pair (Group A) (Group B) G H) f) h)) -> h = (@group_carrier A G)). +Axiom thm_MAXIMAL_SUBGROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> (forall h : A -> Prop, ((@subgroup_of A h G) /\ (@PSUBSET A n h)) -> h = (@group_carrier A G)) = (forall k : (A -> Prop) -> Prop, (@subgroup_of (A -> Prop) k (@quotient_group A G n)) -> (k = (@INSERT (A -> Prop) (@group_id (A -> Prop) (@quotient_group A G n)) (@EMPTY (A -> Prop)))) \/ (k = (@group_carrier (A -> Prop) (@quotient_group A G n)))). +Axiom thm_MAXIMAL_NORMAL_SUBGROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> (forall h : A -> Prop, ((@normal_subgroup_of A h G) /\ (@PSUBSET A n h)) -> h = (@group_carrier A G)) = (forall k : (A -> Prop) -> Prop, (@normal_subgroup_of (A -> Prop) k (@quotient_group A G n)) -> (k = (@INSERT (A -> Prop) (@group_id (A -> Prop) (@quotient_group A G n)) (@EMPTY (A -> Prop)))) \/ (k = (@group_carrier (A -> Prop) (@quotient_group A G n)))). +Axiom thm_trivial_homomorphism : forall {A B : Type'}, forall G : Group A, forall f : A -> B, forall G' : Group B, (@trivial_homomorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> (f x) = (@group_id B G'))). +Axiom thm_GROUP_KERNEL_IMAGE_TRIVIAL : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall G' : Group B, (@group_homomorphism A B (@pair (Group A) (Group B) G G') f) -> ((@group_kernel A B (@pair (Group A) (Group B) G G') f) = (@group_carrier A G)) = ((@group_image A B (@pair (Group A) (Group B) G G') f) = (@INSERT B (@group_id B G') (@EMPTY B))). +Axiom thm_TRIVIAL_HOMOMORPHISM_GROUP_KERNEL : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall G' : Group B, (@trivial_homomorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ ((@group_kernel A B (@pair (Group A) (Group B) G G') f) = (@group_carrier A G))). +Axiom thm_TRIVIAL_HOMOMORPHISM_GROUP_IMAGE : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall G' : Group B, (@trivial_homomorphism A B (@pair (Group A) (Group B) G G') f) = ((@group_homomorphism A B (@pair (Group A) (Group B) G G') f) /\ ((@group_image A B (@pair (Group A) (Group B) G G') f) = (@INSERT B (@group_id B G') (@EMPTY B)))). +Axiom thm_TRIVIAL_HOMOMORPHISM_TRIVIAL : forall {_303467 _303468 : Type'}, forall G : Group _303468, forall H : Group _303467, @trivial_homomorphism _303468 _303467 (@pair (Group _303468) (Group _303467) G H) (fun x : _303468 => @group_id _303467 H). +Axiom thm_GROUP_MONOMORPHISM_TRIVIAL : forall {_303490 _303491 : Type'}, forall G : Group _303491, forall H : Group _303490, (@group_monomorphism _303491 _303490 (@pair (Group _303491) (Group _303490) G H) (fun x : _303491 => @group_id _303490 H)) = (@trivial_group _303491 G). +Axiom thm_GROUP_EPIMORPHISM_TRIVIAL : forall {_303536 _303537 : Type'}, forall G : Group _303537, forall H : Group _303536, (@group_epimorphism _303537 _303536 (@pair (Group _303537) (Group _303536) G H) (fun x : _303537 => @group_id _303536 H)) = (@trivial_group _303536 H). +Axiom thm_GROUP_ISOMORPHISM_TRIVIAL : forall {_303561 _303562 : Type'}, forall G : Group _303562, forall H : Group _303561, (@group_isomorphism _303562 _303561 (@pair (Group _303562) (Group _303561) G H) (fun x : _303562 => @group_id _303561 H)) = ((@trivial_group _303562 G) /\ (@trivial_group _303561 H)). +Axiom thm_group_element_order : forall {A : Type'}, forall x : A, forall G : Group A, (@group_element_order A G x) = (@ε N (fun d : N => forall n : N, ((@group_pow A G x n) = (@group_id A G)) = (num_divides d n))). +Axiom thm_GROUP_POW_EQ_ID : forall {A : Type'}, forall G : Group A, forall x : A, forall n : N, (@IN A x (@group_carrier A G)) -> ((@group_pow A G x n) = (@group_id A G)) = (num_divides (@group_element_order A G x) n). +Axiom thm_GROUP_POW_EQ_ID_DIVISOR : forall {A : Type'}, forall G : Group A, forall x : A, forall m : N, forall n : N, ((@IN A x (@group_carrier A G)) /\ (((@group_pow A G x m) = (@group_id A G)) /\ (num_divides m n))) -> (@group_pow A G x n) = (@group_id A G). +Axiom thm_GROUP_POW_ELEMENT_ORDER : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@group_pow A G x (@group_element_order A G x)) = (@group_id A G). +Axiom thm_GROUP_ZPOW_EQ_ID : forall {A : Type'}, forall G : Group A, forall x : A, forall n : Z, (@IN A x (@group_carrier A G)) -> ((@group_zpow A G x n) = (@group_id A G)) = (int_divides (Z_of_N (@group_element_order A G x)) n). +Axiom thm_GROUP_ZPOW_EQ_ID_DIVISOR : forall {A : Type'}, forall G : Group A, forall x : A, forall m : Z, forall n : Z, ((@IN A x (@group_carrier A G)) /\ (((@group_zpow A G x m) = (@group_id A G)) /\ (int_divides m n))) -> (@group_zpow A G x n) = (@group_id A G). +Axiom thm_GROUP_ZPOW_EQ_ALT : forall {A : Type'}, forall G : Group A, forall x : A, forall m : Z, forall n : Z, (@IN A x (@group_carrier A G)) -> ((@group_zpow A G x m) = (@group_zpow A G x n)) = (int_divides (Z_of_N (@group_element_order A G x)) (int_sub n m)). +Axiom thm_GROUP_ZPOW_EQ : forall {A : Type'}, forall G : Group A, forall x : A, forall m : Z, forall n : Z, (@IN A x (@group_carrier A G)) -> ((@group_zpow A G x m) = (@group_zpow A G x n)) = (@eq2 Z m n (int_mod (Z_of_N (@group_element_order A G x)))). +Axiom thm_GROUP_POW_EQ : forall {A : Type'}, forall G : Group A, forall x : A, forall m : N, forall n : N, (@IN A x (@group_carrier A G)) -> ((@group_pow A G x m) = (@group_pow A G x n)) = (@eq2 N m n (num_mod (@group_element_order A G x))). +Axiom thm_GROUP_ZPOW_REM_ELEMENT_ORDER : forall {A : Type'}, forall G : Group A, forall x : A, forall n : Z, (@IN A x (@group_carrier A G)) -> (@group_zpow A G x (rem n (Z_of_N (@group_element_order A G x)))) = (@group_zpow A G x n). +Axiom thm_GROUP_POW_MOD_ELEMENT_ORDER : forall {A : Type'}, forall G : Group A, forall x : A, forall n : N, (@IN A x (@group_carrier A G)) -> (@group_pow A G x (N.modulo n (@group_element_order A G x))) = (@group_pow A G x n). +Axiom thm_GROUP_ELEMENT_ORDER_EQ_0 : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> ((@group_element_order A G x) = (NUMERAL 0%N)) = (forall n : N, (~ (n = (NUMERAL 0%N))) -> ~ ((@group_pow A G x n) = (@group_id A G))). +Axiom thm_GROUP_ELEMENT_ORDER_UNIQUE : forall {A : Type'}, forall G : Group A, forall x : A, forall d : N, (@IN A x (@group_carrier A G)) -> ((@group_element_order A G x) = d) = (forall n : N, ((@group_pow A G x n) = (@group_id A G)) = (num_divides d n)). +Axiom thm_GROUP_ELEMENT_ORDER_EQ_1 : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> ((@group_element_order A G x) = (NUMERAL (BIT1 0%N))) = (x = (@group_id A G)). +Axiom thm_GROUP_ELEMENT_ORDER_UNIQUE_PRIME : forall {A : Type'}, forall G : Group A, forall x : A, forall p : N, ((@IN A x (@group_carrier A G)) /\ (prime p)) -> ((@group_element_order A G x) = p) = ((~ (x = (@group_id A G))) /\ ((@group_pow A G x p) = (@group_id A G))). +Axiom thm_GROUP_ELEMENT_ORDER_ID : forall {A : Type'}, forall G : Group A, (@group_element_order A G (@group_id A G)) = (NUMERAL (BIT1 0%N)). +Axiom thm_GROUP_ELEMENT_ORDER_INV : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@group_element_order A G (@group_inv A G x)) = (@group_element_order A G x). +Axiom thm_GROUP_POW_GCD_EQ_ID : forall {A : Type'}, forall G : Group A, forall x : A, forall m : N, forall n : N, (@IN A x (@group_carrier A G)) -> ((@group_pow A G x (num_gcd (@pair N N m n))) = (@group_id A G)) = (((@group_pow A G x m) = (@group_id A G)) /\ ((@group_pow A G x n) = (@group_id A G))). +Axiom thm_GROUP_POW_COPRIME_EQ_ID : forall {A : Type'}, forall G : Group A, forall x : A, forall m : N, forall n : N, ((@IN A x (@group_carrier A G)) /\ (num_coprime (@pair N N m n))) -> (((@group_pow A G x m) = (@group_id A G)) /\ ((@group_pow A G x n) = (@group_id A G))) = (x = (@group_id A G)). +Axiom thm_FINITE_GROUP_ELEMENT_ORDER_NONZERO : forall {A : Type'}, forall G : Group A, forall x : A, ((@FINITE A (@group_carrier A G)) /\ (@IN A x (@group_carrier A G))) -> ~ ((@group_element_order A G x) = (NUMERAL 0%N)). +Axiom thm_GROUP_ELEMENT_ORDER_POW : forall {A : Type'}, forall G : Group A, forall x : A, forall k : N, ((@IN A x (@group_carrier A G)) /\ ((~ (k = (NUMERAL 0%N))) /\ (num_divides k (@group_element_order A G x)))) -> (@group_element_order A G (@group_pow A G x k)) = (N.div (@group_element_order A G x) k). +Axiom thm_GROUP_ELEMENT_ORDER_POW_GEN : forall {A : Type'}, forall G : Group A, forall x : A, forall k : N, (@IN A x (@group_carrier A G)) -> (@group_element_order A G (@group_pow A G x k)) = (@COND N (k = (NUMERAL 0%N)) (NUMERAL (BIT1 0%N)) (N.div (@group_element_order A G x) (num_gcd (@pair N N (@group_element_order A G x) k)))). +Axiom thm_GROUP_ELEMENT_ORDER_MUL_DIVIDES_GEN : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall n : N, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (((@group_mul A G x y) = (@group_mul A G y x)) /\ ((num_divides (@group_element_order A G x) n) /\ (num_divides (@group_element_order A G y) n))))) -> num_divides (@group_element_order A G (@group_mul A G x y)) n. +Axiom thm_ABELIAN_GROUP_ELEMENT_ORDER_MUL_DIVIDES_GEN : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, forall n : N, ((@abelian_group A G) /\ ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((num_divides (@group_element_order A G x) n) /\ (num_divides (@group_element_order A G y) n))))) -> num_divides (@group_element_order A G (@group_mul A G x y)) n. +Axiom thm_GROUP_ELEMENT_ORDER_MUL_DIVIDES_LCM : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_mul A G x y) = (@group_mul A G y x)))) -> num_divides (@group_element_order A G (@group_mul A G x y)) (num_lcm (@pair N N (@group_element_order A G x) (@group_element_order A G y))). +Axiom thm_ABELIAN_GROUP_ELEMENT_ORDER_MUL_DIVIDES_LCM : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@abelian_group A G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> num_divides (@group_element_order A G (@group_mul A G x y)) (num_lcm (@pair N N (@group_element_order A G x) (@group_element_order A G y))). +Axiom thm_GROUP_ELEMENT_ORDER_HOMOMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall x : A, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@IN A x (@group_carrier A G))) -> num_divides (@group_element_order B H (f x)) (@group_element_order A G x). +Axiom thm_GROUP_ELEMENT_ORDER_MONOMORPHIC_IMAGE : forall {A B : Type'}, forall f : A -> B, forall G : Group A, forall H : Group B, forall x : A, ((@group_monomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@IN A x (@group_carrier A G))) -> (@group_element_order B H (f x)) = (@group_element_order A G x). +Axiom thm_ISOMORPHIC_GROUP_TORSION : forall {A B : Type'}, forall P : N -> Prop, forall G : Group A, forall H : Group B, (@isomorphic_group A B G H) -> (forall x : A, (@IN A x (@group_carrier A G)) -> P (@group_element_order A G x)) = (forall y : B, (@IN B y (@group_carrier B H)) -> P (@group_element_order B H y)). +Axiom thm_GROUP_ELEMENT_ORDER_CONJUGATION : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> (@group_element_order A G (@group_conjugation A G x y)) = (@group_element_order A G y). +Axiom thm_GROUP_ELEMENT_ORDER_MUL_DIVIDES : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_mul A G x y) = (@group_mul A G y x)))) -> num_divides (@group_element_order A G (@group_mul A G x y)) (N.mul (@group_element_order A G x) (@group_element_order A G y)). +Axiom thm_ABELIAN_GROUP_ELEMENT_ORDER_MUL_DIVIDES : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@abelian_group A G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> num_divides (@group_element_order A G (@group_mul A G x y)) (N.mul (@group_element_order A G x) (@group_element_order A G y)). +Axiom thm_GROUP_POW_MUL_EQ_ID_SYM : forall {A : Type'}, forall G : Group A, forall n : N, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> ((@group_pow A G (@group_mul A G x y) n) = (@group_id A G)) = ((@group_pow A G (@group_mul A G y x) n) = (@group_id A G)). +Axiom thm_GROUP_ELEMENT_ORDER_MUL_SYM : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G))) -> (@group_element_order A G (@group_mul A G x y)) = (@group_element_order A G (@group_mul A G y x)). +Axiom thm_GROUP_ELEMENT_ORDER_UNIQUE_ALT : forall {A : Type'}, forall G : Group A, forall x : A, forall n : N, ((@IN A x (@group_carrier A G)) /\ (~ (n = (NUMERAL 0%N)))) -> ((@group_element_order A G x) = n) = (((@group_pow A G x n) = (@group_id A G)) /\ (forall m : N, ((N.lt (NUMERAL 0%N) m) /\ (N.lt m n)) -> ~ ((@group_pow A G x m) = (@group_id A G)))). +Axiom thm_GROUP_ELEMENT_ORDER_EQ_2 : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> ((@group_element_order A G x) = (NUMERAL (BIT0 (BIT1 0%N)))) = ((~ (x = (@group_id A G))) /\ ((@group_pow A G x (NUMERAL (BIT0 (BIT1 0%N)))) = (@group_id A G))). +Axiom thm_GROUP_ELEMENT_ORDER_EQ_2_ALT : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> ((@group_element_order A G x) = (NUMERAL (BIT0 (BIT1 0%N)))) = ((~ (x = (@group_id A G))) /\ ((@group_inv A G x) = x)). +Axiom thm_GROUP_ELEMENT_ORDER_POW_DIVIDES : forall {A : Type'}, forall G : Group A, forall x : A, forall n : N, (@IN A x (@group_carrier A G)) -> num_divides (@group_element_order A G (@group_pow A G x n)) (@group_element_order A G x). +Axiom thm_GROUP_ELEMENT_ORDER_MUL_EQ : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (((@group_mul A G x y) = (@group_mul A G y x)) /\ (num_coprime (@pair N N (@group_element_order A G x) (@group_element_order A G y)))))) -> (@group_element_order A G (@group_mul A G x y)) = (N.mul (@group_element_order A G x) (@group_element_order A G y)). +Axiom thm_GROUP_ELEMENT_ORDER_EQ_MUL_GEN : forall {A : Type'}, forall G : Group A, forall x : A, forall k : N, forall n : N, ((@IN A x (@group_carrier A G)) /\ (~ (k = (NUMERAL 0%N)))) -> ((@group_element_order A G x) = (N.mul k n)) = ((num_divides k (@group_element_order A G x)) /\ ((@group_element_order A G (@group_pow A G x k)) = n)). +Axiom thm_GROUP_ELEMENT_ORDER_EQ_MUL : forall {A : Type'}, forall G : Group A, forall x : A, forall k : N, forall n : N, ((@IN A x (@group_carrier A G)) /\ ((~ (k = (NUMERAL 0%N))) /\ (num_divides k n))) -> ((@group_element_order A G x) = (N.mul k n)) = ((@group_element_order A G (@group_pow A G x k)) = n). +Axiom thm_ABELIAN_GROUP_ELEMENT_ORDER_MUL_EQ : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@abelian_group A G) /\ ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (num_coprime (@pair N N (@group_element_order A G x) (@group_element_order A G y)))))) -> (@group_element_order A G (@group_mul A G x y)) = (N.mul (@group_element_order A G x) (@group_element_order A G y)). +Axiom thm_GROUP_ELEMENT_ORDER_LCM_EXISTS : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_mul A G x y) = (@group_mul A G y x)))) -> exists z : A, (@IN A z (@group_carrier A G)) /\ ((@group_element_order A G z) = (num_lcm (@pair N N (@group_element_order A G x) (@group_element_order A G y)))). +Axiom thm_ABELIAN_GROUP_ELEMENT_ORDER_LCM_EXISTS : forall {A : Type'}, forall G : Group A, forall x : A, forall y : A, ((@abelian_group A G) /\ ((@IN A x (@group_carrier A G)) /\ (@IN A y (@group_carrier A G)))) -> exists z : A, (@IN A z (@group_carrier A G)) /\ ((@group_element_order A G z) = (num_lcm (@pair N N (@group_element_order A G x) (@group_element_order A G y)))). +Axiom thm_ABELIAN_GROUP_ORDER_DIVIDES_MAXIMAL : forall {A : Type'}, forall G : Group A, ((@abelian_group A G) /\ (@FINITE A (@group_carrier A G))) -> exists x : A, (@IN A x (@group_carrier A G)) /\ (forall y : A, (@IN A y (@group_carrier A G)) -> num_divides (@group_element_order A G y) (@group_element_order A G x)). +Axiom thm_ABELIAN_GROUP_ELEMENT_ORDER_DIVIDES_MAXIMAL_ALT : forall {A : Type'}, forall G : Group A, ((@abelian_group A G) /\ (@FINITE A (@group_carrier A G))) -> exists x : A, (@IN A x (@group_carrier A G)) /\ (forall y : A, (@IN A y (@group_carrier A G)) -> (@group_pow A G y (@group_element_order A G x)) = (@group_id A G)). +Axiom thm_GROUP_ELEMENT_ORDER_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, (@group_element_order A (@subgroup_generated A G h) x) = (@group_element_order A G x). +Axiom thm_GROUP_ELEMENT_ORDER_PROD_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall x : A, forall y : B, ((@IN A x (@group_carrier A G)) /\ (@IN B y (@group_carrier B H))) -> (@group_element_order (prod A B) (@prod_group A B G H) (@pair A B x y)) = (num_lcm (@pair N N (@group_element_order A G x) (@group_element_order B H y))). +Axiom thm_GROUP_ELEMENT_ORDER_PROD_GROUP_ALT : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall z : prod A B, (@IN (prod A B) z (@group_carrier (prod A B) (@prod_group A B G H))) -> (@group_element_order (prod A B) (@prod_group A B G H) z) = (num_lcm (@pair N N (@group_element_order A G (@fst A B z)) (@group_element_order B H (@snd A B z)))). +Axiom thm_GROUP_ELEMENT_ORDER_SUM_GROUP : forall {A K : Type'}, forall G : K -> Group A, forall k : K -> Prop, forall x : K -> A, (@IN (K -> A) x (@group_carrier (K -> A) (@sum_group A K k G))) -> (@group_element_order (K -> A) (@sum_group A K k G) x) = (@iterate K N (fun m : N => fun n : N => num_lcm (@pair N N m n)) k (fun i : K => @group_element_order A (G i) (x i))). +Axiom thm_GROUP_ELEMENT_ORDER_SUM_GROUP_EQ_0 : forall {A K : Type'}, forall G : K -> Group A, forall k : K -> Prop, forall x : K -> A, (@IN (K -> A) x (@group_carrier (K -> A) (@sum_group A K k G))) -> ((@group_element_order (K -> A) (@sum_group A K k G) x) = (NUMERAL 0%N)) = (exists i : K, (@IN K i k) /\ ((@group_element_order A (G i) (x i)) = (NUMERAL 0%N))). +Axiom thm_GROUP_ELEMENT_ORDER_COPRIME_DECOMP_EXPLICIT : forall {A : Type'}, forall G : Group A, forall x : A, forall m : N, forall n : N, ((num_coprime (@pair N N m n)) /\ ((@IN A x (@group_carrier A G)) /\ ((@group_element_order A G x) = (N.mul m n)))) -> exists r : Z, exists s : Z, ((@group_element_order A G (@group_zpow A G x r)) = m) /\ (((@group_element_order A G (@group_zpow A G x s)) = n) /\ ((@group_mul A G (@group_zpow A G x r) (@group_zpow A G x s)) = x)). +Axiom thm_GROUP_ELEMENT_ORDER_COPRIME_DECOMP_UNIQUE : forall {A : Type'}, forall G : Group A, forall z : A, forall m : N, forall n : N, ((num_coprime (@pair N N m n)) /\ ((@IN A z (@group_carrier A G)) /\ ((@group_element_order A G z) = (N.mul m n)))) -> @ex1 (prod A A) (@GABS ((prod A A) -> Prop) (fun f : (prod A A) -> Prop => forall x : A, forall y : A, @GEQ Prop (f (@pair A A x y)) ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (((@group_mul A G x y) = z) /\ (((@group_mul A G y x) = z) /\ (((@group_element_order A G x) = m) /\ ((@group_element_order A G y) = n)))))))). +Axiom thm_GROUP_ELEMENT_ORDER_COPRIME_DECOMP : forall {A : Type'}, forall G : Group A, forall z : A, forall m : N, forall n : N, ((num_coprime (@pair N N m n)) /\ ((@IN A z (@group_carrier A G)) /\ ((@group_element_order A G z) = (N.mul m n)))) -> exists x : A, exists y : A, (@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (((@group_mul A G x y) = z) /\ (((@group_mul A G y x) = z) /\ (((@group_element_order A G x) = m) /\ ((@group_element_order A G y) = n))))). +Axiom thm_GROUP_ELEMENT_ORDER_COPRIME_DECOMP_DIVIDES : forall {A : Type'}, forall G : Group A, forall z : A, forall m : N, forall n : N, ((num_coprime (@pair N N m n)) /\ ((@IN A z (@group_carrier A G)) /\ (num_divides (@group_element_order A G z) (N.mul m n)))) -> exists x : A, exists y : A, (@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (((@group_mul A G x y) = z) /\ (((@group_mul A G y x) = z) /\ ((num_divides (@group_element_order A G x) m) /\ (num_divides (@group_element_order A G y) n))))). +Axiom thm_GROUP_POW_EQ_ID_DECOMP : forall {A : Type'}, forall G : Group A, forall z : A, forall m : N, forall n : N, ((num_coprime (@pair N N m n)) /\ ((@IN A z (@group_carrier A G)) /\ ((@group_pow A G z (N.mul m n)) = (@group_id A G)))) -> exists x : A, exists y : A, (@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (((@group_mul A G x y) = z) /\ (((@group_mul A G y x) = z) /\ (((@group_pow A G x m) = (@group_id A G)) /\ ((@group_pow A G y n) = (@group_id A G)))))). +Axiom thm_GROUP_ELEMENT_ORDER_PRIMEPOW_DECOMP : forall {A : Type'}, forall G : Group A, forall z : A, forall p : N, ((prime p) /\ ((@IN A z (@group_carrier A G)) /\ (~ ((@group_element_order A G z) = (NUMERAL 0%N))))) -> exists x : A, exists y : A, (@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ (((@group_mul A G x y) = z) /\ (((@group_mul A G y x) = z) /\ ((exists k : N, (@group_element_order A G x) = (N.pow p k)) /\ (num_coprime (@pair N N p (@group_element_order A G y))))))). +Axiom thm_SUBGROUP_OF_TORSION_GENERAL : forall {A : Type'}, forall P : N -> Prop, forall G : Group A, ((@abelian_group A G) /\ ((P (NUMERAL (BIT1 0%N))) /\ (forall m : N, forall n : N, forall p : N, ((num_divides p (num_lcm (@pair N N m n))) /\ ((P m) /\ (P n))) -> P p))) -> @subgroup_of A (@GSPEC A (fun GEN_PVAR_993 : A => exists x : A, @SETSPEC A GEN_PVAR_993 ((@IN A x (@group_carrier A G)) /\ (P (@group_element_order A G x))) x)) G. +Axiom thm_SUBGROUP_OF_TORSION_GEN : forall {A : Type'}, forall P : N -> Prop, forall G : Group A, ((@abelian_group A G) /\ ((P (NUMERAL (BIT1 0%N))) /\ (forall m : N, forall n : N, forall p : N, ((num_divides p (N.mul m n)) /\ ((P m) /\ (P n))) -> P p))) -> @subgroup_of A (@GSPEC A (fun GEN_PVAR_994 : A => exists x : A, @SETSPEC A GEN_PVAR_994 ((@IN A x (@group_carrier A G)) /\ (P (@group_element_order A G x))) x)) G. +Axiom thm_SUBGROUP_OF_TORSION : forall {A : Type'}, forall G : Group A, (@abelian_group A G) -> @subgroup_of A (@GSPEC A (fun GEN_PVAR_995 : A => exists x : A, @SETSPEC A GEN_PVAR_995 ((@IN A x (@group_carrier A G)) /\ (~ ((@group_element_order A G x) = (NUMERAL 0%N)))) x)) G. +Axiom thm_SUBGROUP_OF_PRIMES_TORSION : forall {A : Type'}, forall G : Group A, forall Q : N -> Prop, (@abelian_group A G) -> @subgroup_of A (@GSPEC A (fun GEN_PVAR_996 : A => exists x : A, @SETSPEC A GEN_PVAR_996 ((@IN A x (@group_carrier A G)) /\ (forall p : N, ((prime p) /\ (num_divides p (@group_element_order A G x))) -> Q p)) x)) G. +Axiom thm_SUBGROUP_OF_PRIME_TORSION : forall {A : Type'}, forall G : Group A, forall p : N, ((@abelian_group A G) /\ (prime p)) -> @subgroup_of A (@GSPEC A (fun GEN_PVAR_997 : A => exists x : A, @SETSPEC A GEN_PVAR_997 ((@IN A x (@group_carrier A G)) /\ (exists k : N, (@group_element_order A G x) = (N.pow p k))) x)) G. +Axiom thm_SUBGROUP_OF_LOWER_ORDER : forall {A : Type'}, forall G : Group A, forall n : N, (@abelian_group A G) -> @subgroup_of A (@GSPEC A (fun GEN_PVAR_998 : A => exists x : A, @SETSPEC A GEN_PVAR_998 ((@IN A x (@group_carrier A G)) /\ (num_divides (@group_element_order A G x) n)) x)) G. +Axiom thm_SUBGROUP_OF_LOWER_ORDER_ALT : forall {A : Type'}, forall G : Group A, forall n : N, (@abelian_group A G) -> @subgroup_of A (@GSPEC A (fun GEN_PVAR_999 : A => exists x : A, @SETSPEC A GEN_PVAR_999 ((@IN A x (@group_carrier A G)) /\ ((@group_pow A G x n) = (@group_id A G))) x)) G. +Axiom thm_SUBGROUP_OF_NONDIVISIBLE_ORDER : forall {A : Type'}, forall G : Group A, forall p : N, ((@abelian_group A G) /\ (prime p)) -> @subgroup_of A (@GSPEC A (fun GEN_PVAR_1000 : A => exists x : A, @SETSPEC A GEN_PVAR_1000 ((@IN A x (@group_carrier A G)) /\ (~ (num_divides p (@group_element_order A G x)))) x)) G. +Axiom thm_SUBGROUP_OF_COPRIME_ORDER : forall {A : Type'}, forall G : Group A, forall n : N, (@abelian_group A G) -> @subgroup_of A (@GSPEC A (fun GEN_PVAR_1001 : A => exists x : A, @SETSPEC A GEN_PVAR_1001 ((@IN A x (@group_carrier A G)) /\ (num_coprime (@pair N N n (@group_element_order A G x)))) x)) G. +Axiom thm_TORSION_FREE_GROUP : forall {A : Type'}, forall G : Group A, (forall x : A, (@IN A x (@group_carrier A G)) -> N.le (@group_element_order A G x) (NUMERAL (BIT1 0%N))) = (forall x : A, ((@IN A x (@group_carrier A G)) /\ (~ (x = (@group_id A G)))) -> (@group_element_order A G x) = (NUMERAL 0%N)). +Axiom thm_TORSION_FREE_GROUP_ALT : forall {A : Type'}, forall G : Group A, (forall x : A, (@IN A x (@group_carrier A G)) -> N.le (@group_element_order A G x) (NUMERAL (BIT1 0%N))) = (forall x : A, forall n : N, ((@IN A x (@group_carrier A G)) /\ ((@group_pow A G x n) = (@group_id A G))) -> (x = (@group_id A G)) \/ (n = (NUMERAL 0%N))). +Axiom thm_QUOTIENT_GROUP_POW_EQ_ID : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall x : A, forall k : N, ((@normal_subgroup_of A n G) /\ (@IN A x (@group_carrier A G))) -> ((@group_pow (A -> Prop) (@quotient_group A G n) (@right_coset A G n x) k) = (@group_id (A -> Prop) (@quotient_group A G n))) = (@IN A (@group_pow A G x k) n). +Axiom thm_TORSION_FREE_QUOTIENT_GROUP : forall {A : Type'}, forall G : Group A, forall H : Group (A -> Prop), ((@abelian_group A G) /\ ((@quotient_group A G (@GSPEC A (fun GEN_PVAR_1002 : A => exists x : A, @SETSPEC A GEN_PVAR_1002 ((@IN A x (@group_carrier A G)) /\ (~ ((@group_element_order A G x) = (NUMERAL 0%N)))) x))) = H)) -> forall x : A -> Prop, (@IN (A -> Prop) x (@group_carrier (A -> Prop) H)) -> N.le (@group_element_order (A -> Prop) H x) (NUMERAL (BIT1 0%N)). +Axiom thm_IMAGE_GROUP_CONJUGATION_TORSION_GEN : forall {A : Type'}, forall G : Group A, forall P : N -> Prop, forall a : A, (@IN A a (@group_carrier A G)) -> (@IMAGE A A (@group_conjugation A G a) (@GSPEC A (fun GEN_PVAR_1003 : A => exists x : A, @SETSPEC A GEN_PVAR_1003 ((@IN A x (@group_carrier A G)) /\ (P (@group_element_order A G x))) x))) = (@GSPEC A (fun GEN_PVAR_1004 : A => exists x : A, @SETSPEC A GEN_PVAR_1004 ((@IN A x (@group_carrier A G)) /\ (P (@group_element_order A G x))) x)). +Axiom thm_NORMAL_SUBGROUP_OF_TORSION_GEN : forall {A : Type'}, forall P : N -> Prop, forall G : Group A, (@normal_subgroup_of A (@GSPEC A (fun GEN_PVAR_1005 : A => exists x : A, @SETSPEC A GEN_PVAR_1005 ((@IN A x (@group_carrier A G)) /\ (P (@group_element_order A G x))) x)) G) = (@subgroup_of A (@GSPEC A (fun GEN_PVAR_1006 : A => exists x : A, @SETSPEC A GEN_PVAR_1006 ((@IN A x (@group_carrier A G)) /\ (P (@group_element_order A G x))) x)) G). +Axiom thm_NORMAL_SUBGROUP_OF_TORSION : forall {A : Type'}, forall G : Group A, (@normal_subgroup_of A (@GSPEC A (fun GEN_PVAR_1007 : A => exists x : A, @SETSPEC A GEN_PVAR_1007 ((@IN A x (@group_carrier A G)) /\ (~ ((@group_element_order A G x) = (NUMERAL 0%N)))) x)) G) = (@subgroup_of A (@GSPEC A (fun GEN_PVAR_1008 : A => exists x : A, @SETSPEC A GEN_PVAR_1008 ((@IN A x (@group_carrier A G)) /\ (~ ((@group_element_order A G x) = (NUMERAL 0%N)))) x)) G). +Axiom thm_SUBGROUP_OF_POWERS : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> @subgroup_of A (@GSPEC A (fun GEN_PVAR_1009 : A => exists n : Z, @SETSPEC A GEN_PVAR_1009 (@IN Z n (@UNIV Z)) (@group_zpow A G x n))) G. +Axiom thm_CARRIER_SUBGROUP_GENERATED_BY_SING : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@group_carrier A (@subgroup_generated A G (@INSERT A x (@EMPTY A)))) = (@GSPEC A (fun GEN_PVAR_1010 : A => exists n : Z, @SETSPEC A GEN_PVAR_1010 (@IN Z n (@UNIV Z)) (@group_zpow A G x n))). +Axiom thm_cyclic_group : forall {_310016 : Type'}, forall G : Group _310016, (@cyclic_group _310016 G) = (exists x : _310016, (@IN _310016 x (@group_carrier _310016 G)) /\ ((@subgroup_generated _310016 G (@INSERT _310016 x (@EMPTY _310016))) = G)). +Axiom thm_CYCLIC_GROUP : forall {A : Type'}, forall G : Group A, (@cyclic_group A G) = (exists x : A, (@IN A x (@group_carrier A G)) /\ ((@group_carrier A G) = (@GSPEC A (fun GEN_PVAR_1011 : A => exists n : Z, @SETSPEC A GEN_PVAR_1011 (@IN Z n (@UNIV Z)) (@group_zpow A G x n))))). +Axiom thm_CYCLIC_IMP_ABELIAN_GROUP : forall {A : Type'}, forall G : Group A, (@cyclic_group A G) -> @abelian_group A G. +Axiom thm_TRIVIAL_IMP_CYCLIC_GROUP : forall {A : Type'}, forall G : Group A, (@trivial_group A G) -> @cyclic_group A G. +Axiom thm_CYCLIC_GROUP_ALT : forall {A : Type'}, forall G : Group A, (@cyclic_group A G) = (exists x : A, (@subgroup_generated A G (@INSERT A x (@EMPTY A))) = G). +Axiom thm_CYCLIC_GROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall x : A, @cyclic_group A (@subgroup_generated A G (@INSERT A x (@EMPTY A))). +Axiom thm_CYCLIC_GROUP_EPIMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ (@cyclic_group A G)) -> @cyclic_group B H. +Axiom thm_ISOMORPHIC_GROUP_CYCLICITY : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@isomorphic_group A B G H) -> (@cyclic_group A G) = (@cyclic_group B H). +Axiom thm_SUBGROUP_OF_CYCLIC_GROUP_EXPLICIT : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall x : A, ((@IN A x (@group_carrier A G)) /\ (@subgroup_of A h (@subgroup_generated A G (@INSERT A x (@EMPTY A))))) -> exists k : N, h = (@GSPEC A (fun GEN_PVAR_1015 : A => exists n : Z, @SETSPEC A GEN_PVAR_1015 (@IN Z n (@UNIV Z)) (@group_zpow A G x (int_mul (Z_of_N k) n)))). +Axiom thm_SUBGROUP_OF_CYCLIC_GROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, ((@cyclic_group A G) /\ (@subgroup_of A h G)) -> @cyclic_group A (@subgroup_generated A G h). +Axiom thm_CYCLIC_GROUP_QUOTIENT_GROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, ((@cyclic_group A G) /\ (@subgroup_of A n G)) -> @cyclic_group (A -> Prop) (@quotient_group A G n). +Axiom thm_NO_PROPER_SUBGROUPS_IMP_CYCLIC : forall {A : Type'}, forall G : Group A, (forall h : A -> Prop, (@subgroup_of A h G) -> (@SUBSET A h (@INSERT A (@group_id A G) (@EMPTY A))) \/ (h = (@group_carrier A G))) -> @cyclic_group A G. +Axiom thm_FINITE_CYCLIC_SUBGROUP : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@FINITE A (@group_carrier A (@subgroup_generated A G (@INSERT A x (@EMPTY A))))) = (exists n : N, (~ (n = (NUMERAL 0%N))) /\ ((@group_pow A G x n) = (@group_id A G))). +Axiom thm_INFINITE_CYCLIC_SUBGROUP : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@INFINITE A (@group_carrier A (@subgroup_generated A G (@INSERT A x (@EMPTY A))))) = (forall m : N, forall n : N, ((@group_pow A G x m) = (@group_pow A G x n)) -> m = n). +Axiom thm_INFINITE_CYCLIC_SUBGROUP_ALT : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@INFINITE A (@group_carrier A (@subgroup_generated A G (@INSERT A x (@EMPTY A))))) = (forall m : Z, forall n : Z, ((@group_zpow A G x m) = (@group_zpow A G x n)) -> m = n). +Axiom thm_FINITE_CYCLIC_SUBGROUP_ALT : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@FINITE A (@group_carrier A (@subgroup_generated A G (@INSERT A x (@EMPTY A))))) = (exists n : Z, (~ (n = (Z_of_N (NUMERAL 0%N)))) /\ ((@group_zpow A G x n) = (@group_id A G))). +Axiom thm_FINITE_CYCLIC_SUBGROUP_ORDER : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@FINITE A (@group_carrier A (@subgroup_generated A G (@INSERT A x (@EMPTY A))))) = (~ ((@group_element_order A G x) = (NUMERAL 0%N))). +Axiom thm_INFINITE_CYCLIC_SUBGROUP_ORDER : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> (@INFINITE A (@group_carrier A (@subgroup_generated A G (@INSERT A x (@EMPTY A))))) = ((@group_element_order A G x) = (NUMERAL 0%N)). +Axiom thm_FINITE_CYCLIC_SUBGROUP_EXPLICIT : forall {A : Type'}, forall G : Group A, forall x : A, ((@FINITE A (@group_carrier A (@subgroup_generated A G (@INSERT A x (@EMPTY A))))) /\ (@IN A x (@group_carrier A G))) -> (@group_carrier A (@subgroup_generated A G (@INSERT A x (@EMPTY A)))) = (@GSPEC A (fun GEN_PVAR_1016 : A => exists n : N, @SETSPEC A GEN_PVAR_1016 (N.lt n (@group_element_order A G x)) (@group_pow A G x n))). +Axiom thm_FINITE_SUBGROUPS_EQ : forall {A : Type'}, forall G : Group A, (@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1018 : A -> Prop => exists h : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1018 (@subgroup_of A h G) h))) = (@FINITE A (@group_carrier A G)). +Axiom thm_CARD_CYCLIC_SUBGROUP_ORDER : forall {A : Type'}, forall G : Group A, forall x : A, ((@FINITE A (@group_carrier A (@subgroup_generated A G (@INSERT A x (@EMPTY A))))) /\ (@IN A x (@group_carrier A G))) -> (@CARD A (@group_carrier A (@subgroup_generated A G (@INSERT A x (@EMPTY A))))) = (@group_element_order A G x). +Axiom thm_PRIME_ORDER_IMP_NO_PROPER_SUBGROUPS : forall {A : Type'}, forall G : Group A, forall p : N, ((@HAS_SIZE A (@group_carrier A G) p) /\ ((p = (NUMERAL (BIT1 0%N))) \/ (prime p))) -> forall h : A -> Prop, (@subgroup_of A h G) -> (h = (@INSERT A (@group_id A G) (@EMPTY A))) \/ (h = (@group_carrier A G)). +Axiom thm_NO_PROPER_SUBGROUPS_EQ_CYCLIC_PRIME_ORDER : forall {A : Type'}, forall G : Group A, (forall h : A -> Prop, (@subgroup_of A h G) -> (h = (@INSERT A (@group_id A G) (@EMPTY A))) \/ (h = (@group_carrier A G))) = ((@cyclic_group A G) /\ ((@FINITE A (@group_carrier A G)) /\ (((@CARD A (@group_carrier A G)) = (NUMERAL (BIT1 0%N))) \/ (prime (@CARD A (@group_carrier A G)))))). +Axiom thm_PRIME_ORDER_EQ_NO_PROPER_SUBGROUPS : forall {A : Type'}, forall G : Group A, ((@FINITE A (@group_carrier A G)) /\ (((@CARD A (@group_carrier A G)) = (NUMERAL (BIT1 0%N))) \/ (prime (@CARD A (@group_carrier A G))))) = (forall h : A -> Prop, (@subgroup_of A h G) -> (h = (@INSERT A (@group_id A G) (@EMPTY A))) \/ (h = (@group_carrier A G))). +Axiom thm_ABELIAN_SIMPLE_GROUP : forall {A : Type'}, forall G : Group A, (@abelian_group A G) -> (forall h : A -> Prop, (@normal_subgroup_of A h G) -> (h = (@INSERT A (@group_id A G) (@EMPTY A))) \/ (h = (@group_carrier A G))) = ((@FINITE A (@group_carrier A G)) /\ (((@CARD A (@group_carrier A G)) = (NUMERAL (BIT1 0%N))) \/ (prime (@CARD A (@group_carrier A G))))). +Axiom thm_PRIME_ORDER_IMP_CYCLIC_GROUP : forall {A : Type'}, forall G : Group A, ((@FINITE A (@group_carrier A G)) /\ (((@CARD A (@group_carrier A G)) = (NUMERAL (BIT1 0%N))) \/ (prime (@CARD A (@group_carrier A G))))) -> @cyclic_group A G. +Axiom thm_GROUP_ELEMENT_ORDER_DIVIDES_GROUP_ORDER : forall {A : Type'}, forall G : Group A, forall x : A, ((@IN A x (@group_carrier A G)) /\ (@FINITE A (@group_carrier A G))) -> num_divides (@group_element_order A G x) (@CARD A (@group_carrier A G)). +Axiom thm_GROUP_POW_GROUP_ORDER : forall {A : Type'}, forall G : Group A, forall x : A, ((@IN A x (@group_carrier A G)) /\ (@FINITE A (@group_carrier A G))) -> (@group_pow A G x (@CARD A (@group_carrier A G))) = (@group_id A G). +Axiom thm_GROUP_ZPOW_REM_ORDER : forall {A : Type'}, forall G : Group A, forall x : A, forall n : Z, ((@FINITE A (@group_carrier A G)) /\ (@IN A x (@group_carrier A G))) -> (@group_zpow A G x (rem n (Z_of_N (@CARD A (@group_carrier A G))))) = (@group_zpow A G x n). +Axiom thm_GROUP_POW_MOD_ORDER : forall {A : Type'}, forall G : Group A, forall x : A, forall n : N, ((@FINITE A (@group_carrier A G)) /\ (@IN A x (@group_carrier A G))) -> (@group_pow A G x (N.modulo n (@CARD A (@group_carrier A G)))) = (@group_pow A G x n). +Axiom thm_SUBGROUP_OF_FINITE_CYCLIC_GROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall a : A, ((@FINITE A (@group_carrier A G)) /\ ((@IN A a (@group_carrier A G)) /\ ((@subgroup_generated A G (@INSERT A a (@EMPTY A))) = G))) -> (@subgroup_of A h G) = (exists d : N, (num_divides d (@CARD A (@group_carrier A G))) /\ (h = (@group_carrier A (@subgroup_generated A G (@INSERT A (@group_pow A G a d) (@EMPTY A)))))). +Axiom thm_COUNT_FINITE_CYCLIC_GROUP_SUBGROUPS : forall {A : Type'}, forall G : Group A, forall d : N, ((@FINITE A (@group_carrier A G)) /\ (@cyclic_group A G)) -> (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1022 : A -> Prop => exists h : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1022 ((@subgroup_of A h G) /\ ((@CARD A h) = d)) h))) = (@COND N (num_divides d (@CARD A (@group_carrier A G))) (NUMERAL (BIT1 0%N)) (NUMERAL 0%N)). +Axiom thm_COUNT_FINITE_CYCLIC_GROUP_SUBGROUPS_ALL : forall {A : Type'}, forall G : Group A, ((@FINITE A (@group_carrier A G)) /\ (@cyclic_group A G)) -> (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1025 : A -> Prop => exists h : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1025 (@subgroup_of A h G) h))) = (@CARD N (@GSPEC N (fun GEN_PVAR_1026 : N => exists d : N, @SETSPEC N GEN_PVAR_1026 (num_divides d (@CARD A (@group_carrier A G))) d))). +Axiom thm_MAXIMAL_SUBGROUP_PRIME_INDEX : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> (forall h : A -> Prop, ((@subgroup_of A h G) /\ (@PSUBSET A n h)) -> h = (@group_carrier A G)) = ((@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1027 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1027 (@IN A x (@group_carrier A G)) (@right_coset A G n x)))) /\ (((@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1028 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1028 (@IN A x (@group_carrier A G)) (@right_coset A G n x)))) = (NUMERAL (BIT1 0%N))) \/ (prime (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1029 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1029 (@IN A x (@group_carrier A G)) (@right_coset A G n x))))))). +Axiom thm_PRIME_INDEX_MAXIMAL_PROPER_SUBGROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> ((@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1030 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1030 (@IN A x (@group_carrier A G)) (@right_coset A G n x)))) /\ (prime (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1031 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1031 (@IN A x (@group_carrier A G)) (@right_coset A G n x)))))) = ((~ (n = (@group_carrier A G))) /\ (forall h : A -> Prop, ((@subgroup_of A h G) /\ (@PSUBSET A n h)) -> h = (@group_carrier A G))). +Axiom thm_MAXIMAL_PROPER_SUBGROUP_PRIME_INDEX : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, ((@normal_subgroup_of A n G) /\ (~ (n = (@group_carrier A G)))) -> (forall h : A -> Prop, ((@subgroup_of A h G) /\ (@PSUBSET A n h)) -> h = (@group_carrier A G)) = ((@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1032 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1032 (@IN A x (@group_carrier A G)) (@right_coset A G n x)))) /\ (prime (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1033 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1033 (@IN A x (@group_carrier A G)) (@right_coset A G n x)))))). +Axiom thm_GROUP_ZPOW_CANCEL : forall {A : Type'}, forall G : Group A, forall n : Z, forall x : A, forall y : A, ((@FINITE A (@group_carrier A G)) /\ ((int_coprime (@pair Z Z n (Z_of_N (@CARD A (@group_carrier A G))))) /\ ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_zpow A G x n) = (@group_zpow A G y n)))))) -> x = y. +Axiom thm_GROUP_POW_CANCEL : forall {A : Type'}, forall G : Group A, forall n : N, forall x : A, forall y : A, ((@FINITE A (@group_carrier A G)) /\ ((num_coprime (@pair N N n (@CARD A (@group_carrier A G)))) /\ ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_pow A G x n) = (@group_pow A G y n)))))) -> x = y. +Axiom thm_finitely_generated_group : forall {A : Type'}, forall G : Group A, (@finitely_generated_group A G) = (exists s : A -> Prop, (@FINITE A s) /\ ((@subgroup_generated A G s) = G)). +Axiom thm_FINITELY_GENERATED_GROUP : forall {A : Type'}, forall G : Group A, (@finitely_generated_group A G) = (exists s : A -> Prop, (@FINITE A s) /\ ((@SUBSET A s (@group_carrier A G)) /\ ((@subgroup_generated A G s) = G))). +Axiom thm_CYCLIC_IMP_FINITELY_GENERATED_GROUP : forall {A : Type'}, forall G : Group A, (@cyclic_group A G) -> @finitely_generated_group A G. +Axiom thm_FINITE_IMP_FINITELY_GENERATED_GROUP : forall {A : Type'}, forall G : Group A, (@FINITE A (@group_carrier A G)) -> @finitely_generated_group A G. +Axiom thm_TRIVIAL_IMP_FINITELY_GENERATED_GROUP : forall {A : Type'}, forall G : Group A, (@trivial_group A G) -> @finitely_generated_group A G. +Axiom thm_FINITELY_GENERATED_GROUP_EPIMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ (@finitely_generated_group A G)) -> @finitely_generated_group B H. +Axiom thm_ISOMORPHIC_GROUP_FINITE_GENERATION : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@isomorphic_group A B G H) -> (@finitely_generated_group A G) = (@finitely_generated_group B H). +Axiom thm_FINITELY_GENERATED_GROUP_QUOTIENT_GROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, ((@finitely_generated_group A G) /\ (@normal_subgroup_of A n G)) -> @finitely_generated_group (A -> Prop) (@quotient_group A G n). +Axiom thm_FINITELY_GENERATED_IMP_COUNTABLE_GROUP : forall {A : Type'}, forall G : Group A, (@finitely_generated_group A G) -> @COUNTABLE A (@group_carrier A G). +Axiom thm_FINITELY_GENERATED_PROD_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@finitely_generated_group (prod A B) (@prod_group A B G H)) = ((@finitely_generated_group A G) /\ (@finitely_generated_group B H)). +Axiom thm_FINITELY_GENERATED_PRODUCT_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, (@finitely_generated_group (K -> A) (@product_group A K k G)) = ((@FINITE K (@GSPEC K (fun GEN_PVAR_1038 : K => exists i : K, @SETSPEC K GEN_PVAR_1038 ((@IN K i k) /\ (~ (@trivial_group A (G i)))) i))) /\ (forall i : K, (@IN K i k) -> @finitely_generated_group A (G i))). +Axiom thm_FINITELY_GENERATED_SUM_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, (@finitely_generated_group (K -> A) (@sum_group A K k G)) = ((@FINITE K (@GSPEC K (fun GEN_PVAR_1044 : K => exists i : K, @SETSPEC K GEN_PVAR_1044 ((@IN K i k) /\ (~ (@trivial_group A (G i)))) i))) /\ (forall i : K, (@IN K i k) -> @finitely_generated_group A (G i))). +Axiom thm_FINITE_GROUP_ACTIONS : forall {A B X : Type'}, forall G : Group A, forall s : X -> Prop, forall f : (A -> X -> X) -> B, ((@finitely_generated_group A G) /\ ((@FINITE X s) /\ (forall a : A -> X -> X, forall a' : A -> X -> X, (forall g : A, forall x : X, ((@IN A g (@group_carrier A G)) /\ (@IN X x s)) -> (a g x) = (a' g x)) -> (f a) = (f a')))) -> @FINITE B (@GSPEC B (fun GEN_PVAR_1045 : B => exists a : A -> X -> X, @SETSPEC B GEN_PVAR_1045 (@group_action A X G s a) (f a))). +Axiom thm_FINITELY_GENERATED_FIXED_INDEX_SUBGROUPS : forall {A : Type'}, forall G : Group A, forall n : N, (@finitely_generated_group A G) -> @FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1049 : A -> Prop => exists h : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1049 ((@subgroup_of A h G) /\ (@HAS_SIZE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1048 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1048 (@IN A x (@group_carrier A G)) (@right_coset A G h x))) n)) h)). +Axiom thm_FINITELY_GENERATED_FINITE_INDEX_SUBGROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, ((@finitely_generated_group A G) /\ ((@subgroup_of A h G) /\ (@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1051 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1051 (@IN A x (@group_carrier A G)) (@right_coset A G h x)))))) -> @finitely_generated_group A (@subgroup_generated A G h). +Axiom thm_FINITELY_GENERATED_ABELIAN_SUBGROUP_EXPLICIT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, forall h : A -> Prop, ((@FINITE A s) /\ ((@SUBSET A s (@group_carrier A G)) /\ ((@abelian_group A G) /\ (@subgroup_of A h (@subgroup_generated A G s))))) -> exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t (@group_carrier A G)) /\ ((N.le (@CARD A t) (@CARD A s)) /\ ((@subgroup_generated A G t) = (@subgroup_generated A G h)))). +Axiom thm_FINITELY_GENERATED_ABELIAN_SUBGROUP : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, ((@finitely_generated_group A G) /\ ((@abelian_group A G) /\ (@subgroup_of A h G))) -> @finitely_generated_group A (@subgroup_generated A G h). +Axiom thm_MAXIMAL_SUBGROUP_EXISTS : forall {A : Type'}, forall G : Group A, ((@finitely_generated_group A G) /\ (~ (@trivial_group A G))) -> exists h : A -> Prop, (@subgroup_of A h G) /\ ((~ (h = (@group_carrier A G))) /\ (forall h' : A -> Prop, ((@subgroup_of A h' G) /\ (@PSUBSET A h h')) -> h' = (@group_carrier A G))). +Axiom thm_MAXIMAL_NORMAL_SUBGROUP_EXISTS : forall {A : Type'}, forall G : Group A, ((@finitely_generated_group A G) /\ (~ (@trivial_group A G))) -> exists h : A -> Prop, (@normal_subgroup_of A h G) /\ ((~ (h = (@group_carrier A G))) /\ (forall h' : A -> Prop, ((@normal_subgroup_of A h' G) /\ (@PSUBSET A h h')) -> h' = (@group_carrier A G))). +Axiom thm_integer_group : integer_group = (@group Z (@pair (Z -> Prop) (prod Z (prod (Z -> Z) (Z -> Z -> Z))) (@UNIV Z) (@pair Z (prod (Z -> Z) (Z -> Z -> Z)) (Z_of_N (NUMERAL 0%N)) (@pair (Z -> Z) (Z -> Z -> Z) int_neg int_add)))). +Axiom thm_INTEGER_GROUP : ((@group_carrier Z integer_group) = (@UNIV Z)) /\ (((@group_id Z integer_group) = (Z_of_N (NUMERAL 0%N))) /\ (((@group_inv Z integer_group) = int_neg) /\ ((@group_mul Z integer_group) = int_add))). +Axiom thm_ABELIAN_INTEGER_GROUP : @abelian_group Z integer_group. +Axiom thm_INFINITE_INTEGER_GROUP : @INFINITE Z (@group_carrier Z integer_group). +Axiom thm_GROUP_POW_INTEGER_GROUP : forall x : Z, forall n : N, (@group_pow Z integer_group x n) = (int_mul (Z_of_N n) x). +Axiom thm_GROUP_ZPOW_INTEGER_GROUP : forall x : Z, forall n : Z, (@group_zpow Z integer_group x n) = (int_mul n x). +Axiom thm_GROUP_ELEMENT_ORDER_INTEGER_GROUP : forall n : Z, (@group_element_order Z integer_group n) = (@COND N (n = (Z_of_N (NUMERAL 0%N))) (NUMERAL (BIT1 0%N)) (NUMERAL 0%N)). +Axiom thm_GROUP_ENDOMORPHISM_INTEGER_GROUP_MUL : forall c : Z, @group_endomorphism Z integer_group (fun x : Z => int_mul c x). +Axiom thm_GROUP_ENDOMORPHISM_INTEGER_GROUP_EXPLICIT : forall f : Z -> Z, (@group_endomorphism Z integer_group f) -> f = (fun x : Z => int_mul (f (Z_of_N (NUMERAL (BIT1 0%N)))) x). +Axiom thm_GROUP_ENDOMORPHISM_INTEGER_GROUP_EQ_ALT : forall f : Z -> Z, (@group_endomorphism Z integer_group f) = (@ex1 Z (fun c : Z => f = (fun x : Z => int_mul c x))). +Axiom thm_GROUP_ENDOMORPHISM_INTEGER_GROUP_EQ : forall f : Z -> Z, (@group_endomorphism Z integer_group f) = (exists c : Z, f = (fun x : Z => int_mul c x)). +Axiom thm_GROUP_HOMOMORPHISM_GROUP_ZPOW : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> @group_homomorphism Z A (@pair (Group Z) (Group A) integer_group G) (@group_zpow A G x). +Axiom thm_GROUP_EPIMORPHISM_GROUP_ZPOW : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> @group_epimorphism Z A (@pair (Group Z) (Group A) integer_group (@subgroup_generated A G (@INSERT A x (@EMPTY A)))) (@group_zpow A G x). +Axiom thm_GROUP_ISOMORPHISM_GROUP_ZPOW : forall {A : Type'}, forall G : Group A, forall x : A, ((@INFINITE A (@group_carrier A (@subgroup_generated A G (@INSERT A x (@EMPTY A))))) /\ (@IN A x (@group_carrier A G))) -> @group_isomorphism Z A (@pair (Group Z) (Group A) integer_group (@subgroup_generated A G (@INSERT A x (@EMPTY A)))) (@group_zpow A G x). +Axiom thm_ISOMORPHIC_GROUP_INFINITE_CYCLIC_INTEGER : forall {A : Type'}, forall G : Group A, ((@cyclic_group A G) /\ (@INFINITE A (@group_carrier A G))) -> @isomorphic_group A Z G integer_group. +Axiom thm_ISOMORPHIC_INFINITE_CYCLIC_GROUPS : forall {A B : Type'}, forall G : Group A, forall H : Group B, ((@cyclic_group A G) /\ ((@INFINITE A (@group_carrier A G)) /\ ((@cyclic_group B H) /\ (@INFINITE B (@group_carrier B H))))) -> @isomorphic_group A B G H. +Axiom thm_integer_mod_group : forall n : N, (integer_mod_group n) = (@COND (Group Z) (n = (NUMERAL 0%N)) integer_group (@group Z (@pair (Z -> Prop) (prod Z (prod (Z -> Z) (Z -> Z -> Z))) (@GSPEC Z (fun GEN_PVAR_1055 : Z => exists m : Z, @SETSPEC Z GEN_PVAR_1055 ((int_le (Z_of_N (NUMERAL 0%N)) m) /\ (int_lt m (Z_of_N n))) m)) (@pair Z (prod (Z -> Z) (Z -> Z -> Z)) (Z_of_N (NUMERAL 0%N)) (@pair (Z -> Z) (Z -> Z -> Z) (fun a : Z => rem (int_neg a) (Z_of_N n)) (fun a : Z => fun b : Z => rem (int_add a b) (Z_of_N n))))))). +Axiom thm_INTEGER_MOD_GROUP : ((@group_carrier Z (integer_mod_group (NUMERAL 0%N))) = (@UNIV Z)) /\ ((forall n : N, (N.lt (NUMERAL 0%N) n) -> (@group_carrier Z (integer_mod_group n)) = (@GSPEC Z (fun GEN_PVAR_1056 : Z => exists m : Z, @SETSPEC Z GEN_PVAR_1056 ((int_le (Z_of_N (NUMERAL 0%N)) m) /\ (int_lt m (Z_of_N n))) m))) /\ ((forall n : N, (@group_id Z (integer_mod_group n)) = (Z_of_N (NUMERAL 0%N))) /\ ((forall n : N, (@group_inv Z (integer_mod_group n)) = (fun a : Z => rem (int_neg a) (Z_of_N n))) /\ (forall n : N, (@group_mul Z (integer_mod_group n)) = (fun a : Z => fun b : Z => rem (int_add a b) (Z_of_N n)))))). +Axiom thm_INTEGER_MOD_GROUP_TRIVIAL : (integer_mod_group (NUMERAL 0%N)) = integer_group. +Axiom thm_GROUP_CARRIER_INTEGER_MOD_GROUP : forall n : N, (@group_carrier Z (integer_mod_group n)) = (@IMAGE Z Z (fun x : Z => rem x (Z_of_N n)) (@UNIV Z)). +Axiom thm_GROUP_POW_INTEGER_MOD_GROUP : forall n : N, forall x : Z, forall m : N, (@group_pow Z (integer_mod_group n) x m) = (rem (int_mul (Z_of_N m) x) (Z_of_N n)). +Axiom thm_GROUP_ZPOW_INTEGER_MOD_GROUP : forall n : N, forall x : Z, forall m : Z, (@group_zpow Z (integer_mod_group n) x m) = (rem (int_mul m x) (Z_of_N n)). +Axiom thm_ABELIAN_INTEGER_MOD_GROUP : forall n : N, @abelian_group Z (integer_mod_group n). +Axiom thm_INTEGER_MOD_GROUP_0 : forall n : N, @IN Z (Z_of_N (NUMERAL 0%N)) (@group_carrier Z (integer_mod_group n)). +Axiom thm_INTEGER_MOD_GROUP_1R : forall n : N, forall x : Z, @IN Z (rem x (Z_of_N n)) (@group_carrier Z (integer_mod_group n)). +Axiom thm_INTEGER_MOD_GROUP_1 : forall n : N, (@IN Z (Z_of_N (NUMERAL (BIT1 0%N))) (@group_carrier Z (integer_mod_group n))) = (~ (n = (NUMERAL (BIT1 0%N)))). +Axiom thm_GROUP_HOMOMORPHISM_PROD_INTEGER_MOD_GROUP : forall m : N, forall n : N, @group_homomorphism Z (prod Z Z) (@pair (Group Z) (Group (prod Z Z)) (integer_mod_group (N.mul m n)) (@prod_group Z Z (integer_mod_group m) (integer_mod_group n))) (fun a : Z => @pair Z Z (rem a (Z_of_N m)) (rem a (Z_of_N n))). +Axiom thm_TRIVIAL_INTEGER_MOD_GROUP : forall n : N, (@trivial_group Z (integer_mod_group n)) = (n = (NUMERAL (BIT1 0%N))). +Axiom thm_NON_TRIVIAL_INTEGER_GROUP : ~ (@trivial_group Z integer_group). +Axiom thm_GROUP_ELEMENT_ORDER_INTEGER_MOD_GROUP_1 : forall n : N, (@group_element_order Z (integer_mod_group n) (Z_of_N (NUMERAL (BIT1 0%N)))) = n. +Axiom thm_GROUP_ELEMENT_ORDER_INTEGER_MOD_GROUP_1R : forall n : N, (@group_element_order Z (integer_mod_group n) (rem (Z_of_N (NUMERAL (BIT1 0%N))) (Z_of_N n))) = n. +Axiom thm_GROUP_ELEMENT_ORDER_INTEGER_MOD_GROUP : forall n : N, forall m : N, (@group_element_order Z (integer_mod_group n) (Z_of_N m)) = (@COND N ((m = (NUMERAL 0%N)) /\ (n = (NUMERAL 0%N))) (NUMERAL (BIT1 0%N)) (N.div n (num_gcd (@pair N N n m)))). +Axiom thm_INTEGER_MOD_SUBGROUP_GENERATED_BY_1R : forall n : N, (@subgroup_generated Z (integer_mod_group n) (@INSERT Z (rem (Z_of_N (NUMERAL (BIT1 0%N))) (Z_of_N n)) (@EMPTY Z))) = (integer_mod_group n). +Axiom thm_INTEGER_MOD_SUBGROUP_GENERATED_BY_1 : forall n : N, (@subgroup_generated Z (integer_mod_group n) (@INSERT Z (Z_of_N (NUMERAL (BIT1 0%N))) (@EMPTY Z))) = (integer_mod_group n). +Axiom thm_CYCLIC_GROUP_INTEGER_MOD_GROUP : forall n : N, @cyclic_group Z (integer_mod_group n). +Axiom thm_CYCLIC_INTEGER_GROUP : @cyclic_group Z integer_group. +Axiom thm_FINITE_INTEGER_MOD_GROUP : forall n : N, (@FINITE Z (@group_carrier Z (integer_mod_group n))) = (~ (n = (NUMERAL 0%N))). +Axiom thm_GROUP_EPIMORPHISM_INTEGER_MOD_GROUP_ZPOW : forall n : N, (~ (n = (NUMERAL (BIT1 0%N)))) -> @group_epimorphism Z Z (@pair (Group Z) (Group Z) integer_group (integer_mod_group n)) (@group_zpow Z (integer_mod_group n) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_GROUP_ISOMORPHISM_GROUP_ZPOW_GEN : forall {A : Type'}, forall G : Group A, forall x : A, (@IN A x (@group_carrier A G)) -> @group_isomorphism Z A (@pair (Group Z) (Group A) (integer_mod_group (@group_element_order A G x)) (@subgroup_generated A G (@INSERT A x (@EMPTY A)))) (@group_zpow A G x). +Axiom thm_ISOMORPHIC_GROUP_CYCLIC_INTEGER : forall {A : Type'}, forall G : Group A, (@cyclic_group A G) = (exists n : N, @isomorphic_group A Z G (integer_mod_group n)). +Axiom thm_ORDER_INTEGER_MOD_GROUP : forall n : N, (~ (n = (NUMERAL 0%N))) -> (@CARD Z (@group_carrier Z (integer_mod_group n))) = n. +Axiom thm_ISOMORPHIC_FINITE_CYCLIC_INTEGER_MOD_GROUP : forall {A : Type'}, forall G : Group A, ((@cyclic_group A G) /\ (@FINITE A (@group_carrier A G))) -> @isomorphic_group A Z G (integer_mod_group (@CARD A (@group_carrier A G))). +Axiom thm_ISOMORPHIC_GROUP_INTEGER_MOD_GROUP : forall {A : Type'}, (forall G : Group A, forall n : N, (@isomorphic_group A Z G (integer_mod_group n)) = ((@cyclic_group A G) /\ (((n = (NUMERAL 0%N)) /\ (@INFINITE A (@group_carrier A G))) \/ ((~ (n = (NUMERAL 0%N))) /\ (@HAS_SIZE A (@group_carrier A G) n))))) /\ (forall G : Group A, forall n : N, (@isomorphic_group Z A (integer_mod_group n) G) = ((@cyclic_group A G) /\ (((n = (NUMERAL 0%N)) /\ (@INFINITE A (@group_carrier A G))) \/ ((~ (n = (NUMERAL 0%N))) /\ (@HAS_SIZE A (@group_carrier A G) n))))). +Axiom thm_ISOMORPHIC_INTEGER_MOD_GROUPS : forall m : N, forall n : N, (@isomorphic_group Z Z (integer_mod_group m) (integer_mod_group n)) = (m = n). +Axiom thm_ISOMORPHIC_FINITE_CYCLIC_GROUPS : forall {A B : Type'}, forall G : Group A, forall H : Group B, ((@cyclic_group A G) /\ ((@cyclic_group B H) /\ ((@FINITE A (@group_carrier A G)) /\ ((@FINITE B (@group_carrier B H)) /\ ((@CARD A (@group_carrier A G)) = (@CARD B (@group_carrier B H))))))) -> @isomorphic_group A B G H. +Axiom thm_CYCLIC_IMP_COUNTABLE_GROUP : forall {A : Type'}, forall G : Group A, (@cyclic_group A G) -> @COUNTABLE A (@group_carrier A G). +Axiom thm_SUBGROUP_GENERATED_ELEMENT_ORDER : forall {A : Type'}, forall G : Group A, forall a : A, ((@FINITE A (@group_carrier A G)) /\ (@IN A a (@group_carrier A G))) -> ((@subgroup_generated A G (@INSERT A a (@EMPTY A))) = G) = ((@group_element_order A G a) = (@CARD A (@group_carrier A G))). +Axiom thm_CYCLIC_GROUP_ELEMENT_ORDER : forall {A : Type'}, forall G : Group A, (@FINITE A (@group_carrier A G)) -> (@cyclic_group A G) = (exists a : A, (@IN A a (@group_carrier A G)) /\ ((@group_element_order A G a) = (@CARD A (@group_carrier A G)))). +Axiom thm_CYCLIC_PROD_INTEGER_MOD_GROUP : forall m : N, forall n : N, (@cyclic_group (prod Z Z) (@prod_group Z Z (integer_mod_group m) (integer_mod_group n))) = (num_coprime (@pair N N m n)). +Axiom thm_GROUP_ISOMORPHISM_PROD_INTEGER_MOD_GROUP : forall m : N, forall n : N, (@group_isomorphism Z (prod Z Z) (@pair (Group Z) (Group (prod Z Z)) (integer_mod_group (N.mul m n)) (@prod_group Z Z (integer_mod_group m) (integer_mod_group n))) (fun a : Z => @pair Z Z (rem a (Z_of_N m)) (rem a (Z_of_N n)))) = (num_coprime (@pair N N m n)). +Axiom thm_ISOMORPHIC_PROD_INTEGER_MOD_GROUP : forall m : N, forall n : N, (@isomorphic_group (prod Z Z) Z (@prod_group Z Z (integer_mod_group m) (integer_mod_group n)) (integer_mod_group (N.mul m n))) = (num_coprime (@pair N N m n)). +Axiom thm_CYCLIC_PROD_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, (@cyclic_group (prod A B) (@prod_group A B G H)) = ((@cyclic_group A G) /\ ((@cyclic_group B H) /\ ((@trivial_group A G) \/ ((@trivial_group B H) \/ ((@FINITE A (@group_carrier A G)) /\ ((@FINITE B (@group_carrier B H)) /\ (num_coprime (@pair N N (@CARD A (@group_carrier A G)) (@CARD B (@group_carrier B H)))))))))). +Axiom thm_CYCLIC_PRIME_ORDER_GROUP : forall {A : Type'}, forall G : Group A, forall a : A, ((@FINITE A (@group_carrier A G)) /\ ((((@CARD A (@group_carrier A G)) = (NUMERAL (BIT1 0%N))) \/ (prime (@CARD A (@group_carrier A G)))) /\ ((@IN A a (@group_carrier A G)) /\ (~ (a = (@group_id A G)))))) -> (@subgroup_generated A G (@INSERT A a (@EMPTY A))) = G. +Axiom thm_GROUP_ELEMENT_ORDER_PRIME : forall {A : Type'} (p : N), forall G : Group A, forall a : A, ((prime p) /\ ((@HAS_SIZE A (@group_carrier A G) p) /\ (@IN A a (@group_carrier A G)))) -> (@group_element_order A G a) = (@COND N (a = (@group_id A G)) (NUMERAL (BIT1 0%N)) (@CARD A (@group_carrier A G))). +Axiom thm_GENERATOR_INTEGER_MOD_GROUP : forall n : N, forall a : Z, ((@subgroup_generated Z (integer_mod_group n) (@INSERT Z a (@EMPTY Z))) = (integer_mod_group n)) = (((N.le n (NUMERAL (BIT1 0%N))) \/ ((int_le (Z_of_N (NUMERAL 0%N)) a) /\ (int_lt a (Z_of_N n)))) /\ (int_coprime (@pair Z Z (Z_of_N n) a))). +Axiom thm_CYCLIC_GROUP_PRIME_ORDER_EQ : forall {A : Type'}, forall G : Group A, (forall a : A, ((@IN A a (@group_carrier A G)) /\ (~ (a = (@group_id A G)))) -> (@subgroup_generated A G (@INSERT A a (@EMPTY A))) = G) = ((@FINITE A (@group_carrier A G)) /\ (((@CARD A (@group_carrier A G)) = (NUMERAL (BIT1 0%N))) \/ (prime (@CARD A (@group_carrier A G))))). +Axiom thm_pgroup : forall {A : Type'}, forall G : Group A, forall s : N -> Prop, (@pgroup A s G) = (forall p : N, forall x : A, ((prime p) /\ ((@IN A x (@group_carrier A G)) /\ (num_divides p (@group_element_order A G x)))) -> @IN N p s). +Axiom thm_PGROUP_MONOMORPHIC_PREIMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall s : N -> Prop, ((@group_monomorphism A B (@pair (Group A) (Group B) G H) f) /\ (@pgroup B s H)) -> @pgroup A s G. +Axiom thm_PGROUP_EPIMORPHIC_IMAGE : forall {A B : Type'}, forall G : Group A, forall H : Group B, forall f : A -> B, forall s : N -> Prop, ((@group_epimorphism A B (@pair (Group A) (Group B) G H) f) /\ (@pgroup A s G)) -> @pgroup B s H. +Axiom thm_PGROUP_QUOTIENT_GROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall s : N -> Prop, ((@normal_subgroup_of A n G) /\ (@pgroup A s G)) -> @pgroup (A -> Prop) s (@quotient_group A G n). +Axiom thm_PGROUP_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall s : N -> Prop, forall h : A -> Prop, (@pgroup A s G) -> @pgroup A s (@subgroup_generated A G h). +Axiom thm_PGROUP_PROD_GROUP : forall {A : Type'}, forall G : Group A, forall H : Group A, forall s : N -> Prop, (@pgroup (prod A A) s (@prod_group A A G H)) = ((@pgroup A s G) /\ (@pgroup A s H)). +Axiom thm_PGROUP_EMPTY : forall {A : Type'}, forall G : Group A, (@pgroup A (@EMPTY N) G) = (@trivial_group A G). +Axiom thm_PGROUP_MONO : forall {A : Type'}, forall G : Group A, forall s : N -> Prop, forall t : N -> Prop, ((@pgroup A s G) /\ (@SUBSET N s t)) -> @pgroup A t G. +Axiom thm_PGROUP_SUM_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : K -> Group A, forall s : N -> Prop, (@pgroup (K -> A) s (@sum_group A K k G)) = (forall i : K, (@IN K i k) -> @pgroup A s (G i)). +Axiom thm_PGROUP_SING : forall {A : Type'}, forall G : Group A, forall p : N, (prime p) -> (@pgroup A (@INSERT N p (@EMPTY N)) G) = (forall x : A, (@IN A x (@group_carrier A G)) -> exists k : N, (@group_element_order A G x) = (N.pow p k)). +Axiom thm_SYLOW_THEOREM_COUNT_MOD : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ (num_divides (N.pow p k) (@CARD A (@group_carrier A G))))) -> @eq2 N (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1077 : A -> Prop => exists h : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1077 ((@subgroup_of A h G) /\ ((@CARD A h) = (N.pow p k))) h))) (NUMERAL (BIT1 0%N)) (num_mod p). +Axiom thm_SYLOW_THEOREM : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ (num_divides (N.pow p k) (@CARD A (@group_carrier A G))))) -> exists h : A -> Prop, (@subgroup_of A h G) /\ ((@CARD A h) = (N.pow p k)). +Axiom thm_CAUCHY_GROUP_THEOREM : forall {A : Type'}, forall G : Group A, forall p : N, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ (num_divides p (@CARD A (@group_carrier A G))))) -> exists x : A, (@IN A x (@group_carrier A G)) /\ ((@group_element_order A G x) = p). +Axiom thm_PRIME_DIVIDES_GROUP_ORDER : forall {A : Type'}, forall G : Group A, forall p : N, ((@FINITE A (@group_carrier A G)) /\ (prime p)) -> (exists x : A, (@IN A x (@group_carrier A G)) /\ (num_divides p (@group_element_order A G x))) = (num_divides p (@CARD A (@group_carrier A G))). +Axiom thm_COPRIME_GROUP_ORDER : forall {A : Type'}, forall G : Group A, forall n : N, (@FINITE A (@group_carrier A G)) -> (forall x : A, (@IN A x (@group_carrier A G)) -> num_coprime (@pair N N (@group_element_order A G x) n)) = (num_coprime (@pair N N (@CARD A (@group_carrier A G)) n)). +Axiom thm_FINITE_PGROUP : forall {A : Type'}, forall s : N -> Prop, forall G : Group A, (@FINITE A (@group_carrier A G)) -> (@pgroup A s G) = (forall p : N, ((prime p) /\ (num_divides p (@CARD A (@group_carrier A G)))) -> @IN N p s). +Axiom thm_FINITE_PGROUP_SING : forall {A : Type'}, forall G : Group A, forall p : N, ((@FINITE A (@group_carrier A G)) /\ (prime p)) -> (@pgroup A (@INSERT N p (@EMPTY N)) G) = (exists k : N, (@CARD A (@group_carrier A G)) = (N.pow p k)). +Axiom thm_FINITE_AND_PGROUP_SING : forall {A : Type'}, forall G : Group A, forall p : N, (prime p) -> ((@FINITE A (@group_carrier A G)) /\ (@pgroup A (@INSERT N p (@EMPTY N)) G)) = (exists k : N, @HAS_SIZE A (@group_carrier A G) (N.pow p k)). +Axiom thm_FINITE_GROUP_POW_INJECTIVE_EQ : forall {A : Type'}, forall G : Group A, forall n : N, (@FINITE A (@group_carrier A G)) -> (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_pow A G x n) = (@group_pow A G y n)))) -> x = y) = (num_coprime (@pair N N n (@CARD A (@group_carrier A G)))). +Axiom thm_FINITE_GROUP_ZPOW_INJECTIVE_EQ : forall {A : Type'}, forall G : Group A, forall n : Z, (@FINITE A (@group_carrier A G)) -> (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A y (@group_carrier A G)) /\ ((@group_zpow A G x n) = (@group_zpow A G y n)))) -> x = y) = (int_coprime (@pair Z Z n (Z_of_N (@CARD A (@group_carrier A G))))). +Axiom thm_FINITE_GROUP_POW_SURJECTIVE_EQ : forall {A : Type'}, forall G : Group A, forall n : N, (@FINITE A (@group_carrier A G)) -> (forall x : A, (@IN A x (@group_carrier A G)) -> exists y : A, (@IN A y (@group_carrier A G)) /\ ((@group_pow A G y n) = x)) = (num_coprime (@pair N N n (@CARD A (@group_carrier A G)))). +Axiom thm_FINITE_GROUP_ZPOW_SURJECTIVE_EQ : forall {A : Type'}, forall G : Group A, forall n : Z, (@FINITE A (@group_carrier A G)) -> (forall x : A, (@IN A x (@group_carrier A G)) -> exists y : A, (@IN A y (@group_carrier A G)) /\ ((@group_zpow A G y n) = x)) = (int_coprime (@pair Z Z n (Z_of_N (@CARD A (@group_carrier A G))))). +Axiom thm_FINITE_GROUP_ZROOT_EXISTS : forall {A : Type'}, forall G : Group A, forall n : Z, forall x : A, ((@FINITE A (@group_carrier A G)) /\ ((int_coprime (@pair Z Z n (Z_of_N (@CARD A (@group_carrier A G))))) /\ (@IN A x (@group_carrier A G)))) -> exists y : A, (@IN A y (@group_carrier A G)) /\ ((@group_zpow A G y n) = x). +Axiom thm_FINITE_GROUP_ROOT_EXISTS : forall {A : Type'}, forall G : Group A, forall n : N, forall x : A, ((@FINITE A (@group_carrier A G)) /\ ((num_coprime (@pair N N n (@CARD A (@group_carrier A G)))) /\ (@IN A x (@group_carrier A G)))) -> exists y : A, (@IN A y (@group_carrier A G)) /\ ((@group_pow A G y n) = x). +Axiom thm_ABELIAN_GROUP_MONOMORPHISM_POWERING_EQ : forall {A : Type'}, forall G : Group A, forall n : N, ((@abelian_group A G) /\ (@FINITE A (@group_carrier A G))) -> (@group_monomorphism A A (@pair (Group A) (Group A) G G) (fun x : A => @group_pow A G x n)) = (num_coprime (@pair N N n (@CARD A (@group_carrier A G)))). +Axiom thm_ABELIAN_GROUP_MONOMORPHISM_POWERING : forall {A : Type'}, forall G : Group A, forall n : N, ((@abelian_group A G) /\ ((@FINITE A (@group_carrier A G)) /\ (num_coprime (@pair N N n (@CARD A (@group_carrier A G)))))) -> @group_monomorphism A A (@pair (Group A) (Group A) G G) (fun x : A => @group_pow A G x n). +Axiom thm_ABELIAN_GROUP_ISOMORPHISM_POWERING_EQ : forall {A : Type'}, forall G : Group A, forall n : N, ((@abelian_group A G) /\ (@FINITE A (@group_carrier A G))) -> (@group_isomorphism A A (@pair (Group A) (Group A) G G) (fun x : A => @group_pow A G x n)) = (num_coprime (@pair N N n (@CARD A (@group_carrier A G)))). +Axiom thm_ABELIAN_GROUP_ISOMORPHISM_POWERING : forall {A : Type'}, forall G : Group A, forall n : N, ((@abelian_group A G) /\ ((@FINITE A (@group_carrier A G)) /\ (num_coprime (@pair N N n (@CARD A (@group_carrier A G)))))) -> @group_isomorphism A A (@pair (Group A) (Group A) G G) (fun x : A => @group_pow A G x n). +Axiom thm_ABELIAN_GROUP_EPIMORPHISM_POWERING_EQ : forall {A : Type'}, forall G : Group A, forall n : N, ((@abelian_group A G) /\ (@FINITE A (@group_carrier A G))) -> (@group_epimorphism A A (@pair (Group A) (Group A) G G) (fun x : A => @group_pow A G x n)) = (num_coprime (@pair N N n (@CARD A (@group_carrier A G)))). +Axiom thm_ABELIAN_GROUP_EPIMORPHISM_POWERING : forall {A : Type'}, forall G : Group A, forall n : N, ((@abelian_group A G) /\ ((@FINITE A (@group_carrier A G)) /\ (num_coprime (@pair N N n (@CARD A (@group_carrier A G)))))) -> @group_epimorphism A A (@pair (Group A) (Group A) G G) (fun x : A => @group_pow A G x n). +Axiom thm_PGROUP_ACTION_FIXPOINTS : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall p : N, ((@group_action A X G s a) /\ ((@FINITE X s) /\ ((prime p) /\ ((@FINITE A (@group_carrier A G)) /\ (@pgroup A (@INSERT N p (@EMPTY N)) G))))) -> @eq2 N (@CARD X (@GSPEC X (fun GEN_PVAR_1083 : X => exists x : X, @SETSPEC X GEN_PVAR_1083 ((@IN X x s) /\ (forall g : A, (@IN A g (@group_carrier A G)) -> (a g x) = x)) x))) (@CARD X s) (num_mod p). +Axiom thm_PGROUP_ACTION_FIXPOINT : forall {A X : Type'}, forall G : Group A, forall s : X -> Prop, forall a : A -> X -> X, forall p : N, ((@group_action A X G s a) /\ ((prime p) /\ ((@FINITE A (@group_carrier A G)) /\ ((@pgroup A (@INSERT N p (@EMPTY N)) G) /\ ((@FINITE X s) /\ (~ (num_divides p (@CARD X s)))))))) -> exists x : X, (@IN X x s) /\ (forall g : A, (@IN A g (@group_carrier A G)) -> (a g x) = x). +Axiom thm_SYLOW_THEOREM_CONJUGATE_GEN : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, forall h : A -> Prop, forall j : A -> Prop, ((prime p) /\ ((@subgroup_of A h G) /\ ((@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1085 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1085 (@IN A x (@group_carrier A G)) (@left_coset A G x h)))) /\ ((~ (num_divides p (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1086 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1086 (@IN A x (@group_carrier A G)) (@left_coset A G x h)))))) /\ ((@subgroup_of A j G) /\ ((@FINITE A j) /\ ((@CARD A j) = (N.pow p k)))))))) -> exists a : A, (@IN A a (@group_carrier A G)) /\ (@SUBSET A j (@IMAGE A A (@group_conjugation A G a) h)). +Axiom thm_SYLOW_THEOREM_CONJUGATE_SUBSET : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, forall l : N, forall h : A -> Prop, forall j : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ ((~ (num_divides (N.pow p (N.add k (NUMERAL (BIT1 0%N)))) (@CARD A (@group_carrier A G)))) /\ ((@subgroup_of A h G) /\ (((@CARD A h) = (N.pow p k)) /\ ((@subgroup_of A j G) /\ ((@CARD A j) = (N.pow p l)))))))) -> exists a : A, (@IN A a (@group_carrier A G)) /\ (@SUBSET A j (@IMAGE A A (@group_conjugation A G a) h)). +Axiom thm_SYLOW_THEOREM_CONJUGATE_ALT : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, forall h : A -> Prop, forall h' : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ ((~ (num_divides (N.pow p (N.add k (NUMERAL (BIT1 0%N)))) (@CARD A (@group_carrier A G)))) /\ ((@subgroup_of A h G) /\ (((@CARD A h) = (N.pow p k)) /\ ((@subgroup_of A h' G) /\ ((@CARD A h') = (N.pow p k)))))))) -> @group_conjugate A G h h'. +Axiom thm_SYLOW_THEOREM_CONJUGATE : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, forall h : A -> Prop, forall h' : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ (((index p (@CARD A (@group_carrier A G))) = k) /\ ((@subgroup_of A h G) /\ (((@CARD A h) = (N.pow p k)) /\ ((@subgroup_of A h' G) /\ ((@CARD A h') = (N.pow p k)))))))) -> @group_conjugate A G h h'. +Axiom thm_SYLOW_THEOREM_CONJUGATE_EQ : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, forall h : A -> Prop, forall h' : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ (((index p (@CARD A (@group_carrier A G))) = k) /\ ((@subgroup_of A h G) /\ ((@CARD A h) = (N.pow p k)))))) -> ((@subgroup_of A h' G) /\ ((@CARD A h') = (N.pow p k))) = (@group_conjugate A G h h'). +Axiom thm_SYLOW_THEOREM_PGROUP_SUPERSET : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, forall h : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ ((@subgroup_of A h G) /\ ((@CARD A h) = (N.pow p k))))) -> exists h' : A -> Prop, (@subgroup_of A h' G) /\ ((@SUBSET A h h') /\ ((@CARD A h') = (N.pow p (index p (@CARD A (@group_carrier A G)))))). +Axiom thm_SYLOW_THEOREM_NORMAL_UNIQUE : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, forall h : A -> Prop, forall h' : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ (((index p (@CARD A (@group_carrier A G))) = k) /\ ((@normal_subgroup_of A h G) /\ ((@CARD A h) = (N.pow p k)))))) -> ((@subgroup_of A h' G) /\ ((@CARD A h') = (N.pow p k))) = (h' = h). +Axiom thm_SYLOW_THEOREM_COUNT_NORMALIZER : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall p : N, forall k : N, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ (((index p (@CARD A (@group_carrier A G))) = k) /\ ((@subgroup_of A h G) /\ ((@CARD A h) = (N.pow p k)))))) -> (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1087 : A -> Prop => exists h' : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1087 ((@subgroup_of A h' G) /\ ((@CARD A h') = (N.pow p k))) h'))) = (N.div (@CARD A (@group_carrier A G)) (@CARD A (@group_normalizer A G h))). +Axiom thm_SYLOW_THEOREM_COUNT_NORMALIZER_MUL : forall {A : Type'}, forall G : Group A, forall h : A -> Prop, forall p : N, forall k : N, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ (((index p (@CARD A (@group_carrier A G))) = k) /\ ((@subgroup_of A h G) /\ ((@CARD A h) = (N.pow p k)))))) -> (N.mul (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1088 : A -> Prop => exists h' : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1088 ((@subgroup_of A h' G) /\ ((@CARD A h') = (N.pow p k))) h'))) (@CARD A (@group_normalizer A G h))) = (@CARD A (@group_carrier A G)). +Axiom thm_SYLOW_THEOREM_NORMAL_UNIQUE_EQ : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, forall h : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ (((index p (@CARD A (@group_carrier A G))) = k) /\ ((@subgroup_of A h G) /\ ((@CARD A h) = (N.pow p k)))))) -> (forall h' : A -> Prop, ((@subgroup_of A h' G) /\ ((@CARD A h') = (N.pow p k))) = (h' = h)) = (@normal_subgroup_of A h G). +Axiom thm_SYLOW_THEOREM_UNIQUE : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ ((index p (@CARD A (@group_carrier A G))) = k))) -> (@ex1 (A -> Prop) (fun h : A -> Prop => (@subgroup_of A h G) /\ ((@CARD A h) = (N.pow p k)))) = (exists h : A -> Prop, (@normal_subgroup_of A h G) /\ ((@CARD A h) = (N.pow p k))). +Axiom thm_SYLOW_THEOREM_COUNT_DIVISOR : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ ((index p (@CARD A (@group_carrier A G))) = k))) -> num_divides (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1090 : A -> Prop => exists h : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1090 ((@subgroup_of A h G) /\ ((@CARD A h) = (N.pow p k))) h))) (N.div (@CARD A (@group_carrier A G)) (N.pow p k)). +Axiom thm_PGROUP_NONTRIVIAL_CENTRE_GEN : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, forall p : N, ((prime p) /\ ((@FINITE A (@group_carrier A G)) /\ ((@pgroup A (@INSERT N p (@EMPTY N)) G) /\ ((@normal_subgroup_of A n G) /\ (~ (n = (@INSERT A (@group_id A G) (@EMPTY A)))))))) -> @PSUBSET A (@INSERT A (@group_id A G) (@EMPTY A)) (@INTER A (@group_centralizer A G (@group_carrier A G)) n). +Axiom thm_PGROUP_NONTRIVIAL_CENTRE : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, ((prime p) /\ ((~ (k = (NUMERAL 0%N))) /\ (@HAS_SIZE A (@group_carrier A G) (N.pow p k)))) -> @PSUBSET A (@INSERT A (@group_id A G) (@EMPTY A)) (@group_centralizer A G (@group_carrier A G)). +Axiom thm_PGROUP_DIVIDES_NORMALIZER_QUOTIENT : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, forall h : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ ((@subgroup_of A h G) /\ (((@CARD A h) = (N.pow p k)) /\ (num_divides p (N.div (@CARD A (@group_carrier A G)) (@CARD A h))))))) -> num_divides p (N.div (@CARD A (@group_normalizer A G h)) (@CARD A h)). +Axiom thm_PGROUP_SUBGROUP_PSUBSET_NORMALIZER : forall {A : Type'}, forall G : Group A, forall p : N, forall h : A -> Prop, ((prime p) /\ ((@FINITE A (@group_carrier A G)) /\ ((@pgroup A (@INSERT N p (@EMPTY N)) G) /\ ((@subgroup_of A h G) /\ (~ (h = (@group_carrier A G))))))) -> @PSUBSET A h (@group_normalizer A G h). +Axiom thm_PGROUP_MAXIMAL_NORMAL_SUBGROUP_OF : forall {A : Type'}, forall G : Group A, forall p : N, forall h : A -> Prop, ((prime p) /\ ((@FINITE A (@group_carrier A G)) /\ ((@pgroup A (@INSERT N p (@EMPTY N)) G) /\ ((@subgroup_of A h G) /\ (forall h' : A -> Prop, ((@subgroup_of A h' G) /\ (@PSUBSET A h h')) -> h' = (@group_carrier A G)))))) -> @normal_subgroup_of A h G. +Axiom thm_PGROUP_FRATTINI : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, forall h : A -> Prop, forall j : A -> Prop, ((prime p) /\ ((@FINITE A j) /\ ((@normal_subgroup_of A j G) /\ ((@SUBSET A h j) /\ ((@subgroup_of A h G) /\ (((index p (@CARD A j)) = k) /\ ((@CARD A h) = (N.pow p k)))))))) -> (@group_setmul A G (@group_normalizer A G h) j) = (@group_carrier A G). +Axiom thm_PGROUP_SELF_NORMALIZER : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, forall s : A -> Prop, forall h : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ (((index p (@CARD A (@group_carrier A G))) = k) /\ ((@subgroup_of A s G) /\ (((@CARD A s) = (N.pow p k)) /\ ((@subgroup_of A h G) /\ (@SUBSET A (@group_normalizer A G s) h))))))) -> (@group_normalizer A G h) = h. +Axiom thm_PGROUP_NORMALIZER_NORMALIZER : forall {A : Type'}, forall G : Group A, forall p : N, forall k : N, forall h : A -> Prop, ((@FINITE A (@group_carrier A G)) /\ ((prime p) /\ (((index p (@CARD A (@group_carrier A G))) = k) /\ ((@subgroup_of A h G) /\ ((@CARD A h) = (N.pow p k)))))) -> (@group_normalizer A G (@group_normalizer A G h)) = (@group_normalizer A G h). +Axiom thm_GROUP_DISJOINT_SUM_ALT : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@subgroup_of A h G)) -> (@SUBSET A (@INTER A g h) (@INSERT A (@group_id A G) (@EMPTY A))) = ((@INTER A g h) = (@INSERT A (@group_id A G) (@EMPTY A))). +Axiom thm_GROUP_DISJOINT_SUM_ID : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@subgroup_of A h G)) -> (@SUBSET A (@INTER A g h) (@INSERT A (@group_id A G) (@EMPTY A))) = (forall x : A, forall y : A, ((@IN A x g) /\ ((@IN A y h) /\ ((@group_mul A G x y) = (@group_id A G)))) -> (x = (@group_id A G)) /\ (y = (@group_id A G))). +Axiom thm_GROUP_DISJOINT_SUM_CANCEL : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@subgroup_of A h G)) -> (@SUBSET A (@INTER A g h) (@INSERT A (@group_id A G) (@EMPTY A))) = (forall x : A, forall x' : A, forall y : A, forall y' : A, ((@IN A x g) /\ ((@IN A x' g) /\ ((@IN A y h) /\ ((@IN A y' h) /\ ((@group_mul A G x y) = (@group_mul A G x' y')))))) -> (x = x') /\ (y = y')). +Axiom thm_GROUP_SUM_COMMUTING_IMP_NORMAL : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ ((@subgroup_of A h G) /\ ((@SUBSET A (@group_carrier A G) (@group_setmul A G g h)) /\ (forall x : A, forall y : A, ((@IN A x g) /\ (@IN A y h)) -> (@group_mul A G x y) = (@group_mul A G y x))))) -> (@normal_subgroup_of A g G) /\ (@normal_subgroup_of A h G). +Axiom thm_GROUP_SUM_NORMAL_IMP_COMMUTING : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@normal_subgroup_of A g G) /\ ((@normal_subgroup_of A h G) /\ (@SUBSET A (@INTER A g h) (@INSERT A (@group_id A G) (@EMPTY A))))) -> forall x : A, forall y : A, ((@IN A x g) /\ (@IN A y h)) -> (@group_mul A G x y) = (@group_mul A G y x). +Axiom thm_GROUP_SUM_NORMAL_EQ_COMMUTING : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ ((@subgroup_of A h G) /\ ((@SUBSET A (@group_carrier A G) (@group_setmul A G g h)) /\ (@SUBSET A (@INTER A g h) (@INSERT A (@group_id A G) (@EMPTY A)))))) -> ((@normal_subgroup_of A g G) /\ (@normal_subgroup_of A h G)) = (forall x : A, forall y : A, ((@IN A x g) /\ (@IN A y h)) -> (@group_mul A G x y) = (@group_mul A G y x)). +Axiom thm_GROUP_HOMOMORPHISM_GROUP_MUL_GEN : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, (@group_homomorphism (prod A A) A (@pair (Group (prod A A)) (Group A) (@prod_group A A (@subgroup_generated A G g) (@subgroup_generated A G h)) G) (@GABS ((prod A A) -> A) (fun f : (prod A A) -> A => forall x : A, forall y : A, @GEQ A (f (@pair A A x y)) (@group_mul A G x y)))) = (forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A x g) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A y h)))) -> (@group_mul A G x y) = (@group_mul A G y x)). +Axiom thm_GROUP_HOMOMORPHISM_GROUP_MUL_EQ : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@subgroup_of A h G)) -> (@group_homomorphism (prod A A) A (@pair (Group (prod A A)) (Group A) (@prod_group A A (@subgroup_generated A G g) (@subgroup_generated A G h)) G) (@GABS ((prod A A) -> A) (fun f : (prod A A) -> A => forall x : A, forall y : A, @GEQ A (f (@pair A A x y)) (@group_mul A G x y)))) = (forall x : A, forall y : A, ((@IN A x g) /\ (@IN A y h)) -> (@group_mul A G x y) = (@group_mul A G y x)). +Axiom thm_GROUP_HOMOMORPHISM_GROUP_MUL : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, (@abelian_group A G) -> @group_homomorphism (prod A A) A (@pair (Group (prod A A)) (Group A) (@prod_group A A (@subgroup_generated A G g) (@subgroup_generated A G h)) G) (@GABS ((prod A A) -> A) (fun f : (prod A A) -> A => forall x : A, forall y : A, @GEQ A (f (@pair A A x y)) (@group_mul A G x y))). +Axiom thm_GROUP_EPIMORPHISM_GROUP_MUL_EQ : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@subgroup_of A h G)) -> (@group_epimorphism (prod A A) A (@pair (Group (prod A A)) (Group A) (@prod_group A A (@subgroup_generated A G g) (@subgroup_generated A G h)) G) (@GABS ((prod A A) -> A) (fun f : (prod A A) -> A => forall x : A, forall y : A, @GEQ A (f (@pair A A x y)) (@group_mul A G x y)))) = (((@group_setmul A G g h) = (@group_carrier A G)) /\ (forall x : A, forall y : A, ((@IN A x g) /\ (@IN A y h)) -> (@group_mul A G x y) = (@group_mul A G y x))). +Axiom thm_GROUP_MONOMORPHISM_GROUP_MUL_EQ : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@subgroup_of A h G)) -> (@group_monomorphism (prod A A) A (@pair (Group (prod A A)) (Group A) (@prod_group A A (@subgroup_generated A G g) (@subgroup_generated A G h)) G) (@GABS ((prod A A) -> A) (fun f : (prod A A) -> A => forall x : A, forall y : A, @GEQ A (f (@pair A A x y)) (@group_mul A G x y)))) = (((@INTER A g h) = (@INSERT A (@group_id A G) (@EMPTY A))) /\ (forall x : A, forall y : A, ((@IN A x g) /\ (@IN A y h)) -> (@group_mul A G x y) = (@group_mul A G y x))). +Axiom thm_GROUP_ISOMORPHISM_GROUP_MUL_ALT : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@subgroup_of A h G)) -> (@group_isomorphism (prod A A) A (@pair (Group (prod A A)) (Group A) (@prod_group A A (@subgroup_generated A G g) (@subgroup_generated A G h)) G) (@GABS ((prod A A) -> A) (fun f : (prod A A) -> A => forall x : A, forall y : A, @GEQ A (f (@pair A A x y)) (@group_mul A G x y)))) = (((@INTER A g h) = (@INSERT A (@group_id A G) (@EMPTY A))) /\ (((@group_setmul A G g h) = (@group_carrier A G)) /\ (forall x : A, forall y : A, ((@IN A x g) /\ (@IN A y h)) -> (@group_mul A G x y) = (@group_mul A G y x)))). +Axiom thm_GROUP_ISOMORPHISM_GROUP_MUL_EQ : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@subgroup_of A g G) /\ (@subgroup_of A h G)) -> (@group_isomorphism (prod A A) A (@pair (Group (prod A A)) (Group A) (@prod_group A A (@subgroup_generated A G g) (@subgroup_generated A G h)) G) (@GABS ((prod A A) -> A) (fun f : (prod A A) -> A => forall x : A, forall y : A, @GEQ A (f (@pair A A x y)) (@group_mul A G x y)))) = ((@normal_subgroup_of A g G) /\ ((@normal_subgroup_of A h G) /\ (((@INTER A g h) = (@INSERT A (@group_id A G) (@EMPTY A))) /\ ((@group_setmul A G g h) = (@group_carrier A G))))). +Axiom thm_GROUP_ISOMORPHISM_GROUP_MUL_GEN : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@normal_subgroup_of A g G) /\ (@normal_subgroup_of A h G)) -> (@group_isomorphism (prod A A) A (@pair (Group (prod A A)) (Group A) (@prod_group A A (@subgroup_generated A G g) (@subgroup_generated A G h)) G) (@GABS ((prod A A) -> A) (fun f : (prod A A) -> A => forall x : A, forall y : A, @GEQ A (f (@pair A A x y)) (@group_mul A G x y)))) = ((@SUBSET A (@INTER A g h) (@INSERT A (@group_id A G) (@EMPTY A))) /\ ((@group_setmul A G g h) = (@group_carrier A G))). +Axiom thm_GROUP_ISOMORPHISM_GROUP_MUL : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@abelian_group A G) /\ ((@subgroup_of A g G) /\ (@subgroup_of A h G))) -> (@group_isomorphism (prod A A) A (@pair (Group (prod A A)) (Group A) (@prod_group A A (@subgroup_generated A G g) (@subgroup_generated A G h)) G) (@GABS ((prod A A) -> A) (fun f : (prod A A) -> A => forall x : A, forall y : A, @GEQ A (f (@pair A A x y)) (@group_mul A G x y)))) = ((@SUBSET A (@INTER A g h) (@INSERT A (@group_id A G) (@EMPTY A))) /\ ((@group_setmul A G g h) = (@group_carrier A G))). +Axiom thm_ISOMORPHIC_PROD_GROUP_SUBGROUP_GENERATED : forall {A : Type'}, forall G : Group A, forall g : A -> Prop, forall h : A -> Prop, ((@normal_subgroup_of A g G) /\ ((@normal_subgroup_of A h G) /\ ((@INTER A g h) = (@INSERT A (@group_id A G) (@EMPTY A))))) -> @isomorphic_group (prod A A) A (@prod_group A A (@subgroup_generated A G g) (@subgroup_generated A G h)) (@subgroup_generated A G (@group_setmul A G g h)). +Axiom thm_GROUP_INTER_IM_KER : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall G : Group A, forall H : Group B, forall K : Group C, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) H K) g) /\ (@group_monomorphism A C (@pair (Group A) (Group C) G K) (@o A B C g f)))) -> (@INTER B (@group_image A B (@pair (Group A) (Group B) G H) f) (@group_kernel B C (@pair (Group B) (Group C) H K) g)) = (@INSERT B (@group_id B H) (@EMPTY B)). +Axiom thm_GROUP_SUM_IM_KER : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall G : Group A, forall H : Group B, forall K : Group C, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) H K) g) /\ (@group_epimorphism A C (@pair (Group A) (Group C) G K) (@o A B C g f)))) -> (@group_setmul B H (@group_image A B (@pair (Group A) (Group B) G H) f) (@group_kernel B C (@pair (Group B) (Group C) H K) g)) = (@group_carrier B H). +Axiom thm_GROUP_SUM_KER_IM : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall G : Group A, forall H : Group B, forall K : Group C, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) H K) g) /\ (@group_epimorphism A C (@pair (Group A) (Group C) G K) (@o A B C g f)))) -> (@group_setmul B H (@group_kernel B C (@pair (Group B) (Group C) H K) g) (@group_image A B (@pair (Group A) (Group B) G H) f)) = (@group_carrier B H). +Axiom thm_GROUP_SEMIDIRECT_SUM_IM_KER : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall G : Group A, forall H : Group B, forall K : Group C, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) H K) g) /\ (@group_isomorphism A C (@pair (Group A) (Group C) G K) (@o A B C g f)))) -> ((@INTER B (@group_image A B (@pair (Group A) (Group B) G H) f) (@group_kernel B C (@pair (Group B) (Group C) H K) g)) = (@INSERT B (@group_id B H) (@EMPTY B))) /\ ((@group_setmul B H (@group_image A B (@pair (Group A) (Group B) G H) f) (@group_kernel B C (@pair (Group B) (Group C) H K) g)) = (@group_carrier B H)). +Axiom thm_GROUP_SEMIDIRECT_SUM_KER_IM : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall G : Group A, forall H : Group B, forall K : Group C, ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) H K) g) /\ (@group_isomorphism A C (@pair (Group A) (Group C) G K) (@o A B C g f)))) -> ((@INTER B (@group_kernel B C (@pair (Group B) (Group C) H K) g) (@group_image A B (@pair (Group A) (Group B) G H) f)) = (@INSERT B (@group_id B H) (@EMPTY B))) /\ ((@group_setmul B H (@group_kernel B C (@pair (Group B) (Group C) H K) g) (@group_image A B (@pair (Group A) (Group B) G H) f)) = (@group_carrier B H)). +Axiom thm_GROUP_ISOMORPHISM_GROUP_MUL_IM_KER : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall G : Group A, forall H : Group B, forall K : Group C, ((@abelian_group B H) /\ ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) H K) g) /\ (@group_isomorphism A C (@pair (Group A) (Group C) G K) (@o A B C g f))))) -> @group_isomorphism (prod B B) B (@pair (Group (prod B B)) (Group B) (@prod_group B B (@subgroup_generated B H (@group_image A B (@pair (Group A) (Group B) G H) f)) (@subgroup_generated B H (@group_kernel B C (@pair (Group B) (Group C) H K) g))) H) (@GABS ((prod B B) -> B) (fun f' : (prod B B) -> B => forall x : B, forall y : B, @GEQ B (f' (@pair B B x y)) (@group_mul B H x y))). +Axiom thm_GROUP_ISOMORPHISM_GROUP_MUL_KER_IM : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall G : Group A, forall H : Group B, forall K : Group C, ((@abelian_group B H) /\ ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) H K) g) /\ (@group_isomorphism A C (@pair (Group A) (Group C) G K) (@o A B C g f))))) -> @group_isomorphism (prod B B) B (@pair (Group (prod B B)) (Group B) (@prod_group B B (@subgroup_generated B H (@group_kernel B C (@pair (Group B) (Group C) H K) g)) (@subgroup_generated B H (@group_image A B (@pair (Group A) (Group B) G H) f))) H) (@GABS ((prod B B) -> B) (fun f' : (prod B B) -> B => forall x : B, forall y : B, @GEQ B (f' (@pair B B x y)) (@group_mul B H x y))). +Axiom thm_GROUP_HOMOMORPHISM_GROUP_SUM_GEN : forall {A K : Type'}, forall k : K -> Prop, forall l : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (@SUBSET K k l) -> (@group_homomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K l (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k)) = (@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A x (h i)) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A y (h j))))) -> (@group_mul A G x y) = (@group_mul A G y x)) k). +Axiom thm_GROUP_HOMOMORPHISM_GROUP_SUM_EQ : forall {A K : Type'}, forall k : K -> Prop, forall l : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((@SUBSET K k l) /\ (forall i : K, (@IN K i k) -> @subgroup_of A (h i) G)) -> (@group_homomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K l (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k)) = (@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k). +Axiom thm_GROUP_HOMOMORPHISM_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) -> @group_homomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k). +Axiom thm_GROUP_HOMOMORPHISM_ABELIAN_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (@abelian_group A G) -> @group_homomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k). +Axiom thm_ABELIAN_GROUP_HOMOMORPHISM_GROUP_SUM : forall {A B K : Type'}, forall f : K -> A -> B, forall k : K -> Prop, forall A' : K -> Group A, forall B' : Group B, ((@abelian_group B B') /\ (forall i : K, (@IN K i k) -> @group_homomorphism A B (@pair (Group A) (Group B) (A' i) B') (f i))) -> @group_homomorphism (K -> A) B (@pair (Group (K -> A)) (Group B) (@sum_group A K k A') B') (fun x : K -> A => @group_sum B K B' k (fun i : K => f i (x i))). +Axiom thm_SUBGROUP_EPIMORPHISM_GROUP_SUM_GEN : forall {A K : Type'}, forall k : K -> Prop, forall l : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (@SUBSET K k l) -> (@group_epimorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K l (fun i : K => @subgroup_generated A G (h i))) (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1102 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1102 (@IN K i k) (h i)))))) (@group_sum A K G k)) = (@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A x (h i)) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A y (h j))))) -> (@group_mul A G x y) = (@group_mul A G y x)) k). +Axiom thm_SUBGROUP_EPIMORPHISM_GROUP_SUM_EQ : forall {A K : Type'}, forall k : K -> Prop, forall l : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((@SUBSET K k l) /\ (forall i : K, (@IN K i k) -> @subgroup_of A (h i) G)) -> (@group_epimorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K l (fun i : K => @subgroup_generated A G (h i))) (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1103 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1103 (@IN K i k) (h i)))))) (@group_sum A K G k)) = (@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k). +Axiom thm_SUBGROUP_EPIMORPHISM_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) -> @group_epimorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1104 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1104 (@IN K i k) (h i)))))) (@group_sum A K G k). +Axiom thm_SUBGROUP_EPIMORPHISM_ABELIAN_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (@abelian_group A G) -> @group_epimorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1105 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1105 (@IN K i k) (h i)))))) (@group_sum A K G k). +Axiom thm_GROUP_EPIMORPHISM_GROUP_SUM_GEN : forall {A K : Type'}, forall k : K -> Prop, forall l : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (@SUBSET K k l) -> (@group_epimorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K l (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k)) = ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A x (h i)) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A y (h j))))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ ((@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1106 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1106 (@IN K i k) (h i))))) = G)). +Axiom thm_GROUP_EPIMORPHISM_GROUP_SUM_EQ : forall {A K : Type'}, forall k : K -> Prop, forall l : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((@SUBSET K k l) /\ (forall i : K, (@IN K i k) -> @subgroup_of A (h i) G)) -> (@group_epimorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K l (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k)) = ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ ((@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1107 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1107 (@IN K i k) (h i))))) = G)). +Axiom thm_GROUP_EPIMORPHISM_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ ((@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1108 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1108 (@IN K i k) (h i))))) = G)) -> @group_epimorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k). +Axiom thm_GROUP_EPIMORPHISM_ABELIAN_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((@abelian_group A G) /\ ((@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1109 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1109 (@IN K i k) (h i))))) = G)) -> @group_epimorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k). +Axiom thm_GROUP_MONOMORPHISM_GROUP_SUM_GEN : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (@group_monomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k)) = ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A x (h i)) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A y (h j))))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ (forall i : K, (@IN K i k) -> (@INTER A (@group_carrier A (@subgroup_generated A G (h i))) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1110 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1110 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A)))). +Axiom thm_GROUP_MONOMORPHISM_GROUP_SUM_EQ : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (forall i : K, (@IN K i k) -> @subgroup_of A (h i) G) -> (@group_monomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k)) = ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ (forall i : K, (@IN K i k) -> (@INTER A (h i) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1111 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1111 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A)))). +Axiom thm_GROUP_MONOMORPHISM_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((forall i : K, (@IN K i k) -> @subgroup_of A (h i) G) /\ ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ (forall i : K, (@IN K i k) -> (@INTER A (h i) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1112 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1112 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A))))) -> @group_monomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k). +Axiom thm_GROUP_MONOMORPHISM_ABELIAN_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((@abelian_group A G) /\ ((forall i : K, (@IN K i k) -> @subgroup_of A (h i) G) /\ (forall i : K, (@IN K i k) -> (@INTER A (h i) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1113 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1113 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A))))) -> @group_monomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k). +Axiom thm_SUBGROUP_ISOMORPHISM_GROUP_SUM_GEN : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (@group_isomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1114 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1114 (@IN K i k) (h i)))))) (@group_sum A K G k)) = ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A x (h i)) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A y (h j))))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ (forall i : K, (@IN K i k) -> (@INTER A (@group_carrier A (@subgroup_generated A G (h i))) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1115 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1115 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A)))). +Axiom thm_SUBGROUP_ISOMORPHISM_GROUP_SUM_EQ : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (forall i : K, (@IN K i k) -> @subgroup_of A (h i) G) -> (@group_isomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1116 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1116 (@IN K i k) (h i)))))) (@group_sum A K G k)) = ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ (forall i : K, (@IN K i k) -> (@INTER A (h i) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1117 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1117 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A)))). +Axiom thm_SUBGROUP_ISOMORPHISM_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((forall i : K, (@IN K i k) -> @subgroup_of A (h i) G) /\ ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ (forall i : K, (@IN K i k) -> (@INTER A (h i) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1118 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1118 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A))))) -> @group_isomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1119 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1119 (@IN K i k) (h i)))))) (@group_sum A K G k). +Axiom thm_SUBGROUP_ISOMORPHISM_ABELIAN_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((@abelian_group A G) /\ ((forall i : K, (@IN K i k) -> @subgroup_of A (h i) G) /\ (forall i : K, (@IN K i k) -> (@INTER A (h i) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1120 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1120 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A))))) -> @group_isomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1121 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1121 (@IN K i k) (h i)))))) (@group_sum A K G k). +Axiom thm_GROUP_ISOMORPHISM_GROUP_SUM_GEN : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (@group_isomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k)) = ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A x (h i)) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A y (h j))))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ (((@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1122 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1122 (@IN K i k) (h i))))) = G) /\ (forall i : K, (@IN K i k) -> (@INTER A (@group_carrier A (@subgroup_generated A G (h i))) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1123 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1123 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A))))). +Axiom thm_GROUP_ISOMORPHISM_GROUP_SUM_EQ : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, (forall i : K, (@IN K i k) -> @subgroup_of A (h i) G) -> (@group_isomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k)) = ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ (((@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1124 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1124 (@IN K i k) (h i))))) = G) /\ (forall i : K, (@IN K i k) -> (@INTER A (h i) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1125 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1125 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A))))). +Axiom thm_GROUP_ISOMORPHISM_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((forall i : K, (@IN K i k) -> @subgroup_of A (h i) G) /\ ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ (((@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1126 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1126 (@IN K i k) (h i))))) = G) /\ (forall i : K, (@IN K i k) -> (@INTER A (h i) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1127 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1127 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A)))))) -> @group_isomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k). +Axiom thm_GROUP_ISOMORPHISM_ABELIAN_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((@abelian_group A G) /\ ((forall i : K, (@IN K i k) -> @subgroup_of A (h i) G) /\ (((@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1128 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1128 (@IN K i k) (h i))))) = G) /\ (forall i : K, (@IN K i k) -> (@INTER A (h i) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1129 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1129 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A)))))) -> @group_isomorphism (K -> A) A (@pair (Group (K -> A)) (Group A) (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G) (@group_sum A K G k). +Axiom thm_ISOMORPHIC_SUM_GROUP_GEN : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (@group_carrier A G)) /\ ((@IN A x (h i)) /\ ((@IN A y (@group_carrier A G)) /\ (@IN A y (h j))))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ (((@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1130 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1130 (@IN K i k) (h i))))) = G) /\ (forall i : K, (@IN K i k) -> (@INTER A (@group_carrier A (@subgroup_generated A G (h i))) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1131 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1131 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A))))) -> @isomorphic_group (K -> A) A (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G. +Axiom thm_ISOMORPHIC_SUM_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((forall i : K, (@IN K i k) -> @subgroup_of A (h i) G) /\ ((@pairwise K (fun i : K => fun j : K => forall x : A, forall y : A, ((@IN A x (h i)) /\ (@IN A y (h j))) -> (@group_mul A G x y) = (@group_mul A G y x)) k) /\ (((@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1132 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1132 (@IN K i k) (h i))))) = G) /\ (forall i : K, (@IN K i k) -> (@INTER A (h i) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1133 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1133 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A)))))) -> @isomorphic_group (K -> A) A (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G. +Axiom thm_ISOMORPHIC_ABELIAN_SUM_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((@abelian_group A G) /\ ((forall i : K, (@IN K i k) -> @subgroup_of A (h i) G) /\ (((@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1134 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1134 (@IN K i k) (h i))))) = G) /\ (forall i : K, (@IN K i k) -> (@INTER A (h i) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1135 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1135 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A)))))) -> @isomorphic_group (K -> A) A (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G. +Axiom thm_ISOMORPHIC_NORMAL_SUM_GROUP : forall {A K : Type'}, forall k : K -> Prop, forall G : Group A, forall h : K -> A -> Prop, ((forall i : K, (@IN K i k) -> @normal_subgroup_of A (h i) G) /\ (((@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1136 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1136 (@IN K i k) (h i))))) = G) /\ (forall i : K, (@IN K i k) -> (@INTER A (h i) (@group_carrier A (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1137 : A -> Prop => exists j : K, @SETSPEC (A -> Prop) GEN_PVAR_1137 (@IN K j (@DELETE K k i)) (h j))))))) = (@INSERT A (@group_id A G) (@EMPTY A))))) -> @isomorphic_group (K -> A) A (@sum_group A K k (fun i : K => @subgroup_generated A G (h i))) G. +Axiom thm_CARRIER_SUBGROUP_GENERATED_UNIONS : forall {A : Type'}, forall G : Group A, forall u : (A -> Prop) -> Prop, (@abelian_group A G) -> (@group_carrier A (@subgroup_generated A G (@UNIONS A u))) = (@IMAGE ((A -> Prop) -> A) A (@group_sum A (A -> Prop) G u) (@group_carrier ((A -> Prop) -> A) (@sum_group A (A -> Prop) u (fun i : A -> Prop => @subgroup_generated A G i)))). +Axiom thm_CARRIER_SUBGROUP_GENERATED_UNIONS_ALT : forall {A : Type'}, forall G : Group A, forall u : (A -> Prop) -> Prop, (@abelian_group A G) -> (@group_carrier A (@subgroup_generated A G (@UNIONS A u))) = (@GSPEC A (fun GEN_PVAR_1142 : A => exists f : (A -> Prop) -> A, @SETSPEC A GEN_PVAR_1142 ((forall s : A -> Prop, (@IN (A -> Prop) s u) -> @IN A (f s) (@group_carrier A (@subgroup_generated A G s))) /\ (@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1141 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1141 ((@IN (A -> Prop) s u) /\ (~ ((f s) = (@group_id A G)))) s)))) (@group_sum A (A -> Prop) G u f))). +Axiom thm_CARRIER_SUBGROUP_GENERATED_UNIONS_FINITE : forall {A : Type'}, forall G : Group A, forall u : (A -> Prop) -> Prop, ((@abelian_group A G) /\ (@FINITE (A -> Prop) u)) -> (@group_carrier A (@subgroup_generated A G (@UNIONS A u))) = (@GSPEC A (fun GEN_PVAR_1143 : A => exists f : (A -> Prop) -> A, @SETSPEC A GEN_PVAR_1143 (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @IN A (f s) (@group_carrier A (@subgroup_generated A G s))) (@group_sum A (A -> Prop) G u f))). +Axiom thm_CARRIER_SUBGROUP_GENERATED_UNIONS_EXPLICIT : forall {A : Type'}, forall G : Group A, forall u : (A -> Prop) -> Prop, (@abelian_group A G) -> (@group_carrier A (@subgroup_generated A G (@UNIONS A u))) = (@GSPEC A (fun GEN_PVAR_1146 : A => exists t : (A -> Prop) -> Prop, exists f : (A -> Prop) -> A, @SETSPEC A GEN_PVAR_1146 ((@FINITE (A -> Prop) t) /\ ((@SUBSET (A -> Prop) t u) /\ (forall s : A -> Prop, (@IN (A -> Prop) s t) -> @IN A (f s) (@group_carrier A (@subgroup_generated A G s))))) (@group_sum A (A -> Prop) G t f))). +Axiom thm_CARRIER_SUBGROUP_GENERATED_ALT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@abelian_group A G) /\ (@SUBSET A s (@group_carrier A G))) -> (@group_carrier A (@subgroup_generated A G s)) = (@GSPEC A (fun GEN_PVAR_1153 : A => exists n : A -> Z, @SETSPEC A GEN_PVAR_1153 (@FINITE A (@GSPEC A (fun GEN_PVAR_1152 : A => exists x : A, @SETSPEC A GEN_PVAR_1152 ((@IN A x s) /\ (~ ((n x) = (Z_of_N (NUMERAL 0%N))))) x))) (@group_sum A A G s (fun x : A => @group_zpow A G x (n x))))). +Axiom thm_CARRIER_SUBGROUP_GENERATED_FINITE : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@abelian_group A G) /\ ((@FINITE A s) /\ (@SUBSET A s (@group_carrier A G)))) -> (@group_carrier A (@subgroup_generated A G s)) = (@GSPEC A (fun GEN_PVAR_1154 : A => exists n : A -> Z, @SETSPEC A GEN_PVAR_1154 (@IN (A -> Z) n (@UNIV (A -> Z))) (@group_sum A A G s (fun x : A => @group_zpow A G x (n x))))). +Axiom thm_CARRIER_SUBGROUP_GENERATED_EXPLICIT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@abelian_group A G) /\ (@SUBSET A s (@group_carrier A G))) -> (@group_carrier A (@subgroup_generated A G s)) = (@GSPEC A (fun GEN_PVAR_1157 : A => exists t : A -> Prop, exists n : A -> Z, @SETSPEC A GEN_PVAR_1157 ((@FINITE A t) /\ (@SUBSET A t s)) (@group_sum A A G t (fun x : A => @group_zpow A G x (n x))))). +Axiom thm_SUBGROUP_GENERATED_UNIONS_PRIME_TORSION_FINITE : forall {A : Type'}, forall G : Group A, forall P : N -> Prop, (@FINITE N (@GSPEC N (fun GEN_PVAR_1164 : N => exists p : N, @SETSPEC N GEN_PVAR_1164 ((prime p) /\ (P p)) p))) -> (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1167 : A -> Prop => exists p : N, @SETSPEC (A -> Prop) GEN_PVAR_1167 ((prime p) /\ (P p)) (@GSPEC A (fun GEN_PVAR_1166 : A => exists x : A, @SETSPEC A GEN_PVAR_1166 ((@IN A x (@group_carrier A G)) /\ (exists k : N, (@group_element_order A G x) = (N.pow p k))) x)))))) = (@subgroup_generated A G (@GSPEC A (fun GEN_PVAR_1168 : A => exists x : A, @SETSPEC A GEN_PVAR_1168 ((@IN A x (@group_carrier A G)) /\ (forall p : N, ((prime p) /\ (num_divides p (@group_element_order A G x))) -> P p)) x))). +Axiom thm_SUBGROUP_GENERATED_UNIONS_PRIME_TORSION : forall {A : Type'}, forall G : Group A, forall P : N -> Prop, (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1176 : A -> Prop => exists p : N, @SETSPEC (A -> Prop) GEN_PVAR_1176 ((prime p) /\ (P p)) (@GSPEC A (fun GEN_PVAR_1175 : A => exists x : A, @SETSPEC A GEN_PVAR_1175 ((@IN A x (@group_carrier A G)) /\ (exists k : N, (@group_element_order A G x) = (N.pow p k))) x)))))) = (@subgroup_generated A G (@GSPEC A (fun GEN_PVAR_1177 : A => exists x : A, @SETSPEC A GEN_PVAR_1177 ((@IN A x (@group_carrier A G)) /\ ((~ ((@group_element_order A G x) = (NUMERAL 0%N))) /\ (forall p : N, ((prime p) /\ (num_divides p (@group_element_order A G x))) -> P p))) x))). +Axiom thm_SUBGROUP_GENERATED_UNIONS_PRIME_TORSION_FULL : forall {A : Type'}, forall G : Group A, (@subgroup_generated A G (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1180 : A -> Prop => exists p : N, @SETSPEC (A -> Prop) GEN_PVAR_1180 (prime p) (@GSPEC A (fun GEN_PVAR_1179 : A => exists x : A, @SETSPEC A GEN_PVAR_1179 ((@IN A x (@group_carrier A G)) /\ (exists k : N, (@group_element_order A G x) = (N.pow p k))) x)))))) = (@subgroup_generated A G (@GSPEC A (fun GEN_PVAR_1181 : A => exists x : A, @SETSPEC A GEN_PVAR_1181 ((@IN A x (@group_carrier A G)) /\ (~ ((@group_element_order A G x) = (NUMERAL 0%N)))) x))). +Axiom thm_PGROUP_PRIME_TORSION : forall {A : Type'}, forall G : Group A, forall p : N, ((@abelian_group A G) /\ (prime p)) -> @pgroup A (@INSERT N p (@EMPTY N)) (@subgroup_generated A G (@GSPEC A (fun GEN_PVAR_1182 : A => exists x : A, @SETSPEC A GEN_PVAR_1182 ((@IN A x (@group_carrier A G)) /\ (exists k : N, (@group_element_order A G x) = (N.pow p k))) x))). +Axiom thm_PGROUP_SUBSET_PRIME_TORSION : forall {A : Type'}, forall G : Group A, forall p : N, forall s : A -> Prop, ((prime p) /\ ((@SUBSET A s (@group_carrier A G)) /\ (@pgroup A (@INSERT N p (@EMPTY N)) (@subgroup_generated A G s)))) -> @SUBSET A s (@GSPEC A (fun GEN_PVAR_1183 : A => exists x : A, @SETSPEC A GEN_PVAR_1183 ((@IN A x (@group_carrier A G)) /\ (exists k : N, (@group_element_order A G x) = (N.pow p k))) x)). +Axiom thm_ABELIAN_GROUP_TORSION_ISOMORPHISM : forall {A : Type'}, forall G : Group A, (@abelian_group A G) -> @group_isomorphism (N -> A) A (@pair (Group (N -> A)) (Group A) (@sum_group A N (@GSPEC N (fun GEN_PVAR_1187 : N => exists p : N, @SETSPEC N GEN_PVAR_1187 (prime p) p)) (fun p : N => @subgroup_generated A G (@GSPEC A (fun GEN_PVAR_1188 : A => exists x : A, @SETSPEC A GEN_PVAR_1188 ((@IN A x (@group_carrier A G)) /\ (exists k : N, (@group_element_order A G x) = (N.pow p k))) x)))) (@subgroup_generated A G (@GSPEC A (fun GEN_PVAR_1189 : A => exists x : A, @SETSPEC A GEN_PVAR_1189 ((@IN A x (@group_carrier A G)) /\ (~ ((@group_element_order A G x) = (NUMERAL 0%N)))) x)))) (@group_sum A N G (@GSPEC N (fun GEN_PVAR_1190 : N => exists p : N, @SETSPEC N GEN_PVAR_1190 (prime p) p))). +Axiom thm_ABELIAN_GROUP_TORSION_STRUCTURE : forall {A : Type'}, forall G : Group A, (@abelian_group A G) -> @isomorphic_group A (N -> A) (@subgroup_generated A G (@GSPEC A (fun GEN_PVAR_1191 : A => exists x : A, @SETSPEC A GEN_PVAR_1191 ((@IN A x (@group_carrier A G)) /\ (~ ((@group_element_order A G x) = (NUMERAL 0%N)))) x))) (@sum_group A N (@GSPEC N (fun GEN_PVAR_1192 : N => exists p : N, @SETSPEC N GEN_PVAR_1192 (prime p) p)) (fun p : N => @subgroup_generated A G (@GSPEC A (fun GEN_PVAR_1193 : A => exists x : A, @SETSPEC A GEN_PVAR_1193 ((@IN A x (@group_carrier A G)) /\ (exists k : N, (@group_element_order A G x) = (N.pow p k))) x)))). +Axiom thm_TORSION_ABELIAN_GROUP_ISOMORPHISM : forall {A : Type'}, forall G : Group A, ((@abelian_group A G) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> ~ ((@group_element_order A G x) = (NUMERAL 0%N)))) -> @group_isomorphism (N -> A) A (@pair (Group (N -> A)) (Group A) (@sum_group A N (@GSPEC N (fun GEN_PVAR_1194 : N => exists p : N, @SETSPEC N GEN_PVAR_1194 (prime p) p)) (fun p : N => @subgroup_generated A G (@GSPEC A (fun GEN_PVAR_1195 : A => exists x : A, @SETSPEC A GEN_PVAR_1195 ((@IN A x (@group_carrier A G)) /\ (exists k : N, (@group_element_order A G x) = (N.pow p k))) x)))) G) (@group_sum A N G (@GSPEC N (fun GEN_PVAR_1196 : N => exists p : N, @SETSPEC N GEN_PVAR_1196 (prime p) p))). +Axiom thm_TORSION_ABELIAN_GROUP_STRUCTURE : forall {A : Type'}, forall G : Group A, ((@abelian_group A G) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> ~ ((@group_element_order A G x) = (NUMERAL 0%N)))) -> @isomorphic_group A (N -> A) G (@sum_group A N (@GSPEC N (fun GEN_PVAR_1197 : N => exists p : N, @SETSPEC N GEN_PVAR_1197 (prime p) p)) (fun p : N => @subgroup_generated A G (@GSPEC A (fun GEN_PVAR_1198 : A => exists x : A, @SETSPEC A GEN_PVAR_1198 ((@IN A x (@group_carrier A G)) /\ (exists k : N, (@group_element_order A G x) = (N.pow p k))) x)))). +Axiom thm_FINITE_ABELIAN_GROUP_STRUCTURE : forall {A : Type'}, forall G : Group A, ((@abelian_group A G) /\ (@FINITE A (@group_carrier A G))) -> @isomorphic_group A (N -> A) G (@sum_group A N (@GSPEC N (fun GEN_PVAR_1199 : N => exists p : N, @SETSPEC N GEN_PVAR_1199 ((prime p) /\ (num_divides p (@CARD A (@group_carrier A G)))) p)) (fun p : N => @subgroup_generated A G (@GSPEC A (fun GEN_PVAR_1200 : A => exists x : A, @SETSPEC A GEN_PVAR_1200 ((@IN A x (@group_carrier A G)) /\ (exists k : N, (@group_element_order A G x) = (N.pow p k))) x)))). +Axiom thm_FINITE_ABELIAN_GROUP_STRUCTURE_ALT : forall {A : Type'}, forall G : Group A, ((@abelian_group A G) /\ (@FINITE A (@group_carrier A G))) -> @isomorphic_group A (N -> A) G (@product_group A N (@GSPEC N (fun GEN_PVAR_1201 : N => exists p : N, @SETSPEC N GEN_PVAR_1201 ((prime p) /\ (num_divides p (@CARD A (@group_carrier A G)))) p)) (fun p : N => @subgroup_generated A G (@GSPEC A (fun GEN_PVAR_1202 : A => exists x : A, @SETSPEC A GEN_PVAR_1202 ((@IN A x (@group_carrier A G)) /\ (exists k : N, (@group_element_order A G x) = (N.pow p k))) x)))). +Axiom thm_TORSION_ABELIAN_GROUP_AS_SUM_OF_PGROUPS : forall {A : Type'}, forall G : Group A, (@abelian_group A G) -> (forall x : A, (@IN A x (@group_carrier A G)) -> ~ ((@group_element_order A G x) = (NUMERAL 0%N))) = (exists H : N -> Group A, (forall p : N, (prime p) -> @pgroup A (@INSERT N p (@EMPTY N)) (H p)) /\ (@isomorphic_group A (N -> A) G (@sum_group A N (@GSPEC N (fun GEN_PVAR_1205 : N => exists p : N, @SETSPEC N GEN_PVAR_1205 (prime p) p)) H))). +Axiom thm_FINITELY_GENERATED_ABELIAN_SUBGROUP_STRUCTURE_ISOMORPHISM : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@abelian_group A G) /\ (@FINITE A s)) -> exists t : A -> Prop, (@FINITE A t) /\ ((N.le (@CARD A t) (@CARD A s)) /\ ((@SUBSET A t (@group_carrier A G)) /\ (((@subgroup_generated A G t) = (@subgroup_generated A G s)) /\ (@group_isomorphism (A -> A) A (@pair (Group (A -> A)) (Group A) (@sum_group A A t (fun x : A => @subgroup_generated A G (@INSERT A x (@EMPTY A)))) (@subgroup_generated A G s)) (@group_sum A A G t))))). +Axiom thm_FINITELY_GENERATED_ABELIAN_SUBGROUP_STRUCTURE_ISOMORPHISM_ALT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@abelian_group A G) /\ (@FINITE A s)) -> exists t : A -> Prop, (@FINITE A t) /\ ((N.le (@CARD A t) (@CARD A s)) /\ ((@SUBSET A t (@group_carrier A G)) /\ (((@subgroup_generated A G t) = (@subgroup_generated A G s)) /\ (@group_isomorphism (A -> A) A (@pair (Group (A -> A)) (Group A) (@product_group A A t (fun x : A => @subgroup_generated A G (@INSERT A x (@EMPTY A)))) (@subgroup_generated A G s)) (@group_sum A A G t))))). +Axiom thm_FINITELY_GENERATED_ABELIAN_SUBGROUP_STRUCTURE_EXPLICIT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@abelian_group A G) /\ (@FINITE A s)) -> exists t : A -> Prop, (@FINITE A t) /\ ((N.le (@CARD A t) (@CARD A s)) /\ ((@SUBSET A t (@group_carrier A G)) /\ (((@subgroup_generated A G t) = (@subgroup_generated A G s)) /\ (@isomorphic_group A (A -> A) (@subgroup_generated A G s) (@sum_group A A t (fun x : A => @subgroup_generated A G (@INSERT A x (@EMPTY A)))))))). +Axiom thm_FINITELY_GENERATED_ABELIAN_SUBGROUP_STRUCTURE_EXPLICIT_ALT : forall {A : Type'}, forall G : Group A, forall s : A -> Prop, ((@abelian_group A G) /\ (@FINITE A s)) -> exists t : A -> Prop, (@FINITE A t) /\ ((N.le (@CARD A t) (@CARD A s)) /\ ((@SUBSET A t (@group_carrier A G)) /\ (((@subgroup_generated A G t) = (@subgroup_generated A G s)) /\ (@isomorphic_group A (A -> A) (@subgroup_generated A G s) (@product_group A A t (fun x : A => @subgroup_generated A G (@INSERT A x (@EMPTY A)))))))). +Axiom thm_FINITELY_GENERATED_ABELIAN_GROUP_STRUCTURE_EXPLICIT : forall {A : Type'}, forall G : Group A, ((@finitely_generated_group A G) /\ (@abelian_group A G)) = (exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t (@group_carrier A G)) /\ (@isomorphic_group A (A -> A) G (@sum_group A A t (fun x : A => @subgroup_generated A G (@INSERT A x (@EMPTY A))))))). +Axiom thm_FINITELY_GENERATED_ABELIAN_GROUP_STRUCTURE_EXPLICIT_ALT : forall {A : Type'}, forall G : Group A, ((@finitely_generated_group A G) /\ (@abelian_group A G)) = (exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t (@group_carrier A G)) /\ (@isomorphic_group A (A -> A) G (@product_group A A t (fun x : A => @subgroup_generated A G (@INSERT A x (@EMPTY A))))))). +Axiom thm_FINITELY_GENERATED_ABELIAN_GROUP_AS_SUM_OF_CYCLIC_GROUPS : forall {A : Type'}, forall G : Group A, ((@finitely_generated_group A G) /\ (@abelian_group A G)) = (exists n : N, exists H : N -> Group A, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i n)) -> @cyclic_group A (H i)) /\ (@isomorphic_group A (N -> A) G (@sum_group A N (dotdot (NUMERAL (BIT1 0%N)) n) H))). +Axiom thm_FINITELY_GENERATED_ABELIAN_GROUP_AS_PRODUCT_OF_CYCLIC_GROUPS : forall {A : Type'}, forall G : Group A, ((@finitely_generated_group A G) /\ (@abelian_group A G)) = (exists n : N, exists H : N -> Group A, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i n)) -> @cyclic_group A (H i)) /\ (@isomorphic_group A (N -> A) G (@product_group A N (dotdot (NUMERAL (BIT1 0%N)) n) H))). +Axiom thm_FINITELY_GENERATED_ABELIAN_GROUP_AS_SUM_OF_INTEGER_MOD_GROUPS : forall {A : Type'}, forall G : Group A, ((@finitely_generated_group A G) /\ (@abelian_group A G)) = (exists n : N, exists d : N -> N, @isomorphic_group A (N -> Z) G (@sum_group Z N (dotdot (NUMERAL (BIT1 0%N)) n) (fun i : N => integer_mod_group (d i)))). +Axiom thm_FINITELY_GENERATED_ABELIAN_GROUP_AS_PRODUCT_OF_INTEGER_MOD_GROUPS : forall {A : Type'}, forall G : Group A, ((@finitely_generated_group A G) /\ (@abelian_group A G)) = (exists n : N, exists d : N -> N, @isomorphic_group A (N -> Z) G (@product_group Z N (dotdot (NUMERAL (BIT1 0%N)) n) (fun i : N => integer_mod_group (d i)))). +Axiom thm_FINITELY_GENERATED_ABELIAN_GROUP_AS_SUM_OF_INTEGER_GROUPS : forall {A : Type'}, forall G : Group A, ((@finitely_generated_group A G) /\ ((@abelian_group A G) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> N.le (@group_element_order A G x) (NUMERAL (BIT1 0%N))))) = (exists n : N, @isomorphic_group A (N -> Z) G (@sum_group Z N (dotdot (NUMERAL (BIT1 0%N)) n) (fun i : N => integer_group))). +Axiom thm_FINITELY_GENERATED_ABELIAN_GROUP_AS_PRODUCT_OF_INTEGER_GROUPS : forall {A : Type'}, forall G : Group A, ((@finitely_generated_group A G) /\ ((@abelian_group A G) /\ (forall x : A, (@IN A x (@group_carrier A G)) -> N.le (@group_element_order A G x) (NUMERAL (BIT1 0%N))))) = (exists n : N, @isomorphic_group A (N -> Z) G (@product_group Z N (dotdot (NUMERAL (BIT1 0%N)) n) (fun i : N => integer_group))). +Axiom thm_free_abelian_group : forall {A : Type'}, forall s : A -> Prop, (@free_abelian_group A s) = (@group (frag A) (@pair ((frag A) -> Prop) (prod (frag A) (prod ((frag A) -> frag A) ((frag A) -> (frag A) -> frag A))) (@GSPEC (frag A) (fun GEN_PVAR_1210 : frag A => exists c : frag A, @SETSPEC (frag A) GEN_PVAR_1210 (@SUBSET A (@frag_support A c) s) c)) (@pair (frag A) (prod ((frag A) -> frag A) ((frag A) -> (frag A) -> frag A)) (@frag_0 A) (@pair ((frag A) -> frag A) ((frag A) -> (frag A) -> frag A) (@frag_neg A) (@frag_add A))))). +Axiom thm_FREE_ABELIAN_GROUP : forall {A : Type'}, (forall s : A -> Prop, (@group_carrier (frag A) (@free_abelian_group A s)) = (@GSPEC (frag A) (fun GEN_PVAR_1211 : frag A => exists c : frag A, @SETSPEC (frag A) GEN_PVAR_1211 (@SUBSET A (@frag_support A c) s) c))) /\ ((forall s : A -> Prop, (@group_id (frag A) (@free_abelian_group A s)) = (@frag_0 A)) /\ ((forall s : A -> Prop, (@group_inv (frag A) (@free_abelian_group A s)) = (@frag_neg A)) /\ (forall s : A -> Prop, (@group_mul (frag A) (@free_abelian_group A s)) = (@frag_add A)))). +Axiom thm_ABELIAN_FREE_ABELIAN_GROUP : forall {A : Type'}, forall s : A -> Prop, @abelian_group (frag A) (@free_abelian_group A s). +Axiom thm_FREE_ABELIAN_GROUP_POW : forall {A : Type'}, forall s : A -> Prop, forall x : frag A, forall n : N, (@group_pow (frag A) (@free_abelian_group A s) x n) = (@frag_cmul A (Z_of_N n) x). +Axiom thm_FREE_ABELIAN_GROUP_ZPOW : forall {A : Type'}, forall s : A -> Prop, forall x : frag A, forall n : Z, (@group_zpow (frag A) (@free_abelian_group A s) x n) = (@frag_cmul A n x). +Axiom thm_FRAG_OF_IN_FREE_ABELIAN_GROUP : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@IN (frag A) (@frag_of A x) (@group_carrier (frag A) (@free_abelian_group A s))) = (@IN A x s). +Axiom thm_FREE_ABELIAN_GROUP_INDUCT : forall {A : Type'}, forall P : (frag A) -> Prop, forall s : A -> Prop, ((P (@frag_0 A)) /\ ((forall x : frag A, forall y : frag A, ((@IN (frag A) x (@group_carrier (frag A) (@free_abelian_group A s))) /\ ((@IN (frag A) y (@group_carrier (frag A) (@free_abelian_group A s))) /\ ((P x) /\ (P y)))) -> P (@frag_sub A x y)) /\ (forall a : A, (@IN A a s) -> P (@frag_of A a)))) -> forall x : frag A, (@IN (frag A) x (@group_carrier (frag A) (@free_abelian_group A s))) -> P x. +Axiom thm_FREE_ABELIAN_GROUP_UNIVERSAL : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall G : Group B, ((@SUBSET B (@IMAGE A B f s) (@group_carrier B G)) /\ (@abelian_group B G)) -> exists h : (frag A) -> B, (@group_homomorphism (frag A) B (@pair (Group (frag A)) (Group B) (@free_abelian_group A s) G) h) /\ (forall x : A, (@IN A x s) -> (h (@frag_of A x)) = (f x)). +Axiom thm_ISOMORPHIC_GROUP_INTEGER_FREE_ABELIAN_GROUP_SING : forall {A : Type'}, forall x : A, @isomorphic_group Z (frag A) integer_group (@free_abelian_group A (@INSERT A x (@EMPTY A))). +Axiom thm_GROUP_HOMOMORPHISM_FREE_ABELIAN_GROUPS_ID : forall {A : Type'}, forall k : A -> Prop, forall k' : A -> Prop, (@group_homomorphism (frag A) (frag A) (@pair (Group (frag A)) (Group (frag A)) (@free_abelian_group A k) (@free_abelian_group A k')) (fun x : frag A => x)) = (@SUBSET A k k'). +Axiom thm_GROUP_ISOMORPHISM_FREE_ABELIAN_GROUP_SUM : forall {A K : Type'}, forall k : K -> Prop, forall f : K -> A -> Prop, (@pairwise K (fun i : K => fun j : K => @DISJOINT A (f i) (f j)) k) -> @group_isomorphism (K -> frag A) (frag A) (@pair (Group (K -> frag A)) (Group (frag A)) (@sum_group (frag A) K k (fun i : K => @free_abelian_group A (f i))) (@free_abelian_group A (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1214 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1214 (@IN K i k) (f i)))))) (@iterate K (frag A) (@frag_add A) k). +Axiom thm_ISOMORPHIC_FREE_ABELIAN_GROUP_UNIONS : forall {A : Type'}, forall k : (A -> Prop) -> Prop, (@pairwise (A -> Prop) (@DISJOINT A) k) -> @isomorphic_group (frag A) ((A -> Prop) -> frag A) (@free_abelian_group A (@UNIONS A k)) (@sum_group (frag A) (A -> Prop) k (@free_abelian_group A)). +Axiom thm_ISOMORPHIC_SUM_INTEGER_GROUP : forall {A : Type'}, forall k : A -> Prop, @isomorphic_group (A -> Z) (frag A) (@sum_group Z A k (fun i : A => integer_group)) (@free_abelian_group A k). +Axiom thm_CARD_EQ_FREE_ABELIAN_GROUP_INFINITE : forall {A : Type'}, forall s : A -> Prop, (@INFINITE A s) -> @eq_c (frag A) A (@group_carrier (frag A) (@free_abelian_group A s)) s. +Axiom thm_CARD_EQ_HOMOMORPHISMS_FROM_FREE_ABELIAN_GROUP : forall {A B : Type'}, forall s : A -> Prop, forall G : Group B, (@abelian_group B G) -> @eq_c ((frag A) -> B) (A -> B) (@GSPEC ((frag A) -> B) (fun GEN_PVAR_1218 : (frag A) -> B => exists f : (frag A) -> B, @SETSPEC ((frag A) -> B) GEN_PVAR_1218 ((@EXTENSIONAL (frag A) B (@group_carrier (frag A) (@free_abelian_group A s)) f) /\ (@group_homomorphism (frag A) B (@pair (Group (frag A)) (Group B) (@free_abelian_group A s) G) f)) f)) (@pow_c B A (@group_carrier B G) s). +Axiom thm_ISOMORPHIC_FREE_ABELIAN_GROUPS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@isomorphic_group (frag A) (frag B) (@free_abelian_group A s) (@free_abelian_group B t)) = (@eq_c A B s t). +Axiom thm_group_exactness : forall {A B C : Type'}, forall G : Group A, forall f : A -> B, forall H : Group B, forall K : Group C, forall g : B -> C, (@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) G (@pair (Group B) (Group C) H K)) (@pair (A -> B) (B -> C) f g)) = ((@group_homomorphism A B (@pair (Group A) (Group B) G H) f) /\ ((@group_homomorphism B C (@pair (Group B) (Group C) H K) g) /\ ((@group_image A B (@pair (Group A) (Group B) G H) f) = (@group_kernel B C (@pair (Group B) (Group C) H K) g)))). +Axiom thm_short_exact_sequence : forall {A B C : Type'}, forall A' : Group A, forall f : A -> B, forall B' : Group B, forall C' : Group C, forall g : B -> C, (@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) = ((@group_monomorphism A B (@pair (Group A) (Group B) A' B') f) /\ ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ (@group_epimorphism B C (@pair (Group B) (Group C) B' C') g))). +Axiom thm_SHORT_EXACT_SEQUENCE : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, (@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) = ((@group_monomorphism A B (@pair (Group A) (Group B) A' B') f) /\ ((@group_epimorphism B C (@pair (Group B) (Group C) B' C') g) /\ ((@group_image A B (@pair (Group A) (Group B) A' B') f) = (@group_kernel B C (@pair (Group B) (Group C) B' C') g)))). +Axiom thm_GROUP_EXACTNESS_MONOMORPHISM : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, (@trivial_group A A') -> (@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) = ((@group_homomorphism A B (@pair (Group A) (Group B) A' B') f) /\ (@group_monomorphism B C (@pair (Group B) (Group C) B' C') g)). +Axiom thm_GROUP_EXACTNESS_EPIMORPHISM : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, (@trivial_group C C') -> (@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) = ((@group_epimorphism A B (@pair (Group A) (Group B) A' B') f) /\ (@group_homomorphism B C (@pair (Group B) (Group C) B' C') g)). +Axiom thm_EXTREMELY_SHORT_EXACT_SEQUENCE : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@trivial_group A A') /\ (@trivial_group C C'))) -> @trivial_group B B'. +Axiom thm_GROUP_EXACTNESS_EPIMORPHISM_EQ_TRIVIALITY : forall {A B C D : Type'}, forall f : A -> B, forall g : B -> C, forall h : C -> D, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall D' : Group D, ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ (@group_exactness B C D (@pair (Group B) (prod (Group C) (Group D)) B' (@pair (Group C) (Group D) C' D')) (@pair (B -> C) (C -> D) g h))) -> (@group_epimorphism A B (@pair (Group A) (Group B) A' B') f) = (@trivial_homomorphism B C (@pair (Group B) (Group C) B' C') g). +Axiom thm_GROUP_EXACTNESS_MONOMORPHISM_EQ_TRIVIALITY : forall {A B C D : Type'}, forall f : A -> B, forall g : B -> C, forall h : C -> D, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall D' : Group D, ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ (@group_exactness B C D (@pair (Group B) (prod (Group C) (Group D)) B' (@pair (Group C) (Group D) C' D')) (@pair (B -> C) (C -> D) g h))) -> (@group_monomorphism C D (@pair (Group C) (Group D) C' D') h) = (@trivial_homomorphism B C (@pair (Group B) (Group C) B' C') g). +Axiom thm_VERY_SHORT_EXACT_SEQUENCE : forall {A B C D : Type'}, forall f : A -> B, forall g : B -> C, forall h : C -> D, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall D' : Group D, ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_exactness B C D (@pair (Group B) (prod (Group C) (Group D)) B' (@pair (Group C) (Group D) C' D')) (@pair (B -> C) (C -> D) g h)) /\ ((@trivial_group A A') /\ (@trivial_group D D')))) -> @group_isomorphism B C (@pair (Group B) (Group C) B' C') g. +Axiom thm_GROUP_EXACTNESS_EQ_TRIVIALITY : forall {A B C D E : Type'}, forall f : A -> B, forall g : B -> C, forall h : C -> D, forall k : D -> E, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall D' : Group D, forall E' : Group E, ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_exactness B C D (@pair (Group B) (prod (Group C) (Group D)) B' (@pair (Group C) (Group D) C' D')) (@pair (B -> C) (C -> D) g h)) /\ (@group_exactness C D E (@pair (Group C) (prod (Group D) (Group E)) C' (@pair (Group D) (Group E) D' E')) (@pair (C -> D) (D -> E) h k)))) -> (@trivial_group C C') = ((@group_epimorphism A B (@pair (Group A) (Group B) A' B') f) /\ (@group_monomorphism D E (@pair (Group D) (Group E) D' E') k)). +Axiom thm_GROUP_EXACTNESS_IMP_TRIVIALITY : forall {A B C D E : Type'}, forall f : A -> B, forall g : B -> C, forall h : C -> D, forall k : D -> E, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall D' : Group D, forall E' : Group E, ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_exactness B C D (@pair (Group B) (prod (Group C) (Group D)) B' (@pair (Group C) (Group D) C' D')) (@pair (B -> C) (C -> D) g h)) /\ ((@group_exactness C D E (@pair (Group C) (prod (Group D) (Group E)) C' (@pair (Group D) (Group E) D' E')) (@pair (C -> D) (D -> E) h k)) /\ ((@group_isomorphism A B (@pair (Group A) (Group B) A' B') f) /\ (@group_isomorphism D E (@pair (Group D) (Group E) D' E') k))))) -> @trivial_group C C'. +Axiom thm_GROUP_EXACTNESS_ISOMORPHISM_EQ_TRIVIALITY : forall {A B C D E G : Type'}, forall f : A -> B, forall g : B -> C, forall h : C -> D, forall j : D -> E, forall k : E -> G, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall D' : Group D, forall E' : Group E, forall G' : Group G, ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_exactness B C D (@pair (Group B) (prod (Group C) (Group D)) B' (@pair (Group C) (Group D) C' D')) (@pair (B -> C) (C -> D) g h)) /\ ((@group_exactness C D E (@pair (Group C) (prod (Group D) (Group E)) C' (@pair (Group D) (Group E) D' E')) (@pair (C -> D) (D -> E) h j)) /\ (@group_exactness D E G (@pair (Group D) (prod (Group E) (Group G)) D' (@pair (Group E) (Group G) E' G')) (@pair (D -> E) (E -> G) j k))))) -> (@group_isomorphism C D (@pair (Group C) (Group D) C' D') h) = ((@trivial_homomorphism B C (@pair (Group B) (Group C) B' C') g) /\ (@trivial_homomorphism D E (@pair (Group D) (Group E) D' E') j)). +Axiom thm_GROUP_EXACTNESS_ISOMORPHISM_EQ_MONO_EPI : forall {A B C D E G : Type'}, forall f : A -> B, forall g : B -> C, forall h : C -> D, forall j : D -> E, forall k : E -> G, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall D' : Group D, forall E' : Group E, forall G' : Group G, ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_exactness B C D (@pair (Group B) (prod (Group C) (Group D)) B' (@pair (Group C) (Group D) C' D')) (@pair (B -> C) (C -> D) g h)) /\ ((@group_exactness C D E (@pair (Group C) (prod (Group D) (Group E)) C' (@pair (Group D) (Group E) D' E')) (@pair (C -> D) (D -> E) h j)) /\ (@group_exactness D E G (@pair (Group D) (prod (Group E) (Group G)) D' (@pair (Group E) (Group G) E' G')) (@pair (D -> E) (E -> G) j k))))) -> (@group_isomorphism C D (@pair (Group C) (Group D) C' D') h) = ((@group_epimorphism A B (@pair (Group A) (Group B) A' B') f) /\ (@group_monomorphism E G (@pair (Group E) (Group G) E' G') k)). +Axiom thm_SHORT_EXACT_SEQUENCE_NORMAL_SUBGROUP : forall {A : Type'}, forall G : Group A, forall n : A -> Prop, (@normal_subgroup_of A n G) -> @short_exact_sequence A A (A -> Prop) (@pair (Group A) (prod (Group A) (Group (A -> Prop))) (@subgroup_generated A G n) (@pair (Group A) (Group (A -> Prop)) G (@quotient_group A G n))) (@pair (A -> A) (A -> A -> Prop) (fun x : A => x) (@right_coset A G n)). +Axiom thm_SHORT_EXACT_SEQUENCE_PROD_GROUP : forall {A B : Type'}, forall G : Group A, forall H : Group B, @short_exact_sequence A (prod A B) B (@pair (Group A) (prod (Group (prod A B)) (Group B)) G (@pair (Group (prod A B)) (Group B) (@prod_group A B G H) H)) (@pair (A -> prod A B) ((prod A B) -> B) (fun x : A => @pair A B x (@group_id B H)) (@snd A B)). +Axiom thm_SHORT_EXACT_SEQUENCE_PROD_GROUP_ALT : forall {A B : Type'}, forall G : Group A, forall H : Group B, @short_exact_sequence B (prod A B) A (@pair (Group B) (prod (Group (prod A B)) (Group A)) H (@pair (Group (prod A B)) (Group A) (@prod_group A B G H) G)) (@pair (B -> prod A B) ((prod A B) -> A) (fun x : B => @pair A B (@group_id A G) x) (@fst A B)). +Axiom thm_EXACT_SEQUENCE_SUM_LEMMA : forall {A B C D X : Type'}, forall f : X -> C, forall g : X -> D, forall h : A -> C, forall i : A -> X, forall j : B -> X, forall k : B -> D, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall D' : Group D, forall X' : Group X, ((@abelian_group X X') /\ ((@group_isomorphism A C (@pair (Group A) (Group C) A' C') h) /\ ((@group_isomorphism B D (@pair (Group B) (Group D) B' D') k) /\ ((@group_exactness A X D (@pair (Group A) (prod (Group X) (Group D)) A' (@pair (Group X) (Group D) X' D')) (@pair (A -> X) (X -> D) i g)) /\ ((@group_exactness B X C (@pair (Group B) (prod (Group X) (Group C)) B' (@pair (Group X) (Group C) X' C')) (@pair (B -> X) (X -> C) j f)) /\ ((forall x : A, (@IN A x (@group_carrier A A')) -> (f (i x)) = (h x)) /\ (forall x : B, (@IN B x (@group_carrier B B')) -> (g (j x)) = (k x)))))))) -> (@group_isomorphism (prod A B) X (@pair (Group (prod A B)) (Group X) (@prod_group A B A' B') X') (@GABS ((prod A B) -> X) (fun f' : (prod A B) -> X => forall x : A, forall y : B, @GEQ X (f' (@pair A B x y)) (@group_mul X X' (i x) (j y))))) /\ (@group_isomorphism X (prod C D) (@pair (Group X) (Group (prod C D)) X' (@prod_group C D C' D')) (fun z : X => @pair C D (f z) (g z))). +Axiom thm_SHORT_EXACT_SEQUENCE_QUOTIENT : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, (@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) -> (@isomorphic_group B A (@subgroup_generated B B' (@group_image A B (@pair (Group A) (Group B) A' B') f)) A') /\ (@isomorphic_group (B -> Prop) C (@quotient_group B B' (@group_image A B (@pair (Group A) (Group B) A' B') f)) C'). +Axiom thm_TRIVIAL_GROUPS_IMP_SHORT_EXACT_SEQUENCE : forall {A B C D E : Type'}, forall f : A -> B, forall g : B -> C, forall h : C -> D, forall k : D -> E, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall D' : Group D, forall E' : Group E, ((@trivial_group A A') /\ ((@trivial_group E E') /\ ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_exactness B C D (@pair (Group B) (prod (Group C) (Group D)) B' (@pair (Group C) (Group D) C' D')) (@pair (B -> C) (C -> D) g h)) /\ (@group_exactness C D E (@pair (Group C) (prod (Group D) (Group E)) C' (@pair (Group D) (Group E) D' E')) (@pair (C -> D) (D -> E) h k)))))) -> @short_exact_sequence B C D (@pair (Group B) (prod (Group C) (Group D)) B' (@pair (Group C) (Group D) C' D')) (@pair (B -> C) (C -> D) g h). +Axiom thm_SHORT_EXACT_SEQUENCE_TRIVIAL_GROUPS : forall {A B C D E : Type'}, forall g : B -> C, forall h : C -> D, forall B' : Group B, forall C' : Group C, forall D' : Group D, (@short_exact_sequence B C D (@pair (Group B) (prod (Group C) (Group D)) B' (@pair (Group C) (Group D) C' D')) (@pair (B -> C) (C -> D) g h)) = (exists f : A -> B, exists k : D -> E, exists A' : Group A, exists E' : Group E, (@trivial_group A A') /\ ((@trivial_group E E') /\ ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_exactness B C D (@pair (Group B) (prod (Group C) (Group D)) B' (@pair (Group C) (Group D) C' D')) (@pair (B -> C) (C -> D) g h)) /\ (@group_exactness C D E (@pair (Group C) (prod (Group D) (Group E)) C' (@pair (Group D) (Group E) D' E')) (@pair (C -> D) (D -> E) h k)))))). +Axiom thm_SPLITTING_SUBLEMMA_GEN : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall h : B -> Prop, forall k : B -> Prop, ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ (((@group_image A B (@pair (Group A) (Group B) A' B') f) = h) /\ ((@subgroup_of B k B') /\ ((@SUBSET B (@INTER B h k) (@INSERT B (@group_id B B') (@EMPTY B))) /\ ((@group_setmul B B' h k) = (@group_carrier B B')))))) -> @group_isomorphism B C (@pair (Group B) (Group C) (@subgroup_generated B B' k) (@subgroup_generated C C' (@group_image B C (@pair (Group B) (Group C) B' C') g))) g. +Axiom thm_SPLITTING_SUBLEMMA : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall h : B -> Prop, forall k : B -> Prop, ((@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ (((@group_image A B (@pair (Group A) (Group B) A' B') f) = h) /\ ((@subgroup_of B k B') /\ ((@SUBSET B (@INTER B h k) (@INSERT B (@group_id B B') (@EMPTY B))) /\ ((@group_setmul B B' h k) = (@group_carrier B B')))))) -> (@group_isomorphism A B (@pair (Group A) (Group B) A' (@subgroup_generated B B' h)) f) /\ (@group_isomorphism B C (@pair (Group B) (Group C) (@subgroup_generated B B' k) C') g). +Axiom thm_SPLITTING_LEMMA_LEFT_GEN : forall {A B C : Type'}, forall f : A -> B, forall f' : B -> A, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, ((@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_homomorphism B A (@pair (Group B) (Group A) B' A') f') /\ (@group_isomorphism A A (@pair (Group A) (Group A) A' A') (@o A B A f' f)))) -> exists h : B -> Prop, exists k : B -> Prop, (@normal_subgroup_of B h B') /\ ((@normal_subgroup_of B k B') /\ ((@SUBSET B (@INTER B h k) (@INSERT B (@group_id B B') (@EMPTY B))) /\ (((@group_setmul B B' h k) = (@group_carrier B B')) /\ ((@group_isomorphism A B (@pair (Group A) (Group B) A' (@subgroup_generated B B' h)) f) /\ (@group_isomorphism B C (@pair (Group B) (Group C) (@subgroup_generated B B' k) C') g))))). +Axiom thm_SPLITTING_LEMMA_LEFT : forall {A B C : Type'}, forall f : A -> B, forall f' : B -> A, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, ((@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_homomorphism B A (@pair (Group B) (Group A) B' A') f') /\ (forall x : A, (@IN A x (@group_carrier A A')) -> (f' (f x)) = x))) -> exists h : B -> Prop, exists k : B -> Prop, (@normal_subgroup_of B h B') /\ ((@normal_subgroup_of B k B') /\ ((@SUBSET B (@INTER B h k) (@INSERT B (@group_id B B') (@EMPTY B))) /\ (((@group_setmul B B' h k) = (@group_carrier B B')) /\ ((@group_isomorphism A B (@pair (Group A) (Group B) A' (@subgroup_generated B B' h)) f) /\ (@group_isomorphism B C (@pair (Group B) (Group C) (@subgroup_generated B B' k) C') g))))). +Axiom thm_SPLITTING_LEMMA_LEFT_PROD_GROUP : forall {A B C : Type'}, forall f : A -> B, forall f' : B -> A, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, ((@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@abelian_group B B') /\ ((@group_homomorphism B A (@pair (Group B) (Group A) B' A') f') /\ (forall x : A, (@IN A x (@group_carrier A A')) -> (f' (f x)) = x)))) -> @isomorphic_group B (prod A C) B' (@prod_group A C A' C'). +Axiom thm_SPLITTING_LEMMA_RIGHT_GEN : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall g' : C -> B, forall A' : Group A, forall B' : Group B, forall C' : Group C, ((@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_homomorphism C B (@pair (Group C) (Group B) C' B') g') /\ (@group_isomorphism C C (@pair (Group C) (Group C) C' C') (@o C B C g g')))) -> exists h : B -> Prop, exists k : B -> Prop, (@normal_subgroup_of B h B') /\ ((@subgroup_of B k B') /\ ((@SUBSET B (@INTER B h k) (@INSERT B (@group_id B B') (@EMPTY B))) /\ (((@group_setmul B B' h k) = (@group_carrier B B')) /\ ((@group_isomorphism A B (@pair (Group A) (Group B) A' (@subgroup_generated B B' h)) f) /\ (@group_isomorphism B C (@pair (Group B) (Group C) (@subgroup_generated B B' k) C') g))))). +Axiom thm_SPLITTING_LEMMA_RIGHT : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall g' : C -> B, forall A' : Group A, forall B' : Group B, forall C' : Group C, ((@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_homomorphism C B (@pair (Group C) (Group B) C' B') g') /\ (forall z : C, (@IN C z (@group_carrier C C')) -> (g (g' z)) = z))) -> exists h : B -> Prop, exists k : B -> Prop, (@normal_subgroup_of B h B') /\ ((@subgroup_of B k B') /\ ((@SUBSET B (@INTER B h k) (@INSERT B (@group_id B B') (@EMPTY B))) /\ (((@group_setmul B B' h k) = (@group_carrier B B')) /\ ((@group_isomorphism A B (@pair (Group A) (Group B) A' (@subgroup_generated B B' h)) f) /\ (@group_isomorphism B C (@pair (Group B) (Group C) (@subgroup_generated B B' k) C') g))))). +Axiom thm_SPLITTING_LEMMA_RIGHT_PROD_GROUP : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall g' : C -> B, forall A' : Group A, forall B' : Group B, forall C' : Group C, ((@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@abelian_group B B') /\ ((@group_homomorphism C B (@pair (Group C) (Group B) C' B') g') /\ (forall z : C, (@IN C z (@group_carrier C C')) -> (g (g' z)) = z)))) -> @isomorphic_group B (prod A C) B' (@prod_group A C A' C'). +Axiom thm_SPLITTING_LEMMA_FREE_ABELIAN_GROUP : forall {A B C D : Type'}, forall f : A -> B, forall g : B -> C, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall s : D -> Prop, ((@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A' (@pair (Group B) (Group C) B' C')) (@pair (A -> B) (B -> C) f g)) /\ ((@abelian_group B B') /\ (@isomorphic_group C (frag D) C' (@free_abelian_group D s)))) -> @isomorphic_group B (prod A C) B' (@prod_group A C A' C'). +Axiom thm_FOUR_LEMMA_MONO : forall {A A' B B' C C' D D' : Type'}, forall f : A -> B, forall g : B -> C, forall h : C -> D, forall f' : A' -> B', forall g' : B' -> C', forall h' : C' -> D', forall a : A -> A', forall b : B -> B', forall c : C -> C', forall d : D -> D', forall A'' : Group A, forall B'' : Group B, forall C'' : Group C, forall D'' : Group D, forall A''' : Group A', forall B''' : Group B', forall C''' : Group C', forall D''' : Group D', ((@group_epimorphism A A' (@pair (Group A) (Group A') A'' A''') a) /\ ((@group_monomorphism B B' (@pair (Group B) (Group B') B'' B''') b) /\ ((@group_homomorphism C C' (@pair (Group C) (Group C') C'' C''') c) /\ ((@group_monomorphism D D' (@pair (Group D) (Group D') D'' D''') d) /\ ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A'' (@pair (Group B) (Group C) B'' C'')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_exactness B C D (@pair (Group B) (prod (Group C) (Group D)) B'' (@pair (Group C) (Group D) C'' D'')) (@pair (B -> C) (C -> D) g h)) /\ ((@group_exactness A' B' C' (@pair (Group A') (prod (Group B') (Group C')) A''' (@pair (Group B') (Group C') B''' C''')) (@pair (A' -> B') (B' -> C') f' g')) /\ ((@group_exactness B' C' D' (@pair (Group B') (prod (Group C') (Group D')) B''' (@pair (Group C') (Group D') C''' D''')) (@pair (B' -> C') (C' -> D') g' h')) /\ ((forall x : A, (@IN A x (@group_carrier A A'')) -> (f' (a x)) = (b (f x))) /\ ((forall y : B, (@IN B y (@group_carrier B B'')) -> (g' (b y)) = (c (g y))) /\ (forall z : C, (@IN C z (@group_carrier C C'')) -> (h' (c z)) = (d (h z))))))))))))) -> @group_monomorphism C C' (@pair (Group C) (Group C') C'' C''') c. +Axiom thm_FOUR_LEMMA_EPI : forall {A A' B B' C C' D D' : Type'}, forall f : A -> B, forall g : B -> C, forall h : C -> D, forall f' : A' -> B', forall g' : B' -> C', forall h' : C' -> D', forall a : A -> A', forall b : B -> B', forall c : C -> C', forall d : D -> D', forall A'' : Group A, forall B'' : Group B, forall C'' : Group C, forall D'' : Group D, forall A''' : Group A', forall B''' : Group B', forall C''' : Group C', forall D''' : Group D', ((@group_epimorphism A A' (@pair (Group A) (Group A') A'' A''') a) /\ ((@group_homomorphism B B' (@pair (Group B) (Group B') B'' B''') b) /\ ((@group_epimorphism C C' (@pair (Group C) (Group C') C'' C''') c) /\ ((@group_monomorphism D D' (@pair (Group D) (Group D') D'' D''') d) /\ ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A'' (@pair (Group B) (Group C) B'' C'')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_exactness B C D (@pair (Group B) (prod (Group C) (Group D)) B'' (@pair (Group C) (Group D) C'' D'')) (@pair (B -> C) (C -> D) g h)) /\ ((@group_exactness A' B' C' (@pair (Group A') (prod (Group B') (Group C')) A''' (@pair (Group B') (Group C') B''' C''')) (@pair (A' -> B') (B' -> C') f' g')) /\ ((@group_exactness B' C' D' (@pair (Group B') (prod (Group C') (Group D')) B''' (@pair (Group C') (Group D') C''' D''')) (@pair (B' -> C') (C' -> D') g' h')) /\ ((forall x : A, (@IN A x (@group_carrier A A'')) -> (f' (a x)) = (b (f x))) /\ ((forall y : B, (@IN B y (@group_carrier B B'')) -> (g' (b y)) = (c (g y))) /\ (forall z : C, (@IN C z (@group_carrier C C'')) -> (h' (c z)) = (d (h z))))))))))))) -> @group_epimorphism B B' (@pair (Group B) (Group B') B'' B''') b. +Axiom thm_FIVE_LEMMA : forall {A A' B B' C C' D D' E E' : Type'}, forall f : A -> B, forall g : B -> C, forall h : C -> D, forall k : D -> E, forall f' : A' -> B', forall g' : B' -> C', forall h' : C' -> D', forall k' : D' -> E', forall a : A -> A', forall b : B -> B', forall c : C -> C', forall d : D -> D', forall e : E -> E', forall A'' : Group A, forall B'' : Group B, forall C'' : Group C, forall D'' : Group D, forall E'' : Group E, forall A''' : Group A', forall B''' : Group B', forall C''' : Group C', forall D''' : Group D', forall E''' : Group E', ((@group_epimorphism A A' (@pair (Group A) (Group A') A'' A''') a) /\ ((@group_isomorphism B B' (@pair (Group B) (Group B') B'' B''') b) /\ ((@group_homomorphism C C' (@pair (Group C) (Group C') C'' C''') c) /\ ((@group_isomorphism D D' (@pair (Group D) (Group D') D'' D''') d) /\ ((@group_monomorphism E E' (@pair (Group E) (Group E') E'' E''') e) /\ ((@group_exactness A B C (@pair (Group A) (prod (Group B) (Group C)) A'' (@pair (Group B) (Group C) B'' C'')) (@pair (A -> B) (B -> C) f g)) /\ ((@group_exactness B C D (@pair (Group B) (prod (Group C) (Group D)) B'' (@pair (Group C) (Group D) C'' D'')) (@pair (B -> C) (C -> D) g h)) /\ ((@group_exactness C D E (@pair (Group C) (prod (Group D) (Group E)) C'' (@pair (Group D) (Group E) D'' E'')) (@pair (C -> D) (D -> E) h k)) /\ ((@group_exactness A' B' C' (@pair (Group A') (prod (Group B') (Group C')) A''' (@pair (Group B') (Group C') B''' C''')) (@pair (A' -> B') (B' -> C') f' g')) /\ ((@group_exactness B' C' D' (@pair (Group B') (prod (Group C') (Group D')) B''' (@pair (Group C') (Group D') C''' D''')) (@pair (B' -> C') (C' -> D') g' h')) /\ ((@group_exactness C' D' E' (@pair (Group C') (prod (Group D') (Group E')) C''' (@pair (Group D') (Group E') D''' E''')) (@pair (C' -> D') (D' -> E') h' k')) /\ ((forall x : A, (@IN A x (@group_carrier A A'')) -> (f' (a x)) = (b (f x))) /\ ((forall y : B, (@IN B y (@group_carrier B B'')) -> (g' (b y)) = (c (g y))) /\ ((forall z : C, (@IN C z (@group_carrier C C'')) -> (h' (c z)) = (d (h z))) /\ (forall w : D, (@IN D w (@group_carrier D D'')) -> (k' (d w)) = (e (k w))))))))))))))))) -> @group_isomorphism C C' (@pair (Group C) (Group C') C'' C''') c. +Axiom thm_SHORT_FIVE_LEMMA_MONO : forall {A A' B B' C C' : Type'}, forall f : A -> B, forall g : B -> C, forall f' : A' -> B', forall g' : B' -> C', forall a : A -> A', forall b : B -> B', forall c : C -> C', forall A'' : Group A, forall B'' : Group B, forall C'' : Group C, forall A''' : Group A', forall B''' : Group B', forall C''' : Group C', ((@group_monomorphism A A' (@pair (Group A) (Group A') A'' A''') a) /\ ((@group_homomorphism B B' (@pair (Group B) (Group B') B'' B''') b) /\ ((@group_monomorphism C C' (@pair (Group C) (Group C') C'' C''') c) /\ ((@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A'' (@pair (Group B) (Group C) B'' C'')) (@pair (A -> B) (B -> C) f g)) /\ ((@short_exact_sequence A' B' C' (@pair (Group A') (prod (Group B') (Group C')) A''' (@pair (Group B') (Group C') B''' C''')) (@pair (A' -> B') (B' -> C') f' g')) /\ ((forall x : A, (@IN A x (@group_carrier A A'')) -> (f' (a x)) = (b (f x))) /\ (forall y : B, (@IN B y (@group_carrier B B'')) -> (g' (b y)) = (c (g y))))))))) -> @group_monomorphism B B' (@pair (Group B) (Group B') B'' B''') b. +Axiom thm_SHORT_FIVE_LEMMA_EPI : forall {A A' B B' C C' : Type'}, forall f : A -> B, forall g : B -> C, forall f' : A' -> B', forall g' : B' -> C', forall a : A -> A', forall b : B -> B', forall c : C -> C', forall A'' : Group A, forall B'' : Group B, forall C'' : Group C, forall A''' : Group A', forall B''' : Group B', forall C''' : Group C', ((@group_epimorphism A A' (@pair (Group A) (Group A') A'' A''') a) /\ ((@group_homomorphism B B' (@pair (Group B) (Group B') B'' B''') b) /\ ((@group_epimorphism C C' (@pair (Group C) (Group C') C'' C''') c) /\ ((@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A'' (@pair (Group B) (Group C) B'' C'')) (@pair (A -> B) (B -> C) f g)) /\ ((@short_exact_sequence A' B' C' (@pair (Group A') (prod (Group B') (Group C')) A''' (@pair (Group B') (Group C') B''' C''')) (@pair (A' -> B') (B' -> C') f' g')) /\ ((forall x : A, (@IN A x (@group_carrier A A'')) -> (f' (a x)) = (b (f x))) /\ (forall y : B, (@IN B y (@group_carrier B B'')) -> (g' (b y)) = (c (g y))))))))) -> @group_epimorphism B B' (@pair (Group B) (Group B') B'' B''') b. +Axiom thm_SHORT_FIVE_LEMMA : forall {A A' B B' C C' : Type'}, forall f : A -> B, forall g : B -> C, forall f' : A' -> B', forall g' : B' -> C', forall a : A -> A', forall b : B -> B', forall c : C -> C', forall A'' : Group A, forall B'' : Group B, forall C'' : Group C, forall A''' : Group A', forall B''' : Group B', forall C''' : Group C', ((@group_isomorphism A A' (@pair (Group A) (Group A') A'' A''') a) /\ ((@group_homomorphism B B' (@pair (Group B) (Group B') B'' B''') b) /\ ((@group_isomorphism C C' (@pair (Group C) (Group C') C'' C''') c) /\ ((@short_exact_sequence A B C (@pair (Group A) (prod (Group B) (Group C)) A'' (@pair (Group B) (Group C) B'' C'')) (@pair (A -> B) (B -> C) f g)) /\ ((@short_exact_sequence A' B' C' (@pair (Group A') (prod (Group B') (Group C')) A''' (@pair (Group B') (Group C') B''' C''')) (@pair (A' -> B') (B' -> C') f' g')) /\ ((forall x : A, (@IN A x (@group_carrier A A'')) -> (f' (a x)) = (b (f x))) /\ (forall y : B, (@IN B y (@group_carrier B B'')) -> (g' (b y)) = (c (g y))))))))) -> @group_isomorphism B B' (@pair (Group B) (Group B') B'' B''') b. +Axiom thm_EXACT_SEQUENCE_HEXAGON_LEMMA : forall {A B C D W X Y : Type'}, forall f : X -> C, forall g : X -> D, forall h : A -> C, forall h' : C -> A, forall i : A -> X, forall j : B -> X, forall k : B -> D, forall k' : D -> B, forall a : A -> Y, forall b : B -> Y, forall c : W -> C, forall d : W -> D, forall l : W -> X, forall m : X -> Y, forall A' : Group A, forall B' : Group B, forall C' : Group C, forall D' : Group D, forall W' : Group W, forall X' : Group X, forall Y' : Group Y, ((@abelian_group X X') /\ ((@group_homomorphism A Y (@pair (Group A) (Group Y) A' Y') a) /\ ((@group_homomorphism B Y (@pair (Group B) (Group Y) B' Y') b) /\ ((@group_homomorphism W C (@pair (Group W) (Group C) W' C') c) /\ ((@group_homomorphism W D (@pair (Group W) (Group D) W' D') d) /\ ((@group_isomorphisms A C (@pair (Group A) (Group C) A' C') (@pair (A -> C) (C -> A) h h')) /\ ((@group_isomorphisms B D (@pair (Group B) (Group D) B' D') (@pair (B -> D) (D -> B) k k')) /\ ((@group_exactness A X D (@pair (Group A) (prod (Group X) (Group D)) A' (@pair (Group X) (Group D) X' D')) (@pair (A -> X) (X -> D) i g)) /\ ((@group_exactness B X C (@pair (Group B) (prod (Group X) (Group C)) B' (@pair (Group X) (Group C) X' C')) (@pair (B -> X) (X -> C) j f)) /\ ((@group_exactness W X Y (@pair (Group W) (prod (Group X) (Group Y)) W' (@pair (Group X) (Group Y) X' Y')) (@pair (W -> X) (X -> Y) l m)) /\ ((forall x : W, (@IN W x (@group_carrier W W')) -> (f (l x)) = (c x)) /\ ((forall x : W, (@IN W x (@group_carrier W W')) -> (g (l x)) = (d x)) /\ ((forall x : A, (@IN A x (@group_carrier A A')) -> (f (i x)) = (h x)) /\ ((forall x : A, (@IN A x (@group_carrier A A')) -> (m (i x)) = (a x)) /\ ((forall x : B, (@IN B x (@group_carrier B B')) -> (g (j x)) = (k x)) /\ (forall x : B, (@IN B x (@group_carrier B B')) -> (m (j x)) = (b x))))))))))))))))) -> forall x : W, (@IN W x (@group_carrier W W')) -> (@group_inv Y Y' (a (h' (c x)))) = (b (k' (d x))). +Axiom thm_matroid_set : forall {A : Type'}, (@matroid_set A) = (fun m : Matroid A => @fst (A -> Prop) ((A -> Prop) -> A -> Prop) (@dest_matroid A m)). +Axiom thm_matroid_span : forall {A : Type'}, (@matroid_span A) = (fun m : Matroid A => @snd (A -> Prop) ((A -> Prop) -> A -> Prop) (@dest_matroid A m)). +Axiom thm_MATROID_SPAN_SUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> @SUBSET A (@matroid_span A m s) (@matroid_set A m). +Axiom thm_MATROID_SPAN_SUPERSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> @SUBSET A s (@matroid_span A m s). +Axiom thm_MATROID_SPAN_MONO : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (@SUBSET A t (@matroid_set A m))) -> @SUBSET A (@matroid_span A m s) (@matroid_span A m t). +Axiom thm_MATROID_SPAN_SPAN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> (@matroid_span A m (@matroid_span A m s)) = (@matroid_span A m s). +Axiom thm_MATROID_SPAN_FINITARY : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall x : A, ((@SUBSET A s (@matroid_set A m)) /\ (@IN A x (@matroid_span A m s))) -> exists s' : A -> Prop, (@FINITE A s') /\ ((@SUBSET A s' s) /\ (@IN A x (@matroid_span A m s'))). +Axiom thm_MATROID_SPAN_EXCHANGE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall x : A, forall y : A, ((@SUBSET A s (@matroid_set A m)) /\ ((@IN A x (@matroid_set A m)) /\ ((@IN A y (@matroid_span A m (@INSERT A x s))) /\ (~ (@IN A y (@matroid_span A m s)))))) -> @IN A x (@matroid_span A m (@INSERT A y s)). +Axiom thm_MATROID_SPAN_INC : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall x : A, ((@SUBSET A s (@matroid_set A m)) /\ (@IN A x s)) -> @IN A x (@matroid_span A m s). +Axiom thm_SUBSET_MATROID_SPAN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ (@SUBSET A t (@matroid_set A m))) -> (@SUBSET A (@matroid_span A m s) (@matroid_span A m t)) = (@SUBSET A s (@matroid_span A m t)). +Axiom thm_MATROID_SPAN_MINIMAL : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A t (@matroid_set A m)) /\ (@SUBSET A s (@matroid_span A m t))) -> @SUBSET A (@matroid_span A m s) (@matroid_span A m t). +Axiom thm_MATROID_SPAN_SET : forall {A : Type'}, forall m : Matroid A, (@matroid_span A m (@matroid_set A m)) = (@matroid_set A m). +Axiom thm_MATROID_SPAN_EQ : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ (@SUBSET A t (@matroid_set A m))) -> ((@matroid_span A m s) = (@matroid_span A m t)) = ((@SUBSET A s (@matroid_span A m t)) /\ (@SUBSET A t (@matroid_span A m s))). +Axiom thm_MATROID_SPAN_EQ_SET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> ((@matroid_span A m s) = (@matroid_set A m)) = (@SUBSET A (@matroid_set A m) (@matroid_span A m s)). +Axiom thm_MATROID_SPAN_SUBSET_EQ : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (@SUBSET A t (@matroid_set A m))) -> ((@matroid_span A m s) = (@matroid_span A m t)) = (@SUBSET A t (@matroid_span A m s)). +Axiom thm_MATROID_SPAN_INTER_SUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ (@SUBSET A t (@matroid_set A m))) -> @SUBSET A (@matroid_span A m (@INTER A s t)) (@INTER A (@matroid_span A m s) (@matroid_span A m t)). +Axiom thm_MATROID_SPAN_UNION_SUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ (@SUBSET A t (@matroid_set A m))) -> @SUBSET A (@UNION A (@matroid_span A m s) (@matroid_span A m t)) (@matroid_span A m (@UNION A s t)). +Axiom thm_MATROID_SPAN_EXCHANGE_DELETE : forall {A : Type'}, forall m : Matroid A, forall a : A, forall b : A, forall s : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ ((@IN A b (@matroid_set A m)) /\ ((@IN A a (@matroid_span A m s)) /\ (~ (@IN A a (@matroid_span A m (@DELETE A s b))))))) -> @IN A b (@matroid_span A m (@INSERT A a (@DELETE A s b))). +Axiom thm_MATROID_SPAN_UNION_EQ : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ (@SUBSET A t (@matroid_set A m))) -> ((@matroid_span A m (@UNION A s t)) = (@matroid_span A m t)) = (@SUBSET A s (@matroid_span A m t)). +Axiom thm_MATROID_SPAN_INSERT_EQ : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall x : A, ((@SUBSET A s (@matroid_set A m)) /\ (@IN A x (@matroid_set A m))) -> ((@matroid_span A m (@INSERT A x s)) = (@matroid_span A m s)) = (@IN A x (@matroid_span A m s)). +Axiom thm_MATROID_SPAN_DELETE_EQ : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall x : A, ((@IN A x s) /\ (@SUBSET A s (@matroid_set A m))) -> ((@matroid_span A m (@DELETE A s x)) = (@matroid_span A m s)) = (@IN A x (@matroid_span A m (@DELETE A s x))). +Axiom thm_MATROID_SPAN_TRANS : forall {A : Type'}, forall m : Matroid A, forall x : A, forall y : A, forall s : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ ((@IN A x (@matroid_span A m s)) /\ (@IN A y (@matroid_span A m (@INSERT A x s))))) -> @IN A y (@matroid_span A m s). +Axiom thm_MATROID_SPAN_FINITARY_GEN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall k : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ ((@FINITE A k) /\ (@SUBSET A k (@matroid_span A m s)))) -> exists s' : A -> Prop, (@FINITE A s') /\ ((@SUBSET A s' s) /\ (@SUBSET A k (@matroid_span A m s'))). +Axiom thm_MATROID_SPAN_FINITARY_MINIMAL : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall x : A, ((@SUBSET A s (@matroid_set A m)) /\ (@IN A x (@matroid_span A m s))) -> exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ ((@IN A x (@matroid_span A m t)) /\ (forall t' : A -> Prop, (@PSUBSET A t' t) -> ~ (@IN A x (@matroid_span A m t'))))). +Axiom thm_matroid_spanning : forall {A : Type'}, forall s : A -> Prop, forall m : Matroid A, (@matroid_spanning A m s) = ((@SUBSET A s (@matroid_set A m)) /\ ((@matroid_span A m s) = (@matroid_set A m))). +Axiom thm_matroid_independent : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_independent A m s) = ((@SUBSET A s (@matroid_set A m)) /\ (forall x : A, (@IN A x s) -> ~ (@IN A x (@matroid_span A m (@DELETE A s x))))). +Axiom thm_matroid_basis : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_basis A m s) = ((@matroid_spanning A m s) /\ (@matroid_independent A m s)). +Axiom thm_MATROID_SPANNING_IMP_SUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_spanning A m s) -> @SUBSET A s (@matroid_set A m). +Axiom thm_MATROID_INDEPENDENT_IMP_SUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_independent A m s) -> @SUBSET A s (@matroid_set A m). +Axiom thm_MATROID_BASIS_IMP_SUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_basis A m s) -> @SUBSET A s (@matroid_set A m). +Axiom thm_MATROID_SPANNING_ALT : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_spanning A m s) = ((@SUBSET A s (@matroid_set A m)) /\ (@SUBSET A (@matroid_set A m) (@matroid_span A m s))). +Axiom thm_MATROID_SPANNING_SET : forall {A : Type'}, forall m : Matroid A, @matroid_spanning A m (@matroid_set A m). +Axiom thm_MATROID_INDEPENDENT_EMPTY : forall {A : Type'}, forall m : Matroid A, @matroid_independent A m (@EMPTY A). +Axiom thm_MATROID_INDEPENDENT_MONO : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@matroid_independent A m t) /\ (@SUBSET A s t)) -> @matroid_independent A m s. +Axiom thm_MATROID_INDEPENDENT_FINITARY : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_independent A m s) = ((@SUBSET A s (@matroid_set A m)) /\ (forall t : A -> Prop, ((@FINITE A t) /\ (@SUBSET A t s)) -> @matroid_independent A m t)). +Axiom thm_MATROID_INDEPENDENT_INSERT : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall a : A, (@matroid_independent A m (@INSERT A a s)) = (@COND Prop (@IN A a s) (@matroid_independent A m s) ((@IN A a (@matroid_set A m)) /\ ((@matroid_independent A m s) /\ (~ (@IN A a (@matroid_span A m s)))))). +Axiom thm_MATROID_SPAN_PSUBSET_INDEPENDENT : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@PSUBSET A s t) /\ (@matroid_independent A m t)) -> @PSUBSET A (@matroid_span A m s) (@matroid_span A m t). +Axiom thm_MATROID_SPANNING_SUBSET_INDEPENDENT : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A t s) /\ ((@matroid_independent A m s) /\ (@SUBSET A s (@matroid_span A m t)))) -> s = t. +Axiom thm_MATROID_SPANNING_PSUBSET_INDEPENDENT : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ~ ((@PSUBSET A s t) /\ ((@matroid_spanning A m s) /\ (@matroid_independent A m t))). +Axiom thm_MATROID_MAXIMAL_INDEPENDENT_SUBSET_SPAN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ ((@SUBSET A t (@matroid_set A m)) /\ ((@matroid_independent A m s) /\ (forall s' : A -> Prop, ((@PSUBSET A s s') /\ (@SUBSET A s' t)) -> ~ (@matroid_independent A m s'))))) -> (@matroid_span A m s) = (@matroid_span A m t). +Axiom thm_MATROID_BASIS_EQ_MAXIMAL_INDEPENDENT : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_basis A m s) = ((@matroid_independent A m s) /\ (forall s' : A -> Prop, (@PSUBSET A s s') -> ~ (@matroid_independent A m s'))). +Axiom thm_MATROID_BASIS_EQ_MINIMAL_SPANNING : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_basis A m s) = ((@matroid_spanning A m s) /\ (forall s' : A -> Prop, (@PSUBSET A s' s) -> ~ (@matroid_spanning A m s'))). +Axiom thm_MATROID_INDEPENDENT_CHAIN : forall {A : Type'}, forall m : Matroid A, forall c : (A -> Prop) -> Prop, ((forall s : A -> Prop, (@IN (A -> Prop) s c) -> @matroid_independent A m s) /\ (forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s c) /\ (@IN (A -> Prop) t c)) -> (@SUBSET A s t) \/ (@SUBSET A t s))) -> @matroid_independent A m (@UNIONS A c). +Axiom thm_MATROID_SPAN_CHAIN : forall {A : Type'}, forall m : Matroid A, forall c : (A -> Prop) -> Prop, ((~ (c = (@EMPTY (A -> Prop)))) /\ ((forall s : A -> Prop, (@IN (A -> Prop) s c) -> @SUBSET A s (@matroid_set A m)) /\ (forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s c) /\ (@IN (A -> Prop) t c)) -> (@SUBSET A s t) \/ (@SUBSET A t s)))) -> (@matroid_span A m (@UNIONS A c)) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1221 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1221 (@IN (A -> Prop) s c) (@matroid_span A m s)))). +Axiom thm_MATROID_INTERMEDIATE_SPAN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@matroid_independent A m s) /\ ((@SUBSET A t (@matroid_set A m)) /\ (@SUBSET A s (@matroid_span A m t)))) -> exists b : A -> Prop, (@SUBSET A s b) /\ ((@SUBSET A b (@UNION A s t)) /\ ((@matroid_independent A m b) /\ ((@matroid_span A m b) = (@matroid_span A m t)))). +Axiom thm_MATROID_INTERMEDIATE_BASIS : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@matroid_independent A m s) /\ (@matroid_spanning A m t)) -> exists b : A -> Prop, (@SUBSET A s b) /\ ((@SUBSET A b (@UNION A s t)) /\ (@matroid_basis A m b)). +Axiom thm_MATROID_INDEPENDENT_EXTENDS_TO_BASIS : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_independent A m s) -> exists b : A -> Prop, (@SUBSET A s b) /\ (@matroid_basis A m b). +Axiom thm_MATROID_BASIS_EXISTS : forall {A : Type'}, forall m : Matroid A, exists b : A -> Prop, @matroid_basis A m b. +Axiom thm_MATROID_SPANNING_CONTAINS_BASIS : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_spanning A m s) -> exists b : A -> Prop, (@SUBSET A b s) /\ (@matroid_basis A m b). +Axiom thm_MATROID_STEINITZ_EXCHANGE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A t (@matroid_set A m)) /\ ((@FINITE A s) /\ ((@matroid_independent A m s) /\ (@SUBSET A s (@matroid_span A m t))))) -> exists t' : A -> Prop, (@SUBSET A t' t) /\ ((@HAS_SIZE A t' (@CARD A s)) /\ ((@matroid_span A m (@UNION A (@DIFF A t t') s)) = (@matroid_span A m t))). +Axiom thm_MATROID_INDEPENDENT_CARD_LE_SPAN_FINITE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ ((@SUBSET A t (@matroid_set A m)) /\ ((@matroid_independent A m s) /\ (@SUBSET A s (@matroid_span A m t))))) -> (@FINITE A s) /\ (N.le (@CARD A s) (@CARD A t)). +Axiom thm_MATROID_EQ_SPANS_FINITE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@matroid_independent A m s) /\ ((@matroid_independent A m t) /\ ((@matroid_span A m s) = (@matroid_span A m t)))) -> (@FINITE A s) = (@FINITE A t). +Axiom thm_MATROID_EQ_SPANS_SIZE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, forall n : N, ((@matroid_independent A m s) /\ ((@matroid_independent A m t) /\ ((@matroid_span A m s) = (@matroid_span A m t)))) -> (@HAS_SIZE A s n) = (@HAS_SIZE A t n). +Axiom thm_MATROID_BASES_FINITE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@matroid_basis A m s) /\ (@matroid_basis A m t)) -> (@FINITE A s) = (@FINITE A t). +Axiom thm_MATROID_BASES_SIZE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, forall n : N, ((@matroid_basis A m s) /\ (@matroid_basis A m t)) -> (@HAS_SIZE A s n) = (@HAS_SIZE A t n). +Axiom thm_MATROID_INDEPENDENT_CARD_LE_SPAN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A t (@matroid_set A m)) /\ ((@matroid_independent A m s) /\ (@SUBSET A s (@matroid_span A m t)))) -> @le_c A A s t. +Axiom thm_MATROID_INDEPENDENT_CARD_LE_SPANNING : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@matroid_independent A m s) /\ (@matroid_spanning A m t)) -> @le_c A A s t. +Axiom thm_MATROID_EQ_SPANS_CARD_EQ : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@matroid_independent A m s) /\ ((@matroid_independent A m t) /\ ((@matroid_span A m s) = (@matroid_span A m t)))) -> @eq_c A A s t. +Axiom thm_MATROID_BASES_CARD_EQ : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@matroid_basis A m s) /\ (@matroid_basis A m t)) -> @eq_c A A s t. +Axiom thm_MATROID_INDEPENDENT_SPANNING_FINITE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@matroid_independent A m s) /\ ((@matroid_spanning A m t) /\ (@FINITE A t))) -> @FINITE A s. +Axiom thm_matroid_subspace : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_subspace A m s) = ((@SUBSET A s (@matroid_set A m)) /\ ((@matroid_span A m s) = s)). +Axiom thm_MATROID_SUBSPACE_IMP_SUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_subspace A m s) -> @SUBSET A s (@matroid_set A m). +Axiom thm_MATROID_SUBSPACE_SET : forall {A : Type'}, forall m : Matroid A, @matroid_subspace A m (@matroid_set A m). +Axiom thm_MATROID_SUBSPACE_SPAN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> @matroid_subspace A m (@matroid_span A m s). +Axiom thm_MATROID_SUBSPACE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_subspace A m s) = ((@SUBSET A s (@matroid_set A m)) /\ (@SUBSET A (@matroid_span A m s) s)). +Axiom thm_MATROID_SUBSPACE_INTERS : forall {A : Type'}, forall m : Matroid A, forall f : (A -> Prop) -> Prop, ((~ (f = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, (@IN (A -> Prop) s f) -> @matroid_subspace A m s)) -> @matroid_subspace A m (@INTERS A f). +Axiom thm_MATROID_SUBSPACE_INTER : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@matroid_subspace A m s) /\ (@matroid_subspace A m t)) -> @matroid_subspace A m (@INTER A s t). +Axiom thm_MATROID_SPAN_INTER_SPANS : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ (@SUBSET A t (@matroid_set A m))) -> (@matroid_span A m (@INTER A (@matroid_span A m s) (@matroid_span A m t))) = (@INTER A (@matroid_span A m s) (@matroid_span A m t)). +Axiom thm_MATROID_SUBSPACE_CHAIN : forall {A : Type'}, forall m : Matroid A, forall c : (A -> Prop) -> Prop, ((~ (c = (@EMPTY (A -> Prop)))) /\ ((forall s : A -> Prop, (@IN (A -> Prop) s c) -> @matroid_subspace A m s) /\ (forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s c) /\ (@IN (A -> Prop) t c)) -> (@SUBSET A s t) \/ (@SUBSET A t s)))) -> @matroid_subspace A m (@UNIONS A c). +Axiom thm_MATROID_SPAN_SUBSPACE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, ((@SUBSET A b s) /\ ((@SUBSET A s (@matroid_span A m b)) /\ (@matroid_subspace A m s))) -> (@matroid_span A m b) = s. +Axiom thm_MATROID_SPAN_EQ_SELF : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> ((@matroid_span A m s) = s) = (@matroid_subspace A m s). +Axiom thm_MATROID_SPAN_OF_SUBSPACE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_subspace A m s) -> (@matroid_span A m s) = s. +Axiom thm_MATROID_SPAN_SUBSET_SUBSPACE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (@matroid_subspace A m t)) -> @SUBSET A (@matroid_span A m s) t. +Axiom thm_submatroid : forall {A : Type'}, forall s : A -> Prop, forall m : Matroid A, (@submatroid A m s) = (@matroid A (@pair (A -> Prop) ((A -> Prop) -> A -> Prop) (@matroid_span A m (@INTER A (@matroid_set A m) s)) (@matroid_span A m))). +Axiom thm_SUBMATROID_GEN : forall {A : Type'}, (forall m : Matroid A, forall s : A -> Prop, (@matroid_set A (@submatroid A m s)) = (@matroid_span A m (@INTER A (@matroid_set A m) s))) /\ (forall m : Matroid A, forall s : A -> Prop, (@matroid_span A (@submatroid A m s)) = (@matroid_span A m)). +Axiom thm_SUBMATROID : forall {A : Type'}, (forall m : Matroid A, forall s : A -> Prop, (@matroid_subspace A m s) -> (@matroid_set A (@submatroid A m s)) = s) /\ (forall m : Matroid A, forall s : A -> Prop, (@matroid_span A (@submatroid A m s)) = (@matroid_span A m)). +Axiom thm_SUBMATROID_SPAN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> (@submatroid A m (@matroid_span A m s)) = (@submatroid A m s). +Axiom thm_SUBMATROID_SUBSET : forall {A : Type'}, (forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> (@matroid_set A (@submatroid A m s)) = (@matroid_span A m s)) /\ (forall m : Matroid A, forall s : A -> Prop, (@matroid_span A (@submatroid A m s)) = (@matroid_span A m)). +Axiom thm_SUBMATROID_SET : forall {A : Type'}, forall m : Matroid A, (@submatroid A m (@matroid_set A m)) = m. +Axiom thm_MATROID_INDEPENDENT_SUBMATROID : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> (@matroid_independent A (@submatroid A m s) b) = ((@SUBSET A b (@matroid_span A m s)) /\ (@matroid_independent A m b)). +Axiom thm_MATROID_SPANNING_SUBMATROID : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> (@matroid_spanning A (@submatroid A m s) b) = ((@SUBSET A b (@matroid_span A m s)) /\ ((@matroid_span A m b) = (@matroid_span A m s))). +Axiom thm_MATROID_SPANNING_SUBMATROID_SELF : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> @matroid_spanning A (@submatroid A m s) s. +Axiom thm_MATROID_BASIS_SUBMATROID : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> (@matroid_basis A (@submatroid A m s) b) = ((@SUBSET A b (@matroid_span A m s)) /\ ((@matroid_independent A m b) /\ ((@matroid_span A m b) = (@matroid_span A m s)))). +Axiom thm_MATROID_SUBSET_CONTAINS_BASIS : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> exists b : A -> Prop, (@SUBSET A b s) /\ ((@matroid_independent A m b) /\ ((@matroid_span A m b) = (@matroid_span A m s))). +Axiom thm_MATROID_STEINITZ_EXCHANGE_FINITE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ ((@SUBSET A t (@matroid_set A m)) /\ ((@matroid_independent A m s) /\ (@SUBSET A s (@matroid_span A m t))))) -> exists t' : A -> Prop, (@HAS_SIZE A t' (@CARD A t)) /\ ((@SUBSET A s t') /\ ((@SUBSET A t' (@UNION A s t)) /\ ((@matroid_span A m t') = (@matroid_span A m t)))). +Axiom thm_MATROID_STEINITZ_EXCHANGE_ALT : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ ((@SUBSET A t (@matroid_set A m)) /\ ((@matroid_independent A m s) /\ (@SUBSET A s (@matroid_span A m t))))) -> exists t' : A -> Prop, (@SUBSET A t' t) /\ (((N.add (@CARD A t') (@CARD A s)) = (@CARD A t)) /\ ((@matroid_span A m (@UNION A s t')) = (@matroid_span A m t))). +Axiom thm_MATROID_FINITE_DIM_IMP_SUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_finite_dim A m s) -> @SUBSET A s (@matroid_set A m). +Axiom thm_MATROID_FINITE_DIM_SET : forall {A : Type'}, forall m : Matroid A, (@matroid_finite_dim A m (@matroid_set A m)) = (@matroid_finite_dimensional A m). +Axiom thm_MATROID_DIM_SET : forall {A : Type'}, forall m : Matroid A, (@matroid_dim A m (@matroid_set A m)) = (@matroid_dimension A m). +Axiom thm_MATROID_FINITE_DIM_SPAN_EQ : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_finite_dim A m s) = ((@SUBSET A s (@matroid_set A m)) /\ (@matroid_finite_dim A m (@matroid_span A m s))). +Axiom thm_MATROID_FINITE_DIM_SPAN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> (@matroid_finite_dim A m (@matroid_span A m s)) = (@matroid_finite_dim A m s). +Axiom thm_MATROID_DIM_SPAN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> (@matroid_dim A m (@matroid_span A m s)) = (@matroid_dim A m s). +Axiom thm_MATROID_FINITE_DIMENSIONAL : forall {A : Type'}, forall m : Matroid A, (@matroid_finite_dimensional A m) = (exists b : A -> Prop, (@FINITE A b) /\ ((@SUBSET A b (@matroid_set A m)) /\ (@SUBSET A (@matroid_set A m) (@matroid_span A m b)))). +Axiom thm_MATROID_FINITE_DIMENSIONAL_BASIS : forall {A : Type'}, forall m : Matroid A, (@matroid_finite_dimensional A m) = (exists b : A -> Prop, (@FINITE A b) /\ (@matroid_basis A m b)). +Axiom thm_MATROID_FINITE_DIMENSIONAL_CONTAINS_BASIS : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, ((@matroid_finite_dimensional A m) /\ (@matroid_spanning A m s)) -> exists b : A -> Prop, (@FINITE A b) /\ ((@SUBSET A b s) /\ (@matroid_basis A m b)). +Axiom thm_MATROID_FINITE_DIMENSIONAL_ANY : forall {A : Type'}, forall m : Matroid A, forall b : A -> Prop, (@matroid_basis A m b) -> (@matroid_finite_dimensional A m) = (@FINITE A b). +Axiom thm_MATROID_FINITE_DIM : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_finite_dim A m s) = (exists b : A -> Prop, (@FINITE A b) /\ ((@SUBSET A b (@matroid_set A m)) /\ (@SUBSET A s (@matroid_span A m b)))). +Axiom thm_MATROID_FINITE_DIM_BASIS : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_finite_dim A m s) = ((@SUBSET A s (@matroid_set A m)) /\ (exists b : A -> Prop, (@FINITE A b) /\ ((@SUBSET A b s) /\ ((@matroid_independent A m b) /\ ((@matroid_span A m b) = (@matroid_span A m s)))))). +Axiom thm_MATROID_FINITE_DIM_SUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_finite_dim A m s) = ((@SUBSET A s (@matroid_set A m)) /\ (exists b : A -> Prop, (@FINITE A b) /\ ((@SUBSET A b s) /\ (@SUBSET A s (@matroid_span A m b))))). +Axiom thm_MATROID_FINITE_DIMENSIONAL_DIM : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, ((@matroid_finite_dimensional A m) /\ (@SUBSET A s (@matroid_set A m))) -> @matroid_finite_dim A m s. +Axiom thm_FINITE_IMP_MATROID_FINITE_DIM : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, ((@FINITE A s) /\ (@SUBSET A s (@matroid_set A m))) -> @matroid_finite_dim A m s. +Axiom thm_MATROID_FINITE_DIM_FINITE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@FINITE A s) -> (@matroid_finite_dim A m s) = (@SUBSET A s (@matroid_set A m)). +Axiom thm_MATROID_FINITE_DIM_EMPTY : forall {A : Type'}, forall m : Matroid A, @matroid_finite_dim A m (@EMPTY A). +Axiom thm_MATROID_FINITE_DIM_MONO : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@matroid_finite_dim A m t) /\ (@SUBSET A s t)) -> @matroid_finite_dim A m s. +Axiom thm_MATROID_FINITE_DIM_UNION : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, (@matroid_finite_dim A m (@UNION A s t)) = ((@matroid_finite_dim A m s) /\ (@matroid_finite_dim A m t)). +Axiom thm_MATROID_FINITE_DIM_INSERT : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall x : A, (@matroid_finite_dim A m (@INSERT A x s)) = ((@IN A x (@matroid_set A m)) /\ (@matroid_finite_dim A m s)). +Axiom thm_MATROID_DIMENSION_ALT : forall {A : Type'}, forall m : Matroid A, (@matroid_dimension A m) = (@ε N (fun n : N => exists b : A -> Prop, (@matroid_basis A m b) /\ (@HAS_SIZE A b n))). +Axiom thm_MATROID_DIM_BASIS : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> (@matroid_dim A m s) = (@ε N (fun n : N => exists b : A -> Prop, (@SUBSET A b s) /\ ((@matroid_independent A m b) /\ (((@matroid_span A m b) = (@matroid_span A m s)) /\ (@HAS_SIZE A b n))))). +Axiom thm_MATROID_DIM_ALT : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@SUBSET A s (@matroid_set A m)) -> (@matroid_dim A m s) = (@ε N (fun n : N => exists b : A -> Prop, (@SUBSET A b s) /\ ((@matroid_independent A m b) /\ ((@SUBSET A s (@matroid_span A m b)) /\ (@HAS_SIZE A b n))))). +Axiom thm_MATROID_DIMENSION_UNIQUE : forall {A : Type'}, forall m : Matroid A, forall b : A -> Prop, forall n : N, ((@matroid_basis A m b) /\ (@HAS_SIZE A b n)) -> (@matroid_dimension A m) = n. +Axiom thm_MATROID_DIMENSION_EQ_CARD : forall {A : Type'}, forall m : Matroid A, forall b : A -> Prop, ((@matroid_basis A m b) /\ (@FINITE A b)) -> (@matroid_dimension A m) = (@CARD A b). +Axiom thm_MATROID_DIM_UNIQUE_ALT : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, forall n : N, ((@SUBSET A s (@matroid_set A m)) /\ ((@SUBSET A b (@matroid_set A m)) /\ ((@HAS_SIZE A b n) /\ ((@matroid_independent A m b) /\ ((@matroid_span A m b) = (@matroid_span A m s)))))) -> (@matroid_dim A m s) = n. +Axiom thm_MATROID_DIM_UNIQUE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, forall n : N, ((@SUBSET A b s) /\ ((@HAS_SIZE A b n) /\ ((@matroid_independent A m b) /\ (@SUBSET A s (@matroid_span A m b))))) -> (@matroid_dim A m s) = n. +Axiom thm_MATROID_SPAN_DIM_EQ : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ ((@SUBSET A t (@matroid_set A m)) /\ ((@matroid_span A m s) = (@matroid_span A m t)))) -> (@matroid_dim A m s) = (@matroid_dim A m t). +Axiom thm_MATROID_SPAN_INSERT_REFL : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall x : A, ((@SUBSET A s (@matroid_set A m)) /\ (@IN A x (@matroid_span A m s))) -> (@matroid_span A m (@INSERT A x s)) = (@matroid_span A m s). +Axiom thm_MATROID_BASIS_EXISTS_DIMENSION : forall {A : Type'}, forall m : Matroid A, (@matroid_finite_dimensional A m) = (exists b : A -> Prop, (@HAS_SIZE A b (@matroid_dimension A m)) /\ (@matroid_basis A m b)). +Axiom thm_MATROID_BASIS_EXISTS_DIM : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_finite_dim A m s) = ((@SUBSET A s (@matroid_set A m)) /\ (exists b : A -> Prop, (@HAS_SIZE A b (@matroid_dim A m s)) /\ ((@SUBSET A b (@matroid_span A m s)) /\ ((@matroid_independent A m b) /\ ((@matroid_span A m b) = (@matroid_span A m s)))))). +Axiom thm_MATROID_CONTAINS_BASIS_DIM : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, (@matroid_finite_dim A m s) = ((@SUBSET A s (@matroid_set A m)) /\ (exists b : A -> Prop, (@HAS_SIZE A b (@matroid_dim A m s)) /\ ((@SUBSET A b s) /\ ((@matroid_independent A m b) /\ ((@matroid_span A m b) = (@matroid_span A m s)))))). +Axiom thm_MATROID_DIM_EQ_CARD_GEN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, ((@SUBSET A b s) /\ ((@FINITE A b) /\ ((@matroid_independent A m b) /\ (@SUBSET A s (@matroid_span A m b))))) -> (@matroid_dim A m s) = (@CARD A b). +Axiom thm_MATROID_DIM_EQ_CARD : forall {A : Type'}, forall m : Matroid A, forall b : A -> Prop, ((@FINITE A b) /\ (@matroid_independent A m b)) -> (@matroid_dim A m b) = (@CARD A b). +Axiom thm_MATROID_DIMENSION_LE : forall {A : Type'}, forall m : Matroid A, forall b : A -> Prop, forall n : N, ((@SUBSET A b (@matroid_set A m)) /\ ((@SUBSET A (@matroid_set A m) (@matroid_span A m b)) /\ ((@FINITE A b) /\ (N.le (@CARD A b) n)))) -> N.le (@matroid_dimension A m) n. +Axiom thm_MATROID_DIMENSION_FINITE_LE : forall {A : Type'}, forall m : Matroid A, forall b : A -> Prop, forall n : N, ((@SUBSET A b (@matroid_set A m)) /\ ((@SUBSET A (@matroid_set A m) (@matroid_span A m b)) /\ ((@FINITE A b) /\ (N.le (@CARD A b) n)))) -> (@matroid_finite_dimensional A m) /\ (N.le (@matroid_dimension A m) n). +Axiom thm_MATROID_DIM_LE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, forall n : N, ((@FINITE A b) /\ ((N.le (@CARD A b) n) /\ ((@SUBSET A b (@matroid_set A m)) /\ (@SUBSET A s (@matroid_span A m b))))) -> N.le (@matroid_dim A m s) n. +Axiom thm_MATROID_DIM_FINITE_LE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, forall n : N, ((@FINITE A b) /\ ((N.le (@CARD A b) n) /\ ((@SUBSET A b (@matroid_set A m)) /\ (@SUBSET A s (@matroid_span A m b))))) -> (@matroid_finite_dim A m s) /\ (N.le (@matroid_dim A m s) n). +Axiom thm_MATROID_DIM_LE_CARD_GEN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, ((@FINITE A b) /\ ((@SUBSET A b (@matroid_set A m)) /\ (@SUBSET A s (@matroid_span A m b)))) -> N.le (@matroid_dim A m s) (@CARD A b). +Axiom thm_MATROID_DIM_LE_CARD : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, ((@FINITE A s) /\ (@SUBSET A s (@matroid_set A m))) -> N.le (@matroid_dim A m s) (@CARD A s). +Axiom thm_MATROID_DIMENSION_GE_FINITE_CARD : forall {A : Type'}, forall m : Matroid A, forall b : A -> Prop, ((@matroid_finite_dimensional A m) /\ (@matroid_independent A m b)) -> (@FINITE A b) /\ (N.le (@CARD A b) (@matroid_dimension A m)). +Axiom thm_MATROID_DIMENSION_GE : forall {A : Type'}, forall m : Matroid A, forall b : A -> Prop, forall n : N, ((@matroid_finite_dimensional A m) /\ ((@matroid_independent A m b) /\ (N.le n (@CARD A b)))) -> N.le n (@matroid_dimension A m). +Axiom thm_MATROID_DIMENSION_GE_CARD : forall {A : Type'}, forall m : Matroid A, forall b : A -> Prop, ((@matroid_finite_dimensional A m) /\ (@matroid_independent A m b)) -> N.le (@CARD A b) (@matroid_dimension A m). +Axiom thm_MATROID_DIM_GE_FINITE_CARD : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, ((@matroid_finite_dim A m s) /\ ((@matroid_independent A m b) /\ (@SUBSET A b s))) -> (@FINITE A b) /\ (N.le (@CARD A b) (@matroid_dim A m s)). +Axiom thm_MATROID_DIM_GE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, forall n : N, ((@matroid_finite_dim A m s) /\ ((@matroid_independent A m b) /\ ((@SUBSET A b s) /\ (N.le n (@CARD A b))))) -> N.le n (@matroid_dim A m s). +Axiom thm_MATROID_DIM_GE_CARD_GEN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall b : A -> Prop, ((@matroid_finite_dim A m s) /\ ((@matroid_independent A m b) /\ (@SUBSET A b s))) -> N.le (@CARD A b) (@matroid_dim A m s). +Axiom thm_MATROID_DIM_GE_CARD : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, ((@matroid_finite_dim A m s) /\ (@matroid_independent A m s)) -> N.le (@CARD A s) (@matroid_dim A m s). +Axiom thm_FINITE_IMP_MATROID_FINITE_DIM_SPAN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, ((@FINITE A s) /\ (@SUBSET A s (@matroid_set A m))) -> @matroid_finite_dim A m (@matroid_span A m s). +Axiom thm_MATROID_INDEPENDENT_IMP_FINITE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, ((@matroid_finite_dim A m s) /\ (@matroid_independent A m s)) -> @FINITE A s. +Axiom thm_MATROID_DIM_GE_FINITE_CARD_EQ : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ ((@FINITE A s) /\ (N.le (@CARD A s) (@matroid_dim A m s)))) = ((@matroid_finite_dim A m s) /\ (@matroid_independent A m s)). +Axiom thm_MATROID_DIM_EQ_FINITE_CARD_EQ : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ ((@FINITE A s) /\ ((@matroid_dim A m s) = (@CARD A s)))) = ((@matroid_finite_dim A m s) /\ (@matroid_independent A m s)). +Axiom thm_MATROID_DIM_EMPTY : forall {A : Type'}, forall m : Matroid A, (@matroid_dim A m (@EMPTY A)) = (NUMERAL 0%N). +Axiom thm_MATROID_DIM_INSERT : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall x : A, ((@matroid_finite_dim A m s) /\ (@IN A x (@matroid_set A m))) -> (@matroid_dim A m (@INSERT A x s)) = (@COND N (@IN A x (@matroid_span A m s)) (@matroid_dim A m s) (N.add (@matroid_dim A m s) (NUMERAL (BIT1 0%N)))). +Axiom thm_MATROID_DIM_SUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (@matroid_finite_dim A m t)) -> N.le (@matroid_dim A m s) (@matroid_dim A m t). +Axiom thm_MATROID_DIM_SUBSET_ALT : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@matroid_span A m t)) /\ (@matroid_finite_dim A m t)) -> N.le (@matroid_dim A m s) (@matroid_dim A m t). +Axiom thm_MATROID_DIM_SPAN_SUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ ((@SUBSET A (@matroid_span A m s) (@matroid_span A m t)) /\ (@matroid_finite_dim A m t))) -> N.le (@matroid_dim A m s) (@matroid_dim A m t). +Axiom thm_MATROID_DIM_SPAN_PSUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ ((@PSUBSET A (@matroid_span A m s) (@matroid_span A m t)) /\ (@matroid_finite_dim A m t))) -> N.lt (@matroid_dim A m s) (@matroid_dim A m t). +Axiom thm_MATROID_DIM_SPAN_EQ_GEN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ ((@matroid_finite_dim A m t) /\ ((@SUBSET A (@matroid_span A m s) (@matroid_span A m t)) /\ (N.le (@matroid_dim A m t) (@matroid_dim A m s))))) -> (@matroid_span A m s) = (@matroid_span A m t). +Axiom thm_MATROID_DIM_SPAN_EQ : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@matroid_set A m)) /\ ((@matroid_finite_dim A m t) /\ ((@SUBSET A (@matroid_span A m s) (@matroid_span A m t)) /\ ((@matroid_dim A m s) = (@matroid_dim A m t))))) -> (@matroid_span A m s) = (@matroid_span A m t). +Axiom thm_MATROID_DIM_EQ_SPAN : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall t : A -> Prop, ((@matroid_finite_dim A m t) /\ ((@SUBSET A s t) /\ (N.le (@matroid_dim A m t) (@matroid_dim A m s)))) -> (@matroid_span A m s) = (@matroid_span A m t). +Axiom thm_MATROID_CHOOSE_SUBSET : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall n : N, ((@SUBSET A s (@matroid_set A m)) /\ ((@matroid_finite_dim A m s) -> N.le n (@matroid_dim A m s))) -> exists t : A -> Prop, (@SUBSET A t s) /\ ((@matroid_independent A m t) /\ (@HAS_SIZE A t n)). +Axiom thm_MATROID_CHOOSE_SUBSPACE : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall n : N, ((@SUBSET A s (@matroid_set A m)) /\ ((@matroid_finite_dim A m s) -> N.le n (@matroid_dim A m s))) -> exists t : A -> Prop, (@matroid_subspace A m t) /\ ((@SUBSET A t (@matroid_span A m s)) /\ ((@matroid_finite_dim A m t) /\ ((@matroid_dim A m t) = n))). +Axiom thm_MATROID_LOWDIM_EXPAND_BASIS : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall n : N, ((@matroid_finite_dim A m s) /\ ((N.le (@matroid_dim A m s) n) /\ ((@matroid_finite_dimensional A m) -> N.le n (@matroid_dimension A m)))) -> exists b : A -> Prop, (@HAS_SIZE A b n) /\ ((@matroid_independent A m b) /\ (@SUBSET A (@matroid_span A m s) (@matroid_span A m b))). +Axiom thm_MATROID_LOWDIM_EXPAND_DIMENSION : forall {A : Type'}, forall m : Matroid A, forall s : A -> Prop, forall n : N, ((@matroid_finite_dim A m s) /\ ((N.le (@matroid_dim A m s) n) /\ ((@matroid_finite_dimensional A m) -> N.le n (@matroid_dimension A m)))) -> exists t : A -> Prop, (@matroid_finite_dim A m t) /\ (((@matroid_dim A m t) = n) /\ (@SUBSET A (@matroid_span A m s) (@matroid_span A m t))). +Axiom thm_BINOM_0 : forall n : N, (binom (@pair N N (NUMERAL 0%N) n)) = (@COND N (n = (NUMERAL 0%N)) (NUMERAL (BIT1 0%N)) (NUMERAL 0%N)). +Axiom thm_BINOM_LT : forall n : N, forall k : N, (N.lt n k) -> (binom (@pair N N n k)) = (NUMERAL 0%N). +Axiom thm_BINOM_REFL : forall n : N, (binom (@pair N N n n)) = (NUMERAL (BIT1 0%N)). +Axiom thm_BINOM_1 : forall n : N, (binom (@pair N N n (NUMERAL (BIT1 0%N)))) = n. +Axiom thm_BINOM_FACT : forall n : N, forall k : N, (N.mul (FACT n) (N.mul (FACT k) (binom (@pair N N (N.add n k) k)))) = (FACT (N.add n k)). +Axiom thm_BINOM_EQ_0 : forall n : N, forall k : N, ((binom (@pair N N n k)) = (NUMERAL 0%N)) = (N.lt n k). +Axiom thm_BINOM_PENULT : forall n : N, (binom (@pair N N (N.succ n) n)) = (N.succ n). +Axiom thm_BINOM_GE_TOP : forall m : N, forall n : N, ((N.le (NUMERAL (BIT1 0%N)) m) /\ (N.lt m n)) -> N.le n (binom (@pair N N n m)). +Axiom thm_BINOM_TOP_STEP : forall n : N, forall k : N, (N.mul (N.sub (N.add n (NUMERAL (BIT1 0%N))) k) (binom (@pair N N (N.add n (NUMERAL (BIT1 0%N))) k))) = (N.mul (N.add n (NUMERAL (BIT1 0%N))) (binom (@pair N N n k))). +Axiom thm_BINOM_BOTTOM_STEP : forall n : N, forall k : N, (N.mul (N.add k (NUMERAL (BIT1 0%N))) (binom (@pair N N n (N.add k (NUMERAL (BIT1 0%N)))))) = (N.mul (N.sub n k) (binom (@pair N N n k))). +Axiom thm_HAS_SIZE_RESTRICTED_POWERSET : forall {A : Type'}, forall n : N, forall m : N, forall s : A -> Prop, (@HAS_SIZE A s n) -> @HAS_SIZE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1229 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1229 ((@SUBSET A t s) /\ (@HAS_SIZE A t m)) t)) (binom (@pair N N n m)). +Axiom thm_CARD_RESTRICTED_POWERSET : forall {_349738 : Type'}, forall s : _349738 -> Prop, forall k : N, (@FINITE _349738 s) -> (@CARD (_349738 -> Prop) (@GSPEC (_349738 -> Prop) (fun GEN_PVAR_1230 : _349738 -> Prop => exists t : _349738 -> Prop, @SETSPEC (_349738 -> Prop) GEN_PVAR_1230 ((@SUBSET _349738 t s) /\ (@HAS_SIZE _349738 t k)) t))) = (binom (@pair N N (@CARD _349738 s) k)). +Axiom thm_BINOMIAL_THEOREM : forall n : N, forall x : N, forall y : N, (N.pow (N.add x y) n) = (@nsum N (dotdot (NUMERAL 0%N) n) (fun k : N => N.mul (binom (@pair N N n k)) (N.mul (N.pow x k) (N.pow y (N.sub n k))))). +Axiom thm_REAL_BINOMIAL_THEOREM : forall n : N, forall x : R, forall y : R, (real_pow (Rplus x y) n) = (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (R_of_N (binom (@pair N N n k))) (Rmult (real_pow x k) (real_pow y (N.sub n k))))). +Axiom thm_BINOM_TOP_STEP_REAL : forall n : N, forall k : N, (R_of_N (binom (@pair N N (N.add n (NUMERAL (BIT1 0%N))) k))) = (@COND R (k = (N.add n (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL (BIT1 0%N))) (Rmult (Rdiv (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))) (Rplus (R_of_N n) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N k)))) (R_of_N (binom (@pair N N n k))))). +Axiom thm_BINOM_BOTTOM_STEP_REAL : forall n : N, forall k : N, (R_of_N (binom (@pair N N n (N.add k (NUMERAL (BIT1 0%N)))))) = (Rmult (Rdiv (Rminus (R_of_N n) (R_of_N k)) (Rplus (R_of_N k) (R_of_N (NUMERAL (BIT1 0%N))))) (R_of_N (binom (@pair N N n k)))). +Axiom thm_REAL_OF_NUM_BINOM : forall n : N, forall k : N, (R_of_N (binom (@pair N N n k))) = (@COND R (N.le k n) (Rdiv (R_of_N (FACT n)) (Rmult (R_of_N (FACT (N.sub n k))) (R_of_N (FACT k)))) (R_of_N (NUMERAL 0%N))). +Axiom thm_BINOM_BOTH_STEP_REAL : forall p : N, forall k : N, (R_of_N (binom (@pair N N (N.add p (NUMERAL (BIT1 0%N))) (N.add k (NUMERAL (BIT1 0%N)))))) = (Rmult (Rdiv (Rplus (R_of_N p) (R_of_N (NUMERAL (BIT1 0%N)))) (Rplus (R_of_N k) (R_of_N (NUMERAL (BIT1 0%N))))) (R_of_N (binom (@pair N N p k)))). +Axiom thm_BINOM_BOTH_STEP : forall p : N, forall k : N, (N.mul (N.add k (NUMERAL (BIT1 0%N))) (binom (@pair N N (N.add p (NUMERAL (BIT1 0%N))) (N.add k (NUMERAL (BIT1 0%N)))))) = (N.mul (N.add p (NUMERAL (BIT1 0%N))) (binom (@pair N N p k))). +Axiom thm_BINOM_BOTH_STEP_DOWN : forall p : N, forall k : N, ((k = (NUMERAL 0%N)) -> p = (NUMERAL 0%N)) -> (N.mul k (binom (@pair N N p k))) = (N.mul p (binom (@pair N N (N.sub p (NUMERAL (BIT1 0%N))) (N.sub k (NUMERAL (BIT1 0%N)))))). +Axiom thm_BINOM : forall n : N, forall k : N, (binom (@pair N N n k)) = (@COND N (N.le k n) (N.div (FACT n) (N.mul (FACT (N.sub n k)) (FACT k))) (NUMERAL 0%N)). +Axiom thm_BINOM_SYM : forall n : N, forall k : N, (binom (@pair N N n (N.sub n k))) = (@COND N (N.le k n) (binom (@pair N N n k)) (NUMERAL (BIT1 0%N))). +Axiom thm_BINOM_MUL_SHIFT : forall m : N, forall n : N, forall k : N, (N.le k m) -> (N.mul (binom (@pair N N n m)) (binom (@pair N N m k))) = (N.mul (binom (@pair N N n k)) (binom (@pair N N (N.sub n k) (N.sub m k)))). +Axiom thm_APPELL_SEQUENCE : forall c : N -> R, forall n : N, forall x : R, forall y : R, (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (R_of_N (binom (@pair N N n k))) (Rmult (@sum N (dotdot (NUMERAL 0%N) k) (fun l : N => Rmult (R_of_N (binom (@pair N N k l))) (Rmult (c l) (real_pow x (N.sub k l))))) (real_pow y (N.sub n k))))) = (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (R_of_N (binom (@pair N N n k))) (Rmult (c k) (real_pow (Rplus x y) (N.sub n k))))). +Axiom thm_istopology : forall {_350906 : Type'}, forall L : (_350906 -> Prop) -> Prop, (@istopology _350906 L) = ((@IN (_350906 -> Prop) (@EMPTY _350906) L) /\ ((forall s : _350906 -> Prop, forall t : _350906 -> Prop, ((@IN (_350906 -> Prop) s L) /\ (@IN (_350906 -> Prop) t L)) -> @IN (_350906 -> Prop) (@INTER _350906 s t) L) /\ (forall k : (_350906 -> Prop) -> Prop, (@SUBSET (_350906 -> Prop) k L) -> @IN (_350906 -> Prop) (@UNIONS _350906 k) L))). +Axiom thm_topology_tybij_th : forall {A : Type'}, exists t : (A -> Prop) -> Prop, @istopology A t. +Axiom thm_ISTOPOLOGY_OPEN_IN : forall {_350920 : Type'} (top : Topology _350920), @istopology _350920 (@open_in _350920 top). +Axiom thm_TOPOLOGY_EQ : forall {_350943 : Type'}, forall top1 : Topology _350943, forall top2 : Topology _350943, (top1 = top2) = (forall s : _350943 -> Prop, (@open_in _350943 top1 s) = (@open_in _350943 top2 s)). +Axiom thm_topspace : forall {_350968 : Type'}, forall top : Topology _350968, (@topspace _350968 top) = (@UNIONS _350968 (@GSPEC (_350968 -> Prop) (fun GEN_PVAR_1231 : _350968 -> Prop => exists s : _350968 -> Prop, @SETSPEC (_350968 -> Prop) GEN_PVAR_1231 (@open_in _350968 top s) s))). +Axiom thm_OPEN_IN_CLAUSES : forall {A : Type'}, forall top : Topology A, (@open_in A top (@EMPTY A)) /\ ((forall s : A -> Prop, forall t : A -> Prop, ((@open_in A top s) /\ (@open_in A top t)) -> @open_in A top (@INTER A s t)) /\ (forall k : (A -> Prop) -> Prop, (forall s : A -> Prop, (@IN (A -> Prop) s k) -> @open_in A top s) -> @open_in A top (@UNIONS A k))). +Axiom thm_OPEN_IN_SUBSET : forall {_351047 : Type'}, forall top : Topology _351047, forall s : _351047 -> Prop, (@open_in _351047 top s) -> @SUBSET _351047 s (@topspace _351047 top). +Axiom thm_OPEN_IN_EMPTY : forall {_351056 : Type'}, forall top : Topology _351056, @open_in _351056 top (@EMPTY _351056). +Axiom thm_OPEN_IN_INTER : forall {_351085 : Type'}, forall top : Topology _351085, forall s : _351085 -> Prop, forall t : _351085 -> Prop, ((@open_in _351085 top s) /\ (@open_in _351085 top t)) -> @open_in _351085 top (@INTER _351085 s t). +Axiom thm_OPEN_IN_UNIONS : forall {_351113 : Type'}, forall top : Topology _351113, forall k : (_351113 -> Prop) -> Prop, (forall s : _351113 -> Prop, (@IN (_351113 -> Prop) s k) -> @open_in _351113 top s) -> @open_in _351113 top (@UNIONS _351113 k). +Axiom thm_OPEN_IN_UNION : forall {_351142 : Type'}, forall top : Topology _351142, forall s : _351142 -> Prop, forall t : _351142 -> Prop, ((@open_in _351142 top s) /\ (@open_in _351142 top t)) -> @open_in _351142 top (@UNION _351142 s t). +Axiom thm_OPEN_IN_TOPSPACE : forall {_351152 : Type'}, forall top : Topology _351152, @open_in _351152 top (@topspace _351152 top). +Axiom thm_OPEN_IN_INTERS : forall {A : Type'}, forall top : Topology A, forall s : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) s) /\ ((~ (s = (@EMPTY (A -> Prop)))) /\ (forall t : A -> Prop, (@IN (A -> Prop) t s) -> @open_in A top t))) -> @open_in A top (@INTERS A s). +Axiom thm_OPEN_IN_SUBOPEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@open_in A top s) = (forall x : A, (@IN A x s) -> exists t : A -> Prop, (@open_in A top t) /\ ((@IN A x t) /\ (@SUBSET A t s))). +Axiom thm_closed_in : forall {_351271 : Type'}, forall top : Topology _351271, forall s : _351271 -> Prop, (@closed_in _351271 top s) = ((@SUBSET _351271 s (@topspace _351271 top)) /\ (@open_in _351271 top (@DIFF _351271 (@topspace _351271 top) s))). +Axiom thm_CLOSED_IN_SUBSET : forall {_351290 : Type'}, forall top : Topology _351290, forall s : _351290 -> Prop, (@closed_in _351290 top s) -> @SUBSET _351290 s (@topspace _351290 top). +Axiom thm_CLOSED_IN_EMPTY : forall {_351299 : Type'}, forall top : Topology _351299, @closed_in _351299 top (@EMPTY _351299). +Axiom thm_CLOSED_IN_TOPSPACE : forall {_351309 : Type'}, forall top : Topology _351309, @closed_in _351309 top (@topspace _351309 top). +Axiom thm_CLOSED_IN_UNION : forall {_351357 : Type'}, forall top : Topology _351357, forall s : _351357 -> Prop, forall t : _351357 -> Prop, ((@closed_in _351357 top s) /\ (@closed_in _351357 top t)) -> @closed_in _351357 top (@UNION _351357 s t). +Axiom thm_CLOSED_IN_INTERS : forall {A : Type'}, forall top : Topology A, forall k : (A -> Prop) -> Prop, ((~ (k = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, (@IN (A -> Prop) s k) -> @closed_in A top s)) -> @closed_in A top (@INTERS A k). +Axiom thm_CLOSED_IN_INTER : forall {_351454 : Type'}, forall top : Topology _351454, forall s : _351454 -> Prop, forall t : _351454 -> Prop, ((@closed_in _351454 top s) /\ (@closed_in _351454 top t)) -> @closed_in _351454 top (@INTER _351454 s t). +Axiom thm_OPEN_IN_CLOSED_IN_EQ : forall {_351515 : Type'}, forall top : Topology _351515, forall s : _351515 -> Prop, (@open_in _351515 top s) = ((@SUBSET _351515 s (@topspace _351515 top)) /\ (@closed_in _351515 top (@DIFF _351515 (@topspace _351515 top) s))). +Axiom thm_OPEN_IN_CLOSED_IN : forall {_351540 : Type'} (top : Topology _351540), forall s : _351540 -> Prop, (@SUBSET _351540 s (@topspace _351540 top)) -> (@open_in _351540 top s) = (@closed_in _351540 top (@DIFF _351540 (@topspace _351540 top) s)). +Axiom thm_CLOPEN_IN_COMPLEMENT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@closed_in A top s) /\ (@open_in A top s)) = ((@SUBSET A s (@topspace A top)) /\ ((@closed_in A top (@DIFF A (@topspace A top) s)) /\ (@open_in A top (@DIFF A (@topspace A top) s)))). +Axiom thm_OPEN_IN_DIFF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@open_in A top s) /\ (@closed_in A top t)) -> @open_in A top (@DIFF A s t). +Axiom thm_CLOSED_IN_DIFF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ (@open_in A top t)) -> @closed_in A top (@DIFF A s t). +Axiom thm_FORALL_OPEN_IN : forall {_351719 : Type'} (P : (_351719 -> Prop) -> Prop), forall top : Topology _351719, (forall s : _351719 -> Prop, (@open_in _351719 top s) -> P s) = (forall s : _351719 -> Prop, (@closed_in _351719 top s) -> P (@DIFF _351719 (@topspace _351719 top) s)). +Axiom thm_FORALL_CLOSED_IN : forall {_351766 : Type'} (P : (_351766 -> Prop) -> Prop), forall top : Topology _351766, (forall s : _351766 -> Prop, (@closed_in _351766 top s) -> P s) = (forall s : _351766 -> Prop, (@open_in _351766 top s) -> P (@DIFF _351766 (@topspace _351766 top) s)). +Axiom thm_EXISTS_OPEN_IN : forall {_351813 : Type'} (P : (_351813 -> Prop) -> Prop), forall top : Topology _351813, (exists s : _351813 -> Prop, (@open_in _351813 top s) /\ (P s)) = (exists s : _351813 -> Prop, (@closed_in _351813 top s) /\ (P (@DIFF _351813 (@topspace _351813 top) s))). +Axiom thm_EXISTS_CLOSED_IN : forall {_351860 : Type'} (P : (_351860 -> Prop) -> Prop), forall top : Topology _351860, (exists s : _351860 -> Prop, (@closed_in _351860 top s) /\ (P s)) = (exists s : _351860 -> Prop, (@open_in _351860 top s) /\ (P (@DIFF _351860 (@topspace _351860 top) s))). +Axiom thm_TOPOLOGY_FINER_CLOSED_IN : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, ((@topspace A top') = (@topspace A top)) -> (forall s : A -> Prop, (@open_in A top s) -> @open_in A top' s) = (forall s : A -> Prop, (@closed_in A top s) -> @closed_in A top' s). +Axiom thm_CLOSED_IN_UNIONS : forall {_351936 : Type'}, forall top : Topology _351936, forall s : (_351936 -> Prop) -> Prop, ((@FINITE (_351936 -> Prop) s) /\ (forall t : _351936 -> Prop, (@IN (_351936 -> Prop) t s) -> @closed_in _351936 top t)) -> @closed_in _351936 top (@UNIONS _351936 s). +Axiom thm_TOPOLOGY_EQ_ALT : forall {A : Type'}, forall top1 : Topology A, forall top2 : Topology A, (top1 = top2) = (forall s : A -> Prop, (@closed_in A top1 s) = (@closed_in A top2 s)). +Axiom thm_CARD_EQ_OPEN_CLOSED_IN_SETS : forall {A : Type'}, forall top : Topology A, @eq_c (A -> Prop) (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1233 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1233 (@open_in A top s) s)) (@GSPEC (A -> Prop) (fun GEN_PVAR_1234 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1234 (@closed_in A top s) s)). +Axiom thm_discrete_topology : forall {A : Type'}, forall u : A -> Prop, (@discrete_topology A u) = (@topology A (@GSPEC (A -> Prop) (fun GEN_PVAR_1235 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1235 (@SUBSET A s u) s))). +Axiom thm_discrete_space : forall {A : Type'}, forall top : Topology A, (@discrete_space A top) = ((@discrete_topology A (@topspace A top)) = top). +Axiom thm_OPEN_IN_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, forall s : A -> Prop, (@open_in A (@discrete_topology A u) s) = (@SUBSET A s u). +Axiom thm_TOPSPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, (@topspace A (@discrete_topology A u)) = u. +Axiom thm_CLOSED_IN_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, forall s : A -> Prop, (@closed_in A (@discrete_topology A u) s) = (@SUBSET A s u). +Axiom thm_DISCRETE_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @discrete_space A (@discrete_topology A u). +Axiom thm_DISCRETE_SPACE : forall {A : Type'}, forall top : Topology A, (@discrete_space A top) = (exists u : A -> Prop, (@discrete_topology A u) = top). +Axiom thm_FORALL_DISCRETE_SPACES : forall {A : Type'} (P : (A -> Prop) -> (Topology A) -> Prop), (forall top : Topology A, (@discrete_space A top) -> P (@topspace A top) top) = (forall u : A -> Prop, P u (@discrete_topology A u)). +Axiom thm_DISCRETE_TOPOLOGY_UNIQUE : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, ((@discrete_topology A u) = top) = (((@topspace A top) = u) /\ (forall x : A, (@IN A x u) -> @open_in A top (@INSERT A x (@EMPTY A)))). +Axiom thm_DISCRETE_SPACE_UNIQUE : forall {A : Type'}, forall top : Topology A, (@discrete_space A top) = (forall x : A, (@IN A x (@topspace A top)) -> @open_in A top (@INSERT A x (@EMPTY A))). +Axiom thm_DISCRETE_TOPOLOGY_UNIQUE_ALT : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, ((@discrete_topology A u) = top) = ((@SUBSET A (@topspace A top) u) /\ (forall x : A, (@IN A x u) -> @open_in A top (@INSERT A x (@EMPTY A)))). +Axiom thm_SUBTOPOLOGY_EQ_DISCRETE_TOPOLOGY_EMPTY : forall {A : Type'}, forall top : Topology A, (top = (@discrete_topology A (@EMPTY A))) = ((@topspace A top) = (@EMPTY A)). +Axiom thm_DISCRETE_SPACE_TOPSPACE_EMPTY : forall {A : Type'}, forall top : Topology A, ((@topspace A top) = (@EMPTY A)) -> @discrete_space A top. +Axiom thm_SUBTOPOLOGY_EQ_DISCRETE_TOPOLOGY_SING : forall {A : Type'}, forall top : Topology A, forall a : A, (top = (@discrete_topology A (@INSERT A a (@EMPTY A)))) = ((@topspace A top) = (@INSERT A a (@EMPTY A))). +Axiom thm_DISCRETE_SPACE_OPEN_EQ : forall {A : Type'}, forall top : Topology A, (@discrete_space A top) = (forall s : A -> Prop, (@open_in A top s) = (@SUBSET A s (@topspace A top))). +Axiom thm_DISCRETE_SPACE_OPEN : forall {A : Type'}, forall top : Topology A, (@discrete_space A top) = (forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> @open_in A top s). +Axiom thm_DISCRETE_SPACE_CLOSED_EQ : forall {A : Type'}, forall top : Topology A, (@discrete_space A top) = (forall s : A -> Prop, (@closed_in A top s) = (@SUBSET A s (@topspace A top))). +Axiom thm_DISCRETE_SPACE_CLOSED : forall {A : Type'}, forall top : Topology A, (@discrete_space A top) = (forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> @closed_in A top s). +Axiom thm_OPEN_IN_DISCRETE_SPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@discrete_space A top) -> (@open_in A top s) = (@SUBSET A s (@topspace A top)). +Axiom thm_CLOSED_IN_DISCRETE_SPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@discrete_space A top) -> (@closed_in A top s) = (@SUBSET A s (@topspace A top)). +Axiom thm_subtopology : forall {_352607 : Type'}, forall top : Topology _352607, forall u : _352607 -> Prop, (@subtopology _352607 top u) = (@topology _352607 (@GSPEC (_352607 -> Prop) (fun GEN_PVAR_1237 : _352607 -> Prop => exists s : _352607 -> Prop, @SETSPEC (_352607 -> Prop) GEN_PVAR_1237 (@open_in _352607 top s) (@INTER _352607 s u)))). +Axiom thm_ISTOPOLOGY_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, @istopology A (@GSPEC (A -> Prop) (fun GEN_PVAR_1240 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1240 (@open_in A top s) (@INTER A s u))). +Axiom thm_ISTOPOLOGY_RELATIVE_TO : forall {A : Type'}, forall top : (A -> Prop) -> Prop, forall u : A -> Prop, (@istopology A top) -> @istopology A (@relative_to A top u). +Axiom thm_OPEN_IN_SUBTOPOLOGY : forall {_352765 : Type'}, forall top : Topology _352765, forall u : _352765 -> Prop, forall s : _352765 -> Prop, (@open_in _352765 (@subtopology _352765 top u) s) = (exists t : _352765 -> Prop, (@open_in _352765 top t) /\ (s = (@INTER _352765 t u))). +Axiom thm_TOPOLOGY_FINER_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, forall u : A -> Prop, (forall s : A -> Prop, (@open_in A top s) -> @open_in A top' s) -> forall s : A -> Prop, (@open_in A (@subtopology A top u) s) -> @open_in A (@subtopology A top' u) s. +Axiom thm_OPEN_IN_SUBSET_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@open_in A top s) /\ (@SUBSET A s t)) -> @open_in A (@subtopology A top t) s. +Axiom thm_OPEN_INTER_OPEN_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@open_in A top s) -> @open_in A (@subtopology A top t) (@INTER A s t). +Axiom thm_OPEN_IN_SUBTOPOLOGY_INTER_OPEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@open_in A top t) -> @open_in A (@subtopology A top s) (@INTER A s t). +Axiom thm_OPEN_IN_RELATIVE_TO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@relative_to A (@open_in A top) s) = (@open_in A (@subtopology A top s)). +Axiom thm_OPEN_IN_SUBTOPOLOGY_ALT : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall s : A -> Prop, (@open_in A (@subtopology A top u) s) = (@IN (A -> Prop) s (@GSPEC (A -> Prop) (fun GEN_PVAR_1241 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1241 (@open_in A top t) (@INTER A u t)))). +Axiom thm_OPEN_IN_SUBSET_TRANS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@open_in A (@subtopology A top u) s) /\ ((@SUBSET A s t) /\ (@SUBSET A t u))) -> @open_in A (@subtopology A top t) s. +Axiom thm_OPEN_IN_OPEN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@open_in A top s) -> (@open_in A (@subtopology A top s) t) = ((@open_in A top t) /\ (@SUBSET A t s)). +Axiom thm_OPEN_IN_SUBTOPOLOGY_INTER_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall u : A -> Prop, forall v : A -> Prop, ((@open_in A (@subtopology A top u) (@INTER A u s)) /\ (@SUBSET A v u)) -> @open_in A (@subtopology A top v) (@INTER A v s). +Axiom thm_OPEN_IN_SUBTOPOLOGY_INTER_OPEN_IN : forall {_353136 : Type'}, forall top : Topology _353136, forall s : _353136 -> Prop, forall t : _353136 -> Prop, forall u : _353136 -> Prop, ((@open_in _353136 (@subtopology _353136 top u) s) /\ (@open_in _353136 top t)) -> @open_in _353136 (@subtopology _353136 top u) (@INTER _353136 s t). +Axiom thm_TOPSPACE_SUBTOPOLOGY : forall {_353158 : Type'}, forall top : Topology _353158, forall u : _353158 -> Prop, (@topspace _353158 (@subtopology _353158 top u)) = (@INTER _353158 (@topspace _353158 top) u). +Axiom thm_TOPSPACE_SUBTOPOLOGY_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> (@topspace A (@subtopology A top s)) = s. +Axiom thm_TOPSPACE_SUBTOPOLOGY_IS_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @SUBSET A (@topspace A (@subtopology A top s)) s. +Axiom thm_OPEN_IN_TRANS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@open_in A (@subtopology A top t) s) /\ (@open_in A (@subtopology A top u) t)) -> @open_in A (@subtopology A top u) s. +Axiom thm_CLOSED_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall s : A -> Prop, (@closed_in A (@subtopology A top u) s) = (exists t : A -> Prop, (@closed_in A top t) /\ (s = (@INTER A t u))). +Axiom thm_CLOSED_IN_SUBSET_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ (@SUBSET A s t)) -> @closed_in A (@subtopology A top t) s. +Axiom thm_CLOSED_INTER_CLOSED_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@closed_in A top s) -> @closed_in A (@subtopology A top t) (@INTER A s t). +Axiom thm_CLOSED_IN_SUBTOPOLOGY_INTER_CLOSED : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@closed_in A top t) -> @closed_in A (@subtopology A top s) (@INTER A s t). +Axiom thm_CLOSED_IN_RELATIVE_TO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@relative_to A (@closed_in A top) s) = (@closed_in A (@subtopology A top s)). +Axiom thm_CLOSED_IN_SUBTOPOLOGY_ALT : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall s : A -> Prop, (@closed_in A (@subtopology A top u) s) = (@IN (A -> Prop) s (@GSPEC (A -> Prop) (fun GEN_PVAR_1242 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1242 (@closed_in A top t) (@INTER A u t)))). +Axiom thm_CLOSED_IN_SUBSET_TRANS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@closed_in A (@subtopology A top u) s) /\ ((@SUBSET A s t) /\ (@SUBSET A t u))) -> @closed_in A (@subtopology A top t) s. +Axiom thm_CLOSED_IN_CLOSED_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@closed_in A top s) -> (@closed_in A (@subtopology A top s) t) = ((@closed_in A top t) /\ (@SUBSET A t s)). +Axiom thm_CLOSED_IN_SUBTOPOLOGY_INTER_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall u : A -> Prop, forall v : A -> Prop, ((@closed_in A (@subtopology A top u) (@INTER A u s)) /\ (@SUBSET A v u)) -> @closed_in A (@subtopology A top v) (@INTER A v s). +Axiom thm_CLOSED_IN_SUBTOPOLOGY_INTER_CLOSED_IN : forall {_353607 : Type'}, forall top : Topology _353607, forall s : _353607 -> Prop, forall t : _353607 -> Prop, forall u : _353607 -> Prop, ((@closed_in _353607 (@subtopology _353607 top u) s) /\ (@closed_in _353607 top t)) -> @closed_in _353607 (@subtopology _353607 top u) (@INTER _353607 s t). +Axiom thm_SUBTOPOLOGY_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@subtopology A (@subtopology A top s) t) = (@subtopology A top (@INTER A s t)). +Axiom thm_CLOSED_IN_TRANS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@closed_in A (@subtopology A top t) s) /\ (@closed_in A (@subtopology A top u) t)) -> @closed_in A (@subtopology A top u) s. +Axiom thm_OPEN_IN_TOPSPACE_EMPTY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@topspace A top) = (@EMPTY A)) -> (@open_in A top s) = (s = (@EMPTY A)). +Axiom thm_CLOSED_IN_TOPSPACE_EMPTY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@topspace A top) = (@EMPTY A)) -> (@closed_in A top s) = (s = (@EMPTY A)). +Axiom thm_OPEN_IN_SUBTOPOLOGY_EMPTY : forall {_353791 : Type'}, forall top : Topology _353791, forall s : _353791 -> Prop, (@open_in _353791 (@subtopology _353791 top (@EMPTY _353791)) s) = (s = (@EMPTY _353791)). +Axiom thm_CLOSED_IN_SUBTOPOLOGY_EMPTY : forall {_353813 : Type'}, forall top : Topology _353813, forall s : _353813 -> Prop, (@closed_in _353813 (@subtopology _353813 top (@EMPTY _353813)) s) = (s = (@EMPTY _353813)). +Axiom thm_OPEN_IN_SUBTOPOLOGY_REFL : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, (@open_in A (@subtopology A top u) u) = (@SUBSET A u (@topspace A top)). +Axiom thm_CLOSED_IN_SUBTOPOLOGY_REFL : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, (@closed_in A (@subtopology A top u) u) = (@SUBSET A u (@topspace A top)). +Axiom thm_SUBTOPOLOGY_SUPERSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A (@topspace A top) s) -> (@subtopology A top s) = top. +Axiom thm_SUBTOPOLOGY_TOPSPACE : forall {_353924 : Type'}, forall top : Topology _353924, (@subtopology _353924 top (@topspace _353924 top)) = top. +Axiom thm_SUBTOPOLOGY_UNIV : forall {_353936 : Type'}, forall top : Topology _353936, (@subtopology _353936 top (@UNIV _353936)) = top. +Axiom thm_SUBTOPOLOGY_RESTRICT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@subtopology A top s) = (@subtopology A top (@INTER A (@topspace A top) s)). +Axiom thm_OPEN_IN_IMP_SUBSET : forall {_353980 : Type'}, forall top : Topology _353980, forall s : _353980 -> Prop, forall t : _353980 -> Prop, (@open_in _353980 (@subtopology _353980 top s) t) -> @SUBSET _353980 t s. +Axiom thm_CLOSED_IN_IMP_SUBSET : forall {_354004 : Type'}, forall top : Topology _354004, forall s : _354004 -> Prop, forall t : _354004 -> Prop, (@closed_in _354004 (@subtopology _354004 top s) t) -> @SUBSET _354004 t s. +Axiom thm_OPEN_IN_TRANS_FULL : forall {_354030 : Type'}, forall top : Topology _354030, forall s : _354030 -> Prop, forall u : _354030 -> Prop, ((@open_in _354030 (@subtopology _354030 top u) s) /\ (@open_in _354030 top u)) -> @open_in _354030 top s. +Axiom thm_CLOSED_IN_TRANS_FULL : forall {_354059 : Type'}, forall top : Topology _354059, forall s : _354059 -> Prop, forall u : _354059 -> Prop, ((@closed_in _354059 (@subtopology _354059 top u) s) /\ (@closed_in _354059 top u)) -> @closed_in _354059 top s. +Axiom thm_OPEN_IN_SUBTOPOLOGY_DIFF_CLOSED : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ (@closed_in A top t)) -> @open_in A (@subtopology A top s) (@DIFF A s t). +Axiom thm_CLOSED_IN_SUBTOPOLOGY_DIFF_OPEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ (@open_in A top t)) -> @closed_in A (@subtopology A top s) (@DIFF A s t). +Axiom thm_OPEN_IN_SUBTOPOLOGY_UNION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@open_in A (@subtopology A top t) s) /\ (@open_in A (@subtopology A top u) s)) -> @open_in A (@subtopology A top (@UNION A t u)) s. +Axiom thm_CLOSED_IN_SUBTOPOLOGY_UNION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@closed_in A (@subtopology A top t) s) /\ (@closed_in A (@subtopology A top u) s)) -> @closed_in A (@subtopology A top (@UNION A t u)) s. +Axiom thm_SUBTOPOLOGY_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, forall s : A -> Prop, (@subtopology A (@discrete_topology A u) s) = (@discrete_topology A (@INTER A u s)). +Axiom thm_DISCRETE_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@discrete_space A top) -> @discrete_space A (@subtopology A top s). +Axiom thm_ISTOPOLOGY_BASE_ALT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@istopology A (@UNION_OF A (@ARBITRARY A) P)) = (forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@ARBITRARY A) P s) /\ (@UNION_OF A (@ARBITRARY A) P t)) -> @UNION_OF A (@ARBITRARY A) P (@INTER A s t)). +Axiom thm_ISTOPOLOGY_BASE_EQ : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@istopology A (@UNION_OF A (@ARBITRARY A) P)) = (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> @UNION_OF A (@ARBITRARY A) P (@INTER A s t)). +Axiom thm_ISTOPOLOGY_BASE : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@INTER A s t)) -> @istopology A (@UNION_OF A (@ARBITRARY A) P). +Axiom thm_MINIMAL_TOPOLOGY_BASE : forall {A : Type'}, forall top : Topology A, forall P : (A -> Prop) -> Prop, ((forall s : A -> Prop, (P s) -> @open_in A top s) /\ (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@INTER A s t))) -> forall s : A -> Prop, (@open_in A (@topology A (@UNION_OF A (@ARBITRARY A) P)) s) -> @open_in A top s. +Axiom thm_OPEN_IN_TOPOLOGY_BASE_UNIQUE : forall {A : Type'}, forall top : Topology A, forall B : (A -> Prop) -> Prop, ((@open_in A top) = (@UNION_OF A (@ARBITRARY A) B)) = ((forall v : A -> Prop, (@IN (A -> Prop) v B) -> @open_in A top v) /\ (forall u : A -> Prop, forall x : A, ((@open_in A top u) /\ (@IN A x u)) -> exists v : A -> Prop, (@IN (A -> Prop) v B) /\ ((@IN A x v) /\ (@SUBSET A v u)))). +Axiom thm_TOPOLOGY_BASE_UNIQUE : forall {A : Type'}, forall top : Topology A, forall P : (A -> Prop) -> Prop, ((forall s : A -> Prop, (P s) -> @open_in A top s) /\ (forall u : A -> Prop, forall x : A, ((@open_in A top u) /\ (@IN A x u)) -> exists b : A -> Prop, (P b) /\ ((@IN A x b) /\ (@SUBSET A b u)))) -> (@topology A (@UNION_OF A (@ARBITRARY A) P)) = top. +Axiom thm_TOPOLOGY_BASES_EQ : forall {_354726 : Type'}, forall P : (_354726 -> Prop) -> Prop, forall Q : (_354726 -> Prop) -> Prop, ((forall u : _354726 -> Prop, forall x : _354726, ((P u) /\ (@IN _354726 x u)) -> exists v : _354726 -> Prop, (Q v) /\ ((@IN _354726 x v) /\ (@SUBSET _354726 v u))) /\ (forall v : _354726 -> Prop, forall x : _354726, ((Q v) /\ (@IN _354726 x v)) -> exists u : _354726 -> Prop, (P u) /\ ((@IN _354726 x u) /\ (@SUBSET _354726 u v)))) -> (@topology _354726 (@UNION_OF _354726 (@ARBITRARY _354726) P)) = (@topology _354726 (@UNION_OF _354726 (@ARBITRARY _354726) Q)). +Axiom thm_ISTOPOLOGY_SUBBASE : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, @istopology A (@UNION_OF A (@ARBITRARY A) (@relative_to A (@INTERSECTION_OF A (@FINITE (A -> Prop)) P) s)). +Axiom thm_OPEN_IN_SUBBASE : forall {A : Type'}, forall B : (A -> Prop) -> Prop, forall u : A -> Prop, forall s : A -> Prop, (@open_in A (@topology A (@UNION_OF A (@ARBITRARY A) (@relative_to A (@INTERSECTION_OF A (@FINITE (A -> Prop)) B) u))) s) = (@UNION_OF A (@ARBITRARY A) (@relative_to A (@INTERSECTION_OF A (@FINITE (A -> Prop)) B) u) s). +Axiom thm_TOPSPACE_SUBBASE : forall {A : Type'}, forall B : (A -> Prop) -> Prop, forall u : A -> Prop, (@topspace A (@topology A (@UNION_OF A (@ARBITRARY A) (@relative_to A (@INTERSECTION_OF A (@FINITE (A -> Prop)) B) u)))) = u. +Axiom thm_MINIMAL_TOPOLOGY_SUBBASE : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall P : (A -> Prop) -> Prop, ((forall s : A -> Prop, (P s) -> @open_in A top s) /\ (@open_in A top u)) -> forall s : A -> Prop, (@open_in A (@topology A (@UNION_OF A (@ARBITRARY A) (@relative_to A (@INTERSECTION_OF A (@FINITE (A -> Prop)) P) u))) s) -> @open_in A top s. +Axiom thm_ISTOPOLOGY_SUBBASE_UNIV : forall {A : Type'}, forall P : (A -> Prop) -> Prop, @istopology A (@UNION_OF A (@ARBITRARY A) (@INTERSECTION_OF A (@FINITE (A -> Prop)) P)). +Axiom thm_hereditarily : forall {A : Type'}, forall P : (Topology A) -> Prop, forall top : Topology A, (@hereditarily A P top) = (forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> P (@subtopology A top s)). +Axiom thm_HEREDITARILY : forall {A : Type'}, forall P : (Topology A) -> Prop, forall top : Topology A, (@hereditarily A P top) = (forall s : A -> Prop, P (@subtopology A top s)). +Axiom thm_HEREDITARILY_MONO : forall {A : Type'} (t : Topology A), forall P : (Topology A) -> Prop, forall Q : (Topology A) -> Prop, (forall top : Topology A, (P top) -> Q t) -> forall top : Topology A, (@hereditarily A P top) -> @hereditarily A P top. +Axiom thm_HEREDITARILY_INC : forall {A : Type'} (top : Topology A), forall P : (Topology A) -> Prop, (@hereditarily A P top) -> P top. +Axiom thm_HEREDITARILY_SUBTOPOLOGY : forall {A : Type'}, forall P : (Topology A) -> Prop, forall top : Topology A, forall s : A -> Prop, (@hereditarily A P top) -> @hereditarily A P (@subtopology A top s). +Axiom thm_derived_set_of : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@derived_set_of A top s) = (@GSPEC A (fun GEN_PVAR_1246 : A => exists x : A, @SETSPEC A GEN_PVAR_1246 ((@IN A x (@topspace A top)) /\ (forall t : A -> Prop, ((@IN A x t) /\ (@open_in A top t)) -> exists y : A, (~ (y = x)) /\ ((@IN A y s) /\ (@IN A y t)))) x)). +Axiom thm_DERIVED_SET_OF_RESTRICT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@derived_set_of A top s) = (@derived_set_of A top (@INTER A (@topspace A top) s)). +Axiom thm_IN_DERIVED_SET_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall x : A, (@IN A x (@derived_set_of A top s)) = ((@IN A x (@topspace A top)) /\ (forall t : A -> Prop, ((@IN A x t) /\ (@open_in A top t)) -> exists y : A, (~ (y = x)) /\ ((@IN A y s) /\ (@IN A y t)))). +Axiom thm_DERIVED_SET_OF_SUBSET_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @SUBSET A (@derived_set_of A top s) (@topspace A top). +Axiom thm_DERIVED_SET_OF_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall s : A -> Prop, (@derived_set_of A (@subtopology A top u) s) = (@INTER A u (@derived_set_of A top (@INTER A u s))). +Axiom thm_DERIVED_SET_OF_SUBSET_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@derived_set_of A (@subtopology A top s) t) s. +Axiom thm_DERIVED_SET_OF_EMPTY : forall {A : Type'}, forall top : Topology A, (@derived_set_of A top (@EMPTY A)) = (@EMPTY A). +Axiom thm_DERIVED_SET_OF_MONO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> @SUBSET A (@derived_set_of A top s) (@derived_set_of A top t). +Axiom thm_DERIVED_SET_OF_UNION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@derived_set_of A top (@UNION A s t)) = (@UNION A (@derived_set_of A top s) (@derived_set_of A top t)). +Axiom thm_DERIVED_SET_OF_UNIONS : forall {A : Type'}, forall top : Topology A, forall f : (A -> Prop) -> Prop, (@FINITE (A -> Prop) f) -> (@derived_set_of A top (@UNIONS A f)) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1247 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1247 (@IN (A -> Prop) s f) (@derived_set_of A top s)))). +Axiom thm_DERIVED_SET_OF_TOPSPACE : forall {A : Type'}, forall top : Topology A, (@derived_set_of A top (@topspace A top)) = (@GSPEC A (fun GEN_PVAR_1248 : A => exists x : A, @SETSPEC A GEN_PVAR_1248 ((@IN A x (@topspace A top)) /\ (~ (@open_in A top (@INSERT A x (@EMPTY A))))) x)). +Axiom thm_DISCRETE_TOPOLOGY_UNIQUE_DERIVED_SET : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, ((@discrete_topology A u) = top) = (((@topspace A top) = u) /\ ((@derived_set_of A top u) = (@EMPTY A))). +Axiom thm_SUBTOPOLOGY_EQ_DISCRETE_TOPOLOGY_EQ : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, ((@subtopology A top u) = (@discrete_topology A u)) = ((@SUBSET A u (@topspace A top)) /\ ((@INTER A u (@derived_set_of A top u)) = (@EMPTY A))). +Axiom thm_SUBTOPOLOGY_EQ_DISCRETE_TOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ ((@INTER A s (@derived_set_of A top s)) = (@EMPTY A))) -> (@subtopology A top s) = (@discrete_topology A s). +Axiom thm_SUBTOPOLOGY_EQ_DISCRETE_TOPOLOGY_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@INTER A s (@derived_set_of A top s)) = (@EMPTY A)) -> (@subtopology A top s) = (@discrete_topology A (@INTER A (@topspace A top) s)). +Axiom thm_OPEN_IN_INTER_DERIVED_SET_OF_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@open_in A top s) -> @SUBSET A (@INTER A s (@derived_set_of A top t)) (@derived_set_of A top (@INTER A s t)). +Axiom thm_OPEN_IN_INTER_DERIVED_SET_OF_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@open_in A top s) -> (@INTER A s (@derived_set_of A top t)) = (@INTER A s (@derived_set_of A top (@INTER A s t))). +Axiom thm_closure_of : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closure_of A top s) = (@GSPEC A (fun GEN_PVAR_1249 : A => exists x : A, @SETSPEC A GEN_PVAR_1249 ((@IN A x (@topspace A top)) /\ (forall t : A -> Prop, ((@IN A x t) /\ (@open_in A top t)) -> exists y : A, (@IN A y s) /\ (@IN A y t))) x)). +Axiom thm_CLOSURE_OF_RESTRICT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closure_of A top s) = (@closure_of A top (@INTER A (@topspace A top) s)). +Axiom thm_IN_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall x : A, (@IN A x (@closure_of A top s)) = ((@IN A x (@topspace A top)) /\ (forall t : A -> Prop, ((@IN A x t) /\ (@open_in A top t)) -> exists y : A, (@IN A y s) /\ (@IN A y t))). +Axiom thm_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closure_of A top s) = (@INTER A (@topspace A top) (@UNION A s (@derived_set_of A top s))). +Axiom thm_CLOSURE_OF_ALT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closure_of A top s) = (@UNION A (@INTER A (@topspace A top) s) (@derived_set_of A top s)). +Axiom thm_DERIVED_SET_OF_SUBSET_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @SUBSET A (@derived_set_of A top s) (@closure_of A top s). +Axiom thm_CLOSURE_OF_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall s : A -> Prop, (@closure_of A (@subtopology A top u) s) = (@INTER A u (@closure_of A top (@INTER A u s))). +Axiom thm_CLOSURE_OF_EMPTY : forall {A : Type'}, forall top : Topology A, (@closure_of A top (@EMPTY A)) = (@EMPTY A). +Axiom thm_CLOSURE_OF_TOPSPACE : forall {A : Type'}, forall top : Topology A, (@closure_of A top (@topspace A top)) = (@topspace A top). +Axiom thm_CLOSURE_OF_UNIV : forall {A : Type'}, forall top : Topology A, (@closure_of A top (@UNIV A)) = (@topspace A top). +Axiom thm_CLOSURE_OF_SUBSET_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @SUBSET A (@closure_of A top s) (@topspace A top). +Axiom thm_CLOSURE_OF_SUBSET_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@closure_of A (@subtopology A top s) t) s. +Axiom thm_CLOSURE_OF_MONO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> @SUBSET A (@closure_of A top s) (@closure_of A top t). +Axiom thm_CLOSURE_OF_SUBTOPOLOGY_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall u : A -> Prop, @SUBSET A (@closure_of A (@subtopology A top u) s) (@closure_of A top s). +Axiom thm_CLOSURE_OF_SUBTOPOLOGY_MONO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@SUBSET A t u) -> @SUBSET A (@closure_of A (@subtopology A top t) s) (@closure_of A (@subtopology A top u) s). +Axiom thm_CLOSURE_OF_UNION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@closure_of A top (@UNION A s t)) = (@UNION A (@closure_of A top s) (@closure_of A top t)). +Axiom thm_CLOSURE_OF_UNIONS : forall {A : Type'}, forall top : Topology A, forall f : (A -> Prop) -> Prop, (@FINITE (A -> Prop) f) -> (@closure_of A top (@UNIONS A f)) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1250 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1250 (@IN (A -> Prop) s f) (@closure_of A top s)))). +Axiom thm_CLOSURE_OF_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> @SUBSET A s (@closure_of A top s). +Axiom thm_CLOSURE_OF_SUBSET_INTER : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @SUBSET A (@INTER A (@topspace A top) s) (@closure_of A top s). +Axiom thm_CLOSURE_OF_SUBSET_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ (@SUBSET A (@closure_of A top s) s)) = (@closed_in A top s). +Axiom thm_CLOSURE_OF_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@closure_of A top s) = s) = (@closed_in A top s). +Axiom thm_CLOSED_IN_CONTAINS_DERIVED_SET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closed_in A top s) = ((@SUBSET A (@derived_set_of A top s) s) /\ (@SUBSET A s (@topspace A top))). +Axiom thm_DERIVED_SET_SUBSET_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A (@derived_set_of A top s) s) = (@closed_in A top (@INTER A (@topspace A top) s)). +Axiom thm_DERIVED_SET_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> (@SUBSET A (@derived_set_of A top s) s) = (@closed_in A top s). +Axiom thm_CLOSED_IN_DERIVED_SET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@closed_in A (@subtopology A top t) s) = ((@SUBSET A s (@topspace A top)) /\ ((@SUBSET A s t) /\ (forall x : A, ((@IN A x (@derived_set_of A top s)) /\ (@IN A x t)) -> @IN A x s))). +Axiom thm_CLOSED_IN_INTER_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@closed_in A (@subtopology A top s) t) = ((@INTER A s (@closure_of A top t)) = t). +Axiom thm_CLOSURE_OF_CLOSED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closed_in A top s) -> (@closure_of A top s) = s. +Axiom thm_CLOSED_IN_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @closed_in A top (@closure_of A top s). +Axiom thm_CLOSURE_OF_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closure_of A top (@closure_of A top s)) = (@closure_of A top s). +Axiom thm_CLOSURE_OF_HULL : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> (@closure_of A top s) = (@hull A (@closed_in A top) s). +Axiom thm_CLOSURE_OF_MINIMAL : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (@closed_in A top t)) -> @SUBSET A (@closure_of A top s) t. +Axiom thm_CLOSURE_OF_MINIMAL_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ (@closed_in A top t)) -> (@SUBSET A (@closure_of A top s) t) = (@SUBSET A s t). +Axiom thm_CLOSURE_OF_UNIQUE : forall {_356704 : Type'}, forall top : Topology _356704, forall s : _356704 -> Prop, forall t : _356704 -> Prop, ((@SUBSET _356704 s t) /\ ((@closed_in _356704 top t) /\ (forall t' : _356704 -> Prop, ((@SUBSET _356704 s t') /\ (@closed_in _356704 top t')) -> @SUBSET _356704 t t'))) -> (@closure_of _356704 top s) = t. +Axiom thm_FORALL_IN_CLOSURE_OF_GEN : forall {A : Type'}, forall top : Topology A, forall P : A -> Prop, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> P x) /\ (@closed_in A top (@GSPEC A (fun GEN_PVAR_1253 : A => exists x : A, @SETSPEC A GEN_PVAR_1253 ((@IN A x (@closure_of A top s)) /\ (P x)) x)))) -> forall x : A, (@IN A x (@closure_of A top s)) -> P x. +Axiom thm_FORALL_IN_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall P : A -> Prop, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> P x) /\ (@closed_in A top (@GSPEC A (fun GEN_PVAR_1256 : A => exists x : A, @SETSPEC A GEN_PVAR_1256 ((@IN A x (@topspace A top)) /\ (P x)) x)))) -> forall x : A, (@IN A x (@closure_of A top s)) -> P x. +Axiom thm_FORALL_IN_CLOSURE_OF_UNIV : forall {A : Type'}, forall top : Topology A, forall P : A -> Prop, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> P x) /\ (@closed_in A top (@GSPEC A (fun GEN_PVAR_1258 : A => exists x : A, @SETSPEC A GEN_PVAR_1258 (P x) x)))) -> forall x : A, (@IN A x (@closure_of A top s)) -> P x. +Axiom thm_CLOSURE_OF_EQ_EMPTY_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@closure_of A top s) = (@EMPTY A)) = (@DISJOINT A (@topspace A top) s). +Axiom thm_CLOSURE_OF_EQ_EMPTY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> ((@closure_of A top s) = (@EMPTY A)) = (s = (@EMPTY A)). +Axiom thm_OPEN_IN_INTER_CLOSURE_OF_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@open_in A top s) -> @SUBSET A (@INTER A s (@closure_of A top t)) (@closure_of A top (@INTER A s t)). +Axiom thm_CLOSURE_OF_OPEN_IN_INTER_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@open_in A top s) -> (@closure_of A top (@INTER A s (@closure_of A top t))) = (@closure_of A top (@INTER A s t)). +Axiom thm_OPEN_IN_INTER_CLOSURE_OF_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@open_in A top s) -> (@INTER A s (@closure_of A top t)) = (@INTER A s (@closure_of A top (@INTER A s t))). +Axiom thm_OPEN_IN_INTER_CLOSURE_OF_EQ_EMPTY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@open_in A top s) -> ((@INTER A s (@closure_of A top t)) = (@EMPTY A)) = ((@INTER A s t) = (@EMPTY A)). +Axiom thm_CLOSURE_OF_OPEN_IN_INTER_SUPERSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@open_in A top s) /\ (@SUBSET A s (@closure_of A top t))) -> (@closure_of A top (@INTER A s t)) = (@closure_of A top s). +Axiom thm_CLOSURE_OF_OPEN_IN_SUBTOPOLOGY_INTER_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@open_in A (@subtopology A top u) s) /\ (@SUBSET A t u)) -> (@closure_of A top (@INTER A s (@closure_of A top t))) = (@closure_of A top (@INTER A s t)). +Axiom thm_CLOSURE_OF_SUBTOPOLOGY_OPEN : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall s : A -> Prop, ((@open_in A top u) \/ (@SUBSET A s u)) -> (@closure_of A (@subtopology A top u) s) = (@INTER A u (@closure_of A top s)). +Axiom thm_DISCRETE_TOPOLOGY_CLOSURE_OF : forall {A : Type'}, forall u : A -> Prop, forall s : A -> Prop, (@closure_of A (@discrete_topology A u) s) = (@INTER A u s). +Axiom thm_interior_of : forall {_357493 : Type'}, forall top : Topology _357493, forall s : _357493 -> Prop, (@interior_of _357493 top s) = (@GSPEC _357493 (fun GEN_PVAR_1259 : _357493 => exists x : _357493, @SETSPEC _357493 GEN_PVAR_1259 (exists t : _357493 -> Prop, (@open_in _357493 top t) /\ ((@IN _357493 x t) /\ (@SUBSET _357493 t s))) x)). +Axiom thm_INTERIOR_OF_RESTRICT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@interior_of A top s) = (@interior_of A top (@INTER A (@topspace A top) s)). +Axiom thm_INTERIOR_OF_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@interior_of A top s) = s) = (@open_in A top s). +Axiom thm_INTERIOR_OF_OPEN_IN : forall {a : Type'}, forall top : Topology a, forall s : a -> Prop, (@open_in a top s) -> (@interior_of a top s) = s. +Axiom thm_INTERIOR_OF_EMPTY : forall {A : Type'}, forall top : Topology A, (@interior_of A top (@EMPTY A)) = (@EMPTY A). +Axiom thm_INTERIOR_OF_TOPSPACE : forall {A : Type'}, forall top : Topology A, (@interior_of A top (@topspace A top)) = (@topspace A top). +Axiom thm_OPEN_IN_INTERIOR_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @open_in A top (@interior_of A top s). +Axiom thm_INTERIOR_OF_INTERIOR_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@interior_of A top (@interior_of A top s)) = (@interior_of A top s). +Axiom thm_INTERIOR_OF_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @SUBSET A (@interior_of A top s) s. +Axiom thm_INTERIOR_OF_SUBSET_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @SUBSET A (@interior_of A top s) (@closure_of A top s). +Axiom thm_SUBSET_INTERIOR_OF_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@interior_of A top s)) = (@open_in A top s). +Axiom thm_INTERIOR_OF_MONO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> @SUBSET A (@interior_of A top s) (@interior_of A top t). +Axiom thm_INTERIOR_OF_MAXIMAL : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A t s) /\ (@open_in A top t)) -> @SUBSET A t (@interior_of A top s). +Axiom thm_INTERIOR_OF_MAXIMAL_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@open_in A top t) -> (@SUBSET A t (@interior_of A top s)) = (@SUBSET A t s). +Axiom thm_INTERIOR_OF_UNIQUE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A t s) /\ ((@open_in A top t) /\ (forall t' : A -> Prop, ((@SUBSET A t' s) /\ (@open_in A top t')) -> @SUBSET A t' t))) -> (@interior_of A top s) = t. +Axiom thm_INTERIOR_OF_SUBSET_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @SUBSET A (@interior_of A top s) (@topspace A top). +Axiom thm_INTERIOR_OF_SUBSET_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@interior_of A (@subtopology A top s) t) s. +Axiom thm_INTERIOR_OF_INTER : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@interior_of A top (@INTER A s t)) = (@INTER A (@interior_of A top s) (@interior_of A top t)). +Axiom thm_INTERIOR_OF_INTERS_SUBSET : forall {A : Type'}, forall top : Topology A, forall f : (A -> Prop) -> Prop, @SUBSET A (@interior_of A top (@INTERS A f)) (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1260 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1260 (@IN (A -> Prop) s f) (@interior_of A top s)))). +Axiom thm_UNION_INTERIOR_OF_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@UNION A (@interior_of A top s) (@interior_of A top t)) (@interior_of A top (@UNION A s t)). +Axiom thm_INTERIOR_OF_EQ_EMPTY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@interior_of A top s) = (@EMPTY A)) = (forall t : A -> Prop, ((@open_in A top t) /\ (@SUBSET A t s)) -> t = (@EMPTY A)). +Axiom thm_INTERIOR_OF_EQ_EMPTY_ALT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@interior_of A top s) = (@EMPTY A)) = (forall t : A -> Prop, ((@open_in A top t) /\ (~ (t = (@EMPTY A)))) -> ~ ((@DIFF A t s) = (@EMPTY A))). +Axiom thm_INTERIOR_OF_UNIONS_OPEN_IN_SUBSETS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1261 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1261 ((@open_in A top t) /\ (@SUBSET A t s)) t))) = (@interior_of A top s). +Axiom thm_INTERIOR_OF_COMPLEMENT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@interior_of A top (@DIFF A (@topspace A top) s)) = (@DIFF A (@topspace A top) (@closure_of A top s)). +Axiom thm_INTERIOR_OF_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@interior_of A top s) = (@DIFF A (@topspace A top) (@closure_of A top (@DIFF A (@topspace A top) s))). +Axiom thm_CLOSURE_OF_INTERIOR_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closure_of A top s) = (@DIFF A (@topspace A top) (@interior_of A top (@DIFF A (@topspace A top) s))). +Axiom thm_CLOSURE_OF_COMPLEMENT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closure_of A top (@DIFF A (@topspace A top) s)) = (@DIFF A (@topspace A top) (@interior_of A top s)). +Axiom thm_INTERIOR_OF_EQ_EMPTY_COMPLEMENT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@interior_of A top s) = (@EMPTY A)) = ((@closure_of A top (@DIFF A (@topspace A top) s)) = (@topspace A top)). +Axiom thm_CLOSURE_OF_EQ_UNIV : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@closure_of A top s) = (@topspace A top)) = ((@interior_of A top (@DIFF A (@topspace A top) s)) = (@EMPTY A)). +Axiom thm_INTERIOR_OF_SUBTOPOLOGY_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall u : A -> Prop, @SUBSET A (@INTER A u (@interior_of A top s)) (@interior_of A (@subtopology A top u) s). +Axiom thm_INTERIOR_OF_SUBTOPOLOGY_SUBSETS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@SUBSET A t u) -> @SUBSET A (@INTER A t (@interior_of A (@subtopology A top u) s)) (@interior_of A (@subtopology A top t) s). +Axiom thm_INTERIOR_OF_SUBTOPOLOGY_MONO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@SUBSET A s t) /\ (@SUBSET A t u)) -> @SUBSET A (@interior_of A (@subtopology A top u) s) (@interior_of A (@subtopology A top t) s). +Axiom thm_INTERIOR_OF_SUBTOPOLOGY_OPEN : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall s : A -> Prop, (@open_in A top u) -> (@interior_of A (@subtopology A top u) s) = (@INTER A u (@interior_of A top s)). +Axiom thm_DENSE_INTERSECTS_OPEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@closure_of A top s) = (@topspace A top)) = (forall t : A -> Prop, ((@open_in A top t) /\ (~ (t = (@EMPTY A)))) -> ~ ((@INTER A s t) = (@EMPTY A))). +Axiom thm_INTERIOR_OF_CLOSED_IN_UNION_EMPTY_INTERIOR_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ ((@interior_of A top t) = (@EMPTY A))) -> (@interior_of A top (@UNION A s t)) = (@interior_of A top s). +Axiom thm_INTERIOR_OF_UNION_EQ_EMPTY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) \/ (@closed_in A top t)) -> ((@interior_of A top (@UNION A s t)) = (@EMPTY A)) = (((@interior_of A top s) = (@EMPTY A)) /\ ((@interior_of A top t) = (@EMPTY A))). +Axiom thm_DISCRETE_TOPOLOGY_INTERIOR_OF : forall {A : Type'}, forall u : A -> Prop, forall s : A -> Prop, (@interior_of A (@discrete_topology A u) s) = (@INTER A u s). +Axiom thm_frontier_of : forall {_358829 : Type'}, forall top : Topology _358829, forall s : _358829 -> Prop, (@frontier_of _358829 top s) = (@DIFF _358829 (@closure_of _358829 top s) (@interior_of _358829 top s)). +Axiom thm_FRONTIER_OF_CLOSURES : forall {_358876 : Type'}, forall top : Topology _358876, forall s : _358876 -> Prop, (@frontier_of _358876 top s) = (@INTER _358876 (@closure_of _358876 top s) (@closure_of _358876 top (@DIFF _358876 (@topspace _358876 top) s))). +Axiom thm_INTERIOR_OF_UNION_FRONTIER_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@UNION A (@interior_of A top s) (@frontier_of A top s)) = (@closure_of A top s). +Axiom thm_FRONTIER_OF_RESTRICT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@frontier_of A top s) = (@frontier_of A top (@INTER A (@topspace A top) s)). +Axiom thm_CLOSED_IN_FRONTIER_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @closed_in A top (@frontier_of A top s). +Axiom thm_FRONTIER_OF_SUBSET_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @SUBSET A (@frontier_of A top s) (@topspace A top). +Axiom thm_FRONTIER_OF_SUBSET_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@frontier_of A (@subtopology A top s) t) s. +Axiom thm_FRONTIER_OF_SUBTOPOLOGY_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall u : A -> Prop, @SUBSET A (@INTER A u (@frontier_of A (@subtopology A top u) s)) (@frontier_of A top s). +Axiom thm_FRONTIER_OF_SUBTOPOLOGY_MONO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@SUBSET A s t) /\ (@SUBSET A t u)) -> @SUBSET A (@frontier_of A (@subtopology A top t) s) (@frontier_of A (@subtopology A top u) s). +Axiom thm_CLOPEN_IN_EQ_FRONTIER_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@closed_in A top s) /\ (@open_in A top s)) = ((@SUBSET A s (@topspace A top)) /\ ((@frontier_of A top s) = (@EMPTY A))). +Axiom thm_FRONTIER_OF_EQ_EMPTY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> ((@frontier_of A top s) = (@EMPTY A)) = ((@closed_in A top s) /\ (@open_in A top s)). +Axiom thm_FRONTIER_OF_OPEN_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@open_in A top s) -> (@frontier_of A top s) = (@DIFF A (@closure_of A top s) s). +Axiom thm_FRONTIER_OF_OPEN_IN_STRADDLE_INTER : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall u : A -> Prop, ((@open_in A top u) /\ (~ ((@INTER A u (@frontier_of A top s)) = (@EMPTY A)))) -> (~ ((@INTER A u s) = (@EMPTY A))) /\ (~ ((@DIFF A u s) = (@EMPTY A))). +Axiom thm_FRONTIER_OF_SUBSET_CLOSED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closed_in A top s) -> @SUBSET A (@frontier_of A top s) s. +Axiom thm_FRONTIER_OF_EMPTY : forall {_359351 : Type'}, forall top : Topology _359351, (@frontier_of _359351 top (@EMPTY _359351)) = (@EMPTY _359351). +Axiom thm_FRONTIER_OF_TOPSPACE : forall {A : Type'}, forall top : Topology A, (@frontier_of A top (@topspace A top)) = (@EMPTY A). +Axiom thm_FRONTIER_OF_SUBSET_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> (@SUBSET A (@frontier_of A top s) s) = (@closed_in A top s). +Axiom thm_FRONTIER_OF_COMPLEMENT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@frontier_of A top (@DIFF A (@topspace A top) s)) = (@frontier_of A top s). +Axiom thm_FRONTIER_OF_DISJOINT_EQ : forall {_359521 : Type'}, forall top : Topology _359521, forall s : _359521 -> Prop, (@SUBSET _359521 s (@topspace _359521 top)) -> ((@INTER _359521 (@frontier_of _359521 top s) s) = (@EMPTY _359521)) = (@open_in _359521 top s). +Axiom thm_FRONTIER_OF_DISJOINT_EQ_ALT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@DIFF A (@topspace A top) (@frontier_of A top s))) = (@open_in A top s). +Axiom thm_FRONTIER_OF_INTER : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@frontier_of A top (@INTER A s t)) = (@INTER A (@closure_of A top (@INTER A s t)) (@UNION A (@frontier_of A top s) (@frontier_of A top t))). +Axiom thm_FRONTIER_OF_INTER_SUBSET : forall {_359658 : Type'}, forall top : Topology _359658, forall s : _359658 -> Prop, forall t : _359658 -> Prop, @SUBSET _359658 (@frontier_of _359658 top (@INTER _359658 s t)) (@UNION _359658 (@frontier_of _359658 top s) (@frontier_of _359658 top t)). +Axiom thm_FRONTIER_OF_INTER_CLOSED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ (@closed_in A top t)) -> (@frontier_of A top (@INTER A s t)) = (@UNION A (@INTER A (@frontier_of A top s) t) (@INTER A s (@frontier_of A top t))). +Axiom thm_FRONTIER_OF_UNION_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@frontier_of A top (@UNION A s t)) (@UNION A (@frontier_of A top s) (@frontier_of A top t)). +Axiom thm_FRONTIER_OF_UNIONS_SUBSET : forall {A : Type'}, forall top : Topology A, forall f : (A -> Prop) -> Prop, (@FINITE (A -> Prop) f) -> @SUBSET A (@frontier_of A top (@UNIONS A f)) (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1262 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1262 (@IN (A -> Prop) t f) (@frontier_of A top t)))). +Axiom thm_FRONTIER_OF_FRONTIER_OF_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @SUBSET A (@frontier_of A top (@frontier_of A top s)) (@frontier_of A top s). +Axiom thm_FRONTIER_OF_SUBTOPOLOGY_OPEN : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall s : A -> Prop, (@open_in A top u) -> (@frontier_of A (@subtopology A top u) s) = (@INTER A u (@frontier_of A top s)). +Axiom thm_DISCRETE_TOPOLOGY_FRONTIER_OF : forall {A : Type'}, forall u : A -> Prop, forall s : A -> Prop, (@frontier_of A (@discrete_topology A u) s) = (@EMPTY A). +Axiom thm_OPEN_IN_SUBSET_TOPSPACE_EQ : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall s : A -> Prop, (@DISJOINT A s (@frontier_of A top u)) -> (@open_in A (@subtopology A top u) s) = ((@open_in A top s) /\ (@SUBSET A s u)). +Axiom thm_INTERIOR_OF_CLOSURE_OF_IDEMP : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@interior_of A top (@closure_of A top (@interior_of A top (@closure_of A top s)))) = (@interior_of A top (@closure_of A top s)). +Axiom thm_CLOSURE_OF_INTERIOR_OF_IDEMP : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closure_of A top (@interior_of A top (@closure_of A top (@interior_of A top s)))) = (@closure_of A top (@interior_of A top s)). +Axiom thm_INTERIOR_OF_FRONTIER_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@interior_of A top (@frontier_of A top s)) = (@DIFF A (@interior_of A top (@closure_of A top s)) (@closure_of A top (@interior_of A top s))). +Axiom thm_THIN_FRONTIER_OF_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@interior_of A top (@frontier_of A top s)) = (@EMPTY A)) = (@SUBSET A (@interior_of A top (@closure_of A top s)) (@closure_of A top (@interior_of A top s))). +Axiom thm_THIN_FRONTIER_OF_CIC : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@interior_of A top (@frontier_of A top s)) = (@EMPTY A)) = ((@closure_of A top (@interior_of A top (@closure_of A top s))) = (@closure_of A top (@interior_of A top s))). +Axiom thm_THIN_FRONTIER_OF_ICI : forall {A : Type'} (top : Topology A), forall s : A -> Prop, ((@interior_of A top (@frontier_of A top s)) = (@EMPTY A)) = ((@interior_of A top (@closure_of A top (@interior_of A top s))) = (@interior_of A top (@closure_of A top s))). +Axiom thm_INTERIOR_OF_FRONTIER_OF_EMPTY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@open_in A top s) \/ (@closed_in A top s)) -> (@interior_of A top (@frontier_of A top s)) = (@EMPTY A). +Axiom thm_FRONTIER_OF_FRONTIER_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@open_in A top s) \/ (@closed_in A top s)) -> (@frontier_of A top (@frontier_of A top s)) = (@frontier_of A top s). +Axiom thm_FRONTIER_OF_FRONTIER_OF_FRONTIER_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@frontier_of A top (@frontier_of A top (@frontier_of A top s))) = (@frontier_of A top (@frontier_of A top s)). +Axiom thm_REGULAR_CLOSURE_OF_INTERIOR_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@closure_of A top (@interior_of A top s))) = ((@SUBSET A s (@topspace A top)) /\ ((@closure_of A top (@interior_of A top s)) = (@closure_of A top s))). +Axiom thm_REGULAR_INTERIOR_OF_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A (@interior_of A top (@closure_of A top s)) s) = ((@interior_of A top (@closure_of A top s)) = (@interior_of A top s)). +Axiom thm_REGULAR_CLOSED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@closure_of A top (@interior_of A top s)) = s) = ((@closed_in A top s) /\ (@SUBSET A s (@closure_of A top (@interior_of A top s)))). +Axiom thm_REGULAR_OPEN_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@interior_of A top (@closure_of A top s)) = s) = ((@open_in A top s) /\ (@SUBSET A (@interior_of A top (@closure_of A top s)) s)). +Axiom thm_REGULAR_CLOSURE_OF_IMP_THIN_FRONTIER_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@closure_of A top (@interior_of A top s))) -> (@interior_of A top (@frontier_of A top s)) = (@EMPTY A). +Axiom thm_REGULAR_INTERIOR_OF_IMP_THIN_FRONTIER_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A (@interior_of A top (@closure_of A top s)) s) -> (@interior_of A top (@frontier_of A top s)) = (@EMPTY A). +Axiom thm_locally_finite_in : forall {_360557 : Type'}, forall top : Topology _360557, forall U : (_360557 -> Prop) -> Prop, (@locally_finite_in _360557 top U) = ((forall u : _360557 -> Prop, (@IN (_360557 -> Prop) u U) -> @SUBSET _360557 u (@topspace _360557 top)) /\ (forall x : _360557, (@IN _360557 x (@topspace _360557 top)) -> exists v : _360557 -> Prop, (@open_in _360557 top v) /\ ((@IN _360557 x v) /\ (@FINITE (_360557 -> Prop) (@GSPEC (_360557 -> Prop) (fun GEN_PVAR_1263 : _360557 -> Prop => exists u : _360557 -> Prop, @SETSPEC (_360557 -> Prop) GEN_PVAR_1263 ((@IN (_360557 -> Prop) u U) /\ (~ ((@INTER _360557 u v) = (@EMPTY _360557)))) u)))))). +Axiom thm_FINITE_IMP_LOCALLY_FINITE_IN : forall {A : Type'}, forall top : Topology A, forall u : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) u) /\ (@SUBSET A (@UNIONS A u) (@topspace A top))) -> @locally_finite_in A top u. +Axiom thm_LOCALLY_FINITE_IN_SUBSET : forall {A : Type'}, forall top : Topology A, forall u : (A -> Prop) -> Prop, forall v : (A -> Prop) -> Prop, ((@locally_finite_in A top u) /\ (@SUBSET (A -> Prop) v u)) -> @locally_finite_in A top v. +Axiom thm_LOCALLY_FINITE_IN_REFINEMENT : forall {A : Type'}, forall top : Topology A, forall u : (A -> Prop) -> Prop, forall f : (A -> Prop) -> A -> Prop, ((@locally_finite_in A top u) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @SUBSET A (f s) s)) -> @locally_finite_in A top (@GSPEC (A -> Prop) (fun GEN_PVAR_1267 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1267 (@IN (A -> Prop) s u) (f s))). +Axiom thm_LOCALLY_FINITE_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall u : (A -> Prop) -> Prop, ((@locally_finite_in A top u) /\ (forall t : A -> Prop, (@IN (A -> Prop) t u) -> @SUBSET A t s)) -> @locally_finite_in A (@subtopology A top s) u. +Axiom thm_LOCALLY_FINITE_IN_SUBTOPOLOGY_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall u : (A -> Prop) -> Prop, (@closed_in A top s) -> (@locally_finite_in A (@subtopology A top s) u) = ((@locally_finite_in A top u) /\ (forall t : A -> Prop, (@IN (A -> Prop) t u) -> @SUBSET A t s)). +Axiom thm_CLOSED_IN_LOCALLY_FINITE_UNIONS : forall {A : Type'}, forall top : Topology A, forall f : (A -> Prop) -> Prop, ((forall s : A -> Prop, (@IN (A -> Prop) s f) -> @closed_in A top s) /\ (@locally_finite_in A top f)) -> @closed_in A top (@UNIONS A f). +Axiom thm_LOCALLY_FINITE_IN_CLOSURES : forall {A : Type'}, forall top : Topology A, forall f : (A -> Prop) -> Prop, (@locally_finite_in A top f) -> @locally_finite_in A top (@GSPEC (A -> Prop) (fun GEN_PVAR_1272 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1272 (@IN (A -> Prop) s f) (@closure_of A top s))). +Axiom thm_CLOSED_IN_UNIONS_LOCALLY_FINITE_CLOSURES : forall {A : Type'}, forall top : Topology A, forall f : (A -> Prop) -> Prop, (@locally_finite_in A top f) -> @closed_in A top (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1273 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1273 (@IN (A -> Prop) s f) (@closure_of A top s)))). +Axiom thm_CLOSURE_OF_UNIONS_SUBSET : forall {A : Type'}, forall top : Topology A, forall f : (A -> Prop) -> Prop, @SUBSET A (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1274 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1274 (@IN (A -> Prop) s f) (@closure_of A top s)))) (@closure_of A top (@UNIONS A f)). +Axiom thm_CLOSURE_OF_LOCALLY_FINITE_UNIONS : forall {A : Type'}, forall top : Topology A, forall f : (A -> Prop) -> Prop, (@locally_finite_in A top f) -> (@closure_of A top (@UNIONS A f)) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1275 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1275 (@IN (A -> Prop) s f) (@closure_of A top s)))). +Axiom thm_continuous_map : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = ((forall x : A, (@IN A x (@topspace A top)) -> @IN B (f x) (@topspace B top')) /\ (forall u : B -> Prop, (@open_in B top' u) -> @open_in A top (@GSPEC A (fun GEN_PVAR_1276 : A => exists x : A, @SETSPEC A GEN_PVAR_1276 ((@IN A x (@topspace A top)) /\ (@IN B (f x) u)) x)))). +Axiom thm_CONTINUOUS_MAP : forall {_361249 _361251 : Type'}, forall top : Topology _361251, forall top' : Topology _361249, forall f : _361251 -> _361249, (@continuous_map _361251 _361249 (@pair (Topology _361251) (Topology _361249) top top') f) = ((@SUBSET _361249 (@IMAGE _361251 _361249 f (@topspace _361251 top)) (@topspace _361249 top')) /\ (forall u : _361249 -> Prop, (@open_in _361249 top' u) -> @open_in _361251 top (@GSPEC _361251 (fun GEN_PVAR_1277 : _361251 => exists x : _361251, @SETSPEC _361251 GEN_PVAR_1277 ((@IN _361251 x (@topspace _361251 top)) /\ (@IN _361249 (f x) u)) x)))). +Axiom thm_CONTINUOUS_MAP_IMAGE_SUBSET_TOPSPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) -> @SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top'). +Axiom thm_CONTINUOUS_MAP_ON_EMPTY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@topspace A top) = (@EMPTY A)) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_MAP_INTO_EMPTY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@topspace B top') = (@EMPTY B)) -> (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = ((@topspace A top) = (@EMPTY A)). +Axiom thm_CONTINUOUS_MAP_CLOSED_IN : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = ((forall x : A, (@IN A x (@topspace A top)) -> @IN B (f x) (@topspace B top')) /\ (forall c : B -> Prop, (@closed_in B top' c) -> @closed_in A top (@GSPEC A (fun GEN_PVAR_1278 : A => exists x : A, @SETSPEC A GEN_PVAR_1278 ((@IN A x (@topspace A top)) /\ (@IN B (f x) c)) x)))). +Axiom thm_OPEN_IN_CONTINUOUS_MAP_PREIMAGE : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : B -> Prop, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@open_in B top' u)) -> @open_in A top (@GSPEC A (fun GEN_PVAR_1279 : A => exists x : A, @SETSPEC A GEN_PVAR_1279 ((@IN A x (@topspace A top)) /\ (@IN B (f x) u)) x)). +Axiom thm_CLOSED_IN_CONTINUOUS_MAP_PREIMAGE : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall c : B -> Prop, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@closed_in B top' c)) -> @closed_in A top (@GSPEC A (fun GEN_PVAR_1280 : A => exists x : A, @SETSPEC A GEN_PVAR_1280 ((@IN A x (@topspace A top)) /\ (@IN B (f x) c)) x)). +Axiom thm_OPEN_IN_CONTINUOUS_MAP_PREIMAGE_GEN : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, forall v : B -> Prop, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@open_in A top u) /\ (@open_in B top' v))) -> @open_in A top (@GSPEC A (fun GEN_PVAR_1283 : A => exists x : A, @SETSPEC A GEN_PVAR_1283 ((@IN A x u) /\ (@IN B (f x) v)) x)). +Axiom thm_CLOSED_IN_CONTINUOUS_MAP_PREIMAGE_GEN : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, forall v : B -> Prop, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@closed_in A top u) /\ (@closed_in B top' v))) -> @closed_in A top (@GSPEC A (fun GEN_PVAR_1286 : A => exists x : A, @SETSPEC A GEN_PVAR_1286 ((@IN A x u) /\ (@IN B (f x) v)) x)). +Axiom thm_CONTINUOUS_MAP_IMAGE_CLOSURE_SUBSET : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : A -> Prop, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) -> @SUBSET B (@IMAGE A B f (@closure_of A top s)) (@closure_of B top' (@IMAGE A B f s)). +Axiom thm_CONTINUOUS_MAP_EQ_IMAGE_CLOSURE_SUBSET : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = (forall s : A -> Prop, @SUBSET B (@IMAGE A B f (@closure_of A top s)) (@closure_of B top' (@IMAGE A B f s))). +Axiom thm_CONTINUOUS_MAP_EQ_IMAGE_CLOSURE_SUBSET_GEN : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall s : A -> Prop, @SUBSET B (@IMAGE A B f (@closure_of A top s)) (@closure_of B top' (@IMAGE A B f s)))). +Axiom thm_CONTINUOUS_MAP_EQ_IMAGE_CLOSURE_SUBSET_ALT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = (forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> @SUBSET B (@IMAGE A B f (@closure_of A top s)) (@closure_of B top' (@IMAGE A B f s))). +Axiom thm_CONTINUOUS_MAP_CLOSURE_PREIMAGE_SUBSET : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall t : B -> Prop, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) -> @SUBSET A (@closure_of A top (@GSPEC A (fun GEN_PVAR_1290 : A => exists x : A, @SETSPEC A GEN_PVAR_1290 ((@IN A x (@topspace A top)) /\ (@IN B (f x) t)) x))) (@GSPEC A (fun GEN_PVAR_1291 : A => exists x : A, @SETSPEC A GEN_PVAR_1291 ((@IN A x (@topspace A top)) /\ (@IN B (f x) (@closure_of B top' t))) x)). +Axiom thm_CONTINUOUS_MAP_EQ_CLOSURE_PREIMAGE_SUBSET_ALT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall t : B -> Prop, (@SUBSET B t (@topspace B top')) -> @SUBSET A (@closure_of A top (@GSPEC A (fun GEN_PVAR_1294 : A => exists x : A, @SETSPEC A GEN_PVAR_1294 ((@IN A x (@topspace A top)) /\ (@IN B (f x) t)) x))) (@GSPEC A (fun GEN_PVAR_1295 : A => exists x : A, @SETSPEC A GEN_PVAR_1295 ((@IN A x (@topspace A top)) /\ (@IN B (f x) (@closure_of B top' t))) x)))). +Axiom thm_CONTINUOUS_MAP_EQ_CLOSURE_PREIMAGE_SUBSET : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall t : B -> Prop, @SUBSET A (@closure_of A top (@GSPEC A (fun GEN_PVAR_1292 : A => exists x : A, @SETSPEC A GEN_PVAR_1292 ((@IN A x (@topspace A top)) /\ (@IN B (f x) t)) x))) (@GSPEC A (fun GEN_PVAR_1293 : A => exists x : A, @SETSPEC A GEN_PVAR_1293 ((@IN A x (@topspace A top)) /\ (@IN B (f x) (@closure_of B top' t))) x)))). +Axiom thm_CONTINUOUS_MAP_INTERIOR_PREIMAGE_SUBSET : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall t : B -> Prop, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) -> @SUBSET A (@GSPEC A (fun GEN_PVAR_1298 : A => exists x : A, @SETSPEC A GEN_PVAR_1298 ((@IN A x (@topspace A top)) /\ (@IN B (f x) (@interior_of B top' t))) x)) (@interior_of A top (@GSPEC A (fun GEN_PVAR_1299 : A => exists x : A, @SETSPEC A GEN_PVAR_1299 ((@IN A x (@topspace A top)) /\ (@IN B (f x) t)) x))). +Axiom thm_CONTINUOUS_MAP_EQ_INTERIOR_PREIMAGE_SUBSET_ALT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall t : B -> Prop, (@SUBSET B t (@topspace B top')) -> @SUBSET A (@GSPEC A (fun GEN_PVAR_1304 : A => exists x : A, @SETSPEC A GEN_PVAR_1304 ((@IN A x (@topspace A top)) /\ (@IN B (f x) (@interior_of B top' t))) x)) (@interior_of A top (@GSPEC A (fun GEN_PVAR_1305 : A => exists x : A, @SETSPEC A GEN_PVAR_1305 ((@IN A x (@topspace A top)) /\ (@IN B (f x) t)) x))))). +Axiom thm_CONTINUOUS_MAP_EQ_INTERIOR_PREIMAGE_SUBSET : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall t : B -> Prop, @SUBSET A (@GSPEC A (fun GEN_PVAR_1302 : A => exists x : A, @SETSPEC A GEN_PVAR_1302 ((@IN A x (@topspace A top)) /\ (@IN B (f x) (@interior_of B top' t))) x)) (@interior_of A top (@GSPEC A (fun GEN_PVAR_1303 : A => exists x : A, @SETSPEC A GEN_PVAR_1303 ((@IN A x (@topspace A top)) /\ (@IN B (f x) t)) x))))). +Axiom thm_CONTINUOUS_MAP_FRONTIER_FRONTIER_PREIMAGE_SUBSET : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall t : B -> Prop, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) -> @SUBSET A (@frontier_of A top (@GSPEC A (fun GEN_PVAR_1311 : A => exists x : A, @SETSPEC A GEN_PVAR_1311 ((@IN A x (@topspace A top)) /\ (@IN B (f x) t)) x))) (@GSPEC A (fun GEN_PVAR_1312 : A => exists x : A, @SETSPEC A GEN_PVAR_1312 ((@IN A x (@topspace A top)) /\ (@IN B (f x) (@frontier_of B top' t))) x)). +Axiom thm_CONTINUOUS_MAP_ID : forall {A : Type'}, forall top : Topology A, @continuous_map A A (@pair (Topology A) (Topology A) top top) (fun x : A => x). +Axiom thm_TOPOLOGY_FINER_CONTINUOUS_ID : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, ((@topspace A top') = (@topspace A top)) -> (forall s : A -> Prop, (@open_in A top s) -> @open_in A top' s) = (@continuous_map A A (@pair (Topology A) (Topology A) top' top) (fun x : A => x)). +Axiom thm_CONTINUOUS_MAP_CONST : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall c : B, (@continuous_map A B (@pair (Topology A) (Topology B) top1 top2) (fun x : A => c)) = (((@topspace A top1) = (@EMPTY A)) \/ (@IN B c (@topspace B top2))). +Axiom thm_CONTINUOUS_MAP_COMPOSE : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g)) -> @continuous_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f). +Axiom thm_CONTINUOUS_MAP_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, ((forall x : A, (@IN A x (@topspace A top)) -> (f x) = (g x)) /\ (@continuous_map A B (@pair (Topology A) (Topology B) top top') f)) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') g. +Axiom thm_RESTRICTION_CONTINUOUS_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : A -> Prop, (@SUBSET A (@topspace A top) s) -> (@continuous_map A B (@pair (Topology A) (Topology B) top top') (@RESTRICTION A B s f)) = (@continuous_map A B (@pair (Topology A) (Topology B) top top') f). +Axiom thm_CONTINUOUS_MAP_IN_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall s : B -> Prop, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' s)) f) = ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET B (@IMAGE A B f (@topspace A top)) s)). +Axiom thm_CONTINUOUS_MAP_FROM_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : A -> Prop, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) -> @continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top s) top') f. +Axiom thm_CONTINUOUS_MAP_INTO_FULLTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall t : B -> Prop, (@continuous_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' t)) f) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_MAP_INTO_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall t : B -> Prop, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET B (@IMAGE A B f (@topspace A top)) t)) -> @continuous_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' t)) f. +Axiom thm_CONTINUOUS_MAP_FROM_SUBTOPOLOGY_MONO : forall {_363925 _363932 : Type'}, forall top : Topology _363932, forall top' : Topology _363925, forall f : _363932 -> _363925, forall s : _363932 -> Prop, forall t : _363932 -> Prop, ((@continuous_map _363932 _363925 (@pair (Topology _363932) (Topology _363925) (@subtopology _363932 top t) top') f) /\ (@SUBSET _363932 s t)) -> @continuous_map _363932 _363925 (@pair (Topology _363932) (Topology _363925) (@subtopology _363932 top s) top') f. +Axiom thm_CONTINUOUS_MAP_FROM_DISCRETE_TOPOLOGY : forall {A B : Type'}, forall f : A -> B, forall top : Topology B, forall u : A -> Prop, (@continuous_map A B (@pair (Topology A) (Topology B) (@discrete_topology A u) top) f) = (@SUBSET B (@IMAGE A B f u) (@topspace B top)). +Axiom thm_PASTING_LEMMA : forall {A B K : Type'}, forall top : Topology A, forall top' : Topology B, forall f : K -> A -> B, forall g : A -> B, forall t : K -> A -> Prop, forall k : K -> Prop, ((forall i : K, (@IN K i k) -> (@open_in A top (t i)) /\ (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (t i)) top') (f i))) /\ ((forall i : K, forall j : K, forall x : A, ((@IN K i k) /\ ((@IN K j k) /\ (@IN A x (@INTER A (@topspace A top) (@INTER A (t i) (t j)))))) -> (f i x) = (f j x)) /\ (forall x : A, (@IN A x (@topspace A top)) -> exists j : K, (@IN K j k) /\ ((@IN A x (t j)) /\ ((g x) = (f j x)))))) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') g. +Axiom thm_PASTING_LEMMA_EXISTS : forall {A B K : Type'}, forall top : Topology A, forall top' : Topology B, forall f : K -> A -> B, forall t : K -> A -> Prop, forall k : K -> Prop, ((@SUBSET A (@topspace A top) (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1328 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1328 (@IN K i k) (t i))))) /\ ((forall i : K, (@IN K i k) -> (@open_in A top (t i)) /\ (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (t i)) top') (f i))) /\ (forall i : K, forall j : K, forall x : A, ((@IN K i k) /\ ((@IN K j k) /\ (@IN A x (@INTER A (@topspace A top) (@INTER A (t i) (t j)))))) -> (f i x) = (f j x)))) -> exists g : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') g) /\ (forall x : A, forall i : K, ((@IN K i k) /\ (@IN A x (@INTER A (@topspace A top) (t i)))) -> (g x) = (f i x)). +Axiom thm_PASTING_LEMMA_LOCALLY_FINITE : forall {A B K : Type'}, forall top : Topology A, forall top' : Topology B, forall f : K -> A -> B, forall g : A -> B, forall t : K -> A -> Prop, forall k : K -> Prop, ((forall x : A, (@IN A x (@topspace A top)) -> exists v : A -> Prop, (@open_in A top v) /\ ((@IN A x v) /\ (@FINITE K (@GSPEC K (fun GEN_PVAR_1336 : K => exists i : K, @SETSPEC K GEN_PVAR_1336 ((@IN K i k) /\ (~ ((@INTER A (t i) v) = (@EMPTY A)))) i))))) /\ ((forall i : K, (@IN K i k) -> (@closed_in A top (t i)) /\ (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (t i)) top') (f i))) /\ ((forall i : K, forall j : K, forall x : A, ((@IN K i k) /\ ((@IN K j k) /\ (@IN A x (@INTER A (@topspace A top) (@INTER A (t i) (t j)))))) -> (f i x) = (f j x)) /\ (forall x : A, (@IN A x (@topspace A top)) -> exists j : K, (@IN K j k) /\ ((@IN A x (t j)) /\ ((g x) = (f j x))))))) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') g. +Axiom thm_PASTING_LEMMA_EXISTS_LOCALLY_FINITE : forall {A B K : Type'}, forall top : Topology A, forall top' : Topology B, forall f : K -> A -> B, forall t : K -> A -> Prop, forall k : K -> Prop, ((forall x : A, (@IN A x (@topspace A top)) -> exists v : A -> Prop, (@open_in A top v) /\ ((@IN A x v) /\ (@FINITE K (@GSPEC K (fun GEN_PVAR_1337 : K => exists i : K, @SETSPEC K GEN_PVAR_1337 ((@IN K i k) /\ (~ ((@INTER A (t i) v) = (@EMPTY A)))) i))))) /\ ((@SUBSET A (@topspace A top) (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1338 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1338 (@IN K i k) (t i))))) /\ ((forall i : K, (@IN K i k) -> (@closed_in A top (t i)) /\ (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (t i)) top') (f i))) /\ (forall i : K, forall j : K, forall x : A, ((@IN K i k) /\ ((@IN K j k) /\ (@IN A x (@INTER A (@topspace A top) (@INTER A (t i) (t j)))))) -> (f i x) = (f j x))))) -> exists g : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') g) /\ (forall x : A, forall i : K, ((@IN K i k) /\ (@IN A x (@INTER A (@topspace A top) (t i)))) -> (g x) = (f i x)). +Axiom thm_PASTING_LEMMA_CLOSED : forall {A B K : Type'}, forall top : Topology A, forall top' : Topology B, forall f : K -> A -> B, forall g : A -> B, forall t : K -> A -> Prop, forall k : K -> Prop, ((@FINITE K k) /\ ((forall i : K, (@IN K i k) -> (@closed_in A top (t i)) /\ (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (t i)) top') (f i))) /\ ((forall i : K, forall j : K, forall x : A, ((@IN K i k) /\ ((@IN K j k) /\ (@IN A x (@INTER A (@topspace A top) (@INTER A (t i) (t j)))))) -> (f i x) = (f j x)) /\ (forall x : A, (@IN A x (@topspace A top)) -> exists j : K, (@IN K j k) /\ ((@IN A x (t j)) /\ ((g x) = (f j x))))))) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') g. +Axiom thm_PASTING_LEMMA_EXISTS_CLOSED : forall {A B K : Type'}, forall top : Topology A, forall top' : Topology B, forall f : K -> A -> B, forall t : K -> A -> Prop, forall k : K -> Prop, ((@FINITE K k) /\ ((@SUBSET A (@topspace A top) (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1339 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_1339 (@IN K i k) (t i))))) /\ ((forall i : K, (@IN K i k) -> (@closed_in A top (t i)) /\ (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (t i)) top') (f i))) /\ (forall i : K, forall j : K, forall x : A, ((@IN K i k) /\ ((@IN K j k) /\ (@IN A x (@INTER A (@topspace A top) (@INTER A (t i) (t j)))))) -> (f i x) = (f j x))))) -> exists g : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') g) /\ (forall x : A, forall i : K, ((@IN K i k) /\ (@IN A x (@INTER A (@topspace A top) (t i)))) -> (g x) = (f i x)). +Axiom thm_CONTINUOUS_MAP_CASES : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall P : A -> Prop, forall f : A -> B, forall g : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@closure_of A top (@GSPEC A (fun GEN_PVAR_1346 : A => exists x : A, @SETSPEC A GEN_PVAR_1346 (P x) x)))) top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@closure_of A top (@GSPEC A (fun GEN_PVAR_1347 : A => exists x : A, @SETSPEC A GEN_PVAR_1347 (~ (P x)) x)))) top') g) /\ (forall x : A, (@IN A x (@frontier_of A top (@GSPEC A (fun GEN_PVAR_1348 : A => exists x' : A, @SETSPEC A GEN_PVAR_1348 (P x') x')))) -> (f x) = (g x)))) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') (fun x : A => @COND B (P x) (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_CASES_ALT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall P : A -> Prop, forall f : A -> B, forall g : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@closure_of A top (@GSPEC A (fun GEN_PVAR_1351 : A => exists x : A, @SETSPEC A GEN_PVAR_1351 ((@IN A x (@topspace A top)) /\ (P x)) x)))) top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@closure_of A top (@GSPEC A (fun GEN_PVAR_1352 : A => exists x : A, @SETSPEC A GEN_PVAR_1352 ((@IN A x (@topspace A top)) /\ (~ (P x))) x)))) top') g) /\ (forall x : A, (@IN A x (@frontier_of A top (@GSPEC A (fun GEN_PVAR_1353 : A => exists x' : A, @SETSPEC A GEN_PVAR_1353 ((@IN A x' (@topspace A top)) /\ (P x')) x')))) -> (f x) = (g x)))) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') (fun x : A => @COND B (P x) (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_CASES_FUNCTION : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall p : A -> C, forall f : A -> B, forall g : A -> B, forall u : C -> Prop, ((@continuous_map A C (@pair (Topology A) (Topology C) top top'') p) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_1356 : A => exists x : A, @SETSPEC A GEN_PVAR_1356 ((@IN A x (@topspace A top)) /\ (@IN C (p x) (@closure_of C top'' u))) x))) top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_1357 : A => exists x : A, @SETSPEC A GEN_PVAR_1357 ((@IN A x (@topspace A top)) /\ (@IN C (p x) (@closure_of C top'' (@DIFF C (@topspace C top'') u)))) x))) top') g) /\ (forall x : A, ((@IN A x (@topspace A top)) /\ (@IN C (p x) (@frontier_of C top'' u))) -> (f x) = (g x))))) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') (fun x : A => @COND B (@IN C (p x) u) (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_SEPARATED_UNION : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top s) top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top t) top') f) /\ ((@DISJOINT A s (@closure_of A top t)) /\ (@DISJOINT A t (@closure_of A top s))))) -> @continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@UNION A s t)) top') f. +Axiom thm_open_map : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall f : A -> B, (@open_map A B (@pair (Topology A) (Topology B) top1 top2) f) = (forall u : A -> Prop, (@open_in A top1 u) -> @open_in B top2 (@IMAGE A B f u)). +Axiom thm_closed_map : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall f : A -> B, (@closed_map A B (@pair (Topology A) (Topology B) top1 top2) f) = (forall u : A -> Prop, (@closed_in A top1 u) -> @closed_in B top2 (@IMAGE A B f u)). +Axiom thm_OPEN_MAP_IMP_SUBSET_TOPSPACE : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall f : A -> B, (@open_map A B (@pair (Topology A) (Topology B) top1 top2) f) -> @SUBSET B (@IMAGE A B f (@topspace A top1)) (@topspace B top2). +Axiom thm_OPEN_MAP_IMP_SUBSET : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall f : A -> B, forall s : A -> Prop, ((@open_map A B (@pair (Topology A) (Topology B) top1 top2) f) /\ (@SUBSET A s (@topspace A top1))) -> @SUBSET B (@IMAGE A B f s) (@topspace B top2). +Axiom thm_TOPOLOGY_FINER_OPEN_ID : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (forall s : A -> Prop, (@open_in A top s) -> @open_in A top' s) = (@open_map A A (@pair (Topology A) (Topology A) top top') (fun x : A => x)). +Axiom thm_OPEN_MAP_ID : forall {A : Type'}, forall top : Topology A, @open_map A A (@pair (Topology A) (Topology A) top top) (fun x : A => x). +Axiom thm_OPEN_MAP_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, ((forall x : A, (@IN A x (@topspace A top)) -> (f x) = (g x)) /\ (@open_map A B (@pair (Topology A) (Topology B) top top') f)) -> @open_map A B (@pair (Topology A) (Topology B) top top') g. +Axiom thm_OPEN_MAP_INCLUSION_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@open_map A A (@pair (Topology A) (Topology A) (@subtopology A top s) top) (fun x : A => x)) = (@open_in A top (@INTER A (@topspace A top) s)). +Axiom thm_OPEN_MAP_INCLUSION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@open_in A top s) -> @open_map A A (@pair (Topology A) (Topology A) (@subtopology A top s) top) (fun x : A => x). +Axiom thm_OPEN_MAP_COMPOSE : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@open_map B C (@pair (Topology B) (Topology C) top' top'') g)) -> @open_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f). +Axiom thm_CLOSED_MAP_IMP_SUBSET_TOPSPACE : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall f : A -> B, (@closed_map A B (@pair (Topology A) (Topology B) top1 top2) f) -> @SUBSET B (@IMAGE A B f (@topspace A top1)) (@topspace B top2). +Axiom thm_CLOSED_MAP_IMP_SUBSET : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall f : A -> B, forall s : A -> Prop, ((@closed_map A B (@pair (Topology A) (Topology B) top1 top2) f) /\ (@SUBSET A s (@topspace A top1))) -> @SUBSET B (@IMAGE A B f s) (@topspace B top2). +Axiom thm_TOPOLOGY_FINER_CLOSED_ID : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (forall s : A -> Prop, (@closed_in A top s) -> @closed_in A top' s) = (@closed_map A A (@pair (Topology A) (Topology A) top top') (fun x : A => x)). +Axiom thm_CLOSED_MAP_ID : forall {A : Type'}, forall top : Topology A, @closed_map A A (@pair (Topology A) (Topology A) top top) (fun x : A => x). +Axiom thm_CLOSED_MAP_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, ((forall x : A, (@IN A x (@topspace A top)) -> (f x) = (g x)) /\ (@closed_map A B (@pair (Topology A) (Topology B) top top') f)) -> @closed_map A B (@pair (Topology A) (Topology B) top top') g. +Axiom thm_CLOSED_MAP_COMPOSE : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@closed_map B C (@pair (Topology B) (Topology C) top' top'') g)) -> @closed_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f). +Axiom thm_CLOSED_MAP_INCLUSION_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closed_map A A (@pair (Topology A) (Topology A) (@subtopology A top s) top) (fun x : A => x)) = (@closed_in A top (@INTER A (@topspace A top) s)). +Axiom thm_CLOSED_MAP_INCLUSION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closed_in A top s) -> @closed_map A A (@pair (Topology A) (Topology A) (@subtopology A top s) top) (fun x : A => x). +Axiom thm_OPEN_MAP_INTO_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : B -> Prop, ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET B (@IMAGE A B f (@topspace A top)) s)) -> @open_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' s)) f. +Axiom thm_CLOSED_MAP_INTO_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : B -> Prop, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET B (@IMAGE A B f (@topspace A top)) s)) -> @closed_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' s)) f. +Axiom thm_OPEN_MAP_INTO_DISCRETE_TOPOLOGY : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall u : B -> Prop, (@open_map A B (@pair (Topology A) (Topology B) top (@discrete_topology B u)) f) = (@SUBSET B (@IMAGE A B f (@topspace A top)) u). +Axiom thm_CLOSED_MAP_INTO_DISCRETE_TOPOLOGY : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall u : B -> Prop, (@closed_map A B (@pair (Topology A) (Topology B) top (@discrete_topology B u)) f) = (@SUBSET B (@IMAGE A B f (@topspace A top)) u). +Axiom thm_BIJECTIVE_OPEN_IMP_CLOSED_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((f x) = (f y)))) -> x = y))) -> @closed_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_BIJECTIVE_CLOSED_IMP_OPEN_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((f x) = (f y)))) -> x = y))) -> @open_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_OPEN_MAP_ON_EMPTY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@topspace A top) = (@EMPTY A)) -> @open_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CLOSED_MAP_ON_EMPTY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@topspace A top) = (@EMPTY A)) -> @closed_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_OPEN_MAP_FROM_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall u : A -> Prop, ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@open_in A top u)) -> @open_map A B (@pair (Topology A) (Topology B) (@subtopology A top u) top') f. +Axiom thm_CLOSED_MAP_FROM_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall u : A -> Prop, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@closed_in A top u)) -> @closed_map A B (@pair (Topology A) (Topology B) (@subtopology A top u) top') f. +Axiom thm_OPEN_MAP_RESTRICTION : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall u : A -> Prop, forall v : B -> Prop, ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@GSPEC A (fun GEN_PVAR_1358 : A => exists x : A, @SETSPEC A GEN_PVAR_1358 ((@IN A x (@topspace A top)) /\ (@IN B (f x) v)) x)) = u)) -> @open_map A B (@pair (Topology A) (Topology B) (@subtopology A top u) (@subtopology B top' v)) f. +Axiom thm_CLOSED_MAP_RESTRICTION : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall u : A -> Prop, forall v : B -> Prop, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@GSPEC A (fun GEN_PVAR_1359 : A => exists x : A, @SETSPEC A GEN_PVAR_1359 ((@IN A x (@topspace A top)) /\ (@IN B (f x) v)) x)) = u)) -> @closed_map A B (@pair (Topology A) (Topology B) (@subtopology A top u) (@subtopology B top' v)) f. +Axiom thm_CLOSED_MAP_CLOSURE_OF_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@closed_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> @SUBSET B (@closure_of B top' (@IMAGE A B f s)) (@IMAGE A B f (@closure_of A top s)))). +Axiom thm_OPEN_MAP_INTERIOR_OF_IMAGE_SUBSET : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@open_map A B (@pair (Topology A) (Topology B) top top') f) = (forall s : A -> Prop, @SUBSET B (@IMAGE A B f (@interior_of A top s)) (@interior_of B top' (@IMAGE A B f s))). +Axiom thm_OPEN_MAP_INTERIOR_OF_IMAGE_SUBSET_GEN : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@open_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall s : A -> Prop, @SUBSET B (@IMAGE A B f (@interior_of A top s)) (@interior_of B top' (@IMAGE A B f s)))). +Axiom thm_OPEN_MAP_INTERIOR_OF_IMAGE_SUBSET_ALT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@open_map A B (@pair (Topology A) (Topology B) top top') f) = (forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> @SUBSET B (@IMAGE A B f (@interior_of A top s)) (@interior_of B top' (@IMAGE A B f s))). +Axiom thm_OPEN_MAP_PREIMAGE_NEIGHBOURHOOD : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@open_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall u : A -> Prop, forall t : B -> Prop, ((@closed_in A top u) /\ ((@SUBSET B t (@topspace B top')) /\ (@SUBSET A (@GSPEC A (fun GEN_PVAR_1360 : A => exists x : A, @SETSPEC A GEN_PVAR_1360 ((@IN A x (@topspace A top)) /\ (@IN B (f x) t)) x)) u))) -> exists v : B -> Prop, (@closed_in B top' v) /\ ((@SUBSET B t v) /\ (@SUBSET A (@GSPEC A (fun GEN_PVAR_1361 : A => exists x : A, @SETSPEC A GEN_PVAR_1361 ((@IN A x (@topspace A top)) /\ (@IN B (f x) v)) x)) u)))). +Axiom thm_CLOSED_MAP_PREIMAGE_NEIGHBOURHOOD : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@closed_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall u : A -> Prop, forall t : B -> Prop, ((@open_in A top u) /\ ((@SUBSET B t (@topspace B top')) /\ (@SUBSET A (@GSPEC A (fun GEN_PVAR_1362 : A => exists x : A, @SETSPEC A GEN_PVAR_1362 ((@IN A x (@topspace A top)) /\ (@IN B (f x) t)) x)) u))) -> exists v : B -> Prop, (@open_in B top' v) /\ ((@SUBSET B t v) /\ (@SUBSET A (@GSPEC A (fun GEN_PVAR_1363 : A => exists x : A, @SETSPEC A GEN_PVAR_1363 ((@IN A x (@topspace A top)) /\ (@IN B (f x) v)) x)) u)))). +Axiom thm_CLOSED_MAP_FIBRE_NEIGHBOURHOOD : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@closed_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall u : A -> Prop, forall y : B, ((@open_in A top u) /\ ((@IN B y (@topspace B top')) /\ (@SUBSET A (@GSPEC A (fun GEN_PVAR_1365 : A => exists x : A, @SETSPEC A GEN_PVAR_1365 ((@IN A x (@topspace A top)) /\ ((f x) = y)) x)) u))) -> exists v : B -> Prop, (@open_in B top' v) /\ ((@IN B y v) /\ (@SUBSET A (@GSPEC A (fun GEN_PVAR_1366 : A => exists x : A, @SETSPEC A GEN_PVAR_1366 ((@IN A x (@topspace A top)) /\ (@IN B (f x) v)) x)) u)))). +Axiom thm_OPEN_MAP_IN_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall s : B -> Prop, forall f : A -> B, (@open_in B top' s) -> (@open_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' s)) f) = ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET B (@IMAGE A B f (@topspace A top)) s)). +Axiom thm_OPEN_MAP_FROM_OPEN_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall s : B -> Prop, forall f : A -> B, ((@open_in B top' s) /\ (@open_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' s)) f)) -> @open_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CLOSED_MAP_IN_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall s : B -> Prop, forall f : A -> B, (@closed_in B top' s) -> (@closed_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' s)) f) = ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET B (@IMAGE A B f (@topspace A top)) s)). +Axiom thm_CLOSED_MAP_FROM_CLOSED_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall s : B -> Prop, forall f : A -> B, ((@closed_in B top' s) /\ (@closed_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' s)) f)) -> @closed_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CLOSED_MAP_FROM_COMPOSITION_LEFT : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@closed_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))) -> @closed_map B C (@pair (Topology B) (Topology C) top' top'') g. +Axiom thm_CLOSED_MAP_FROM_COMPOSITION_RIGHT : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@closed_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)) /\ ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ ((@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g) /\ (forall x : B, forall y : B, ((@IN B x (@topspace B top')) /\ ((@IN B y (@topspace B top')) /\ ((g x) = (g y)))) -> x = y)))) -> @closed_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_OPEN_MAP_FROM_COMPOSITION_LEFT : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@open_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))) -> @open_map B C (@pair (Topology B) (Topology C) top' top'') g. +Axiom thm_OPEN_MAP_FROM_COMPOSITION_RIGHT : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@open_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)) /\ ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ ((@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g) /\ (forall x : B, forall y : B, ((@IN B x (@topspace B top')) /\ ((@IN B y (@topspace B top')) /\ ((g x) = (g y)))) -> x = y)))) -> @open_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CLOSED_MAP_CONST : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall c : B, (@closed_map A B (@pair (Topology A) (Topology B) top top') (fun x : A => c)) = (((@topspace A top) = (@EMPTY A)) \/ (@closed_in B top' (@INSERT B c (@EMPTY B)))). +Axiom thm_DISCRETE_SPACE_OPEN_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (@discrete_space A top))) -> @discrete_space B top'. +Axiom thm_DISCRETE_SPACE_CLOSED_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (@discrete_space A top))) -> @discrete_space B top'. +Axiom thm_quotient_map : forall {A B : Type'}, forall top : Topology A, forall f : A -> B, forall top' : Topology B, (@quotient_map A B (@pair (Topology A) (Topology B) top top') f) = (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall u : B -> Prop, (@SUBSET B u (@topspace B top')) -> (@open_in A top (@GSPEC A (fun GEN_PVAR_1371 : A => exists x : A, @SETSPEC A GEN_PVAR_1371 ((@IN A x (@topspace A top)) /\ (@IN B (f x) u)) x))) = (@open_in B top' u))). +Axiom thm_QUOTIENT_MAP_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, ((forall x : A, (@IN A x (@topspace A top)) -> (f x) = (g x)) /\ (@quotient_map A B (@pair (Topology A) (Topology B) top top') f)) -> @quotient_map A B (@pair (Topology A) (Topology B) top top') g. +Axiom thm_QUOTIENT_MAP_COMPOSE : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@quotient_map B C (@pair (Topology B) (Topology C) top' top'') g)) -> @quotient_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f). +Axiom thm_QUOTIENT_MAP_FROM_COMPOSITION : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g) /\ (@quotient_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)))) -> @quotient_map B C (@pair (Topology B) (Topology C) top' top'') g. +Axiom thm_QUOTIENT_IMP_CONTINUOUS_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@quotient_map A B (@pair (Topology A) (Topology B) top top') f) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_QUOTIENT_IMP_SURJECTIVE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@quotient_map A B (@pair (Topology A) (Topology B) top top') f) -> (@IMAGE A B f (@topspace A top)) = (@topspace B top'). +Axiom thm_QUOTIENT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@quotient_map A B (@pair (Topology A) (Topology B) top top') f) = (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall u : B -> Prop, (@SUBSET B u (@topspace B top')) -> (@closed_in A top (@GSPEC A (fun GEN_PVAR_1376 : A => exists x : A, @SETSPEC A GEN_PVAR_1376 ((@IN A x (@topspace A top)) /\ (@IN B (f x) u)) x))) = (@closed_in B top' u))). +Axiom thm_CONTINUOUS_OPEN_IMP_QUOTIENT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))) -> @quotient_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_CLOSED_IMP_QUOTIENT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))) -> @quotient_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_OPEN_QUOTIENT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@open_map A B (@pair (Topology A) (Topology B) top top') f)) -> (@quotient_map A B (@pair (Topology A) (Topology B) top top') f) = ((@IMAGE A B f (@topspace A top)) = (@topspace B top')). +Axiom thm_CONTINUOUS_CLOSED_QUOTIENT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@closed_map A B (@pair (Topology A) (Topology B) top top') f)) -> (@quotient_map A B (@pair (Topology A) (Topology B) top top') f) = ((@IMAGE A B f (@topspace A top)) = (@topspace B top')). +Axiom thm_INJECTIVE_QUOTIENT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y)) -> (@quotient_map A B (@pair (Topology A) (Topology B) top top') f) = ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top'))))). +Axiom thm_CONTINUOUS_COMPOSE_QUOTIENT_MAP : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@continuous_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f))) -> @continuous_map B C (@pair (Topology B) (Topology C) top' top'') g. +Axiom thm_CONTINUOUS_COMPOSE_QUOTIENT_MAP_EQ : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, (@quotient_map A B (@pair (Topology A) (Topology B) top top') f) -> (@continuous_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)) = (@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g). +Axiom thm_QUOTIENT_MAP_COMPOSE_EQ : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, (@quotient_map A B (@pair (Topology A) (Topology B) top top') f) -> (@quotient_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)) = (@quotient_map B C (@pair (Topology B) (Topology C) top' top'') g). +Axiom thm_QUOTIENT_MAP_RESTRICTION : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall u : A -> Prop, forall v : B -> Prop, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@open_in B top' v) \/ (@closed_in B top' v)) /\ ((@GSPEC A (fun GEN_PVAR_1379 : A => exists x : A, @SETSPEC A GEN_PVAR_1379 ((@IN A x (@topspace A top)) /\ (@IN B (f x) v)) x)) = u))) -> @quotient_map A B (@pair (Topology A) (Topology B) (@subtopology A top u) (@subtopology B top' v)) f. +Axiom thm_QUOTIENT_MAP_SATURATED_OPEN : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@quotient_map A B (@pair (Topology A) (Topology B) top top') f) = ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall u : A -> Prop, ((@open_in A top u) /\ (@SUBSET A (@GSPEC A (fun GEN_PVAR_1381 : A => exists x : A, @SETSPEC A GEN_PVAR_1381 ((@IN A x (@topspace A top)) /\ (@IN B (f x) (@IMAGE A B f u))) x)) u)) -> @open_in B top' (@IMAGE A B f u)))). +Axiom thm_QUOTIENT_MAP_SATURATED_CLOSED : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@quotient_map A B (@pair (Topology A) (Topology B) top top') f) = ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall u : A -> Prop, ((@closed_in A top u) /\ (@SUBSET A (@GSPEC A (fun GEN_PVAR_1383 : A => exists x : A, @SETSPEC A GEN_PVAR_1383 ((@IN A x (@topspace A top)) /\ (@IN B (f x) (@IMAGE A B f u))) x)) u)) -> @closed_in B top' (@IMAGE A B f u)))). +Axiom thm_QUOTIENT_MAP_ONTO_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall u : B -> Prop, (@SUBSET B u (@topspace B top')) -> (@open_in A top (@GSPEC A (fun GEN_PVAR_1384 : A => exists x : A, @SETSPEC A GEN_PVAR_1384 ((@IN A x (@topspace A top)) /\ (@IN B (f x) u)) x))) = (@open_in B top' u))) -> @quotient_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' (@IMAGE A B f (@topspace A top)))) f. +Axiom thm_QUOTIENT_MAP_LIFT_EXISTS : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall h : A -> C, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map A C (@pair (Topology A) (Topology C) top top'') h) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((f x) = (f y)))) -> (h x) = (h y)))) -> exists g : B -> C, (@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g) /\ (((@IMAGE B C g (@topspace B top')) = (@IMAGE A C h (@topspace A top))) /\ (forall x : A, (@IN A x (@topspace A top)) -> (g (f x)) = (h x))). +Axiom thm_DISCRETE_SPACE_QUOTIENT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall q : A -> B, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') q) /\ (@discrete_space A top)) -> @discrete_space B top'. +Axiom thm_prod_topology : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@prod_topology A B top1 top2) = (@topology (prod A B) (@UNION_OF (prod A B) (@ARBITRARY (prod A B)) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_1385 : (prod A B) -> Prop => exists s : A -> Prop, exists t : B -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_1385 ((@open_in A top1 s) /\ (@open_in B top2 t)) (@CROSS A B s t))))). +Axiom thm_OPEN_IN_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@open_in (prod A B) (@prod_topology A B top1 top2)) = (@UNION_OF (prod A B) (@ARBITRARY (prod A B)) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_1386 : (prod A B) -> Prop => exists s : A -> Prop, exists t : B -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_1386 ((@open_in A top1 s) /\ (@open_in B top2 t)) (@CROSS A B s t)))). +Axiom thm_TOPSPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@topspace (prod A B) (@prod_topology A B top1 top2)) = (@CROSS A B (@topspace A top1) (@topspace B top2)). +Axiom thm_SUBTOPOLOGY_CROSS : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall s : A -> Prop, forall t : B -> Prop, (@subtopology (prod A B) (@prod_topology A B top1 top2) (@CROSS A B s t)) = (@prod_topology A B (@subtopology A top1 s) (@subtopology B top2 t)). +Axiom thm_PROD_TOPOLOGY_SUBTOPOLOGY : forall {A B : Type'}, (forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, (@prod_topology A B (@subtopology A top s) top') = (@subtopology (prod A B) (@prod_topology A B top top') (@CROSS A B s (@topspace B top')))) /\ (forall top : Topology A, forall top' : Topology B, forall t : B -> Prop, (@prod_topology A B top (@subtopology B top' t)) = (@subtopology (prod A B) (@prod_topology A B top top') (@CROSS A B (@topspace A top) t))). +Axiom thm_PROD_TOPOLOGY_DISCRETE_TOPOLOGY : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@prod_topology A B (@discrete_topology A s) (@discrete_topology B t)) = (@discrete_topology (prod A B) (@CROSS A B s t)). +Axiom thm_OPEN_IN_PROD_TOPOLOGY_ALT : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall s : (prod A B) -> Prop, (@open_in (prod A B) (@prod_topology A B top1 top2) s) = (forall x : A, forall y : B, (@IN (prod A B) (@pair A B x y) s) -> exists u : A -> Prop, exists v : B -> Prop, (@open_in A top1 u) /\ ((@open_in B top2 v) /\ ((@IN A x u) /\ ((@IN B y v) /\ (@SUBSET (prod A B) (@CROSS A B u v) s))))). +Axiom thm_OPEN_IN_CROSS : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall s : A -> Prop, forall t : B -> Prop, (@open_in (prod A B) (@prod_topology A B top1 top2) (@CROSS A B s t)) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@open_in A top1 s) /\ (@open_in B top2 t)))). +Axiom thm_CLOSURE_OF_CROSS : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall s : A -> Prop, forall t : B -> Prop, (@closure_of (prod A B) (@prod_topology A B top1 top2) (@CROSS A B s t)) = (@CROSS A B (@closure_of A top1 s) (@closure_of B top2 t)). +Axiom thm_CLOSED_IN_CROSS : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall s : A -> Prop, forall t : B -> Prop, (@closed_in (prod A B) (@prod_topology A B top1 top2) (@CROSS A B s t)) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@closed_in A top1 s) /\ (@closed_in B top2 t)))). +Axiom thm_INTERIOR_OF_CROSS : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall s : A -> Prop, forall t : B -> Prop, (@interior_of (prod A B) (@prod_topology A B top1 top2) (@CROSS A B s t)) = (@CROSS A B (@interior_of A top1 s) (@interior_of B top2 t)). +Axiom thm_DISCRETE_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@discrete_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@discrete_space A top1) /\ (@discrete_space B top2))). +Axiom thm_CONTINUOUS_MAP_PAIRWISE : forall {A B C : Type'}, forall top : Topology A, forall top1 : Topology B, forall top2 : Topology C, forall f : A -> prod B C, (@continuous_map A (prod B C) (@pair (Topology A) (Topology (prod B C)) top (@prod_topology B C top1 top2)) f) = ((@continuous_map A B (@pair (Topology A) (Topology B) top top1) (@o A (prod B C) B (@fst B C) f)) /\ (@continuous_map A C (@pair (Topology A) (Topology C) top top2) (@o A (prod B C) C (@snd B C) f))). +Axiom thm_CONTINUOUS_MAP_PAIRED : forall {A B C : Type'}, forall top : Topology A, forall top1 : Topology B, forall top2 : Topology C, forall f : A -> B, forall g : A -> C, (@continuous_map A (prod B C) (@pair (Topology A) (Topology (prod B C)) top (@prod_topology B C top1 top2)) (fun x : A => @pair B C (f x) (g x))) = ((@continuous_map A B (@pair (Topology A) (Topology B) top top1) f) /\ (@continuous_map A C (@pair (Topology A) (Topology C) top top2) g)). +Axiom thm_CONTINUOUS_MAP_SND : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, @continuous_map (prod A B) B (@pair (Topology (prod A B)) (Topology B) (@prod_topology A B top1 top2) top2) (@snd A B). +Axiom thm_CONTINUOUS_MAP_FST : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, @continuous_map (prod A B) A (@pair (Topology (prod A B)) (Topology A) (@prod_topology A B top1 top2) top1) (@fst A B). +Axiom thm_CONTINUOUS_MAP_FST_OF : forall {A B C : Type'}, forall top : Topology A, forall top1 : Topology B, forall top2 : Topology C, forall f : A -> prod B C, (@continuous_map A (prod B C) (@pair (Topology A) (Topology (prod B C)) top (@prod_topology B C top1 top2)) f) -> @continuous_map A B (@pair (Topology A) (Topology B) top top1) (fun x : A => @fst B C (f x)). +Axiom thm_CONTINUOUS_MAP_SND_OF : forall {A B C : Type'}, forall top : Topology A, forall top1 : Topology B, forall top2 : Topology C, forall f : A -> prod B C, (@continuous_map A (prod B C) (@pair (Topology A) (Topology (prod B C)) top (@prod_topology B C top1 top2)) f) -> @continuous_map A C (@pair (Topology A) (Topology C) top top2) (fun x : A => @snd B C (f x)). +Axiom thm_OPEN_MAP_SND : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, @open_map (prod A B) B (@pair (Topology (prod A B)) (Topology B) (@prod_topology A B top1 top2) top2) (@snd A B). +Axiom thm_OPEN_MAP_FST : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, @open_map (prod A B) A (@pair (Topology (prod A B)) (Topology A) (@prod_topology A B top1 top2) top1) (@fst A B). +Axiom thm_QUOTIENT_MAP_FST : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@quotient_map (prod A B) A (@pair (Topology (prod A B)) (Topology A) (@prod_topology A B top top') top) (@fst A B)) = (((@topspace B top') = (@EMPTY B)) -> (@topspace A top) = (@EMPTY A)). +Axiom thm_QUOTIENT_MAP_SND : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@quotient_map (prod A B) B (@pair (Topology (prod A B)) (Topology B) (@prod_topology A B top top') top') (@snd A B)) = (((@topspace A top) = (@EMPTY A)) -> (@topspace B top') = (@EMPTY B)). +Axiom thm_CONTINUOUS_MAP_OF_FST : forall {A B C : Type'}, forall top : Topology C, forall top1 : Topology A, forall top2 : Topology B, forall f : A -> C, (@continuous_map (prod A B) C (@pair (Topology (prod A B)) (Topology C) (@prod_topology A B top1 top2) top) (fun x : prod A B => f (@fst A B x))) = (((@topspace B top2) = (@EMPTY B)) \/ (@continuous_map A C (@pair (Topology A) (Topology C) top1 top) f)). +Axiom thm_CONTINUOUS_MAP_OF_SND : forall {A B C : Type'}, forall top : Topology C, forall top1 : Topology A, forall top2 : Topology B, forall f : B -> C, (@continuous_map (prod A B) C (@pair (Topology (prod A B)) (Topology C) (@prod_topology A B top1 top2) top) (fun x : prod A B => f (@snd A B x))) = (((@topspace A top1) = (@EMPTY A)) \/ (@continuous_map B C (@pair (Topology B) (Topology C) top2 top) f)). +Axiom thm_CONTINUOUS_MAP_PROD : forall {A B C D : Type'}, forall top1 : Topology A, forall top2 : Topology C, forall top3 : Topology B, forall top4 : Topology D, forall f : A -> B, forall g : C -> D, (@continuous_map (prod A C) (prod B D) (@pair (Topology (prod A C)) (Topology (prod B D)) (@prod_topology A C top1 top2) (@prod_topology B D top3 top4)) (@GABS ((prod A C) -> prod B D) (fun f' : (prod A C) -> prod B D => forall x : A, forall y : C, @GEQ (prod B D) (f' (@pair A C x y)) (@pair B D (f x) (g y))))) = (((@topspace (prod A C) (@prod_topology A C top1 top2)) = (@EMPTY (prod A C))) \/ ((@continuous_map A B (@pair (Topology A) (Topology B) top1 top3) f) /\ (@continuous_map C D (@pair (Topology C) (Topology D) top2 top4) g))). +Axiom thm_OPEN_MAP_PROD : forall {A B C D : Type'}, forall top1 : Topology A, forall top1' : Topology C, forall top2 : Topology B, forall top2' : Topology D, forall f : A -> C, forall g : B -> D, (@open_map (prod A B) (prod C D) (@pair (Topology (prod A B)) (Topology (prod C D)) (@prod_topology A B top1 top2) (@prod_topology C D top1' top2')) (@GABS ((prod A B) -> prod C D) (fun f' : (prod A B) -> prod C D => forall x : A, forall y : B, @GEQ (prod C D) (f' (@pair A B x y)) (@pair C D (f x) (g y))))) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@open_map A C (@pair (Topology A) (Topology C) top1 top1') f) /\ (@open_map B D (@pair (Topology B) (Topology D) top2 top2') g))). +Axiom thm_IN_PROD_TOPOLOGY_CLOSURE_OF : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall s : (prod A B) -> Prop, forall z : prod A B, (@IN (prod A B) z (@closure_of (prod A B) (@prod_topology A B top1 top2) s)) -> (@IN A (@fst A B z) (@closure_of A top1 (@IMAGE (prod A B) A (@fst A B) s))) /\ (@IN B (@snd A B z) (@closure_of B top2 (@IMAGE (prod A B) B (@snd A B) s))). +Axiom thm_CLOSED_MAP_PROD : forall {A B C D : Type'}, forall top1 : Topology A, forall top1' : Topology C, forall top2 : Topology B, forall top2' : Topology D, forall f : A -> C, forall g : B -> D, (@closed_map (prod A B) (prod C D) (@pair (Topology (prod A B)) (Topology (prod C D)) (@prod_topology A B top1 top2) (@prod_topology C D top1' top2')) (@GABS ((prod A B) -> prod C D) (fun f' : (prod A B) -> prod C D => forall x : A, forall y : B, @GEQ (prod C D) (f' (@pair A B x y)) (@pair C D (f x) (g y))))) -> ((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@closed_map A C (@pair (Topology A) (Topology C) top1 top1') f) /\ (@closed_map B D (@pair (Topology B) (Topology D) top2 top2') g)). +Axiom thm_PROD_TOPOLOGY_EQ : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall top1' : Topology A, forall top2' : Topology B, ((@prod_topology A B top1 top2) = (@prod_topology A B top1' top2')) = ((((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) /\ ((@topspace (prod A B) (@prod_topology A B top1' top2')) = (@EMPTY (prod A B)))) \/ ((top1 = top1') /\ (top2 = top2'))). +Axiom thm_product_topology : forall {A K : Type'}, forall t : K -> Prop, forall tops : K -> Topology A, (@product_topology A K t tops) = (@topology (K -> A) (@UNION_OF (K -> A) (@ARBITRARY (K -> A)) (@relative_to (K -> A) (@INTERSECTION_OF (K -> A) (@FINITE ((K -> A) -> Prop)) (@GSPEC ((K -> A) -> Prop) (fun GEN_PVAR_1390 : (K -> A) -> Prop => exists k : K, exists u : A -> Prop, @SETSPEC ((K -> A) -> Prop) GEN_PVAR_1390 ((@IN K k t) /\ (@open_in A (tops k) u)) (@GSPEC (K -> A) (fun GEN_PVAR_1389 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_1389 (@IN A (x k) u) x))))) (@GSPEC (K -> A) (fun GEN_PVAR_1391 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_1391 ((@EXTENSIONAL K A t x) /\ (forall k : K, (@IN K k t) -> @IN A (x k) (@topspace A (tops k)))) x))))). +Axiom thm_TOPSPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall t : K -> Prop, (@topspace (K -> A) (@product_topology A K t tops)) = (@cartesian_product A K t (@o K (Topology A) (A -> Prop) (@topspace A) tops)). +Axiom thm_TOPSPACE_PRODUCT_TOPOLOGY_ALT : forall {A K : Type'}, forall tops : K -> Topology A, forall t : K -> Prop, (@topspace (K -> A) (@product_topology A K t tops)) = (@GSPEC (K -> A) (fun GEN_PVAR_1392 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_1392 ((@EXTENSIONAL K A t x) /\ (forall k : K, (@IN K k t) -> @IN A (x k) (@topspace A (tops k)))) x)). +Axiom thm_PRODUCT_TOPOLOGY_EMPTY_DISCRETE : forall {A K : Type'}, forall tops : K -> Topology A, (@product_topology A K (@EMPTY K) tops) = (@discrete_topology (K -> A) (@INSERT (K -> A) (fun x : K => @ARB A) (@EMPTY (K -> A)))). +Axiom thm_OPEN_IN_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall t : K -> Prop, (@open_in (K -> A) (@product_topology A K t tops)) = (@UNION_OF (K -> A) (@ARBITRARY (K -> A)) (@relative_to (K -> A) (@INTERSECTION_OF (K -> A) (@FINITE ((K -> A) -> Prop)) (@GSPEC ((K -> A) -> Prop) (fun GEN_PVAR_1396 : (K -> A) -> Prop => exists k : K, exists u : A -> Prop, @SETSPEC ((K -> A) -> Prop) GEN_PVAR_1396 ((@IN K k t) /\ (@open_in A (tops k) u)) (@GSPEC (K -> A) (fun GEN_PVAR_1395 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_1395 (@IN A (x k) u) x))))) (@topspace (K -> A) (@product_topology A K t tops)))). +Axiom thm_SUBTOPOLOGY_CARTESIAN_PRODUCT : forall {A K : Type'}, forall tops : K -> Topology A, forall s : K -> A -> Prop, forall k : K -> Prop, (@subtopology (K -> A) (@product_topology A K k tops) (@cartesian_product A K k s)) = (@product_topology A K k (fun i : K => @subtopology A (tops i) (s i))). +Axiom thm_PRODUCT_TOPOLOGY_SUBBASE_ALT : forall {A K : Type'} (t : K -> Prop), forall tops : K -> Topology A, (@relative_to (K -> A) (@INTERSECTION_OF (K -> A) (@FINITE ((K -> A) -> Prop)) (@GSPEC ((K -> A) -> Prop) (fun GEN_PVAR_1400 : (K -> A) -> Prop => exists k : K, exists u : A -> Prop, @SETSPEC ((K -> A) -> Prop) GEN_PVAR_1400 ((@IN K k t) /\ (@open_in A (tops k) u)) (@GSPEC (K -> A) (fun GEN_PVAR_1399 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_1399 (@IN A (x k) u) x))))) (@topspace (K -> A) (@product_topology A K t tops))) = (@relative_to (K -> A) (@INTERSECTION_OF (K -> A) (@FINITE ((K -> A) -> Prop)) (@GSPEC ((K -> A) -> Prop) (fun GEN_PVAR_1404 : (K -> A) -> Prop => exists k : K, exists u : A -> Prop, @SETSPEC ((K -> A) -> Prop) GEN_PVAR_1404 ((@IN K k t) /\ ((@open_in A (tops k) u) /\ (@PSUBSET A u (@topspace A (tops k))))) (@GSPEC (K -> A) (fun GEN_PVAR_1403 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_1403 (@IN A (x k) u) x))))) (@topspace (K -> A) (@product_topology A K t tops))). +Axiom thm_PRODUCT_TOPOLOGY_BASE_ALT : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, (@relative_to (K -> A) (@INTERSECTION_OF (K -> A) (@FINITE ((K -> A) -> Prop)) (@GSPEC ((K -> A) -> Prop) (fun GEN_PVAR_1410 : (K -> A) -> Prop => exists i : K, exists u : A -> Prop, @SETSPEC ((K -> A) -> Prop) GEN_PVAR_1410 ((@IN K i k) /\ (@open_in A (tops i) u)) (@GSPEC (K -> A) (fun GEN_PVAR_1409 : K -> A => exists x : K -> A, @SETSPEC (K -> A) GEN_PVAR_1409 (@IN A (x i) u) x))))) (@topspace (K -> A) (@product_topology A K k tops))) = (@GSPEC ((K -> A) -> Prop) (fun GEN_PVAR_1412 : (K -> A) -> Prop => exists u : K -> A -> Prop, @SETSPEC ((K -> A) -> Prop) GEN_PVAR_1412 ((@FINITE K (@GSPEC K (fun GEN_PVAR_1411 : K => exists i : K, @SETSPEC K GEN_PVAR_1411 ((@IN K i k) /\ (~ ((u i) = (@topspace A (tops i))))) i))) /\ (forall i : K, (@IN K i k) -> @open_in A (tops i) (u i))) (@cartesian_product A K k u))). +Axiom thm_OPEN_IN_PRODUCT_TOPOLOGY_ALT : forall {A K : Type'}, forall k : K -> Prop, forall tops : K -> Topology A, forall s : (K -> A) -> Prop, (@open_in (K -> A) (@product_topology A K k tops) s) = (forall x : K -> A, (@IN (K -> A) x s) -> exists u : K -> A -> Prop, (@FINITE K (@GSPEC K (fun GEN_PVAR_1413 : K => exists i : K, @SETSPEC K GEN_PVAR_1413 ((@IN K i k) /\ (~ ((u i) = (@topspace A (tops i))))) i))) /\ ((forall i : K, (@IN K i k) -> @open_in A (tops i) (u i)) /\ ((@IN (K -> A) x (@cartesian_product A K k u)) /\ (@SUBSET (K -> A) (@cartesian_product A K k u) s)))). +Axiom thm_OPEN_IN_PRODUCT_TOPOLOGY_ALT_EXPAND : forall {A K : Type'}, forall k : K -> Prop, forall tops : K -> Topology A, forall s : (K -> A) -> Prop, (@open_in (K -> A) (@product_topology A K k tops) s) = ((@SUBSET (K -> A) s (@topspace (K -> A) (@product_topology A K k tops))) /\ (forall x : K -> A, (@IN (K -> A) x s) -> exists u : K -> A -> Prop, (@FINITE K (@GSPEC K (fun GEN_PVAR_1414 : K => exists i : K, @SETSPEC K GEN_PVAR_1414 ((@IN K i k) /\ (~ ((u i) = (@topspace A (tops i))))) i))) /\ ((forall i : K, (@IN K i k) -> (@open_in A (tops i) (u i)) /\ (@IN A (x i) (u i))) /\ (@SUBSET (K -> A) (@cartesian_product A K k u) s)))). +Axiom thm_CONTINUOUS_MAP_COMPONENTWISE : forall {A B K : Type'}, forall top : Topology A, forall tops : K -> Topology B, forall t : K -> Prop, forall f : A -> K -> B, (@continuous_map A (K -> B) (@pair (Topology A) (Topology (K -> B)) top (@product_topology B K t tops)) f) = ((@SUBSET (K -> B) (@IMAGE A (K -> B) f (@topspace A top)) (@EXTENSIONAL K B t)) /\ (forall k : K, (@IN K k t) -> @continuous_map A B (@pair (Topology A) (Topology B) top (tops k)) (fun x : A => f x k))). +Axiom thm_CONTINUOUS_MAP_COMPONENTWISE_UNIV : forall {A B K : Type'}, forall top : Topology A, forall tops : K -> Topology B, forall f : A -> K -> B, (@continuous_map A (K -> B) (@pair (Topology A) (Topology (K -> B)) top (@product_topology B K (@UNIV K) tops)) f) = (forall k : K, @continuous_map A B (@pair (Topology A) (Topology B) top (tops k)) (fun x : A => f x k)). +Axiom thm_CONTINUOUS_MAP_PRODUCT_PROJECTION : forall {A K : Type'}, forall tops : K -> Topology A, forall t : K -> Prop, forall k : K, (@IN K k t) -> @continuous_map (K -> A) A (@pair (Topology (K -> A)) (Topology A) (@product_topology A K t tops) (tops k)) (fun x : K -> A => x k). +Axiom thm_OPEN_MAP_PRODUCT_PROJECTION : forall {A K : Type'}, forall tops : K -> Topology A, forall t : K -> Prop, forall k : K, (@IN K k t) -> @open_map (K -> A) A (@pair (Topology (K -> A)) (Topology A) (@product_topology A K t tops) (tops k)) (fun x : K -> A => x k). +Axiom thm_OPEN_IN_CARTESIAN_PRODUCT_GEN : forall {A K : Type'}, forall tops : K -> Topology A, forall s : K -> A -> Prop, forall k : K -> Prop, (@open_in (K -> A) (@product_topology A K k tops) (@cartesian_product A K k s)) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ ((@FINITE K (@GSPEC K (fun GEN_PVAR_1434 : K => exists i : K, @SETSPEC K GEN_PVAR_1434 ((@IN K i k) /\ (~ ((s i) = (@topspace A (tops i))))) i))) /\ (forall i : K, (@IN K i k) -> @open_in A (tops i) (s i)))). +Axiom thm_OPEN_IN_CARTESIAN_PRODUCT : forall {A K : Type'}, forall tops : K -> Topology A, forall s : K -> A -> Prop, forall k : K -> Prop, (@FINITE K k) -> (@open_in (K -> A) (@product_topology A K k tops) (@cartesian_product A K k s)) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @open_in A (tops i) (s i))). +Axiom thm_OPEN_IN_PRODUCT_TOPOLOGY_EMPTY : forall {A K : Type'}, forall tops : K -> Topology A, forall s : (K -> A) -> Prop, (@open_in (K -> A) (@product_topology A K (@EMPTY K) tops) s) = (@IN ((K -> A) -> Prop) s (@INSERT ((K -> A) -> Prop) (@EMPTY (K -> A)) (@INSERT ((K -> A) -> Prop) (@INSERT (K -> A) (fun k : K => @ARB A) (@EMPTY (K -> A))) (@EMPTY ((K -> A) -> Prop))))). +Axiom thm_PRODUCT_TOPOLOGY_EMPTY : forall {A K : Type'}, forall tops : K -> Topology A, (@product_topology A K (@EMPTY K) tops) = (@topology (K -> A) (@INSERT ((K -> A) -> Prop) (@EMPTY (K -> A)) (@INSERT ((K -> A) -> Prop) (@INSERT (K -> A) (fun k : K => @ARB A) (@EMPTY (K -> A))) (@EMPTY ((K -> A) -> Prop))))). +Axiom thm_TOPSPACE_PRODUCT_TOPOLOGY_EMPTY : forall {A K : Type'}, forall tops : K -> Topology A, (@topspace (K -> A) (@product_topology A K (@EMPTY K) tops)) = (@INSERT (K -> A) (fun k : K => @ARB A) (@EMPTY (K -> A))). +Axiom thm_CLOSURE_OF_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall tops : K -> Topology A, forall s : K -> A -> Prop, (@closure_of (K -> A) (@product_topology A K k tops) (@cartesian_product A K k s)) = (@cartesian_product A K k (fun i : K => @closure_of A (tops i) (s i))). +Axiom thm_CLOSED_IN_CARTESIAN_PRODUCT : forall {A K : Type'}, forall tops : K -> Topology A, forall s : K -> A -> Prop, forall k : K -> Prop, (@closed_in (K -> A) (@product_topology A K k tops) (@cartesian_product A K k s)) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @closed_in A (tops i) (s i))). +Axiom thm_INTERIOR_IN_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall tops : K -> Topology A, forall s : K -> A -> Prop, (@FINITE K k) -> (@interior_of (K -> A) (@product_topology A K k tops) (@cartesian_product A K k s)) = (@cartesian_product A K k (fun i : K => @interior_of A (tops i) (s i))). +Axiom thm_QUOTIENT_MAP_PRODUCT_PROJECTION : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, forall i : K, (@IN K i k) -> (@quotient_map (K -> A) A (@pair (Topology (K -> A)) (Topology A) (@product_topology A K k tops) (tops i)) (fun x : K -> A => x i)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) -> (@topspace A (tops i)) = (@EMPTY A)). +Axiom thm_CONTINUOUS_MAP_PRODUCT : forall {A B K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall top' : K -> Topology B, forall f : K -> A -> B, (@continuous_map (K -> A) (K -> B) (@pair (Topology (K -> A)) (Topology (K -> B)) (@product_topology A K k top) (@product_topology B K k top')) (@product_map A B K k f)) = (((@topspace (K -> A) (@product_topology A K k top)) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @continuous_map A B (@pair (Topology A) (Topology B) (top i) (top' i)) (f i))). +Axiom thm_OPEN_MAP_PRODUCT : forall {A B K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall top' : K -> Topology B, forall f : K -> A -> B, (@open_map (K -> A) (K -> B) (@pair (Topology (K -> A)) (Topology (K -> B)) (@product_topology A K k top) (@product_topology B K k top')) (@product_map A B K k f)) = (((@topspace (K -> A) (@product_topology A K k top)) = (@EMPTY (K -> A))) \/ ((@FINITE K (@GSPEC K (fun GEN_PVAR_1449 : K => exists i : K, @SETSPEC K GEN_PVAR_1449 ((@IN K i k) /\ (@PSUBSET B (@IMAGE A B (f i) (@topspace A (top i))) (@topspace B (top' i)))) i))) /\ (forall i : K, (@IN K i k) -> @open_map A B (@pair (Topology A) (Topology B) (top i) (top' i)) (f i)))). +Axiom thm_CLOSED_MAP_PRODUCT : forall {A B K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall top' : K -> Topology B, forall f : K -> A -> B, (@closed_map (K -> A) (K -> B) (@pair (Topology (K -> A)) (Topology (K -> B)) (@product_topology A K k top) (@product_topology B K k top')) (@product_map A B K k f)) -> ((@topspace (K -> A) (@product_topology A K k top)) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @closed_map A B (@pair (Topology A) (Topology B) (top i) (top' i)) (f i)). +Axiom thm_IN_PRODUCT_TOPOLOGY_CLOSURE_OF : forall {A K : Type'}, forall tops : K -> Topology A, forall s : (K -> A) -> Prop, forall k : K -> Prop, forall z : K -> A, (@IN (K -> A) z (@closure_of (K -> A) (@product_topology A K k tops) s)) -> forall i : K, (@IN K i k) -> @IN A (z i) (@closure_of A (tops i) (@IMAGE (K -> A) A (fun x : K -> A => x i) s)). +Axiom thm_PRODUCT_TOPOLOGY_EQ : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall top' : K -> Topology A, ((@product_topology A K k top) = (@product_topology A K k top')) = ((((@topspace (K -> A) (@product_topology A K k top)) = (@EMPTY (K -> A))) /\ ((@topspace (K -> A) (@product_topology A K k top')) = (@EMPTY (K -> A)))) \/ (forall i : K, (@IN K i k) -> (top i) = (top' i))). +Axiom thm_DISCRETE_TOPOLOGY_CARTESIAN_PRODUCT_EQ : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, ((@discrete_topology (K -> A) (@cartesian_product A K k s)) = (@product_topology A K k (@o K (A -> Prop) (Topology A) (@discrete_topology A) s))) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ (@FINITE K (@GSPEC K (fun GEN_PVAR_1450 : K => exists i : K, @SETSPEC K GEN_PVAR_1450 ((@IN K i k) /\ (~ (exists a : A, @SUBSET A (s i) (@INSERT A a (@EMPTY A))))) i)))). +Axiom thm_DISCRETE_TOPOLOGY_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, (@FINITE K (@GSPEC K (fun GEN_PVAR_1451 : K => exists i : K, @SETSPEC K GEN_PVAR_1451 ((@IN K i k) /\ (~ (exists a : A, @SUBSET A (s i) (@INSERT A a (@EMPTY A))))) i))) -> (@discrete_topology (K -> A) (@cartesian_product A K k s)) = (@product_topology A K k (@o K (A -> Prop) (Topology A) (@discrete_topology A) s)). +Axiom thm_DISCRETE_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, (@discrete_space (K -> A) (@product_topology A K k tops)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ ((@FINITE K (@GSPEC K (fun GEN_PVAR_1452 : K => exists i : K, @SETSPEC K GEN_PVAR_1452 ((@IN K i k) /\ (~ (exists a : A, @SUBSET A (@topspace A (tops i)) (@INSERT A a (@EMPTY A))))) i))) /\ (forall i : K, (@IN K i k) -> @discrete_space A (tops i)))). +Axiom thm_sum_topology : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, (@sum_topology A K k top) = (@topology (prod K A) (@GSPEC ((prod K A) -> Prop) (fun GEN_PVAR_1454 : (prod K A) -> Prop => exists u : (prod K A) -> Prop, @SETSPEC ((prod K A) -> Prop) GEN_PVAR_1454 ((@SUBSET (prod K A) u (@disjoint_union A K k (@o K (Topology A) (A -> Prop) (@topspace A) top))) /\ (forall i : K, (@IN K i k) -> @open_in A (top i) (@GSPEC A (fun GEN_PVAR_1453 : A => exists x : A, @SETSPEC A GEN_PVAR_1453 (@IN (prod K A) (@pair K A i x) u) x)))) u))). +Axiom thm_OPEN_IN_SUM_TOPOLOGY : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall u : (prod K A) -> Prop, (@open_in (prod K A) (@sum_topology A K k top) u) = ((@SUBSET (prod K A) u (@disjoint_union A K k (@o K (Topology A) (A -> Prop) (@topspace A) top))) /\ (forall i : K, (@IN K i k) -> @open_in A (top i) (@GSPEC A (fun GEN_PVAR_1462 : A => exists x : A, @SETSPEC A GEN_PVAR_1462 (@IN (prod K A) (@pair K A i x) u) x)))). +Axiom thm_OPEN_IN_DISJOINT_UNION : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall u : K -> A -> Prop, (@open_in (prod K A) (@sum_topology A K k top) (@disjoint_union A K k u)) = (forall i : K, (@IN K i k) -> @open_in A (top i) (u i)). +Axiom thm_TOPSPACE_SUM_TOPOLOGY : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, (@topspace (prod K A) (@sum_topology A K k top)) = (@disjoint_union A K k (@o K (Topology A) (A -> Prop) (@topspace A) top)). +Axiom thm_OPEN_IN_SUM_TOPOLOGY_ALT : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall u : (prod K A) -> Prop, (@open_in (prod K A) (@sum_topology A K k top) u) = (exists t : K -> A -> Prop, (u = (@disjoint_union A K k t)) /\ (forall i : K, (@IN K i k) -> @open_in A (top i) (t i))). +Axiom thm_FORALL_OPEN_IN_SUM_TOPOLOGY : forall {A K : Type'} (P : ((prod K A) -> Prop) -> Prop), forall k : K -> Prop, forall top : K -> Topology A, (forall u : (prod K A) -> Prop, (@open_in (prod K A) (@sum_topology A K k top) u) -> P u) = (forall t : K -> A -> Prop, (forall i : K, (@IN K i k) -> @open_in A (top i) (t i)) -> P (@disjoint_union A K k t)). +Axiom thm_EXISTS_OPEN_IN_SUM_TOPOLOGY : forall {A K : Type'} (P : ((prod K A) -> Prop) -> Prop), forall k : K -> Prop, forall top : K -> Topology A, (exists u : (prod K A) -> Prop, (@open_in (prod K A) (@sum_topology A K k top) u) /\ (P u)) = (exists t : K -> A -> Prop, (forall i : K, (@IN K i k) -> @open_in A (top i) (t i)) /\ (P (@disjoint_union A K k t))). +Axiom thm_CLOSED_IN_SUM_TOPOLOGY : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall u : (prod K A) -> Prop, (@closed_in (prod K A) (@sum_topology A K k top) u) = ((@SUBSET (prod K A) u (@disjoint_union A K k (@o K (Topology A) (A -> Prop) (@topspace A) top))) /\ (forall i : K, (@IN K i k) -> @closed_in A (top i) (@GSPEC A (fun GEN_PVAR_1463 : A => exists x : A, @SETSPEC A GEN_PVAR_1463 (@IN (prod K A) (@pair K A i x) u) x)))). +Axiom thm_CLOSED_IN_DISJOINT_UNION : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall u : K -> A -> Prop, (@closed_in (prod K A) (@sum_topology A K k top) (@disjoint_union A K k u)) = (forall i : K, (@IN K i k) -> @closed_in A (top i) (u i)). +Axiom thm_CLOSED_IN_SUM_TOPOLOGY_ALT : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall u : (prod K A) -> Prop, (@closed_in (prod K A) (@sum_topology A K k top) u) = (exists t : K -> A -> Prop, (u = (@disjoint_union A K k t)) /\ (forall i : K, (@IN K i k) -> @closed_in A (top i) (t i))). +Axiom thm_FORALL_CLOSED_IN_SUM_TOPOLOGY : forall {A K : Type'} (P : ((prod K A) -> Prop) -> Prop), forall k : K -> Prop, forall top : K -> Topology A, (forall u : (prod K A) -> Prop, (@closed_in (prod K A) (@sum_topology A K k top) u) -> P u) = (forall t : K -> A -> Prop, (forall i : K, (@IN K i k) -> @closed_in A (top i) (t i)) -> P (@disjoint_union A K k t)). +Axiom thm_EXISTS_CLOSED_IN_SUM_TOPOLOGY : forall {A K : Type'} (P : ((prod K A) -> Prop) -> Prop), forall k : K -> Prop, forall top : K -> Topology A, (exists u : (prod K A) -> Prop, (@closed_in (prod K A) (@sum_topology A K k top) u) /\ (P u)) = (exists t : K -> A -> Prop, (forall i : K, (@IN K i k) -> @closed_in A (top i) (t i)) /\ (P (@disjoint_union A K k t))). +Axiom thm_OPEN_MAP_COMPONENT_INJECTION : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall i : K, (@IN K i k) -> @open_map A (prod K A) (@pair (Topology A) (Topology (prod K A)) (top i) (@sum_topology A K k top)) (fun x : A => @pair K A i x). +Axiom thm_CLOSED_MAP_COMPONENT_INJECTION : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall i : K, (@IN K i k) -> @closed_map A (prod K A) (@pair (Topology A) (Topology (prod K A)) (top i) (@sum_topology A K k top)) (fun x : A => @pair K A i x). +Axiom thm_CONTINUOUS_MAP_COMPONENT_INJECTION : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall i : K, (@IN K i k) -> @continuous_map A (prod K A) (@pair (Topology A) (Topology (prod K A)) (top i) (@sum_topology A K k top)) (fun x : A => @pair K A i x). +Axiom thm_SUBTOPOLOGY_SUM_TOPOLOGY : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall s : K -> A -> Prop, (@subtopology (prod K A) (@sum_topology A K k top) (@disjoint_union A K k s)) = (@sum_topology A K k (fun i : K => @subtopology A (top i) (s i))). +Axiom thm_homeomorphic_map : forall {A B : Type'}, forall top' : Topology B, forall top : Topology A, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) = ((@quotient_map A B (@pair (Topology A) (Topology B) top top') f) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y))). +Axiom thm_homeomorphic_maps : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, (@homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)) = ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) top' top) g) /\ ((forall x : A, (@IN A x (@topspace A top)) -> (g (f x)) = x) /\ (forall y : B, (@IN B y (@topspace B top')) -> (f (g y)) = y)))). +Axiom thm_HOMEOMORPHIC_MAP_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, ((forall x : A, (@IN A x (@topspace A top)) -> (f x) = (g x)) /\ (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f)) -> @homeomorphic_map A B (@pair (Topology A) (Topology B) top top') g. +Axiom thm_HOMEOMORPHIC_MAPS_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall f' : A -> B, forall g : B -> A, forall g' : B -> A, ((forall x : A, (@IN A x (@topspace A top)) -> (f x) = (f' x)) /\ ((forall x : B, (@IN B x (@topspace B top')) -> (g x) = (g' x)) /\ (@homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)))) -> @homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f' g'). +Axiom thm_HOMEOMORPHIC_MAPS_SYM : forall {A B : Type'}, forall f : A -> B, forall g : B -> A, forall top : Topology A, forall top' : Topology B, (@homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)) = (@homeomorphic_maps B A (@pair (Topology B) (Topology A) top' top) (@pair (B -> A) (A -> B) g f)). +Axiom thm_HOMEOMORPHIC_MAPS_ID : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (@homeomorphic_maps A A (@pair (Topology A) (Topology A) top top') (@pair (A -> A) (A -> A) (fun x : A => x) (fun x : A => x))) = (top' = top). +Axiom thm_HOMEOMORPHIC_MAP_ID : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (@homeomorphic_map A A (@pair (Topology A) (Topology A) top top') (fun x : A => x)) = (top' = top). +Axiom thm_HOMEOMORPHIC_MAPS_I : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (@homeomorphic_maps A A (@pair (Topology A) (Topology A) top top') (@pair (A -> A) (A -> A) (@I A) (@I A))) = (top' = top). +Axiom thm_HOMEOMORPHIC_MAP_I : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (@homeomorphic_map A A (@pair (Topology A) (Topology A) top top') (@I A)) = (top' = top). +Axiom thm_HOMEOMORPHIC_MAP_COMPOSE : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@homeomorphic_map B C (@pair (Topology B) (Topology C) top' top'') g)) -> @homeomorphic_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f). +Axiom thm_HOMEOMORPHIC_MAPS_COMPOSE : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, forall h : B -> A, forall k : C -> B, ((@homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f h)) /\ (@homeomorphic_maps B C (@pair (Topology B) (Topology C) top' top'') (@pair (B -> C) (C -> B) g k))) -> @homeomorphic_maps A C (@pair (Topology A) (Topology C) top top'') (@pair (A -> C) (C -> A) (@o A B C g f) (@o C B A h k)). +Axiom thm_HOMEOMORPHIC_EQ_EVERYTHING_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) = ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y)))))). +Axiom thm_HOMEOMORPHIC_IMP_QUOTIENT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> @quotient_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_HOMEOMORPHIC_IMP_CONTINUOUS_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_HOMEOMORPHIC_IMP_OPEN_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> @open_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_HOMEOMORPHIC_IMP_CLOSED_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> @closed_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_HOMEOMORPHIC_IMP_SURJECTIVE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (@IMAGE A B f (@topspace A top)) = (@topspace B top'). +Axiom thm_HOMEOMORPHIC_IMP_INJECTIVE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y). +Axiom thm_BIJECTIVE_OPEN_IMP_HOMEOMORPHIC_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y))))) -> @homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_BIJECTIVE_CLOSED_IMP_HOMEOMORPHIC_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y))))) -> @homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_OPEN_EQ_CONTINUOUS_INVERSE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, ((forall x : A, (@IN A x (@topspace A top)) -> (@IN B (f x) (@topspace B top')) /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y (@topspace B top')) -> (@IN A (g y) (@topspace A top)) /\ ((f (g y)) = y))) -> (@open_map A B (@pair (Topology A) (Topology B) top top') f) = (@continuous_map B A (@pair (Topology B) (Topology A) top' top) g). +Axiom thm_CLOSED_EQ_CONTINUOUS_INVERSE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, ((forall x : A, (@IN A x (@topspace A top)) -> (@IN B (f x) (@topspace B top')) /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y (@topspace B top')) -> (@IN A (g y) (@topspace A top)) /\ ((f (g y)) = y))) -> (@closed_map A B (@pair (Topology A) (Topology B) top top') f) = (@continuous_map B A (@pair (Topology B) (Topology A) top' top) g). +Axiom thm_HOMEOMORPHIC_MAPS_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, (@homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)) = ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@homeomorphic_map B A (@pair (Topology B) (Topology A) top' top) g) /\ ((forall x : A, (@IN A x (@topspace A top)) -> (g (f x)) = x) /\ (forall y : B, (@IN B y (@topspace B top')) -> (f (g y)) = y)))). +Axiom thm_HOMEOMORPHIC_MAPS_IMP_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, (@homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)) -> @homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_HOMEOMORPHIC_MAP_MAPS : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) = (exists g : B -> A, @homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)). +Axiom thm_HOMEOMORPHIC_MAPS_INVOLUTION : forall {A : Type'}, forall top : Topology A, forall f : A -> A, ((@continuous_map A A (@pair (Topology A) (Topology A) top top) f) /\ (forall x : A, (@IN A x (@topspace A top)) -> (f (f x)) = x)) -> @homeomorphic_maps A A (@pair (Topology A) (Topology A) top top) (@pair (A -> A) (A -> A) f f). +Axiom thm_HOMEOMORPHIC_MAP_INVOLUTION : forall {A : Type'}, forall top : Topology A, forall f : A -> A, ((@continuous_map A A (@pair (Topology A) (Topology A) top top) f) /\ (forall x : A, (@IN A x (@topspace A top)) -> (f (f x)) = x)) -> @homeomorphic_map A A (@pair (Topology A) (Topology A) top top) f. +Axiom thm_HOMEOMORPHIC_MAP_OPENNESS : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET A u (@topspace A top))) -> (@open_in B top' (@IMAGE A B f u)) = (@open_in A top u). +Axiom thm_HOMEOMORPHIC_MAP_CLOSEDNESS : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET A u (@topspace A top))) -> (@closed_in B top' (@IMAGE A B f u)) = (@closed_in A top u). +Axiom thm_HOMEOMORPHIC_MAP_OPENNESS_EQ : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (@open_in A top u) = ((@SUBSET A u (@topspace A top)) /\ (@open_in B top' (@IMAGE A B f u))). +Axiom thm_HOMEOMORPHIC_MAP_CLOSEDNESS_EQ : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (@closed_in A top u) = ((@SUBSET A u (@topspace A top)) /\ (@closed_in B top' (@IMAGE A B f u))). +Axiom thm_FORALL_OPEN_IN_HOMEOMORPHIC_IMAGE : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall P : (B -> Prop) -> Prop, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (forall v : B -> Prop, (@open_in B top' v) -> P v) = (forall u : A -> Prop, (@open_in A top u) -> P (@IMAGE A B f u)). +Axiom thm_FORALL_CLOSED_IN_HOMEOMORPHIC_IMAGE : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall P : (B -> Prop) -> Prop, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (forall v : B -> Prop, (@closed_in B top' v) -> P v) = (forall u : A -> Prop, (@closed_in A top u) -> P (@IMAGE A B f u)). +Axiom thm_HOMEOMORPHIC_MAP_DERIVED_SET_OF : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET A s (@topspace A top))) -> (@derived_set_of B top' (@IMAGE A B f s)) = (@IMAGE A B f (@derived_set_of A top s)). +Axiom thm_HOMEOMORPHIC_MAP_CLOSURE_OF : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET A s (@topspace A top))) -> (@closure_of B top' (@IMAGE A B f s)) = (@IMAGE A B f (@closure_of A top s)). +Axiom thm_HOMEOMORPHIC_MAP_INTERIOR_OF : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET A s (@topspace A top))) -> (@interior_of B top' (@IMAGE A B f s)) = (@IMAGE A B f (@interior_of A top s)). +Axiom thm_HOMEOMORPHIC_MAP_FRONTIER_OF : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET A s (@topspace A top))) -> (@frontier_of B top' (@IMAGE A B f s)) = (@IMAGE A B f (@frontier_of A top s)). +Axiom thm_HOMEOMORPHIC_MAPS_SUBTOPOLOGIES : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, forall s : A -> Prop, forall t : B -> Prop, ((@homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)) /\ ((@IMAGE A B f (@INTER A (@topspace A top) s)) = (@INTER B (@topspace B top') t))) -> @homeomorphic_maps A B (@pair (Topology A) (Topology B) (@subtopology A top s) (@subtopology B top' t)) (@pair (A -> B) (B -> A) f g). +Axiom thm_HOMEOMORPHIC_MAPS_SUBTOPOLOGIES_ALT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, forall s : A -> Prop, forall t : B -> Prop, ((@homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)) /\ ((@SUBSET B (@IMAGE A B f (@INTER A (@topspace A top) s)) t) /\ (@SUBSET A (@IMAGE B A g (@INTER B (@topspace B top') t)) s))) -> @homeomorphic_maps A B (@pair (Topology A) (Topology B) (@subtopology A top s) (@subtopology B top' t)) (@pair (A -> B) (B -> A) f g). +Axiom thm_HOMEOMORPHIC_MAP_SUBTOPOLOGIES : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@INTER A (@topspace A top) s)) = (@INTER B (@topspace B top') t))) -> @homeomorphic_map A B (@pair (Topology A) (Topology B) (@subtopology A top s) (@subtopology B top' t)) f. +Axiom thm_HOMEOMORPHIC_MAP_SUBTOPOLOGIES_ALT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (forall x : A, ((@IN A x (@topspace A top)) /\ (@IN B (f x) (@topspace B top'))) -> (@IN B (f x) t) = (@IN A x s))) -> @homeomorphic_map A B (@pair (Topology A) (Topology B) (@subtopology A top s) (@subtopology B top' t)) f. +Axiom thm_HOMEOMORPHIC_MAPS_PROD : forall {A B C D : Type'}, forall top1 : Topology A, forall top2 : Topology C, forall top3 : Topology B, forall top4 : Topology D, forall f : A -> B, forall g : C -> D, forall f' : B -> A, forall g' : D -> C, (@homeomorphic_maps (prod A C) (prod B D) (@pair (Topology (prod A C)) (Topology (prod B D)) (@prod_topology A C top1 top2) (@prod_topology B D top3 top4)) (@pair ((prod A C) -> prod B D) ((prod B D) -> prod A C) (@GABS ((prod A C) -> prod B D) (fun f'' : (prod A C) -> prod B D => forall x : A, forall y : C, @GEQ (prod B D) (f'' (@pair A C x y)) (@pair B D (f x) (g y)))) (@GABS ((prod B D) -> prod A C) (fun f'' : (prod B D) -> prod A C => forall x : B, forall y : D, @GEQ (prod A C) (f'' (@pair B D x y)) (@pair A C (f' x) (g' y)))))) = ((((@topspace (prod A C) (@prod_topology A C top1 top2)) = (@EMPTY (prod A C))) /\ ((@topspace (prod B D) (@prod_topology B D top3 top4)) = (@EMPTY (prod B D)))) \/ ((@homeomorphic_maps A B (@pair (Topology A) (Topology B) top1 top3) (@pair (A -> B) (B -> A) f f')) /\ (@homeomorphic_maps C D (@pair (Topology C) (Topology D) top2 top4) (@pair (C -> D) (D -> C) g g')))). +Axiom thm_HOMEOMORPHIC_MAPS_SWAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, @homeomorphic_maps (prod A B) (prod B A) (@pair (Topology (prod A B)) (Topology (prod B A)) (@prod_topology A B top top') (@prod_topology B A top' top)) (@pair ((prod A B) -> prod B A) ((prod B A) -> prod A B) (@GABS ((prod A B) -> prod B A) (fun f : (prod A B) -> prod B A => forall x : A, forall y : B, @GEQ (prod B A) (f (@pair A B x y)) (@pair B A y x))) (@GABS ((prod B A) -> prod A B) (fun f : (prod B A) -> prod A B => forall y : B, forall x : A, @GEQ (prod A B) (f (@pair B A y x)) (@pair A B x y)))). +Axiom thm_HOMEOMORPHIC_MAP_SWAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, @homeomorphic_map (prod A B) (prod B A) (@pair (Topology (prod A B)) (Topology (prod B A)) (@prod_topology A B top top') (@prod_topology B A top' top)) (@GABS ((prod A B) -> prod B A) (fun f : (prod A B) -> prod B A => forall x : A, forall y : B, @GEQ (prod B A) (f (@pair A B x y)) (@pair B A y x))). +Axiom thm_homeomorphic_space : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') = (exists f : A -> B, exists g : B -> A, @homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)). +Axiom thm_HOMEOMORPHIC_SPACE_REFL : forall {A : Type'}, forall top : Topology A, @homeomorphic_space A A top top. +Axiom thm_HOMEOMORPHIC_SPACE_SYM : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') = (@homeomorphic_space B A top' top). +Axiom thm_HOMEOMORPHIC_SPACE_TRANS : forall {A B C : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall top3 : Topology C, ((@homeomorphic_space A B top1 top2) /\ (@homeomorphic_space B C top2 top3)) -> @homeomorphic_space A C top1 top3. +Axiom thm_HOMEOMORPHIC_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') = (exists f : A -> B, @homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f). +Axiom thm_HOMEOMORPHIC_MAPS_IMP_HOMEOMORPHIC_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, (@homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)) -> @homeomorphic_space A B top top'. +Axiom thm_HOMEOMORPHIC_MAP_IMP_HOMEOMORPHIC_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> @homeomorphic_space A B top top'. +Axiom thm_HOMEOMORPHIC_SPACE_IMP_CARD_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> @eq_c A B (@topspace A top) (@topspace B top'). +Axiom thm_HOMEOMORPHIC_SPACE_FINITENESS : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@FINITE A (@topspace A top)) = (@FINITE B (@topspace B top')). +Axiom thm_HOMEOMORPHIC_SPACE_INFINITENESS : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@INFINITE A (@topspace A top)) = (@INFINITE B (@topspace B top')). +Axiom thm_HOMEOMORPHIC_SPACE_COUNTABILITY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@COUNTABLE A (@topspace A top)) = (@COUNTABLE B (@topspace B top')). +Axiom thm_HOMEOMORPHIC_EMPTY_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> ((@topspace A top) = (@EMPTY A)) = ((@topspace B top') = (@EMPTY B)). +Axiom thm_HOMEOMORPHIC_EMPTY_SPACE_EQ : forall {A B : Type'}, (forall top : Topology A, forall top' : Topology B, ((@topspace A top) = (@EMPTY A)) -> (@homeomorphic_space A B top top') = ((@topspace B top') = (@EMPTY B))) /\ (forall top : Topology A, forall top' : Topology B, ((@topspace B top') = (@EMPTY B)) -> (@homeomorphic_space A B top top') = ((@topspace A top) = (@EMPTY A))). +Axiom thm_PROD_TOPOLOGY_HOMEOMORPHIC_SPACE_LEFT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall b : B, ((@topspace B top') = (@INSERT B b (@EMPTY B))) -> @homeomorphic_space (prod A B) A (@prod_topology A B top top') top. +Axiom thm_PROD_TOPOLOGY_HOMEOMORPHIC_SPACE_RIGHT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall a : A, ((@topspace A top) = (@INSERT A a (@EMPTY A))) -> @homeomorphic_space (prod A B) B (@prod_topology A B top top') top'. +Axiom thm_HOMEOMORPHIC_SPACE_PROD_TOPOLOGY_SING : forall {A B : Type'}, (forall top : Topology A, forall top' : Topology B, forall b : B, (@IN B b (@topspace B top')) -> @homeomorphic_space A (prod A B) top (@prod_topology A B top (@subtopology B top' (@INSERT B b (@EMPTY B))))) /\ (forall top : Topology A, forall top' : Topology B, forall a : A, (@IN A a (@topspace A top)) -> @homeomorphic_space B (prod A B) top' (@prod_topology A B (@subtopology A top (@INSERT A a (@EMPTY A))) top')). +Axiom thm_TOPOLOGICAL_PROPERTY_OF_PROD_COMPONENT : forall {A B : Type'}, forall P : (Topology (prod A B)) -> Prop, forall Q : (Topology A) -> Prop, forall R' : (Topology B) -> Prop, forall top1 : Topology A, forall top2 : Topology B, ((forall a : A, ((@IN A a (@topspace A top1)) /\ (P (@prod_topology A B top1 top2))) -> P (@subtopology (prod A B) (@prod_topology A B top1 top2) (@CROSS A B (@INSERT A a (@EMPTY A)) (@topspace B top2)))) /\ ((forall b : B, ((@IN B b (@topspace B top2)) /\ (P (@prod_topology A B top1 top2))) -> P (@subtopology (prod A B) (@prod_topology A B top1 top2) (@CROSS A B (@topspace A top1) (@INSERT B b (@EMPTY B))))) /\ ((forall top : Topology (prod A B), forall top' : Topology A, (@homeomorphic_space (prod A B) A top top') -> (P top) = (Q top')) /\ (forall top : Topology (prod A B), forall top' : Topology B, (@homeomorphic_space (prod A B) B top top') -> (P top) = (R' top'))))) -> (P (@prod_topology A B top1 top2)) -> ((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((Q top1) /\ (R' top2)). +Axiom thm_PRODUCT_TOPOLOGY_HOMEOMORPHIC_COMPONENT : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, forall i : K, ((@IN K i k) /\ (forall j : K, ((@IN K j k) /\ (~ (j = i))) -> exists a : A, (@topspace A (tops j)) = (@INSERT A a (@EMPTY A)))) -> @homeomorphic_space (K -> A) A (@product_topology A K k tops) (tops i). +Axiom thm_TOPOLOGICAL_PROPERTY_OF_PRODUCT_COMPONENT : forall {A K : Type'}, forall P : (Topology (K -> A)) -> Prop, forall Q : (Topology A) -> Prop, forall tops : K -> Topology A, forall k : K -> Prop, ((forall z : K -> A, forall i : K, ((@IN (K -> A) z (@topspace (K -> A) (@product_topology A K k tops))) /\ ((P (@product_topology A K k tops)) /\ (@IN K i k))) -> P (@subtopology (K -> A) (@product_topology A K k tops) (@cartesian_product A K k (fun j : K => @COND (A -> Prop) (j = i) (@topspace A (tops i)) (@INSERT A (z j) (@EMPTY A)))))) /\ (forall top : Topology (K -> A), forall top' : Topology A, (@homeomorphic_space (K -> A) A top top') -> (P top) = (Q top'))) -> (P (@product_topology A K k tops)) -> ((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> Q (tops i)). +Axiom thm_HOMEOMORPHIC_SPACE_PROD_TOPOLOGY : forall {A B C D : Type'}, forall top1 : Topology A, forall top1' : Topology B, forall top2 : Topology C, forall top2' : Topology D, ((@homeomorphic_space A B top1 top1') /\ (@homeomorphic_space C D top2 top2')) -> @homeomorphic_space (prod A C) (prod B D) (@prod_topology A C top1 top2) (@prod_topology B D top1' top2'). +Axiom thm_HOMEOMORPHIC_SPACE_PROD_TOPOLOGY_SWAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, @homeomorphic_space (prod A B) (prod B A) (@prod_topology A B top top') (@prod_topology B A top' top). +Axiom thm_HOMEOMORPHIC_SPACE_SINGLETON_PRODUCT : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K, @homeomorphic_space (K -> A) A (@product_topology A K (@INSERT K k (@EMPTY K)) tops) (tops k). +Axiom thm_embedding_map : forall {A B : Type'}, forall top' : Topology B, forall top : Topology A, forall f : A -> B, (@embedding_map A B (@pair (Topology A) (Topology B) top top') f) = (@homeomorphic_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' (@IMAGE A B f (@topspace A top)))) f). +Axiom thm_EMBEDDING_MAP_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, ((forall x : A, (@IN A x (@topspace A top)) -> (f x) = (g x)) /\ (@embedding_map A B (@pair (Topology A) (Topology B) top top') f)) -> @embedding_map A B (@pair (Topology A) (Topology B) top top') g. +Axiom thm_EMBEDDING_MAP_COMPOSE : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@embedding_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@embedding_map B C (@pair (Topology B) (Topology C) top' top'') g)) -> @embedding_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f). +Axiom thm_SURJECTIVE_EMBEDDING_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@embedding_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top'))) = (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f). +Axiom thm_EMBEDDING_MAP_IN_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall s : B -> Prop, forall f : A -> B, (@embedding_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' s)) f) = ((@embedding_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET B (@IMAGE A B f (@topspace A top)) s)). +Axiom thm_INJECTIVE_OPEN_IMP_EMBEDDING_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y)))) -> @embedding_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_INJECTIVE_CLOSED_IMP_EMBEDDING_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y)))) -> @embedding_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_EMBEDDING_MAP_IMP_HOMEOMORPHIC_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@embedding_map A B (@pair (Topology A) (Topology B) top top') f) -> @homeomorphic_space A B top (@subtopology B top' (@IMAGE A B f (@topspace A top))). +Axiom thm_EMBEDDING_IMP_CONTINUOUS_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@embedding_map A B (@pair (Topology A) (Topology B) top top') f) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_EMBEDDING_IMP_INJECTIVE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@embedding_map A B (@pair (Topology A) (Topology B) top top') f) -> forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y). +Axiom thm_EMBEDDING_IMP_CLOSED_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@embedding_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@closed_in B top' (@IMAGE A B f (@topspace A top)))) -> @closed_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_EMBEDDING_IMP_CLOSED_MAP_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@embedding_map A B (@pair (Topology A) (Topology B) top top') f) -> (@closed_map A B (@pair (Topology A) (Topology B) top top') f) = (@closed_in B top' (@IMAGE A B f (@topspace A top))). +Axiom thm_EMBEDDING_IMP_OPEN_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@embedding_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@open_in B top' (@IMAGE A B f (@topspace A top)))) -> @open_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_EMBEDDING_IMP_OPEN_MAP_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@embedding_map A B (@pair (Topology A) (Topology B) top top') f) -> (@open_map A B (@pair (Topology A) (Topology B) top top') f) = (@open_in B top' (@IMAGE A B f (@topspace A top))). +Axiom thm_EMBEDDING_MAP_ON_EMPTY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@topspace A top) = (@EMPTY A)) -> @embedding_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_EMBEDDING_MAP_COMPONENT_INJECTION : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, forall i : K, (@IN K i k) -> @embedding_map A (prod K A) (@pair (Topology A) (Topology (prod K A)) (top i) (@sum_topology A K k top)) (fun x : A => @pair K A i x). +Axiom thm_TOPOLOGICAL_PROPERTY_OF_SUM_COMPONENT : forall {A K : Type'}, forall P : (Topology (prod K A)) -> Prop, forall Q : (Topology A) -> Prop, forall tops : K -> Topology A, forall k : K -> Prop, ((forall top : Topology (prod K A), forall s : (prod K A) -> Prop, ((P top) /\ ((@closed_in (prod K A) top s) /\ (@open_in (prod K A) top s))) -> P (@subtopology (prod K A) top s)) /\ (forall top : Topology (prod K A), forall top' : Topology A, (@homeomorphic_space (prod K A) A top top') -> (P top) = (Q top'))) -> (P (@sum_topology A K k tops)) -> forall i : K, (@IN K i k) -> Q (tops i). +Axiom thm_retraction_maps : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, (@retraction_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)) = ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) top' top) g) /\ (forall x : B, (@IN B x (@topspace B top')) -> (f (g x)) = x))). +Axiom thm_section_map : forall {A B : Type'}, forall top' : Topology B, forall top : Topology A, forall f : A -> B, (@section_map A B (@pair (Topology A) (Topology B) top top') f) = (exists g : B -> A, @retraction_maps B A (@pair (Topology B) (Topology A) top' top) (@pair (B -> A) (A -> B) g f)). +Axiom thm_retraction_map : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@retraction_map A B (@pair (Topology A) (Topology B) top top') f) = (exists g : B -> A, @retraction_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)). +Axiom thm_RETRACTION_IMP_CONTINUOUS_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@retraction_map A B (@pair (Topology A) (Topology B) top top') f) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_SECTION_IMP_CONTINUOUS_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@section_map A B (@pair (Topology A) (Topology B) top top') f) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_RETRACTION_MAPS_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall f' : A -> B, forall g : B -> A, forall g' : B -> A, ((forall x : A, (@IN A x (@topspace A top)) -> (f x) = (f' x)) /\ ((forall x : B, (@IN B x (@topspace B top')) -> (g x) = (g' x)) /\ (@retraction_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)))) -> @retraction_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f' g'). +Axiom thm_SECTION_MAP_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, ((forall x : A, (@IN A x (@topspace A top)) -> (f x) = (g x)) /\ (@section_map A B (@pair (Topology A) (Topology B) top top') f)) -> @section_map A B (@pair (Topology A) (Topology B) top top') g. +Axiom thm_RETRACTION_MAP_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, ((forall x : A, (@IN A x (@topspace A top)) -> (f x) = (g x)) /\ (@retraction_map A B (@pair (Topology A) (Topology B) top top') f)) -> @retraction_map A B (@pair (Topology A) (Topology B) top top') g. +Axiom thm_HOMEOMORPHIC_IMP_RETRACTION_MAPS : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, (@homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)) -> @retraction_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g). +Axiom thm_SECTION_AND_RETRACTION_EQ_HOMEOMORPHIC_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@section_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@retraction_map A B (@pair (Topology A) (Topology B) top top') f)) = (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f). +Axiom thm_HOMEOMORPHIC_IMP_RETRACTION_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> @retraction_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_HOMEOMORPHIC_IMP_SECTION_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> @section_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_SECTION_IMP_EMBEDDING_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@section_map A B (@pair (Topology A) (Topology B) top top') f) -> @embedding_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_RETRACTION_IMP_QUOTIENT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@retraction_map A B (@pair (Topology A) (Topology B) top top') f) -> @quotient_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_RETRACTION_MAPS_COMPOSE : forall {A B C : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall top3 : Topology C, forall f : A -> B, forall g : B -> C, forall f' : B -> A, forall g' : C -> B, ((@retraction_maps A B (@pair (Topology A) (Topology B) top1 top2) (@pair (A -> B) (B -> A) f f')) /\ (@retraction_maps B C (@pair (Topology B) (Topology C) top2 top3) (@pair (B -> C) (C -> B) g g'))) -> @retraction_maps A C (@pair (Topology A) (Topology C) top1 top3) (@pair (A -> C) (C -> A) (@o A B C g f) (@o C B A f' g')). +Axiom thm_RETRACTION_MAP_COMPOSE : forall {A B C : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall top3 : Topology C, forall f : A -> B, forall g : B -> C, ((@retraction_map A B (@pair (Topology A) (Topology B) top1 top2) f) /\ (@retraction_map B C (@pair (Topology B) (Topology C) top2 top3) g)) -> @retraction_map A C (@pair (Topology A) (Topology C) top1 top3) (@o A B C g f). +Axiom thm_SECTION_MAP_COMPOSE : forall {A B C : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall top3 : Topology C, forall f : A -> B, forall g : B -> C, ((@section_map A B (@pair (Topology A) (Topology B) top1 top2) f) /\ (@section_map B C (@pair (Topology B) (Topology C) top2 top3) g)) -> @section_map A C (@pair (Topology A) (Topology C) top1 top3) (@o A B C g f). +Axiom thm_SURJECTIVE_SECTION_EQ_HOMEOMORPHIC_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@section_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top'))) = (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f). +Axiom thm_SURJECTIVE_RETRACTION_OR_SECTION_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@IMAGE A B f (@topspace A top)) = (@topspace B top')) -> ((@retraction_map A B (@pair (Topology A) (Topology B) top top') f) \/ (@section_map A B (@pair (Topology A) (Topology B) top top') f)) = (@retraction_map A B (@pair (Topology A) (Topology B) top top') f). +Axiom thm_RETRACTION_IMP_SURJECTIVE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@retraction_map A B (@pair (Topology A) (Topology B) top top') f) -> (@IMAGE A B f (@topspace A top)) = (@topspace B top'). +Axiom thm_SECTION_IMP_INJECTIVE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@section_map A B (@pair (Topology A) (Topology B) top top') f) -> forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y). +Axiom thm_RETRACTION_MAPS_TO_RETRACT_MAPS : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, forall s : B -> A, (@retraction_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) r s)) -> @retraction_maps A A (@pair (Topology A) (Topology A) top (@subtopology A top (@IMAGE B A s (@topspace B top')))) (@pair (A -> A) (A -> A) (@o A B A s r) (@I A)). +Axiom thm_EMBEDDING_EQ_SECTION_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@embedding_map A B (@pair (Topology A) (Topology B) top top') f) = (@section_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' (@IMAGE A B f (@topspace A top)))) f). +Axiom thm_RETRACTION_MAP_INTO_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall t : B -> Prop, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@SUBSET B (@IMAGE A B r (@topspace A top)) t)) -> @retraction_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' t)) r. +Axiom thm_RETRACTION_MAPS_SUBTOPOLOGIES : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, forall t : B -> Prop, forall r : A -> B, forall r' : B -> A, ((@retraction_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) r r')) /\ ((@SUBSET B (@IMAGE A B r s) t) /\ (@SUBSET A (@IMAGE B A r' t) s))) -> @retraction_maps A B (@pair (Topology A) (Topology B) (@subtopology A top s) (@subtopology B top' t)) (@pair (A -> B) (B -> A) r r'). +Axiom thm_RETRACTION_MAP_FST : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@retraction_map (prod A B) A (@pair (Topology (prod A B)) (Topology A) (@prod_topology A B top1 top2) top1) (@fst A B)) = (((@topspace B top2) = (@EMPTY B)) -> (@topspace A top1) = (@EMPTY A)). +Axiom thm_RETRACTION_MAP_SND : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@retraction_map (prod A B) B (@pair (Topology (prod A B)) (Topology B) (@prod_topology A B top1 top2) top2) (@snd A B)) = (((@topspace A top1) = (@EMPTY A)) -> (@topspace B top2) = (@EMPTY B)). +Axiom thm_RETRACTION_MAP_PRODUCT_PROJECTION : forall {A K : Type'}, forall k : K -> Prop, forall tops : K -> Topology A, forall i : K, (@IN K i k) -> (@retraction_map (K -> A) A (@pair (Topology (K -> A)) (Topology A) (@product_topology A K k tops) (tops i)) (fun x : K -> A => x i)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) -> (@topspace A (tops i)) = (@EMPTY A)). +Axiom thm_DISCRETE_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@discrete_space A top)) -> @discrete_space B top'. +Axiom thm_HOMEOMORPHIC_DISCRETE_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@discrete_space A top) = (@discrete_space B top'). +Axiom thm_HOMEOMORPHIC_DISCRETE_SPACES : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, ((@discrete_space A top) /\ (@discrete_space B top')) -> (@homeomorphic_space A B top top') = (@eq_c A B (@topspace A top) (@topspace B top')). +Axiom thm_retract_of_space : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@retract_of_space A s top) = ((@SUBSET A s (@topspace A top)) /\ (exists r : A -> A, (@continuous_map A A (@pair (Topology A) (Topology A) top (@subtopology A top s)) r) /\ (forall x : A, (@IN A x s) -> (r x) = x))). +Axiom thm_RETRACT_OF_SPACE_RETRACTION_MAPS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@retract_of_space A s top) = ((@SUBSET A s (@topspace A top)) /\ (exists r : A -> A, @retraction_maps A A (@pair (Topology A) (Topology A) top (@subtopology A top s)) (@pair (A -> A) (A -> A) r (@I A)))). +Axiom thm_RETRACT_OF_SPACE_SECTION_MAP : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@retract_of_space A s top) = ((@SUBSET A s (@topspace A top)) /\ (@section_map A A (@pair (Topology A) (Topology A) (@subtopology A top s) top) (fun x : A => x))). +Axiom thm_RETRACT_OF_SPACE_IMP_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@retract_of_space A s top) -> @SUBSET A s (@topspace A top). +Axiom thm_RETRACT_OF_SPACE_TOPSPACE : forall {A : Type'}, forall top : Topology A, @retract_of_space A (@topspace A top) top. +Axiom thm_RETRACT_OF_SPACE_EMPTY : forall {A : Type'}, forall top : Topology A, (@retract_of_space A (@EMPTY A) top) = ((@topspace A top) = (@EMPTY A)). +Axiom thm_RETRACT_OF_SPACE_IMP_NONEMPTY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@retract_of_space A s top) /\ (~ ((@topspace A top) = (@EMPTY A)))) -> ~ (s = (@EMPTY A)). +Axiom thm_RETRACT_OF_SPACE_SING : forall {A : Type'}, forall top : Topology A, forall a : A, (@retract_of_space A (@INSERT A a (@EMPTY A)) top) = (@IN A a (@topspace A top)). +Axiom thm_RETRACT_OF_SPACE_TRANS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@retract_of_space A s top) /\ (@retract_of_space A t (@subtopology A top s))) -> @retract_of_space A t top. +Axiom thm_RETRACT_OF_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall u : A -> Prop, ((@retract_of_space A s top) /\ (@SUBSET A s u)) -> @retract_of_space A s (@subtopology A top u). +Axiom thm_RETRACT_OF_SPACE_CLOPEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@open_in A top s) /\ ((@closed_in A top s) /\ ((s = (@EMPTY A)) -> (@topspace A top) = (@EMPTY A)))) -> @retract_of_space A s top. +Axiom thm_RETRACT_OF_SPACE_DISJOINT_UNION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@open_in A top s) /\ ((@open_in A top t) /\ ((@DISJOINT A s t) /\ (((@UNION A s t) = (@topspace A top)) /\ ((s = (@EMPTY A)) -> (@topspace A top) = (@EMPTY A)))))) -> @retract_of_space A s top. +Axiom thm_RETRACTION_MAPS_SECTION_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, forall s : B -> A, (@retraction_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) r s)) -> (@retract_of_space A (@IMAGE B A s (@topspace B top')) top) /\ (@homeomorphic_space A B (@subtopology A top (@IMAGE B A s (@topspace B top'))) top'). +Axiom thm_HEREDITARY_IMP_RETRACTIVE_PROPERTY : forall {A B : Type'}, forall P : (Topology A) -> Prop, forall Q : (Topology B) -> Prop, ((forall top : Topology A, forall s : A -> Prop, (P top) -> P (@subtopology A top s)) /\ (forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (P top) = (Q top'))) -> forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (P top)) -> Q top'. +Axiom thm_compact_in : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@compact_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (forall U : (A -> Prop) -> Prop, ((forall u : A -> Prop, (@IN (A -> Prop) u U) -> @open_in A top u) /\ (@SUBSET A s (@UNIONS A U))) -> exists V : (A -> Prop) -> Prop, (@FINITE (A -> Prop) V) /\ ((@SUBSET (A -> Prop) V U) /\ (@SUBSET A s (@UNIONS A V))))). +Axiom thm_compact_space : forall {A : Type'}, forall top : Topology A, (@compact_space A top) = (@compact_in A top (@topspace A top)). +Axiom thm_COMPACT_SPACE_ALT : forall {A : Type'}, forall top : Topology A, (@compact_space A top) = (forall U : (A -> Prop) -> Prop, ((forall u : A -> Prop, (@IN (A -> Prop) u U) -> @open_in A top u) /\ (@SUBSET A (@topspace A top) (@UNIONS A U))) -> exists V : (A -> Prop) -> Prop, (@FINITE (A -> Prop) V) /\ ((@SUBSET (A -> Prop) V U) /\ (@SUBSET A (@topspace A top) (@UNIONS A V)))). +Axiom thm_COMPACT_SPACE : forall {A : Type'}, forall top : Topology A, (@compact_space A top) = (forall U : (A -> Prop) -> Prop, ((forall u : A -> Prop, (@IN (A -> Prop) u U) -> @open_in A top u) /\ ((@UNIONS A U) = (@topspace A top))) -> exists V : (A -> Prop) -> Prop, (@FINITE (A -> Prop) V) /\ ((@SUBSET (A -> Prop) V U) /\ ((@UNIONS A V) = (@topspace A top)))). +Axiom thm_COMPACT_IN_ABSOLUTE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@compact_in A (@subtopology A top s) s) = (@compact_in A top s). +Axiom thm_COMPACT_IN_SUBSPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@compact_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (@compact_space A (@subtopology A top s))). +Axiom thm_COMPACT_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@compact_in A top s) -> @compact_space A (@subtopology A top s). +Axiom thm_COMPACT_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@compact_in A (@subtopology A top s) t) = ((@compact_in A top t) /\ (@SUBSET A t s)). +Axiom thm_COMPACT_IN_SUBSET_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@compact_in A top s) -> @SUBSET A s (@topspace A top). +Axiom thm_COMPACT_IN_CONTRACTIVE : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (((@topspace A top') = (@topspace A top)) /\ (forall u : A -> Prop, (@open_in A top u) -> @open_in A top' u)) -> forall s : A -> Prop, (@compact_in A top' s) -> @compact_in A top s. +Axiom thm_COMPACT_SPACE_CONTRACTIVE : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (((@topspace A top') = (@topspace A top)) /\ (forall u : A -> Prop, (@open_in A top u) -> @open_in A top' u)) -> (@compact_space A top') -> @compact_space A top. +Axiom thm_FINITE_IMP_COMPACT_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ (@FINITE A s)) -> @compact_in A top s. +Axiom thm_COMPACT_IN_EMPTY : forall {A : Type'}, forall top : Topology A, @compact_in A top (@EMPTY A). +Axiom thm_COMPACT_SPACE_TOPSPACE_EMPTY : forall {A : Type'}, forall top : Topology A, ((@topspace A top) = (@EMPTY A)) -> @compact_space A top. +Axiom thm_FINITE_IMP_COMPACT_IN_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@FINITE A s) -> (@compact_in A top s) = (@SUBSET A s (@topspace A top)). +Axiom thm_COMPACT_IN_SING : forall {A : Type'}, forall top : Topology A, forall a : A, (@compact_in A top (@INSERT A a (@EMPTY A))) = (@IN A a (@topspace A top)). +Axiom thm_CLOSED_COMPACT_IN : forall {A : Type'}, forall top : Topology A, forall k : A -> Prop, forall c : A -> Prop, ((@compact_in A top k) /\ ((@SUBSET A c k) /\ (@closed_in A top c))) -> @compact_in A top c. +Axiom thm_CLOSED_IN_COMPACT_SPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@compact_space A top) /\ (@closed_in A top s)) -> @compact_in A top s. +Axiom thm_COMPACT_INTER_CLOSED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@compact_in A top s) /\ (@closed_in A top t)) -> @compact_in A top (@INTER A s t). +Axiom thm_CLOSED_INTER_COMPACT_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ (@compact_in A top t)) -> @compact_in A top (@INTER A s t). +Axiom thm_COMPACT_IN_UNION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@compact_in A top s) /\ (@compact_in A top t)) -> @compact_in A top (@UNION A s t). +Axiom thm_COMPACT_IN_UNIONS : forall {A : Type'}, forall top : Topology A, forall f : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) f) /\ (forall s : A -> Prop, (@IN (A -> Prop) s f) -> @compact_in A top s)) -> @compact_in A top (@UNIONS A f). +Axiom thm_COMPACT_IN_SUBTOPOLOGY_IMP_COMPACT : forall {A : Type'}, forall top : Topology A, forall k : A -> Prop, forall s : A -> Prop, (@compact_in A (@subtopology A top s) k) -> @compact_in A top k. +Axiom thm_COMPACT_IMP_COMPACT_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall k : A -> Prop, forall s : A -> Prop, ((@compact_in A top k) /\ (@SUBSET A k s)) -> @compact_in A (@subtopology A top s) k. +Axiom thm_CLOSED_IN_COMPACT_SUBTOPOLOGY : forall {_385775 : Type'}, forall top : Topology _385775, forall k : _385775 -> Prop, forall s : _385775 -> Prop, ((@compact_in _385775 top k) /\ (@closed_in _385775 (@subtopology _385775 top k) s)) -> @compact_in _385775 top s. +Axiom thm_COMPACT_SPACE_FIP : forall {A : Type'}, forall top : Topology A, (@compact_space A top) = (forall f : (A -> Prop) -> Prop, ((forall c : A -> Prop, (@IN (A -> Prop) c f) -> @closed_in A top c) /\ (forall f' : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) f') /\ (@SUBSET (A -> Prop) f' f)) -> ~ ((@INTERS A f') = (@EMPTY A)))) -> ~ ((@INTERS A f) = (@EMPTY A))). +Axiom thm_COMPACT_IN_FIP : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@compact_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (forall f : (A -> Prop) -> Prop, ((forall c : A -> Prop, (@IN (A -> Prop) c f) -> @closed_in A top c) /\ (forall f' : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) f') /\ (@SUBSET (A -> Prop) f' f)) -> ~ ((@INTER A s (@INTERS A f')) = (@EMPTY A)))) -> ~ ((@INTER A s (@INTERS A f)) = (@EMPTY A)))). +Axiom thm_COMPACT_SPACE_IMP_NEST : forall {A : Type'}, forall top : Topology A, forall c : N -> A -> Prop, ((@compact_space A top) /\ ((forall n : N, @closed_in A top (c n)) /\ ((forall n : N, ~ ((c n) = (@EMPTY A))) /\ (forall m : N, forall n : N, (N.le m n) -> @SUBSET A (c n) (c m))))) -> ~ ((@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1482 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_1482 (@IN N n (@UNIV N)) (c n)))) = (@EMPTY A)). +Axiom thm_COMPACT_IN_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, forall s : A -> Prop, (@compact_in A (@discrete_topology A u) s) = ((@SUBSET A s u) /\ (@FINITE A s)). +Axiom thm_COMPACT_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, (@compact_space A (@discrete_topology A u)) = (@FINITE A u). +Axiom thm_COMPACT_SPACE_IMP_BOLZANO_WEIERSTRASS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@compact_space A top) /\ ((@INFINITE A s) /\ (@SUBSET A s (@topspace A top)))) -> ~ ((@derived_set_of A top s) = (@EMPTY A)). +Axiom thm_COMPACT_IN_IMP_BOLZANO_WEIERSTRASS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@compact_in A top s) /\ ((@INFINITE A t) /\ (@SUBSET A t s))) -> ~ ((@INTER A s (@derived_set_of A top t)) = (@EMPTY A)). +Axiom thm_COMPACT_CLOSURE_OF_IMP_BOLZANO_WEIERSTRASS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@compact_in A top (@closure_of A top s)) /\ ((@INFINITE A t) /\ ((@SUBSET A t s) /\ (@SUBSET A t (@topspace A top))))) -> ~ ((@derived_set_of A top t) = (@EMPTY A)). +Axiom thm_DISCRETE_COMPACT_IN_EQ_FINITE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@INTER A s (@derived_set_of A top s)) = (@EMPTY A)) -> (@compact_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (@FINITE A s)). +Axiom thm_DISCRETE_COMPACT_SPACE_EQ_FINITE : forall {A : Type'}, forall top : Topology A, ((@derived_set_of A top (@topspace A top)) = (@EMPTY A)) -> (@compact_space A top) = (@FINITE A (@topspace A top)). +Axiom thm_IMAGE_COMPACT_IN : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : A -> Prop, ((@compact_in A top s) /\ (@continuous_map A B (@pair (Topology A) (Topology B) top top') f)) -> @compact_in B top' (@IMAGE A B f s). +Axiom thm_HOMEOMORPHIC_COMPACT_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@compact_space A top) = (@compact_space B top'). +Axiom thm_HOMEOMORPHIC_MAP_COMPACTNESS : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET A u (@topspace A top))) -> (@compact_in B top' (@IMAGE A B f u)) = (@compact_in A top u). +Axiom thm_HOMEOMORPHIC_MAP_COMPACTNESS_EQ : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (@compact_in A top u) = ((@SUBSET A u (@topspace A top)) /\ (@compact_in B top' (@IMAGE A B f u))). +Axiom thm_COMPACT_SPACE_QUOTIENT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall q : A -> B, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') q) /\ (@compact_space A top)) -> @compact_space B top'. +Axiom thm_COMPACT_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@compact_space A top)) -> @compact_space B top'. +Axiom thm_ALEXANDER_SUBBASE_THEOREM : forall {A : Type'}, forall top : Topology A, forall B : (A -> Prop) -> Prop, (((@topology A (@UNION_OF A (@ARBITRARY A) (@relative_to A (@INTERSECTION_OF A (@FINITE (A -> Prop)) B) (@UNIONS A B)))) = top) /\ (forall C : (A -> Prop) -> Prop, ((@SUBSET (A -> Prop) C B) /\ ((@UNIONS A C) = (@topspace A top))) -> exists C' : (A -> Prop) -> Prop, (@FINITE (A -> Prop) C') /\ ((@SUBSET (A -> Prop) C' C) /\ ((@UNIONS A C') = (@topspace A top))))) -> @compact_space A top. +Axiom thm_ALEXANDER_SUBBASE_THEOREM_ALT : forall {A : Type'}, forall top : Topology A, forall B : (A -> Prop) -> Prop, forall u : A -> Prop, ((@SUBSET A u (@UNIONS A B)) /\ (((@topology A (@UNION_OF A (@ARBITRARY A) (@relative_to A (@INTERSECTION_OF A (@FINITE (A -> Prop)) B) u))) = top) /\ (forall C : (A -> Prop) -> Prop, ((@SUBSET (A -> Prop) C B) /\ (@SUBSET A u (@UNIONS A C))) -> exists C' : (A -> Prop) -> Prop, (@FINITE (A -> Prop) C') /\ ((@SUBSET (A -> Prop) C' C) /\ (@SUBSET A u (@UNIONS A C')))))) -> @compact_space A top. +Axiom thm_COMPACT_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@compact_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@compact_space A top1) /\ (@compact_space B top2))). +Axiom thm_COMPACT_IN_CROSS : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall s : A -> Prop, forall t : B -> Prop, (@compact_in (prod A B) (@prod_topology A B top1 top2) (@CROSS A B s t)) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@compact_in A top1 s) /\ (@compact_in B top2 t)))). +Axiom thm_COMPACT_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall t : K -> Prop, (@compact_space (K -> A) (@product_topology A K t tops)) = (((@topspace (K -> A) (@product_topology A K t tops)) = (@EMPTY (K -> A))) \/ (forall k : K, (@IN K k t) -> @compact_space A (tops k))). +Axiom thm_COMPACT_IN_CARTESIAN_PRODUCT : forall {A K : Type'}, forall tops : K -> Topology A, forall s : K -> A -> Prop, forall k : K -> Prop, (@compact_in (K -> A) (@product_topology A K k tops) (@cartesian_product A K k s)) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @compact_in A (tops i) (s i))). +Axiom thm_TUBE_LEMMA_LEFT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall k : A -> Prop, forall y : B, forall w : (prod A B) -> Prop, ((@open_in (prod A B) (@prod_topology A B top top') w) /\ ((@compact_in A top k) /\ ((@IN B y (@topspace B top')) /\ (@SUBSET (prod A B) (@CROSS A B k (@INSERT B y (@EMPTY B))) w)))) -> exists u : A -> Prop, exists v : B -> Prop, (@open_in A top u) /\ ((@open_in B top' v) /\ ((@SUBSET A k u) /\ ((@IN B y v) /\ (@SUBSET (prod A B) (@CROSS A B u v) w)))). +Axiom thm_TUBE_LEMMA_RIGHT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall x : A, forall k : B -> Prop, forall w : (prod A B) -> Prop, ((@open_in (prod A B) (@prod_topology A B top top') w) /\ ((@compact_in B top' k) /\ ((@IN A x (@topspace A top)) /\ (@SUBSET (prod A B) (@CROSS A B (@INSERT A x (@EMPTY A)) k) w)))) -> exists u : A -> Prop, exists v : B -> Prop, (@open_in A top u) /\ ((@open_in B top' v) /\ ((@IN A x u) /\ ((@SUBSET B k v) /\ (@SUBSET (prod A B) (@CROSS A B u v) w)))). +Axiom thm_CLOSED_MAP_FST : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@compact_space B top') -> @closed_map (prod A B) A (@pair (Topology (prod A B)) (Topology A) (@prod_topology A B top top') top) (@fst A B). +Axiom thm_CLOSED_MAP_SND : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@compact_space A top) -> @closed_map (prod A B) B (@pair (Topology (prod A B)) (Topology B) (@prod_topology A B top top') top') (@snd A B). +Axiom thm_WALLACE_THEOREM_PROD_TOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall w : (prod A B) -> Prop, forall k : A -> Prop, forall l : B -> Prop, ((@compact_in A top k) /\ ((@compact_in B top' l) /\ ((@open_in (prod A B) (@prod_topology A B top top') w) /\ (@SUBSET (prod A B) (@CROSS A B k l) w)))) -> exists u : A -> Prop, exists v : B -> Prop, (@open_in A top u) /\ ((@open_in B top' v) /\ ((@SUBSET A k u) /\ ((@SUBSET B l v) /\ (@SUBSET (prod A B) (@CROSS A B u v) w)))). +Axiom thm_LOCALLY_FINITE_COVER_OF_COMPACT_SPACE : forall {A : Type'}, forall top : Topology A, forall u : (A -> Prop) -> Prop, ((@compact_space A top) /\ ((@SUBSET A (@topspace A top) (@UNIONS A u)) /\ (@locally_finite_in A top u))) -> @FINITE (A -> Prop) u. +Axiom thm_separated_in : forall {_389322 : Type'}, forall t : _389322 -> Prop, forall top : Topology _389322, forall s : _389322 -> Prop, (@separated_in _389322 top s t) = ((@SUBSET _389322 s (@topspace _389322 top)) /\ ((@SUBSET _389322 t (@topspace _389322 top)) /\ (((@INTER _389322 s (@closure_of _389322 top t)) = (@EMPTY _389322)) /\ ((@INTER _389322 t (@closure_of _389322 top s)) = (@EMPTY _389322))))). +Axiom thm_SEPARATED_IN_EMPTY : forall {A : Type'}, (forall top : Topology A, forall s : A -> Prop, (@separated_in A top s (@EMPTY A)) = (@SUBSET A s (@topspace A top))) /\ (forall top : Topology A, forall s : A -> Prop, (@separated_in A top (@EMPTY A) s) = (@SUBSET A s (@topspace A top))). +Axiom thm_SEPARATED_IN_REFL : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@separated_in A top s s) = (s = (@EMPTY A)). +Axiom thm_SEPARATED_IN_SYM : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_in A top s t) = (@separated_in A top t s). +Axiom thm_SEPARATED_IN_IMP_DISJOINT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_in A top s t) -> @DISJOINT A s t. +Axiom thm_SEPARATED_IN_MONO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall s' : A -> Prop, forall t' : A -> Prop, ((@separated_in A top s t) /\ ((@SUBSET A s' s) /\ (@SUBSET A t' t))) -> @separated_in A top s' t'. +Axiom thm_SEPARATED_IN_OPEN_SETS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@open_in A top s) /\ (@open_in A top t)) -> (@separated_in A top s t) = (@DISJOINT A s t). +Axiom thm_SEPARATED_IN_CLOSED_SETS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ (@closed_in A top t)) -> (@separated_in A top s t) = (@DISJOINT A s t). +Axiom thm_SEPARATED_IN_COMPLEMENT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@separated_in A top s (@DIFF A (@topspace A top) s)) = ((@closed_in A top s) /\ (@open_in A top s)). +Axiom thm_SEPARATED_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@separated_in A (@subtopology A top u) s t) = ((@SUBSET A s u) /\ ((@SUBSET A t u) /\ (@separated_in A top s t))). +Axiom thm_SEPARATED_IN_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@separated_in A (@discrete_topology A u) s t) = ((@SUBSET A s u) /\ ((@SUBSET A t u) /\ (@DISJOINT A s t))). +Axiom thm_SEPARATED_EQ_DISTINGUISHABLE : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@separated_in A top (@INSERT A x (@EMPTY A)) (@INSERT A y (@EMPTY A))) = ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((exists u : A -> Prop, (@open_in A top u) /\ ((@IN A x u) /\ (~ (@IN A y u)))) /\ (exists v : A -> Prop, (@open_in A top v) /\ ((@IN A y v) /\ (~ (@IN A x v))))))). +Axiom thm_SEPARATED_IN_UNION : forall {A : Type'}, (forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@separated_in A top s (@UNION A t u)) = ((@separated_in A top s t) /\ (@separated_in A top s u))) /\ (forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@separated_in A top (@UNION A s t) u) = ((@separated_in A top s u) /\ (@separated_in A top t u))). +Axiom thm_SEPARATED_IN_UNIONS : forall {A : Type'}, (forall top : Topology A, forall s : A -> Prop, forall u : (A -> Prop) -> Prop, (@FINITE (A -> Prop) u) -> (@separated_in A top s (@UNIONS A u)) = ((@SUBSET A s (@topspace A top)) /\ (forall t : A -> Prop, (@IN (A -> Prop) t u) -> @separated_in A top s t))) /\ (forall top : Topology A, forall s : A -> Prop, forall u : (A -> Prop) -> Prop, (@FINITE (A -> Prop) u) -> (@separated_in A top (@UNIONS A u) s) = ((forall t : A -> Prop, (@IN (A -> Prop) t u) -> @separated_in A top s t) /\ (@SUBSET A s (@topspace A top)))). +Axiom thm_SEPARATED_IN_DIFFS : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (((@open_in A top s) /\ (@open_in A top t)) \/ ((@closed_in A top s) /\ (@closed_in A top t))) -> @separated_in A top (@DIFF A s t) (@DIFF A t s). +Axiom thm_SEPARATION_CLOSED_IN_UNION_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_in A top s t) = ((@SUBSET A s (@topspace A top)) /\ ((@SUBSET A t (@topspace A top)) /\ ((@DISJOINT A s t) /\ ((@closed_in A (@subtopology A top (@UNION A s t)) s) /\ (@closed_in A (@subtopology A top (@UNION A s t)) t))))). +Axiom thm_SEPARATION_OPEN_IN_UNION_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_in A top s t) = ((@SUBSET A s (@topspace A top)) /\ ((@SUBSET A t (@topspace A top)) /\ ((@DISJOINT A s t) /\ ((@open_in A (@subtopology A top (@UNION A s t)) s) /\ (@open_in A (@subtopology A top (@UNION A s t)) t))))). +Axiom thm_SEPARATED_IN_FULL : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@UNION A s t) = (@topspace A top)) -> (@separated_in A top s t) = ((@DISJOINT A s t) /\ ((@closed_in A top s) /\ ((@open_in A top s) /\ ((@closed_in A top t) /\ (@open_in A top t))))). +Axiom thm_HOMEOMORPHIC_MAP_SEPARATION : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, forall t : A -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET A s (@topspace A top)) /\ (@SUBSET A t (@topspace A top)))) -> (@separated_in B top' (@IMAGE A B f s) (@IMAGE A B f t)) = (@separated_in A top s t). +Axiom thm_t1_space : forall {_390503 : Type'}, forall top : Topology _390503, (@t1_space _390503 top) = (forall x : _390503, forall y : _390503, ((@IN _390503 x (@topspace _390503 top)) /\ ((@IN _390503 y (@topspace _390503 top)) /\ (~ (x = y)))) -> exists u : _390503 -> Prop, (@open_in _390503 top u) /\ ((@IN _390503 x u) /\ (~ (@IN _390503 y u)))). +Axiom thm_T1_SPACE_EXPANSIVE : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (((@topspace A top') = (@topspace A top)) /\ (forall u : A -> Prop, (@open_in A top u) -> @open_in A top' u)) -> (@t1_space A top) -> @t1_space A top'. +Axiom thm_T1_SPACE_ALT : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (~ (x = y)))) -> exists u : A -> Prop, (@closed_in A top u) /\ ((@IN A x u) /\ (~ (@IN A y u)))). +Axiom thm_T1_SPACE_SEPARATED_IN : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (~ (x = y)))) -> @separated_in A top (@INSERT A x (@EMPTY A)) (@INSERT A y (@EMPTY A))). +Axiom thm_T1_SPACE_DERIVED_SET_OF_SING : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = (forall x : A, (@IN A x (@topspace A top)) -> (@derived_set_of A top (@INSERT A x (@EMPTY A))) = (@EMPTY A)). +Axiom thm_T1_SPACE_DERIVED_SET_OF_FINITE : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = (forall s : A -> Prop, (@FINITE A s) -> (@derived_set_of A top s) = (@EMPTY A)). +Axiom thm_T1_SPACE_CLOSED_IN_SING : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = (forall x : A, (@IN A x (@topspace A top)) -> @closed_in A top (@INSERT A x (@EMPTY A))). +Axiom thm_CLOSED_IN_T1_SING : forall {A : Type'}, forall top : Topology A, forall a : A, ((@t1_space A top) /\ (@IN A a (@topspace A top))) -> @closed_in A top (@INSERT A a (@EMPTY A)). +Axiom thm_T1_SPACE_CLOSED_IN_FINITE : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = (forall s : A -> Prop, ((@FINITE A s) /\ (@SUBSET A s (@topspace A top))) -> @closed_in A top s). +Axiom thm_CLOSURE_OF_SING : forall {A : Type'}, forall top : Topology A, forall a : A, (@t1_space A top) -> (@closure_of A top (@INSERT A a (@EMPTY A))) = (@COND (A -> Prop) (@IN A a (@topspace A top)) (@INSERT A a (@EMPTY A)) (@EMPTY A)). +Axiom thm_SEPARATED_IN_SING : forall {A : Type'}, (forall top : Topology A, forall s : A -> Prop, forall a : A, (@t1_space A top) -> (@separated_in A top (@INSERT A a (@EMPTY A)) s) = ((@IN A a (@topspace A top)) /\ ((@SUBSET A s (@topspace A top)) /\ (~ (@IN A a (@closure_of A top s)))))) /\ (forall top : Topology A, forall s : A -> Prop, forall a : A, (@t1_space A top) -> (@separated_in A top s (@INSERT A a (@EMPTY A))) = ((@IN A a (@topspace A top)) /\ ((@SUBSET A s (@topspace A top)) /\ (~ (@IN A a (@closure_of A top s)))))). +Axiom thm_T1_SPACE_OPEN_IN_DELETE : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = (forall u : A -> Prop, forall x : A, ((@open_in A top u) /\ (@IN A x u)) -> @open_in A top (@DELETE A u x)). +Axiom thm_T1_SPACE_OPEN_IN_DELETE_ALT : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = (forall u : A -> Prop, forall x : A, (@open_in A top u) -> @open_in A top (@DELETE A u x)). +Axiom thm_T1_SPACE_INTERS_OPEN_SUPERSETS : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = (forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1508 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1508 ((@open_in A top u) /\ (@SUBSET A s u)) u))) = s). +Axiom thm_T1_SPACE_SING_INTERS_OPEN : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = (forall x : A, (@IN A x (@topspace A top)) -> (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1507 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1507 ((@open_in A top u) /\ (@IN A x u)) u))) = (@INSERT A x (@EMPTY A))). +Axiom thm_T1_SPACE_DERIVED_SET_OF_INFINITE_OPEN_IN : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = (forall s : A -> Prop, (@derived_set_of A top s) = (@GSPEC A (fun GEN_PVAR_1509 : A => exists x : A, @SETSPEC A GEN_PVAR_1509 ((@IN A x (@topspace A top)) /\ (forall u : A -> Prop, ((@IN A x u) /\ (@open_in A top u)) -> @INFINITE A (@INTER A s u))) x))). +Axiom thm_FINITE_T1_SPACE_IMP_DISCRETE_TOPOLOGY : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, (((@topspace A top) = u) /\ ((@FINITE A u) /\ (@t1_space A top))) -> top = (@discrete_topology A u). +Axiom thm_T1_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, (@t1_space A top) -> @t1_space A (@subtopology A top u). +Axiom thm_CLOSED_IN_DERIVED_SET_OF_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@t1_space A top) -> @closed_in A top (@derived_set_of A top s). +Axiom thm_DERIVED_SET_OF_DERIVED_SET_SUBSET_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@t1_space A top) -> @SUBSET A (@derived_set_of A top (@derived_set_of A top s)) (@derived_set_of A top s). +Axiom thm_SUBTOPOLOGY_EQ_DISCRETE_TOPOLOGY_GEN_FINITE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@t1_space A top) /\ (@FINITE A s)) -> (@subtopology A top s) = (@discrete_topology A (@INTER A (@topspace A top) s)). +Axiom thm_SUBTOPOLOGY_EQ_DISCRETE_TOPOLOGY_FINITE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@t1_space A top) /\ ((@SUBSET A s (@topspace A top)) /\ (@FINITE A s))) -> (@subtopology A top s) = (@discrete_topology A s). +Axiom thm_T1_SPACE_CLOSED_MAP_IMAGE : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (@t1_space A top))) -> @t1_space B top'. +Axiom thm_HOMEOMORPHIC_T1_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@t1_space A top) = (@t1_space B top'). +Axiom thm_T1_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@t1_space A top)) -> @t1_space B top'. +Axiom thm_T1_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@t1_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@t1_space A top1) /\ (@t1_space B top2))). +Axiom thm_T1_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, (@t1_space (K -> A) (@product_topology A K k tops)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @t1_space A (tops i))). +Axiom thm_CARD_LE_TOPSPACE_CLOSED_SETS : forall {A : Type'}, forall top : Topology A, (@t1_space A top) -> @le_c A (A -> Prop) (@topspace A top) (@GSPEC (A -> Prop) (fun GEN_PVAR_1510 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1510 (@closed_in A top s) s)). +Axiom thm_CARD_LE_TOPSPACE_OPEN_SETS : forall {A : Type'}, forall top : Topology A, (@t1_space A top) -> @le_c A (A -> Prop) (@topspace A top) (@GSPEC (A -> Prop) (fun GEN_PVAR_1511 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1511 (@open_in A top s) s)). +Axiom thm_INFINITE_PERFECT_SET_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@t1_space A top) /\ ((@SUBSET A s (@derived_set_of A top s)) /\ (~ (s = (@EMPTY A))))) -> @INFINITE A s. +Axiom thm_hausdorff_space : forall {A : Type'}, forall top : Topology A, (@hausdorff_space A top) = (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (~ (x = y)))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@IN A x u) /\ ((@IN A y v) /\ (@DISJOINT A u v))))). +Axiom thm_HAUSDORFF_SPACE_EXPANSIVE : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (((@topspace A top') = (@topspace A top)) /\ (forall u : A -> Prop, (@open_in A top u) -> @open_in A top' u)) -> (@hausdorff_space A top) -> @hausdorff_space A top'. +Axiom thm_HAUSDORFF_SPACE_TOPSPACE_EMPTY : forall {A : Type'}, forall top : Topology A, ((@topspace A top) = (@EMPTY A)) -> @hausdorff_space A top. +Axiom thm_HAUSDORFF_IMP_T1_SPACE : forall {A : Type'}, forall top : Topology A, (@hausdorff_space A top) -> @t1_space A top. +Axiom thm_CLOSED_IN_DERIVED_SET_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@hausdorff_space A top) -> @closed_in A top (@derived_set_of A top s). +Axiom thm_T1_OR_HAUSDORFF_SPACE : forall {A : Type'}, forall top : Topology A, ((@t1_space A top) \/ (@hausdorff_space A top)) = (@t1_space A top). +Axiom thm_HAUSDORFF_SPACE_SING_INTERS_OPENS : forall {A : Type'}, forall top : Topology A, forall a : A, ((@hausdorff_space A top) /\ (@IN A a (@topspace A top))) -> (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1512 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1512 ((@open_in A top u) /\ (@IN A a u)) u))) = (@INSERT A a (@EMPTY A)). +Axiom thm_HAUSDORFF_SPACE_SING_INTERS_CLOSED : forall {A : Type'}, forall top : Topology A, (@hausdorff_space A top) = (forall x : A, (@IN A x (@topspace A top)) -> (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1513 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1513 ((@closed_in A top u) /\ (@IN A x (@interior_of A top u))) u))) = (@INSERT A x (@EMPTY A))). +Axiom thm_HAUSDORFF_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@hausdorff_space A top) -> @hausdorff_space A (@subtopology A top s). +Axiom thm_HAUSDORFF_SPACE_COMPACT_SEPARATION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@hausdorff_space A top) /\ ((@compact_in A top s) /\ ((@compact_in A top t) /\ (@DISJOINT A s t)))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ (@DISJOINT A u v)))). +Axiom thm_HAUSDORFF_SPACE_COMPACT_SETS : forall {A : Type'}, forall top : Topology A, (@hausdorff_space A top) = (forall s : A -> Prop, forall t : A -> Prop, ((@compact_in A top s) /\ ((@compact_in A top t) /\ (@DISJOINT A s t))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ (@DISJOINT A u v))))). +Axiom thm_COMPACT_IN_IMP_CLOSED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hausdorff_space A top) /\ (@compact_in A top s)) -> @closed_in A top s. +Axiom thm_CLOSED_IN_HAUSDORFF_SING : forall {A : Type'}, forall top : Topology A, forall x : A, ((@hausdorff_space A top) /\ (@IN A x (@topspace A top))) -> @closed_in A top (@INSERT A x (@EMPTY A)). +Axiom thm_CLOSED_IN_HAUSDORFF_SING_EQ : forall {A : Type'}, forall top : Topology A, forall x : A, (@hausdorff_space A top) -> (@closed_in A top (@INSERT A x (@EMPTY A))) = (@IN A x (@topspace A top)). +Axiom thm_HAUSDORFF_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @hausdorff_space A (@discrete_topology A u). +Axiom thm_COMPACT_IN_INTER : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@hausdorff_space A top) /\ ((@compact_in A top s) /\ (@compact_in A top t))) -> @compact_in A top (@INTER A s t). +Axiom thm_FINITE_TOPSPACE_IMP_DISCRETE_TOPOLOGY : forall {A : Type'} (u : A -> Prop), forall top : Topology A, (((@topspace A top) = u) /\ ((@FINITE A u) /\ (@hausdorff_space A top))) -> top = (@discrete_topology A u). +Axiom thm_DERIVED_SET_OF_FINITE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hausdorff_space A top) /\ (@FINITE A s)) -> (@derived_set_of A top s) = (@EMPTY A). +Axiom thm_DERIVED_SET_OF_SING : forall {A : Type'}, forall top : Topology A, forall x : A, (@hausdorff_space A top) -> (@derived_set_of A top (@INSERT A x (@EMPTY A))) = (@EMPTY A). +Axiom thm_CLOSED_IN_HAUSDORFF_FINITE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hausdorff_space A top) /\ ((@SUBSET A s (@topspace A top)) /\ (@FINITE A s))) -> @closed_in A top s. +Axiom thm_OPEN_IN_HAUSDORFF_DELETE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall x : A, ((@hausdorff_space A top) /\ (@open_in A top s)) -> @open_in A top (@DELETE A s x). +Axiom thm_CLOSED_IN_HAUSDORFF_FINITE_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hausdorff_space A top) /\ (@FINITE A s)) -> (@closed_in A top s) = (@SUBSET A s (@topspace A top)). +Axiom thm_DERIVED_SET_OF_INFINITE_OPEN_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@hausdorff_space A top) -> (@derived_set_of A top s) = (@GSPEC A (fun GEN_PVAR_1514 : A => exists x : A, @SETSPEC A GEN_PVAR_1514 ((@IN A x (@topspace A top)) /\ (forall u : A -> Prop, ((@IN A x u) /\ (@open_in A top u)) -> @INFINITE A (@INTER A s u))) x)). +Axiom thm_HAUSDORFF_SPACE_DISCRETE_COMPACT_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@hausdorff_space A top) -> (((@INTER A s (@derived_set_of A top s)) = (@EMPTY A)) /\ (@compact_in A top s)) = ((@SUBSET A s (@topspace A top)) /\ (@FINITE A s)). +Axiom thm_HAUSDORFF_SPACE_FINITE_TOPSPACE : forall {A : Type'}, forall top : Topology A, (@hausdorff_space A top) -> (((@derived_set_of A top (@topspace A top)) = (@EMPTY A)) /\ (@compact_space A top)) = (@FINITE A (@topspace A top)). +Axiom thm_DERIVED_SET_OF_DERIVED_SET_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@hausdorff_space A top) -> @SUBSET A (@derived_set_of A top (@derived_set_of A top s)) (@derived_set_of A top s). +Axiom thm_HAUSDORFF_SPACE_INJECTIVE_PREIMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((f x) = (f y)))) -> x = y) /\ (@hausdorff_space B top'))) -> @hausdorff_space A top. +Axiom thm_HOMEOMORPHIC_HAUSDORFF_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@hausdorff_space A top) = (@hausdorff_space B top'). +Axiom thm_HAUSDORFF_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@hausdorff_space A top)) -> @hausdorff_space B top'. +Axiom thm_COMPACT_HAUSDORFF_SPACE_OPTIMAL : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (((@topspace A top') = (@topspace A top)) /\ ((forall u : A -> Prop, (@open_in A top u) -> @open_in A top' u) /\ ((@hausdorff_space A top) /\ (@compact_space A top')))) -> top' = top. +Axiom thm_CONTINUOUS_IMP_CLOSED_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@hausdorff_space B top') /\ (@continuous_map A B (@pair (Topology A) (Topology B) top top') f))) -> @closed_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_IMP_QUOTIENT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@hausdorff_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top'))))) -> @quotient_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_IMP_HOMEOMORPHIC_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@hausdorff_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y)))))) -> @homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_IMP_EMBEDDING_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@hausdorff_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y))))) -> @embedding_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_INVERSE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, forall s : B -> Prop, ((@compact_space A top) /\ ((@hausdorff_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((forall x : A, (@IN A x (@topspace A top)) -> (g (f x)) = x) /\ (@SUBSET B s (@IMAGE A B f (@topspace A top))))))) -> @continuous_map B A (@pair (Topology B) (Topology A) (@subtopology B top' s) top) g. +Axiom thm_HAUSDORFF_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@hausdorff_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@hausdorff_space A top1) /\ (@hausdorff_space B top2))). +Axiom thm_HAUSDORFF_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, (@hausdorff_space (K -> A) (@product_topology A K k tops)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @hausdorff_space A (tops i))). +Axiom thm_HAUSDORFF_SPACE_CLOSED_NEIGHBOURHOOD : forall {A : Type'}, forall top : Topology A, (@hausdorff_space A top) = (forall x : A, (@IN A x (@topspace A top)) -> exists u : A -> Prop, exists c : A -> Prop, (@open_in A top u) /\ ((@closed_in A top c) /\ ((@hausdorff_space A (@subtopology A top c)) /\ ((@IN A x u) /\ (@SUBSET A u c))))). +Axiom thm_INFINITE_PERFECT_SET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hausdorff_space A top) /\ ((@SUBSET A s (@derived_set_of A top s)) /\ (~ (s = (@EMPTY A))))) -> @INFINITE A s. +Axiom thm_HAUSDORFF_SPACE_CLOSED_IN_DIAGONAL : forall {A : Type'}, forall top : Topology A, (@hausdorff_space A top) = (@closed_in (prod A A) (@prod_topology A A top top) (@GSPEC (prod A A) (fun GEN_PVAR_1519 : prod A A => exists x : A, @SETSPEC (prod A A) GEN_PVAR_1519 (@IN A x (@topspace A top)) (@pair A A x x)))). +Axiom thm_CLOSED_MAP_DIAG_EQ : forall {A : Type'}, forall top : Topology A, (@closed_map A (prod A A) (@pair (Topology A) (Topology (prod A A)) top (@prod_topology A A top top)) (fun x : A => @pair A A x x)) = (@hausdorff_space A top). +Axiom thm_CLOSED_IN_CONTINUOUS_MAPS_EQ : forall {A B : Type'}, forall f : A -> B, forall g : A -> B, forall top : Topology A, forall top' : Topology B, ((@hausdorff_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@continuous_map A B (@pair (Topology A) (Topology B) top top') g))) -> @closed_in A top (@GSPEC A (fun GEN_PVAR_1523 : A => exists x : A, @SETSPEC A GEN_PVAR_1523 ((@IN A x (@topspace A top)) /\ ((f x) = (g x))) x)). +Axiom thm_FORALL_IN_CLOSURE_OF_EQ : forall {A B : Type'} (s : A -> Prop), forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, ((@hausdorff_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') g) /\ (forall x : A, (@IN A x s) -> (f x) = (g x))))) -> forall x : A, (@IN A x (@closure_of A top s)) -> (f x) = (g x). +Axiom thm_RETRACT_OF_SPACE_IMP_CLOSED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hausdorff_space A top) /\ (@retract_of_space A s top)) -> @closed_in A top s. +Axiom thm_WEAKLY_HEREDITARY_IMP_RETRACTIVE_PROPERTY : forall {A B : Type'}, forall P : (Topology A) -> Prop, forall Q : (Topology B) -> Prop, ((forall top : Topology A, (P top) -> @hausdorff_space A top) /\ ((forall top : Topology A, forall s : A -> Prop, ((P top) /\ (@closed_in A top s)) -> P (@subtopology A top s)) /\ (forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (P top) = (Q top')))) -> forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (P top)) -> Q top'. +Axiom thm_HOMEOMORPHIC_MAPS_GRAPH : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_maps A (prod A B) (@pair (Topology A) (Topology (prod A B)) top (@subtopology (prod A B) (@prod_topology A B top top') (@IMAGE A (prod A B) (fun x : A => @pair A B x (f x)) (@topspace A top)))) (@pair (A -> prod A B) ((prod A B) -> A) (fun x : A => @pair A B x (f x)) (@fst A B))) = (@continuous_map A B (@pair (Topology A) (Topology B) top top') f). +Axiom thm_EMBEDDING_MAP_GRAPH : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@embedding_map A (prod A B) (@pair (Topology A) (Topology (prod A B)) top (@prod_topology A B top top')) (fun x : A => @pair A B x (f x))) = (@continuous_map A B (@pair (Topology A) (Topology B) top top') f). +Axiom thm_CONTINUOUS_MAP_IMP_CLOSED_GRAPH : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@hausdorff_space B top')) -> @closed_in (prod A B) (@prod_topology A B top top') (@GSPEC (prod A B) (fun GEN_PVAR_1529 : prod A B => exists x : A, @SETSPEC (prod A B) GEN_PVAR_1529 (@IN A x (@topspace A top)) (@pair A B x (f x)))). +Axiom thm_CLOSED_MAP_PAIRED_CONTINUOUS_MAP_RIGHT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@hausdorff_space B top')) -> @closed_map A (prod A B) (@pair (Topology A) (Topology (prod A B)) top (@prod_topology A B top top')) (fun x : A => @pair A B x (f x)). +Axiom thm_CLOSED_MAP_PAIRED_CONTINUOUS_MAP_LEFT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@hausdorff_space B top')) -> @closed_map A (prod B A) (@pair (Topology A) (Topology (prod B A)) top (@prod_topology B A top' top)) (fun x : A => @pair B A (f x) x). +Axiom thm_EMBEDDING_MAP_ON_DENSE_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : A -> Prop, ((@hausdorff_space A top) /\ ((@SUBSET A s (@topspace A top)) /\ (((@closure_of A top s) = (@topspace A top)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@embedding_map A B (@pair (Topology A) (Topology B) (@subtopology A top s) top') f))))) -> @DISJOINT B (@IMAGE A B f s) (@IMAGE A B f (@DIFF A (@topspace A top) s)). +Axiom thm_kc_space : forall {A : Type'}, forall top : Topology A, (@kc_space A top) = (forall s : A -> Prop, (@compact_in A top s) -> @closed_in A top s). +Axiom thm_KC_SPACE_EXPANSIVE : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (((@topspace A top') = (@topspace A top)) /\ (forall u : A -> Prop, (@open_in A top u) -> @open_in A top' u)) -> (@kc_space A top) -> @kc_space A top'. +Axiom thm_COMPACT_IN_IMP_CLOSED_IN_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@kc_space A top) /\ (@compact_in A top s)) -> @closed_in A top s. +Axiom thm_HAUSDORFF_IMP_KC_SPACE : forall {A : Type'}, forall top : Topology A, (@hausdorff_space A top) -> @kc_space A top. +Axiom thm_KC_IMP_T1_SPACE : forall {A : Type'}, forall top : Topology A, (@kc_space A top) -> @t1_space A top. +Axiom thm_KC_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@kc_space A top) -> @kc_space A (@subtopology A top s). +Axiom thm_KC_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @kc_space A (@discrete_topology A u). +Axiom thm_KC_SPACE_CONTINUOUS_INJECTIVE_MAP_PREIMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((f x) = (f y)))) -> x = y) /\ (@kc_space B top'))) -> @kc_space A top. +Axiom thm_KC_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@kc_space A top)) -> @kc_space B top'. +Axiom thm_HOMEOMORPHIC_KC_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@kc_space A top) = (@kc_space B top'). +Axiom thm_COMPACT_KC_EQ_MAXIMAL_COMPACT_SPACE : forall {A : Type'}, forall top : Topology A, (@compact_space A top) -> (@kc_space A top) = (forall top' : Topology A, (((@topspace A top') = (@topspace A top)) /\ ((forall s : A -> Prop, (@open_in A top s) -> @open_in A top' s) /\ (@compact_space A top'))) -> top' = top). +Axiom thm_CONTINUOUS_IMP_CLOSED_MAP_GEN : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@kc_space B top') /\ (@continuous_map A B (@pair (Topology A) (Topology B) top top') f))) -> @closed_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_KC_SPACE_COMPACT_SUBTOPOLOGIES : forall {A : Type'}, forall top : Topology A, (@kc_space A top) = (forall k : A -> Prop, (@compact_in A top k) -> @kc_space A (@subtopology A top k)). +Axiom thm_KC_SPACE_COMPACT_PROD_TOPOLOGY : forall {A : Type'}, forall top : Topology A, (@compact_space A top) -> (@kc_space (prod A A) (@prod_topology A A top top)) = (@hausdorff_space A top). +Axiom thm_KC_SPACE_PROD_TOPOLOGY : forall {A : Type'}, forall top : Topology A, (@kc_space (prod A A) (@prod_topology A A top top)) = (forall k : A -> Prop, (@compact_in A top k) -> @hausdorff_space A (@subtopology A top k)). +Axiom thm_KC_SPACE_PROD_TOPOLOGY_ALT : forall {A : Type'}, forall top : Topology A, (@kc_space (prod A A) (@prod_topology A A top top)) = ((@kc_space A top) /\ (forall k : A -> Prop, (@compact_in A top k) -> @hausdorff_space A (@subtopology A top k))). +Axiom thm_KC_SPACE_PROD_TOPOLOGY_LEFT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, ((@kc_space A top) /\ (@hausdorff_space B top')) -> @kc_space (prod A B) (@prod_topology A B top top'). +Axiom thm_KC_SPACE_PROD_TOPOLOGY_RIGHT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, ((@hausdorff_space A top) /\ (@kc_space B top')) -> @kc_space (prod A B) (@prod_topology A B top top'). +Axiom thm_KC_SPACE_PROD_TOPOLOGY_GEN : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, ((@kc_space A top) /\ ((@kc_space B top') /\ ((forall k : A -> Prop, (@compact_in A top k) -> @hausdorff_space A (@subtopology A top k)) \/ (forall l : B -> Prop, (@compact_in B top' l) -> @hausdorff_space B (@subtopology B top' l))))) -> @kc_space (prod A B) (@prod_topology A B top top'). +Axiom thm_proper_map : forall {A B : Type'}, forall top' : Topology B, forall top : Topology A, forall f : A -> B, (@proper_map A B (@pair (Topology A) (Topology B) top top') f) = ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (forall y : B, (@IN B y (@topspace B top')) -> @compact_in A top (@GSPEC A (fun GEN_PVAR_1536 : A => exists x : A, @SETSPEC A GEN_PVAR_1536 ((@IN A x (@topspace A top)) /\ ((f x) = y)) x)))). +Axiom thm_PROPER_IMP_CLOSED_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@proper_map A B (@pair (Topology A) (Topology B) top top') f) -> @closed_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PROPER_MAP_IMP_SUBSET_TOPSPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@proper_map A B (@pair (Topology A) (Topology B) top top') f) -> @SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top'). +Axiom thm_CLOSED_INJECTIVE_IMP_PROPER_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((f x) = (f y)))) -> x = y)) -> @proper_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_INJECTIVE_IMP_PROPER_EQ_CLOSED_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((f x) = (f y)))) -> x = y) -> (@proper_map A B (@pair (Topology A) (Topology B) top top') f) = (@closed_map A B (@pair (Topology A) (Topology B) top top') f). +Axiom thm_PROPER_MAP_DIAG_EQ : forall {A : Type'}, forall top : Topology A, (@proper_map A (prod A A) (@pair (Topology A) (Topology (prod A A)) top (@prod_topology A A top top)) (fun x : A => @pair A A x x)) = (@hausdorff_space A top). +Axiom thm_HOMEOMORPHIC_IMP_PROPER_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> @proper_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_COMPACT_IN_PROPER_MAP_PREIMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall k : B -> Prop, ((@proper_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@compact_in B top' k)) -> @compact_in A top (@GSPEC A (fun GEN_PVAR_1542 : A => exists x : A, @SETSPEC A GEN_PVAR_1542 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x)). +Axiom thm_COMPACT_SPACE_PROPER_MAP_PREIMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@proper_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (@compact_space B top'))) -> @compact_space A top. +Axiom thm_PROPER_MAP_ALT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@proper_map A B (@pair (Topology A) (Topology B) top top') f) = ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @compact_in A top (@GSPEC A (fun GEN_PVAR_1544 : A => exists x : A, @SETSPEC A GEN_PVAR_1544 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x)))). +Axiom thm_PROPER_MAP_ON_EMPTY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@topspace A top) = (@EMPTY A)) -> @proper_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PROPER_MAP_ID : forall {A : Type'}, forall top : Topology A, @proper_map A A (@pair (Topology A) (Topology A) top top) (fun x : A => x). +Axiom thm_PROPER_MAP_COMPOSE : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@proper_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@proper_map B C (@pair (Topology B) (Topology C) top' top'') g)) -> @proper_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f). +Axiom thm_PROPER_MAP_CONST : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall c : B, (@proper_map A B (@pair (Topology A) (Topology B) top top') (fun x : A => c)) = ((@compact_space A top) /\ (((@topspace A top) = (@EMPTY A)) \/ (@closed_in B top' (@INSERT B c (@EMPTY B))))). +Axiom thm_PROPER_MAP_INCLUSION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> (@proper_map A A (@pair (Topology A) (Topology A) (@subtopology A top s) top) (fun x : A => x)) = ((@closed_in A top s) /\ (forall k : A -> Prop, (@compact_in A top k) -> @compact_in A top (@INTER A s k))). +Axiom thm_PROPER_MAP_PAIRED_CONTINUOUS_MAP_RIGHT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@hausdorff_space B top')) -> @proper_map A (prod A B) (@pair (Topology A) (Topology (prod A B)) top (@prod_topology A B top top')) (fun x : A => @pair A B x (f x)). +Axiom thm_PROPER_MAP_PAIRED_CONTINUOUS_MAP_LEFT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@hausdorff_space B top')) -> @proper_map A (prod B A) (@pair (Topology A) (Topology (prod B A)) top (@prod_topology B A top' top)) (fun x : A => @pair B A (f x) x). +Axiom thm_COMPACT_IMP_PROPER_MAP_GEN : forall {A B : Type'}, forall top' : Topology B, (forall s : B -> Prop, ((@SUBSET B s (@topspace B top')) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @compact_in B top' (@INTER B s k))) -> @closed_in B top' s) -> forall top : Topology A, forall f : A -> B, ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) \/ (@kc_space A top)) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @compact_in A top (@GSPEC A (fun GEN_PVAR_1556 : A => exists x : A, @SETSPEC A GEN_PVAR_1556 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x))))) -> @proper_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_CLOSED_IMP_PROPER_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@t1_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@closed_map A B (@pair (Topology A) (Topology B) top top') f)))) -> @proper_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_IMP_PROPER_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@kc_space B top') /\ (@continuous_map A B (@pair (Topology A) (Topology B) top top') f))) -> @proper_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PROPER_IMP_CONTINUOUS_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@kc_space A top) /\ ((@compact_space B top') /\ (@proper_map A B (@pair (Topology A) (Topology B) top top') f))) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PROPER_MAP_FST : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@proper_map (prod A B) A (@pair (Topology (prod A B)) (Topology A) (@prod_topology A B top top') top) (@fst A B)) = (((@topspace A top) = (@EMPTY A)) \/ (@compact_space B top')). +Axiom thm_PROPER_MAP_SND : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@proper_map (prod A B) B (@pair (Topology (prod A B)) (Topology B) (@prod_topology A B top top') top') (@snd A B)) = ((@compact_space A top) \/ ((@topspace B top') = (@EMPTY B))). +Axiom thm_PROPER_MAP_INTO_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall c : B -> Prop, ((@proper_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET B (@IMAGE A B f (@topspace A top)) c)) -> @proper_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' c)) f. +Axiom thm_PROPER_MAP_FROM_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall c : A -> Prop, ((@proper_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@closed_in A top c)) -> @proper_map A B (@pair (Topology A) (Topology B) (@subtopology A top c) top') f. +Axiom thm_PROPER_MAP_RESTRICTION : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall u : A -> Prop, forall v : B -> Prop, ((@proper_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@GSPEC A (fun GEN_PVAR_1563 : A => exists x : A, @SETSPEC A GEN_PVAR_1563 ((@IN A x (@topspace A top)) /\ (@IN B (f x) v)) x)) = u)) -> @proper_map A B (@pair (Topology A) (Topology B) (@subtopology A top u) (@subtopology B top' v)) f. +Axiom thm_PROPER_MAP_IN_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall s : B -> Prop, forall f : A -> B, (@closed_in B top' s) -> (@proper_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' s)) f) = ((@proper_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET B (@IMAGE A B f (@topspace A top)) s)). +Axiom thm_PROPER_MAP_FROM_CLOSED_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall s : B -> Prop, forall f : A -> B, ((@closed_in B top' s) /\ (@proper_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' s)) f)) -> @proper_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PROPER_MAP_FROM_COMPOSITION_LEFT : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@proper_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))) -> @proper_map B C (@pair (Topology B) (Topology C) top' top'') g. +Axiom thm_PROPER_MAP_FROM_COMPOSITION_RIGHT_INJ : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@proper_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)) /\ ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ ((@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g) /\ (forall x : B, forall y : B, ((@IN B x (@topspace B top')) /\ ((@IN B y (@topspace B top')) /\ ((g x) = (g y)))) -> x = y)))) -> @proper_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PROPER_MAP_PROD : forall {A B C D : Type'}, forall top1 : Topology A, forall top1' : Topology C, forall top2 : Topology B, forall top2' : Topology D, forall f : A -> C, forall g : B -> D, (@proper_map (prod A B) (prod C D) (@pair (Topology (prod A B)) (Topology (prod C D)) (@prod_topology A B top1 top2) (@prod_topology C D top1' top2')) (@GABS ((prod A B) -> prod C D) (fun f' : (prod A B) -> prod C D => forall x : A, forall y : B, @GEQ (prod C D) (f' (@pair A B x y)) (@pair C D (f x) (g y))))) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@proper_map A C (@pair (Topology A) (Topology C) top1 top1') f) /\ (@proper_map B D (@pair (Topology B) (Topology D) top2 top2') g))). +Axiom thm_PROPER_MAP_PAIRED : forall {A B C : Type'}, forall top : Topology A, forall top1 : Topology B, forall top2 : Topology C, forall f : A -> B, forall g : A -> C, (((@hausdorff_space A top) /\ ((@proper_map A B (@pair (Topology A) (Topology B) top top1) f) /\ (@proper_map A C (@pair (Topology A) (Topology C) top top2) g))) \/ (((@hausdorff_space B top1) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top1) f) /\ (@proper_map A C (@pair (Topology A) (Topology C) top top2) g))) \/ ((@hausdorff_space C top2) /\ ((@proper_map A B (@pair (Topology A) (Topology B) top top1) f) /\ (@continuous_map A C (@pair (Topology A) (Topology C) top top2) g))))) -> @proper_map A (prod B C) (@pair (Topology A) (Topology (prod B C)) top (@prod_topology B C top1 top2)) (fun x : A => @pair B C (f x) (g x)). +Axiom thm_PROPER_MAP_PAIRWISE : forall {A B C : Type'}, forall top : Topology A, forall top1 : Topology B, forall top2 : Topology C, forall f : A -> prod B C, (((@hausdorff_space A top) /\ ((@proper_map A B (@pair (Topology A) (Topology B) top top1) (@o A (prod B C) B (@fst B C) f)) /\ (@proper_map A C (@pair (Topology A) (Topology C) top top2) (@o A (prod B C) C (@snd B C) f)))) \/ (((@hausdorff_space B top1) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top1) (@o A (prod B C) B (@fst B C) f)) /\ (@proper_map A C (@pair (Topology A) (Topology C) top top2) (@o A (prod B C) C (@snd B C) f)))) \/ ((@hausdorff_space C top2) /\ ((@proper_map A B (@pair (Topology A) (Topology B) top top1) (@o A (prod B C) B (@fst B C) f)) /\ (@continuous_map A C (@pair (Topology A) (Topology C) top top2) (@o A (prod B C) C (@snd B C) f)))))) -> @proper_map A (prod B C) (@pair (Topology A) (Topology (prod B C)) top (@prod_topology B C top1 top2)) f. +Axiom thm_PROPER_MAP_FROM_COMPOSITION_RIGHT : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@hausdorff_space B top') /\ ((@proper_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g)))) -> @proper_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_EXTENSION_OF_PROPER_MAP_FROM_SUBTOPOLOGY : forall {A B : Type'} (s : A -> Prop), forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@hausdorff_space A top) /\ ((@SUBSET A s (@topspace A top)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@proper_map A B (@pair (Topology A) (Topology B) (@subtopology A top s) top') f)))) -> @closed_in A top s. +Axiom thm_perfect_map : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, (@perfect_map A B (@pair (Topology A) (Topology B) top top') f) = ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@proper_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))). +Axiom thm_HOMEOMORPHIC_IMP_PERFECT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> @perfect_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PERFECT_IMP_QUOTIENT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@perfect_map A B (@pair (Topology A) (Topology B) top top') f) -> @quotient_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_HOMEOMORPHIC_EQ_INJECTIVE_PERFECT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) = ((@perfect_map A B (@pair (Topology A) (Topology B) top top') f) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> ((f x) = (f y)) = (x = y))). +Axiom thm_PERFECT_INJECTIVE_EQ_HOMEOMORPHIC_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@perfect_map A B (@pair (Topology A) (Topology B) top top') f) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((f x) = (f y)))) -> x = y)) = (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f). +Axiom thm_PERFECT_MAP_ID : forall {A : Type'}, forall top : Topology A, @perfect_map A A (@pair (Topology A) (Topology A) top top) (fun x : A => x). +Axiom thm_PERFECT_MAP_COMPOSE : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@perfect_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@perfect_map B C (@pair (Topology B) (Topology C) top' top'') g)) -> @perfect_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f). +Axiom thm_PERFECT_IMP_CONTINUOUS_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@perfect_map A B (@pair (Topology A) (Topology B) top top') f) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PERFECT_IMP_CLOSED_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@perfect_map A B (@pair (Topology A) (Topology B) top top') f) -> @closed_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PERFECT_IMP_PROPER_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@perfect_map A B (@pair (Topology A) (Topology B) top top') f) -> @proper_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PERFECT_IMP_SURJECTIVE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@perfect_map A B (@pair (Topology A) (Topology B) top top') f) -> (@IMAGE A B f (@topspace A top)) = (@topspace B top'). +Axiom thm_CONTINUOUS_CLOSED_IMP_PERFECT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@t1_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))))) -> @perfect_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_IMP_PEFECT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@kc_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top'))))) -> @perfect_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PERFECT_MAP_FST : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@perfect_map (prod A B) A (@pair (Topology (prod A B)) (Topology A) (@prod_topology A B top top') top) (@fst A B)) = ((((@topspace A top) = (@EMPTY A)) \/ (@compact_space B top')) /\ (((@topspace B top') = (@EMPTY B)) -> (@topspace A top) = (@EMPTY A))). +Axiom thm_PERFECT_MAP_SND : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@perfect_map (prod A B) B (@pair (Topology (prod A B)) (Topology B) (@prod_topology A B top top') top') (@snd A B)) = ((((@topspace B top') = (@EMPTY B)) \/ (@compact_space A top)) /\ (((@topspace A top) = (@EMPTY A)) -> (@topspace B top') = (@EMPTY B))). +Axiom thm_PERFECT_MAP_RESTRICTION : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall u : A -> Prop, forall v : B -> Prop, ((@perfect_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@GSPEC A (fun GEN_PVAR_1580 : A => exists x : A, @SETSPEC A GEN_PVAR_1580 ((@IN A x (@topspace A top)) /\ (@IN B (f x) v)) x)) = u)) -> @perfect_map A B (@pair (Topology A) (Topology B) (@subtopology A top u) (@subtopology B top' v)) f. +Axiom thm_PERFECT_MAP_FROM_COMPOSITION_LEFT : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@perfect_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top'))))) -> @perfect_map B C (@pair (Topology B) (Topology C) top' top'') g. +Axiom thm_PERFECT_MAP_FROM_COMPOSITION_RIGHT : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@hausdorff_space B top') /\ ((@perfect_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))))) -> @perfect_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PERFECT_MAP_FROM_COMPOSITION_RIGHT_INJ : forall {A B C : Type'}, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@perfect_map A C (@pair (Topology A) (Topology C) top top'') (@o A B C g f)) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g) /\ (forall x : B, forall y : B, ((@IN B x (@topspace B top')) /\ ((@IN B y (@topspace B top')) /\ ((g x) = (g y)))) -> x = y))))) -> @perfect_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_DISCRETE_SPACE_PERFECT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@discrete_space A top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> @discrete_space B top'. +Axiom thm_KC_SPACE_PROPER_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@kc_space A top) /\ ((@proper_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))) -> @kc_space B top'. +Axiom thm_KC_SPACE_CLOSED_CONTINUOUS_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@kc_space A top) /\ ((@compact_space A top) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))))) -> @kc_space B top'. +Axiom thm_KC_SPACE_CLOSED_CONTINUOUS_MAP_IMAGE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@kc_space A top) /\ ((@compact_space A top) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top'))))) -> (@closed_map A B (@pair (Topology A) (Topology B) top top') f) = (@kc_space B top'). +Axiom thm_HAUSDORFF_SPACE_PROPER_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@hausdorff_space A top) /\ ((@proper_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))) -> @hausdorff_space B top'. +Axiom thm_HAUSDORFF_SPACE_CLOSED_CONTINUOUS_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@hausdorff_space A top) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))))) -> @hausdorff_space B top'. +Axiom thm_HAUSDORFF_SPACE_CLOSED_CONTINUOUS_MAP_IMAGE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@hausdorff_space A top) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top'))))) -> (@closed_map A B (@pair (Topology A) (Topology B) top top') f) = (@hausdorff_space B top'). +Axiom thm_HAUSDORFF_SPACE_CONTINUOUS_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@hausdorff_space A top) /\ ((@kc_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))))) -> @hausdorff_space B top'. +Axiom thm_HAUSDORFF_SPACE_CONTINUOUS_MAP_IMAGE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ ((@hausdorff_space A top) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top'))))) -> (@hausdorff_space B top') = (@kc_space B top'). +Axiom thm_T1_SPACE_PERFECT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@t1_space A top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> @t1_space B top'. +Axiom thm_HAUSDORFF_SPACE_PERFECT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@hausdorff_space A top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> @hausdorff_space B top'. +Axiom thm_COMPACT_SPACE_PERFECT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@compact_space A top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> @compact_space B top'. +Axiom thm_COMPACT_SPACE_PERFECT_MAP_IMAGE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@perfect_map A B (@pair (Topology A) (Topology B) top top') f) -> (@compact_space A top) = (@compact_space B top'). +Axiom thm_KC_SPACE_PERFECT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@kc_space A top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> @kc_space B top'. +Axiom thm_lindelof_space : forall {A : Type'}, forall top : Topology A, (@lindelof_space A top) = (forall U : (A -> Prop) -> Prop, ((forall u : A -> Prop, (@IN (A -> Prop) u U) -> @open_in A top u) /\ ((@UNIONS A U) = (@topspace A top))) -> exists V : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) V) /\ ((@SUBSET (A -> Prop) V U) /\ ((@UNIONS A V) = (@topspace A top)))). +Axiom thm_LINDELOF_SPACE_ALT : forall {A : Type'}, forall top : Topology A, (@lindelof_space A top) = (forall U : (A -> Prop) -> Prop, ((forall u : A -> Prop, (@IN (A -> Prop) u U) -> @open_in A top u) /\ (@SUBSET A (@topspace A top) (@UNIONS A U))) -> exists V : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) V) /\ ((@SUBSET (A -> Prop) V U) /\ (@SUBSET A (@topspace A top) (@UNIONS A V)))). +Axiom thm_COMPACT_IMP_LINDELOF_SPACE : forall {A : Type'}, forall top : Topology A, (@compact_space A top) -> @lindelof_space A top. +Axiom thm_LINDELOF_SPACE_TOPSPACE_EMPTY : forall {A : Type'}, forall top : Topology A, ((@topspace A top) = (@EMPTY A)) -> @lindelof_space A top. +Axiom thm_LINDELOF_SPACE_UNIONS : forall {A : Type'}, forall top : Topology A, forall U : (A -> Prop) -> Prop, ((@COUNTABLE (A -> Prop) U) /\ (forall c : A -> Prop, (@IN (A -> Prop) c U) -> @lindelof_space A (@subtopology A top c))) -> @lindelof_space A (@subtopology A top (@UNIONS A U)). +Axiom thm_COUNTABLE_IMP_LINDELOF_SPACE : forall {A : Type'}, forall top : Topology A, (@COUNTABLE A (@topspace A top)) -> @lindelof_space A top. +Axiom thm_LINDELOF_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@lindelof_space A (@subtopology A top s)) = (forall U : (A -> Prop) -> Prop, ((forall u : A -> Prop, (@IN (A -> Prop) u U) -> @open_in A top u) /\ (@SUBSET A (@INTER A (@topspace A top) s) (@UNIONS A U))) -> exists V : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) V) /\ ((@SUBSET (A -> Prop) V U) /\ (@SUBSET A (@INTER A (@topspace A top) s) (@UNIONS A V)))). +Axiom thm_LINDELOF_SPACE_SUBTOPOLOGY_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> (@lindelof_space A (@subtopology A top s)) = (forall U : (A -> Prop) -> Prop, ((forall u : A -> Prop, (@IN (A -> Prop) u U) -> @open_in A top u) /\ (@SUBSET A s (@UNIONS A U))) -> exists V : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) V) /\ ((@SUBSET (A -> Prop) V U) /\ (@SUBSET A s (@UNIONS A V)))). +Axiom thm_LINDELOF_SPACE_CLOSED_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@lindelof_space A top) /\ (@closed_in A top s)) -> @lindelof_space A (@subtopology A top s). +Axiom thm_LINDELOF_SPACE_CONTINUOUS_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@lindelof_space A top) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))) -> @lindelof_space B top'. +Axiom thm_LINDELOF_SPACE_QUOTIENT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall q : A -> B, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') q) /\ (@lindelof_space A top)) -> @lindelof_space B top'. +Axiom thm_LINDELOF_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@lindelof_space A top)) -> @lindelof_space B top'. +Axiom thm_LOCALLY_FINITE_COVER_OF_LINDELOF_SPACE : forall {A : Type'}, forall top : Topology A, forall u : (A -> Prop) -> Prop, ((@lindelof_space A top) /\ ((@SUBSET A (@topspace A top) (@UNIONS A u)) /\ (@locally_finite_in A top u))) -> @COUNTABLE (A -> Prop) u. +Axiom thm_LINDELOF_SPACE_PROPER_MAP_PREIMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@proper_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@lindelof_space B top')) -> @lindelof_space A top. +Axiom thm_LINDELOF_SPACE_PERFECT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@lindelof_space A top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> @lindelof_space B top'. +Axiom thm_LINDELOF_SPACE_PERFECT_MAP_IMAGE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@perfect_map A B (@pair (Topology A) (Topology B) top top') f) -> (@lindelof_space A top) = (@lindelof_space B top'). +Axiom thm_second_countable : forall {A : Type'}, forall top : Topology A, (@second_countable A top) = (exists b : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) b) /\ ((forall v : A -> Prop, (@IN (A -> Prop) v b) -> @open_in A top v) /\ (forall u : A -> Prop, forall x : A, ((@open_in A top u) /\ (@IN A x u)) -> exists v : A -> Prop, (@IN (A -> Prop) v b) /\ ((@IN A x v) /\ (@SUBSET A v u))))). +Axiom thm_first_countable : forall {A : Type'}, forall top : Topology A, (@first_countable A top) = (forall x : A, (@IN A x (@topspace A top)) -> exists b : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) b) /\ ((forall v : A -> Prop, (@IN (A -> Prop) v b) -> @open_in A top v) /\ (forall u : A -> Prop, ((@open_in A top u) /\ (@IN A x u)) -> exists v : A -> Prop, (@IN (A -> Prop) v b) /\ ((@IN A x v) /\ (@SUBSET A v u))))). +Axiom thm_separable_space : forall {A : Type'}, forall top : Topology A, (@separable_space A top) = (exists c : A -> Prop, (@COUNTABLE A c) /\ ((@SUBSET A c (@topspace A top)) /\ ((@closure_of A top c) = (@topspace A top)))). +Axiom thm_SECOND_COUNTABLE : forall {A : Type'}, forall top : Topology A, (@second_countable A top) = (exists b : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) b) /\ ((@open_in A top) = (@UNION_OF A (@ARBITRARY A) b))). +Axiom thm_SECOND_COUNTABLE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@second_countable A top) -> @second_countable A (@subtopology A top s). +Axiom thm_SECOND_COUNTABLE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, (@second_countable A (@discrete_topology A u)) = (@COUNTABLE A u). +Axiom thm_SECOND_COUNTABLE_OPEN_MAP_IMAGE : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (@second_countable A top)))) -> @second_countable B top'. +Axiom thm_HOMEOMORPHIC_SPACE_SECOND_COUNTABILITY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@second_countable A top) = (@second_countable B top'). +Axiom thm_SECOND_COUNTABLE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@second_countable A top)) -> @second_countable B top'. +Axiom thm_SECOND_COUNTABLE_IMP_FIRST_COUNTABLE : forall {A : Type'}, forall top : Topology A, (@second_countable A top) -> @first_countable A top. +Axiom thm_FIRST_COUNTABLE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@first_countable A top) -> @first_countable A (@subtopology A top s). +Axiom thm_FIRST_COUNTABLE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @first_countable A (@discrete_topology A u). +Axiom thm_FIRST_COUNTABLE_OPEN_MAP_IMAGE : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (@first_countable A top)))) -> @first_countable B top'. +Axiom thm_HOMEOMORPHIC_SPACE_FIRST_COUNTABILITY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@first_countable A top) = (@first_countable B top'). +Axiom thm_FIRST_COUNTABLE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@first_countable A top)) -> @first_countable B top'. +Axiom thm_SEPARABLE_SPACE_OPEN_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@separable_space A top) /\ (@open_in A top s)) -> @separable_space A (@subtopology A top s). +Axiom thm_SEPARABLE_SPACE_CONTINUOUS_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@separable_space A top) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))) -> @separable_space B top'. +Axiom thm_SEPARABLE_SPACE_QUOTIENT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall q : A -> B, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') q) /\ (@separable_space A top)) -> @separable_space B top'. +Axiom thm_SEPARABLE_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@separable_space A top)) -> @separable_space B top'. +Axiom thm_HOMEOMORPHIC_SEPARABLE_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@separable_space A top) = (@separable_space B top'). +Axiom thm_SEPARABLE_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, (@separable_space A (@discrete_topology A u)) = (@COUNTABLE A u). +Axiom thm_SECOND_COUNTABLE_IMP_SEPARABLE_SPACE : forall {A : Type'}, forall top : Topology A, (@second_countable A top) -> @separable_space A top. +Axiom thm_SECOND_COUNTABLE_IMP_LINDELOF_SPACE : forall {A : Type'}, forall top : Topology A, (@second_countable A top) -> @lindelof_space A top. +Axiom thm_netfilter : forall {A : Type'}, forall n : net A, (@netfilter A n) = (@fst ((A -> Prop) -> Prop) (A -> Prop) (@dest_net A n)). +Axiom thm_netlimits : forall {A : Type'}, forall n : net A, (@netlimits A n) = (@snd ((A -> Prop) -> Prop) (A -> Prop) (@dest_net A n)). +Axiom thm_netlimit : forall {A : Type'}, forall n : net A, (@netlimit A n) = (@ε A (fun x : A => @IN A x (@netlimits A n))). +Axiom thm_NET : forall {_406852 _406856 _406886 : Type'}, forall n : net _406886, forall s : _406852, forall t : _406856, forall s' : _406886 -> Prop, forall t' : _406886 -> Prop, ((@IN (_406886 -> Prop) s' (@netfilter _406886 n)) /\ (@IN (_406886 -> Prop) t' (@netfilter _406886 n))) -> @IN (_406886 -> Prop) (@INTER _406886 s' t') (@netfilter _406886 n). +Axiom thm_within : forall {_406905 : Type'}, forall s : _406905 -> Prop, forall net' : net _406905, (@within _406905 net' s) = (@mk_net _406905 (@pair ((_406905 -> Prop) -> Prop) (_406905 -> Prop) (@relative_to _406905 (@netfilter _406905 net') s) (@netlimits _406905 net'))). +Axiom thm_NETLIMITS_WITHIN : forall {A : Type'}, forall n : net A, forall s : A -> Prop, (@netlimits A (@within A n s)) = (@netlimits A n). +Axiom thm_WITHIN : forall {A : Type'}, forall n : net A, forall s : A -> Prop, (@netfilter A (@within A n s)) = (@relative_to A (@netfilter A n) s). +Axiom thm_NET_WITHIN_UNIV : forall {A : Type'}, forall net' : net A, (@within A net' (@UNIV A)) = net'. +Axiom thm_WITHIN_WITHIN : forall {_407030 : Type'}, forall net' : net _407030, forall s : _407030 -> Prop, forall t : _407030 -> Prop, (@within _407030 (@within _407030 net' s) t) = (@within _407030 net' (@INTER _407030 s t)). +Axiom thm_eventually : forall {A : Type'}, forall net' : net A, forall P : A -> Prop, (@eventually A P net') = (((@netfilter A net') = (@EMPTY (A -> Prop))) \/ (exists u : A -> Prop, (@IN (A -> Prop) u (@netfilter A net')) /\ (forall x : A, (@IN A x (@DIFF A u (@netlimits A net'))) -> P x))). +Axiom thm_trivial_limit : forall {_407078 : Type'}, forall net' : net _407078, (@trivial_limit _407078 net') = (@eventually _407078 (fun x : _407078 => False) net'). +Axiom thm_EVENTUALLY_WITHIN_IMP : forall {A : Type'}, forall net' : net A, forall P : A -> Prop, forall s : A -> Prop, (@eventually A P (@within A net' s)) = (@eventually A (fun x : A => (@IN A x s) -> P x) net'). +Axiom thm_EVENTUALLY_IMP_WITHIN : forall {A : Type'}, forall net' : net A, forall P : A -> Prop, forall s : A -> Prop, (@eventually A P net') -> @eventually A P (@within A net' s). +Axiom thm_EVENTUALLY_WITHIN_INTER_IMP : forall {A : Type'}, forall net' : net A, forall P : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@eventually A P (@within A net' (@INTER A s t))) = (@eventually A (fun x : A => (@IN A x t) -> P x) (@within A net' s)). +Axiom thm_NONTRIVIAL_LIMIT_WITHIN : forall {_407189 : Type'}, forall net' : net _407189, forall s : _407189 -> Prop, (@trivial_limit _407189 net') -> @trivial_limit _407189 (@within _407189 net' s). +Axiom thm_EVENTUALLY_HAPPENS : forall {_407217 : Type'}, forall net' : net _407217, forall p : _407217 -> Prop, (@eventually _407217 p net') -> (@trivial_limit _407217 net') \/ (exists x : _407217, p x). +Axiom thm_ALWAYS_EVENTUALLY : forall {_407225 : Type'} (p : _407225 -> Prop) (net' : net _407225), (forall x : _407225, p x) -> @eventually _407225 p net'. +Axiom thm_EVENTUALLY_MONO : forall {A : Type'}, forall net' : net A, forall p : A -> Prop, forall q : A -> Prop, ((forall x : A, (p x) -> q x) /\ (@eventually A p net')) -> @eventually A q net'. +Axiom thm_EVENTUALLY_AND : forall {A : Type'}, forall net' : net A, forall p : A -> Prop, forall q : A -> Prop, (@eventually A (fun x : A => (p x) /\ (q x)) net') = ((@eventually A p net') /\ (@eventually A q net')). +Axiom thm_EVENTUALLY_MP : forall {A : Type'}, forall net' : net A, forall p : A -> Prop, forall q : A -> Prop, ((@eventually A (fun x : A => (p x) -> q x) net') /\ (@eventually A p net')) -> @eventually A q net'. +Axiom thm_EVENTUALLY_EQ_MP : forall {A : Type'}, forall net' : net A, forall P : A -> Prop, forall Q : A -> Prop, ((@eventually A (fun x : A => (P x) = (Q x)) net') /\ (@eventually A P net')) -> @eventually A Q net'. +Axiom thm_EVENTUALLY_IFF : forall {A : Type'}, forall net' : net A, forall P : A -> Prop, forall Q : A -> Prop, (@eventually A (fun x : A => (P x) = (Q x)) net') -> (@eventually A P net') = (@eventually A Q net'). +Axiom thm_EVENTUALLY_FALSE : forall {_407412 : Type'}, forall net' : net _407412, (@eventually _407412 (fun x : _407412 => False) net') = (@trivial_limit _407412 net'). +Axiom thm_EVENTUALLY_TRUE : forall {_407426 : Type'}, forall net' : net _407426, (@eventually _407426 (fun x : _407426 => True) net') = True. +Axiom thm_EVENTUALLY_WITHIN_SUBSET : forall {A : Type'}, forall P : A -> Prop, forall net' : net A, forall s : A -> Prop, forall t : A -> Prop, ((@eventually A P (@within A net' s)) /\ (@SUBSET A t s)) -> @eventually A P (@within A net' t). +Axiom thm_ALWAYS_WITHIN_EVENTUALLY : forall {_407489 : Type'} (s : _407489 -> Prop), forall net' : net _407489, forall P : _407489 -> Prop, (forall x : _407489, (@IN _407489 x s) -> P x) -> @eventually _407489 P (@within _407489 net' s). +Axiom thm_NOT_EVENTUALLY : forall {_407511 : Type'}, forall net' : net _407511, forall p : _407511 -> Prop, ((forall x : _407511, ~ (p x)) /\ (~ (@trivial_limit _407511 net'))) -> ~ (@eventually _407511 p net'). +Axiom thm_EVENTUALLY_FORALL : forall {A B : Type'}, forall net' : net A, forall p : B -> A -> Prop, forall s : B -> Prop, ((@FINITE B s) /\ (~ (s = (@EMPTY B)))) -> (@eventually A (fun x : A => forall a : B, (@IN B a s) -> p a x) net') = (forall a : B, (@IN B a s) -> @eventually A (p a) net'). +Axiom thm_FORALL_EVENTUALLY : forall {A B : Type'}, forall net' : net A, forall p : B -> A -> Prop, forall s : B -> Prop, ((@FINITE B s) /\ (~ (s = (@EMPTY B)))) -> (forall a : B, (@IN B a s) -> @eventually A (p a) net') = (@eventually A (fun x : A => forall a : B, (@IN B a s) -> p a x) net'). +Axiom thm_EVENTUALLY_TRIVIAL : forall {A : Type'}, forall net' : net A, forall P : A -> Prop, (@trivial_limit A net') -> @eventually A P net'. +Axiom thm_sequentially : sequentially = (@mk_net N (@pair ((N -> Prop) -> Prop) (N -> Prop) (@GSPEC (N -> Prop) (fun GEN_PVAR_1595 : N -> Prop => exists n : N, @SETSPEC (N -> Prop) GEN_PVAR_1595 (@IN N n (@UNIV N)) (from n))) (@EMPTY N))). +Axiom thm_NETLIMITS_SEQUENTIALLY : (@netlimits N sequentially) = (@EMPTY N). +Axiom thm_SEQUENTIALLY : forall {_407688 : Type'}, forall n : _407688, (@netfilter N sequentially) = (@GSPEC (N -> Prop) (fun GEN_PVAR_1596 : N -> Prop => exists n' : N, @SETSPEC (N -> Prop) GEN_PVAR_1596 (@IN N n' (@UNIV N)) (from n'))). +Axiom thm_EVENTUALLY_SEQUENTIALLY : forall p : N -> Prop, (@eventually N p sequentially) = (exists N' : N, forall n : N, (N.le N' n) -> p n). +Axiom thm_TRIVIAL_LIMIT_SEQUENTIALLY : ~ (@trivial_limit N sequentially). +Axiom thm_EVENTUALLY_HAPPENS_SEQUENTIALLY : forall P : N -> Prop, (@eventually N P sequentially) -> exists n : N, P n. +Axiom thm_EVENTUALLY_SEQUENTIALLY_WITHIN : forall k : N -> Prop, forall p : N -> Prop, (@eventually N p (@within N sequentially k)) = ((@FINITE N k) \/ (exists N' : N, forall n : N, ((@IN N n k) /\ (N.le N' n)) -> p n)). +Axiom thm_TRIVIAL_LIMIT_SEQUENTIALLY_WITHIN : forall k : N -> Prop, (@trivial_limit N (@within N sequentially k)) = (@FINITE N k). +Axiom thm_EVENTUALLY_SUBSEQUENCE : forall P : N -> Prop, forall r : N -> N, ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@eventually N P sequentially)) -> @eventually N (@o N N Prop P r) sequentially. +Axiom thm_ARCH_EVENTUALLY_LT : forall x : R, @eventually N (fun n : N => Rlt x (R_of_N n)) sequentially. +Axiom thm_ARCH_EVENTUALLY_LE : forall x : R, @eventually N (fun n : N => Rle x (R_of_N n)) sequentially. +Axiom thm_ARCH_EVENTUALLY_ABS_INV_OFFSET : forall a : R, forall e : R, (@eventually N (fun n : N => Rlt (Rabs (Rinv (Rplus (R_of_N n) a))) e) sequentially) = (Rlt (R_of_N (NUMERAL 0%N)) e). +Axiom thm_ARCH_EVENTUALLY_INV_OFFSET : forall a : R, forall e : R, (@eventually N (fun n : N => Rlt (Rinv (Rplus (R_of_N n) a)) e) sequentially) = (Rlt (R_of_N (NUMERAL 0%N)) e). +Axiom thm_ARCH_EVENTUALLY_INV1 : forall e : R, (@eventually N (fun n : N => Rlt (Rinv (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) e) sequentially) = (Rlt (R_of_N (NUMERAL 0%N)) e). +Axiom thm_ARCH_EVENTUALLY_INV : forall e : R, (@eventually N (fun n : N => Rlt (Rinv (R_of_N n)) e) sequentially) = (Rlt (R_of_N (NUMERAL 0%N)) e). +Axiom thm_ARCH_EVENTUALLY_POW : forall x : R, forall b : R, (Rlt (R_of_N (NUMERAL (BIT1 0%N))) x) -> @eventually N (fun n : N => Rlt b (real_pow x n)) sequentially. +Axiom thm_ARCH_EVENTUALLY_POW_INV : forall x : R, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N))))) -> @eventually N (fun n : N => Rlt (Rabs (real_pow x n)) e) sequentially. +Axiom thm_EVENTUALLY_IN_SEQUENTIALLY : forall P : N -> Prop, (@eventually N P sequentially) = (@FINITE N (@GSPEC N (fun GEN_PVAR_1597 : N => exists n : N, @SETSPEC N GEN_PVAR_1597 (~ (P n)) n))). +Axiom thm_EVENTUALLY_NO_SUBSEQUENCE : forall P : N -> Prop, (@eventually N P sequentially) = (~ (exists r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (forall n : N, ~ (P (r n))))). +Axiom thm_EVENTUALLY_UBOUND_LE_SEQUENTIALLY : forall f : N -> R, (exists b : R, @eventually N (fun n : N => Rle (f n) b) sequentially) = (exists b : R, forall n : N, Rle (f n) b). +Axiom thm_EVENTUALLY_LBOUND_LE_SEQUENTIALLY : forall f : N -> R, (exists b : R, @eventually N (fun n : N => Rle b (f n)) sequentially) = (exists b : R, forall n : N, Rle b (f n)). +Axiom thm_fsigma_in : forall {A : Type'}, forall top : Topology A, (@fsigma_in A top) = (@UNION_OF A (@COUNTABLE (A -> Prop)) (@closed_in A top)). +Axiom thm_gdelta_in : forall {A : Type'}, forall top : Topology A, (@gdelta_in A top) = (@relative_to A (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) (@open_in A top)) (@topspace A top)). +Axiom thm_FSIGMA_IN_ASCENDING : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@fsigma_in A top s) = (exists c : N -> A -> Prop, (forall n : N, @closed_in A top (c n)) /\ ((forall n : N, @SUBSET A (c n) (c (N.add n (NUMERAL (BIT1 0%N))))) /\ ((@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1608 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_1608 (@IN N n (@UNIV N)) (c n)))) = s))). +Axiom thm_GDELTA_IN_ALT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@gdelta_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) (@open_in A top) s)). +Axiom thm_FSIGMA_IN_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@fsigma_in A top s) -> @SUBSET A s (@topspace A top). +Axiom thm_GDELTA_IN_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@gdelta_in A top s) -> @SUBSET A s (@topspace A top). +Axiom thm_CLOSED_IMP_FSIGMA_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closed_in A top s) -> @fsigma_in A top s. +Axiom thm_OPEN_IMP_GDELTA_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@open_in A top s) -> @gdelta_in A top s. +Axiom thm_FSIGMA_IN_EMPTY : forall {A : Type'}, forall top : Topology A, @fsigma_in A top (@EMPTY A). +Axiom thm_GDELTA_IN_EMPTY : forall {A : Type'}, forall top : Topology A, @gdelta_in A top (@EMPTY A). +Axiom thm_FSIGMA_IN_TOPSPACE : forall {A : Type'}, forall top : Topology A, @fsigma_in A top (@topspace A top). +Axiom thm_GDELTA_IN_TOPSPACE : forall {A : Type'}, forall top : Topology A, @gdelta_in A top (@topspace A top). +Axiom thm_FSIGMA_IN_UNIONS : forall {A : Type'}, forall top : Topology A, forall t : (A -> Prop) -> Prop, ((@COUNTABLE (A -> Prop) t) /\ (forall s : A -> Prop, (@IN (A -> Prop) s t) -> @fsigma_in A top s)) -> @fsigma_in A top (@UNIONS A t). +Axiom thm_FSIGMA_IN_UNION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@fsigma_in A top s) /\ (@fsigma_in A top t)) -> @fsigma_in A top (@UNION A s t). +Axiom thm_FSIGMA_IN_INTER : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@fsigma_in A top s) /\ (@fsigma_in A top t)) -> @fsigma_in A top (@INTER A s t). +Axiom thm_GDELTA_IN_INTERS : forall {A : Type'}, forall top : Topology A, forall t : (A -> Prop) -> Prop, ((@COUNTABLE (A -> Prop) t) /\ ((~ (t = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, (@IN (A -> Prop) s t) -> @gdelta_in A top s))) -> @gdelta_in A top (@INTERS A t). +Axiom thm_GDELTA_IN_INTER : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@gdelta_in A top s) /\ (@gdelta_in A top t)) -> @gdelta_in A top (@INTER A s t). +Axiom thm_GDELTA_IN_UNION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@gdelta_in A top s) /\ (@gdelta_in A top t)) -> @gdelta_in A top (@UNION A s t). +Axiom thm_FSIGMA_IN_DIFF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@fsigma_in A top s) /\ (@gdelta_in A top t)) -> @fsigma_in A top (@DIFF A s t). +Axiom thm_GDELTA_IN_DIFF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@gdelta_in A top s) /\ (@fsigma_in A top t)) -> @gdelta_in A top (@DIFF A s t). +Axiom thm_GDELTA_IN_FSIGMA_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@gdelta_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (@fsigma_in A top (@DIFF A (@topspace A top) s))). +Axiom thm_FSIGMA_IN_GDELTA_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@fsigma_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (@gdelta_in A top (@DIFF A (@topspace A top) s))). +Axiom thm_GDELTA_IN_DESCENDING : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@gdelta_in A top s) = (exists c : N -> A -> Prop, (forall n : N, @open_in A top (c n)) /\ ((forall n : N, @SUBSET A (c (N.add n (NUMERAL (BIT1 0%N)))) (c n)) /\ ((@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1612 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_1612 (@IN N n (@UNIV N)) (c n)))) = s))). +Axiom thm_HOMEOMORPHIC_MAP_FSIGMANESS : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET A u (@topspace A top))) -> (@fsigma_in B top' (@IMAGE A B f u)) = (@fsigma_in A top u). +Axiom thm_HOMEOMORPHIC_MAP_FSIGMANESS_EQ : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (@fsigma_in A top u) = ((@SUBSET A u (@topspace A top)) /\ (@fsigma_in B top' (@IMAGE A B f u))). +Axiom thm_HOMEOMORPHIC_MAP_GDELTANESS : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET A u (@topspace A top))) -> (@gdelta_in B top' (@IMAGE A B f u)) = (@gdelta_in A top u). +Axiom thm_HOMEOMORPHIC_MAP_GDELTANESS_EQ : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (@gdelta_in A top u) = ((@SUBSET A u (@topspace A top)) /\ (@gdelta_in B top' (@IMAGE A B f u))). +Axiom thm_FSIGMA_IN_RELATIVE_TO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@relative_to A (@fsigma_in A top) s) = (@fsigma_in A (@subtopology A top s)). +Axiom thm_FSIGMA_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall s : A -> Prop, (@fsigma_in A (@subtopology A top u) s) = (exists t : A -> Prop, (@fsigma_in A top t) /\ (s = (@INTER A t u))). +Axiom thm_GDELTA_IN_RELATIVE_TO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@relative_to A (@gdelta_in A top) s) = (@gdelta_in A (@subtopology A top s)). +Axiom thm_GDELTA_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall s : A -> Prop, (@gdelta_in A (@subtopology A top u) s) = (exists t : A -> Prop, (@gdelta_in A top t) /\ (s = (@INTER A t u))). +Axiom thm_FSIGMA_IN_FSIGMA_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@fsigma_in A top s) -> (@fsigma_in A (@subtopology A top s) t) = ((@fsigma_in A top t) /\ (@SUBSET A t s)). +Axiom thm_GDELTA_IN_GDELTA_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@gdelta_in A top s) -> (@gdelta_in A (@subtopology A top s) t) = ((@gdelta_in A top t) /\ (@SUBSET A t s)). +Axiom thm_is_metric_space : forall {A : Type'}, forall s : A -> Prop, forall d : (prod A A) -> R, (@is_metric_space A (@pair (A -> Prop) ((prod A A) -> R) s d)) = ((forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> Rle (R_of_N (NUMERAL 0%N)) (d (@pair A A x y))) /\ ((forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> ((d (@pair A A x y)) = (R_of_N (NUMERAL 0%N))) = (x = y)) /\ ((forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> (d (@pair A A x y)) = (d (@pair A A y x))) /\ (forall x : A, forall y : A, forall z : A, ((@IN A x s) /\ ((@IN A y s) /\ (@IN A z s))) -> Rle (d (@pair A A x z)) (Rplus (d (@pair A A x y)) (d (@pair A A y z))))))). +Axiom thm_IS_METRIC_SPACE : forall {A : Type'}, forall s : A -> Prop, forall d : (prod A A) -> R, (@is_metric_space A (@pair (A -> Prop) ((prod A A) -> R) s d)) = ((forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> ((d (@pair A A x y)) = (R_of_N (NUMERAL 0%N))) = (x = y)) /\ (forall x : A, forall y : A, forall z : A, ((@IN A x s) /\ ((@IN A y s) /\ (@IN A z s))) -> Rle (d (@pair A A x z)) (Rplus (d (@pair A A y x)) (d (@pair A A y z))))). +Axiom thm_IS_METRIC_SPACE_SUBSPACE : forall {A : Type'}, forall s : A -> Prop, forall d : (prod A A) -> R, (@is_metric_space A (@pair (A -> Prop) ((prod A A) -> R) s d)) -> forall s' : A -> Prop, (@SUBSET A s' s) -> @is_metric_space A (@pair (A -> Prop) ((prod A A) -> R) s' d). +Axiom thm_mspace : forall {A : Type'}, forall m : Metric A, (@mspace A m) = (@fst (A -> Prop) ((prod A A) -> R) (@dest_metric A m)). +Axiom thm_mdist : forall {A : Type'}, forall m : Metric A, (@mdist A m) = (@snd (A -> Prop) ((prod A A) -> R) (@dest_metric A m)). +Axiom thm_METRIC : forall {A : Type'}, forall s : A -> Prop, forall d : (prod A A) -> R, (@is_metric_space A (@pair (A -> Prop) ((prod A A) -> R) s d)) -> ((@mspace A (@metric A (@pair (A -> Prop) ((prod A A) -> R) s d))) = s) /\ ((@mdist A (@metric A (@pair (A -> Prop) ((prod A A) -> R) s d))) = d). +Axiom thm_MSPACE : forall {A : Type'}, forall s : A -> Prop, forall d : (prod A A) -> R, (@is_metric_space A (@pair (A -> Prop) ((prod A A) -> R) s d)) -> (@mspace A (@metric A (@pair (A -> Prop) ((prod A A) -> R) s d))) = s. +Axiom thm_MDIST : forall {A : Type'}, forall s : A -> Prop, forall d : (prod A A) -> R, (@is_metric_space A (@pair (A -> Prop) ((prod A A) -> R) s d)) -> (@mdist A (@metric A (@pair (A -> Prop) ((prod A A) -> R) s d))) = d. +Axiom thm_MDIST_POS_LE : forall {A : Type'}, forall m : Metric A, forall x : A, forall y : A, ((@IN A x (@mspace A m)) /\ (@IN A y (@mspace A m))) -> Rle (R_of_N (NUMERAL 0%N)) (@mdist A m (@pair A A x y)). +Axiom thm_MDIST_0 : forall {A : Type'}, forall m : Metric A, forall x : A, forall y : A, ((@IN A x (@mspace A m)) /\ (@IN A y (@mspace A m))) -> ((@mdist A m (@pair A A x y)) = (R_of_N (NUMERAL 0%N))) = (x = y). +Axiom thm_MDIST_TRIANGLE : forall {A : Type'}, forall m : Metric A, forall x : A, forall y : A, forall z : A, ((@IN A x (@mspace A m)) /\ ((@IN A y (@mspace A m)) /\ (@IN A z (@mspace A m)))) -> Rle (@mdist A m (@pair A A x z)) (Rplus (@mdist A m (@pair A A x y)) (@mdist A m (@pair A A y z))). +Axiom thm_MDIST_SYM : forall {A : Type'}, forall m : Metric A, forall x : A, forall y : A, ((@IN A x (@mspace A m)) /\ (@IN A y (@mspace A m))) -> (@mdist A m (@pair A A x y)) = (@mdist A m (@pair A A y x)). +Axiom thm_REAL_ABS_MDIST : forall {A : Type'}, forall m : Metric A, forall x : A, forall y : A, ((@IN A x (@mspace A m)) /\ (@IN A y (@mspace A m))) -> (Rabs (@mdist A m (@pair A A x y))) = (@mdist A m (@pair A A x y)). +Axiom thm_MDIST_POS_LT : forall {A : Type'}, forall m : Metric A, forall x : A, forall y : A, ((@IN A x (@mspace A m)) /\ ((@IN A y (@mspace A m)) /\ (~ (x = y)))) -> Rlt (R_of_N (NUMERAL 0%N)) (@mdist A m (@pair A A x y)). +Axiom thm_MDIST_REFL : forall {A : Type'}, forall m : Metric A, forall x : A, (@IN A x (@mspace A m)) -> (@mdist A m (@pair A A x x)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_MDIST_POS_EQ : forall {A : Type'}, forall m : Metric A, forall x : A, forall y : A, ((@IN A x (@mspace A m)) /\ (@IN A y (@mspace A m))) -> (Rlt (R_of_N (NUMERAL 0%N)) (@mdist A m (@pair A A x y))) = (~ (x = y)). +Axiom thm_MDIST_REVERSE_TRIANGLE : forall {A : Type'}, forall m : Metric A, forall x : A, forall y : A, forall z : A, ((@IN A x (@mspace A m)) /\ ((@IN A y (@mspace A m)) /\ (@IN A z (@mspace A m)))) -> Rle (Rabs (Rminus (@mdist A m (@pair A A x y)) (@mdist A m (@pair A A y z)))) (@mdist A m (@pair A A x z)). +Axiom thm_mball : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, (@mball A m (@pair A R x r)) = (@GSPEC A (fun GEN_PVAR_1613 : A => exists y : A, @SETSPEC A GEN_PVAR_1613 ((@IN A x (@mspace A m)) /\ ((@IN A y (@mspace A m)) /\ (Rlt (@mdist A m (@pair A A x y)) r))) y)). +Axiom thm_IN_MBALL : forall {A : Type'}, forall m : Metric A, forall x : A, forall y : A, forall r : R, (@IN A y (@mball A m (@pair A R x r))) = ((@IN A x (@mspace A m)) /\ ((@IN A y (@mspace A m)) /\ (Rlt (@mdist A m (@pair A A x y)) r))). +Axiom thm_CENTRE_IN_MBALL : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@IN A x (@mspace A m))) -> @IN A x (@mball A m (@pair A R x r)). +Axiom thm_CENTRE_IN_MBALL_EQ : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, (@IN A x (@mball A m (@pair A R x r))) = ((@IN A x (@mspace A m)) /\ (Rlt (R_of_N (NUMERAL 0%N)) r)). +Axiom thm_MBALL_SUBSET_MSPACE : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, @SUBSET A (@mball A m (@pair A R x r)) (@mspace A m). +Axiom thm_MBALL_EMPTY : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, (Rle r (R_of_N (NUMERAL 0%N))) -> (@mball A m (@pair A R x r)) = (@EMPTY A). +Axiom thm_MBALL_EMPTY_ALT : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, (~ (@IN A x (@mspace A m))) -> (@mball A m (@pair A R x r)) = (@EMPTY A). +Axiom thm_MBALL_EQ_EMPTY : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, ((@mball A m (@pair A R x r)) = (@EMPTY A)) = ((~ (@IN A x (@mspace A m))) \/ (Rle r (R_of_N (NUMERAL 0%N)))). +Axiom thm_MBALL_SUBSET : forall {A : Type'}, forall m : Metric A, forall x : A, forall y : A, forall a : R, forall b : R, ((@IN A y (@mspace A m)) /\ (Rle (Rplus (@mdist A m (@pair A A x y)) a) b)) -> @SUBSET A (@mball A m (@pair A R x a)) (@mball A m (@pair A R y b)). +Axiom thm_DISJOINT_MBALL : forall {A : Type'}, forall m : Metric A, forall x : A, forall x' : A, forall r : R, forall r' : R, (Rle (Rplus r r') (@mdist A m (@pair A A x x'))) -> @DISJOINT A (@mball A m (@pair A R x r)) (@mball A m (@pair A R x' r')). +Axiom thm_MBALL_SUBSET_CONCENTRIC : forall {A : Type'}, forall m : Metric A, forall x : A, forall r1 : R, forall r2 : R, (Rle r1 r2) -> @SUBSET A (@mball A m (@pair A R x r1)) (@mball A m (@pair A R x r2)). +Axiom thm_submetric : forall {A : Type'}, forall s : A -> Prop, forall m : Metric A, (@submetric A m s) = (@metric A (@pair (A -> Prop) ((prod A A) -> R) (@INTER A s (@mspace A m)) (@mdist A m))). +Axiom thm_SUBMETRIC : forall {A : Type'}, (forall m : Metric A, forall s : A -> Prop, (@mspace A (@submetric A m s)) = (@INTER A s (@mspace A m))) /\ (forall m : Metric A, forall s : A -> Prop, (@mdist A (@submetric A m s)) = (@mdist A m)). +Axiom thm_MBALL_SUBMETRIC_EQ : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall a : A, forall r : R, (@mball A (@submetric A m s) (@pair A R a r)) = (@COND (A -> Prop) (@IN A a s) (@INTER A s (@mball A m (@pair A R a r))) (@EMPTY A)). +Axiom thm_MBALL_SUBMETRIC : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall x : A, forall r : R, (@IN A x s) -> (@mball A (@submetric A m s) (@pair A R x r)) = (@INTER A (@mball A m (@pair A R x r)) s). +Axiom thm_SUBMETRIC_UNIV : forall {A : Type'} (m : Metric A), (@submetric A m (@UNIV A)) = m. +Axiom thm_SUBMETRIC_SUBMETRIC : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall t : A -> Prop, (@submetric A (@submetric A m s) t) = (@submetric A m (@INTER A s t)). +Axiom thm_SUBMETRIC_MSPACE : forall {A : Type'}, forall m : Metric A, (@submetric A m (@mspace A m)) = m. +Axiom thm_SUBMETRIC_RESTRICT : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@submetric A m s) = (@submetric A m (@INTER A (@mspace A m) s)). +Axiom thm_mtopology : forall {A : Type'}, forall m : Metric A, (@mtopology A m) = (@topology A (@GSPEC (A -> Prop) (fun GEN_PVAR_1614 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1614 ((@SUBSET A u (@mspace A m)) /\ (forall x : A, (@IN A x u) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@SUBSET A (@mball A m (@pair A R x r)) u))) u))). +Axiom thm_IS_TOPOLOGY_METRIC_TOPOLOGY : forall {A : Type'} (m : Metric A), @istopology A (@GSPEC (A -> Prop) (fun GEN_PVAR_1615 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1615 ((@SUBSET A u (@mspace A m)) /\ (forall x : A, (@IN A x u) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@SUBSET A (@mball A m (@pair A R x r)) u))) u)). +Axiom thm_OPEN_IN_MTOPOLOGY : forall {A : Type'}, forall m : Metric A, forall u : A -> Prop, (@open_in A (@mtopology A m) u) = ((@SUBSET A u (@mspace A m)) /\ (forall x : A, (@IN A x u) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@SUBSET A (@mball A m (@pair A R x r)) u))). +Axiom thm_TOPSPACE_MTOPOLOGY : forall {A : Type'}, forall m : Metric A, (@topspace A (@mtopology A m)) = (@mspace A m). +Axiom thm_SUBTOPOLOGY_MSPACE : forall {A : Type'}, forall m : Metric A, (@subtopology A (@mtopology A m) (@mspace A m)) = (@mtopology A m). +Axiom thm_OPEN_IN_MSPACE : forall {A : Type'}, forall m : Metric A, @open_in A (@mtopology A m) (@mspace A m). +Axiom thm_CLOSED_IN_MSPACE : forall {A : Type'}, forall m : Metric A, @closed_in A (@mtopology A m) (@mspace A m). +Axiom thm_OPEN_IN_MBALL : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, @open_in A (@mtopology A m) (@mball A m (@pair A R x r)). +Axiom thm_MTOPOLOGY_SUBMETRIC : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@mtopology A (@submetric A m s)) = (@subtopology A (@mtopology A m) s). +Axiom thm_METRIC_INJECTIVE_IMAGE : forall {A B : Type'}, forall f : A -> B, forall m : Metric B, forall s : A -> Prop, ((@SUBSET B (@IMAGE A B f s) (@mspace B m)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y)) -> ((@mspace A (@metric A (@pair (A -> Prop) ((prod A A) -> R) s (@GABS ((prod A A) -> R) (fun f' : (prod A A) -> R => forall x : A, forall y : A, @GEQ R (f' (@pair A A x y)) (@mdist B m (@pair B B (f x) (f y)))))))) = s) /\ ((@mdist A (@metric A (@pair (A -> Prop) ((prod A A) -> R) s (@GABS ((prod A A) -> R) (fun f' : (prod A A) -> R => forall x : A, forall y : A, @GEQ R (f' (@pair A A x y)) (@mdist B m (@pair B B (f x) (f y)))))))) = (@GABS ((prod A A) -> R) (fun f' : (prod A A) -> R => forall x : A, forall y : A, @GEQ R (f' (@pair A A x y)) (@mdist B m (@pair B B (f x) (f y)))))). +Axiom thm_MTOPOLOGY_BASE : forall {A : Type'}, forall m : Metric A, (@mtopology A m) = (@topology A (@UNION_OF A (@ARBITRARY A) (@GSPEC (A -> Prop) (fun GEN_PVAR_1619 : A -> Prop => exists x : A, exists r : R, @SETSPEC (A -> Prop) GEN_PVAR_1619 ((@IN A x (@mspace A m)) /\ (Rlt (R_of_N (NUMERAL 0%N)) r)) (@mball A m (@pair A R x r)))))). +Axiom thm_CLOSED_IN_METRIC : forall {A : Type'}, forall m : Metric A, forall c : A -> Prop, (@closed_in A (@mtopology A m) c) = ((@SUBSET A c (@mspace A m)) /\ (forall x : A, (@IN A x (@DIFF A (@mspace A m) c)) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@DISJOINT A c (@mball A m (@pair A R x r))))). +Axiom thm_mcball : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, (@mcball A m (@pair A R x r)) = (@GSPEC A (fun GEN_PVAR_1620 : A => exists y : A, @SETSPEC A GEN_PVAR_1620 ((@IN A x (@mspace A m)) /\ ((@IN A y (@mspace A m)) /\ (Rle (@mdist A m (@pair A A x y)) r))) y)). +Axiom thm_IN_MCBALL : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, forall y : A, (@IN A y (@mcball A m (@pair A R x r))) = ((@IN A x (@mspace A m)) /\ ((@IN A y (@mspace A m)) /\ (Rle (@mdist A m (@pair A A x y)) r))). +Axiom thm_CENTRE_IN_MCBALL : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, ((Rle (R_of_N (NUMERAL 0%N)) r) /\ (@IN A x (@mspace A m))) -> @IN A x (@mcball A m (@pair A R x r)). +Axiom thm_CENTRE_IN_MCBALL_EQ : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, (@IN A x (@mcball A m (@pair A R x r))) = ((@IN A x (@mspace A m)) /\ (Rle (R_of_N (NUMERAL 0%N)) r)). +Axiom thm_MCBALL_EQ_EMPTY : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, ((@mcball A m (@pair A R x r)) = (@EMPTY A)) = ((~ (@IN A x (@mspace A m))) \/ (Rlt r (R_of_N (NUMERAL 0%N)))). +Axiom thm_MCBALL_EMPTY : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, (Rlt r (R_of_N (NUMERAL 0%N))) -> (@mcball A m (@pair A R x r)) = (@EMPTY A). +Axiom thm_MCBALL_EMPTY_ALT : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, (~ (@IN A x (@mspace A m))) -> (@mcball A m (@pair A R x r)) = (@EMPTY A). +Axiom thm_MCBALL_SUBSET_MSPACE : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, @SUBSET A (@mcball A m (@pair A R x r)) (@mspace A m). +Axiom thm_MBALL_SUBSET_MCBALL : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, @SUBSET A (@mball A m (@pair A R x r)) (@mcball A m (@pair A R x r)). +Axiom thm_MCBALL_SUBSET : forall {A : Type'}, forall m : Metric A, forall x : A, forall y : A, forall a : R, forall b : R, ((@IN A y (@mspace A m)) /\ (Rle (Rplus (@mdist A m (@pair A A x y)) a) b)) -> @SUBSET A (@mcball A m (@pair A R x a)) (@mcball A m (@pair A R y b)). +Axiom thm_MCBALL_SUBSET_CONCENTRIC : forall {A : Type'}, forall m : Metric A, forall x : A, forall a : R, forall b : R, (Rle a b) -> @SUBSET A (@mcball A m (@pair A R x a)) (@mcball A m (@pair A R x b)). +Axiom thm_MCBALL_SUBSET_MBALL : forall {A : Type'}, forall m : Metric A, forall x : A, forall y : A, forall a : R, forall b : R, ((@IN A y (@mspace A m)) /\ (Rlt (Rplus (@mdist A m (@pair A A x y)) a) b)) -> @SUBSET A (@mcball A m (@pair A R x a)) (@mball A m (@pair A R y b)). +Axiom thm_MCBALL_SUBSET_MBALL_CONCENTRIC : forall {A : Type'}, forall m : Metric A, forall x : A, forall a : R, forall b : R, (Rlt a b) -> @SUBSET A (@mcball A m (@pair A R x a)) (@mball A m (@pair A R x b)). +Axiom thm_CLOSED_IN_MCBALL : forall {A : Type'}, forall m : Metric A, forall x : A, forall r : R, @closed_in A (@mtopology A m) (@mcball A m (@pair A R x r)). +Axiom thm_MCBALL_SUBMETRIC_EQ : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall a : A, forall r : R, (@mcball A (@submetric A m s) (@pair A R a r)) = (@COND (A -> Prop) (@IN A a s) (@INTER A s (@mcball A m (@pair A R a r))) (@EMPTY A)). +Axiom thm_MCBALL_SUBMETRIC : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall x : A, forall r : R, (@IN A x s) -> (@mcball A (@submetric A m s) (@pair A R x r)) = (@INTER A (@mcball A m (@pair A R x r)) s). +Axiom thm_msphere : forall {A : Type'}, forall m : Metric A, forall x : A, forall e : R, (@msphere A m (@pair A R x e)) = (@GSPEC A (fun GEN_PVAR_1621 : A => exists y : A, @SETSPEC A GEN_PVAR_1621 ((@mdist A m (@pair A A x y)) = e) y)). +Axiom thm_OPEN_IN_MTOPOLOGY_MCBALL : forall {A : Type'}, forall m : Metric A, forall u : A -> Prop, (@open_in A (@mtopology A m) u) = ((@SUBSET A u (@mspace A m)) /\ (forall x : A, (@IN A x u) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@SUBSET A (@mcball A m (@pair A R x r)) u))). +Axiom thm_METRIC_DERIVED_SET_OF : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@derived_set_of A (@mtopology A m) s) = (@GSPEC A (fun GEN_PVAR_1622 : A => exists x : A, @SETSPEC A GEN_PVAR_1622 ((@IN A x (@mspace A m)) /\ (forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> exists y : A, (~ (y = x)) /\ ((@IN A y s) /\ (@IN A y (@mball A m (@pair A R x r)))))) x)). +Axiom thm_METRIC_CLOSURE_OF : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@closure_of A (@mtopology A m) s) = (@GSPEC A (fun GEN_PVAR_1623 : A => exists x : A, @SETSPEC A GEN_PVAR_1623 ((@IN A x (@mspace A m)) /\ (forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> exists y : A, (@IN A y s) /\ (@IN A y (@mball A m (@pair A R x r))))) x)). +Axiom thm_METRIC_CLOSURE_OF_ALT : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@closure_of A (@mtopology A m) s) = (@GSPEC A (fun GEN_PVAR_1624 : A => exists x : A, @SETSPEC A GEN_PVAR_1624 ((@IN A x (@mspace A m)) /\ (forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> exists y : A, (@IN A y s) /\ (@IN A y (@mcball A m (@pair A R x r))))) x)). +Axiom thm_METRIC_INTERIOR_OF : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@interior_of A (@mtopology A m) s) = (@GSPEC A (fun GEN_PVAR_1625 : A => exists x : A, @SETSPEC A GEN_PVAR_1625 ((@IN A x (@mspace A m)) /\ (exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET A (@mball A m (@pair A R x e)) s))) x)). +Axiom thm_METRIC_INTERIOR_OF_ALT : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@interior_of A (@mtopology A m) s) = (@GSPEC A (fun GEN_PVAR_1626 : A => exists x : A, @SETSPEC A GEN_PVAR_1626 ((@IN A x (@mspace A m)) /\ (exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET A (@mcball A m (@pair A R x e)) s))) x)). +Axiom thm_IN_INTERIOR_OF_MBALL : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall x : A, (@IN A x (@interior_of A (@mtopology A m) s)) = ((@IN A x (@mspace A m)) /\ (exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET A (@mball A m (@pair A R x e)) s))). +Axiom thm_IN_INTERIOR_OF_MCBALL : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall x : A, (@IN A x (@interior_of A (@mtopology A m) s)) = ((@IN A x (@mspace A m)) /\ (exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET A (@mcball A m (@pair A R x e)) s))). +Axiom thm_mbounded : forall {A : Type'}, forall s : A -> Prop, forall m : Metric A, (@mbounded A m s) = (exists c : A, exists b : R, @SUBSET A s (@mcball A m (@pair A R c b))). +Axiom thm_MBOUNDED_POS : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@mbounded A m s) = (exists c : A, exists b : R, (Rlt (R_of_N (NUMERAL 0%N)) b) /\ (@SUBSET A s (@mcball A m (@pair A R c b)))). +Axiom thm_MBOUNDED_ALT : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@mbounded A m s) = ((@SUBSET A s (@mspace A m)) /\ (exists b : R, forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> Rle (@mdist A m (@pair A A x y)) b)). +Axiom thm_MBOUNDED_ALT_POS : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@mbounded A m s) = ((@SUBSET A s (@mspace A m)) /\ (exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> Rle (@mdist A m (@pair A A x y)) B))). +Axiom thm_MBOUNDED_SUBSET : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall t : A -> Prop, ((@mbounded A m t) /\ (@SUBSET A s t)) -> @mbounded A m s. +Axiom thm_MBOUNDED_SUBSET_MSPACE : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@mbounded A m s) -> @SUBSET A s (@mspace A m). +Axiom thm_MBOUNDED : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@mbounded A m s) = ((s = (@EMPTY A)) \/ ((forall x : A, (@IN A x s) -> @IN A x (@mspace A m)) /\ (exists c : A, exists b : R, (@IN A c (@mspace A m)) /\ (forall x : A, (@IN A x s) -> Rle (@mdist A m (@pair A A c x)) b)))). +Axiom thm_MBOUNDED_EMPTY : forall {A : Type'}, forall m : Metric A, @mbounded A m (@EMPTY A). +Axiom thm_MBOUNDED_MCBALL : forall {A : Type'}, forall m : Metric A, forall c : A, forall b : R, @mbounded A m (@mcball A m (@pair A R c b)). +Axiom thm_MBOUNDED_MBALL : forall {A : Type'}, forall m : Metric A, forall c : A, forall b : R, @mbounded A m (@mball A m (@pair A R c b)). +Axiom thm_MBOUNDED_INSERT : forall {A : Type'}, forall m : Metric A, forall a : A, forall s : A -> Prop, (@mbounded A m (@INSERT A a s)) = ((@IN A a (@mspace A m)) /\ (@mbounded A m s)). +Axiom thm_MBOUNDED_INTER : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall t : A -> Prop, ((@mbounded A m s) /\ (@mbounded A m t)) -> @mbounded A m (@INTER A s t). +Axiom thm_MBOUNDED_UNION : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall t : A -> Prop, (@mbounded A m (@UNION A s t)) = ((@mbounded A m s) /\ (@mbounded A m t)). +Axiom thm_MBOUNDED_UNIONS : forall {A : Type'}, forall m : Metric A, forall f : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) f) /\ (forall s : A -> Prop, (@IN (A -> Prop) s f) -> @mbounded A m s)) -> @mbounded A m (@UNIONS A f). +Axiom thm_MBOUNDED_CLOSURE_OF : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@mbounded A m s) -> @mbounded A m (@closure_of A (@mtopology A m) s). +Axiom thm_MBOUNDED_CLOSURE_OF_EQ : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@SUBSET A s (@mspace A m)) -> (@mbounded A m (@closure_of A (@mtopology A m) s)) = (@mbounded A m s). +Axiom thm_MBOUNDED_SUBMETRIC : forall {A : Type'} (t : A -> Prop), forall m : Metric A, forall s : A -> Prop, (@mbounded A (@submetric A m s) t) = ((@mbounded A m (@INTER A s t)) /\ (@SUBSET A t s)). +Axiom thm_COMPACT_IN_IMP_MBOUNDED : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@compact_in A (@mtopology A m) s) -> @mbounded A m s. +Axiom thm_HAUSDORFF_SPACE_MTOPOLOGY : forall {A : Type'}, forall m : Metric A, @hausdorff_space A (@mtopology A m). +Axiom thm_T1_SPACE_MTOPOLOGY : forall {A : Type'}, forall m : Metric A, @t1_space A (@mtopology A m). +Axiom thm_discrete_metric : forall {_415081 : Type'}, forall s : _415081 -> Prop, (@discrete_metric _415081 s) = (@metric _415081 (@pair (_415081 -> Prop) ((prod _415081 _415081) -> R) s (@GABS ((prod _415081 _415081) -> R) (fun f : (prod _415081 _415081) -> R => forall x : _415081, forall y : _415081, @GEQ R (f (@pair _415081 _415081 x y)) (@COND R (x = y) (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))))). +Axiom thm_DISCRETE_METRIC : forall {A : Type'}, (forall s : A -> Prop, (@mspace A (@discrete_metric A s)) = s) /\ (forall s : A -> Prop, forall x : A, forall y : A, (@mdist A (@discrete_metric A s) (@pair A A x y)) = (@COND R (x = y) (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_MTOPOLOGY_DISCRETE_METRIC : forall {A : Type'}, forall s : A -> Prop, (@mtopology A (@discrete_metric A s)) = (@discrete_topology A s). +Axiom thm_DISCRETE_ULTRAMETRIC : forall {A : Type'}, forall s : A -> Prop, forall x : A, forall y : A, forall z : A, Rle (@mdist A (@discrete_metric A s) (@pair A A x z)) (Rmax (@mdist A (@discrete_metric A s) (@pair A A x y)) (@mdist A (@discrete_metric A s) (@pair A A y z))). +Axiom thm_MBOUNDED_DISCRETE_METRIC : forall {A : Type'}, forall u : A -> Prop, forall s : A -> Prop, (@mbounded A (@discrete_metric A u) s) = (@SUBSET A s u). +Axiom thm_metrizable_space : forall {_415259 : Type'}, forall top : Topology _415259, (@metrizable_space _415259 top) = (exists m : Metric _415259, top = (@mtopology _415259 m)). +Axiom thm_METRIZABLE_SPACE_MTOPOLOGY : forall {_415268 : Type'}, forall m : Metric _415268, @metrizable_space _415268 (@mtopology _415268 m). +Axiom thm_FORALL_METRIC_TOPOLOGY : forall {A : Type'}, forall P : (Topology A) -> (A -> Prop) -> Prop, (forall m : Metric A, P (@mtopology A m) (@mspace A m)) = (forall top : Topology A, (@metrizable_space A top) -> P top (@topspace A top)). +Axiom thm_FORALL_METRIZABLE_SPACE : forall {A : Type'}, forall P : (Topology A) -> (A -> Prop) -> Prop, (forall top : Topology A, (@metrizable_space A top) -> P top (@topspace A top)) = (forall m : Metric A, P (@mtopology A m) (@mspace A m)). +Axiom thm_EXISTS_METRIZABLE_SPACE : forall {A : Type'}, forall P : (Topology A) -> (A -> Prop) -> Prop, (exists top : Topology A, (@metrizable_space A top) /\ (P top (@topspace A top))) = (exists m : Metric A, P (@mtopology A m) (@mspace A m)). +Axiom thm_METRIZABLE_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @metrizable_space A (@discrete_topology A u). +Axiom thm_METRIZABLE_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@metrizable_space A top) -> @metrizable_space A (@subtopology A top s). +Axiom thm_HOMEOMORPHIC_METRIZABLE_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@metrizable_space A top) = (@metrizable_space B top'). +Axiom thm_METRIZABLE_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@metrizable_space A top)) -> @metrizable_space B top'. +Axiom thm_METRIZABLE_IMP_HAUSDORFF_SPACE : forall {_415540 : Type'}, forall top : Topology _415540, (@metrizable_space _415540 top) -> @hausdorff_space _415540 top. +Axiom thm_METRIZABLE_IMP_KC_SPACE : forall {A : Type'}, forall top : Topology A, (@metrizable_space A top) -> @kc_space A top. +Axiom thm_KC_SPACE_MTOPOLOGY : forall {A : Type'}, forall m : Metric A, @kc_space A (@mtopology A m). +Axiom thm_METRIZABLE_IMP_T1_SPACE : forall {_415571 : Type'}, forall top : Topology _415571, (@metrizable_space _415571 top) -> @t1_space _415571 top. +Axiom thm_CLOSED_IMP_GDELTA_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@metrizable_space A top) /\ (@closed_in A top s)) -> @gdelta_in A top s. +Axiom thm_OPEN_IMP_FSIGMA_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@metrizable_space A top) /\ (@open_in A top s)) -> @fsigma_in A top s. +Axiom thm_FIRST_COUNTABLE_MTOPOLOGY : forall {A : Type'}, forall m : Metric A, @first_countable A (@mtopology A m). +Axiom thm_METRIZABLE_IMP_FIRST_COUNTABLE : forall {A : Type'}, forall top : Topology A, (@metrizable_space A top) -> @first_countable A top. +Axiom thm_connected_space : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (~ (exists e1 : A -> Prop, exists e2 : A -> Prop, (@open_in A top e1) /\ ((@open_in A top e2) /\ ((@SUBSET A (@topspace A top) (@UNION A e1 e2)) /\ (((@INTER A e1 e2) = (@EMPTY A)) /\ ((~ (e1 = (@EMPTY A))) /\ (~ (e2 = (@EMPTY A))))))))). +Axiom thm_connected_in : forall {_415952 : Type'}, forall top : Topology _415952, forall s : _415952 -> Prop, (@connected_in _415952 top s) = ((@SUBSET _415952 s (@topspace _415952 top)) /\ (@connected_space _415952 (@subtopology _415952 top s))). +Axiom thm_CONNECTED_IN_SUBSET_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@connected_in A top s) -> @SUBSET A s (@topspace A top). +Axiom thm_CONNECTED_IN_TOPSPACE : forall {A : Type'}, forall top : Topology A, (@connected_in A top (@topspace A top)) = (@connected_space A top). +Axiom thm_CONNECTED_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@connected_in A top s) -> @connected_space A (@subtopology A top s). +Axiom thm_CONNECTED_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@connected_in A (@subtopology A top s) t) = ((@connected_in A top t) /\ (@SUBSET A t s)). +Axiom thm_CONNECTED_SPACE_EQ : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (~ (exists e1 : A -> Prop, exists e2 : A -> Prop, (@open_in A top e1) /\ ((@open_in A top e2) /\ (((@UNION A e1 e2) = (@topspace A top)) /\ (((@INTER A e1 e2) = (@EMPTY A)) /\ ((~ (e1 = (@EMPTY A))) /\ (~ (e2 = (@EMPTY A))))))))). +Axiom thm_CONNECTED_SPACE_CLOSED_IN : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (~ (exists e1 : A -> Prop, exists e2 : A -> Prop, (@closed_in A top e1) /\ ((@closed_in A top e2) /\ ((@SUBSET A (@topspace A top) (@UNION A e1 e2)) /\ (((@INTER A e1 e2) = (@EMPTY A)) /\ ((~ (e1 = (@EMPTY A))) /\ (~ (e2 = (@EMPTY A))))))))). +Axiom thm_CONNECTED_SPACE_CLOSED_IN_EQ : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (~ (exists e1 : A -> Prop, exists e2 : A -> Prop, (@closed_in A top e1) /\ ((@closed_in A top e2) /\ (((@UNION A e1 e2) = (@topspace A top)) /\ (((@INTER A e1 e2) = (@EMPTY A)) /\ ((~ (e1 = (@EMPTY A))) /\ (~ (e2 = (@EMPTY A))))))))). +Axiom thm_CONNECTED_SPACE_CLOPEN_IN : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (forall t : A -> Prop, ((@open_in A top t) /\ (@closed_in A top t)) -> (t = (@EMPTY A)) \/ (t = (@topspace A top))). +Axiom thm_CONNECTED_SPACE_EQ_FRONTIER_EQ_EMPTY : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (forall s : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ ((@frontier_of A top s) = (@EMPTY A))) -> (s = (@EMPTY A)) \/ (s = (@topspace A top))). +Axiom thm_CONNECTED_SPACE_FRONTIER_EQ_EMPTY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@connected_space A top) /\ (@SUBSET A s (@topspace A top))) -> ((@frontier_of A top s) = (@EMPTY A)) = ((s = (@EMPTY A)) \/ (s = (@topspace A top))). +Axiom thm_CONNECTED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@connected_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (~ (exists e1 : A -> Prop, exists e2 : A -> Prop, (@open_in A top e1) /\ ((@open_in A top e2) /\ ((@SUBSET A s (@UNION A e1 e2)) /\ (((@INTER A e1 (@INTER A e2 s)) = (@EMPTY A)) /\ ((~ ((@INTER A e1 s) = (@EMPTY A))) /\ (~ ((@INTER A e2 s) = (@EMPTY A)))))))))). +Axiom thm_CONNECTED_IN_CLOSED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@connected_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (~ (exists e1 : A -> Prop, exists e2 : A -> Prop, (@closed_in A top e1) /\ ((@closed_in A top e2) /\ ((@SUBSET A s (@UNION A e1 e2)) /\ (((@INTER A e1 (@INTER A e2 s)) = (@EMPTY A)) /\ ((~ ((@INTER A e1 s) = (@EMPTY A))) /\ (~ ((@INTER A e2 s) = (@EMPTY A)))))))))). +Axiom thm_CONNECTED_IN_EMPTY : forall {A : Type'}, forall top : Topology A, @connected_in A top (@EMPTY A). +Axiom thm_CONNECTED_SPACE_TOPSPACE_EMPTY : forall {A : Type'}, forall top : Topology A, ((@topspace A top) = (@EMPTY A)) -> @connected_space A top. +Axiom thm_CONNECTED_IN_SING : forall {A : Type'}, forall top : Topology A, forall a : A, (@connected_in A top (@INSERT A a (@EMPTY A))) = (@IN A a (@topspace A top)). +Axiom thm_CONNECTED_IN_ABSOLUTE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@connected_in A (@subtopology A top s) s) = (@connected_in A top s). +Axiom thm_CONNECTED_IN_UNIONS : forall {A : Type'}, forall top : Topology A, forall u : (A -> Prop) -> Prop, ((forall s : A -> Prop, (@IN (A -> Prop) s u) -> @connected_in A top s) /\ (~ ((@INTERS A u) = (@EMPTY A)))) -> @connected_in A top (@UNIONS A u). +Axiom thm_CONNECTED_IN_UNION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@connected_in A top s) /\ ((@connected_in A top t) /\ (~ ((@INTER A s t) = (@EMPTY A))))) -> @connected_in A top (@UNION A s t). +Axiom thm_CONNECTED_SPACE_SUBCONNECTED : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> exists s : A -> Prop, (@connected_in A top s) /\ ((@IN A x s) /\ (@IN A y s))). +Axiom thm_CONNECTED_IN_INTERMEDIATE_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@connected_in A top s) /\ ((@SUBSET A s t) /\ (@SUBSET A t (@closure_of A top s)))) -> @connected_in A top t. +Axiom thm_CONNECTED_IN_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@connected_in A top s) -> @connected_in A top (@closure_of A top s). +Axiom thm_CONNECTED_IN_SEPARATION_ALT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@connected_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (~ (exists c1 : A -> Prop, exists c2 : A -> Prop, (@SUBSET A s (@UNION A c1 c2)) /\ ((~ ((@INTER A c1 s) = (@EMPTY A))) /\ ((~ ((@INTER A c2 s) = (@EMPTY A))) /\ (((@INTER A c1 (@closure_of A top c2)) = (@EMPTY A)) /\ ((@INTER A c2 (@closure_of A top c1)) = (@EMPTY A)))))))). +Axiom thm_CONNECTED_IN_SEPARATION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@connected_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (~ (exists c1 : A -> Prop, exists c2 : A -> Prop, ((@UNION A c1 c2) = s) /\ ((~ (c1 = (@EMPTY A))) /\ ((~ (c2 = (@EMPTY A))) /\ (((@INTER A c1 (@closure_of A top c2)) = (@EMPTY A)) /\ ((@INTER A c2 (@closure_of A top c1)) = (@EMPTY A)))))))). +Axiom thm_CONNECTED_IN_EQ_NOT_SEPARATED : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@connected_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (~ (exists c1 : A -> Prop, exists c2 : A -> Prop, ((@UNION A c1 c2) = s) /\ ((~ (c1 = (@EMPTY A))) /\ ((~ (c2 = (@EMPTY A))) /\ (@separated_in A top c1 c2)))))). +Axiom thm_CONNECTED_IN_EQ_NOT_SEPARATED_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@connected_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (~ (exists c1 : A -> Prop, exists c2 : A -> Prop, (@SUBSET A s (@UNION A c1 c2)) /\ ((~ ((@INTER A s c1) = (@EMPTY A))) /\ ((~ ((@INTER A s c2) = (@EMPTY A))) /\ (@separated_in A top c1 c2)))))). +Axiom thm_CONNECTED_SPACE_EQ_NOT_SEPARATED : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (~ (exists c1 : A -> Prop, exists c2 : A -> Prop, ((@UNION A c1 c2) = (@topspace A top)) /\ ((~ (c1 = (@EMPTY A))) /\ ((~ (c2 = (@EMPTY A))) /\ (@separated_in A top c1 c2))))). +Axiom thm_CONNECTED_SPACE_EQ_NOT_SEPARATED_SUBSET : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (~ (exists c1 : A -> Prop, exists c2 : A -> Prop, (@SUBSET A (@topspace A top) (@UNION A c1 c2)) /\ ((~ (c1 = (@EMPTY A))) /\ ((~ (c2 = (@EMPTY A))) /\ (@separated_in A top c1 c2))))). +Axiom thm_CONNECTED_IN_SUBSET_SEPARATED_UNION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall c : A -> Prop, ((@connected_in A top c) /\ ((@separated_in A top s t) /\ (@SUBSET A c (@UNION A s t)))) -> (@SUBSET A c s) \/ (@SUBSET A c t). +Axiom thm_CONNECTED_IN_NONSEPARATED_UNION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@connected_in A top s) /\ ((@connected_in A top t) /\ (~ (@separated_in A top s t)))) -> @connected_in A top (@UNION A s t). +Axiom thm_CONNECTED_IN_EQ_SUBSET_SEPARATED_UNION : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@connected_in A top c) = ((@SUBSET A c (@topspace A top)) /\ (forall s : A -> Prop, forall t : A -> Prop, ((@separated_in A top s t) /\ (@SUBSET A c (@UNION A s t))) -> (@SUBSET A c s) \/ (@SUBSET A c t))). +Axiom thm_CONNECTED_IN_CLOPEN_CASES : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, forall t : A -> Prop, ((@connected_in A top c) /\ ((@closed_in A top t) /\ (@open_in A top t))) -> (@SUBSET A c t) \/ (@DISJOINT A c t). +Axiom thm_CONNECTED_SPACE_CLOSURES : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (~ (exists e1 : A -> Prop, exists e2 : A -> Prop, ((@UNION A e1 e2) = (@topspace A top)) /\ (((@INTER A (@closure_of A top e1) (@closure_of A top e2)) = (@EMPTY A)) /\ ((~ (e1 = (@EMPTY A))) /\ (~ (e2 = (@EMPTY A))))))). +Axiom thm_CONNECTED_IN_INTER_FRONTIER_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@connected_in A top s) /\ ((~ ((@INTER A s t) = (@EMPTY A))) /\ (~ ((@DIFF A s t) = (@EMPTY A))))) -> ~ ((@INTER A s (@frontier_of A top t)) = (@EMPTY A)). +Axiom thm_CONNECTED_IN_CONTINUOUS_MAP_IMAGE : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@connected_in A top s)) -> @connected_in B top' (@IMAGE A B f s). +Axiom thm_HOMEOMORPHIC_CONNECTED_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@connected_space A top) = (@connected_space B top'). +Axiom thm_HOMEOMORPHIC_MAP_CONNECTEDNESS : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET A u (@topspace A top))) -> (@connected_in B top' (@IMAGE A B f u)) = (@connected_in A top u). +Axiom thm_HOMEOMORPHIC_MAP_CONNECTEDNESS_EQ : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (@connected_in A top u) = ((@SUBSET A u (@topspace A top)) /\ (@connected_in B top' (@IMAGE A B f u))). +Axiom thm_CONNECTED_SPACE_QUOTIENT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall q : A -> B, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') q) /\ (@connected_space A top)) -> @connected_space B top'. +Axiom thm_CONNECTED_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@connected_space A top)) -> @connected_space B top'. +Axiom thm_CONNECTED_IN_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, forall s : A -> Prop, (@connected_in A (@discrete_topology A u) s) = ((@SUBSET A s u) /\ (exists a : A, @SUBSET A s (@INSERT A a (@EMPTY A)))). +Axiom thm_CONNECTED_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, (@connected_space A (@discrete_topology A u)) = (exists a : A, @SUBSET A u (@INSERT A a (@EMPTY A))). +Axiom thm_CONNECTED_IN_IMP_PERFECT_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@t1_space A top) /\ ((@connected_in A top s) /\ (~ (exists a : A, s = (@INSERT A a (@EMPTY A)))))) -> @SUBSET A s (@derived_set_of A top s). +Axiom thm_CONNECTED_IN_IMP_PERFECT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hausdorff_space A top) /\ ((@connected_in A top s) /\ (~ (exists a : A, s = (@INSERT A a (@EMPTY A)))))) -> @SUBSET A s (@derived_set_of A top s). +Axiom thm_CARD_LE_PAIRWISE_SEPARATED_CONNECTED_IN : forall {A : Type'}, forall top : Topology A, forall u : (A -> Prop) -> Prop, forall v : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) u) /\ ((@pairwise (A -> Prop) (@separated_in A top) u) /\ ((forall c : A -> Prop, (@IN (A -> Prop) c u) -> ~ (c = (@EMPTY A))) /\ ((forall c : A -> Prop, (@IN (A -> Prop) c v) -> @connected_in A top c) /\ ((@UNIONS A u) = (@UNIONS A v)))))) -> @le_c (A -> Prop) (A -> Prop) u v. +Axiom thm_CONNECTED_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@connected_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@connected_space A top1) /\ (@connected_space B top2))). +Axiom thm_CONNECTED_IN_CROSS : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall s : A -> Prop, forall t : B -> Prop, (@connected_in (prod A B) (@prod_topology A B top1 top2) (@CROSS A B s t)) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@connected_in A top1 s) /\ (@connected_in B top2 t)))). +Axiom thm_CONNECTED_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, (@connected_space (K -> A) (@product_topology A K k tops)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @connected_space A (tops i))). +Axiom thm_CONNECTED_IN_CARTESIAN_PRODUCT : forall {A K : Type'}, forall tops : K -> Topology A, forall s : K -> A -> Prop, forall k : K -> Prop, (@connected_in (K -> A) (@product_topology A K k tops) (@cartesian_product A K k s)) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @connected_in A (tops i) (s i))). +Axiom thm_separated_between : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A top s t) = (exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ (((@UNION A u v) = (@topspace A top)) /\ ((@DISJOINT A u v) /\ ((@SUBSET A s u) /\ (@SUBSET A t v)))))). +Axiom thm_SEPARATED_BETWEEN_ALT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A top s t) = (exists u : A -> Prop, exists v : A -> Prop, (@closed_in A top u) /\ ((@closed_in A top v) /\ (((@UNION A u v) = (@topspace A top)) /\ ((@DISJOINT A u v) /\ ((@SUBSET A s u) /\ (@SUBSET A t v)))))). +Axiom thm_SEPARATED_BETWEEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A top s t) = (exists u : A -> Prop, (@closed_in A top u) /\ ((@open_in A top u) /\ ((@SUBSET A s u) /\ (@SUBSET A t (@DIFF A (@topspace A top) u))))). +Axiom thm_SEPARATED_BETWEEN_MONO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall s' : A -> Prop, forall t' : A -> Prop, ((@separated_between A top s t) /\ ((@SUBSET A s' s) /\ (@SUBSET A t' t))) -> @separated_between A top s' t'. +Axiom thm_SEPARATED_BETWEEN_REFL : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@separated_between A top s s) = (s = (@EMPTY A)). +Axiom thm_SEPARATED_BETWEEN_SYM : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A top s t) = (@separated_between A top t s). +Axiom thm_SEPARATED_BETWEEN_IMP_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A top s t) -> (@SUBSET A s (@topspace A top)) /\ (@SUBSET A t (@topspace A top)). +Axiom thm_SEPARATED_BETWEEN_EMPTY : forall {A : Type'}, (forall top : Topology A, forall s : A -> Prop, (@separated_between A top (@EMPTY A) s) = (@SUBSET A s (@topspace A top))) /\ (forall top : Topology A, forall s : A -> Prop, (@separated_between A top s (@EMPTY A)) = (@SUBSET A s (@topspace A top))). +Axiom thm_SEPARATED_BETWEEN_UNION : forall {A : Type'}, (forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@separated_between A top s (@UNION A t u)) = ((@separated_between A top s t) /\ (@separated_between A top s u))) /\ (forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@separated_between A top (@UNION A s t) u) = ((@separated_between A top s u) /\ (@separated_between A top t u))). +Axiom thm_SEPARATED_BETWEEN_IMP_DISJOINT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A top s t) -> @DISJOINT A s t. +Axiom thm_SEPARATED_BETWEEN_IMP_SEPARATED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A top s t) -> @separated_in A top s t. +Axiom thm_SEPARATED_BETWEEN_FULL : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@UNION A s t) = (@topspace A top)) -> (@separated_between A top s t) = ((@DISJOINT A s t) /\ ((@closed_in A top s) /\ ((@open_in A top s) /\ ((@closed_in A top t) /\ (@open_in A top t))))). +Axiom thm_SEPARATED_BETWEEN_EQ_SEPARATED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@UNION A s t) = (@topspace A top)) -> (@separated_between A top s t) = (@separated_in A top s t). +Axiom thm_SEPARATED_BETWEEN_POINTWISE_LEFT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@compact_in A top s) -> (@separated_between A top s t) = (((s = (@EMPTY A)) -> @SUBSET A t (@topspace A top)) /\ (forall x : A, (@IN A x s) -> @separated_between A top (@INSERT A x (@EMPTY A)) t)). +Axiom thm_SEPARATED_BETWEEN_POINTWISE_RIGHT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@compact_in A top t) -> (@separated_between A top s t) = (((t = (@EMPTY A)) -> @SUBSET A s (@topspace A top)) /\ (forall y : A, (@IN A y t) -> @separated_between A top s (@INSERT A y (@EMPTY A)))). +Axiom thm_SEPARATED_BETWEEN_CLOSURE_OF : forall {A : Type'}, (forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s (@topspace A top)) -> (@separated_between A top (@closure_of A top s) t) = (@separated_between A top s t)) /\ (forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A t (@topspace A top)) -> (@separated_between A top s (@closure_of A top t)) = (@separated_between A top s t)). +Axiom thm_SEPARATED_BETWEEN_CLOSURE_OF_EQ : forall {A : Type'}, (forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A top s t) = ((@SUBSET A s (@topspace A top)) /\ (@separated_between A top (@closure_of A top s) t))) /\ (forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A top s t) = ((@SUBSET A t (@topspace A top)) /\ (@separated_between A top s (@closure_of A top t)))). +Axiom thm_SEPARATED_BETWEEN_FRONTIER_OF_EQ : forall {A : Type'}, (forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A top s t) = ((@SUBSET A s (@topspace A top)) /\ ((@DISJOINT A s t) /\ (@separated_between A top (@frontier_of A top s) t)))) /\ (forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A top s t) = ((@SUBSET A t (@topspace A top)) /\ ((@DISJOINT A s t) /\ (@separated_between A top s (@frontier_of A top t))))). +Axiom thm_SEPARATED_BETWEEN_FRONTIER_OF : forall {A : Type'}, (forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ (@DISJOINT A s t)) -> (@separated_between A top (@frontier_of A top s) t) = (@separated_between A top s t)) /\ (forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A t (@topspace A top)) /\ (@DISJOINT A s t)) -> (@separated_between A top s (@frontier_of A top t)) = (@separated_between A top s t)). +Axiom thm_CONNECTED_SPACE_SEPARATED_BETWEEN : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (forall s : A -> Prop, forall t : A -> Prop, (@separated_between A top s t) -> (s = (@EMPTY A)) \/ (t = (@EMPTY A))). +Axiom thm_CONNECTED_SPACE_IMP_SEPARATED_BETWEEN_TRIVIAL : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@connected_space A top) -> (@separated_between A top s t) = (((s = (@EMPTY A)) /\ (@SUBSET A t (@topspace A top))) \/ ((@SUBSET A s (@topspace A top)) /\ (t = (@EMPTY A)))). +Axiom thm_connected_component_of : forall {_421324 : Type'}, forall top : Topology _421324, forall x : _421324, forall y : _421324, (@connected_component_of _421324 top x y) = (exists t : _421324 -> Prop, (@connected_in _421324 top t) /\ ((@IN _421324 x t) /\ (@IN _421324 y t))). +Axiom thm_connected_components_of : forall {_421354 : Type'}, forall top : Topology _421354, (@connected_components_of _421354 top) = (@GSPEC (_421354 -> Prop) (fun GEN_PVAR_1650 : _421354 -> Prop => exists x : _421354, @SETSPEC (_421354 -> Prop) GEN_PVAR_1650 (@IN _421354 x (@topspace _421354 top)) (@connected_component_of _421354 top x))). +Axiom thm_CONNECTED_COMPONENT_IN_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@connected_component_of A top x y) -> (@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top)). +Axiom thm_CONNECTED_COMPONENT_OF_REFL : forall {A : Type'}, forall top : Topology A, forall x : A, (@connected_component_of A top x x) = (@IN A x (@topspace A top)). +Axiom thm_CONNECTED_COMPONENT_OF_SYM : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@connected_component_of A top x y) = (@connected_component_of A top y x). +Axiom thm_CONNECTED_COMPONENT_OF_TRANS : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, forall z : A, ((@connected_component_of A top x y) /\ (@connected_component_of A top y z)) -> @connected_component_of A top x z. +Axiom thm_CONNECTED_COMPONENT_OF_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall x : A, forall y : A, (@connected_component_of A (@subtopology A top s) x y) -> @connected_component_of A top x y. +Axiom thm_CONNECTED_COMPONENT_OF_MONO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall x : A, forall y : A, ((@connected_component_of A (@subtopology A top s) x y) /\ (@SUBSET A s t)) -> @connected_component_of A (@subtopology A top t) x y. +Axiom thm_CONNECTED_COMPONENT_OF_SET : forall {A : Type'}, forall top : Topology A, forall x : A, (@connected_component_of A top x) = (@GSPEC A (fun GEN_PVAR_1651 : A => exists y : A, @SETSPEC A GEN_PVAR_1651 (exists t : A -> Prop, (@connected_in A top t) /\ ((@IN A x t) /\ (@IN A y t))) y)). +Axiom thm_CONNECTED_COMPONENT_OF_SUBSET_TOPSPACE : forall {_421608 : Type'}, forall top : Topology _421608, forall x : _421608, @SUBSET _421608 (@connected_component_of _421608 top x) (@topspace _421608 top). +Axiom thm_CONNECTED_COMPONENT_OF_SUBTOPOLOGY_EQ : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall x : A, ((@connected_component_of A (@subtopology A top u) x) = (@connected_component_of A top x)) = (@SUBSET A (@connected_component_of A top x) u). +Axiom thm_CONNECTED_COMPONENTS_OF_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall c : A -> Prop, ((@IN (A -> Prop) c (@connected_components_of A top)) /\ (@SUBSET A c u)) -> @IN (A -> Prop) c (@connected_components_of A (@subtopology A top u)). +Axiom thm_CONNECTED_COMPONENT_OF_EQ_EMPTY : forall {_421701 : Type'}, forall top : Topology _421701, forall x : _421701, ((@connected_component_of _421701 top x) = (@EMPTY _421701)) = (~ (@IN _421701 x (@topspace _421701 top))). +Axiom thm_CONNECTED_SPACE_IFF_CONNECTED_COMPONENT : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> @connected_component_of A top x y). +Axiom thm_CONNECTED_SPACE_IMP_CONNECTED_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall a : A, forall b : A, ((@connected_space A top) /\ ((@IN A a (@topspace A top)) /\ (@IN A b (@topspace A top)))) -> @connected_component_of A top a b. +Axiom thm_CONNECTED_SPACE_CONNECTED_COMPONENT_SET : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (forall x : A, (@IN A x (@topspace A top)) -> (@connected_component_of A top x) = (@topspace A top)). +Axiom thm_CONNECTED_COMPONENT_OF_MAXIMAL : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall x : A, ((@connected_in A top s) /\ (@IN A x s)) -> @SUBSET A s (@connected_component_of A top x). +Axiom thm_CONNECTED_COMPONENT_OF_EQUIV : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@connected_component_of A top x y) = ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((@connected_component_of A top x) = (@connected_component_of A top y)))). +Axiom thm_CONNECTED_COMPONENT_OF_DISJOINT : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@DISJOINT A (@connected_component_of A top x) (@connected_component_of A top y)) = (~ (@connected_component_of A top x y)). +Axiom thm_CONNECTED_COMPONENT_OF_EQ : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, ((@connected_component_of A top x) = (@connected_component_of A top y)) = (((~ (@IN A x (@topspace A top))) /\ (~ (@IN A y (@topspace A top)))) \/ ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (@connected_component_of A top x y)))). +Axiom thm_CONNECTED_IN_CONNECTED_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, @connected_in A top (@connected_component_of A top x). +Axiom thm_UNIONS_CONNECTED_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, (@UNIONS A (@connected_components_of A top)) = (@topspace A top). +Axiom thm_CONNECTED_COMPONENTS_OF_MAXIMAL : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall c : A -> Prop, ((@IN (A -> Prop) c (@connected_components_of A top)) /\ ((@connected_in A top s) /\ (~ (@DISJOINT A c s)))) -> @SUBSET A s c. +Axiom thm_PAIRWISE_DISJOINT_CONNECTED_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, @pairwise (A -> Prop) (@DISJOINT A) (@connected_components_of A top). +Axiom thm_COMPLEMENT_CONNECTED_COMPONENTS_OF_UNIONS : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@connected_components_of A top)) -> (@DIFF A (@topspace A top) c) = (@UNIONS A (@DELETE (A -> Prop) (@connected_components_of A top) c)). +Axiom thm_NONEMPTY_CONNECTED_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@connected_components_of A top)) -> ~ (c = (@EMPTY A)). +Axiom thm_CONNECTED_COMPONENTS_OF_SUBSET : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@connected_components_of A top)) -> @SUBSET A c (@topspace A top). +Axiom thm_CONNECTED_IN_CONNECTED_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@connected_components_of A top)) -> @connected_in A top c. +Axiom thm_CONNECTED_COMPONENT_IN_CONNECTED_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, forall a : A, (@IN (A -> Prop) (@connected_component_of A top a) (@connected_components_of A top)) = (@IN A a (@topspace A top)). +Axiom thm_CONNECTED_SPACE_IFF_COMPONENTS_EQ : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (forall c : A -> Prop, forall c' : A -> Prop, ((@IN (A -> Prop) c (@connected_components_of A top)) /\ (@IN (A -> Prop) c' (@connected_components_of A top))) -> c = c'). +Axiom thm_CONNECTED_COMPONENTS_OF_EQ_EMPTY : forall {A : Type'}, forall top : Topology A, ((@connected_components_of A top) = (@EMPTY (A -> Prop))) = ((@topspace A top) = (@EMPTY A)). +Axiom thm_CONNECTED_COMPONENTS_OF_EMPTY_SPACE : forall {A : Type'}, forall top : Topology A, ((@topspace A top) = (@EMPTY A)) -> (@connected_components_of A top) = (@EMPTY (A -> Prop)). +Axiom thm_CONNECTED_COMPONENTS_OF_SUBSET_SING : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET (A -> Prop) (@connected_components_of A top) (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) = ((@connected_space A top) /\ (((@topspace A top) = (@EMPTY A)) \/ ((@topspace A top) = s))). +Axiom thm_CONNECTED_SPACE_IFF_COMPONENTS_SUBSET_SING : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (exists a : A -> Prop, @SUBSET (A -> Prop) (@connected_components_of A top) (@INSERT (A -> Prop) a (@EMPTY (A -> Prop)))). +Axiom thm_CONNECTED_COMPONENTS_OF_EQ_SING : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@connected_components_of A top) = (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) = ((@connected_space A top) /\ ((~ ((@topspace A top) = (@EMPTY A))) /\ (s = (@topspace A top)))). +Axiom thm_CONNECTED_COMPONENTS_OF_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, (@connected_space A top) -> (@connected_components_of A top) = (@COND ((A -> Prop) -> Prop) ((@topspace A top) = (@EMPTY A)) (@EMPTY (A -> Prop)) (@INSERT (A -> Prop) (@topspace A top) (@EMPTY (A -> Prop)))). +Axiom thm_EXISTS_CONNECTED_COMPONENT_OF_SUPERSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@connected_in A top s) /\ (~ ((@topspace A top) = (@EMPTY A)))) -> exists c : A -> Prop, (@IN (A -> Prop) c (@connected_components_of A top)) /\ (@SUBSET A s c). +Axiom thm_CLOSED_IN_CONNECTED_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@connected_components_of A top)) -> @closed_in A top c. +Axiom thm_CLOSED_IN_CONNECTED_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, @closed_in A top (@connected_component_of A top x). +Axiom thm_OPEN_IN_FINITE_CONNECTED_COMPONENTS : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, ((@FINITE (A -> Prop) (@connected_components_of A top)) /\ (@IN (A -> Prop) c (@connected_components_of A top))) -> @open_in A top c. +Axiom thm_CONNECTED_COMPONENT_OF_EQ_OVERLAP : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, ((@connected_component_of A top x) = (@connected_component_of A top y)) = (((~ (@IN A x (@topspace A top))) /\ (~ (@IN A y (@topspace A top)))) \/ (~ ((@INTER A (@connected_component_of A top x) (@connected_component_of A top y)) = (@EMPTY A)))). +Axiom thm_CONNECTED_COMPONENT_OF_NONOVERLAP : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, ((@INTER A (@connected_component_of A top x) (@connected_component_of A top y)) = (@EMPTY A)) = ((~ (@IN A x (@topspace A top))) \/ ((~ (@IN A y (@topspace A top))) \/ (~ ((@connected_component_of A top x) = (@connected_component_of A top y))))). +Axiom thm_CONNECTED_COMPONENT_OF_OVERLAP : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (~ ((@INTER A (@connected_component_of A top x) (@connected_component_of A top y)) = (@EMPTY A))) = ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((@connected_component_of A top x) = (@connected_component_of A top y)))). +Axiom thm_CONNECTED_COMPONENTS_OF_DISJOINT : forall {_422804 : Type'}, forall top : Topology _422804, forall c : _422804 -> Prop, forall c' : _422804 -> Prop, ((@IN (_422804 -> Prop) c (@connected_components_of _422804 top)) /\ (@IN (_422804 -> Prop) c' (@connected_components_of _422804 top))) -> (@DISJOINT _422804 c c') = (~ (c = c')). +Axiom thm_CONNECTED_COMPONENTS_OF_OVERLAP : forall {_422855 : Type'}, forall top : Topology _422855, forall c : _422855 -> Prop, forall c' : _422855 -> Prop, ((@IN (_422855 -> Prop) c (@connected_components_of _422855 top)) /\ (@IN (_422855 -> Prop) c' (@connected_components_of _422855 top))) -> (~ ((@INTER _422855 c c') = (@EMPTY _422855))) = (c = c'). +Axiom thm_PAIRWISE_SEPARATED_CONNECTED_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, @pairwise (A -> Prop) (@separated_in A top) (@connected_components_of A top). +Axiom thm_CARD_LE_CONNECTED_COMPONENTS_OF_TOPSPACE : forall {A : Type'}, forall top : Topology A, @le_c (A -> Prop) A (@connected_components_of A top) (@topspace A top). +Axiom thm_FINITE_CONNECTED_COMPONENTS_OF_FINITE : forall {A : Type'}, forall top : Topology A, (@FINITE A (@topspace A top)) -> @FINITE (A -> Prop) (@connected_components_of A top). +Axiom thm_CONNECTED_COMPONENT_OF_UNIQUE : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, forall x : A, ((@IN A x c) /\ ((@connected_in A top c) /\ (forall c' : A -> Prop, ((@IN A x c') /\ (@connected_in A top c')) -> @SUBSET A c' c))) -> (@connected_component_of A top x) = c. +Axiom thm_CLOSED_IN_CONNECTED_COMPONENT_OF_SUBTOPOLOGY : forall {A : Type'} (s : A -> Prop), forall top : Topology A, forall c : A -> Prop, ((@IN (A -> Prop) c (@connected_components_of A (@subtopology A top s))) /\ (@SUBSET A (@closure_of A top c) s)) -> @closed_in A top c. +Axiom thm_CONNECTED_COMPONENT_OF_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, forall x : A, (@connected_component_of A (@discrete_topology A u) x) = (@COND (A -> Prop) (@IN A x u) (@INSERT A x (@EMPTY A)) (@EMPTY A)). +Axiom thm_CONNECTED_COMPONENTS_OF_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, (@connected_components_of A (@discrete_topology A u)) = (@GSPEC (A -> Prop) (fun GEN_PVAR_1653 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1653 (@IN A x u) (@INSERT A x (@EMPTY A)))). +Axiom thm_CARD_LE_CONNNECTED_COMPONENTS_CONNECTED_IN : forall {A : Type'}, forall top : Topology A, forall u : (A -> Prop) -> Prop, ((forall c : A -> Prop, (@IN (A -> Prop) c u) -> @connected_in A top c) /\ ((@UNIONS A u) = (@topspace A top))) -> @le_c (A -> Prop) (A -> Prop) (@connected_components_of A top) u. +Axiom thm_CARD_LE_CONNECTED_COMPONENTS_ALT : forall {A : Type'}, forall top : Topology A, forall n : N, (@le_c N (A -> Prop) (dotdot (NUMERAL (BIT1 0%N)) n) (@connected_components_of A top)) = ((n = (NUMERAL 0%N)) \/ (exists u : (A -> Prop) -> Prop, (@HAS_SIZE (A -> Prop) u n) /\ ((@pairwise (A -> Prop) (@separated_in A top) u) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t u) -> ~ (t = (@EMPTY A))) /\ ((@UNIONS A u) = (@topspace A top)))))). +Axiom thm_CONNECTED_COMPONENT_OF_CONTINUOUS_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall x : A, forall y : A, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@connected_component_of A top x y)) -> @connected_component_of B top' (f x) (f y). +Axiom thm_HOMEOMORPHIC_MAP_CONNECTED_COMPONENT_OF : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall x : A, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@IN A x (@topspace A top))) -> (@connected_component_of B top' (f x)) = (@IMAGE A B f (@connected_component_of A top x)). +Axiom thm_HOMEOMORPHIC_MAP_CONNECTED_COMPONENTS_OF : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (@connected_components_of B top') = (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) (@connected_components_of A top)). +Axiom thm_CONNECTED_COMPONENT_OF_PAIR : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall x : A, forall y : B, (@connected_component_of (prod A B) (@prod_topology A B top1 top2) (@pair A B x y)) = (@CROSS A B (@connected_component_of A top1 x) (@connected_component_of B top2 y)). +Axiom thm_CONNECTED_COMPONENTS_OF_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@connected_components_of (prod A B) (@prod_topology A B top1 top2)) = (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_1657 : (prod A B) -> Prop => exists c1 : A -> Prop, exists c2 : B -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_1657 ((@IN (A -> Prop) c1 (@connected_components_of A top1)) /\ (@IN (B -> Prop) c2 (@connected_components_of B top2))) (@CROSS A B c1 c2))). +Axiom thm_CONNECTED_COMPONENT_OF_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall k : K -> Prop, forall tops : K -> Topology A, forall x : K -> A, (@connected_component_of (K -> A) (@product_topology A K k tops) x) = (@COND ((K -> A) -> Prop) (@EXTENSIONAL K A k x) (@cartesian_product A K k (fun i : K => @connected_component_of A (tops i) (x i))) (@EMPTY (K -> A))). +Axiom thm_CONNECTED_COMPONENTS_OF_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall k : K -> Prop, forall tops : K -> Topology A, (@connected_components_of (K -> A) (@product_topology A K k tops)) = (@GSPEC ((K -> A) -> Prop) (fun GEN_PVAR_1662 : (K -> A) -> Prop => exists c : K -> A -> Prop, @SETSPEC ((K -> A) -> Prop) GEN_PVAR_1662 (forall i : K, (@IN K i k) -> @IN (A -> Prop) (c i) (@connected_components_of A (tops i))) (@cartesian_product A K k c))). +Axiom thm_monotone_map : forall {A B : Type'}, forall top' : Topology B, forall top : Topology A, forall f : A -> B, (@monotone_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall y : B, (@IN B y (@topspace B top')) -> @connected_in A top (@GSPEC A (fun GEN_PVAR_1663 : A => exists x : A, @SETSPEC A GEN_PVAR_1663 ((@IN A x (@topspace A top)) /\ ((f x) = y)) x)))). +Axiom thm_MONOTONE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@monotone_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall y : B, @connected_in A top (@GSPEC A (fun GEN_PVAR_1664 : A => exists x : A, @SETSPEC A GEN_PVAR_1664 ((@IN A x (@topspace A top)) /\ ((f x) = y)) x)))). +Axiom thm_MONOTONE_MAP_IN_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall s : B -> Prop, forall f : A -> B, (@monotone_map A B (@pair (Topology A) (Topology B) top (@subtopology B top' s)) f) = ((@monotone_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET B (@IMAGE A B f (@topspace A top)) s)). +Axiom thm_MONOTONE_MAP_FROM_SUBTOPOLOGY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, forall f : A -> B, ((@monotone_map A B (@pair (Topology A) (Topology B) top top') f) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((@IN A x s) /\ ((f x) = (f y))))) -> @IN A y s)) -> @monotone_map A B (@pair (Topology A) (Topology B) (@subtopology A top s) top') f. +Axiom thm_MONOTONE_MAP_RESTRICTION : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall u : A -> Prop, forall v : B -> Prop, ((@monotone_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@GSPEC A (fun GEN_PVAR_1668 : A => exists x : A, @SETSPEC A GEN_PVAR_1668 ((@IN A x (@topspace A top)) /\ (@IN B (f x) v)) x)) = u)) -> @monotone_map A B (@pair (Topology A) (Topology B) (@subtopology A top u) (@subtopology B top' v)) f. +Axiom thm_INJECTIVE_IMP_MONOTONE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((f x) = (f y)))) -> x = y)) -> @monotone_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_EMBEDDING_IMP_MONOTONE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@embedding_map A B (@pair (Topology A) (Topology B) top top') f) -> @monotone_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_SECTION_IMP_MONOTONE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@section_map A B (@pair (Topology A) (Topology B) top top') f) -> @monotone_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_HOMEOMORPHIC_IMP_MONOTONE_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> @monotone_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONNECTED_SPACE_MONOTONE_QUOTIENT_MAP_PREIMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@monotone_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@quotient_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@connected_space B top'))) -> @connected_space A top. +Axiom thm_CONNECTED_IN_MONOTONE_QUOTIENT_MAP_PREIMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall c : B -> Prop, ((@monotone_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@quotient_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@connected_in B top' c) /\ ((@open_in B top' c) \/ (@closed_in B top' c))))) -> @connected_in A top (@GSPEC A (fun GEN_PVAR_1671 : A => exists x : A, @SETSPEC A GEN_PVAR_1671 ((@IN A x (@topspace A top)) /\ (@IN B (f x) c)) x)). +Axiom thm_MONOTONE_OPEN_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))) -> (@monotone_map A B (@pair (Topology A) (Topology B) top top') f) = (forall c : B -> Prop, (@connected_in B top' c) -> @connected_in A top (@GSPEC A (fun GEN_PVAR_1672 : A => exists x : A, @SETSPEC A GEN_PVAR_1672 ((@IN A x (@topspace A top)) /\ (@IN B (f x) c)) x))). +Axiom thm_MONOTONE_CLOSED_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))) -> (@monotone_map A B (@pair (Topology A) (Topology B) top top') f) = (forall c : B -> Prop, (@connected_in B top' c) -> @connected_in A top (@GSPEC A (fun GEN_PVAR_1673 : A => exists x : A, @SETSPEC A GEN_PVAR_1673 ((@IN A x (@topspace A top)) /\ (@IN B (f x) c)) x))). +Axiom thm_neighbourhood_base_at : forall {A : Type'}, forall top : Topology A, forall P : (A -> Prop) -> Prop, forall x : A, (@neighbourhood_base_at A x P top) = (forall w : A -> Prop, ((@open_in A top w) /\ (@IN A x w)) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((P v) /\ ((@IN A x u) /\ ((@SUBSET A u v) /\ (@SUBSET A v w))))). +Axiom thm_neighbourhood_base_of : forall {_425114 : Type'}, forall P : (_425114 -> Prop) -> Prop, forall top : Topology _425114, (@neighbourhood_base_of _425114 P top) = (forall x : _425114, (@IN _425114 x (@topspace _425114 top)) -> @neighbourhood_base_at _425114 x P top). +Axiom thm_NEIGHBOURHOOD_BASE_OF : forall {A : Type'}, forall top : Topology A, forall P : (A -> Prop) -> Prop, (@neighbourhood_base_of A P top) = (forall w : A -> Prop, forall x : A, ((@open_in A top w) /\ (@IN A x w)) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((P v) /\ ((@IN A x u) /\ ((@SUBSET A u v) /\ (@SUBSET A v w))))). +Axiom thm_NEIGHBOURHOOD_BASE_AT_MONO : forall {A : Type'}, forall top : Topology A, forall P : (A -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, forall x : A, ((forall s : A -> Prop, ((P s) /\ (@IN A x s)) -> Q s) /\ (@neighbourhood_base_at A x P top)) -> @neighbourhood_base_at A x Q top. +Axiom thm_NEIGHBOURHOOD_BASE_OF_MONO : forall {A : Type'}, forall top : Topology A, forall P : (A -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, ((forall s : A -> Prop, (P s) -> Q s) /\ (@neighbourhood_base_of A P top)) -> @neighbourhood_base_of A Q top. +Axiom thm_OPEN_NEIGHBOURHOOD_BASE_AT : forall {A : Type'}, forall top : Topology A, forall P : (A -> Prop) -> Prop, forall x : A, (forall s : A -> Prop, ((P s) /\ (@IN A x s)) -> @open_in A top s) -> (@neighbourhood_base_at A x P top) = (forall w : A -> Prop, ((@open_in A top w) /\ (@IN A x w)) -> exists u : A -> Prop, (P u) /\ ((@IN A x u) /\ (@SUBSET A u w))). +Axiom thm_OPEN_NEIGHBOURHOOD_BASE_OF : forall {A : Type'}, forall top : Topology A, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, (P s) -> @open_in A top s) -> (@neighbourhood_base_of A P top) = (forall w : A -> Prop, forall x : A, ((@open_in A top w) /\ (@IN A x w)) -> exists u : A -> Prop, (P u) /\ ((@IN A x u) /\ (@SUBSET A u w))). +Axiom thm_OPEN_IN_TOPOLOGY_NEIGHBOURHOOD_BASE_UNIQUE : forall {A : Type'}, forall top : Topology A, forall b : (A -> Prop) -> Prop, ((@open_in A top) = (@UNION_OF A (@ARBITRARY A) b)) = ((forall u : A -> Prop, (@IN (A -> Prop) u b) -> @open_in A top u) /\ (@neighbourhood_base_of A b top)). +Axiom thm_NEIGHBOURHOOD_BASE_OF_OPEN_SUBSET : forall {A : Type'}, forall top : Topology A, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, ((@neighbourhood_base_of A P top) /\ (@open_in A top s)) -> @neighbourhood_base_of A P (@subtopology A top s). +Axiom thm_NEIGHBOURHOOD_BASE_AT_TOPOLOGY_BASE : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall top : Topology A, forall b : (A -> Prop) -> Prop, forall x : A, ((@open_in A top) = (@UNION_OF A (@ARBITRARY A) b)) -> (@neighbourhood_base_at A x P top) = (forall w : A -> Prop, ((@IN (A -> Prop) w b) /\ (@IN A x w)) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((P v) /\ ((@IN A x u) /\ ((@SUBSET A u v) /\ (@SUBSET A v w))))). +Axiom thm_NEIGHBOURHOOD_BASE_OF_TOPOLOGY_BASE : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall top : Topology A, forall b : (A -> Prop) -> Prop, ((@open_in A top) = (@UNION_OF A (@ARBITRARY A) b)) -> (@neighbourhood_base_of A P top) = (forall w : A -> Prop, forall x : A, ((@IN (A -> Prop) w b) /\ (@IN A x w)) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((P v) /\ ((@IN A x u) /\ ((@SUBSET A u v) /\ (@SUBSET A v w))))). +Axiom thm_NEIGHBOURHOOD_BASE_AT_UNLOCALIZED : forall {A : Type'}, forall top : Topology A, forall P : (A -> Prop) -> Prop, forall x : A, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ ((@open_in A top t) /\ ((@IN A x t) /\ (@SUBSET A t s)))) -> P t) -> (@neighbourhood_base_at A x P top) = ((@IN A x (@topspace A top)) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((P v) /\ ((@IN A x u) /\ ((@SUBSET A u v) /\ (@SUBSET A v (@topspace A top)))))). +Axiom thm_NEIGHBOURHOOD_BASE_OF_UNLOCALIZED : forall {A : Type'}, forall top : Topology A, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ ((@open_in A top t) /\ ((~ (t = (@EMPTY A))) /\ (@SUBSET A t s)))) -> P t) -> (@neighbourhood_base_of A P top) = (forall x : A, (@IN A x (@topspace A top)) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((P v) /\ ((@IN A x u) /\ ((@SUBSET A u v) /\ (@SUBSET A v (@topspace A top)))))). +Axiom thm_NEIGHBOURHOOD_BASE_AT_DISCRETE_TOPOLOGY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, forall x : A, (@neighbourhood_base_at A x P (@discrete_topology A u)) = ((@IN A x u) -> P (@INSERT A x (@EMPTY A))). +Axiom thm_NEIGHBOURHOOD_BASE_OF_DISCRETE_TOPOLOGY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : A -> Prop, (@neighbourhood_base_of A P (@discrete_topology A u)) = (forall x : A, (@IN A x u) -> P (@INSERT A x (@EMPTY A))). +Axiom thm_NEIGHBOURHOOD_BASE_AT_WITH_SUBSET : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall top : Topology A, forall u : A -> Prop, forall x : A, ((@open_in A top u) /\ (@IN A x u)) -> (@neighbourhood_base_at A x P top) = (@neighbourhood_base_at A x (fun t : A -> Prop => (@SUBSET A t u) /\ (P t)) top). +Axiom thm_NEIGHBOURHOOD_BASE_OF_WITH_SUBSET : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall top : Topology A, (@neighbourhood_base_of A P top) = (@neighbourhood_base_of A (fun t : A -> Prop => (@SUBSET A t (@topspace A top)) /\ (P t)) top). +Axiom thm_SECOND_COUNTABLE_NEIGHBOURHOOD_BASE_ALT : forall {A : Type'}, forall top : Topology A, (@second_countable A top) = (exists b : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) b) /\ ((forall v : A -> Prop, (@IN (A -> Prop) v b) -> @open_in A top v) /\ (@neighbourhood_base_of A b top))). +Axiom thm_FIRST_COUNTABLE_NEIGHBOURHOOD_BASE_ALT : forall {A : Type'}, forall top : Topology A, (@first_countable A top) = (forall x : A, (@IN A x (@topspace A top)) -> exists b : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) b) /\ ((forall v : A -> Prop, (@IN (A -> Prop) v b) -> @open_in A top v) /\ (@neighbourhood_base_at A x b top))). +Axiom thm_SECOND_COUNTABLE_NEIGHBOURHOOD_BASE : forall {A : Type'}, forall top : Topology A, (@second_countable A top) = (exists b : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) b) /\ (@neighbourhood_base_of A b top)). +Axiom thm_FIRST_COUNTABLE_NEIGHBOURHOOD_BASE : forall {A : Type'}, forall top : Topology A, (@first_countable A top) = (forall x : A, (@IN A x (@topspace A top)) -> exists b : (A -> Prop) -> Prop, (@COUNTABLE (A -> Prop) b) /\ (@neighbourhood_base_at A x b top)). +Axiom thm_t0_space : forall {A : Type'}, forall top : Topology A, (@t0_space A top) = (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (~ (x = y)))) -> exists u : A -> Prop, (@open_in A top u) /\ (~ ((@IN A x u) = (@IN A y u)))). +Axiom thm_T0_SPACE_EXPANSIVE : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, (((@topspace A top') = (@topspace A top)) /\ (forall u : A -> Prop, (@open_in A top u) -> @open_in A top' u)) -> (@t0_space A top) -> @t0_space A top'. +Axiom thm_T1_IMP_T0_SPACE : forall {A : Type'}, forall top : Topology A, (@t1_space A top) -> @t0_space A top. +Axiom thm_T1_EQ_SYMMETRIC_T0_SPACE_ALT : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = ((@t0_space A top) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> (@IN A x (@closure_of A top (@INSERT A y (@EMPTY A)))) = (@IN A y (@closure_of A top (@INSERT A x (@EMPTY A)))))). +Axiom thm_T1_EQ_SYMMETRIC_T0_SPACE : forall {A : Type'}, forall top : Topology A, (@t1_space A top) = ((@t0_space A top) /\ (forall x : A, forall y : A, (@IN A x (@closure_of A top (@INSERT A y (@EMPTY A)))) = (@IN A y (@closure_of A top (@INSERT A x (@EMPTY A)))))). +Axiom thm_HAUSDORFF_IMP_T0_SPACE : forall {A : Type'}, forall top : Topology A, (@hausdorff_space A top) -> @t0_space A top. +Axiom thm_T0_SPACE : forall {A : Type'}, forall top : Topology A, (@t0_space A top) = (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (~ (x = y)))) -> exists c : A -> Prop, (@closed_in A top c) /\ (~ ((@IN A x c) = (@IN A y c)))). +Axiom thm_HOMEOMORPHIC_T0_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@t0_space A top) = (@t0_space B top'). +Axiom thm_T0_SPACE_CLOSURE_OF_SING : forall {A : Type'}, forall top : Topology A, (@t0_space A top) = (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((@closure_of A top (@INSERT A x (@EMPTY A))) = (@closure_of A top (@INSERT A y (@EMPTY A)))))) -> x = y). +Axiom thm_T0_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall s : A -> Prop, @t0_space A (@discrete_topology A s). +Axiom thm_T0_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, (@t0_space A top) -> @t0_space A (@subtopology A top u). +Axiom thm_T0_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@t0_space A top)) -> @t0_space B top'. +Axiom thm_T0_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@t0_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@t0_space A top1) /\ (@t0_space B top2))). +Axiom thm_T0_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, (@t0_space (K -> A) (@product_topology A K k tops)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @t0_space A (tops i))). +Axiom thm_kolmogorov_quotient : forall {A : Type'}, forall top : Topology A, (@kolmogorov_quotient A top) = (fun x : A => @ε A (fun y : A => forall u : A -> Prop, (@open_in A top u) -> (@IN A y u) = (@IN A x u))). +Axiom thm_KOLMOGOROV_QUOTIENT_IN_OPEN : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall x : A, (@open_in A top u) -> (@IN A (@kolmogorov_quotient A top x) u) = (@IN A x u). +Axiom thm_KOLMOGOROV_QUOTIENT_IN_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall x : A, (@IN A (@kolmogorov_quotient A top x) (@topspace A top)) = (@IN A x (@topspace A top)). +Axiom thm_KOLMOGOROV_QUOTIENT_IN_CLOSED : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, forall x : A, (@closed_in A top c) -> (@IN A (@kolmogorov_quotient A top x) c) = (@IN A x c). +Axiom thm_CONTINUOUS_MAP_KOLMOGOROV_QUOTIENT : forall {A : Type'}, forall top : Topology A, @continuous_map A A (@pair (Topology A) (Topology A) top top) (@kolmogorov_quotient A top). +Axiom thm_OPEN_MAP_KOLMOGOROV_QUOTIENT_EXPLICIT : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, (@open_in A top u) -> (@IMAGE A A (@kolmogorov_quotient A top) u) = (@INTER A (@IMAGE A A (@kolmogorov_quotient A top) (@topspace A top)) u). +Axiom thm_OPEN_MAP_KOLMOGOROV_QUOTIENT_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @open_map A A (@pair (Topology A) (Topology A) (@subtopology A top s) (@subtopology A top (@IMAGE A A (@kolmogorov_quotient A top) s))) (@kolmogorov_quotient A top). +Axiom thm_OPEN_MAP_KOLMOGOROV_QUOTIENT : forall {A : Type'}, forall top : Topology A, @open_map A A (@pair (Topology A) (Topology A) top (@subtopology A top (@IMAGE A A (@kolmogorov_quotient A top) (@topspace A top)))) (@kolmogorov_quotient A top). +Axiom thm_CLOSED_MAP_KOLMOGOROV_QUOTIENT_EXPLICIT : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, (@closed_in A top u) -> (@IMAGE A A (@kolmogorov_quotient A top) u) = (@INTER A (@IMAGE A A (@kolmogorov_quotient A top) (@topspace A top)) u). +Axiom thm_CLOSED_MAP_KOLMOGOROV_QUOTIENT_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @closed_map A A (@pair (Topology A) (Topology A) (@subtopology A top s) (@subtopology A top (@IMAGE A A (@kolmogorov_quotient A top) s))) (@kolmogorov_quotient A top). +Axiom thm_CLOSED_MAP_KOLMOGOROV_QUOTIENT : forall {A : Type'}, forall top : Topology A, @closed_map A A (@pair (Topology A) (Topology A) top (@subtopology A top (@IMAGE A A (@kolmogorov_quotient A top) (@topspace A top)))) (@kolmogorov_quotient A top). +Axiom thm_QUOTIENT_MAP_KOLMOGOROV_QUOTIENT_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, @quotient_map A A (@pair (Topology A) (Topology A) (@subtopology A top s) (@subtopology A top (@IMAGE A A (@kolmogorov_quotient A top) s))) (@kolmogorov_quotient A top). +Axiom thm_QUOTIENT_MAP_KOLMOGOROV_QUOTIENT : forall {A : Type'}, forall top : Topology A, @quotient_map A A (@pair (Topology A) (Topology A) top (@subtopology A top (@IMAGE A A (@kolmogorov_quotient A top) (@topspace A top)))) (@kolmogorov_quotient A top). +Axiom thm_KOLMOGOROV_QUOTIENT_EQ : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, ((@kolmogorov_quotient A top x) = (@kolmogorov_quotient A top y)) = (forall u : A -> Prop, (@open_in A top u) -> (@IN A x u) = (@IN A y u)). +Axiom thm_KOLMOGOROV_QUOTIENT_EQ_ALT : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, ((@kolmogorov_quotient A top x) = (@kolmogorov_quotient A top y)) = (forall u : A -> Prop, (@closed_in A top u) -> (@IN A x u) = (@IN A y u)). +Axiom thm_KOLMOGOROV_QUOTIENT_CONTINUOUS_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall x : A, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@t0_space B top') /\ (@IN A x (@topspace A top)))) -> (f (@kolmogorov_quotient A top x)) = (f x). +Axiom thm_T0_SPACE_KOLMOGOROV_QUOTIENT : forall {A : Type'}, forall top : Topology A, @t0_space A (@subtopology A top (@IMAGE A A (@kolmogorov_quotient A top) (@topspace A top))). +Axiom thm_KOLMOGOROV_QUOTIENT_ID : forall {A : Type'}, forall top : Topology A, forall x : A, ((@t0_space A top) /\ (@IN A x (@topspace A top))) -> (@kolmogorov_quotient A top x) = x. +Axiom thm_KOLMOGOROV_QUOTIENT_IDEMP : forall {A : Type'}, forall top : Topology A, forall x : A, (@kolmogorov_quotient A top (@kolmogorov_quotient A top x)) = (@kolmogorov_quotient A top x). +Axiom thm_RETRACTION_MAPS_KOLMOGOROV_QUOTIENT : forall {A : Type'}, forall top : Topology A, @retraction_maps A A (@pair (Topology A) (Topology A) top (@subtopology A top (@IMAGE A A (@kolmogorov_quotient A top) (@topspace A top)))) (@pair (A -> A) (A -> A) (@kolmogorov_quotient A top) (@I A)). +Axiom thm_RETRACTION_MAP_KOLMOGOROV_QUOTIENT : forall {A : Type'}, forall top : Topology A, @retraction_map A A (@pair (Topology A) (Topology A) top (@subtopology A top (@IMAGE A A (@kolmogorov_quotient A top) (@topspace A top)))) (@kolmogorov_quotient A top). +Axiom thm_RETRACT_OF_SPACE_KOLMOGOROV_QUOTIENT_IMAGE : forall {A : Type'}, forall top : Topology A, @retract_of_space A (@IMAGE A A (@kolmogorov_quotient A top) (@topspace A top)) top. +Axiom thm_KOLMOGOROV_QUOTIENT_LIFT_EXISTS : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ ((@t0_space B top') /\ (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top s) top') f))) -> exists g : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@IMAGE A A (@kolmogorov_quotient A top) s)) top') g) /\ (forall x : A, (@IN A x s) -> (g (@kolmogorov_quotient A top x)) = (f x)). +Axiom thm_regular_space : forall {A : Type'}, forall top : Topology A, (@regular_space A top) = (forall c : A -> Prop, forall a : A, ((@closed_in A top c) /\ (@IN A a (@DIFF A (@topspace A top) c))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@IN A a u) /\ ((@SUBSET A c v) /\ (@DISJOINT A u v))))). +Axiom thm_HOMEOMORPHIC_REGULAR_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@regular_space A top) = (@regular_space B top'). +Axiom thm_REGULAR_SPACE : forall {A : Type'}, forall top : Topology A, (@regular_space A top) = (forall c : A -> Prop, forall a : A, ((@closed_in A top c) /\ (@IN A a (@DIFF A (@topspace A top) c))) -> exists u : A -> Prop, (@open_in A top u) /\ ((@IN A a u) /\ (@DISJOINT A c (@closure_of A top u)))). +Axiom thm_NEIGHBOURHOOD_BASE_OF_CLOSED_IN : forall {A : Type'}, forall top : Topology A, (@neighbourhood_base_of A (@closed_in A top) top) = (@regular_space A top). +Axiom thm_REGULAR_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall s : A -> Prop, @regular_space A (@discrete_topology A s). +Axiom thm_REGULAR_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@regular_space A top) -> @regular_space A (@subtopology A top s). +Axiom thm_REGULAR_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@regular_space A top)) -> @regular_space B top'. +Axiom thm_REGULAR_T0_IMP_HAUSDORFF_SPACE : forall {A : Type'}, forall top : Topology A, ((@regular_space A top) /\ (@t0_space A top)) -> @hausdorff_space A top. +Axiom thm_REGULAR_T0_EQ_HAUSDORFF_SPACE : forall {A : Type'}, forall top : Topology A, (@regular_space A top) -> (@t0_space A top) = (@hausdorff_space A top). +Axiom thm_REGULAR_T1_IMP_HAUSDORFF_SPACE : forall {A : Type'}, forall top : Topology A, ((@regular_space A top) /\ (@t1_space A top)) -> @hausdorff_space A top. +Axiom thm_REGULAR_T1_EQ_HAUSDORFF_SPACE : forall {A : Type'}, forall top : Topology A, (@regular_space A top) -> (@t1_space A top) = (@hausdorff_space A top). +Axiom thm_COMPACT_HAUSDORFF_IMP_REGULAR_SPACE : forall {A : Type'}, forall top : Topology A, ((@compact_space A top) /\ (@hausdorff_space A top)) -> @regular_space A top. +Axiom thm_NEIGHBOURHOOD_BASE_OF_CLOSED_HAUSDORFF_SPACE : forall {A : Type'}, forall top : Topology A, ((@regular_space A top) /\ (@hausdorff_space A top)) = (@neighbourhood_base_of A (fun c : A -> Prop => (@closed_in A top c) /\ (@hausdorff_space A (@subtopology A top c))) top). +Axiom thm_LOCALLY_COMPACT_IMP_KC_EQ_HAUSDORFF_SPACE : forall {A : Type'}, forall top : Topology A, (@neighbourhood_base_of A (@compact_in A top) top) -> (@kc_space A top) = (@hausdorff_space A top). +Axiom thm_REGULAR_SPACE_MTOPOLOGY : forall {A : Type'}, forall m : Metric A, @regular_space A (@mtopology A m). +Axiom thm_METRIZABLE_IMP_REGULAR_SPACE : forall {A : Type'}, forall top : Topology A, (@metrizable_space A top) -> @regular_space A top. +Axiom thm_REGULAR_SPACE_COMPACT_CLOSED_SEPARATION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@regular_space A top) /\ ((@compact_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t)))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ (@DISJOINT A u v)))). +Axiom thm_REGULAR_SPACE_COMPACT_CLOSED_SETS : forall {A : Type'}, forall top : Topology A, (@regular_space A top) = (forall s : A -> Prop, forall t : A -> Prop, ((@compact_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ (@DISJOINT A u v))))). +Axiom thm_REGULAR_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@regular_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@regular_space A top1) /\ (@regular_space B top2))). +Axiom thm_REGULAR_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, (@regular_space (K -> A) (@product_topology A K k tops)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @regular_space A (tops i))). +Axiom thm_CLOSED_MAP_PAIRED_GEN : forall {A B C : Type'}, forall top : Topology A, forall top1 : Topology B, forall top2 : Topology C, forall f : A -> B, forall g : A -> C, ((@closed_map A B (@pair (Topology A) (Topology B) top top1) f) /\ ((@closed_map A C (@pair (Topology A) (Topology C) top top2) g) /\ (((@regular_space B top1) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top1) f) /\ (forall z : C, (@IN C z (@topspace C top2)) -> @closed_in A top (@GSPEC A (fun GEN_PVAR_1680 : A => exists x : A, @SETSPEC A GEN_PVAR_1680 ((@IN A x (@topspace A top)) /\ ((g x) = z)) x))))) \/ ((@regular_space C top2) /\ ((@continuous_map A C (@pair (Topology A) (Topology C) top top2) g) /\ (forall y : B, (@IN B y (@topspace B top1)) -> @closed_in A top (@GSPEC A (fun GEN_PVAR_1681 : A => exists x : A, @SETSPEC A GEN_PVAR_1681 ((@IN A x (@topspace A top)) /\ ((f x) = y)) x)))))))) -> @closed_map A (prod B C) (@pair (Topology A) (Topology (prod B C)) top (@prod_topology B C top1 top2)) (fun x : A => @pair B C (f x) (g x)). +Axiom thm_CLOSED_MAP_PAIRED : forall {A B C : Type'}, forall top : Topology A, forall top1 : Topology B, forall top2 : Topology C, forall f : A -> B, forall g : A -> C, ((@closed_map A B (@pair (Topology A) (Topology B) top top1) f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top1) f) /\ ((@closed_map A C (@pair (Topology A) (Topology C) top top2) g) /\ ((@continuous_map A C (@pair (Topology A) (Topology C) top top2) g) /\ (((@t1_space B top1) /\ (@regular_space C top2)) \/ ((@regular_space B top1) /\ (@t1_space C top2))))))) -> @closed_map A (prod B C) (@pair (Topology A) (Topology (prod B C)) top (@prod_topology B C top1 top2)) (fun x : A => @pair B C (f x) (g x)). +Axiom thm_CLOSED_MAP_PAIRWISE : forall {A B C : Type'}, forall top : Topology A, forall top1 : Topology B, forall top2 : Topology C, forall f : A -> prod B C, ((@closed_map A B (@pair (Topology A) (Topology B) top top1) (@o A (prod B C) B (@fst B C) f)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top1) (@o A (prod B C) B (@fst B C) f)) /\ ((@closed_map A C (@pair (Topology A) (Topology C) top top2) (@o A (prod B C) C (@snd B C) f)) /\ ((@continuous_map A C (@pair (Topology A) (Topology C) top top2) (@o A (prod B C) C (@snd B C) f)) /\ (((@t1_space B top1) /\ (@regular_space C top2)) \/ ((@regular_space B top1) /\ (@t1_space C top2))))))) -> @closed_map A (prod B C) (@pair (Topology A) (Topology (prod B C)) top (@prod_topology B C top1 top2)) f. +Axiom thm_CLOSED_MAP_PAIRED_CLOSED_MAP_RIGHT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((forall y : B, (@IN B y (@topspace B top')) -> @closed_in A top (@GSPEC A (fun GEN_PVAR_1682 : A => exists x : A, @SETSPEC A GEN_PVAR_1682 ((@IN A x (@topspace A top)) /\ ((f x) = y)) x))) /\ (@regular_space A top))) -> @closed_map A (prod A B) (@pair (Topology A) (Topology (prod A B)) top (@prod_topology A B top top')) (fun x : A => @pair A B x (f x)). +Axiom thm_CLOSED_MAP_PAIRED_CLOSED_MAP_LEFT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((forall y : B, (@IN B y (@topspace B top')) -> @closed_in A top (@GSPEC A (fun GEN_PVAR_1683 : A => exists x : A, @SETSPEC A GEN_PVAR_1683 ((@IN A x (@topspace A top)) /\ ((f x) = y)) x))) /\ (@regular_space A top))) -> @closed_map A (prod B A) (@pair (Topology A) (Topology (prod B A)) top (@prod_topology B A top' top)) (fun x : A => @pair B A (f x) x). +Axiom thm_CLOSED_MAP_IMP_CLOSED_GRAPH : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((forall y : B, (@IN B y (@topspace B top')) -> @closed_in A top (@GSPEC A (fun GEN_PVAR_1684 : A => exists x : A, @SETSPEC A GEN_PVAR_1684 ((@IN A x (@topspace A top)) /\ ((f x) = y)) x))) /\ (@regular_space A top))) -> @closed_in (prod A B) (@prod_topology A B top top') (@GSPEC (prod A B) (fun GEN_PVAR_1685 : prod A B => exists x : A, @SETSPEC (prod A B) GEN_PVAR_1685 (@IN A x (@topspace A top)) (@pair A B x (f x)))). +Axiom thm_PROPER_MAP_PAIRED_CLOSED_MAP_RIGHT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((forall y : B, (@IN B y (@topspace B top')) -> @closed_in A top (@GSPEC A (fun GEN_PVAR_1686 : A => exists x : A, @SETSPEC A GEN_PVAR_1686 ((@IN A x (@topspace A top)) /\ ((f x) = y)) x))) /\ (@regular_space A top))) -> @proper_map A (prod A B) (@pair (Topology A) (Topology (prod A B)) top (@prod_topology A B top top')) (fun x : A => @pair A B x (f x)). +Axiom thm_PROPER_MAP_PAIRED_CLOSED_MAP_LEFT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((forall y : B, (@IN B y (@topspace B top')) -> @closed_in A top (@GSPEC A (fun GEN_PVAR_1687 : A => exists x : A, @SETSPEC A GEN_PVAR_1687 ((@IN A x (@topspace A top)) /\ ((f x) = y)) x))) /\ (@regular_space A top))) -> @proper_map A (prod B A) (@pair (Topology A) (Topology (prod B A)) top (@prod_topology B A top' top)) (fun x : A => @pair B A (f x) x). +Axiom thm_REGULAR_SPACE_CONTINUOUS_PROPER_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@regular_space A top) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@proper_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top'))))) -> @regular_space B top'. +Axiom thm_REGULAR_SPACE_PERFECT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@regular_space A top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> @regular_space B top'. +Axiom thm_REGULAR_SPACE_PERFECT_MAP_IMAGE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@hausdorff_space A top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> (@regular_space A top) = (@regular_space B top'). +Axiom thm_locally_compact_space : forall {_431393 : Type'}, forall top : Topology _431393, (@locally_compact_space _431393 top) = (forall x : _431393, (@IN _431393 x (@topspace _431393 top)) -> exists u : _431393 -> Prop, exists k : _431393 -> Prop, (@open_in _431393 top u) /\ ((@compact_in _431393 top k) /\ ((@IN _431393 x u) /\ (@SUBSET _431393 u k)))). +Axiom thm_HOMEOMORPHIC_LOCALLY_COMPACT_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@locally_compact_space A top) = (@locally_compact_space B top'). +Axiom thm_LOCALLY_COMPACT_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@locally_compact_space A top)) -> @locally_compact_space B top'. +Axiom thm_COMPACT_IMP_LOCALLY_COMPACT_SPACE : forall {A : Type'}, forall top : Topology A, (@compact_space A top) -> @locally_compact_space A top. +Axiom thm_NEIGHBOURHOOD_BASE_IMP_LOCALLY_COMPACT_SPACE : forall {A : Type'}, forall top : Topology A, (@neighbourhood_base_of A (@compact_in A top) top) -> @locally_compact_space A top. +Axiom thm_LOCALLY_COMPACT_HAUSDORFF_OR_REGULAR : forall {A : Type'}, forall top : Topology A, ((@locally_compact_space A top) /\ ((@hausdorff_space A top) \/ (@regular_space A top))) = ((@locally_compact_space A top) /\ (@regular_space A top)). +Axiom thm_LOCALLY_COMPACT_SPACE_COMPACT_CLOSED_IN : forall {A : Type'}, forall top : Topology A, ((@hausdorff_space A top) \/ (@regular_space A top)) -> (@locally_compact_space A top) = (forall x : A, (@IN A x (@topspace A top)) -> exists u : A -> Prop, exists k : A -> Prop, (@open_in A top u) /\ ((@compact_in A top k) /\ ((@closed_in A top k) /\ ((@IN A x u) /\ (@SUBSET A u k))))). +Axiom thm_LOCALLY_COMPACT_SPACE_COMPACT_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, ((@hausdorff_space A top) \/ (@regular_space A top)) -> (@locally_compact_space A top) = (forall x : A, (@IN A x (@topspace A top)) -> exists u : A -> Prop, (@open_in A top u) /\ ((@compact_in A top (@closure_of A top u)) /\ (@IN A x u))). +Axiom thm_LOCALLY_COMPACT_SPACE_NEIGHBOURHOOD_BASE_CLOSED_IN : forall {A : Type'}, forall top : Topology A, ((@hausdorff_space A top) \/ (@regular_space A top)) -> (@locally_compact_space A top) = (@neighbourhood_base_of A (fun c : A -> Prop => (@compact_in A top c) /\ (@closed_in A top c)) top). +Axiom thm_LOCALLY_COMPACT_SPACE_NEIGHBOURHOOD_BASE_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, ((@hausdorff_space A top) \/ (@regular_space A top)) -> (@locally_compact_space A top) = (@neighbourhood_base_of A (fun t : A -> Prop => @compact_in A top (@closure_of A top t)) top). +Axiom thm_LOCALLY_COMPACT_SPACE_NEIGHBOURHOOD_BASE_OPEN_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, ((@hausdorff_space A top) \/ (@regular_space A top)) -> (@locally_compact_space A top) = (@neighbourhood_base_of A (fun u : A -> Prop => (@open_in A top u) /\ (@compact_in A top (@closure_of A top u))) top). +Axiom thm_LOCALLY_COMPACT_SPACE_COMPACT_CLOSED_COMPACT : forall {A : Type'}, forall top : Topology A, ((@hausdorff_space A top) \/ (@regular_space A top)) -> (@locally_compact_space A top) = (forall k : A -> Prop, (@compact_in A top k) -> exists u : A -> Prop, exists l : A -> Prop, (@open_in A top u) /\ ((@compact_in A top l) /\ ((@closed_in A top l) /\ ((@SUBSET A k u) /\ (@SUBSET A u l))))). +Axiom thm_LOCALLY_COMPACT_REGULAR_SPACE_NEIGHBOURHOOD_BASE : forall {A : Type'}, forall top : Topology A, ((@locally_compact_space A top) /\ (@regular_space A top)) = (@neighbourhood_base_of A (fun c : A -> Prop => (@compact_in A top c) /\ (@closed_in A top c)) top). +Axiom thm_LOCALLY_COMPACT_KC_SPACE : forall {A : Type'}, forall top : Topology A, ((@neighbourhood_base_of A (@compact_in A top) top) /\ (@kc_space A top)) = ((@locally_compact_space A top) /\ (@hausdorff_space A top)). +Axiom thm_LOCALLY_COMPACT_KC_SPACE_ALT : forall {A : Type'}, forall top : Topology A, ((@neighbourhood_base_of A (@compact_in A top) top) /\ (@kc_space A top)) = ((@locally_compact_space A top) /\ ((@hausdorff_space A top) /\ (@regular_space A top))). +Axiom thm_LOCALLY_COMPACT_KC_IMP_REGULAR_SPACE : forall {A : Type'}, forall top : Topology A, ((@neighbourhood_base_of A (@compact_in A top) top) /\ (@kc_space A top)) -> @regular_space A top. +Axiom thm_KC_LOCALLY_COMPACT_SPACE : forall {A : Type'}, forall top : Topology A, (@kc_space A top) -> (@neighbourhood_base_of A (@compact_in A top) top) = ((@locally_compact_space A top) /\ ((@hausdorff_space A top) /\ (@regular_space A top))). +Axiom thm_LOCALLY_COMPACT_SPACE_CLOSED_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@locally_compact_space A top) /\ (@closed_in A top s)) -> @locally_compact_space A (@subtopology A top s). +Axiom thm_LOCALLY_COMPACT_SPACE_OPEN_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (((@hausdorff_space A top) \/ (@regular_space A top)) /\ ((@locally_compact_space A top) /\ (@open_in A top s))) -> @locally_compact_space A (@subtopology A top s). +Axiom thm_LOCALLY_COMPACT_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @locally_compact_space A (@discrete_topology A u). +Axiom thm_LOCALLY_COMPACT_SPACE_CONTINUOUS_OPEN_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@open_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (@locally_compact_space A top)))) -> @locally_compact_space B top'. +Axiom thm_LOCALLY_COMPACT_SUBSPACE_OPEN_IN_CLOSURE_OF : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hausdorff_space A top) /\ ((@SUBSET A s (@topspace A top)) /\ (@locally_compact_space A (@subtopology A top s)))) -> @open_in A (@subtopology A top (@closure_of A top s)) s. +Axiom thm_LOCALLY_COMPACT_SUBSPACE_CLOSED_INTER_OPEN_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hausdorff_space A top) /\ ((@SUBSET A s (@topspace A top)) /\ (@locally_compact_space A (@subtopology A top s)))) -> exists c : A -> Prop, exists u : A -> Prop, (@closed_in A top c) /\ ((@open_in A top u) /\ ((@INTER A c u) = s)). +Axiom thm_LOCALLY_COMPACT_SUBSPACE_OPEN_IN_CLOSURE_OF_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hausdorff_space A top) /\ (@locally_compact_space A top)) -> (@open_in A (@subtopology A top (@closure_of A top s)) s) = ((@SUBSET A s (@topspace A top)) /\ (@locally_compact_space A (@subtopology A top s))). +Axiom thm_LOCALLY_COMPACT_SUBSPACE_CLOSED_INTER_OPEN_IN_EQ : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hausdorff_space A top) /\ (@locally_compact_space A top)) -> (exists c : A -> Prop, exists u : A -> Prop, (@closed_in A top c) /\ ((@open_in A top u) /\ ((@INTER A c u) = s))) = ((@SUBSET A s (@topspace A top)) /\ (@locally_compact_space A (@subtopology A top s))). +Axiom thm_DENSE_LOCALLY_COMPACT_OPEN_IN_HAUSDORFF_SPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hausdorff_space A top) /\ ((@SUBSET A s (@topspace A top)) /\ (((@closure_of A top s) = (@topspace A top)) /\ (@locally_compact_space A (@subtopology A top s))))) -> @open_in A top s. +Axiom thm_LOCALLY_COMPACT_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@locally_compact_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@locally_compact_space A top1) /\ (@locally_compact_space B top2))). +Axiom thm_LOCALLY_COMPACT_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, (@locally_compact_space (K -> A) (@product_topology A K k tops)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ ((@FINITE K (@GSPEC K (fun GEN_PVAR_1693 : K => exists i : K, @SETSPEC K GEN_PVAR_1693 ((@IN K i k) /\ (~ (@compact_space A (tops i)))) i))) /\ (forall i : K, (@IN K i k) -> @locally_compact_space A (tops i)))). +Axiom thm_LOCALLY_COMPACT_SPACE_SUM_TOPOLOGY : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, (@locally_compact_space (prod K A) (@sum_topology A K k top)) = (forall i : K, (@IN K i k) -> @locally_compact_space A (top i)). +Axiom thm_QUOTIENT_MAP_PROD_RIGHT : forall {A B C : Type'}, forall top : Topology A, forall top1 : Topology B, forall top2 : Topology C, forall f : B -> C, ((@locally_compact_space A top) /\ (((@hausdorff_space A top) \/ (@regular_space A top)) /\ (@quotient_map B C (@pair (Topology B) (Topology C) top1 top2) f))) -> @quotient_map (prod A B) (prod A C) (@pair (Topology (prod A B)) (Topology (prod A C)) (@prod_topology A B top top1) (@prod_topology A C top top2)) (@GABS ((prod A B) -> prod A C) (fun f' : (prod A B) -> prod A C => forall x : A, forall y : B, @GEQ (prod A C) (f' (@pair A B x y)) (@pair A C x (f y)))). +Axiom thm_QUOTIENT_MAP_PROD_LEFT : forall {A B C : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall top : Topology C, forall f : A -> B, ((@locally_compact_space C top) /\ (((@hausdorff_space C top) \/ (@regular_space C top)) /\ (@quotient_map A B (@pair (Topology A) (Topology B) top1 top2) f))) -> @quotient_map (prod A C) (prod B C) (@pair (Topology (prod A C)) (Topology (prod B C)) (@prod_topology A C top1 top) (@prod_topology B C top2 top)) (@GABS ((prod A C) -> prod B C) (fun f' : (prod A C) -> prod B C => forall x : A, forall y : C, @GEQ (prod B C) (f' (@pair A C x y)) (@pair B C (f x) y))). +Axiom thm_QUOTIENT_MAP_PROD : forall {A B C D : Type'}, forall top1 : Topology A, forall top2 : Topology C, forall top1' : Topology B, forall top2' : Topology D, forall f : A -> B, forall g : C -> D, ((((@locally_compact_space A top1) /\ (((@hausdorff_space A top1) \/ (@regular_space A top1)) /\ ((@locally_compact_space D top2') /\ ((@hausdorff_space D top2') \/ (@regular_space D top2'))))) \/ ((@locally_compact_space B top1') /\ (((@hausdorff_space B top1') \/ (@regular_space B top1')) /\ ((@locally_compact_space C top2) /\ ((@hausdorff_space C top2) \/ (@regular_space C top2)))))) /\ ((@quotient_map A B (@pair (Topology A) (Topology B) top1 top1') f) /\ (@quotient_map C D (@pair (Topology C) (Topology D) top2 top2') g))) -> @quotient_map (prod A C) (prod B D) (@pair (Topology (prod A C)) (Topology (prod B D)) (@prod_topology A C top1 top2) (@prod_topology B D top1' top2')) (@GABS ((prod A C) -> prod B D) (fun f' : (prod A C) -> prod B D => forall x : A, forall y : C, @GEQ (prod B D) (f' (@pair A C x y)) (@pair B D (f x) (g y)))). +Axiom thm_LOCALLY_COMPACT_SPACE_PERFECT_MAP_PREIMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@locally_compact_space B top') /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> @locally_compact_space A top. +Axiom thm_LOCALLY_COMPACT_SPACE_PERFECT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (((@hausdorff_space A top) \/ (@regular_space A top)) /\ ((@locally_compact_space A top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f))) -> @locally_compact_space B top'. +Axiom thm_LOCALLY_COMPACT_SPACE_PERFECT_MAP_IMAGE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (((@hausdorff_space A top) \/ (@regular_space A top)) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> (@locally_compact_space A top) = (@locally_compact_space B top'). +Axiom thm_real_open : forall s : R -> Prop, (real_open s) = (forall x : R, (@IN R x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x' : R, (Rlt (Rabs (Rminus x' x)) e) -> @IN R x' s)). +Axiom thm_real_closed : forall s : R -> Prop, (real_closed s) = (real_open (@DIFF R (@UNIV R) s)). +Axiom thm_euclideanreal : euclideanreal = (@topology R real_open). +Axiom thm_REAL_OPEN_EMPTY : real_open (@EMPTY R). +Axiom thm_REAL_OPEN_UNIV : real_open (@UNIV R). +Axiom thm_REAL_OPEN_INTER : forall s : R -> Prop, forall t : R -> Prop, ((real_open s) /\ (real_open t)) -> real_open (@INTER R s t). +Axiom thm_REAL_OPEN_UNIONS : forall (f : (R -> Prop) -> Prop), (forall s : R -> Prop, (@IN (R -> Prop) s f) -> real_open s) -> real_open (@UNIONS R f). +Axiom thm_REAL_OPEN_IN : forall s : R -> Prop, (real_open s) = (@open_in R euclideanreal s). +Axiom thm_TOPSPACE_EUCLIDEANREAL : (@topspace R euclideanreal) = (@UNIV R). +Axiom thm_TOPSPACE_EUCLIDEANREAL_SUBTOPOLOGY : forall s : R -> Prop, (@topspace R (@subtopology R euclideanreal s)) = s. +Axiom thm_REAL_CLOSED_IN : forall s : R -> Prop, (real_closed s) = (@closed_in R euclideanreal s). +Axiom thm_REAL_OPEN_UNION : forall s : R -> Prop, forall t : R -> Prop, ((real_open s) /\ (real_open t)) -> real_open (@UNION R s t). +Axiom thm_REAL_OPEN_SUBREAL_OPEN : forall s : R -> Prop, (real_open s) = (forall x : R, (@IN R x s) -> exists t : R -> Prop, (real_open t) /\ ((@IN R x t) /\ (@SUBSET R t s))). +Axiom thm_REAL_CLOSED_EMPTY : real_closed (@EMPTY R). +Axiom thm_REAL_CLOSED_UNIV : real_closed (@UNIV R). +Axiom thm_REAL_CLOSED_UNION : forall s : R -> Prop, forall t : R -> Prop, ((real_closed s) /\ (real_closed t)) -> real_closed (@UNION R s t). +Axiom thm_REAL_CLOSED_INTER : forall s : R -> Prop, forall t : R -> Prop, ((real_closed s) /\ (real_closed t)) -> real_closed (@INTER R s t). +Axiom thm_REAL_CLOSED_INTERS : forall f : (R -> Prop) -> Prop, (forall s : R -> Prop, (@IN (R -> Prop) s f) -> real_closed s) -> real_closed (@INTERS R f). +Axiom thm_REAL_OPEN_REAL_CLOSED : forall s : R -> Prop, (real_open s) = (real_closed (@DIFF R (@UNIV R) s)). +Axiom thm_REAL_OPEN_DIFF : forall s : R -> Prop, forall t : R -> Prop, ((real_open s) /\ (real_closed t)) -> real_open (@DIFF R s t). +Axiom thm_REAL_CLOSED_DIFF : forall s : R -> Prop, forall t : R -> Prop, ((real_closed s) /\ (real_open t)) -> real_closed (@DIFF R s t). +Axiom thm_REAL_OPEN_INTERS : forall s : (R -> Prop) -> Prop, ((@FINITE (R -> Prop) s) /\ (forall t : R -> Prop, (@IN (R -> Prop) t s) -> real_open t)) -> real_open (@INTERS R s). +Axiom thm_REAL_CLOSED_UNIONS : forall s : (R -> Prop) -> Prop, ((@FINITE (R -> Prop) s) /\ (forall t : R -> Prop, (@IN (R -> Prop) t s) -> real_closed t)) -> real_closed (@UNIONS R s). +Axiom thm_REAL_OPEN_HALFSPACE_GT : forall a : R, real_open (@GSPEC R (fun GEN_PVAR_1705 : R => exists x : R, @SETSPEC R GEN_PVAR_1705 (Rgt x a) x)). +Axiom thm_REAL_OPEN_HALFSPACE_LT : forall a : R, real_open (@GSPEC R (fun GEN_PVAR_1706 : R => exists x : R, @SETSPEC R GEN_PVAR_1706 (Rlt x a) x)). +Axiom thm_REAL_OPEN_REAL_INTERVAL : forall a : R, forall b : R, real_open (open_real_interval (@pair R R a b)). +Axiom thm_REAL_CLOSED_HALFSPACE_LE : forall a : R, real_closed (@GSPEC R (fun GEN_PVAR_1710 : R => exists x : R, @SETSPEC R GEN_PVAR_1710 (Rle x a) x)). +Axiom thm_REAL_CLOSED_HALFSPACE_GE : forall a : R, real_closed (@GSPEC R (fun GEN_PVAR_1711 : R => exists x : R, @SETSPEC R GEN_PVAR_1711 (Rge x a) x)). +Axiom thm_REAL_CLOSED_REAL_INTERVAL : forall a : R, forall b : R, real_closed (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_CLOSED_SING : forall a : R, real_closed (@INSERT R a (@EMPTY R)). +Axiom thm_real_euclidean_metric : real_euclidean_metric = (@metric R (@pair (R -> Prop) ((prod R R) -> R) (@UNIV R) (@GABS ((prod R R) -> R) (fun f : (prod R R) -> R => forall x : R, forall y : R, @GEQ R (f (@pair R R x y)) (Rabs (Rminus y x)))))). +Axiom thm_REAL_EUCLIDEAN_METRIC : ((@mspace R real_euclidean_metric) = (@UNIV R)) /\ (forall x : R, forall y : R, (@mdist R real_euclidean_metric (@pair R R x y)) = (Rabs (Rminus y x))). +Axiom thm_MTOPOLOGY_REAL_EUCLIDEAN_METRIC : (@mtopology R real_euclidean_metric) = euclideanreal. +Axiom thm_MBALL_REAL_INTERVAL : forall x : R, forall r : R, (@mball R real_euclidean_metric (@pair R R x r)) = (open_real_interval (@pair R R (Rminus x r) (Rplus x r))). +Axiom thm_MCBALL_REAL_INTERVAL : forall x : R, forall r : R, (@mcball R real_euclidean_metric (@pair R R x r)) = (closed_real_interval (@cons (prod R R) (@pair R R (Rminus x r) (Rplus x r)) (@nil (prod R R)))). +Axiom thm_METRIZABLE_SPACE_EUCLIDEANREAL : @metrizable_space R euclideanreal. +Axiom thm_HAUSDORFF_SPACE_EUCLIDEANREAL : @hausdorff_space R euclideanreal. +Axiom thm_KC_SPACE_EUCLIDEANREAL : @kc_space R euclideanreal. +Axiom thm_T1_SPACE_EUCLIDEANREAL : @t1_space R euclideanreal. +Axiom thm_REGULAR_SPACE_EUCLIDEANREAL : @regular_space R euclideanreal. +Axiom thm_SUBBASE_SUBTOPOLOGY_EUCLIDEANREAL : forall u : R -> Prop, (@topology R (@UNION_OF R (@ARBITRARY R) (@relative_to R (@INTERSECTION_OF R (@FINITE (R -> Prop)) (@UNION (R -> Prop) (@GSPEC (R -> Prop) (fun GEN_PVAR_1719 : R -> Prop => exists a : R, @SETSPEC (R -> Prop) GEN_PVAR_1719 (@IN R a (@UNIV R)) (@GSPEC R (fun GEN_PVAR_1718 : R => exists x : R, @SETSPEC R GEN_PVAR_1718 (Rgt x a) x)))) (@GSPEC (R -> Prop) (fun GEN_PVAR_1722 : R -> Prop => exists a : R, @SETSPEC (R -> Prop) GEN_PVAR_1722 (@IN R a (@UNIV R)) (@GSPEC R (fun GEN_PVAR_1721 : R => exists x : R, @SETSPEC R GEN_PVAR_1721 (Rlt x a) x)))))) u))) = (@subtopology R euclideanreal u). +Axiom thm_EUCLIDEANREAL_CLOSURE_OF_HALFSPACE_GE : forall a : R, (@closure_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1723 : R => exists x : R, @SETSPEC R GEN_PVAR_1723 (Rge x a) x))) = (@GSPEC R (fun GEN_PVAR_1724 : R => exists x : R, @SETSPEC R GEN_PVAR_1724 (Rge x a) x)). +Axiom thm_EUCLIDEANREAL_CLOSURE_OF_HALFSPACE_LE : forall a : R, (@closure_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1725 : R => exists x : R, @SETSPEC R GEN_PVAR_1725 (Rle x a) x))) = (@GSPEC R (fun GEN_PVAR_1726 : R => exists x : R, @SETSPEC R GEN_PVAR_1726 (Rle x a) x)). +Axiom thm_EUCLIDEANREAL_CLOSURE_OF_HALFSPACE_GT : forall a : R, (@closure_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1727 : R => exists x : R, @SETSPEC R GEN_PVAR_1727 (Rgt x a) x))) = (@GSPEC R (fun GEN_PVAR_1728 : R => exists x : R, @SETSPEC R GEN_PVAR_1728 (Rge x a) x)). +Axiom thm_EUCLIDEANREAL_CLOSURE_OF_HALFSPACE_LT : forall a : R, (@closure_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1729 : R => exists x : R, @SETSPEC R GEN_PVAR_1729 (Rlt x a) x))) = (@GSPEC R (fun GEN_PVAR_1730 : R => exists x : R, @SETSPEC R GEN_PVAR_1730 (Rle x a) x)). +Axiom thm_EUCLIDEANREAL_INTERIOR_OF_HALFSPACE_GE : forall a : R, (@interior_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1733 : R => exists x : R, @SETSPEC R GEN_PVAR_1733 (Rge x a) x))) = (@GSPEC R (fun GEN_PVAR_1734 : R => exists x : R, @SETSPEC R GEN_PVAR_1734 (Rgt x a) x)). +Axiom thm_EUCLIDEANREAL_INTERIOR_OF_HALFSPACE_LE : forall a : R, (@interior_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1737 : R => exists x : R, @SETSPEC R GEN_PVAR_1737 (Rle x a) x))) = (@GSPEC R (fun GEN_PVAR_1738 : R => exists x : R, @SETSPEC R GEN_PVAR_1738 (Rlt x a) x)). +Axiom thm_EUCLIDEANREAL_INTERIOR_OF_HALFSPACE_GT : forall a : R, (@interior_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1739 : R => exists x : R, @SETSPEC R GEN_PVAR_1739 (Rgt x a) x))) = (@GSPEC R (fun GEN_PVAR_1740 : R => exists x : R, @SETSPEC R GEN_PVAR_1740 (Rgt x a) x)). +Axiom thm_EUCLIDEANREAL_INTERIOR_OF_HALFSPACE_LT : forall a : R, (@interior_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1741 : R => exists x : R, @SETSPEC R GEN_PVAR_1741 (Rlt x a) x))) = (@GSPEC R (fun GEN_PVAR_1742 : R => exists x : R, @SETSPEC R GEN_PVAR_1742 (Rlt x a) x)). +Axiom thm_EUCLIDEANREAL_FRONTIER_OF_HALFSPACE_GE : forall a : R, (@frontier_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1743 : R => exists x : R, @SETSPEC R GEN_PVAR_1743 (Rge x a) x))) = (@GSPEC R (fun GEN_PVAR_1744 : R => exists x : R, @SETSPEC R GEN_PVAR_1744 (x = a) x)). +Axiom thm_EUCLIDEANREAL_FRONTIER_OF_HALFSPACE_LE : forall a : R, (@frontier_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1745 : R => exists x : R, @SETSPEC R GEN_PVAR_1745 (Rle x a) x))) = (@GSPEC R (fun GEN_PVAR_1746 : R => exists x : R, @SETSPEC R GEN_PVAR_1746 (x = a) x)). +Axiom thm_EUCLIDEANREAL_FRONTIER_OF_HALFSPACE_GT : forall a : R, (@frontier_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1747 : R => exists x : R, @SETSPEC R GEN_PVAR_1747 (Rgt x a) x))) = (@GSPEC R (fun GEN_PVAR_1748 : R => exists x : R, @SETSPEC R GEN_PVAR_1748 (x = a) x)). +Axiom thm_EUCLIDEANREAL_FRONTIER_OF_HALFSPACE_LT : forall a : R, (@frontier_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1749 : R => exists x : R, @SETSPEC R GEN_PVAR_1749 (Rlt x a) x))) = (@GSPEC R (fun GEN_PVAR_1750 : R => exists x : R, @SETSPEC R GEN_PVAR_1750 (x = a) x)). +Axiom thm_EUCLIDEANREAL_CLOSURE_OF_RATIONAL : (@closure_of R euclideanreal rational) = (@UNIV R). +Axiom thm_EUCLIDEANREAL_CLOSURE_OF_IRRATIONAL : (@closure_of R euclideanreal (@GSPEC R (fun GEN_PVAR_1751 : R => exists z : R, @SETSPEC R GEN_PVAR_1751 (~ (rational z)) z))) = (@UNIV R). +Axiom thm_NOT_LOCALLY_COMPACT_SPACE_RATIONAL_GEN : forall s : R -> Prop, (~ ((@interior_of R euclideanreal s) = (@EMPTY R))) -> ~ (@locally_compact_space R (@subtopology R euclideanreal (@GSPEC R (fun GEN_PVAR_1758 : R => exists q : R, @SETSPEC R GEN_PVAR_1758 ((@IN R q s) /\ (rational q)) q)))). +Axiom thm_NOT_LOCALLY_COMPACT_SPACE_IRRATIONAL_GEN : forall s : R -> Prop, (~ ((@interior_of R euclideanreal s) = (@EMPTY R))) -> ~ (@locally_compact_space R (@subtopology R euclideanreal (@GSPEC R (fun GEN_PVAR_1764 : R => exists q : R, @SETSPEC R GEN_PVAR_1764 ((@IN R q s) /\ (~ (rational q))) q)))). +Axiom thm_NOT_LOCALLY_COMPACT_SPACE_RATIONAL : ~ (@locally_compact_space R (@subtopology R euclideanreal rational)). +Axiom thm_NOT_LOCALLY_COMPACT_SPACE_IRRATIONAL : ~ (@locally_compact_space R (@subtopology R euclideanreal (@GSPEC R (fun GEN_PVAR_1766 : R => exists z : R, @SETSPEC R GEN_PVAR_1766 (~ (rational z)) z)))). +Axiom thm_real_bounded : forall s : R -> Prop, (real_bounded s) = (exists B : R, forall x : R, (@IN R x s) -> Rle (Rabs x) B). +Axiom thm_REAL_BOUNDED_POS : forall s : R -> Prop, (real_bounded s) = (exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : R, (@IN R x s) -> Rle (Rabs x) B)). +Axiom thm_MBOUNDED_REAL_EUCLIDEAN_METRIC : (@mbounded R real_euclidean_metric) = real_bounded. +Axiom thm_REAL_BOUNDED_REAL_INTERVAL : (forall a : R, forall b : R, real_bounded (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall a : R, forall b : R, real_bounded (open_real_interval (@pair R R a b))). +Axiom thm_REAL_BOUNDED_SHRINK : forall s : R -> Prop, real_bounded (@IMAGE R R (fun x : R => Rdiv x (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x))) s). +Axiom thm_NOT_REAL_BOUNDED_UNIV : ~ (real_bounded (@UNIV R)). +Axiom thm_CONNECTED_IN_EUCLIDEANREAL : forall s : R -> Prop, (@connected_in R euclideanreal s) = (is_realinterval s). +Axiom thm_CONNECTED_IN_EUCLIDEANREAL_INTERVAL : (forall a : R, forall b : R, @connected_in R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall a : R, forall b : R, @connected_in R euclideanreal (open_real_interval (@pair R R a b))). +Axiom thm_COMPACT_IN_EUCLIDEANREAL_INTERVAL : forall a : R, forall b : R, @compact_in R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_COMPACT_IN_EUCLIDEANREAL : forall s : R -> Prop, (@compact_in R euclideanreal s) = ((@mbounded R real_euclidean_metric s) /\ (@closed_in R euclideanreal s)). +Axiom thm_real_compact_def : forall s : R -> Prop, (real_compact s) = (@compact_in R euclideanreal s). +Axiom thm_REAL_COMPACT_EQ_BOUNDED_CLOSED : forall s : R -> Prop, (real_compact s) = ((real_bounded s) /\ (real_closed s)). +Axiom thm_REAL_COMPACT_IMP_BOUNDED : forall s : R -> Prop, (real_compact s) -> real_bounded s. +Axiom thm_REAL_COMPACT_IMP_CLOSED : forall s : R -> Prop, (real_compact s) -> real_closed s. +Axiom thm_NOT_REAL_COMPACT_UNIV : ~ (real_compact (@UNIV R)). +Axiom thm_NOT_COMPACT_SPACE_EUCLIDEANREAL : ~ (@compact_space R euclideanreal). +Axiom thm_REAL_COMPACT_INTERVAL : forall a : R, forall b : R, real_compact (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_COMPACT_UNION : forall s : R -> Prop, forall t : R -> Prop, ((real_compact s) /\ (real_compact t)) -> real_compact (@UNION R s t). +Axiom thm_REAL_CLOSED_CONTAINS_SUP : forall s : R -> Prop, forall b : R, ((real_closed s) /\ ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle x b))) -> @IN R (sup s) s. +Axiom thm_REAL_COMPACT_CONTAINS_SUP : forall s : R -> Prop, ((real_compact s) /\ (~ (s = (@EMPTY R)))) -> @IN R (sup s) s. +Axiom thm_REAL_COMPACT_ATTAINS_SUP : forall s : R -> Prop, ((real_compact s) /\ (~ (s = (@EMPTY R)))) -> exists x : R, (@IN R x s) /\ (forall y : R, (@IN R y s) -> Rle y x). +Axiom thm_REAL_CLOSED_CONTAINS_INF : forall s : R -> Prop, forall b : R, ((real_closed s) /\ ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle b x))) -> @IN R (inf s) s. +Axiom thm_REAL_COMPACT_CONTAINS_INF : forall s : R -> Prop, ((real_compact s) /\ (~ (s = (@EMPTY R)))) -> @IN R (inf s) s. +Axiom thm_REAL_COMPACT_ATTAINS_INF : forall s : R -> Prop, ((real_compact s) /\ (~ (s = (@EMPTY R)))) -> exists x : R, (@IN R x s) /\ (forall y : R, (@IN R y s) -> Rle x y). +Axiom thm_REAL_COMPACT_IS_REALINTERVAL : forall s : R -> Prop, ((real_compact s) /\ (is_realinterval s)) = (exists a : R, exists b : R, s = (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_IS_REALINTERVAL_CLOSURE_OF : forall s : R -> Prop, (is_realinterval s) -> is_realinterval (@closure_of R euclideanreal s). +Axiom thm_IS_REALINTERVAL_INTERIOR_OF : forall s : R -> Prop, (is_realinterval s) -> is_realinterval (@interior_of R euclideanreal s). +Axiom thm_IS_REALINTERVAL_INTERIOR_SEGMENT : forall s : R -> Prop, forall a : R, forall b : R, ((is_realinterval s) /\ ((@IN R a (@closure_of R euclideanreal s)) /\ (@IN R b (@closure_of R euclideanreal s)))) -> @SUBSET R (open_real_interval (@pair R R a b)) (@interior_of R euclideanreal s). +Axiom thm_REAL_OPEN_SUBSET_CLOSURE_OF_REALINTERVAL : forall u : R -> Prop, forall s : R -> Prop, ((real_open u) /\ (is_realinterval s)) -> (@SUBSET R u (@closure_of R euclideanreal s)) = (@SUBSET R u (@interior_of R euclideanreal s)). +Axiom thm_REAL_OPEN_SUBSET_CLOSURE_OF_REALINTERVAL_ALT : forall u : R -> Prop, forall s : R -> Prop, ((real_open u) /\ (is_realinterval s)) -> (@SUBSET R u (@closure_of R euclideanreal s)) = (@SUBSET R u s). +Axiom thm_INTERIOR_OF_CLOSURE_OF_REALINTERVAL : forall s : R -> Prop, (is_realinterval s) -> (@interior_of R euclideanreal (@closure_of R euclideanreal s)) = (@interior_of R euclideanreal s). +Axiom thm_CLOSURE_OF_REAL_INTERVAL : forall a : R, forall b : R, (@closure_of R euclideanreal (open_real_interval (@pair R R a b))) = (@COND (R -> Prop) ((open_real_interval (@pair R R a b)) = (@EMPTY R)) (@EMPTY R) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_INTERIOR_OF_REAL_INTERVAL : forall a : R, forall b : R, (@interior_of R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (open_real_interval (@pair R R a b)). +Axiom thm_CLOSURE_OF_INTERIOR_OF_REALINTERVAL : forall s : R -> Prop, ((is_realinterval s) /\ (~ ((@interior_of R euclideanreal s) = (@EMPTY R)))) -> (@closure_of R euclideanreal (@interior_of R euclideanreal s)) = (@closure_of R euclideanreal s). +Axiom thm_CARD_FRONTIER_OF_REALINTERVAL : forall s : R -> Prop, (is_realinterval s) -> (@FINITE R (@frontier_of R euclideanreal s)) /\ (N.le (@CARD R (@frontier_of R euclideanreal s)) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_LOCALLY_COMPACT_SPACE_EUCLIDEANREAL : @locally_compact_space R euclideanreal. +Axiom thm_atpointof : forall {_438043 : Type'}, forall top : Topology _438043, forall a : _438043, (@atpointof _438043 top a) = (@mk_net _438043 (@pair ((_438043 -> Prop) -> Prop) (_438043 -> Prop) (@GSPEC (_438043 -> Prop) (fun GEN_PVAR_1781 : _438043 -> Prop => exists u : _438043 -> Prop, @SETSPEC (_438043 -> Prop) GEN_PVAR_1781 ((@open_in _438043 top u) /\ (@IN _438043 a u)) u)) (@INSERT _438043 a (@EMPTY _438043)))). +Axiom thm_NETLIMITS_ATPOINTOF : forall {A : Type'}, forall top : Topology A, forall a : A, (@netlimits A (@atpointof A top a)) = (@INSERT A a (@EMPTY A)). +Axiom thm_ATPOINTOF : forall {A : Type'}, forall top : Topology A, forall a : A, (@netfilter A (@atpointof A top a)) = (@GSPEC (A -> Prop) (fun GEN_PVAR_1782 : A -> Prop => exists u : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1782 ((@open_in A top u) /\ (@IN A a u)) u)). +Axiom thm_NETLIMIT_ATPOINTOF : forall {A : Type'}, forall top : Topology A, forall a : A, (@netlimit A (@atpointof A top a)) = a. +Axiom thm_EVENTUALLY_ATPOINTOF : forall {A : Type'}, forall P : A -> Prop, forall top : Topology A, forall a : A, (@eventually A P (@atpointof A top a)) = ((~ (@IN A a (@topspace A top))) \/ (exists u : A -> Prop, (@open_in A top u) /\ ((@IN A a u) /\ (forall x : A, (@IN A x (@DELETE A u a)) -> P x)))). +Axiom thm_ATPOINTOF_WITHIN_TRIVIAL : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall a : A, (@SUBSET A (@topspace A top) u) -> (@within A (@atpointof A top a) u) = (@atpointof A top a). +Axiom thm_ATPOINTOF_WITHIN_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall a : A, (@within A (@atpointof A top a) (@topspace A top)) = (@atpointof A top a). +Axiom thm_TRIVIAL_LIMIT_ATPOINTOF_WITHIN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall a : A, (@trivial_limit A (@within A (@atpointof A top a) s)) = (~ (@IN A a (@derived_set_of A top s))). +Axiom thm_DERIVED_SET_OF_TRIVIAL_LIMIT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall a : A, (@IN A a (@derived_set_of A top s)) = (~ (@trivial_limit A (@within A (@atpointof A top a) s))). +Axiom thm_TRIVIAL_LIMIT_ATPOINTOF : forall {A : Type'}, forall top : Topology A, forall a : A, (@trivial_limit A (@atpointof A top a)) = (~ (@IN A a (@derived_set_of A top (@topspace A top)))). +Axiom thm_ATPOINTOF_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall a : A, (@IN A a s) -> (@atpointof A (@subtopology A top s) a) = (@within A (@atpointof A top a) s). +Axiom thm_EVENTUALLY_ATPOINTOF_METRIC : forall {A : Type'}, forall P : A -> Prop, forall m : Metric A, forall a : A, (@eventually A P (@atpointof A (@mtopology A m) a)) = ((@IN A a (@mspace A m)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : A, ((@IN A x (@mspace A m)) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@mdist A m (@pair A A x a))) /\ (Rlt (@mdist A m (@pair A A x a)) d))) -> P x)). +Axiom thm_limit : forall {A B : Type'}, forall top : Topology B, forall l : B, forall f : A -> B, forall net' : net A, (@limit A B top f l net') = ((@IN B l (@topspace B top)) /\ (forall u : B -> Prop, ((@open_in B top u) /\ (@IN B l u)) -> @eventually A (fun x : A => @IN B (f x) u) net')). +Axiom thm_LIMIT_IMP_WITHIN : forall {A B : Type'}, forall net' : net A, forall top : Topology B, forall f : A -> B, forall l : B, forall s : A -> Prop, (@limit A B top f l net') -> @limit A B top f l (@within A net' s). +Axiom thm_LIMIT_IN_TOPSPACE : forall {A B : Type'}, forall net' : net A, forall top : Topology B, forall f : A -> B, forall l : B, (@limit A B top f l net') -> @IN B l (@topspace B top). +Axiom thm_LIMIT_CONST : forall {A B : Type'} (top : Topology B), forall net' : net A, forall l : B, (@limit A B top (fun a : A => l) l net') = (@IN B l (@topspace B top)). +Axiom thm_LIMIT_REAL_CONST : forall {A : Type'}, forall net' : net A, forall l : R, @limit A R euclideanreal (fun a : A => l) l net'. +Axiom thm_LIMIT_CONST_EQ : forall {A K : Type'}, forall net' : net K, forall top : Topology A, forall a : A, forall l : A, ((@t1_space A top) /\ (~ (@trivial_limit K net'))) -> (@limit K A top (fun k : K => a) l net') = ((@IN A l (@topspace A top)) /\ (a = l)). +Axiom thm_LIMIT_EVENTUALLY : forall {A K : Type'}, forall top : Topology A, forall net' : net K, forall f : K -> A, forall l : A, ((@IN A l (@topspace A top)) /\ (@eventually K (fun x : K => (f x) = l) net')) -> @limit K A top f l net'. +Axiom thm_LIMIT_WITHIN_SUBSET : forall {A B : Type'}, forall net' : net A, forall top : Topology B, forall f : A -> B, forall l : B, forall s : A -> Prop, forall t : A -> Prop, ((@limit A B top f l (@within A net' s)) /\ (@SUBSET A t s)) -> @limit A B top f l (@within A net' t). +Axiom thm_LIMIT_SUBSEQUENCE : forall {A : Type'}, forall top : Topology A, forall f : N -> A, forall l : A, forall r : N -> N, ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@limit N A top f l sequentially)) -> @limit N A top (@o N N A f r) l sequentially. +Axiom thm_LIMIT_SUBTOPOLOGY : forall {A B : Type'}, forall net' : net A, forall top : Topology B, forall s : B -> Prop, forall l : B, forall f : A -> B, (@limit A B (@subtopology B top s) f l net') = ((@IN B l s) /\ ((@eventually A (fun a : A => @IN B (f a) s) net') /\ (@limit A B top f l net'))). +Axiom thm_LIMIT_SEQUENTIALLY : forall {A : Type'}, forall top : Topology A, forall s : N -> A, forall l : A, (@limit N A top s l sequentially) = ((@IN A l (@topspace A top)) /\ (forall u : A -> Prop, ((@open_in A top u) /\ (@IN A l u)) -> exists N' : N, forall n : N, (N.le N' n) -> @IN A (s n) u)). +Axiom thm_LIMIT_SEQUENTIALLY_OFFSET : forall {A : Type'}, forall top : Topology A, forall f : N -> A, forall l : A, forall k : N, (@limit N A top f l sequentially) -> @limit N A top (fun i : N => f (N.add i k)) l sequentially. +Axiom thm_LIMIT_SEQUENTIALLY_OFFSET_REV : forall {A : Type'}, forall top : Topology A, forall f : N -> A, forall l : A, forall k : N, (@limit N A top (fun i : N => f (N.add i k)) l sequentially) -> @limit N A top f l sequentially. +Axiom thm_LIMIT_ATPOINTOF : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall x : A, forall y : B, (@limit A B top' f y (@atpointof A top x)) = ((@IN B y (@topspace B top')) /\ ((@IN A x (@topspace A top)) -> forall v : B -> Prop, ((@open_in B top' v) /\ (@IN B y v)) -> exists u : A -> Prop, (@open_in A top u) /\ ((@IN A x u) /\ (@SUBSET B (@IMAGE A B f (@DELETE A u x)) v)))). +Axiom thm_LIMIT_ATPOINTOF_SELF : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall f : A -> B, forall a : A, (@limit A B top2 f (f a) (@atpointof A top1 a)) = ((@IN B (f a) (@topspace B top2)) /\ ((@IN A a (@topspace A top1)) -> forall v : B -> Prop, ((@open_in B top2 v) /\ (@IN B (f a) v)) -> exists u : A -> Prop, (@open_in A top1 u) /\ ((@IN A a u) /\ (@SUBSET B (@IMAGE A B f u) v)))). +Axiom thm_LIMIT_TRIVIAL : forall {A B : Type'}, forall net' : net A, forall f : A -> B, forall top : Topology B, forall y : B, ((@trivial_limit A net') /\ (@IN B y (@topspace B top))) -> @limit A B top f y net'. +Axiom thm_LIMIT_TRANSFORM_EVENTUALLY : forall {A B : Type'}, forall net' : net A, forall top : Topology B, forall f : A -> B, forall g : A -> B, forall l : B, ((@eventually A (fun x : A => (f x) = (g x)) net') /\ (@limit A B top f l net')) -> @limit A B top g l net'. +Axiom thm_CONTINUOUS_MAP_LIMIT : forall {A B C : Type'}, forall net' : net A, forall top : Topology B, forall top' : Topology C, forall f : A -> B, forall g : B -> C, forall l : B, ((@continuous_map B C (@pair (Topology B) (Topology C) top top') g) /\ (@limit A B top f l net')) -> @limit A C top' (@o A B C g f) (g l) net'. +Axiom thm_LIMIT_PAIRWISE : forall {A B C : Type'}, forall net' : net C, forall top1 : Topology A, forall top2 : Topology B, forall f : C -> prod A B, forall l : prod A B, (@limit C (prod A B) (@prod_topology A B top1 top2) f l net') = ((@limit C A top1 (@o C (prod A B) A (@fst A B) f) (@fst A B l) net') /\ (@limit C B top2 (@o C (prod A B) B (@snd A B) f) (@snd A B l) net')). +Axiom thm_LIMIT_COMPONENTWISE : forall {A C K : Type'}, forall net' : net C, forall tops : K -> Topology A, forall t : K -> Prop, forall f : C -> K -> A, forall l : K -> A, (@limit C (K -> A) (@product_topology A K t tops) f l net') = ((@EXTENSIONAL K A t l) /\ ((@eventually C (fun a : C => @IN (K -> A) (f a) (@topspace (K -> A) (@product_topology A K t tops))) net') /\ (forall k : K, (@IN K k t) -> @limit C A (tops k) (fun c : C => f c k) (l k) net'))). +Axiom thm_COMPACT_IN_SEQUENCE_WITH_LIMIT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall a : N -> A, forall l : A, ((@limit N A top a l sequentially) /\ ((@SUBSET A s (@IMAGE N A a (@UNIV N))) /\ (@SUBSET A s (@topspace A top)))) -> @compact_in A top (@INSERT A l s). +Axiom thm_LIMIT_HAUSDORFF_UNIQUE : forall {A B : Type'}, forall net' : net A, forall top : Topology B, forall f : A -> B, forall l1 : B, forall l2 : B, ((~ (@trivial_limit A net')) /\ ((@hausdorff_space B top) /\ ((@limit A B top f l1 net') /\ (@limit A B top f l2 net')))) -> l1 = l2. +Axiom thm_LIMIT_KC_UNIQUE : forall {A : Type'}, forall top : Topology A, forall f : N -> A, forall l1 : A, forall l2 : A, ((@kc_space A top) /\ ((@limit N A top f l1 sequentially) /\ (@limit N A top f l2 sequentially))) -> l1 = l2. +Axiom thm_LIMIT_IN_MSPACE : forall {A B : Type'}, forall net' : net A, forall m : Metric B, forall f : A -> B, forall l : B, (@limit A B (@mtopology B m) f l net') -> @IN B l (@mspace B m). +Axiom thm_LIMIT_METRIC_UNIQUE : forall {A B : Type'}, forall net' : net A, forall m : Metric B, forall f : A -> B, forall l1 : B, forall l2 : B, ((~ (@trivial_limit A net')) /\ ((@limit A B (@mtopology B m) f l1 net') /\ (@limit A B (@mtopology B m) f l2 net'))) -> l1 = l2. +Axiom thm_LIMIT_METRIC : forall {A B : Type'}, forall m : Metric B, forall f : A -> B, forall l : B, forall net' : net A, (@limit A B (@mtopology B m) f l net') = ((@IN B l (@mspace B m)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => (@IN B (f x) (@mspace B m)) /\ (Rlt (@mdist B m (@pair B B (f x) l)) e)) net')). +Axiom thm_LIMIT_METRIC_SEQUENTIALLY : forall {A : Type'}, forall m : Metric A, forall f : N -> A, forall l : A, (@limit N A (@mtopology A m) f l sequentially) = ((@IN A l (@mspace A m)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, (N.le N' n) -> (@IN A (f n) (@mspace A m)) /\ (Rlt (@mdist A m (@pair A A (f n) l)) e))). +Axiom thm_LIMIT_IN_CLOSED_IN : forall {A B : Type'}, forall net' : net A, forall top : Topology B, forall s : B -> Prop, forall f : A -> B, forall l : B, ((~ (@trivial_limit A net')) /\ ((@limit A B top f l net') /\ ((@closed_in B top s) /\ (@eventually A (fun x : A => @IN B (f x) s) net')))) -> @IN B l s. +Axiom thm_LIMIT_SUBMETRIC_IFF : forall {A B : Type'}, forall net' : net A, forall m : Metric B, forall s : B -> Prop, forall f : A -> B, forall l : B, (@limit A B (@mtopology B (@submetric B m s)) f l net') = ((@IN B l s) /\ ((@eventually A (fun x : A => @IN B (f x) s) net') /\ (@limit A B (@mtopology B m) f l net'))). +Axiom thm_METRIC_CLOSED_IN_IFF_SEQUENTIALLY_CLOSED : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@closed_in A (@mtopology A m) s) = ((@SUBSET A s (@mspace A m)) /\ (forall a : N -> A, forall l : A, ((forall n : N, @IN A (a n) s) /\ (@limit N A (@mtopology A m) a l sequentially)) -> @IN A l s)). +Axiom thm_LIMIT_ATPOINTOF_METRIC : forall {A B : Type'}, forall m : Metric A, forall top : Topology B, forall f : A -> B, forall x : A, forall y : B, (@limit A B top f y (@atpointof A (@mtopology A m) x)) = ((@IN B y (@topspace B top)) /\ ((@IN A x (@mspace A m)) -> forall v : B -> Prop, ((@open_in B top v) /\ (@IN B y v)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : A, ((@IN A x' (@mspace A m)) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@mdist A m (@pair A A x' x))) /\ (Rlt (@mdist A m (@pair A A x' x)) d))) -> @IN B (f x') v))). +Axiom thm_LIMIT_METRIC_DIST_NULL : forall {A K : Type'}, forall net' : net K, forall m : Metric A, forall f : K -> A, forall l : A, (@limit K A (@mtopology A m) f l net') = ((@IN A l (@mspace A m)) /\ ((@eventually K (fun x : K => @IN A (f x) (@mspace A m)) net') /\ (@limit K R euclideanreal (fun x : K => @mdist A m (@pair A A (f x) l)) (R_of_N (NUMERAL 0%N)) net'))). +Axiom thm_LIMIT_NULL_REAL : forall {A : Type'}, forall net' : net A, forall f : A -> R, (@limit A R euclideanreal f (R_of_N (NUMERAL 0%N)) net') = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun a : A => Rlt (Rabs (f a)) e) net'). +Axiom thm_LIMIT_NULL_REAL_ABS : forall {A : Type'}, forall net' : net A, forall f : A -> R, (@limit A R euclideanreal (fun a : A => Rabs (f a)) (R_of_N (NUMERAL 0%N)) net') = (@limit A R euclideanreal f (R_of_N (NUMERAL 0%N)) net'). +Axiom thm_LIMIT_NULL_REAL_COMPARISON : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, ((@limit A R euclideanreal f (R_of_N (NUMERAL 0%N)) net') /\ (@eventually A (fun a : A => Rle (Rabs (g a)) (Rabs (f a))) net')) -> @limit A R euclideanreal g (R_of_N (NUMERAL 0%N)) net'. +Axiom thm_LIMIT_NULL_REAL_HARMONIC_OFFSET : forall a : R, @limit N R euclideanreal (fun n : N => Rinv (Rplus (R_of_N n) a)) (R_of_N (NUMERAL 0%N)) sequentially. +Axiom thm_EVENTUALLY_ATPOINTOF_WITHIN_SEQUENTIALLY : forall {A : Type'}, forall met : Metric A, forall P : A -> Prop, forall s : A -> Prop, forall a : A, (@eventually A P (@within A (@atpointof A (@mtopology A met) a) s)) = (forall x : N -> A, ((forall n : N, @IN A (x n) (@DELETE A (@INTER A s (@mspace A met)) a)) /\ (@limit N A (@mtopology A met) x a sequentially)) -> @eventually N (fun n : N => P (x n)) sequentially). +Axiom thm_EVENTUALLY_ATPOINTOF_WITHIN_SEQUENTIALLY_DECREASING : forall {A : Type'}, forall met : Metric A, forall P : A -> Prop, forall s : A -> Prop, forall a : A, (@eventually A P (@within A (@atpointof A (@mtopology A met) a) s)) = (forall x : N -> A, ((forall n : N, @IN A (x n) (@DELETE A (@INTER A s (@mspace A met)) a)) /\ ((forall m : N, forall n : N, (N.lt m n) -> Rlt (@mdist A met (@pair A A (x n) a)) (@mdist A met (@pair A A (x m) a))) /\ ((forall m : N, forall n : N, ((x m) = (x n)) = (m = n)) /\ (@limit N A (@mtopology A met) x a sequentially)))) -> @eventually N (fun n : N => P (x n)) sequentially). +Axiom thm_EVENTUALLY_ATPOINTOF_WITHIN_SEQUENTIALLY_INJ : forall {A : Type'}, forall met : Metric A, forall P : A -> Prop, forall s : A -> Prop, forall a : A, (@eventually A P (@within A (@atpointof A (@mtopology A met) a) s)) = (forall x : N -> A, ((forall n : N, @IN A (x n) (@DELETE A (@INTER A s (@mspace A met)) a)) /\ ((forall m : N, forall n : N, ((x m) = (x n)) = (m = n)) /\ (@limit N A (@mtopology A met) x a sequentially))) -> @eventually N (fun n : N => P (x n)) sequentially). +Axiom thm_EVENTUALLY_ATPOINTOF_SEQUENTIALLY : forall {A : Type'}, forall met : Metric A, forall P : A -> Prop, forall a : A, (@eventually A P (@atpointof A (@mtopology A met) a)) = (forall x : N -> A, ((forall n : N, @IN A (x n) (@DELETE A (@mspace A met) a)) /\ (@limit N A (@mtopology A met) x a sequentially)) -> @eventually N (fun n : N => P (x n)) sequentially). +Axiom thm_EVENTUALLY_ATPOINTOF_SEQUENTIALLY_INJ : forall {A : Type'}, forall met : Metric A, forall P : A -> Prop, forall a : A, (@eventually A P (@atpointof A (@mtopology A met) a)) = (forall x : N -> A, ((forall n : N, @IN A (x n) (@DELETE A (@mspace A met) a)) /\ ((forall m : N, forall n : N, ((x m) = (x n)) = (m = n)) /\ (@limit N A (@mtopology A met) x a sequentially))) -> @eventually N (fun n : N => P (x n)) sequentially). +Axiom thm_EVENTUALLY_ATPOINTOF_SEQUENTIALLY_DECREASING : forall {A : Type'}, forall met : Metric A, forall P : A -> Prop, forall a : A, (@eventually A P (@atpointof A (@mtopology A met) a)) = (forall x : N -> A, ((forall n : N, @IN A (x n) (@DELETE A (@mspace A met) a)) /\ ((forall m : N, forall n : N, (N.lt m n) -> Rlt (@mdist A met (@pair A A (x n) a)) (@mdist A met (@pair A A (x m) a))) /\ ((forall m : N, forall n : N, ((x m) = (x n)) = (m = n)) /\ (@limit N A (@mtopology A met) x a sequentially)))) -> @eventually N (fun n : N => P (x n)) sequentially). +Axiom thm_LIMIT_ATPOINTOF_SEQUENTIALLY_WITHIN : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall s : A -> Prop, forall f : A -> B, forall a : A, forall l : B, (@limit A B (@mtopology B m2) f l (@within A (@atpointof A (@mtopology A m1) a) s)) = ((@IN B l (@mspace B m2)) /\ (forall x : N -> A, ((forall n : N, @IN A (x n) (@DELETE A (@INTER A s (@mspace A m1)) a)) /\ (@limit N A (@mtopology A m1) x a sequentially)) -> @limit N B (@mtopology B m2) (@o N A B f x) l sequentially)). +Axiom thm_LIMIT_ATPOINTOF_SEQUENTIALLY_WITHIN_INJ : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall s : A -> Prop, forall f : A -> B, forall a : A, forall l : B, (@limit A B (@mtopology B m2) f l (@within A (@atpointof A (@mtopology A m1) a) s)) = ((@IN B l (@mspace B m2)) /\ (forall x : N -> A, ((forall n : N, @IN A (x n) (@DELETE A (@INTER A s (@mspace A m1)) a)) /\ ((forall m : N, forall n : N, ((x m) = (x n)) = (m = n)) /\ (@limit N A (@mtopology A m1) x a sequentially))) -> @limit N B (@mtopology B m2) (@o N A B f x) l sequentially)). +Axiom thm_LIMIT_ATPOINTOF_SEQUENTIALLY_WITHIN_DECREASING : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall s : A -> Prop, forall f : A -> B, forall a : A, forall l : B, (@limit A B (@mtopology B m2) f l (@within A (@atpointof A (@mtopology A m1) a) s)) = ((@IN B l (@mspace B m2)) /\ (forall x : N -> A, ((forall n : N, @IN A (x n) (@DELETE A (@INTER A s (@mspace A m1)) a)) /\ ((forall m : N, forall n : N, (N.lt m n) -> Rlt (@mdist A m1 (@pair A A (x n) a)) (@mdist A m1 (@pair A A (x m) a))) /\ ((forall m : N, forall n : N, ((x m) = (x n)) = (m = n)) /\ (@limit N A (@mtopology A m1) x a sequentially)))) -> @limit N B (@mtopology B m2) (@o N A B f x) l sequentially)). +Axiom thm_LIMIT_ATPOINTOF_SEQUENTIALLY : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall a : A, forall l : B, (@limit A B (@mtopology B m2) f l (@atpointof A (@mtopology A m1) a)) = ((@IN B l (@mspace B m2)) /\ (forall x : N -> A, ((forall n : N, @IN A (x n) (@DELETE A (@mspace A m1) a)) /\ (@limit N A (@mtopology A m1) x a sequentially)) -> @limit N B (@mtopology B m2) (@o N A B f x) l sequentially)). +Axiom thm_LIMIT_ATPOINTOF_SEQUENTIALLY_INJ : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall a : A, forall l : B, (@limit A B (@mtopology B m2) f l (@atpointof A (@mtopology A m1) a)) = ((@IN B l (@mspace B m2)) /\ (forall x : N -> A, ((forall n : N, @IN A (x n) (@DELETE A (@mspace A m1) a)) /\ ((forall m : N, forall n : N, ((x m) = (x n)) = (m = n)) /\ (@limit N A (@mtopology A m1) x a sequentially))) -> @limit N B (@mtopology B m2) (@o N A B f x) l sequentially)). +Axiom thm_LIMIT_ATPOINTOF_SEQUENTIALLY_DECREASING : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall a : A, forall l : B, (@limit A B (@mtopology B m2) f l (@atpointof A (@mtopology A m1) a)) = ((@IN B l (@mspace B m2)) /\ (forall x : N -> A, ((forall n : N, @IN A (x n) (@DELETE A (@mspace A m1) a)) /\ ((forall m : N, forall n : N, (N.lt m n) -> Rlt (@mdist A m1 (@pair A A (x n) a)) (@mdist A m1 (@pair A A (x m) a))) /\ ((forall m : N, forall n : N, ((x m) = (x n)) = (m = n)) /\ (@limit N A (@mtopology A m1) x a sequentially)))) -> @limit N B (@mtopology B m2) (@o N A B f x) l sequentially)). +Axiom thm_DERIVED_SET_OF_SEQUENTIALLY : forall {A : Type'}, forall met : Metric A, forall s : A -> Prop, (@derived_set_of A (@mtopology A met) s) = (@GSPEC A (fun GEN_PVAR_1792 : A => exists x : A, @SETSPEC A GEN_PVAR_1792 ((@IN A x (@mspace A met)) /\ (exists f : N -> A, (forall n : N, @IN A (f n) (@DELETE A (@INTER A s (@mspace A met)) x)) /\ (@limit N A (@mtopology A met) f x sequentially))) x)). +Axiom thm_DERIVED_SET_OF_SEQUENTIALLY_ALT : forall {A : Type'}, forall met : Metric A, forall s : A -> Prop, (@derived_set_of A (@mtopology A met) s) = (@GSPEC A (fun GEN_PVAR_1793 : A => exists x : A, @SETSPEC A GEN_PVAR_1793 (exists f : N -> A, (forall n : N, @IN A (f n) (@DELETE A s x)) /\ (@limit N A (@mtopology A met) f x sequentially)) x)). +Axiom thm_DERIVED_SET_OF_SEQUENTIALLY_INJ : forall {A : Type'}, forall met : Metric A, forall s : A -> Prop, (@derived_set_of A (@mtopology A met) s) = (@GSPEC A (fun GEN_PVAR_1794 : A => exists x : A, @SETSPEC A GEN_PVAR_1794 ((@IN A x (@mspace A met)) /\ (exists f : N -> A, (forall n : N, @IN A (f n) (@DELETE A (@INTER A s (@mspace A met)) x)) /\ ((forall m : N, forall n : N, ((f m) = (f n)) = (m = n)) /\ (@limit N A (@mtopology A met) f x sequentially)))) x)). +Axiom thm_DERIVED_SET_OF_SEQUENTIALLY_INJ_ALT : forall {A : Type'}, forall met : Metric A, forall s : A -> Prop, (@derived_set_of A (@mtopology A met) s) = (@GSPEC A (fun GEN_PVAR_1795 : A => exists x : A, @SETSPEC A GEN_PVAR_1795 (exists f : N -> A, (forall n : N, @IN A (f n) (@DELETE A s x)) /\ ((forall m : N, forall n : N, ((f m) = (f n)) = (m = n)) /\ (@limit N A (@mtopology A met) f x sequentially))) x)). +Axiom thm_DERIVED_SET_OF_SEQUENTIALLY_DECREASING : forall {A : Type'}, forall met : Metric A, forall s : A -> Prop, (@derived_set_of A (@mtopology A met) s) = (@GSPEC A (fun GEN_PVAR_1796 : A => exists x : A, @SETSPEC A GEN_PVAR_1796 ((@IN A x (@mspace A met)) /\ (exists f : N -> A, (forall n : N, @IN A (f n) (@DELETE A (@INTER A s (@mspace A met)) x)) /\ ((forall m : N, forall n : N, (N.lt m n) -> Rlt (@mdist A met (@pair A A (f n) x)) (@mdist A met (@pair A A (f m) x))) /\ ((forall m : N, forall n : N, ((f m) = (f n)) = (m = n)) /\ (@limit N A (@mtopology A met) f x sequentially))))) x)). +Axiom thm_DERIVED_SET_OF_SEQUENTIALLY_DECREASING_ALT : forall {A : Type'}, forall met : Metric A, forall s : A -> Prop, (@derived_set_of A (@mtopology A met) s) = (@GSPEC A (fun GEN_PVAR_1797 : A => exists x : A, @SETSPEC A GEN_PVAR_1797 (exists f : N -> A, (forall n : N, @IN A (f n) (@DELETE A s x)) /\ ((forall m : N, forall n : N, (N.lt m n) -> Rlt (@mdist A met (@pair A A (f n) x)) (@mdist A met (@pair A A (f m) x))) /\ ((forall m : N, forall n : N, ((f m) = (f n)) = (m = n)) /\ (@limit N A (@mtopology A met) f x sequentially)))) x)). +Axiom thm_CLOSURE_OF_SEQUENTIALLY : forall {A : Type'}, forall met : Metric A, forall s : A -> Prop, (@closure_of A (@mtopology A met) s) = (@GSPEC A (fun GEN_PVAR_1798 : A => exists x : A, @SETSPEC A GEN_PVAR_1798 ((@IN A x (@mspace A met)) /\ (exists f : N -> A, (forall n : N, @IN A (f n) (@INTER A s (@mspace A met))) /\ (@limit N A (@mtopology A met) f x sequentially))) x)). +Axiom thm_LIMIT_REAL_MUL : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@limit A R euclideanreal f l net') /\ (@limit A R euclideanreal g m net')) -> @limit A R euclideanreal (fun x : A => Rmult (f x) (g x)) (Rmult l m) net'. +Axiom thm_LIMIT_REAL_LMUL : forall {A : Type'}, forall net' : net A, forall c : R, forall f : A -> R, forall l : R, (@limit A R euclideanreal f l net') -> @limit A R euclideanreal (fun x : A => Rmult c (f x)) (Rmult c l) net'. +Axiom thm_LIMIT_REAL_LMUL_EQ : forall {A : Type'}, forall net' : net A, forall c : R, forall f : A -> R, forall l : R, (@limit A R euclideanreal (fun x : A => Rmult c (f x)) (Rmult c l) net') = ((c = (R_of_N (NUMERAL 0%N))) \/ (@limit A R euclideanreal f l net')). +Axiom thm_LIMIT_REAL_RMUL : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall c : R, forall l : R, (@limit A R euclideanreal f l net') -> @limit A R euclideanreal (fun x : A => Rmult (f x) c) (Rmult l c) net'. +Axiom thm_LIMIT_REAL_RMUL_EQ : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall c : R, forall l : R, (@limit A R euclideanreal (fun x : A => Rmult (f x) c) (Rmult l c) net') = ((c = (R_of_N (NUMERAL 0%N))) \/ (@limit A R euclideanreal f l net')). +Axiom thm_LIMIT_REAL_NEG : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, (@limit A R euclideanreal f l net') -> @limit A R euclideanreal (fun x : A => Ropp (f x)) (Ropp l) net'. +Axiom thm_LIMIT_REAL_NEG_EQ : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, (@limit A R euclideanreal (fun x : A => Ropp (f x)) l net') = (@limit A R euclideanreal f (Ropp l) net'). +Axiom thm_LIMIT_REAL_ADD : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@limit A R euclideanreal f l net') /\ (@limit A R euclideanreal g m net')) -> @limit A R euclideanreal (fun x : A => Rplus (f x) (g x)) (Rplus l m) net'. +Axiom thm_LIMIT_REAL_SUB : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@limit A R euclideanreal f l net') /\ (@limit A R euclideanreal g m net')) -> @limit A R euclideanreal (fun x : A => Rminus (f x) (g x)) (Rminus l m) net'. +Axiom thm_LIMIT_REAL_ABS : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, (@limit A R euclideanreal f l net') -> @limit A R euclideanreal (fun x : A => Rabs (f x)) (Rabs l) net'. +Axiom thm_LIMIT_REAL_MAX : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@limit A R euclideanreal f l net') /\ (@limit A R euclideanreal g m net')) -> @limit A R euclideanreal (fun x : A => Rmax (f x) (g x)) (Rmax l m) net'. +Axiom thm_LIMIT_REAL_MIN : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@limit A R euclideanreal f l net') /\ (@limit A R euclideanreal g m net')) -> @limit A R euclideanreal (fun x : A => Rmin (f x) (g x)) (Rmin l m) net'. +Axiom thm_LIMIT_SUM : forall {A K : Type'}, forall net' : net A, forall f : A -> K -> R, forall l : K -> R, forall k : K -> Prop, ((@FINITE K k) /\ (forall i : K, (@IN K i k) -> @limit A R euclideanreal (fun x : A => f x i) (l i) net')) -> @limit A R euclideanreal (fun x : A => @sum K k (f x)) (@sum K k l) net'. +Axiom thm_LIMIT_PRODUCT : forall {A K : Type'}, forall net' : net A, forall f : A -> K -> R, forall l : K -> R, forall k : K -> Prop, ((@FINITE K k) /\ (forall i : K, (@IN K i k) -> @limit A R euclideanreal (fun x : A => f x i) (l i) net')) -> @limit A R euclideanreal (fun x : A => @product K k (f x)) (@product K k l) net'. +Axiom thm_LIMIT_REAL_INV : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, ((@limit A R euclideanreal f l net') /\ (~ (l = (R_of_N (NUMERAL 0%N))))) -> @limit A R euclideanreal (fun x : A => Rinv (f x)) (Rinv l) net'. +Axiom thm_LIMIT_REAL_DIV : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@limit A R euclideanreal f l net') /\ ((@limit A R euclideanreal g m net') /\ (~ (m = (R_of_N (NUMERAL 0%N)))))) -> @limit A R euclideanreal (fun x : A => Rdiv (f x) (g x)) (Rdiv l m) net'. +Axiom thm_LIMIT_INF : forall {A K : Type'}, forall net' : net A, forall f : A -> K -> R, forall l : K -> R, forall k : K -> Prop, ((@FINITE K k) /\ (forall i : K, (@IN K i k) -> @limit A R euclideanreal (fun x : A => f x i) (l i) net')) -> @limit A R euclideanreal (fun x : A => inf (@GSPEC R (fun GEN_PVAR_1799 : R => exists i : K, @SETSPEC R GEN_PVAR_1799 (@IN K i k) (f x i)))) (inf (@GSPEC R (fun GEN_PVAR_1800 : R => exists i : K, @SETSPEC R GEN_PVAR_1800 (@IN K i k) (l i)))) net'. +Axiom thm_LIMIT_SUP : forall {A K : Type'}, forall net' : net A, forall f : A -> K -> R, forall l : K -> R, forall k : K -> Prop, ((@FINITE K k) /\ (forall i : K, (@IN K i k) -> @limit A R euclideanreal (fun x : A => f x i) (l i) net')) -> @limit A R euclideanreal (fun x : A => sup (@GSPEC R (fun GEN_PVAR_1801 : R => exists i : K, @SETSPEC R GEN_PVAR_1801 (@IN K i k) (f x i)))) (sup (@GSPEC R (fun GEN_PVAR_1802 : R => exists i : K, @SETSPEC R GEN_PVAR_1802 (@IN K i k) (l i)))) net'. +Axiom thm_cauchy_in : forall {A : Type'}, forall m : Metric A, forall s : N -> A, (@cauchy_in A m s) = ((forall n : N, @IN A (s n) (@mspace A m)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall n' : N, ((N.le N' n) /\ (N.le N' n')) -> Rlt (@mdist A m (@pair A A (s n) (s n'))) e)). +Axiom thm_mcomplete : forall {A : Type'}, forall m : Metric A, (@mcomplete A m) = (forall s : N -> A, (@cauchy_in A m s) -> exists x : A, @limit N A (@mtopology A m) s x sequentially). +Axiom thm_MCOMPLETE : forall {A : Type'}, forall m : Metric A, (@mcomplete A m) = (forall s : N -> A, ((@eventually N (fun n : N => @IN A (s n) (@mspace A m)) sequentially) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall n' : N, ((N.le N' n) /\ (N.le N' n')) -> Rlt (@mdist A m (@pair A A (s n) (s n'))) e)) -> exists x : A, @limit N A (@mtopology A m) s x sequentially). +Axiom thm_MCOMPLETE_EMPTY_MSPACE : forall {A : Type'}, forall m : Metric A, ((@mspace A m) = (@EMPTY A)) -> @mcomplete A m. +Axiom thm_MCOMPLETE_SUBMETRIC_EMPTY : forall {A : Type'}, forall m : Metric A, @mcomplete A (@submetric A m (@EMPTY A)). +Axiom thm_CAUCHY_IN_SUBMETRIC : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall x : N -> A, (@cauchy_in A (@submetric A m s) x) = ((forall n : N, @IN A (x n) s) /\ (@cauchy_in A m x)). +Axiom thm_CAUCHY_IN_CONST : forall {A : Type'}, forall m : Metric A, forall a : A, (@cauchy_in A m (fun n : N => a)) = (@IN A a (@mspace A m)). +Axiom thm_CONVERGENT_IMP_CAUCHY_IN : forall {A : Type'}, forall m : Metric A, forall x : N -> A, forall l : A, ((forall n : N, @IN A (x n) (@mspace A m)) /\ (@limit N A (@mtopology A m) x l sequentially)) -> @cauchy_in A m x. +Axiom thm_MCOMPLETE_ALT : forall {A : Type'}, forall m : Metric A, (@mcomplete A m) = (forall s : N -> A, (@cauchy_in A m s) = ((forall n : N, @IN A (s n) (@mspace A m)) /\ (exists x : A, @limit N A (@mtopology A m) s x sequentially))). +Axiom thm_CAUCHY_IN_SUBSEQUENCE : forall {A : Type'}, forall m : Metric A, forall x : N -> A, forall r : N -> N, ((forall m' : N, forall n : N, (N.lt m' n) -> N.lt (r m') (r n)) /\ (@cauchy_in A m x)) -> @cauchy_in A m (@o N N A x r). +Axiom thm_CAUCHY_IN_OFFSET : forall {A : Type'}, forall m : Metric A, forall a : N, forall x : N -> A, ((forall n : N, (N.lt n a) -> @IN A (x n) (@mspace A m)) /\ (@cauchy_in A m (fun n : N => x (N.add a n)))) -> @cauchy_in A m x. +Axiom thm_CAUCHY_IN_CONVERGENT_SUBSEQUENCE : forall {A : Type'}, forall m : Metric A, forall r : N -> N, forall a : A, forall x : N -> A, ((@cauchy_in A m x) /\ ((forall m' : N, forall n : N, (N.lt m' n) -> N.lt (r m') (r n)) /\ (@limit N A (@mtopology A m) (@o N N A x r) a sequentially))) -> @limit N A (@mtopology A m) x a sequentially. +Axiom thm_CLOSED_IN_MCOMPLETE_IMP_MCOMPLETE : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, ((@closed_in A (@mtopology A m) s) /\ (@mcomplete A m)) -> @mcomplete A (@submetric A m s). +Axiom thm_SEQUENTIALLY_CLOSED_IN_MCOMPLETE_IMP_MCOMPLETE : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, ((@mcomplete A m) /\ (forall x : N -> A, forall l : A, ((forall n : N, @IN A (x n) s) /\ (@limit N A (@mtopology A m) x l sequentially)) -> @IN A l s)) -> @mcomplete A (@submetric A m s). +Axiom thm_CAUCHY_IN_INTERLEAVING_GEN : forall {A : Type'}, forall m : Metric A, forall x : N -> A, forall y : N -> A, (@cauchy_in A m (fun n : N => @COND A (EVEN n) (x (N.div n (NUMERAL (BIT0 (BIT1 0%N))))) (y (N.div n (NUMERAL (BIT0 (BIT1 0%N))))))) = ((@cauchy_in A m x) /\ ((@cauchy_in A m y) /\ (@limit N R euclideanreal (fun n : N => @mdist A m (@pair A A (x n) (y n))) (R_of_N (NUMERAL 0%N)) sequentially))). +Axiom thm_CAUCHY_IN_INTERLEAVING : forall {A : Type'}, forall m : Metric A, forall x : N -> A, forall a : A, (@cauchy_in A m (fun n : N => @COND A (EVEN n) (x (N.div n (NUMERAL (BIT0 (BIT1 0%N))))) a)) = ((forall n : N, @IN A (x n) (@mspace A m)) /\ (@limit N A (@mtopology A m) x a sequentially)). +Axiom thm_MCOMPLETE_NEST : forall {A : Type'}, forall m : Metric A, (@mcomplete A m) = (forall c : N -> A -> Prop, ((forall n : N, @closed_in A (@mtopology A m) (c n)) /\ ((forall n : N, ~ ((c n) = (@EMPTY A))) /\ ((forall m' : N, forall n : N, (N.le m' n) -> @SUBSET A (c n) (c m')) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists n : N, exists a : A, @SUBSET A (c n) (@mcball A m (@pair A R a e)))))) -> ~ ((@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1803 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_1803 (@IN N n (@UNIV N)) (c n)))) = (@EMPTY A))). +Axiom thm_MCOMPLETE_NEST_SING : forall {A : Type'}, forall m : Metric A, (@mcomplete A m) = (forall c : N -> A -> Prop, ((forall n : N, @closed_in A (@mtopology A m) (c n)) /\ ((forall n : N, ~ ((c n) = (@EMPTY A))) /\ ((forall m' : N, forall n : N, (N.le m' n) -> @SUBSET A (c n) (c m')) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists n : N, exists a : A, @SUBSET A (c n) (@mcball A m (@pair A R a e)))))) -> exists l : A, (@IN A l (@mspace A m)) /\ ((@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1805 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_1805 (@IN N n (@UNIV N)) (c n)))) = (@INSERT A l (@EMPTY A)))). +Axiom thm_MCOMPLETE_FIP : forall {A : Type'}, forall m : Metric A, (@mcomplete A m) = (forall f : (A -> Prop) -> Prop, ((forall c : A -> Prop, (@IN (A -> Prop) c f) -> @closed_in A (@mtopology A m) c) /\ ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : A -> Prop, exists a : A, (@IN (A -> Prop) c f) /\ (@SUBSET A c (@mcball A m (@pair A R a e)))) /\ (forall f' : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) f') /\ (@SUBSET (A -> Prop) f' f)) -> ~ ((@INTERS A f') = (@EMPTY A))))) -> ~ ((@INTERS A f) = (@EMPTY A))). +Axiom thm_MCOMPLETE_FIP_SING : forall {A : Type'}, forall m : Metric A, (@mcomplete A m) = (forall f : (A -> Prop) -> Prop, ((forall c : A -> Prop, (@IN (A -> Prop) c f) -> @closed_in A (@mtopology A m) c) /\ ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : A -> Prop, exists a : A, (@IN (A -> Prop) c f) /\ (@SUBSET A c (@mcball A m (@pair A R a e)))) /\ (forall f' : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) f') /\ (@SUBSET (A -> Prop) f' f)) -> ~ ((@INTERS A f') = (@EMPTY A))))) -> exists l : A, (@IN A l (@mspace A m)) /\ ((@INTERS A f) = (@INSERT A l (@EMPTY A)))). +Axiom thm_MCOMPLETE_UNION : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall t : A -> Prop, ((@mcomplete A (@submetric A m s)) /\ (@mcomplete A (@submetric A m t))) -> @mcomplete A (@submetric A m (@UNION A s t)). +Axiom thm_MCOMPLETE_UNIONS : forall {_447364 : Type'}, forall m : Metric _447364, forall s : (_447364 -> Prop) -> Prop, ((@FINITE (_447364 -> Prop) s) /\ (forall t : _447364 -> Prop, (@IN (_447364 -> Prop) t s) -> @mcomplete _447364 (@submetric _447364 m t))) -> @mcomplete _447364 (@submetric _447364 m (@UNIONS _447364 s)). +Axiom thm_MCOMPLETE_INTERS : forall {A : Type'}, forall m : Metric A, forall s : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) s) /\ ((~ (s = (@EMPTY (A -> Prop)))) /\ (forall t : A -> Prop, (@IN (A -> Prop) t s) -> @mcomplete A (@submetric A m t)))) -> @mcomplete A (@submetric A m (@INTERS A s)). +Axiom thm_MCOMPLETE_INTER : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall t : A -> Prop, ((@mcomplete A (@submetric A m s)) /\ (@mcomplete A (@submetric A m t))) -> @mcomplete A (@submetric A m (@INTER A s t)). +Axiom thm_totally_bounded_in : forall {A : Type'}, forall s : A -> Prop, forall m : Metric A, (@totally_bounded_in A m s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists k : A -> Prop, (@FINITE A k) /\ ((@SUBSET A k s) /\ (@SUBSET A s (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1814 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1814 (@IN A x k) (@mball A m (@pair A R x e)))))))). +Axiom thm_TOTALLY_BOUNDED_IN_EMPTY : forall {A : Type'}, forall m : Metric A, @totally_bounded_in A m (@EMPTY A). +Axiom thm_FINITE_IMP_TOTALLY_BOUNDED_IN : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, ((@FINITE A s) /\ (@SUBSET A s (@mspace A m))) -> @totally_bounded_in A m s. +Axiom thm_TOTALLY_BOUNDED_IN_IMP_SUBSET : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@totally_bounded_in A m s) -> @SUBSET A s (@mspace A m). +Axiom thm_TOTALLY_BOUNDED_IN_SING : forall {A : Type'}, forall m : Metric A, forall x : A, (@totally_bounded_in A m (@INSERT A x (@EMPTY A))) = (@IN A x (@mspace A m)). +Axiom thm_TOTALLY_BOUNDED_IN_SEQUENTIALLY : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@totally_bounded_in A m s) = ((@SUBSET A s (@mspace A m)) /\ (forall x : N -> A, (forall n : N, @IN A (x n) s) -> exists r : N -> N, (forall m' : N, forall n : N, (N.lt m' n) -> N.lt (r m') (r n)) /\ (@cauchy_in A m (@o N N A x r)))). +Axiom thm_TOTALLY_BOUNDED_IN_SUBSET : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall t : A -> Prop, ((@totally_bounded_in A m s) /\ (@SUBSET A t s)) -> @totally_bounded_in A m t. +Axiom thm_TOTALLY_BOUNDED_IN_UNION : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall t : A -> Prop, ((@totally_bounded_in A m s) /\ (@totally_bounded_in A m t)) -> @totally_bounded_in A m (@UNION A s t). +Axiom thm_TOTALLY_BOUNDED_IN_UNIONS : forall {A : Type'}, forall m : Metric A, forall f : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) f) /\ (forall s : A -> Prop, (@IN (A -> Prop) s f) -> @totally_bounded_in A m s)) -> @totally_bounded_in A m (@UNIONS A f). +Axiom thm_TOTALLY_BOUNDED_IN_IMP_MBOUNDED : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@totally_bounded_in A m s) -> @mbounded A m s. +Axiom thm_TOTALLY_BOUNDED_IN_SUBMETRIC : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall t : A -> Prop, ((@totally_bounded_in A m s) /\ (@SUBSET A s t)) -> @totally_bounded_in A (@submetric A m t) s. +Axiom thm_TOTALLY_BOUNDED_IN_ABSOLUTE : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@totally_bounded_in A (@submetric A m s) s) = (@totally_bounded_in A m s). +Axiom thm_TOTALLY_BOUNDED_IN_CLOSURE_OF : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@totally_bounded_in A m s) -> @totally_bounded_in A m (@closure_of A (@mtopology A m) s). +Axiom thm_TOTALLY_BOUNDED_IN_CLOSURE_OF_EQ : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@SUBSET A s (@mspace A m)) -> (@totally_bounded_in A m (@closure_of A (@mtopology A m) s)) = (@totally_bounded_in A m s). +Axiom thm_TOTALLY_BOUNDED_IN_CAUCHY_SEQUENCE : forall {A : Type'}, forall m : Metric A, forall x : N -> A, (@cauchy_in A m x) -> @totally_bounded_in A m (@IMAGE N A x (@UNIV N)). +Axiom thm_CAUCHY_IN_IMP_MBOUNDED : forall {A : Type'}, forall m : Metric A, forall x : N -> A, (@cauchy_in A m x) -> @mbounded A m (@GSPEC A (fun GEN_PVAR_1822 : A => exists i : N, @SETSPEC A GEN_PVAR_1822 (@IN N i (@UNIV N)) (x i))). +Axiom thm_BOLZANO_WEIERSTRASS_PROPERTY : forall {A : Type'}, forall m : Metric A, forall u : A -> Prop, forall s : A -> Prop, ((@SUBSET A s u) /\ (@SUBSET A s (@mspace A m))) -> (forall x : N -> A, (forall n : N, @IN A (x n) s) -> exists l : A, exists r : N -> N, (@IN A l u) /\ ((forall m' : N, forall n : N, (N.lt m' n) -> N.lt (r m') (r n)) /\ (@limit N A (@mtopology A m) (@o N N A x r) l sequentially))) = (forall t : A -> Prop, ((@SUBSET A t s) /\ (@INFINITE A t)) -> ~ ((@INTER A u (@derived_set_of A (@mtopology A m) t)) = (@EMPTY A))). +Axiom thm_COMPACT_IN_EQ_BOLZANO_WEIERSTRASS : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@compact_in A (@mtopology A m) s) = ((@SUBSET A s (@mspace A m)) /\ (forall t : A -> Prop, ((@SUBSET A t s) /\ (@INFINITE A t)) -> ~ ((@INTER A s (@derived_set_of A (@mtopology A m) t)) = (@EMPTY A)))). +Axiom thm_COMPACT_IN_SEQUENTIALLY : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@compact_in A (@mtopology A m) s) = ((@SUBSET A s (@mspace A m)) /\ (forall x : N -> A, (forall n : N, @IN A (x n) s) -> exists l : A, exists r : N -> N, (@IN A l s) /\ ((forall m' : N, forall n : N, (N.lt m' n) -> N.lt (r m') (r n)) /\ (@limit N A (@mtopology A m) (@o N N A x r) l sequentially)))). +Axiom thm_LEBESGUE_NUMBER : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall U : (A -> Prop) -> Prop, ((@compact_in A (@mtopology A m) s) /\ ((forall u : A -> Prop, (@IN (A -> Prop) u U) -> @open_in A (@mtopology A m) u) /\ (@SUBSET A s (@UNIONS A U)))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x : A, (@IN A x s) -> exists u : A -> Prop, (@IN (A -> Prop) u U) /\ (@SUBSET A (@mball A m (@pair A R x e)) u)). +Axiom thm_COMPACT_IN_IMP_TOTALLY_BOUNDED_IN_EXPLICIT : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, forall e : R, ((@compact_in A (@mtopology A m) s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists k : A -> Prop, (@FINITE A k) /\ ((@SUBSET A k s) /\ (@SUBSET A s (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1825 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1825 (@IN A x k) (@mball A m (@pair A R x e))))))). +Axiom thm_COMPACT_SPACE_SEQUENTIALLY : forall {A : Type'}, forall m : Metric A, (@compact_space A (@mtopology A m)) = (forall x : N -> A, (forall n : N, @IN A (x n) (@mspace A m)) -> exists l : A, exists r : N -> N, (@IN A l (@mspace A m)) /\ ((forall m' : N, forall n : N, (N.lt m' n) -> N.lt (r m') (r n)) /\ (@limit N A (@mtopology A m) (@o N N A x r) l sequentially))). +Axiom thm_COMPACT_SPACE_EQ_BOLZANO_WEIERSTRASS : forall {A : Type'}, forall m : Metric A, (@compact_space A (@mtopology A m)) = (forall s : A -> Prop, ((@SUBSET A s (@mspace A m)) /\ (@INFINITE A s)) -> ~ ((@derived_set_of A (@mtopology A m) s) = (@EMPTY A))). +Axiom thm_COMPACT_SPACE_NEST : forall {A : Type'}, forall m : Metric A, (@compact_space A (@mtopology A m)) = (forall c : N -> A -> Prop, ((forall n : N, @closed_in A (@mtopology A m) (c n)) /\ ((forall n : N, ~ ((c n) = (@EMPTY A))) /\ (forall m' : N, forall n : N, (N.le m' n) -> @SUBSET A (c n) (c m')))) -> ~ ((@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1826 : A -> Prop => exists n : N, @SETSPEC (A -> Prop) GEN_PVAR_1826 (@IN N n (@UNIV N)) (c n)))) = (@EMPTY A))). +Axiom thm_COMPACT_IN_IMP_TOTALLY_BOUNDED_IN : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@compact_in A (@mtopology A m) s) -> @totally_bounded_in A m s. +Axiom thm_MCOMPLETE_DISCRETE_METRIC : forall {A : Type'}, forall s : A -> Prop, @mcomplete A (@discrete_metric A s). +Axiom thm_COMPACT_SPACE_IMP_MCOMPLETE : forall {A : Type'}, forall m : Metric A, (@compact_space A (@mtopology A m)) -> @mcomplete A m. +Axiom thm_COMPACT_IN_IMP_MCOMPLETE : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@compact_in A (@mtopology A m) s) -> @mcomplete A (@submetric A m s). +Axiom thm_MCOMPLETE_IMP_CLOSED_IN : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, ((@mcomplete A (@submetric A m s)) /\ (@SUBSET A s (@mspace A m))) -> @closed_in A (@mtopology A m) s. +Axiom thm_CLOSED_IN_EQ_MCOMPLETE : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@mcomplete A m) -> (@closed_in A (@mtopology A m) s) = ((@SUBSET A s (@mspace A m)) /\ (@mcomplete A (@submetric A m s))). +Axiom thm_COMPACT_SPACE_EQ_MCOMPLETE_TOTALLY_BOUNDED_IN : forall {A : Type'}, forall m : Metric A, (@compact_space A (@mtopology A m)) = ((@mcomplete A m) /\ (@totally_bounded_in A m (@mspace A m))). +Axiom thm_COMPACT_CLOSURE_OF_IMP_TOTALLY_BOUNDED_IN : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, ((@SUBSET A s (@mspace A m)) /\ (@compact_in A (@mtopology A m) (@closure_of A (@mtopology A m) s))) -> @totally_bounded_in A m s. +Axiom thm_TOTALLY_BOUNDED_IN_EQ_COMPACT_CLOSURE_OF : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@mcomplete A m) -> (@totally_bounded_in A m s) = ((@SUBSET A s (@mspace A m)) /\ (@compact_in A (@mtopology A m) (@closure_of A (@mtopology A m) s))). +Axiom thm_COMPACT_CLOSURE_OF_EQ_BOLZANO_WEIERSTRASS : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@compact_in A (@mtopology A m) (@closure_of A (@mtopology A m) s)) = (forall t : A -> Prop, ((@INFINITE A t) /\ ((@SUBSET A t s) /\ (@SUBSET A t (@mspace A m)))) -> ~ ((@derived_set_of A (@mtopology A m) t) = (@EMPTY A))). +Axiom thm_MCOMPLETE_REAL_EUCLIDEAN_METRIC : @mcomplete R real_euclidean_metric. +Axiom thm_MCOMPLETE_SUBMETRIC_REAL_EUCLIDEAN_METRIC : forall s : R -> Prop, (@mcomplete R (@submetric R real_euclidean_metric s)) = (@closed_in R euclideanreal s). +Axiom thm_TOTALLY_BOUNDED_IN_DISCRETE_METRIC : forall {A : Type'}, forall u : A -> Prop, forall s : A -> Prop, (@totally_bounded_in A (@discrete_metric A u) s) = ((@FINITE A s) /\ (@SUBSET A s u)). +Axiom thm_DERIVED_SET_OF_INFINITE_OPEN_IN_METRIC : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@derived_set_of A (@mtopology A m) s) = (@GSPEC A (fun GEN_PVAR_1827 : A => exists x : A, @SETSPEC A GEN_PVAR_1827 ((@IN A x (@mspace A m)) /\ (forall u : A -> Prop, ((@IN A x u) /\ (@open_in A (@mtopology A m) u)) -> @INFINITE A (@INTER A s u))) x)). +Axiom thm_DERIVED_SET_OF_INFINITE_MCBALL : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@derived_set_of A (@mtopology A m) s) = (@GSPEC A (fun GEN_PVAR_1829 : A => exists x : A, @SETSPEC A GEN_PVAR_1829 ((@IN A x (@mspace A m)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @INFINITE A (@INTER A s (@mcball A m (@pair A R x e))))) x)). +Axiom thm_DERIVED_SET_OF_INFINITE_MBALL : forall {A : Type'}, forall m : Metric A, forall s : A -> Prop, (@derived_set_of A (@mtopology A m) s) = (@GSPEC A (fun GEN_PVAR_1828 : A => exists x : A, @SETSPEC A GEN_PVAR_1828 ((@IN A x (@mspace A m)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @INFINITE A (@INTER A s (@mball A m (@pair A R x e))))) x)). +Axiom thm_topcontinuous_at : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall x : A, (@topcontinuous_at A B top top' f x) = ((@IN A x (@topspace A top)) /\ ((forall x' : A, (@IN A x' (@topspace A top)) -> @IN B (f x') (@topspace B top')) /\ (forall v : B -> Prop, ((@open_in B top' v) /\ (@IN B (f x) v)) -> exists u : A -> Prop, (@open_in A top u) /\ ((@IN A x u) /\ (forall y : A, (@IN A y u) -> @IN B (f y) v))))). +Axiom thm_TOPCONTINUOUS_AT_ATPOINTOF : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall x : A, (@topcontinuous_at A B top top' f x) = ((@IN A x (@topspace A top)) /\ ((forall x' : A, (@IN A x' (@topspace A top)) -> @IN B (f x') (@topspace B top')) /\ (@limit A B top' f (f x) (@atpointof A top x)))). +Axiom thm_CONTINUOUS_MAP_EQ_TOPCONTINUOUS_AT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = (forall x : A, (@IN A x (@topspace A top)) -> @topcontinuous_at A B top top' f x). +Axiom thm_CONTINUOUS_MAP_ATPOINTOF : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = (forall x : A, (@IN A x (@topspace A top)) -> @limit A B top' f (f x) (@atpointof A top x)). +Axiom thm_LIMIT_CONTINUOUS_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall a : A, forall b : B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IN A a (@topspace A top)) /\ ((f a) = b))) -> @limit A B top' f b (@atpointof A top a). +Axiom thm_LIMIT_CONTINUOUS_MAP_WITHIN : forall {A B : Type'} (s : A -> Prop), forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall a : A, forall b : B, ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top s) top') f) /\ ((@IN A a s) /\ ((@IN A a (@topspace A top)) /\ ((f a) = b)))) -> @limit A B top' f b (@within A (@atpointof A top a) s). +Axiom thm_CONTINUOUS_MAP_INTO_TOPOLOGY_BASE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall b : (B -> Prop) -> Prop, forall f : A -> B, (((@open_in B top') = (@UNION_OF B (@ARBITRARY B) b)) /\ ((forall x : A, (@IN A x (@topspace A top)) -> @IN B (f x) (@topspace B top')) /\ (forall u : B -> Prop, (@IN (B -> Prop) u b) -> @open_in A top (@GSPEC A (fun GEN_PVAR_1835 : A => exists x : A, @SETSPEC A GEN_PVAR_1835 ((@IN A x (@topspace A top)) /\ (@IN B (f x) u)) x))))) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_MAP_INTO_TOPOLOGY_BASE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall b : (B -> Prop) -> Prop, forall f : A -> B, ((@open_in B top') = (@UNION_OF B (@ARBITRARY B) b)) -> (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = ((forall x : A, (@IN A x (@topspace A top)) -> @IN B (f x) (@topspace B top')) /\ (forall u : B -> Prop, (@IN (B -> Prop) u b) -> @open_in A top (@GSPEC A (fun GEN_PVAR_1836 : A => exists x : A, @SETSPEC A GEN_PVAR_1836 ((@IN A x (@topspace A top)) /\ (@IN B (f x) u)) x)))). +Axiom thm_CONTINUOUS_MAP_INTO_TOPOLOGY_SUBBASE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall b : (B -> Prop) -> Prop, forall u : B -> Prop, forall f : A -> B, (((@topology B (@UNION_OF B (@ARBITRARY B) (@relative_to B (@INTERSECTION_OF B (@FINITE (B -> Prop)) b) u))) = top') /\ ((forall x : A, (@IN A x (@topspace A top)) -> @IN B (f x) (@topspace B top')) /\ (forall u' : B -> Prop, (@IN (B -> Prop) u' b) -> @open_in A top (@GSPEC A (fun GEN_PVAR_1842 : A => exists x : A, @SETSPEC A GEN_PVAR_1842 ((@IN A x (@topspace A top)) /\ (@IN B (f x) u')) x))))) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CONTINUOUS_MAP_INTO_TOPOLOGY_SUBBASE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall b : (B -> Prop) -> Prop, forall u : B -> Prop, forall f : A -> B, ((@topology B (@UNION_OF B (@ARBITRARY B) (@relative_to B (@INTERSECTION_OF B (@FINITE (B -> Prop)) b) u))) = top') -> (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) = ((forall x : A, (@IN A x (@topspace A top)) -> @IN B (f x) (@topspace B top')) /\ (forall u' : B -> Prop, (@IN (B -> Prop) u' b) -> @open_in A top (@GSPEC A (fun GEN_PVAR_1845 : A => exists x : A, @SETSPEC A GEN_PVAR_1845 ((@IN A x (@topspace A top)) /\ (@IN B (f x) u')) x)))). +Axiom thm_CONTINUOUS_MAP_UPPER_LOWER_SEMICONTINUOUS_LT_GEN : forall {A : Type'}, forall top : Topology A, forall u : R -> Prop, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top (@subtopology R euclideanreal u)) f) = ((forall x : A, (@IN A x (@topspace A top)) -> @IN R (f x) u) /\ ((forall a : R, @open_in A top (@GSPEC A (fun GEN_PVAR_1846 : A => exists x : A, @SETSPEC A GEN_PVAR_1846 ((@IN A x (@topspace A top)) /\ (Rgt (f x) a)) x))) /\ (forall a : R, @open_in A top (@GSPEC A (fun GEN_PVAR_1847 : A => exists x : A, @SETSPEC A GEN_PVAR_1847 ((@IN A x (@topspace A top)) /\ (Rlt (f x) a)) x))))). +Axiom thm_CONTINUOUS_MAP_UPPER_LOWER_SEMICONTINUOUS_LT : forall {A : Type'}, forall top : Topology A, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) = ((forall a : R, @open_in A top (@GSPEC A (fun GEN_PVAR_1848 : A => exists x : A, @SETSPEC A GEN_PVAR_1848 ((@IN A x (@topspace A top)) /\ (Rgt (f x) a)) x))) /\ (forall a : R, @open_in A top (@GSPEC A (fun GEN_PVAR_1849 : A => exists x : A, @SETSPEC A GEN_PVAR_1849 ((@IN A x (@topspace A top)) /\ (Rlt (f x) a)) x)))). +Axiom thm_CONTINUOUS_MAP_UPPER_LOWER_SEMICONTINUOUS_LE_GEN : forall {A : Type'}, forall top : Topology A, forall u : R -> Prop, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top (@subtopology R euclideanreal u)) f) = ((forall x : A, (@IN A x (@topspace A top)) -> @IN R (f x) u) /\ ((forall a : R, @closed_in A top (@GSPEC A (fun GEN_PVAR_1852 : A => exists x : A, @SETSPEC A GEN_PVAR_1852 ((@IN A x (@topspace A top)) /\ (Rge (f x) a)) x))) /\ (forall a : R, @closed_in A top (@GSPEC A (fun GEN_PVAR_1853 : A => exists x : A, @SETSPEC A GEN_PVAR_1853 ((@IN A x (@topspace A top)) /\ (Rle (f x) a)) x))))). +Axiom thm_CONTINUOUS_MAP_UPPER_LOWER_SEMICONTINUOUS_LE : forall {A : Type'}, forall top : Topology A, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) = ((forall a : R, @closed_in A top (@GSPEC A (fun GEN_PVAR_1854 : A => exists x : A, @SETSPEC A GEN_PVAR_1854 ((@IN A x (@topspace A top)) /\ (Rge (f x) a)) x))) /\ (forall a : R, @closed_in A top (@GSPEC A (fun GEN_PVAR_1855 : A => exists x : A, @SETSPEC A GEN_PVAR_1855 ((@IN A x (@topspace A top)) /\ (Rle (f x) a)) x)))). +Axiom thm_CONTINUOUS_MAP_UPPER_LOWER_SEMICONTINUOUS_LTE_GEN : forall {A : Type'}, forall top : Topology A, forall u : R -> Prop, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top (@subtopology R euclideanreal u)) f) = ((forall x : A, (@IN A x (@topspace A top)) -> @IN R (f x) u) /\ ((forall a : R, @open_in A top (@GSPEC A (fun GEN_PVAR_1858 : A => exists x : A, @SETSPEC A GEN_PVAR_1858 ((@IN A x (@topspace A top)) /\ (Rlt (f x) a)) x))) /\ (forall a : R, @closed_in A top (@GSPEC A (fun GEN_PVAR_1859 : A => exists x : A, @SETSPEC A GEN_PVAR_1859 ((@IN A x (@topspace A top)) /\ (Rle (f x) a)) x))))). +Axiom thm_CONTINUOUS_MAP_UPPER_LOWER_SEMICONTINUOUS_LTE : forall {A : Type'}, forall top : Topology A, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) = ((forall a : R, @open_in A top (@GSPEC A (fun GEN_PVAR_1860 : A => exists x : A, @SETSPEC A GEN_PVAR_1860 ((@IN A x (@topspace A top)) /\ (Rlt (f x) a)) x))) /\ (forall a : R, @closed_in A top (@GSPEC A (fun GEN_PVAR_1861 : A => exists x : A, @SETSPEC A GEN_PVAR_1861 ((@IN A x (@topspace A top)) /\ (Rle (f x) a)) x)))). +Axiom thm_METRIC_CONTINUOUS_MAP : forall {A B : Type'}, forall m : Metric A, forall m' : Metric B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) (@mtopology A m) (@mtopology B m')) f) = ((forall x : A, (@IN A x (@mspace A m)) -> @IN B (f x) (@mspace B m')) /\ (forall a : A, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@IN A a (@mspace A m))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : A, ((@IN A x (@mspace A m)) /\ (Rlt (@mdist A m (@pair A A a x)) d)) -> Rlt (@mdist B m' (@pair B B (f a) (f x))) e))). +Axiom thm_CONTINUOUS_MAP_TO_METRIC : forall {A B : Type'}, forall t : Topology A, forall m : Metric B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) t (@mtopology B m)) f) = (forall x : A, (@IN A x (@topspace A t)) -> forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> exists u : A -> Prop, (@open_in A t u) /\ ((@IN A x u) /\ (forall y : A, (@IN A y u) -> @IN B (f y) (@mball B m (@pair B R (f x) r))))). +Axiom thm_CONTINUOUS_MAP_FROM_METRIC : forall {A B : Type'}, forall m : Metric A, forall top : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) (@mtopology A m) top) f) = ((@SUBSET B (@IMAGE A B f (@mspace A m)) (@topspace B top)) /\ (forall a : A, (@IN A a (@mspace A m)) -> forall u : B -> Prop, ((@open_in B top u) /\ (@IN B (f a) u)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : A, ((@IN A x (@mspace A m)) /\ (Rlt (@mdist A m (@pair A A a x)) d)) -> @IN B (f x) u))). +Axiom thm_CONTINUOUS_MAP_UNIFORM_LIMIT : forall {A B K : Type'}, forall net' : net K, forall top : Topology A, forall m : Metric B, forall f : K -> A -> B, forall g : A -> B, ((~ (@trivial_limit K net')) /\ ((@eventually K (fun n : K => @continuous_map A B (@pair (Topology A) (Topology B) top (@mtopology B m)) (f n)) net') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually K (fun n : K => forall x : A, (@IN A x (@topspace A top)) -> (@IN B (g x) (@mspace B m)) /\ (Rlt (@mdist B m (@pair B B (f n x) (g x))) e)) net'))) -> @continuous_map A B (@pair (Topology A) (Topology B) top (@mtopology B m)) g. +Axiom thm_CONTINUOUS_MAP_UNIFORM_LIMIT_ALT : forall {A B K : Type'}, forall net' : net K, forall top : Topology A, forall m : Metric B, forall f : K -> A -> B, forall g : A -> B, ((~ (@trivial_limit K net')) /\ ((@SUBSET B (@IMAGE A B g (@topspace A top)) (@mspace B m)) /\ ((@eventually K (fun n : K => @continuous_map A B (@pair (Topology A) (Topology B) top (@mtopology B m)) (f n)) net') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually K (fun n : K => forall x : A, (@IN A x (@topspace A top)) -> Rlt (@mdist B m (@pair B B (f n x) (g x))) e) net')))) -> @continuous_map A B (@pair (Topology A) (Topology B) top (@mtopology B m)) g. +Axiom thm_CONTINUOUS_MAP_UNIFORMLY_CAUCHY_LIMIT : forall {A B : Type'}, forall top : Topology A, forall ms : Metric B, forall f : N -> A -> B, ((~ (@trivial_limit N sequentially)) /\ ((@mcomplete B ms) /\ ((@eventually N (fun n : N => @continuous_map A B (@pair (Topology A) (Topology B) top (@mtopology B ms)) (f n)) sequentially) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall m : N, forall n : N, forall x : A, ((N.le N' m) /\ ((N.le N' n) /\ (@IN A x (@topspace A top)))) -> Rlt (@mdist B ms (@pair B B (f m x) (f n x))) e)))) -> exists g : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top (@mtopology B ms)) g) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually N (fun n : N => forall x : A, (@IN A x (@topspace A top)) -> Rlt (@mdist B ms (@pair B B (f n x) (g x))) e) sequentially). +Axiom thm_CONTINUOUS_MAP_REAL_CONST : forall {A : Type'} (c : R), forall top : Topology A, @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => c). +Axiom thm_CONTINUOUS_MAP_REAL_MUL : forall {A : Type'}, forall top : Topology A, forall f : A -> R, forall g : A -> R, ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) g)) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Rmult (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_REAL_POW : forall {A : Type'}, forall top : Topology A, forall f : A -> R, forall n : N, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => real_pow (f x) n). +Axiom thm_CONTINUOUS_MAP_REAL_LMUL : forall {A : Type'}, forall top : Topology A, forall c : R, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Rmult c (f x)). +Axiom thm_CONTINUOUS_MAP_REAL_LMUL_EQ : forall {A : Type'}, forall top : Topology A, forall c : R, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Rmult c (f x))) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f)). +Axiom thm_CONTINUOUS_MAP_REAL_RMUL : forall {A : Type'}, forall top : Topology A, forall c : R, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Rmult (f x) c). +Axiom thm_CONTINUOUS_MAP_REAL_RMUL_EQ : forall {A : Type'}, forall top : Topology A, forall c : R, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Rmult (f x) c)) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f)). +Axiom thm_CONTINUOUS_MAP_REAL_NEG : forall {A : Type'}, forall top : Topology A, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Ropp (f x)). +Axiom thm_CONTINUOUS_MAP_REAL_NEG_EQ : forall {A : Type'}, forall top : Topology A, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Ropp (f x))) = (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f). +Axiom thm_CONTINUOUS_MAP_REAL_ADD : forall {A : Type'}, forall top : Topology A, forall f : A -> R, forall g : A -> R, ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) g)) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Rplus (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_REAL_SUB : forall {A : Type'}, forall top : Topology A, forall f : A -> R, forall g : A -> R, ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) g)) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Rminus (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_REAL_ABS : forall {A : Type'}, forall top : Topology A, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Rabs (f x)). +Axiom thm_CONTINUOUS_MAP_REAL_MAX : forall {A : Type'}, forall top : Topology A, forall f : A -> R, forall g : A -> R, ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) g)) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Rmax (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_REAL_MIN : forall {A : Type'}, forall top : Topology A, forall f : A -> R, forall g : A -> R, ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) g)) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Rmin (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_SUM : forall {A K : Type'}, forall top : Topology A, forall f : A -> K -> R, forall k : K -> Prop, ((@FINITE K k) /\ (forall i : K, (@IN K i k) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => f x i))) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => @sum K k (f x)). +Axiom thm_CONTINUOUS_MAP_REAL_PRODUCT : forall {A K : Type'}, forall top : Topology A, forall f : A -> K -> R, forall k : K -> Prop, ((@FINITE K k) /\ (forall i : K, (@IN K i k) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => f x i))) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => @product K k (f x)). +Axiom thm_CONTINUOUS_MAP_REAL_INV : forall {A : Type'}, forall top : Topology A, forall f : A -> R, ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ (forall x : A, (@IN A x (@topspace A top)) -> ~ ((f x) = (R_of_N (NUMERAL 0%N))))) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Rinv (f x)). +Axiom thm_CONTINUOUS_MAP_REAL_DIV : forall {A : Type'}, forall top : Topology A, forall f : A -> R, forall g : A -> R, ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) g) /\ (forall x : A, (@IN A x (@topspace A top)) -> ~ ((g x) = (R_of_N (NUMERAL 0%N)))))) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => Rdiv (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_INF : forall {A K : Type'}, forall top : Topology A, forall f : A -> K -> R, forall k : K -> Prop, ((@FINITE K k) /\ (forall i : K, (@IN K i k) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => f x i))) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => inf (@GSPEC R (fun GEN_PVAR_1862 : R => exists i : K, @SETSPEC R GEN_PVAR_1862 (@IN K i k) (f x i)))). +Axiom thm_CONTINUOUS_MAP_SUP : forall {A K : Type'}, forall top : Topology A, forall f : A -> K -> R, forall k : K -> Prop, ((@FINITE K k) /\ (forall i : K, (@IN K i k) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => f x i))) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => sup (@GSPEC R (fun GEN_PVAR_1863 : R => exists i : K, @SETSPEC R GEN_PVAR_1863 (@IN K i k) (f x i)))). +Axiom thm_CONTINUOUS_MAP_REAL_SHRINK : @continuous_map R R (@pair (Topology R) (Topology R) euclideanreal (@subtopology R euclideanreal (open_real_interval (@pair R R (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL (BIT1 0%N))))))) (fun x : R => Rdiv x (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x))). +Axiom thm_CONTINUOUS_MAP_REAL_GROW : @continuous_map R R (@pair (Topology R) (Topology R) (@subtopology R euclideanreal (open_real_interval (@pair R R (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL (BIT1 0%N)))))) euclideanreal) (fun x : R => Rdiv x (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x))). +Axiom thm_HOMEOMORPHIC_MAPS_REAL_SHRINK : @homeomorphic_maps R R (@pair (Topology R) (Topology R) euclideanreal (@subtopology R euclideanreal (open_real_interval (@pair R R (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL (BIT1 0%N))))))) (@pair (R -> R) (R -> R) (fun x : R => Rdiv x (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x))) (fun y : R => Rdiv y (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs y)))). +Axiom thm_CONTINUOUS_MAP_CASES_LE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall p : A -> R, forall q : A -> R, forall f : A -> B, forall g : A -> B, ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) p) /\ ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) q) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_1867 : A => exists x : A, @SETSPEC A GEN_PVAR_1867 ((@IN A x (@topspace A top)) /\ (Rle (p x) (q x))) x))) top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_1868 : A => exists x : A, @SETSPEC A GEN_PVAR_1868 ((@IN A x (@topspace A top)) /\ (Rle (q x) (p x))) x))) top') g) /\ (forall x : A, ((@IN A x (@topspace A top)) /\ ((p x) = (q x))) -> (f x) = (g x)))))) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') (fun x : A => @COND B (Rle (p x) (q x)) (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_CASES_LT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall p : A -> R, forall q : A -> R, forall f : A -> B, forall g : A -> B, ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) p) /\ ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) q) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_1872 : A => exists x : A, @SETSPEC A GEN_PVAR_1872 ((@IN A x (@topspace A top)) /\ (Rle (p x) (q x))) x))) top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_1873 : A => exists x : A, @SETSPEC A GEN_PVAR_1873 ((@IN A x (@topspace A top)) /\ (Rle (q x) (p x))) x))) top') g) /\ (forall x : A, ((@IN A x (@topspace A top)) /\ ((p x) = (q x))) -> (f x) = (g x)))))) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') (fun x : A => @COND B (Rlt (p x) (q x)) (f x) (g x)). +Axiom thm_path_in : forall {A : Type'}, forall top : Topology A, forall g : R -> A, (@path_in A top g) = (@continuous_map R A (@pair (Topology R) (Topology A) (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) top) g). +Axiom thm_PATH_IN_COMPOSE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : R -> A, ((@path_in A top g) /\ (@continuous_map A B (@pair (Topology A) (Topology B) top top') f)) -> @path_in B top' (@o R A B f g). +Axiom thm_PATH_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall g : R -> A, (@path_in A (@subtopology A top s) g) = ((@path_in A top g) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) -> @IN A (g x) s)). +Axiom thm_PATH_IN_CONST : forall {A : Type'}, forall top : Topology A, forall a : A, (@path_in A top (fun x : R => a)) = (@IN A a (@topspace A top)). +Axiom thm_path_connected_space : forall {A : Type'}, forall top : Topology A, (@path_connected_space A top) = (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> exists g : R -> A, (@path_in A top g) /\ (((g (R_of_N (NUMERAL 0%N))) = x) /\ ((g (R_of_N (NUMERAL (BIT1 0%N)))) = y))). +Axiom thm_path_connected_in : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@path_connected_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (@path_connected_space A (@subtopology A top s))). +Axiom thm_PATH_CONNECTED_IN_ABSOLUTE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@path_connected_in A (@subtopology A top s) s) = (@path_connected_in A top s). +Axiom thm_PATH_CONNECTED_IN_SUBSET_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@path_connected_in A top s) -> @SUBSET A s (@topspace A top). +Axiom thm_PATH_CONNECTED_IN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@path_connected_in A (@subtopology A top s) t) = ((@path_connected_in A top t) /\ (@SUBSET A t s)). +Axiom thm_PATH_CONNECTED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@path_connected_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> exists g : R -> A, (@path_in A top g) /\ ((@SUBSET A (@IMAGE R A g (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) s) /\ (((g (R_of_N (NUMERAL 0%N))) = x) /\ ((g (R_of_N (NUMERAL (BIT1 0%N)))) = y))))). +Axiom thm_PATH_CONNECTED_IN_TOPSPACE : forall {A : Type'}, forall top : Topology A, (@path_connected_in A top (@topspace A top)) = (@path_connected_space A top). +Axiom thm_PATH_CONNECTED_IMP_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, (@path_connected_space A top) -> @connected_space A top. +Axiom thm_PATH_CONNECTED_IN_IMP_CONNECTED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@path_connected_in A top s) -> @connected_in A top s. +Axiom thm_PATH_CONNECTED_SPACE_TOPSPACE_EMPTY : forall {A : Type'}, forall top : Topology A, ((@topspace A top) = (@EMPTY A)) -> @path_connected_space A top. +Axiom thm_PATH_CONNECTED_IN_EMPTY : forall {A : Type'}, forall top : Topology A, @path_connected_in A top (@EMPTY A). +Axiom thm_PATH_CONNECTED_IN_SING : forall {A : Type'}, forall top : Topology A, forall a : A, (@path_connected_in A top (@INSERT A a (@EMPTY A))) = (@IN A a (@topspace A top)). +Axiom thm_PATH_CONNECTED_IN_CONTINUOUS_MAP_IMAGE : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@path_connected_in A top s)) -> @path_connected_in B top' (@IMAGE A B f s). +Axiom thm_HOMEOMORPHIC_PATH_CONNECTED_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@path_connected_space A top) = (@path_connected_space B top'). +Axiom thm_HOMEOMORPHIC_MAP_PATH_CONNECTEDNESS : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET A u (@topspace A top))) -> (@path_connected_in B top' (@IMAGE A B f u)) = (@path_connected_in A top u). +Axiom thm_HOMEOMORPHIC_MAP_PATH_CONNECTEDNESS_EQ : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (@path_connected_in A top u) = ((@SUBSET A u (@topspace A top)) /\ (@path_connected_in B top' (@IMAGE A B f u))). +Axiom thm_PATH_CONNECTED_SPACE_QUOTIENT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall q : A -> B, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') q) /\ (@path_connected_space A top)) -> @path_connected_space B top'. +Axiom thm_PATH_CONNECTED_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@path_connected_space A top)) -> @path_connected_space B top'. +Axiom thm_PATH_CONNECTED_IN_EUCLIDEANREAL_INTERVAL : (forall a : R, forall b : R, @path_connected_in R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall a : R, forall b : R, @path_connected_in R euclideanreal (open_real_interval (@pair R R a b))). +Axiom thm_PATH_CONNECTED_IN_PATH_IMAGE : forall {A : Type'}, forall top : Topology A, forall g : R -> A, (@path_in A top g) -> @path_connected_in A top (@IMAGE R A g (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))). +Axiom thm_CONNECTED_IN_PATH_IMAGE : forall {A : Type'}, forall top : Topology A, forall g : R -> A, (@path_in A top g) -> @connected_in A top (@IMAGE R A g (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))). +Axiom thm_COMPACT_IN_PATH_IMAGE : forall {A : Type'}, forall top : Topology A, forall g : R -> A, (@path_in A top g) -> @compact_in A top (@IMAGE R A g (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))). +Axiom thm_PATH_START_IN_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall g : R -> A, (@path_in A top g) -> @IN A (g (R_of_N (NUMERAL 0%N))) (@topspace A top). +Axiom thm_PATH_FINISH_IN_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall g : R -> A, (@path_in A top g) -> @IN A (g (R_of_N (NUMERAL (BIT1 0%N)))) (@topspace A top). +Axiom thm_PATH_IMAGE_SUBSET_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall g : R -> A, (@path_in A top g) -> @SUBSET A (@IMAGE R A g (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) (@topspace A top). +Axiom thm_PATH_CONNECTED_SPACE_SUBCONNECTED : forall {A : Type'}, forall top : Topology A, (@path_connected_space A top) = (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> exists s : A -> Prop, (@path_connected_in A top s) /\ ((@IN A x s) /\ (@IN A y s))). +Axiom thm_PATH_CONNECTED_IN_EUCLIDEANREAL : forall s : R -> Prop, (@path_connected_in R euclideanreal s) = (is_realinterval s). +Axiom thm_PATH_CONNECTED_IN_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, forall s : A -> Prop, (@path_connected_in A (@discrete_topology A u) s) = ((@SUBSET A s u) /\ (exists a : A, @SUBSET A s (@INSERT A a (@EMPTY A)))). +Axiom thm_PATH_CONNECTED_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, (@path_connected_space A (@discrete_topology A u)) = (exists a : A, @SUBSET A u (@INSERT A a (@EMPTY A))). +Axiom thm_PATH_CONNECTED_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@path_connected_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@path_connected_space A top1) /\ (@path_connected_space B top2))). +Axiom thm_PATH_CONNECTED_IN_CROSS : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall s : A -> Prop, forall t : B -> Prop, (@path_connected_in (prod A B) (@prod_topology A B top1 top2) (@CROSS A B s t)) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@path_connected_in A top1 s) /\ (@path_connected_in B top2 t)))). +Axiom thm_PATH_CONNECTED_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, (@path_connected_space (K -> A) (@product_topology A K k tops)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @path_connected_space A (tops i))). +Axiom thm_PATH_CONNECTED_IN_CARTESIAN_PRODUCT : forall {A K : Type'}, forall tops : K -> Topology A, forall s : K -> A -> Prop, forall k : K -> Prop, (@path_connected_in (K -> A) (@product_topology A K k tops) (@cartesian_product A K k s)) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @path_connected_in A (tops i) (s i))). +Axiom thm_path_component_of : forall {_457543 : Type'}, forall top : Topology _457543, forall x : _457543, forall y : _457543, (@path_component_of _457543 top x y) = (exists g : R -> _457543, (@path_in _457543 top g) /\ (((g (R_of_N (NUMERAL 0%N))) = x) /\ ((g (R_of_N (NUMERAL (BIT1 0%N)))) = y))). +Axiom thm_path_components_of : forall {_457570 : Type'}, forall top : Topology _457570, (@path_components_of _457570 top) = (@GSPEC (_457570 -> Prop) (fun GEN_PVAR_1874 : _457570 -> Prop => exists x : _457570, @SETSPEC (_457570 -> Prop) GEN_PVAR_1874 (@IN _457570 x (@topspace _457570 top)) (@path_component_of _457570 top x))). +Axiom thm_PATH_COMPONENT_IN_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@path_component_of A top x y) -> (@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top)). +Axiom thm_PATH_COMPONENT_OF_REFL : forall {A : Type'}, forall top : Topology A, forall x : A, (@path_component_of A top x x) = (@IN A x (@topspace A top)). +Axiom thm_PATH_COMPONENT_OF_SYM : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@path_component_of A top x y) = (@path_component_of A top y x). +Axiom thm_PATH_COMPONENT_OF_TRANS : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, forall z : A, ((@path_component_of A top x y) /\ (@path_component_of A top y z)) -> @path_component_of A top x z. +Axiom thm_PATH_COMPONENT_OF_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall x : A, forall y : A, (@path_component_of A (@subtopology A top s) x y) -> @path_component_of A top x y. +Axiom thm_PATH_COMPONENT_OF_MONO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall x : A, forall y : A, ((@path_component_of A (@subtopology A top s) x y) /\ (@SUBSET A s t)) -> @path_component_of A (@subtopology A top t) x y. +Axiom thm_PATH_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@path_component_of A top x y) = (exists t : A -> Prop, (@path_connected_in A top t) /\ ((@IN A x t) /\ (@IN A y t))). +Axiom thm_PATH_COMPONENT_OF_SET : forall {A : Type'}, forall top : Topology A, forall x : A, (@path_component_of A top x) = (@GSPEC A (fun GEN_PVAR_1875 : A => exists y : A, @SETSPEC A GEN_PVAR_1875 (exists g : R -> A, (@path_in A top g) /\ (((g (R_of_N (NUMERAL 0%N))) = x) /\ ((g (R_of_N (NUMERAL (BIT1 0%N)))) = y))) y)). +Axiom thm_PATH_COMPONENT_OF_SET_ALT : forall {A : Type'}, forall top : Topology A, forall x : A, (@path_component_of A top x) = (@GSPEC A (fun GEN_PVAR_1876 : A => exists y : A, @SETSPEC A GEN_PVAR_1876 (exists t : A -> Prop, (@path_connected_in A top t) /\ ((@IN A x t) /\ (@IN A y t))) y)). +Axiom thm_PATH_COMPONENT_OF_SUBTOPOLOGY_EQ : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall x : A, ((@path_component_of A (@subtopology A top u) x) = (@path_component_of A top x)) = (@SUBSET A (@path_component_of A top x) u). +Axiom thm_PATH_COMPONENTS_OF_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, forall c : A -> Prop, ((@IN (A -> Prop) c (@path_components_of A top)) /\ (@SUBSET A c u)) -> @IN (A -> Prop) c (@path_components_of A (@subtopology A top u)). +Axiom thm_PATH_COMPONENT_OF_SUBSET_TOPSPACE : forall {_458090 : Type'}, forall top : Topology _458090, forall x : _458090, @SUBSET _458090 (@path_component_of _458090 top x) (@topspace _458090 top). +Axiom thm_PATH_COMPONENT_OF_EQ_EMPTY : forall {_458114 : Type'}, forall top : Topology _458114, forall x : _458114, ((@path_component_of _458114 top x) = (@EMPTY _458114)) = (~ (@IN _458114 x (@topspace _458114 top))). +Axiom thm_PATH_CONNECTED_SPACE_IFF_PATH_COMPONENT : forall {A : Type'}, forall top : Topology A, (@path_connected_space A top) = (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> @path_component_of A top x y). +Axiom thm_PATH_CONNECTED_SPACE_IMP_PATH_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall a : A, forall b : A, ((@path_connected_space A top) /\ ((@IN A a (@topspace A top)) /\ (@IN A b (@topspace A top)))) -> @path_component_of A top a b. +Axiom thm_PATH_CONNECTED_SPACE_PATH_COMPONENT_SET : forall {A : Type'}, forall top : Topology A, (@path_connected_space A top) = (forall x : A, (@IN A x (@topspace A top)) -> (@path_component_of A top x) = (@topspace A top)). +Axiom thm_PATH_COMPONENT_OF_MAXIMAL : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall x : A, ((@path_connected_in A top s) /\ (@IN A x s)) -> @SUBSET A s (@path_component_of A top x). +Axiom thm_PATH_COMPONENT_OF_EQUIV : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@path_component_of A top x y) = ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((@path_component_of A top x) = (@path_component_of A top y)))). +Axiom thm_PATH_COMPONENT_OF_DISJOINT : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@DISJOINT A (@path_component_of A top x) (@path_component_of A top y)) = (~ (@path_component_of A top x y)). +Axiom thm_PATH_COMPONENT_OF_EQ : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, ((@path_component_of A top x) = (@path_component_of A top y)) = (((~ (@IN A x (@topspace A top))) /\ (~ (@IN A y (@topspace A top)))) \/ ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (@path_component_of A top x y)))). +Axiom thm_PATH_CONNECTED_IN_PATH_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, @path_connected_in A top (@path_component_of A top x). +Axiom thm_UNIONS_PATH_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, (@UNIONS A (@path_components_of A top)) = (@topspace A top). +Axiom thm_PATH_COMPONENTS_OF_MAXIMAL : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall c : A -> Prop, ((@IN (A -> Prop) c (@path_components_of A top)) /\ ((@path_connected_in A top s) /\ (~ (@DISJOINT A c s)))) -> @SUBSET A s c. +Axiom thm_PAIRWISE_DISJOINT_PATH_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, @pairwise (A -> Prop) (@DISJOINT A) (@path_components_of A top). +Axiom thm_COMPLEMENT_PATH_COMPONENTS_OF_UNIONS : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@path_components_of A top)) -> (@DIFF A (@topspace A top) c) = (@UNIONS A (@DELETE (A -> Prop) (@path_components_of A top) c)). +Axiom thm_NONEMPTY_PATH_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@path_components_of A top)) -> ~ (c = (@EMPTY A)). +Axiom thm_PATH_COMPONENTS_OF_SUBSET : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@path_components_of A top)) -> @SUBSET A c (@topspace A top). +Axiom thm_PATH_CONNECTED_IN_PATH_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@path_components_of A top)) -> @path_connected_in A top c. +Axiom thm_PATH_COMPONENT_IN_PATH_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, forall a : A, (@IN (A -> Prop) (@path_component_of A top a) (@path_components_of A top)) = (@IN A a (@topspace A top)). +Axiom thm_PATH_CONNECTED_IN_UNIONS : forall {A : Type'}, forall top : Topology A, forall u : (A -> Prop) -> Prop, ((forall s : A -> Prop, (@IN (A -> Prop) s u) -> @path_connected_in A top s) /\ (~ ((@INTERS A u) = (@EMPTY A)))) -> @path_connected_in A top (@UNIONS A u). +Axiom thm_PATH_CONNECTED_IN_UNION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@path_connected_in A top s) /\ ((@path_connected_in A top t) /\ (~ ((@INTER A s t) = (@EMPTY A))))) -> @path_connected_in A top (@UNION A s t). +Axiom thm_PATH_CONNECTED_SPACE_IFF_COMPONENTS_EQ : forall {A : Type'}, forall top : Topology A, (@path_connected_space A top) = (forall c : A -> Prop, forall c' : A -> Prop, ((@IN (A -> Prop) c (@path_components_of A top)) /\ (@IN (A -> Prop) c' (@path_components_of A top))) -> c = c'). +Axiom thm_PATH_COMPONENTS_OF_EQ_EMPTY : forall {A : Type'}, forall top : Topology A, ((@path_components_of A top) = (@EMPTY (A -> Prop))) = ((@topspace A top) = (@EMPTY A)). +Axiom thm_PATH_COMPONENTS_OF_EMPTY_SPACE : forall {A : Type'}, forall top : Topology A, ((@topspace A top) = (@EMPTY A)) -> (@path_components_of A top) = (@EMPTY (A -> Prop)). +Axiom thm_PATH_COMPONENTS_OF_SUBSET_SING : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET (A -> Prop) (@path_components_of A top) (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) = ((@path_connected_space A top) /\ (((@topspace A top) = (@EMPTY A)) \/ ((@topspace A top) = s))). +Axiom thm_PATH_CONNECTED_SPACE_IFF_COMPONENTS_SUBSET_SING : forall {A : Type'}, forall top : Topology A, (@path_connected_space A top) = (exists a : A -> Prop, @SUBSET (A -> Prop) (@path_components_of A top) (@INSERT (A -> Prop) a (@EMPTY (A -> Prop)))). +Axiom thm_PATH_COMPONENTS_OF_EQ_SING : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@path_components_of A top) = (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) = ((@path_connected_space A top) /\ ((~ ((@topspace A top) = (@EMPTY A))) /\ (s = (@topspace A top)))). +Axiom thm_PATH_COMPONENTS_OF_PATH_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, (@path_connected_space A top) -> (@path_components_of A top) = (@COND ((A -> Prop) -> Prop) ((@topspace A top) = (@EMPTY A)) (@EMPTY (A -> Prop)) (@INSERT (A -> Prop) (@topspace A top) (@EMPTY (A -> Prop)))). +Axiom thm_PATH_COMPONENT_SUBSET_CONNECTED_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, @SUBSET A (@path_component_of A top x) (@connected_component_of A top x). +Axiom thm_PATH_IMP_CONNECTED_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@path_component_of A top x y) -> @connected_component_of A top x y. +Axiom thm_EXISTS_PATH_COMPONENT_OF_SUPERSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@path_connected_in A top s) /\ (~ ((@topspace A top) = (@EMPTY A)))) -> exists c : A -> Prop, (@IN (A -> Prop) c (@path_components_of A top)) /\ (@SUBSET A s c). +Axiom thm_PATH_COMPONENT_OF_EQ_OVERLAP : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, ((@path_component_of A top x) = (@path_component_of A top y)) = (((~ (@IN A x (@topspace A top))) /\ (~ (@IN A y (@topspace A top)))) \/ (~ ((@INTER A (@path_component_of A top x) (@path_component_of A top y)) = (@EMPTY A)))). +Axiom thm_PATH_COMPONENT_OF_NONOVERLAP : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, ((@INTER A (@path_component_of A top x) (@path_component_of A top y)) = (@EMPTY A)) = ((~ (@IN A x (@topspace A top))) \/ ((~ (@IN A y (@topspace A top))) \/ (~ ((@path_component_of A top x) = (@path_component_of A top y))))). +Axiom thm_PATH_COMPONENT_OF_OVERLAP : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (~ ((@INTER A (@path_component_of A top x) (@path_component_of A top y)) = (@EMPTY A))) = ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((@path_component_of A top x) = (@path_component_of A top y)))). +Axiom thm_PATH_COMPONENTS_OF_DISJOINT : forall {_459343 : Type'}, forall top : Topology _459343, forall c : _459343 -> Prop, forall c' : _459343 -> Prop, ((@IN (_459343 -> Prop) c (@path_components_of _459343 top)) /\ (@IN (_459343 -> Prop) c' (@path_components_of _459343 top))) -> (@DISJOINT _459343 c c') = (~ (c = c')). +Axiom thm_PATH_COMPONENTS_OF_OVERLAP : forall {_459394 : Type'}, forall top : Topology _459394, forall c : _459394 -> Prop, forall c' : _459394 -> Prop, ((@IN (_459394 -> Prop) c (@path_components_of _459394 top)) /\ (@IN (_459394 -> Prop) c' (@path_components_of _459394 top))) -> (~ ((@INTER _459394 c c') = (@EMPTY _459394))) = (c = c'). +Axiom thm_CARD_LE_PATH_COMPONENTS_OF_TOPSPACE : forall {A : Type'}, forall top : Topology A, @le_c (A -> Prop) A (@path_components_of A top) (@topspace A top). +Axiom thm_FINITE_PATH_COMPONENTS_OF_FINITE : forall {A : Type'}, forall top : Topology A, (@FINITE A (@topspace A top)) -> @FINITE (A -> Prop) (@path_components_of A top). +Axiom thm_PATH_COMPONENT_OF_UNIQUE : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, forall x : A, ((@IN A x c) /\ ((@path_connected_in A top c) /\ (forall c' : A -> Prop, ((@IN A x c') /\ (@path_connected_in A top c')) -> @SUBSET A c' c))) -> (@path_component_of A top x) = c. +Axiom thm_PATH_COMPONENT_OF_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, forall x : A, (@path_component_of A (@discrete_topology A u) x) = (@COND (A -> Prop) (@IN A x u) (@INSERT A x (@EMPTY A)) (@EMPTY A)). +Axiom thm_PATH_COMPONENTS_OF_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, (@path_components_of A (@discrete_topology A u)) = (@GSPEC (A -> Prop) (fun GEN_PVAR_1877 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1877 (@IN A x u) (@INSERT A x (@EMPTY A)))). +Axiom thm_PATH_COMPONENT_OF_CONTINUOUS_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall x : A, forall y : A, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@path_component_of A top x y)) -> @path_component_of B top' (f x) (f y). +Axiom thm_HOMEOMORPHIC_MAP_PATH_COMPONENT_OF : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall x : A, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@IN A x (@topspace A top))) -> (@path_component_of B top' (f x)) = (@IMAGE A B f (@path_component_of A top x)). +Axiom thm_HOMEOMORPHIC_MAP_PATH_COMPONENTS_OF : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (@path_components_of B top') = (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) (@path_components_of A top)). +Axiom thm_PATH_COMPONENT_OF_PAIR : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall x : A, forall y : B, (@path_component_of (prod A B) (@prod_topology A B top1 top2) (@pair A B x y)) = (@CROSS A B (@path_component_of A top1 x) (@path_component_of B top2 y)). +Axiom thm_PATH_COMPONENTS_OF_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@path_components_of (prod A B) (@prod_topology A B top1 top2)) = (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_1881 : (prod A B) -> Prop => exists c1 : A -> Prop, exists c2 : B -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_1881 ((@IN (A -> Prop) c1 (@path_components_of A top1)) /\ (@IN (B -> Prop) c2 (@path_components_of B top2))) (@CROSS A B c1 c2))). +Axiom thm_PATH_COMPONENT_OF_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall k : K -> Prop, forall tops : K -> Topology A, forall x : K -> A, (@path_component_of (K -> A) (@product_topology A K k tops) x) = (@COND ((K -> A) -> Prop) (@EXTENSIONAL K A k x) (@cartesian_product A K k (fun i : K => @path_component_of A (tops i) (x i))) (@EMPTY (K -> A))). +Axiom thm_PATH_COMPONENTS_OF_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall k : K -> Prop, forall tops : K -> Topology A, (@path_components_of (K -> A) (@product_topology A K k tops)) = (@GSPEC ((K -> A) -> Prop) (fun GEN_PVAR_1886 : (K -> A) -> Prop => exists c : K -> A -> Prop, @SETSPEC ((K -> A) -> Prop) GEN_PVAR_1886 (forall i : K, (@IN K i k) -> @IN (A -> Prop) (c i) (@path_components_of A (tops i))) (@cartesian_product A K k c))). +Axiom thm_EMBEDDING_MAP_INTO_EUCLIDEANREAL : forall {A : Type'}, forall top : Topology A, forall f : A -> R, (@path_connected_space A top) -> (@embedding_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) = ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((f x) = (f y)))) -> x = y)). +Axiom thm_MONOTONE_MAP_INTO_EUCLIDEANREAL_ALT : forall {A : Type'}, forall top : Topology A, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) -> (forall k : R -> Prop, (is_realinterval k) -> @connected_in A top (@GSPEC A (fun GEN_PVAR_1910 : A => exists x : A, @SETSPEC A GEN_PVAR_1910 ((@IN A x (@topspace A top)) /\ (@IN R (f x) k)) x))) = ((@connected_space A top) /\ (@monotone_map A R (@pair (Topology A) (Topology R) top euclideanreal) f)). +Axiom thm_MONOTONE_MAP_INTO_EUCLIDEANREAL : forall {A : Type'}, forall top : Topology A, forall f : A -> R, ((@connected_space A top) /\ (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f)) -> (@monotone_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) = (forall k : R -> Prop, (is_realinterval k) -> @connected_in A top (@GSPEC A (fun GEN_PVAR_1911 : A => exists x : A, @SETSPEC A GEN_PVAR_1911 ((@IN A x (@topspace A top)) /\ (@IN R (f x) k)) x))). +Axiom thm_MONOTONE_MAP_EUCLIDEANREAL_ALT : forall f : R -> R, forall s : R -> Prop, (forall c : R -> Prop, (is_realinterval c) -> is_realinterval (@GSPEC R (fun GEN_PVAR_1914 : R => exists x : R, @SETSPEC R GEN_PVAR_1914 ((@IN R x s) /\ (@IN R (f x) c)) x))) = ((is_realinterval s) /\ ((forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rle x y))) -> Rle (f x) (f y)) \/ (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rle x y))) -> Rle (f y) (f x)))). +Axiom thm_MONOTONE_MAP_EUCLIDEANREAL : forall f : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (@continuous_map R R (@pair (Topology R) (Topology R) (@subtopology R euclideanreal s) euclideanreal) f)) -> (@monotone_map R R (@pair (Topology R) (Topology R) (@subtopology R euclideanreal s) euclideanreal) f) = ((forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rle x y))) -> Rle (f x) (f y)) \/ (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rle x y))) -> Rle (f y) (f x))). +Axiom thm_INJECTIVE_EQ_MONOTONE_MAP : forall f : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (@continuous_map R R (@pair (Topology R) (Topology R) (@subtopology R euclideanreal s) euclideanreal) f)) -> (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ ((f x) = (f y)))) -> x = y) = ((forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rlt x y))) -> Rlt (f x) (f y)) \/ (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rlt x y))) -> Rlt (f y) (f x))). +Axiom thm_INJECTIVE_EQ_REAL_OPEN_MAP_EUCLIDEANREAL : forall f : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (@continuous_map R R (@pair (Topology R) (Topology R) (@subtopology R euclideanreal s) euclideanreal) f)) -> (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ ((f x) = (f y)))) -> x = y) = (forall u : R -> Prop, ((real_open u) /\ (@SUBSET R u s)) -> real_open (@IMAGE R R f u)). +Axiom thm_normal_space : forall {A : Type'}, forall top : Topology A, (@normal_space A top) = (forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ (@DISJOINT A u v))))). +Axiom thm_NORMAL_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@normal_space A top)) -> @normal_space B top'. +Axiom thm_HOMEOMORPHIC_NORMAL_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@normal_space A top) = (@normal_space B top'). +Axiom thm_NORMAL_SPACE : forall {A : Type'}, forall top : Topology A, (@normal_space A top) = (forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t))) -> exists u : A -> Prop, (@open_in A top u) /\ ((@SUBSET A s u) /\ (@DISJOINT A t (@closure_of A top u)))). +Axiom thm_NORMAL_SPACE_ALT : forall {A : Type'}, forall top : Topology A, (@normal_space A top) = (forall s : A -> Prop, forall u : A -> Prop, ((@closed_in A top s) /\ ((@open_in A top u) /\ (@SUBSET A s u))) -> exists v : A -> Prop, (@open_in A top v) /\ ((@SUBSET A s v) /\ (@SUBSET A (@closure_of A top v) u))). +Axiom thm_NORMAL_SPACE_CLOSURES : forall {A : Type'}, forall top : Topology A, (@normal_space A top) = (forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ ((@SUBSET A t (@topspace A top)) /\ (@DISJOINT A (@closure_of A top s) (@closure_of A top t)))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ (@DISJOINT A u v))))). +Axiom thm_NORMAL_SPACE_DISJOINT_CLOSURES : forall {A : Type'}, forall top : Topology A, (@normal_space A top) = (forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ (@DISJOINT A (@closure_of A top u) (@closure_of A top v)))))). +Axiom thm_NORMAL_SPACE_DUAL : forall {A : Type'}, forall top : Topology A, (@normal_space A top) = (forall u : A -> Prop, forall v : A -> Prop, ((@open_in A top u) /\ ((@open_in A top v) /\ ((@UNION A u v) = (@topspace A top)))) -> exists s : A -> Prop, exists t : A -> Prop, (@closed_in A top s) /\ ((@closed_in A top t) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ ((@UNION A s t) = (@topspace A top)))))). +Axiom thm_NORMAL_T1_IMP_HAUSDORFF_SPACE : forall {A : Type'}, forall top : Topology A, ((@normal_space A top) /\ (@t1_space A top)) -> @hausdorff_space A top. +Axiom thm_NORMAL_T1_EQ_HAUSDORFF_SPACE : forall {A : Type'}, forall top : Topology A, (@normal_space A top) -> (@t1_space A top) = (@hausdorff_space A top). +Axiom thm_NORMAL_T1_IMP_REGULAR_SPACE : forall {A : Type'}, forall top : Topology A, ((@normal_space A top) /\ (@t1_space A top)) -> @regular_space A top. +Axiom thm_COMPACT_HAUSDORFF_OR_REGULAR_IMP_NORMAL_SPACE : forall {A : Type'}, forall top : Topology A, ((@compact_space A top) /\ ((@hausdorff_space A top) \/ (@regular_space A top))) -> @normal_space A top. +Axiom thm_NORMAL_SPACE_MTOPOLOGY : forall {A : Type'}, forall m : Metric A, @normal_space A (@mtopology A m). +Axiom thm_METRIZABLE_IMP_NORMAL_SPACE : forall {A : Type'}, forall top : Topology A, (@metrizable_space A top) -> @normal_space A top. +Axiom thm_NORMAL_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @normal_space A (@discrete_topology A u). +Axiom thm_NORMAL_SPACE_FSIGMAS : forall {A : Type'}, forall top : Topology A, (@normal_space A top) = (forall s : A -> Prop, forall t : A -> Prop, ((@fsigma_in A top s) /\ ((@fsigma_in A top t) /\ (@separated_in A top s t))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ (@DISJOINT A u v))))). +Axiom thm_NORMAL_SPACE_FSIGMA_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@normal_space A top) /\ (@fsigma_in A top s)) -> @normal_space A (@subtopology A top s). +Axiom thm_NORMAL_SPACE_CLOSED_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@normal_space A top) /\ (@closed_in A top s)) -> @normal_space A (@subtopology A top s). +Axiom thm_NORMAL_SPACE_CONTINUOUS_CLOSED_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (@normal_space A top)))) -> @normal_space B top'. +Axiom thm_HEREDITARILY_NORMAL_SPACE_CONTINUOUS_CLOSED_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (@hereditarily A (@normal_space A) top)))) -> @hereditarily B (@normal_space B) top'. +Axiom thm_HOMEOMORPHIC_HEREDITARILY_NORMAL_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@hereditarily A (@normal_space A) top) = (@hereditarily B (@normal_space B) top'). +Axiom thm_HEREDITARILY_NORMAL_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@hereditarily A (@normal_space A) top)) -> @hereditarily B (@normal_space B) top'. +Axiom thm_URYSOHN_LEMMA : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall a : R, forall b : R, ((Rle a b) /\ ((@normal_space A top) /\ ((@closed_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t))))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) f) /\ ((forall x : A, (@IN A x s) -> (f x) = a) /\ (forall x : A, (@IN A x t) -> (f x) = b)). +Axiom thm_URYSOHN_LEMMA_ALT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall a : R, forall b : R, ((@normal_space A top) /\ ((@closed_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t)))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ ((forall x : A, (@IN A x s) -> (f x) = a) /\ (forall x : A, (@IN A x t) -> (f x) = b)). +Axiom thm_NORMAL_SPACE_EQ_URYSOHN_GEN_ALT : forall {A : Type'}, forall top : Topology A, forall a : R, forall b : R, (~ (a = b)) -> (@normal_space A top) = (forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ ((forall x : A, (@IN A x s) -> (f x) = a) /\ (forall x : A, (@IN A x t) -> (f x) = b))). +Axiom thm_NORMAL_SPACE_EQ_URYSOHN_GEN : forall {A : Type'}, forall top : Topology A, forall a : R, forall b : R, (Rlt a b) -> (@normal_space A top) = (forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) f) /\ ((forall x : A, (@IN A x s) -> (f x) = a) /\ (forall x : A, (@IN A x t) -> (f x) = b))). +Axiom thm_NORMAL_SPACE_EQ_URYSOHN_ALT : forall {A : Type'}, forall top : Topology A, (@normal_space A top) = (forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ ((forall x : A, (@IN A x s) -> (f x) = (R_of_N (NUMERAL 0%N))) /\ (forall x : A, (@IN A x t) -> (f x) = (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_NORMAL_SPACE_EQ_URYSOHN : forall {A : Type'}, forall top : Topology A, (@normal_space A top) = (forall s : A -> Prop, forall t : A -> Prop, ((@closed_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R)))))) f) /\ ((forall x : A, (@IN A x s) -> (f x) = (R_of_N (NUMERAL 0%N))) /\ (forall x : A, (@IN A x t) -> (f x) = (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_TIETZE_EXTENSION_CLOSED_REAL_INTERVAL : forall {A : Type'}, forall top : Topology A, forall f : A -> R, forall s : A -> Prop, forall a : R, forall b : R, ((@normal_space A top) /\ ((@closed_in A top s) /\ ((Rle a b) /\ ((@continuous_map A R (@pair (Topology A) (Topology R) (@subtopology A top s) euclideanreal) f) /\ (forall x : A, (@IN A x s) -> @IN R (f x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))))) -> exists g : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) g) /\ ((forall x : A, (@IN A x (@topspace A top)) -> @IN R (g x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : A, (@IN A x s) -> (g x) = (f x))). +Axiom thm_TIETZE_EXTENSION_REALINTERVAL : forall {A : Type'}, forall top : Topology A, forall f : A -> R, forall s : A -> Prop, forall t : R -> Prop, ((@normal_space A top) /\ ((@closed_in A top s) /\ ((is_realinterval t) /\ ((~ (t = (@EMPTY R))) /\ ((@continuous_map A R (@pair (Topology A) (Topology R) (@subtopology A top s) euclideanreal) f) /\ (forall x : A, (@IN A x s) -> @IN R (f x) t)))))) -> exists g : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) g) /\ ((forall x : A, (@IN A x (@topspace A top)) -> @IN R (g x) t) /\ (forall x : A, (@IN A x s) -> (g x) = (f x))). +Axiom thm_NORMAL_SPACE_EQ_TIETZE : forall {A : Type'}, forall top : Topology A, (@normal_space A top) = (forall f : A -> R, forall s : A -> Prop, ((@closed_in A top s) /\ (@continuous_map A R (@pair (Topology A) (Topology R) (@subtopology A top s) euclideanreal) f)) -> exists g : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x))). +Axiom thm_NORMAL_SPACE_PERFECT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@normal_space A top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> @normal_space B top'. +Axiom thm_HAUSDORFF_NORMAL_SPACE_CLOSED_CONTINUOUS_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@normal_space A top) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (@t1_space B top'))))) -> @hausdorff_space B top'. +Axiom thm_NORMAL_HAUSDORFF_SPACE_CLOSED_CONTINUOUS_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@normal_space A top) /\ ((@hausdorff_space A top) /\ ((@closed_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@IMAGE A B f (@topspace A top)) = (@topspace B top')))))) -> (@normal_space B top') /\ (@hausdorff_space B top'). +Axiom thm_REGULAR_LINDELOF_IMP_NORMAL_SPACE : forall {A : Type'}, forall top : Topology A, ((@regular_space A top) /\ (@lindelof_space A top)) -> @normal_space A top. +Axiom thm_HEREDITARILY_NORMAL_SEPARATION : forall {A : Type'}, forall top : Topology A, (@hereditarily A (@normal_space A) top) = (forall s : A -> Prop, forall t : A -> Prop, (@separated_in A top s t) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ (@DISJOINT A u v))))). +Axiom thm_HEREDITARILY_NORMAL_SPACE : forall {A : Type'}, forall top : Topology A, (@hereditarily A (@normal_space A) top) = (forall u : A -> Prop, (@open_in A top u) -> @normal_space A (@subtopology A top u)). +Axiom thm_METRIZABLE_IMP_HEREDITARILY_NORMAL_SPACE : forall {A : Type'}, forall top : Topology A, (@metrizable_space A top) -> @hereditarily A (@normal_space A) top. +Axiom thm_METRIZABLE_SPACE_SEPARATION : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@metrizable_space A top) /\ (@separated_in A top s t)) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@SUBSET A s u) /\ ((@SUBSET A t v) /\ (@DISJOINT A u v)))). +Axiom thm_HEREDITARILY_NORMAL_SEPARATION_PAIRWISE : forall {A : Type'}, forall top : Topology A, (@hereditarily A (@normal_space A) top) = (forall u : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) u) /\ ((forall s : A -> Prop, (@IN (A -> Prop) s u) -> @SUBSET A s (@topspace A top)) /\ (@pairwise (A -> Prop) (@separated_in A top) u))) -> exists f : (A -> Prop) -> A -> Prop, (forall s : A -> Prop, (@IN (A -> Prop) s u) -> (@open_in A top (f s)) /\ (@SUBSET A s (f s))) /\ (@pairwise (A -> Prop) (fun s : A -> Prop => fun t : A -> Prop => @DISJOINT A (f s) (f t)) u)). +Axiom thm_HEREDITARILY_NORMAL_SPACE_PERFECT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@hereditarily A (@normal_space A) top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> @hereditarily B (@normal_space B) top'. +Axiom thm_REGULAR_SECOND_COUNTABLE_IMP_HEREDITARILY_NORMAL_SPACE : forall {A : Type'}, forall top : Topology A, ((@regular_space A top) /\ (@second_countable A top)) -> @hereditarily A (@normal_space A) top. +Axiom thm_completely_regular_space : forall {A : Type'}, forall top : Topology A, (@completely_regular_space A top) = (forall s : A -> Prop, forall x : A, ((@closed_in A top s) /\ (@IN A x (@DIFF A (@topspace A top) s))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R)))))) f) /\ (((f x) = (R_of_N (NUMERAL 0%N))) /\ (forall x' : A, (@IN A x' s) -> (f x') = (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_HOMEOMORPHIC_COMPLETELY_REGULAR_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@completely_regular_space A top) = (@completely_regular_space B top'). +Axiom thm_COMPLETELY_REGULAR_SPACE_ALT : forall {A : Type'}, forall top : Topology A, (@completely_regular_space A top) = (forall s : A -> Prop, forall x : A, ((@closed_in A top s) /\ (@IN A x (@DIFF A (@topspace A top) s))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ (((f x) = (R_of_N (NUMERAL 0%N))) /\ (forall x' : A, (@IN A x' s) -> (f x') = (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_COMPLETELY_REGULAR_SPACE_GEN_ALT : forall {A : Type'}, forall top : Topology A, forall a : R, forall b : R, (~ (a = b)) -> (@completely_regular_space A top) = (forall s : A -> Prop, forall x : A, ((@closed_in A top s) /\ (@IN A x (@DIFF A (@topspace A top) s))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ (((f x) = a) /\ (forall x' : A, (@IN A x' s) -> (f x') = b))). +Axiom thm_COMPLETELY_REGULAR_SPACE_GEN : forall {A : Type'}, forall top : Topology A, forall a : R, forall b : R, (Rlt a b) -> (@completely_regular_space A top) = (forall s : A -> Prop, forall x : A, ((@closed_in A top s) /\ (@IN A x (@DIFF A (@topspace A top) s))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) f) /\ (((f x) = a) /\ (forall x' : A, (@IN A x' s) -> (f x') = b))). +Axiom thm_NORMAL_IMP_COMPLETELY_REGULAR_SPACE_GEN : forall {A : Type'}, forall top : Topology A, ((@normal_space A top) /\ ((@t1_space A top) \/ ((@hausdorff_space A top) \/ (@regular_space A top)))) -> @completely_regular_space A top. +Axiom thm_NORMAL_IMP_COMPLETELY_REGULAR_SPACE : forall {A : Type'}, forall top : Topology A, ((@normal_space A top) /\ ((@hausdorff_space A top) \/ (@regular_space A top))) -> @completely_regular_space A top. +Axiom thm_COMPLETELY_REGULAR_SPACE_MTOPOLOGY : forall {A : Type'}, forall m : Metric A, @completely_regular_space A (@mtopology A m). +Axiom thm_METRIZABLE_IMP_COMPLETELY_REGULAR_SPACE : forall {A : Type'}, forall top : Topology A, (@metrizable_space A top) -> @completely_regular_space A top. +Axiom thm_COMPLETELY_REGULAR_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @completely_regular_space A (@discrete_topology A u). +Axiom thm_COMPLETELY_REGULAR_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@completely_regular_space A top) -> @completely_regular_space A (@subtopology A top s). +Axiom thm_COMPLETELY_REGULAR_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@completely_regular_space A top)) -> @completely_regular_space B top'. +Axiom thm_COMPLETELY_REGULAR_IMP_REGULAR_SPACE : forall {A : Type'}, forall top : Topology A, (@completely_regular_space A top) -> @regular_space A top. +Axiom thm_LOCALLY_COMPACT_REGULAR_IMP_COMPLETELY_REGULAR_SPACE : forall {A : Type'}, forall top : Topology A, ((@locally_compact_space A top) /\ ((@hausdorff_space A top) \/ (@regular_space A top))) -> @completely_regular_space A top. +Axiom thm_COMPLETELY_REGULAR_EQ_REGULAR_SPACE : forall {A : Type'}, forall top : Topology A, (@locally_compact_space A top) -> (@completely_regular_space A top) = (@regular_space A top). +Axiom thm_COMPLETELY_REGULAR_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@completely_regular_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@completely_regular_space A top1) /\ (@completely_regular_space B top2))). +Axiom thm_COMPLETELY_REGULAR_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, (@completely_regular_space (K -> A) (@product_topology A K k tops)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @completely_regular_space A (tops i))). +Axiom thm_weakly_locally_path_connected_at : forall {_470946 : Type'}, forall x : _470946, forall top : Topology _470946, (@weakly_locally_path_connected_at _470946 x top) = (@neighbourhood_base_at _470946 x (@path_connected_in _470946 top) top). +Axiom thm_locally_path_connected_at : forall {_470954 : Type'}, forall x : _470954, forall top : Topology _470954, (@locally_path_connected_at _470954 x top) = (@neighbourhood_base_at _470954 x (fun u : _470954 -> Prop => (@open_in _470954 top u) /\ (@path_connected_in _470954 top u)) top). +Axiom thm_locally_path_connected_space : forall {_470974 : Type'}, forall top : Topology _470974, (@locally_path_connected_space _470974 top) = (@neighbourhood_base_of _470974 (@path_connected_in _470974 top) top). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_EQ_OPEN_PATH_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, (@locally_path_connected_space A top) = (forall u : A -> Prop, forall x : A, ((@open_in A top u) /\ (@IN A x u)) -> @open_in A top (@path_component_of A (@subtopology A top u) x)). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_ALT : forall {A : Type'}, forall top : Topology A, (@locally_path_connected_space A top) = (@neighbourhood_base_of A (fun u : A -> Prop => (@open_in A top u) /\ (@path_connected_in A top u)) top). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, (@locally_path_connected_space A top) = (forall v : A -> Prop, forall x : A, ((@open_in A top v) /\ (@IN A x v)) -> exists u : A -> Prop, (@open_in A top u) /\ ((@path_connected_in A top u) /\ ((@IN A x u) /\ (@SUBSET A u v)))). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_OPEN_PATH_COMPONENTS : forall {A : Type'}, forall top : Topology A, (@locally_path_connected_space A top) = (forall u : A -> Prop, forall c : A -> Prop, ((@open_in A top u) /\ (@IN (A -> Prop) c (@path_components_of A (@subtopology A top u)))) -> @open_in A top c). +Axiom thm_OPEN_IN_PATH_COMPONENT_OF_LOCALLY_PATH_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, forall x : A, (@locally_path_connected_space A top) -> @open_in A top (@path_component_of A top x). +Axiom thm_OPEN_IN_PATH_COMPONENTS_OF_LOCALLY_PATH_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, ((@locally_path_connected_space A top) /\ (@IN (A -> Prop) c (@path_components_of A top))) -> @open_in A top c. +Axiom thm_CLOSED_IN_PATH_COMPONENTS_OF_LOCALLY_PATH_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, ((@locally_path_connected_space A top) /\ (@IN (A -> Prop) c (@path_components_of A top))) -> @closed_in A top c. +Axiom thm_CLOSED_IN_PATH_COMPONENT_OF_LOCALLY_PATH_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, forall x : A, (@locally_path_connected_space A top) -> @closed_in A top (@path_component_of A top x). +Axiom thm_WEAKLY_LOCALLY_PATH_CONNECTED_AT : forall {A : Type'}, forall top : Topology A, forall x : A, (@weakly_locally_path_connected_at A x top) = (forall v : A -> Prop, ((@open_in A top v) /\ (@IN A x v)) -> exists u : A -> Prop, (@open_in A top u) /\ ((@IN A x u) /\ ((@SUBSET A u v) /\ (forall y : A, (@IN A y u) -> exists c : A -> Prop, (@path_connected_in A top c) /\ ((@SUBSET A c v) /\ ((@IN A x c) /\ (@IN A y c))))))). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_IM_KLEINEN : forall {A : Type'}, forall top : Topology A, (@locally_path_connected_space A top) = (forall v : A -> Prop, forall x : A, ((@open_in A top v) /\ (@IN A x v)) -> exists u : A -> Prop, (@open_in A top u) /\ ((@IN A x u) /\ ((@SUBSET A u v) /\ (forall y : A, (@IN A y u) -> exists c : A -> Prop, (@path_connected_in A top c) /\ ((@SUBSET A c v) /\ ((@IN A x c) /\ (@IN A y c))))))). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_OPEN_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@locally_path_connected_space A top) /\ (@open_in A top s)) -> @locally_path_connected_space A (@subtopology A top s). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_QUOTIENT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@locally_path_connected_space A top)) -> @locally_path_connected_space B top'. +Axiom thm_HOMEOMORPHIC_LOCALLY_PATH_CONNECTED_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@locally_path_connected_space A top) = (@locally_path_connected_space B top'). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@locally_path_connected_space A top)) -> @locally_path_connected_space B top'. +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_EUCLIDEANREAL : @locally_path_connected_space R euclideanreal. +Axiom thm_LOCALLY_PATH_CONNECTED_IS_REALINTERVAL : forall s : R -> Prop, (is_realinterval s) -> @locally_path_connected_space R (@subtopology R euclideanreal s). +Axiom thm_LOCALLY_PATH_CONNECTED_REAL_INTERVAL : (forall a : R, forall b : R, @locally_path_connected_space R (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ (forall a : R, forall b : R, @locally_path_connected_space R (@subtopology R euclideanreal (open_real_interval (@pair R R a b)))). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @locally_path_connected_space A (@discrete_topology A u). +Axiom thm_PATH_COMPONENT_EQ_CONNECTED_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, (@locally_path_connected_space A top) -> (@path_component_of A top x) = (@connected_component_of A top x). +Axiom thm_PATH_COMPONENTS_EQ_CONNECTED_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, (@locally_path_connected_space A top) -> (@path_components_of A top) = (@connected_components_of A top). +Axiom thm_PATH_CONNECTED_EQ_CONNECTED_SPACE : forall {_472201 : Type'}, forall top : Topology _472201, (@locally_path_connected_space _472201 top) -> (@path_connected_space _472201 top) = (@connected_space _472201 top). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@locally_path_connected_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@locally_path_connected_space A top1) /\ (@locally_path_connected_space B top2))). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, (@locally_path_connected_space (K -> A) (@product_topology A K k tops)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ ((@FINITE K (@GSPEC K (fun GEN_PVAR_1965 : K => exists i : K, @SETSPEC K GEN_PVAR_1965 ((@IN K i k) /\ (~ (@path_connected_space A (tops i)))) i))) /\ (forall i : K, (@IN K i k) -> @locally_path_connected_space A (tops i)))). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_SUM_TOPOLOGY : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, (@locally_path_connected_space (prod K A) (@sum_topology A K k top)) = (forall i : K, (@IN K i k) -> @locally_path_connected_space A (top i)). +Axiom thm_weakly_locally_connected_at : forall {_472699 : Type'}, forall x : _472699, forall top : Topology _472699, (@weakly_locally_connected_at _472699 x top) = (@neighbourhood_base_at _472699 x (@connected_in _472699 top) top). +Axiom thm_locally_connected_at : forall {_472707 : Type'}, forall x : _472707, forall top : Topology _472707, (@locally_connected_at _472707 x top) = (@neighbourhood_base_at _472707 x (fun u : _472707 -> Prop => (@open_in _472707 top u) /\ (@connected_in _472707 top u)) top). +Axiom thm_locally_connected_space : forall {_472727 : Type'}, forall top : Topology _472727, (@locally_connected_space _472727 top) = (@neighbourhood_base_of _472727 (@connected_in _472727 top) top). +Axiom thm_LOCALLY_CONNECTED_SPACE_EQ_OPEN_CONNECTED_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, (@locally_connected_space A top) = (forall u : A -> Prop, forall x : A, ((@open_in A top u) /\ (@IN A x u)) -> @open_in A top (@connected_component_of A (@subtopology A top u) x)). +Axiom thm_LOCALLY_CONNECTED_SPACE_ALT : forall {A : Type'}, forall top : Topology A, (@locally_connected_space A top) = (@neighbourhood_base_of A (fun u : A -> Prop => (@open_in A top u) /\ (@connected_in A top u)) top). +Axiom thm_LOCALLY_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, (@locally_connected_space A top) = (forall v : A -> Prop, forall x : A, ((@open_in A top v) /\ (@IN A x v)) -> exists u : A -> Prop, (@open_in A top u) /\ ((@connected_in A top u) /\ ((@IN A x u) /\ (@SUBSET A u v)))). +Axiom thm_LOCALLY_PATH_CONNECTED_IMP_LOCALLY_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, (@locally_path_connected_space A top) -> @locally_connected_space A top. +Axiom thm_LOCALLY_CONNECTED_SPACE_OPEN_CONNECTED_COMPONENTS : forall {A : Type'}, forall top : Topology A, (@locally_connected_space A top) = (forall u : A -> Prop, forall c : A -> Prop, ((@open_in A top u) /\ (@IN (A -> Prop) c (@connected_components_of A (@subtopology A top u)))) -> @open_in A top c). +Axiom thm_OPEN_IN_CONNECTED_COMPONENT_OF_LOCALLY_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, forall x : A, (@locally_connected_space A top) -> @open_in A top (@connected_component_of A top x). +Axiom thm_OPEN_IN_CONNECTED_COMPONENTS_OF_LOCALLY_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, ((@locally_connected_space A top) /\ (@IN (A -> Prop) c (@connected_components_of A top))) -> @open_in A top c. +Axiom thm_WEAKLY_LOCALLY_CONNECTED_AT : forall {A : Type'}, forall top : Topology A, forall x : A, (@weakly_locally_connected_at A x top) = (forall v : A -> Prop, ((@open_in A top v) /\ (@IN A x v)) -> exists u : A -> Prop, (@open_in A top u) /\ ((@IN A x u) /\ ((@SUBSET A u v) /\ (forall y : A, (@IN A y u) -> exists c : A -> Prop, (@connected_in A top c) /\ ((@SUBSET A c v) /\ ((@IN A x c) /\ (@IN A y c))))))). +Axiom thm_LOCALLY_CONNECTED_SPACE_IM_KLEINEN : forall {A : Type'}, forall top : Topology A, (@locally_connected_space A top) = (forall v : A -> Prop, forall x : A, ((@open_in A top v) /\ (@IN A x v)) -> exists u : A -> Prop, (@open_in A top u) /\ ((@IN A x u) /\ ((@SUBSET A u v) /\ (forall y : A, (@IN A y u) -> exists c : A -> Prop, (@connected_in A top c) /\ ((@SUBSET A c v) /\ ((@IN A x c) /\ (@IN A y c))))))). +Axiom thm_LOCALLY_CONNECTED_SPACE_OPEN_SUBSET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@locally_connected_space A top) /\ (@open_in A top s)) -> @locally_connected_space A (@subtopology A top s). +Axiom thm_LOCALLY_CONNECTED_SPACE_QUOTIENT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@locally_connected_space A top)) -> @locally_connected_space B top'. +Axiom thm_LOCALLY_CONNECTED_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@locally_connected_space A top)) -> @locally_connected_space B top'. +Axiom thm_HOMEOMORPHIC_LOCALLY_CONNECTED_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@locally_connected_space A top) = (@locally_connected_space B top'). +Axiom thm_LOCALLY_CONNECTED_SPACE_EUCLIDEANREAL : @locally_connected_space R euclideanreal. +Axiom thm_LOCALLY_CONNECTED_IS_REALINTERVAL : forall s : R -> Prop, (is_realinterval s) -> @locally_connected_space R (@subtopology R euclideanreal s). +Axiom thm_LOCALLY_CONNECTED_REAL_INTERVAL : (forall a : R, forall b : R, @locally_connected_space R (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ (forall a : R, forall b : R, @locally_connected_space R (@subtopology R euclideanreal (open_real_interval (@pair R R a b)))). +Axiom thm_LOCALLY_CONNECTED_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @locally_connected_space A (@discrete_topology A u). +Axiom thm_LOCALLY_PATH_CONNECTED_IMP_LOCALLY_CONNECTED_AT : forall {a : Type'}, forall top : Topology a, forall x : a, (@locally_path_connected_at a x top) -> @locally_connected_at a x top. +Axiom thm_WEAKLY_LOCALLY_PATH_CONNECTED_IMP_WEAKLY_LOCALLY_CONNECTED_AT : forall {a : Type'}, forall top : Topology a, forall x : a, (@weakly_locally_path_connected_at a x top) -> @weakly_locally_connected_at a x top. +Axiom thm_INTERIOR_OF_LOCALLY_CONNECTED_SUBSPACE_COMPONENT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall c : A -> Prop, ((@locally_connected_space A top) /\ (@IN (A -> Prop) c (@connected_components_of A (@subtopology A top s)))) -> (@interior_of A top c) = (@INTER A c (@interior_of A top s)). +Axiom thm_FRONTIER_OF_LOCALLY_CONNECTED_SUBSPACE_COMPONENT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall c : A -> Prop, ((@locally_connected_space A top) /\ ((@closed_in A top s) /\ (@IN (A -> Prop) c (@connected_components_of A (@subtopology A top s))))) -> (@frontier_of A top c) = (@INTER A c (@frontier_of A top s)). +Axiom thm_LOCALLY_CONNECTED_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@locally_connected_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@locally_connected_space A top1) /\ (@locally_connected_space B top2))). +Axiom thm_LOCALLY_CONNECTED_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall tops : K -> Topology A, forall k : K -> Prop, (@locally_connected_space (K -> A) (@product_topology A K k tops)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ ((@FINITE K (@GSPEC K (fun GEN_PVAR_1973 : K => exists i : K, @SETSPEC K GEN_PVAR_1973 ((@IN K i k) /\ (~ (@connected_space A (tops i)))) i))) /\ (forall i : K, (@IN K i k) -> @locally_connected_space A (tops i)))). +Axiom thm_LOCALLY_CONNECTED_SPACE_SUM_TOPOLOGY : forall {A K : Type'}, forall k : K -> Prop, forall top : K -> Topology A, (@locally_connected_space (prod K A) (@sum_topology A K k top)) = (forall i : K, (@IN K i k) -> @locally_connected_space A (top i)). +Axiom thm_quasi_component_of : forall {_474420 : Type'}, forall top : Topology _474420, forall x : _474420, forall y : _474420, (@quasi_component_of _474420 top x y) = ((@IN _474420 x (@topspace _474420 top)) /\ ((@IN _474420 y (@topspace _474420 top)) /\ (forall t : _474420 -> Prop, ((@closed_in _474420 top t) /\ (@open_in _474420 top t)) -> (@IN _474420 x t) = (@IN _474420 y t)))). +Axiom thm_quasi_components_of : forall {_474443 : Type'}, forall top : Topology _474443, (@quasi_components_of _474443 top) = (@GSPEC (_474443 -> Prop) (fun GEN_PVAR_1974 : _474443 -> Prop => exists x : _474443, @SETSPEC (_474443 -> Prop) GEN_PVAR_1974 (@IN _474443 x (@topspace _474443 top)) (@quasi_component_of _474443 top x))). +Axiom thm_QUASI_COMPONENT_IN_TOPSPACE : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@quasi_component_of A top x y) -> (@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top)). +Axiom thm_QUASI_COMPONENT_OF_REFL : forall {A : Type'}, forall top : Topology A, forall x : A, (@quasi_component_of A top x x) = (@IN A x (@topspace A top)). +Axiom thm_QUASI_COMPONENT_OF_SYM : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@quasi_component_of A top x y) = (@quasi_component_of A top y x). +Axiom thm_QUASI_COMPONENT_OF_TRANS : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, forall z : A, ((@quasi_component_of A top x y) /\ (@quasi_component_of A top y z)) -> @quasi_component_of A top x z. +Axiom thm_QUASI_COMPONENT_OF_SUBSET_TOPSPACE : forall {_474570 : Type'}, forall top : Topology _474570, forall x : _474570, @SUBSET _474570 (@quasi_component_of _474570 top x) (@topspace _474570 top). +Axiom thm_QUASI_COMPONENT_OF_EQ_EMPTY : forall {_474594 : Type'}, forall top : Topology _474594, forall x : _474594, ((@quasi_component_of _474594 top x) = (@EMPTY _474594)) = (~ (@IN _474594 x (@topspace _474594 top))). +Axiom thm_QUASI_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@quasi_component_of A top x y) = ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (forall t : A -> Prop, ((@IN A x t) /\ ((@closed_in A top t) /\ (@open_in A top t))) -> @IN A y t))). +Axiom thm_QUASI_COMPONENT_OF_ALT : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@quasi_component_of A top x y) = ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (~ (exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ (((@UNION A u v) = (@topspace A top)) /\ ((@DISJOINT A u v) /\ ((@IN A x u) /\ (@IN A y v))))))))). +Axiom thm_QUASI_COMPONENT_OF_SET : forall {A : Type'}, forall top : Topology A, forall x : A, (@quasi_component_of A top x) = (@COND (A -> Prop) (@IN A x (@topspace A top)) (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1975 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1975 ((@closed_in A top t) /\ ((@open_in A top t) /\ (@IN A x t))) t))) (@EMPTY A)). +Axiom thm_QUASI_COMPONENT_OF_SEPARATED : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@quasi_component_of A top x y) = ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (~ (exists u : A -> Prop, exists v : A -> Prop, (@separated_in A top u v) /\ (((@UNION A u v) = (@topspace A top)) /\ ((@IN A x u) /\ (@IN A y v))))))). +Axiom thm_QUASI_COMPONENT_OF_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall x : A, forall y : A, (@quasi_component_of A (@subtopology A top s) x y) -> @quasi_component_of A top x y. +Axiom thm_QUASI_COMPONENT_OF_MONO : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall x : A, forall y : A, ((@quasi_component_of A (@subtopology A top s) x y) /\ (@SUBSET A s t)) -> @quasi_component_of A (@subtopology A top t) x y. +Axiom thm_QUASI_COMPONENT_OF_EQUIV : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@quasi_component_of A top x y) = ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((@quasi_component_of A top x) = (@quasi_component_of A top y)))). +Axiom thm_QUASI_COMPONENT_OF_DISJOINT : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@DISJOINT A (@quasi_component_of A top x) (@quasi_component_of A top y)) = (~ (@quasi_component_of A top x y)). +Axiom thm_QUASI_COMPONENT_OF_EQ : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, ((@quasi_component_of A top x) = (@quasi_component_of A top y)) = (((~ (@IN A x (@topspace A top))) /\ (~ (@IN A y (@topspace A top)))) \/ ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (@quasi_component_of A top x y)))). +Axiom thm_UNIONS_QUASI_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, (@UNIONS A (@quasi_components_of A top)) = (@topspace A top). +Axiom thm_PAIRWISE_DISJOINT_QUASI_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, @pairwise (A -> Prop) (@DISJOINT A) (@quasi_components_of A top). +Axiom thm_COMPLEMENT_QUASI_COMPONENTS_OF_UNIONS : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@quasi_components_of A top)) -> (@DIFF A (@topspace A top) c) = (@UNIONS A (@DELETE (A -> Prop) (@quasi_components_of A top) c)). +Axiom thm_NONEMPTY_QUASI_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@quasi_components_of A top)) -> ~ (c = (@EMPTY A)). +Axiom thm_QUASI_COMPONENTS_OF_SUBSET : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@quasi_components_of A top)) -> @SUBSET A c (@topspace A top). +Axiom thm_QUASI_COMPONENT_IN_QUASI_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, forall a : A, (@IN (A -> Prop) (@quasi_component_of A top a) (@quasi_components_of A top)) = (@IN A a (@topspace A top)). +Axiom thm_QUASI_COMPONENTS_OF_EQ_EMPTY : forall {A : Type'}, forall top : Topology A, ((@quasi_components_of A top) = (@EMPTY (A -> Prop))) = ((@topspace A top) = (@EMPTY A)). +Axiom thm_QUASI_COMPONENTS_OF_EMPTY_SPACE : forall {A : Type'}, forall top : Topology A, ((@topspace A top) = (@EMPTY A)) -> (@quasi_components_of A top) = (@EMPTY (A -> Prop)). +Axiom thm_CLOSED_IN_QUASI_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, @closed_in A top (@quasi_component_of A top x). +Axiom thm_CLOSED_IN_QUASI_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@quasi_components_of A top)) -> @closed_in A top c. +Axiom thm_OPEN_IN_FINITE_QUASI_COMPONENTS : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, ((@FINITE (A -> Prop) (@quasi_components_of A top)) /\ (@IN (A -> Prop) c (@quasi_components_of A top))) -> @open_in A top c. +Axiom thm_QUASI_COMPONENT_OF_EQ_OVERLAP : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, ((@quasi_component_of A top x) = (@quasi_component_of A top y)) = (((~ (@IN A x (@topspace A top))) /\ (~ (@IN A y (@topspace A top)))) \/ (~ ((@INTER A (@quasi_component_of A top x) (@quasi_component_of A top y)) = (@EMPTY A)))). +Axiom thm_QUASI_COMPONENT_OF_NONOVERLAP : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, ((@INTER A (@quasi_component_of A top x) (@quasi_component_of A top y)) = (@EMPTY A)) = ((~ (@IN A x (@topspace A top))) \/ ((~ (@IN A y (@topspace A top))) \/ (~ ((@quasi_component_of A top x) = (@quasi_component_of A top y))))). +Axiom thm_QUASI_COMPONENT_OF_OVERLAP : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (~ ((@INTER A (@quasi_component_of A top x) (@quasi_component_of A top y)) = (@EMPTY A))) = ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ ((@quasi_component_of A top x) = (@quasi_component_of A top y)))). +Axiom thm_QUASI_COMPONENTS_OF_DISJOINT : forall {_475576 : Type'}, forall top : Topology _475576, forall c : _475576 -> Prop, forall c' : _475576 -> Prop, ((@IN (_475576 -> Prop) c (@quasi_components_of _475576 top)) /\ (@IN (_475576 -> Prop) c' (@quasi_components_of _475576 top))) -> (@DISJOINT _475576 c c') = (~ (c = c')). +Axiom thm_QUASI_COMPONENTS_OF_OVERLAP : forall {_475627 : Type'}, forall top : Topology _475627, forall c : _475627 -> Prop, forall c' : _475627 -> Prop, ((@IN (_475627 -> Prop) c (@quasi_components_of _475627 top)) /\ (@IN (_475627 -> Prop) c' (@quasi_components_of _475627 top))) -> (~ ((@INTER _475627 c c') = (@EMPTY _475627))) = (c = c'). +Axiom thm_PAIRWISE_SEPARATED_QUASI_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, @pairwise (A -> Prop) (@separated_in A top) (@quasi_components_of A top). +Axiom thm_CARD_LE_QUASI_COMPONENTS_OF_TOPSPACE : forall {A : Type'}, forall top : Topology A, @le_c (A -> Prop) A (@quasi_components_of A top) (@topspace A top). +Axiom thm_FINITE_QUASI_COMPONENTS_OF_FINITE : forall {A : Type'}, forall top : Topology A, (@FINITE A (@topspace A top)) -> @FINITE (A -> Prop) (@quasi_components_of A top). +Axiom thm_CONNECTED_IMP_QUASI_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@connected_component_of A top x y) -> @quasi_component_of A top x y. +Axiom thm_CONNECTED_COMPONENT_SUBSET_QUASI_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, @SUBSET A (@connected_component_of A top x) (@quasi_component_of A top x). +Axiom thm_QUASI_COMPONENT_AS_CONNECTED_COMPONENT_UNIONS : forall {A : Type'}, forall top : Topology A, forall x : A, (@quasi_component_of A top x) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1976 : A -> Prop => exists y : A, @SETSPEC (A -> Prop) GEN_PVAR_1976 (@quasi_component_of A top x y) (@connected_component_of A top y)))). +Axiom thm_QUASI_COMPONENTS_AS_CONNECTED_COMPONENTS_UNIONS : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@quasi_components_of A top)) -> exists t : (A -> Prop) -> Prop, (@SUBSET (A -> Prop) t (@connected_components_of A top)) /\ ((@UNIONS A t) = c). +Axiom thm_PATH_IMP_QUASI_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@path_component_of A top x y) -> @quasi_component_of A top x y. +Axiom thm_PATH_COMPONENT_SUBSET_QUASI_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, @SUBSET A (@path_component_of A top x) (@quasi_component_of A top x). +Axiom thm_CONNECTED_SPACE_IFF_QUASI_COMPONENT : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (forall x : A, forall y : A, ((@IN A x (@topspace A top)) /\ (@IN A y (@topspace A top))) -> @quasi_component_of A top x y). +Axiom thm_CONNECTED_SPACE_IMP_QUASI_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall a : A, forall b : A, ((@connected_space A top) /\ ((@IN A a (@topspace A top)) /\ (@IN A b (@topspace A top)))) -> @quasi_component_of A top a b. +Axiom thm_CONNECTED_SPACE_QUASI_COMPONENT_SET : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (forall x : A, (@IN A x (@topspace A top)) -> (@quasi_component_of A top x) = (@topspace A top)). +Axiom thm_CONNECTED_SPACE_IFF_QUASI_COMPONENTS_EQ : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (forall c : A -> Prop, forall c' : A -> Prop, ((@IN (A -> Prop) c (@quasi_components_of A top)) /\ (@IN (A -> Prop) c' (@quasi_components_of A top))) -> c = c'). +Axiom thm_QUASI_COMPONENTS_OF_SUBSET_SING : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@SUBSET (A -> Prop) (@quasi_components_of A top) (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) = ((@connected_space A top) /\ (((@topspace A top) = (@EMPTY A)) \/ ((@topspace A top) = s))). +Axiom thm_CONNECTED_SPACE_IFF_QUASI_COMPONENTS_SUBSET_SING : forall {A : Type'}, forall top : Topology A, (@connected_space A top) = (exists a : A -> Prop, @SUBSET (A -> Prop) (@quasi_components_of A top) (@INSERT (A -> Prop) a (@EMPTY (A -> Prop)))). +Axiom thm_QUASI_COMPONENTS_OF_EQ_SING : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@quasi_components_of A top) = (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) = ((@connected_space A top) /\ ((~ ((@topspace A top) = (@EMPTY A))) /\ (s = (@topspace A top)))). +Axiom thm_QUASI_COMPONENTS_OF_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, (@connected_space A top) -> (@quasi_components_of A top) = (@COND ((A -> Prop) -> Prop) ((@topspace A top) = (@EMPTY A)) (@EMPTY (A -> Prop)) (@INSERT (A -> Prop) (@topspace A top) (@EMPTY (A -> Prop)))). +Axiom thm_SEPARATED_BETWEEN_SINGS : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@separated_between A top (@INSERT A x (@EMPTY A)) (@INSERT A y (@EMPTY A))) = ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (~ (@quasi_component_of A top x y)))). +Axiom thm_QUASI_COMPONENT_NONSEPARATED : forall {A : Type'}, forall top : Topology A, forall x : A, forall y : A, (@quasi_component_of A top x y) = ((@IN A x (@topspace A top)) /\ ((@IN A y (@topspace A top)) /\ (~ (@separated_between A top (@INSERT A x (@EMPTY A)) (@INSERT A y (@EMPTY A)))))). +Axiom thm_SEPARATED_BETWEEN_QUASI_COMPONENT_POINTWISE_LEFT : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, forall s : A -> Prop, (@IN (A -> Prop) c (@quasi_components_of A top)) -> (@separated_between A top c s) = (exists x : A, (@IN A x c) /\ (@separated_between A top (@INSERT A x (@EMPTY A)) s)). +Axiom thm_SEPARATED_BETWEEN_QUASI_COMPONENT_POINTWISE_RIGHT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall c : A -> Prop, (@IN (A -> Prop) c (@quasi_components_of A top)) -> (@separated_between A top s c) = (exists x : A, (@IN A x c) /\ (@separated_between A top s (@INSERT A x (@EMPTY A)))). +Axiom thm_SEPARATED_BETWEEN_QUASI_COMPONENT_POINT : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, forall x : A, (@IN (A -> Prop) c (@quasi_components_of A top)) -> (@separated_between A top c (@INSERT A x (@EMPTY A))) = (@IN A x (@DIFF A (@topspace A top) c)). +Axiom thm_SEPARATED_BETWEEN_POINT_QUASI_COMPONENT : forall {A : Type'}, forall top : Topology A, forall x : A, forall c : A -> Prop, (@IN (A -> Prop) c (@quasi_components_of A top)) -> (@separated_between A top (@INSERT A x (@EMPTY A)) c) = (@IN A x (@DIFF A (@topspace A top) c)). +Axiom thm_SEPARATED_BETWEEN_QUASI_COMPONENT_COMPACT : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, forall k : A -> Prop, ((@IN (A -> Prop) c (@quasi_components_of A top)) /\ (@compact_in A top k)) -> (@separated_between A top c k) = (@DISJOINT A c k). +Axiom thm_SEPARATED_BETWEEN_COMPACT_QUASI_COMPONENT : forall {A : Type'}, forall top : Topology A, forall k : A -> Prop, forall c : A -> Prop, ((@compact_in A top k) /\ (@IN (A -> Prop) c (@quasi_components_of A top))) -> (@separated_between A top k c) = (@DISJOINT A k c). +Axiom thm_SEPARATED_BETWEEN_QUASI_COMPONENTS : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, forall c' : A -> Prop, ((@IN (A -> Prop) c (@quasi_components_of A top)) /\ (@IN (A -> Prop) c' (@quasi_components_of A top))) -> (@separated_between A top c c') = (@DISJOINT A c c'). +Axiom thm_QUASI_EQ_CONNECTED_COMPONENT_OF_EQ : forall {A : Type'}, forall top : Topology A, forall x : A, ((@quasi_component_of A top x) = (@connected_component_of A top x)) = (@connected_in A top (@quasi_component_of A top x)). +Axiom thm_CONNECTED_QUASI_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@quasi_components_of A top)) -> (@IN (A -> Prop) c (@connected_components_of A top)) = (@connected_in A top c). +Axiom thm_QUASI_COMPONENT_OF_CLOPEN_CASES : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) c (@quasi_components_of A top)) /\ ((@closed_in A top t) /\ (@open_in A top t))) -> (@SUBSET A c t) \/ (@DISJOINT A c t). +Axiom thm_QUASI_COMPONENTS_OF_SET : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@IN (A -> Prop) c (@quasi_components_of A top)) -> (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_1978 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1978 ((@closed_in A top t) /\ ((@open_in A top t) /\ (@SUBSET A c t))) t))) = c. +Axiom thm_OPEN_QUASI_EQ_CONNECTED_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, (@open_in A top c) -> (@IN (A -> Prop) c (@quasi_components_of A top)) = (@IN (A -> Prop) c (@connected_components_of A top)). +Axiom thm_QUASI_COMPONENT_OF_CONTINUOUS_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall x : A, forall y : A, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@quasi_component_of A top x y)) -> @quasi_component_of B top' (f x) (f y). +Axiom thm_QUASI_COMPONENT_OF_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, forall x : A, (@quasi_component_of A (@discrete_topology A u) x) = (@COND (A -> Prop) (@IN A x u) (@INSERT A x (@EMPTY A)) (@EMPTY A)). +Axiom thm_QUASI_COMPONENTS_OF_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, (@quasi_components_of A (@discrete_topology A u)) = (@GSPEC (A -> Prop) (fun GEN_PVAR_1980 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_1980 (@IN A x u) (@INSERT A x (@EMPTY A)))). +Axiom thm_HOMEOMORPHIC_MAP_QUASI_COMPONENT_OF : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, forall x : A, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@IN A x (@topspace A top))) -> (@quasi_component_of B top' (f x)) = (@IMAGE A B f (@quasi_component_of A top x)). +Axiom thm_HOMEOMORPHIC_MAP_QUASI_COMPONENTS_OF : forall {A B : Type'}, forall f : A -> B, forall top : Topology A, forall top' : Topology B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> (@quasi_components_of B top') = (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) (@quasi_components_of A top)). +Axiom thm_OPEN_IN_QUASI_COMPONENT_OF_LOCALLY_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, forall x : A, (@locally_connected_space A top) -> @open_in A top (@quasi_component_of A top x). +Axiom thm_OPEN_IN_QUASI_COMPONENTS_OF_LOCALLY_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, ((@locally_connected_space A top) /\ (@IN (A -> Prop) c (@quasi_components_of A top))) -> @open_in A top c. +Axiom thm_QUASI_EQ_CONNECTED_COMPONENTS_OF_ALT : forall {A : Type'}, forall top : Topology A, ((@quasi_components_of A top) = (@connected_components_of A top)) = (forall c : A -> Prop, (@IN (A -> Prop) c (@quasi_components_of A top)) -> @connected_in A top c). +Axiom thm_CONNECTED_SUBSET_QUASI_COMPONENTS_OF_POINTWISE : forall {A : Type'}, forall top : Topology A, (@SUBSET (A -> Prop) (@connected_components_of A top) (@quasi_components_of A top)) = (forall x : A, (@IN A x (@topspace A top)) -> (@quasi_component_of A top x) = (@connected_component_of A top x)). +Axiom thm_QUASI_SUBSET_CONNECTED_COMPONENTS_OF_POINTWISE : forall {A : Type'}, forall top : Topology A, (@SUBSET (A -> Prop) (@quasi_components_of A top) (@connected_components_of A top)) = (forall x : A, (@IN A x (@topspace A top)) -> (@quasi_component_of A top x) = (@connected_component_of A top x)). +Axiom thm_QUASI_EQ_CONNECTED_COMPONENTS_OF_POINTWISE : forall {A : Type'}, forall top : Topology A, ((@quasi_components_of A top) = (@connected_components_of A top)) = (forall x : A, (@IN A x (@topspace A top)) -> (@quasi_component_of A top x) = (@connected_component_of A top x)). +Axiom thm_QUASI_EQ_CONNECTED_COMPONENTS_OF_POINTWISE_ALT : forall {A : Type'}, forall top : Topology A, ((@quasi_components_of A top) = (@connected_components_of A top)) = (forall x : A, (@quasi_component_of A top x) = (@connected_component_of A top x)). +Axiom thm_QUASI_EQ_CONNECTED_COMPONENTS_OF_INCLUSION : forall {A : Type'}, forall top : Topology A, ((@quasi_components_of A top) = (@connected_components_of A top)) = ((@SUBSET (A -> Prop) (@connected_components_of A top) (@quasi_components_of A top)) \/ (@SUBSET (A -> Prop) (@quasi_components_of A top) (@connected_components_of A top))). +Axiom thm_QUASI_EQ_CONNECTED_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, ((@FINITE (A -> Prop) (@connected_components_of A top)) \/ ((@FINITE (A -> Prop) (@quasi_components_of A top)) \/ ((@locally_connected_space A top) \/ ((@compact_space A top) /\ ((@hausdorff_space A top) \/ ((@regular_space A top) \/ (@normal_space A top))))))) -> (@quasi_components_of A top) = (@connected_components_of A top). +Axiom thm_QUASI_EQ_CONNECTED_COMPONENT_OF : forall {A : Type'}, forall top : Topology A, forall x : A, ((@FINITE (A -> Prop) (@connected_components_of A top)) \/ ((@FINITE (A -> Prop) (@quasi_components_of A top)) \/ ((@locally_connected_space A top) \/ ((@compact_space A top) /\ ((@hausdorff_space A top) \/ ((@regular_space A top) \/ (@normal_space A top))))))) -> (@quasi_component_of A top x) = (@connected_component_of A top x). +Axiom thm_CUT_WIRE_FENCE_THEOREM_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@compact_space A top) /\ (((@hausdorff_space A top) \/ ((@regular_space A top) \/ (@normal_space A top))) /\ ((@compact_in A top s) /\ ((@closed_in A top t) /\ (forall c : A -> Prop, (@connected_in A top c) -> (@DISJOINT A c s) \/ (@DISJOINT A c t)))))) -> @separated_between A top s t. +Axiom thm_CUT_WIRE_FENCE_THEOREM : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@compact_space A top) /\ ((@hausdorff_space A top) /\ ((@closed_in A top s) /\ ((@closed_in A top t) /\ (forall c : A -> Prop, (@connected_in A top c) -> (@DISJOINT A c s) \/ (@DISJOINT A c t)))))) -> @separated_between A top s t. +Axiom thm_SEPARATED_BETWEEN_FROM_CLOSED_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall c : A -> Prop, ((@separated_between A (@subtopology A top c) s (@frontier_of A top c)) /\ (@separated_between A (@subtopology A top c) s t)) -> @separated_between A top s t. +Axiom thm_SEPARATED_BETWEEN_FROM_CLOSED_SUBTOPOLOGY_FRONTIER : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A (@subtopology A top t) s (@frontier_of A top t)) -> @separated_between A top s (@frontier_of A top t). +Axiom thm_SEPARATED_BETWEEN_FROM_FRONTIER_OF_CLOSED_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@separated_between A (@subtopology A top t) s (@frontier_of A top t)) -> @separated_between A top s (@DIFF A (@topspace A top) t). +Axiom thm_SEPARATED_BETWEEN_COMPACT_CONNECTED_COMPONENT : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, forall t : A -> Prop, ((@locally_compact_space A top) /\ ((@hausdorff_space A top) /\ ((@IN (A -> Prop) c (@connected_components_of A top)) /\ ((@compact_in A top c) /\ ((@closed_in A top t) /\ (@DISJOINT A c t)))))) -> @separated_between A top c t. +Axiom thm_WILDER_LOCALLY_COMPACT_COMPONENT_THM : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, forall w : A -> Prop, ((@locally_compact_space A top) /\ ((@hausdorff_space A top) /\ ((@IN (A -> Prop) c (@connected_components_of A top)) /\ ((@compact_in A top c) /\ ((@open_in A top w) /\ (@SUBSET A c w)))))) -> exists u : A -> Prop, exists v : A -> Prop, (@open_in A top u) /\ ((@open_in A top v) /\ ((@DISJOINT A u v) /\ (((@UNION A u v) = (@topspace A top)) /\ ((@SUBSET A c u) /\ (@SUBSET A u w))))). +Axiom thm_COMPACT_QUASI_EQ_CONNECTED_COMPONENTS_OF : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, ((@locally_compact_space A top) /\ ((@hausdorff_space A top) /\ (@compact_in A top c))) -> (@IN (A -> Prop) c (@quasi_components_of A top)) = (@IN (A -> Prop) c (@connected_components_of A top)). +Axiom thm_BOUNDARY_BUMPING_THEOREM_CLOSED_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall c : A -> Prop, ((@connected_space A top) /\ ((@locally_compact_space A top) /\ ((@hausdorff_space A top) /\ ((@closed_in A top s) /\ ((~ (s = (@topspace A top))) /\ ((@compact_in A top c) /\ (@IN (A -> Prop) c (@connected_components_of A (@subtopology A top s))))))))) -> ~ ((@INTER A c (@frontier_of A top s)) = (@EMPTY A)). +Axiom thm_BOUNDARY_BUMPING_THEOREM_CLOSED : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall c : A -> Prop, ((@connected_space A top) /\ ((@compact_space A top) /\ ((@hausdorff_space A top) /\ ((@closed_in A top s) /\ ((~ (s = (@topspace A top))) /\ (@IN (A -> Prop) c (@connected_components_of A (@subtopology A top s)))))))) -> ~ ((@INTER A c (@frontier_of A top s)) = (@EMPTY A)). +Axiom thm_INTERMEDIATE_CONTINUUM_EXISTS : forall {A : Type'}, forall top : Topology A, forall c : A -> Prop, forall u : A -> Prop, ((@connected_space A top) /\ ((@locally_compact_space A top) /\ ((@hausdorff_space A top) /\ ((@compact_in A top c) /\ ((@connected_in A top c) /\ ((~ (c = (@EMPTY A))) /\ ((~ (c = (@topspace A top))) /\ ((@open_in A top u) /\ (@SUBSET A c u))))))))) -> exists d : A -> Prop, (@compact_in A top d) /\ ((@connected_in A top d) /\ ((@PSUBSET A c d) /\ (@PSUBSET A d u))). +Axiom thm_BOUNDARY_BUMPING_THEOREM_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall c : A -> Prop, ((@connected_space A top) /\ ((@locally_compact_space A top) /\ ((@hausdorff_space A top) /\ ((@PSUBSET A s (@topspace A top)) /\ ((@IN (A -> Prop) c (@connected_components_of A (@subtopology A top s))) /\ (@compact_in A top (@closure_of A top c))))))) -> ~ ((@INTER A (@frontier_of A top c) (@frontier_of A top s)) = (@EMPTY A)). +Axiom thm_BOUNDARY_BUMPING_THEOREM : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall c : A -> Prop, ((@connected_space A top) /\ ((@compact_space A top) /\ ((@hausdorff_space A top) /\ ((@PSUBSET A s (@topspace A top)) /\ (@IN (A -> Prop) c (@connected_components_of A (@subtopology A top s))))))) -> ~ ((@INTER A (@frontier_of A top c) (@frontier_of A top s)) = (@EMPTY A)). +Axiom thm_k_space : forall {A : Type'}, forall top : Topology A, (@k_space A top) = (forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> (@closed_in A top s) = (forall k : A -> Prop, (@compact_in A top k) -> @closed_in A (@subtopology A top k) (@INTER A k s))). +Axiom thm_K_SPACE : forall {A : Type'}, forall top : Topology A, (@k_space A top) = (forall s : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ (forall k : A -> Prop, (@compact_in A top k) -> @closed_in A (@subtopology A top k) (@INTER A k s))) -> @closed_in A top s). +Axiom thm_K_SPACE_OPEN : forall {A : Type'}, forall top : Topology A, (@k_space A top) = (forall s : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ (forall k : A -> Prop, (@compact_in A top k) -> @open_in A (@subtopology A top k) (@INTER A k s))) -> @open_in A top s). +Axiom thm_K_SPACE_ALT : forall {A : Type'}, forall top : Topology A, (@k_space A top) = (forall s : A -> Prop, (@SUBSET A s (@topspace A top)) -> (@open_in A top s) = (forall k : A -> Prop, (@compact_in A top k) -> @open_in A (@subtopology A top k) (@INTER A k s))). +Axiom thm_K_SPACE_QUOTIENT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall q : A -> B, ((@quotient_map A B (@pair (Topology A) (Topology B) top top') q) /\ (@k_space A top)) -> @k_space B top'. +Axiom thm_K_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@k_space A top)) -> @k_space B top'. +Axiom thm_HOMEOMORPHIC_K_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@k_space A top) = (@k_space B top'). +Axiom thm_K_SPACE_PERFECT_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@k_space A top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> @k_space B top'. +Axiom thm_LOCALLY_COMPACT_IMP_K_SPACE : forall {A : Type'}, forall top : Topology A, (@locally_compact_space A top) -> @k_space A top. +Axiom thm_COMPACT_IMP_K_SPACE : forall {A : Type'}, forall top : Topology A, (@compact_space A top) -> @k_space A top. +Axiom thm_K_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @k_space A (@discrete_topology A u). +Axiom thm_METRIZABLE_IMP_K_SPACE : forall {A : Type'}, forall top : Topology A, (@metrizable_space A top) -> @k_space A top. +Axiom thm_K_SPACE_MTOPOLOGY : forall {A : Type'}, forall m : Metric A, @k_space A (@mtopology A m). +Axiom thm_K_SPACE_EUCLIDEANREAL : @k_space R euclideanreal. +Axiom thm_K_SPACE_CLOSED_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@k_space A top) /\ (@closed_in A top s)) -> @k_space A (@subtopology A top s). +Axiom thm_K_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((forall t : A -> Prop, ((@SUBSET A t (@topspace A top)) /\ ((@SUBSET A t s) /\ (forall k : A -> Prop, (@compact_in A top k) -> @closed_in A (@subtopology A top (@INTER A k s)) (@INTER A k t)))) -> @closed_in A (@subtopology A top s) t) /\ (forall k : A -> Prop, (@compact_in A top k) -> @k_space A (@subtopology A top (@INTER A k s)))) -> @k_space A (@subtopology A top s). +Axiom thm_K_SPACE_SUBTOPOLOGY_OPEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((forall t : A -> Prop, ((@SUBSET A t (@topspace A top)) /\ ((@SUBSET A t s) /\ (forall k : A -> Prop, (@compact_in A top k) -> @open_in A (@subtopology A top (@INTER A k s)) (@INTER A k t)))) -> @open_in A (@subtopology A top s) t) /\ (forall k : A -> Prop, (@compact_in A top k) -> @k_space A (@subtopology A top (@INTER A k s)))) -> @k_space A (@subtopology A top s). +Axiom thm_K_SPACE_OPEN_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (((@kc_space A top) \/ ((@hausdorff_space A top) \/ (@regular_space A top))) /\ ((@k_space A top) /\ (@open_in A top s))) -> @k_space A (@subtopology A top s). +Axiom thm_K_KC_SPACE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@k_space A top) /\ ((@kc_space A top) /\ ((@open_in A top s) \/ (@closed_in A top s)))) -> (@k_space A (@subtopology A top s)) /\ (@kc_space A (@subtopology A top s)). +Axiom thm_K_SPACE_AS_QUOTIENT_EXPLICIT : forall {A : Type'}, forall top : Topology A, (@k_space A top) = (@quotient_map (prod (A -> Prop) A) A (@pair (Topology (prod (A -> Prop) A)) (Topology A) (@sum_topology A (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_1993 : A -> Prop => exists k : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_1993 (@compact_in A top k) k)) (@subtopology A top)) top) (@snd (A -> Prop) A)). +Axiom thm_K_SPACE_AS_QUOTIENT : forall {A : Type'}, forall top : Topology A, (@k_space A top) = (exists q : (prod (A -> Prop) A) -> A, exists top' : Topology (prod (A -> Prop) A), (@locally_compact_space (prod (A -> Prop) A) top') /\ (@quotient_map (prod (A -> Prop) A) A (@pair (Topology (prod (A -> Prop) A)) (Topology A) top' top) q)). +Axiom thm_K_SPACE_PROD_TOPOLOGY_LEFT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, ((@locally_compact_space A top) /\ (((@hausdorff_space A top) \/ (@regular_space A top)) /\ (@k_space B top'))) -> @k_space (prod A B) (@prod_topology A B top top'). +Axiom thm_K_SPACE_PROD_TOPOLOGY_RIGHT : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, ((@k_space A top) /\ ((@locally_compact_space B top') /\ ((@hausdorff_space B top') \/ (@regular_space B top')))) -> @k_space (prod A B) (@prod_topology A B top top'). +Axiom thm_CONTINUOUS_MAP_FROM_K_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@k_space A top) /\ (forall k : A -> Prop, (@compact_in A top k) -> @continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top k) top') f)) -> @continuous_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_CLOSED_MAP_INTO_K_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@k_space B top') /\ ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @closed_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_1998 : A => exists x : A, @SETSPEC A GEN_PVAR_1998 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x))) (@subtopology B top' k)) f))) -> @closed_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_OPEN_MAP_INTO_K_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@k_space B top') /\ ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @open_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_2000 : A => exists x : A, @SETSPEC A GEN_PVAR_2000 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x))) (@subtopology B top' k)) f))) -> @open_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_QUOTIENT_MAP_INTO_K_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@k_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @quotient_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_2005 : A => exists x : A, @SETSPEC A GEN_PVAR_2005 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x))) (@subtopology B top' k)) f)))) -> @quotient_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_QUOTIENT_MAP_INTO_K_SPACE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@k_space B top') /\ (@kc_space B top')) -> (@quotient_map A B (@pair (Topology A) (Topology B) top top') f) = ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @quotient_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_2006 : A => exists x : A, @SETSPEC A GEN_PVAR_2006 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x))) (@subtopology B top' k)) f))). +Axiom thm_OPEN_MAP_INTO_K_SPACE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@k_space B top') -> (@open_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @open_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_2007 : A => exists x : A, @SETSPEC A GEN_PVAR_2007 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x))) (@subtopology B top' k)) f)). +Axiom thm_CLOSED_MAP_INTO_K_SPACE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@k_space B top') -> (@closed_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @closed_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_2008 : A => exists x : A, @SETSPEC A GEN_PVAR_2008 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x))) (@subtopology B top' k)) f)). +Axiom thm_PROPER_MAP_INTO_K_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@k_space B top') /\ ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @proper_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_2009 : A => exists x : A, @SETSPEC A GEN_PVAR_2009 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x))) (@subtopology B top' k)) f))) -> @proper_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PROPER_MAP_INTO_K_SPACE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@k_space B top') -> (@proper_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @proper_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@GSPEC A (fun GEN_PVAR_2010 : A => exists x : A, @SETSPEC A GEN_PVAR_2010 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x))) (@subtopology B top' k)) f)). +Axiom thm_COMPACT_IMP_PROPER_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@k_space B top') /\ ((@kc_space B top') /\ ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) \/ (@kc_space A top)) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @compact_in A top (@GSPEC A (fun GEN_PVAR_2011 : A => exists x : A, @SETSPEC A GEN_PVAR_2011 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x))))))) -> @proper_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_PROPER_EQ_COMPACT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@k_space B top') /\ ((@kc_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) \/ (@kc_space A top)))) -> (@proper_map A B (@pair (Topology A) (Topology B) top top') f) = ((@SUBSET B (@IMAGE A B f (@topspace A top)) (@topspace B top')) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @compact_in A top (@GSPEC A (fun GEN_PVAR_2012 : A => exists x : A, @SETSPEC A GEN_PVAR_2012 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x)))). +Axiom thm_COMPACT_IMP_PERFECT_MAP : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@k_space B top') /\ ((@kc_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (((@IMAGE A B f (@topspace A top)) = (@topspace B top')) /\ (forall k : B -> Prop, (@compact_in B top' k) -> @compact_in A top (@GSPEC A (fun GEN_PVAR_2013 : A => exists x : A, @SETSPEC A GEN_PVAR_2013 ((@IN A x (@topspace A top)) /\ (@IN B (f x) k)) x))))))) -> @perfect_map A B (@pair (Topology A) (Topology B) top top') f. +Axiom thm_OPEN_IN_KIFICATION : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, (@open_in A (@kification A top) u) = ((@SUBSET A u (@topspace A top)) /\ (forall k : A -> Prop, (@compact_in A top k) -> @open_in A (@subtopology A top k) (@INTER A k u))). +Axiom thm_OPEN_IN_KIFICATION_FINER : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@open_in A top s) -> @open_in A (@kification A top) s. +Axiom thm_TOPSPACE_KIFICATION : forall {A : Type'}, forall top : Topology A, (@topspace A (@kification A top)) = (@topspace A top). +Axiom thm_CLOSED_IN_KIFICATION : forall {A : Type'}, forall top : Topology A, forall u : A -> Prop, (@closed_in A (@kification A top) u) = ((@SUBSET A u (@topspace A top)) /\ (forall k : A -> Prop, (@compact_in A top k) -> @closed_in A (@subtopology A top k) (@INTER A k u))). +Axiom thm_CLOSED_IN_KIFICATION_FINER : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@closed_in A top s) -> @closed_in A (@kification A top) s. +Axiom thm_KIFICATION_EQ_SELF : forall {A : Type'}, forall top : Topology A, ((@kification A top) = top) = (@k_space A top). +Axiom thm_COMPACT_IN_KIFICATION : forall {A : Type'}, forall top : Topology A, forall k : A -> Prop, (@compact_in A (@kification A top) k) = (@compact_in A top k). +Axiom thm_COMPACT_SPACE_KIFICATION : forall {A : Type'}, forall top : Topology A, (@compact_space A (@kification A top)) = (@compact_space A top). +Axiom thm_KIFICATION_KIFICATION : forall {A : Type'}, forall top : Topology A, (@kification A (@kification A top)) = (@kification A top). +Axiom thm_K_SPACE_KIFICATION : forall {A : Type'}, forall top : Topology A, @k_space A (@kification A top). +Axiom thm_CONTINUOUS_MAP_INTO_KIFICATION : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@k_space A top) -> (@continuous_map A B (@pair (Topology A) (Topology B) top (@kification B top')) f) = (@continuous_map A B (@pair (Topology A) (Topology B) top top') f). +Axiom thm_CONTINUOUS_MAP_FROM_KIFICATION : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) -> @continuous_map A B (@pair (Topology A) (Topology B) (@kification A top) top') f. +Axiom thm_CONTINUOUS_MAP_KIFICATION : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) -> @continuous_map A B (@pair (Topology A) (Topology B) (@kification A top) (@kification B top')) f. +Axiom thm_SUBTOPOLOGY_KIFICATION_COMPACT : forall {A : Type'}, forall top : Topology A, forall k : A -> Prop, (@compact_in A top k) -> (@subtopology A (@kification A top) k) = (@subtopology A top k). +Axiom thm_SUBTOPOLOGY_KIFICATION_FINER : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall u : A -> Prop, (@open_in A (@subtopology A (@kification A top) s) u) -> @open_in A (@kification A (@subtopology A top s)) u. +Axiom thm_PROPER_MAP_FROM_KIFICATION : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@k_space B top') -> (@proper_map A B (@pair (Topology A) (Topology B) (@kification A top) top') f) = (@proper_map A B (@pair (Topology A) (Topology B) top top') f). +Axiom thm_PERFECT_MAP_FROM_KIFICATION : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@k_space B top') /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> @perfect_map A B (@pair (Topology A) (Topology B) (@kification A top) top') f. +Axiom thm_K_SPACE_PERFECT_MAP_IMAGE_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@hausdorff_space A top) /\ (@perfect_map A B (@pair (Topology A) (Topology B) top top') f)) -> (@k_space A top) = (@k_space B top'). +Axiom thm_ONE_POINT_COMPACTIFICATION_DENSE : forall {A : Type'}, forall top : Topology A, forall a : A, ((@compact_space A top) /\ (~ (@compact_in A top (@DELETE A (@topspace A top) a)))) -> (@closure_of A top (@DELETE A (@topspace A top) a)) = (@topspace A top). +Axiom thm_ONE_POINT_COMPACTIFICATION_INTERIOR : forall {A : Type'}, forall top : Topology A, forall a : A, ((@compact_space A top) /\ (~ (@compact_in A top (@DELETE A (@topspace A top) a)))) -> (@interior_of A top (@INSERT A a (@EMPTY A))) = (@EMPTY A). +Axiom thm_KC_SPACE_ONE_POINT_COMPACTIFICATION_GEN : forall {A : Type'}, forall top : Topology A, forall a : A, (@compact_space A top) -> (@kc_space A top) = ((@open_in A top (@DELETE A (@topspace A top) a)) /\ ((forall k : A -> Prop, ((@compact_in A top k) /\ (~ (@IN A a k))) -> @closed_in A top k) /\ ((@k_space A (@subtopology A top (@DELETE A (@topspace A top) a))) /\ (@kc_space A (@subtopology A top (@DELETE A (@topspace A top) a)))))). +Axiom thm_alexandroff_compactification : forall {A : Type'}, forall top : Topology A, (@alexandroff_compactification A top) = (@topology (Datatypes.sum A unit) (@UNION ((Datatypes.sum A unit) -> Prop) (@GSPEC ((Datatypes.sum A unit) -> Prop) (fun GEN_PVAR_2016 : (Datatypes.sum A unit) -> Prop => exists u : A -> Prop, @SETSPEC ((Datatypes.sum A unit) -> Prop) GEN_PVAR_2016 (@open_in A top u) (@IMAGE A (Datatypes.sum A unit) (@inl A unit) u))) (@GSPEC ((Datatypes.sum A unit) -> Prop) (fun GEN_PVAR_2017 : (Datatypes.sum A unit) -> Prop => exists c : A -> Prop, @SETSPEC ((Datatypes.sum A unit) -> Prop) GEN_PVAR_2017 ((@compact_in A top c) /\ (@closed_in A top c)) (@INSERT (Datatypes.sum A unit) (@inr A unit tt) (@IMAGE A (Datatypes.sum A unit) (@inl A unit) (@DIFF A (@topspace A top) c))))))). +Axiom thm_OPEN_IN_ALEXANDROFF_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, forall v : (Datatypes.sum A unit) -> Prop, (@open_in (Datatypes.sum A unit) (@alexandroff_compactification A top) v) = ((exists u : A -> Prop, (@open_in A top u) /\ (v = (@IMAGE A (Datatypes.sum A unit) (@inl A unit) u))) \/ (exists c : A -> Prop, (@compact_in A top c) /\ ((@closed_in A top c) /\ (v = (@INSERT (Datatypes.sum A unit) (@inr A unit tt) (@IMAGE A (Datatypes.sum A unit) (@inl A unit) (@DIFF A (@topspace A top) c))))))). +Axiom thm_TOPSPACE_ALEXANDROFF_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, (@topspace (Datatypes.sum A unit) (@alexandroff_compactification A top)) = (@INSERT (Datatypes.sum A unit) (@inr A unit tt) (@IMAGE A (Datatypes.sum A unit) (@inl A unit) (@topspace A top))). +Axiom thm_CLOSED_IN_ALEXANDROFF_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, forall c : (Datatypes.sum A unit) -> Prop, (@closed_in (Datatypes.sum A unit) (@alexandroff_compactification A top) c) = ((exists k : A -> Prop, (@compact_in A top k) /\ ((@closed_in A top k) /\ (c = (@IMAGE A (Datatypes.sum A unit) (@inl A unit) k)))) \/ (exists u : A -> Prop, (@open_in A top u) /\ (c = (@DIFF (Datatypes.sum A unit) (@topspace (Datatypes.sum A unit) (@alexandroff_compactification A top)) (@IMAGE A (Datatypes.sum A unit) (@inl A unit) u))))). +Axiom thm_CLOSED_IN_ALEXANDROFF_COMPACTIFICATION_IMAGE_INL : forall {A : Type'}, forall top : Topology A, forall k : A -> Prop, (@closed_in (Datatypes.sum A unit) (@alexandroff_compactification A top) (@IMAGE A (Datatypes.sum A unit) (@inl A unit) k)) = ((@compact_in A top k) /\ (@closed_in A top k)). +Axiom thm_OPEN_MAP_INL : forall {A : Type'}, forall top : Topology A, @open_map A (Datatypes.sum A unit) (@pair (Topology A) (Topology (Datatypes.sum A unit)) top (@alexandroff_compactification A top)) (@inl A unit). +Axiom thm_CONTINUOUS_MAP_INL : forall {A : Type'}, forall top : Topology A, @continuous_map A (Datatypes.sum A unit) (@pair (Topology A) (Topology (Datatypes.sum A unit)) top (@alexandroff_compactification A top)) (@inl A unit). +Axiom thm_EMBEDDING_MAP_INL : forall {A : Type'}, forall top : Topology A, @embedding_map A (Datatypes.sum A unit) (@pair (Topology A) (Topology (Datatypes.sum A unit)) top (@alexandroff_compactification A top)) (@inl A unit). +Axiom thm_COMPACT_SPACE_ALEXANDROFF_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, @compact_space (Datatypes.sum A unit) (@alexandroff_compactification A top). +Axiom thm_TOPSPACE_ALEXANDROFF_COMPACTIFICATION_DELETE : forall {A : Type'}, forall top : Topology A, (@DELETE (Datatypes.sum A unit) (@topspace (Datatypes.sum A unit) (@alexandroff_compactification A top)) (@inr A unit tt)) = (@IMAGE A (Datatypes.sum A unit) (@inl A unit) (@topspace A top)). +Axiom thm_ALEXANDROFF_COMPACTIFICATION_DENSE : forall {A : Type'}, forall top : Topology A, (~ (@compact_space A top)) -> (@closure_of (Datatypes.sum A unit) (@alexandroff_compactification A top) (@IMAGE A (Datatypes.sum A unit) (@inl A unit) (@topspace A top))) = (@topspace (Datatypes.sum A unit) (@alexandroff_compactification A top)). +Axiom thm_T0_SPACE_ONE_POINT_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, forall a : A, ((@compact_space A top) /\ (@open_in A top (@DELETE A (@topspace A top) a))) -> (@t0_space A top) = (@t0_space A (@subtopology A top (@DELETE A (@topspace A top) a))). +Axiom thm_T0_SPACE_ALEXANDROFF_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, (@t0_space (Datatypes.sum A unit) (@alexandroff_compactification A top)) = (@t0_space A top). +Axiom thm_T1_SPACE_ONE_POINT_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, forall a : A, ((@open_in A top (@DELETE A (@topspace A top) a)) /\ (forall k : A -> Prop, ((@compact_in A (@subtopology A top (@DELETE A (@topspace A top) a)) k) /\ (@closed_in A (@subtopology A top (@DELETE A (@topspace A top) a)) k)) -> @closed_in A top k)) -> (@t1_space A top) = (@t1_space A (@subtopology A top (@DELETE A (@topspace A top) a))). +Axiom thm_T1_SPACE_ALEXANDROFF_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, (@t1_space (Datatypes.sum A unit) (@alexandroff_compactification A top)) = (@t1_space A top). +Axiom thm_KC_SPACE_ONE_POINT_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, forall a : A, ((@compact_space A top) /\ ((@open_in A top (@DELETE A (@topspace A top) a)) /\ (forall k : A -> Prop, ((@compact_in A (@subtopology A top (@DELETE A (@topspace A top) a)) k) /\ (@closed_in A (@subtopology A top (@DELETE A (@topspace A top) a)) k)) -> @closed_in A top k))) -> (@kc_space A top) = ((@k_space A (@subtopology A top (@DELETE A (@topspace A top) a))) /\ (@kc_space A (@subtopology A top (@DELETE A (@topspace A top) a)))). +Axiom thm_KC_SPACE_ALEXANDROFF_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, (@kc_space (Datatypes.sum A unit) (@alexandroff_compactification A top)) = ((@k_space A top) /\ (@kc_space A top)). +Axiom thm_REGULAR_SPACE_ONE_POINT_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, forall a : A, ((@compact_space A top) /\ ((@open_in A top (@DELETE A (@topspace A top) a)) /\ (forall k : A -> Prop, ((@compact_in A (@subtopology A top (@DELETE A (@topspace A top) a)) k) /\ (@closed_in A (@subtopology A top (@DELETE A (@topspace A top) a)) k)) -> @closed_in A top k))) -> (@regular_space A top) = ((@regular_space A (@subtopology A top (@DELETE A (@topspace A top) a))) /\ (@locally_compact_space A (@subtopology A top (@DELETE A (@topspace A top) a)))). +Axiom thm_REGULAR_SPACE_ALEXANDROFF_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, (@regular_space (Datatypes.sum A unit) (@alexandroff_compactification A top)) = ((@regular_space A top) /\ (@locally_compact_space A top)). +Axiom thm_HAUSDORFF_SPACE_ONE_POINT_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, forall a : A, ((@compact_space A top) /\ ((@open_in A top (@DELETE A (@topspace A top) a)) /\ (forall k : A -> Prop, ((@compact_in A (@subtopology A top (@DELETE A (@topspace A top) a)) k) /\ (@closed_in A (@subtopology A top (@DELETE A (@topspace A top) a)) k)) -> @closed_in A top k))) -> (@hausdorff_space A top) = ((@hausdorff_space A (@subtopology A top (@DELETE A (@topspace A top) a))) /\ (@locally_compact_space A (@subtopology A top (@DELETE A (@topspace A top) a)))). +Axiom thm_HAUSDORFF_SPACE_ALEXANDROFF_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, (@hausdorff_space (Datatypes.sum A unit) (@alexandroff_compactification A top)) = ((@hausdorff_space A top) /\ (@locally_compact_space A top)). +Axiom thm_COMPLETELY_REGULAR_SPACE_ALEXANDROFF_COMPACTIFICATION : forall {A : Type'}, forall top : Topology A, (@completely_regular_space (Datatypes.sum A unit) (@alexandroff_compactification A top)) = ((@completely_regular_space A top) /\ (@locally_compact_space A top)). +Axiom thm_HAUSDORFF_SPACE_ONE_POINT_COMPACTIFICATION_ASYMMETRIC_PROD : forall {A : Type'}, forall top : Topology A, forall a : A, (@compact_space A top) -> (@hausdorff_space A top) = ((@kc_space (prod A A) (@prod_topology A A top (@subtopology A top (@DELETE A (@topspace A top) a)))) /\ (@k_space (prod A A) (@prod_topology A A top (@subtopology A top (@DELETE A (@topspace A top) a))))). +Axiom thm_HAUSDORFF_SPACE_ALEXANDROFF_COMPACTIFICATION_ASYMMETRIC_PROD : forall {A : Type'}, forall top : Topology A, (@hausdorff_space (Datatypes.sum A unit) (@alexandroff_compactification A top)) = ((@kc_space (prod (Datatypes.sum A unit) A) (@prod_topology (Datatypes.sum A unit) A (@alexandroff_compactification A top) top)) /\ (@k_space (prod (Datatypes.sum A unit) A) (@prod_topology (Datatypes.sum A unit) A (@alexandroff_compactification A top) top))). +Axiom thm_KC_SPACE_AS_COMPACTIFICATION_UNIQUE : forall {A : Type'}, forall top : Topology A, forall a : A, ((@kc_space A top) /\ (@compact_space A top)) -> forall u : A -> Prop, (@open_in A top u) = (@COND Prop (@IN A a u) ((@SUBSET A u (@topspace A top)) /\ (@compact_in A top (@DIFF A (@topspace A top) u))) (@open_in A (@subtopology A top (@DELETE A (@topspace A top) a)) u)). +Axiom thm_KC_SPACE_AS_COMPACTIFICATION_UNIQUE_EXPLICIT : forall {A : Type'}, forall top : Topology A, forall a : A, ((@kc_space A top) /\ (@compact_space A top)) -> forall u : A -> Prop, (@open_in A top u) = (@COND Prop (@IN A a u) ((@SUBSET A u (@topspace A top)) /\ ((@compact_in A (@subtopology A top (@DELETE A (@topspace A top) a)) (@DIFF A (@topspace A top) u)) /\ (@closed_in A (@subtopology A top (@DELETE A (@topspace A top) a)) (@DIFF A (@topspace A top) u)))) (@open_in A (@subtopology A top (@DELETE A (@topspace A top) a)) u)). +Axiom thm_ALEXANDROFF_COMPACTIFICATION_UNIQUE : forall {A : Type'}, forall top : Topology A, forall a : A, ((@kc_space A top) /\ ((@compact_space A top) /\ (@IN A a (@topspace A top)))) -> @homeomorphic_space (Datatypes.sum A unit) A (@alexandroff_compactification A (@subtopology A top (@DELETE A (@topspace A top) a))) top. +Axiom thm_homotopic_with : forall {_485959 _485962 : Type'}, forall X : Topology _485962, forall Y : Topology _485959, forall p : _485962 -> _485959, forall q : _485962 -> _485959, forall P : (_485962 -> _485959) -> Prop, (@homotopic_with _485959 _485962 P (@pair (Topology _485962) (Topology _485959) X Y) p q) = (exists h : (prod R _485962) -> _485959, (@continuous_map (prod R _485962) _485959 (@pair (Topology (prod R _485962)) (Topology _485959) (@prod_topology R _485962 (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) X) Y) h) /\ ((forall x : _485962, (h (@pair R _485962 (R_of_N (NUMERAL 0%N)) x)) = (p x)) /\ ((forall x : _485962, (h (@pair R _485962 (R_of_N (NUMERAL (BIT1 0%N))) x)) = (q x)) /\ (forall t : R, (@IN R t (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) -> P (fun x : _485962 => h (@pair R _485962 t x)))))). +Axiom thm_HOMOTOPIC_WITH : forall {A B : Type'}, forall P : (A -> B) -> Prop, forall X : Topology A, forall Y : Topology B, forall p : A -> B, forall q : A -> B, (forall h : A -> B, forall k : A -> B, (forall x : A, (@IN A x (@topspace A X)) -> (h x) = (k x)) -> (P h) = (P k)) -> (@homotopic_with B A P (@pair (Topology A) (Topology B) X Y) p q) = (exists h : (prod R A) -> B, (@continuous_map (prod R A) B (@pair (Topology (prod R A)) (Topology B) (@prod_topology R A (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) X) Y) h) /\ ((forall x : A, (@IN A x (@topspace A X)) -> (h (@pair R A (R_of_N (NUMERAL 0%N)) x)) = (p x)) /\ ((forall x : A, (@IN A x (@topspace A X)) -> (h (@pair R A (R_of_N (NUMERAL (BIT1 0%N))) x)) = (q x)) /\ (forall t : R, (@IN R t (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) -> P (fun x : A => h (@pair R A t x)))))). +Axiom thm_HOMOTOPIC_WITH_IMP_CONTINUOUS_MAPS : forall {A B : Type'}, forall P : (A -> B) -> Prop, forall X : Topology A, forall Y : Topology B, forall p : A -> B, forall q : A -> B, (@homotopic_with B A P (@pair (Topology A) (Topology B) X Y) p q) -> (@continuous_map A B (@pair (Topology A) (Topology B) X Y) p) /\ (@continuous_map A B (@pair (Topology A) (Topology B) X Y) q). +Axiom thm_HOMOTOPIC_WITH_IMP_PROPERTY : forall {A B : Type'}, forall P : (A -> B) -> Prop, forall X : Topology A, forall Y : Topology B, forall f : A -> B, forall g : A -> B, (@homotopic_with B A P (@pair (Topology A) (Topology B) X Y) f g) -> (P f) /\ (P g). +Axiom thm_HOMOTOPIC_WITH_EQUAL : forall {A B : Type'}, forall P : (A -> B) -> Prop, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, ((P f) /\ ((P g) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (forall x : A, (@IN A x (@topspace A top)) -> (f x) = (g x))))) -> @homotopic_with B A P (@pair (Topology A) (Topology B) top top') f g. +Axiom thm_HOMOTOPIC_WITH_REFL : forall {A B : Type'}, forall P : (A -> B) -> Prop, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homotopic_with B A P (@pair (Topology A) (Topology B) top top') f f) = ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (P f)). +Axiom thm_HOMOTOPIC_WITH_SYM : forall {A B : Type'}, forall P : (A -> B) -> Prop, forall X : Topology A, forall Y : Topology B, forall f : A -> B, forall g : A -> B, (@homotopic_with B A P (@pair (Topology A) (Topology B) X Y) f g) = (@homotopic_with B A P (@pair (Topology A) (Topology B) X Y) g f). +Axiom thm_HOMOTOPIC_WITH_TRANS : forall {A B : Type'}, forall P : (A -> B) -> Prop, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, forall h : A -> B, ((@homotopic_with B A P (@pair (Topology A) (Topology B) top top') f g) /\ (@homotopic_with B A P (@pair (Topology A) (Topology B) top top') g h)) -> @homotopic_with B A P (@pair (Topology A) (Topology B) top top') f h. +Axiom thm_HOMOTOPIC_WITH_COMPOSE_CONTINUOUS_MAP_LEFT : forall {A B C : Type'}, forall p : (A -> B) -> Prop, forall q : (A -> C) -> Prop, forall f : A -> B, forall g : A -> B, forall h : B -> C, forall top1 : Topology A, forall top2 : Topology B, forall top3 : Topology C, ((@homotopic_with B A p (@pair (Topology A) (Topology B) top1 top2) f g) /\ ((@continuous_map B C (@pair (Topology B) (Topology C) top2 top3) h) /\ (forall j : A -> B, (p j) -> q (@o A B C h j)))) -> @homotopic_with C A q (@pair (Topology A) (Topology C) top1 top3) (@o A B C h f) (@o A B C h g). +Axiom thm_HOMOTOPIC_COMPOSE_CONTINUOUS_MAP_LEFT : forall {A B C : Type'}, forall f : A -> B, forall g : A -> B, forall h : B -> C, forall top1 : Topology A, forall top2 : Topology B, forall top3 : Topology C, ((@homotopic_with B A (fun k : A -> B => True) (@pair (Topology A) (Topology B) top1 top2) f g) /\ (@continuous_map B C (@pair (Topology B) (Topology C) top2 top3) h)) -> @homotopic_with C A (fun k : A -> C => True) (@pair (Topology A) (Topology C) top1 top3) (@o A B C h f) (@o A B C h g). +Axiom thm_HOMOTOPIC_WITH_COMPOSE_CONTINUOUS_MAP_RIGHT : forall {A B C : Type'}, forall p : (B -> C) -> Prop, forall q : (A -> C) -> Prop, forall f : B -> C, forall g : B -> C, forall h : A -> B, forall top1 : Topology A, forall top2 : Topology B, forall top3 : Topology C, ((@homotopic_with C B p (@pair (Topology B) (Topology C) top2 top3) f g) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top1 top2) h) /\ (forall j : B -> C, (p j) -> q (@o A B C j h)))) -> @homotopic_with C A q (@pair (Topology A) (Topology C) top1 top3) (@o A B C f h) (@o A B C g h). +Axiom thm_HOMOTOPIC_COMPOSE_CONTINUOUS_MAP_RIGHT : forall {A B C : Type'}, forall f : B -> C, forall g : B -> C, forall h : A -> B, forall top1 : Topology A, forall top2 : Topology B, forall top3 : Topology C, ((@homotopic_with C B (fun k : B -> C => True) (@pair (Topology B) (Topology C) top2 top3) f g) /\ (@continuous_map A B (@pair (Topology A) (Topology B) top1 top2) h)) -> @homotopic_with C A (fun k : A -> C => True) (@pair (Topology A) (Topology C) top1 top3) (@o A B C f h) (@o A B C g h). +Axiom thm_HOMOTOPIC_FROM_SUBTOPOLOGY : forall {A B : Type'}, forall P : (A -> B) -> Prop, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, forall f : A -> B, forall g : A -> B, (@homotopic_with B A P (@pair (Topology A) (Topology B) top top') f g) -> @homotopic_with B A P (@pair (Topology A) (Topology B) (@subtopology A top s) top') f g. +Axiom thm_HOMOTOPIC_ON_EMPTY : forall {A B : Type'} (P : (A -> B) -> Prop), forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, ((@topspace A top) = (@EMPTY A)) -> (@homotopic_with B A P (@pair (Topology A) (Topology B) top top') f g) = ((P f) /\ (P g)). +Axiom thm_HOMOTOPIC_CONSTANT_MAPS : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall a : B, forall b : B, (@homotopic_with B A (fun x : A -> B => True) (@pair (Topology A) (Topology B) top top') (fun x : A => a) (fun x : A => b)) = (((@topspace A top) = (@EMPTY A)) \/ (@path_component_of B top' a b)). +Axiom thm_HOMOTOPIC_WITH_EQ : forall {A B : Type'}, forall P : (A -> B) -> Prop, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, forall f' : A -> B, forall g' : A -> B, ((@homotopic_with B A P (@pair (Topology A) (Topology B) top top') f g) /\ ((forall x : A, (@IN A x (@topspace A top)) -> ((f' x) = (f x)) /\ ((g' x) = (g x))) /\ (forall h : A -> B, forall k : A -> B, (forall x : A, (@IN A x (@topspace A top)) -> (h x) = (k x)) -> (P h) = (P k)))) -> @homotopic_with B A P (@pair (Topology A) (Topology B) top top') f' g'. +Axiom thm_HOMOTOPIC_WITH_PROD_TOPOLOGY : forall {A B C D : Type'}, forall p : (A -> B) -> Prop, forall q : (C -> D) -> Prop, forall r : ((prod A C) -> prod B D) -> Prop, forall top1 : Topology A, forall top1' : Topology B, forall top2 : Topology C, forall top2' : Topology D, forall f : A -> B, forall g : C -> D, forall f' : A -> B, forall g' : C -> D, ((@homotopic_with B A p (@pair (Topology A) (Topology B) top1 top1') f f') /\ ((@homotopic_with D C q (@pair (Topology C) (Topology D) top2 top2') g g') /\ (forall i : A -> B, forall j : C -> D, ((p i) /\ (q j)) -> r (@GABS ((prod A C) -> prod B D) (fun f'' : (prod A C) -> prod B D => forall x : A, forall y : C, @GEQ (prod B D) (f'' (@pair A C x y)) (@pair B D (i x) (j y))))))) -> @homotopic_with (prod B D) (prod A C) r (@pair (Topology (prod A C)) (Topology (prod B D)) (@prod_topology A C top1 top2) (@prod_topology B D top1' top2')) (fun z : prod A C => @pair B D (f (@fst A C z)) (g (@snd A C z))) (fun z : prod A C => @pair B D (f' (@fst A C z)) (g' (@snd A C z))). +Axiom thm_HOMOTOPIC_WITH_PRODUCT_TOPOLOGY : forall {A B K : Type'}, forall k : K -> Prop, forall tops : K -> Topology A, forall tops' : K -> Topology B, forall p : K -> (A -> B) -> Prop, forall q : ((K -> A) -> K -> B) -> Prop, forall f : K -> A -> B, forall g : K -> A -> B, ((forall i : K, (@IN K i k) -> @homotopic_with B A (p i) (@pair (Topology A) (Topology B) (tops i) (tops' i)) (f i) (g i)) /\ (forall h : K -> A -> B, (forall i : K, (@IN K i k) -> p i (h i)) -> q (fun x : K -> A => @RESTRICTION K B k (fun i : K => h i (x i))))) -> @homotopic_with (K -> B) (K -> A) q (@pair (Topology (K -> A)) (Topology (K -> B)) (@product_topology A K k tops) (@product_topology B K k tops')) (fun z : K -> A => @RESTRICTION K B k (fun i : K => f i (z i))) (fun z : K -> A => @RESTRICTION K B k (fun i : K => g i (z i))). +Axiom thm_homotopy_equivalent_space : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homotopy_equivalent_space A B top top') = (exists f : A -> B, exists g : B -> A, (@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) top' top) g) /\ ((@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (@o A B A g f) (@I A)) /\ (@homotopic_with B B (fun x : B -> B => True) (@pair (Topology B) (Topology B) top' top') (@o B A B f g) (@I B))))). +Axiom thm_HOMEOMORPHIC_IMP_HOMOTOPY_EQUIVALENT_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> @homotopy_equivalent_space A B top top'. +Axiom thm_HOMOTOPY_EQUIVALENT_SPACE_REFL : forall {A : Type'}, forall top : Topology A, @homotopy_equivalent_space A A top top. +Axiom thm_HOMOTOPY_EQUIVALENT_SPACE_SYM : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homotopy_equivalent_space A B top top') = (@homotopy_equivalent_space B A top' top). +Axiom thm_HOMOTOPY_EQUIVALENT_SPACE_TRANS : forall {A B C : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall top3 : Topology C, ((@homotopy_equivalent_space A B top1 top2) /\ (@homotopy_equivalent_space B C top2 top3)) -> @homotopy_equivalent_space A C top1 top3. +Axiom thm_DEFORMATION_RETRACTION_IMP_HOMOTOPY_EQUIVALENT_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, forall s : B -> A, ((@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (@o A B A s r) (@I A)) /\ (@retraction_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) r s))) -> @homotopy_equivalent_space A B top top'. +Axiom thm_DEFORMATION_RETRACT_IMP_HOMOTOPY_EQUIVALENT_SPACE : forall {A : Type'}, forall top : Topology A, forall top' : Topology A, forall r : A -> A, ((@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) r (@I A)) /\ (@retraction_maps A A (@pair (Topology A) (Topology A) top top') (@pair (A -> A) (A -> A) r (@I A)))) -> @homotopy_equivalent_space A A top top'. +Axiom thm_DEFORMATION_RETRACT_OF_SPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@SUBSET A s (@topspace A top)) /\ (exists r : A -> A, (@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (@I A) r) /\ (@retraction_maps A A (@pair (Topology A) (Topology A) top (@subtopology A top s)) (@pair (A -> A) (A -> A) r (@I A))))) = ((@retract_of_space A s top) /\ (exists f : A -> A, (@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (@I A) f) /\ (@SUBSET A (@IMAGE A A f (@topspace A top)) s))). +Axiom thm_contractible_space : forall {A : Type'}, forall top : Topology A, (@contractible_space A top) = (exists a : A, @homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (fun x : A => x) (fun x : A => a)). +Axiom thm_CONTRACTIBLE_SPACE_EMPTY : forall {A : Type'}, forall top : Topology A, ((@topspace A top) = (@EMPTY A)) -> @contractible_space A top. +Axiom thm_CONTRACTIBLE_SPACE_SING : forall {A : Type'}, forall top : Topology A, forall a : A, ((@topspace A top) = (@INSERT A a (@EMPTY A))) -> @contractible_space A top. +Axiom thm_CONTRACTIBLE_SPACE_SUBSET_SING : forall {A : Type'}, forall top : Topology A, forall a : A, (@SUBSET A (@topspace A top) (@INSERT A a (@EMPTY A))) -> @contractible_space A top. +Axiom thm_CONTRACTIBLE_SPACE_SUBTOPOLOGY_SING : forall {A : Type'}, forall top : Topology A, forall a : A, @contractible_space A (@subtopology A top (@INSERT A a (@EMPTY A))). +Axiom thm_CONTRACTIBLE_SPACE : forall {A : Type'}, forall top : Topology A, (@contractible_space A top) = (((@topspace A top) = (@EMPTY A)) \/ (exists a : A, (@IN A a (@topspace A top)) /\ (@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (fun x : A => x) (fun x : A => a)))). +Axiom thm_CONTRACTIBLE_IMP_PATH_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, (@contractible_space A top) -> @path_connected_space A top. +Axiom thm_CONTRACTIBLE_IMP_CONNECTED_SPACE : forall {A : Type'}, forall top : Topology A, (@contractible_space A top) -> @connected_space A top. +Axiom thm_CONTRACTIBLE_SPACE_ALT : forall {A : Type'}, forall top : Topology A, (@contractible_space A top) = (forall a : A, (@IN A a (@topspace A top)) -> @homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (fun x : A => x) (fun x : A => a)). +Axiom thm_NULLHOMOTOPIC_THROUGH_CONTRACTIBLE_SPACE : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall top1 : Topology A, forall top2 : Topology B, forall top3 : Topology C, ((@continuous_map A B (@pair (Topology A) (Topology B) top1 top2) f) /\ ((@continuous_map B C (@pair (Topology B) (Topology C) top2 top3) g) /\ (@contractible_space B top2))) -> exists c : C, @homotopic_with C A (fun h : A -> C => True) (@pair (Topology A) (Topology C) top1 top3) (@o A B C g f) (fun x : A => c). +Axiom thm_NULLHOMOTOPIC_INTO_CONTRACTIBLE_SPACE : forall {A B : Type'}, forall f : A -> B, forall top1 : Topology A, forall top2 : Topology B, ((@continuous_map A B (@pair (Topology A) (Topology B) top1 top2) f) /\ (@contractible_space B top2)) -> exists c : B, @homotopic_with B A (fun h : A -> B => True) (@pair (Topology A) (Topology B) top1 top2) f (fun x : A => c). +Axiom thm_NULLHOMOTOPIC_FROM_CONTRACTIBLE_SPACE : forall {A B : Type'}, forall f : A -> B, forall top1 : Topology A, forall top2 : Topology B, ((@continuous_map A B (@pair (Topology A) (Topology B) top1 top2) f) /\ (@contractible_space A top1)) -> exists c : B, @homotopic_with B A (fun h : A -> B => True) (@pair (Topology A) (Topology B) top1 top2) f (fun x : A => c). +Axiom thm_HOMOTOPIC_THROUGH_CONTRACTIBLE_SPACE : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall f' : A -> B, forall g' : B -> C, forall top1 : Topology A, forall top2 : Topology B, forall top3 : Topology C, ((@continuous_map A B (@pair (Topology A) (Topology B) top1 top2) f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top1 top2) f') /\ ((@continuous_map B C (@pair (Topology B) (Topology C) top2 top3) g) /\ ((@continuous_map B C (@pair (Topology B) (Topology C) top2 top3) g') /\ ((@contractible_space B top2) /\ (@path_connected_space C top3)))))) -> @homotopic_with C A (fun h : A -> C => True) (@pair (Topology A) (Topology C) top1 top3) (@o A B C g f) (@o A B C g' f'). +Axiom thm_HOMOTOPIC_FROM_CONTRACTIBLE_SPACE : forall {A B : Type'}, forall f : A -> B, forall g : A -> B, forall top : Topology A, forall top' : Topology B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') g) /\ ((@contractible_space A top) /\ (@path_connected_space B top')))) -> @homotopic_with B A (fun x : A -> B => True) (@pair (Topology A) (Topology B) top top') f g. +Axiom thm_HOMOTOPIC_INTO_CONTRACTIBLE_SPACE : forall {A B : Type'}, forall f : A -> B, forall g : A -> B, forall top : Topology A, forall top' : Topology B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') g) /\ (@contractible_space B top'))) -> @homotopic_with B A (fun x : A -> B => True) (@pair (Topology A) (Topology B) top top') f g. +Axiom thm_HOMOTOPY_DOMINATED_CONTRACTIBILITY : forall {A B : Type'}, forall f : A -> B, forall g : B -> A, forall top : Topology A, forall top' : Topology B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) top' top) g) /\ ((@homotopic_with B B (fun x : B -> B => True) (@pair (Topology B) (Topology B) top' top') (@o B A B f g) (@I B)) /\ (@contractible_space A top)))) -> @contractible_space B top'. +Axiom thm_HOMOTOPY_EQUIVALENT_SPACE_CONTRACTIBILITY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homotopy_equivalent_space A B top top') -> (@contractible_space A top) = (@contractible_space B top'). +Axiom thm_HOMEOMORPHIC_SPACE_CONTRACTIBILITY : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@contractible_space A top) = (@contractible_space B top'). +Axiom thm_CONTRACTIBLE_EQ_HOMOTOPY_EQUIVALENT_SINGLETON_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, (@contractible_space A top) = (((@topspace A top) = (@EMPTY A)) \/ (exists a : A, (@IN A a (@topspace A top)) /\ (@homotopy_equivalent_space A A top (@subtopology A top (@INSERT A a (@EMPTY A)))))). +Axiom thm_CONTRACTIBLE_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@contractible_space A top)) -> @contractible_space B top'. +Axiom thm_CONTRACTIBLE_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@contractible_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace A top1) = (@EMPTY A)) \/ (((@topspace B top2) = (@EMPTY B)) \/ ((@contractible_space A top1) /\ (@contractible_space B top2)))). +Axiom thm_CONTRACTIBLE_SPACE_PRODUCT_TOPOLOGY : forall {A K : Type'}, forall k : K -> Prop, forall tops : K -> Topology A, (@contractible_space (K -> A) (@product_topology A K k tops)) = (((@topspace (K -> A) (@product_topology A K k tops)) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @contractible_space A (tops i))). +Axiom thm_CONTRACTIBLE_SPACE_SUBTOPOLOGY_EUCLIDEANREAL : forall s : R -> Prop, (@contractible_space R (@subtopology R euclideanreal s)) = (is_realinterval s). +Axiom thm_CONTRACTIBLE_SPACE_EUCLIDEANREAL : @contractible_space R euclideanreal. +Axiom thm_completely_metrizable_space : forall {_489462 : Type'}, forall top : Topology _489462, (@completely_metrizable_space _489462 top) = (exists m : Metric _489462, (@mcomplete _489462 m) /\ (top = (@mtopology _489462 m))). +Axiom thm_COMPLETELY_METRIZABLE_IMP_METRIZABLE_SPACE : forall {A : Type'}, forall top : Topology A, (@completely_metrizable_space A top) -> @metrizable_space A top. +Axiom thm_FORALL_MCOMPLETE_TOPOLOGY : forall {A : Type'}, forall P : (Topology A) -> (A -> Prop) -> Prop, (forall m : Metric A, (@mcomplete A m) -> P (@mtopology A m) (@mspace A m)) = (forall top : Topology A, (@completely_metrizable_space A top) -> P top (@topspace A top)). +Axiom thm_FORALL_COMPLETELY_METRIZABLE_SPACE : forall {A : Type'} (P : (Topology A) -> (A -> Prop) -> Prop), (forall top : Topology A, (@completely_metrizable_space A top) -> P top (@topspace A top)) = (forall m : Metric A, (@mcomplete A m) -> P (@mtopology A m) (@mspace A m)). +Axiom thm_EXISTS_COMPLETELY_METRIZABLE_SPACE : forall {A : Type'}, forall P : (Topology A) -> (A -> Prop) -> Prop, (exists top : Topology A, (@completely_metrizable_space A top) /\ (P top (@topspace A top))) = (exists m : Metric A, (@mcomplete A m) /\ (P (@mtopology A m) (@mspace A m))). +Axiom thm_COMPLETELY_METRIZABLE_SPACE_MTOPOLOGY : forall {A : Type'}, forall m : Metric A, (@mcomplete A m) -> @completely_metrizable_space A (@mtopology A m). +Axiom thm_COMPLETELY_METRIZABLE_SPACE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @completely_metrizable_space A (@discrete_topology A u). +Axiom thm_COMPLETELY_METRIZABLE_SPACE_EUCLIDEANREAL : @completely_metrizable_space R euclideanreal. +Axiom thm_COMPLETELY_METRIZABLE_SPACE_CLOSED_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@completely_metrizable_space A top) /\ (@closed_in A top s)) -> @completely_metrizable_space A (@subtopology A top s). +Axiom thm_HOMEOMORPHIC_COMPLETELY_METRIZABLE_SPACE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> (@completely_metrizable_space A top) = (@completely_metrizable_space B top'). +Axiom thm_COMPLETELY_METRIZABLE_SPACE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@completely_metrizable_space A top)) -> @completely_metrizable_space B top'. +Axiom thm_prod_metric : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, (@prod_metric A B m1 m2) = (@metric (prod A B) (@pair ((prod A B) -> Prop) ((prod (prod A B) (prod A B)) -> R) (@CROSS A B (@mspace A m1) (@mspace B m2)) (@GABS ((prod (prod A B) (prod A B)) -> R) (fun f : (prod (prod A B) (prod A B)) -> R => forall x : A, forall y : B, forall x' : A, forall y' : B, @GEQ R (f (@pair (prod A B) (prod A B) (@pair A B x y) (@pair A B x' y'))) (sqrt (Rplus (real_pow (@mdist A m1 (@pair A A x x')) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@mdist B m2 (@pair B B y y')) (NUMERAL (BIT0 (BIT1 0%N)))))))))). +Axiom thm_PROD_METRIC : forall {A B : Type'}, (forall m1 : Metric A, forall m2 : Metric B, (@mspace (prod A B) (@prod_metric A B m1 m2)) = (@CROSS A B (@mspace A m1) (@mspace B m2))) /\ (forall m1 : Metric A, forall m2 : Metric B, (@mdist (prod A B) (@prod_metric A B m1 m2)) = (@GABS ((prod (prod A B) (prod A B)) -> R) (fun f : (prod (prod A B) (prod A B)) -> R => forall x : A, forall y : B, forall x' : A, forall y' : B, @GEQ R (f (@pair (prod A B) (prod A B) (@pair A B x y) (@pair A B x' y'))) (sqrt (Rplus (real_pow (@mdist A m1 (@pair A A x x')) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@mdist B m2 (@pair B B y y')) (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_COMPONENT_LE_PROD_METRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall x1 : A, forall y1 : B, forall x2 : A, forall y2 : B, (Rle (@mdist A m1 (@pair A A x1 x2)) (@mdist (prod A B) (@prod_metric A B m1 m2) (@pair (prod A B) (prod A B) (@pair A B x1 y1) (@pair A B x2 y2)))) /\ (Rle (@mdist B m2 (@pair B B y1 y2)) (@mdist (prod A B) (@prod_metric A B m1 m2) (@pair (prod A B) (prod A B) (@pair A B x1 y1) (@pair A B x2 y2)))). +Axiom thm_PROD_METRIC_LE_COMPONENTS : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall x1 : A, forall y1 : B, forall x2 : A, forall y2 : B, ((@IN A x1 (@mspace A m1)) /\ ((@IN A x2 (@mspace A m1)) /\ ((@IN B y1 (@mspace B m2)) /\ (@IN B y2 (@mspace B m2))))) -> Rle (@mdist (prod A B) (@prod_metric A B m1 m2) (@pair (prod A B) (prod A B) (@pair A B x1 y1) (@pair A B x2 y2))) (Rplus (@mdist A m1 (@pair A A x1 x2)) (@mdist B m2 (@pair B B y1 y2))). +Axiom thm_MBALL_PROD_METRIC_SUBSET : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall x : A, forall y : B, forall r : R, @SUBSET (prod A B) (@mball (prod A B) (@prod_metric A B m1 m2) (@pair (prod A B) R (@pair A B x y) r)) (@CROSS A B (@mball A m1 (@pair A R x r)) (@mball B m2 (@pair B R y r))). +Axiom thm_MCBALL_PROD_METRIC_SUBSET : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall x : A, forall y : B, forall r : R, @SUBSET (prod A B) (@mcball (prod A B) (@prod_metric A B m1 m2) (@pair (prod A B) R (@pair A B x y) r)) (@CROSS A B (@mcball A m1 (@pair A R x r)) (@mcball B m2 (@pair B R y r))). +Axiom thm_MBALL_SUBSET_PROD_METRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall x : A, forall y : B, forall r : R, forall r' : R, @SUBSET (prod A B) (@CROSS A B (@mball A m1 (@pair A R x r)) (@mball B m2 (@pair B R y r'))) (@mball (prod A B) (@prod_metric A B m1 m2) (@pair (prod A B) R (@pair A B x y) (Rplus r r'))). +Axiom thm_MCBALL_SUBSET_PROD_METRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall x : A, forall y : B, forall r : R, forall r' : R, @SUBSET (prod A B) (@CROSS A B (@mcball A m1 (@pair A R x r)) (@mcball B m2 (@pair B R y r'))) (@mcball (prod A B) (@prod_metric A B m1 m2) (@pair (prod A B) R (@pair A B x y) (Rplus r r'))). +Axiom thm_MTOPOLOGY_PROD_METRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, (@mtopology (prod A B) (@prod_metric A B m1 m2)) = (@prod_topology A B (@mtopology A m1) (@mtopology B m2)). +Axiom thm_SUBMETRIC_PROD_METRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall s : A -> Prop, forall t : B -> Prop, (@submetric (prod A B) (@prod_metric A B m1 m2) (@CROSS A B s t)) = (@prod_metric A B (@submetric A m1 s) (@submetric B m2 t)). +Axiom thm_METRIZABLE_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@metrizable_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@metrizable_space A top1) /\ (@metrizable_space B top2))). +Axiom thm_CAUCHY_IN_PROD_METRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall x : N -> prod A B, (@cauchy_in (prod A B) (@prod_metric A B m1 m2) x) = ((@cauchy_in A m1 (@o N (prod A B) A (@fst A B) x)) /\ (@cauchy_in B m2 (@o N (prod A B) B (@snd A B) x))). +Axiom thm_MCOMPLETE_PROD_METRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, (@mcomplete (prod A B) (@prod_metric A B m1 m2)) = (((@mspace A m1) = (@EMPTY A)) \/ (((@mspace B m2) = (@EMPTY B)) \/ ((@mcomplete A m1) /\ (@mcomplete B m2)))). +Axiom thm_COMPLETELY_METRIZABLE_SPACE_PROD_TOPOLOGY : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, (@completely_metrizable_space (prod A B) (@prod_topology A B top1 top2)) = (((@topspace (prod A B) (@prod_topology A B top1 top2)) = (@EMPTY (prod A B))) \/ ((@completely_metrizable_space A top1) /\ (@completely_metrizable_space B top2))). +Axiom thm_MBOUNDED_CROSS : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall s : A -> Prop, forall t : B -> Prop, (@mbounded (prod A B) (@prod_metric A B m1 m2) (@CROSS A B s t)) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@mbounded A m1 s) /\ (@mbounded B m2 t)))). +Axiom thm_MBOUNDED_PROD_METRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall u : (prod A B) -> Prop, (@mbounded (prod A B) (@prod_metric A B m1 m2) u) = ((@mbounded A m1 (@IMAGE (prod A B) A (@fst A B) u)) /\ (@mbounded B m2 (@IMAGE (prod A B) B (@snd A B) u))). +Axiom thm_TOTALLY_BOUNDED_IN_CROSS : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall s : A -> Prop, forall t : B -> Prop, (@totally_bounded_in (prod A B) (@prod_metric A B m1 m2) (@CROSS A B s t)) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@totally_bounded_in A m1 s) /\ (@totally_bounded_in B m2 t)))). +Axiom thm_TOTALLY_BOUNDED_IN_PROD_METRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall u : (prod A B) -> Prop, (@totally_bounded_in (prod A B) (@prod_metric A B m1 m2) u) = ((@totally_bounded_in A m1 (@IMAGE (prod A B) A (@fst A B) u)) /\ (@totally_bounded_in B m2 (@IMAGE (prod A B) B (@snd A B) u))). +Axiom thm_lipschitz_continuous_map : forall {_491946 _491958 : Type'}, forall m2 : Metric _491946, forall f : _491958 -> _491946, forall m1 : Metric _491958, (@lipschitz_continuous_map _491946 _491958 (@pair (Metric _491958) (Metric _491946) m1 m2) f) = ((@SUBSET _491946 (@IMAGE _491958 _491946 f (@mspace _491958 m1)) (@mspace _491946 m2)) /\ (exists B : R, forall x : _491958, forall y : _491958, ((@IN _491958 x (@mspace _491958 m1)) /\ (@IN _491958 y (@mspace _491958 m1))) -> Rle (@mdist _491946 m2 (@pair _491946 _491946 (f x) (f y))) (Rmult B (@mdist _491958 m1 (@pair _491958 _491958 x y))))). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_POS : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) = ((@SUBSET B (@IMAGE A B f (@mspace A m1)) (@mspace B m2)) /\ (exists B' : R, (Rlt (R_of_N (NUMERAL 0%N)) B') /\ (forall x : A, forall y : A, ((@IN A x (@mspace A m1)) /\ (@IN A y (@mspace A m1))) -> Rle (@mdist B m2 (@pair B B (f x) (f y))) (Rmult B' (@mdist A m1 (@pair A A x y)))))). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_EQ : forall {_492107 _492111 : Type'}, forall m1 : Metric _492111, forall m2 : Metric _492107, forall f : _492111 -> _492107, forall g : _492111 -> _492107, ((forall x : _492111, (@IN _492111 x (@mspace _492111 m1)) -> (f x) = (g x)) /\ (@lipschitz_continuous_map _492107 _492111 (@pair (Metric _492111) (Metric _492107) m1 m2) f)) -> @lipschitz_continuous_map _492107 _492111 (@pair (Metric _492111) (Metric _492107) m1 m2) g. +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_FROM_SUBMETRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall s : A -> Prop, forall f : A -> B, (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) -> @lipschitz_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f. +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_FROM_SUBMETRIC_MONO : forall {_492206 _492213 : Type'}, forall m1 : Metric _492213, forall m2 : Metric _492206, forall f : _492213 -> _492206, forall s : _492213 -> Prop, forall t : _492213 -> Prop, ((@lipschitz_continuous_map _492206 _492213 (@pair (Metric _492213) (Metric _492206) (@submetric _492213 m1 t) m2) f) /\ (@SUBSET _492213 s t)) -> @lipschitz_continuous_map _492206 _492213 (@pair (Metric _492213) (Metric _492206) (@submetric _492213 m1 s) m2) f. +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_INTO_SUBMETRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall s : B -> Prop, forall f : A -> B, (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m1 (@submetric B m2 s)) f) = ((@SUBSET B (@IMAGE A B f (@mspace A m1)) s) /\ (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_CONST : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall c : B, (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) (fun x : A => c)) = (((@mspace A m1) = (@EMPTY A)) \/ (@IN B c (@mspace B m2))). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_ID : forall {A : Type'}, forall m1 : Metric A, @lipschitz_continuous_map A A (@pair (Metric A) (Metric A) m1 m1) (fun x : A => x). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_COMPOSE : forall {A B C : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall m3 : Metric C, forall f : A -> B, forall g : B -> C, ((@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) /\ (@lipschitz_continuous_map C B (@pair (Metric B) (Metric C) m2 m3) g)) -> @lipschitz_continuous_map C A (@pair (Metric A) (Metric C) m1 m3) (@o A B C g f). +Axiom thm_uniformly_continuous_map : forall {_492508 _492513 : Type'}, forall m1 : Metric _492513, forall m2 : Metric _492508, forall f : _492513 -> _492508, (@uniformly_continuous_map _492508 _492513 (@pair (Metric _492513) (Metric _492508) m1 m2) f) = ((@SUBSET _492508 (@IMAGE _492513 _492508 f (@mspace _492513 m1)) (@mspace _492508 m2)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : _492513, forall x' : _492513, ((@IN _492513 x (@mspace _492513 m1)) /\ ((@IN _492513 x' (@mspace _492513 m1)) /\ (Rlt (@mdist _492513 m1 (@pair _492513 _492513 x' x)) d))) -> Rlt (@mdist _492508 m2 (@pair _492508 _492508 (f x') (f x))) e))). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_SEQUENTIALLY_ALT : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) = ((@SUBSET B (@IMAGE A B f (@mspace A m1)) (@mspace B m2)) /\ (forall e : R, forall x : N -> A, forall y : N -> A, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((forall n : N, @IN A (x n) (@mspace A m1)) /\ ((forall n : N, @IN A (y n) (@mspace A m1)) /\ (@limit N R euclideanreal (fun n : N => @mdist A m1 (@pair A A (x n) (y n))) (R_of_N (NUMERAL 0%N)) sequentially)))) -> exists n : N, Rlt (@mdist B m2 (@pair B B (f (x n)) (f (y n)))) e)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_SEQUENTIALLY : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) = ((@SUBSET B (@IMAGE A B f (@mspace A m1)) (@mspace B m2)) /\ (forall x : N -> A, forall y : N -> A, ((forall n : N, @IN A (x n) (@mspace A m1)) /\ ((forall n : N, @IN A (y n) (@mspace A m1)) /\ (@limit N R euclideanreal (fun n : N => @mdist A m1 (@pair A A (x n) (y n))) (R_of_N (NUMERAL 0%N)) sequentially))) -> @limit N R euclideanreal (fun n : N => @mdist B m2 (@pair B B (f (x n)) (f (y n)))) (R_of_N (NUMERAL 0%N)) sequentially)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_EQ : forall {_492942 _492946 : Type'}, forall m1 : Metric _492946, forall m2 : Metric _492942, forall f : _492946 -> _492942, forall g : _492946 -> _492942, ((forall x : _492946, (@IN _492946 x (@mspace _492946 m1)) -> (f x) = (g x)) /\ (@uniformly_continuous_map _492942 _492946 (@pair (Metric _492946) (Metric _492942) m1 m2) f)) -> @uniformly_continuous_map _492942 _492946 (@pair (Metric _492946) (Metric _492942) m1 m2) g. +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_FROM_SUBMETRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall s : A -> Prop, forall f : A -> B, (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) -> @uniformly_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f. +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_FROM_SUBMETRIC_MONO : forall {_493041 _493048 : Type'}, forall m1 : Metric _493048, forall m2 : Metric _493041, forall f : _493048 -> _493041, forall s : _493048 -> Prop, forall t : _493048 -> Prop, ((@uniformly_continuous_map _493041 _493048 (@pair (Metric _493048) (Metric _493041) (@submetric _493048 m1 t) m2) f) /\ (@SUBSET _493048 s t)) -> @uniformly_continuous_map _493041 _493048 (@pair (Metric _493048) (Metric _493041) (@submetric _493048 m1 s) m2) f. +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_INTO_SUBMETRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall s : B -> Prop, forall f : A -> B, (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 (@submetric B m2 s)) f) = ((@SUBSET B (@IMAGE A B f (@mspace A m1)) s) /\ (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_CONST : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall c : B, (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) (fun x : A => c)) = (((@mspace A m1) = (@EMPTY A)) \/ (@IN B c (@mspace B m2))). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_REAL_CONST : forall {A : Type'} (c : R), forall m : Metric A, @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => c). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_ID : forall {A : Type'}, forall m1 : Metric A, @uniformly_continuous_map A A (@pair (Metric A) (Metric A) m1 m1) (fun x : A => x). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_COMPOSE : forall {A B C : Type'} (m3 : Metric C), forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall g : B -> C, ((@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) /\ (@uniformly_continuous_map C B (@pair (Metric B) (Metric C) m2 m3) g)) -> @uniformly_continuous_map C A (@pair (Metric A) (Metric C) m1 m3) (@o A B C g f). +Axiom thm_cauchy_continuous_map : forall {_493261 _493269 : Type'}, forall m1 : Metric _493261, forall m2 : Metric _493269, forall f : _493261 -> _493269, (@cauchy_continuous_map _493261 _493269 (@pair (Metric _493261) (Metric _493269) m1 m2) f) = (forall x : N -> _493261, (@cauchy_in _493261 m1 x) -> @cauchy_in _493269 m2 (@o N _493261 _493269 f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_IMAGE : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f) -> @SUBSET B (@IMAGE A B f (@mspace A m1)) (@mspace B m2). +Axiom thm_CAUCHY_CONTINUOUS_MAP_EQ : forall {_493340 _493344 : Type'}, forall m1 : Metric _493344, forall m2 : Metric _493340, forall f : _493344 -> _493340, forall g : _493344 -> _493340, ((forall x : _493344, (@IN _493344 x (@mspace _493344 m1)) -> (f x) = (g x)) /\ (@cauchy_continuous_map _493344 _493340 (@pair (Metric _493344) (Metric _493340) m1 m2) f)) -> @cauchy_continuous_map _493344 _493340 (@pair (Metric _493344) (Metric _493340) m1 m2) g. +Axiom thm_CAUCHY_CONTINUOUS_MAP_FROM_SUBMETRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall s : A -> Prop, forall f : A -> B, (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f) -> @cauchy_continuous_map A B (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f. +Axiom thm_CAUCHY_CONTINUOUS_MAP_FROM_SUBMETRIC_MONO : forall {_493439 _493446 : Type'}, forall m1 : Metric _493446, forall m2 : Metric _493439, forall f : _493446 -> _493439, forall s : _493446 -> Prop, forall t : _493446 -> Prop, ((@cauchy_continuous_map _493446 _493439 (@pair (Metric _493446) (Metric _493439) (@submetric _493446 m1 t) m2) f) /\ (@SUBSET _493446 s t)) -> @cauchy_continuous_map _493446 _493439 (@pair (Metric _493446) (Metric _493439) (@submetric _493446 m1 s) m2) f. +Axiom thm_CAUCHY_CONTINUOUS_MAP_INTO_SUBMETRIC : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall s : B -> Prop, forall f : A -> B, (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 (@submetric B m2 s)) f) = ((@SUBSET B (@IMAGE A B f (@mspace A m1)) s) /\ (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_CONST : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall c : B, (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) (fun x : A => c)) = (((@mspace A m1) = (@EMPTY A)) \/ (@IN B c (@mspace B m2))). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_CONST : forall {A : Type'} (c : R), forall m : Metric A, @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => c). +Axiom thm_CAUCHY_CONTINUOUS_MAP_ID : forall {A : Type'}, forall m1 : Metric A, @cauchy_continuous_map A A (@pair (Metric A) (Metric A) m1 m1) (fun x : A => x). +Axiom thm_CAUCHY_CONTINUOUS_MAP_COMPOSE : forall {A B C : Type'} (m3 : Metric C), forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall g : B -> C, ((@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f) /\ (@cauchy_continuous_map B C (@pair (Metric B) (Metric C) m2 m3) g)) -> @cauchy_continuous_map A C (@pair (Metric A) (Metric C) m1 m3) (@o A B C g f). +Axiom thm_LIPSCHITZ_IMP_UNIFORMLY_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) -> @uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f. +Axiom thm_UNIFORMLY_IMP_CAUCHY_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) -> @cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f. +Axiom thm_LOCALLY_CAUCHY_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall e : R, forall f : A -> B, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x : A, (@IN A x (@mspace A m1)) -> @cauchy_continuous_map A B (@pair (Metric A) (Metric B) (@submetric A m1 (@mball A m1 (@pair A R x e))) m2) f)) -> @cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f. +Axiom thm_CAUCHY_CONTINUOUS_IMP_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f) -> @continuous_map A B (@pair (Topology A) (Topology B) (@mtopology A m1) (@mtopology B m2)) f. +Axiom thm_UNIFORMLY_CONTINUOUS_IMP_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) -> @continuous_map A B (@pair (Topology A) (Topology B) (@mtopology A m1) (@mtopology B m2)) f. +Axiom thm_LIPSCHITZ_CONTINUOUS_IMP_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) -> @continuous_map A B (@pair (Topology A) (Topology B) (@mtopology A m1) (@mtopology B m2)) f. +Axiom thm_LIPSCHITZ_IMP_CAUCHY_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) -> @cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f. +Axiom thm_CONTINUOUS_IMP_CAUCHY_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, ((@mcomplete A m1) /\ (@continuous_map A B (@pair (Topology A) (Topology B) (@mtopology A m1) (@mtopology B m2)) f)) -> @cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f. +Axiom thm_CAUCHY_IMP_UNIFORMLY_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, ((@totally_bounded_in A m1 (@mspace A m1)) /\ (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f)) -> @uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f. +Axiom thm_CONTINUOUS_IMP_UNIFORMLY_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, ((@compact_space A (@mtopology A m1)) /\ (@continuous_map A B (@pair (Topology A) (Topology B) (@mtopology A m1) (@mtopology B m2)) f)) -> @uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f. +Axiom thm_CONTINUOUS_EQ_CAUCHY_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@mcomplete A m1) -> (@continuous_map A B (@pair (Topology A) (Topology B) (@mtopology A m1) (@mtopology B m2)) f) = (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f). +Axiom thm_CONTINUOUS_EQ_UNIFORMLY_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@compact_space A (@mtopology A m1)) -> (@continuous_map A B (@pair (Topology A) (Topology B) (@mtopology A m1) (@mtopology B m2)) f) = (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f). +Axiom thm_CAUCHY_EQ_UNIFORMLY_CONTINUOUS_MAP : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, (@totally_bounded_in A m1 (@mspace A m1)) -> (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f) = (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_PROJECTIONS : forall {A B : Type'}, (forall m1 : Metric A, forall m2 : Metric B, @lipschitz_continuous_map A (prod A B) (@pair (Metric (prod A B)) (Metric A) (@prod_metric A B m1 m2) m1) (@fst A B)) /\ (forall m1 : Metric A, forall m2 : Metric B, @lipschitz_continuous_map B (prod A B) (@pair (Metric (prod A B)) (Metric B) (@prod_metric A B m1 m2) m2) (@snd A B)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_PAIRWISE : forall {A B C : Type'}, forall m : Metric A, forall m1 : Metric B, forall m2 : Metric C, forall f : A -> prod B C, (@lipschitz_continuous_map (prod B C) A (@pair (Metric A) (Metric (prod B C)) m (@prod_metric B C m1 m2)) f) = ((@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m m1) (@o A (prod B C) B (@fst B C) f)) /\ (@lipschitz_continuous_map C A (@pair (Metric A) (Metric C) m m2) (@o A (prod B C) C (@snd B C) f))). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_PAIRWISE : forall {A B C : Type'}, forall m : Metric A, forall m1 : Metric B, forall m2 : Metric C, forall f : A -> prod B C, (@uniformly_continuous_map (prod B C) A (@pair (Metric A) (Metric (prod B C)) m (@prod_metric B C m1 m2)) f) = ((@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m m1) (@o A (prod B C) B (@fst B C) f)) /\ (@uniformly_continuous_map C A (@pair (Metric A) (Metric C) m m2) (@o A (prod B C) C (@snd B C) f))). +Axiom thm_CAUCHY_CONTINUOUS_MAP_PAIRWISE : forall {A B C : Type'}, forall m : Metric A, forall m1 : Metric B, forall m2 : Metric C, forall f : A -> prod B C, (@cauchy_continuous_map A (prod B C) (@pair (Metric A) (Metric (prod B C)) m (@prod_metric B C m1 m2)) f) = ((@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m m1) (@o A (prod B C) B (@fst B C) f)) /\ (@cauchy_continuous_map A C (@pair (Metric A) (Metric C) m m2) (@o A (prod B C) C (@snd B C) f))). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_PAIRED : forall {A B C : Type'}, forall m : Metric A, forall m1 : Metric B, forall m2 : Metric C, forall f : A -> B, forall g : A -> C, (@lipschitz_continuous_map (prod B C) A (@pair (Metric A) (Metric (prod B C)) m (@prod_metric B C m1 m2)) (fun x : A => @pair B C (f x) (g x))) = ((@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m m1) f) /\ (@lipschitz_continuous_map C A (@pair (Metric A) (Metric C) m m2) g)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_PAIRED : forall {A B C : Type'}, forall m : Metric A, forall m1 : Metric B, forall m2 : Metric C, forall f : A -> B, forall g : A -> C, (@uniformly_continuous_map (prod B C) A (@pair (Metric A) (Metric (prod B C)) m (@prod_metric B C m1 m2)) (fun x : A => @pair B C (f x) (g x))) = ((@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m m1) f) /\ (@uniformly_continuous_map C A (@pair (Metric A) (Metric C) m m2) g)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_PAIRED : forall {A B C : Type'}, forall m : Metric A, forall m1 : Metric B, forall m2 : Metric C, forall f : A -> B, forall g : A -> C, (@cauchy_continuous_map A (prod B C) (@pair (Metric A) (Metric (prod B C)) m (@prod_metric B C m1 m2)) (fun x : A => @pair B C (f x) (g x))) = ((@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m m1) f) /\ (@cauchy_continuous_map A C (@pair (Metric A) (Metric C) m m2) g)). +Axiom thm_MBOUNDED_LIPSCHITZ_CONTINUOUS_IMAGE : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, ((@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m1 m2) f) /\ (@mbounded A m1 s)) -> @mbounded B m2 (@IMAGE A B f s). +Axiom thm_TOTALLY_BOUNDED_IN_CAUCHY_CONTINUOUS_IMAGE : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, ((@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m1 m2) f) /\ (@totally_bounded_in A m1 s)) -> @totally_bounded_in B m2 (@IMAGE A B f s). +Axiom thm_LIPSCHITZ_COEFFICIENT_POS : forall {A B : Type'}, forall m : Metric A, forall m' : Metric B, forall f : A -> B, forall k : R, ((forall x : A, (@IN A x (@mspace A m)) -> @IN B (f x) (@mspace B m')) /\ ((forall x : A, forall y : A, ((@IN A x (@mspace A m)) /\ (@IN A y (@mspace A m))) -> Rle (@mdist B m' (@pair B B (f x) (f y))) (Rmult k (@mdist A m (@pair A A x y)))) /\ (exists x : A, exists y : A, (@IN A x (@mspace A m)) /\ ((@IN A y (@mspace A m)) /\ (~ ((f x) = (f y))))))) -> Rlt (R_of_N (NUMERAL 0%N)) k. +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_METRIC : forall {A : Type'}, forall m : Metric A, @lipschitz_continuous_map R (prod A A) (@pair (Metric (prod A A)) (Metric R) (@prod_metric A A m m) real_euclidean_metric) (@mdist A m). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_MDIST : forall {A B : Type'}, forall m : Metric A, forall m' : Metric B, forall f : A -> B, forall g : A -> B, ((@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m m') f) /\ (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m m') g)) -> @lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => @mdist B m' (@pair B B (f x) (g x))). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_MDIST : forall {A B : Type'}, forall m : Metric A, forall m' : Metric B, forall f : A -> B, forall g : A -> B, ((@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m m') f) /\ (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) m m') g)) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => @mdist B m' (@pair B B (f x) (g x))). +Axiom thm_CAUCHY_CONTINUOUS_MAP_MDIST : forall {A B : Type'}, forall m : Metric A, forall m' : Metric B, forall f : A -> B, forall g : A -> B, ((@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m m') f) /\ (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) m m') g)) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => @mdist B m' (@pair B B (f x) (g x))). +Axiom thm_CONTINUOUS_MAP_METRIC : forall {A : Type'}, forall m : Metric A, @continuous_map (prod A A) R (@pair (Topology (prod A A)) (Topology R) (@prod_topology A A (@mtopology A m) (@mtopology A m)) euclideanreal) (@mdist A m). +Axiom thm_CONTINUOUS_MAP_MDIST_ALT : forall {A B : Type'} (top : Topology A), forall m : Metric B, forall f : A -> prod B B, (@continuous_map A (prod B B) (@pair (Topology A) (Topology (prod B B)) top (@prod_topology B B (@mtopology B m) (@mtopology B m))) f) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => @mdist B m (f x)). +Axiom thm_CONTINUOUS_MAP_MDIST : forall {A B : Type'}, forall top : Topology A, forall m : Metric B, forall f : A -> B, forall g : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top (@mtopology B m)) f) /\ (@continuous_map A B (@pair (Topology A) (Topology B) top (@mtopology B m)) g)) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => @mdist B m (@pair B B (f x) (g x))). +Axiom thm_CONTINUOUS_ON_MDIST : forall {A : Type'}, forall m : Metric A, forall a : A, (@IN A a (@mspace A m)) -> @continuous_map A R (@pair (Topology A) (Topology R) (@mtopology A m) euclideanreal) (fun x : A => @mdist A m (@pair A A a x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_LEFT_MULTIPLICATION : forall c : R, @lipschitz_continuous_map R R (@pair (Metric R) (Metric R) real_euclidean_metric real_euclidean_metric) (fun x : R => Rmult c x). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_RIGHT_MULTIPLICATION : forall c : R, @lipschitz_continuous_map R R (@pair (Metric R) (Metric R) real_euclidean_metric real_euclidean_metric) (fun x : R => Rmult x c). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_NEGATION : @lipschitz_continuous_map R R (@pair (Metric R) (Metric R) real_euclidean_metric real_euclidean_metric) Ropp. +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_ABSOLUTE_VALUE : @lipschitz_continuous_map R R (@pair (Metric R) (Metric R) real_euclidean_metric real_euclidean_metric) Rabs. +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_ADDITION : @lipschitz_continuous_map R (prod R R) (@pair (Metric (prod R R)) (Metric R) (@prod_metric R R real_euclidean_metric real_euclidean_metric) real_euclidean_metric) (@GABS ((prod R R) -> R) (fun f : (prod R R) -> R => forall x : R, forall y : R, @GEQ R (f (@pair R R x y)) (Rplus x y))). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_SUBTRACTION : @lipschitz_continuous_map R (prod R R) (@pair (Metric (prod R R)) (Metric R) (@prod_metric R R real_euclidean_metric real_euclidean_metric) real_euclidean_metric) (@GABS ((prod R R) -> R) (fun f : (prod R R) -> R => forall x : R, forall y : R, @GEQ R (f (@pair R R x y)) (Rminus x y))). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_MAXIMUM : @lipschitz_continuous_map R (prod R R) (@pair (Metric (prod R R)) (Metric R) (@prod_metric R R real_euclidean_metric real_euclidean_metric) real_euclidean_metric) (@GABS ((prod R R) -> R) (fun f : (prod R R) -> R => forall x : R, forall y : R, @GEQ R (f (@pair R R x y)) (Rmax x y))). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_MINIMUM : @lipschitz_continuous_map R (prod R R) (@pair (Metric (prod R R)) (Metric R) (@prod_metric R R real_euclidean_metric real_euclidean_metric) real_euclidean_metric) (@GABS ((prod R R) -> R) (fun f : (prod R R) -> R => forall x : R, forall y : R, @GEQ R (f (@pair R R x y)) (Rmin x y))). +Axiom thm_LOCALLY_LIPSCHITZ_CONTINUOUS_MAP_REAL_MULTIPLICATION : forall s : (prod R R) -> Prop, (@mbounded (prod R R) (@prod_metric R R real_euclidean_metric real_euclidean_metric) s) -> @lipschitz_continuous_map R (prod R R) (@pair (Metric (prod R R)) (Metric R) (@submetric (prod R R) (@prod_metric R R real_euclidean_metric real_euclidean_metric) s) real_euclidean_metric) (@GABS ((prod R R) -> R) (fun f : (prod R R) -> R => forall x : R, forall y : R, @GEQ R (f (@pair R R x y)) (Rmult x y))). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_MULTIPLICATION : @cauchy_continuous_map (prod R R) R (@pair (Metric (prod R R)) (Metric R) (@prod_metric R R real_euclidean_metric real_euclidean_metric) real_euclidean_metric) (@GABS ((prod R R) -> R) (fun f : (prod R R) -> R => forall x : R, forall y : R, @GEQ R (f (@pair R R x y)) (Rmult x y))). +Axiom thm_LOCALLY_LIPSCHITZ_CONTINUOUS_MAP_REAL_INVERSION : forall s : R -> Prop, (~ (@IN R (R_of_N (NUMERAL 0%N)) (@closure_of R euclideanreal s))) -> @lipschitz_continuous_map R R (@pair (Metric R) (Metric R) (@submetric R real_euclidean_metric s) real_euclidean_metric) Rinv. +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_FST : forall {A B C : Type'}, forall m : Metric A, forall m1 : Metric B, forall m2 : Metric C, forall f : A -> prod B C, (@lipschitz_continuous_map (prod B C) A (@pair (Metric A) (Metric (prod B C)) m (@prod_metric B C m1 m2)) f) -> @lipschitz_continuous_map B A (@pair (Metric A) (Metric B) m m1) (fun x : A => @fst B C (f x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_SND : forall {A B C : Type'}, forall m : Metric A, forall m1 : Metric B, forall m2 : Metric C, forall f : A -> prod B C, (@lipschitz_continuous_map (prod B C) A (@pair (Metric A) (Metric (prod B C)) m (@prod_metric B C m1 m2)) f) -> @lipschitz_continuous_map C A (@pair (Metric A) (Metric C) m m2) (fun x : A => @snd B C (f x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_LMUL : forall {A : Type'}, forall m : Metric A, forall c : R, forall f : A -> R, (@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmult c (f x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_RMUL : forall {A : Type'}, forall m : Metric A, forall c : R, forall f : A -> R, (@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmult (f x) c). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_NEG : forall {A : Type'}, forall m : Metric A, forall f : A -> R, (@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Ropp (f x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_ABS : forall {A : Type'}, forall m : Metric A, forall f : A -> R, (@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rabs (f x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_INV : forall {A : Type'}, forall m : Metric A, forall f : A -> R, ((@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (~ (@IN R (R_of_N (NUMERAL 0%N)) (@closure_of R euclideanreal (@IMAGE A R f (@mspace A m)))))) -> @lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rinv (f x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_ADD : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rplus (f x) (g x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_SUB : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rminus (f x) (g x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_MAX : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmax (f x) (g x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_MIN : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmin (f x) (g x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_MUL : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ ((@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) g) /\ ((real_bounded (@IMAGE A R f (@mspace A m))) /\ (real_bounded (@IMAGE A R g (@mspace A m)))))) -> @lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmult (f x) (g x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_REAL_DIV : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ ((@lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) g) /\ ((real_bounded (@IMAGE A R f (@mspace A m))) /\ (~ (@IN R (R_of_N (NUMERAL 0%N)) (@closure_of R euclideanreal (@IMAGE A R g (@mspace A m)))))))) -> @lipschitz_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rdiv (f x) (g x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_SUM : forall {A K : Type'}, forall m : Metric K, forall f : K -> A -> R, forall k : A -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> @lipschitz_continuous_map R K (@pair (Metric K) (Metric R) m real_euclidean_metric) (fun x : K => f x i))) -> @lipschitz_continuous_map R K (@pair (Metric K) (Metric R) m real_euclidean_metric) (fun x : K => @sum A k (f x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_FST : forall {A B C : Type'}, forall m : Metric A, forall m1 : Metric B, forall m2 : Metric C, forall f : A -> prod B C, (@uniformly_continuous_map (prod B C) A (@pair (Metric A) (Metric (prod B C)) m (@prod_metric B C m1 m2)) f) -> @uniformly_continuous_map B A (@pair (Metric A) (Metric B) m m1) (fun x : A => @fst B C (f x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_SND : forall {A B C : Type'}, forall m : Metric A, forall m1 : Metric B, forall m2 : Metric C, forall f : A -> prod B C, (@uniformly_continuous_map (prod B C) A (@pair (Metric A) (Metric (prod B C)) m (@prod_metric B C m1 m2)) f) -> @uniformly_continuous_map C A (@pair (Metric A) (Metric C) m m2) (fun x : A => @snd B C (f x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_REAL_LMUL : forall {A : Type'}, forall m : Metric A, forall c : R, forall f : A -> R, (@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmult c (f x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_REAL_RMUL : forall {A : Type'}, forall m : Metric A, forall c : R, forall f : A -> R, (@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmult (f x) c). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_REAL_NEG : forall {A : Type'}, forall m : Metric A, forall f : A -> R, (@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Ropp (f x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_REAL_ABS : forall {A : Type'}, forall m : Metric A, forall f : A -> R, (@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rabs (f x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_REAL_INV : forall {A : Type'}, forall m : Metric A, forall f : A -> R, ((@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (~ (@IN R (R_of_N (NUMERAL 0%N)) (@closure_of R euclideanreal (@IMAGE A R f (@mspace A m)))))) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rinv (f x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_REAL_ADD : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rplus (f x) (g x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_REAL_SUB : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rminus (f x) (g x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_REAL_MAX : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmax (f x) (g x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_REAL_MIN : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmin (f x) (g x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_REAL_MUL : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ ((@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) g) /\ ((real_bounded (@IMAGE A R f (@mspace A m))) /\ (real_bounded (@IMAGE A R g (@mspace A m)))))) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmult (f x) (g x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_REAL_DIV : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ ((@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) g) /\ ((real_bounded (@IMAGE A R f (@mspace A m))) /\ (~ (@IN R (R_of_N (NUMERAL 0%N)) (@closure_of R euclideanreal (@IMAGE A R g (@mspace A m)))))))) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rdiv (f x) (g x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_SUM : forall {A K : Type'}, forall m : Metric K, forall f : K -> A -> R, forall k : A -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> @uniformly_continuous_map R K (@pair (Metric K) (Metric R) m real_euclidean_metric) (fun x : K => f x i))) -> @uniformly_continuous_map R K (@pair (Metric K) (Metric R) m real_euclidean_metric) (fun x : K => @sum A k (f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_FST : forall {A B C : Type'}, forall m : Metric A, forall m1 : Metric B, forall m2 : Metric C, forall f : A -> prod B C, (@cauchy_continuous_map A (prod B C) (@pair (Metric A) (Metric (prod B C)) m (@prod_metric B C m1 m2)) f) -> @cauchy_continuous_map A B (@pair (Metric A) (Metric B) m m1) (fun x : A => @fst B C (f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_SND : forall {A B C : Type'}, forall m : Metric A, forall m1 : Metric B, forall m2 : Metric C, forall f : A -> prod B C, (@cauchy_continuous_map A (prod B C) (@pair (Metric A) (Metric (prod B C)) m (@prod_metric B C m1 m2)) f) -> @cauchy_continuous_map A C (@pair (Metric A) (Metric C) m m2) (fun x : A => @snd B C (f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_INV : forall {A : Type'}, forall m : Metric A, forall f : A -> R, ((@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (~ (@IN R (R_of_N (NUMERAL 0%N)) (@closure_of R euclideanreal (@IMAGE A R f (@mspace A m)))))) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rinv (f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_ADD : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rplus (f x) (g x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_MUL : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmult (f x) (g x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_LMUL : forall {A : Type'}, forall m : Metric A, forall c : R, forall f : A -> R, (@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmult c (f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_RMUL : forall {A : Type'}, forall m : Metric A, forall c : R, forall f : A -> R, (@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmult (f x) c). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_POW : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall n : N, (@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => real_pow (f x) n). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_NEG : forall {A : Type'}, forall m : Metric A, forall f : A -> R, (@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Ropp (f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_ABS : forall {A : Type'}, forall m : Metric A, forall f : A -> R, (@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rabs (f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_SUB : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rminus (f x) (g x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_MAX : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmax (f x) (g x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_MIN : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ (@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) g)) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rmin (f x) (g x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_REAL_DIV : forall {A : Type'}, forall m : Metric A, forall f : A -> R, forall g : A -> R, ((@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) /\ ((@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) g) /\ (~ (@IN R (R_of_N (NUMERAL 0%N)) (@closure_of R euclideanreal (@IMAGE A R g (@mspace A m))))))) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => Rdiv (f x) (g x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_SUM : forall {A K : Type'}, forall m : Metric K, forall f : K -> A -> R, forall k : A -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> @cauchy_continuous_map K R (@pair (Metric K) (Metric R) m real_euclidean_metric) (fun x : K => f x i))) -> @cauchy_continuous_map K R (@pair (Metric K) (Metric R) m real_euclidean_metric) (fun x : K => @sum A k (f x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_SQUARE_ROOT : @uniformly_continuous_map R R (@pair (Metric R) (Metric R) real_euclidean_metric real_euclidean_metric) sqrt. +Axiom thm_CONTINUOUS_MAP_SQUARE_ROOT : @continuous_map R R (@pair (Topology R) (Topology R) euclideanreal euclideanreal) sqrt. +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_SQRT : forall {A : Type'}, forall m : Metric A, forall f : A -> R, (@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => sqrt (f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_SQRT : forall {A : Type'}, forall m : Metric A, forall f : A -> R, (@cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) f) -> @cauchy_continuous_map A R (@pair (Metric A) (Metric R) m real_euclidean_metric) (fun x : A => sqrt (f x)). +Axiom thm_CONTINUOUS_MAP_SQRT : forall {A : Type'}, forall top : Topology A, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => sqrt (f x)). +Axiom thm_ISOMETRY_IMP_EMBEDDING_MAP : forall {A B : Type'}, forall m : Metric A, forall m' : Metric B, forall f : A -> B, ((@SUBSET B (@IMAGE A B f (@mspace A m)) (@mspace B m')) /\ (forall x : A, forall y : A, ((@IN A x (@mspace A m)) /\ (@IN A y (@mspace A m))) -> (@mdist B m' (@pair B B (f x) (f y))) = (@mdist A m (@pair A A x y)))) -> @embedding_map A B (@pair (Topology A) (Topology B) (@mtopology A m) (@mtopology B m')) f. +Axiom thm_ISOMETRY_IMP_HOMEOMORPHIC_MAP : forall {A B : Type'}, forall m : Metric A, forall m' : Metric B, forall f : A -> B, (((@IMAGE A B f (@mspace A m)) = (@mspace B m')) /\ (forall x : A, forall y : A, ((@IN A x (@mspace A m)) /\ (@IN A y (@mspace A m))) -> (@mdist B m' (@pair B B (f x) (f y))) = (@mdist A m (@pair A A x y)))) -> @homeomorphic_map A B (@pair (Topology A) (Topology B) (@mtopology A m) (@mtopology B m')) f. +Axiom thm_CONTINUOUS_MAP_ON_INTERMEDIATE_CLOSURE_OF : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@regular_space B top') /\ ((@SUBSET A t (@closure_of A top s)) /\ (forall x : A, (@IN A x t) -> @limit A B top' f (f x) (@within A (@atpointof A top x) s)))) -> @continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top t) top') f. +Axiom thm_CONTINUOUS_MAP_ON_INTERMEDIATE_CLOSURE_OF_EQ : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@regular_space B top') /\ ((@SUBSET A s t) /\ (@SUBSET A t (@closure_of A top s)))) -> (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top t) top') f) = (forall x : A, (@IN A x t) -> @limit A B top' f (f x) (@within A (@atpointof A top x) s)). +Axiom thm_CONTINUOUS_MAP_EXTENSION_POINTWISE_ALT : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@regular_space B top2) /\ ((@SUBSET A s t) /\ ((@SUBSET A t (@closure_of A top1 s)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top1 s) top2) f) /\ (forall x : A, (@IN A x (@DIFF A t s)) -> exists l : B, @limit A B top2 f l (@within A (@atpointof A top1 x) s)))))) -> exists g : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top1 t) top2) g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x)). +Axiom thm_CONTINUOUS_MAP_EXTENSION_POINTWISE : forall {A B : Type'}, forall top1 : Topology A, forall top2 : Topology B, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@regular_space B top2) /\ ((@SUBSET A s t) /\ ((@SUBSET A t (@closure_of A top1 s)) /\ (forall x : A, (@IN A x t) -> exists g : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top1 (@INSERT A x s)) top2) g) /\ (forall x' : A, (@IN A x' s) -> (g x') = (f x')))))) -> exists g : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top1 t) top2) g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_EXTENDS_TO_CONTINUOUS_CLOSURE_OF : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, ((@mcomplete B m2) /\ (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f)) -> exists g : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A (@mtopology A m1) (@closure_of A (@mtopology A m1) s)) (@mtopology B m2)) g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_EXTENDS_TO_CONTINUOUS_INTERMEDIATE_CLOSURE_OF : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@mcomplete B m2) /\ ((@cauchy_continuous_map A B (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f) /\ (@SUBSET A t (@closure_of A (@mtopology A m1) s)))) -> exists g : A -> B, (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A (@mtopology A m1) t) (@mtopology B m2)) g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_ON_INTERMEDIATE_CLOSURE : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ ((@SUBSET A t (@closure_of A (@mtopology A m1) s)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A (@mtopology A m1) t) (@mtopology B m2)) f) /\ (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f)))) -> @lipschitz_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 t) m2) f. +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_EXTENDS_TO_CLOSURE_OF : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, ((@mcomplete B m2) /\ (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f)) -> exists g : A -> B, (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 (@closure_of A (@mtopology A m1) s)) m2) g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_EXTENDS_TO_INTERMEDIATE_CLOSURE_OF : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@mcomplete B m2) /\ ((@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f) /\ (@SUBSET A t (@closure_of A (@mtopology A m1) s)))) -> exists g : A -> B, (@lipschitz_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 t) m2) g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_ON_INTERMEDIATE_CLOSURE : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ ((@SUBSET A t (@closure_of A (@mtopology A m1) s)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A (@mtopology A m1) t) (@mtopology B m2)) f) /\ (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f)))) -> @uniformly_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 t) m2) f. +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_EXTENDS_TO_CLOSURE_OF : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, ((@mcomplete B m2) /\ (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f)) -> exists g : A -> B, (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 (@closure_of A (@mtopology A m1) s)) m2) g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_EXTENDS_TO_INTERMEDIATE_CLOSURE_OF : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@mcomplete B m2) /\ ((@uniformly_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f) /\ (@SUBSET A t (@closure_of A (@mtopology A m1) s)))) -> exists g : A -> B, (@uniformly_continuous_map B A (@pair (Metric A) (Metric B) (@submetric A m1 t) m2) g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_ON_INTERMEDIATE_CLOSURE : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ ((@SUBSET A t (@closure_of A (@mtopology A m1) s)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A (@mtopology A m1) t) (@mtopology B m2)) f) /\ (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f)))) -> @cauchy_continuous_map A B (@pair (Metric A) (Metric B) (@submetric A m1 t) m2) f. +Axiom thm_CAUCHY_CONTINUOUS_MAP_EXTENDS_TO_CLOSURE_OF : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, ((@mcomplete B m2) /\ (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f)) -> exists g : A -> B, (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) (@submetric A m1 (@closure_of A (@mtopology A m1) s)) m2) g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_EXTENDS_TO_INTERMEDIATE_CLOSURE_OF : forall {A B : Type'}, forall m1 : Metric A, forall m2 : Metric B, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@mcomplete B m2) /\ ((@cauchy_continuous_map A B (@pair (Metric A) (Metric B) (@submetric A m1 s) m2) f) /\ (@SUBSET A t (@closure_of A (@mtopology A m1) s)))) -> exists g : A -> B, (@cauchy_continuous_map A B (@pair (Metric A) (Metric B) (@submetric A m1 t) m2) g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x)). +Axiom thm_CONVERGENT_EQ_ZERO_OSCILLATION_GEN : forall {A B : Type'}, forall top : Topology A, forall m : Metric B, forall f : A -> B, forall s : A -> Prop, forall a : A, ((@mcomplete B m) /\ (@SUBSET B (@IMAGE A B f (@INTER A (@topspace A top) s)) (@mspace B m))) -> (exists l : B, @limit A B (@mtopology B m) f l (@within A (@atpointof A top a) s)) = ((~ ((@mspace B m) = (@EMPTY B))) /\ ((@IN A a (@topspace A top)) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists u : A -> Prop, (@open_in A top u) /\ ((@IN A a u) /\ (forall x : A, forall y : A, ((@IN A x (@DELETE A (@INTER A s u) a)) /\ (@IN A y (@DELETE A (@INTER A s u) a))) -> Rlt (@mdist B m (@pair B B (f x) (f y))) e)))). +Axiom thm_GDELTA_IN_POINTS_OF_CONVERGENCE_WITHIN : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall s : A -> Prop, ((@completely_metrizable_space B top') /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top s) top') f) \/ ((@t1_space A top) /\ (@SUBSET B (@IMAGE A B f s) (@topspace B top'))))) -> @gdelta_in A top (@GSPEC A (fun GEN_PVAR_2039 : A => exists x : A, @SETSPEC A GEN_PVAR_2039 ((@IN A x (@topspace A top)) /\ (exists l : B, @limit A B top' f l (@within A (@atpointof A top x) s))) x)). +Axiom thm_LAVRENTIEV_EXTENSION_GEN : forall {A B : Type'}, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall f : A -> B, ((@SUBSET A s (@topspace A top)) /\ ((@completely_metrizable_space B top') /\ (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top s) top') f))) -> exists u : A -> Prop, exists g : A -> B, (@gdelta_in A top u) /\ ((@SUBSET A s u) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top (@INTER A (@closure_of A top s) u)) top') g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x)))). +Axiom thm_LAVRENTIEV_EXTENSION : forall {A B : Type'}, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall f : A -> B, ((@SUBSET A s (@topspace A top)) /\ (((@metrizable_space A top) \/ (@SUBSET A (@topspace A top) (@closure_of A top s))) /\ ((@completely_metrizable_space B top') /\ (@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top s) top') f)))) -> exists u : A -> Prop, exists g : A -> B, (@gdelta_in A top u) /\ ((@SUBSET A s u) /\ ((@SUBSET A u (@closure_of A top s)) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) (@subtopology A top u) top') g) /\ (forall x : A, (@IN A x s) -> (g x) = (f x))))). +Axiom thm_capped_metric : forall {A : Type'}, forall d : R, forall m : Metric A, (@capped_metric A d m) = (@COND (Metric A) (Rle d (R_of_N (NUMERAL 0%N))) m (@metric A (@pair (A -> Prop) ((prod A A) -> R) (@mspace A m) (@GABS ((prod A A) -> R) (fun f : (prod A A) -> R => forall x : A, forall y : A, @GEQ R (f (@pair A A x y)) (Rmin d (@mdist A m (@pair A A x y)))))))). +Axiom thm_CAPPED_METRIC : forall {A : Type'}, forall d : R, forall m : Metric A, ((@mspace A (@capped_metric A d m)) = (@mspace A m)) /\ ((@mdist A (@capped_metric A d m)) = (@GABS ((prod A A) -> R) (fun f : (prod A A) -> R => forall x : A, forall y : A, @GEQ R (f (@pair A A x y)) (@COND R (Rle d (R_of_N (NUMERAL 0%N))) (@mdist A m (@pair A A x y)) (Rmin d (@mdist A m (@pair A A x y))))))). +Axiom thm_MDIST_CAPPED : forall {A : Type'}, forall d : R, forall m : Metric A, forall x : A, forall y : A, (Rlt (R_of_N (NUMERAL 0%N)) d) -> Rle (@mdist A (@capped_metric A d m) (@pair A A x y)) d. +Axiom thm_MTOPOLOGY_CAPPED_METRIC : forall {A : Type'}, forall d : R, forall m : Metric A, (@mtopology A (@capped_metric A d m)) = (@mtopology A m). +Axiom thm_CAUCHY_IN_CAPPED_METRIC : forall {A : Type'}, forall d : R, forall m : Metric A, forall x : N -> A, (@cauchy_in A (@capped_metric A d m) x) = (@cauchy_in A m x). +Axiom thm_MCOMPLETE_CAPPED_METRIC : forall {A : Type'}, forall d : R, forall m : Metric A, (@mcomplete A (@capped_metric A d m)) = (@mcomplete A m). +Axiom thm_BOUNDED_EQUIVALENT_METRIC : forall {A : Type'}, forall m : Metric A, forall d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) -> exists m' : Metric A, ((@mspace A m') = (@mspace A m)) /\ (((@mtopology A m') = (@mtopology A m)) /\ (forall x : A, forall y : A, Rlt (@mdist A m' (@pair A A x y)) d)). +Axiom thm_SUP_METRIC_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall m : K -> Metric A, forall m' : Metric (K -> A), (((@metric (K -> A) (@pair ((K -> A) -> Prop) ((prod (K -> A) (K -> A)) -> R) (@cartesian_product A K k (@o K (Metric A) (A -> Prop) (@mspace A) m)) (@GABS ((prod (K -> A) (K -> A)) -> R) (fun f : (prod (K -> A) (K -> A)) -> R => forall x : K -> A, forall y : K -> A, @GEQ R (f (@pair (K -> A) (K -> A) x y)) (sup (@GSPEC R (fun GEN_PVAR_2044 : R => exists i : K, @SETSPEC R GEN_PVAR_2044 (@IN K i k) (@mdist A (m i) (@pair A A (x i) (y i)))))))))) = m') /\ ((~ (k = (@EMPTY K))) /\ (exists c : R, forall i : K, forall x : A, forall y : A, ((@IN K i k) /\ ((@IN A x (@mspace A (m i))) /\ (@IN A y (@mspace A (m i))))) -> Rle (@mdist A (m i) (@pair A A x y)) c))) -> ((@mspace (K -> A) m') = (@cartesian_product A K k (@o K (Metric A) (A -> Prop) (@mspace A) m))) /\ (((@mdist (K -> A) m') = (@GABS ((prod (K -> A) (K -> A)) -> R) (fun f : (prod (K -> A) (K -> A)) -> R => forall x : K -> A, forall y : K -> A, @GEQ R (f (@pair (K -> A) (K -> A) x y)) (sup (@GSPEC R (fun GEN_PVAR_2045 : R => exists i : K, @SETSPEC R GEN_PVAR_2045 (@IN K i k) (@mdist A (m i) (@pair A A (x i) (y i))))))))) /\ (forall x : K -> A, forall y : K -> A, forall b : R, ((@IN (K -> A) x (@cartesian_product A K k (@o K (Metric A) (A -> Prop) (@mspace A) m))) /\ (@IN (K -> A) y (@cartesian_product A K k (@o K (Metric A) (A -> Prop) (@mspace A) m)))) -> (Rle (@mdist (K -> A) m' (@pair (K -> A) (K -> A) x y)) b) = (forall i : K, (@IN K i k) -> Rle (@mdist A (m i) (@pair A A (x i) (y i))) b))). +Axiom thm_CARD_GE_PERFECT_SET : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (((@completely_metrizable_space A top) \/ ((@locally_compact_space A top) /\ (@hausdorff_space A top))) /\ (((@derived_set_of A top s) = s) /\ (~ (s = (@EMPTY A))))) -> @le_c R A (@UNIV R) s. +Axiom thm_euclidean_space : forall n : N, (euclidean_space n) = (@subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (@GSPEC (N -> R) (fun GEN_PVAR_2056 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2056 (forall i : N, (~ (@IN N i (dotdot (NUMERAL (BIT1 0%N)) n))) -> (x i) = (R_of_N (NUMERAL 0%N))) x))). +Axiom thm_TOPSPACE_EUCLIDEAN_SPACE : forall n : N, (@topspace (N -> R) (euclidean_space n)) = (@GSPEC (N -> R) (fun GEN_PVAR_2057 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2057 (forall i : N, (~ (@IN N i (dotdot (NUMERAL (BIT1 0%N)) n))) -> (x i) = (R_of_N (NUMERAL 0%N))) x)). +Axiom thm_NONEMPTY_EUCLIDEAN_SPACE : forall n : N, ~ ((@topspace (N -> R) (euclidean_space n)) = (@EMPTY (N -> R))). +Axiom thm_SUBSET_EUCLIDEAN_SPACE : forall m : N, forall n : N, (@SUBSET (N -> R) (@topspace (N -> R) (euclidean_space m)) (@topspace (N -> R) (euclidean_space n))) = (N.le m n). +Axiom thm_CLOSED_IN_EUCLIDEAN_SPACE : forall n : N, @closed_in (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (@topspace (N -> R) (euclidean_space n)). +Axiom thm_COMPLETELY_METRIZABLE_EUCLIDEAN_SPACE : forall n : N, @completely_metrizable_space (N -> R) (euclidean_space n). +Axiom thm_METRIZABLE_EUCLIDEAN_SPACE : forall n : N, @metrizable_space (N -> R) (euclidean_space n). +Axiom thm_CONTINUOUS_MAP_COMPONENTWISE_EUCLIDEAN_SPACE : forall {A : Type'}, forall top : Topology A, forall f : A -> N -> R, forall n : N, (@continuous_map A (N -> R) (@pair (Topology A) (Topology (N -> R)) top (euclidean_space n)) (fun x : A => fun i : N => @COND R ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i n)) (f x i) (R_of_N (NUMERAL 0%N)))) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i n)) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => f x i)). +Axiom thm_CONTINUOUS_MAP_EUCLIDEAN_SPACE_ADD : forall {A : Type'} (top : Topology A) (n : N), forall f : A -> N -> R, forall g : A -> N -> R, ((@continuous_map A (N -> R) (@pair (Topology A) (Topology (N -> R)) top (euclidean_space n)) f) /\ (@continuous_map A (N -> R) (@pair (Topology A) (Topology (N -> R)) top (euclidean_space n)) g)) -> @continuous_map A (N -> R) (@pair (Topology A) (Topology (N -> R)) top (euclidean_space n)) (fun x : A => fun i : N => Rplus (f x i) (g x i)). +Axiom thm_CONTINUOUS_MAP_EUCLIDEAN_SPACE_SUB : forall {A : Type'} (top : Topology A) (n : N), forall f : A -> N -> R, forall g : A -> N -> R, ((@continuous_map A (N -> R) (@pair (Topology A) (Topology (N -> R)) top (euclidean_space n)) f) /\ (@continuous_map A (N -> R) (@pair (Topology A) (Topology (N -> R)) top (euclidean_space n)) g)) -> @continuous_map A (N -> R) (@pair (Topology A) (Topology (N -> R)) top (euclidean_space n)) (fun x : A => fun i : N => Rminus (f x i) (g x i)). +Axiom thm_HOMEOMORPHIC_EUCLIDEAN_SPACE_PRODUCT_TOPOLOGY : forall n : N, @homeomorphic_space (N -> R) (N -> R) (euclidean_space n) (@product_topology R N (dotdot (NUMERAL (BIT1 0%N)) n) (fun i : N => euclideanreal)). +Axiom thm_CONTRACTIBLE_EUCLIDEAN_SPACE : forall n : N, @contractible_space (N -> R) (euclidean_space n). +Axiom thm_PATH_CONNECTED_EUCLIDEAN_SPACE : forall n : N, @path_connected_space (N -> R) (euclidean_space n). +Axiom thm_CONNECTED_EUCLIDEAN_SPACE : forall n : N, @connected_space (N -> R) (euclidean_space n). +Axiom thm_LOCALLY_COMPACT_EUCLIDEAN_SPACE : forall n : N, @locally_compact_space (N -> R) (euclidean_space n). +Axiom thm_LOCALLY_PATH_CONNECTED_EUCLIDEAN_SPACE : forall n : N, @locally_path_connected_space (N -> R) (euclidean_space n). +Axiom thm_LOCALLY_CONNECTED_EUCLIDEAN_SPACE : forall n : N, @locally_connected_space (N -> R) (euclidean_space n). +Axiom thm_HAUSDORFF_EUCLIDEAN_SPACE : forall n : N, @hausdorff_space (N -> R) (euclidean_space n). +Axiom thm_COMPACT_EUCLIDEAN_SPACE : forall n : N, (@compact_space (N -> R) (euclidean_space n)) = (n = (NUMERAL 0%N)). +Axiom thm_nsphere : forall n : N, (nsphere n) = (@subtopology (N -> R) (euclidean_space (N.add n (NUMERAL (BIT1 0%N)))) (@GSPEC (N -> R) (fun GEN_PVAR_2062 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2062 ((@sum N (dotdot (NUMERAL (BIT1 0%N)) (N.add n (NUMERAL (BIT1 0%N)))) (fun i : N => real_pow (x i) (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N)))) x))). +Axiom thm_NSPHERE : forall n : N, (nsphere n) = (@subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (@GSPEC (N -> R) (fun GEN_PVAR_2063 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2063 (((@sum N (dotdot (NUMERAL (BIT1 0%N)) (N.add n (NUMERAL (BIT1 0%N)))) (fun i : N => real_pow (x i) (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : N, (~ (@IN N i (dotdot (NUMERAL (BIT1 0%N)) (N.add n (NUMERAL (BIT1 0%N)))))) -> (x i) = (R_of_N (NUMERAL 0%N)))) x))). +Axiom thm_NONEMPTY_NSPHERE : forall n : N, ~ ((@topspace (N -> R) (nsphere n)) = (@EMPTY (N -> R))). +Axiom thm_SUBTOPOLOGY_NSPHERE_EQUATOR : forall n : N, (@subtopology (N -> R) (nsphere (N.add n (NUMERAL (BIT1 0%N)))) (@GSPEC (N -> R) (fun GEN_PVAR_2064 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2064 ((x (N.add n (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL 0%N))) x))) = (nsphere n). +Axiom thm_CONTINUOUS_MAP_NSPHERE_REFLECTION : forall n : N, forall k : N, @continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere n) (nsphere n)) (fun x : N -> R => fun i : N => @COND R (i = k) (Ropp (x i)) (x i)). +Axiom thm_CONTRACTIBLE_SPACE_UPPER_HEMISPHERE : forall n : N, forall k : N, (@IN N k (dotdot (NUMERAL (BIT1 0%N)) (N.add n (NUMERAL (BIT1 0%N))))) -> @contractible_space (N -> R) (@subtopology (N -> R) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2066 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2066 (Rge (x k) (R_of_N (NUMERAL 0%N))) x))). +Axiom thm_CONTRACTIBLE_SPACE_LOWER_HEMISPHERE : forall n : N, forall k : N, (@IN N k (dotdot (NUMERAL (BIT1 0%N)) (N.add n (NUMERAL (BIT1 0%N))))) -> @contractible_space (N -> R) (@subtopology (N -> R) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2067 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2067 (Rle (x k) (R_of_N (NUMERAL 0%N))) x))). +Axiom thm_NULLHOMOTOPIC_NONSURJECTIVE_SPHERE_MAP : forall p : N, forall f : (N -> R) -> N -> R, ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f) /\ (~ ((@IMAGE (N -> R) (N -> R) f (@topspace (N -> R) (nsphere p))) = (@topspace (N -> R) (nsphere p))))) -> exists a : N -> R, @homotopic_with (N -> R) (N -> R) (fun x : (N -> R) -> N -> R => True) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f (fun x : N -> R => a). +Axiom thm_CONTRACTION_IMP_UNIQUE_FIXPOINT : forall {A : Type'}, forall m : Metric A, forall f : A -> A, forall k : R, forall x : A, forall y : A, ((Rlt k (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((forall x' : A, (@IN A x' (@mspace A m)) -> @IN A (f x') (@mspace A m)) /\ ((forall x' : A, forall y' : A, ((@IN A x' (@mspace A m)) /\ (@IN A y' (@mspace A m))) -> Rle (@mdist A m (@pair A A (f x') (f y'))) (Rmult k (@mdist A m (@pair A A x' y')))) /\ ((@IN A x (@mspace A m)) /\ ((@IN A y (@mspace A m)) /\ (((f x) = x) /\ ((f y) = y))))))) -> x = y. +Axiom thm_BANACH_FIXPOINT_THM : forall {A : Type'}, forall m : Metric A, forall f : A -> A, forall k : R, ((~ ((@mspace A m) = (@EMPTY A))) /\ ((@mcomplete A m) /\ ((forall x : A, (@IN A x (@mspace A m)) -> @IN A (f x) (@mspace A m)) /\ ((Rlt k (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall x : A, forall y : A, ((@IN A x (@mspace A m)) /\ (@IN A y (@mspace A m))) -> Rle (@mdist A m (@pair A A (f x) (f y))) (Rmult k (@mdist A m (@pair A A x y)))))))) -> @ex1 A (fun x : A => (@IN A x (@mspace A m)) /\ ((f x) = x)). +Axiom thm_funspace : forall {A B : Type'}, forall s : A -> Prop, forall m : Metric B, (@funspace A B s m) = (@metric (A -> B) (@pair ((A -> B) -> Prop) ((prod (A -> B) (A -> B)) -> R) (@GSPEC (A -> B) (fun GEN_PVAR_2068 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_2068 ((forall x : A, (@IN A x s) -> @IN B (f x) (@mspace B m)) /\ ((@IN (A -> B) f (@EXTENSIONAL A B s)) /\ (@mbounded B m (@IMAGE A B f s)))) f)) (@GABS ((prod (A -> B) (A -> B)) -> R) (fun f : (prod (A -> B) (A -> B)) -> R => forall f' : A -> B, forall g : A -> B, @GEQ R (f (@pair (A -> B) (A -> B) f' g)) (@COND R (s = (@EMPTY A)) (R_of_N (NUMERAL 0%N)) (sup (@GSPEC R (fun GEN_PVAR_2069 : R => exists x : A, @SETSPEC R GEN_PVAR_2069 (@IN A x s) (@mdist B m (@pair B B (f' x) (g x))))))))))). +Axiom thm_FUNSPACE_IMP_WELLDEFINED : forall {A B : Type'}, forall s : A -> Prop, forall m : Metric B, forall f : A -> B, forall x : A, ((@IN (A -> B) f (@mspace (A -> B) (@funspace A B s m))) /\ (@IN A x s)) -> @IN B (f x) (@mspace B m). +Axiom thm_FUNSPACE_IMP_EXTENSIONAL : forall {A B : Type'}, forall s : A -> Prop, forall m : Metric B, forall f : A -> B, (@IN (A -> B) f (@mspace (A -> B) (@funspace A B s m))) -> @IN (A -> B) f (@EXTENSIONAL A B s). +Axiom thm_FUNSPACE_IMP_BOUNDED_IMAGE : forall {A B : Type'}, forall s : A -> Prop, forall m : Metric B, forall f : A -> B, (@IN (A -> B) f (@mspace (A -> B) (@funspace A B s m))) -> @mbounded B m (@IMAGE A B f s). +Axiom thm_FUNSPACE_IMP_BOUNDED : forall {A B : Type'}, forall s : A -> Prop, forall m : Metric B, forall f : A -> B, (@IN (A -> B) f (@mspace (A -> B) (@funspace A B s m))) -> (s = (@EMPTY A)) \/ (exists c : B, exists b : R, forall x : A, (@IN A x s) -> Rle (@mdist B m (@pair B B c (f x))) b). +Axiom thm_FUNSPACE_IMP_BOUNDED2 : forall {A B : Type'}, forall s : A -> Prop, forall m : Metric B, forall f : A -> B, forall g : A -> B, ((@IN (A -> B) f (@mspace (A -> B) (@funspace A B s m))) /\ (@IN (A -> B) g (@mspace (A -> B) (@funspace A B s m)))) -> exists b : R, forall x : A, (@IN A x s) -> Rle (@mdist B m (@pair B B (f x) (g x))) b. +Axiom thm_FUNSPACE_MDIST_LE : forall {A B : Type'}, forall s : A -> Prop, forall m : Metric B, forall f : A -> B, forall g : A -> B, forall a : R, ((~ (s = (@EMPTY A))) /\ ((@IN (A -> B) f (@mspace (A -> B) (@funspace A B s m))) /\ (@IN (A -> B) g (@mspace (A -> B) (@funspace A B s m))))) -> (Rle (@mdist (A -> B) (@funspace A B s m) (@pair (A -> B) (A -> B) f g)) a) = (forall x : A, (@IN A x s) -> Rle (@mdist B m (@pair B B (f x) (g x))) a). +Axiom thm_MCOMPLETE_FUNSPACE : forall {A B : Type'}, forall s : A -> Prop, forall m : Metric B, (@mcomplete B m) -> @mcomplete (A -> B) (@funspace A B s m). +Axiom thm_cfunspace : forall {A B : Type'}, forall top : Topology A, forall m : Metric B, (@cfunspace A B top m) = (@submetric (A -> B) (@funspace A B (@topspace A top) m) (@GSPEC (A -> B) (fun GEN_PVAR_2081 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_2081 (@continuous_map A B (@pair (Topology A) (Topology B) top (@mtopology B m)) f) f))). +Axiom thm_CFUNSPACE_SUBSET_FUNSPACE : forall {A B : Type'}, forall top : Topology A, forall m : Metric B, @SUBSET (A -> B) (@mspace (A -> B) (@cfunspace A B top m)) (@mspace (A -> B) (@funspace A B (@topspace A top) m)). +Axiom thm_MDIST_CFUNSPACE_EQ_MDIST_FUNSPACE : forall {A B : Type'}, forall top : Topology A, forall m : Metric B, forall f : A -> B, forall g : A -> B, (@mdist (A -> B) (@cfunspace A B top m) (@pair (A -> B) (A -> B) f g)) = (@mdist (A -> B) (@funspace A B (@topspace A top) m) (@pair (A -> B) (A -> B) f g)). +Axiom thm_CFUNSPACE_MDIST_LE : forall {A B : Type'}, forall top : Topology A, forall m : Metric B, forall f : A -> B, forall g : A -> B, forall a : R, ((~ ((@topspace A top) = (@EMPTY A))) /\ ((@IN (A -> B) f (@mspace (A -> B) (@cfunspace A B top m))) /\ (@IN (A -> B) g (@mspace (A -> B) (@cfunspace A B top m))))) -> (Rle (@mdist (A -> B) (@cfunspace A B top m) (@pair (A -> B) (A -> B) f g)) a) = (forall x : A, (@IN A x (@topspace A top)) -> Rle (@mdist B m (@pair B B (f x) (g x))) a). +Axiom thm_CFUNSPACE_IMP_BOUNDED2 : forall {A B : Type'}, forall top : Topology A, forall m : Metric B, forall f : A -> B, forall g : A -> B, ((@IN (A -> B) f (@mspace (A -> B) (@cfunspace A B top m))) /\ (@IN (A -> B) g (@mspace (A -> B) (@cfunspace A B top m)))) -> exists b : R, forall x : A, (@IN A x (@topspace A top)) -> Rle (@mdist B m (@pair B B (f x) (g x))) b. +Axiom thm_CFUNSPACE_MDIST_LT : forall {A B : Type'}, forall top : Topology A, forall m : Metric B, forall f : A -> B, forall g : A -> B, forall a : R, forall x : A, ((@compact_in A top (@topspace A top)) /\ ((@IN (A -> B) f (@mspace (A -> B) (@cfunspace A B top m))) /\ ((@IN (A -> B) g (@mspace (A -> B) (@cfunspace A B top m))) /\ ((Rlt (@mdist (A -> B) (@cfunspace A B top m) (@pair (A -> B) (A -> B) f g)) a) /\ (@IN A x (@topspace A top)))))) -> Rlt (@mdist B m (@pair B B (f x) (g x))) a. +Axiom thm_MDIST_CFUNSPACE_LE : forall {A B : Type'}, forall top : Topology A, forall m : Metric B, forall B' : R, forall f : A -> B, forall g : A -> B, ((Rle (R_of_N (NUMERAL 0%N)) B') /\ (forall x : A, (@IN A x (@topspace A top)) -> Rle (@mdist B m (@pair B B (f x) (g x))) B')) -> Rle (@mdist (A -> B) (@cfunspace A B top m) (@pair (A -> B) (A -> B) f g)) B'. +Axiom thm_MDIST_CFUNSPACE_IMP_MDIST_LE : forall {A B : Type'}, forall top : Topology A, forall m : Metric B, forall f : A -> B, forall g : A -> B, forall a : R, forall x : A, ((@IN (A -> B) f (@mspace (A -> B) (@cfunspace A B top m))) /\ ((@IN (A -> B) g (@mspace (A -> B) (@cfunspace A B top m))) /\ ((Rle (@mdist (A -> B) (@cfunspace A B top m) (@pair (A -> B) (A -> B) f g)) a) /\ (@IN A x (@topspace A top))))) -> Rle (@mdist B m (@pair B B (f x) (g x))) a. +Axiom thm_COMPACT_IN_MSPACE_CFUNSPACE : forall {A B : Type'}, forall top : Topology A, forall m : Metric B, (@compact_in A top (@topspace A top)) -> (@mspace (A -> B) (@cfunspace A B top m)) = (@GSPEC (A -> B) (fun GEN_PVAR_2085 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_2085 ((forall x : A, (@IN A x (@topspace A top)) -> @IN B (f x) (@mspace B m)) /\ ((@IN (A -> B) f (@EXTENSIONAL A B (@topspace A top))) /\ (@continuous_map A B (@pair (Topology A) (Topology B) top (@mtopology B m)) f))) f)). +Axiom thm_MCOMPLETE_CFUNSPACE : forall {A B : Type'}, forall top : Topology A, forall m : Metric B, (@mcomplete B m) -> @mcomplete (A -> B) (@cfunspace A B top m). +Axiom thm_METRIC_COMPLETION_EXPLICIT : forall {A : Type'}, forall m : Metric A, exists s : (A -> R) -> Prop, exists f : A -> A -> R, (@SUBSET (A -> R) s (@mspace (A -> R) (@funspace A R (@mspace A m) real_euclidean_metric))) /\ ((@mcomplete (A -> R) (@submetric (A -> R) (@funspace A R (@mspace A m) real_euclidean_metric) s)) /\ ((@SUBSET (A -> R) (@IMAGE A (A -> R) f (@mspace A m)) s) /\ (((@closure_of (A -> R) (@mtopology (A -> R) (@funspace A R (@mspace A m) real_euclidean_metric)) (@IMAGE A (A -> R) f (@mspace A m))) = s) /\ (forall x : A, forall y : A, ((@IN A x (@mspace A m)) /\ (@IN A y (@mspace A m))) -> (@mdist (A -> R) (@funspace A R (@mspace A m) real_euclidean_metric) (@pair (A -> R) (A -> R) (f x) (f y))) = (@mdist A m (@pair A A x y)))))). +Axiom thm_METRIC_COMPLETION : forall {A : Type'}, forall m : Metric A, exists m' : Metric (A -> R), exists f : A -> A -> R, (@mcomplete (A -> R) m') /\ ((@SUBSET (A -> R) (@IMAGE A (A -> R) f (@mspace A m)) (@mspace (A -> R) m')) /\ (((@closure_of (A -> R) (@mtopology (A -> R) m') (@IMAGE A (A -> R) f (@mspace A m))) = (@mspace (A -> R) m')) /\ (forall x : A, forall y : A, ((@IN A x (@mspace A m)) /\ (@IN A y (@mspace A m))) -> (@mdist (A -> R) m' (@pair (A -> R) (A -> R) (f x) (f y))) = (@mdist A m (@pair A A x y))))). +Axiom thm_METRIZABLE_SPACE_COMPLETION : forall {A : Type'}, forall top : Topology A, (@metrizable_space A top) -> exists top' : Topology (A -> R), exists f : A -> A -> R, (@completely_metrizable_space (A -> R) top') /\ ((@embedding_map A (A -> R) (@pair (Topology A) (Topology (A -> R)) top top') f) /\ ((@closure_of (A -> R) top' (@IMAGE A (A -> R) f (@topspace A top))) = (@topspace (A -> R) top'))). +Axiom thm_METRIC_BAIRE_CATEGORY : forall {A : Type'}, forall m : Metric A, forall g : (A -> Prop) -> Prop, ((@mcomplete A m) /\ ((@COUNTABLE (A -> Prop) g) /\ (forall t : A -> Prop, (@IN (A -> Prop) t g) -> (@open_in A (@mtopology A m) t) /\ ((@closure_of A (@mtopology A m) t) = (@mspace A m))))) -> (@closure_of A (@mtopology A m) (@INTERS A g)) = (@mspace A m). +Axiom thm_METRIC_BAIRE_CATEGORY_ALT : forall {A : Type'}, forall m : Metric A, forall g : (A -> Prop) -> Prop, ((@mcomplete A m) /\ ((@COUNTABLE (A -> Prop) g) /\ (forall t : A -> Prop, (@IN (A -> Prop) t g) -> (@closed_in A (@mtopology A m) t) /\ ((@interior_of A (@mtopology A m) t) = (@EMPTY A))))) -> (@interior_of A (@mtopology A m) (@UNIONS A g)) = (@EMPTY A). +Axiom thm_BAIRE_CATEGORY_ALT : forall {A : Type'}, forall top : Topology A, forall g : (A -> Prop) -> Prop, (((@completely_metrizable_space A top) \/ ((@locally_compact_space A top) /\ ((@hausdorff_space A top) \/ (@regular_space A top)))) /\ ((@COUNTABLE (A -> Prop) g) /\ (forall t : A -> Prop, (@IN (A -> Prop) t g) -> (@closed_in A top t) /\ ((@interior_of A top t) = (@EMPTY A))))) -> (@interior_of A top (@UNIONS A g)) = (@EMPTY A). +Axiom thm_BAIRE_CATEGORY : forall {A : Type'}, forall top : Topology A, forall g : (A -> Prop) -> Prop, (((@completely_metrizable_space A top) \/ ((@locally_compact_space A top) /\ ((@hausdorff_space A top) \/ (@regular_space A top)))) /\ ((@COUNTABLE (A -> Prop) g) /\ (forall t : A -> Prop, (@IN (A -> Prop) t g) -> (@open_in A top t) /\ ((@closure_of A top t) = (@topspace A top))))) -> (@closure_of A top (@INTERS A g)) = (@topspace A top). +Axiom thm_LOCALLY_CONNECTED_NOT_COUNTABLE_CLOSED_UNION : forall {A : Type'}, forall top : Topology A, forall u : (A -> Prop) -> Prop, ((~ ((@topspace A top) = (@EMPTY A))) /\ ((@connected_space A top) /\ ((@locally_connected_space A top) /\ (((@completely_metrizable_space A top) \/ ((@locally_compact_space A top) /\ (@hausdorff_space A top))) /\ ((@COUNTABLE (A -> Prop) u) /\ ((@pairwise (A -> Prop) (@DISJOINT A) u) /\ ((forall c : A -> Prop, (@IN (A -> Prop) c u) -> (@closed_in A top c) /\ (~ (c = (@EMPTY A)))) /\ ((@UNIONS A u) = (@topspace A top))))))))) -> u = (@INSERT (A -> Prop) (@topspace A top) (@EMPTY (A -> Prop))). +Axiom thm_REAL_SIERPINSKI_LEMMA : forall a : R, forall b : R, forall u : (R -> Prop) -> Prop, ((Rle a b) /\ ((@COUNTABLE (R -> Prop) u) /\ ((@pairwise (R -> Prop) (@DISJOINT R) u) /\ ((forall c : R -> Prop, (@IN (R -> Prop) c u) -> (real_closed c) /\ (~ (c = (@EMPTY R)))) /\ ((@UNIONS R u) = (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))))) -> u = (@INSERT (R -> Prop) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (@EMPTY (R -> Prop))). +Axiom thm_CONNECTED_SPACE_IMP_CARD_GE_ALT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@connected_space A top) /\ ((@completely_regular_space A top) /\ ((@closed_in A top s) /\ ((~ (s = (@EMPTY A))) /\ (~ (s = (@topspace A top))))))) -> @le_c R A (@UNIV R) (@topspace A top). +Axiom thm_CONNECTED_SPACE_IMP_CARD_GE_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@connected_space A top) /\ ((@normal_space A top) /\ ((@closed_in A top s) /\ ((@closed_in A top t) /\ ((~ (s = (@EMPTY A))) /\ ((~ (t = (@EMPTY A))) /\ (@DISJOINT A s t))))))) -> @le_c R A (@UNIV R) (@topspace A top). +Axiom thm_CONNECTED_SPACE_IMP_CARD_GE : forall {A : Type'}, forall top : Topology A, ((@connected_space A top) /\ ((@normal_space A top) /\ (((@t1_space A top) \/ (@hausdorff_space A top)) /\ (~ (exists a : A, @SUBSET A (@topspace A top) (@INSERT A a (@EMPTY A))))))) -> @le_c R A (@UNIV R) (@topspace A top). +Axiom thm_CONNECTED_SPACE_IMP_INFINITE_GEN : forall {A : Type'}, forall top : Topology A, ((@connected_space A top) /\ ((@t1_space A top) /\ (~ (exists a : A, @SUBSET A (@topspace A top) (@INSERT A a (@EMPTY A)))))) -> @INFINITE A (@topspace A top). +Axiom thm_CONNECTED_SPACE_IMP_INFINITE : forall {A : Type'}, forall top : Topology A, ((@connected_space A top) /\ ((@hausdorff_space A top) /\ (~ (exists a : A, @SUBSET A (@topspace A top) (@INSERT A a (@EMPTY A)))))) -> @INFINITE A (@topspace A top). +Axiom thm_CONNECTED_SPACE_IMP_INFINITE_ALT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@connected_space A top) /\ ((@regular_space A top) /\ ((@closed_in A top s) /\ ((~ (s = (@EMPTY A))) /\ (~ (s = (@topspace A top))))))) -> @INFINITE A (@topspace A top). +Axiom thm_PATH_CONNECTED_SPACE_IMP_CARD_GE : forall {A : Type'}, forall top : Topology A, ((@path_connected_space A top) /\ ((@hausdorff_space A top) /\ (~ (exists a : A, @SUBSET A (@topspace A top) (@INSERT A a (@EMPTY A)))))) -> @le_c R A (@UNIV R) (@topspace A top). +Axiom thm_CONNECTED_SPACE_IMP_UNCOUNTABLE : forall {A : Type'}, forall top : Topology A, ((@connected_space A top) /\ ((@regular_space A top) /\ ((@hausdorff_space A top) /\ (~ (exists a : A, @SUBSET A (@topspace A top) (@INSERT A a (@EMPTY A))))))) -> ~ (@COUNTABLE A (@topspace A top)). +Axiom thm_PATH_CONNECTED_SPACE_IMP_UNCOUNTABLE : forall {A : Type'}, forall top : Topology A, ((@path_connected_space A top) /\ ((@t1_space A top) /\ (~ (exists a : A, @SUBSET A (@topspace A top) (@INSERT A a (@EMPTY A)))))) -> ~ (@COUNTABLE A (@topspace A top)). +Axiom thm_COMPLETELY_REGULAR_SPACE_CUBE_EMBEDDING_EXPLICIT : forall {A : Type'}, forall top : Topology A, ((@completely_regular_space A top) /\ (@hausdorff_space A top)) -> @embedding_map A ((A -> R) -> R) (@pair (Topology A) (Topology ((A -> R) -> R)) top (@product_topology R (A -> R) (@mspace (A -> R) (@submetric (A -> R) (@cfunspace A R top real_euclidean_metric) (@GSPEC (A -> R) (fun GEN_PVAR_2097 : A -> R => exists f : A -> R, @SETSPEC (A -> R) GEN_PVAR_2097 (@SUBSET R (@IMAGE A R f (@topspace A top)) (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) f)))) (fun f : A -> R => @subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))))) (fun x : A => @RESTRICTION (A -> R) R (@mspace (A -> R) (@submetric (A -> R) (@cfunspace A R top real_euclidean_metric) (@GSPEC (A -> R) (fun GEN_PVAR_2098 : A -> R => exists f : A -> R, @SETSPEC (A -> R) GEN_PVAR_2098 (@SUBSET R (@IMAGE A R f (@topspace A top)) (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) f)))) (fun f : A -> R => f x)). +Axiom thm_COMPLETELY_REGULAR_SPACE_CUBE_EMBEDDING : forall {A : Type'}, forall top : Topology A, ((@completely_regular_space A top) /\ (@hausdorff_space A top)) -> exists k : (A -> R) -> Prop, exists e : A -> (A -> R) -> R, @embedding_map A ((A -> R) -> R) (@pair (Topology A) (Topology ((A -> R) -> R)) top (@product_topology R (A -> R) k (fun f : A -> R => @subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))))) e. +Axiom thm_URYSOHN_COMPLETELY_REGULAR_CLOSED_COMPACT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall a : R, forall b : R, ((Rle a b) /\ ((@completely_regular_space A top) /\ ((@closed_in A top s) /\ ((@compact_in A top t) /\ (@DISJOINT A s t))))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) f) /\ ((forall x : A, (@IN A x t) -> (f x) = a) /\ (forall x : A, (@IN A x s) -> (f x) = b)). +Axiom thm_URYSOHN_COMPLETELY_REGULAR_COMPACT_CLOSED : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall a : R, forall b : R, ((Rle a b) /\ ((@completely_regular_space A top) /\ ((@compact_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t))))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top (@subtopology R euclideanreal (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) f) /\ ((forall x : A, (@IN A x t) -> (f x) = a) /\ (forall x : A, (@IN A x s) -> (f x) = b)). +Axiom thm_URYSOHN_COMPLETELY_REGULAR_COMPACT_CLOSED_ALT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall a : R, forall b : R, ((@completely_regular_space A top) /\ ((@compact_in A top s) /\ ((@closed_in A top t) /\ (@DISJOINT A s t)))) -> exists f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) /\ ((forall x : A, (@IN A x t) -> (f x) = a) /\ (forall x : A, (@IN A x s) -> (f x) = b)). +Axiom thm_TIETZE_EXTENSION_COMPLETELY_REGULAR : forall {A : Type'}, forall top : Topology A, forall f : A -> R, forall s : A -> Prop, forall t : R -> Prop, ((@completely_regular_space A top) /\ ((@compact_in A top s) /\ ((is_realinterval t) /\ ((~ (t = (@EMPTY R))) /\ ((@continuous_map A R (@pair (Topology A) (Topology R) (@subtopology A top s) euclideanreal) f) /\ (forall x : A, (@IN A x s) -> @IN R (f x) t)))))) -> exists g : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) g) /\ ((forall x : A, (@IN A x (@topspace A top)) -> @IN R (g x) t) /\ (forall x : A, (@IN A x s) -> (g x) = (f x))). +Axiom thm_GDELTA_HOMEOMORPHIC_SPACE_CLOSED_IN_PRODUCT : forall {A K : Type'}, forall top : Topology A, forall s : K -> A -> Prop, forall k : K -> Prop, ((@metrizable_space A top) /\ (forall i : K, (@IN K i k) -> @open_in A top (s i))) -> exists t : (prod A (K -> R)) -> Prop, (@closed_in (prod A (K -> R)) (@prod_topology A (K -> R) top (@product_topology R K k (fun i : K => euclideanreal))) t) /\ (@homeomorphic_space A (prod A (K -> R)) (@subtopology A top (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_2114 : A -> Prop => exists i : K, @SETSPEC (A -> Prop) GEN_PVAR_2114 (@IN K i k) (s i))))) (@subtopology (prod A (K -> R)) (@prod_topology A (K -> R) top (@product_topology R K k (fun i : K => euclideanreal))) t)). +Axiom thm_OPEN_HOMEOMORPHIC_SPACE_CLOSED_IN_PRODUCT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@metrizable_space A top) /\ (@open_in A top s)) -> exists t : (prod A R) -> Prop, (@closed_in (prod A R) (@prod_topology A R top euclideanreal) t) /\ (@homeomorphic_space A (prod A R) (@subtopology A top s) (@subtopology (prod A R) (@prod_topology A R top euclideanreal) t)). +Axiom thm_COMPLETELY_METRIZABLE_SPACE_GDELTA_IN_ALT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@completely_metrizable_space A top) /\ (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) (@open_in A top) s)) -> @completely_metrizable_space A (@subtopology A top s). +Axiom thm_COMPLETELY_METRIZABLE_SPACE_GDELTA_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@completely_metrizable_space A top) /\ (@gdelta_in A top s)) -> @completely_metrizable_space A (@subtopology A top s). +Axiom thm_COMPLETELY_METRIZABLE_SPACE_OPEN_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@completely_metrizable_space A top) /\ (@open_in A top s)) -> @completely_metrizable_space A (@subtopology A top s). +Axiom thm_LOCALLY_COMPACT_IMP_COMPLETELY_METRIZABLE_SPACE : forall {A : Type'}, forall top : Topology A, ((@metrizable_space A top) /\ (@locally_compact_space A top)) -> @completely_metrizable_space A top. +Axiom thm_COMPLETELY_METRIZABLE_SPACE_IMP_GDELTA_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@metrizable_space A top) /\ ((@SUBSET A s (@topspace A top)) /\ (@completely_metrizable_space A (@subtopology A top s)))) -> @gdelta_in A top s. +Axiom thm_COMPLETELY_METRIZABLE_SPACE_EQ_GDELTA_IN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@completely_metrizable_space A top) /\ (@SUBSET A s (@topspace A top))) -> (@completely_metrizable_space A (@subtopology A top s)) = (@gdelta_in A top s). +Axiom thm_GDELTA_IN_EQ_COMPLETELY_METRIZABLE_SPACE : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, (@completely_metrizable_space A top) -> (@gdelta_in A top s) = ((@SUBSET A s (@topspace A top)) /\ (@completely_metrizable_space A (@subtopology A top s))). +Axiom thm_DIMENSION_LE_RULES : forall {A : Type'}, forall top : Topology A, forall n : Z, ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (forall v : A -> Prop, forall a : A, ((@open_in A top v) /\ (@IN A a v)) -> exists u : A -> Prop, (@IN A a u) /\ ((@SUBSET A u v) /\ ((@open_in A top u) /\ (@dimension_le A (@subtopology A top (@frontier_of A top u)) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N))))))))) -> @dimension_le A top n. +Axiom thm_DIMENSION_LE_CASES : forall {A : Type'}, forall a0 : Topology A, forall a1 : Z, (@dimension_le A a0 a1) = ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) a1) /\ (forall v : A -> Prop, forall a : A, ((@open_in A a0 v) /\ (@IN A a v)) -> exists u : A -> Prop, (@IN A a u) /\ ((@SUBSET A u v) /\ ((@open_in A a0 u) /\ (@dimension_le A (@subtopology A a0 (@frontier_of A a0 u)) (int_sub a1 (Z_of_N (NUMERAL (BIT1 0%N))))))))). +Axiom thm_DIMENSION_LE_INDUCT : forall {A : Type'}, forall dimension_le' : (Topology A) -> Z -> Prop, (forall top : Topology A, forall n : Z, ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (forall v : A -> Prop, forall a : A, ((@open_in A top v) /\ (@IN A a v)) -> exists u : A -> Prop, (@IN A a u) /\ ((@SUBSET A u v) /\ ((@open_in A top u) /\ (dimension_le' (@subtopology A top (@frontier_of A top u)) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N))))))))) -> dimension_le' top n) -> forall a0 : Topology A, forall a1 : Z, (@dimension_le A a0 a1) -> dimension_le' a0 a1. +Axiom thm_DIMENSION_LE_NEIGHBOURHOOD_BASE : forall {A : Type'}, forall top : Topology A, forall n : Z, (@dimension_le A top n) = ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (@neighbourhood_base_of A (fun u : A -> Prop => (@open_in A top u) /\ (@dimension_le A (@subtopology A top (@frontier_of A top u)) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N)))))) top)). +Axiom thm_DIMENSION_LE_BOUND : forall {A : Type'}, forall top : Topology A, forall n : Z, (@dimension_le A top n) -> int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n. +Axiom thm_DIMENSION_LE_MONO : forall {A : Type'}, forall top : Topology A, forall m : Z, forall n : Z, ((@dimension_le A top m) /\ (int_le m n)) -> @dimension_le A top n. +Axiom thm_DIMENSION_LE_EQ_EMPTY : forall {A : Type'}, forall top : Topology A, (@dimension_le A top (int_neg (Z_of_N (NUMERAL (BIT1 0%N))))) = ((@topspace A top) = (@EMPTY A)). +Axiom thm_DIMENSION_LE_0_NEIGHBOURHOOD_BASE_OF_CLOPEN : forall {A : Type'}, forall top : Topology A, (@dimension_le A top (Z_of_N (NUMERAL 0%N))) = (@neighbourhood_base_of A (fun u : A -> Prop => (@closed_in A top u) /\ (@open_in A top u)) top). +Axiom thm_DIMENSION_LE_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall n : Z, forall s : A -> Prop, (@dimension_le A top n) -> @dimension_le A (@subtopology A top s) n. +Axiom thm_DIMENSION_LE_SUBTOPOLOGIES : forall {A : Type'}, forall top : Topology A, forall n : Z, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (@dimension_le A (@subtopology A top t) n)) -> @dimension_le A (@subtopology A top s) n. +Axiom thm_DIMENSION_LE_EQ_SUBTOPOLOGY : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall n : Z, (@dimension_le A (@subtopology A top s) n) = ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (forall v : A -> Prop, forall a : A, ((@open_in A top v) /\ ((@IN A a v) /\ (@IN A a s))) -> exists u : A -> Prop, (@IN A a u) /\ ((@SUBSET A u v) /\ ((@open_in A top u) /\ (@dimension_le A (@subtopology A top (@frontier_of A (@subtopology A top s) (@INTER A s u))) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N))))))))). +Axiom thm_HOMEOMORPHIC_SPACE_DIMENSION_LE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall n : Z, (@homeomorphic_space A B top top') -> (@dimension_le A top n) = (@dimension_le B top' n). +Axiom thm_DIMENSION_LE_RETRACTION_MAP_IMAGE : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall n : Z, forall r : A -> B, ((@retraction_map A B (@pair (Topology A) (Topology B) top top') r) /\ (@dimension_le A top n)) -> @dimension_le B top' n. +Axiom thm_DIMENSION_LE_DISCRETE_TOPOLOGY : forall {A : Type'}, forall u : A -> Prop, @dimension_le A (@discrete_topology A u) (Z_of_N (NUMERAL 0%N)). +Axiom thm_ZERO_DIMENSIONAL_IMP_COMPLETELY_REGULAR_SPACE : forall {A : Type'}, forall top : Topology A, (@dimension_le A top (Z_of_N (NUMERAL 0%N))) -> @completely_regular_space A top. +Axiom thm_ZERO_DIMENSIONAL_IMP_REGULAR_SPACE : forall {A : Type'}, forall top : Topology A, (@dimension_le A top (Z_of_N (NUMERAL 0%N))) -> @regular_space A top. +Axiom thm_SEPARATION_BY_CLOSED_INTERMEDIATES_COUNT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall n : N, ((@hereditarily A (@normal_space A) top) /\ (exists u : (A -> Prop) -> Prop, (@HAS_SIZE (A -> Prop) u n) /\ ((@pairwise (A -> Prop) (@separated_in A top) u) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t u) -> ~ (t = (@EMPTY A))) /\ ((@UNIONS A u) = (@DIFF A (@topspace A top) s)))))) -> exists c : A -> Prop, (@closed_in A top c) /\ ((@SUBSET A c s) /\ (forall d : A -> Prop, ((@closed_in A top d) /\ ((@SUBSET A c d) /\ (@SUBSET A d s))) -> exists u : (A -> Prop) -> Prop, (@HAS_SIZE (A -> Prop) u n) /\ ((@pairwise (A -> Prop) (@separated_in A top) u) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t u) -> ~ (t = (@EMPTY A))) /\ ((@UNIONS A u) = (@DIFF A (@topspace A top) d)))))). +Axiom thm_SEPARATION_BY_CLOSED_INTERMEDIATES_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@hereditarily A (@normal_space A) top) /\ (~ (@connected_in A top (@DIFF A (@topspace A top) s)))) -> exists c : A -> Prop, (@closed_in A top c) /\ ((@SUBSET A c s) /\ (forall d : A -> Prop, ((@closed_in A top d) /\ ((@SUBSET A c d) /\ (@SUBSET A d s))) -> ~ (@connected_in A top (@DIFF A (@topspace A top) d)))). +Axiom thm_SEPARATION_BY_CLOSED_INTERMEDIATES_EQ_COUNT : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, forall n : N, ((@locally_connected_space A top) /\ (@hereditarily A (@normal_space A) top)) -> (exists u : (A -> Prop) -> Prop, (@HAS_SIZE (A -> Prop) u n) /\ ((@pairwise (A -> Prop) (@separated_in A top) u) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t u) -> ~ (t = (@EMPTY A))) /\ ((@UNIONS A u) = (@DIFF A (@topspace A top) s))))) = (exists c : A -> Prop, (@closed_in A top c) /\ ((@SUBSET A c s) /\ (forall d : A -> Prop, ((@closed_in A top d) /\ ((@SUBSET A c d) /\ (@SUBSET A d s))) -> exists u : (A -> Prop) -> Prop, (@HAS_SIZE (A -> Prop) u n) /\ ((@pairwise (A -> Prop) (@separated_in A top) u) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t u) -> ~ (t = (@EMPTY A))) /\ ((@UNIONS A u) = (@DIFF A (@topspace A top) d))))))). +Axiom thm_SEPARATION_BY_CLOSED_INTERMEDIATES_EQ_GEN : forall {A : Type'}, forall top : Topology A, forall s : A -> Prop, ((@locally_connected_space A top) /\ (@hereditarily A (@normal_space A) top)) -> (~ (@connected_in A top (@DIFF A (@topspace A top) s))) = (exists c : A -> Prop, (@closed_in A top c) /\ ((@SUBSET A c s) /\ (forall d : A -> Prop, ((@closed_in A top d) /\ ((@SUBSET A c d) /\ (@SUBSET A d s))) -> ~ (@connected_in A top (@DIFF A (@topspace A top) d))))). +Axiom thm_KURATOWSKI_COMPONENT_NUMBER_INVARIANCE : forall {A : Type'}, forall top : Topology A, ((@compact_space A top) /\ ((@hausdorff_space A top) /\ ((@locally_connected_space A top) /\ (@hereditarily A (@normal_space A) top)))) -> (forall s : A -> Prop, forall t : A -> Prop, forall n : N, ((@closed_in A top s) /\ ((@closed_in A top t) /\ (@homeomorphic_space A A (@subtopology A top s) (@subtopology A top t)))) -> (@HAS_SIZE (A -> Prop) (@connected_components_of A (@subtopology A top (@DIFF A (@topspace A top) s))) n) = (@HAS_SIZE (A -> Prop) (@connected_components_of A (@subtopology A top (@DIFF A (@topspace A top) t))) n)) = (forall s : A -> Prop, forall t : A -> Prop, forall n : N, (@homeomorphic_space A A (@subtopology A top s) (@subtopology A top t)) -> (@HAS_SIZE (A -> Prop) (@connected_components_of A (@subtopology A top (@DIFF A (@topspace A top) s))) n) = (@HAS_SIZE (A -> Prop) (@connected_components_of A (@subtopology A top (@DIFF A (@topspace A top) t))) n)). +Axiom thm_standard_simplex : forall p : N, (standard_simplex p) = (@GSPEC (N -> R) (fun GEN_PVAR_2117 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2117 ((forall i : N, (Rle (R_of_N (NUMERAL 0%N)) (x i)) /\ (Rle (x i) (R_of_N (NUMERAL (BIT1 0%N))))) /\ ((forall i : N, (N.lt p i) -> (x i) = (R_of_N (NUMERAL 0%N))) /\ ((@sum N (dotdot (NUMERAL 0%N) p) x) = (R_of_N (NUMERAL (BIT1 0%N)))))) x)). +Axiom thm_TOPSPACE_STANDARD_SIMPLEX : forall p : N, (@topspace (N -> R) (@subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (standard_simplex p))) = (standard_simplex p). +Axiom thm_BASIS_IN_STANDARD_SIMPLEX : forall p : N, forall i : N, (@IN (N -> R) (fun j : N => @COND R (j = i) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (standard_simplex p)) = (N.le i p). +Axiom thm_NONEMPTY_STANDARD_SIMPLEX : forall p : N, ~ ((standard_simplex p) = (@EMPTY (N -> R))). +Axiom thm_STANDARD_SIMPLEX_0 : (standard_simplex (NUMERAL 0%N)) = (@INSERT (N -> R) (fun j : N => @COND R (j = (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@EMPTY (N -> R))). +Axiom thm_STANDARD_SIMPLEX_MONO : forall p : N, forall q : N, (N.le p q) -> @SUBSET (N -> R) (standard_simplex p) (standard_simplex q). +Axiom thm_CLOSED_IN_STANDARD_SIMPLEX : forall p : N, @closed_in (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (standard_simplex p). +Axiom thm_COMPACT_IN_STANDARD_SIMPLEX : forall p : N, @compact_in (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (standard_simplex p). +Axiom thm_CONVEX_STANDARD_SIMPLEX : forall p : N, forall x : N -> R, forall y : N -> R, forall u : R, ((@IN (N -> R) x (standard_simplex p)) /\ ((@IN (N -> R) y (standard_simplex p)) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N))))))) -> @IN (N -> R) (fun i : N => Rplus (Rmult (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) (x i)) (Rmult u (y i))) (standard_simplex p). +Axiom thm_PATH_CONNECTED_IN_STANDARD_SIMPLEX : forall p : N, @path_connected_in (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (standard_simplex p). +Axiom thm_CONNECTED_IN_STANDARD_SIMPLEX : forall p : N, @connected_in (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (standard_simplex p). +Axiom thm_simplicial_face : forall k : N, forall x : N -> R, (simplicial_face k x) = (fun i : N => @COND R (N.lt i k) (x i) (@COND R (i = k) (R_of_N (NUMERAL 0%N)) (x (N.sub i (NUMERAL (BIT1 0%N)))))). +Axiom thm_SIMPLICIAL_FACE_IN_STANDARD_SIMPLEX : forall p : N, forall k : N, forall x : N -> R, ((N.le (NUMERAL (BIT1 0%N)) p) /\ ((N.le k p) /\ (@IN (N -> R) x (standard_simplex (N.sub p (NUMERAL (BIT1 0%N))))))) -> @IN (N -> R) (simplicial_face k x) (standard_simplex p). +Axiom thm_singular_simplex : forall {A : Type'}, forall top : Topology A, forall p : N, forall f : (N -> R) -> A, (@singular_simplex A (@pair N (Topology A) p top) f) = ((@continuous_map (N -> R) A (@pair (Topology (N -> R)) (Topology A) (@subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) (standard_simplex p)) top) f) /\ (@EXTENSIONAL (N -> R) A (standard_simplex p) f)). +Axiom thm_SINGULAR_SIMPLEX_EMPTY : forall {A : Type'}, forall p : N, forall top : Topology A, forall f : (N -> R) -> A, ((@topspace A top) = (@EMPTY A)) -> ~ (@singular_simplex A (@pair N (Topology A) p top) f). +Axiom thm_SINGULAR_SIMPLEX_MONO : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall f : (N -> R) -> A, ((@SUBSET A t s) /\ (@singular_simplex A (@pair N (Topology A) p (@subtopology A top t)) f)) -> @singular_simplex A (@pair N (Topology A) p (@subtopology A top s)) f. +Axiom thm_SINGULAR_SIMPLEX_SUBTOPOLOGY : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall f : (N -> R) -> A, (@singular_simplex A (@pair N (Topology A) p (@subtopology A top s)) f) = ((@singular_simplex A (@pair N (Topology A) p top) f) /\ (@SUBSET A (@IMAGE (N -> R) A f (standard_simplex p)) s)). +Axiom thm_singular_face : forall {_521279 : Type'}, forall p : N, forall f : (N -> R) -> _521279, forall k : N, (@singular_face _521279 p k f) = (@RESTRICTION (N -> R) _521279 (standard_simplex (N.sub p (NUMERAL (BIT1 0%N)))) (@o (N -> R) (N -> R) _521279 f (simplicial_face k))). +Axiom thm_SINGULAR_SIMPLEX_SINGULAR_FACE : forall {A : Type'}, forall p : N, forall top : Topology A, forall k : N, forall f : (N -> R) -> A, ((@singular_simplex A (@pair N (Topology A) p top) f) /\ ((N.le (NUMERAL (BIT1 0%N)) p) /\ (N.le k p))) -> @singular_simplex A (@pair N (Topology A) (N.sub p (NUMERAL (BIT1 0%N))) top) (@singular_face A p k f). +Axiom thm_singular_chain : forall {A : Type'}, forall c : frag ((N -> R) -> A), forall p : N, forall top : Topology A, (@singular_chain A (@pair N (Topology A) p top) c) = (@SUBSET ((N -> R) -> A) (@frag_support ((N -> R) -> A) c) (@singular_simplex A (@pair N (Topology A) p top))). +Axiom thm_SINGULAR_CHAIN_EMPTY : forall {A : Type'}, forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), ((@topspace A top) = (@EMPTY A)) -> (@singular_chain A (@pair N (Topology A) p top) c) = (c = (@frag_0 ((N -> R) -> A))). +Axiom thm_SINGULAR_CHAIN_MONO : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall c : frag ((N -> R) -> A), ((@SUBSET A t s) /\ (@singular_chain A (@pair N (Topology A) p (@subtopology A top t)) c)) -> @singular_chain A (@pair N (Topology A) p (@subtopology A top s)) c. +Axiom thm_SINGULAR_CHAIN_SUBTOPOLOGY : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p (@subtopology A top s)) c) = ((@singular_chain A (@pair N (Topology A) p top) c) /\ (forall f : (N -> R) -> A, (@IN ((N -> R) -> A) f (@frag_support ((N -> R) -> A) c)) -> @SUBSET A (@IMAGE (N -> R) A f (standard_simplex p)) s)). +Axiom thm_SINGULAR_CHAIN_0 : forall {A : Type'}, forall p : N, forall top : Topology A, @singular_chain A (@pair N (Topology A) p top) (@frag_0 ((N -> R) -> A)). +Axiom thm_SINGULAR_CHAIN_OF : forall {A : Type'}, forall p : N, forall top : Topology A, forall c : (N -> R) -> A, (@singular_chain A (@pair N (Topology A) p top) (@frag_of ((N -> R) -> A) c)) = (@singular_simplex A (@pair N (Topology A) p top) c). +Axiom thm_SINGULAR_CHAIN_CMUL : forall {A : Type'}, forall p : N, forall top : Topology A, forall a : Z, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p top) c) -> @singular_chain A (@pair N (Topology A) p top) (@frag_cmul ((N -> R) -> A) a c). +Axiom thm_SINGULAR_CHAIN_NEG : forall {A : Type'}, forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p top) (@frag_neg ((N -> R) -> A) c)) = (@singular_chain A (@pair N (Topology A) p top) c). +Axiom thm_SINGULAR_CHAIN_ADD : forall {A : Type'}, forall p : N, forall top : Topology A, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), ((@singular_chain A (@pair N (Topology A) p top) c1) /\ (@singular_chain A (@pair N (Topology A) p top) c2)) -> @singular_chain A (@pair N (Topology A) p top) (@frag_add ((N -> R) -> A) c1 c2). +Axiom thm_SINGULAR_CHAIN_SUB : forall {A : Type'}, forall p : N, forall top : Topology A, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), ((@singular_chain A (@pair N (Topology A) p top) c1) /\ (@singular_chain A (@pair N (Topology A) p top) c2)) -> @singular_chain A (@pair N (Topology A) p top) (@frag_sub ((N -> R) -> A) c1 c2). +Axiom thm_SINGULAR_CHAIN_SUM : forall {_521790 A : Type'}, forall p : N, forall top : Topology A, forall f : _521790 -> frag ((N -> R) -> A), forall k : _521790 -> Prop, (forall c : _521790, (@IN _521790 c k) -> @singular_chain A (@pair N (Topology A) p top) (f c)) -> @singular_chain A (@pair N (Topology A) p top) (@iterate _521790 (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) k f). +Axiom thm_SINGULAR_CHAIN_EXTEND : forall {A B : Type'}, forall p : N, forall top : Topology B, forall f : ((N -> R) -> A) -> frag ((N -> R) -> B), forall x : frag ((N -> R) -> A), (forall c : (N -> R) -> A, (@IN ((N -> R) -> A) c (@frag_support ((N -> R) -> A) x)) -> @singular_chain B (@pair N (Topology B) p top) (f c)) -> @singular_chain B (@pair N (Topology B) p top) (@frag_extend ((N -> R) -> A) ((N -> R) -> B) f x). +Axiom thm_chain_boundary : forall {A : Type'}, forall p : N, forall c : frag ((N -> R) -> A), (@chain_boundary A p c) = (@COND (frag ((N -> R) -> A)) (p = (NUMERAL 0%N)) (@frag_0 ((N -> R) -> A)) (@frag_extend ((N -> R) -> A) ((N -> R) -> A) (fun f : (N -> R) -> A => @iterate N (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) (dotdot (NUMERAL 0%N) p) (fun k : N => @frag_cmul ((N -> R) -> A) (int_pow (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) k) (@frag_of ((N -> R) -> A) (@singular_face A p k f)))) c)). +Axiom thm_SINGULAR_CHAIN_BOUNDARY : forall {A : Type'}, forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p top) c) -> @singular_chain A (@pair N (Topology A) (N.sub p (NUMERAL (BIT1 0%N))) top) (@chain_boundary A p c). +Axiom thm_SINGULAR_CHAIN_BOUNDARY_ALT : forall {A : Type'}, forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) (N.add p (NUMERAL (BIT1 0%N))) top) c) -> @singular_chain A (@pair N (Topology A) p top) (@chain_boundary A (N.add p (NUMERAL (BIT1 0%N))) c). +Axiom thm_CHAIN_BOUNDARY_0 : forall {A : Type'}, forall p : N, (@chain_boundary A p (@frag_0 ((N -> R) -> A))) = (@frag_0 ((N -> R) -> A)). +Axiom thm_CHAIN_BOUNDARY_CMUL : forall {A : Type'}, forall p : N, forall a : Z, forall c : frag ((N -> R) -> A), (@chain_boundary A p (@frag_cmul ((N -> R) -> A) a c)) = (@frag_cmul ((N -> R) -> A) a (@chain_boundary A p c)). +Axiom thm_CHAIN_BOUNDARY_NEG : forall {A : Type'}, forall p : N, forall c : frag ((N -> R) -> A), (@chain_boundary A p (@frag_neg ((N -> R) -> A) c)) = (@frag_neg ((N -> R) -> A) (@chain_boundary A p c)). +Axiom thm_CHAIN_BOUNDARY_ADD : forall {A : Type'}, forall p : N, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), (@chain_boundary A p (@frag_add ((N -> R) -> A) c1 c2)) = (@frag_add ((N -> R) -> A) (@chain_boundary A p c1) (@chain_boundary A p c2)). +Axiom thm_CHAIN_BOUNDARY_SUB : forall {A : Type'}, forall p : N, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), (@chain_boundary A p (@frag_sub ((N -> R) -> A) c1 c2)) = (@frag_sub ((N -> R) -> A) (@chain_boundary A p c1) (@chain_boundary A p c2)). +Axiom thm_CHAIN_BOUNDARY_SUM : forall {A K : Type'}, forall p : N, forall g : K -> frag ((N -> R) -> A), forall k : K -> Prop, (@FINITE K k) -> (@chain_boundary A p (@iterate K (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) k g)) = (@iterate K (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) k (@o K (frag ((N -> R) -> A)) (frag ((N -> R) -> A)) (@chain_boundary A p) g)). +Axiom thm_CHAIN_BOUNDARY_OF : forall {A : Type'}, forall p : N, forall f : (N -> R) -> A, (@chain_boundary A p (@frag_of ((N -> R) -> A) f)) = (@COND (frag ((N -> R) -> A)) (p = (NUMERAL 0%N)) (@frag_0 ((N -> R) -> A)) (@iterate N (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) (dotdot (NUMERAL 0%N) p) (fun k : N => @frag_cmul ((N -> R) -> A) (int_pow (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) k) (@frag_of ((N -> R) -> A) (@singular_face A p k f))))). +Axiom thm_mod_subset : forall {_522237 : Type'}, forall p : N, forall top : Topology _522237, forall c1 : frag ((N -> R) -> _522237), forall c2 : frag ((N -> R) -> _522237), (@mod_subset _522237 (@pair N (Topology _522237) p top) c1 c2) = (@singular_chain _522237 (@pair N (Topology _522237) p top) (@frag_sub ((N -> R) -> _522237) c1 c2)). +Axiom thm_MOD_SUBSET_EMPTY : forall {A : Type'}, forall p : N, forall top : Topology A, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), (@eq2 (frag ((N -> R) -> A)) c1 c2 (@mod_subset A (@pair N (Topology A) p (@subtopology A top (@EMPTY A))))) = (c1 = c2). +Axiom thm_MOD_SUBSET_REFL : forall {A : Type'}, forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), @eq2 (frag ((N -> R) -> A)) c c (@mod_subset A (@pair N (Topology A) p top)). +Axiom thm_MOD_SUBSET_CMUL : forall {A : Type'}, forall p : N, forall top : Topology A, forall a : Z, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), (@eq2 (frag ((N -> R) -> A)) c1 c2 (@mod_subset A (@pair N (Topology A) p top))) -> @eq2 (frag ((N -> R) -> A)) (@frag_cmul ((N -> R) -> A) a c1) (@frag_cmul ((N -> R) -> A) a c2) (@mod_subset A (@pair N (Topology A) p top)). +Axiom thm_MOD_SUBSET_ADD : forall {A : Type'}, forall p : N, forall top : Topology A, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), forall d1 : frag ((N -> R) -> A), forall d2 : frag ((N -> R) -> A), ((@eq2 (frag ((N -> R) -> A)) c1 c2 (@mod_subset A (@pair N (Topology A) p top))) /\ (@eq2 (frag ((N -> R) -> A)) d1 d2 (@mod_subset A (@pair N (Topology A) p top)))) -> @eq2 (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A) c1 d1) (@frag_add ((N -> R) -> A) c2 d2) (@mod_subset A (@pair N (Topology A) p top)). +Axiom thm_singular_relcycle : forall {_522468 : Type'}, forall c : frag ((N -> R) -> _522468), forall p : N, forall top : Topology _522468, forall s : _522468 -> Prop, (@singular_relcycle _522468 (@pair N (prod (Topology _522468) (_522468 -> Prop)) p (@pair (Topology _522468) (_522468 -> Prop) top s)) c) = ((@singular_chain _522468 (@pair N (Topology _522468) p top) c) /\ (@eq2 (frag ((N -> R) -> _522468)) (@chain_boundary _522468 p c) (@frag_0 ((N -> R) -> _522468)) (@mod_subset _522468 (@pair N (Topology _522468) (N.sub p (NUMERAL (BIT1 0%N))) (@subtopology _522468 top s))))). +Axiom thm_SINGULAR_RELCYCLE_RESTRICT : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) = (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@INTER A (@topspace A top) s)))). +Axiom thm_SINGULAR_RELCYCLE : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) = ((@singular_chain A (@pair N (Topology A) p top) c) /\ (@singular_chain A (@pair N (Topology A) (N.sub p (NUMERAL (BIT1 0%N))) (@subtopology A top s)) (@chain_boundary A p c))). +Axiom thm_SINGULAR_RELCYCLE_0 : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, @singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_0 ((N -> R) -> A)). +Axiom thm_SINGULAR_RELCYCLE_CMUL : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall a : Z, forall c : frag ((N -> R) -> A), (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) -> @singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_cmul ((N -> R) -> A) a c). +Axiom thm_SINGULAR_RELCYCLE_NEG : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_neg ((N -> R) -> A) c)) = (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c). +Axiom thm_SINGULAR_RELCYCLE_ADD : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), ((@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1) /\ (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c2)) -> @singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_add ((N -> R) -> A) c1 c2). +Axiom thm_SINGULAR_RELCYCLE_SUM : forall {A K : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall f : K -> frag ((N -> R) -> A), forall k : K -> Prop, ((@FINITE K k) /\ (forall c : K, (@IN K c k) -> @singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (f c))) -> @singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@iterate K (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) k f). +Axiom thm_SINGULAR_RELCYCLE_SUB : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), ((@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1) /\ (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c2)) -> @singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_sub ((N -> R) -> A) c1 c2). +Axiom thm_SINGULAR_CYCLE : forall {A : Type'}, forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@EMPTY A))) c) = ((@singular_chain A (@pair N (Topology A) p top) c) /\ ((@chain_boundary A p c) = (@frag_0 ((N -> R) -> A)))). +Axiom thm_SINGULAR_CYCLE_MONO : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall c : frag ((N -> R) -> A), ((@SUBSET A t s) /\ (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top t) (@EMPTY A))) c)) -> @singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A))) c. +Axiom thm_singular_relboundary : forall {_523075 : Type'}, forall c : frag ((N -> R) -> _523075), forall p : N, forall top : Topology _523075, forall s : _523075 -> Prop, (@singular_relboundary _523075 (@pair N (prod (Topology _523075) (_523075 -> Prop)) p (@pair (Topology _523075) (_523075 -> Prop) top s)) c) = (exists d : frag ((N -> R) -> _523075), (@singular_chain _523075 (@pair N (Topology _523075) (N.add p (NUMERAL (BIT1 0%N))) top) d) /\ (@eq2 (frag ((N -> R) -> _523075)) (@chain_boundary _523075 (N.add p (NUMERAL (BIT1 0%N))) d) c (@mod_subset _523075 (@pair N (Topology _523075) p (@subtopology _523075 top s))))). +Axiom thm_SINGULAR_RELBOUNDARY_RESTRICT : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) = (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@INTER A (@topspace A top) s)))). +Axiom thm_SINGULAR_RELBOUNDARY_ALT : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) = (exists d : frag ((N -> R) -> A), exists e : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) (N.add p (NUMERAL (BIT1 0%N))) top) d) /\ ((@singular_chain A (@pair N (Topology A) p (@subtopology A top s)) e) /\ ((@chain_boundary A (N.add p (NUMERAL (BIT1 0%N))) d) = (@frag_add ((N -> R) -> A) c e)))). +Axiom thm_SINGULAR_RELBOUNDARY : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) = (exists d : frag ((N -> R) -> A), exists e : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) (N.add p (NUMERAL (BIT1 0%N))) top) d) /\ ((@singular_chain A (@pair N (Topology A) p (@subtopology A top s)) e) /\ ((@frag_add ((N -> R) -> A) (@chain_boundary A (N.add p (NUMERAL (BIT1 0%N))) d) e) = c))). +Axiom thm_SINGULAR_BOUNDARY : forall {A : Type'}, forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@EMPTY A))) c) = (exists d : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) (N.add p (NUMERAL (BIT1 0%N))) top) d) /\ ((@chain_boundary A (N.add p (NUMERAL (BIT1 0%N))) d) = c)). +Axiom thm_SINGULAR_BOUNDARY_IMP_CHAIN : forall {A : Type'}, forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@EMPTY A))) c) -> @singular_chain A (@pair N (Topology A) p top) c. +Axiom thm_SINGULAR_BOUNDARY_MONO : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall c : frag ((N -> R) -> A), ((@SUBSET A t s) /\ (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top t) (@EMPTY A))) c)) -> @singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A))) c. +Axiom thm_SINGULAR_RELBOUNDARY_IMP_CHAIN : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) -> @singular_chain A (@pair N (Topology A) p top) c. +Axiom thm_SINGULAR_CHAIN_IMP_RELBOUNDARY : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p (@subtopology A top s)) c) -> @singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c. +Axiom thm_SINGULAR_RELBOUNDARY_0 : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, @singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_0 ((N -> R) -> A)). +Axiom thm_SINGULAR_RELBOUNDARY_CMUL : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall a : Z, forall c : frag ((N -> R) -> A), (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) -> @singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_cmul ((N -> R) -> A) a c). +Axiom thm_SINGULAR_RELBOUNDARY_NEG : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_neg ((N -> R) -> A) c)) = (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c). +Axiom thm_SINGULAR_RELBOUNDARY_ADD : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), ((@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1) /\ (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c2)) -> @singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_add ((N -> R) -> A) c1 c2). +Axiom thm_SINGULAR_RELBOUNDARY_SUB : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), ((@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1) /\ (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c2)) -> @singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_sub ((N -> R) -> A) c1 c2). +Axiom thm_homologous_rel : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1 c2) = (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_sub ((N -> R) -> A) c1 c2)). +Axiom thm_HOMOLOGOUS_REL_RESTRICT : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) = (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@INTER A (@topspace A top) s)))). +Axiom thm_HOMOLOGOUS_REL_REFL : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), @homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c c. +Axiom thm_HOMOLOGOUS_REL_SYM : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1 c2) = (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c2 c1). +Axiom thm_HOMOLOGOUS_REL_TRANS : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), forall c3 : frag ((N -> R) -> A), ((@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1 c2) /\ (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c2 c3)) -> @homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1 c3. +Axiom thm_HOMOLOGOUS_REL_EQ : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), ((@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1) = (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c2)) = (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1 c2). +Axiom thm_HOMOLOGOUS_REL_SINGULAR_CHAIN : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1 c2) -> (@singular_chain A (@pair N (Topology A) p top) c1) = (@singular_chain A (@pair N (Topology A) p top) c2). +Axiom thm_HOMOLOGOUS_REL_ADD : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c1 : frag ((N -> R) -> A), forall c1' : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), forall c2' : frag ((N -> R) -> A), ((@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1 c1') /\ (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c2 c2')) -> @homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_add ((N -> R) -> A) c1 c2) (@frag_add ((N -> R) -> A) c1' c2'). +Axiom thm_HOMOLOGOUS_REL_SUB : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c1 : frag ((N -> R) -> A), forall c1' : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), forall c2' : frag ((N -> R) -> A), ((@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1 c1') /\ (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c2 c2')) -> @homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@frag_sub ((N -> R) -> A) c1 c2) (@frag_sub ((N -> R) -> A) c1' c2'). +Axiom thm_HOMOLOGOUS_REL_SUM : forall {A K : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall f : K -> frag ((N -> R) -> A), forall g : K -> frag ((N -> R) -> A), forall k : K -> Prop, ((forall i : K, (@IN K i k) -> @homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (f i) (g i)) /\ ((@FINITE K (@GSPEC K (fun GEN_PVAR_2128 : K => exists i : K, @SETSPEC K GEN_PVAR_2128 ((@IN K i k) /\ (~ ((f i) = (@frag_0 ((N -> R) -> A))))) i))) /\ (@FINITE K (@GSPEC K (fun GEN_PVAR_2129 : K => exists i : K, @SETSPEC K GEN_PVAR_2129 ((@IN K i k) /\ (~ ((g i) = (@frag_0 ((N -> R) -> A))))) i))))) -> @homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) (@iterate K (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) k f) (@iterate K (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) k g). +Axiom thm_CHAIN_HOMOTOPIC_IMP_HOMOLOGOUS_REL : forall {A B : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall h : (frag ((N -> R) -> A)) -> frag ((N -> R) -> B), forall h' : (frag ((N -> R) -> A)) -> frag ((N -> R) -> B), forall f : (frag ((N -> R) -> A)) -> frag ((N -> R) -> B), forall g : (frag ((N -> R) -> A)) -> frag ((N -> R) -> B), ((forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p top) c) -> @singular_chain B (@pair N (Topology B) (N.add p (NUMERAL (BIT1 0%N))) top') (h c)) /\ ((forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) (N.sub p (NUMERAL (BIT1 0%N))) (@subtopology A top s)) c) -> @singular_chain B (@pair N (Topology B) p (@subtopology B top' t)) (h' c)) /\ (forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p top) c) -> (@frag_add ((N -> R) -> B) (@chain_boundary B (N.add p (NUMERAL (BIT1 0%N))) (h c)) (h' (@chain_boundary A p c))) = (@frag_sub ((N -> R) -> B) (f c) (g c))))) -> forall c : frag ((N -> R) -> A), (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) -> @homologous_rel B (@pair N (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)) (f c) (g c). +Axiom thm_CHAIN_BOUNDARY_BOUNDARY : forall {A : Type'}, forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p top) c) -> (@chain_boundary A (N.sub p (NUMERAL (BIT1 0%N))) (@chain_boundary A p c)) = (@frag_0 ((N -> R) -> A)). +Axiom thm_CHAIN_BOUNDARY_BOUNDARY_ALT : forall {A : Type'}, forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) (N.add p (NUMERAL (BIT1 0%N))) top) c) -> (@chain_boundary A p (@chain_boundary A (N.add p (NUMERAL (BIT1 0%N))) c)) = (@frag_0 ((N -> R) -> A)). +Axiom thm_SINGULAR_RELBOUNDARY_IMP_RELCYCLE : forall {A : Type'}, forall p : N, forall s : A -> Prop, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) -> @singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c. +Axiom thm_HOMOLOGOUS_REL_SINGULAR_RELCYCLE : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1 c2) -> (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c1) = (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c2). +Axiom thm_simplex_map : forall {A B : Type'}, forall p : N, forall g : A -> B, forall c : (N -> R) -> A, (@simplex_map A B p g c) = (@RESTRICTION (N -> R) B (standard_simplex p) (@o (N -> R) A B g c)). +Axiom thm_SINGULAR_SIMPLEX_SIMPLEX_MAP : forall {A B : Type'}, forall p : N, forall top : Topology A, forall top' : Topology B, forall f : (N -> R) -> A, forall g : A -> B, ((@singular_simplex A (@pair N (Topology A) p top) f) /\ (@continuous_map A B (@pair (Topology A) (Topology B) top top') g)) -> @singular_simplex B (@pair N (Topology B) p top') (@simplex_map A B p g f). +Axiom thm_SIMPLEX_MAP_EQ : forall {A B : Type'}, forall p : N, forall f : A -> B, forall g : A -> B, forall top : Topology A, forall c : (N -> R) -> A, ((@singular_simplex A (@pair N (Topology A) p top) c) /\ (forall x : A, (@IN A x (@topspace A top)) -> (f x) = (g x))) -> (@simplex_map A B p f c) = (@simplex_map A B p g c). +Axiom thm_SIMPLEX_MAP_ID_GEN : forall {A : Type'}, forall p : N, forall f : A -> A, forall top : Topology A, forall c : (N -> R) -> A, ((@singular_simplex A (@pair N (Topology A) p top) c) /\ (forall x : A, (@IN A x (@topspace A top)) -> (f x) = x)) -> (@simplex_map A A p f c) = c. +Axiom thm_SIMPLEX_MAP_I : forall {A : Type'}, forall p : N, (@simplex_map A A p (@I A)) = (@RESTRICTION (N -> R) A (standard_simplex p)). +Axiom thm_SIMPLEX_MAP_COMPOSE : forall {A B C : Type'}, forall p : N, forall g : A -> B, forall h : B -> C, (@simplex_map A C p (@o A B C h g)) = (@o ((N -> R) -> A) ((N -> R) -> B) ((N -> R) -> C) (@simplex_map B C p h) (@simplex_map A B p g)). +Axiom thm_SINGULAR_FACE_SIMPLEX_MAP : forall {A B : Type'}, forall p : N, forall k : N, forall f : A -> B, forall c : (N -> R) -> A, ((N.le (NUMERAL (BIT1 0%N)) p) /\ (N.le k p)) -> (@singular_face B p k (@simplex_map A B p f c)) = (@simplex_map A B (N.sub p (NUMERAL (BIT1 0%N))) f (@o (N -> R) (N -> R) A c (simplicial_face k))). +Axiom thm_chain_map : forall {A B : Type'}, forall p : N, forall g : A -> B, forall c : frag ((N -> R) -> A), (@chain_map A B p g c) = (@frag_extend ((N -> R) -> A) ((N -> R) -> B) (@o ((N -> R) -> A) ((N -> R) -> B) (frag ((N -> R) -> B)) (@frag_of ((N -> R) -> B)) (@simplex_map A B p g)) c). +Axiom thm_SINGULAR_CHAIN_CHAIN_MAP : forall {A B : Type'}, forall p : N, forall top : Topology A, forall top' : Topology B, forall g : A -> B, forall c : frag ((N -> R) -> A), ((@singular_chain A (@pair N (Topology A) p top) c) /\ (@continuous_map A B (@pair (Topology A) (Topology B) top top') g)) -> @singular_chain B (@pair N (Topology B) p top') (@chain_map A B p g c). +Axiom thm_CHAIN_MAP_0 : forall {A B : Type'}, forall p : N, forall g : A -> B, (@chain_map A B p g (@frag_0 ((N -> R) -> A))) = (@frag_0 ((N -> R) -> B)). +Axiom thm_CHAIN_MAP_OF : forall {A B : Type'}, forall p : N, forall g : A -> B, forall f : (N -> R) -> A, (@chain_map A B p g (@frag_of ((N -> R) -> A) f)) = (@frag_of ((N -> R) -> B) (@simplex_map A B p g f)). +Axiom thm_CHAIN_MAP_CMUL : forall {A B : Type'}, forall p : N, forall g : A -> B, forall a : Z, forall c : frag ((N -> R) -> A), (@chain_map A B p g (@frag_cmul ((N -> R) -> A) a c)) = (@frag_cmul ((N -> R) -> B) a (@chain_map A B p g c)). +Axiom thm_CHAIN_MAP_NEG : forall {A B : Type'}, forall p : N, forall g : A -> B, forall c : frag ((N -> R) -> A), (@chain_map A B p g (@frag_neg ((N -> R) -> A) c)) = (@frag_neg ((N -> R) -> B) (@chain_map A B p g c)). +Axiom thm_CHAIN_MAP_ADD : forall {A B : Type'}, forall p : N, forall g : A -> B, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), (@chain_map A B p g (@frag_add ((N -> R) -> A) c1 c2)) = (@frag_add ((N -> R) -> B) (@chain_map A B p g c1) (@chain_map A B p g c2)). +Axiom thm_CHAIN_MAP_SUB : forall {A B : Type'}, forall p : N, forall g : A -> B, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), (@chain_map A B p g (@frag_sub ((N -> R) -> A) c1 c2)) = (@frag_sub ((N -> R) -> B) (@chain_map A B p g c1) (@chain_map A B p g c2)). +Axiom thm_CHAIN_MAP_SUM : forall {A B K : Type'}, forall p : N, forall g : A -> B, forall f : K -> frag ((N -> R) -> A), forall k : K -> Prop, (@FINITE K k) -> (@chain_map A B p g (@iterate K (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) k f)) = (@iterate K (frag ((N -> R) -> B)) (@frag_add ((N -> R) -> B)) k (@o K (frag ((N -> R) -> A)) (frag ((N -> R) -> B)) (@chain_map A B p g) f)). +Axiom thm_CHAIN_MAP_EQ : forall {A B : Type'}, forall p : N, forall f : A -> B, forall g : A -> B, forall top : Topology A, forall c : frag ((N -> R) -> A), ((@singular_chain A (@pair N (Topology A) p top) c) /\ (forall x : A, (@IN A x (@topspace A top)) -> (f x) = (g x))) -> (@chain_map A B p f c) = (@chain_map A B p g c). +Axiom thm_CHAIN_MAP_ID_GEN : forall {A : Type'}, forall p : N, forall f : A -> A, forall top : Topology A, forall c : frag ((N -> R) -> A), ((@singular_chain A (@pair N (Topology A) p top) c) /\ (forall x : A, (@IN A x (@topspace A top)) -> (f x) = x)) -> (@chain_map A A p f c) = c. +Axiom thm_CHAIN_MAP_ID : forall {B : Type'}, forall p : N, forall top : Topology B, forall c : frag ((N -> R) -> B), (@singular_chain B (@pair N (Topology B) p top) c) -> (@chain_map B B p (fun x : B => x) c) = c. +Axiom thm_CHAIN_MAP_I : forall {_526368 : Type'}, forall p : N, (@chain_map _526368 _526368 p (@I _526368)) = (@frag_extend ((N -> R) -> _526368) ((N -> R) -> _526368) (@o ((N -> R) -> _526368) ((N -> R) -> _526368) (frag ((N -> R) -> _526368)) (@frag_of ((N -> R) -> _526368)) (@RESTRICTION (N -> R) _526368 (standard_simplex p)))). +Axiom thm_CHAIN_MAP_COMPOSE : forall {A B C : Type'}, forall p : N, forall g : A -> B, forall h : B -> C, (@chain_map A C p (@o A B C h g)) = (@o (frag ((N -> R) -> A)) (frag ((N -> R) -> B)) (frag ((N -> R) -> C)) (@chain_map B C p h) (@chain_map A B p g)). +Axiom thm_SINGULAR_SIMPLEX_CHAIN_MAP_I : forall {A : Type'}, forall p : N, forall top : Topology A, forall f : (N -> R) -> A, (@singular_simplex A (@pair N (Topology A) p top) f) -> (@chain_map (N -> R) A p f (@frag_of ((N -> R) -> N -> R) (@RESTRICTION (N -> R) (N -> R) (standard_simplex p) (@I (N -> R))))) = (@frag_of ((N -> R) -> A) f). +Axiom thm_CHAIN_BOUNDARY_CHAIN_MAP : forall {A B : Type'}, forall p : N, forall top : Topology A, forall g : A -> B, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p top) c) -> (@chain_boundary B p (@chain_map A B p g c)) = (@chain_map A B (N.sub p (NUMERAL (BIT1 0%N))) g (@chain_boundary A p c)). +Axiom thm_SINGULAR_RELCYCLE_CHAIN_MAP : forall {A B : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall g : A -> B, forall c : frag ((N -> R) -> A), ((@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') g) /\ (@SUBSET B (@IMAGE A B g s) t))) -> @singular_relcycle B (@pair N (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)) (@chain_map A B p g c). +Axiom thm_SINGULAR_RELBOUNDARY_CHAIN_MAP : forall {A B : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall g : A -> B, forall c : frag ((N -> R) -> A), ((@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) /\ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') g) /\ (@SUBSET B (@IMAGE A B g s) t))) -> @singular_relboundary B (@pair N (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)) (@chain_map A B p g c). +Axiom thm_SINGULAR_SIMPLEX_SING : forall {A : Type'}, forall p : N, forall top : Topology A, forall a : A, forall f : (N -> R) -> A, ((@topspace A top) = (@INSERT A a (@EMPTY A))) -> (@singular_simplex A (@pair N (Topology A) p top) f) = (f = (@RESTRICTION (N -> R) A (standard_simplex p) (fun x : N -> R => a))). +Axiom thm_SINGULAR_CHAIN_SING : forall {A : Type'}, forall p : N, forall top : Topology A, forall a : A, forall c : frag ((N -> R) -> A), ((@topspace A top) = (@INSERT A a (@EMPTY A))) -> (@singular_chain A (@pair N (Topology A) p top) c) = (exists b : Z, c = (@frag_cmul ((N -> R) -> A) b (@frag_of ((N -> R) -> A) (@RESTRICTION (N -> R) A (standard_simplex p) (fun x : N -> R => a))))). +Axiom thm_CHAIN_BOUNDARY_OF_SING : forall {A : Type'}, forall p : N, forall top : Topology A, forall a : A, forall c : frag ((N -> R) -> A), (((@topspace A top) = (@INSERT A a (@EMPTY A))) /\ (@singular_chain A (@pair N (Topology A) p top) c)) -> (@chain_boundary A p c) = (@COND (frag ((N -> R) -> A)) ((p = (NUMERAL 0%N)) \/ (ODD p)) (@frag_0 ((N -> R) -> A)) (@frag_extend ((N -> R) -> A) ((N -> R) -> A) (fun f : (N -> R) -> A => @frag_of ((N -> R) -> A) (@RESTRICTION (N -> R) A (standard_simplex (N.sub p (NUMERAL (BIT1 0%N)))) (fun x : N -> R => a))) c)). +Axiom thm_SINGULAR_CYCLE_SING : forall {A : Type'}, forall p : N, forall top : Topology A, forall a : A, forall c : frag ((N -> R) -> A), ((@topspace A top) = (@INSERT A a (@EMPTY A))) -> (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@EMPTY A))) c) = ((@singular_chain A (@pair N (Topology A) p top) c) /\ ((p = (NUMERAL 0%N)) \/ ((ODD p) \/ (c = (@frag_0 ((N -> R) -> A)))))). +Axiom thm_SINGULAR_BOUNDARY_SING : forall {A : Type'}, forall p : N, forall top : Topology A, forall a : A, forall c : frag ((N -> R) -> A), ((@topspace A top) = (@INSERT A a (@EMPTY A))) -> (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@EMPTY A))) c) = ((@singular_chain A (@pair N (Topology A) p top) c) /\ ((ODD p) \/ (c = (@frag_0 ((N -> R) -> A))))). +Axiom thm_SINGULAR_BOUNDARY_EQ_CYCLE_SING : forall {A : Type'}, forall p : N, forall top : Topology A, forall a : A, forall c : frag ((N -> R) -> A), (((@topspace A top) = (@INSERT A a (@EMPTY A))) /\ (N.le (NUMERAL (BIT1 0%N)) p)) -> (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@EMPTY A))) c) = (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@EMPTY A))) c). +Axiom thm_oriented_simplex : forall p : N, forall l : N -> N -> R, (oriented_simplex p l) = (@RESTRICTION (N -> R) (N -> R) (standard_simplex p) (fun x : N -> R => fun i : N => @sum N (dotdot (NUMERAL 0%N) p) (fun j : N => Rmult (l j i) (x j)))). +Axiom thm_simplicial_simplex : forall s : (N -> R) -> Prop, forall f : (N -> R) -> N -> R, forall p : N, (simplicial_simplex (@pair N ((N -> R) -> Prop) p s) f) = ((@singular_simplex (N -> R) (@pair N (Topology (N -> R)) p (@subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) s)) f) /\ (exists l : N -> N -> R, f = (oriented_simplex p l))). +Axiom thm_SIMPLICIAL_SIMPLEX : forall p : N, forall s : (N -> R) -> Prop, forall f : (N -> R) -> N -> R, (simplicial_simplex (@pair N ((N -> R) -> Prop) p s) f) = ((@SUBSET (N -> R) (@IMAGE (N -> R) (N -> R) f (standard_simplex p)) s) /\ (exists l : N -> N -> R, f = (oriented_simplex p l))). +Axiom thm_SIMPLICIAL_SIMPLEX_EMPTY : forall p : N, forall f : (N -> R) -> N -> R, ~ (simplicial_simplex (@pair N ((N -> R) -> Prop) p (@EMPTY (N -> R))) f). +Axiom thm_simplicial_chain : forall c : frag ((N -> R) -> N -> R), forall p : N, forall s : (N -> R) -> Prop, (simplicial_chain (@pair N ((N -> R) -> Prop) p s) c) = (@SUBSET ((N -> R) -> N -> R) (@frag_support ((N -> R) -> N -> R) c) (simplicial_simplex (@pair N ((N -> R) -> Prop) p s))). +Axiom thm_SIMPLICIAL_CHAIN_0 : forall p : N, forall s : (N -> R) -> Prop, simplicial_chain (@pair N ((N -> R) -> Prop) p s) (@frag_0 ((N -> R) -> N -> R)). +Axiom thm_SIMPLICIAL_CHAIN_OF : forall p : N, forall s : (N -> R) -> Prop, forall c : (N -> R) -> N -> R, (simplicial_chain (@pair N ((N -> R) -> Prop) p s) (@frag_of ((N -> R) -> N -> R) c)) = (simplicial_simplex (@pair N ((N -> R) -> Prop) p s) c). +Axiom thm_SIMPLICIAL_CHAIN_CMUL : forall p : N, forall s : (N -> R) -> Prop, forall a : Z, forall c : frag ((N -> R) -> N -> R), (simplicial_chain (@pair N ((N -> R) -> Prop) p s) c) -> simplicial_chain (@pair N ((N -> R) -> Prop) p s) (@frag_cmul ((N -> R) -> N -> R) a c). +Axiom thm_SIMPLICIAL_CHAIN_SUB : forall p : N, forall s : (N -> R) -> Prop, forall c1 : frag ((N -> R) -> N -> R), forall c2 : frag ((N -> R) -> N -> R), ((simplicial_chain (@pair N ((N -> R) -> Prop) p s) c1) /\ (simplicial_chain (@pair N ((N -> R) -> Prop) p s) c2)) -> simplicial_chain (@pair N ((N -> R) -> Prop) p s) (@frag_sub ((N -> R) -> N -> R) c1 c2). +Axiom thm_SIMPLICIAL_CHAIN_SUM : forall {_533942 : Type'}, forall p : N, forall s : (N -> R) -> Prop, forall f : _533942 -> frag ((N -> R) -> N -> R), forall k : _533942 -> Prop, (forall c : _533942, (@IN _533942 c k) -> simplicial_chain (@pair N ((N -> R) -> Prop) p s) (f c)) -> simplicial_chain (@pair N ((N -> R) -> Prop) p s) (@iterate _533942 (frag ((N -> R) -> N -> R)) (@frag_add ((N -> R) -> N -> R)) k f). +Axiom thm_SIMPLICIAL_SIMPLEX_ORIENTED_SIMPLEX : forall p : N, forall s : (N -> R) -> Prop, forall l : N -> N -> R, (simplicial_simplex (@pair N ((N -> R) -> Prop) p s) (oriented_simplex p l)) = (@SUBSET (N -> R) (@IMAGE (N -> R) (N -> R) (fun x : N -> R => fun i : N => @sum N (dotdot (NUMERAL 0%N) p) (fun j : N => Rmult (l j i) (x j))) (standard_simplex p)) s). +Axiom thm_SIMPLICIAL_IMP_SINGULAR_SIMPLEX : forall p : N, forall s : (N -> R) -> Prop, forall f : (N -> R) -> N -> R, (simplicial_simplex (@pair N ((N -> R) -> Prop) p s) f) -> @singular_simplex (N -> R) (@pair N (Topology (N -> R)) p (@subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) s)) f. +Axiom thm_SIMPLICIAL_IMP_SINGULAR_CHAIN : forall p : N, forall s : (N -> R) -> Prop, forall c : frag ((N -> R) -> N -> R), (simplicial_chain (@pair N ((N -> R) -> Prop) p s) c) -> @singular_chain (N -> R) (@pair N (Topology (N -> R)) p (@subtopology (N -> R) (@product_topology R N (@UNIV N) (fun i : N => euclideanreal)) s)) c. +Axiom thm_ORIENTED_SIMPLEX_EQ : forall p : N, forall l : N -> N -> R, forall l' : N -> N -> R, ((oriented_simplex p l) = (oriented_simplex p l')) = (forall i : N, (N.le i p) -> (l i) = (l' i)). +Axiom thm_SINGULAR_FACE_ORIENTED_SIMPLEX : forall p : N, forall k : N, forall l : N -> N -> R, ((N.le (NUMERAL (BIT1 0%N)) p) /\ (N.le k p)) -> (@singular_face (N -> R) p k (oriented_simplex p l)) = (oriented_simplex (N.sub p (NUMERAL (BIT1 0%N))) (fun j : N => @COND (N -> R) (N.lt j k) (l j) (l (N.add j (NUMERAL (BIT1 0%N)))))). +Axiom thm_SIMPLICIAL_SIMPLEX_SINGULAR_FACE : forall p : N, forall s : (N -> R) -> Prop, forall k : N, forall f : (N -> R) -> N -> R, ((simplicial_simplex (@pair N ((N -> R) -> Prop) p s) f) /\ ((N.le (NUMERAL (BIT1 0%N)) p) /\ (N.le k p))) -> simplicial_simplex (@pair N ((N -> R) -> Prop) (N.sub p (NUMERAL (BIT1 0%N))) s) (@singular_face (N -> R) p k f). +Axiom thm_SIMPLICIAL_CHAIN_BOUNDARY : forall p : N, forall s : (N -> R) -> Prop, forall c : frag ((N -> R) -> N -> R), (simplicial_chain (@pair N ((N -> R) -> Prop) p s) c) -> simplicial_chain (@pair N ((N -> R) -> Prop) (N.sub p (NUMERAL (BIT1 0%N))) s) (@chain_boundary (N -> R) p c). +Axiom thm_SIMPLICIAL_SIMPLEX_SIMPLEX_CONE : forall p : N, forall s : (N -> R) -> Prop, forall t : (N -> R) -> Prop, forall v : N -> R, forall f : (N -> R) -> N -> R, ((simplicial_simplex (@pair N ((N -> R) -> Prop) p s) f) /\ (forall x : N -> R, forall u : R, ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle u (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@IN (N -> R) x s))) -> @IN (N -> R) (fun i : N => Rplus (Rmult (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) (v i)) (Rmult u (x i))) t)) -> simplicial_simplex (@pair N ((N -> R) -> Prop) (N.add p (NUMERAL (BIT1 0%N))) t) (simplex_cone p v f). +Axiom thm_simplicial_cone : forall p : N, forall v : N -> R, (simplicial_cone p v) = (@frag_extend ((N -> R) -> N -> R) ((N -> R) -> N -> R) (@o ((N -> R) -> N -> R) ((N -> R) -> N -> R) (frag ((N -> R) -> N -> R)) (@frag_of ((N -> R) -> N -> R)) (simplex_cone p v))). +Axiom thm_SIMPLICIAL_CHAIN_SIMPLICIAL_CONE : forall p : N, forall s : (N -> R) -> Prop, forall t : (N -> R) -> Prop, forall v : N -> R, forall c : frag ((N -> R) -> N -> R), ((simplicial_chain (@pair N ((N -> R) -> Prop) p s) c) /\ (forall x : N -> R, forall u : R, ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle u (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@IN (N -> R) x s))) -> @IN (N -> R) (fun i : N => Rplus (Rmult (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) (v i)) (Rmult u (x i))) t)) -> simplicial_chain (@pair N ((N -> R) -> Prop) (N.add p (NUMERAL (BIT1 0%N))) t) (simplicial_cone p v c). +Axiom thm_CHAIN_BOUNDARY_SIMPLICIAL_CONE_OF : forall p : N, forall s : (N -> R) -> Prop, forall v : N -> R, forall f : (N -> R) -> N -> R, (simplicial_simplex (@pair N ((N -> R) -> Prop) p s) f) -> (@chain_boundary (N -> R) (N.add p (NUMERAL (BIT1 0%N))) (simplicial_cone p v (@frag_of ((N -> R) -> N -> R) f))) = (@frag_sub ((N -> R) -> N -> R) (@frag_of ((N -> R) -> N -> R) f) (@COND (frag ((N -> R) -> N -> R)) (p = (NUMERAL 0%N)) (@frag_of ((N -> R) -> N -> R) (@RESTRICTION (N -> R) (N -> R) (standard_simplex p) (fun u : N -> R => v))) (simplicial_cone (N.sub p (NUMERAL (BIT1 0%N))) v (@chain_boundary (N -> R) p (@frag_of ((N -> R) -> N -> R) f))))). +Axiom thm_CHAIN_BOUNDARY_SIMPLICIAL_CONE : forall p : N, forall s : (N -> R) -> Prop, forall v : N -> R, forall c : frag ((N -> R) -> N -> R), (simplicial_chain (@pair N ((N -> R) -> Prop) p s) c) -> (@chain_boundary (N -> R) (N.add p (NUMERAL (BIT1 0%N))) (simplicial_cone p v c)) = (@frag_sub ((N -> R) -> N -> R) c (@COND (frag ((N -> R) -> N -> R)) (p = (NUMERAL 0%N)) (@frag_extend ((N -> R) -> N -> R) ((N -> R) -> N -> R) (fun f : (N -> R) -> N -> R => @frag_of ((N -> R) -> N -> R) (@RESTRICTION (N -> R) (N -> R) (standard_simplex p) (fun u : N -> R => v))) c) (simplicial_cone (N.sub p (NUMERAL (BIT1 0%N))) v (@chain_boundary (N -> R) p c)))). +Axiom thm_SIMPLEX_MAP_ORIENTED_SIMPLEX : forall p : N, forall q : N, forall r : N, forall g : (N -> R) -> N -> R, forall l : N -> N -> R, forall s : (N -> R) -> Prop, ((simplicial_simplex (@pair N ((N -> R) -> Prop) p (standard_simplex q)) (oriented_simplex p l)) /\ ((simplicial_simplex (@pair N ((N -> R) -> Prop) r s) g) /\ (N.le q r))) -> (@simplex_map (N -> R) (N -> R) p g (oriented_simplex p l)) = (oriented_simplex p (@o N (N -> R) (N -> R) g l)). +Axiom thm_CHAIN_MAP_SIMPLICIAL_CONE : forall s : (N -> R) -> Prop, forall p : N, forall q : N, forall r : N, forall v : N -> R, forall c : frag ((N -> R) -> N -> R), forall g : (N -> R) -> N -> R, ((simplicial_simplex (@pair N ((N -> R) -> Prop) r s) g) /\ ((simplicial_chain (@pair N ((N -> R) -> Prop) p (standard_simplex q)) c) /\ ((@IN (N -> R) v (standard_simplex q)) /\ (N.le q r)))) -> (@chain_map (N -> R) (N -> R) (N.add p (NUMERAL (BIT1 0%N))) g (simplicial_cone p v c)) = (simplicial_cone p (g v) (@chain_map (N -> R) (N -> R) p g c)). +Axiom thm_simplicial_vertex : forall f : (N -> R) -> N -> R, forall i : N, (simplicial_vertex i f) = (f (fun j : N => @COND R (j = i) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_SIMPLICIAL_VERTEX_ORIENTED_SIMPLEX : forall i : N, forall p : N, forall l : N -> N -> R, (simplicial_vertex i (oriented_simplex p l)) = (@COND (N -> R) (N.le i p) (l i) (@ARB (N -> R))). +Axiom thm_simplicial_subdivision : forall (p : N), ((simplicial_subdivision (NUMERAL 0%N)) = (@I (frag ((N -> R) -> N -> R)))) /\ ((simplicial_subdivision (N.succ p)) = (@frag_extend ((N -> R) -> N -> R) ((N -> R) -> N -> R) (fun f : (N -> R) -> N -> R => simplicial_cone p (fun i : N => Rdiv (@sum N (dotdot (NUMERAL 0%N) (N.succ p)) (fun j : N => simplicial_vertex j f i)) (Rplus (R_of_N p) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (simplicial_subdivision p (@chain_boundary (N -> R) (N.succ p) (@frag_of ((N -> R) -> N -> R) f)))))). +Axiom thm_SIMPLICIAL_SUBDIVISION_0 : forall p : N, (simplicial_subdivision p (@frag_0 ((N -> R) -> N -> R))) = (@frag_0 ((N -> R) -> N -> R)). +Axiom thm_SIMPLICIAL_SUBDIVISION_SUB : forall p : N, forall c1 : frag ((N -> R) -> N -> R), forall c2 : frag ((N -> R) -> N -> R), (simplicial_subdivision p (@frag_sub ((N -> R) -> N -> R) c1 c2)) = (@frag_sub ((N -> R) -> N -> R) (simplicial_subdivision p c1) (simplicial_subdivision p c2)). +Axiom thm_SIMPLICIAL_SUBDIVISION_OF : forall p : N, forall f : (N -> R) -> N -> R, (simplicial_subdivision p (@frag_of ((N -> R) -> N -> R) f)) = (@COND (frag ((N -> R) -> N -> R)) (p = (NUMERAL 0%N)) (@frag_of ((N -> R) -> N -> R) f) (simplicial_cone (N.sub p (NUMERAL (BIT1 0%N))) (fun i : N => Rdiv (@sum N (dotdot (NUMERAL 0%N) p) (fun j : N => simplicial_vertex j f i)) (Rplus (R_of_N p) (R_of_N (NUMERAL (BIT1 0%N))))) (simplicial_subdivision (N.sub p (NUMERAL (BIT1 0%N))) (@chain_boundary (N -> R) p (@frag_of ((N -> R) -> N -> R) f))))). +Axiom thm_SIMPLICIAL_CHAIN_SIMPLICIAL_SUBDIVISION : forall p : N, forall s : (N -> R) -> Prop, forall c : frag ((N -> R) -> N -> R), (simplicial_chain (@pair N ((N -> R) -> Prop) p s) c) -> simplicial_chain (@pair N ((N -> R) -> Prop) p s) (simplicial_subdivision p c). +Axiom thm_CHAIN_BOUNDARY_SIMPLICIAL_SUBDIVISION : forall p : N, forall s : (N -> R) -> Prop, forall c : frag ((N -> R) -> N -> R), (simplicial_chain (@pair N ((N -> R) -> Prop) p s) c) -> (@chain_boundary (N -> R) p (simplicial_subdivision p c)) = (simplicial_subdivision (N.sub p (NUMERAL (BIT1 0%N))) (@chain_boundary (N -> R) p c)). +Axiom thm_SIMPLICIAL_SUBDIVISION_SHRINKS : forall s : (N -> R) -> Prop, forall k : N, forall p : N, forall d : R, forall c : frag ((N -> R) -> N -> R), ((simplicial_chain (@pair N ((N -> R) -> Prop) p s) c) /\ (forall f : (N -> R) -> N -> R, forall x : N -> R, forall y : N -> R, ((@IN ((N -> R) -> N -> R) f (@frag_support ((N -> R) -> N -> R) c)) /\ ((@IN (N -> R) x (standard_simplex p)) /\ (@IN (N -> R) y (standard_simplex p)))) -> Rle (Rabs (Rminus (f x k) (f y k))) d)) -> forall f : (N -> R) -> N -> R, forall x : N -> R, forall y : N -> R, ((@IN ((N -> R) -> N -> R) f (@frag_support ((N -> R) -> N -> R) (simplicial_subdivision p c))) /\ ((@IN (N -> R) x (standard_simplex p)) /\ (@IN (N -> R) y (standard_simplex p)))) -> Rle (Rabs (Rminus (f x k) (f y k))) (Rmult (Rdiv (R_of_N p) (Rplus (R_of_N p) (R_of_N (NUMERAL (BIT1 0%N))))) d). +Axiom thm_singular_subdivision : forall {_536613 : Type'}, forall p : N, (@singular_subdivision _536613 p) = (@frag_extend ((N -> R) -> _536613) ((N -> R) -> _536613) (fun f : (N -> R) -> _536613 => @chain_map (N -> R) _536613 p f (simplicial_subdivision p (@frag_of ((N -> R) -> N -> R) (@RESTRICTION (N -> R) (N -> R) (standard_simplex p) (@I (N -> R))))))). +Axiom thm_SINGULAR_SUBDIVISION_0 : forall {_536634 : Type'}, forall p : N, (@singular_subdivision _536634 p (@frag_0 ((N -> R) -> _536634))) = (@frag_0 ((N -> R) -> _536634)). +Axiom thm_SINGULAR_SUBDIVISION_SUB : forall {_536667 : Type'}, forall p : N, forall c1 : frag ((N -> R) -> _536667), forall c2 : frag ((N -> R) -> _536667), (@singular_subdivision _536667 p (@frag_sub ((N -> R) -> _536667) c1 c2)) = (@frag_sub ((N -> R) -> _536667) (@singular_subdivision _536667 p c1) (@singular_subdivision _536667 p c2)). +Axiom thm_SINGULAR_SUBDIVISION_ADD : forall {_536698 : Type'}, forall p : N, forall c1 : frag ((N -> R) -> _536698), forall c2 : frag ((N -> R) -> _536698), (@singular_subdivision _536698 p (@frag_add ((N -> R) -> _536698) c1 c2)) = (@frag_add ((N -> R) -> _536698) (@singular_subdivision _536698 p c1) (@singular_subdivision _536698 p c2)). +Axiom thm_SIMPLICIAL_SIMPLEX_I : forall p : N, forall s : (N -> R) -> Prop, (simplicial_simplex (@pair N ((N -> R) -> Prop) p s) (@RESTRICTION (N -> R) (N -> R) (standard_simplex p) (@I (N -> R)))) = (@SUBSET (N -> R) (standard_simplex p) s). +Axiom thm_SINGULAR_CHAIN_SINGULAR_SUBDIVISION : forall {A : Type'}, forall p : N, forall s : Topology A, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p s) c) -> @singular_chain A (@pair N (Topology A) p s) (@singular_subdivision A p c). +Axiom thm_NATURALITY_SINGULAR_SUBDIVISION : forall {A B : Type'}, forall p : N, forall s : Topology A, forall g : A -> B, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p s) c) -> (@singular_subdivision B p (@chain_map A B p g c)) = (@chain_map A B p g (@singular_subdivision A p c)). +Axiom thm_SIMPLICIAL_CHAIN_CHAIN_MAP : forall p : N, forall q : N, forall s : (N -> R) -> Prop, forall f : (N -> R) -> N -> R, forall c : frag ((N -> R) -> N -> R), ((simplicial_simplex (@pair N ((N -> R) -> Prop) q s) f) /\ (simplicial_chain (@pair N ((N -> R) -> Prop) p (standard_simplex q)) c)) -> simplicial_chain (@pair N ((N -> R) -> Prop) p s) (@chain_map (N -> R) (N -> R) p f c). +Axiom thm_SINGULAR_SUBDIVISION_SIMPLICIAL_SIMPLEX : forall p : N, forall s : (N -> R) -> Prop, forall c : frag ((N -> R) -> N -> R), (simplicial_chain (@pair N ((N -> R) -> Prop) p s) c) -> (@singular_subdivision (N -> R) p c) = (simplicial_subdivision p c). +Axiom thm_NATURALITY_SIMPLICIAL_SUBDIVISION : forall p : N, forall q : N, forall s : (N -> R) -> Prop, forall g : (N -> R) -> N -> R, forall c : frag ((N -> R) -> N -> R), ((simplicial_chain (@pair N ((N -> R) -> Prop) p (standard_simplex q)) c) /\ (simplicial_simplex (@pair N ((N -> R) -> Prop) q s) g)) -> (simplicial_subdivision p (@chain_map (N -> R) (N -> R) p g c)) = (@chain_map (N -> R) (N -> R) p g (simplicial_subdivision p c)). +Axiom thm_CHAIN_BOUNDARY_SINGULAR_SUBDIVISION : forall {A : Type'}, forall p : N, forall s : Topology A, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p s) c) -> (@chain_boundary A p (@singular_subdivision A p c)) = (@singular_subdivision A (N.sub p (NUMERAL (BIT1 0%N))) (@chain_boundary A p c)). +Axiom thm_SINGULAR_SUBDIVISION_ZERO : forall {_537276 : Type'}, forall s : Topology _537276, forall c : frag ((N -> R) -> _537276), (@singular_chain _537276 (@pair N (Topology _537276) (NUMERAL 0%N) s) c) -> (@singular_subdivision _537276 (NUMERAL 0%N) c) = c. +Axiom thm_CHAIN_HOMOTOPIC_SIMPLICIAL_SUBDIVISION : exists h : N -> (frag ((N -> R) -> N -> R)) -> frag ((N -> R) -> N -> R), (forall p : N, (h p (@frag_0 ((N -> R) -> N -> R))) = (@frag_0 ((N -> R) -> N -> R))) /\ ((forall p : N, forall c1 : frag ((N -> R) -> N -> R), forall c2 : frag ((N -> R) -> N -> R), (h p (@frag_sub ((N -> R) -> N -> R) c1 c2)) = (@frag_sub ((N -> R) -> N -> R) (h p c1) (h p c2))) /\ ((forall p : N, forall q : N, forall r : N, forall g : (N -> R) -> N -> R, forall c : frag ((N -> R) -> N -> R), ((simplicial_chain (@pair N ((N -> R) -> Prop) p (standard_simplex q)) c) /\ (simplicial_simplex (@pair N ((N -> R) -> Prop) q (standard_simplex r)) g)) -> (@chain_map (N -> R) (N -> R) (N.add p (NUMERAL (BIT1 0%N))) g (h p c)) = (h p (@chain_map (N -> R) (N -> R) p g c))) /\ ((forall p : N, forall q : N, forall c : frag ((N -> R) -> N -> R), (simplicial_chain (@pair N ((N -> R) -> Prop) p (standard_simplex q)) c) -> simplicial_chain (@pair N ((N -> R) -> Prop) (N.add p (NUMERAL (BIT1 0%N))) (standard_simplex q)) (h p c)) /\ (forall p : N, forall q : N, forall c : frag ((N -> R) -> N -> R), (simplicial_chain (@pair N ((N -> R) -> Prop) p (standard_simplex q)) c) -> (@frag_add ((N -> R) -> N -> R) (@chain_boundary (N -> R) (N.add p (NUMERAL (BIT1 0%N))) (h p c)) (h (N.sub p (NUMERAL (BIT1 0%N))) (@chain_boundary (N -> R) p c))) = (@frag_sub ((N -> R) -> N -> R) (simplicial_subdivision p c) c))))). +Axiom thm_CHAIN_HOMOTOPIC_SINGULAR_SUBDIVISION : forall {A : Type'}, exists h : N -> (frag ((N -> R) -> A)) -> frag ((N -> R) -> A), (forall p : N, (h p (@frag_0 ((N -> R) -> A))) = (@frag_0 ((N -> R) -> A))) /\ ((forall p : N, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), (h p (@frag_sub ((N -> R) -> A) c1 c2)) = (@frag_sub ((N -> R) -> A) (h p c1) (h p c2))) /\ ((forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p top) c) -> @singular_chain A (@pair N (Topology A) (N.add p (NUMERAL (BIT1 0%N))) top) (h p c)) /\ (forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p top) c) -> (@frag_add ((N -> R) -> A) (@chain_boundary A (N.add p (NUMERAL (BIT1 0%N))) (h p c)) (h (N.sub p (NUMERAL (BIT1 0%N))) (@chain_boundary A p c))) = (@frag_sub ((N -> R) -> A) (@singular_subdivision A p c) c)))). +Axiom thm_HOMOLOGOUS_REL_SINGULAR_SUBDIVISION : forall {A : Type'}, forall p : N, forall s : Topology A, forall t : A -> Prop, forall c : frag ((N -> R) -> A), (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) s t)) c) -> @homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) s t)) (@singular_subdivision A p c) c. +Axiom thm_ITERATED_SINGULAR_SUBDIVISION : forall {A : Type'}, forall p : N, forall s : Topology A, forall n : N, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p s) c) -> (@ITER (frag ((N -> R) -> A)) n (@singular_subdivision A p) c) = (@frag_extend ((N -> R) -> A) ((N -> R) -> A) (fun f : (N -> R) -> A => @chain_map (N -> R) A p f (@ITER (frag ((N -> R) -> N -> R)) n (simplicial_subdivision p) (@frag_of ((N -> R) -> N -> R) (@RESTRICTION (N -> R) (N -> R) (standard_simplex p) (@I (N -> R)))))) c). +Axiom thm_CHAIN_HOMOTOPIC_ITERATED_SINGULAR_SUBDIVISION : forall {A : Type'}, forall n : N, exists h : N -> (frag ((N -> R) -> A)) -> frag ((N -> R) -> A), (forall p : N, (h p (@frag_0 ((N -> R) -> A))) = (@frag_0 ((N -> R) -> A))) /\ ((forall p : N, forall c1 : frag ((N -> R) -> A), forall c2 : frag ((N -> R) -> A), (h p (@frag_sub ((N -> R) -> A) c1 c2)) = (@frag_sub ((N -> R) -> A) (h p c1) (h p c2))) /\ ((forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p top) c) -> @singular_chain A (@pair N (Topology A) (N.add p (NUMERAL (BIT1 0%N))) top) (h p c)) /\ (forall p : N, forall top : Topology A, forall c : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p top) c) -> (@frag_add ((N -> R) -> A) (@chain_boundary A (N.add p (NUMERAL (BIT1 0%N))) (h p c)) (h (N.sub p (NUMERAL (BIT1 0%N))) (@chain_boundary A p c))) = (@frag_sub ((N -> R) -> A) (@ITER (frag ((N -> R) -> A)) n (@singular_subdivision A p) c) c)))). +Axiom thm_SUFFICIENT_ITERATED_SINGULAR_SUBDIVISION_EXISTS : forall {A : Type'}, forall p : N, forall top : Topology A, forall u : (A -> Prop) -> Prop, forall c : frag ((N -> R) -> A), ((forall v : A -> Prop, (@IN (A -> Prop) v u) -> @open_in A top v) /\ ((@SUBSET A (@topspace A top) (@UNIONS A u)) /\ (@singular_chain A (@pair N (Topology A) p top) c))) -> exists n : N, forall m : N, forall f : (N -> R) -> A, ((N.le n m) /\ (@IN ((N -> R) -> A) f (@frag_support ((N -> R) -> A) (@ITER (frag ((N -> R) -> A)) m (@singular_subdivision A p) c)))) -> exists v : A -> Prop, (@IN (A -> Prop) v u) /\ (@SUBSET A (@IMAGE (N -> R) A f (standard_simplex p)) v). +Axiom thm_SMALL_HOMOLOGOUS_REL_RELCYCLE_EXISTS : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall u : (A -> Prop) -> Prop, forall c : frag ((N -> R) -> A), ((forall v : A -> Prop, (@IN (A -> Prop) v u) -> @open_in A top v) /\ ((@SUBSET A (@topspace A top) (@UNIONS A u)) /\ (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c))) -> exists c' : frag ((N -> R) -> A), (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c') /\ ((@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c c') /\ (forall f : (N -> R) -> A, (@IN ((N -> R) -> A) f (@frag_support ((N -> R) -> A) c')) -> exists v : A -> Prop, (@IN (A -> Prop) v u) /\ (@SUBSET A (@IMAGE (N -> R) A f (standard_simplex p)) v))). +Axiom thm_EXCISED_CHAIN_EXISTS : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, forall c : frag ((N -> R) -> A), ((@SUBSET A (@closure_of A top u) (@interior_of A top t)) /\ ((@SUBSET A t s) /\ (@singular_chain A (@pair N (Topology A) p (@subtopology A top s)) c))) -> exists n : N, exists d : frag ((N -> R) -> A), exists e : frag ((N -> R) -> A), (@singular_chain A (@pair N (Topology A) p (@subtopology A top (@DIFF A s u))) d) /\ ((@singular_chain A (@pair N (Topology A) p (@subtopology A top t)) e) /\ ((@ITER (frag ((N -> R) -> A)) n (@singular_subdivision A p) c) = (@frag_add ((N -> R) -> A) d e))). +Axiom thm_EXCISED_RELCYCLE_EXISTS : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, forall c : frag ((N -> R) -> A), ((@SUBSET A (@closure_of A top u) (@interior_of A top t)) /\ ((@SUBSET A t s) /\ (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top s) t)) c))) -> exists c' : frag ((N -> R) -> A), (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top (@DIFF A s u)) (@DIFF A t u))) c') /\ (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top s) t)) c c'). +Axiom thm_HOMOTOPIC_IMP_HOMOLOGOUS_REL_CHAIN_MAPS : forall {A B : Type'}, forall p : N, forall f : A -> B, forall g : A -> B, forall s : Topology A, forall t : A -> Prop, forall u : Topology B, forall v : B -> Prop, forall c : frag ((N -> R) -> A), ((@homotopic_with B A (fun h : A -> B => @SUBSET B (@IMAGE A B h t) v) (@pair (Topology A) (Topology B) s u) f g) /\ (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) s t)) c)) -> @homologous_rel B (@pair N (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) u v)) (@chain_map A B p f c) (@chain_map A B p g c). +Axiom thm_chain_group : forall {A : Type'}, forall p : N, forall top : Topology A, (@chain_group A (@pair N (Topology A) p top)) = (@free_abelian_group ((N -> R) -> A) (@singular_simplex A (@pair N (Topology A) p top))). +Axiom thm_CHAIN_GROUP : forall {A : Type'}, (forall p : N, forall top : Topology A, (@group_carrier (frag ((N -> R) -> A)) (@chain_group A (@pair N (Topology A) p top))) = (@singular_chain A (@pair N (Topology A) p top))) /\ ((forall p : N, forall top : Topology A, (@group_id (frag ((N -> R) -> A)) (@chain_group A (@pair N (Topology A) p top))) = (@frag_0 ((N -> R) -> A))) /\ ((forall p : N, forall top : Topology A, (@group_inv (frag ((N -> R) -> A)) (@chain_group A (@pair N (Topology A) p top))) = (@frag_neg ((N -> R) -> A))) /\ (forall p : N, forall top : Topology A, (@group_mul (frag ((N -> R) -> A)) (@chain_group A (@pair N (Topology A) p top))) = (@frag_add ((N -> R) -> A))))). +Axiom thm_ABELIAN_CHAIN_GROUP : forall {A : Type'}, forall p : N, forall top : Topology A, @abelian_group (frag ((N -> R) -> A)) (@chain_group A (@pair N (Topology A) p top)). +Axiom thm_SUBGROUP_SINGULAR_RELCYCLE : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, @subgroup_of (frag ((N -> R) -> A)) (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@chain_group A (@pair N (Topology A) p top)). +Axiom thm_relcycle_group : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) = (@subgroup_generated (frag ((N -> R) -> A)) (@chain_group A (@pair N (Topology A) p top)) (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))). +Axiom thm_RELCYCLE_GROUP : forall {A : Type'}, (forall p : N, forall top : Topology A, forall s : A -> Prop, (@group_carrier (frag ((N -> R) -> A)) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) = (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) /\ ((forall p : N, forall top : Topology A, forall s : A -> Prop, (@group_id (frag ((N -> R) -> A)) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) = (@frag_0 ((N -> R) -> A))) /\ ((forall p : N, forall top : Topology A, forall s : A -> Prop, (@group_inv (frag ((N -> R) -> A)) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) = (@frag_neg ((N -> R) -> A))) /\ (forall p : N, forall top : Topology A, forall s : A -> Prop, (@group_mul (frag ((N -> R) -> A)) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) = (@frag_add ((N -> R) -> A))))). +Axiom thm_ABELIAN_RELCYCLE_GROUP : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, @abelian_group (frag ((N -> R) -> A)) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_RELCYCLE_GROUP_RESTRICT : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) = (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@INTER A (@topspace A top) s)))). +Axiom thm_relative_homology_group : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) = (@COND (Group ((frag ((N -> R) -> A)) -> Prop)) (int_lt p (Z_of_N (NUMERAL 0%N))) (@singleton_group ((frag ((N -> R) -> A)) -> Prop) (@ARB ((frag ((N -> R) -> A)) -> Prop))) (@quotient_group (frag ((N -> R) -> A)) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) (num_of_int p) (@pair (Topology A) (A -> Prop) top s))) (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) (num_of_int p) (@pair (Topology A) (A -> Prop) top s))))). +Axiom thm_homology_group : forall {A : Type'}, forall p : Z, forall top : Topology A, (@homology_group A (@pair Z (Topology A) p top)) = (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@EMPTY A)))). +Axiom thm_RELATIVE_HOMOLOGY_GROUP_RESTRICT : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) = (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@INTER A (@topspace A top) s)))). +Axiom thm_NONTRIVIAL_RELATIVE_HOMOLOGY_GROUP : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (Z_of_N p) (@pair (Topology A) (A -> Prop) top s))) = (@quotient_group (frag ((N -> R) -> A)) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))). +Axiom thm_TRIVIAL_RELATIVE_HOMOLOGY_GROUP : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (int_lt p (Z_of_N (NUMERAL 0%N))) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_SUBGROUP_SINGULAR_RELBOUNDARY : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, @subgroup_of (frag ((N -> R) -> A)) (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@chain_group A (@pair N (Topology A) p top)). +Axiom thm_SUBGROUP_SINGULAR_RELBOUNDARY_RELCYCLE : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, @subgroup_of (frag ((N -> R) -> A)) (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_NORMAL_SUBGROUP_SINGULAR_RELBOUNDARY_RELCYCLE : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, @normal_subgroup_of (frag ((N -> R) -> A)) (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_RIGHT_COSET_SINGULAR_RELBOUNDARY : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, (@right_coset (frag ((N -> R) -> A)) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) = (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_RELATIVE_HOMOLOGY_GROUP : forall {A : Type'}, (forall p : N, forall top : Topology A, forall s : A -> Prop, (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (Z_of_N p) (@pair (Topology A) (A -> Prop) top s)))) = (@GSPEC ((frag ((N -> R) -> A)) -> Prop) (fun GEN_PVAR_2169 : (frag ((N -> R) -> A)) -> Prop => exists c : frag ((N -> R) -> A), @SETSPEC ((frag ((N -> R) -> A)) -> Prop) GEN_PVAR_2169 (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c)))) /\ ((forall p : N, forall top : Topology A, forall s : A -> Prop, (@group_id ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (Z_of_N p) (@pair (Topology A) (A -> Prop) top s)))) = (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) /\ ((forall p : N, forall top : Topology A, forall s : A -> Prop, (@group_inv ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (Z_of_N p) (@pair (Topology A) (A -> Prop) top s)))) = (fun r : (frag ((N -> R) -> A)) -> Prop => @GSPEC (frag ((N -> R) -> A)) (fun GEN_PVAR_2170 : frag ((N -> R) -> A) => exists c : frag ((N -> R) -> A), @SETSPEC (frag ((N -> R) -> A)) GEN_PVAR_2170 (@IN (frag ((N -> R) -> A)) c r) (@frag_neg ((N -> R) -> A) c)))) /\ (forall p : N, forall top : Topology A, forall s : A -> Prop, (@group_mul ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (Z_of_N p) (@pair (Topology A) (A -> Prop) top s)))) = (fun r1 : (frag ((N -> R) -> A)) -> Prop => fun r2 : (frag ((N -> R) -> A)) -> Prop => @GSPEC (frag ((N -> R) -> A)) (fun GEN_PVAR_2171 : frag ((N -> R) -> A) => exists c1 : frag ((N -> R) -> A), exists c2 : frag ((N -> R) -> A), @SETSPEC (frag ((N -> R) -> A)) GEN_PVAR_2171 ((@IN (frag ((N -> R) -> A)) c1 r1) /\ (@IN (frag ((N -> R) -> A)) c2 r2)) (@frag_add ((N -> R) -> A) c1 c2)))))). +Axiom thm_HOMOLOGOUS_REL_EQ_RELBOUNDARY : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), ((@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) = (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) = (@singular_relboundary A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c). +Axiom thm_GROUP_HOMOMORPHISM_CHAIN_BOUNDARY : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, @group_homomorphism (frag ((N -> R) -> A)) (frag ((N -> R) -> A)) (@pair (Group (frag ((N -> R) -> A))) (Group (frag ((N -> R) -> A))) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) (N.sub p (NUMERAL (BIT1 0%N))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A))))) (@chain_boundary A p). +Axiom thm_HOM_BOUNDARY_DEFAULT : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall c : (frag ((N -> R) -> A)) -> Prop, (~ (@IN ((frag ((N -> R) -> A)) -> Prop) c (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))))) -> (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s) c) = (@group_id ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s)))). +Axiom thm_GROUP_HOMOMORPHISM_HOM_BOUNDARY : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, @group_homomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s)))) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s)). +Axiom thm_HOM_BOUNDARY_CHAIN_BOUNDARY : forall {A : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall c : frag ((N -> R) -> A), ((@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c) /\ (N.le (NUMERAL (BIT1 0%N)) p)) -> (@hom_boundary A (Z_of_N p) (@pair (Topology A) (A -> Prop) top s) (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c)) = (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) (N.sub p (NUMERAL (BIT1 0%N))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A))) (@chain_boundary A p c)). +Axiom thm_HOM_BOUNDARY_RESTRICT : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s)) = (@hom_boundary A p (@pair (Topology A) (A -> Prop) top (@INTER A (@topspace A top) s))). +Axiom thm_HOM_BOUNDARY_TRIVIAL : forall {A : Type'}, forall p : Z, (int_le p (Z_of_N (NUMERAL 0%N))) -> (@hom_boundary A p) = (fun q : prod (Topology A) (A -> Prop) => fun r : (frag ((N -> R) -> A)) -> Prop => @ARB ((frag ((N -> R) -> A)) -> Prop)). +Axiom thm_HOM_BOUNDARY : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall c : (frag ((N -> R) -> A)) -> Prop, @IN ((frag ((N -> R) -> A)) -> Prop) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s) c) (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s)))). +Axiom thm_GROUP_HOMOMORPHISM_CHAIN_MAP : forall {A B : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET B (@IMAGE A B f s) t)) -> @group_homomorphism (frag ((N -> R) -> A)) (frag ((N -> R) -> B)) (@pair (Group (frag ((N -> R) -> A))) (Group (frag ((N -> R) -> B))) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relcycle_group B (@pair N (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)))) (@chain_map A B p f). +Axiom thm_HOM_INDUCED_DEFAULT : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, forall c : (frag ((N -> R) -> A)) -> Prop, (~ ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET B (@IMAGE A B f (@INTER A (@topspace A top) s)) t) /\ (@IN ((frag ((N -> R) -> A)) -> Prop) c (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))))))) -> (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f c) = (@group_id ((frag ((N -> R) -> B)) -> Prop) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)))). +Axiom thm_GROUP_HOMOMORPHISM_HOM_INDUCED : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, @group_homomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)))) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f). +Axiom thm_HOM_INDUCED_CHAIN_MAP_GEN : forall {A B : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, forall c : frag ((N -> R) -> A), ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET B (@IMAGE A B f (@INTER A (@topspace A top) s)) t) /\ (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c))) -> (@hom_induced A B (Z_of_N p) (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c)) = (@homologous_rel B (@pair N (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)) (@chain_map A B p f c)). +Axiom thm_HOM_INDUCED_RESTRICT : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t)) = (@hom_induced A B p (@pair (Topology A) (A -> Prop) top (@INTER A (@topspace A top) s)) (@pair (Topology B) (B -> Prop) top' (@INTER B (@topspace B top') t))). +Axiom thm_HOM_INDUCED_TRIVIAL : forall {A B : Type'}, forall p : Z, (int_lt p (Z_of_N (NUMERAL 0%N))) -> (@hom_induced A B p) = (fun q : prod (Topology A) (A -> Prop) => fun r : prod (Topology B) (B -> Prop) => fun s : A -> B => fun t : (frag ((N -> R) -> A)) -> Prop => @ARB ((frag ((N -> R) -> B)) -> Prop)). +Axiom thm_HOM_INDUCED : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall f : A -> B, forall t : B -> Prop, forall c : (frag ((N -> R) -> A)) -> Prop, @IN ((frag ((N -> R) -> B)) -> Prop) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f c) (@group_carrier ((frag ((N -> R) -> B)) -> Prop) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)))). +Axiom thm_HOM_INDUCED_CHAIN_MAP : forall {A B : Type'}, forall p : N, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, forall c : frag ((N -> R) -> A), ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET B (@IMAGE A B f s) t) /\ (@singular_relcycle A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c))) -> (@hom_induced A B (Z_of_N p) (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)) c)) = (@homologous_rel B (@pair N (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)) (@chain_map A B p f c)). +Axiom thm_HOM_INDUCED_EQ : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, forall g : A -> B, (forall x : A, (@IN A x (@topspace A top)) -> (f x) = (g x)) -> (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f) = (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) g). +Axiom thm_ABELIAN_RELATIVE_HOMOLOGY_GROUP : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, @abelian_group ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_HOM_INDUCED_ID_GEN : forall {A : Type'}, forall p : Z, forall top : Topology A, forall f : A -> A, forall s : A -> Prop, forall c : (frag ((N -> R) -> A)) -> Prop, ((@continuous_map A A (@pair (Topology A) (Topology A) top top) f) /\ ((forall x : A, (@IN A x (@topspace A top)) -> (f x) = x) /\ (@IN ((frag ((N -> R) -> A)) -> Prop) c (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))))))) -> (@hom_induced A A p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology A) (A -> Prop) top s) f c) = c. +Axiom thm_HOM_INDUCED_ID : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall c : (frag ((N -> R) -> A)) -> Prop, (@IN ((frag ((N -> R) -> A)) -> Prop) c (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))))) -> (@hom_induced A A p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x) c) = c. +Axiom thm_HOM_INDUCED_COMPOSE : forall {A B C : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall top'' : Topology C, forall u : C -> Prop, forall f : A -> B, forall g : B -> C, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET B (@IMAGE A B f s) t) /\ ((@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g) /\ (@SUBSET C (@IMAGE B C g t) u)))) -> (@hom_induced A C p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology C) (C -> Prop) top'' u) (@o A B C g f)) = (@o ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) ((frag ((N -> R) -> C)) -> Prop) (@hom_induced B C p (@pair (Topology B) (B -> Prop) top' t) (@pair (Topology C) (C -> Prop) top'' u) g) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f)). +Axiom thm_NATURALITY_HOM_INDUCED : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@SUBSET B (@IMAGE A B f s) t)) -> (@o ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@hom_boundary B p (@pair (Topology B) (B -> Prop) top' t)) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f)) = (@o ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@hom_induced A B (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology B) (B -> Prop) (@subtopology B top' t) (@EMPTY B)) f) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_HOMOLOGY_EXACTNESS_AXIOM_1 : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, @group_exactness ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (prod (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop))) (@homology_group A (@pair Z (Topology A) p top)) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s))))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x)) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_HOMOLOGY_EXACTNESS_AXIOM_2 : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, @group_exactness ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (prod (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s))) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) top)))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s)) (@hom_induced A A (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun x : A => x))). +Axiom thm_HOMOLOGY_EXACTNESS_AXIOM_3 : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, @group_exactness ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (prod (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop))) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun x : A => x)) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x))). +Axiom thm_HOMOLOGY_DIMENSION_AXIOM : forall {A : Type'}, forall p : Z, forall top : Topology A, forall a : A, (((@topspace A top) = (@INSERT A a (@EMPTY A))) /\ (~ (p = (Z_of_N (NUMERAL 0%N))))) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)). +Axiom thm_HOMOLOGY_HOMOTOPY_AXIOM : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall top' : Topology B, forall t : B -> Prop, forall f : A -> B, forall g : A -> B, (@homotopic_with B A (fun h : A -> B => @SUBSET B (@IMAGE A B h s) t) (@pair (Topology A) (Topology B) top top') f g) -> (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f) = (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) g). +Axiom thm_HOMOLOGY_EXCISION_AXIOM : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@SUBSET A (@closure_of A top u) (@interior_of A top t)) /\ (@SUBSET A t s)) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top (@DIFF A s u)) (@DIFF A t u)))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top s) t)))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top (@DIFF A s u)) (@DIFF A t u)) (@pair (Topology A) (A -> Prop) (@subtopology A top s) t) (fun x : A => x)). +Axiom thm_GROUP_ISOMORPHISM_CHAIN_GROUP_SUM : forall {A : Type'}, forall p : N, forall top : Topology A, forall u : (A -> Prop) -> Prop, ((@pairwise (A -> Prop) (@DISJOINT A) u) /\ (((@UNIONS A u) = (@topspace A top)) /\ (forall c : A -> Prop, forall t : A -> Prop, ((@compact_in A top c) /\ ((@path_connected_in A top c) /\ ((@IN (A -> Prop) t u) /\ (~ (@DISJOINT A c t))))) -> @SUBSET A c t))) -> @group_isomorphism ((A -> Prop) -> frag ((N -> R) -> A)) (frag ((N -> R) -> A)) (@pair (Group ((A -> Prop) -> frag ((N -> R) -> A))) (Group (frag ((N -> R) -> A))) (@sum_group (frag ((N -> R) -> A)) (A -> Prop) u (fun s : A -> Prop => @chain_group A (@pair N (Topology A) p (@subtopology A top s)))) (@chain_group A (@pair N (Topology A) p top))) (@iterate (A -> Prop) (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) u). +Axiom thm_GROUP_ISOMORPHISM_CYCLE_GROUP_SUM : forall {A : Type'}, forall p : N, forall top : Topology A, forall u : (A -> Prop) -> Prop, ((@pairwise (A -> Prop) (@DISJOINT A) u) /\ (((@UNIONS A u) = (@topspace A top)) /\ (forall c : A -> Prop, forall t : A -> Prop, ((@compact_in A top c) /\ ((@path_connected_in A top c) /\ ((@IN (A -> Prop) t u) /\ (~ (@DISJOINT A c t))))) -> @SUBSET A c t))) -> @group_isomorphism ((A -> Prop) -> frag ((N -> R) -> A)) (frag ((N -> R) -> A)) (@pair (Group ((A -> Prop) -> frag ((N -> R) -> A))) (Group (frag ((N -> R) -> A))) (@sum_group (frag ((N -> R) -> A)) (A -> Prop) u (fun t : A -> Prop => @relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top t) (@EMPTY A))))) (@relcycle_group A (@pair N (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@EMPTY A))))) (@iterate (A -> Prop) (frag ((N -> R) -> A)) (@frag_add ((N -> R) -> A)) u). +Axiom thm_HOMOLOGY_ADDITIVITY_AXIOM_GEN : forall {A : Type'}, forall p : Z, forall top : Topology A, forall u : (A -> Prop) -> Prop, ((@pairwise (A -> Prop) (@DISJOINT A) u) /\ (((@UNIONS A u) = (@topspace A top)) /\ (forall c : A -> Prop, forall t : A -> Prop, ((@compact_in A top c) /\ ((@path_connected_in A top c) /\ ((@IN (A -> Prop) t u) /\ (~ (@DISJOINT A c t))))) -> @SUBSET A c t))) -> @group_isomorphism ((A -> Prop) -> (frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((A -> Prop) -> (frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@sum_group ((frag ((N -> R) -> A)) -> Prop) (A -> Prop) u (fun s : A -> Prop => @homology_group A (@pair Z (Topology A) p (@subtopology A top s)))) (@homology_group A (@pair Z (Topology A) p top))) (fun x : (A -> Prop) -> (frag ((N -> R) -> A)) -> Prop => @iterate (A -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@group_add ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top))) u (fun v : A -> Prop => @hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top v) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun z : A => z) (x v))). +Axiom thm_HOMOLOGY_ADDITIVITY_AXIOM : forall {A : Type'}, forall p : Z, forall top : Topology A, forall u : (A -> Prop) -> Prop, ((forall v : A -> Prop, (@IN (A -> Prop) v u) -> @open_in A top v) /\ ((@pairwise (A -> Prop) (@DISJOINT A) u) /\ ((@UNIONS A u) = (@topspace A top)))) -> @group_isomorphism ((A -> Prop) -> (frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((A -> Prop) -> (frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@sum_group ((frag ((N -> R) -> A)) -> Prop) (A -> Prop) u (fun s : A -> Prop => @homology_group A (@pair Z (Topology A) p (@subtopology A top s)))) (@homology_group A (@pair Z (Topology A) p top))) (fun x : (A -> Prop) -> (frag ((N -> R) -> A)) -> Prop => @iterate (A -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@group_add ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top))) u (fun v : A -> Prop => @hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top v) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun z : A => z) (x v))). +Axiom thm_GROUP_ISOMORPHISM_INTEGER_ZEROTH_HOMOLOGY_GROUP : forall {A : Type'}, forall top : Topology A, forall f : (N -> R) -> A, ((@path_connected_space A top) /\ (@singular_simplex A (@pair N (Topology A) (NUMERAL 0%N) top) f)) -> @group_isomorphism Z ((frag ((N -> R) -> A)) -> Prop) (@pair (Group Z) (Group ((frag ((N -> R) -> A)) -> Prop)) integer_group (@homology_group A (@pair Z (Topology A) (Z_of_N (NUMERAL 0%N)) top))) (@group_zpow ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) (Z_of_N (NUMERAL 0%N)) top)) (@homologous_rel A (@pair N (prod (Topology A) (A -> Prop)) (NUMERAL 0%N) (@pair (Topology A) (A -> Prop) top (@EMPTY A))) (@frag_of ((N -> R) -> A) f))). +Axiom thm_ISOMORPHIC_GROUP_INTEGER_ZEROTH_HOMOLOGY_GROUP : forall {A : Type'}, forall top : Topology A, ((@path_connected_space A top) /\ (~ ((@topspace A top) = (@EMPTY A)))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) Z (@homology_group A (@pair Z (Topology A) (Z_of_N (NUMERAL 0%N)) top)) integer_group. +Axiom thm_HOMOLOGY_COEFFICIENTS : forall {A : Type'}, forall top : Topology A, forall a : A, ((@topspace A top) = (@INSERT A a (@EMPTY A))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) Z (@homology_group A (@pair Z (Topology A) (Z_of_N (NUMERAL 0%N)) top)) integer_group. +Axiom thm_ZEROTH_HOMOLOGY_GROUP : forall {A : Type'}, forall top : Topology A, @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) (frag (A -> Prop)) (@homology_group A (@pair Z (Topology A) (Z_of_N (NUMERAL 0%N)) top)) (@free_abelian_group (A -> Prop) (@path_components_of A top)). +Axiom thm_ISOMORPHIC_HOMOLOGY_IMP_PATH_COMPONENTS : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@homology_group A (@pair Z (Topology A) (Z_of_N (NUMERAL 0%N)) top)) (@homology_group B (@pair Z (Topology B) (Z_of_N (NUMERAL 0%N)) top'))) -> @eq_c (A -> Prop) (B -> Prop) (@path_components_of A top) (@path_components_of B top'). +Axiom thm_ISOMORPHIC_HOMOLOGY_IMP_PATH_CONNECTEDNESS : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, (@isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@homology_group A (@pair Z (Topology A) (Z_of_N (NUMERAL 0%N)) top)) (@homology_group B (@pair Z (Topology B) (Z_of_N (NUMERAL 0%N)) top'))) -> (@path_connected_space A top) = (@path_connected_space B top'). +Axiom thm_TRIVIAL_HOMOLOGY_GROUP : forall {A : Type'}, forall p : Z, forall top : Topology A, (int_lt p (Z_of_N (NUMERAL 0%N))) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)). +Axiom thm_ABELIAN_HOMOLOGY_GROUP : forall {A : Type'}, forall p : Z, forall top : Topology A, @abelian_group ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)). +Axiom thm_GROUP_HOMOMORPHISM_HOM_INDUCED_EMPTY : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall f : A -> B, @group_homomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@homology_group B (@pair Z (Topology B) p top'))) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) f). +Axiom thm_HOM_INDUCED_COMPOSE_EMPTY : forall {A B C : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall top'' : Topology C, forall f : A -> B, forall g : B -> C, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ (@continuous_map B C (@pair (Topology B) (Topology C) top' top'') g)) -> (@hom_induced A C p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology C) (C -> Prop) top'' (@EMPTY C)) (@o A B C g f)) = (@o ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) ((frag ((N -> R) -> C)) -> Prop) (@hom_induced B C p (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) (@pair (Topology C) (C -> Prop) top'' (@EMPTY C)) g) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) f)). +Axiom thm_HOMOLOGY_HOMOTOPY_EMPTY : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : A -> B, (@homotopic_with B A (fun h : A -> B => True) (@pair (Topology A) (Topology B) top top') f g) -> (@hom_induced A B p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) f) = (@hom_induced A B p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) g). +Axiom thm_HOMOTOPY_EQUIVALENCE_RELATIVE_HOMOLOGY_GROUP_ISOMORPHISMS : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, forall g : B -> A, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET B (@IMAGE A B f s) t) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) top' top) g) /\ ((@SUBSET A (@IMAGE B A g t) s) /\ ((@homotopic_with A A (fun h : A -> A => @SUBSET A (@IMAGE A A h s) s) (@pair (Topology A) (Topology A) top top) (@o A B A g f) (@I A)) /\ (@homotopic_with B B (fun k : B -> B => @SUBSET B (@IMAGE B B k t) t) (@pair (Topology B) (Topology B) top' top') (@o B A B f g) (@I B))))))) -> @group_isomorphisms ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> B)) -> Prop) (((frag ((N -> R) -> B)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f) (@hom_induced B A p (@pair (Topology B) (B -> Prop) top' t) (@pair (Topology A) (A -> Prop) top s) g)). +Axiom thm_HOMOTOPY_EQUIVALENCE_RELATIVE_HOMOLOGY_GROUP_ISOMORPHISM : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, forall g : B -> A, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET B (@IMAGE A B f s) t) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) top' top) g) /\ ((@SUBSET A (@IMAGE B A g t) s) /\ ((@homotopic_with A A (fun h : A -> A => @SUBSET A (@IMAGE A A h s) s) (@pair (Topology A) (Topology A) top top) (@o A B A g f) (@I A)) /\ (@homotopic_with B B (fun k : B -> B => @SUBSET B (@IMAGE B B k t) t) (@pair (Topology B) (Topology B) top' top') (@o B A B f g) (@I B))))))) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)))) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f). +Axiom thm_HOMOTOPY_EQUIVALENCE_HOMOLOGY_GROUP_ISOMORPHISM : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) top' top) g) /\ ((@homotopic_with A A (fun h : A -> A => True) (@pair (Topology A) (Topology A) top top) (@o A B A g f) (@I A)) /\ (@homotopic_with B B (fun k : B -> B => True) (@pair (Topology B) (Topology B) top' top') (@o B A B f g) (@I B))))) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@homology_group B (@pair Z (Topology B) p top'))) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) f). +Axiom thm_HOMOTOPY_EQUIVALENT_SPACE_IMP_ISOMORPHIC_RELATIVE_HOMOLOGY_GROUPS : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, forall g : B -> A, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET B (@IMAGE A B f s) t) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) top' top) g) /\ ((@SUBSET A (@IMAGE B A g t) s) /\ ((@homotopic_with A A (fun h : A -> A => @SUBSET A (@IMAGE A A h s) s) (@pair (Topology A) (Topology A) top top) (@o A B A g f) (@I A)) /\ (@homotopic_with B B (fun k : B -> B => @SUBSET B (@IMAGE B B k t) t) (@pair (Topology B) (Topology B) top' top') (@o B A B f g) (@I B))))))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t))). +Axiom thm_HOMOTOPY_EQUIVALENT_SPACE_IMP_ISOMORPHIC_HOMOLOGY_GROUPS : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, (@homotopy_equivalent_space A B top top') -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) (@homology_group B (@pair Z (Topology B) p top')). +Axiom thm_HOMEOMORPHIC_SPACE_IMP_ISOMORPHIC_HOMOLOGY_GROUPS : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) (@homology_group B (@pair Z (Topology B) p top')). +Axiom thm_TRIVIAL_RELATIVE_HOMOLOGY_GROUP_GEN : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall f : A -> A, ((@continuous_map A A (@pair (Topology A) (Topology A) top (@subtopology A top s)) f) /\ ((@homotopic_with A A (fun h : A -> A => True) (@pair (Topology A) (Topology A) (@subtopology A top s) (@subtopology A top s)) f (@I A)) /\ (@homotopic_with A A (fun k : A -> A => True) (@pair (Topology A) (Topology A) top top) f (@I A)))) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_TRIVIAL_RELATIVE_HOMOLOGY_GROUP_TOPSPACE : forall {A : Type'}, forall p : Z, forall top : Topology A, @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@topspace A top)))). +Axiom thm_TRIVIAL_RELATIVE_HOMOLOGY_GROUP_EMPTY : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((@topspace A top) = (@EMPTY A)) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_TRIVIAL_HOMOLOGY_GROUP_EMPTY : forall {A : Type'}, forall p : Z, forall top : Topology A, ((@topspace A top) = (@EMPTY A)) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)). +Axiom thm_TRIVIAL_HOMOLOGY_GROUP_CONTRACTIBLE_SPACE : forall {A : Type'}, forall p : Z, forall top : Topology A, ((@contractible_space A top) /\ (~ (p = (Z_of_N (NUMERAL 0%N))))) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)). +Axiom thm_HOMEOMORPHIC_MAPS_RELATIVE_HOMOLOGY_GROUP_ISOMORPHISMS : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, forall g : B -> A, ((@homeomorphic_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) f g)) /\ ((@SUBSET B (@IMAGE A B f s) t) /\ (@SUBSET A (@IMAGE B A g t) s))) -> @group_isomorphisms ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> B)) -> Prop) (((frag ((N -> R) -> B)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f) (@hom_induced B A p (@pair (Topology B) (B -> Prop) top' t) (@pair (Topology A) (A -> Prop) top s) g)). +Axiom thm_HOMEOMORPHIC_MAP_RELATIVE_HOMOLOGY_GROUP_ISOMORPHISM : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, ((@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET A s (@topspace A top)) /\ ((@IMAGE A B f s) = t))) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t)))) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' t) f). +Axiom thm_GROUP_MONOMORPHISM_HOM_INDUCED_SECTION_MAP : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@section_map A B (@pair (Topology A) (Topology B) top top') f) -> @group_monomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@homology_group B (@pair Z (Topology B) p top'))) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) f). +Axiom thm_GROUP_EPIMORPHISM_HOM_INDUCED_RETRACTION_MAP : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@retraction_map A B (@pair (Topology A) (Topology B) top top') f) -> @group_epimorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@homology_group B (@pair Z (Topology B) p top'))) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) f). +Axiom thm_HOMEOMORPHIC_MAP_HOMOLOGY_GROUP_ISOMORPHISM : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall f : A -> B, (@homeomorphic_map A B (@pair (Topology A) (Topology B) top top') f) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@homology_group B (@pair Z (Topology B) p top'))) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) f). +Axiom thm_GROUP_MONOMORPHISM_HOM_INDUCED_INCLUSION : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((s = (@EMPTY A)) \/ (@retract_of_space A s top)) -> @group_monomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) (@homology_group A (@pair Z (Topology A) p top))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun x : A => x)). +Axiom thm_TRIVIAL_HOMOMORPHISM_HOM_BOUNDARY_INCLUSION : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((s = (@EMPTY A)) \/ (@retract_of_space A s top)) -> @trivial_homomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s)))) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s)). +Axiom thm_GROUP_EPIMORPHISM_HOM_INDUCED_RELATIVIZATION : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((s = (@EMPTY A)) \/ (@retract_of_space A s top)) -> @group_epimorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x)). +Axiom thm_SHORT_EXACT_SEQUENCE_HOM_INDUCED_INCLUSION : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((s = (@EMPTY A)) \/ (@retract_of_space A s top)) -> @short_exact_sequence ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (prod (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop))) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun x : A => x)) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x))). +Axiom thm_GROUP_ISOMORPHISMS_HOMOLOGY_GROUP_PROD_RETRACT : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((s = (@EMPTY A)) \/ (@retract_of_space A s top)) -> exists h : ((frag ((N -> R) -> A)) -> Prop) -> Prop, exists k : ((frag ((N -> R) -> A)) -> Prop) -> Prop, (@subgroup_of ((frag ((N -> R) -> A)) -> Prop) h (@homology_group A (@pair Z (Topology A) p top))) /\ ((@subgroup_of ((frag ((N -> R) -> A)) -> Prop) k (@homology_group A (@pair Z (Topology A) p top))) /\ ((@group_isomorphism (prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop)) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group (prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop))) (Group ((frag ((N -> R) -> A)) -> Prop)) (@prod_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@subgroup_generated ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) h) (@subgroup_generated ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) k)) (@homology_group A (@pair Z (Topology A) p top))) (@GABS ((prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop)) -> (frag ((N -> R) -> A)) -> Prop) (fun f : (prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop)) -> (frag ((N -> R) -> A)) -> Prop => forall x : (frag ((N -> R) -> A)) -> Prop, forall y : (frag ((N -> R) -> A)) -> Prop, @GEQ ((frag ((N -> R) -> A)) -> Prop) (f (@pair ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) x y)) (@group_mul ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) x y)))) /\ ((@group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) (@subgroup_generated ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) h)) (@hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun x : A => x))) /\ (@group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@subgroup_generated ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) k) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x)))))). +Axiom thm_ISOMORPHIC_GROUP_HOMOLOGY_GROUP_PROD_RETRACT : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((s = (@EMPTY A)) \/ (@retract_of_space A s top)) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) (prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@prod_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))). +Axiom thm_HOMOLOGY_ADDITIVITY_EXPLICIT : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@open_in A top s) /\ ((@open_in A top t) /\ ((@DISJOINT A s t) /\ ((@UNION A s t) = (@topspace A top))))) -> @group_isomorphism (prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop)) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group (prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop))) (Group ((frag ((N -> R) -> A)) -> Prop)) (@prod_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) (@homology_group A (@pair Z (Topology A) p (@subtopology A top t)))) (@homology_group A (@pair Z (Topology A) p top))) (@GABS ((prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop)) -> (frag ((N -> R) -> A)) -> Prop) (fun f : (prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop)) -> (frag ((N -> R) -> A)) -> Prop => forall a : (frag ((N -> R) -> A)) -> Prop, forall b : (frag ((N -> R) -> A)) -> Prop, @GEQ ((frag ((N -> R) -> A)) -> Prop) (f (@pair ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) a b)) (@group_mul ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) (@hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun x : A => x) a) (@hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top t) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun x : A => x) b)))). +Axiom thm_hom_relboundary : forall {A : Type'}, forall t : A -> Prop, forall p : Z, forall top : Topology A, forall s : A -> Prop, (@hom_relboundary A p (@pair (Topology A) (prod (A -> Prop) (A -> Prop)) top (@pair (A -> Prop) (A -> Prop) s t))) = (@o ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@hom_induced A A (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology A) (A -> Prop) (@subtopology A top s) t) (fun x : A => x)) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_GROUP_HOMOMORPHISM_HOM_RELBOUNDARY : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, @group_homomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) t)))) (@hom_relboundary A p (@pair (Topology A) (prod (A -> Prop) (A -> Prop)) top (@pair (A -> Prop) (A -> Prop) s t))). +Axiom thm_HOM_RELBOUNDARY : forall {_556200 : Type'}, forall p : Z, forall top : Topology _556200, forall s : _556200 -> Prop, forall t : _556200 -> Prop, forall c : (frag ((N -> R) -> _556200)) -> Prop, @IN ((frag ((N -> R) -> _556200)) -> Prop) (@hom_relboundary _556200 p (@pair (Topology _556200) (prod (_556200 -> Prop) (_556200 -> Prop)) top (@pair (_556200 -> Prop) (_556200 -> Prop) s t)) c) (@group_carrier ((frag ((N -> R) -> _556200)) -> Prop) (@relative_homology_group _556200 (@pair Z (prod (Topology _556200) (_556200 -> Prop)) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology _556200) (_556200 -> Prop) (@subtopology _556200 top s) t)))). +Axiom thm_HOM_RELBOUNDARY_EMPTY : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (@hom_relboundary A p (@pair (Topology A) (prod (A -> Prop) (A -> Prop)) top (@pair (A -> Prop) (A -> Prop) s (@EMPTY A)))) = (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s)). +Axiom thm_NATURALITY_HOM_INDUCED_RELBOUNDARY : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, forall top' : Topology B, forall u : B -> Prop, forall v : B -> Prop, forall f : A -> B, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@SUBSET B (@IMAGE A B f s) u) /\ (@SUBSET B (@IMAGE A B f t) v))) -> (@o ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@hom_relboundary B p (@pair (Topology B) (prod (B -> Prop) (B -> Prop)) top' (@pair (B -> Prop) (B -> Prop) u v))) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top s) (@pair (Topology B) (B -> Prop) top' u) f)) = (@o ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@hom_induced A B (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) t) (@pair (Topology B) (B -> Prop) (@subtopology B top' u) v) f) (@hom_relboundary A p (@pair (Topology A) (prod (A -> Prop) (A -> Prop)) top (@pair (A -> Prop) (A -> Prop) s t)))). +Axiom thm_HOMOLOGY_EXACTNESS_TRIPLE_1 : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A t s) -> @group_exactness ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (prod (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top t))) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) t))))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top t) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x)) (@hom_relboundary A p (@pair (Topology A) (prod (A -> Prop) (A -> Prop)) top (@pair (A -> Prop) (A -> Prop) s t)))). +Axiom thm_HOMOLOGY_EXACTNESS_TRIPLE_2 : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A t s) -> @group_exactness ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (prod (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) t))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) top t))))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_relboundary A p (@pair (Topology A) (prod (A -> Prop) (A -> Prop)) top (@pair (A -> Prop) (A -> Prop) s t))) (@hom_induced A A (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) t) (@pair (Topology A) (A -> Prop) top t) (fun x : A => x))). +Axiom thm_HOMOLOGY_EXACTNESS_TRIPLE_3 : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A t s) -> @group_exactness ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (prod (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top s) t))) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top t))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top s) t) (@pair (Topology A) (A -> Prop) top t) (fun x : A => x)) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top t) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x))). +Axiom thm_reduced_homology_group : forall {A : Type'}, forall p : Z, forall top : Topology A, (@reduced_homology_group A (@pair Z (Topology A) p top)) = (@subgroup_generated ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) (@group_kernel ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> unit)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> unit)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@homology_group unit (@pair Z (Topology unit) p (@discrete_topology unit (@INSERT unit tt (@EMPTY unit)))))) (@hom_induced A unit p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology unit) (unit -> Prop) (@discrete_topology unit (@INSERT unit tt (@EMPTY unit))) (@EMPTY unit)) (fun x : A => tt)))). +Axiom thm_GROUP_CARRIER_REDUCED_HOMOLOGY_GROUP : forall {A : Type'}, forall p : Z, forall top : Topology A, (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@reduced_homology_group A (@pair Z (Topology A) p top))) = (@group_kernel ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> unit)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> unit)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@homology_group unit (@pair Z (Topology unit) p (@discrete_topology unit (@INSERT unit tt (@EMPTY unit)))))) (@hom_induced A unit p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology unit) (unit -> Prop) (@discrete_topology unit (@INSERT unit tt (@EMPTY unit))) (@EMPTY unit)) (fun x : A => tt))). +Axiom thm_GROUP_CARRIER_REDUCED_HOMOLOGY_GROUP_SUBSET : forall {A : Type'}, forall p : Z, forall top : Topology A, @SUBSET ((frag ((N -> R) -> A)) -> Prop) (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@reduced_homology_group A (@pair Z (Topology A) p top))) (@group_carrier ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top))). +Axiom thm_UN_REDUCED_HOMOLOGY_GROUP : forall {A : Type'}, forall p : Z, forall top : Topology A, (~ (p = (Z_of_N (NUMERAL 0%N)))) -> (@reduced_homology_group A (@pair Z (Topology A) p top)) = (@homology_group A (@pair Z (Topology A) p top)). +Axiom thm_TRIVIAL_REDUCED_HOMOLOGY_GROUP : forall {A : Type'}, forall p : Z, forall top : Topology A, (int_lt p (Z_of_N (NUMERAL 0%N))) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@reduced_homology_group A (@pair Z (Topology A) p top)). +Axiom thm_GROUP_HOMOMORPHISM_HOM_INDUCED_REDUCED : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall f : A -> B, @group_homomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@reduced_homology_group A (@pair Z (Topology A) p top)) (@reduced_homology_group B (@pair Z (Topology B) p top'))) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) f). +Axiom thm_HOM_INDUCED_REDUCED : forall {_558666 _558675 : Type'}, forall p : Z, forall top : Topology _558666, forall top' : Topology _558675, forall f : _558666 -> _558675, forall c : (frag ((N -> R) -> _558666)) -> Prop, (@IN ((frag ((N -> R) -> _558666)) -> Prop) c (@group_carrier ((frag ((N -> R) -> _558666)) -> Prop) (@reduced_homology_group _558666 (@pair Z (Topology _558666) p top)))) -> @IN ((frag ((N -> R) -> _558675)) -> Prop) (@hom_induced _558666 _558675 p (@pair (Topology _558666) (_558666 -> Prop) top (@EMPTY _558666)) (@pair (Topology _558675) (_558675 -> Prop) top' (@EMPTY _558675)) f c) (@group_carrier ((frag ((N -> R) -> _558675)) -> Prop) (@reduced_homology_group _558675 (@pair Z (Topology _558675) p top'))). +Axiom thm_GROUP_HOMOMORPHISM_HOM_BOUNDARY_REDUCED : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, @group_homomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@reduced_homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s)))) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s)). +Axiom thm_HOMOTOPY_EQUIVALENCE_REDUCED_HOMOLOGY_GROUP_ISOMORPHISMS : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) top' top) g) /\ ((@homotopic_with A A (fun h : A -> A => True) (@pair (Topology A) (Topology A) top top) (@o A B A g f) (@I A)) /\ (@homotopic_with B B (fun k : B -> B => True) (@pair (Topology B) (Topology B) top' top') (@o B A B f g) (@I B))))) -> @group_isomorphisms ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@reduced_homology_group A (@pair Z (Topology A) p top)) (@reduced_homology_group B (@pair Z (Topology B) p top'))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> B)) -> Prop) (((frag ((N -> R) -> B)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) f) (@hom_induced B A p (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) g)). +Axiom thm_HOMOTOPY_EQUIVALENCE_REDUCED_HOMOLOGY_GROUP_ISOMORPHISM : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall f : A -> B, forall g : B -> A, ((@continuous_map A B (@pair (Topology A) (Topology B) top top') f) /\ ((@continuous_map B A (@pair (Topology B) (Topology A) top' top) g) /\ ((@homotopic_with A A (fun h : A -> A => True) (@pair (Topology A) (Topology A) top top) (@o A B A g f) (@I A)) /\ (@homotopic_with B B (fun k : B -> B => True) (@pair (Topology B) (Topology B) top' top') (@o B A B f g) (@I B))))) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@reduced_homology_group A (@pair Z (Topology A) p top)) (@reduced_homology_group B (@pair Z (Topology B) p top'))) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology B) (B -> Prop) top' (@EMPTY B)) f). +Axiom thm_HOMOTOPY_EQUIVALENT_SPACE_IMP_ISOMORPHIC_REDUCED_HOMOLOGY_GROUPS : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, (@homotopy_equivalent_space A B top top') -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@reduced_homology_group A (@pair Z (Topology A) p top)) (@reduced_homology_group B (@pair Z (Topology B) p top')). +Axiom thm_HOMEOMORPHIC_SPACE_IMP_ISOMORPHIC_REDUCED_HOMOLOGY_GROUPS : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, (@homeomorphic_space A B top top') -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@reduced_homology_group A (@pair Z (Topology A) p top)) (@reduced_homology_group B (@pair Z (Topology B) p top')). +Axiom thm_TRIVIAL_REDUCED_HOMOLOGY_GROUP_EMPTY : forall {A : Type'}, forall p : Z, forall top : Topology A, ((@topspace A top) = (@EMPTY A)) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@reduced_homology_group A (@pair Z (Topology A) p top)). +Axiom thm_HOMOLOGY_DIMENSION_REDUCED : forall {A : Type'}, forall p : Z, forall top : Topology A, forall a : A, ((@topspace A top) = (@INSERT A a (@EMPTY A))) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@reduced_homology_group A (@pair Z (Topology A) p top)). +Axiom thm_TRIVIAL_REDUCED_HOMOLOGY_GROUP_CONTRACTIBLE_SPACE : forall {A : Type'}, forall p : Z, forall top : Topology A, (@contractible_space A top) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@reduced_homology_group A (@pair Z (Topology A) p top)). +Axiom thm_GROUP_IMAGE_REDUCED_HOMOLOGY_GROUP : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (~ ((@INTER A (@topspace A top) s) = (@EMPTY A))) -> (@group_image ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@reduced_homology_group A (@pair Z (Topology A) p top)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x))) = (@group_image ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x))). +Axiom thm_HOMOLOGY_EXACTNESS_REDUCED_1 : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (~ ((@INTER A (@topspace A top) s) = (@EMPTY A))) -> @group_exactness ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (prod (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop))) (@reduced_homology_group A (@pair Z (Topology A) p top)) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@reduced_homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s))))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x)) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_HOMOLOGY_EXACTNESS_REDUCED_2 : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, @group_exactness ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (prod (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@reduced_homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s))) (@reduced_homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) top)))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s)) (@hom_induced A A (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun x : A => x))). +Axiom thm_HOMOLOGY_EXACTNESS_REDUCED_3 : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, @group_exactness ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (prod (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop))) (@reduced_homology_group A (@pair Z (Topology A) p (@subtopology A top s))) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@reduced_homology_group A (@pair Z (Topology A) p top)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun x : A => x)) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x))). +Axiom thm_GROUP_ISOMORPHISM_RELATIVE_HOMOLOGY_OF_CONTRACTIBLE : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((@contractible_space A top) /\ (~ ((@INTER A (@topspace A top) s) = (@EMPTY A)))) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@reduced_homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s)))) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s)). +Axiom thm_ISOMORPHIC_GROUP_RELATIVE_HOMOLOGY_OF_CONTRACTIBLE : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((@contractible_space A top) /\ (~ ((@INTER A (@topspace A top) s) = (@EMPTY A)))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@reduced_homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s))). +Axiom thm_ISOMORPHIC_GROUP_REDUCED_HOMOLOGY_OF_CONTRACTIBLE : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((@contractible_space A top) /\ (~ ((@INTER A (@topspace A top) s) = (@EMPTY A)))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@reduced_homology_group A (@pair Z (Topology A) p (@subtopology A top s))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (int_add p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_GROUP_ISOMORPHISM_REDUCED_HOMOLOGY_BY_CONTRACTIBLE : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((@contractible_space A (@subtopology A top s)) /\ (~ ((@INTER A (@topspace A top) s) = (@EMPTY A)))) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@reduced_homology_group A (@pair Z (Topology A) p top)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x)). +Axiom thm_ISOMORPHIC_GROUP_REDUCED_HOMOLOGY_BY_CONTRACTIBLE : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((@contractible_space A (@subtopology A top s)) /\ (~ ((@INTER A (@topspace A top) s) = (@EMPTY A)))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@reduced_homology_group A (@pair Z (Topology A) p top)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_ISOMORPHIC_GROUP_RELATIVE_HOMOLOGY_BY_CONTRACTIBLE : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((@contractible_space A (@subtopology A top s)) /\ (~ ((@INTER A (@topspace A top) s) = (@EMPTY A)))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@reduced_homology_group A (@pair Z (Topology A) p top)). +Axiom thm_ISOMORPHIC_GROUP_REDUCED_HOMOLOGY_BY_SING : forall {A : Type'}, forall p : Z, forall top : Topology A, forall a : A, (@IN A a (@topspace A top)) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@reduced_homology_group A (@pair Z (Topology A) p top)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@INSERT A a (@EMPTY A))))). +Axiom thm_ISOMORPHIC_GROUP_RELATIVE_HOMOLOGY_BY_SING : forall {A : Type'}, forall p : Z, forall top : Topology A, forall a : A, (@IN A a (@topspace A top)) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@INSERT A a (@EMPTY A))))) (@reduced_homology_group A (@pair Z (Topology A) p top)). +Axiom thm_REDUCED_HOMOLOGY_GROUP_PAIR : forall {A : Type'}, forall p : Z, forall top : Topology A, forall a : A, forall b : A, ((@t1_space A top) /\ ((@IN A a (@topspace A top)) /\ ((@IN A b (@topspace A top)) /\ (~ (a = b))))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@reduced_homology_group A (@pair Z (Topology A) p (@subtopology A top (@INSERT A a (@INSERT A b (@EMPTY A)))))) (@homology_group A (@pair Z (Topology A) p (@subtopology A top (@INSERT A a (@EMPTY A))))). +Axiom thm_DEFORMATION_RETRACTION_RELATIVE_HOMOLOGY_GROUP_ISOMORPHISMS : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, forall v : B -> Prop, forall r : A -> B, forall s : B -> A, ((@retraction_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) r s)) /\ ((@SUBSET B (@IMAGE A B r u) v) /\ ((@SUBSET A (@IMAGE B A s v) u) /\ (@homotopic_with A A (fun h : A -> A => @SUBSET A (@IMAGE A A h u) u) (@pair (Topology A) (Topology A) top top) (@o A B A s r) (@I A))))) -> @group_isomorphisms ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> B)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top u))) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' v)))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> B)) -> Prop) (((frag ((N -> R) -> B)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_induced A B p (@pair (Topology A) (A -> Prop) top u) (@pair (Topology B) (B -> Prop) top' v) r) (@hom_induced B A p (@pair (Topology B) (B -> Prop) top' v) (@pair (Topology A) (A -> Prop) top u) s)). +Axiom thm_DEFORMATION_RETRACT_RELATIVE_HOMOLOGY_GROUP_ISOMORPHISMS : forall {A : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology A, forall u : A -> Prop, forall v : A -> Prop, forall r : A -> A, ((@retraction_maps A A (@pair (Topology A) (Topology A) top top') (@pair (A -> A) (A -> A) r (@I A))) /\ ((@SUBSET A v u) /\ ((@SUBSET A (@IMAGE A A r u) v) /\ (@homotopic_with A A (fun h : A -> A => @SUBSET A (@IMAGE A A h u) u) (@pair (Topology A) (Topology A) top top) r (@I A))))) -> @group_isomorphisms ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top u))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top' v)))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top u) (@pair (Topology A) (A -> Prop) top' v) r) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top' v) (@pair (Topology A) (A -> Prop) top u) (fun x : A => x))). +Axiom thm_DEFORMATION_RETRACT_RELATIVE_HOMOLOGY_GROUP_ISOMORPHISM : forall {A : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology A, forall u : A -> Prop, forall v : A -> Prop, forall r : A -> A, ((@retraction_maps A A (@pair (Topology A) (Topology A) top top') (@pair (A -> A) (A -> A) r (@I A))) /\ ((@SUBSET A v u) /\ ((@SUBSET A (@IMAGE A A r u) v) /\ (@homotopic_with A A (fun h : A -> A => @SUBSET A (@IMAGE A A h u) u) (@pair (Topology A) (Topology A) top top) r (@I A))))) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top u))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top' v)))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top u) (@pair (Topology A) (A -> Prop) top' v) r). +Axiom thm_DEFORMATION_RETRACT_RELATIVE_HOMOLOGY_GROUP_ISOMORPHISM_ID : forall {A : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology A, forall u : A -> Prop, forall v : A -> Prop, forall r : A -> A, ((@retraction_maps A A (@pair (Topology A) (Topology A) top top') (@pair (A -> A) (A -> A) r (@I A))) /\ ((@SUBSET A v u) /\ ((@SUBSET A (@IMAGE A A r u) v) /\ (@homotopic_with A A (fun h : A -> A => @SUBSET A (@IMAGE A A h u) u) (@pair (Topology A) (Topology A) top top) r (@I A))))) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top' v))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top u)))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top' v) (@pair (Topology A) (A -> Prop) top u) (fun x : A => x)). +Axiom thm_DEFORMATION_RETRACTION_IMP_ISOMORPHIC_RELATIVE_HOMOLOGY_GROUPS : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall u : A -> Prop, forall v : B -> Prop, forall r : A -> B, forall s : B -> A, ((@retraction_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) r s)) /\ ((@SUBSET B (@IMAGE A B r u) v) /\ ((@SUBSET A (@IMAGE B A s v) u) /\ (@homotopic_with A A (fun h : A -> A => @SUBSET A (@IMAGE A A h u) u) (@pair (Topology A) (Topology A) top top) (@o A B A s r) (@I A))))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top u))) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' v))). +Axiom thm_DEFORMATION_RETRACTION_IMP_ISOMORPHIC_HOMOLOGY_GROUPS : forall {A B : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology B, forall r : A -> B, forall s : B -> A, ((@retraction_maps A B (@pair (Topology A) (Topology B) top top') (@pair (A -> B) (B -> A) r s)) /\ (@homotopic_with A A (fun h : A -> A => True) (@pair (Topology A) (Topology A) top top) (@o A B A s r) (@I A))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) (@homology_group B (@pair Z (Topology B) p top')). +Axiom thm_DEFORMATION_RETRACT_IMP_ISOMORPHIC_RELATIVE_HOMOLOGY_GROUPS : forall {A : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology A, forall u : A -> Prop, forall v : A -> Prop, forall r : A -> A, ((@retraction_maps A A (@pair (Topology A) (Topology A) top top') (@pair (A -> A) (A -> A) r (@I A))) /\ ((@SUBSET A v u) /\ ((@SUBSET A (@IMAGE A A r u) v) /\ (@homotopic_with A A (fun h : A -> A => @SUBSET A (@IMAGE A A h u) u) (@pair (Topology A) (Topology A) top top) r (@I A))))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top u))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top' v))). +Axiom thm_DEFORMATION_RETRACT_IMP_ISOMORPHIC_HOMOLOGY_GROUPS : forall {A : Type'}, forall p : Z, forall top : Topology A, forall top' : Topology A, forall r : A -> A, ((@retraction_maps A A (@pair (Topology A) (Topology A) top top') (@pair (A -> A) (A -> A) r (@I A))) /\ (@homotopic_with A A (fun h : A -> A => True) (@pair (Topology A) (Topology A) top top) r (@I A))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) (@homology_group A (@pair Z (Topology A) p top')). +Axiom thm_ISOMORPHIC_GROUP_HOMOLOGY_BY_SING : forall {A : Type'}, (forall top : Topology A, forall a : A, (@IN A a (@topspace A top)) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) (prod Z ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) (Z_of_N (NUMERAL 0%N)) top)) (@prod_group Z ((frag ((N -> R) -> A)) -> Prop) integer_group (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (Z_of_N (NUMERAL 0%N)) (@pair (Topology A) (A -> Prop) top (@INSERT A a (@EMPTY A))))))) /\ (forall p : Z, forall top : Topology A, forall a : A, ((@IN A a (@topspace A top)) /\ (~ (p = (Z_of_N (NUMERAL 0%N))))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top (@INSERT A a (@EMPTY A)))))). +Axiom thm_GROUP_EPIMORPHISM_HOM_INDUCED_INCLUSION : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (exists f : A -> A, (@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (@I A) f) /\ (@SUBSET A (@IMAGE A A f (@topspace A top)) s)) -> @group_epimorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) (@homology_group A (@pair Z (Topology A) p top))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun x : A => x)). +Axiom thm_TRIVIAL_HOMOMORPHISM_HOM_INDUCED_RELATIVIZATION : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (exists f : A -> A, (@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (@I A) f) /\ (@SUBSET A (@IMAGE A A f (@topspace A top)) s)) -> @trivial_homomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) p top)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x)). +Axiom thm_GROUP_MONOMORPHISM_HOM_BOUNDARY_INCLUSION : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (exists f : A -> A, (@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (@I A) f) /\ (@SUBSET A (@IMAGE A A f (@topspace A top)) s)) -> @group_monomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s)))) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s)). +Axiom thm_SHORT_EXACT_SEQUENCE_HOM_INDUCED_RELATIVIZATION : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (exists f : A -> A, (@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (@I A) f) /\ (@SUBSET A (@IMAGE A A f (@topspace A top)) s)) -> @short_exact_sequence ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (prod (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@subtopology A top s))) (@homology_group A (@pair Z (Topology A) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) top)))) (@pair (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (((frag ((N -> R) -> A)) -> Prop) -> (frag ((N -> R) -> A)) -> Prop) (@hom_boundary A p (@pair (Topology A) (A -> Prop) top s)) (@hom_induced A A (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun x : A => x))). +Axiom thm_GROUP_ISOMORPHISMS_HOMOLOGY_GROUP_PROD_DEFORMATION : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (exists f : A -> A, (@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (@I A) f) /\ (@SUBSET A (@IMAGE A A f (@topspace A top)) s)) -> exists h : ((frag ((N -> R) -> A)) -> Prop) -> Prop, exists k : ((frag ((N -> R) -> A)) -> Prop) -> Prop, (@subgroup_of ((frag ((N -> R) -> A)) -> Prop) h (@homology_group A (@pair Z (Topology A) p (@subtopology A top s)))) /\ ((@subgroup_of ((frag ((N -> R) -> A)) -> Prop) k (@homology_group A (@pair Z (Topology A) p (@subtopology A top s)))) /\ ((@group_isomorphism (prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop)) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group (prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop))) (Group ((frag ((N -> R) -> A)) -> Prop)) (@prod_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@subgroup_generated ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) h) (@subgroup_generated ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) k)) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s)))) (@GABS ((prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop)) -> (frag ((N -> R) -> A)) -> Prop) (fun f : (prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop)) -> (frag ((N -> R) -> A)) -> Prop => forall x : (frag ((N -> R) -> A)) -> Prop, forall y : (frag ((N -> R) -> A)) -> Prop, @GEQ ((frag ((N -> R) -> A)) -> Prop) (f (@pair ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) x y)) (@group_mul ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) x y)))) /\ ((@group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (int_add p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) top s))) (@subgroup_generated ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) h)) (@hom_boundary A (int_add p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) top s))) /\ (@group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@subgroup_generated ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) k) (@homology_group A (@pair Z (Topology A) p top))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top s) (@EMPTY A)) (@pair (Topology A) (A -> Prop) top (@EMPTY A)) (fun x : A => x)))))). +Axiom thm_ISOMORPHIC_GROUP_HOMOLOGY_GROUP_PROD_DEFORMATION : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, (exists f : A -> A, (@homotopic_with A A (fun x : A -> A => True) (@pair (Topology A) (Topology A) top top) (@I A) f) /\ (@SUBSET A (@IMAGE A A f (@topspace A top)) s)) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) (prod ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) (@prod_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p top)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (int_add p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) top s)))). +Axiom thm_ISOMORPHIC_GROUP_HOMOLOGY_CONTRACTIBLE_SPACE_SUBTOPOLOGY : forall {A : Type'}, (forall top : Topology A, forall s : A -> Prop, ((@contractible_space A top) /\ ((@SUBSET A s (@topspace A top)) /\ (~ (s = (@EMPTY A))))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) (prod Z ((frag ((N -> R) -> A)) -> Prop)) (@homology_group A (@pair Z (Topology A) (Z_of_N (NUMERAL 0%N)) (@subtopology A top s))) (@prod_group Z ((frag ((N -> R) -> A)) -> Prop) integer_group (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (Z_of_N (NUMERAL (BIT1 0%N))) (@pair (Topology A) (A -> Prop) top s))))) /\ (forall p : Z, forall top : Topology A, forall s : A -> Prop, ((~ (p = (Z_of_N (NUMERAL 0%N)))) /\ ((@contractible_space A top) /\ ((@SUBSET A s (@topspace A top)) /\ (~ (s = (@EMPTY A)))))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (int_add p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) top s)))). +Axiom thm_TRIVIAL_RELATIVE_HOMOLOGY_GROUP_CONTRACTIBLE_SPACES : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, ((@contractible_space A top) /\ ((@contractible_space A (@subtopology A top s)) /\ (~ ((@INTER A (@topspace A top) s) = (@EMPTY A))))) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_TRIVIAL_RELATIVE_HOMOLOGY_GROUP_ALT : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall f : A -> A, ((@continuous_map A A (@pair (Topology A) (Topology A) top (@subtopology A top s)) f) /\ (@homotopic_with A A (fun k : A -> A => @SUBSET A (@IMAGE A A k s) s) (@pair (Topology A) (Topology A) top top) f (@I A))) -> @trivial_group ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_GROUP_ISOMORPHISM_HOM_INDUCED_RELATIVIZATION_CONTRACTIBLE : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@contractible_space A (@subtopology A top s)) /\ ((@contractible_space A (@subtopology A top t)) /\ ((@SUBSET A t s) /\ (~ ((@INTER A (@topspace A top) t) = (@EMPTY A)))))) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top t))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s)))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) top t) (@pair (Topology A) (A -> Prop) top s) (fun x : A => x)). +Axiom thm_ISOMORPHIC_RELATIVE_HOMOLOGY_GROUPS_RELATIVIZATION_CONTRACTIBLE : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@contractible_space A (@subtopology A top s)) /\ ((@contractible_space A (@subtopology A top t)) /\ ((@SUBSET A t s) /\ (~ ((@INTER A (@topspace A top) t) = (@EMPTY A)))))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top t))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))). +Axiom thm_GROUP_ISOMORPHISM_HOM_INDUCED_INCLUSION_CONTRACTIBLE : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@contractible_space A top) /\ ((@contractible_space A (@subtopology A top s)) /\ ((@SUBSET A t s) /\ (~ ((@INTER A (@topspace A top) s) = (@EMPTY A)))))) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top s) t))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top t)))) (@hom_induced A A p (@pair (Topology A) (A -> Prop) (@subtopology A top s) t) (@pair (Topology A) (A -> Prop) top t) (fun x : A => x)). +Axiom thm_ISOMORPHIC_RELATIVE_HOMOLOGY_GROUPS_INCLUSION_CONTRACTIBLE : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@contractible_space A top) /\ ((@contractible_space A (@subtopology A top s)) /\ ((@SUBSET A t s) /\ (~ ((@INTER A (@topspace A top) s) = (@EMPTY A)))))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) (@subtopology A top s) t))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top t))). +Axiom thm_GROUP_ISOMORPHISM_HOM_RELBOUNDARY_CONTRACTIBLE : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@contractible_space A top) /\ ((@contractible_space A (@subtopology A top t)) /\ ((@SUBSET A t s) /\ (~ ((@INTER A (@topspace A top) t) = (@EMPTY A)))))) -> @group_isomorphism ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@pair (Group ((frag ((N -> R) -> A)) -> Prop)) (Group ((frag ((N -> R) -> A)) -> Prop)) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) t)))) (@hom_relboundary A p (@pair (Topology A) (prod (A -> Prop) (A -> Prop)) top (@pair (A -> Prop) (A -> Prop) s t))). +Axiom thm_ISOMORPHIC_RELATIVE_HOMOLOGY_GROUPS_RELBOUNDARY_CONTRACTIBLE : forall {A : Type'}, forall p : Z, forall top : Topology A, forall s : A -> Prop, forall t : A -> Prop, ((@contractible_space A top) /\ ((@contractible_space A (@subtopology A top t)) /\ ((@SUBSET A t s) /\ (~ ((@INTER A (@topspace A top) t) = (@EMPTY A)))))) -> @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> A)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) (int_sub p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology A) (A -> Prop) (@subtopology A top s) t))). +Axiom thm_ISOMORPHIC_RELATIVE_CONTRACTIBLE_SPACE_IMP_HOMOLOGY_GROUPS : forall {A B : Type'}, forall top : Topology A, forall top' : Topology B, forall s : A -> Prop, forall t : B -> Prop, ((@contractible_space A top) /\ ((@contractible_space B top') /\ ((@SUBSET A s (@topspace A top)) /\ ((@SUBSET B t (@topspace B top')) /\ (((s = (@EMPTY A)) = (t = (@EMPTY B))) /\ (forall p : Z, @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@relative_homology_group A (@pair Z (prod (Topology A) (A -> Prop)) p (@pair (Topology A) (A -> Prop) top s))) (@relative_homology_group B (@pair Z (prod (Topology B) (B -> Prop)) p (@pair (Topology B) (B -> Prop) top' t))))))))) -> forall p : Z, @isomorphic_group ((frag ((N -> R) -> A)) -> Prop) ((frag ((N -> R) -> B)) -> Prop) (@homology_group A (@pair Z (Topology A) p (@subtopology A top s))) (@homology_group B (@pair Z (Topology B) p (@subtopology B top' t))). +Axiom thm_GROUP_ISOMORPHISM_REDUCED_HOMOLOGY_GROUP_LOWER_HEMISPHERE : forall p : Z, forall n : N, forall k : N, (@IN N k (dotdot (NUMERAL (BIT1 0%N)) (N.add n (NUMERAL (BIT1 0%N))))) -> @group_isomorphism ((frag ((N -> R) -> N -> R)) -> Prop) ((frag ((N -> R) -> N -> R)) -> Prop) (@pair (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) p (nsphere n))) (@relative_homology_group (N -> R) (@pair Z (prod (Topology (N -> R)) ((N -> R) -> Prop)) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2232 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2232 (Rle (x k) (R_of_N (NUMERAL 0%N))) x)))))) (@hom_induced (N -> R) (N -> R) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere n) (@EMPTY (N -> R))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2233 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2233 (Rle (x k) (R_of_N (NUMERAL 0%N))) x))) (fun x : N -> R => x)). +Axiom thm_GROUP_ISOMORPHISM_RELATIVE_HOMOLOGY_GROUP_UPPER_HEMISPHERE : forall p : Z, forall n : N, forall k : N, @group_isomorphism ((frag ((N -> R) -> N -> R)) -> Prop) ((frag ((N -> R) -> N -> R)) -> Prop) (@pair (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (@relative_homology_group (N -> R) (@pair Z (prod (Topology (N -> R)) ((N -> R) -> Prop)) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (@subtopology (N -> R) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2259 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2259 (Rge (x k) (R_of_N (NUMERAL 0%N))) x))) (@GSPEC (N -> R) (fun GEN_PVAR_2260 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2260 ((x k) = (R_of_N (NUMERAL 0%N))) x))))) (@relative_homology_group (N -> R) (@pair Z (prod (Topology (N -> R)) ((N -> R) -> Prop)) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2261 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2261 (Rle (x k) (R_of_N (NUMERAL 0%N))) x)))))) (@hom_induced (N -> R) (N -> R) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (@subtopology (N -> R) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2262 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2262 (Rge (x k) (R_of_N (NUMERAL 0%N))) x))) (@GSPEC (N -> R) (fun GEN_PVAR_2263 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2263 ((x k) = (R_of_N (NUMERAL 0%N))) x))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2264 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2264 (Rle (x k) (R_of_N (NUMERAL 0%N))) x))) (fun x : N -> R => x)). +Axiom thm_GROUP_ISOMORPHISM_UPPER_HEMISPHERE_REDUCED_HOMOLOGY_GROUP : forall p : Z, forall n : N, @group_isomorphism ((frag ((N -> R) -> N -> R)) -> Prop) ((frag ((N -> R) -> N -> R)) -> Prop) (@pair (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (@relative_homology_group (N -> R) (@pair Z (prod (Topology (N -> R)) ((N -> R) -> Prop)) (int_add p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (@subtopology (N -> R) (nsphere (N.add n (NUMERAL (BIT1 0%N)))) (@GSPEC (N -> R) (fun GEN_PVAR_2267 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2267 (Rge (x (N.add n (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL 0%N))) x))) (@GSPEC (N -> R) (fun GEN_PVAR_2268 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2268 ((x (N.add n (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL 0%N))) x))))) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) p (nsphere n)))) (@hom_boundary (N -> R) (int_add p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (@subtopology (N -> R) (nsphere (N.add n (NUMERAL (BIT1 0%N)))) (@GSPEC (N -> R) (fun GEN_PVAR_2269 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2269 (Rge (x (N.add n (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL 0%N))) x))) (@GSPEC (N -> R) (fun GEN_PVAR_2270 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2270 ((x (N.add n (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL 0%N))) x)))). +Axiom thm_GROUP_ISOMORPHISM_REDUCED_HOMOLOGY_GROUP_UPPER_HEMISPHERE : forall p : Z, forall n : N, forall k : N, (@IN N k (dotdot (NUMERAL (BIT1 0%N)) (N.add n (NUMERAL (BIT1 0%N))))) -> @group_isomorphism ((frag ((N -> R) -> N -> R)) -> Prop) ((frag ((N -> R) -> N -> R)) -> Prop) (@pair (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) p (nsphere n))) (@relative_homology_group (N -> R) (@pair Z (prod (Topology (N -> R)) ((N -> R) -> Prop)) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2271 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2271 (Rge (x k) (R_of_N (NUMERAL 0%N))) x)))))) (@hom_induced (N -> R) (N -> R) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere n) (@EMPTY (N -> R))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2272 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2272 (Rge (x k) (R_of_N (NUMERAL 0%N))) x))) (fun x : N -> R => x)). +Axiom thm_GROUP_ISOMORPHISM_RELATIVE_HOMOLOGY_GROUP_LOWER_HEMISPHERE : forall p : Z, forall n : N, forall k : N, @group_isomorphism ((frag ((N -> R) -> N -> R)) -> Prop) ((frag ((N -> R) -> N -> R)) -> Prop) (@pair (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (@relative_homology_group (N -> R) (@pair Z (prod (Topology (N -> R)) ((N -> R) -> Prop)) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (@subtopology (N -> R) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2279 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2279 (Rle (x k) (R_of_N (NUMERAL 0%N))) x))) (@GSPEC (N -> R) (fun GEN_PVAR_2280 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2280 ((x k) = (R_of_N (NUMERAL 0%N))) x))))) (@relative_homology_group (N -> R) (@pair Z (prod (Topology (N -> R)) ((N -> R) -> Prop)) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2281 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2281 (Rge (x k) (R_of_N (NUMERAL 0%N))) x)))))) (@hom_induced (N -> R) (N -> R) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (@subtopology (N -> R) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2282 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2282 (Rle (x k) (R_of_N (NUMERAL 0%N))) x))) (@GSPEC (N -> R) (fun GEN_PVAR_2283 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2283 ((x k) = (R_of_N (NUMERAL 0%N))) x))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere n) (@GSPEC (N -> R) (fun GEN_PVAR_2284 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2284 (Rge (x k) (R_of_N (NUMERAL 0%N))) x))) (fun x : N -> R => x)). +Axiom thm_GROUP_ISOMORPHISM_LOWER_HEMISPHERE_REDUCED_HOMOLOGY_GROUP : forall p : Z, forall n : N, @group_isomorphism ((frag ((N -> R) -> N -> R)) -> Prop) ((frag ((N -> R) -> N -> R)) -> Prop) (@pair (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (@relative_homology_group (N -> R) (@pair Z (prod (Topology (N -> R)) ((N -> R) -> Prop)) (int_add p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (@subtopology (N -> R) (nsphere (N.add n (NUMERAL (BIT1 0%N)))) (@GSPEC (N -> R) (fun GEN_PVAR_2287 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2287 (Rle (x (N.add n (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL 0%N))) x))) (@GSPEC (N -> R) (fun GEN_PVAR_2288 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2288 ((x (N.add n (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL 0%N))) x))))) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) p (nsphere n)))) (@hom_boundary (N -> R) (int_add p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (@subtopology (N -> R) (nsphere (N.add n (NUMERAL (BIT1 0%N)))) (@GSPEC (N -> R) (fun GEN_PVAR_2289 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2289 (Rle (x (N.add n (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL 0%N))) x))) (@GSPEC (N -> R) (fun GEN_PVAR_2290 : N -> R => exists x : N -> R, @SETSPEC (N -> R) GEN_PVAR_2290 ((x (N.add n (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL 0%N))) x)))). +Axiom thm_REDUCED_HOMOLOGY_GROUP_NSPHERE_STEP : forall p : Z, forall n : N, exists f : ((frag ((N -> R) -> N -> R)) -> Prop) -> (frag ((N -> R) -> N -> R)) -> Prop, (@group_isomorphism ((frag ((N -> R) -> N -> R)) -> Prop) ((frag ((N -> R) -> N -> R)) -> Prop) (@pair (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (Group ((frag ((N -> R) -> N -> R)) -> Prop)) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) p (nsphere n))) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (int_add p (Z_of_N (NUMERAL (BIT1 0%N)))) (nsphere (N.add n (NUMERAL (BIT1 0%N))))))) f) /\ (forall c : (frag ((N -> R) -> N -> R)) -> Prop, (@IN ((frag ((N -> R) -> N -> R)) -> Prop) c (@group_carrier ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) p (nsphere n))))) -> (@hom_induced (N -> R) (N -> R) (int_add p (Z_of_N (NUMERAL (BIT1 0%N)))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere (N.add n (NUMERAL (BIT1 0%N)))) (@EMPTY (N -> R))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere (N.add n (NUMERAL (BIT1 0%N)))) (@EMPTY (N -> R))) (fun x : N -> R => fun i : N => @COND R (i = (NUMERAL (BIT1 0%N))) (Ropp (x i)) (x i)) (f c)) = (f (@hom_induced (N -> R) (N -> R) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere n) (@EMPTY (N -> R))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere n) (@EMPTY (N -> R))) (fun x : N -> R => fun i : N => @COND R (i = (NUMERAL (BIT1 0%N))) (Ropp (x i)) (x i)) c))). +Axiom thm_REDUCED_HOMOLOGY_GROUP_NSPHERE : (forall n : N, @isomorphic_group ((frag ((N -> R) -> N -> R)) -> Prop) Z (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N n) (nsphere n))) integer_group) /\ (forall n : N, forall p : Z, (~ (p = (Z_of_N n))) -> @trivial_group ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) p (nsphere n)))). +Axiom thm_CYCLIC_REDUCED_HOMOLOGY_GROUP_NSPHERE : forall p : Z, forall n : N, @cyclic_group ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) p (nsphere n))). +Axiom thm_TRIVIAL_REDUCED_HOMOLOGY_GROUP_NSPHERE : forall p : Z, forall n : N, (@trivial_group ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) p (nsphere n)))) = (~ (p = (Z_of_N n))). +Axiom thm_NON_CONTRACTIBLE_SPACE_NSPHERE : forall n : N, ~ (@contractible_space (N -> R) (nsphere n)). +Axiom thm_brouwer_degree2 : forall f : (N -> R) -> N -> R, forall p : N, (brouwer_degree2 p f) = (@ε Z (fun d : Z => forall x : (frag ((N -> R) -> N -> R)) -> Prop, (@IN ((frag ((N -> R) -> N -> R)) -> Prop) x (@group_carrier ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N p) (nsphere p))))) -> (@hom_induced (N -> R) (N -> R) (Z_of_N p) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere p) (@EMPTY (N -> R))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere p) (@EMPTY (N -> R))) f x) = (@group_zpow ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N p) (nsphere p))) x d))). +Axiom thm_BROUWER_DEGREE2_EQ : forall p : N, forall f : (N -> R) -> N -> R, forall g : (N -> R) -> N -> R, (forall x : N -> R, (@IN (N -> R) x (@topspace (N -> R) (nsphere p))) -> (f x) = (g x)) -> (brouwer_degree2 p f) = (brouwer_degree2 p g). +Axiom thm_BROUWER_DEGREE2 : forall p : N, forall f : (N -> R) -> N -> R, forall x : (frag ((N -> R) -> N -> R)) -> Prop, (@IN ((frag ((N -> R) -> N -> R)) -> Prop) x (@group_carrier ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N p) (nsphere p))))) -> (@hom_induced (N -> R) (N -> R) (Z_of_N p) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere p) (@EMPTY (N -> R))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere p) (@EMPTY (N -> R))) f x) = (@group_zpow ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N p) (nsphere p))) x (brouwer_degree2 p f)). +Axiom thm_BROUWER_DEGREE2_IFF : forall p : N, forall f : (N -> R) -> N -> R, forall x : (frag ((N -> R) -> N -> R)) -> Prop, forall d : Z, ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f) /\ (@IN ((frag ((N -> R) -> N -> R)) -> Prop) x (@group_carrier ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N p) (nsphere p)))))) -> ((@hom_induced (N -> R) (N -> R) (Z_of_N p) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere p) (@EMPTY (N -> R))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere p) (@EMPTY (N -> R))) f x) = (@group_zpow ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N p) (nsphere p))) x d)) = ((x = (@group_id ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N p) (nsphere p))))) \/ ((brouwer_degree2 p f) = d)). +Axiom thm_BROUWER_DEGREE2_UNIQUE : forall p : N, forall f : (N -> R) -> N -> R, forall d : Z, ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f) /\ (forall x : (frag ((N -> R) -> N -> R)) -> Prop, (@IN ((frag ((N -> R) -> N -> R)) -> Prop) x (@group_carrier ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N p) (nsphere p))))) -> (@hom_induced (N -> R) (N -> R) (Z_of_N p) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere p) (@EMPTY (N -> R))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere p) (@EMPTY (N -> R))) f x) = (@group_zpow ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N p) (nsphere p))) x d))) -> (brouwer_degree2 p f) = d. +Axiom thm_BROUWER_DEGREE2_UNIQUE_GENERATOR : forall p : N, forall f : (N -> R) -> N -> R, forall d : Z, forall a : (frag ((N -> R) -> N -> R)) -> Prop, ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f) /\ (((@subgroup_generated ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N p) (nsphere p))) (@INSERT ((frag ((N -> R) -> N -> R)) -> Prop) a (@EMPTY ((frag ((N -> R) -> N -> R)) -> Prop)))) = (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N p) (nsphere p)))) /\ ((@hom_induced (N -> R) (N -> R) (Z_of_N p) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere p) (@EMPTY (N -> R))) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (nsphere p) (@EMPTY (N -> R))) f a) = (@group_zpow ((frag ((N -> R) -> N -> R)) -> Prop) (@reduced_homology_group (N -> R) (@pair Z (Topology (N -> R)) (Z_of_N p) (nsphere p))) a d)))) -> (brouwer_degree2 p f) = d. +Axiom thm_BROUWER_DEGREE2_HOMOTOPIC : forall p : N, forall f : (N -> R) -> N -> R, forall g : (N -> R) -> N -> R, (@homotopic_with (N -> R) (N -> R) (fun x : (N -> R) -> N -> R => True) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f g) -> (brouwer_degree2 p f) = (brouwer_degree2 p g). +Axiom thm_BROUWER_DEGREE2_ID : forall p : N, (brouwer_degree2 p (fun x : N -> R => x)) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_BROUWER_DEGREE2_COMPOSE : forall p : N, forall f : (N -> R) -> N -> R, forall g : (N -> R) -> N -> R, ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f) /\ (@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) g)) -> (brouwer_degree2 p (@o (N -> R) (N -> R) (N -> R) g f)) = (int_mul (brouwer_degree2 p g) (brouwer_degree2 p f)). +Axiom thm_BROUWER_DEGREE2_HOMOTOPY_EQUIVALENCE : forall p : N, forall f : (N -> R) -> N -> R, forall g : (N -> R) -> N -> R, ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f) /\ ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) g) /\ (@homotopic_with (N -> R) (N -> R) (fun x : (N -> R) -> N -> R => True) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) (@o (N -> R) (N -> R) (N -> R) f g) (@I (N -> R))))) -> ((int_abs (brouwer_degree2 p f)) = (Z_of_N (NUMERAL (BIT1 0%N)))) /\ (((int_abs (brouwer_degree2 p g)) = (Z_of_N (NUMERAL (BIT1 0%N)))) /\ ((brouwer_degree2 p g) = (brouwer_degree2 p f))). +Axiom thm_BROUWER_DEGREE2_HOMEOMORPHIC_MAPS : forall p : N, forall f : (N -> R) -> N -> R, forall g : (N -> R) -> N -> R, (@homeomorphic_maps (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) (@pair ((N -> R) -> N -> R) ((N -> R) -> N -> R) f g)) -> ((int_abs (brouwer_degree2 p f)) = (Z_of_N (NUMERAL (BIT1 0%N)))) /\ (((int_abs (brouwer_degree2 p g)) = (Z_of_N (NUMERAL (BIT1 0%N)))) /\ ((brouwer_degree2 p g) = (brouwer_degree2 p f))). +Axiom thm_BROUWER_DEGREE2_RETRACTION_MAP : forall p : N, forall f : (N -> R) -> N -> R, (@retraction_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f) -> (int_abs (brouwer_degree2 p f)) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_BROUWER_DEGREE2_SECTION_MAP : forall p : N, forall f : (N -> R) -> N -> R, (@section_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f) -> (int_abs (brouwer_degree2 p f)) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_BROUWER_DEGREE2_HOMEOMORPHIC_MAP : forall p : N, forall f : (N -> R) -> N -> R, (@homeomorphic_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f) -> (int_abs (brouwer_degree2 p f)) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_BROUWER_DEGREE2_NULLHOMOTOPIC : forall p : N, forall f : (N -> R) -> N -> R, forall a : N -> R, (@homotopic_with (N -> R) (N -> R) (fun x : (N -> R) -> N -> R => True) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f (fun x : N -> R => a)) -> (brouwer_degree2 p f) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_BROUWER_DEGREE2_CONST : forall p : N, forall a : N -> R, (brouwer_degree2 p (fun x : N -> R => a)) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_BROUWER_DEGREE2_NONSURJECTIVE : forall p : N, forall f : (N -> R) -> N -> R, ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere p) (nsphere p)) f) /\ (~ ((@IMAGE (N -> R) (N -> R) f (@topspace (N -> R) (nsphere p))) = (@topspace (N -> R) (nsphere p))))) -> (brouwer_degree2 p f) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_BROUWER_DEGREE2_REFLECTION : forall p : N, (brouwer_degree2 p (fun x : N -> R => fun i : N => @COND R (i = (NUMERAL (BIT1 0%N))) (Ropp (x i)) (x i))) = (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_BORSUK_ODD_MAPPING_DEGREE_STEP : forall f : (N -> R) -> N -> R, forall n : N, ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (nsphere n) (nsphere n)) f) /\ ((forall x : N -> R, (@IN (N -> R) x (@topspace (N -> R) (nsphere n))) -> (@o (N -> R) (N -> R) (N -> R) f (fun x' : N -> R => fun i : N => Ropp (x' i)) x) = (@o (N -> R) (N -> R) (N -> R) (fun x' : N -> R => fun i : N => Ropp (x' i)) f x)) /\ (@SUBSET (N -> R) (@IMAGE (N -> R) (N -> R) f (@topspace (N -> R) (nsphere (N.sub n (NUMERAL (BIT1 0%N)))))) (@topspace (N -> R) (nsphere (N.sub n (NUMERAL (BIT1 0%N)))))))) -> @eq2 Z (brouwer_degree2 n f) (brouwer_degree2 (N.sub n (NUMERAL (BIT1 0%N))) f) (int_mod (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_RELATIVE_HOMOLOGY_GROUP_EUCLIDEAN_COMPLEMENT_STEP : forall p : Z, forall n : N, forall k : N, forall s : (N -> R) -> Prop, (@closed_in (N -> R) (euclidean_space n) s) -> @isomorphic_group ((frag ((N -> R) -> N -> R)) -> Prop) ((frag ((N -> R) -> N -> R)) -> Prop) (@relative_homology_group (N -> R) (@pair Z (prod (Topology (N -> R)) ((N -> R) -> Prop)) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) s)))) (@relative_homology_group (N -> R) (@pair Z (prod (Topology (N -> R)) ((N -> R) -> Prop)) (int_add p (Z_of_N k)) (@pair (Topology (N -> R)) ((N -> R) -> Prop) (euclidean_space (N.add n k)) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space (N.add n k))) s)))). +Axiom thm_ISOMORPHIC_RELATIVE_HOMOLOGY_GROUPS_EUCLIDEAN_COMPLEMENTS : forall p : Z, forall n : N, forall s : (N -> R) -> Prop, forall t : (N -> R) -> Prop, ((@closed_in (N -> R) (euclidean_space n) s) /\ ((@closed_in (N -> R) (euclidean_space n) t) /\ (@homeomorphic_space (N -> R) (N -> R) (@subtopology (N -> R) (euclidean_space n) s) (@subtopology (N -> R) (euclidean_space n) t)))) -> @isomorphic_group ((frag ((N -> R) -> N -> R)) -> Prop) ((frag ((N -> R) -> N -> R)) -> Prop) (@relative_homology_group (N -> R) (@pair Z (prod (Topology (N -> R)) ((N -> R) -> Prop)) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) s)))) (@relative_homology_group (N -> R) (@pair Z (prod (Topology (N -> R)) ((N -> R) -> Prop)) p (@pair (Topology (N -> R)) ((N -> R) -> Prop) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) t)))). +Axiom thm_INVARIANCE_OF_DIMENSION_CLOSED_IN_EUCLIDEAN_SPACE : forall n : N, forall s : (N -> R) -> Prop, (@closed_in (N -> R) (euclidean_space n) s) -> (@homeomorphic_space (N -> R) (N -> R) (@subtopology (N -> R) (euclidean_space n) s) (euclidean_space n)) = (s = (@topspace (N -> R) (euclidean_space n))). +Axiom thm_ISOMORPHIC_HOMOLOGY_GROUPS_EUCLIDEAN_COMPLEMENTS : forall p : Z, forall n : N, forall s : (N -> R) -> Prop, forall t : (N -> R) -> Prop, ((@closed_in (N -> R) (euclidean_space n) s) /\ ((@closed_in (N -> R) (euclidean_space n) t) /\ (@homeomorphic_space (N -> R) (N -> R) (@subtopology (N -> R) (euclidean_space n) s) (@subtopology (N -> R) (euclidean_space n) t)))) -> @isomorphic_group ((frag ((N -> R) -> N -> R)) -> Prop) ((frag ((N -> R) -> N -> R)) -> Prop) (@homology_group (N -> R) (@pair Z (Topology (N -> R)) p (@subtopology (N -> R) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) s)))) (@homology_group (N -> R) (@pair Z (Topology (N -> R)) p (@subtopology (N -> R) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) t)))). +Axiom thm_CARD_EQ_PATH_COMPONENTS_EUCLIDEAN_COMPLEMENTS : forall n : N, forall s : (N -> R) -> Prop, forall t : (N -> R) -> Prop, ((@closed_in (N -> R) (euclidean_space n) s) /\ ((@closed_in (N -> R) (euclidean_space n) t) /\ (@homeomorphic_space (N -> R) (N -> R) (@subtopology (N -> R) (euclidean_space n) s) (@subtopology (N -> R) (euclidean_space n) t)))) -> @eq_c ((N -> R) -> Prop) ((N -> R) -> Prop) (@path_components_of (N -> R) (@subtopology (N -> R) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) s))) (@path_components_of (N -> R) (@subtopology (N -> R) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) t))). +Axiom thm_PATH_CONNECTED_IN_EUCLIDEAN_COMPLEMENTS : forall n : N, forall s : (N -> R) -> Prop, forall t : (N -> R) -> Prop, ((@closed_in (N -> R) (euclidean_space n) s) /\ ((@closed_in (N -> R) (euclidean_space n) t) /\ (@homeomorphic_space (N -> R) (N -> R) (@subtopology (N -> R) (euclidean_space n) s) (@subtopology (N -> R) (euclidean_space n) t)))) -> (@path_connected_in (N -> R) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) s)) = (@path_connected_in (N -> R) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) t)). +Axiom thm_CARD_EQ_CONNECTED_COMPONENTS_EUCLIDEAN_COMPLEMENTS : forall n : N, forall s : (N -> R) -> Prop, forall t : (N -> R) -> Prop, ((@closed_in (N -> R) (euclidean_space n) s) /\ ((@closed_in (N -> R) (euclidean_space n) t) /\ (@homeomorphic_space (N -> R) (N -> R) (@subtopology (N -> R) (euclidean_space n) s) (@subtopology (N -> R) (euclidean_space n) t)))) -> @eq_c ((N -> R) -> Prop) ((N -> R) -> Prop) (@connected_components_of (N -> R) (@subtopology (N -> R) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) s))) (@connected_components_of (N -> R) (@subtopology (N -> R) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) t))). +Axiom thm_CONNECTED_IN_EUCLIDEAN_COMPLEMENTS : forall n : N, forall s : (N -> R) -> Prop, forall t : (N -> R) -> Prop, ((@closed_in (N -> R) (euclidean_space n) s) /\ ((@closed_in (N -> R) (euclidean_space n) t) /\ (@homeomorphic_space (N -> R) (N -> R) (@subtopology (N -> R) (euclidean_space n) s) (@subtopology (N -> R) (euclidean_space n) t)))) -> (@connected_in (N -> R) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) s)) = (@connected_in (N -> R) (euclidean_space n) (@DIFF (N -> R) (@topspace (N -> R) (euclidean_space n)) t)). +Axiom thm_INVARIANCE_OF_DIMENSION_EUCLIDEAN_SPACE : forall m : N, forall n : N, (@homeomorphic_space (N -> R) (N -> R) (euclidean_space m) (euclidean_space n)) = (m = n). +Axiom thm_INVARIANCE_OF_DOMAIN_EUCLIDEAN_SPACE : forall n : N, forall u : (N -> R) -> Prop, forall f : (N -> R) -> N -> R, ((@open_in (N -> R) (euclidean_space n) u) /\ ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (@subtopology (N -> R) (euclidean_space n) u) (euclidean_space n)) f) /\ (forall x : N -> R, forall y : N -> R, ((@IN (N -> R) x u) /\ ((@IN (N -> R) y u) /\ ((f x) = (f y)))) -> x = y))) -> @open_in (N -> R) (euclidean_space n) (@IMAGE (N -> R) (N -> R) f u). +Axiom thm_INVARIANCE_OF_DOMAIN_EUCLIDEAN_SPACE_EMBEDDING_MAP : forall n : N, forall u : (N -> R) -> Prop, forall f : (N -> R) -> N -> R, ((@open_in (N -> R) (euclidean_space n) u) /\ ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (@subtopology (N -> R) (euclidean_space n) u) (euclidean_space n)) f) /\ (forall x : N -> R, forall y : N -> R, ((@IN (N -> R) x u) /\ ((@IN (N -> R) y u) /\ ((f x) = (f y)))) -> x = y))) -> @embedding_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (@subtopology (N -> R) (euclidean_space n) u) (euclidean_space n)) f. +Axiom thm_INVARIANCE_OF_DOMAIN_EUCLIDEAN_SPACE_GEN : forall m : N, forall n : N, forall u : (N -> R) -> Prop, forall f : (N -> R) -> N -> R, ((N.le n m) /\ ((@open_in (N -> R) (euclidean_space m) u) /\ ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (@subtopology (N -> R) (euclidean_space m) u) (euclidean_space n)) f) /\ (forall x : N -> R, forall y : N -> R, ((@IN (N -> R) x u) /\ ((@IN (N -> R) y u) /\ ((f x) = (f y)))) -> x = y)))) -> @open_in (N -> R) (euclidean_space n) (@IMAGE (N -> R) (N -> R) f u). +Axiom thm_INVARIANCE_OF_DOMAIN_EUCLIDEAN_SPACE_EMBEDDING_MAP_GEN : forall m : N, forall n : N, forall u : (N -> R) -> Prop, forall f : (N -> R) -> N -> R, ((N.le n m) /\ ((@open_in (N -> R) (euclidean_space m) u) /\ ((@continuous_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (@subtopology (N -> R) (euclidean_space m) u) (euclidean_space n)) f) /\ (forall x : N -> R, forall y : N -> R, ((@IN (N -> R) x u) /\ ((@IN (N -> R) y u) /\ ((f x) = (f y)))) -> x = y)))) -> @embedding_map (N -> R) (N -> R) (@pair (Topology (N -> R)) (Topology (N -> R)) (@subtopology (N -> R) (euclidean_space m) u) (euclidean_space n)) f. +Axiom thm_FORALL_1 : forall (P : N -> Prop), (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (NUMERAL (BIT1 0%N)))) -> P i) = (P (NUMERAL (BIT1 0%N))). +Axiom thm_FORALL_2 : forall P : N -> Prop, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (NUMERAL (BIT0 (BIT1 0%N))))) -> P i) = ((P (NUMERAL (BIT1 0%N))) /\ (P (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_FORALL_3 : forall P : N -> Prop, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (NUMERAL (BIT1 (BIT1 0%N))))) -> P i) = ((P (NUMERAL (BIT1 0%N))) /\ ((P (NUMERAL (BIT0 (BIT1 0%N)))) /\ (P (NUMERAL (BIT1 (BIT1 0%N)))))). +Axiom thm_FORALL_4 : forall P : N -> Prop, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))) -> P i) = ((P (NUMERAL (BIT1 0%N))) /\ ((P (NUMERAL (BIT0 (BIT1 0%N)))) /\ ((P (NUMERAL (BIT1 (BIT1 0%N)))) /\ (P (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))))). +Axiom thm_SUM_1 : forall (f : N -> R), (@sum N (dotdot (NUMERAL (BIT1 0%N)) (NUMERAL (BIT1 0%N))) f) = (f (NUMERAL (BIT1 0%N))). +Axiom thm_SUM_2 : forall t : N -> R, (@sum N (dotdot (NUMERAL (BIT1 0%N)) (NUMERAL (BIT0 (BIT1 0%N)))) t) = (Rplus (t (NUMERAL (BIT1 0%N))) (t (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_SUM_3 : forall t : N -> R, (@sum N (dotdot (NUMERAL (BIT1 0%N)) (NUMERAL (BIT1 (BIT1 0%N)))) t) = (Rplus (t (NUMERAL (BIT1 0%N))) (Rplus (t (NUMERAL (BIT0 (BIT1 0%N)))) (t (NUMERAL (BIT1 (BIT1 0%N)))))). +Axiom thm_SUM_4 : forall t : N -> R, (@sum N (dotdot (NUMERAL (BIT1 0%N)) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) t) = (Rplus (t (NUMERAL (BIT1 0%N))) (Rplus (t (NUMERAL (BIT0 (BIT1 0%N)))) (Rplus (t (NUMERAL (BIT1 (BIT1 0%N)))) (t (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))))). +Axiom thm_vector_add : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (@vector_add N' x y) = (@lambda R N' (fun i : N => Rplus (@dollar R N' x i) (@dollar R N' y i))). +Axiom thm_vector_sub : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (@vector_sub N' x y) = (@lambda R N' (fun i : N => Rminus (@dollar R N' x i) (@dollar R N' y i))). +Axiom thm_vector_neg : forall {N' : Type'}, forall x : cart R N', (@vector_neg N' x) = (@lambda R N' (fun i : N => Ropp (@dollar R N' x i))). +Axiom thm_vector_mul : forall {N' : Type'}, forall c : R, forall x : cart R N', (@percent N' c x) = (@lambda R N' (fun i : N => Rmult c (@dollar R N' x i))). +Axiom thm_vec : forall {N' : Type'}, forall n : N, (@vec N' n) = (@lambda R N' (fun i : N => R_of_N n)). +Axiom thm_dot : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (@dot N' x y) = (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => Rmult (@dollar R N' x i) (@dollar R N' y i))). +Axiom thm_DOT_1 : forall (x : cart R unit) (y : cart R unit), (@dot unit x y) = (Rmult (@dollar R unit x (NUMERAL (BIT1 0%N))) (@dollar R unit y (NUMERAL (BIT1 0%N)))). +Axiom thm_DOT_2 : forall (x : cart R (tybit0 unit)) (y : cart R (tybit0 unit)), (@dot (tybit0 unit) x y) = (Rplus (Rmult (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) y (NUMERAL (BIT1 0%N)))) (Rmult (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) y (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_DOT_3 : forall (x : cart R (tybit1 unit)) (y : cart R (tybit1 unit)), (@dot (tybit1 unit) x y) = (Rplus (Rmult (@dollar R (tybit1 unit) x (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) y (NUMERAL (BIT1 0%N)))) (Rplus (Rmult (@dollar R (tybit1 unit) x (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) y (NUMERAL (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit1 unit) x (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) y (NUMERAL (BIT1 (BIT1 0%N))))))). +Axiom thm_DOT_4 : forall (x : cart R (tybit0 (tybit0 unit))) (y : cart R (tybit0 (tybit0 unit))), (@dot (tybit0 (tybit0 unit)) x y) = (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) x (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) y (NUMERAL (BIT1 0%N)))) (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) x (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) y (NUMERAL (BIT0 (BIT1 0%N))))) (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) x (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) y (NUMERAL (BIT1 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) x (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) y (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))). +Axiom thm_VEC_COMPONENT : forall {N' : Type'}, forall k : N, forall i : N, (@dollar R N' (@vec N' k) i) = (R_of_N k). +Axiom thm_VECTOR_ADD_COMPONENT : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', forall i : N, (@dollar R N' (@vector_add N' x y) i) = (Rplus (@dollar R N' x i) (@dollar R N' y i)). +Axiom thm_VECTOR_SUB_COMPONENT : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', forall i : N, (@dollar R N' (@vector_sub N' x y) i) = (Rminus (@dollar R N' x i) (@dollar R N' y i)). +Axiom thm_VECTOR_NEG_COMPONENT : forall {N' : Type'}, forall x : cart R N', forall i : N, (@dollar R N' (@vector_neg N' x) i) = (Ropp (@dollar R N' x i)). +Axiom thm_VECTOR_MUL_COMPONENT : forall {N' : Type'}, forall c : R, forall x : cart R N', forall i : N, (@dollar R N' (@percent N' c x) i) = (Rmult c (@dollar R N' x i)). +Axiom thm_COND_COMPONENT : forall {_583250 _583255 : Type'} (b : Prop) (x : cart _583250 _583255) (y : cart _583250 _583255) (i : N), (@dollar _583250 _583255 (@COND (cart _583250 _583255) b x y) i) = (@COND _583250 b (@dollar _583250 _583255 x i) (@dollar _583250 _583255 y i)). +Axiom thm_VEC_EQ : forall {_583931 : Type'}, forall m : N, forall n : N, ((@vec _583931 m) = (@vec _583931 n)) = (m = n). +Axiom thm_SUMS_SYM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@GSPEC (cart R N') (fun GEN_PVAR_2363 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2363 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))) = (@GSPEC (cart R N') (fun GEN_PVAR_2364 : cart R N' => exists y : cart R N', exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2364 ((@IN (cart R N') y t) /\ (@IN (cart R N') x s)) (@vector_add N' y x))). +Axiom thm_SUMS_ASSOC : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, (@GSPEC (cart R N') (fun GEN_PVAR_2366 : cart R N' => exists w : cart R N', exists z : cart R N', @SETSPEC (cart R N') GEN_PVAR_2366 ((@IN (cart R N') w (@GSPEC (cart R N') (fun GEN_PVAR_2365 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2365 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))) /\ (@IN (cart R N') z u)) (@vector_add N' w z))) = (@GSPEC (cart R N') (fun GEN_PVAR_2368 : cart R N' => exists x : cart R N', exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_2368 ((@IN (cart R N') x s) /\ (@IN (cart R N') v (@GSPEC (cart R N') (fun GEN_PVAR_2367 : cart R N' => exists y : cart R N', exists z : cart R N', @SETSPEC (cart R N') GEN_PVAR_2367 ((@IN (cart R N') y t) /\ (@IN (cart R N') z u)) (@vector_add N' y z))))) (@vector_add N' x v))). +Axiom thm_EUCLIDEAN_SPACE_INFINITE : forall {N' : Type'}, @INFINITE (cart R N') (@UNIV (cart R N')). +Axiom thm_DOT_POS_LE : forall {_584461 : Type'}, forall x : cart R _584461, Rle (R_of_N (NUMERAL 0%N)) (@dot _584461 x x). +Axiom thm_DOT_EQ_0 : forall {N' : Type'}, forall x : cart R N', ((@dot N' x x) = (R_of_N (NUMERAL 0%N))) = (x = (@vec N' (NUMERAL 0%N))). +Axiom thm_DOT_POS_LT : forall {_584511 : Type'}, forall x : cart R _584511, (Rlt (R_of_N (NUMERAL 0%N)) (@dot _584511 x x)) = (~ (x = (@vec _584511 (NUMERAL 0%N)))). +Axiom thm_FORALL_DOT_EQ_0 : forall {_584537 _584560 : Type'}, (forall y : cart R _584537, (forall x : cart R _584537, (@dot _584537 x y) = (R_of_N (NUMERAL 0%N))) = (y = (@vec _584537 (NUMERAL 0%N)))) /\ (forall x : cart R _584560, (forall y : cart R _584560, (@dot _584560 x y) = (R_of_N (NUMERAL 0%N))) = (x = (@vec _584560 (NUMERAL 0%N)))). +Axiom thm_REFLECT_UNIV : forall {N' : Type'}, (@IMAGE (cart R N') (cart R N') (@vector_neg N') (@UNIV (cart R N'))) = (@UNIV (cart R N')). +Axiom thm_TRANSLATION_UNIV : forall {N' : Type'}, forall a : cart R N', (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@UNIV (cart R N'))) = (@UNIV (cart R N')). +Axiom thm_TRANSLATION_SUBSET_GALOIS_RIGHT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', (@SUBSET (cart R N') s (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) t)) = (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@vector_neg N' a) x) s) t). +Axiom thm_TRANSLATION_SUBSET_GALOIS_LEFT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) t) = (@SUBSET (cart R N') s (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@vector_neg N' a) x) t)). +Axiom thm_TRANSLATION_GALOIS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', (s = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) t)) = (t = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@vector_neg N' a) x) s)). +Axiom thm_IN_TRANSLATION_GALOIS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@IN (cart R N') b (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@IN (cart R N') (@vector_sub N' b a) s). +Axiom thm_IN_TRANSLATION_GALOIS_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@IN (cart R N') (@vector_add N' a b) s) = (@IN (cart R N') b (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@vector_neg N' a) x) s)). +Axiom thm_FORALL_DIMINDEX_1 : forall (P : N -> Prop), (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex unit (@UNIV unit)))) -> P i) = (P (NUMERAL (BIT1 0%N))). +Axiom thm_VECTOR_ONE : forall x : cart R unit, x = (@lambda R unit (fun i : N => @dollar R unit x (NUMERAL (BIT1 0%N)))). +Axiom thm_FORALL_REAL_ONE : forall (P : (cart R unit) -> Prop), (forall x : cart R unit, P x) = (forall x : R, P (@lambda R unit (fun i : N => x))). +Axiom thm_vector_norm : forall {_584973 : Type'}, forall x : cart R _584973, (@vector_norm _584973 x) = (sqrt (@dot _584973 x x)). +Axiom thm_dist : forall {_584998 : Type'}, forall x : cart R _584998, forall y : cart R _584998, (@distance _584998 (@pair (cart R _584998) (cart R _584998) x y)) = (@vector_norm _584998 (@vector_sub _584998 x y)). +Axiom thm_NORM_REAL : forall x : cart R unit, (@vector_norm unit x) = (Rabs (@dollar R unit x (NUMERAL (BIT1 0%N)))). +Axiom thm_DIST_REAL : forall x : cart R unit, forall y : cart R unit, (@distance unit (@pair (cart R unit) (cart R unit) x y)) = (Rabs (Rminus (@dollar R unit x (NUMERAL (BIT1 0%N))) (@dollar R unit y (NUMERAL (BIT1 0%N))))). +Axiom thm_NORM_0 : forall {_585060 : Type'}, (@vector_norm _585060 (@vec _585060 (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_NORM_POS_LE : forall {_585076 : Type'}, forall x : cart R _585076, Rle (R_of_N (NUMERAL 0%N)) (@vector_norm _585076 x). +Axiom thm_NORM_NEG : forall {_585094 : Type'}, forall x : cart R _585094, (@vector_norm _585094 (@vector_neg _585094 x)) = (@vector_norm _585094 x). +Axiom thm_NORM_SUB : forall {_585124 : Type'}, forall x : cart R _585124, forall y : cart R _585124, (@vector_norm _585124 (@vector_sub _585124 x y)) = (@vector_norm _585124 (@vector_sub _585124 y x)). +Axiom thm_NORM_MUL : forall {_585145 : Type'}, forall a : R, forall x : cart R _585145, (@vector_norm _585145 (@percent _585145 a x)) = (Rmult (Rabs a) (@vector_norm _585145 x)). +Axiom thm_NORM_EQ_0_DOT : forall {_585168 : Type'}, forall x : cart R _585168, ((@vector_norm _585168 x) = (R_of_N (NUMERAL 0%N))) = ((@dot _585168 x x) = (R_of_N (NUMERAL 0%N))). +Axiom thm_NORM_EQ_0 : forall {_585199 : Type'}, forall x : cart R _585199, ((@vector_norm _585199 x) = (R_of_N (NUMERAL 0%N))) = (x = (@vec _585199 (NUMERAL 0%N))). +Axiom thm_NORM_POS_LT : forall {_585221 : Type'}, forall x : cart R _585221, (Rlt (R_of_N (NUMERAL 0%N)) (@vector_norm _585221 x)) = (~ (x = (@vec _585221 (NUMERAL 0%N)))). +Axiom thm_NORM_POW_2 : forall {_585236 : Type'}, forall x : cart R _585236, (real_pow (@vector_norm _585236 x) (NUMERAL (BIT0 (BIT1 0%N)))) = (@dot _585236 x x). +Axiom thm_NORM_EQ_0_IMP : forall {_585260 : Type'}, forall x : cart R _585260, ((@vector_norm _585260 x) = (R_of_N (NUMERAL 0%N))) -> x = (@vec _585260 (NUMERAL 0%N)). +Axiom thm_NORM_LE_0 : forall {_585281 : Type'}, forall x : cart R _585281, (Rle (@vector_norm _585281 x) (R_of_N (NUMERAL 0%N))) = (x = (@vec _585281 (NUMERAL 0%N))). +Axiom thm_VECTOR_MUL_EQ_0 : forall {_585314 : Type'}, forall a : R, forall x : cart R _585314, ((@percent _585314 a x) = (@vec _585314 (NUMERAL 0%N))) = ((a = (R_of_N (NUMERAL 0%N))) \/ (x = (@vec _585314 (NUMERAL 0%N)))). +Axiom thm_VECTOR_MUL_LCANCEL : forall {_585338 : Type'}, forall a : R, forall x : cart R _585338, forall y : cart R _585338, ((@percent _585338 a x) = (@percent _585338 a y)) = ((a = (R_of_N (NUMERAL 0%N))) \/ (x = y)). +Axiom thm_VECTOR_MUL_RCANCEL : forall {_585382 : Type'}, forall a : R, forall b : R, forall x : cart R _585382, ((@percent _585382 a x) = (@percent _585382 b x)) = ((a = b) \/ (x = (@vec _585382 (NUMERAL 0%N)))). +Axiom thm_VECTOR_MUL_LCANCEL_IMP : forall {_585414 : Type'}, forall a : R, forall x : cart R _585414, forall y : cart R _585414, ((~ (a = (R_of_N (NUMERAL 0%N)))) /\ ((@percent _585414 a x) = (@percent _585414 a y))) -> x = y. +Axiom thm_VECTOR_MUL_RCANCEL_IMP : forall {_585449 : Type'}, forall a : R, forall b : R, forall x : cart R _585449, ((~ (x = (@vec _585449 (NUMERAL 0%N)))) /\ ((@percent _585449 a x) = (@percent _585449 b x))) -> a = b. +Axiom thm_NORM_CAUCHY_SCHWARZ : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', Rle (@dot N' x y) (Rmult (@vector_norm N' x) (@vector_norm N' y)). +Axiom thm_NORM_CAUCHY_SCHWARZ_ABS : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', Rle (Rabs (@dot N' x y)) (Rmult (@vector_norm N' x) (@vector_norm N' y)). +Axiom thm_REAL_ABS_NORM : forall {_585624 : Type'}, forall x : cart R _585624, (Rabs (@vector_norm _585624 x)) = (@vector_norm _585624 x). +Axiom thm_NORM_CAUCHY_SCHWARZ_DIV : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', Rle (Rabs (Rdiv (@dot N' x y) (Rmult (@vector_norm N' x) (@vector_norm N' y)))) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_NORM_TRIANGLE : forall {_585736 : Type'}, forall x : cart R _585736, forall y : cart R _585736, Rle (@vector_norm _585736 (@vector_add _585736 x y)) (Rplus (@vector_norm _585736 x) (@vector_norm _585736 y)). +Axiom thm_NORM_TRIANGLE_SUB : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', Rle (@vector_norm N' x) (Rplus (@vector_norm N' y) (@vector_norm N' (@vector_sub N' x y))). +Axiom thm_NORM_TRIANGLE_LE : forall {_585807 : Type'} (e : R), forall x : cart R _585807, forall y : cart R _585807, (Rle (Rplus (@vector_norm _585807 x) (@vector_norm _585807 y)) e) -> Rle (@vector_norm _585807 (@vector_add _585807 x y)) e. +Axiom thm_NORM_TRIANGLE_LT : forall {_585844 : Type'} (e : R), forall x : cart R _585844, forall y : cart R _585844, (Rlt (Rplus (@vector_norm _585844 x) (@vector_norm _585844 y)) e) -> Rlt (@vector_norm _585844 (@vector_add _585844 x y)) e. +Axiom thm_COMPONENT_LE_NORM : forall {N' : Type'}, forall x : cart R N', forall i : N, Rle (Rabs (@dollar R N' x i)) (@vector_norm N' x). +Axiom thm_NORM_BOUND_COMPONENT_LE : forall {N' : Type'}, forall x : cart R N', forall e : R, (Rle (@vector_norm N' x) e) -> forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (Rabs (@dollar R N' x i)) e. +Axiom thm_NORM_BOUND_COMPONENT_LT : forall {N' : Type'}, forall x : cart R N', forall e : R, (Rlt (@vector_norm N' x) e) -> forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (Rabs (@dollar R N' x i)) e. +Axiom thm_NORM_LE_L1 : forall {N' : Type'}, forall x : cart R N', Rle (@vector_norm N' x) (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => Rabs (@dollar R N' x i))). +Axiom thm_REAL_ABS_SUB_NORM : forall {_586163 : Type'} (x : cart R _586163) (y : cart R _586163), Rle (Rabs (Rminus (@vector_norm _586163 x) (@vector_norm _586163 y))) (@vector_norm _586163 (@vector_sub _586163 x y)). +Axiom thm_NORM_LE : forall {_586183 _586185 : Type'}, forall x : cart R _586183, forall y : cart R _586185, (Rle (@vector_norm _586183 x) (@vector_norm _586185 y)) = (Rle (@dot _586183 x x) (@dot _586185 y y)). +Axiom thm_NORM_LT : forall {_586214 _586216 : Type'}, forall x : cart R _586214, forall y : cart R _586216, (Rlt (@vector_norm _586214 x) (@vector_norm _586216 y)) = (Rlt (@dot _586214 x x) (@dot _586216 y y)). +Axiom thm_NORM_EQ : forall {_586245 _586247 : Type'}, forall x : cart R _586245, forall y : cart R _586247, ((@vector_norm _586245 x) = (@vector_norm _586247 y)) = ((@dot _586245 x x) = (@dot _586247 y y)). +Axiom thm_NORM_EQ_1 : forall {_586272 : Type'}, forall x : cart R _586272, ((@vector_norm _586272 x) = (R_of_N (NUMERAL (BIT1 0%N)))) = ((@dot _586272 x x) = (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_NORM_LE_COMPONENTWISE : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (Rabs (@dollar R N' x i)) (Rabs (@dollar R N' y i))) -> Rle (@vector_norm N' x) (@vector_norm N' y). +Axiom thm_NORM_EQ_COMPONENTWISE : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rabs (@dollar R N' x i)) = (Rabs (@dollar R N' y i))) -> (@vector_norm N' x) = (@vector_norm N' y). +Axiom thm_L1_LE_NORM : forall {N' : Type'}, forall x : cart R N', Rle (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => Rabs (@dollar R N' x i))) (Rmult (sqrt (R_of_N (@dimindex N' (@UNIV N')))) (@vector_norm N' x)). +Axiom thm_DIST_INCREASES_ONLINE : forall {_586649 : Type'}, forall a : cart R _586649, forall b : cart R _586649, forall d : cart R _586649, (~ (d = (@vec _586649 (NUMERAL 0%N)))) -> (Rgt (@distance _586649 (@pair (cart R _586649) (cart R _586649) a (@vector_add _586649 b d))) (@distance _586649 (@pair (cart R _586649) (cart R _586649) a b))) \/ (Rgt (@distance _586649 (@pair (cart R _586649) (cart R _586649) a (@vector_sub _586649 b d))) (@distance _586649 (@pair (cart R _586649) (cart R _586649) a b))). +Axiom thm_NORM_INCREASES_ONLINE : forall {N' : Type'}, forall a : cart R N', forall d : cart R N', (~ (d = (@vec N' (NUMERAL 0%N)))) -> (Rgt (@vector_norm N' (@vector_add N' a d)) (@vector_norm N' a)) \/ (Rgt (@vector_norm N' (@vector_sub N' a d)) (@vector_norm N' a)). +Axiom thm_DOT_SQUARE_NORM : forall {_586721 : Type'}, forall x : cart R _586721, (@dot _586721 x x) = (real_pow (@vector_norm _586721 x) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_NORM_EQ_SQUARE : forall {N' : Type'} (a : R), forall x : cart R N', ((@vector_norm N' x) = a) = ((Rle (R_of_N (NUMERAL 0%N)) a) /\ ((@dot N' x x) = (real_pow a (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_NORM_LE_SQUARE : forall {N' : Type'} (a : R), forall x : cart R N', (Rle (@vector_norm N' x) a) = ((Rle (R_of_N (NUMERAL 0%N)) a) /\ (Rle (@dot N' x x) (real_pow a (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_NORM_GE_SQUARE : forall {N' : Type'} (a : R), forall x : cart R N', (Rge (@vector_norm N' x) a) = ((Rle a (R_of_N (NUMERAL 0%N))) \/ (Rge (@dot N' x x) (real_pow a (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_NORM_LT_SQUARE : forall {N' : Type'} (a : R), forall x : cart R N', (Rlt (@vector_norm N' x) a) = ((Rlt (R_of_N (NUMERAL 0%N)) a) /\ (Rlt (@dot N' x x) (real_pow a (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_NORM_GT_SQUARE : forall {N' : Type'} (a : R), forall x : cart R N', (Rgt (@vector_norm N' x) a) = ((Rlt a (R_of_N (NUMERAL 0%N))) \/ (Rgt (@dot N' x x) (real_pow a (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_NORM_LT_SQUARE_ALT : forall {N' : Type'} (a : R), forall x : cart R N', (Rlt (@vector_norm N' x) a) = ((Rle (R_of_N (NUMERAL 0%N)) a) /\ (Rlt (@dot N' x x) (real_pow a (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_HOMOMORPHISM_REAL_TO_REAL : forall f : R -> R, ((forall x : R, forall y : R, (f (Rplus x y)) = (Rplus (f x) (f y))) /\ (forall x : R, forall y : R, (f (Rmult x y)) = (Rmult (f x) (f y)))) = ((f = (fun x : R => R_of_N (NUMERAL 0%N))) \/ (f = (fun x : R => x))). +Axiom thm_DOT_NORM : forall {_588178 : Type'}, forall x : cart R _588178, forall y : cart R _588178, (@dot _588178 x y) = (Rdiv (Rminus (Rminus (real_pow (@vector_norm _588178 (@vector_add _588178 x y)) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@vector_norm _588178 x) (NUMERAL (BIT0 (BIT1 0%N))))) (real_pow (@vector_norm _588178 y) (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_DOT_NORM_SUB : forall {_588231 : Type'}, forall x : cart R _588231, forall y : cart R _588231, (@dot _588231 x y) = (Rdiv (Rminus (Rplus (real_pow (@vector_norm _588231 x) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@vector_norm _588231 y) (NUMERAL (BIT0 (BIT1 0%N))))) (real_pow (@vector_norm _588231 (@vector_sub _588231 x y)) (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_VECTOR_EQ : forall {_588257 : Type'}, forall x : cart R _588257, forall y : cart R _588257, (x = y) = (((@dot _588257 x x) = (@dot _588257 x y)) /\ ((@dot _588257 y y) = (@dot _588257 x x))). +Axiom thm_DIST_REFL : forall {_588279 : Type'}, forall x : cart R _588279, (@distance _588279 (@pair (cart R _588279) (cart R _588279) x x)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DIST_SYM : forall {_588301 : Type'}, forall x : cart R _588301, forall y : cart R _588301, (@distance _588301 (@pair (cart R _588301) (cart R _588301) x y)) = (@distance _588301 (@pair (cart R _588301) (cart R _588301) y x)). +Axiom thm_DIST_POS_LE : forall {_588331 : Type'}, forall x : cart R _588331, forall y : cart R _588331, Rle (R_of_N (NUMERAL 0%N)) (@distance _588331 (@pair (cart R _588331) (cart R _588331) x y)). +Axiom thm_REAL_ABS_DIST : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (Rabs (@distance N' (@pair (cart R N') (cart R N') x y))) = (@distance N' (@pair (cart R N') (cart R N') x y)). +Axiom thm_DIST_TRIANGLE : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', forall z : cart R N', Rle (@distance N' (@pair (cart R N') (cart R N') x z)) (Rplus (@distance N' (@pair (cart R N') (cart R N') x y)) (@distance N' (@pair (cart R N') (cart R N') y z))). +Axiom thm_DIST_TRIANGLE_ALT : forall {_588428 : Type'}, forall x : cart R _588428, forall y : cart R _588428, forall z : cart R _588428, Rle (@distance _588428 (@pair (cart R _588428) (cart R _588428) y z)) (Rplus (@distance _588428 (@pair (cart R _588428) (cart R _588428) x y)) (@distance _588428 (@pair (cart R _588428) (cart R _588428) x z))). +Axiom thm_DIST_EQ_0 : forall {_588469 : Type'}, forall x : cart R _588469, forall y : cart R _588469, ((@distance _588469 (@pair (cart R _588469) (cart R _588469) x y)) = (R_of_N (NUMERAL 0%N))) = (x = y). +Axiom thm_DIST_POS_LT : forall {_588502 : Type'}, forall x : cart R _588502, forall y : cart R _588502, (~ (x = y)) -> Rlt (R_of_N (NUMERAL 0%N)) (@distance _588502 (@pair (cart R _588502) (cart R _588502) x y)). +Axiom thm_DIST_NZ : forall {_588530 : Type'}, forall x : cart R _588530, forall y : cart R _588530, (~ (x = y)) = (Rlt (R_of_N (NUMERAL 0%N)) (@distance _588530 (@pair (cart R _588530) (cart R _588530) x y))). +Axiom thm_DIST_TRIANGLE_LE : forall {_588563 : Type'}, forall x : cart R _588563, forall y : cart R _588563, forall z : cart R _588563, forall e : R, (Rle (Rplus (@distance _588563 (@pair (cart R _588563) (cart R _588563) x z)) (@distance _588563 (@pair (cart R _588563) (cart R _588563) y z))) e) -> Rle (@distance _588563 (@pair (cart R _588563) (cart R _588563) x y)) e. +Axiom thm_DIST_TRIANGLE_LT : forall {_588615 : Type'}, forall x : cart R _588615, forall y : cart R _588615, forall z : cart R _588615, forall e : R, (Rlt (Rplus (@distance _588615 (@pair (cart R _588615) (cart R _588615) x z)) (@distance _588615 (@pair (cart R _588615) (cart R _588615) y z))) e) -> Rlt (@distance _588615 (@pair (cart R _588615) (cart R _588615) x y)) e. +Axiom thm_DIST_TRIANGLE_HALF_L : forall {_588662 : Type'} (e : R), forall x1 : cart R _588662, forall x2 : cart R _588662, forall y : cart R _588662, ((Rlt (@distance _588662 (@pair (cart R _588662) (cart R _588662) x1 y)) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ (Rlt (@distance _588662 (@pair (cart R _588662) (cart R _588662) x2 y)) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> Rlt (@distance _588662 (@pair (cart R _588662) (cart R _588662) x1 x2)) e. +Axiom thm_DIST_TRIANGLE_HALF_R : forall {_588720 : Type'} (e : R), forall x1 : cart R _588720, forall x2 : cart R _588720, forall y : cart R _588720, ((Rlt (@distance _588720 (@pair (cart R _588720) (cart R _588720) y x1)) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ (Rlt (@distance _588720 (@pair (cart R _588720) (cart R _588720) y x2)) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> Rlt (@distance _588720 (@pair (cart R _588720) (cart R _588720) x1 x2)) e. +Axiom thm_DIST_TRIANGLE_ADD : forall {_588806 : Type'}, forall x : cart R _588806, forall x' : cart R _588806, forall y : cart R _588806, forall y' : cart R _588806, Rle (@distance _588806 (@pair (cart R _588806) (cart R _588806) (@vector_add _588806 x y) (@vector_add _588806 x' y'))) (Rplus (@distance _588806 (@pair (cart R _588806) (cart R _588806) x x')) (@distance _588806 (@pair (cart R _588806) (cart R _588806) y y'))). +Axiom thm_DIST_MUL : forall {_588841 : Type'}, forall x : cart R _588841, forall y : cart R _588841, forall c : R, (@distance _588841 (@pair (cart R _588841) (cart R _588841) (@percent _588841 c x) (@percent _588841 c y))) = (Rmult (Rabs c) (@distance _588841 (@pair (cart R _588841) (cart R _588841) x y))). +Axiom thm_DIST_TRIANGLE_ADD_HALF : forall {N' : Type'} (e : R), forall x : cart R N', forall x' : cart R N', forall y : cart R N', forall y' : cart R N', ((Rlt (@distance N' (@pair (cart R N') (cart R N') x x')) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') y y')) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (@vector_add N' x y) (@vector_add N' x' y'))) e. +Axiom thm_DIST_LE_0 : forall {_588944 : Type'}, forall x : cart R _588944, forall y : cart R _588944, (Rle (@distance _588944 (@pair (cart R _588944) (cart R _588944) x y)) (R_of_N (NUMERAL 0%N))) = (x = y). +Axiom thm_DIST_EQ : forall {_588979 _588985 : Type'}, forall w : cart R _588979, forall x : cart R _588979, forall y : cart R _588985, forall z : cart R _588985, ((@distance _588979 (@pair (cart R _588979) (cart R _588979) w x)) = (@distance _588985 (@pair (cart R _588985) (cart R _588985) y z))) = ((real_pow (@distance _588979 (@pair (cart R _588979) (cart R _588979) w x)) (NUMERAL (BIT0 (BIT1 0%N)))) = (real_pow (@distance _588985 (@pair (cart R _588985) (cart R _588985) y z)) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_DIST_0 : forall {_589036 : Type'}, forall x : cart R _589036, ((@distance _589036 (@pair (cart R _589036) (cart R _589036) x (@vec _589036 (NUMERAL 0%N)))) = (@vector_norm _589036 x)) /\ ((@distance _589036 (@pair (cart R _589036) (cart R _589036) (@vec _589036 (NUMERAL 0%N)) x)) = (@vector_norm _589036 x)). +Axiom thm_DIST_RESCALE : forall {N' : Type'}, forall a : R, forall x : cart R N', forall y : cart R N', ((@vector_norm N' x) = (@vector_norm N' y)) -> (@distance N' (@pair (cart R N') (cart R N') (@percent N' a x) y)) = (@distance N' (@pair (cart R N') (cart R N') x (@percent N' a y))). +Axiom thm_DIST_DESCALE : forall {N' : Type'}, forall a : R, forall b : R, forall x : cart R N', forall y : cart R N', ((Rle (R_of_N (NUMERAL 0%N)) a) /\ ((Rle (R_of_N (NUMERAL 0%N)) b) /\ ((@vector_norm N' x) = (@vector_norm N' y)))) -> Rge (@distance N' (@pair (cart R N') (cart R N') (@percent N' a x) (@percent N' b y))) (Rmult (Rmin a b) (@distance N' (@pair (cart R N') (cart R N') x y))). +Axiom thm_NEUTRAL_VECTOR_ADD : forall {N' : Type'}, (@neutral (cart R N') (@vector_add N')) = (@vec N' (NUMERAL 0%N)). +Axiom thm_MONOIDAL_VECTOR_ADD : forall {N' : Type'}, @monoidal (cart R N') (@vector_add N'). +Axiom thm_vsum : forall {A N' : Type'}, forall s : A -> Prop, forall f : A -> cart R N', (@vsum A N' s f) = (@lambda R N' (fun i : N => @sum A s (fun x : A => @dollar R N' (f x) i))). +Axiom thm_VSUM_CLAUSES : forall {_589502 _589504 _589545 _589550 : Type'}, (forall f : _589502 -> cart R _589504, (@vsum _589502 _589504 (@EMPTY _589502) f) = (@vec _589504 (NUMERAL 0%N))) /\ (forall x : _589545, forall f : _589545 -> cart R _589550, forall s : _589545 -> Prop, (@FINITE _589545 s) -> (@vsum _589545 _589550 (@INSERT _589545 x s) f) = (@COND (cart R _589550) (@IN _589545 x s) (@vsum _589545 _589550 s f) (@vector_add _589550 (f x) (@vsum _589545 _589550 s f)))). +Axiom thm_VSUM : forall {_589564 _589578 : Type'}, forall f : _589564 -> cart R _589578, forall s : _589564 -> Prop, (@FINITE _589564 s) -> (@vsum _589564 _589578 s f) = (@iterate _589564 (cart R _589578) (@vector_add _589578) s f). +Axiom thm_VSUM_EQ_0 : forall {_589614 A : Type'}, forall f : A -> cart R _589614, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (@vec _589614 (NUMERAL 0%N))) -> (@vsum A _589614 s f) = (@vec _589614 (NUMERAL 0%N)). +Axiom thm_VSUM_0 : forall {_589624 _589628 : Type'} (s : _589624 -> Prop), (@vsum _589624 _589628 s (fun x : _589624 => @vec _589628 (NUMERAL 0%N))) = (@vec _589628 (NUMERAL 0%N)). +Axiom thm_VSUM_LMUL : forall {_589654 _589661 : Type'}, forall f : _589654 -> cart R _589661, forall c : R, forall s : _589654 -> Prop, (@vsum _589654 _589661 s (fun x : _589654 => @percent _589661 c (f x))) = (@percent _589661 c (@vsum _589654 _589661 s f)). +Axiom thm_VSUM_RMUL : forall {_589687 _589690 : Type'}, forall c : _589687 -> R, forall s : _589687 -> Prop, forall v : cart R _589690, (@vsum _589687 _589690 s (fun x : _589687 => @percent _589690 (c x) v)) = (@percent _589690 (@sum _589687 s c) v). +Axiom thm_VSUM_ADD : forall {_589724 _589737 : Type'}, forall f : _589724 -> cart R _589737, forall g : _589724 -> cart R _589737, forall s : _589724 -> Prop, (@FINITE _589724 s) -> (@vsum _589724 _589737 s (fun x : _589724 => @vector_add _589737 (f x) (g x))) = (@vector_add _589737 (@vsum _589724 _589737 s f) (@vsum _589724 _589737 s g)). +Axiom thm_VSUM_SUB : forall {_589770 _589783 : Type'}, forall f : _589770 -> cart R _589783, forall g : _589770 -> cart R _589783, forall s : _589770 -> Prop, (@FINITE _589770 s) -> (@vsum _589770 _589783 s (fun x : _589770 => @vector_sub _589783 (f x) (g x))) = (@vector_sub _589783 (@vsum _589770 _589783 s f) (@vsum _589770 _589783 s g)). +Axiom thm_VSUM_CONST : forall {_589807 _589810 : Type'}, forall c : cart R _589810, forall s : _589807 -> Prop, (@FINITE _589807 s) -> (@vsum _589807 _589810 s (fun n : _589807 => c)) = (@percent _589810 (R_of_N (@CARD _589807 s)) c). +Axiom thm_VSUM_COMPONENT : forall {A N' : Type'}, forall s : A -> Prop, forall f : A -> cart R N', forall i : N, (@dollar R N' (@vsum A N' s f) i) = (@sum A s (fun x : A => @dollar R N' (f x) i)). +Axiom thm_VSUM_IMAGE : forall {_589921 _589943 _589947 : Type'}, forall f : _589947 -> _589921, forall g : _589921 -> cart R _589943, forall s : _589947 -> Prop, ((@FINITE _589947 s) /\ (forall x : _589947, forall y : _589947, ((@IN _589947 x s) /\ ((@IN _589947 y s) /\ ((f x) = (f y)))) -> x = y)) -> (@vsum _589921 _589943 (@IMAGE _589947 _589921 f s) g) = (@vsum _589947 _589943 s (@o _589947 _589921 (cart R _589943) g f)). +Axiom thm_VSUM_UNION : forall {_589971 _589996 : Type'}, forall f : _589971 -> cart R _589996, forall s : _589971 -> Prop, forall t : _589971 -> Prop, ((@FINITE _589971 s) /\ ((@FINITE _589971 t) /\ (@DISJOINT _589971 s t))) -> (@vsum _589971 _589996 (@UNION _589971 s t) f) = (@vector_add _589996 (@vsum _589971 _589996 s f) (@vsum _589971 _589996 t f)). +Axiom thm_VSUM_DIFF : forall {_590016 _590041 : Type'}, forall f : _590016 -> cart R _590041, forall s : _590016 -> Prop, forall t : _590016 -> Prop, ((@FINITE _590016 s) /\ (@SUBSET _590016 t s)) -> (@vsum _590016 _590041 (@DIFF _590016 s t) f) = (@vector_sub _590041 (@vsum _590016 _590041 s f) (@vsum _590016 _590041 t f)). +Axiom thm_VSUM_DELETE : forall {_590082 _590083 : Type'}, forall f : _590082 -> cart R _590083, forall s : _590082 -> Prop, forall a : _590082, ((@FINITE _590082 s) /\ (@IN _590082 a s)) -> (@vsum _590082 _590083 (@DELETE _590082 s a) f) = (@vector_sub _590083 (@vsum _590082 _590083 s f) (f a)). +Axiom thm_VSUM_INCL_EXCL : forall {A N' : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall f : A -> cart R N', ((@FINITE A s) /\ (@FINITE A t)) -> (@vector_add N' (@vsum A N' s f) (@vsum A N' t f)) = (@vector_add N' (@vsum A N' (@UNION A s t) f) (@vsum A N' (@INTER A s t) f)). +Axiom thm_VSUM_NEG : forall {_590161 _590169 : Type'}, forall f : _590161 -> cart R _590169, forall s : _590161 -> Prop, (@vsum _590161 _590169 s (fun x : _590161 => @vector_neg _590169 (f x))) = (@vector_neg _590169 (@vsum _590161 _590169 s f)). +Axiom thm_VSUM_EQ : forall {_590200 _590211 : Type'}, forall f : _590200 -> cart R _590211, forall g : _590200 -> cart R _590211, forall s : _590200 -> Prop, (forall x : _590200, (@IN _590200 x s) -> (f x) = (g x)) -> (@vsum _590200 _590211 s f) = (@vsum _590200 _590211 s g). +Axiom thm_VSUM_SUPERSET : forall {A N' : Type'}, forall f : A -> cart R N', forall u : A -> Prop, forall v : A -> Prop, ((@SUBSET A u v) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (@vec N' (NUMERAL 0%N)))) -> (@vsum A N' v f) = (@vsum A N' u f). +Axiom thm_VSUM_SUPPORT : forall {A N' : Type'}, forall f : A -> cart R N', forall s : A -> Prop, (@vsum A N' (@GSPEC A (fun GEN_PVAR_2370 : A => exists x : A, @SETSPEC A GEN_PVAR_2370 ((@IN A x s) /\ (~ ((f x) = (@vec N' (NUMERAL 0%N))))) x)) f) = (@vsum A N' s f). +Axiom thm_VSUM_UNIV : forall {A N' : Type'}, forall f : A -> cart R N', forall s : A -> Prop, (@SUBSET A (@support A (cart R N') (@vector_add N') f (@UNIV A)) s) -> (@vsum A N' s f) = (@vsum A N' (@UNIV A) f). +Axiom thm_VSUM_EQ_SUPERSET : forall {_590414 A : Type'} (g : A -> cart R _590414), forall f : A -> cart R _590414, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ ((@SUBSET A t s) /\ ((forall x : A, (@IN A x t) -> (f x) = (g x)) /\ (forall x : A, ((@IN A x s) /\ (~ (@IN A x t))) -> (f x) = (@vec _590414 (NUMERAL 0%N)))))) -> (@vsum A _590414 s f) = (@vsum A _590414 t g). +Axiom thm_VSUM_UNION_RZERO : forall {A N' : Type'}, forall f : A -> cart R N', forall u : A -> Prop, forall v : A -> Prop, (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (@vec N' (NUMERAL 0%N))) -> (@vsum A N' (@UNION A u v) f) = (@vsum A N' u f). +Axiom thm_VSUM_UNION_LZERO : forall {A N' : Type'}, forall f : A -> cart R N', forall u : A -> Prop, forall v : A -> Prop, (forall x : A, ((@IN A x u) /\ (~ (@IN A x v))) -> (f x) = (@vec N' (NUMERAL 0%N))) -> (@vsum A N' (@UNION A u v) f) = (@vsum A N' v f). +Axiom thm_VSUM_RESTRICT : forall {_590540 _590546 : Type'}, forall f : _590540 -> cart R _590546, forall s : _590540 -> Prop, (@vsum _590540 _590546 s (fun x : _590540 => @COND (cart R _590546) (@IN _590540 x s) (f x) (@vec _590546 (NUMERAL 0%N)))) = (@vsum _590540 _590546 s f). +Axiom thm_VSUM_RESTRICT_SET : forall {_590596 _590598 : Type'}, forall P : _590596 -> Prop, forall s : _590596 -> Prop, forall f : _590596 -> cart R _590598, (@vsum _590596 _590598 (@GSPEC _590596 (fun GEN_PVAR_2371 : _590596 => exists x : _590596, @SETSPEC _590596 GEN_PVAR_2371 ((@IN _590596 x s) /\ (P x)) x)) f) = (@vsum _590596 _590598 s (fun x : _590596 => @COND (cart R _590598) (P x) (f x) (@vec _590598 (NUMERAL 0%N)))). +Axiom thm_VSUM_CASES : forall {A N' : Type'}, forall s : A -> Prop, forall P : A -> Prop, forall f : A -> cart R N', forall g : A -> cart R N', (@FINITE A s) -> (@vsum A N' s (fun x : A => @COND (cart R N') (P x) (f x) (g x))) = (@vector_add N' (@vsum A N' (@GSPEC A (fun GEN_PVAR_2372 : A => exists x : A, @SETSPEC A GEN_PVAR_2372 ((@IN A x s) /\ (P x)) x)) f) (@vsum A N' (@GSPEC A (fun GEN_PVAR_2373 : A => exists x : A, @SETSPEC A GEN_PVAR_2373 ((@IN A x s) /\ (~ (P x))) x)) g)). +Axiom thm_VSUM_SING : forall {_590701 _590706 : Type'}, forall f : _590706 -> cart R _590701, forall x : _590706, (@vsum _590706 _590701 (@INSERT _590706 x (@EMPTY _590706)) f) = (f x). +Axiom thm_VSUM_NORM : forall {_590728 _590736 : Type'}, forall f : _590736 -> cart R _590728, forall s : _590736 -> Prop, (@FINITE _590736 s) -> Rle (@vector_norm _590728 (@vsum _590736 _590728 s f)) (@sum _590736 s (fun x : _590736 => @vector_norm _590728 (f x))). +Axiom thm_VSUM_NORM_LE : forall {A N' : Type'}, forall s : A -> Prop, forall f : A -> cart R N', forall g : A -> R, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rle (@vector_norm N' (f x)) (g x))) -> Rle (@vector_norm N' (@vsum A N' s f)) (@sum A s g). +Axiom thm_VSUM_NORM_TRIANGLE : forall {_590832 _590841 : Type'}, forall s : _590832 -> Prop, forall f : _590832 -> cart R _590841, forall b : R, ((@FINITE _590832 s) /\ (Rle (@sum _590832 s (fun a : _590832 => @vector_norm _590841 (f a))) b)) -> Rle (@vector_norm _590841 (@vsum _590832 _590841 s f)) b. +Axiom thm_VSUM_NORM_BOUND : forall {_590888 A : Type'}, forall s : A -> Prop, forall f : A -> cart R _590888, forall b : R, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rle (@vector_norm _590888 (f x)) b)) -> Rle (@vector_norm _590888 (@vsum A _590888 s f)) (Rmult (R_of_N (@CARD A s)) b). +Axiom thm_VSUM_CLAUSES_NUMSEG : forall {_590975 : Type'} (f : N -> cart R _590975), (forall m : N, (@vsum N _590975 (dotdot m (NUMERAL 0%N)) f) = (@COND (cart R _590975) (m = (NUMERAL 0%N)) (f (NUMERAL 0%N)) (@vec _590975 (NUMERAL 0%N)))) /\ (forall m : N, forall n : N, (@vsum N _590975 (dotdot m (N.succ n)) f) = (@COND (cart R _590975) (N.le m (N.succ n)) (@vector_add _590975 (@vsum N _590975 (dotdot m n) f) (f (N.succ n))) (@vsum N _590975 (dotdot m n) f))). +Axiom thm_VSUM_CLAUSES_RIGHT : forall {N' : Type'}, forall f : N -> cart R N', forall m : N, forall n : N, ((N.lt (NUMERAL 0%N) n) /\ (N.le m n)) -> (@vsum N N' (dotdot m n) f) = (@vector_add N' (@vsum N N' (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f) (f n)). +Axiom thm_VSUM_CMUL_NUMSEG : forall {_591064 : Type'}, forall f : N -> cart R _591064, forall c : R, forall m : N, forall n : N, (@vsum N _591064 (dotdot m n) (fun x : N => @percent _591064 c (f x))) = (@percent _591064 c (@vsum N _591064 (dotdot m n) f)). +Axiom thm_VSUM_EQ_NUMSEG : forall {_591117 : Type'}, forall f : N -> cart R _591117, forall g : N -> cart R _591117, forall m : N, forall n : N, (forall x : N, ((N.le m x) /\ (N.le x n)) -> (f x) = (g x)) -> (@vsum N _591117 (dotdot m n) f) = (@vsum N _591117 (dotdot m n) g). +Axiom thm_VSUM_IMAGE_GEN : forall {_591157 A B : Type'}, forall f : A -> B, forall g : A -> cart R _591157, forall s : A -> Prop, (@FINITE A s) -> (@vsum A _591157 s g) = (@vsum B _591157 (@IMAGE A B f s) (fun y : B => @vsum A _591157 (@GSPEC A (fun GEN_PVAR_2374 : A => exists x : A, @SETSPEC A GEN_PVAR_2374 ((@IN A x s) /\ ((f x) = y)) x)) g)). +Axiom thm_VSUM_GROUP : forall {_591246 A B : Type'}, forall f : A -> B, forall g : A -> cart R _591246, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@SUBSET B (@IMAGE A B f s) t)) -> (@vsum B _591246 t (fun y : B => @vsum A _591246 (@GSPEC A (fun GEN_PVAR_2375 : A => exists x : A, @SETSPEC A GEN_PVAR_2375 ((@IN A x s) /\ ((f x) = y)) x)) g)) = (@vsum A _591246 s g). +Axiom thm_VSUM_GROUP_RELATION : forall {_591325 A B : Type'}, forall R' : A -> B -> Prop, forall g : A -> cart R _591325, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> @ex1 B (fun y : B => (@IN B y t) /\ (R' x y)))) -> (@vsum B _591325 t (fun y : B => @vsum A _591325 (@GSPEC A (fun GEN_PVAR_2376 : A => exists x : A, @SETSPEC A GEN_PVAR_2376 ((@IN A x s) /\ (R' x y)) x)) g)) = (@vsum A _591325 s g). +Axiom thm_VSUM_VMUL : forall {_591356 _591357 : Type'}, forall f : _591357 -> R, forall v : cart R _591356, forall s : _591357 -> Prop, (@percent _591356 (@sum _591357 s f) v) = (@vsum _591357 _591356 s (fun x : _591357 => @percent _591356 (f x) v)). +Axiom thm_VSUM_DELTA : forall {_591390 _591393 : Type'} (b : cart R _591393), forall s : _591390 -> Prop, forall a : _591390, (@vsum _591390 _591393 s (fun x : _591390 => @COND (cart R _591393) (x = a) b (@vec _591393 (NUMERAL 0%N)))) = (@COND (cart R _591393) (@IN _591390 a s) b (@vec _591393 (NUMERAL 0%N))). +Axiom thm_VSUM_ADD_NUMSEG : forall {_591443 : Type'}, forall f : N -> cart R _591443, forall g : N -> cart R _591443, forall m : N, forall n : N, (@vsum N _591443 (dotdot m n) (fun i : N => @vector_add _591443 (f i) (g i))) = (@vector_add _591443 (@vsum N _591443 (dotdot m n) f) (@vsum N _591443 (dotdot m n) g)). +Axiom thm_VSUM_SUB_NUMSEG : forall {_591495 : Type'}, forall f : N -> cart R _591495, forall g : N -> cart R _591495, forall m : N, forall n : N, (@vsum N _591495 (dotdot m n) (fun i : N => @vector_sub _591495 (f i) (g i))) = (@vector_sub _591495 (@vsum N _591495 (dotdot m n) f) (@vsum N _591495 (dotdot m n) g)). +Axiom thm_VSUM_ADD_SPLIT : forall {_591558 : Type'}, forall f : N -> cart R _591558, forall m : N, forall n : N, forall p : N, (N.le m (N.add n (NUMERAL (BIT1 0%N)))) -> (@vsum N _591558 (dotdot m (N.add n p)) f) = (@vector_add _591558 (@vsum N _591558 (dotdot m n) f) (@vsum N _591558 (dotdot (N.add n (NUMERAL (BIT1 0%N))) (N.add n p)) f)). +Axiom thm_VSUM_VSUM_PRODUCT : forall {_591615 A B : Type'}, forall s : A -> Prop, forall t : A -> B -> Prop, forall x : A -> B -> cart R _591615, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> @FINITE B (t i))) -> (@vsum A _591615 s (fun i : A => @vsum B _591615 (t i) (x i))) = (@vsum (prod A B) _591615 (@GSPEC (prod A B) (fun GEN_PVAR_2377 : prod A B => exists i : A, exists j : B, @SETSPEC (prod A B) GEN_PVAR_2377 ((@IN A i s) /\ (@IN B j (t i))) (@pair A B i j))) (@GABS ((prod A B) -> cart R _591615) (fun f : (prod A B) -> cart R _591615 => forall i : A, forall j : B, @GEQ (cart R _591615) (f (@pair A B i j)) (x i j)))). +Axiom thm_VSUM_IMAGE_NONZERO : forall {A B N' : Type'}, forall d : B -> cart R N', forall i : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((~ (x = y)) /\ ((i x) = (i y))))) -> (d (i x)) = (@vec N' (NUMERAL 0%N)))) -> (@vsum B N' (@IMAGE A B i s) d) = (@vsum A N' s (@o A B (cart R N') d i)). +Axiom thm_VSUM_UNION_NONZERO : forall {_591807 _591831 : Type'}, forall f : _591807 -> cart R _591831, forall s : _591807 -> Prop, forall t : _591807 -> Prop, ((@FINITE _591807 s) /\ ((@FINITE _591807 t) /\ (forall x : _591807, (@IN _591807 x (@INTER _591807 s t)) -> (f x) = (@vec _591831 (NUMERAL 0%N))))) -> (@vsum _591807 _591831 (@UNION _591807 s t) f) = (@vector_add _591831 (@vsum _591807 _591831 s f) (@vsum _591807 _591831 t f)). +Axiom thm_VSUM_UNIONS_NONZERO : forall {_591925 A : Type'}, forall f : A -> cart R _591925, forall s : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) s) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t s) -> @FINITE A t) /\ (forall t1 : A -> Prop, forall t2 : A -> Prop, forall x : A, ((@IN (A -> Prop) t1 s) /\ ((@IN (A -> Prop) t2 s) /\ ((~ (t1 = t2)) /\ ((@IN A x t1) /\ (@IN A x t2))))) -> (f x) = (@vec _591925 (NUMERAL 0%N))))) -> (@vsum A _591925 (@UNIONS A s) f) = (@vsum (A -> Prop) _591925 s (fun t : A -> Prop => @vsum A _591925 t f)). +Axiom thm_VSUM_CLAUSES_LEFT : forall {_591966 : Type'}, forall f : N -> cart R _591966, forall m : N, forall n : N, (N.le m n) -> (@vsum N _591966 (dotdot m n) f) = (@vector_add _591966 (f m) (@vsum N _591966 (dotdot (N.add m (NUMERAL (BIT1 0%N))) n) f)). +Axiom thm_VSUM_DIFFS : forall {_592028 : Type'} (f : N -> cart R _592028), forall m : N, forall n : N, (@vsum N _592028 (dotdot m n) (fun k : N => @vector_sub _592028 (f k) (f (N.add k (NUMERAL (BIT1 0%N)))))) = (@COND (cart R _592028) (N.le m n) (@vector_sub _592028 (f m) (f (N.add n (NUMERAL (BIT1 0%N))))) (@vec _592028 (NUMERAL 0%N))). +Axiom thm_VSUM_DIFFS_ALT : forall {_592081 : Type'} (f : N -> cart R _592081), forall m : N, forall n : N, (@vsum N _592081 (dotdot m n) (fun k : N => @vector_sub _592081 (f (N.add k (NUMERAL (BIT1 0%N)))) (f k))) = (@COND (cart R _592081) (N.le m n) (@vector_sub _592081 (f (N.add n (NUMERAL (BIT1 0%N)))) (f m)) (@vec _592081 (NUMERAL 0%N))). +Axiom thm_VSUM_DELETE_CASES : forall {_592146 A : Type'}, forall x : A, forall f : A -> cart R _592146, forall s : A -> Prop, (@FINITE A s) -> (@vsum A _592146 (@DELETE A s x) f) = (@COND (cart R _592146) (@IN A x s) (@vector_sub _592146 (@vsum A _592146 s f) (f x)) (@vsum A _592146 s f)). +Axiom thm_VSUM_EQ_GENERAL : forall {A B N' : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> cart R N', forall g : B -> cart R N', forall h : A -> B, ((forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ ((h x) = y))) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ ((g (h x)) = (f x)))) -> (@vsum A N' s f) = (@vsum B N' t g). +Axiom thm_VSUM_EQ_GENERAL_INVERSES : forall {A B N' : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> cart R N', forall g : B -> cart R N', forall h : A -> B, forall k : B -> A, ((forall y : B, (@IN B y t) -> (@IN A (k y) s) /\ ((h (k y)) = y)) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ (((k (h x)) = x) /\ ((g (h x)) = (f x))))) -> (@vsum A N' s f) = (@vsum B N' t g). +Axiom thm_VSUM_NORM_ALLSUBSETS_BOUND : forall {A N' : Type'}, forall f : A -> cart R N', forall p : A -> Prop, forall e : R, ((@FINITE A p) /\ (forall q : A -> Prop, (@SUBSET A q p) -> Rle (@vector_norm N' (@vsum A N' q f)) e)) -> Rle (@sum A p (fun x : A => @vector_norm N' (f x))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (R_of_N (@dimindex N' (@UNIV N'))) e)). +Axiom thm_DOT_LSUM : forall {_592699 _592708 : Type'}, forall s : _592708 -> Prop, forall f : _592708 -> cart R _592699, forall y : cart R _592699, (@FINITE _592708 s) -> (@dot _592699 (@vsum _592708 _592699 s f) y) = (@sum _592708 s (fun x : _592708 => @dot _592699 (f x) y)). +Axiom thm_DOT_RSUM : forall {_592735 _592744 : Type'}, forall s : _592744 -> Prop, forall f : _592744 -> cart R _592735, forall x : cart R _592735, (@FINITE _592744 s) -> (@dot _592735 x (@vsum _592744 _592735 s f)) = (@sum _592744 s (fun y : _592744 => @dot _592735 x (f y))). +Axiom thm_VSUM_OFFSET : forall {_592780 : Type'}, forall p : N, forall f : N -> cart R _592780, forall m : N, forall n : N, (@vsum N _592780 (dotdot (N.add m p) (N.add n p)) f) = (@vsum N _592780 (dotdot m n) (fun i : N => f (N.add i p))). +Axiom thm_VSUM_OFFSET_0 : forall {_592825 : Type'}, forall f : N -> cart R _592825, forall m : N, forall n : N, (N.le m n) -> (@vsum N _592825 (dotdot m n) f) = (@vsum N _592825 (dotdot (NUMERAL 0%N) (N.sub n m)) (fun i : N => f (N.add i m))). +Axiom thm_VSUM_TRIV_NUMSEG : forall {_592869 : Type'}, forall f : N -> cart R _592869, forall m : N, forall n : N, (N.lt n m) -> (@vsum N _592869 (dotdot m n) f) = (@vec _592869 (NUMERAL 0%N)). +Axiom thm_VSUM_CONST_NUMSEG : forall {_592896 : Type'}, forall c : cart R _592896, forall m : N, forall n : N, (@vsum N _592896 (dotdot m n) (fun n' : N => c)) = (@percent _592896 (R_of_N (N.sub (N.add n (NUMERAL (BIT1 0%N))) m)) c). +Axiom thm_VSUM_SUC : forall {_592950 : Type'}, forall f : N -> cart R _592950, forall m : N, forall n : N, (@vsum N _592950 (dotdot (N.succ n) (N.succ m)) f) = (@vsum N _592950 (dotdot n m) (@o N N (cart R _592950) f N.succ)). +Axiom thm_VSUM_BIJECTION : forall {A N' : Type'}, forall f : A -> cart R N', forall p : A -> A, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall y : A, (@IN A y s) -> @ex1 A (fun x : A => (@IN A x s) /\ ((p x) = y)))) -> (@vsum A N' s f) = (@vsum A N' s (@o A A (cart R N') f p)). +Axiom thm_VSUM_PARTIAL_SUC : forall {N' : Type'}, forall f : N -> R, forall g : N -> cart R N', forall m : N, forall n : N, (@vsum N N' (dotdot m n) (fun k : N => @percent N' (f k) (@vector_sub N' (g (N.add k (NUMERAL (BIT1 0%N)))) (g k)))) = (@COND (cart R N') (N.le m n) (@vector_sub N' (@vector_sub N' (@percent N' (f (N.add n (NUMERAL (BIT1 0%N)))) (g (N.add n (NUMERAL (BIT1 0%N))))) (@percent N' (f m) (g m))) (@vsum N N' (dotdot m n) (fun k : N => @percent N' (Rminus (f (N.add k (NUMERAL (BIT1 0%N)))) (f k)) (g (N.add k (NUMERAL (BIT1 0%N))))))) (@vec N' (NUMERAL 0%N))). +Axiom thm_VSUM_PARTIAL_PRE : forall {N' : Type'}, forall f : N -> R, forall g : N -> cart R N', forall m : N, forall n : N, (@vsum N N' (dotdot m n) (fun k : N => @percent N' (f k) (@vector_sub N' (g k) (g (N.sub k (NUMERAL (BIT1 0%N))))))) = (@COND (cart R N') (N.le m n) (@vector_sub N' (@vector_sub N' (@percent N' (f (N.add n (NUMERAL (BIT1 0%N)))) (g n)) (@percent N' (f m) (g (N.sub m (NUMERAL (BIT1 0%N)))))) (@vsum N N' (dotdot m n) (fun k : N => @percent N' (Rminus (f (N.add k (NUMERAL (BIT1 0%N)))) (f k)) (g k)))) (@vec N' (NUMERAL 0%N))). +Axiom thm_VSUM_COMBINE_L : forall {_593322 : Type'}, forall f : N -> cart R _593322, forall m : N, forall n : N, forall p : N, ((N.lt (NUMERAL 0%N) n) /\ ((N.le m n) /\ (N.le n (N.add p (NUMERAL (BIT1 0%N)))))) -> (@vector_add _593322 (@vsum N _593322 (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f) (@vsum N _593322 (dotdot n p) f)) = (@vsum N _593322 (dotdot m p) f). +Axiom thm_VSUM_COMBINE_R : forall {_593385 : Type'}, forall f : N -> cart R _593385, forall m : N, forall n : N, forall p : N, ((N.le m (N.add n (NUMERAL (BIT1 0%N)))) /\ (N.le n p)) -> (@vector_add _593385 (@vsum N _593385 (dotdot m n) f) (@vsum N _593385 (dotdot (N.add n (NUMERAL (BIT1 0%N))) p) f)) = (@vsum N _593385 (dotdot m p) f). +Axiom thm_VSUM_INJECTION : forall {_593462 _593467 : Type'}, forall f : _593462 -> cart R _593467, forall p : _593462 -> _593462, forall s : _593462 -> Prop, ((@FINITE _593462 s) /\ ((forall x : _593462, (@IN _593462 x s) -> @IN _593462 (p x) s) /\ (forall x : _593462, forall y : _593462, ((@IN _593462 x s) /\ ((@IN _593462 y s) /\ ((p x) = (p y)))) -> x = y))) -> (@vsum _593462 _593467 s (@o _593462 _593462 (cart R _593467) f p)) = (@vsum _593462 _593467 s f). +Axiom thm_VSUM_SWAP : forall {_593512 _593515 _593516 : Type'}, forall f : _593516 -> _593515 -> cart R _593512, forall s : _593516 -> Prop, forall t : _593515 -> Prop, ((@FINITE _593516 s) /\ (@FINITE _593515 t)) -> (@vsum _593516 _593512 s (fun i : _593516 => @vsum _593515 _593512 t (f i))) = (@vsum _593515 _593512 t (fun j : _593515 => @vsum _593516 _593512 s (fun i : _593516 => f i j))). +Axiom thm_VSUM_SWAP_NUMSEG : forall {_593567 : Type'}, forall a : N, forall b : N, forall c : N, forall d : N, forall f : N -> N -> cart R _593567, (@vsum N _593567 (dotdot a b) (fun i : N => @vsum N _593567 (dotdot c d) (f i))) = (@vsum N _593567 (dotdot c d) (fun j : N => @vsum N _593567 (dotdot a b) (fun i : N => f i j))). +Axiom thm_VSUM_ADD_GEN : forall {_593656 _593669 : Type'}, forall f : _593656 -> cart R _593669, forall g : _593656 -> cart R _593669, forall s : _593656 -> Prop, ((@FINITE _593656 (@GSPEC _593656 (fun GEN_PVAR_2380 : _593656 => exists x : _593656, @SETSPEC _593656 GEN_PVAR_2380 ((@IN _593656 x s) /\ (~ ((f x) = (@vec _593669 (NUMERAL 0%N))))) x))) /\ (@FINITE _593656 (@GSPEC _593656 (fun GEN_PVAR_2381 : _593656 => exists x : _593656, @SETSPEC _593656 GEN_PVAR_2381 ((@IN _593656 x s) /\ (~ ((g x) = (@vec _593669 (NUMERAL 0%N))))) x)))) -> (@vsum _593656 _593669 s (fun x : _593656 => @vector_add _593669 (f x) (g x))) = (@vector_add _593669 (@vsum _593656 _593669 s f) (@vsum _593656 _593669 s g)). +Axiom thm_VSUM_CASES_1 : forall {_593750 _593752 : Type'} (y : cart R _593752) (f : _593750 -> cart R _593752), forall s : _593750 -> Prop, forall a : _593750, ((@FINITE _593750 s) /\ (@IN _593750 a s)) -> (@vsum _593750 _593752 s (fun x : _593750 => @COND (cart R _593752) (x = a) y (f x))) = (@vector_add _593752 (@vsum _593750 _593752 s f) (@vector_sub _593752 y (f a))). +Axiom thm_VSUM_SING_NUMSEG : forall {_593762 : Type'} (f : N -> cart R _593762) (n : N), (@vsum N _593762 (dotdot n n) f) = (f n). +Axiom thm_VSUM_1 : forall {_593773 : Type'} (f : N -> cart R _593773), (@vsum N _593773 (dotdot (NUMERAL (BIT1 0%N)) (NUMERAL (BIT1 0%N))) f) = (f (NUMERAL (BIT1 0%N))). +Axiom thm_VSUM_2 : forall {_593797 : Type'}, forall t : N -> cart R _593797, (@vsum N _593797 (dotdot (NUMERAL (BIT1 0%N)) (NUMERAL (BIT0 (BIT1 0%N)))) t) = (@vector_add _593797 (t (NUMERAL (BIT1 0%N))) (t (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_VSUM_3 : forall {_593825 : Type'}, forall t : N -> cart R _593825, (@vsum N _593825 (dotdot (NUMERAL (BIT1 0%N)) (NUMERAL (BIT1 (BIT1 0%N)))) t) = (@vector_add _593825 (t (NUMERAL (BIT1 0%N))) (@vector_add _593825 (t (NUMERAL (BIT0 (BIT1 0%N)))) (t (NUMERAL (BIT1 (BIT1 0%N)))))). +Axiom thm_VSUM_4 : forall {_593860 : Type'}, forall t : N -> cart R _593860, (@vsum N _593860 (dotdot (NUMERAL (BIT1 0%N)) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) t) = (@vector_add _593860 (t (NUMERAL (BIT1 0%N))) (@vector_add _593860 (t (NUMERAL (BIT0 (BIT1 0%N)))) (@vector_add _593860 (t (NUMERAL (BIT1 (BIT1 0%N)))) (t (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))))). +Axiom thm_VSUM_PAIR : forall {N' : Type'}, forall f : N -> cart R N', forall m : N, forall n : N, (@vsum N N' (dotdot (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) f) = (@vsum N N' (dotdot m n) (fun i : N => @vector_add N' (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i) (NUMERAL (BIT1 0%N)))))). +Axiom thm_VSUM_PAIR_0 : forall {N' : Type'}, forall f : N -> cart R N', forall n : N, (@vsum N N' (dotdot (NUMERAL 0%N) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) f) = (@vsum N N' (dotdot (NUMERAL 0%N) n) (fun i : N => @vector_add N' (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i) (NUMERAL (BIT1 0%N)))))). +Axiom thm_VSUM_REFLECT : forall {_594012 : Type'}, forall x : N -> cart R _594012, forall m : N, forall n : N, (@vsum N _594012 (dotdot m n) x) = (@COND (cart R _594012) (N.lt n m) (@vec _594012 (NUMERAL 0%N)) (@vsum N _594012 (dotdot (NUMERAL 0%N) (N.sub n m)) (fun i : N => x (N.sub n i)))). +Axiom thm_basis : forall {_594269 : Type'}, forall k : N, (@basis _594269 k) = (@lambda R _594269 (fun i : N => @COND R (i = k) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_NORM_BASIS : forall {N' : Type'}, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@vector_norm N' (@basis N' k)) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_NORM_BASIS_1 : forall {_594351 : Type'}, (@vector_norm _594351 (@basis _594351 (NUMERAL (BIT1 0%N)))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_VECTOR_CHOOSE_SIZE : forall {N' : Type'}, forall c : R, (Rle (R_of_N (NUMERAL 0%N)) c) -> exists x : cart R N', (@vector_norm N' x) = c. +Axiom thm_VECTOR_CHOOSE_DIST : forall {N' : Type'}, forall x : cart R N', forall e : R, (Rle (R_of_N (NUMERAL 0%N)) e) -> exists y : cart R N', (@distance N' (@pair (cart R N') (cart R N') x y)) = e. +Axiom thm_BASIS_INJ : forall {N' : Type'}, forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ ((@basis N' i) = (@basis N' j)))))) -> i = j. +Axiom thm_BASIS_INJ_EQ : forall {N' : Type'}, forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> ((@basis N' i) = (@basis N' j)) = (i = j). +Axiom thm_BASIS_NE : forall {N' : Type'}, forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (~ (i = j)))))) -> ~ ((@basis N' i) = (@basis N' j)). +Axiom thm_BASIS_COMPONENT : forall {N' : Type'}, forall k : N, forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@dollar R N' (@basis N' k) i) = (@COND R (i = k) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Axiom thm_BASIS_EXPANSION : forall {N' : Type'}, forall x : cart R N', (@vsum N N' (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @percent N' (@dollar R N' x i) (@basis N' i))) = x. +Axiom thm_BASIS_EXPANSION_UNIQUE : forall {N' : Type'}, forall f : N -> R, forall x : cart R N', ((@vsum N N' (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @percent N' (f i) (@basis N' i))) = x) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (f i) = (@dollar R N' x i)). +Axiom thm_DOT_BASIS : forall {N' : Type'}, forall x : cart R N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> ((@dot N' (@basis N' i) x) = (@dollar R N' x i)) /\ ((@dot N' x (@basis N' i)) = (@dollar R N' x i)). +Axiom thm_DOT_BASIS_BASIS : forall {N' : Type'}, forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> (@dot N' (@basis N' i) (@basis N' j)) = (@COND R (i = j) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Axiom thm_DOT_BASIS_BASIS_UNEQUAL : forall {_594846 : Type'}, forall i : N, forall j : N, (~ (i = j)) -> (@dot _594846 (@basis _594846 i) (@basis _594846 j)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_BASIS_EQ_0 : forall {N' : Type'}, forall i : N, ((@basis N' i) = (@vec N' (NUMERAL 0%N))) = (~ (@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))). +Axiom thm_BASIS_NONZERO : forall {N' : Type'}, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> ~ ((@basis N' k) = (@vec N' (NUMERAL 0%N))). +Axiom thm_VECTOR_EQ_LDOT : forall {_594927 : Type'}, forall y : cart R _594927, forall z : cart R _594927, (forall x : cart R _594927, (@dot _594927 x y) = (@dot _594927 x z)) = (y = z). +Axiom thm_VECTOR_EQ_RDOT : forall {_594954 : Type'}, forall x : cart R _594954, forall y : cart R _594954, (forall z : cart R _594954, (@dot _594954 x z) = (@dot _594954 y z)) = (x = y). +Axiom thm_orthogonal : forall {_594971 : Type'}, forall x : cart R _594971, forall y : cart R _594971, (@orthogonal _594971 x y) = ((@dot _594971 x y) = (R_of_N (NUMERAL 0%N))). +Axiom thm_ORTHOGONAL_0 : forall {_594990 : Type'}, forall x : cart R _594990, (@orthogonal _594990 (@vec _594990 (NUMERAL 0%N)) x) /\ (@orthogonal _594990 x (@vec _594990 (NUMERAL 0%N))). +Axiom thm_ORTHOGONAL_REFL : forall {_595005 : Type'}, forall x : cart R _595005, (@orthogonal _595005 x x) = (x = (@vec _595005 (NUMERAL 0%N))). +Axiom thm_ORTHOGONAL_SYM : forall {_595019 : Type'}, forall x : cart R _595019, forall y : cart R _595019, (@orthogonal _595019 x y) = (@orthogonal _595019 y x). +Axiom thm_ORTHOGONAL_LNEG : forall {_595042 : Type'}, forall x : cart R _595042, forall y : cart R _595042, (@orthogonal _595042 (@vector_neg _595042 x) y) = (@orthogonal _595042 x y). +Axiom thm_ORTHOGONAL_RNEG : forall {_595063 : Type'}, forall x : cart R _595063, forall y : cart R _595063, (@orthogonal _595063 x (@vector_neg _595063 y)) = (@orthogonal _595063 x y). +Axiom thm_ORTHOGONAL_MUL : forall {N' : Type'}, (forall a : R, forall x : cart R N', forall y : cart R N', (@orthogonal N' (@percent N' a x) y) = ((a = (R_of_N (NUMERAL 0%N))) \/ (@orthogonal N' x y))) /\ (forall a : R, forall x : cart R N', forall y : cart R N', (@orthogonal N' x (@percent N' a y)) = ((a = (R_of_N (NUMERAL 0%N))) \/ (@orthogonal N' x y))). +Axiom thm_ORTHOGONAL_BASIS : forall {N' : Type'}, forall x : cart R N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@orthogonal N' (@basis N' i) x) = ((@dollar R N' x i) = (R_of_N (NUMERAL 0%N))). +Axiom thm_ORTHOGONAL_BASIS_BASIS : forall {N' : Type'}, forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> (@orthogonal N' (@basis N' i) (@basis N' j)) = (~ (i = j)). +Axiom thm_ORTHOGONAL_CLAUSES : forall {_595234 _595259 _595350 _595369 _595454 _595455 _595456 _595457 _595458 _595459 : Type'}, (forall a : cart R _595234, @orthogonal _595234 a (@vec _595234 (NUMERAL 0%N))) /\ ((forall a : cart R _595259, forall x : cart R _595259, forall c : R, (@orthogonal _595259 a x) -> @orthogonal _595259 a (@percent _595259 c x)) /\ ((forall a : cart R _595454, forall x : cart R _595454, (@orthogonal _595454 a x) -> @orthogonal _595454 a (@vector_neg _595454 x)) /\ ((forall a : cart R _595455, forall x : cart R _595455, forall y : cart R _595455, ((@orthogonal _595455 a x) /\ (@orthogonal _595455 a y)) -> @orthogonal _595455 a (@vector_add _595455 x y)) /\ ((forall a : cart R _595456, forall x : cart R _595456, forall y : cart R _595456, ((@orthogonal _595456 a x) /\ (@orthogonal _595456 a y)) -> @orthogonal _595456 a (@vector_sub _595456 x y)) /\ ((forall a : cart R _595350, @orthogonal _595350 (@vec _595350 (NUMERAL 0%N)) a) /\ ((forall a : cart R _595369, forall x : cart R _595369, forall c : R, (@orthogonal _595369 x a) -> @orthogonal _595369 (@percent _595369 c x) a) /\ ((forall a : cart R _595457, forall x : cart R _595457, (@orthogonal _595457 x a) -> @orthogonal _595457 (@vector_neg _595457 x) a) /\ ((forall a : cart R _595458, forall x : cart R _595458, forall y : cart R _595458, ((@orthogonal _595458 x a) /\ (@orthogonal _595458 y a)) -> @orthogonal _595458 (@vector_add _595458 x y) a) /\ (forall a : cart R _595459, forall x : cart R _595459, forall y : cart R _595459, ((@orthogonal _595459 x a) /\ (@orthogonal _595459 y a)) -> @orthogonal _595459 (@vector_sub _595459 x y) a))))))))). +Axiom thm_ORTHOGONAL_RVSUM : forall {A N' : Type'}, forall f : A -> cart R N', forall s : A -> Prop, forall x : cart R N', ((@FINITE A s) /\ (forall y : A, (@IN A y s) -> @orthogonal N' x (f y))) -> @orthogonal N' x (@vsum A N' s f). +Axiom thm_ORTHOGONAL_LVSUM : forall {A N' : Type'}, forall f : A -> cart R N', forall s : A -> Prop, forall y : cart R N', ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> @orthogonal N' (f x) y)) -> @orthogonal N' (@vsum A N' s f) y. +Axiom thm_NORM_ADD_PYTHAGOREAN : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@orthogonal N' a b) -> (real_pow (@vector_norm N' (@vector_add N' a b)) (NUMERAL (BIT0 (BIT1 0%N)))) = (Rplus (real_pow (@vector_norm N' a) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@vector_norm N' b) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_NORM_VSUM_PYTHAGOREAN : forall {A N' : Type'}, forall k : A -> Prop, forall u : A -> cart R N', ((@FINITE A k) /\ (@pairwise A (fun i : A => fun j : A => @orthogonal N' (u i) (u j)) k)) -> (real_pow (@vector_norm N' (@vsum A N' k u)) (NUMERAL (BIT0 (BIT1 0%N)))) = (@sum A k (fun i : A => real_pow (@vector_norm N' (u i)) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_VECTOR_1 : forall {A : Type'} (x : A), (@dollar A unit (@vector A unit (@cons A x (@nil A))) (NUMERAL (BIT1 0%N))) = x. +Axiom thm_VECTOR_2 : forall {A : Type'} (x : A) (y : A), ((@dollar A (tybit0 unit) (@vector A (tybit0 unit) (@cons A x (@cons A y (@nil A)))) (NUMERAL (BIT1 0%N))) = x) /\ ((@dollar A (tybit0 unit) (@vector A (tybit0 unit) (@cons A x (@cons A y (@nil A)))) (NUMERAL (BIT0 (BIT1 0%N)))) = y). +Axiom thm_VECTOR_3 : forall {A : Type'} (x : A) (y : A) (z : A), ((@dollar A (tybit1 unit) (@vector A (tybit1 unit) (@cons A x (@cons A y (@cons A z (@nil A))))) (NUMERAL (BIT1 0%N))) = x) /\ (((@dollar A (tybit1 unit) (@vector A (tybit1 unit) (@cons A x (@cons A y (@cons A z (@nil A))))) (NUMERAL (BIT0 (BIT1 0%N)))) = y) /\ ((@dollar A (tybit1 unit) (@vector A (tybit1 unit) (@cons A x (@cons A y (@cons A z (@nil A))))) (NUMERAL (BIT1 (BIT1 0%N)))) = z)). +Axiom thm_VECTOR_4 : forall {A : Type'} (w : A) (x : A) (y : A) (z : A), ((@dollar A (tybit0 (tybit0 unit)) (@vector A (tybit0 (tybit0 unit)) (@cons A w (@cons A x (@cons A y (@cons A z (@nil A)))))) (NUMERAL (BIT1 0%N))) = w) /\ (((@dollar A (tybit0 (tybit0 unit)) (@vector A (tybit0 (tybit0 unit)) (@cons A w (@cons A x (@cons A y (@cons A z (@nil A)))))) (NUMERAL (BIT0 (BIT1 0%N)))) = x) /\ (((@dollar A (tybit0 (tybit0 unit)) (@vector A (tybit0 (tybit0 unit)) (@cons A w (@cons A x (@cons A y (@cons A z (@nil A)))))) (NUMERAL (BIT1 (BIT1 0%N)))) = y) /\ ((@dollar A (tybit0 (tybit0 unit)) (@vector A (tybit0 (tybit0 unit)) (@cons A w (@cons A x (@cons A y (@cons A z (@nil A)))))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) = z))). +Axiom thm_FORALL_VECTOR_1 : forall {A : Type'} (P : (cart A unit) -> Prop), (forall v : cart A unit, P v) = (forall x : A, P (@vector A unit (@cons A x (@nil A)))). +Axiom thm_FORALL_VECTOR_2 : forall {A : Type'} (P : (cart A (tybit0 unit)) -> Prop), (forall v : cart A (tybit0 unit), P v) = (forall x : A, forall y : A, P (@vector A (tybit0 unit) (@cons A x (@cons A y (@nil A))))). +Axiom thm_FORALL_VECTOR_3 : forall {A : Type'} (P : (cart A (tybit1 unit)) -> Prop), (forall v : cart A (tybit1 unit), P v) = (forall x : A, forall y : A, forall z : A, P (@vector A (tybit1 unit) (@cons A x (@cons A y (@cons A z (@nil A)))))). +Axiom thm_FORALL_VECTOR_4 : forall {A : Type'} (P : (cart A (tybit0 (tybit0 unit))) -> Prop), (forall v : cart A (tybit0 (tybit0 unit)), P v) = (forall w : A, forall x : A, forall y : A, forall z : A, P (@vector A (tybit0 (tybit0 unit)) (@cons A w (@cons A x (@cons A y (@cons A z (@nil A))))))). +Axiom thm_EXISTS_VECTOR_1 : forall {A : Type'} (P : (cart A unit) -> Prop), (exists v : cart A unit, P v) = (exists x : A, P (@vector A unit (@cons A x (@nil A)))). +Axiom thm_EXISTS_VECTOR_2 : forall {A : Type'} (P : (cart A (tybit0 unit)) -> Prop), (exists v : cart A (tybit0 unit), P v) = (exists x : A, exists y : A, P (@vector A (tybit0 unit) (@cons A x (@cons A y (@nil A))))). +Axiom thm_EXISTS_VECTOR_3 : forall {A : Type'} (P : (cart A (tybit1 unit)) -> Prop), (exists v : cart A (tybit1 unit), P v) = (exists x : A, exists y : A, exists z : A, P (@vector A (tybit1 unit) (@cons A x (@cons A y (@cons A z (@nil A)))))). +Axiom thm_EXISTS_VECTOR_4 : forall {A : Type'} (P : (cart A (tybit0 (tybit0 unit))) -> Prop), (exists v : cart A (tybit0 (tybit0 unit)), P v) = (exists w : A, exists x : A, exists y : A, exists z : A, P (@vector A (tybit0 (tybit0 unit)) (@cons A w (@cons A x (@cons A y (@cons A z (@nil A))))))). +Axiom thm_VECTOR_EXPAND_1 : forall x : cart R unit, x = (@vector R unit (@cons R (@dollar R unit x (NUMERAL (BIT1 0%N))) (@nil R))). +Axiom thm_VECTOR_EXPAND_2 : forall x : cart R (tybit0 unit), x = (@vector R (tybit0 unit) (@cons R (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N))) (@cons R (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N)))) (@nil R)))). +Axiom thm_VECTOR_EXPAND_3 : forall x : cart R (tybit1 unit), x = (@vector R (tybit1 unit) (@cons R (@dollar R (tybit1 unit) x (NUMERAL (BIT1 0%N))) (@cons R (@dollar R (tybit1 unit) x (NUMERAL (BIT0 (BIT1 0%N)))) (@cons R (@dollar R (tybit1 unit) x (NUMERAL (BIT1 (BIT1 0%N)))) (@nil R))))). +Axiom thm_VECTOR_EXPAND_4 : forall x : cart R (tybit0 (tybit0 unit)), x = (@vector R (tybit0 (tybit0 unit)) (@cons R (@dollar R (tybit0 (tybit0 unit)) x (NUMERAL (BIT1 0%N))) (@cons R (@dollar R (tybit0 (tybit0 unit)) x (NUMERAL (BIT0 (BIT1 0%N)))) (@cons R (@dollar R (tybit0 (tybit0 unit)) x (NUMERAL (BIT1 (BIT1 0%N)))) (@cons R (@dollar R (tybit0 (tybit0 unit)) x (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@nil R)))))). +Axiom thm_linear : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) = ((forall x : cart R M, forall y : cart R M, (f (@vector_add M x y)) = (@vector_add N' (f x) (f y))) /\ (forall c : R, forall x : cart R M, (f (@percent M c x)) = (@percent N' c (f x)))). +Axiom thm_LINEAR_COMPOSE_CMUL : forall {_596400 _596402 : Type'}, forall f : (cart R _596402) -> cart R _596400, forall c : R, (@linear _596402 _596400 f) -> @linear _596402 _596400 (fun x : cart R _596402 => @percent _596400 c (f x)). +Axiom thm_LINEAR_COMPOSE_NEG : forall {_596421 _596428 : Type'}, forall f : (cart R _596421) -> cart R _596428, (@linear _596421 _596428 f) -> @linear _596421 _596428 (fun x : cart R _596421 => @vector_neg _596428 (f x)). +Axiom thm_LINEAR_COMPOSE_NEG_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' (fun x : cart R M => @vector_neg N' (f x))) = (@linear M N' f). +Axiom thm_LINEAR_COMPOSE_ADD : forall {_596502 _596511 : Type'}, forall f : (cart R _596502) -> cart R _596511, forall g : (cart R _596502) -> cart R _596511, ((@linear _596502 _596511 f) /\ (@linear _596502 _596511 g)) -> @linear _596502 _596511 (fun x : cart R _596502 => @vector_add _596511 (f x) (g x)). +Axiom thm_LINEAR_COMPOSE_SUB : forall {_596533 _596542 : Type'}, forall f : (cart R _596533) -> cart R _596542, forall g : (cart R _596533) -> cart R _596542, ((@linear _596533 _596542 f) /\ (@linear _596533 _596542 g)) -> @linear _596533 _596542 (fun x : cart R _596533 => @vector_sub _596542 (f x) (g x)). +Axiom thm_LINEAR_COMPOSE : forall {_596558 _596559 _596562 : Type'}, forall f : (cart R _596558) -> cart R _596559, forall g : (cart R _596559) -> cart R _596562, ((@linear _596558 _596559 f) /\ (@linear _596559 _596562 g)) -> @linear _596558 _596562 (@o (cart R _596558) (cart R _596559) (cart R _596562) g f). +Axiom thm_LINEAR_ID : forall {_596573 : Type'}, @linear _596573 _596573 (fun x : cart R _596573 => x). +Axiom thm_LINEAR_I : forall {_596580 : Type'}, @linear _596580 _596580 (@I (cart R _596580)). +Axiom thm_LINEAR_ZERO : forall {_596584 _596589 : Type'}, @linear _596584 _596589 (fun x : cart R _596584 => @vec _596589 (NUMERAL 0%N)). +Axiom thm_LINEAR_NEGATION : forall {_596595 : Type'}, @linear _596595 _596595 (@vector_neg _596595). +Axiom thm_LINEAR_COMPOSE_VSUM : forall {_596623 _596626 _596637 : Type'}, forall f : _596637 -> (cart R _596626) -> cart R _596623, forall s : _596637 -> Prop, ((@FINITE _596637 s) /\ (forall a : _596637, (@IN _596637 a s) -> @linear _596626 _596623 (f a))) -> @linear _596626 _596623 (fun x : cart R _596626 => @vsum _596637 _596623 s (fun a : _596637 => f a x)). +Axiom thm_LINEAR_VMUL_COMPONENT : forall {_596676 M N' : Type'}, forall f : (cart R M) -> cart R N', forall v : cart R _596676, forall k : N, ((@linear M N' f) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> @linear M _596676 (fun x : cart R M => @percent _596676 (@dollar R N' (f x) k) v). +Axiom thm_LINEAR_0 : forall {_596697 _596699 : Type'}, forall f : (cart R _596697) -> cart R _596699, (@linear _596697 _596699 f) -> (f (@vec _596697 (NUMERAL 0%N))) = (@vec _596699 (NUMERAL 0%N)). +Axiom thm_LINEAR_CMUL : forall {_596724 _596727 : Type'}, forall f : (cart R _596724) -> cart R _596727, forall c : R, forall x : cart R _596724, (@linear _596724 _596727 f) -> (f (@percent _596724 c x)) = (@percent _596727 c (f x)). +Axiom thm_LINEAR_NEG : forall {_596752 _596753 : Type'}, forall f : (cart R _596752) -> cart R _596753, forall x : cart R _596752, (@linear _596752 _596753 f) -> (f (@vector_neg _596752 x)) = (@vector_neg _596753 (f x)). +Axiom thm_LINEAR_ADD : forall {_596786 _596787 : Type'}, forall f : (cart R _596786) -> cart R _596787, forall x : cart R _596786, forall y : cart R _596786, (@linear _596786 _596787 f) -> (f (@vector_add _596786 x y)) = (@vector_add _596787 (f x) (f y)). +Axiom thm_LINEAR_SUB : forall {_596820 _596821 : Type'}, forall f : (cart R _596820) -> cart R _596821, forall x : cart R _596820, forall y : cart R _596820, (@linear _596820 _596821 f) -> (f (@vector_sub _596820 x y)) = (@vector_sub _596821 (f x) (f y)). +Axiom thm_LINEAR_VSUM : forall {_596853 _596857 _596861 : Type'}, forall f : (cart R _596853) -> cart R _596857, forall g : _596861 -> cart R _596853, forall s : _596861 -> Prop, ((@linear _596853 _596857 f) /\ (@FINITE _596861 s)) -> (f (@vsum _596861 _596853 s g)) = (@vsum _596861 _596857 s (@o _596861 (cart R _596853) (cart R _596857) f g)). +Axiom thm_LINEAR_VSUM_MUL : forall {_596901 _596912 _596915 : Type'}, forall f : (cart R _596901) -> cart R _596912, forall s : _596915 -> Prop, forall c : _596915 -> R, forall v : _596915 -> cart R _596901, ((@linear _596901 _596912 f) /\ (@FINITE _596915 s)) -> (f (@vsum _596915 _596901 s (fun i : _596915 => @percent _596901 (c i) (v i)))) = (@vsum _596915 _596912 s (fun i : _596915 => @percent _596912 (c i) (f (v i)))). +Axiom thm_LINEAR_INJECTIVE_0 : forall {_596957 _596962 : Type'}, forall f : (cart R _596962) -> cart R _596957, (@linear _596962 _596957 f) -> (forall x : cart R _596962, forall y : cart R _596962, ((f x) = (f y)) -> x = y) = (forall x : cart R _596962, ((f x) = (@vec _596957 (NUMERAL 0%N))) -> x = (@vec _596962 (NUMERAL 0%N))). +Axiom thm_LINEAR_BOUNDED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> exists B : R, forall x : cart R M, Rle (@vector_norm N' (f x)) (Rmult B (@vector_norm M x)). +Axiom thm_LINEAR_BOUNDED_POS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R M, Rle (@vector_norm N' (f x)) (Rmult B (@vector_norm M x))). +Axiom thm_SYMMETRIC_LINEAR_IMAGE : forall {_597129 _597130 : Type'}, forall f : (cart R _597129) -> cart R _597130, forall s : (cart R _597129) -> Prop, ((forall x : cart R _597129, (@IN (cart R _597129) x s) -> @IN (cart R _597129) (@vector_neg _597129 x) s) /\ (@linear _597129 _597130 f)) -> forall x : cart R _597130, (@IN (cart R _597130) x (@IMAGE (cart R _597129) (cart R _597130) f s)) -> @IN (cart R _597130) (@vector_neg _597130 x) (@IMAGE (cart R _597129) (cart R _597130) f s). +Axiom thm_bilinear : forall {_597144 _597145 _597155 : Type'}, forall f : (cart R _597155) -> (cart R _597144) -> cart R _597145, (@bilinear _597144 _597145 _597155 f) = ((forall x : cart R _597155, @linear _597144 _597145 (fun y : cart R _597144 => f x y)) /\ (forall y : cart R _597144, @linear _597155 _597145 (fun x : cart R _597155 => f x y))). +Axiom thm_BILINEAR_SWAP : forall {M N' P : Type'}, forall op : (cart R M) -> (cart R N') -> cart R P, (@bilinear M P N' (fun x : cart R N' => fun y : cart R M => op y x)) = (@bilinear N' P M op). +Axiom thm_BILINEAR_LADD : forall {_597203 _597220 _597221 : Type'}, forall h : (cart R _597220) -> (cart R _597203) -> cart R _597221, forall x : cart R _597220, forall y : cart R _597220, forall z : cart R _597203, (@bilinear _597203 _597221 _597220 h) -> (h (@vector_add _597220 x y) z) = (@vector_add _597221 (h x z) (h y z)). +Axiom thm_BILINEAR_RADD : forall {_597244 _597262 _597263 : Type'}, forall h : (cart R _597244) -> (cart R _597262) -> cart R _597263, forall x : cart R _597244, forall y : cart R _597262, forall z : cart R _597262, (@bilinear _597262 _597263 _597244 h) -> (h x (@vector_add _597262 y z)) = (@vector_add _597263 (h x y) (h x z)). +Axiom thm_BILINEAR_LMUL : forall {_597287 _597296 _597299 : Type'}, forall h : (cart R _597296) -> (cart R _597287) -> cart R _597299, forall c : R, forall x : cart R _597296, forall y : cart R _597287, (@bilinear _597287 _597299 _597296 h) -> (h (@percent _597296 c x) y) = (@percent _597299 c (h x y)). +Axiom thm_BILINEAR_RMUL : forall {_597322 _597332 _597335 : Type'}, forall h : (cart R _597322) -> (cart R _597332) -> cart R _597335, forall c : R, forall x : cart R _597322, forall y : cart R _597332, (@bilinear _597332 _597335 _597322 h) -> (h x (@percent _597332 c y)) = (@percent _597335 c (h x y)). +Axiom thm_BILINEAR_LNEG : forall {_597355 _597368 _597369 : Type'}, forall h : (cart R _597368) -> (cart R _597355) -> cart R _597369, forall x : cart R _597368, forall y : cart R _597355, (@bilinear _597355 _597369 _597368 h) -> (h (@vector_neg _597368 x) y) = (@vector_neg _597369 (h x y)). +Axiom thm_BILINEAR_RNEG : forall {_597388 _597402 _597403 : Type'}, forall h : (cart R _597388) -> (cart R _597402) -> cart R _597403, forall x : cart R _597388, forall y : cart R _597402, (@bilinear _597402 _597403 _597388 h) -> (h x (@vector_neg _597402 y)) = (@vector_neg _597403 (h x y)). +Axiom thm_BILINEAR_LZERO : forall {_597435 _597443 _597445 : Type'}, forall h : (cart R _597443) -> (cart R _597435) -> cart R _597445, forall x : cart R _597435, (@bilinear _597435 _597445 _597443 h) -> (h (@vec _597443 (NUMERAL 0%N)) x) = (@vec _597445 (NUMERAL 0%N)). +Axiom thm_BILINEAR_RZERO : forall {_597474 _597483 _597485 : Type'}, forall h : (cart R _597474) -> (cart R _597483) -> cart R _597485, forall x : cart R _597474, (@bilinear _597483 _597485 _597474 h) -> (h x (@vec _597483 (NUMERAL 0%N))) = (@vec _597485 (NUMERAL 0%N)). +Axiom thm_BILINEAR_LSUB : forall {_597507 _597524 _597525 : Type'}, forall h : (cart R _597524) -> (cart R _597507) -> cart R _597525, forall x : cart R _597524, forall y : cart R _597524, forall z : cart R _597507, (@bilinear _597507 _597525 _597524 h) -> (h (@vector_sub _597524 x y) z) = (@vector_sub _597525 (h x z) (h y z)). +Axiom thm_BILINEAR_RSUB : forall {_597548 _597566 _597567 : Type'}, forall h : (cart R _597548) -> (cart R _597566) -> cart R _597567, forall x : cart R _597548, forall y : cart R _597566, forall z : cart R _597566, (@bilinear _597566 _597567 _597548 h) -> (h x (@vector_sub _597566 y z)) = (@vector_sub _597567 (h x y) (h x z)). +Axiom thm_BILINEAR_LSUM : forall {A M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall f : A -> cart R M, forall s : A -> Prop, forall y : cart R N', ((@bilinear N' P M bop) /\ (@FINITE A s)) -> (bop (@vsum A M s f) y) = (@vsum A P s (fun i : A => bop (f i) y)). +Axiom thm_BILINEAR_RSUM : forall {A M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall f : A -> cart R N', forall s : A -> Prop, forall x : cart R M, ((@bilinear N' P M bop) /\ (@FINITE A s)) -> (bop x (@vsum A N' s f)) = (@vsum A P s (fun i : A => bop x (f i))). +Axiom thm_BILINEAR_VSUM : forall {_597729 _597730 M N' P : Type'} (s : _597729 -> Prop) (t : _597730 -> Prop) (f : _597729 -> cart R M) (g : _597730 -> cart R N'), forall h : (cart R M) -> (cart R N') -> cart R P, ((@bilinear N' P M h) /\ ((@FINITE _597729 s) /\ (@FINITE _597730 t))) -> (h (@vsum _597729 M s f) (@vsum _597730 N' t g)) = (@vsum (prod _597729 _597730) P (@CROSS _597729 _597730 s t) (@GABS ((prod _597729 _597730) -> cart R P) (fun f' : (prod _597729 _597730) -> cart R P => forall i : _597729, forall j : _597730, @GEQ (cart R P) (f' (@pair _597729 _597730 i j)) (h (f i) (g j))))). +Axiom thm_BILINEAR_BOUNDED : forall {M N' P : Type'}, forall h : (cart R M) -> (cart R N') -> cart R P, (@bilinear N' P M h) -> exists B : R, forall x : cart R M, forall y : cart R N', Rle (@vector_norm P (h x y)) (Rmult B (Rmult (@vector_norm M x) (@vector_norm N' y))). +Axiom thm_BILINEAR_BOUNDED_POS : forall {_597842 _597843 _597844 : Type'}, forall h : (cart R _597842) -> (cart R _597843) -> cart R _597844, (@bilinear _597843 _597844 _597842 h) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R _597842, forall y : cart R _597843, Rle (@vector_norm _597844 (h x y)) (Rmult B (Rmult (@vector_norm _597842 x) (@vector_norm _597843 y)))). +Axiom thm_BILINEAR_VSUM_PARTIAL_SUC : forall {M N' P : Type'}, forall f : N -> cart R M, forall g : N -> cart R N', forall h : (cart R M) -> (cart R N') -> cart R P, forall m : N, forall n : N, (@bilinear N' P M h) -> (@vsum N P (dotdot m n) (fun k : N => h (f k) (@vector_sub N' (g (N.add k (NUMERAL (BIT1 0%N)))) (g k)))) = (@COND (cart R P) (N.le m n) (@vector_sub P (@vector_sub P (h (f (N.add n (NUMERAL (BIT1 0%N)))) (g (N.add n (NUMERAL (BIT1 0%N))))) (h (f m) (g m))) (@vsum N P (dotdot m n) (fun k : N => h (@vector_sub M (f (N.add k (NUMERAL (BIT1 0%N)))) (f k)) (g (N.add k (NUMERAL (BIT1 0%N))))))) (@vec P (NUMERAL 0%N))). +Axiom thm_BILINEAR_VSUM_PARTIAL_PRE : forall {M N' P : Type'}, forall f : N -> cart R M, forall g : N -> cart R N', forall h : (cart R M) -> (cart R N') -> cart R P, forall m : N, forall n : N, (@bilinear N' P M h) -> (@vsum N P (dotdot m n) (fun k : N => h (f k) (@vector_sub N' (g k) (g (N.sub k (NUMERAL (BIT1 0%N))))))) = (@COND (cart R P) (N.le m n) (@vector_sub P (@vector_sub P (h (f (N.add n (NUMERAL (BIT1 0%N)))) (g n)) (h (f m) (g (N.sub m (NUMERAL (BIT1 0%N)))))) (@vsum N P (dotdot m n) (fun k : N => h (@vector_sub M (f (N.add k (NUMERAL (BIT1 0%N)))) (f k)) (g k)))) (@vec P (NUMERAL 0%N))). +Axiom thm_BILINEAR_VSUM_CONVOLUTION_1 : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall a : N -> cart R M, forall b : N -> cart R N', forall n : N, (@bilinear N' P M bop) -> (@vsum N P (dotdot (NUMERAL 0%N) n) (fun m : N => @vsum N P (dotdot (NUMERAL 0%N) m) (fun i : N => bop (a i) (b (N.sub m i))))) = (@vsum N P (dotdot (NUMERAL 0%N) n) (fun m : N => bop (a m) (@vsum N N' (dotdot (NUMERAL 0%N) (N.sub n m)) b))). +Axiom thm_BILINEAR_VSUM_CONVOLUTION_2 : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall a : N -> cart R M, forall b : N -> cart R N', forall n : N, (@bilinear N' P M bop) -> (@vsum N P (dotdot (NUMERAL 0%N) n) (fun m : N => @vsum N P (dotdot (NUMERAL 0%N) m) (fun k : N => @vsum N P (dotdot (NUMERAL 0%N) k) (fun i : N => bop (a i) (b (N.sub k i)))))) = (@vsum N P (dotdot (NUMERAL 0%N) n) (fun m : N => bop (@vsum N M (dotdot (NUMERAL 0%N) m) a) (@vsum N N' (dotdot (NUMERAL 0%N) (N.sub n m)) b))). +Axiom thm_adjoint : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@adjoint M N' f) = (@ε ((cart R N') -> cart R M) (fun f' : (cart R N') -> cart R M => forall x : cart R M, forall y : cart R N', (@dot N' (f x) y) = (@dot M x (f' y)))). +Axiom thm_ADJOINT_WORKS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> forall x : cart R M, forall y : cart R N', (@dot N' (f x) y) = (@dot M x (@adjoint M N' f y)). +Axiom thm_ADJOINT_LINEAR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> @linear N' M (@adjoint M N' f). +Axiom thm_ADJOINT_CLAUSES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (forall x : cart R M, forall y : cart R N', (@dot M x (@adjoint M N' f y)) = (@dot N' (f x) y)) /\ (forall x : cart R M, forall y : cart R N', (@dot M (@adjoint M N' f y) x) = (@dot N' y (f x))). +Axiom thm_ADJOINT_ADJOINT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (@adjoint N' M (@adjoint M N' f)) = f. +Axiom thm_ADJOINT_UNIQUE : forall {_598607 _598608 : Type'}, forall f : (cart R _598608) -> cart R _598607, forall f' : (cart R _598607) -> cart R _598608, ((@linear _598608 _598607 f) /\ (forall x : cart R _598607, forall y : cart R _598608, (@dot _598608 (f' x) y) = (@dot _598607 x (f y)))) -> f' = (@adjoint _598608 _598607 f). +Axiom thm_ADJOINT_COMPOSE : forall {_598648 N' : Type'}, forall f : (cart R N') -> cart R _598648, forall g : (cart R N') -> cart R N', ((@linear N' _598648 f) /\ (@linear N' N' g)) -> (@adjoint N' _598648 (@o (cart R N') (cart R N') (cart R _598648) f g)) = (@o (cart R _598648) (cart R N') (cart R N') (@adjoint N' N' g) (@adjoint N' _598648 f)). +Axiom thm_SELF_ADJOINT_COMPOSE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@linear N' N' f) /\ ((@linear N' N' g) /\ (((@adjoint N' N' f) = f) /\ ((@adjoint N' N' g) = g)))) -> ((@adjoint N' N' (@o (cart R N') (cart R N') (cart R N') f g)) = (@o (cart R N') (cart R N') (cart R N') f g)) = ((@o (cart R N') (cart R N') (cart R N') f g) = (@o (cart R N') (cart R N') (cart R N') g f)). +Axiom thm_SELF_ADJOINT_ORTHOGONAL_EIGENVECTORS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall v : cart R N', forall w : cart R N', forall a : R, forall b : R, ((@linear N' N' f) /\ (((@adjoint N' N' f) = f) /\ (((f v) = (@percent N' a v)) /\ (((f w) = (@percent N' b w)) /\ (~ (a = b)))))) -> @orthogonal N' v w. +Axiom thm_ORTHOGONAL_PROJECTION_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (forall x : cart R N', forall y : cart R N', @orthogonal N' (@vector_sub N' (f x) x) (@vector_sub N' (f x) (f y))) = (forall x : cart R N', forall y : cart R N', @orthogonal N' (@vector_sub N' (f x) x) (f y)). +Axiom thm_ORTHOGONAL_PROJECTION_EQ_SELF_ADJOINT_IDEMPOTENT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (forall x : cart R N', forall y : cart R N', @orthogonal N' (@vector_sub N' (f x) x) (@vector_sub N' (f x) (f y))) = (((@adjoint N' N' f) = f) /\ ((@o (cart R N') (cart R N') (cart R N') f f) = f)). +Axiom thm_LIPSCHITZ_ON_POS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) = (exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y))))). +Axiom thm_LIPSCHITZ_POS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (exists B : R, forall x : cart R M, forall y : cart R M, Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) = (exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R M, forall y : cart R M, Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y))))). +Axiom thm_LIPSCHITZ_ON_COMPOSE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) /\ ((exists B : R, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x t) /\ (@IN (cart R N') y t)) -> Rle (@vector_norm P (@vector_sub P (g x) (g y))) (Rmult B (@vector_norm N' (@vector_sub N' x y)))) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t))) -> exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm P (@vector_sub P (g (f x)) (g (f y)))) (Rmult B (@vector_norm M (@vector_sub M x y))). +Axiom thm_LINEAR_IMP_LIPSCHITZ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> exists B : R, forall x : cart R M, forall y : cart R M, Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y))). +Axiom thm_LIPSCHITZ_ON_COMPONENTWISE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (Rabs (Rminus (@dollar R N' (f x) i) (@dollar R N' (f y) i))) (Rmult B (@vector_norm M (@vector_sub M x y)))). +Axiom thm_matrix_cmul : forall {M N' : Type'}, forall c : R, forall A : cart (cart R N') M, (@__ M N' c A) = (@lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Rmult c (@dollar R N' (@dollar (cart R N') M A i) j)))). +Axiom thm_matrix_neg : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_neg M N' A) = (@lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Ropp (@dollar R N' (@dollar (cart R N') M A i) j)))). +Axiom thm_matrix_add : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (@matrix_add M N' A B) = (@lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Rplus (@dollar R N' (@dollar (cart R N') M A i) j) (@dollar R N' (@dollar (cart R N') M B i) j)))). +Axiom thm_matrix_sub : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (@matrix_sub M N' A B) = (@lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Rminus (@dollar R N' (@dollar (cart R N') M A i) j) (@dollar R N' (@dollar (cart R N') M B i) j)))). +Axiom thm_matrix_mul : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R P) N', (@matrix_mul M N' P A B) = (@lambda (cart R P) M (fun i : N => @lambda R P (fun j : N => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun k : N => Rmult (@dollar R N' (@dollar (cart R N') M A i) k) (@dollar R P (@dollar (cart R P) N' B k) j))))). +Axiom thm_matrix_vector_mul : forall {M N' : Type'}, forall A : cart (cart R N') M, forall x : cart R N', (@matrix_vector_mul M N' A x) = (@lambda R M (fun i : N => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun j : N => Rmult (@dollar R N' (@dollar (cart R N') M A i) j) (@dollar R N' x j)))). +Axiom thm_vector_matrix_mul : forall {M N' : Type'}, forall A : cart (cart R N') M, forall x : cart R M, (@vector_matrix_mul M N' x A) = (@lambda R N' (fun j : N => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M))) (fun i : N => Rmult (@dollar R N' (@dollar (cart R N') M A i) j) (@dollar R M x i)))). +Axiom thm_mat : forall {M N' : Type'}, forall k : N, (@mat M N' k) = (@lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => @COND R (i = j) (R_of_N k) (R_of_N (NUMERAL 0%N))))). +Axiom thm_transp : forall {M N' : Type'}, forall A : cart (cart R N') M, (@transp M N' A) = (@lambda (cart R M) N' (fun i : N => @lambda R M (fun j : N => @dollar R N' (@dollar (cart R N') M A j) i))). +Axiom thm_row : forall {M N' : Type'}, forall A : cart (cart R N') M, forall i : N, (@row M N' i A) = (@lambda R N' (fun j : N => @dollar R N' (@dollar (cart R N') M A i) j)). +Axiom thm_column : forall {M N' : Type'}, forall A : cart (cart R N') M, forall j : N, (@column M N' j A) = (@lambda R M (fun i : N => @dollar R N' (@dollar (cart R N') M A i) j)). +Axiom thm_rows : forall {M N' : Type'}, forall A : cart (cart R N') M, (@rows M N' A) = (@GSPEC (cart R N') (fun GEN_PVAR_2385 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_2385 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) (@row M N' i A))). +Axiom thm_columns : forall {M N' : Type'}, forall A : cart (cart R N') M, (@columns M N' A) = (@GSPEC (cart R M) (fun GEN_PVAR_2386 : cart R M => exists i : N, @SETSPEC (cart R M) GEN_PVAR_2386 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@column M N' i A))). +Axiom thm_MATRIX_CMUL_COMPONENT : forall {M N' : Type'} (j : N), forall c : R, forall A : cart (cart R N') M, forall i : N, (@dollar R N' (@dollar (cart R N') M (@__ M N' c A) i) j) = (Rmult c (@dollar R N' (@dollar (cart R N') M A i) j)). +Axiom thm_MATRIX_ADD_COMPONENT : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, forall i : N, forall j : N, (@dollar R N' (@dollar (cart R N') M (@matrix_add M N' A B) i) j) = (Rplus (@dollar R N' (@dollar (cart R N') M A i) j) (@dollar R N' (@dollar (cart R N') M B i) j)). +Axiom thm_MATRIX_SUB_COMPONENT : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, forall i : N, forall j : N, (@dollar R N' (@dollar (cart R N') M (@matrix_sub M N' A B) i) j) = (Rminus (@dollar R N' (@dollar (cart R N') M A i) j) (@dollar R N' (@dollar (cart R N') M B i) j)). +Axiom thm_MATRIX_NEG_COMPONENT : forall {M N' : Type'}, forall A : cart (cart R N') M, forall i : N, forall j : N, (@dollar R N' (@dollar (cart R N') M (@matrix_neg M N' A) i) j) = (Ropp (@dollar R N' (@dollar (cart R N') M A i) j)). +Axiom thm_TRANSP_COMPONENT : forall {M N' : Type'}, forall A : cart (cart R N') M, forall i : N, forall j : N, (@dollar R M (@dollar (cart R M) N' (@transp M N' A) i) j) = (@dollar R N' (@dollar (cart R N') M A j) i). +Axiom thm_MAT_COMPONENT : forall {M N' : Type'}, forall n : N, forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> (@dollar R N' (@dollar (cart R N') M (@mat M N' n) i) j) = (@COND R (i = j) (R_of_N n) (R_of_N (NUMERAL 0%N))). +Axiom thm_MAT_0_COMPONENT : forall {M N' : Type'}, forall i : N, forall j : N, (@dollar R N' (@dollar (cart R N') M (@mat M N' (NUMERAL 0%N)) i) j) = (R_of_N (NUMERAL 0%N)). +Axiom thm_MATRIX_ADD_ROW : forall {M N' : Type'}, forall X : cart (cart R M) N', forall Y : cart (cart R M) N', forall i : N, (@dollar (cart R M) N' (@matrix_add N' M X Y) i) = (@vector_add M (@dollar (cart R M) N' X i) (@dollar (cart R M) N' Y i)). +Axiom thm_MATRIX_SUB_ROW : forall {M N' : Type'}, forall X : cart (cart R M) N', forall Y : cart (cart R M) N', forall i : N, (@dollar (cart R M) N' (@matrix_sub N' M X Y) i) = (@vector_sub M (@dollar (cart R M) N' X i) (@dollar (cart R M) N' Y i)). +Axiom thm_MATRIX_NEG_ROW : forall {M N' : Type'}, forall X : cart (cart R M) N', forall i : N, (@dollar (cart R M) N' (@matrix_neg N' M X) i) = (@vector_neg M (@dollar (cart R M) N' X i)). +Axiom thm_MATRIX_CMUL_ROW : forall {M N' : Type'}, forall c : R, forall X : cart (cart R M) N', forall i : N, (@dollar (cart R M) N' (@__ N' M c X) i) = (@percent M c (@dollar (cart R M) N' X i)). +Axiom thm_MAT_0_ROW : forall {M N' : Type'} (i : N), (@dollar (cart R M) N' (@mat N' M (NUMERAL 0%N)) i) = (@vec M (NUMERAL 0%N)). +Axiom thm_symmetric_matrix : forall {N' : Type'}, forall A : cart (cart R N') N', (@symmetric_matrix N' A) = ((@transp N' N' A) = A). +Axiom thm_normal_matrix : forall {N' : Type'}, forall A : cart (cart R N') N', (@normal_matrix N' A) = ((@matrix_mul N' N' N' (@transp N' N' A) A) = (@matrix_mul N' N' N' A (@transp N' N' A))). +Axiom thm_SYMMETRIC_IMP_NORMAL_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', (@symmetric_matrix N' A) -> @normal_matrix N' A. +Axiom thm_MAT_CMUL : forall {_601116 _601117 : Type'}, forall a : N, (@mat _601117 _601116 a) = (@__ _601117 _601116 (R_of_N a) (@mat _601117 _601116 (NUMERAL (BIT1 0%N)))). +Axiom thm_ROW_0 : forall {N' : Type'}, forall i : N, (@row N' N' i (@mat N' N' (NUMERAL 0%N))) = (@vec N' (NUMERAL 0%N)). +Axiom thm_COLUMN_0 : forall {N' : Type'}, forall i : N, (@column N' N' i (@mat N' N' (NUMERAL 0%N))) = (@vec N' (NUMERAL 0%N)). +Axiom thm_MATRIX_CMUL_ASSOC : forall {M N' : Type'}, forall a : R, forall b : R, forall X : cart (cart R M) N', (@__ N' M a (@__ N' M b X)) = (@__ N' M (Rmult a b) X). +Axiom thm_MATRIX_CMUL_LID : forall {M N' : Type'}, forall X : cart (cart R M) N', (@__ N' M (R_of_N (NUMERAL (BIT1 0%N))) X) = X. +Axiom thm_MATRIX_ADD_SYM : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (@matrix_add M N' A B) = (@matrix_add M N' B A). +Axiom thm_MATRIX_ADD_ASSOC : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, forall C : cart (cart R N') M, (@matrix_add M N' A (@matrix_add M N' B C)) = (@matrix_add M N' (@matrix_add M N' A B) C). +Axiom thm_MATRIX_ADD_LID : forall {_601281 _601282 : Type'}, forall A : cart (cart R _601281) _601282, (@matrix_add _601282 _601281 (@mat _601282 _601281 (NUMERAL 0%N)) A) = A. +Axiom thm_MATRIX_ADD_RID : forall {_601299 _601300 : Type'}, forall A : cart (cart R _601299) _601300, (@matrix_add _601300 _601299 A (@mat _601300 _601299 (NUMERAL 0%N))) = A. +Axiom thm_MATRIX_ADD_LNEG : forall {_601321 _601322 : Type'}, forall A : cart (cart R _601321) _601322, (@matrix_add _601322 _601321 (@matrix_neg _601322 _601321 A) A) = (@mat _601322 _601321 (NUMERAL 0%N)). +Axiom thm_MATRIX_ADD_RNEG : forall {_601345 _601346 : Type'}, forall A : cart (cart R _601345) _601346, (@matrix_add _601346 _601345 A (@matrix_neg _601346 _601345 A)) = (@mat _601346 _601345 (NUMERAL 0%N)). +Axiom thm_MATRIX_SUB : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (@matrix_sub M N' A B) = (@matrix_add M N' A (@matrix_neg M N' B)). +Axiom thm_MATRIX_SUB_REFL : forall {_601397 _601398 : Type'}, forall A : cart (cart R _601397) _601398, (@matrix_sub _601398 _601397 A A) = (@mat _601398 _601397 (NUMERAL 0%N)). +Axiom thm_MATRIX_SUB_EQ : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, ((@matrix_sub M N' A B) = (@mat M N' (NUMERAL 0%N))) = (A = B). +Axiom thm_MATRIX_SUB_ADD : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (@matrix_add M N' (@matrix_sub M N' A B) B) = A. +Axiom thm_MATRIX_SUB_ADD2 : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (@matrix_add M N' A (@matrix_sub M N' B A)) = B. +Axiom thm_MATRIX_ADD_LDISTRIB : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R P) N', forall C : cart (cart R P) N', (@matrix_mul M N' P A (@matrix_add N' P B C)) = (@matrix_add M P (@matrix_mul M N' P A B) (@matrix_mul M N' P A C)). +Axiom thm_MATRIX_MUL_LID : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_mul M M N' (@mat M M (NUMERAL (BIT1 0%N))) A) = A. +Axiom thm_MATRIX_MUL_RID : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_mul M N' N' A (@mat N' N' (NUMERAL (BIT1 0%N)))) = A. +Axiom thm_MATRIX_MUL_ASSOC : forall {M N' P Q : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R P) N', forall C : cart (cart R Q) P, (@matrix_mul M N' Q A (@matrix_mul N' P Q B C)) = (@matrix_mul M P Q (@matrix_mul M N' P A B) C). +Axiom thm_MATRIX_MUL_LZERO : forall {M N' P : Type'}, forall A : cart (cart R P) N', (@matrix_mul M N' P (@mat M N' (NUMERAL 0%N)) A) = (@mat M P (NUMERAL 0%N)). +Axiom thm_MATRIX_MUL_RZERO : forall {M N' P : Type'}, forall A : cart (cart R N') M, (@matrix_mul M N' P A (@mat N' P (NUMERAL 0%N))) = (@mat M P (NUMERAL 0%N)). +Axiom thm_MATRIX_ADD_RDISTRIB : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, forall C : cart (cart R P) N', (@matrix_mul M N' P (@matrix_add M N' A B) C) = (@matrix_add M P (@matrix_mul M N' P A C) (@matrix_mul M N' P B C)). +Axiom thm_MATRIX_SUB_LDISTRIB : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R P) N', forall C : cart (cart R P) N', (@matrix_mul M N' P A (@matrix_sub N' P B C)) = (@matrix_sub M P (@matrix_mul M N' P A B) (@matrix_mul M N' P A C)). +Axiom thm_MATRIX_SUB_RDISTRIB : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, forall C : cart (cart R P) N', (@matrix_mul M N' P (@matrix_sub M N' A B) C) = (@matrix_sub M P (@matrix_mul M N' P A C) (@matrix_mul M N' P B C)). +Axiom thm_MATRIX_MUL_LMUL : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R P) N', forall c : R, (@matrix_mul M N' P (@__ M N' c A) B) = (@__ M P c (@matrix_mul M N' P A B)). +Axiom thm_MATRIX_MUL_RMUL : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R P) N', forall c : R, (@matrix_mul M N' P A (@__ N' P c B)) = (@__ M P c (@matrix_mul M N' P A B)). +Axiom thm_MATRIX_CMUL_ADD_LDISTRIB : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, forall c : R, (@__ M N' c (@matrix_add M N' A B)) = (@matrix_add M N' (@__ M N' c A) (@__ M N' c B)). +Axiom thm_MATRIX_CMUL_SUB_LDISTRIB : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, forall c : R, (@__ M N' c (@matrix_sub M N' A B)) = (@matrix_sub M N' (@__ M N' c A) (@__ M N' c B)). +Axiom thm_MATRIX_CMUL_ADD_RDISTRIB : forall {M N' : Type'}, forall A : cart (cart R N') M, forall b : R, forall c : R, (@__ M N' (Rplus b c) A) = (@matrix_add M N' (@__ M N' b A) (@__ M N' c A)). +Axiom thm_MATRIX_CMUL_SUB_RDISTRIB : forall {M N' : Type'}, forall A : cart (cart R N') M, forall b : R, forall c : R, (@__ M N' (Rminus b c) A) = (@matrix_sub M N' (@__ M N' b A) (@__ M N' c A)). +Axiom thm_MATRIX_CMUL_RZERO : forall {_602273 _602274 : Type'}, forall c : R, (@__ _602274 _602273 c (@mat _602274 _602273 (NUMERAL 0%N))) = (@mat _602274 _602273 (NUMERAL 0%N)). +Axiom thm_MATRIX_CMUL_LZERO : forall {_602290 _602291 : Type'}, forall A : cart (cart R _602290) _602291, (@__ _602291 _602290 (R_of_N (NUMERAL 0%N)) A) = (@mat _602291 _602290 (NUMERAL 0%N)). +Axiom thm_MATRIX_NEG_MINUS1 : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_neg M N' A) = (@__ M N' (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) A). +Axiom thm_MATRIX_ADD_AC : forall {M N' : Type'} (B : cart (cart R N') M) (A : cart (cart R N') M) (C : cart (cart R N') M), ((@matrix_add M N' A B) = (@matrix_add M N' B A)) /\ (((@matrix_add M N' (@matrix_add M N' A B) C) = (@matrix_add M N' A (@matrix_add M N' B C))) /\ ((@matrix_add M N' A (@matrix_add M N' B C)) = (@matrix_add M N' B (@matrix_add M N' A C)))). +Axiom thm_MATRIX_NEG_ADD : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (@matrix_neg M N' (@matrix_add M N' A B)) = (@matrix_add M N' (@matrix_neg M N' A) (@matrix_neg M N' B)). +Axiom thm_MATRIX_NEG_SUB : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (@matrix_neg M N' (@matrix_sub M N' A B)) = (@matrix_sub M N' B A). +Axiom thm_MATRIX_NEG_0 : forall {_602486 _602487 : Type'}, (@matrix_neg _602487 _602486 (@mat _602487 _602486 (NUMERAL 0%N))) = (@mat _602487 _602486 (NUMERAL 0%N)). +Axiom thm_MATRIX_SUB_RZERO : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_sub M N' A (@mat M N' (NUMERAL 0%N))) = A. +Axiom thm_MATRIX_SUB_LZERO : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_sub M N' (@mat M N' (NUMERAL 0%N)) A) = (@matrix_neg M N' A). +Axiom thm_MATRIX_NEG_EQ_0 : forall {M N' : Type'}, forall A : cart (cart R N') M, ((@matrix_neg M N' A) = (@mat M N' (NUMERAL 0%N))) = (A = (@mat M N' (NUMERAL 0%N))). +Axiom thm_MATRIX_VECTOR_MUL_ASSOC : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R P) N', forall x : cart R P, (@matrix_vector_mul M N' A (@matrix_vector_mul N' P B x)) = (@matrix_vector_mul M P (@matrix_mul M N' P A B) x). +Axiom thm_MATRIX_VECTOR_MUL_LID : forall {N' : Type'}, forall x : cart R N', (@matrix_vector_mul N' N' (@mat N' N' (NUMERAL (BIT1 0%N))) x) = x. +Axiom thm_MATRIX_VECTOR_MUL_LZERO : forall {_602654 N' : Type'}, forall x : cart R N', (@matrix_vector_mul _602654 N' (@mat _602654 N' (NUMERAL 0%N)) x) = (@vec _602654 (NUMERAL 0%N)). +Axiom thm_MATRIX_VECTOR_MUL_RZERO : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_vector_mul N' M A (@vec M (NUMERAL 0%N))) = (@vec N' (NUMERAL 0%N)). +Axiom thm_MATRIX_VECTOR_MUL_ADD_LDISTRIB : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R M, forall y : cart R M, (@matrix_vector_mul N' M A (@vector_add M x y)) = (@vector_add N' (@matrix_vector_mul N' M A x) (@matrix_vector_mul N' M A y)). +Axiom thm_MATRIX_VECTOR_MUL_SUB_LDISTRIB : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R M, forall y : cart R M, (@matrix_vector_mul N' M A (@vector_sub M x y)) = (@vector_sub N' (@matrix_vector_mul N' M A x) (@matrix_vector_mul N' M A y)). +Axiom thm_MATRIX_VECTOR_MUL_ADD_RDISTRIB : forall {M N' : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R M) N', forall x : cart R M, (@matrix_vector_mul N' M (@matrix_add N' M A B) x) = (@vector_add N' (@matrix_vector_mul N' M A x) (@matrix_vector_mul N' M B x)). +Axiom thm_MATRIX_VECTOR_MUL_SUB_RDISTRIB : forall {M N' : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R M) N', forall x : cart R M, (@matrix_vector_mul N' M (@matrix_sub N' M A B) x) = (@vector_sub N' (@matrix_vector_mul N' M A x) (@matrix_vector_mul N' M B x)). +Axiom thm_MATRIX_VECTOR_MUL_RMUL : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R M, forall c : R, (@matrix_vector_mul N' M A (@percent M c x)) = (@percent N' c (@matrix_vector_mul N' M A x)). +Axiom thm_MATRIX_MUL_LNEG : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R P) N', (@matrix_mul M N' P (@matrix_neg M N' A) B) = (@matrix_neg M P (@matrix_mul M N' P A B)). +Axiom thm_MATRIX_MUL_RNEG : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R P) N', (@matrix_mul M N' P A (@matrix_neg N' P B)) = (@matrix_neg M P (@matrix_mul M N' P A B)). +Axiom thm_MATRIX_NEG_NEG : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_neg M N' (@matrix_neg M N' A)) = A. +Axiom thm_MATRIX_TRANSP_MUL : forall {_603124 _603125 _603126 : Type'}, forall A : cart (cart R _603124) _603125, forall B : cart (cart R _603126) _603124, (@transp _603125 _603126 (@matrix_mul _603125 _603124 _603126 A B)) = (@matrix_mul _603126 _603124 _603125 (@transp _603124 _603126 B) (@transp _603125 _603124 A)). +Axiom thm_TRANSP_EQ_0 : forall {M N' : Type'}, forall A : cart (cart R N') M, ((@transp M N' A) = (@mat N' M (NUMERAL 0%N))) = (A = (@mat M N' (NUMERAL 0%N))). +Axiom thm_SYMMETRIC_MATRIX_MUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@symmetric_matrix N' A) /\ (@symmetric_matrix N' B)) -> (@symmetric_matrix N' (@matrix_mul N' N' N' A B)) = ((@matrix_mul N' N' N' A B) = (@matrix_mul N' N' N' B A)). +Axiom thm_MATRIX_EQ : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (A = B) = (forall x : cart R N', (@matrix_vector_mul M N' A x) = (@matrix_vector_mul M N' B x)). +Axiom thm_MATRIX_EQ_0 : forall {N' : Type'}, forall A : cart (cart R N') N', (A = (@mat N' N' (NUMERAL 0%N))) = (forall x : cart R N', (@matrix_vector_mul N' N' A x) = (@vec N' (NUMERAL 0%N))). +Axiom thm_MATRIX_VECTOR_MUL_COMPONENT : forall {M N' : Type'}, forall A : cart (cart R N') M, forall x : cart R N', forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex M (@UNIV M)))) -> (@dollar R M (@matrix_vector_mul M N' A x) k) = (@dot N' (@dollar (cart R N') M A k) x). +Axiom thm_DOT_LMUL_MATRIX : forall {M N' : Type'}, forall A : cart (cart R N') M, forall x : cart R M, forall y : cart R N', (@dot N' (@vector_matrix_mul M N' x A) y) = (@dot M x (@matrix_vector_mul M N' A y)). +Axiom thm_TRANSP_MATRIX_CMUL : forall {M N' : Type'}, forall A : cart (cart R M) N', forall c : R, (@transp N' M (@__ N' M c A)) = (@__ M N' c (@transp N' M A)). +Axiom thm_SYMMETRIC_MATRIX_CMUL : forall {N' : Type'}, forall c : R, forall A : cart (cart R N') N', (@symmetric_matrix N' A) -> @symmetric_matrix N' (@__ N' N' c A). +Axiom thm_TRANSP_MATRIX_ADD : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (@transp M N' (@matrix_add M N' A B)) = (@matrix_add N' M (@transp M N' A) (@transp M N' B)). +Axiom thm_SYMMETRIC_MATRIX_ADD : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@symmetric_matrix N' A) /\ (@symmetric_matrix N' B)) -> @symmetric_matrix N' (@matrix_add N' N' A B). +Axiom thm_TRANSP_MATRIX_SUB : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (@transp M N' (@matrix_sub M N' A B)) = (@matrix_sub N' M (@transp M N' A) (@transp M N' B)). +Axiom thm_SYMMETRIC_MATRIX_SUB : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@symmetric_matrix N' A) /\ (@symmetric_matrix N' B)) -> @symmetric_matrix N' (@matrix_sub N' N' A B). +Axiom thm_TRANSP_MATRIX_NEG : forall {M N' : Type'}, forall A : cart (cart R N') M, (@transp M N' (@matrix_neg M N' A)) = (@matrix_neg N' M (@transp M N' A)). +Axiom thm_SYMMETRIC_MATRIX_NEG : forall {N' : Type'}, forall A : cart (cart R N') N', (@symmetric_matrix N' (@matrix_neg N' N' A)) = (@symmetric_matrix N' A). +Axiom thm_TRANSP_MAT : forall {_603636 _603637 : Type'}, forall n : N, (@transp _603636 _603637 (@mat _603636 _603637 n)) = (@mat _603637 _603636 n). +Axiom thm_TRANSP_TRANSP : forall {M N' : Type'}, forall A : cart (cart R N') M, (@transp N' M (@transp M N' A)) = A. +Axiom thm_SYMMETRIC_MATRIX_MAT : forall {_603661 : Type'}, forall n : N, @symmetric_matrix _603661 (@mat _603661 _603661 n). +Axiom thm_SYMMETRIC_MATRIX_COVARIANCE : forall {M N' : Type'}, forall A : cart (cart R N') M, @symmetric_matrix N' (@matrix_mul N' M N' (@transp M N' A) A). +Axiom thm_SYMMETRIC_MATRIX_SIMILAR : forall {_603723 N' : Type'}, forall A : cart (cart R _603723) N', forall B : cart (cart R N') N', (@symmetric_matrix N' B) -> @symmetric_matrix _603723 (@matrix_mul _603723 N' _603723 (@transp N' _603723 A) (@matrix_mul N' N' _603723 B A)). +Axiom thm_TRANSP_EQ : forall {M N' : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R M) N', ((@transp N' M A) = (@transp N' M B)) = (A = B). +Axiom thm_ROW_TRANSP : forall {M N' : Type'}, forall A : cart (cart R N') M, forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@row N' M i (@transp M N' A)) = (@column M N' i A). +Axiom thm_COLUMN_TRANSP : forall {M N' : Type'}, forall A : cart (cart R N') M, forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> (@column N' M i (@transp M N' A)) = (@row M N' i A). +Axiom thm_ROWS_TRANSP : forall {M N' : Type'}, forall A : cart (cart R N') M, (@rows N' M (@transp M N' A)) = (@columns M N' A). +Axiom thm_COLUMNS_TRANSP : forall {M N' : Type'}, forall A : cart (cart R N') M, (@columns N' M (@transp M N' A)) = (@rows M N' A). +Axiom thm_VECTOR_MATRIX_MUL_TRANSP : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R N', (@vector_matrix_mul N' M x A) = (@matrix_vector_mul M N' (@transp N' M A) x). +Axiom thm_MATRIX_VECTOR_MUL_TRANSP : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R M, (@matrix_vector_mul N' M A x) = (@vector_matrix_mul M N' x (@transp N' M A)). +Axiom thm_ROWS_NONEMPTY : forall {M N' : Type'}, forall A : cart (cart R N') M, ~ ((@rows M N' A) = (@EMPTY (cart R N'))). +Axiom thm_COLUMNS_NONEMPTY : forall {M N' : Type'}, forall A : cart (cart R N') M, ~ ((@columns M N' A) = (@EMPTY (cart R M))). +Axiom thm_FINITE_ROWS : forall {M N' : Type'}, forall A : cart (cart R N') M, @FINITE (cart R N') (@rows M N' A). +Axiom thm_FINITE_COLUMNS : forall {M N' : Type'}, forall A : cart (cart R N') M, @FINITE (cart R M) (@columns M N' A). +Axiom thm_CARD_ROWS_LE : forall {M N' : Type'}, forall A : cart (cart R M) N', N.le (@CARD (cart R M) (@rows N' M A)) (@dimindex N' (@UNIV N')). +Axiom thm_CARD_COLUMNS_LE : forall {M N' : Type'}, forall A : cart (cart R M) N', N.le (@CARD (cart R N') (@columns N' M A)) (@dimindex M (@UNIV M)). +Axiom thm_MATRIX_EQUAL_ROWS : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (A = B) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> (@row M N' i A) = (@row M N' i B)). +Axiom thm_MATRIX_EQUAL_COLUMNS : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (A = B) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@column M N' i A) = (@column M N' i B)). +Axiom thm_MATRIX_CMUL_EQ_0 : forall {M N' : Type'}, forall A : cart (cart R M) N', forall c : R, ((@__ N' M c A) = (@mat N' M (NUMERAL 0%N))) = ((c = (R_of_N (NUMERAL 0%N))) \/ (A = (@mat N' M (NUMERAL 0%N)))). +Axiom thm_MAT_EQ : forall {_604170 _604171 : Type'}, forall m : N, forall n : N, ((@mat _604171 _604170 m) = (@mat _604171 _604170 n)) = (m = n). +Axiom thm_MATRIX_VECTOR_LMUL : forall {M N' : Type'}, forall A : cart (cart R M) N', forall c : R, forall x : cart R M, (@matrix_vector_mul N' M (@__ N' M c A) x) = (@percent N' c (@matrix_vector_mul N' M A x)). +Axiom thm_MATRIX_VECTOR_MUL_LNEG : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R M, (@matrix_vector_mul N' M (@matrix_neg N' M A) x) = (@vector_neg N' (@matrix_vector_mul N' M A x)). +Axiom thm_MATRIX_VECTOR_MUL_RNEG : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R M, (@matrix_vector_mul N' M A (@vector_neg M x)) = (@vector_neg N' (@matrix_vector_mul N' M A x)). +Axiom thm_COLUMN_MATRIX_MUL : forall {M N' P : Type'} (i : N), forall A : cart (cart R N') M, forall B : cart (cart R P) N', ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex P (@UNIV P)))) -> (@column M P i (@matrix_mul M N' P A B)) = (@matrix_vector_mul M N' A (@column N' P i B)). +Axiom thm_ROW_MATRIX_MUL : forall {M N' P : Type'} (i : N), forall A : cart (cart R N') M, forall B : cart (cart R P) N', ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> (@row M P i (@matrix_mul M N' P A B)) = (@matrix_vector_mul P N' (@transp N' P B) (@row M N' i A)). +Axiom thm_MATRIX_MUL_DOT : forall {M N' : Type'}, forall A : cart (cart R N') M, forall x : cart R N', (@matrix_vector_mul M N' A x) = (@lambda R M (fun i : N => @dot N' (@dollar (cart R N') M A i) x)). +Axiom thm_MATRIX_MUL_VSUM : forall {M N' : Type'}, forall A : cart (cart R N') M, forall x : cart R N', (@matrix_vector_mul M N' A x) = (@vsum N M (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @percent M (@dollar R N' x i) (@column M N' i A))). +Axiom thm_VECTOR_COMPONENTWISE : forall {N' : Type'}, forall x : cart R N', x = (@lambda R N' (fun j : N => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => Rmult (@dollar R N' x i) (@dollar R N' (@basis N' i) j)))). +Axiom thm_LINEAR_COMPONENTWISE_EXPANSION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> forall x : cart R M, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))) -> (@dollar R N' (f x) j) = (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M))) (fun i : N => Rmult (@dollar R M x i) (@dollar R N' (f (@basis M i)) j))). +Axiom thm_invertible : forall {M N' : Type'}, forall A : cart (cart R N') M, (@invertible M N' A) = (exists A' : cart (cart R M) N', ((@matrix_mul M N' M A A') = (@mat M M (NUMERAL (BIT1 0%N)))) /\ ((@matrix_mul N' M N' A' A) = (@mat N' N' (NUMERAL (BIT1 0%N))))). +Axiom thm_INVERTIBLE_I : forall {N' : Type'}, @invertible N' N' (@mat N' N' (NUMERAL (BIT1 0%N))). +Axiom thm_INVERTIBLE_NEG : forall {M N' : Type'}, forall A : cart (cart R N') M, (@invertible M N' (@matrix_neg M N' A)) = (@invertible M N' A). +Axiom thm_INVERTIBLE_CMUL : forall {M N' : Type'}, forall A : cart (cart R N') M, forall c : R, (@invertible M N' (@__ M N' c A)) = ((~ (c = (R_of_N (NUMERAL 0%N)))) /\ (@invertible M N' A)). +Axiom thm_INVERTIBLE_MAT : forall {N' : Type'}, forall a : N, (@invertible N' N' (@mat N' N' a)) = (~ (a = (NUMERAL 0%N))). +Axiom thm_MATRIX_ENTIRE : forall {M N' P : Type'}, (forall A : cart (cart R N') M, forall B : cart (cart R P) N', (@invertible M N' A) -> ((@matrix_mul M N' P A B) = (@mat M P (NUMERAL 0%N))) = (B = (@mat N' P (NUMERAL 0%N)))) /\ (forall A : cart (cart R N') M, forall B : cart (cart R P) N', (@invertible N' P B) -> ((@matrix_mul M N' P A B) = (@mat M P (NUMERAL 0%N))) = (A = (@mat M N' (NUMERAL 0%N)))). +Axiom thm_matrix : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@matrix M N' f) = (@lambda (cart R M) N' (fun i : N => @lambda R M (fun j : N => @dollar R N' (f (@basis M j)) i))). +Axiom thm_MATRIX_COMPONENT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex M (@UNIV M)))) -> (@dollar R M (@dollar (cart R M) N' (@matrix M N' f) i) j) = (@dollar R N' (f (@basis M j)) i). +Axiom thm_MATRIX_VECTOR_MUL_LINEAR : forall {M N' : Type'}, forall A : cart (cart R N') M, @linear N' M (fun x : cart R N' => @matrix_vector_mul M N' A x). +Axiom thm_MATRIX_WORKS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> forall x : cart R M, (@matrix_vector_mul N' M (@matrix M N' f) x) = (f x). +Axiom thm_MATRIX_VECTOR_MUL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> f = (fun x : cart R M => @matrix_vector_mul N' M (@matrix M N' f) x). +Axiom thm_MATRIX_OF_MATRIX_VECTOR_MUL : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix N' M (fun x : cart R N' => @matrix_vector_mul M N' A x)) = A. +Axiom thm_MATRIX_COMPOSE : forall {_605163 _605164 _605165 : Type'}, forall f : (cart R _605164) -> cart R _605163, forall g : (cart R _605163) -> cart R _605165, ((@linear _605164 _605163 f) /\ (@linear _605163 _605165 g)) -> (@matrix _605164 _605165 (@o (cart R _605164) (cart R _605163) (cart R _605165) g f)) = (@matrix_mul _605165 _605163 _605164 (@matrix _605163 _605165 g) (@matrix _605164 _605163 f)). +Axiom thm_MATRIX_0 : forall {M N' : Type'}, (@matrix M N' (fun x : cart R M => @vec N' (NUMERAL 0%N))) = (@mat N' M (NUMERAL 0%N)). +Axiom thm_MATRIX_VECTOR_COLUMN : forall {M N' : Type'}, forall A : cart (cart R N') M, forall x : cart R N', (@matrix_vector_mul M N' A x) = (@vsum N M (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @percent M (@dollar R N' x i) (@dollar (cart R M) N' (@transp M N' A) i))). +Axiom thm_MATRIX_MUL_COMPONENT : forall {M N' P : Type'} (B : cart (cart R M) N') (A : cart (cart R N') P), forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex P (@UNIV P)))) -> (@dollar (cart R M) P (@matrix_mul P N' M A B) i) = (@matrix_vector_mul M N' (@transp N' M B) (@dollar (cart R N') P A i)). +Axiom thm_ADJOINT_MATRIX : forall {M N' : Type'}, forall A : cart (cart R N') M, (@adjoint N' M (fun x : cart R N' => @matrix_vector_mul M N' A x)) = (fun x : cart R M => @matrix_vector_mul N' M (@transp M N' A) x). +Axiom thm_MATRIX_ADJOINT : forall {_605346 _605347 : Type'}, forall f : (cart R _605346) -> cart R _605347, (@linear _605346 _605347 f) -> (@matrix _605347 _605346 (@adjoint _605346 _605347 f)) = (@transp _605347 _605346 (@matrix _605346 _605347 f)). +Axiom thm_MATRIX_ID : forall {_605359 : Type'}, (@matrix _605359 _605359 (fun x : cart R _605359 => x)) = (@mat _605359 _605359 (NUMERAL (BIT1 0%N))). +Axiom thm_MATRIX_I : forall {_605370 : Type'}, (@matrix _605370 _605370 (@I (cart R _605370))) = (@mat _605370 _605370 (NUMERAL (BIT1 0%N))). +Axiom thm_LINEAR_EQ_MATRIX : forall {_605390 _605391 : Type'}, forall f : (cart R _605390) -> cart R _605391, forall g : (cart R _605390) -> cart R _605391, ((@linear _605390 _605391 f) /\ ((@linear _605390 _605391 g) /\ ((@matrix _605390 _605391 f) = (@matrix _605390 _605391 g)))) -> f = g. +Axiom thm_MATRIX_CMUL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : R, (@linear M N' f) -> (@matrix M N' (fun x : cart R M => @percent N' c (f x))) = (@__ N' M c (@matrix M N' f)). +Axiom thm_MATRIX_NEG : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (@matrix M N' (fun x : cart R M => @vector_neg N' (f x))) = (@matrix_neg N' M (@matrix M N' f)). +Axiom thm_MATRIX_ADD : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@linear M N' f) /\ (@linear M N' g)) -> (@matrix M N' (fun x : cart R M => @vector_add N' (f x) (g x))) = (@matrix_add N' M (@matrix M N' f) (@matrix M N' g)). +Axiom thm_MATRIX_SELF_ADJOINT : forall {_605532 : Type'}, forall f : (cart R _605532) -> cart R _605532, (@linear _605532 _605532 f) -> ((@adjoint _605532 _605532 f) = f) = (@symmetric_matrix _605532 (@matrix _605532 _605532 f)). +Axiom thm_LINEAR_MATRIX_EXISTS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) = (exists A : cart (cart R M) N', f = (fun x : cart R M => @matrix_vector_mul N' M A x)). +Axiom thm_LINEAR_1_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@linear N' N' f) = (exists c : R, f = (fun x : cart R N' => @percent N' c x)). +Axiom thm_LINEAR_1 : forall f : (cart R unit) -> cart R unit, (@linear unit unit f) = (exists c : R, f = (fun x : cart R unit => @percent unit c x)). +Axiom thm_SYMMETRIC_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', (@symmetric_matrix N' A) = ((@adjoint N' N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)) = (fun x : cart R N' => @matrix_vector_mul N' N' A x)). +Axiom thm_DOT_MATRIX_TRANSP_LMUL : forall {_605715 N' : Type'}, forall A : cart (cart R N') _605715, forall x : cart R _605715, forall y : cart R N', (@dot N' (@matrix_vector_mul N' _605715 (@transp _605715 N' A) x) y) = (@dot _605715 x (@matrix_vector_mul _605715 N' A y)). +Axiom thm_DOT_MATRIX_TRANSP_RMUL : forall {_605757 N' : Type'}, forall A : cart (cart R _605757) N', forall x : cart R _605757, forall y : cart R N', (@dot _605757 x (@matrix_vector_mul _605757 N' (@transp N' _605757 A) y)) = (@dot N' (@matrix_vector_mul N' _605757 A x) y). +Axiom thm_SYMMETRIC_MATRIX_ORTHOGONAL_EIGENVECTORS : forall {N' : Type'}, forall A : cart (cart R N') N', forall v : cart R N', forall w : cart R N', forall a : R, forall b : R, ((@symmetric_matrix N' A) /\ (((@matrix_vector_mul N' N' A v) = (@percent N' a v)) /\ (((@matrix_vector_mul N' N' A w) = (@percent N' b w)) /\ (~ (a = b))))) -> @orthogonal N' v w. +Axiom thm_MATRIX_INJECTIVE_0 : forall {M N' : Type'}, forall m : cart (cart R M) N', (forall x : cart R M, forall y : cart R M, ((@matrix_vector_mul N' M m x) = (@matrix_vector_mul N' M m y)) -> x = y) = (forall x : cart R M, ((@matrix_vector_mul N' M m x) = (@vec N' (NUMERAL 0%N))) -> x = (@vec M (NUMERAL 0%N))). +Axiom thm_onorm : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@onorm M N' f) = (sup (@GSPEC R (fun GEN_PVAR_2387 : R => exists x : cart R M, @SETSPEC R GEN_PVAR_2387 ((@vector_norm M x) = (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_norm N' (f x))))). +Axiom thm_NORM_BOUND_GENERALIZE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall b : R, (@linear M N' f) -> (forall x : cart R M, ((@vector_norm M x) = (R_of_N (NUMERAL (BIT1 0%N)))) -> Rle (@vector_norm N' (f x)) b) = (forall x : cart R M, Rle (@vector_norm N' (f x)) (Rmult b (@vector_norm M x))). +Axiom thm_ONORM_DOT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@onorm M N' f) = (sup (@GSPEC R (fun GEN_PVAR_2388 : R => exists x : cart R M, exists y : cart R N', @SETSPEC R GEN_PVAR_2388 (((@vector_norm M x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vector_norm N' y) = (R_of_N (NUMERAL (BIT1 0%N))))) (@dot N' (f x) y)))). +Axiom thm_ONORM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (forall x : cart R M, Rle (@vector_norm N' (f x)) (Rmult (@onorm M N' f) (@vector_norm M x))) /\ (forall b : R, (forall x : cart R M, Rle (@vector_norm N' (f x)) (Rmult b (@vector_norm M x))) -> Rle (@onorm M N' f) b). +Axiom thm_ONORM_LE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall b : R, (@linear M N' f) -> (Rle (@onorm M N' f) b) = (forall x : cart R M, Rle (@vector_norm N' (f x)) (Rmult b (@vector_norm M x))). +Axiom thm_ONORM_POS_LE : forall {_606308 _606309 : Type'}, forall f : (cart R _606308) -> cart R _606309, (@linear _606308 _606309 f) -> Rle (R_of_N (NUMERAL 0%N)) (@onorm _606308 _606309 f). +Axiom thm_ONORM_EQ_0 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> ((@onorm M N' f) = (R_of_N (NUMERAL 0%N))) = (forall x : cart R M, (f x) = (@vec N' (NUMERAL 0%N))). +Axiom thm_ONORM_CONST : forall {M N' : Type'}, forall y : cart R N', (@onorm M N' (fun x : cart R M => y)) = (@vector_norm N' y). +Axiom thm_ONORM_POS_LT : forall {_606438 _606460 : Type'}, forall f : (cart R _606438) -> cart R _606460, (@linear _606438 _606460 f) -> (Rlt (R_of_N (NUMERAL 0%N)) (@onorm _606438 _606460 f)) = (~ (forall x : cart R _606438, (f x) = (@vec _606460 (NUMERAL 0%N)))). +Axiom thm_ONORM_COMPOSE : forall {_606476 _606478 _606479 : Type'}, forall f : (cart R _606479) -> cart R _606476, forall g : (cart R _606478) -> cart R _606479, ((@linear _606479 _606476 f) /\ (@linear _606478 _606479 g)) -> Rle (@onorm _606478 _606476 (@o (cart R _606478) (cart R _606479) (cart R _606476) f g)) (Rmult (@onorm _606479 _606476 f) (@onorm _606478 _606479 g)). +Axiom thm_ONORM_CMUL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : R, (@linear M N' f) -> (@onorm M N' (fun x : cart R M => @percent N' c (f x))) = (Rmult (Rabs c) (@onorm M N' f)). +Axiom thm_ONORM_NEG : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@onorm M N' (fun x : cart R M => @vector_neg N' (f x))) = (@onorm M N' f). +Axiom thm_ONORM_TRIANGLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@linear M N' f) /\ (@linear M N' g)) -> Rle (@onorm M N' (fun x : cart R M => @vector_add N' (f x) (g x))) (Rplus (@onorm M N' f) (@onorm M N' g)). +Axiom thm_ONORM_TRIANGLE_LE : forall {_606692 _606703 : Type'} (e : R), forall f : (cart R _606692) -> cart R _606703, forall g : (cart R _606692) -> cart R _606703, ((@linear _606692 _606703 f) /\ ((@linear _606692 _606703 g) /\ (Rle (Rplus (@onorm _606692 _606703 f) (@onorm _606692 _606703 g)) e))) -> Rle (@onorm _606692 _606703 (fun x : cart R _606692 => @vector_add _606703 (f x) (g x))) e. +Axiom thm_ONORM_TRIANGLE_LT : forall {_606744 _606755 : Type'} (e : R), forall f : (cart R _606744) -> cart R _606755, forall g : (cart R _606744) -> cart R _606755, ((@linear _606744 _606755 f) /\ ((@linear _606744 _606755 g) /\ (Rlt (Rplus (@onorm _606744 _606755 f) (@onorm _606744 _606755 g)) e))) -> Rlt (@onorm _606744 _606755 (fun x : cart R _606744 => @vector_add _606755 (f x) (g x))) e. +Axiom thm_ONORM_ID : forall {N' : Type'}, (@onorm N' N' (fun x : cart R N' => x)) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_ONORM_I : forall {N' : Type'}, (@onorm N' N' (@I (cart R N'))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_ONORM_INVERSE_FUNCTION_BOUND : forall {M N' : Type'}, forall f : (cart R N') -> cart R M, forall g : (cart R M) -> cart R N', ((@linear N' M f) /\ ((@linear M N' g) /\ ((@o (cart R M) (cart R N') (cart R M) f g) = (@I (cart R M))))) -> Rle (R_of_N (NUMERAL (BIT1 0%N))) (Rmult (@onorm N' M f) (@onorm M N' g)). +Axiom thm_ONORM_ADJOINT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (@onorm N' N' (@adjoint N' N' f)) = (@onorm N' N' f). +Axiom thm_ONORM_COMPOSE_ADJOINT_LEFT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (@onorm N' N' (@o (cart R N') (cart R N') (cart R N') (@adjoint N' N' f) f)) = (real_pow (@onorm N' N' f) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_ONORM_COMPOSE_ADJOINT_RIGHT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (@onorm N' N' (@o (cart R N') (cart R N') (cart R N') f (@adjoint N' N' f))) = (real_pow (@onorm N' N' f) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_ONORM_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' (@transp N' N' A) x)) = (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)). +Axiom thm_ONORM_COVARIANCE : forall {N' : Type'}, forall A : cart (cart R N') N', (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' (@matrix_mul N' N' N' (@transp N' N' A) A) x)) = (real_pow (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_ONORM_COVARIANCE_ALT : forall {N' : Type'}, forall A : cart (cart R N') N', (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' (@matrix_mul N' N' N' A (@transp N' N' A)) x)) = (real_pow (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_ONORM_LE_EQ_2_ABS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall b : R, (@linear M N' f) -> (Rle (@onorm M N' f) b) = (forall x : cart R N', forall y : cart R M, Rle (Rabs (@dot N' x (f y))) (Rmult b (Rmult (@vector_norm N' x) (@vector_norm M y)))). +Axiom thm_ONORM_LE_EQ_2 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall b : R, (@linear M N' f) -> (Rle (@onorm M N' f) b) = (forall x : cart R N', forall y : cart R M, Rle (@dot N' x (f y)) (Rmult b (Rmult (@vector_norm N' x) (@vector_norm M y)))). +Axiom thm_lift : forall x : R, (lift x) = (@lambda R unit (fun i : N => x)). +Axiom thm_drop : forall x : cart R unit, (drop x) = (@dollar R unit x (NUMERAL (BIT1 0%N))). +Axiom thm_LIFT_COMPONENT : forall x : R, (@dollar R unit (lift x) (NUMERAL (BIT1 0%N))) = x. +Axiom thm_LIFT_DROP : (forall x : cart R unit, (lift (drop x)) = x) /\ (forall x : R, (drop (lift x)) = x). +Axiom thm_IMAGE_LIFT_DROP : (forall s : (cart R unit) -> Prop, (@IMAGE (cart R unit) (cart R unit) (@o (cart R unit) R (cart R unit) lift drop) s) = s) /\ (forall s : R -> Prop, (@IMAGE R R (@o R (cart R unit) R drop lift) s) = s). +Axiom thm_IN_IMAGE_LIFT_DROP : (forall x : cart R unit, forall s : R -> Prop, (@IN (cart R unit) x (@IMAGE R (cart R unit) lift s)) = (@IN R (drop x) s)) /\ (forall x : R, forall s : (cart R unit) -> Prop, (@IN R x (@IMAGE (cart R unit) R drop s)) = (@IN (cart R unit) (lift x) s)). +Axiom thm_FORALL_LIFT : forall (P : (cart R unit) -> Prop), (forall x : cart R unit, P x) = (forall x : R, P (lift x)). +Axiom thm_EXISTS_LIFT : forall (P : (cart R unit) -> Prop), (exists x : cart R unit, P x) = (exists x : R, P (lift x)). +Axiom thm_FORALL_DROP : forall (P : R -> Prop), (forall x : R, P x) = (forall x : cart R unit, P (drop x)). +Axiom thm_EXISTS_DROP : forall (P : R -> Prop), (exists x : R, P x) = (exists x : cart R unit, P (drop x)). +Axiom thm_FORALL_LIFT_FUN : forall {A : Type'}, forall P : (A -> cart R unit) -> Prop, (forall f : A -> cart R unit, P f) = (forall f : A -> R, P (@o A R (cart R unit) lift f)). +Axiom thm_FORALL_DROP_FUN : forall {A : Type'}, forall P : (A -> R) -> Prop, (forall f : A -> R, P f) = (forall f : A -> cart R unit, P (@o A (cart R unit) R drop f)). +Axiom thm_FORALL_FUN_LIFT : forall {A : Type'}, forall P : (R -> A) -> Prop, (forall f : R -> A, P f) = (forall f : (cart R unit) -> A, P (@o R (cart R unit) A f lift)). +Axiom thm_FORALL_FUN_DROP : forall {A : Type'}, forall P : ((cart R unit) -> A) -> Prop, (forall f : (cart R unit) -> A, P f) = (forall f : R -> A, P (@o (cart R unit) R A f drop)). +Axiom thm_EXISTS_LIFT_FUN : forall {A : Type'}, forall P : (A -> cart R unit) -> Prop, (exists f : A -> cart R unit, P f) = (exists f : A -> R, P (@o A R (cart R unit) lift f)). +Axiom thm_EXISTS_DROP_FUN : forall {A : Type'}, forall P : (A -> R) -> Prop, (exists f : A -> R, P f) = (exists f : A -> cart R unit, P (@o A (cart R unit) R drop f)). +Axiom thm_EXISTS_FUN_LIFT : forall {A : Type'}, forall P : (R -> A) -> Prop, (exists f : R -> A, P f) = (exists f : (cart R unit) -> A, P (@o R (cart R unit) A f lift)). +Axiom thm_EXISTS_FUN_DROP : forall {A : Type'}, forall P : ((cart R unit) -> A) -> Prop, (exists f : (cart R unit) -> A, P f) = (exists f : R -> A, P (@o (cart R unit) R A f drop)). +Axiom thm_LIFT_EQ : forall x : R, forall y : R, ((lift x) = (lift y)) = (x = y). +Axiom thm_DROP_EQ : forall x : cart R unit, forall y : cart R unit, ((drop x) = (drop y)) = (x = y). +Axiom thm_LIFT_IN_IMAGE_LIFT : forall x : R, forall s : R -> Prop, (@IN (cart R unit) (lift x) (@IMAGE R (cart R unit) lift s)) = (@IN R x s). +Axiom thm_FORALL_LIFT_IMAGE : forall P : ((cart R unit) -> Prop) -> Prop, (forall s : (cart R unit) -> Prop, P s) = (forall s : R -> Prop, P (@IMAGE R (cart R unit) lift s)). +Axiom thm_EXISTS_LIFT_IMAGE : forall P : ((cart R unit) -> Prop) -> Prop, (exists s : (cart R unit) -> Prop, P s) = (exists s : R -> Prop, P (@IMAGE R (cart R unit) lift s)). +Axiom thm_SUBSET_LIFT_IMAGE : forall s : R -> Prop, forall t : R -> Prop, (@SUBSET (cart R unit) (@IMAGE R (cart R unit) lift s) (@IMAGE R (cart R unit) lift t)) = (@SUBSET R s t). +Axiom thm_FORALL_DROP_IMAGE : forall P : (R -> Prop) -> Prop, (forall s : R -> Prop, P s) = (forall s : (cart R unit) -> Prop, P (@IMAGE (cart R unit) R drop s)). +Axiom thm_EXISTS_DROP_IMAGE : forall P : (R -> Prop) -> Prop, (exists s : R -> Prop, P s) = (exists s : (cart R unit) -> Prop, P (@IMAGE (cart R unit) R drop s)). +Axiom thm_SUBSET_DROP_IMAGE : forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, (@SUBSET R (@IMAGE (cart R unit) R drop s) (@IMAGE (cart R unit) R drop t)) = (@SUBSET (cart R unit) s t). +Axiom thm_DROP_IN_IMAGE_DROP : forall x : cart R unit, forall s : (cart R unit) -> Prop, (@IN R (drop x) (@IMAGE (cart R unit) R drop s)) = (@IN (cart R unit) x s). +Axiom thm_LIFT_NUM : forall n : N, (lift (R_of_N n)) = (@vec unit n). +Axiom thm_LIFT_ADD : forall x : R, forall y : R, (lift (Rplus x y)) = (@vector_add unit (lift x) (lift y)). +Axiom thm_LIFT_SUB : forall x : R, forall y : R, (lift (Rminus x y)) = (@vector_sub unit (lift x) (lift y)). +Axiom thm_LIFT_CMUL : forall x : R, forall c : R, (lift (Rmult c x)) = (@percent unit c (lift x)). +Axiom thm_LIFT_NEG : forall x : R, (lift (Ropp x)) = (@vector_neg unit (lift x)). +Axiom thm_LIFT_EQ_CMUL : forall x : R, (lift x) = (@percent unit x (@vec unit (NUMERAL (BIT1 0%N)))). +Axiom thm_SUM_VSUM : forall {_608182 : Type'}, forall f : _608182 -> R, forall s : _608182 -> Prop, (@sum _608182 s f) = (drop (@vsum _608182 unit s (@o _608182 R (cart R unit) lift f))). +Axiom thm_VSUM_REAL : forall {_608207 : Type'}, forall f : _608207 -> cart R unit, forall s : _608207 -> Prop, (@vsum _608207 unit s f) = (lift (@sum _608207 s (@o _608207 (cart R unit) R drop f))). +Axiom thm_LIFT_SUM : forall {_608232 : Type'}, forall k : _608232 -> Prop, forall x : _608232 -> R, (lift (@sum _608232 k x)) = (@vsum _608232 unit k (@o _608232 R (cart R unit) lift x)). +Axiom thm_DROP_VSUM : forall {_608257 : Type'}, forall k : _608257 -> Prop, forall x : _608257 -> cart R unit, (drop (@vsum _608257 unit k x)) = (@sum _608257 k (@o _608257 (cart R unit) R drop x)). +Axiom thm_DROP_LAMBDA : forall x : N -> R, (drop (@lambda R unit (fun i : N => x i))) = (x (NUMERAL (BIT1 0%N))). +Axiom thm_DROP_VEC : forall n : N, (drop (@vec unit n)) = (R_of_N n). +Axiom thm_DROP_ADD : forall x : cart R unit, forall y : cart R unit, (drop (@vector_add unit x y)) = (Rplus (drop x) (drop y)). +Axiom thm_DROP_SUB : forall x : cart R unit, forall y : cart R unit, (drop (@vector_sub unit x y)) = (Rminus (drop x) (drop y)). +Axiom thm_DROP_CMUL : forall x : cart R unit, forall c : R, (drop (@percent unit c x)) = (Rmult c (drop x)). +Axiom thm_DROP_NEG : forall x : cart R unit, (drop (@vector_neg unit x)) = (Ropp (drop x)). +Axiom thm_NORM_1 : forall x : cart R unit, (@vector_norm unit x) = (Rabs (drop x)). +Axiom thm_DIST_1 : forall x : cart R unit, forall y : cart R unit, (@distance unit (@pair (cart R unit) (cart R unit) x y)) = (Rabs (Rminus (drop x) (drop y))). +Axiom thm_NORM_1_POS : forall x : cart R unit, (Rle (R_of_N (NUMERAL 0%N)) (drop x)) -> (@vector_norm unit x) = (drop x). +Axiom thm_NORM_LIFT : forall x : R, (@vector_norm unit (lift x)) = (Rabs x). +Axiom thm_DIST_LIFT : forall x : R, forall y : R, (@distance unit (@pair (cart R unit) (cart R unit) (lift x) (lift y))) = (Rabs (Rminus x y)). +Axiom thm_ABS_DROP : forall x : cart R unit, (Rabs (drop x)) = (@vector_norm unit x). +Axiom thm_LINEAR_VMUL_DROP : forall {_608517 _608523 : Type'}, forall f : (cart R _608517) -> cart R unit, forall v : cart R _608523, (@linear _608517 unit f) -> @linear _608517 _608523 (fun x : cart R _608517 => @percent _608523 (drop (f x)) v). +Axiom thm_LINEAR_FROM_REALS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', (@linear unit N' f) -> f = (fun x : cart R unit => @percent N' (drop x) (@column N' unit (NUMERAL (BIT1 0%N)) (@matrix unit N' f))). +Axiom thm_LINEAR_TO_REALS : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, (@linear N' unit f) -> f = (fun x : cart R N' => lift (@dot N' (@row unit N' (NUMERAL (BIT1 0%N)) (@matrix N' unit f)) x)). +Axiom thm_LINEAR_FROM_1 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', (@linear unit N' f) = (exists c : cart R N', f = (fun x : cart R unit => @percent N' (drop x) c)). +Axiom thm_DROP_EQ_0 : forall x : cart R unit, ((drop x) = (R_of_N (NUMERAL 0%N))) = (x = (@vec unit (NUMERAL 0%N))). +Axiom thm_DROP_WLOG_LE : forall (P : (cart R unit) -> (cart R unit) -> Prop), ((forall x : cart R unit, forall y : cart R unit, (P x y) = (P y x)) /\ (forall x : cart R unit, forall y : cart R unit, (Rle (drop x) (drop y)) -> P x y)) -> forall x : cart R unit, forall y : cart R unit, P x y. +Axiom thm_IMAGE_LIFT_UNIV : (@IMAGE R (cart R unit) lift (@UNIV R)) = (@UNIV (cart R unit)). +Axiom thm_IMAGE_DROP_UNIV : (@IMAGE (cart R unit) R drop (@UNIV (cart R unit))) = (@UNIV R). +Axiom thm_LINEAR_LIFT_DOT : forall {_608691 : Type'}, forall a : cart R _608691, @linear _608691 unit (fun x : cart R _608691 => lift (@dot _608691 a x)). +Axiom thm_LINEAR_TO_1 : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, (@linear N' unit f) = (exists a : cart R N', f = (fun x : cart R N' => lift (@dot N' a x))). +Axiom thm_LINEAR_LIFT_COMPONENT : forall {N' : Type'}, forall k : N, @linear N' unit (fun x : cart R N' => lift (@dollar R N' x k)). +Axiom thm_BILINEAR_DROP_MUL : forall {N' : Type'}, @bilinear N' N' unit (fun x : cart R unit => fun y : cart R N' => @percent N' (drop x) y). +Axiom thm_BILINEAR_MUL_DROP : forall {N' : Type'}, @bilinear unit N' N' (fun y : cart R N' => fun x : cart R unit => @percent N' (drop x) y). +Axiom thm_BILINEAR_LIFT_MUL : @bilinear unit unit unit (fun x : cart R unit => fun y : cart R unit => lift (Rmult (drop x) (drop y))). +Axiom thm_LINEAR_COMPONENTWISE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @linear M unit (fun x : cart R M => lift (@dollar R N' (f x) i))). +Axiom thm_DROP_BASIS : forall i : N, (drop (@basis unit i)) = (@COND R (i = (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Axiom thm_indicator : forall {M : Type'}, forall s : (cart R M) -> Prop, (@indicator M s) = (fun x : cart R M => @COND (cart R unit) (@IN (cart R M) x s) (@vec unit (NUMERAL (BIT1 0%N))) (@vec unit (NUMERAL 0%N))). +Axiom thm_DROP_INDICATOR : forall {_608907 : Type'}, forall s : (cart R _608907) -> Prop, forall x : cart R _608907, (drop (@indicator _608907 s x)) = (@COND R (@IN (cart R _608907) x s) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Axiom thm_DROP_INDICATOR_POS_LE : forall {_608936 : Type'}, forall s : (cart R _608936) -> Prop, forall x : cart R _608936, Rle (R_of_N (NUMERAL 0%N)) (drop (@indicator _608936 s x)). +Axiom thm_DROP_INDICATOR_LE_1 : forall {_608952 : Type'}, forall s : (cart R _608952) -> Prop, forall x : cart R _608952, Rle (drop (@indicator _608952 s x)) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_DROP_INDICATOR_ABS_LE_1 : forall {_608972 : Type'}, forall s : (cart R _608972) -> Prop, forall x : cart R _608972, Rle (Rabs (drop (@indicator _608972 s x))) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_INDICATOR_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@indicator N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) = (fun x : cart R N' => @vector_sub unit (@vec unit (NUMERAL (BIT1 0%N))) (@indicator N' s x)). +Axiom thm_VECTORIZE_ADD : forall {M N' : Type'}, forall m1 : cart (cart R N') M, forall m2 : cart (cart R N') M, (@vectorize R M N' (@matrix_add M N' m1 m2)) = (@vector_add (finite_prod M N') (@vectorize R M N' m1) (@vectorize R M N' m2)). +Axiom thm_VECTORIZE_CMUL : forall {M N' : Type'}, forall c : R, forall m : cart (cart R N') M, (@vectorize R M N' (@__ M N' c m)) = (@percent (finite_prod M N') c (@vectorize R M N' m)). +Axiom thm_VECTORIZE_SUB : forall {M N' : Type'}, forall m1 : cart (cart R N') M, forall m2 : cart (cart R N') M, (@vectorize R M N' (@matrix_sub M N' m1 m2)) = (@vector_sub (finite_prod M N') (@vectorize R M N' m1) (@vectorize R M N' m2)). +Axiom thm_VECTORIZE_0 : forall {M N' : Type'}, (@vectorize R M N' (@mat M N' (NUMERAL 0%N))) = (@vec (finite_prod M N') (NUMERAL 0%N)). +Axiom thm_MATRIFY_0 : forall {_609141 _609142 : Type'}, (@matrify R _609142 _609141 (@vec (finite_prod _609142 _609141) (NUMERAL 0%N))) = (@mat _609142 _609141 (NUMERAL 0%N)). +Axiom thm_VECTORIZE_EQ_0 : forall {M N' : Type'}, forall m : cart (cart R N') M, ((@vectorize R M N' m) = (@vec (finite_prod M N') (NUMERAL 0%N))) = (m = (@mat M N' (NUMERAL 0%N))). +Axiom thm_MATRIFY_ADD : forall {M N' : Type'}, forall x : cart R (finite_prod M N'), forall y : cart R (finite_prod M N'), (@matrify R M N' (@vector_add (finite_prod M N') x y)) = (@matrix_add M N' (@matrify R M N' x) (@matrify R M N' y)). +Axiom thm_MATRIFY_CMUL : forall {M N' : Type'}, forall c : R, forall x : cart R (finite_prod M N'), (@matrify R M N' (@percent (finite_prod M N') c x)) = (@__ M N' c (@matrify R M N' x)). +Axiom thm_MATRIFY_SUB : forall {M N' : Type'}, forall x : cart R (finite_prod M N'), forall y : cart R (finite_prod M N'), (@matrify R M N' (@vector_sub (finite_prod M N') x y)) = (@matrix_sub M N' (@matrify R M N' x) (@matrify R M N' y)). +Axiom thm_MATRIFY_EQ_0 : forall {M N' : Type'}, forall m : cart R (finite_prod M N'), ((@matrify R M N' m) = (@mat M N' (NUMERAL 0%N))) = (m = (@vec (finite_prod M N') (NUMERAL 0%N))). +Axiom thm_BILINEAR_MATRIX_VECTOR_MUL : forall {M N' : Type'}, @bilinear N' M (finite_prod M N') (fun m : cart R (finite_prod M N') => fun x : cart R N' => @matrix_vector_mul M N' (@matrify R M N' m) x). +Axiom thm_BILINEAR_MATRIX_MUL : forall {M N' P : Type'}, @bilinear (finite_prod N' P) (finite_prod M P) (finite_prod M N') (fun m1 : cart R (finite_prod M N') => fun m2 : cart R (finite_prod N' P) => @vectorize R M P (@matrix_mul M N' P (@matrify R M N' m1) (@matrify R N' P m2))). +Axiom thm_LINEAR_FSTCART : forall {_609374 _609376 : Type'}, @linear (finite_sum _609376 _609374) _609376 (@fstcart R _609376 _609374). +Axiom thm_LINEAR_SNDCART : forall {_609426 _609428 : Type'}, @linear (finite_sum _609426 _609428) _609428 (@sndcart R _609426 _609428). +Axiom thm_FSTCART_VEC : forall {_609456 _609462 : Type'}, forall n : N, (@fstcart R _609462 _609456 (@vec (finite_sum _609462 _609456) n)) = (@vec _609462 n). +Axiom thm_FSTCART_ADD : forall {M N' : Type'}, forall x : cart R (finite_sum M N'), forall y : cart R (finite_sum M N'), (@fstcart R M N' (@vector_add (finite_sum M N') x y)) = (@vector_add M (@fstcart R M N' x) (@fstcart R M N' y)). +Axiom thm_FSTCART_CMUL : forall {M N' : Type'}, forall x : cart R (finite_sum M N'), forall c : R, (@fstcart R M N' (@percent (finite_sum M N') c x)) = (@percent M c (@fstcart R M N' x)). +Axiom thm_FSTCART_NEG : forall {M N' : Type'}, forall x : cart R (finite_sum M N'), (@vector_neg M (@fstcart R M N' x)) = (@fstcart R M N' (@vector_neg (finite_sum M N') x)). +Axiom thm_FSTCART_SUB : forall {M N' : Type'}, forall x : cart R (finite_sum M N'), forall y : cart R (finite_sum M N'), (@fstcart R M N' (@vector_sub (finite_sum M N') x y)) = (@vector_sub M (@fstcart R M N' x) (@fstcart R M N' y)). +Axiom thm_FSTCART_VSUM : forall {_609655 _609657 _609658 : Type'}, forall k : _609658 -> Prop, forall x : _609658 -> cart R (finite_sum _609657 _609655), (@FINITE _609658 k) -> (@fstcart R _609657 _609655 (@vsum _609658 (finite_sum _609657 _609655) k x)) = (@vsum _609658 _609657 k (fun i : _609658 => @fstcart R _609657 _609655 (x i))). +Axiom thm_SNDCART_VEC : forall {_609713 _609719 : Type'}, forall n : N, (@sndcart R _609713 _609719 (@vec (finite_sum _609713 _609719) n)) = (@vec _609719 n). +Axiom thm_SNDCART_ADD : forall {M N' : Type'}, forall x : cart R (finite_sum M N'), forall y : cart R (finite_sum M N'), (@sndcart R M N' (@vector_add (finite_sum M N') x y)) = (@vector_add N' (@sndcart R M N' x) (@sndcart R M N' y)). +Axiom thm_SNDCART_CMUL : forall {M N' : Type'}, forall x : cart R (finite_sum M N'), forall c : R, (@sndcart R M N' (@percent (finite_sum M N') c x)) = (@percent N' c (@sndcart R M N' x)). +Axiom thm_SNDCART_NEG : forall {M N' : Type'}, forall x : cart R (finite_sum M N'), (@vector_neg N' (@sndcart R M N' x)) = (@sndcart R M N' (@vector_neg (finite_sum M N') x)). +Axiom thm_SNDCART_SUB : forall {M N' : Type'}, forall x : cart R (finite_sum M N'), forall y : cart R (finite_sum M N'), (@sndcart R M N' (@vector_sub (finite_sum M N') x y)) = (@vector_sub N' (@sndcart R M N' x) (@sndcart R M N' y)). +Axiom thm_SNDCART_VSUM : forall {_609912 _609914 _609915 : Type'}, forall k : _609915 -> Prop, forall x : _609915 -> cart R (finite_sum _609912 _609914), (@FINITE _609915 k) -> (@sndcart R _609912 _609914 (@vsum _609915 (finite_sum _609912 _609914) k x)) = (@vsum _609915 _609914 k (fun i : _609915 => @sndcart R _609912 _609914 (x i))). +Axiom thm_PASTECART_VEC : forall {_609930 _609932 : Type'}, forall n : N, (@pastecart R _609930 _609932 (@vec _609930 n) (@vec _609932 n)) = (@vec (finite_sum _609930 _609932) n). +Axiom thm_PASTECART_ADD : forall {M N' : Type'}, forall x1 : cart R M, forall y1 : cart R N', forall x2 : cart R M, forall y2 : cart R N', (@vector_add (finite_sum M N') (@pastecart R M N' x1 y1) (@pastecart R M N' x2 y2)) = (@pastecart R M N' (@vector_add M x1 x2) (@vector_add N' y1 y2)). +Axiom thm_PASTECART_CMUL : forall {_610030 _610031 : Type'}, forall x1 : cart R _610030, forall y1 : cart R _610031, forall c : R, (@pastecart R _610030 _610031 (@percent _610030 c x1) (@percent _610031 c y1)) = (@percent (finite_sum _610030 _610031) c (@pastecart R _610030 _610031 x1 y1)). +Axiom thm_PASTECART_NEG : forall {M N' : Type'}, forall x : cart R M, forall y : cart R N', (@pastecart R M N' (@vector_neg M x) (@vector_neg N' y)) = (@vector_neg (finite_sum M N') (@pastecart R M N' x y)). +Axiom thm_PASTECART_SUB : forall {M N' : Type'}, forall x1 : cart R M, forall y1 : cart R N', forall x2 : cart R M, forall y2 : cart R N', (@vector_sub (finite_sum M N') (@pastecart R M N' x1 y1) (@pastecart R M N' x2 y2)) = (@pastecart R M N' (@vector_sub M x1 x2) (@vector_sub N' y1 y2)). +Axiom thm_PASTECART_VSUM : forall {_610201 _610202 _610204 : Type'}, forall k : _610204 -> Prop, forall x : _610204 -> cart R _610201, forall y : _610204 -> cart R _610202, (@FINITE _610204 k) -> (@pastecart R _610201 _610202 (@vsum _610204 _610201 k x) (@vsum _610204 _610202 k y)) = (@vsum _610204 (finite_sum _610201 _610202) k (fun i : _610204 => @pastecart R _610201 _610202 (x i) (y i))). +Axiom thm_PASTECART_EQ_VEC : forall {_610236 _610241 : Type'}, forall x : cart R _610236, forall y : cart R _610241, forall n : N, ((@pastecart R _610236 _610241 x y) = (@vec (finite_sum _610236 _610241) n)) = ((x = (@vec _610236 n)) /\ (y = (@vec _610241 n))). +Axiom thm_FSTCART_SNDCART_MAT_ZERO : forall {A B M : Type'}, ((@fstcart (cart R M) A B (@mat (finite_sum A B) M (NUMERAL 0%N))) = (@mat A M (NUMERAL 0%N))) /\ ((@sndcart (cart R M) A B (@mat (finite_sum A B) M (NUMERAL 0%N))) = (@mat B M (NUMERAL 0%N))). +Axiom thm_FSTCART_SNDCART_MATRIX_ADD : forall {K M N' : Type'}, forall x : cart (cart R K) (finite_sum M N'), forall y : cart (cart R K) (finite_sum M N'), ((@fstcart (cart R K) M N' (@matrix_add (finite_sum M N') K x y)) = (@matrix_add M K (@fstcart (cart R K) M N' x) (@fstcart (cart R K) M N' y))) /\ ((@sndcart (cart R K) M N' (@matrix_add (finite_sum M N') K x y)) = (@matrix_add N' K (@sndcart (cart R K) M N' x) (@sndcart (cart R K) M N' y))). +Axiom thm_NORM_FSTCART : forall {_610388 _610390 : Type'}, forall x : cart R (finite_sum _610390 _610388), Rle (@vector_norm _610390 (@fstcart R _610390 _610388 x)) (@vector_norm (finite_sum _610390 _610388) x). +Axiom thm_DIST_FSTCART : forall {_610420 _610422 : Type'}, forall x : cart R (finite_sum _610422 _610420), forall y : cart R (finite_sum _610422 _610420), Rle (@distance _610422 (@pair (cart R _610422) (cart R _610422) (@fstcart R _610422 _610420 x) (@fstcart R _610422 _610420 y))) (@distance (finite_sum _610422 _610420) (@pair (cart R (finite_sum _610422 _610420)) (cart R (finite_sum _610422 _610420)) x y)). +Axiom thm_NORM_SNDCART : forall {_610500 _610502 : Type'}, forall x : cart R (finite_sum _610500 _610502), Rle (@vector_norm _610502 (@sndcart R _610500 _610502 x)) (@vector_norm (finite_sum _610500 _610502) x). +Axiom thm_DIST_SNDCART : forall {_610532 _610534 : Type'}, forall x : cart R (finite_sum _610532 _610534), forall y : cart R (finite_sum _610532 _610534), Rle (@distance _610534 (@pair (cart R _610534) (cart R _610534) (@sndcart R _610532 _610534 x) (@sndcart R _610532 _610534 y))) (@distance (finite_sum _610532 _610534) (@pair (cart R (finite_sum _610532 _610534)) (cart R (finite_sum _610532 _610534)) x y)). +Axiom thm_DOT_PASTECART : forall {_610614 _610615 : Type'}, forall x1 : cart R _610614, forall x2 : cart R _610615, forall y1 : cart R _610614, forall y2 : cart R _610615, (@dot (finite_sum _610614 _610615) (@pastecart R _610614 _610615 x1 x2) (@pastecart R _610614 _610615 y1 y2)) = (Rplus (@dot _610614 x1 y1) (@dot _610615 x2 y2)). +Axiom thm_SQNORM_PASTECART : forall {_610645 _610646 : Type'}, forall x : cart R _610645, forall y : cart R _610646, (real_pow (@vector_norm (finite_sum _610645 _610646) (@pastecart R _610645 _610646 x y)) (NUMERAL (BIT0 (BIT1 0%N)))) = (Rplus (real_pow (@vector_norm _610645 x) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@vector_norm _610646 y) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_NORM_PASTECART : forall {_610683 _610684 : Type'}, forall x : cart R _610683, forall y : cart R _610684, (@vector_norm (finite_sum _610683 _610684) (@pastecart R _610683 _610684 x y)) = (sqrt (Rplus (real_pow (@vector_norm _610683 x) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@vector_norm _610684 y) (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_NORM_PASTECART_LE : forall {_610722 _610723 : Type'}, forall x : cart R _610722, forall y : cart R _610723, Rle (@vector_norm (finite_sum _610722 _610723) (@pastecart R _610722 _610723 x y)) (Rplus (@vector_norm _610722 x) (@vector_norm _610723 y)). +Axiom thm_DIST_PASTECART_LE : forall {_610771 _610772 : Type'}, forall x1 : cart R _610771, forall y1 : cart R _610772, forall x2 : cart R _610771, forall y2 : cart R _610772, Rle (@distance (finite_sum _610771 _610772) (@pair (cart R (finite_sum _610771 _610772)) (cart R (finite_sum _610771 _610772)) (@pastecart R _610771 _610772 x1 y1) (@pastecart R _610771 _610772 x2 y2))) (Rplus (@distance _610771 (@pair (cart R _610771) (cart R _610771) x1 x2)) (@distance _610772 (@pair (cart R _610772) (cart R _610772) y1 y2))). +Axiom thm_NORM_LE_PASTECART : forall {M N' : Type'}, forall x : cart R M, forall y : cart R N', (Rle (@vector_norm M x) (@vector_norm (finite_sum M N') (@pastecart R M N' x y))) /\ (Rle (@vector_norm N' y) (@vector_norm (finite_sum M N') (@pastecart R M N' x y))). +Axiom thm_DIST_LE_PASTECART : forall {_610904 _610905 : Type'}, forall x1 : cart R _610904, forall y1 : cart R _610905, forall x2 : cart R _610904, forall y2 : cart R _610905, (Rle (@distance _610904 (@pair (cart R _610904) (cart R _610904) x1 x2)) (@distance (finite_sum _610904 _610905) (@pair (cart R (finite_sum _610904 _610905)) (cart R (finite_sum _610904 _610905)) (@pastecart R _610904 _610905 x1 y1) (@pastecart R _610904 _610905 x2 y2)))) /\ (Rle (@distance _610905 (@pair (cart R _610905) (cart R _610905) y1 y2)) (@distance (finite_sum _610904 _610905) (@pair (cart R (finite_sum _610904 _610905)) (cart R (finite_sum _610904 _610905)) (@pastecart R _610904 _610905 x1 y1) (@pastecart R _610904 _610905 x2 y2)))). +Axiom thm_NORM_PASTECART_0 : forall {_610929 _610932 _610948 _610950 : Type'}, (forall x : cart R _610929, (@vector_norm (finite_sum _610929 _610932) (@pastecart R _610929 _610932 x (@vec _610932 (NUMERAL 0%N)))) = (@vector_norm _610929 x)) /\ (forall y : cart R _610948, (@vector_norm (finite_sum _610950 _610948) (@pastecart R _610950 _610948 (@vec _610950 (NUMERAL 0%N)) y)) = (@vector_norm _610948 y)). +Axiom thm_DIST_PASTECART_CANCEL : forall {_610993 _610994 _611030 _611031 : Type'}, (forall x : cart R _610993, forall x' : cart R _610993, forall y : cart R _610994, (@distance (finite_sum _610993 _610994) (@pair (cart R (finite_sum _610993 _610994)) (cart R (finite_sum _610993 _610994)) (@pastecart R _610993 _610994 x y) (@pastecart R _610993 _610994 x' y))) = (@distance _610993 (@pair (cart R _610993) (cart R _610993) x x'))) /\ (forall x : cart R _611030, forall y : cart R _611031, forall y' : cart R _611031, (@distance (finite_sum _611030 _611031) (@pair (cart R (finite_sum _611030 _611031)) (cart R (finite_sum _611030 _611031)) (@pastecart R _611030 _611031 x y) (@pastecart R _611030 _611031 x y'))) = (@distance _611031 (@pair (cart R _611031) (cart R _611031) y y'))). +Axiom thm_LINEAR_PASTECART : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, ((@linear M N' f) /\ (@linear M P g)) -> @linear M (finite_sum N' P) (fun x : cart R M => @pastecart R N' P (f x) (g x)). +Axiom thm_LINEAR_PASTECART_EQ : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, (@linear M (finite_sum N' P) (fun x : cart R M => @pastecart R N' P (f x) (g x))) = ((@linear M N' f) /\ (@linear M P g)). +Axiom thm_dropout : forall {M N' : Type'}, forall k : N, forall x : cart R M, (@dropout M N' k x) = (@lambda R N' (fun i : N => @COND R ((N.lt i k) /\ (N.le i (@dimindex M (@UNIV M)))) (@dollar R M x i) (@COND R (N.le (N.add i (NUMERAL (BIT1 0%N))) (@dimindex M (@UNIV M))) (@dollar R M x (N.add i (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL 0%N))))). +Axiom thm_pushin : forall {_611181 _611182 _611193 : Type'}, forall k : N, forall t : _611182, forall x : cart _611182 _611193, (@pushin _611181 _611182 _611193 k t x) = (@lambda _611182 _611181 (fun i : N => @COND _611182 (N.lt i k) (@dollar _611182 _611193 x i) (@COND _611182 (i = k) t (@dollar _611182 _611193 x (N.sub i (NUMERAL (BIT1 0%N))))))). +Axiom thm_DROPOUT_PUSHIN : forall {M N' : Type'}, forall k : N, forall t : R, forall x : cart R M, ((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) -> (@dropout N' M k (@pushin N' R M k t x)) = x. +Axiom thm_PUSHIN_DROPOUT : forall {M N' : Type'}, forall k : N, forall x : cart R N', (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@pushin N' R M k (@dollar R N' x k) (@dropout N' M k x)) = x. +Axiom thm_DROPOUT_GALOIS : forall {M N' : Type'}, forall k : N, forall x : cart R N', forall y : cart R M, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (y = (@dropout N' M k x)) = (exists t : R, x = (@pushin N' R M k t y)). +Axiom thm_IN_IMAGE_DROPOUT : forall {M N' : Type'} (k : N), forall x : cart R M, forall s : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@IN (cart R M) x (@IMAGE (cart R N') (cart R M) (@dropout N' M k) s)) = (exists t : R, @IN (cart R N') (@pushin N' R M k t x) s). +Axiom thm_DROPOUT_EQ : forall {M N' : Type'}, forall x : cart R N', forall y : cart R N', forall k : N, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (((@dollar R N' x k) = (@dollar R N' y k)) /\ ((@dropout N' M k x) = (@dropout N' M k y)))))) -> x = y. +Axiom thm_DROPOUT_0 : forall {_611730 N' : Type'} (k : N), (@dropout N' _611730 k (@vec N' (NUMERAL 0%N))) = (@vec _611730 (NUMERAL 0%N)). +Axiom thm_DOT_DROPOUT : forall {M N' : Type'}, forall k : N, forall x : cart R N', forall y : cart R N', (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@dot M (@dropout N' M k x) (@dropout N' M k y)) = (Rminus (@dot N' x y) (Rmult (@dollar R N' x k) (@dollar R N' y k))). +Axiom thm_DOT_PUSHIN : forall {M N' : Type'}, forall k : N, forall a : R, forall b : R, forall x : cart R M, forall y : cart R M, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@dot N' (@pushin N' R M k a x) (@pushin N' R M k b y)) = (Rplus (@dot M x y) (Rmult a b)). +Axiom thm_DROPOUT_ADD : forall {_612128 N' : Type'}, forall k : N, forall x : cart R N', forall y : cart R N', (@dropout N' _612128 k (@vector_add N' x y)) = (@vector_add _612128 (@dropout N' _612128 k x) (@dropout N' _612128 k y)). +Axiom thm_DROPOUT_SUB : forall {_612174 N' : Type'}, forall k : N, forall x : cart R N', forall y : cart R N', (@dropout N' _612174 k (@vector_sub N' x y)) = (@vector_sub _612174 (@dropout N' _612174 k x) (@dropout N' _612174 k y)). +Axiom thm_DROPOUT_MUL : forall {_612210 N' : Type'}, forall k : N, forall c : R, forall x : cart R N', (@dropout N' _612210 k (@percent N' c x)) = (@percent _612210 c (@dropout N' _612210 k x)). +Axiom thm_LINEAR_DROPOUT : forall {M N' : Type'}, forall k : N, @linear N' M (@dropout N' M k). +Axiom thm_LINEAR_PUSHIN : forall {_612232 _612234 : Type'}, forall k : N, @linear _612232 _612234 (@pushin _612234 R _612232 k (R_of_N (NUMERAL 0%N))). +Axiom thm_subspace : forall {_612295 : Type'}, forall s : (cart R _612295) -> Prop, (@subspace _612295 s) = ((@IN (cart R _612295) (@vec _612295 (NUMERAL 0%N)) s) /\ ((forall x : cart R _612295, forall y : cart R _612295, ((@IN (cart R _612295) x s) /\ (@IN (cart R _612295) y s)) -> @IN (cart R _612295) (@vector_add _612295 x y) s) /\ (forall c : R, forall x : cart R _612295, (@IN (cart R _612295) x s) -> @IN (cart R _612295) (@percent _612295 c x) s))). +Axiom thm_span : forall {_612307 : Type'}, forall s : (cart R _612307) -> Prop, (@span _612307 s) = (@hull (cart R _612307) (@subspace _612307) s). +Axiom thm_dependent : forall {_612325 : Type'}, forall s : (cart R _612325) -> Prop, (@dependent _612325 s) = (exists a : cart R _612325, (@IN (cart R _612325) a s) /\ (@IN (cart R _612325) a (@span _612325 (@DELETE (cart R _612325) s a)))). +Axiom thm_independent : forall {_612335 : Type'}, forall s : (cart R _612335) -> Prop, (@independent _612335 s) = (~ (@dependent _612335 s)). +Axiom thm_SUBSPACE_UNIV : forall {N' : Type'}, @subspace N' (@UNIV (cart R N')). +Axiom thm_SUBSPACE_IMP_NONEMPTY : forall {_612348 : Type'}, forall s : (cart R _612348) -> Prop, (@subspace _612348 s) -> ~ (s = (@EMPTY (cart R _612348))). +Axiom thm_SUBSPACE_0 : forall {_612358 : Type'} (s : (cart R _612358) -> Prop), (@subspace _612358 s) -> @IN (cart R _612358) (@vec _612358 (NUMERAL 0%N)) s. +Axiom thm_SUBSPACE_ADD : forall {_612399 : Type'}, forall x : cart R _612399, forall y : cart R _612399, forall s : (cart R _612399) -> Prop, ((@subspace _612399 s) /\ ((@IN (cart R _612399) x s) /\ (@IN (cart R _612399) y s))) -> @IN (cart R _612399) (@vector_add _612399 x y) s. +Axiom thm_SUBSPACE_MUL : forall {_612421 : Type'}, forall x : cart R _612421, forall c : R, forall s : (cart R _612421) -> Prop, ((@subspace _612421 s) /\ (@IN (cart R _612421) x s)) -> @IN (cart R _612421) (@percent _612421 c x) s. +Axiom thm_SUBSPACE_MUL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, forall x : cart R N', (@subspace N' s) -> (@IN (cart R N') (@percent N' c x) s) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@IN (cart R N') x s)). +Axiom thm_SUBSPACE_NEG : forall {_612527 : Type'}, forall x : cart R _612527, forall s : (cart R _612527) -> Prop, ((@subspace _612527 s) /\ (@IN (cart R _612527) x s)) -> @IN (cart R _612527) (@vector_neg _612527 x) s. +Axiom thm_SUBSPACE_NEG_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@subspace N' s) -> (@IN (cart R N') (@vector_neg N' x) s) = (@IN (cart R N') x s). +Axiom thm_SUBSPACE_SUB : forall {_612595 : Type'}, forall x : cart R _612595, forall y : cart R _612595, forall s : (cart R _612595) -> Prop, ((@subspace _612595 s) /\ ((@IN (cart R _612595) x s) /\ (@IN (cart R _612595) y s))) -> @IN (cart R _612595) (@vector_sub _612595 x y) s. +Axiom thm_SUBSPACE_VSUM : forall {_612634 _612641 : Type'}, forall s : (cart R _612641) -> Prop, forall f : _612634 -> cart R _612641, forall t : _612634 -> Prop, ((@subspace _612641 s) /\ ((@FINITE _612634 t) /\ (forall x : _612634, (@IN _612634 x t) -> @IN (cart R _612641) (f x) s))) -> @IN (cart R _612641) (@vsum _612634 _612641 t f) s. +Axiom thm_SUBSPACE_LINEAR_IMAGE : forall {_612657 _612659 : Type'}, forall f : (cart R _612659) -> cart R _612657, forall s : (cart R _612659) -> Prop, ((@linear _612659 _612657 f) /\ (@subspace _612659 s)) -> @subspace _612657 (@IMAGE (cart R _612659) (cart R _612657) f s). +Axiom thm_SUBSPACE_LINEAR_PREIMAGE : forall {_612680 _612683 : Type'}, forall f : (cart R _612680) -> cart R _612683, forall s : (cart R _612683) -> Prop, ((@linear _612680 _612683 f) /\ (@subspace _612683 s)) -> @subspace _612680 (@GSPEC (cart R _612680) (fun GEN_PVAR_2392 : cart R _612680 => exists x : cart R _612680, @SETSPEC (cart R _612680) GEN_PVAR_2392 (@IN (cart R _612683) (f x) s) x)). +Axiom thm_SUBSPACE_TRIVIAL : forall {_612709 : Type'}, @subspace _612709 (@INSERT (cart R _612709) (@vec _612709 (NUMERAL 0%N)) (@EMPTY (cart R _612709))). +Axiom thm_SUBSPACE_INTER : forall {_612727 : Type'}, forall s : (cart R _612727) -> Prop, forall t : (cart R _612727) -> Prop, ((@subspace _612727 s) /\ (@subspace _612727 t)) -> @subspace _612727 (@INTER (cart R _612727) s t). +Axiom thm_SUBSPACE_INTERS : forall {_612750 : Type'}, forall f : ((cart R _612750) -> Prop) -> Prop, (forall s : (cart R _612750) -> Prop, (@IN ((cart R _612750) -> Prop) s f) -> @subspace _612750 s) -> @subspace _612750 (@INTERS (cart R _612750) f). +Axiom thm_LINEAR_INJECTIVE_0_SUBSPACE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (@subspace M s)) -> (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y) = (forall x : cart R M, ((@IN (cart R M) x s) /\ ((f x) = (@vec N' (NUMERAL 0%N)))) -> x = (@vec M (NUMERAL 0%N))). +Axiom thm_SUBSPACE_UNION_CHAIN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ ((@subspace N' t) /\ (@subspace N' (@UNION (cart R N') s t)))) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s). +Axiom thm_SUBSPACE_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@subspace M s) /\ (@subspace N' t)) -> @subspace (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_SUBSPACE_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@subspace (finite_sum M N') (@PCROSS R M N' s t)) = ((@subspace M s) /\ (@subspace N' t)). +Axiom thm_SPAN_SPAN : forall {_613049 : Type'}, forall s : (cart R _613049) -> Prop, (@span _613049 (@span _613049 s)) = (@span _613049 s). +Axiom thm_SPAN_MONO : forall {_613070 : Type'}, forall s : (cart R _613070) -> Prop, forall t : (cart R _613070) -> Prop, (@SUBSET (cart R _613070) s t) -> @SUBSET (cart R _613070) (@span _613070 s) (@span _613070 t). +Axiom thm_SUBSPACE_SPAN : forall {_613079 : Type'}, forall s : (cart R _613079) -> Prop, @subspace _613079 (@span _613079 s). +Axiom thm_NONEMPTY_SPAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ~ ((@span N' s) = (@EMPTY (cart R N'))). +Axiom thm_SPAN_CLAUSES : forall {_613112 _613121 _613184 _613187 : Type'} (s : (cart R _613121) -> Prop), (forall a : cart R _613112, forall s' : (cart R _613112) -> Prop, (@IN (cart R _613112) a s') -> @IN (cart R _613112) a (@span _613112 s')) /\ ((@IN (cart R _613121) (@vec _613121 (NUMERAL 0%N)) (@span _613121 s)) /\ ((forall x : cart R _613187, forall y : cart R _613187, forall s' : (cart R _613187) -> Prop, ((@IN (cart R _613187) x (@span _613187 s')) /\ (@IN (cart R _613187) y (@span _613187 s'))) -> @IN (cart R _613187) (@vector_add _613187 x y) (@span _613187 s')) /\ (forall x : cart R _613184, forall c : R, forall s' : (cart R _613184) -> Prop, (@IN (cart R _613184) x (@span _613184 s')) -> @IN (cart R _613184) (@percent _613184 c x) (@span _613184 s')))). +Axiom thm_SPAN_INDUCT : forall {_613228 : Type'}, forall s : (cart R _613228) -> Prop, forall h : (cart R _613228) -> Prop, ((forall x : cart R _613228, (@IN (cart R _613228) x s) -> @IN (cart R _613228) x h) /\ (@subspace _613228 h)) -> forall x : cart R _613228, (@IN (cart R _613228) x (@span _613228 s)) -> h x. +Axiom thm_SPAN_EMPTY : forall {_613241 : Type'}, (@span _613241 (@EMPTY (cart R _613241))) = (@INSERT (cart R _613241) (@vec _613241 (NUMERAL 0%N)) (@EMPTY (cart R _613241))). +Axiom thm_INDEPENDENT_EMPTY : forall {_613245 : Type'}, @independent _613245 (@EMPTY (cart R _613245)). +Axiom thm_INDEPENDENT_NONZERO : forall {_613255 : Type'}, forall s : (cart R _613255) -> Prop, (@independent _613255 s) -> ~ (@IN (cart R _613255) (@vec _613255 (NUMERAL 0%N)) s). +Axiom thm_INDEPENDENT_MONO : forall {_613281 : Type'}, forall s : (cart R _613281) -> Prop, forall t : (cart R _613281) -> Prop, ((@independent _613281 t) /\ (@SUBSET (cart R _613281) s t)) -> @independent _613281 s. +Axiom thm_DEPENDENT_MONO : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@dependent N' s) /\ (@SUBSET (cart R N') s t)) -> @dependent N' t. +Axiom thm_SPAN_SUBSPACE : forall {_613344 : Type'}, forall b : (cart R _613344) -> Prop, forall s : (cart R _613344) -> Prop, ((@SUBSET (cart R _613344) b s) /\ ((@SUBSET (cart R _613344) s (@span _613344 b)) /\ (@subspace _613344 s))) -> (@span _613344 b) = s. +Axiom thm_SPAN_INDUCT_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall h : (cart R N') -> Prop, ((h (@vec N' (NUMERAL 0%N))) /\ (forall c : R, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (h y)) -> h (@vector_add N' (@percent N' c x) y))) -> forall x : cart R N', (@IN (cart R N') x (@span N' s)) -> h x. +Axiom thm_SPAN_SUPERSET : forall {_613434 : Type'} (s : (cart R _613434) -> Prop), forall x : cart R _613434, (@IN (cart R _613434) x s) -> @IN (cart R _613434) x (@span _613434 s). +Axiom thm_SPAN_INC : forall {_613444 : Type'}, forall s : (cart R _613444) -> Prop, @SUBSET (cart R _613444) s (@span _613444 s). +Axiom thm_SPAN_UNION_SUBSET : forall {_613465 : Type'}, forall s : (cart R _613465) -> Prop, forall t : (cart R _613465) -> Prop, @SUBSET (cart R _613465) (@UNION (cart R _613465) (@span _613465 s) (@span _613465 t)) (@span _613465 (@UNION (cart R _613465) s t)). +Axiom thm_SPAN_UNIV : forall {N' : Type'}, (@span N' (@UNIV (cart R N'))) = (@UNIV (cart R N')). +Axiom thm_SPAN_0 : forall {_613495 : Type'} (s : (cart R _613495) -> Prop), @IN (cart R _613495) (@vec _613495 (NUMERAL 0%N)) (@span _613495 s). +Axiom thm_SPAN_ADD : forall {_613533 : Type'}, forall x : cart R _613533, forall y : cart R _613533, forall s : (cart R _613533) -> Prop, ((@IN (cart R _613533) x (@span _613533 s)) /\ (@IN (cart R _613533) y (@span _613533 s))) -> @IN (cart R _613533) (@vector_add _613533 x y) (@span _613533 s). +Axiom thm_SPAN_MUL : forall {_613564 : Type'}, forall x : cart R _613564, forall c : R, forall s : (cart R _613564) -> Prop, (@IN (cart R _613564) x (@span _613564 s)) -> @IN (cart R _613564) (@percent _613564 c x) (@span _613564 s). +Axiom thm_SPAN_MUL_EQ : forall {N' : Type'}, forall x : cart R N', forall c : R, forall s : (cart R N') -> Prop, (~ (c = (R_of_N (NUMERAL 0%N)))) -> (@IN (cart R N') (@percent N' c x) (@span N' s)) = (@IN (cart R N') x (@span N' s)). +Axiom thm_SPAN_NEG : forall {_613639 : Type'}, forall x : cart R _613639, forall s : (cart R _613639) -> Prop, (@IN (cart R _613639) x (@span _613639 s)) -> @IN (cart R _613639) (@vector_neg _613639 x) (@span _613639 s). +Axiom thm_SPAN_NEG_EQ : forall {_613668 : Type'}, forall x : cart R _613668, forall s : (cart R _613668) -> Prop, (@IN (cart R _613668) (@vector_neg _613668 x) (@span _613668 s)) = (@IN (cart R _613668) x (@span _613668 s)). +Axiom thm_SPAN_SUB : forall {_613709 : Type'}, forall x : cart R _613709, forall y : cart R _613709, forall s : (cart R _613709) -> Prop, ((@IN (cart R _613709) x (@span _613709 s)) /\ (@IN (cart R _613709) y (@span _613709 s))) -> @IN (cart R _613709) (@vector_sub _613709 x y) (@span _613709 s). +Axiom thm_SPAN_VSUM : forall {_613744 _613755 : Type'}, forall s : (cart R _613755) -> Prop, forall f : _613744 -> cart R _613755, forall t : _613744 -> Prop, ((@FINITE _613744 t) /\ (forall x : _613744, (@IN _613744 x t) -> @IN (cart R _613755) (f x) (@span _613755 s))) -> @IN (cart R _613755) (@vsum _613744 _613755 t f) (@span _613755 s). +Axiom thm_SPAN_ADD_EQ : forall {_613815 : Type'}, forall s : (cart R _613815) -> Prop, forall x : cart R _613815, forall y : cart R _613815, (@IN (cart R _613815) x (@span _613815 s)) -> (@IN (cart R _613815) (@vector_add _613815 x y) (@span _613815 s)) = (@IN (cart R _613815) y (@span _613815 s)). +Axiom thm_SPAN_EQ_SELF : forall {_613830 : Type'}, forall s : (cart R _613830) -> Prop, ((@span _613830 s) = s) = (@subspace _613830 s). +Axiom thm_SPAN_OF_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> (@span N' s) = s. +Axiom thm_SPAN_SUBSET_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') s t) /\ (@subspace N' t)) -> @SUBSET (cart R N') (@span N' s) t. +Axiom thm_SUBSPACE_TRANSLATION_SELF : forall {_613929 : Type'}, forall s : (cart R _613929) -> Prop, forall a : cart R _613929, ((@subspace _613929 s) /\ (@IN (cart R _613929) a s)) -> (@IMAGE (cart R _613929) (cart R _613929) (fun x : cart R _613929 => @vector_add _613929 a x) s) = s. +Axiom thm_SUBSPACE_TRANSLATION_SELF_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@subspace N' s) -> ((@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) = s) = (@IN (cart R N') a s). +Axiom thm_SUBSPACE_SUMS : forall {_614084 : Type'}, forall s : (cart R _614084) -> Prop, forall t : (cart R _614084) -> Prop, ((@subspace _614084 s) /\ (@subspace _614084 t)) -> @subspace _614084 (@GSPEC (cart R _614084) (fun GEN_PVAR_2393 : cart R _614084 => exists x : cart R _614084, exists y : cart R _614084, @SETSPEC (cart R _614084) GEN_PVAR_2393 ((@IN (cart R _614084) x s) /\ (@IN (cart R _614084) y t)) (@vector_add _614084 x y))). +Axiom thm_SPAN_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@span N' (@UNION (cart R N') s t)) = (@GSPEC (cart R N') (fun GEN_PVAR_2394 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2394 ((@IN (cart R N') x (@span N' s)) /\ (@IN (cart R N') y (@span N' t))) (@vector_add N' x y))). +Axiom thm_SPAN_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@linear M N' f) -> (@span N' (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@span M s)). +Axiom thm_DEPENDENT_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@dependent N' (@IMAGE (cart R M) (cart R N') f s)) = (@dependent M s). +Axiom thm_DEPENDENT_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y) /\ (@dependent M s))) -> @dependent N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_INDEPENDENT_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@independent N' (@IMAGE (cart R M) (cart R N') f s)) = (@independent M s). +Axiom thm_SPAN_BREAKDOWN : forall {N' : Type'}, forall b : cart R N', forall s : (cart R N') -> Prop, forall a : cart R N', ((@IN (cart R N') b s) /\ (@IN (cart R N') a (@span N' s))) -> exists k : R, @IN (cart R N') (@vector_sub N' a (@percent N' k b)) (@span N' (@DELETE (cart R N') s b)). +Axiom thm_SPAN_BREAKDOWN_EQ : forall {N' : Type'} (x : cart R N'), forall a : cart R N', forall s : (cart R N') -> Prop, (@IN (cart R N') x (@span N' (@INSERT (cart R N') a s))) = (exists k : R, @IN (cart R N') (@vector_sub N' x (@percent N' k a)) (@span N' s)). +Axiom thm_SPAN_INSERT_0 : forall {_614713 : Type'}, forall s : (cart R _614713) -> Prop, (@span _614713 (@INSERT (cart R _614713) (@vec _614713 (NUMERAL 0%N)) s)) = (@span _614713 s). +Axiom thm_SPAN_SING : forall {_614746 : Type'}, forall a : cart R _614746, (@span _614746 (@INSERT (cart R _614746) a (@EMPTY (cart R _614746)))) = (@GSPEC (cart R _614746) (fun GEN_PVAR_2396 : cart R _614746 => exists u : R, @SETSPEC (cart R _614746) GEN_PVAR_2396 (@IN R u (@UNIV R)) (@percent _614746 u a))). +Axiom thm_SPAN_2 : forall {_614832 : Type'}, forall a : cart R _614832, forall b : cart R _614832, (@span _614832 (@INSERT (cart R _614832) a (@INSERT (cart R _614832) b (@EMPTY (cart R _614832))))) = (@GSPEC (cart R _614832) (fun GEN_PVAR_2397 : cart R _614832 => exists u : R, exists v : R, @SETSPEC (cart R _614832) GEN_PVAR_2397 ((@IN R u (@UNIV R)) /\ (@IN R v (@UNIV R))) (@vector_add _614832 (@percent _614832 u a) (@percent _614832 v b)))). +Axiom thm_SPAN_3 : forall {_614947 : Type'}, forall a : cart R _614947, forall b : cart R _614947, forall c : cart R _614947, (@span _614947 (@INSERT (cart R _614947) a (@INSERT (cart R _614947) b (@INSERT (cart R _614947) c (@EMPTY (cart R _614947)))))) = (@GSPEC (cart R _614947) (fun GEN_PVAR_2398 : cart R _614947 => exists u : R, exists v : R, exists w : R, @SETSPEC (cart R _614947) GEN_PVAR_2398 ((@IN R u (@UNIV R)) /\ ((@IN R v (@UNIV R)) /\ (@IN R w (@UNIV R)))) (@vector_add _614947 (@percent _614947 u a) (@vector_add _614947 (@percent _614947 v b) (@percent _614947 w c))))). +Axiom thm_IN_SPAN_INSERT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall s : (cart R N') -> Prop, ((@IN (cart R N') a (@span N' (@INSERT (cart R N') b s))) /\ (~ (@IN (cart R N') a (@span N' s)))) -> @IN (cart R N') b (@span N' (@INSERT (cart R N') a s)). +Axiom thm_IN_SPAN_DELETE : forall {_615096 : Type'}, forall a : cart R _615096, forall b : cart R _615096, forall s : (cart R _615096) -> Prop, ((@IN (cart R _615096) a (@span _615096 s)) /\ (~ (@IN (cart R _615096) a (@span _615096 (@DELETE (cart R _615096) s b))))) -> @IN (cart R _615096) b (@span _615096 (@INSERT (cart R _615096) a (@DELETE (cart R _615096) s b))). +Axiom thm_EQ_SPAN_INSERT_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', (@IN (cart R N') (@vector_sub N' x y) (@span N' s)) -> (@span N' (@INSERT (cart R N') x s)) = (@span N' (@INSERT (cart R N') y s)). +Axiom thm_SPAN_EXPLICIT : forall {N' : Type'}, forall p : (cart R N') -> Prop, (@span N' p) = (@GSPEC (cart R N') (fun GEN_PVAR_2399 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2399 (exists s : (cart R N') -> Prop, exists u : (cart R N') -> R, (@FINITE (cart R N') s) /\ ((@SUBSET (cart R N') s p) /\ ((@vsum (cart R N') N' s (fun v : cart R N' => @percent N' (u v) v)) = y))) y)). +Axiom thm_DEPENDENT_EXPLICIT : forall {N' : Type'}, forall p : (cart R N') -> Prop, (@dependent N' p) = (exists s : (cart R N') -> Prop, exists u : (cart R N') -> R, (@FINITE (cart R N') s) /\ ((@SUBSET (cart R N') s p) /\ ((exists v : cart R N', (@IN (cart R N') v s) /\ (~ ((u v) = (R_of_N (NUMERAL 0%N))))) /\ ((@vsum (cart R N') N' s (fun v : cart R N' => @percent N' (u v) v)) = (@vec N' (NUMERAL 0%N)))))). +Axiom thm_DEPENDENT_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> (@dependent N' s) = (exists u : (cart R N') -> R, (exists v : cart R N', (@IN (cart R N') v s) /\ (~ ((u v) = (R_of_N (NUMERAL 0%N))))) /\ ((@vsum (cart R N') N' s (fun v : cart R N' => @percent N' (u v) v)) = (@vec N' (NUMERAL 0%N)))). +Axiom thm_SPAN_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> (@span N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_2402 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2402 (exists u : (cart R N') -> R, (@vsum (cart R N') N' s (fun v : cart R N' => @percent N' (u v) v)) = y) y)). +Axiom thm_SPAN_STDBASIS : forall {N' : Type'}, (@span N' (@GSPEC (cart R N') (fun GEN_PVAR_2403 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_2403 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@basis N' i)))) = (@UNIV (cart R N')). +Axiom thm_HAS_SIZE_STDBASIS : forall {N' : Type'}, @HAS_SIZE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2406 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_2406 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@basis N' i))) (@dimindex N' (@UNIV N')). +Axiom thm_FINITE_STDBASIS : forall {N' : Type'}, @FINITE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2407 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_2407 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@basis N' i))). +Axiom thm_CARD_STDBASIS : forall {N' : Type'}, (@CARD (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2408 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_2408 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@basis N' i)))) = (@dimindex N' (@UNIV N')). +Axiom thm_IN_SPAN_IMAGE_BASIS : forall {N' : Type'}, forall x : cart R N', forall s : N -> Prop, (@IN (cart R N') x (@span N' (@IMAGE N (cart R N') (@basis N') s))) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ (~ (@IN N i s)))) -> (@dollar R N' x i) = (R_of_N (NUMERAL 0%N))). +Axiom thm_INDEPENDENT_STDBASIS : forall {N' : Type'}, @independent N' (@GSPEC (cart R N') (fun GEN_PVAR_2413 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_2413 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@basis N' i))). +Axiom thm_INDEPENDENT_BASIS_IMAGE : forall {N' : Type'}, forall k : N -> Prop, (@independent N' (@IMAGE N (cart R N') (@basis N') k)) = (@SUBSET N k (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))). +Axiom thm_dim : forall {N' : Type'}, forall v : (cart R N') -> Prop, (@dim N' v) = (@ε N (fun n : N => exists b : (cart R N') -> Prop, (@SUBSET (cart R N') b v) /\ ((@independent N' b) /\ ((@SUBSET (cart R N') v (@span N' b)) /\ (@HAS_SIZE (cart R N') b n))))). +Axiom thm_euclidean_matroid : forall {N' : Type'}, (@euclidean_matroid N') = (@matroid (cart R N') (@pair ((cart R N') -> Prop) (((cart R N') -> Prop) -> (cart R N') -> Prop) (@UNIV (cart R N')) (@span N'))). +Axiom thm_EUCLIDEAN_MATROID : forall {N' : Type'}, ((@matroid_set (cart R N') (@euclidean_matroid N')) = (@UNIV (cart R N'))) /\ ((@matroid_span (cart R N') (@euclidean_matroid N')) = (@span N')). +Axiom thm_EUCLIDEAN_MATROID_INDEPENDENT : forall {N' : Type'}, (@matroid_independent (cart R N') (@euclidean_matroid N')) = (@independent N'). +Axiom thm_EUCLIDEAN_MATROID_SPANNING : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@matroid_spanning (cart R N') (@euclidean_matroid N') s) = ((@span N' s) = (@UNIV (cart R N'))). +Axiom thm_EUCLIDEAN_MATROID_SUBSPACE : forall {N' : Type'}, (@matroid_subspace (cart R N') (@euclidean_matroid N')) = (@subspace N'). +Axiom thm_EUCLIDEAN_MATROID_FINITE_DIMENSIONAL : forall {N' : Type'}, @matroid_finite_dimensional (cart R N') (@euclidean_matroid N'). +Axiom thm_EUCLIDEAN_MATROID_DIMENSION : forall {N' : Type'}, (@matroid_dimension (cart R N') (@euclidean_matroid N')) = (@dimindex N' (@UNIV N')). +Axiom thm_EUCLIDEAN_MATROID_FINITE_DIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, @matroid_finite_dim (cart R N') (@euclidean_matroid N') s. +Axiom thm_EUCLIDEAN_SUBMATROID : forall {N' : Type'}, (forall s : (cart R N') -> Prop, (@matroid_set (cart R N') (@submatroid (cart R N') (@euclidean_matroid N') s)) = (@span N' s)) /\ (forall s : (cart R N') -> Prop, (@matroid_span (cart R N') (@submatroid (cart R N') (@euclidean_matroid N') s)) = (@span N')). +Axiom thm_EUCLIDEAN_MATROID_DIM : forall {N' : Type'}, (@matroid_dim (cart R N') (@euclidean_matroid N')) = (@dim N'). +Axiom thm_SPAN_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@span N' s) = (@span N' t)) = ((@SUBSET (cart R N') s (@span N' t)) /\ (@SUBSET (cart R N') t (@span N' s))). +Axiom thm_SPAN_EQ_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@span N' (@INSERT (cart R N') x s)) = (@span N' s)) = (@IN (cart R N') x (@span N' s)). +Axiom thm_INDEPENDENT_INSERT : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@independent N' (@INSERT (cart R N') a s)) = (@COND Prop (@IN (cart R N') a s) (@independent N' s) ((@independent N' s) /\ (~ (@IN (cart R N') a (@span N' s))))). +Axiom thm_SPAN_TRANS : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', forall s : (cart R N') -> Prop, ((@IN (cart R N') x (@span N' s)) /\ (@IN (cart R N') y (@span N' (@INSERT (cart R N') x s)))) -> @IN (cart R N') y (@span N' s). +Axiom thm_SPANNING_SUBSET_INDEPENDENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') t s) /\ ((@independent N' s) /\ (@SUBSET (cart R N') s (@span N' t)))) -> s = t. +Axiom thm_EXCHANGE_LEMMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@FINITE (cart R N') t) /\ ((@independent N' s) /\ (@SUBSET (cart R N') s (@span N' t)))) -> exists t' : (cart R N') -> Prop, (@HAS_SIZE (cart R N') t' (@CARD (cart R N') t)) /\ ((@SUBSET (cart R N') s t') /\ ((@SUBSET (cart R N') t' (@UNION (cart R N') s t)) /\ (@SUBSET (cart R N') s (@span N' t')))). +Axiom thm_INDEPENDENT_SPAN_BOUND : forall {_616619 : Type'}, forall s : (cart R _616619) -> Prop, forall t : (cart R _616619) -> Prop, ((@FINITE (cart R _616619) t) /\ ((@independent _616619 s) /\ (@SUBSET (cart R _616619) s (@span _616619 t)))) -> (@FINITE (cart R _616619) s) /\ (N.le (@CARD (cart R _616619) s) (@CARD (cart R _616619) t)). +Axiom thm_INDEPENDENT_BOUND : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@independent N' s) -> (@FINITE (cart R N') s) /\ (N.le (@CARD (cart R N') s) (@dimindex N' (@UNIV N'))). +Axiom thm_DEPENDENT_BIGGERSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) -> N.gt (@CARD (cart R N') s) (@dimindex N' (@UNIV N'))) -> @dependent N' s. +Axiom thm_INDEPENDENT_IMP_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@independent N' s) -> @FINITE (cart R N') s. +Axiom thm_MAXIMAL_INDEPENDENT_SUBSET_EXTEND : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall v : (cart R N') -> Prop, ((@SUBSET (cart R N') s v) /\ (@independent N' s)) -> exists b : (cart R N') -> Prop, (@SUBSET (cart R N') s b) /\ ((@SUBSET (cart R N') b v) /\ ((@independent N' b) /\ (@SUBSET (cart R N') v (@span N' b)))). +Axiom thm_MAXIMAL_INDEPENDENT_SUBSET : forall {N' : Type'}, forall v : (cart R N') -> Prop, exists b : (cart R N') -> Prop, (@SUBSET (cart R N') b v) /\ ((@independent N' b) /\ (@SUBSET (cart R N') v (@span N' b))). +Axiom thm_BASIS_EXISTS : forall {_616798 : Type'}, forall v : (cart R _616798) -> Prop, exists b : (cart R _616798) -> Prop, (@SUBSET (cart R _616798) b v) /\ ((@independent _616798 b) /\ ((@SUBSET (cart R _616798) v (@span _616798 b)) /\ (@HAS_SIZE (cart R _616798) b (@dim _616798 v)))). +Axiom thm_BASIS_EXISTS_FINITE : forall {_616832 : Type'}, forall v : (cart R _616832) -> Prop, exists b : (cart R _616832) -> Prop, (@FINITE (cart R _616832) b) /\ ((@SUBSET (cart R _616832) b v) /\ ((@independent _616832 b) /\ ((@SUBSET (cart R _616832) v (@span _616832 b)) /\ (@HAS_SIZE (cart R _616832) b (@dim _616832 v))))). +Axiom thm_BASIS_SUBSPACE_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> exists b : (cart R N') -> Prop, (@FINITE (cart R N') b) /\ ((@SUBSET (cart R N') b s) /\ ((@independent N' b) /\ (((@span N' b) = s) /\ (@HAS_SIZE (cart R N') b (@dim N' s))))). +Axiom thm_INDEPENDENT_CARD_LE_DIM : forall {N' : Type'}, forall v : (cart R N') -> Prop, forall b : (cart R N') -> Prop, ((@SUBSET (cart R N') b v) /\ (@independent N' b)) -> (@FINITE (cart R N') b) /\ (N.le (@CARD (cart R N') b) (@dim N' v)). +Axiom thm_SPAN_CARD_GE_DIM : forall {N' : Type'}, forall v : (cart R N') -> Prop, forall b : (cart R N') -> Prop, ((@SUBSET (cart R N') v (@span N' b)) /\ (@FINITE (cart R N') b)) -> N.le (@dim N' v) (@CARD (cart R N') b). +Axiom thm_BASIS_CARD_EQ_DIM : forall {_616963 : Type'}, forall v : (cart R _616963) -> Prop, forall b : (cart R _616963) -> Prop, ((@SUBSET (cart R _616963) b v) /\ ((@SUBSET (cart R _616963) v (@span _616963 b)) /\ (@independent _616963 b))) -> (@FINITE (cart R _616963) b) /\ ((@CARD (cart R _616963) b) = (@dim _616963 v)). +Axiom thm_BASIS_HAS_SIZE_DIM : forall {_616978 : Type'}, forall v : (cart R _616978) -> Prop, forall b : (cart R _616978) -> Prop, ((@independent _616978 b) /\ ((@span _616978 b) = v)) -> @HAS_SIZE (cart R _616978) b (@dim _616978 v). +Axiom thm_DIM_SPAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@dim N' (@span N' s)) = (@dim N' s). +Axiom thm_DIM_UNIQUE : forall {_617040 : Type'} (n : N), forall v : (cart R _617040) -> Prop, forall b : (cart R _617040) -> Prop, ((@SUBSET (cart R _617040) b v) /\ ((@SUBSET (cart R _617040) v (@span _617040 b)) /\ ((@independent _617040 b) /\ (@HAS_SIZE (cart R _617040) b n)))) -> (@dim _617040 v) = n. +Axiom thm_DIM_LE_CARD : forall {_617054 : Type'}, forall s : (cart R _617054) -> Prop, (@FINITE (cart R _617054) s) -> N.le (@dim _617054 s) (@CARD (cart R _617054) s). +Axiom thm_DIM_UNIV : forall {N' : Type'}, (@dim N' (@UNIV (cart R N'))) = (@dimindex N' (@UNIV N')). +Axiom thm_DIM_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) -> N.le (@dim N' s) (@dim N' t). +Axiom thm_DIM_SUBSET_UNIV : forall {N' : Type'}, forall s : (cart R N') -> Prop, N.le (@dim N' s) (@dimindex N' (@UNIV N')). +Axiom thm_BASIS_HAS_SIZE_UNIV : forall {N' : Type'}, forall b : (cart R N') -> Prop, ((@independent N' b) /\ ((@span N' b) = (@UNIV (cart R N')))) -> @HAS_SIZE (cart R N') b (@dimindex N' (@UNIV N')). +Axiom thm_CARD_GE_DIM_INDEPENDENT : forall {N' : Type'}, forall v : (cart R N') -> Prop, forall b : (cart R N') -> Prop, ((@SUBSET (cart R N') b v) /\ ((@independent N' b) /\ (N.le (@dim N' v) (@CARD (cart R N') b)))) -> @SUBSET (cart R N') v (@span N' b). +Axiom thm_CARD_LE_DIM_SPANNING : forall {N' : Type'}, forall v : (cart R N') -> Prop, forall b : (cart R N') -> Prop, ((@SUBSET (cart R N') v (@span N' b)) /\ ((@FINITE (cart R N') b) /\ (N.le (@CARD (cart R N') b) (@dim N' v)))) -> @independent N' b. +Axiom thm_CARD_EQ_DIM : forall {_617252 : Type'}, forall v : (cart R _617252) -> Prop, forall b : (cart R _617252) -> Prop, ((@SUBSET (cart R _617252) b v) /\ (@HAS_SIZE (cart R _617252) b (@dim _617252 v))) -> (@independent _617252 b) = (@SUBSET (cart R _617252) v (@span _617252 b)). +Axiom thm_INDEPENDENT_BOUND_GENERAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@independent N' s) -> (@FINITE (cart R N') s) /\ (N.le (@CARD (cart R N') s) (@dim N' s)). +Axiom thm_DEPENDENT_BIGGERSET_GENERAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) -> N.gt (@CARD (cart R N') s) (@dim N' s)) -> @dependent N' s. +Axiom thm_DIM_INSERT_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@dim N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) s)) = (@dim N' s). +Axiom thm_DIM_EQ_CARD : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@independent N' s) -> (@dim N' s) = (@CARD (cart R N') s). +Axiom thm_DEPENDENT_EQ_DIM_LT_CARD : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@dependent N' s) = ((@FINITE (cart R N') s) -> N.lt (@dim N' s) (@CARD (cart R N') s)). +Axiom thm_INDEPENDENT_EQ_DIM_EQ_CARD : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@independent N' s) = ((@FINITE (cart R N') s) /\ ((@dim N' s) = (@CARD (cart R N') s))). +Axiom thm_SUBSET_LE_DIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') s (@span N' t)) -> N.le (@dim N' s) (@dim N' t). +Axiom thm_SPAN_EQ_DIM : forall {_617411 : Type'}, forall s : (cart R _617411) -> Prop, forall t : (cart R _617411) -> Prop, ((@span _617411 s) = (@span _617411 t)) -> (@dim _617411 s) = (@dim _617411 t). +Axiom thm_DIM_EMPTY : forall {N' : Type'}, (@dim N' (@EMPTY (cart R N'))) = (NUMERAL 0%N). +Axiom thm_DIM_INSERT : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@dim N' (@INSERT (cart R N') x s)) = (@COND N (@IN (cart R N') x (@span N' s)) (@dim N' s) (N.add (@dim N' s) (NUMERAL (BIT1 0%N)))). +Axiom thm_CHOOSE_SUBSPACE_OF_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : N, (N.le n (@dim N' s)) -> exists t : (cart R N') -> Prop, (@subspace N' t) /\ ((@SUBSET (cart R N') t (@span N' s)) /\ ((@dim N' t) = n)). +Axiom thm_SUBSPACE_EXISTS : forall {N' : Type'}, forall n : N, (N.le n (@dimindex N' (@UNIV N'))) -> exists s : (cart R N') -> Prop, (@subspace N' s) /\ ((@dim N' s) = n). +Axiom thm_DIM_EQ_SPAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') s t) /\ (N.le (@dim N' t) (@dim N' s))) -> (@span N' s) = (@span N' t). +Axiom thm_DIM_EQ_FULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@dim N' s) = (@dimindex N' (@UNIV N'))) = ((@span N' s) = (@UNIV (cart R N'))). +Axiom thm_DIM_PSUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@PSUBSET (cart R N') (@span N' s) (@span N' t)) -> N.lt (@dim N' s) (@dim N' t). +Axiom thm_LOWDIM_EXPAND_DIMENSION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : N, ((N.le (@dim N' s) n) /\ (N.le n (@dimindex N' (@UNIV N')))) -> exists t : (cart R N') -> Prop, ((@dim N' t) = n) /\ (@SUBSET (cart R N') (@span N' s) (@span N' t)). +Axiom thm_LOWDIM_EXPAND_BASIS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : N, ((N.le (@dim N' s) n) /\ (N.le n (@dimindex N' (@UNIV N')))) -> exists b : (cart R N') -> Prop, (@HAS_SIZE (cart R N') b n) /\ ((@independent N' b) /\ (@SUBSET (cart R N') (@span N' s) (@span N' b))). +Axiom thm_INDEPENDENT_EXPLICIT : forall {N' : Type'}, forall b : (cart R N') -> Prop, (@independent N' b) = ((@FINITE (cart R N') b) /\ (forall c : (cart R N') -> R, ((@vsum (cart R N') N' b (fun v : cart R N' => @percent N' (c v) v)) = (@vec N' (NUMERAL 0%N))) -> forall v : cart R N', (@IN (cart R N') v b) -> (c v) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_INDEPENDENT_SING : forall {_617775 : Type'}, forall x : cart R _617775, (@independent _617775 (@INSERT (cart R _617775) x (@EMPTY (cart R _617775)))) = (~ (x = (@vec _617775 (NUMERAL 0%N)))). +Axiom thm_DEPENDENT_SING : forall {_617793 : Type'}, forall x : cart R _617793, (@dependent _617793 (@INSERT (cart R _617793) x (@EMPTY (cart R _617793)))) = (x = (@vec _617793 (NUMERAL 0%N))). +Axiom thm_DEPENDENT_2 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@dependent N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))) = (@COND Prop (a = b) (a = (@vec N' (NUMERAL 0%N))) (exists x : R, exists y : R, ((@vector_add N' (@percent N' x a) (@percent N' y b)) = (@vec N' (NUMERAL 0%N))) /\ (~ ((x = (R_of_N (NUMERAL 0%N))) /\ (y = (R_of_N (NUMERAL 0%N))))))). +Axiom thm_DEPENDENT_3 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', ((~ (a = b)) /\ ((~ (a = c)) /\ (~ (b = c)))) -> (@dependent N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) = (exists x : R, exists y : R, exists z : R, ((@vector_add N' (@percent N' x a) (@vector_add N' (@percent N' y b) (@percent N' z c))) = (@vec N' (NUMERAL 0%N))) /\ (~ ((x = (R_of_N (NUMERAL 0%N))) /\ ((y = (R_of_N (NUMERAL 0%N))) /\ (z = (R_of_N (NUMERAL 0%N))))))). +Axiom thm_INDEPENDENT_2 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : R, forall y : R, ((@independent N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))) /\ (~ (a = b))) -> ((@vector_add N' (@percent N' x a) (@percent N' y b)) = (@vec N' (NUMERAL 0%N))) = ((x = (R_of_N (NUMERAL 0%N))) /\ (y = (R_of_N (NUMERAL 0%N)))). +Axiom thm_INDEPENDENT_3 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall x : R, forall y : R, forall z : R, ((@independent N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) /\ ((~ (a = b)) /\ ((~ (a = c)) /\ (~ (b = c))))) -> ((@vector_add N' (@percent N' x a) (@vector_add N' (@percent N' y b) (@percent N' z c))) = (@vec N' (NUMERAL 0%N))) = ((x = (R_of_N (NUMERAL 0%N))) /\ ((y = (R_of_N (NUMERAL 0%N))) /\ (z = (R_of_N (NUMERAL 0%N))))). +Axiom thm_LINEAR_SUBSPACE_GRAPH : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) = (@subspace (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_2418 : cart R (finite_sum M N') => exists x : cart R M, @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_2418 (@IN (cart R M) x (@UNIV (cart R M))) (@pastecart R M N' x (f x))))). +Axiom thm_SPANS_IMAGE : forall {_618277 _618292 : Type'}, forall f : (cart R _618277) -> cart R _618292, forall b : (cart R _618277) -> Prop, forall v : (cart R _618277) -> Prop, ((@linear _618277 _618292 f) /\ (@SUBSET (cart R _618277) v (@span _618277 b))) -> @SUBSET (cart R _618292) (@IMAGE (cart R _618277) (cart R _618292) f v) (@span _618292 (@IMAGE (cart R _618277) (cart R _618292) f b)). +Axiom thm_DIM_LINEAR_IMAGE_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@linear M N' f) -> N.le (@dim N' (@IMAGE (cart R M) (cart R N') f s)) (@dim M s). +Axiom thm_DIM_SING : forall {_618352 : Type'}, forall x : cart R _618352, (@dim _618352 (@INSERT (cart R _618352) x (@EMPTY (cart R _618352)))) = (@COND N (x = (@vec _618352 (NUMERAL 0%N))) (NUMERAL 0%N) (NUMERAL (BIT1 0%N))). +Axiom thm_DIM_EQ_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@dim N' s) = (NUMERAL 0%N)) = (@SUBSET (cart R N') s (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))). +Axiom thm_SPANNING_SURJECTIVE_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@SUBSET (cart R M) (@UNIV (cart R M)) (@span M s)) /\ ((@linear M N' f) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> @SUBSET (cart R N') (@UNIV (cart R N')) (@span N' (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_INDEPENDENT_INJECTIVE_IMAGE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@independent M s) /\ ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x (@span M s)) /\ ((@IN (cart R M) y (@span M s)) /\ ((f x) = (f y)))) -> x = y))) -> @independent N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_INDEPENDENT_INJECTIVE_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@independent M s) /\ ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y))) -> @independent N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_VECTOR_SUB_PROJECT_ORTHOGONAL : forall {N' : Type'}, forall b : cart R N', forall x : cart R N', (@dot N' b (@vector_sub N' x (@percent N' (Rdiv (@dot N' b x) (@dot N' b b)) b))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_BASIS_ORTHOGONAL : forall {N' : Type'}, forall b : (cart R N') -> Prop, (@FINITE (cart R N') b) -> exists c : (cart R N') -> Prop, (@FINITE (cart R N') c) /\ ((N.le (@CARD (cart R N') c) (@CARD (cart R N') b)) /\ (((@span N' c) = (@span N' b)) /\ (@pairwise (cart R N') (@orthogonal N') c))). +Axiom thm_ORTHOGONAL_BASIS_EXISTS : forall {N' : Type'}, forall v : (cart R N') -> Prop, exists b : (cart R N') -> Prop, (@independent N' b) /\ ((@SUBSET (cart R N') b (@span N' v)) /\ ((@SUBSET (cart R N') v (@span N' b)) /\ ((@HAS_SIZE (cart R N') b (@dim N' v)) /\ (@pairwise (cart R N') (@orthogonal N') b)))). +Axiom thm_SPAN_SPECIAL_SCALE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : R, forall x : cart R N', (@span N' (@INSERT (cart R N') (@percent N' a x) s)) = (@COND ((cart R N') -> Prop) (a = (R_of_N (NUMERAL 0%N))) (@span N' s) (@span N' (@INSERT (cart R N') x s))). +Axiom thm_LINEAR_INDEP_IMAGE_LEMMA : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall b : (cart R M) -> Prop, ((@linear M N' f) /\ ((@FINITE (cart R M) b) /\ ((@independent N' (@IMAGE (cart R M) (cart R N') f b)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x b) /\ ((@IN (cart R M) y b) /\ ((f x) = (f y)))) -> x = y)))) -> forall x : cart R M, (@IN (cart R M) x (@span M b)) -> ((f x) = (@vec N' (NUMERAL 0%N))) -> x = (@vec M (NUMERAL 0%N)). +Axiom thm_LINEAR_INDEPENDENT_EXTEND_LEMMA : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall b : (cart R M) -> Prop, (@FINITE (cart R M) b) -> (@independent M b) -> exists g : (cart R M) -> cart R N', (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x (@span M b)) /\ (@IN (cart R M) y (@span M b))) -> (g (@vector_add M x y)) = (@vector_add N' (g x) (g y))) /\ ((forall x : cart R M, forall c : R, (@IN (cart R M) x (@span M b)) -> (g (@percent M c x)) = (@percent N' c (g x))) /\ (forall x : cart R M, (@IN (cart R M) x b) -> (g x) = (f x))). +Axiom thm_LINEAR_INDEPENDENT_EXTEND : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall b : (cart R M) -> Prop, (@independent M b) -> exists g : (cart R M) -> cart R N', (@linear M N' g) /\ (forall x : cart R M, (@IN (cart R M) x b) -> (g x) = (f x)). +Axiom thm_SUBSPACE_KERNEL : forall {_619823 _619844 : Type'}, forall f : (cart R _619823) -> cart R _619844, (@linear _619823 _619844 f) -> @subspace _619823 (@GSPEC (cart R _619823) (fun GEN_PVAR_2419 : cart R _619823 => exists x : cart R _619823, @SETSPEC (cart R _619823) GEN_PVAR_2419 ((f x) = (@vec _619844 (NUMERAL 0%N))) x)). +Axiom thm_LINEAR_EQ_0_SPAN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall b : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, (@IN (cart R M) x b) -> (f x) = (@vec N' (NUMERAL 0%N)))) -> forall x : cart R M, (@IN (cart R M) x (@span M b)) -> (f x) = (@vec N' (NUMERAL 0%N)). +Axiom thm_LINEAR_EQ_0 : forall {_619920 _619950 : Type'}, forall f : (cart R _619920) -> cart R _619950, forall b : (cart R _619920) -> Prop, forall s : (cart R _619920) -> Prop, ((@linear _619920 _619950 f) /\ ((@SUBSET (cart R _619920) s (@span _619920 b)) /\ (forall x : cart R _619920, (@IN (cart R _619920) x b) -> (f x) = (@vec _619950 (NUMERAL 0%N))))) -> forall x : cart R _619920, (@IN (cart R _619920) x s) -> (f x) = (@vec _619950 (NUMERAL 0%N)). +Axiom thm_LINEAR_EQ : forall {_619979 _619986 : Type'}, forall f : (cart R _619986) -> cart R _619979, forall g : (cart R _619986) -> cart R _619979, forall b : (cart R _619986) -> Prop, forall s : (cart R _619986) -> Prop, ((@linear _619986 _619979 f) /\ ((@linear _619986 _619979 g) /\ ((@SUBSET (cart R _619986) s (@span _619986 b)) /\ (forall x : cart R _619986, (@IN (cart R _619986) x b) -> (f x) = (g x))))) -> forall x : cart R _619986, (@IN (cart R _619986) x s) -> (f x) = (g x). +Axiom thm_LINEAR_EQ_STDBASIS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@linear M N' f) /\ ((@linear M N' g) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> (f (@basis M i)) = (g (@basis M i))))) -> f = g. +Axiom thm_SUBSPACE_LINEAR_FIXED_POINTS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> @subspace N' (@GSPEC (cart R N') (fun GEN_PVAR_2421 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2421 ((f x) = x) x)). +Axiom thm_BILINEAR_EQ : forall {M N' P : Type'} (t : (cart R N') -> Prop), forall f : (cart R M) -> (cart R N') -> cart R P, forall g : (cart R M) -> (cart R N') -> cart R P, forall b : (cart R M) -> Prop, forall c : (cart R N') -> Prop, forall s : (cart R M) -> Prop, ((@bilinear N' P M f) /\ ((@bilinear N' P M g) /\ ((@SUBSET (cart R M) s (@span M b)) /\ ((@SUBSET (cart R N') t (@span N' c)) /\ (forall x : cart R M, forall y : cart R N', ((@IN (cart R M) x b) /\ (@IN (cart R N') y c)) -> (f x y) = (g x y)))))) -> forall x : cart R M, forall y : cart R N', ((@IN (cart R M) x s) /\ (@IN (cart R N') y t)) -> (f x y) = (g x y). +Axiom thm_BILINEAR_EQ_STDBASIS : forall {M N' P : Type'}, forall f : (cart R M) -> (cart R N') -> cart R P, forall g : (cart R M) -> (cart R N') -> cart R P, ((@bilinear N' P M f) /\ ((@bilinear N' P M g) /\ (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> (f (@basis M i) (@basis N' j)) = (g (@basis M i) (@basis N' j))))) -> f = g. +Axiom thm_LEFT_INVERTIBLE_TRANSP : forall {M N' : Type'}, forall A : cart (cart R N') M, (exists B : cart (cart R N') M, (@matrix_mul M N' M B (@transp M N' A)) = (@mat M M (NUMERAL (BIT1 0%N)))) = (exists B : cart (cart R M) N', (@matrix_mul M N' M A B) = (@mat M M (NUMERAL (BIT1 0%N)))). +Axiom thm_RIGHT_INVERTIBLE_TRANSP : forall {M N' : Type'}, forall A : cart (cart R N') M, (exists B : cart (cart R N') M, (@matrix_mul N' M N' (@transp M N' A) B) = (@mat N' N' (NUMERAL (BIT1 0%N)))) = (exists B : cart (cart R M) N', (@matrix_mul N' M N' B A) = (@mat N' N' (NUMERAL (BIT1 0%N)))). +Axiom thm_INVERTIBLE_TRANSP : forall {M N' : Type'}, forall A : cart (cart R N') M, (@invertible N' M (@transp M N' A)) = (@invertible M N' A). +Axiom thm_LINEAR_INJECTIVE_LEFT_INVERSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> exists g : (cart R N') -> cart R M, (@linear N' M g) /\ ((@o (cart R M) (cart R N') (cart R M) g f) = (@I (cart R M))). +Axiom thm_LINEAR_INJECTIVE_LEFT_INVERSE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) = (exists g : (cart R N') -> cart R M, (@linear N' M g) /\ ((@o (cart R M) (cart R N') (cart R M) g f) = (@I (cart R M)))). +Axiom thm_LINEAR_SURJECTIVE_RIGHT_INVERSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall y : cart R N', exists x : cart R M, (f x) = y)) -> exists g : (cart R N') -> cart R M, (@linear N' M g) /\ ((@o (cart R N') (cart R M) (cart R N') f g) = (@I (cart R N'))). +Axiom thm_LINEAR_SURJECTIVE_RIGHT_INVERSE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (forall y : cart R N', exists x : cart R M, (f x) = y) = (exists g : (cart R N') -> cart R M, (@linear N' M g) /\ ((@o (cart R N') (cart R M) (cart R N') f g) = (@I (cart R N')))). +Axiom thm_MATRIX_LEFT_INVERTIBLE_INJECTIVE : forall {M N' : Type'}, forall A : cart (cart R N') M, (exists B : cart (cart R M) N', (@matrix_mul N' M N' B A) = (@mat N' N' (NUMERAL (BIT1 0%N)))) = (forall x : cart R N', forall y : cart R N', ((@matrix_vector_mul M N' A x) = (@matrix_vector_mul M N' A y)) -> x = y). +Axiom thm_MATRIX_LEFT_INVERTIBLE_KER : forall {M N' : Type'}, forall A : cart (cart R N') M, (exists B : cart (cart R M) N', (@matrix_mul N' M N' B A) = (@mat N' N' (NUMERAL (BIT1 0%N)))) = (forall x : cart R N', ((@matrix_vector_mul M N' A x) = (@vec M (NUMERAL 0%N))) -> x = (@vec N' (NUMERAL 0%N))). +Axiom thm_MATRIX_RIGHT_INVERTIBLE_SURJECTIVE : forall {M N' : Type'}, forall A : cart (cart R N') M, (exists B : cart (cart R M) N', (@matrix_mul M N' M A B) = (@mat M M (NUMERAL (BIT1 0%N)))) = (forall y : cart R M, exists x : cart R N', (@matrix_vector_mul M N' A x) = y). +Axiom thm_MATRIX_LEFT_INVERTIBLE_INDEPENDENT_COLUMNS : forall {M N' : Type'}, forall A : cart (cart R N') M, (exists B : cart (cart R M) N', (@matrix_mul N' M N' B A) = (@mat N' N' (NUMERAL (BIT1 0%N)))) = (forall c : N -> R, ((@vsum N M (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @percent M (c i) (@column M N' i A))) = (@vec M (NUMERAL 0%N))) -> forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (c i) = (R_of_N (NUMERAL 0%N))). +Axiom thm_MATRIX_RIGHT_INVERTIBLE_INDEPENDENT_ROWS : forall {M N' : Type'}, forall A : cart (cart R N') M, (exists B : cart (cart R M) N', (@matrix_mul M N' M A B) = (@mat M M (NUMERAL (BIT1 0%N)))) = (forall c : N -> R, ((@vsum N N' (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M))) (fun i : N => @percent N' (c i) (@row M N' i A))) = (@vec N' (NUMERAL 0%N))) -> forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> (c i) = (R_of_N (NUMERAL 0%N))). +Axiom thm_MATRIX_RIGHT_INVERTIBLE_SPAN_COLUMNS : forall {M N' : Type'}, forall A : cart (cart R N') M, (exists B : cart (cart R M) N', (@matrix_mul M N' M A B) = (@mat M M (NUMERAL (BIT1 0%N)))) = ((@span M (@columns M N' A)) = (@UNIV (cart R M))). +Axiom thm_MATRIX_LEFT_INVERTIBLE_SPAN_ROWS : forall {M N' : Type'}, forall A : cart (cart R N') M, (exists B : cart (cart R M) N', (@matrix_mul N' M N' B A) = (@mat N' N' (NUMERAL (BIT1 0%N)))) = ((@span N' (@rows M N' A)) = (@UNIV (cart R N'))). +Axiom thm_LINEAR_INJECTIVE_IMP_SURJECTIVE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> forall y : cart R N', exists x : cart R N', (f x) = y. +Axiom thm_LINEAR_SURJECTIVE_IMP_INJECTIVE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@linear N' N' f) /\ (forall y : cart R N', exists x : cart R N', (f x) = y)) -> forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y. +Axiom thm_LINEAR_SURJECTIVE_IFF_INJECTIVE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (forall y : cart R N', exists x : cart R N', (f x) = y) = (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y). +Axiom thm_LEFT_RIGHT_INVERSE_EQ : forall {A : Type'}, forall f : A -> A, forall g : A -> A, forall h : A -> A, (((@o A A A f g) = (@I A)) /\ ((@o A A A g h) = (@I A))) -> f = h. +Axiom thm_ISOMORPHISM_EXPAND : forall {_621696 _621697 : Type'}, forall f : _621697 -> _621696, forall g : _621696 -> _621697, (((@o _621696 _621697 _621696 f g) = (@I _621696)) /\ ((@o _621697 _621696 _621697 g f) = (@I _621697))) = ((forall x : _621696, (f (g x)) = x) /\ (forall x : _621697, (g (f x)) = x)). +Axiom thm_LINEAR_INJECTIVE_ISOMORPHISM : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> exists f' : (cart R N') -> cart R N', (@linear N' N' f') /\ ((forall x : cart R N', (f' (f x)) = x) /\ (forall x : cart R N', (f (f' x)) = x)). +Axiom thm_LINEAR_SURJECTIVE_ISOMORPHISM : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@linear N' N' f) /\ (forall y : cart R N', exists x : cart R N', (f x) = y)) -> exists f' : (cart R N') -> cart R N', (@linear N' N' f') /\ ((forall x : cart R N', (f' (f x)) = x) /\ (forall x : cart R N', (f (f' x)) = x)). +Axiom thm_LINEAR_INVERSE_LEFT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> cart R N', ((@linear N' N' f) /\ (@linear N' N' f')) -> ((@o (cart R N') (cart R N') (cart R N') f f') = (@I (cart R N'))) = ((@o (cart R N') (cart R N') (cart R N') f' f) = (@I (cart R N'))). +Axiom thm_LEFT_INVERSE_LINEAR : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@linear N' N' f) /\ ((@o (cart R N') (cart R N') (cart R N') g f) = (@I (cart R N')))) -> @linear N' N' g. +Axiom thm_RIGHT_INVERSE_LINEAR : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@linear N' N' f) /\ ((@o (cart R N') (cart R N') (cart R N') f g) = (@I (cart R N')))) -> @linear N' N' g. +Axiom thm_LEFT_RIGHT_INVERSE_LINEAR : forall {M N' : Type'}, forall f : (cart R N') -> cart R M, forall g : (cart R M) -> cart R N', ((@linear N' M f) /\ (((@o (cart R N') (cart R M) (cart R N') g f) = (@I (cart R N'))) /\ ((@o (cart R M) (cart R N') (cart R M) f g) = (@I (cart R M))))) -> @linear M N' g. +Axiom thm_LINEAR_BIJECTIVE_LEFT_RIGHT_INVERSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> exists g : (cart R N') -> cart R M, (@linear N' M g) /\ ((forall x : cart R M, (g (f x)) = x) /\ (forall y : cart R N', (f (g y)) = y)). +Axiom thm_LINEAR_BIJECTIVE_LEFT_RIGHT_INVERSE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y)) = (exists g : (cart R N') -> cart R M, (@linear N' M g) /\ (((@o (cart R N') (cart R M) (cart R N') f g) = (@I (cart R N'))) /\ ((@o (cart R M) (cart R N') (cart R M) g f) = (@I (cart R M))))). +Axiom thm_LINEAR_INJECTIVE_LEFT_RIGHT_INVERSE_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y) = (exists g : (cart R N') -> cart R N', (@linear N' N' g) /\ (((@o (cart R N') (cart R N') (cart R N') f g) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') g f) = (@I (cart R N'))))). +Axiom thm_LINEAR_SURJECTIVE_LEFT_RIGHT_INVERSE_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (forall y : cart R N', exists x : cart R N', (f x) = y) = (exists g : (cart R N') -> cart R N', (@linear N' N' g) /\ (((@o (cart R N') (cart R N') (cart R N') f g) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') g f) = (@I (cart R N'))))). +Axiom thm_MATRIX_LEFT_RIGHT_INVERSE : forall {N' : Type'}, forall A : cart (cart R N') N', forall A' : cart (cart R N') N', ((@matrix_mul N' N' N' A A') = (@mat N' N' (NUMERAL (BIT1 0%N)))) = ((@matrix_mul N' N' N' A' A) = (@mat N' N' (NUMERAL (BIT1 0%N)))). +Axiom thm_MATRIX_LEFT_INVERTIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (exists B : cart (cart R N') M, (@matrix_mul M N' M B (@matrix M N' f)) = (@mat M M (NUMERAL (BIT1 0%N)))) = (exists g : (cart R N') -> cart R M, (@linear N' M g) /\ ((@o (cart R M) (cart R N') (cart R M) g f) = (@I (cart R M)))). +Axiom thm_MATRIX_RIGHT_INVERTIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (exists B : cart (cart R N') M, (@matrix_mul N' M N' (@matrix M N' f) B) = (@mat N' N' (NUMERAL (BIT1 0%N)))) = (exists g : (cart R N') -> cart R M, (@linear N' M g) /\ ((@o (cart R N') (cart R M) (cart R N') f g) = (@I (cart R N')))). +Axiom thm_INVERTIBLE_LEFT_INVERSE : forall {N' : Type'}, forall A : cart (cart R N') N', (@invertible N' N' A) = (exists B : cart (cart R N') N', (@matrix_mul N' N' N' B A) = (@mat N' N' (NUMERAL (BIT1 0%N)))). +Axiom thm_INVERTIBLE_RIGHT_INVERSE : forall {N' : Type'}, forall A : cart (cart R N') N', (@invertible N' N' A) = (exists B : cart (cart R N') N', (@matrix_mul N' N' N' A B) = (@mat N' N' (NUMERAL (BIT1 0%N)))). +Axiom thm_MATRIX_INVERTIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (@invertible N' M (@matrix M N' f)) = (exists g : (cart R N') -> cart R M, (@linear N' M g) /\ (((@o (cart R N') (cart R M) (cart R N') f g) = (@I (cart R N'))) /\ ((@o (cart R M) (cart R N') (cart R M) g f) = (@I (cart R M))))). +Axiom thm_INVERTIBLE_EQ_INJECTIVE_AND_SURJECTIVE : forall {M N' : Type'}, forall m : cart (cart R M) N', (@invertible N' M m) = ((forall x : cart R M, forall y : cart R M, ((@matrix_vector_mul N' M m x) = (@matrix_vector_mul N' M m y)) -> x = y) /\ ((@IMAGE (cart R M) (cart R N') (fun x : cart R M => @matrix_vector_mul N' M m x) (@UNIV (cart R M))) = (@UNIV (cart R N')))). +Axiom thm_LINEAR_INVERTIBLE_BOUNDED_BELOW_POS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, ((@linear M N' f) /\ ((@linear N' M g) /\ ((@o (cart R M) (cart R N') (cart R M) g f) = (@I (cart R M))))) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R M, Rle (Rmult B (@vector_norm M x)) (@vector_norm N' (f x))). +Axiom thm_LINEAR_INVERTIBLE_BOUNDED_BELOW : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, ((@linear M N' f) /\ ((@linear N' M g) /\ ((@o (cart R M) (cart R N') (cart R M) g f) = (@I (cart R M))))) -> exists B : R, forall x : cart R M, Rle (Rmult B (@vector_norm M x)) (@vector_norm N' (f x)). +Axiom thm_LINEAR_INJECTIVE_BOUNDED_BELOW_POS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R M, Rle (Rmult (@vector_norm M x) B) (@vector_norm N' (f x))). +Axiom thm_DIM_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@dim N' (@IMAGE (cart R M) (cart R N') f s)) = (@dim M s). +Axiom thm_LINEAR_INJECTIVE_DIMINDEX_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N')). +Axiom thm_LINEAR_SURJECTIVE_DIMINDEX_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall y : cart R N', exists x : cart R M, (f x) = y)) -> N.le (@dimindex N' (@UNIV N')) (@dimindex M (@UNIV M)). +Axiom thm_LINEAR_BIJECTIVE_DIMINDEX_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N')). +Axiom thm_INVERTIBLE_IMP_SQUARE_MATRIX : forall {M N' : Type'}, forall A : cart (cart R N') M, (@invertible M N' A) -> (@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N')). +Axiom thm_rowvector : forall {N' : Type'}, forall v : cart R N', (@rowvector N' v) = (@lambda (cart R N') unit (fun i : N => @lambda R N' (fun j : N => @dollar R N' v j))). +Axiom thm_columnvector : forall {N' : Type'}, forall v : cart R N', (@columnvector N' v) = (@lambda (cart R unit) N' (fun i : N => @lambda R unit (fun j : N => @dollar R N' v i))). +Axiom thm_TRANSP_COLUMNVECTOR : forall {_628996 : Type'}, forall v : cart R _628996, (@transp _628996 unit (@columnvector _628996 v)) = (@rowvector _628996 v). +Axiom thm_TRANSP_ROWVECTOR : forall {_629011 : Type'}, forall v : cart R _629011, (@transp unit _629011 (@rowvector _629011 v)) = (@columnvector _629011 v). +Axiom thm_DOT_ROWVECTOR_COLUMNVECTOR : forall {M N' : Type'}, forall A : cart (cart R N') M, forall v : cart R N', (@columnvector M (@matrix_vector_mul M N' A v)) = (@matrix_mul M N' unit A (@columnvector N' v)). +Axiom thm_DOT_MATRIX_PRODUCT : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (@dot N' x y) = (@dollar R unit (@dollar (cart R unit) unit (@matrix_mul unit N' unit (@rowvector N' x) (@columnvector N' y)) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))). +Axiom thm_DOT_MATRIX_VECTOR_MUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', forall x : cart R N', forall y : cart R N', (@dot N' (@matrix_vector_mul N' N' A x) (@matrix_vector_mul N' N' B y)) = (@dollar R unit (@dollar (cart R unit) unit (@matrix_mul unit N' unit (@rowvector N' x) (@matrix_mul N' N' unit (@matrix_mul N' N' N' (@transp N' N' A) B) (@columnvector N' y))) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))). +Axiom thm_MATRIX_VECTOR_MUL_IN_COLUMNSPACE : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R M, @IN (cart R N') (@matrix_vector_mul N' M A x) (@span N' (@columns N' M A)). +Axiom thm_SUBSPACE_ORTHOGONAL_TO_VECTOR : forall {_629244 : Type'}, forall x : cart R _629244, @subspace _629244 (@GSPEC (cart R _629244) (fun GEN_PVAR_2426 : cart R _629244 => exists y : cart R _629244, @SETSPEC (cart R _629244) GEN_PVAR_2426 (@orthogonal _629244 x y) y)). +Axiom thm_SUBSPACE_ORTHOGONAL_TO_VECTORS : forall {_629275 : Type'}, forall s : (cart R _629275) -> Prop, @subspace _629275 (@GSPEC (cart R _629275) (fun GEN_PVAR_2427 : cart R _629275 => exists y : cart R _629275, @SETSPEC (cart R _629275) GEN_PVAR_2427 (forall x : cart R _629275, (@IN (cart R _629275) x s) -> @orthogonal _629275 x y) y)). +Axiom thm_ORTHOGONAL_TO_SPAN : forall {_629333 : Type'}, forall s : (cart R _629333) -> Prop, forall x : cart R _629333, (forall y : cart R _629333, (@IN (cart R _629333) y s) -> @orthogonal _629333 x y) -> forall y : cart R _629333, (@IN (cart R _629333) y (@span _629333 s)) -> @orthogonal _629333 x y. +Axiom thm_ORTHOGONAL_TO_SPAN_EQ : forall {_629358 : Type'}, forall s : (cart R _629358) -> Prop, forall x : cart R _629358, (forall y : cart R _629358, (@IN (cart R _629358) y (@span _629358 s)) -> @orthogonal _629358 x y) = (forall y : cart R _629358, (@IN (cart R _629358) y s) -> @orthogonal _629358 x y). +Axiom thm_ORTHOGONAL_TO_SPANS_EQ : forall {_629406 : Type'}, forall s : (cart R _629406) -> Prop, forall t : (cart R _629406) -> Prop, (forall x : cart R _629406, forall y : cart R _629406, ((@IN (cart R _629406) x (@span _629406 s)) /\ (@IN (cart R _629406) y (@span _629406 t))) -> @orthogonal _629406 x y) = (forall x : cart R _629406, forall y : cart R _629406, ((@IN (cart R _629406) x s) /\ (@IN (cart R _629406) y t)) -> @orthogonal _629406 x y). +Axiom thm_ORTHOGONAL_NULLSPACE_ROWSPACE : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R M, forall y : cart R M, (((@matrix_vector_mul N' M A x) = (@vec N' (NUMERAL 0%N))) /\ (@IN (cart R M) y (@span M (@rows N' M A)))) -> @orthogonal M x y. +Axiom thm_NULLSPACE_INTER_ROWSPACE : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R M, (((@matrix_vector_mul N' M A x) = (@vec N' (NUMERAL 0%N))) /\ (@IN (cart R M) x (@span M (@rows N' M A)))) = (x = (@vec M (NUMERAL 0%N))). +Axiom thm_MATRIX_VECTOR_MUL_INJECTIVE_ON_ROWSPACE : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x (@span M (@rows N' M A))) /\ ((@IN (cart R M) y (@span M (@rows N' M A))) /\ ((@matrix_vector_mul N' M A x) = (@matrix_vector_mul N' M A y)))) -> x = y. +Axiom thm_DIM_ROWS_LE_DIM_COLUMNS : forall {M N' : Type'}, forall A : cart (cart R M) N', N.le (@dim M (@rows N' M A)) (@dim N' (@columns N' M A)). +Axiom thm_rank : forall {M N' : Type'}, forall A : cart (cart R M) N', (@rank M N' A) = (@dim N' (@columns N' M A)). +Axiom thm_RANK_ROW : forall {M N' : Type'}, forall A : cart (cart R M) N', (@rank M N' A) = (@dim M (@rows N' M A)). +Axiom thm_RANK_TRANSP : forall {M N' : Type'}, forall A : cart (cart R M) N', (@rank N' M (@transp N' M A)) = (@rank M N' A). +Axiom thm_MATRIX_VECTOR_MUL_BASIS : forall {M N' : Type'}, forall A : cart (cart R M) N', forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex M (@UNIV M)))) -> (@matrix_vector_mul N' M A (@basis M k)) = (@column N' M k A). +Axiom thm_COLUMNS_IMAGE_BASIS : forall {M N' : Type'}, forall A : cart (cart R M) N', (@columns N' M A) = (@IMAGE (cart R M) (cart R N') (fun x : cart R M => @matrix_vector_mul N' M A x) (@GSPEC (cart R M) (fun GEN_PVAR_2430 : cart R M => exists i : N, @SETSPEC (cart R M) GEN_PVAR_2430 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) (@basis M i)))). +Axiom thm_RANK_DIM_IM : forall {M N' : Type'}, forall A : cart (cart R M) N', (@rank M N' A) = (@dim N' (@IMAGE (cart R M) (cart R N') (fun x : cart R M => @matrix_vector_mul N' M A x) (@UNIV (cart R M)))). +Axiom thm_RANK_BOUND : forall {M N' : Type'}, forall A : cart (cart R M) N', N.le (@rank M N' A) (N.min (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))). +Axiom thm_FULL_RANK_INJECTIVE : forall {M N' : Type'}, forall A : cart (cart R M) N', ((@rank M N' A) = (@dimindex M (@UNIV M))) = (forall x : cart R M, forall y : cart R M, ((@matrix_vector_mul N' M A x) = (@matrix_vector_mul N' M A y)) -> x = y). +Axiom thm_FULL_RANK_SURJECTIVE : forall {M N' : Type'}, forall A : cart (cart R M) N', ((@rank M N' A) = (@dimindex N' (@UNIV N'))) = (forall y : cart R N', exists x : cart R M, (@matrix_vector_mul N' M A x) = y). +Axiom thm_RANK_I : forall {N' : Type'}, (@rank N' N' (@mat N' N' (NUMERAL (BIT1 0%N)))) = (@dimindex N' (@UNIV N')). +Axiom thm_MATRIX_FULL_LINEAR_EQUATIONS : forall {M N' : Type'}, forall A : cart (cart R M) N', forall b : cart R N', ((@rank M N' A) = (@dimindex N' (@UNIV N'))) -> exists x : cart R M, (@matrix_vector_mul N' M A x) = b. +Axiom thm_MATRIX_NONFULL_LINEAR_EQUATIONS_EQ : forall {M N' : Type'}, forall A : cart (cart R M) N', (exists x : cart R M, (~ (x = (@vec M (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' M A x) = (@vec N' (NUMERAL 0%N)))) = (~ ((@rank M N' A) = (@dimindex M (@UNIV M)))). +Axiom thm_MATRIX_NONFULL_LINEAR_EQUATIONS : forall {M N' : Type'}, forall A : cart (cart R M) N', (~ ((@rank M N' A) = (@dimindex M (@UNIV M)))) -> exists x : cart R M, (~ (x = (@vec M (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' M A x) = (@vec N' (NUMERAL 0%N))). +Axiom thm_MATRIX_TRIVIAL_LINEAR_EQUATIONS : forall {M N' : Type'}, forall A : cart (cart R M) N', (N.lt (@dimindex N' (@UNIV N')) (@dimindex M (@UNIV M))) -> exists x : cart R M, (~ (x = (@vec M (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' M A x) = (@vec N' (NUMERAL 0%N))). +Axiom thm_RANK_EQ_0 : forall {M N' : Type'}, forall A : cart (cart R M) N', ((@rank M N' A) = (NUMERAL 0%N)) = (A = (@mat N' M (NUMERAL 0%N))). +Axiom thm_RANK_0 : forall {_630206 _630207 : Type'}, (@rank _630206 _630207 (@mat _630207 _630206 (NUMERAL 0%N))) = (NUMERAL 0%N). +Axiom thm_RANK_MUL_LE_RIGHT : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R P) N', N.le (@rank P M (@matrix_mul M N' P A B)) (@rank P N' B). +Axiom thm_RANK_MUL_LE_LEFT : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R P) N', N.le (@rank P M (@matrix_mul M N' P A B)) (@rank N' M A). +Axiom thm_SPAN_COLUMNSPACE : forall {M N' : Type'}, forall A : cart (cart R M) N', (@span N' (@columns N' M A)) = (@GSPEC (cart R N') (fun GEN_PVAR_2431 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2431 (exists x : cart R M, (@matrix_vector_mul N' M A x) = y) y)). +Axiom thm_MATRIX_AUGMENTED_LINEAR_EQUATIONS : forall {M N' : Type'}, forall A : cart (cart R N') M, forall y : cart R N', (exists x : cart R M, (@matrix_vector_mul N' M (@transp M N' A) x) = y) = ((@rank N' (finite_sum M unit) (@pastecart (cart R N') M unit A (@rowvector N' y))) = (@rank N' M A)). +Axiom thm_NORM_COLUMN_LE_ONORM : forall {M N' : Type'}, forall A : cart (cart R N') M, forall i : N, Rle (@vector_norm M (@column M N' i A)) (@onorm N' M (fun x : cart R N' => @matrix_vector_mul M N' A x)). +Axiom thm_MATRIX_COMPONENT_LE_ONORM : forall {M N' : Type'}, forall A : cart (cart R N') M, forall i : N, forall j : N, Rle (Rabs (@dollar R N' (@dollar (cart R N') M A i) j)) (@onorm N' M (fun x : cart R N' => @matrix_vector_mul M N' A x)). +Axiom thm_COMPONENT_LE_ONORM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : N, forall j : N, (@linear M N' f) -> Rle (Rabs (@dollar R M (@dollar (cart R M) N' (@matrix M N' f) i) j)) (@onorm M N' f). +Axiom thm_ONORM_LE_MATRIX_COMPONENT_SUM : forall {M N' : Type'}, forall A : cart (cart R N') M, Rle (@onorm N' M (fun x : cart R N' => @matrix_vector_mul M N' A x)) (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M))) (fun i : N => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun j : N => Rabs (@dollar R N' (@dollar (cart R N') M A i) j)))). +Axiom thm_ONORM_LE_MATRIX_COMPONENT : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : R, (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> Rle (Rabs (@dollar R N' (@dollar (cart R N') M A i) j)) B) -> Rle (@onorm N' M (fun x : cart R N' => @matrix_vector_mul M N' A x)) (Rmult (R_of_N (@dimindex M (@UNIV M))) (Rmult (R_of_N (@dimindex N' (@UNIV N'))) B)). +Axiom thm_MATRIX_RATIONAL_APPROXIMATION : forall {M N' : Type'}, forall A : cart (cart R N') M, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists B : cart (cart R N') M, (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> rational (@dollar R N' (@dollar (cart R N') M B i) j)) /\ (Rlt (@onorm N' M (fun x : cart R N' => @matrix_vector_mul M N' (@matrix_sub M N' A B) x)) e). +Axiom thm_HYPERPLANE_EQ_EMPTY : forall {N' : Type'}, forall a : cart R N', forall b : R, ((@GSPEC (cart R N') (fun GEN_PVAR_2435 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2435 ((@dot N' a x) = b) x)) = (@EMPTY (cart R N'))) = ((a = (@vec N' (NUMERAL 0%N))) /\ (~ (b = (R_of_N (NUMERAL 0%N))))). +Axiom thm_HYPERPLANE_EQ_UNIV : forall {N' : Type'}, forall a : cart R N', forall b : R, ((@GSPEC (cart R N') (fun GEN_PVAR_2436 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2436 ((@dot N' a x) = b) x)) = (@UNIV (cart R N'))) = ((a = (@vec N' (NUMERAL 0%N))) /\ (b = (R_of_N (NUMERAL 0%N)))). +Axiom thm_HALFSPACE_EQ_EMPTY_LT : forall {N' : Type'}, forall a : cart R N', forall b : R, ((@GSPEC (cart R N') (fun GEN_PVAR_2438 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2438 (Rlt (@dot N' a x) b) x)) = (@EMPTY (cart R N'))) = ((a = (@vec N' (NUMERAL 0%N))) /\ (Rle b (R_of_N (NUMERAL 0%N)))). +Axiom thm_HALFSPACE_EQ_EMPTY_GT : forall {N' : Type'}, forall a : cart R N', forall b : R, ((@GSPEC (cart R N') (fun GEN_PVAR_2439 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2439 (Rgt (@dot N' a x) b) x)) = (@EMPTY (cart R N'))) = ((a = (@vec N' (NUMERAL 0%N))) /\ (Rge b (R_of_N (NUMERAL 0%N)))). +Axiom thm_HALFSPACE_EQ_EMPTY_LE : forall {N' : Type'}, forall a : cart R N', forall b : R, ((@GSPEC (cart R N') (fun GEN_PVAR_2441 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2441 (Rle (@dot N' a x) b) x)) = (@EMPTY (cart R N'))) = ((a = (@vec N' (NUMERAL 0%N))) /\ (Rlt b (R_of_N (NUMERAL 0%N)))). +Axiom thm_HALFSPACE_EQ_EMPTY_GE : forall {N' : Type'}, forall a : cart R N', forall b : R, ((@GSPEC (cart R N') (fun GEN_PVAR_2442 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2442 (Rge (@dot N' a x) b) x)) = (@EMPTY (cart R N'))) = ((a = (@vec N' (NUMERAL 0%N))) /\ (Rgt b (R_of_N (NUMERAL 0%N)))). +Axiom thm_ADJOINT_INJECTIVE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (forall x : cart R N', forall y : cart R N', ((@adjoint M N' f x) = (@adjoint M N' f y)) -> x = y) = (forall y : cart R N', exists x : cart R M, (f x) = y). +Axiom thm_ADJOINT_SURJECTIVE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (forall y : cart R M, exists x : cart R N', (@adjoint M N' f x) = y) = (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y). +Axiom thm_ADJOINT_INJECTIVE_INJECTIVE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (forall x : cart R N', forall y : cart R N', ((@adjoint N' N' f x) = (@adjoint N' N' f y)) -> x = y) = (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y). +Axiom thm_ADJOINT_INJECTIVE_INJECTIVE_0 : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (forall x : cart R N', ((@adjoint N' N' f x) = (@vec N' (NUMERAL 0%N))) -> x = (@vec N' (NUMERAL 0%N))) = (forall x : cart R N', ((f x) = (@vec N' (NUMERAL 0%N))) -> x = (@vec N' (NUMERAL 0%N))). +Axiom thm_TRANSP_INJECTIVE : forall {M N' : Type'}, forall m : cart (cart R M) N', (forall x : cart R N', forall y : cart R N', ((@matrix_vector_mul M N' (@transp N' M m) x) = (@matrix_vector_mul M N' (@transp N' M m) y)) -> x = y) = ((@IMAGE (cart R M) (cart R N') (fun x : cart R M => @matrix_vector_mul N' M m x) (@UNIV (cart R M))) = (@UNIV (cart R N'))). +Axiom thm_TRANSP_SURJECTIVE : forall {M N' : Type'}, forall m : cart (cart R M) N', ((@IMAGE (cart R N') (cart R M) (fun x : cart R N' => @matrix_vector_mul M N' (@transp N' M m) x) (@UNIV (cart R N'))) = (@UNIV (cart R M))) = (forall x : cart R M, forall y : cart R M, ((@matrix_vector_mul N' M m x) = (@matrix_vector_mul N' M m y)) -> x = y). +Axiom thm_LINEAR_SINGULAR_INTO_HYPERPLANE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (~ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) = (exists a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (forall x : cart R N', (@dot N' a (f x)) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_LINEAR_SINGULAR_IMAGE_HYPERPLANE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@linear N' N' f) /\ (~ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y))) -> exists a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) (@GSPEC (cart R N') (fun GEN_PVAR_2443 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2443 ((@dot N' a x) = (R_of_N (NUMERAL 0%N))) x))). +Axiom thm_SPAN_DELETE_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@span N' (@DELETE (cart R N') s (@vec N' (NUMERAL 0%N)))) = (@span N' s). +Axiom thm_DIM_BASIS_IMAGE : forall {N' : Type'}, forall k : N -> Prop, (@dim N' (@IMAGE N (cart R N') (@basis N') k)) = (@CARD N (@INTER N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) k)). +Axiom thm_SPAN_IMAGE_SCALE : forall {N' : Type'}, forall c : (cart R N') -> R, forall s : (cart R N') -> Prop, (forall x : cart R N', (@IN (cart R N') x s) -> ~ ((c x) = (R_of_N (NUMERAL 0%N)))) -> (@span N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' (c x) x) s)) = (@span N' s). +Axiom thm_DIM_IMAGE_SCALE : forall {N' : Type'}, forall c : (cart R N') -> R, forall s : (cart R N') -> Prop, (forall x : cart R N', (@IN (cart R N') x s) -> ~ ((c x) = (R_of_N (NUMERAL 0%N)))) -> (@dim N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' (c x) x) s)) = (@dim N' s). +Axiom thm_PAIRWISE_ORTHOGONAL_INDEPENDENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@pairwise (cart R N') (@orthogonal N') s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s))) -> @independent N' s. +Axiom thm_PAIRWISE_ORTHOGONAL_IMP_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@pairwise (cart R N') (@orthogonal N') s) -> @FINITE (cart R N') s. +Axiom thm_GRAM_SCHMIDT_STEP : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall x : cart R N', ((@pairwise (cart R N') (@orthogonal N') s) /\ (@IN (cart R N') x (@span N' s))) -> @orthogonal N' x (@vector_sub N' a (@vsum (cart R N') N' s (fun b : cart R N' => @percent N' (Rdiv (@dot N' b a) (@dot N' b b)) b))). +Axiom thm_ORTHOGONAL_EXTENSION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@pairwise (cart R N') (@orthogonal N') s) -> exists u : (cart R N') -> Prop, (@pairwise (cart R N') (@orthogonal N') (@UNION (cart R N') s u)) /\ ((@span N' (@UNION (cart R N') s u)) = (@span N' (@UNION (cart R N') s t))). +Axiom thm_ORTHOGONAL_EXTENSION_STRONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@pairwise (cart R N') (@orthogonal N') s) -> exists u : (cart R N') -> Prop, (@DISJOINT (cart R N') u (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) s)) /\ ((@pairwise (cart R N') (@orthogonal N') (@UNION (cart R N') s u)) /\ ((@span N' (@UNION (cart R N') s u)) = (@span N' (@UNION (cart R N') s t)))). +Axiom thm_ORTHONORMAL_EXTENSION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@pairwise (cart R N') (@orthogonal N') s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@vector_norm N' x) = (R_of_N (NUMERAL (BIT1 0%N))))) -> exists u : (cart R N') -> Prop, (@DISJOINT (cart R N') u s) /\ ((@pairwise (cart R N') (@orthogonal N') (@UNION (cart R N') s u)) /\ ((forall x : cart R N', (@IN (cart R N') x u) -> (@vector_norm N' x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@span N' (@UNION (cart R N') s u)) = (@span N' (@UNION (cart R N') s t))))). +Axiom thm_VECTOR_IN_ORTHOGONAL_SPANNINGSET : forall {N' : Type'}, forall a : cart R N', exists s : (cart R N') -> Prop, (@IN (cart R N') a s) /\ ((@pairwise (cart R N') (@orthogonal N') s) /\ ((@span N' s) = (@UNIV (cart R N')))). +Axiom thm_VECTOR_IN_ORTHOGONAL_BASIS : forall {N' : Type'}, forall a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) -> exists s : (cart R N') -> Prop, (@IN (cart R N') a s) /\ ((~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s)) /\ ((@pairwise (cart R N') (@orthogonal N') s) /\ ((@independent N' s) /\ ((@HAS_SIZE (cart R N') s (@dimindex N' (@UNIV N'))) /\ ((@span N' s) = (@UNIV (cart R N'))))))). +Axiom thm_VECTOR_IN_ORTHONORMAL_BASIS : forall {N' : Type'}, forall a : cart R N', ((@vector_norm N' a) = (R_of_N (NUMERAL (BIT1 0%N)))) -> exists s : (cart R N') -> Prop, (@IN (cart R N') a s) /\ ((@pairwise (cart R N') (@orthogonal N') s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (@vector_norm N' x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@independent N' s) /\ ((@HAS_SIZE (cart R N') s (@dimindex N' (@UNIV N'))) /\ ((@span N' s) = (@UNIV (cart R N'))))))). +Axiom thm_BESSEL_INEQUALITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@pairwise (cart R N') (@orthogonal N') s) /\ (forall x' : cart R N', (@IN (cart R N') x' s) -> (@vector_norm N' x') = (R_of_N (NUMERAL (BIT1 0%N))))) -> Rle (@sum (cart R N') s (fun e : cart R N' => real_pow (@dot N' e x) (NUMERAL (BIT0 (BIT1 0%N))))) (real_pow (@vector_norm N' x) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_ORTHOGONAL_SPANNINGSET_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> exists b : (cart R N') -> Prop, (@SUBSET (cart R N') b s) /\ ((@pairwise (cart R N') (@orthogonal N') b) /\ ((@span N' b) = s)). +Axiom thm_ORTHOGONAL_BASIS_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> exists b : (cart R N') -> Prop, (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) b)) /\ ((@SUBSET (cart R N') b s) /\ ((@pairwise (cart R N') (@orthogonal N') b) /\ ((@independent N' b) /\ ((@HAS_SIZE (cart R N') b (@dim N' s)) /\ ((@span N' b) = s))))). +Axiom thm_ORTHONORMAL_BASIS_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> exists b : (cart R N') -> Prop, (@SUBSET (cart R N') b s) /\ ((@pairwise (cart R N') (@orthogonal N') b) /\ ((forall x : cart R N', (@IN (cart R N') x b) -> (@vector_norm N' x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@independent N' b) /\ ((@HAS_SIZE (cart R N') b (@dim N' s)) /\ ((@span N' b) = s))))). +Axiom thm_ORTHOGONAL_TO_SUBSPACE_EXISTS_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@PSUBSET (cart R N') (@span N' s) (@span N' t)) -> exists x : cart R N', (~ (x = (@vec N' (NUMERAL 0%N)))) /\ ((@IN (cart R N') x (@span N' t)) /\ (forall y : cart R N', (@IN (cart R N') y (@span N' s)) -> @orthogonal N' x y)). +Axiom thm_ORTHOGONAL_TO_SUBSPACE_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (N.lt (@dim N' s) (@dimindex N' (@UNIV N'))) -> exists x : cart R N', (~ (x = (@vec N' (NUMERAL 0%N)))) /\ (forall y : cart R N', (@IN (cart R N') y s) -> @orthogonal N' x y). +Axiom thm_ORTHOGONAL_TO_VECTOR_EXISTS : forall {N' : Type'}, forall x : cart R N', (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> exists y : cart R N', (~ (y = (@vec N' (NUMERAL 0%N)))) /\ (@orthogonal N' x y). +Axiom thm_SPAN_NOT_UNIV_ORTHOGONAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ ((@span N' s) = (@UNIV (cart R N')))) -> exists a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (forall x : cart R N', (@IN (cart R N') x (@span N' s)) -> (@dot N' a x) = (R_of_N (NUMERAL 0%N))). +Axiom thm_SPAN_NOT_UNIV_SUBSET_HYPERPLANE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ ((@span N' s) = (@UNIV (cart R N')))) -> exists a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (@SUBSET (cart R N') (@span N' s) (@GSPEC (cart R N') (fun GEN_PVAR_2446 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2446 ((@dot N' a x) = (R_of_N (NUMERAL 0%N))) x))). +Axiom thm_LOWDIM_SUBSET_HYPERPLANE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (N.lt (@dim N' s) (@dimindex N' (@UNIV N'))) -> exists a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (@SUBSET (cart R N') (@span N' s) (@GSPEC (cart R N') (fun GEN_PVAR_2447 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2447 ((@dot N' a x) = (R_of_N (NUMERAL 0%N))) x))). +Axiom thm_VECTOR_EQ_DOT_SPAN : forall {N' : Type'}, forall b : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((forall v : cart R N', (@IN (cart R N') v b) -> (@dot N' v x) = (@dot N' v y)) /\ ((@IN (cart R N') x (@span N' b)) /\ (@IN (cart R N') y (@span N' b)))) -> x = y. +Axiom thm_ORTHONORMAL_BASIS_EXPAND : forall {N' : Type'}, forall b : (cart R N') -> Prop, forall x : cart R N', ((@pairwise (cart R N') (@orthogonal N') b) /\ ((forall v : cart R N', (@IN (cart R N') v b) -> (@vector_norm N' v) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@IN (cart R N') x (@span N' b)))) -> (@vsum (cart R N') N' b (fun v : cart R N' => @percent N' (@dot N' v x) v)) = x. +Axiom thm_ORTHONORMAL_BASIS_EXPAND_DOT : forall {N' : Type'}, forall b : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@pairwise (cart R N') (@orthogonal N') b) /\ ((forall v : cart R N', (@IN (cart R N') v b) -> (@vector_norm N' v) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@IN (cart R N') x (@span N' b)) \/ (@IN (cart R N') y (@span N' b))))) -> (@sum (cart R N') b (fun v : cart R N' => Rmult (@dot N' v x) (@dot N' v y))) = (@dot N' x y). +Axiom thm_ORTHONORMAL_BASIS_EXPAND_NORM : forall {N' : Type'}, forall b : (cart R N') -> Prop, forall x : cart R N', ((@pairwise (cart R N') (@orthogonal N') b) /\ ((forall v : cart R N', (@IN (cart R N') v b) -> (@vector_norm N' v) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@IN (cart R N') x (@span N' b)))) -> (@sum (cart R N') b (fun v : cart R N' => real_pow (@dot N' v x) (NUMERAL (BIT0 (BIT1 0%N))))) = (real_pow (@vector_norm N' x) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_ORTHOGONAL_IMP_INDEPENDENT_SUBSPACES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a s) /\ (@IN (cart R N') b t)) -> @orthogonal N' a b) -> @SUBSET (cart R N') (@INTER (cart R N') s t) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N'))). +Axiom thm_INDEPENDENT_SUBSPACES_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ (@subspace N' t)) -> (@SUBSET (cart R N') (@INTER (cart R N') s t) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))) = ((@INTER (cart R N') s t) = (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))). +Axiom thm_INDEPENDENT_SUBSPACES_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ (@subspace N' t)) -> (@SUBSET (cart R N') (@INTER (cart R N') s t) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))) = (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y t) /\ ((@vector_add N' x y) = (@vec N' (NUMERAL 0%N))))) -> (x = (@vec N' (NUMERAL 0%N))) /\ (y = (@vec N' (NUMERAL 0%N)))). +Axiom thm_INDEPENDENT_SUBSPACES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ (@subspace N' t)) -> (@SUBSET (cart R N') (@INTER (cart R N') s t) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))) = (forall x : cart R N', forall y : cart R N', forall x' : cart R N', forall y' : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') x' s) /\ ((@IN (cart R N') y t) /\ ((@IN (cart R N') y' t) /\ ((@vector_add N' x y) = (@vector_add N' x' y')))))) -> (x = x') /\ (y = y')). +Axiom thm_ORTHOGONAL_SUBSPACE_DECOMP_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', forall x' : cart R N', forall y' : cart R N', ((forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a s) /\ (@IN (cart R N') b t)) -> @orthogonal N' a b) /\ ((@IN (cart R N') x (@span N' s)) /\ ((@IN (cart R N') x' (@span N' s)) /\ ((@IN (cart R N') y (@span N' t)) /\ ((@IN (cart R N') y' (@span N' t)) /\ ((@vector_add N' x y) = (@vector_add N' x' y'))))))) -> (x = x') /\ (y = y'). +Axiom thm_ORTHOGONAL_SUBSPACE_DECOMP_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', exists y : cart R N', exists z : cart R N', (@IN (cart R N') y (@span N' s)) /\ ((forall w : cart R N', (@IN (cart R N') w (@span N' s)) -> @orthogonal N' z w) /\ (x = (@vector_add N' y z))). +Axiom thm_ORTHOGONAL_SUBSPACE_DECOMP : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', @ex1 (prod (cart R N') (cart R N')) (@GABS ((prod (cart R N') (cart R N')) -> Prop) (fun f : (prod (cart R N') (cart R N')) -> Prop => forall y : cart R N', forall z : cart R N', @GEQ Prop (f (@pair (cart R N') (cart R N') y z)) ((@IN (cart R N') y (@span N' s)) /\ ((@IN (cart R N') z (@GSPEC (cart R N') (fun GEN_PVAR_2449 : cart R N' => exists z' : cart R N', @SETSPEC (cart R N') GEN_PVAR_2449 (forall x' : cart R N', (@IN (cart R N') x' (@span N' s)) -> @orthogonal N' z' x') z'))) /\ (x = (@vector_add N' y z)))))). +Axiom thm_ISOMETRY_SUBSET_SUBSPACE : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@subspace M s) /\ ((@subspace N' t) /\ (N.le (@dim M s) (@dim N' t)))) -> exists f : (cart R M) -> cart R N', (@linear M N' f) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (@vector_norm N' (f x)) = (@vector_norm M x))). +Axiom thm_ISOMETRIES_SUBSPACES : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@subspace M s) /\ ((@subspace N' t) /\ ((@dim M s) = (@dim N' t)))) -> exists f : (cart R M) -> cart R N', exists g : (cart R N') -> cart R M, (@linear M N' f) /\ ((@linear N' M g) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ (((@IMAGE (cart R N') (cart R M) g t) = s) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (@vector_norm N' (f x)) = (@vector_norm M x)) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> (@vector_norm M (g y)) = (@vector_norm N' y)) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x) /\ (forall y : cart R N', (@IN (cart R N') y t) -> (f (g y)) = y))))))). +Axiom thm_ISOMETRY_SUBSPACES : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@subspace M s) /\ ((@subspace N' t) /\ ((@dim M s) = (@dim N' t)))) -> exists f : (cart R M) -> cart R N', (@linear M N' f) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (@vector_norm N' (f x)) = (@vector_norm M x))). +Axiom thm_ISOMETRY_UNIV_SUBSPACE : forall {M N' : Type'}, forall s : (cart R N') -> Prop, ((@subspace N' s) /\ ((@dimindex M (@UNIV M)) = (@dim N' s))) -> exists f : (cart R M) -> cart R N', (@linear M N' f) /\ (((@IMAGE (cart R M) (cart R N') f (@UNIV (cart R M))) = s) /\ (forall x : cart R M, (@vector_norm N' (f x)) = (@vector_norm M x))). +Axiom thm_ISOMETRY_UNIV_SUPERSET_SUBSPACE : forall {M N' : Type'}, forall s : (cart R N') -> Prop, ((@subspace N' s) /\ ((N.le (@dim N' s) (@dimindex M (@UNIV M))) /\ (N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))))) -> exists f : (cart R M) -> cart R N', (@linear M N' f) /\ ((@SUBSET (cart R N') s (@IMAGE (cart R M) (cart R N') f (@UNIV (cart R M)))) /\ (forall x : cart R M, (@vector_norm N' (f x)) = (@vector_norm M x))). +Axiom thm_ISOMETRY_UNIV_UNIV : forall {M N' : Type'}, (N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) -> exists f : (cart R M) -> cart R N', (@linear M N' f) /\ (forall x : cart R M, (@vector_norm N' (f x)) = (@vector_norm M x)). +Axiom thm_SUBSPACE_ISOMORPHISM : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@subspace M s) /\ ((@subspace N' t) /\ ((@dim M s) = (@dim N' t)))) -> exists f : (cart R M) -> cart R N', (@linear M N' f) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y)). +Axiom thm_ISOMORPHISMS_UNIV_UNIV : forall {M N' : Type'}, ((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) -> exists f : (cart R M) -> cart R N', exists g : (cart R N') -> cart R M, (@linear M N' f) /\ ((@linear N' M g) /\ ((forall x : cart R M, (@vector_norm N' (f x)) = (@vector_norm M x)) /\ ((forall y : cart R N', (@vector_norm M (g y)) = (@vector_norm N' y)) /\ ((forall x : cart R M, (g (f x)) = x) /\ (forall y : cart R N', (f (g y)) = y))))). +Axiom thm_SUBSPACE_HYPERPLANE : forall {N' : Type'}, forall a : cart R N', @subspace N' (@GSPEC (cart R N') (fun GEN_PVAR_2450 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2450 ((@dot N' a x) = (R_of_N (NUMERAL 0%N))) x)). +Axiom thm_SUBSPACE_SPECIAL_HYPERPLANE : forall {N' : Type'}, forall k : N, @subspace N' (@GSPEC (cart R N') (fun GEN_PVAR_2451 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2451 ((@dollar R N' x k) = (R_of_N (NUMERAL 0%N))) x)). +Axiom thm_SPECIAL_HYPERPLANE_SPAN : forall {N' : Type'}, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@GSPEC (cart R N') (fun GEN_PVAR_2452 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2452 ((@dollar R N' x k) = (R_of_N (NUMERAL 0%N))) x)) = (@span N' (@IMAGE N (cart R N') (@basis N') (@DELETE N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) k))). +Axiom thm_DIM_SPECIAL_HYPERPLANE : forall {N' : Type'}, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@dim N' (@GSPEC (cart R N') (fun GEN_PVAR_2454 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2454 ((@dollar R N' x k) = (R_of_N (NUMERAL 0%N))) x))) = (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N))). +Axiom thm_LOWDIM_EQ_INTER_HYPERPLANE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ ((@subspace N' t) /\ ((@SUBSET (cart R N') t s) /\ ((N.add (@dim N' t) (NUMERAL (BIT1 0%N))) = (@dim N' s))))) -> exists a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((@INTER (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2455 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2455 ((@dot N' a x) = (R_of_N (NUMERAL 0%N))) x)) s) = t). +Axiom thm_LOWDIM_EQ_HYPERPLANE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@dim N' s) = (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) -> exists a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((@span N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_2456 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2456 ((@dot N' a x) = (R_of_N (NUMERAL 0%N))) x))). +Axiom thm_DIM_IMAGE_KERNEL_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (@subspace M s)) -> (N.add (@dim N' (@IMAGE (cart R M) (cart R N') f s)) (@dim M (@GSPEC (cart R M) (fun GEN_PVAR_2465 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2465 ((@IN (cart R M) x s) /\ ((f x) = (@vec N' (NUMERAL 0%N)))) x)))) = (@dim M s). +Axiom thm_DIM_IMAGE_KERNEL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (N.add (@dim N' (@IMAGE (cart R M) (cart R N') f (@UNIV (cart R M)))) (@dim M (@GSPEC (cart R M) (fun GEN_PVAR_2466 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2466 ((f x) = (@vec N' (NUMERAL 0%N))) x)))) = (@dimindex M (@UNIV M)). +Axiom thm_DIM_SUMS_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ (@subspace N' t)) -> (N.add (@dim N' (@GSPEC (cart R N') (fun GEN_PVAR_2469 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2469 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))) (@dim N' (@INTER (cart R N') s t))) = (N.add (@dim N' s) (@dim N' t)). +Axiom thm_DIM_UNION_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ (@subspace N' t)) -> (N.add (@dim N' (@UNION (cart R N') s t)) (@dim N' (@INTER (cart R N') s t))) = (N.add (@dim N' s) (@dim N' t)). +Axiom thm_DIM_KERNEL_COMPOSE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, ((@linear M N' f) /\ (@linear N' P g)) -> N.le (@dim M (@GSPEC (cart R M) (fun GEN_PVAR_2476 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2476 ((@o (cart R M) (cart R N') (cart R P) g f x) = (@vec P (NUMERAL 0%N))) x))) (N.add (@dim M (@GSPEC (cart R M) (fun GEN_PVAR_2477 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2477 ((f x) = (@vec N' (NUMERAL 0%N))) x))) (@dim N' (@GSPEC (cart R N') (fun GEN_PVAR_2478 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2478 ((g y) = (@vec P (NUMERAL 0%N))) y)))). +Axiom thm_DIM_ORTHOGONAL_SUM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) -> (@dot N' x y) = (R_of_N (NUMERAL 0%N))) -> (@dim N' (@UNION (cart R N') s t)) = (N.add (@dim N' s) (@dim N' t)). +Axiom thm_DIM_SUBSPACE_ORTHOGONAL_TO_VECTORS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ ((@subspace N' t) /\ (@SUBSET (cart R N') s t))) -> (N.add (@dim N' (@GSPEC (cart R N') (fun GEN_PVAR_2479 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2479 ((@IN (cart R N') y t) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @orthogonal N' x y)) y))) (@dim N' s)) = (@dim N' t). +Axiom thm_DIM_SPECIAL_SUBSPACE : forall {N' : Type'}, forall k : N -> Prop, (@dim N' (@GSPEC (cart R N') (fun GEN_PVAR_2480 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2480 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ (@IN N i k))) -> (@dollar R N' x i) = (R_of_N (NUMERAL 0%N))) x))) = (@CARD N (@DIFF N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) k)). +Axiom thm_INDEPENDENT_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@independent N' s) /\ ((@independent N' t) /\ (@SUBSET (cart R N') (@INTER (cart R N') (@span N' s) (@span N' t)) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))))) -> @independent N' (@UNION (cart R N') s t). +Axiom thm_LINEAR_INJECTIVE_ON_IFF_DIM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (@subspace M s)) -> (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y) = ((@dim N' (@IMAGE (cart R M) (cart R N') f s)) = (@dim M s)). +Axiom thm_DIM_INJECTIVE_ON_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((@subspace M s) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y))) -> (@dim N' (@IMAGE (cart R M) (cart R N') f s)) = (@dim M s). +Axiom thm_DIM_EQ_SUBSPACES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ ((@subspace N' t) /\ ((@SUBSET (cart R N') s t) /\ (N.le (@dim N' t) (@dim N' s))))) -> s = t. +Axiom thm_DIM_EQ_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ ((@subspace N' t) /\ (@SUBSET (cart R N') s t))) -> ((@dim N' s) = (@dim N' t)) = (s = t). +Axiom thm_LINEAR_SURJECTIVE_ON_IFF_DIM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@linear M N' f) /\ ((@subspace M s) /\ ((@subspace N' t) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t)))) -> ((@IMAGE (cart R M) (cart R N') f s) = t) = ((@dim N' (@IMAGE (cart R M) (cart R N') f s)) = (@dim N' t)). +Axiom thm_LINEAR_INJECTIVE_IMP_SURJECTIVE_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@linear M N' f) /\ ((@subspace M s) /\ ((@subspace N' t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((N.le (@dim N' t) (@dim M s)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y)))))) -> (@IMAGE (cart R M) (cart R N') f s) = t. +Axiom thm_LINEAR_SURJECTIVE_IFF_INJECTIVE_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@linear M N' f) /\ ((@subspace M s) /\ ((@subspace N' t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@dim M s) = (@dim N' t)))))) -> ((@IMAGE (cart R M) (cart R N') f s) = t) = (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y). +Axiom thm_LINEAR_INJECTIVE_IFF_DIM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) = ((@dim N' (@IMAGE (cart R M) (cart R N') f (@UNIV (cart R M)))) = (@dimindex M (@UNIV M))). +Axiom thm_LINEAR_SURJECTIVE_IFF_DIM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@linear M N' f) -> (forall y : cart R N', exists x : cart R M, (f x) = y) = ((@dim N' (@IMAGE (cart R M) (cart R N') f (@UNIV (cart R M)))) = (@dimindex N' (@UNIV N'))). +Axiom thm_LINEAR_SURJECTIVE_IFF_INJECTIVE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ (@linear M N' f)) -> (forall y : cart R N', exists x : cart R M, (f x) = y) = (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y). +Axiom thm_MATRIX_INVERTIBLE_LEFT_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (N.le (@dimindex N' (@UNIV N')) (@dimindex M (@UNIV M)))) -> (@invertible N' M (@matrix M N' f)) = (exists g : (cart R N') -> cart R M, (@linear N' M g) /\ ((@o (cart R M) (cart R N') (cart R M) g f) = (@I (cart R M)))). +Axiom thm_MATRIX_INVERTIBLE_LEFT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (@invertible N' N' (@matrix N' N' f)) = (exists g : (cart R N') -> cart R N', (@linear N' N' g) /\ ((@o (cart R N') (cart R N') (cart R N') g f) = (@I (cart R N')))). +Axiom thm_MATRIX_INVERTIBLE_RIGHT_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N')))) -> (@invertible N' M (@matrix M N' f)) = (exists g : (cart R N') -> cart R M, (@linear N' M g) /\ ((@o (cart R N') (cart R M) (cart R N') f g) = (@I (cart R N')))). +Axiom thm_MATRIX_INVERTIBLE_RIGHT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> (@invertible N' N' (@matrix N' N' f)) = (exists g : (cart R N') -> cart R N', (@linear N' N' g) /\ ((@o (cart R N') (cart R N') (cart R N') f g) = (@I (cart R N')))). +Axiom thm_PASTECART_AS_ORTHOGONAL_SUM : forall {M N' : Type'}, forall x : cart R M, forall y : cart R N', (@pastecart R M N' x y) = (@vector_add (finite_sum M N') (@pastecart R M N' x (@vec N' (NUMERAL 0%N))) (@pastecart R M N' (@vec M (NUMERAL 0%N)) y)). +Axiom thm_PCROSS_AS_ORTHOGONAL_SUM : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@PCROSS R M N' s t) = (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_2481 : cart R (finite_sum M N') => exists u : cart R (finite_sum M N'), exists v : cart R (finite_sum M N'), @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_2481 ((@IN (cart R (finite_sum M N')) u (@IMAGE (cart R M) (cart R (finite_sum M N')) (fun x : cart R M => @pastecart R M N' x (@vec N' (NUMERAL 0%N))) s)) /\ (@IN (cart R (finite_sum M N')) v (@IMAGE (cart R N') (cart R (finite_sum M N')) (fun y : cart R N' => @pastecart R M N' (@vec M (NUMERAL 0%N)) y) t))) (@vector_add (finite_sum M N') u v))). +Axiom thm_DIM_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@subspace M s) /\ (@subspace N' t)) -> (@dim (finite_sum M N') (@PCROSS R M N' s t)) = (N.add (@dim M s) (@dim N' t)). +Axiom thm_SPAN_PCROSS_SUBSET : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, @SUBSET (cart R (finite_sum M N')) (@span (finite_sum M N') (@PCROSS R M N' s t)) (@PCROSS R M N' (@span M s) (@span N' t)). +Axiom thm_SPAN_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R M)))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ ((@IN (cart R M) (@vec M (NUMERAL 0%N)) s) \/ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) t)))) -> (@span (finite_sum M N') (@PCROSS R M N' s t)) = (@PCROSS R M N' (@span M s) (@span N' t)). +Axiom thm_DIM_PCROSS_STRONG : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R M)))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ ((@IN (cart R M) (@vec M (NUMERAL 0%N)) s) \/ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) t)))) -> (@dim (finite_sum M N') (@PCROSS R M N' s t)) = (N.add (@dim M s) (@dim N' t)). +Axiom thm_SPAN_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@UNION (cart R N') s t)))) -> (@span N' (@GSPEC (cart R N') (fun GEN_PVAR_2482 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2482 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))) = (@GSPEC (cart R N') (fun GEN_PVAR_2483 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2483 ((@IN (cart R N') x (@span N' s)) /\ (@IN (cart R N') y (@span N' t))) (@vector_add N' x y))). +Axiom thm_RANK_NULLSPACE : forall {M N' : Type'}, forall A : cart (cart R M) N', (N.add (@rank M N' A) (@dim M (@GSPEC (cart R M) (fun GEN_PVAR_2484 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2484 ((@matrix_vector_mul N' M A x) = (@vec N' (NUMERAL 0%N))) x)))) = (@dimindex M (@UNIV M)). +Axiom thm_RANK_SYLVESTER : forall {M N' P : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R P) N', N.le (N.add (@rank N' M A) (@rank P N' B)) (N.add (@rank P M (@matrix_mul M N' P A B)) (@dimindex N' (@UNIV N'))). +Axiom thm_RANK_GRAM : forall {M N' : Type'}, forall A : cart (cart R M) N', (@rank M M (@matrix_mul M N' M (@transp N' M A) A)) = (@rank M N' A). +Axiom thm_RANK_TRIANGLE : forall {M N' : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R M) N', N.le (@rank M N' (@matrix_add N' M A B)) (N.add (@rank M N' A) (@rank M N' B)). +Axiom thm_COVARIANCE_MATRIX_EQ_0 : forall {M N' : Type'}, forall A : cart (cart R N') M, ((@matrix_mul N' M N' (@transp M N' A) A) = (@mat N' N' (NUMERAL 0%N))) = (A = (@mat M N' (NUMERAL 0%N))). +Axiom thm_MATRIX_MUL_COVARIANCE_LCANCEL : forall {M N' P : Type'}, forall A : cart (cart R N') P, forall B : cart (cart R M) N', forall C : cart (cart R M) N', ((@matrix_mul N' N' M (@matrix_mul N' P N' (@transp P N' A) A) B) = (@matrix_mul N' N' M (@matrix_mul N' P N' (@transp P N' A) A) C)) = ((@matrix_mul P N' M A B) = (@matrix_mul P N' M A C)). +Axiom thm_MATRIX_MUL_COVARIANCE_RCANCEL : forall {M N' P : Type'}, forall A : cart (cart R P) N', forall B : cart (cart R N') M, forall C : cart (cart R N') M, ((@matrix_mul M N' N' B (@matrix_mul N' P N' A (@transp N' P A))) = (@matrix_mul M N' N' C (@matrix_mul N' P N' A (@transp N' P A)))) = ((@matrix_mul M N' P B A) = (@matrix_mul M N' P C A)). +Axiom thm_MATRIX_VECTOR_MUL_COVARIANCE_EQ_0 : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R M, ((@matrix_vector_mul M M (@matrix_mul M N' M (@transp N' M A) A) x) = (@vec M (NUMERAL 0%N))) = ((@matrix_vector_mul N' M A x) = (@vec N' (NUMERAL 0%N))). +Axiom thm_matrix_inv : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_inv M N' A) = (@matrix N' M (fun y : cart R N' => @ε (cart R M) (fun x : cart R M => (forall w : cart R M, ((@matrix_vector_mul N' M A w) = (@vec N' (NUMERAL 0%N))) -> @orthogonal M x w) /\ (forall z : cart R M, @orthogonal N' (@vector_sub N' y (@matrix_vector_mul N' M A x)) (@matrix_vector_mul N' M A z))))). +Axiom thm_MATRIX_INV_MUL_INNER : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_mul N' M M A (@matrix_mul M N' M (@matrix_inv M N' A) A)) = A. +Axiom thm_SYMMETRIC_MATRIX_INV_RMUL : forall {M N' : Type'}, forall A : cart (cart R M) N', @symmetric_matrix N' (@matrix_mul N' M N' A (@matrix_inv M N' A)). +Axiom thm_MATRIX_INV_INV : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_inv N' M (@matrix_inv M N' A)) = A. +Axiom thm_MATRIX_INV_EQ : forall {M N' : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R M) N', ((@matrix_inv M N' A) = (@matrix_inv M N' B)) = (A = B). +Axiom thm_MATRIX_INV_MUL_OUTER : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_mul M N' N' (@matrix_inv M N' A) (@matrix_mul N' M N' A (@matrix_inv M N' A))) = (@matrix_inv M N' A). +Axiom thm_SYMMETRIC_MATRIX_INV_LMUL : forall {M N' : Type'}, forall A : cart (cart R M) N', @symmetric_matrix M (@matrix_mul M N' M (@matrix_inv M N' A) A). +Axiom thm_MATRIX_INV_UNIQUE_STRONG : forall {M N' : Type'}, forall A : cart (cart R M) N', forall X : cart (cart R N') M, (((@matrix_mul N' M M A (@matrix_mul M N' M X A)) = A) /\ (((@matrix_mul M N' N' X (@matrix_mul N' M N' A X)) = X) /\ ((@symmetric_matrix N' (@matrix_mul N' M N' A X)) /\ (@symmetric_matrix M (@matrix_mul M N' M X A))))) -> (@matrix_inv M N' A) = X. +Axiom thm_MATRIX_INV_TRANSP : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_inv N' M (@transp N' M A)) = (@transp M N' (@matrix_inv M N' A)). +Axiom thm_TRANSP_MATRIX_INV : forall {M N' : Type'}, forall A : cart (cart R M) N', (@transp M N' (@matrix_inv M N' A)) = (@matrix_inv N' M (@transp N' M A)). +Axiom thm_SYMMETRIC_MATRIX_INV : forall {N' : Type'}, forall A : cart (cart R N') N', (@symmetric_matrix N' (@matrix_inv N' N' A)) = (@symmetric_matrix N' A). +Axiom thm_MATRIX_INV_0 : forall {M N' : Type'}, (@matrix_inv M N' (@mat N' M (NUMERAL 0%N))) = (@mat M N' (NUMERAL 0%N)). +Axiom thm_MATRIX_INV_EQ_0 : forall {M N' : Type'}, forall A : cart (cart R M) N', ((@matrix_inv M N' A) = (@mat M N' (NUMERAL 0%N))) = (A = (@mat N' M (NUMERAL 0%N))). +Axiom thm_MATRIX_INV_CMUL : forall {M N' : Type'}, forall c : R, forall A : cart (cart R M) N', (@matrix_inv M N' (@__ N' M c A)) = (@__ M N' (Rinv c) (@matrix_inv M N' A)). +Axiom thm_MATRIX_INV : forall {M N' : Type'}, forall A : cart (cart R N') M, (@invertible M N' A) -> ((@matrix_mul M N' M A (@matrix_inv N' M A)) = (@mat M M (NUMERAL (BIT1 0%N)))) /\ ((@matrix_mul N' M N' (@matrix_inv N' M A) A) = (@mat N' N' (NUMERAL (BIT1 0%N)))). +Axiom thm_MATRIX_INV_LEFT : forall {N' : Type'}, forall A : cart (cart R N') N', ((@matrix_mul N' N' N' (@matrix_inv N' N' A) A) = (@mat N' N' (NUMERAL (BIT1 0%N)))) = (@invertible N' N' A). +Axiom thm_MATRIX_INV_RIGHT : forall {N' : Type'}, forall A : cart (cart R N') N', ((@matrix_mul N' N' N' A (@matrix_inv N' N' A)) = (@mat N' N' (NUMERAL (BIT1 0%N)))) = (@invertible N' N' A). +Axiom thm_MATRIX_MUL_LCANCEL : forall {M N' P : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R P) M, forall C : cart (cart R P) M, (@invertible N' M A) -> ((@matrix_mul N' M P A B) = (@matrix_mul N' M P A C)) = (B = C). +Axiom thm_MATRIX_MUL_RCANCEL : forall {M N' P : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R M) N', forall C : cart (cart R P) M, (@invertible M P C) -> ((@matrix_mul N' M P A C) = (@matrix_mul N' M P B C)) = (A = B). +Axiom thm_RANK_INVERTIBLE_RMUL : forall {M N' P : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R P) M, (@invertible M P B) -> (@rank P N' (@matrix_mul N' M P A B)) = (@rank M N' A). +Axiom thm_RANK_INVERTIBLE_LMUL : forall {M N' P : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R P) M, (@invertible N' M A) -> (@rank P N' (@matrix_mul N' M P A B)) = (@rank P M B). +Axiom thm_RANK_CMUL : forall {M N' : Type'}, forall A : cart (cart R N') M, forall c : R, (@rank N' M (@__ M N' c A)) = (@COND N (c = (R_of_N (NUMERAL 0%N))) (NUMERAL 0%N) (@rank N' M A)). +Axiom thm_RANK_NEG : forall {M N' : Type'}, forall A : cart (cart R N') M, (@rank N' M (@matrix_neg M N' A)) = (@rank N' M A). +Axiom thm_MATRIX_INV_UNIQUE : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R M) N', (((@matrix_mul M N' M A B) = (@mat M M (NUMERAL (BIT1 0%N)))) /\ ((@matrix_mul N' M N' B A) = (@mat N' N' (NUMERAL (BIT1 0%N))))) -> (@matrix_inv N' M A) = B. +Axiom thm_MATRIX_INV_I : forall {N' : Type'}, (@matrix_inv N' N' (@mat N' N' (NUMERAL (BIT1 0%N)))) = (@mat N' N' (NUMERAL (BIT1 0%N))). +Axiom thm_INVERTIBLE_MATRIX_INV : forall {M N' : Type'}, forall A : cart (cart R M) N', (@invertible M N' (@matrix_inv M N' A)) = (@invertible N' M A). +Axiom thm_MATRIX_INV_UNIQUE_LEFT : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@matrix_mul N' N' N' A B) = (@mat N' N' (NUMERAL (BIT1 0%N)))) -> (@matrix_inv N' N' B) = A. +Axiom thm_MATRIX_INV_UNIQUE_RIGHT : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@matrix_mul N' N' N' A B) = (@mat N' N' (NUMERAL (BIT1 0%N)))) -> (@matrix_inv N' N' A) = B. +Axiom thm_MATRIX_INV_COVARIANCE : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_inv M M (@matrix_mul M N' M (@transp N' M A) A)) = (@matrix_mul M N' M (@matrix_inv M N' A) (@transp M N' (@matrix_inv M N' A))). +Axiom thm_COVARIANCE_MATRIX_INV : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_mul N' M N' (@transp M N' (@matrix_inv M N' A)) (@matrix_inv M N' A)) = (@matrix_inv N' N' (@matrix_mul N' M N' A (@transp N' M A))). +Axiom thm_NORMAL_MATRIX_INV : forall {N' : Type'}, forall A : cart (cart R N') N', (@normal_matrix N' (@matrix_inv N' N' A)) = (@normal_matrix N' A). +Axiom thm_MATRIX_INV_COVARIANCE_RMUL : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_mul M M N' (@matrix_inv M M (@matrix_mul M N' M (@transp N' M A) A)) (@transp N' M A)) = (@matrix_inv M N' A). +Axiom thm_MATRIX_INV_COVARIANCE_LMUL : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_mul M N' N' (@transp N' M A) (@matrix_inv N' N' (@matrix_mul N' M N' A (@transp N' M A)))) = (@matrix_inv M N' A). +Axiom thm_RANK_SIMILAR : forall {M N' : Type'}, forall A : cart (cart R N') N', forall U : cart (cart R M) N', (@invertible N' M U) -> (@rank M M (@matrix_mul M N' M (@matrix_inv M N' U) (@matrix_mul N' N' M A U))) = (@rank N' N' A). +Axiom thm_RANK_MATRIX_INV : forall {M N' : Type'}, forall A : cart (cart R M) N', (@rank N' M (@matrix_inv M N' A)) = (@rank M N' A). +Axiom thm_RANK_MATRIX_INV_RMUL : forall {M N' : Type'}, forall A : cart (cart R M) N', (@rank N' N' (@matrix_mul N' M N' A (@matrix_inv M N' A))) = (@rank M N' A). +Axiom thm_RANK_MATRIX_INV_LMUL : forall {M N' : Type'}, forall A : cart (cart R M) N', (@rank M M (@matrix_mul M N' M (@matrix_inv M N' A) A)) = (@rank M N' A). +Axiom thm_MATRIX_INV_MULTIPLE_TRANP_RIGHT : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_inv M N' A) = (@matrix_mul M N' N' (@matrix_inv M N' A) (@matrix_mul N' M N' (@transp M N' (@matrix_inv M N' A)) (@transp N' M A))). +Axiom thm_MATRIX_TRANSP_MULTIPLE_INV_RIGHT : forall {M N' : Type'}, forall A : cart (cart R M) N', (@transp N' M A) = (@matrix_mul M N' N' (@transp N' M A) (@matrix_mul N' M N' A (@matrix_inv M N' A))). +Axiom thm_MATRIX_INV_MULTIPLE_TRANP_LEFT : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_inv M N' A) = (@matrix_mul M N' N' (@transp N' M A) (@matrix_mul N' M N' (@transp M N' (@matrix_inv M N' A)) (@matrix_inv M N' A))). +Axiom thm_MATRIX_TRANSP_MULTIPLE_INV_LEFT : forall {M N' : Type'}, forall A : cart (cart R M) N', (@transp N' M A) = (@matrix_mul M N' N' (@matrix_inv M N' A) (@matrix_mul N' M N' A (@transp N' M A))). +Axiom thm_MATRIX_VECTOR_MUL_INV_EQ_0 : forall {M N' : Type'} (x : cart R N'), forall A : cart (cart R M) N', ((@matrix_vector_mul M N' (@matrix_inv M N' A) x) = (@vec M (NUMERAL 0%N))) = ((@matrix_vector_mul M N' (@transp N' M A) x) = (@vec M (NUMERAL 0%N))). +Axiom thm_KERNEL_MATRIX_INV : forall {M N' : Type'}, forall A : cart (cart R M) N', (@GSPEC (cart R N') (fun GEN_PVAR_2491 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2491 ((@matrix_vector_mul M N' (@matrix_inv M N' A) x) = (@vec M (NUMERAL 0%N))) x)) = (@GSPEC (cart R N') (fun GEN_PVAR_2492 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2492 ((@matrix_vector_mul M N' (@transp N' M A) x) = (@vec M (NUMERAL 0%N))) x)). +Axiom thm_IMAGE_MATRIX_INV : forall {M N' : Type'}, forall A : cart (cart R M) N', (@IMAGE (cart R N') (cart R M) (fun x : cart R N' => @matrix_vector_mul M N' (@matrix_inv M N' A) x) (@UNIV (cart R N'))) = (@IMAGE (cart R N') (cart R M) (fun x : cart R N' => @matrix_vector_mul M N' (@transp N' M A) x) (@UNIV (cart R N'))). +Axiom thm_COMMUTING_MATRIX_INV_COVARIANCE : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_mul M M M (@matrix_inv M M (@matrix_mul M N' M (@transp N' M A) A)) (@matrix_mul M N' M (@transp N' M A) A)) = (@matrix_mul M M M (@matrix_mul M N' M (@transp N' M A) A) (@matrix_inv M M (@matrix_mul M N' M (@transp N' M A) A))). +Axiom thm_COMMUTING_MATRIX_INV_NORMAL : forall {N' : Type'}, forall A : cart (cart R N') N', (@normal_matrix N' A) -> (@matrix_mul N' N' N' (@matrix_inv N' N' A) A) = (@matrix_mul N' N' N' A (@matrix_inv N' N' A)). +Axiom thm_MATRIX_MUL_INV_EQ_0 : forall {M N' P : Type'}, forall A : cart (cart R P) N', forall B : cart (cart R N') M, ((@matrix_mul P N' M (@matrix_inv P N' A) (@matrix_inv N' M B)) = (@mat P M (NUMERAL 0%N))) = ((@matrix_mul M N' P B A) = (@mat M P (NUMERAL 0%N))). +Axiom thm_MATRIX_INV_IDEMPOTENT : forall {N' : Type'}, forall A : cart (cart R N') N', ((@symmetric_matrix N' A) /\ ((@matrix_mul N' N' N' A A) = A)) -> (@matrix_inv N' N' A) = A. +Axiom thm_IDEMPOTENT_MATRIX_MUL_LINV : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_mul N' N' N' (@matrix_mul N' M N' (@matrix_inv N' M A) A) (@matrix_mul N' M N' (@matrix_inv N' M A) A)) = (@matrix_mul N' M N' (@matrix_inv N' M A) A). +Axiom thm_IDEMPOTENT_MATRIX_MUL_RINV : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_mul M M M (@matrix_mul M N' M A (@matrix_inv N' M A)) (@matrix_mul M N' M A (@matrix_inv N' M A))) = (@matrix_mul M N' M A (@matrix_inv N' M A)). +Axiom thm_MATRIX_INV_MUL_LINV : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_inv N' N' (@matrix_mul N' M N' (@matrix_inv N' M A) A)) = (@matrix_mul N' M N' (@matrix_inv N' M A) A). +Axiom thm_MATRIX_INV_MUL_RINV : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_inv M M (@matrix_mul M N' M A (@matrix_inv N' M A))) = (@matrix_mul M N' M A (@matrix_inv N' M A)). +Axiom thm_NUMSEG_DIMINDEX_NONEMPTY : forall {N' : Type'}, exists i : N, @IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))). +Axiom thm_INFNORM_SET_IMAGE : forall {_644596 N' : Type'} (x : cart R _644596), (@GSPEC R (fun GEN_PVAR_2494 : R => exists i : N, @SETSPEC R GEN_PVAR_2494 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (Rabs (@dollar R _644596 x i)))) = (@IMAGE N R (fun i : N => Rabs (@dollar R _644596 x i)) (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))). +Axiom thm_INFNORM_SET_LEMMA : forall {N' : Type'} (x : cart R N'), (@FINITE R (@GSPEC R (fun GEN_PVAR_2495 : R => exists i : N, @SETSPEC R GEN_PVAR_2495 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (Rabs (@dollar R N' x i))))) /\ (~ ((@GSPEC R (fun GEN_PVAR_2496 : R => exists i : N, @SETSPEC R GEN_PVAR_2496 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (Rabs (@dollar R N' x i)))) = (@EMPTY R))). +Axiom thm_INFNORM_POS_LE : forall {_644694 : Type'}, forall x : cart R _644694, Rle (R_of_N (NUMERAL 0%N)) (@infnorm _644694 x). +Axiom thm_INFNORM_TRIANGLE : forall {_644752 : Type'}, forall x : cart R _644752, forall y : cart R _644752, Rle (@infnorm _644752 (@vector_add _644752 x y)) (Rplus (@infnorm _644752 x) (@infnorm _644752 y)). +Axiom thm_INFNORM_EQ_0 : forall {_644789 : Type'}, forall x : cart R _644789, ((@infnorm _644789 x) = (R_of_N (NUMERAL 0%N))) = (x = (@vec _644789 (NUMERAL 0%N))). +Axiom thm_INFNORM_0 : forall {_644797 : Type'}, (@infnorm _644797 (@vec _644797 (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_INFNORM_NEG : forall {_644816 : Type'}, forall x : cart R _644816, (@infnorm _644816 (@vector_neg _644816 x)) = (@infnorm _644816 x). +Axiom thm_INFNORM_SUB : forall {_644847 : Type'}, forall x : cart R _644847, forall y : cart R _644847, (@infnorm _644847 (@vector_sub _644847 x y)) = (@infnorm _644847 (@vector_sub _644847 y x)). +Axiom thm_REAL_ABS_SUB_INFNORM : forall {_644899 : Type'} (x : cart R _644899) (y : cart R _644899), Rle (Rabs (Rminus (@infnorm _644899 x) (@infnorm _644899 y))) (@infnorm _644899 (@vector_sub _644899 x y)). +Axiom thm_REAL_ABS_INFNORM : forall {_644914 : Type'}, forall x : cart R _644914, (Rabs (@infnorm _644914 x)) = (@infnorm _644914 x). +Axiom thm_COMPONENT_LE_INFNORM : forall {N' : Type'}, forall x : cart R N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (Rabs (@dollar R N' x i)) (@infnorm N' x). +Axiom thm_INFNORM_MUL_LEMMA : forall {_644996 : Type'}, forall a : R, forall x : cart R _644996, Rle (@infnorm _644996 (@percent _644996 a x)) (Rmult (Rabs a) (@infnorm _644996 x)). +Axiom thm_INFNORM_MUL : forall {N' : Type'}, forall a : R, forall x : cart R N', (@infnorm N' (@percent N' a x)) = (Rmult (Rabs a) (@infnorm N' x)). +Axiom thm_INFNORM_POS_LT : forall {_645070 : Type'}, forall x : cart R _645070, (Rlt (R_of_N (NUMERAL 0%N)) (@infnorm _645070 x)) = (~ (x = (@vec _645070 (NUMERAL 0%N)))). +Axiom thm_INFNORM_LE_NORM : forall {_645080 : Type'}, forall x : cart R _645080, Rle (@infnorm _645080 x) (@vector_norm _645080 x). +Axiom thm_NORM_LE_INFNORM : forall {N' : Type'}, forall x : cart R N', Rle (@vector_norm N' x) (Rmult (sqrt (R_of_N (@dimindex N' (@UNIV N')))) (@infnorm N' x)). +Axiom thm_NORM_CAUCHY_SCHWARZ_EQ : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', ((@dot N' x y) = (Rmult (@vector_norm N' x) (@vector_norm N' y))) = ((@percent N' (@vector_norm N' x) y) = (@percent N' (@vector_norm N' y) x)). +Axiom thm_NORM_CAUCHY_SCHWARZ_ABS_EQ : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', ((Rabs (@dot N' x y)) = (Rmult (@vector_norm N' x) (@vector_norm N' y))) = (((@percent N' (@vector_norm N' x) y) = (@percent N' (@vector_norm N' y) x)) \/ ((@percent N' (@vector_norm N' x) y) = (@percent N' (Ropp (@vector_norm N' y)) x))). +Axiom thm_NORM_TRIANGLE_EQ : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', ((@vector_norm N' (@vector_add N' x y)) = (Rplus (@vector_norm N' x) (@vector_norm N' y))) = ((@percent N' (@vector_norm N' x) y) = (@percent N' (@vector_norm N' y) x)). +Axiom thm_DIST_TRIANGLE_EQ : forall {_645583 : Type'}, forall x : cart R _645583, forall y : cart R _645583, forall z : cart R _645583, ((@distance _645583 (@pair (cart R _645583) (cart R _645583) x z)) = (Rplus (@distance _645583 (@pair (cart R _645583) (cart R _645583) x y)) (@distance _645583 (@pair (cart R _645583) (cart R _645583) y z)))) = ((@percent _645583 (@vector_norm _645583 (@vector_sub _645583 x y)) (@vector_sub _645583 y z)) = (@percent _645583 (@vector_norm _645583 (@vector_sub _645583 y z)) (@vector_sub _645583 x y))). +Axiom thm_NORM_CROSS_MULTIPLY : forall {N' : Type'}, forall a : R, forall b : R, forall x : cart R N', forall y : cart R N', (((@percent N' a x) = (@percent N' b y)) /\ ((Rlt (R_of_N (NUMERAL 0%N)) a) /\ (Rlt (R_of_N (NUMERAL 0%N)) b))) -> (@percent N' (@vector_norm N' y) x) = (@percent N' (@vector_norm N' x) y). +Axiom thm_collinear : forall {_645714 : Type'}, forall s : (cart R _645714) -> Prop, (@collinear _645714 s) = (exists u : cart R _645714, forall x : cart R _645714, forall y : cart R _645714, ((@IN (cart R _645714) x s) /\ (@IN (cart R _645714) y s)) -> exists c : R, (@vector_sub _645714 x y) = (@percent _645714 c u)). +Axiom thm_COLLINEAR_ALT2 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@collinear N' s) = (exists u : cart R N', exists v : cart R N', forall x : cart R N', (@IN (cart R N') x s) -> exists c : R, (@vector_sub N' x u) = (@percent N' c v)). +Axiom thm_COLLINEAR_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@collinear N' s) = (exists u : cart R N', exists v : cart R N', forall x : cart R N', (@IN (cart R N') x s) -> exists c : R, x = (@vector_add N' u (@percent N' c v))). +Axiom thm_COLLINEAR_SUBSET : forall {_645913 : Type'}, forall s : (cart R _645913) -> Prop, forall t : (cart R _645913) -> Prop, ((@collinear _645913 t) /\ (@SUBSET (cart R _645913) s t)) -> @collinear _645913 s. +Axiom thm_COLLINEAR_EMPTY : forall {_645916 : Type'}, @collinear _645916 (@EMPTY (cart R _645916)). +Axiom thm_COLLINEAR_SING : forall {_645924 : Type'}, forall x : cart R _645924, @collinear _645924 (@INSERT (cart R _645924) x (@EMPTY (cart R _645924))). +Axiom thm_COLLINEAR_2 : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', @collinear N' (@INSERT (cart R N') x (@INSERT (cart R N') y (@EMPTY (cart R N')))). +Axiom thm_COLLINEAR_SMALL : forall {_646007 : Type'}, forall s : (cart R _646007) -> Prop, ((@FINITE (cart R _646007) s) /\ (N.le (@CARD (cart R _646007) s) (NUMERAL (BIT0 (BIT1 0%N))))) -> @collinear _646007 s. +Axiom thm_COLLINEAR_3 : forall {_646166 : Type'}, forall x : cart R _646166, forall y : cart R _646166, forall z : cart R _646166, (@collinear _646166 (@INSERT (cart R _646166) x (@INSERT (cart R _646166) y (@INSERT (cart R _646166) z (@EMPTY (cart R _646166)))))) = (@collinear _646166 (@INSERT (cart R _646166) (@vec _646166 (NUMERAL 0%N)) (@INSERT (cart R _646166) (@vector_sub _646166 x y) (@INSERT (cart R _646166) (@vector_sub _646166 z y) (@EMPTY (cart R _646166)))))). +Axiom thm_COLLINEAR_LEMMA : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (@collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') x (@INSERT (cart R N') y (@EMPTY (cart R N')))))) = ((x = (@vec N' (NUMERAL 0%N))) \/ ((y = (@vec N' (NUMERAL 0%N))) \/ (exists c : R, y = (@percent N' c x)))). +Axiom thm_COLLINEAR_LEMMA_ALT : forall {_646323 : Type'}, forall x : cart R _646323, forall y : cart R _646323, (@collinear _646323 (@INSERT (cart R _646323) (@vec _646323 (NUMERAL 0%N)) (@INSERT (cart R _646323) x (@INSERT (cart R _646323) y (@EMPTY (cart R _646323)))))) = ((x = (@vec _646323 (NUMERAL 0%N))) \/ (exists c : R, y = (@percent _646323 c x))). +Axiom thm_COLLINEAR_SPAN : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) = ((a = (@vec N' (NUMERAL 0%N))) \/ (@IN (cart R N') b (@span N' (@INSERT (cart R N') a (@EMPTY (cart R N')))))). +Axiom thm_NORM_CAUCHY_SCHWARZ_EQUAL : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', ((Rabs (@dot N' x y)) = (Rmult (@vector_norm N' x) (@vector_norm N' y))) = (@collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') x (@INSERT (cart R N') y (@EMPTY (cart R N')))))). +Axiom thm_DOT_CAUCHY_SCHWARZ_EQUAL : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', ((real_pow (@dot N' x y) (NUMERAL (BIT0 (BIT1 0%N)))) = (Rmult (@dot N' x x) (@dot N' y y))) = (@collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') x (@INSERT (cart R N') y (@EMPTY (cart R N')))))). +Axiom thm_COLLINEAR_3_EXPAND : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', (@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) = ((a = c) \/ (exists u : R, b = (@vector_add N' (@percent N' u a) (@percent N' (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) c)))). +Axiom thm_COLLINEAR_TRIPLES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (~ (a = b)) -> (@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b s))) = (forall x : cart R N', (@IN (cart R N') x s) -> @collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') x (@EMPTY (cart R N')))))). +Axiom thm_COLLINEAR_4_3 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', (~ (a = b)) -> (@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@INSERT (cart R N') d (@EMPTY (cart R N'))))))) = ((@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) /\ (@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') d (@EMPTY (cart R N'))))))). +Axiom thm_COLLINEAR_3_TRANS : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) /\ ((@collinear N' (@INSERT (cart R N') b (@INSERT (cart R N') c (@INSERT (cart R N') d (@EMPTY (cart R N')))))) /\ (~ (b = c)))) -> @collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') d (@EMPTY (cart R N'))))). +Axiom thm_ORTHOGONAL_TO_ORTHOGONAL_2D : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ (x = (@vec (tybit0 unit) (NUMERAL 0%N)))) /\ ((@orthogonal (tybit0 unit) x y) /\ (@orthogonal (tybit0 unit) x z))) -> @collinear (tybit0 unit) (@INSERT (cart R (tybit0 unit)) (@vec (tybit0 unit) (NUMERAL 0%N)) (@INSERT (cart R (tybit0 unit)) y (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))))). +Axiom thm_COLLINEAR_3_2D : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@collinear (tybit0 unit) (@INSERT (cart R (tybit0 unit)) x (@INSERT (cart R (tybit0 unit)) y (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))))) = ((Rmult (Rminus (@dollar R (tybit0 unit) z (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N)))) (Rminus (@dollar R (tybit0 unit) y (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N)))))) = (Rmult (Rminus (@dollar R (tybit0 unit) y (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N)))) (Rminus (@dollar R (tybit0 unit) z (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_COLLINEAR_3_DOT_MULTIPLES : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', (@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) = ((@percent N' (@dot N' (@vector_sub N' b a) (@vector_sub N' b a)) (@vector_sub N' c a)) = (@percent N' (@dot N' (@vector_sub N' c a) (@vector_sub N' b a)) (@vector_sub N' b a))). +Axiom thm_ORTHOGONAL_AND_COLLINEAR : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', ((@orthogonal N' x y) /\ (@collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') x (@INSERT (cart R N') y (@EMPTY (cart R N'))))))) = ((x = (@vec N' (NUMERAL 0%N))) \/ (y = (@vec N' (NUMERAL 0%N)))). +Axiom thm_between : forall {_647401 : Type'}, forall a : cart R _647401, forall x : cart R _647401, forall b : cart R _647401, (@between _647401 x (@pair (cart R _647401) (cart R _647401) a b)) = ((@distance _647401 (@pair (cart R _647401) (cart R _647401) a b)) = (Rplus (@distance _647401 (@pair (cart R _647401) (cart R _647401) a x)) (@distance _647401 (@pair (cart R _647401) (cart R _647401) x b)))). +Axiom thm_BETWEEN_REFL : forall {_647440 : Type'}, forall a : cart R _647440, forall b : cart R _647440, (@between _647440 a (@pair (cart R _647440) (cart R _647440) a b)) /\ ((@between _647440 b (@pair (cart R _647440) (cart R _647440) a b)) /\ (@between _647440 a (@pair (cart R _647440) (cart R _647440) a a))). +Axiom thm_BETWEEN_REFL_EQ : forall {_647474 : Type'}, forall a : cart R _647474, forall x : cart R _647474, (@between _647474 x (@pair (cart R _647474) (cart R _647474) a a)) = (x = a). +Axiom thm_BETWEEN_SYM : forall {_647499 : Type'}, forall a : cart R _647499, forall b : cart R _647499, forall x : cart R _647499, (@between _647499 x (@pair (cart R _647499) (cart R _647499) a b)) = (@between _647499 x (@pair (cart R _647499) (cart R _647499) b a)). +Axiom thm_BETWEEN_ANTISYM : forall {_647530 : Type'}, forall a : cart R _647530, forall b : cart R _647530, forall c : cart R _647530, ((@between _647530 a (@pair (cart R _647530) (cart R _647530) b c)) /\ (@between _647530 b (@pair (cart R _647530) (cart R _647530) a c))) -> a = b. +Axiom thm_BETWEEN_TRANS : forall {_647568 : Type'}, forall a : cart R _647568, forall b : cart R _647568, forall c : cart R _647568, forall d : cart R _647568, ((@between _647568 a (@pair (cart R _647568) (cart R _647568) b c)) /\ (@between _647568 d (@pair (cart R _647568) (cart R _647568) a c))) -> @between _647568 d (@pair (cart R _647568) (cart R _647568) b c). +Axiom thm_BETWEEN_TRANS_2 : forall {_647610 : Type'}, forall a : cart R _647610, forall b : cart R _647610, forall c : cart R _647610, forall d : cart R _647610, ((@between _647610 a (@pair (cart R _647610) (cart R _647610) b c)) /\ (@between _647610 d (@pair (cart R _647610) (cart R _647610) a b))) -> @between _647610 a (@pair (cart R _647610) (cart R _647610) c d). +Axiom thm_BETWEEN_TRANSLATION : forall {_647675 : Type'} (z : cart R _647675), forall a : cart R _647675, forall x : cart R _647675, forall y : cart R _647675, (@between _647675 (@vector_add _647675 a x) (@pair (cart R _647675) (cart R _647675) (@vector_add _647675 a y) (@vector_add _647675 a z))) = (@between _647675 x (@pair (cart R _647675) (cart R _647675) y z)). +Axiom thm_BETWEEN_NORM : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', (@between N' x (@pair (cart R N') (cart R N') a b)) = ((@percent N' (@vector_norm N' (@vector_sub N' x a)) (@vector_sub N' b x)) = (@percent N' (@vector_norm N' (@vector_sub N' b x)) (@vector_sub N' x a))). +Axiom thm_BETWEEN_DOT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', (@between N' x (@pair (cart R N') (cart R N') a b)) = ((@dot N' (@vector_sub N' x a) (@vector_sub N' b x)) = (Rmult (@vector_norm N' (@vector_sub N' x a)) (@vector_norm N' (@vector_sub N' b x)))). +Axiom thm_BETWEEN_EXISTS_EXTENSION : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@between N' b (@pair (cart R N') (cart R N') a x)) /\ (~ (b = a))) -> exists d : R, (Rle (R_of_N (NUMERAL 0%N)) d) /\ (x = (@vector_add N' b (@percent N' d (@vector_sub N' b a)))). +Axiom thm_BETWEEN_IMP_COLLINEAR : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', (@between N' x (@pair (cart R N') (cart R N') a b)) -> @collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') x (@INSERT (cart R N') b (@EMPTY (cart R N'))))). +Axiom thm_BETWEEN_CMUL_LIFT : forall {N' : Type'}, forall a : R, forall b : R, forall c : R, forall v : cart R N', (@between N' (@percent N' c v) (@pair (cart R N') (cart R N') (@percent N' a v) (@percent N' b v))) = ((v = (@vec N' (NUMERAL 0%N))) \/ (@between unit (lift c) (@pair (cart R unit) (cart R unit) (lift a) (lift b)))). +Axiom thm_BETWEEN_1 : forall a : cart R unit, forall b : cart R unit, forall x : cart R unit, (@between unit x (@pair (cart R unit) (cart R unit) a b)) = (((Rle (drop a) (drop x)) /\ (Rle (drop x) (drop b))) \/ ((Rle (drop b) (drop x)) /\ (Rle (drop x) (drop a)))). +Axiom thm_COLLINEAR_BETWEEN_CASES : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', (@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) = ((@between N' a (@pair (cart R N') (cart R N') b c)) \/ ((@between N' b (@pair (cart R N') (cart R N') c a)) \/ (@between N' c (@pair (cart R N') (cart R N') a b)))). +Axiom thm_COLLINEAR_BETWEEN_CASES_2 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((@between N' c (@pair (cart R N') (cart R N') a b)) /\ (@between N' d (@pair (cart R N') (cart R N') a b))) -> (@between N' d (@pair (cart R N') (cart R N') a c)) \/ (@between N' d (@pair (cart R N') (cart R N') c b)). +Axiom thm_BETWEEN_RESTRICTED_CASES : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall x : cart R N', ((@between N' x (@pair (cart R N') (cart R N') a b)) /\ ((@between N' x (@pair (cart R N') (cart R N') a c)) /\ (~ (x = a)))) -> (@between N' b (@pair (cart R N') (cart R N') a c)) \/ (@between N' c (@pair (cart R N') (cart R N') a b)). +Axiom thm_COLLINEAR_DIST_BETWEEN : forall {_648400 : Type'}, forall a : cart R _648400, forall b : cart R _648400, forall x : cart R _648400, ((@collinear _648400 (@INSERT (cart R _648400) x (@INSERT (cart R _648400) a (@INSERT (cart R _648400) b (@EMPTY (cart R _648400)))))) /\ ((Rle (@distance _648400 (@pair (cart R _648400) (cart R _648400) x a)) (@distance _648400 (@pair (cart R _648400) (cart R _648400) a b))) /\ (Rle (@distance _648400 (@pair (cart R _648400) (cart R _648400) x b)) (@distance _648400 (@pair (cart R _648400) (cart R _648400) a b))))) -> @between _648400 x (@pair (cart R _648400) (cart R _648400) a b). +Axiom thm_BETWEEN_COLLINEAR_DIST_EQ : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', (@between N' x (@pair (cart R N') (cart R N') a b)) = ((@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') x (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((Rle (@distance N' (@pair (cart R N') (cart R N') x a)) (@distance N' (@pair (cart R N') (cart R N') a b))) /\ (Rle (@distance N' (@pair (cart R N') (cart R N') x b)) (@distance N' (@pair (cart R N') (cart R N') a b))))). +Axiom thm_COLLINEAR_1 : forall s : (cart R unit) -> Prop, @collinear unit s. +Axiom thm_midpoint : forall {_648572 : Type'}, forall a : cart R _648572, forall b : cart R _648572, (@midpoint _648572 (@pair (cart R _648572) (cart R _648572) a b)) = (@percent _648572 (Rinv (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (@vector_add _648572 a b)). +Axiom thm_MIDPOINT_REFL : forall {_648585 : Type'}, forall x : cart R _648585, (@midpoint _648585 (@pair (cart R _648585) (cart R _648585) x x)) = x. +Axiom thm_MIDPOINT_SYM : forall {_648609 : Type'}, forall a : cart R _648609, forall b : cart R _648609, (@midpoint _648609 (@pair (cart R _648609) (cart R _648609) a b)) = (@midpoint _648609 (@pair (cart R _648609) (cart R _648609) b a)). +Axiom thm_DIST_MIDPOINT : forall {_648662 : Type'}, forall a : cart R _648662, forall b : cart R _648662, ((@distance _648662 (@pair (cart R _648662) (cart R _648662) a (@midpoint _648662 (@pair (cart R _648662) (cart R _648662) a b)))) = (Rdiv (@distance _648662 (@pair (cart R _648662) (cart R _648662) a b)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ (((@distance _648662 (@pair (cart R _648662) (cart R _648662) b (@midpoint _648662 (@pair (cart R _648662) (cart R _648662) a b)))) = (Rdiv (@distance _648662 (@pair (cart R _648662) (cart R _648662) a b)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ (((@distance _648662 (@pair (cart R _648662) (cart R _648662) (@midpoint _648662 (@pair (cart R _648662) (cart R _648662) a b)) a)) = (Rdiv (@distance _648662 (@pair (cart R _648662) (cart R _648662) a b)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((@distance _648662 (@pair (cart R _648662) (cart R _648662) (@midpoint _648662 (@pair (cart R _648662) (cart R _648662) a b)) b)) = (Rdiv (@distance _648662 (@pair (cart R _648662) (cart R _648662) a b)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_MIDPOINT_EQ_ENDPOINT : forall {_648808 : Type'}, forall a : cart R _648808, forall b : cart R _648808, (((@midpoint _648808 (@pair (cart R _648808) (cart R _648808) a b)) = a) = (a = b)) /\ ((((@midpoint _648808 (@pair (cart R _648808) (cart R _648808) a b)) = b) = (a = b)) /\ (((a = (@midpoint _648808 (@pair (cart R _648808) (cart R _648808) a b))) = (a = b)) /\ ((b = (@midpoint _648808 (@pair (cart R _648808) (cart R _648808) a b))) = (a = b)))). +Axiom thm_BETWEEN_MIDPOINT : forall {_648831 : Type'}, forall a : cart R _648831, forall b : cart R _648831, (@between _648831 (@midpoint _648831 (@pair (cart R _648831) (cart R _648831) a b)) (@pair (cart R _648831) (cart R _648831) a b)) /\ (@between _648831 (@midpoint _648831 (@pair (cart R _648831) (cart R _648831) a b)) (@pair (cart R _648831) (cart R _648831) b a)). +Axiom thm_MIDPOINT_LINEAR_IMAGE : forall {_648870 _648884 : Type'}, forall f : (cart R _648884) -> cart R _648870, forall a : cart R _648884, forall b : cart R _648884, (@linear _648884 _648870 f) -> (@midpoint _648870 (@pair (cart R _648870) (cart R _648870) (f a) (f b))) = (f (@midpoint _648884 (@pair (cart R _648884) (cart R _648884) a b))). +Axiom thm_COLLINEAR_MIDPOINT : forall {_648914 : Type'}, forall a : cart R _648914, forall b : cart R _648914, @collinear _648914 (@INSERT (cart R _648914) a (@INSERT (cart R _648914) (@midpoint _648914 (@pair (cart R _648914) (cart R _648914) a b)) (@INSERT (cart R _648914) b (@EMPTY (cart R _648914))))). +Axiom thm_MIDPOINT_COLLINEAR : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', (~ (a = c)) -> (b = (@midpoint N' (@pair (cart R N') (cart R N') a c))) = ((@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) /\ ((@distance N' (@pair (cart R N') (cart R N') a b)) = (@distance N' (@pair (cart R N') (cart R N') b c)))). +Axiom thm_MIDPOINT_BETWEEN : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', (b = (@midpoint N' (@pair (cart R N') (cart R N') a c))) = ((@between N' b (@pair (cart R N') (cart R N') a c)) /\ ((@distance N' (@pair (cart R N') (cart R N') a b)) = (@distance N' (@pair (cart R N') (cart R N') b c)))). +Axiom thm_DROP_MIDPOINT : forall x : cart R unit, forall y : cart R unit, (drop (@midpoint unit (@pair (cart R unit) (cart R unit) x y))) = (Rdiv (Rplus (drop x) (drop y)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_open_interval : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@GSPEC (cart R N') (fun GEN_PVAR_2498 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2498 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rlt (@dollar R N' a i) (@dollar R N' x i)) /\ (Rlt (@dollar R N' x i) (@dollar R N' b i))) x)). +Axiom thm_closed_interval : forall {N' : Type'}, forall l : list (prod (cart R N') (cart R N')), (@closed_interval N' l) = (@GSPEC (cart R N') (fun GEN_PVAR_2499 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2499 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rle (@dollar R N' (@fst (cart R N') (cart R N') (@hd (prod (cart R N') (cart R N')) l)) i) (@dollar R N' x i)) /\ (Rle (@dollar R N' x i) (@dollar R N' (@snd (cart R N') (cart R N') (@hd (prod (cart R N') (cart R N')) l)) i))) x)). +Axiom thm_interval : forall {N' : Type'} (a : cart R N') (b : cart R N'), ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@GSPEC (cart R N') (fun GEN_PVAR_2500 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2500 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rlt (@dollar R N' a i) (@dollar R N' x i)) /\ (Rlt (@dollar R N' x i) (@dollar R N' b i))) x))) /\ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@GSPEC (cart R N') (fun GEN_PVAR_2501 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2501 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rle (@dollar R N' a i) (@dollar R N' x i)) /\ (Rle (@dollar R N' x i) (@dollar R N' b i))) x))). +Axiom thm_IN_INTERVAL : forall {N' : Type'} (a : cart R N') (b : cart R N'), (forall x : cart R N', (@IN (cart R N') x (@open_interval N' (@pair (cart R N') (cart R N') a b))) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rlt (@dollar R N' a i) (@dollar R N' x i)) /\ (Rlt (@dollar R N' x i) (@dollar R N' b i)))) /\ (forall x : cart R N', (@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rle (@dollar R N' a i) (@dollar R N' x i)) /\ (Rle (@dollar R N' x i) (@dollar R N' b i)))). +Axiom thm_IN_INTERVAL_REFLECT : forall {_649744 _649761 : Type'}, (forall a : cart R _649744, forall b : cart R _649744, forall x : cart R _649744, (@IN (cart R _649744) (@vector_neg _649744 x) (@closed_interval _649744 (@cons (prod (cart R _649744) (cart R _649744)) (@pair (cart R _649744) (cart R _649744) (@vector_neg _649744 b) (@vector_neg _649744 a)) (@nil (prod (cart R _649744) (cart R _649744)))))) = (@IN (cart R _649744) x (@closed_interval _649744 (@cons (prod (cart R _649744) (cart R _649744)) (@pair (cart R _649744) (cart R _649744) a b) (@nil (prod (cart R _649744) (cart R _649744))))))) /\ (forall a : cart R _649761, forall b : cart R _649761, forall x : cart R _649761, (@IN (cart R _649761) (@vector_neg _649761 x) (@open_interval _649761 (@pair (cart R _649761) (cart R _649761) (@vector_neg _649761 b) (@vector_neg _649761 a)))) = (@IN (cart R _649761) x (@open_interval _649761 (@pair (cart R _649761) (cart R _649761) a b)))). +Axiom thm_REFLECT_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@IMAGE (cart R N') (cart R N') (@vector_neg N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vector_neg N' b) (@vector_neg N' a)) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', (@IMAGE (cart R N') (cart R N') (@vector_neg N') (@open_interval N' (@pair (cart R N') (cart R N') a b))) = (@open_interval N' (@pair (cart R N') (cart R N') (@vector_neg N' b) (@vector_neg N' a)))). +Axiom thm_INTERVAL_EQ_EMPTY : forall {N' : Type'} (b : cart R N') (a : cart R N'), (((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))) = (exists i : N, (N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ (Rlt (@dollar R N' b i) (@dollar R N' a i))))) /\ (((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N'))) = (exists i : N, (N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ (Rle (@dollar R N' b i) (@dollar R N' a i))))). +Axiom thm_INTERVAL_NE_EMPTY : forall {N' : Type'} (a : cart R N') (b : cart R N'), ((~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' a i) (@dollar R N' b i))) /\ ((~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (@dollar R N' a i) (@dollar R N' b i))). +Axiom thm_SUBSET_INTERVAL_IMP : forall {N' : Type'} (c : cart R N') (d : cart R N') (a : cart R N') (b : cart R N'), ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rle (@dollar R N' a i) (@dollar R N' c i)) /\ (Rle (@dollar R N' d i) (@dollar R N' b i))) -> @SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rlt (@dollar R N' a i) (@dollar R N' c i)) /\ (Rlt (@dollar R N' d i) (@dollar R N' b i))) -> @SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (@open_interval N' (@pair (cart R N') (cart R N') a b))) /\ (((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rle (@dollar R N' a i) (@dollar R N' c i)) /\ (Rle (@dollar R N' d i) (@dollar R N' b i))) -> @SUBSET (cart R N') (@open_interval N' (@pair (cart R N') (cart R N') c d)) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rle (@dollar R N' a i) (@dollar R N' c i)) /\ (Rle (@dollar R N' d i) (@dollar R N' b i))) -> @SUBSET (cart R N') (@open_interval N' (@pair (cart R N') (cart R N') c d)) (@open_interval N' (@pair (cart R N') (cart R N') a b))))). +Axiom thm_INTERVAL_SING : forall {_650472 : Type'} (a : cart R _650472), ((@closed_interval _650472 (@cons (prod (cart R _650472) (cart R _650472)) (@pair (cart R _650472) (cart R _650472) a a) (@nil (prod (cart R _650472) (cart R _650472))))) = (@INSERT (cart R _650472) a (@EMPTY (cart R _650472)))) /\ ((@open_interval _650472 (@pair (cart R _650472) (cart R _650472) a a)) = (@EMPTY (cart R _650472))). +Axiom thm_SUBSET_INTERVAL : forall {N' : Type'} (a : cart R N') (c : cart R N') (d : cart R N') (b : cart R N'), ((@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' c i) (@dollar R N' d i)) -> forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rle (@dollar R N' a i) (@dollar R N' c i)) /\ (Rle (@dollar R N' d i) (@dollar R N' b i)))) /\ (((@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (@open_interval N' (@pair (cart R N') (cart R N') a b))) = ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' c i) (@dollar R N' d i)) -> forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rlt (@dollar R N' a i) (@dollar R N' c i)) /\ (Rlt (@dollar R N' d i) (@dollar R N' b i)))) /\ (((@SUBSET (cart R N') (@open_interval N' (@pair (cart R N') (cart R N') c d)) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (@dollar R N' c i) (@dollar R N' d i)) -> forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rle (@dollar R N' a i) (@dollar R N' c i)) /\ (Rle (@dollar R N' d i) (@dollar R N' b i)))) /\ ((@SUBSET (cart R N') (@open_interval N' (@pair (cart R N') (cart R N') c d)) (@open_interval N' (@pair (cart R N') (cart R N') a b))) = ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (@dollar R N' c i) (@dollar R N' d i)) -> forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rle (@dollar R N' a i) (@dollar R N' c i)) /\ (Rle (@dollar R N' d i) (@dollar R N' b i)))))). +Axiom thm_DISJOINT_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', (((@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) = (@EMPTY (cart R N'))) = (exists i : N, (N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((Rlt (@dollar R N' b i) (@dollar R N' a i)) \/ ((Rlt (@dollar R N' d i) (@dollar R N' c i)) \/ ((Rlt (@dollar R N' b i) (@dollar R N' c i)) \/ (Rlt (@dollar R N' d i) (@dollar R N' a i)))))))) /\ ((((@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@open_interval N' (@pair (cart R N') (cart R N') c d))) = (@EMPTY (cart R N'))) = (exists i : N, (N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((Rlt (@dollar R N' b i) (@dollar R N' a i)) \/ ((Rle (@dollar R N' d i) (@dollar R N' c i)) \/ ((Rle (@dollar R N' b i) (@dollar R N' c i)) \/ (Rle (@dollar R N' d i) (@dollar R N' a i)))))))) /\ ((((@INTER (cart R N') (@open_interval N' (@pair (cart R N') (cart R N') a b)) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) = (@EMPTY (cart R N'))) = (exists i : N, (N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((Rle (@dollar R N' b i) (@dollar R N' a i)) \/ ((Rlt (@dollar R N' d i) (@dollar R N' c i)) \/ ((Rle (@dollar R N' b i) (@dollar R N' c i)) \/ (Rle (@dollar R N' d i) (@dollar R N' a i)))))))) /\ (((@INTER (cart R N') (@open_interval N' (@pair (cart R N') (cart R N') a b)) (@open_interval N' (@pair (cart R N') (cart R N') c d))) = (@EMPTY (cart R N'))) = (exists i : N, (N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((Rle (@dollar R N' b i) (@dollar R N' a i)) \/ ((Rle (@dollar R N' d i) (@dollar R N' c i)) \/ ((Rle (@dollar R N' b i) (@dollar R N' c i)) \/ (Rle (@dollar R N' d i) (@dollar R N' a i)))))))))). +Axiom thm_ENDS_IN_INTERVAL : forall {_651657 _651659 _651661 _651663 : Type'}, (forall a : cart R _651657, forall b : cart R _651657, (@IN (cart R _651657) a (@closed_interval _651657 (@cons (prod (cart R _651657) (cart R _651657)) (@pair (cart R _651657) (cart R _651657) a b) (@nil (prod (cart R _651657) (cart R _651657)))))) = (~ ((@closed_interval _651657 (@cons (prod (cart R _651657) (cart R _651657)) (@pair (cart R _651657) (cart R _651657) a b) (@nil (prod (cart R _651657) (cart R _651657))))) = (@EMPTY (cart R _651657))))) /\ ((forall a : cart R _651659, forall b : cart R _651659, (@IN (cart R _651659) b (@closed_interval _651659 (@cons (prod (cart R _651659) (cart R _651659)) (@pair (cart R _651659) (cart R _651659) a b) (@nil (prod (cart R _651659) (cart R _651659)))))) = (~ ((@closed_interval _651659 (@cons (prod (cart R _651659) (cart R _651659)) (@pair (cart R _651659) (cart R _651659) a b) (@nil (prod (cart R _651659) (cart R _651659))))) = (@EMPTY (cart R _651659))))) /\ ((forall a : cart R _651661, forall b : cart R _651661, ~ (@IN (cart R _651661) a (@open_interval _651661 (@pair (cart R _651661) (cart R _651661) a b)))) /\ (forall a : cart R _651663, forall b : cart R _651663, ~ (@IN (cart R _651663) b (@open_interval _651663 (@pair (cart R _651663) (cart R _651663) a b)))))). +Axiom thm_ENDS_IN_UNIT_INTERVAL : forall {_651749 _651750 _651752 _651754 : Type'}, (@IN (cart R _651749) (@vec _651749 (NUMERAL 0%N)) (@closed_interval _651749 (@cons (prod (cart R _651749) (cart R _651749)) (@pair (cart R _651749) (cart R _651749) (@vec _651749 (NUMERAL 0%N)) (@vec _651749 (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R _651749) (cart R _651749)))))) /\ ((@IN (cart R _651750) (@vec _651750 (NUMERAL (BIT1 0%N))) (@closed_interval _651750 (@cons (prod (cart R _651750) (cart R _651750)) (@pair (cart R _651750) (cart R _651750) (@vec _651750 (NUMERAL 0%N)) (@vec _651750 (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R _651750) (cart R _651750)))))) /\ ((~ (@IN (cart R _651752) (@vec _651752 (NUMERAL 0%N)) (@open_interval _651752 (@pair (cart R _651752) (cart R _651752) (@vec _651752 (NUMERAL 0%N)) (@vec _651752 (NUMERAL (BIT1 0%N))))))) /\ (~ (@IN (cart R _651754) (@vec _651754 (NUMERAL (BIT1 0%N))) (@open_interval _651754 (@pair (cart R _651754) (cart R _651754) (@vec _651754 (NUMERAL 0%N)) (@vec _651754 (NUMERAL (BIT1 0%N))))))))). +Axiom thm_INTER_INTERVAL : forall {_651832 : Type'} (a : cart R _651832) (c : cart R _651832) (b : cart R _651832) (d : cart R _651832), (@INTER (cart R _651832) (@closed_interval _651832 (@cons (prod (cart R _651832) (cart R _651832)) (@pair (cart R _651832) (cart R _651832) a b) (@nil (prod (cart R _651832) (cart R _651832))))) (@closed_interval _651832 (@cons (prod (cart R _651832) (cart R _651832)) (@pair (cart R _651832) (cart R _651832) c d) (@nil (prod (cart R _651832) (cart R _651832)))))) = (@closed_interval _651832 (@cons (prod (cart R _651832) (cart R _651832)) (@pair (cart R _651832) (cart R _651832) (@lambda R _651832 (fun i : N => Rmax (@dollar R _651832 a i) (@dollar R _651832 c i))) (@lambda R _651832 (fun i : N => Rmin (@dollar R _651832 b i) (@dollar R _651832 d i)))) (@nil (prod (cart R _651832) (cart R _651832))))). +Axiom thm_INTERVAL_OPEN_SUBSET_CLOSED : forall {_651866 : Type'}, forall a : cart R _651866, forall b : cart R _651866, @SUBSET (cart R _651866) (@open_interval _651866 (@pair (cart R _651866) (cart R _651866) a b)) (@closed_interval _651866 (@cons (prod (cart R _651866) (cart R _651866)) (@pair (cart R _651866) (cart R _651866) a b) (@nil (prod (cart R _651866) (cart R _651866))))). +Axiom thm_WLOG_LINEAR_INJECTIVE_IMAGE_2 : forall {M N' : Type'}, forall P : ((cart R M) -> Prop) -> Prop, forall Q : ((cart R N') -> Prop) -> Prop, ((forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((P s) /\ (@linear M N' f)) -> Q (@IMAGE (cart R M) (cart R N') f s)) /\ (forall g : (cart R N') -> cart R M, forall t : (cart R N') -> Prop, ((Q t) /\ (@linear N' M g)) -> P (@IMAGE (cart R N') (cart R M) g t))) -> forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> forall s : (cart R M) -> Prop, (Q (@IMAGE (cart R M) (cart R N') f s)) = (P s). +Axiom thm_WLOG_LINEAR_INJECTIVE_IMAGE_2_ALT : forall {_652033 _652043 : Type'}, forall P : ((cart R _652033) -> Prop) -> Prop, forall Q : ((cart R _652043) -> Prop) -> Prop, forall f : (cart R _652033) -> cart R _652043, forall s : (cart R _652033) -> Prop, ((forall h : (cart R _652033) -> cart R _652043, forall u : (cart R _652033) -> Prop, ((P u) /\ (@linear _652033 _652043 h)) -> Q (@IMAGE (cart R _652033) (cart R _652043) h u)) /\ ((forall g : (cart R _652043) -> cart R _652033, forall t : (cart R _652043) -> Prop, ((Q t) /\ (@linear _652043 _652033 g)) -> P (@IMAGE (cart R _652043) (cart R _652033) g t)) /\ ((@linear _652033 _652043 f) /\ (forall x : cart R _652033, forall y : cart R _652033, ((f x) = (f y)) -> x = y)))) -> (Q (@IMAGE (cart R _652033) (cart R _652043) f s)) = (P s). +Axiom thm_WLOG_LINEAR_INJECTIVE_IMAGE : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, (forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((P s) /\ (@linear N' N' f)) -> P (@IMAGE (cart R N') (cart R N') f s)) -> forall f : (cart R N') -> cart R N', ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> forall s : (cart R N') -> Prop, (P (@IMAGE (cart R N') (cart R N') f s)) = (P s). +Axiom thm_WLOG_LINEAR_INJECTIVE_IMAGE_ALT : forall {_652181 : Type'}, forall P : ((cart R _652181) -> Prop) -> Prop, forall f : (cart R _652181) -> cart R _652181, forall s : (cart R _652181) -> Prop, ((forall g : (cart R _652181) -> cart R _652181, forall t : (cart R _652181) -> Prop, ((P t) /\ (@linear _652181 _652181 g)) -> P (@IMAGE (cart R _652181) (cart R _652181) g t)) /\ ((@linear _652181 _652181 f) /\ (forall x : cart R _652181, forall y : cart R _652181, ((f x) = (f y)) -> x = y))) -> (P (@IMAGE (cart R _652181) (cart R _652181) f s)) = (P s). +Axiom thm_SUBSPACE_LINEAR_IMAGE_EQ : forall {_652223 _652251 : Type'}, forall f : (cart R _652251) -> cart R _652223, forall s : (cart R _652251) -> Prop, ((@linear _652251 _652223 f) /\ (forall x : cart R _652251, forall y : cart R _652251, ((f x) = (f y)) -> x = y)) -> (@subspace _652223 (@IMAGE (cart R _652251) (cart R _652223) f s)) = (@subspace _652251 s). +Axiom thm_COUNTABLE_UNION_OF_BIJECTIVE_IMAGE : forall {A B : Type'}, forall f : A -> B, forall P : (A -> Prop) -> Prop, forall P' : (B -> Prop) -> Prop, ((forall x : A, forall y : A, ((f x) = (f y)) -> x = y) /\ ((forall y : B, exists x : A, (f x) = y) /\ (forall s : A -> Prop, (P' (@IMAGE A B f s)) = (P s)))) -> forall s : A -> Prop, (@UNION_OF B (@COUNTABLE (B -> Prop)) P' (@IMAGE A B f s)) = (@UNION_OF A (@COUNTABLE (A -> Prop)) P s). +Axiom thm_COUNTABLE_INTERSECTION_OF_BIJECTIVE_IMAGE : forall {A B : Type'}, forall f : A -> B, forall P : (A -> Prop) -> Prop, forall P' : (B -> Prop) -> Prop, ((forall x : A, forall y : A, ((f x) = (f y)) -> x = y) /\ ((forall y : B, exists x : A, (f x) = y) /\ (forall s : A -> Prop, (P' (@IMAGE A B f s)) = (P s)))) -> forall s : A -> Prop, (@INTERSECTION_OF B (@COUNTABLE (B -> Prop)) P' (@IMAGE A B f s)) = (@INTERSECTION_OF A (@COUNTABLE (A -> Prop)) P s). +Axiom thm_AFFINITY_SCALING_TRANSLATION : forall {N' : Type'}, forall m : R, forall c : cart R N', (fun x : cart R N' => @vector_add N' (@percent N' m x) c) = (@o (cart R N') (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' c x) (fun x : cart R N' => @percent N' m x)). +Axiom thm_LINEAR_SCALING : forall {N' : Type'}, forall c : R, @linear N' N' (fun x : cart R N' => @percent N' c x). +Axiom thm_INJECTIVE_SCALING : forall {N' : Type'}, forall c : R, (forall x : cart R N', forall y : cart R N', ((@percent N' c x) = (@percent N' c y)) -> x = y) = (~ (c = (R_of_N (NUMERAL 0%N)))). +Axiom thm_SURJECTIVE_SCALING : forall {N' : Type'}, forall c : R, (forall y : cart R N', exists x : cart R N', (@percent N' c x) = y) = (~ (c = (R_of_N (NUMERAL 0%N)))). +Axiom thm_SAME_NORM_SAME_DOT : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall x : cart R M, forall y : cart R M, ((@linear M N' f) /\ ((@linear M P g) /\ (forall x' : cart R M, (@vector_norm N' (f x')) = (@vector_norm P (g x'))))) -> (@dot N' (f x) (f y)) = (@dot P (g x) (g y)). +Axiom thm_PRESERVES_NORM_PRESERVES_DOT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall y : cart R M, ((@linear M N' f) /\ (forall x' : cart R M, (@vector_norm N' (f x')) = (@vector_norm M x'))) -> (@dot N' (f x) (f y)) = (@dot M x y). +Axiom thm_PRESEVES_NORM_PRESERVES_DIST : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall x : cart R M, (@vector_norm N' (f x)) = (@vector_norm M x))) -> forall x : cart R M, forall y : cart R M, (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance M (@pair (cart R M) (cart R M) x y)). +Axiom thm_PRESERVES_NORM_INJECTIVE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall x : cart R M, (@vector_norm N' (f x)) = (@vector_norm M x))) -> forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y. +Axiom thm_ORTHOGONAL_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall y : cart R M, ((@linear M N' f) /\ (forall x' : cart R M, (@vector_norm N' (f x')) = (@vector_norm M x'))) -> (@orthogonal N' (f x) (f y)) = (@orthogonal M x y). +Axiom thm_NORMAL_MATRIX_IFF_SAME_DOT_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@normal_matrix N' A) = (forall x : cart R N', forall y : cart R N', (@dot N' (@matrix_vector_mul N' N' (@transp N' N' A) x) (@matrix_vector_mul N' N' (@transp N' N' A) y)) = (@dot N' (@matrix_vector_mul N' N' A x) (@matrix_vector_mul N' N' A y))). +Axiom thm_NORMAL_MATRIX_IFF_SAME_NORM_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@normal_matrix N' A) = (forall x : cart R N', (@vector_norm N' (@matrix_vector_mul N' N' (@transp N' N' A) x)) = (@vector_norm N' (@matrix_vector_mul N' N' A x))). +Axiom thm_NORMAL_MATRIX_KERNEL_TRANSP_EXPLICIT : forall {N' : Type'}, forall A : cart (cart R N') N', forall x : cart R N', (@normal_matrix N' A) -> ((@matrix_vector_mul N' N' (@transp N' N' A) x) = (@vec N' (NUMERAL 0%N))) = ((@matrix_vector_mul N' N' A x) = (@vec N' (NUMERAL 0%N))). +Axiom thm_NORMAL_MATRIX_KERNEL_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@normal_matrix N' A) -> (@GSPEC (cart R N') (fun GEN_PVAR_2504 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2504 ((@matrix_vector_mul N' N' (@transp N' N' A) x) = (@vec N' (NUMERAL 0%N))) x)) = (@GSPEC (cart R N') (fun GEN_PVAR_2505 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2505 ((@matrix_vector_mul N' N' A x) = (@vec N' (NUMERAL 0%N))) x)). +Axiom thm_MEM_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall x : cart R N', forall l : list (cart R N'), (@List.In (cart R N') (@vector_add N' a x) (@List.map (cart R N') (cart R N') (fun x' : cart R N' => @vector_add N' a x') l)) = (@List.In (cart R N') x l). +Axiom thm_MEM_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall l : list (cart R M), ((@linear M N' f) /\ (forall x' : cart R M, forall y : cart R M, ((f x') = (f y)) -> x' = y)) -> (@List.In (cart R N') (f x) (@List.map (cart R M) (cart R N') f l)) = (@List.In (cart R M) x l). +Axiom thm_QUANTIFY_SURJECTION_THM : forall {A B : Type'}, forall f : A -> B, (forall y : B, exists x : A, (f x) = y) -> ((forall P : B -> Prop, (forall x : B, P x) = (forall x : A, P (f x))) /\ ((forall P : B -> Prop, (exists x : B, P x) = (exists x : A, P (f x))) /\ ((forall Q : (B -> Prop) -> Prop, (forall s : B -> Prop, Q s) = (forall s : A -> Prop, Q (@IMAGE A B f s))) /\ (forall Q : (B -> Prop) -> Prop, (exists s : B -> Prop, Q s) = (exists s : A -> Prop, Q (@IMAGE A B f s)))))) /\ (forall P : B -> Prop, (@GSPEC B (fun GEN_PVAR_2506 : B => exists x : B, @SETSPEC B GEN_PVAR_2506 (P x) x)) = (@IMAGE A B f (@GSPEC A (fun GEN_PVAR_2507 : A => exists x : A, @SETSPEC A GEN_PVAR_2507 (P (f x)) x)))). +Axiom thm_QUANTIFY_SURJECTION_HIGHER_THM : forall {A B : Type'}, forall f : A -> B, (forall y : B, exists x : A, (f x) = y) -> ((forall P : B -> Prop, (forall x : B, P x) = (forall x : A, P (f x))) /\ ((forall P : B -> Prop, (exists x : B, P x) = (exists x : A, P (f x))) /\ ((forall Q : (B -> Prop) -> Prop, (forall s : B -> Prop, Q s) = (forall s : A -> Prop, Q (@IMAGE A B f s))) /\ ((forall Q : (B -> Prop) -> Prop, (exists s : B -> Prop, Q s) = (exists s : A -> Prop, Q (@IMAGE A B f s))) /\ ((forall Q : ((B -> Prop) -> Prop) -> Prop, (forall s : (B -> Prop) -> Prop, Q s) = (forall s : (A -> Prop) -> Prop, Q (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) s))) /\ ((forall Q : ((B -> Prop) -> Prop) -> Prop, (exists s : (B -> Prop) -> Prop, Q s) = (exists s : (A -> Prop) -> Prop, Q (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) s))) /\ ((forall P : ((cart R unit) -> B) -> Prop, (forall g : (cart R unit) -> B, P g) = (forall g : (cart R unit) -> A, P (@o (cart R unit) A B f g))) /\ ((forall P : ((cart R unit) -> B) -> Prop, (exists g : (cart R unit) -> B, P g) = (exists g : (cart R unit) -> A, P (@o (cart R unit) A B f g))) /\ ((forall P : (N -> B) -> Prop, (forall g : N -> B, P g) = (forall g : N -> A, P (@o N A B f g))) /\ ((forall P : (N -> B) -> Prop, (exists g : N -> B, P g) = (exists g : N -> A, P (@o N A B f g))) /\ ((forall Q : (list B) -> Prop, (forall l : list B, Q l) = (forall l : list A, Q (@List.map A B f l))) /\ (forall Q : (list B) -> Prop, (exists l : list B, Q l) = (exists l : list A, Q (@List.map A B f l)))))))))))))) /\ ((forall P : B -> Prop, (@GSPEC B (fun GEN_PVAR_2508 : B => exists x : B, @SETSPEC B GEN_PVAR_2508 (P x) x)) = (@IMAGE A B f (@GSPEC A (fun GEN_PVAR_2509 : A => exists x : A, @SETSPEC A GEN_PVAR_2509 (P (f x)) x)))) /\ ((forall Q : (B -> Prop) -> Prop, (@GSPEC (B -> Prop) (fun GEN_PVAR_2510 : B -> Prop => exists s : B -> Prop, @SETSPEC (B -> Prop) GEN_PVAR_2510 (Q s) s)) = (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) (@GSPEC (A -> Prop) (fun GEN_PVAR_2511 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_2511 (Q (@IMAGE A B f s)) s)))) /\ (forall R' : (list B) -> Prop, (@GSPEC (list B) (fun GEN_PVAR_2512 : list B => exists l : list B, @SETSPEC (list B) GEN_PVAR_2512 (R' l) l)) = (@IMAGE (list A) (list B) (@List.map A B f) (@GSPEC (list A) (fun GEN_PVAR_2513 : list A => exists l : list A, @SETSPEC (list A) GEN_PVAR_2513 (R' (@List.map A B f l)) l)))))). +Axiom thm_trace : forall {N' : Type'}, forall A : cart (cart R N') N', (@trace N' A) = (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' (@dollar (cart R N') N' A i) i)). +Axiom thm_TRACE_0 : forall {_656416 : Type'}, (@trace _656416 (@mat _656416 _656416 (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_TRACE_I : forall {N' : Type'}, (@trace N' (@mat N' N' (NUMERAL (BIT1 0%N)))) = (R_of_N (@dimindex N' (@UNIV N'))). +Axiom thm_TRACE_ADD : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', (@trace N' (@matrix_add N' N' A B)) = (Rplus (@trace N' A) (@trace N' B)). +Axiom thm_TRACE_SUB : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', (@trace N' (@matrix_sub N' N' A B)) = (Rminus (@trace N' A) (@trace N' B)). +Axiom thm_TRACE_CMUL : forall {N' : Type'}, forall c : R, forall A : cart (cart R N') N', (@trace N' (@__ N' N' c A)) = (Rmult c (@trace N' A)). +Axiom thm_TRACE_NEG : forall {N' : Type'}, forall A : cart (cart R N') N', (@trace N' (@matrix_neg N' N' A)) = (Ropp (@trace N' A)). +Axiom thm_TRACE_MUL_SYM : forall {M N' : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R N') M, (@trace N' (@matrix_mul N' M N' A B)) = (@trace M (@matrix_mul M N' M B A)). +Axiom thm_TRACE_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@trace N' (@transp N' N' A)) = (@trace N' A). +Axiom thm_TRACE_SIMILAR : forall {N' : Type'}, forall A : cart (cart R N') N', forall U : cart (cart R N') N', (@invertible N' N' U) -> (@trace N' (@matrix_mul N' N' N' (@matrix_inv N' N' U) (@matrix_mul N' N' N' A U))) = (@trace N' A). +Axiom thm_TRACE_MUL_CYCLIC : forall {M N' P : Type'}, forall A : cart (cart R P) M, forall B : cart (cart R N') P, forall C : cart (cart R M) N', (@trace M (@matrix_mul M P M A (@matrix_mul P N' M B C))) = (@trace P (@matrix_mul P N' P B (@matrix_mul N' M P C A))). +Axiom thm_det : forall {N' : Type'}, forall A : cart (cart R N') N', (@det N' A) = (@sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_2514 : N -> N => exists p : N -> N, @SETSPEC (N -> N) GEN_PVAR_2514 (@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) p)) (fun p : N -> N => Rmult (@sign N p) (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' (@dollar (cart R N') N' A i) (p i))))). +Axiom thm_IN_DIMINDEX_SWAP : forall {N' : Type'}, forall m : N, forall n : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) m) /\ ((N.le m (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))))) -> (N.le (NUMERAL (BIT1 0%N)) (@swap N (@pair N N m n) j)) /\ (N.le (@swap N (@pair N N m n) j) (@dimindex N' (@UNIV N'))). +Axiom thm_LAMBDA_BETA_PERM : forall {A N' : Type'} (g : N -> A), forall p : N -> N, forall i : N, ((@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> (@dollar A N' (@lambda A N' g) (p i)) = (g (p i)). +Axiom thm_PRODUCT_PERMUTE : forall {_656933 : Type'}, forall f : _656933 -> R, forall p : _656933 -> _656933, forall s : _656933 -> Prop, (@permutes _656933 p s) -> (@product _656933 s f) = (@product _656933 s (@o _656933 _656933 R f p)). +Axiom thm_PRODUCT_PERMUTE_NUMSEG : forall f : N -> R, forall p : N -> N, forall m : N, forall n : N, (@permutes N p (dotdot m n)) -> (@product N (dotdot m n) f) = (@product N (dotdot m n) (@o N N R f p)). +Axiom thm_REAL_MUL_SUM : forall {_657027 _657028 : Type'}, forall s : _657027 -> Prop, forall t : _657028 -> Prop, forall f : _657027 -> R, forall g : _657028 -> R, ((@FINITE _657027 s) /\ (@FINITE _657028 t)) -> (Rmult (@sum _657027 s f) (@sum _657028 t g)) = (@sum _657027 s (fun i : _657027 => @sum _657028 t (fun j : _657028 => Rmult (f i) (g j)))). +Axiom thm_REAL_MUL_SUM_NUMSEG : forall (f : N -> R) (g : N -> R), forall m : N, forall n : N, forall p : N, forall q : N, (Rmult (@sum N (dotdot m n) f) (@sum N (dotdot p q) g)) = (@sum N (dotdot m n) (fun i : N => @sum N (dotdot p q) (fun j : N => Rmult (f i) (g j)))). +Axiom thm_DET_CMUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall c : R, (@det N' (@__ N' N' c A)) = (Rmult (real_pow c (@dimindex N' (@UNIV N'))) (@det N' A)). +Axiom thm_DET_NEG : forall {N' : Type'}, forall A : cart (cart R N') N', (@det N' (@matrix_neg N' N' A)) = (Rmult (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@dimindex N' (@UNIV N'))) (@det N' A)). +Axiom thm_DET_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@det N' (@transp N' N' A)) = (@det N' A). +Axiom thm_DET_LOWERTRIANGULAR : forall {N' : Type'}, forall A : cart (cart R N') N', (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (N.lt i j))))) -> (@dollar R N' (@dollar (cart R N') N' A i) j) = (R_of_N (NUMERAL 0%N))) -> (@det N' A) = (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' (@dollar (cart R N') N' A i) i)). +Axiom thm_DET_UPPERTRIANGULAR : forall {N' : Type'}, forall A : cart (cart R N') N', (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (N.lt j i))))) -> (@dollar R N' (@dollar (cart R N') N' A i) j) = (R_of_N (NUMERAL 0%N))) -> (@det N' A) = (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' (@dollar (cart R N') N' A i) i)). +Axiom thm_DET_I : forall {N' : Type'}, (@det N' (@mat N' N' (NUMERAL (BIT1 0%N)))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_DET_0 : forall {N' : Type'}, (@det N' (@mat N' N' (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DET_PERMUTE_ROWS : forall {N' : Type'}, forall A : cart (cart R N') N', forall p : N -> N, (@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> (@det N' (@lambda (cart R N') N' (fun i : N => @dollar (cart R N') N' A (p i)))) = (Rmult (@sign N p) (@det N' A)). +Axiom thm_DET_PERMUTE_COLUMNS : forall {N' : Type'}, forall A : cart (cart R N') N', forall p : N -> N, (@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> (@det N' (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @dollar R N' (@dollar (cart R N') N' A i) (p j))))) = (Rmult (@sign N p) (@det N' A)). +Axiom thm_DET_IDENTICAL_ROWS : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ ((~ (i = j)) /\ ((@row N' N' i A) = (@row N' N' j A))))))) -> (@det N' A) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DET_IDENTICAL_COLUMNS : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ ((~ (i = j)) /\ ((@column N' N' i A) = (@column N' N' j A))))))) -> (@det N' A) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DET_ZERO_ROW : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((@row N' N' i A) = (@vec N' (NUMERAL 0%N))))) -> (@det N' A) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DET_ZERO_COLUMN : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((@column N' N' i A) = (@vec N' (NUMERAL 0%N))))) -> (@det N' A) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DET_ROW_ADD : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : N -> cart R N', forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@det N' (@lambda (cart R N') N' (fun i : N => @COND (cart R N') (i = k) (@vector_add N' a b) (c i)))) = (Rplus (@det N' (@lambda (cart R N') N' (fun i : N => @COND (cart R N') (i = k) a (c i)))) (@det N' (@lambda (cart R N') N' (fun i : N => @COND (cart R N') (i = k) b (c i))))). +Axiom thm_DET_ROW_MUL : forall {N' : Type'}, forall a : cart R N', forall b : N -> cart R N', forall c : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@det N' (@lambda (cart R N') N' (fun i : N => @COND (cart R N') (i = k) (@percent N' c a) (b i)))) = (Rmult c (@det N' (@lambda (cart R N') N' (fun i : N => @COND (cart R N') (i = k) a (b i))))). +Axiom thm_DET_ROW_OPERATION : forall {N' : Type'} (c : R) (j : N), forall A : cart (cart R N') N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (~ (i = j)))))) -> (@det N' (@lambda (cart R N') N' (fun k : N => @COND (cart R N') (k = i) (@vector_add N' (@row N' N' i A) (@percent N' c (@row N' N' j A))) (@row N' N' k A)))) = (@det N' A). +Axiom thm_DET_ROW_SPAN : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, forall x : cart R N', ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ (@IN (cart R N') x (@span N' (@GSPEC (cart R N') (fun GEN_PVAR_2515 : cart R N' => exists j : N, @SETSPEC (cart R N') GEN_PVAR_2515 ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (~ (j = i)))) (@row N' N' j A))))))) -> (@det N' (@lambda (cart R N') N' (fun k : N => @COND (cart R N') (k = i) (@vector_add N' (@row N' N' i A) x) (@row N' N' k A)))) = (@det N' A). +Axiom thm_DET_DEPENDENT_ROWS : forall {N' : Type'}, forall A : cart (cart R N') N', (@dependent N' (@rows N' N' A)) -> (@det N' A) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DET_DEPENDENT_COLUMNS : forall {N' : Type'}, forall A : cart (cart R N') N', (@dependent N' (@columns N' N' A)) -> (@det N' A) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DET_LINEAR_ROW_VSUM : forall {_658598 N' : Type'}, forall a : _658598 -> cart R N', forall c : N -> cart R N', forall s : _658598 -> Prop, forall k : N, ((@FINITE _658598 s) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@det N' (@lambda (cart R N') N' (fun i : N => @COND (cart R N') (i = k) (@vsum _658598 N' s a) (c i)))) = (@sum _658598 s (fun j : _658598 => @det N' (@lambda (cart R N') N' (fun i : N => @COND (cart R N') (i = k) (a j) (c i))))). +Axiom thm_BOUNDED_FUNCTIONS_BIJECTIONS_1 : forall (s : N -> Prop) (k : N), forall p : prod N (N -> N), (@IN (prod N (N -> N)) p (@GSPEC (prod N (N -> N)) (fun GEN_PVAR_2517 : prod N (N -> N) => exists y : N, exists g : N -> N, @SETSPEC (prod N (N -> N)) GEN_PVAR_2517 ((@IN N y s) /\ (@IN (N -> N) g (@GSPEC (N -> N) (fun GEN_PVAR_2516 : N -> N => exists f : N -> N, @SETSPEC (N -> N) GEN_PVAR_2516 ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k)) -> @IN N (f i) s) /\ (forall i : N, (~ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k))) -> (f i) = i)) f)))) (@pair N (N -> N) y g)))) -> (@IN (N -> N) (@GABS ((prod N (N -> N)) -> N -> N) (fun f : (prod N (N -> N)) -> N -> N => forall y : N, forall g : N -> N, @GEQ (N -> N) (f (@pair N (N -> N) y g)) (fun i : N => @COND N (i = (N.succ k)) y (g i))) p) (@GSPEC (N -> N) (fun GEN_PVAR_2518 : N -> N => exists f : N -> N, @SETSPEC (N -> N) GEN_PVAR_2518 ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (N.succ k))) -> @IN N (f i) s) /\ (forall i : N, (~ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (N.succ k)))) -> (f i) = i)) f))) /\ (((fun h : N -> N => @pair N (N -> N) (h (N.succ k)) (fun i : N => @COND N (i = (N.succ k)) i (h i))) (@GABS ((prod N (N -> N)) -> N -> N) (fun f : (prod N (N -> N)) -> N -> N => forall y : N, forall g : N -> N, @GEQ (N -> N) (f (@pair N (N -> N) y g)) (fun i : N => @COND N (i = (N.succ k)) y (g i))) p)) = p). +Axiom thm_BOUNDED_FUNCTIONS_BIJECTIONS_2 : forall (s : N -> Prop) (k : N), forall h : N -> N, (@IN (N -> N) h (@GSPEC (N -> N) (fun GEN_PVAR_2519 : N -> N => exists f : N -> N, @SETSPEC (N -> N) GEN_PVAR_2519 ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (N.succ k))) -> @IN N (f i) s) /\ (forall i : N, (~ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (N.succ k)))) -> (f i) = i)) f))) -> (@IN (prod N (N -> N)) ((fun h' : N -> N => @pair N (N -> N) (h' (N.succ k)) (fun i : N => @COND N (i = (N.succ k)) i (h' i))) h) (@GSPEC (prod N (N -> N)) (fun GEN_PVAR_2521 : prod N (N -> N) => exists y : N, exists g : N -> N, @SETSPEC (prod N (N -> N)) GEN_PVAR_2521 ((@IN N y s) /\ (@IN (N -> N) g (@GSPEC (N -> N) (fun GEN_PVAR_2520 : N -> N => exists f : N -> N, @SETSPEC (N -> N) GEN_PVAR_2520 ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k)) -> @IN N (f i) s) /\ (forall i : N, (~ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k))) -> (f i) = i)) f)))) (@pair N (N -> N) y g)))) /\ ((@GABS ((prod N (N -> N)) -> N -> N) (fun f : (prod N (N -> N)) -> N -> N => forall y : N, forall g : N -> N, @GEQ (N -> N) (f (@pair N (N -> N) y g)) (fun i : N => @COND N (i = (N.succ k)) y (g i))) ((fun h' : N -> N => @pair N (N -> N) (h' (N.succ k)) (fun i : N => @COND N (i = (N.succ k)) i (h' i))) h)) = h). +Axiom thm_FINITE_BOUNDED_FUNCTIONS : forall s : N -> Prop, forall k : N, (@FINITE N s) -> @FINITE (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_2523 : N -> N => exists f : N -> N, @SETSPEC (N -> N) GEN_PVAR_2523 ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k)) -> @IN N (f i) s) /\ (forall i : N, (~ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k))) -> (f i) = i)) f)). +Axiom thm_DET_LINEAR_ROWS_VSUM_LEMMA : forall {N' : Type'}, forall s : N -> Prop, forall k : N, forall a : N -> N -> cart R N', forall c : N -> cart R N', ((@FINITE N s) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@det N' (@lambda (cart R N') N' (fun i : N => @COND (cart R N') (N.le i k) (@vsum N N' s (a i)) (c i)))) = (@sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_2525 : N -> N => exists f : N -> N, @SETSPEC (N -> N) GEN_PVAR_2525 ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k)) -> @IN N (f i) s) /\ (forall i : N, (~ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k))) -> (f i) = i)) f)) (fun f : N -> N => @det N' (@lambda (cart R N') N' (fun i : N => @COND (cart R N') (N.le i k) (a i (f i)) (c i))))). +Axiom thm_DET_LINEAR_ROWS_VSUM : forall {N' : Type'}, forall s : N -> Prop, forall a : N -> N -> cart R N', (@FINITE N s) -> (@det N' (@lambda (cart R N') N' (fun i : N => @vsum N N' s (a i)))) = (@sum (N -> N) (@GSPEC (N -> N) (fun GEN_PVAR_2526 : N -> N => exists f : N -> N, @SETSPEC (N -> N) GEN_PVAR_2526 ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @IN N (f i) s) /\ (forall i : N, (~ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> (f i) = i)) f)) (fun f : N -> N => @det N' (@lambda (cart R N') N' (fun i : N => a i (f i))))). +Axiom thm_MATRIX_MUL_VSUM_ALT : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', (@matrix_mul N' N' N' A B) = (@lambda (cart R N') N' (fun i : N => @vsum N N' (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun k : N => @percent N' (@dollar R N' (@dollar (cart R N') N' A i) k) (@dollar (cart R N') N' B k)))). +Axiom thm_DET_ROWS_MUL : forall {N' : Type'}, forall a : N -> cart R N', forall c : N -> R, (@det N' (@lambda (cart R N') N' (fun i : N => @percent N' (c i) (a i)))) = (Rmult (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => c i)) (@det N' (@lambda (cart R N') N' (fun i : N => a i)))). +Axiom thm_DET_MUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', (@det N' (@matrix_mul N' N' N' A B)) = (Rmult (@det N' A) (@det N' B)). +Axiom thm_DET_LINEAR_ROWS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall A : cart (cart R N') N', (@linear N' N' f) -> (@det N' (@lambda (cart R N') N' (fun i : N => f (@dollar (cart R N') N' A i)))) = (Rmult (@det N' (@matrix N' N' f)) (@det N' A)). +Axiom thm_INVERTIBLE_DET_NZ : forall {N' : Type'}, forall A : cart (cart R N') N', (@invertible N' N' A) = (~ ((@det N' A) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_DET_EQ_0 : forall {N' : Type'}, forall A : cart (cart R N') N', ((@det N' A) = (R_of_N (NUMERAL 0%N))) = (~ (@invertible N' N' A)). +Axiom thm_DET_MATRIX_INV : forall {N' : Type'}, forall A : cart (cart R N') N', (@det N' (@matrix_inv N' N' A)) = (Rinv (@det N' A)). +Axiom thm_MATRIX_MUL_LINV : forall {N' : Type'}, forall A : cart (cart R N') N', (~ ((@det N' A) = (R_of_N (NUMERAL 0%N)))) -> (@matrix_mul N' N' N' (@matrix_inv N' N' A) A) = (@mat N' N' (NUMERAL (BIT1 0%N))). +Axiom thm_MATRIX_MUL_RINV : forall {N' : Type'}, forall A : cart (cart R N') N', (~ ((@det N' A) = (R_of_N (NUMERAL 0%N)))) -> (@matrix_mul N' N' N' A (@matrix_inv N' N' A)) = (@mat N' N' (NUMERAL (BIT1 0%N))). +Axiom thm_DET_MATRIX_EQ_0 : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> ((@det N' (@matrix N' N' f)) = (R_of_N (NUMERAL 0%N))) = (~ (exists g : (cart R N') -> cart R N', (@linear N' N' g) /\ (((@o (cart R N') (cart R N') (cart R N') f g) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') g f) = (@I (cart R N')))))). +Axiom thm_DET_MATRIX_EQ_0_LEFT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> ((@det N' (@matrix N' N' f)) = (R_of_N (NUMERAL 0%N))) = (~ (exists g : (cart R N') -> cart R N', (@linear N' N' g) /\ ((@o (cart R N') (cart R N') (cart R N') g f) = (@I (cart R N'))))). +Axiom thm_DET_MATRIX_EQ_0_RIGHT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@linear N' N' f) -> ((@det N' (@matrix N' N' f)) = (R_of_N (NUMERAL 0%N))) = (~ (exists g : (cart R N') -> cart R N', (@linear N' N' g) /\ ((@o (cart R N') (cart R N') (cart R N') f g) = (@I (cart R N'))))). +Axiom thm_DET_EQ_0_RANK : forall {N' : Type'}, forall A : cart (cart R N') N', ((@det N' A) = (R_of_N (NUMERAL 0%N))) = (N.lt (@rank N' N' A) (@dimindex N' (@UNIV N'))). +Axiom thm_RANK_EQ_FULL_DET : forall {N' : Type'}, forall A : cart (cart R N') N', ((@rank N' N' A) = (@dimindex N' (@UNIV N'))) = (~ ((@det N' A) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_INVERTIBLE_COVARIANCE_RANK : forall {M N' : Type'}, forall A : cart (cart R N') M, (@invertible N' N' (@matrix_mul N' M N' (@transp M N' A) A)) = ((@rank N' M A) = (@dimindex N' (@UNIV N'))). +Axiom thm_HOMOGENEOUS_LINEAR_EQUATIONS_DET : forall {N' : Type'}, forall A : cart (cart R N') N', (exists x : cart R N', (~ (x = (@vec N' (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' N' A x) = (@vec N' (NUMERAL 0%N)))) = ((@det N' A) = (R_of_N (NUMERAL 0%N))). +Axiom thm_INVERTIBLE_MATRIX_MUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', (@invertible N' N' (@matrix_mul N' N' N' A B)) = ((@invertible N' N' A) /\ (@invertible N' N' B)). +Axiom thm_MATRIX_INV_MUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@invertible N' N' A) /\ (@invertible N' N' B)) -> (@matrix_inv N' N' (@matrix_mul N' N' N' A B)) = (@matrix_mul N' N' N' (@matrix_inv N' N' B) (@matrix_inv N' N' A)). +Axiom thm_DET_SIMILAR : forall {N' : Type'}, forall S' : cart (cart R N') N', forall A : cart (cart R N') N', (@invertible N' N' S') -> (@det N' (@matrix_mul N' N' N' (@matrix_inv N' N' S') (@matrix_mul N' N' N' A S'))) = (@det N' A). +Axiom thm_INVERTIBLE_NEARBY_ONORM : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@invertible N' N' A) /\ (Rlt (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' (@matrix_sub N' N' B A) x)) (Rinv (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' (@matrix_inv N' N' A) x))))) -> @invertible N' N' B. +Axiom thm_INVERTIBLE_NEARBY : forall {N' : Type'}, forall A : cart (cart R N') N', (@invertible N' N' A) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall B : cart (cart R N') N', (Rlt (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' (@matrix_sub N' N' B A) x)) e) -> @invertible N' N' B). +Axiom thm_CRAMER_LEMMA_TRANSP : forall {N' : Type'} (k : N), forall A : cart (cart R N') N', forall x : cart R N', ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@det N' (@lambda (cart R N') N' (fun i : N => @COND (cart R N') (i = k) (@vsum N N' (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i' : N => @percent N' (@dollar R N' x i') (@row N' N' i' A))) (@row N' N' i A)))) = (Rmult (@dollar R N' x k) (@det N' A)). +Axiom thm_CRAMER_LEMMA : forall {N' : Type'} (k : N), forall A : cart (cart R N') N', forall x : cart R N', ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@det N' (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @COND R (j = k) (@dollar R N' (@matrix_vector_mul N' N' A x) i) (@dollar R N' (@dollar (cart R N') N' A i) j))))) = (Rmult (@dollar R N' x k) (@det N' A)). +Axiom thm_CRAMER : forall {N' : Type'}, forall A : cart (cart R N') N', forall x : cart R N', forall b : cart R N', (~ ((@det N' A) = (R_of_N (NUMERAL 0%N)))) -> ((@matrix_vector_mul N' N' A x) = b) = (x = (@lambda R N' (fun k : N => Rdiv (@det N' (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @COND R (j = k) (@dollar R N' b i) (@dollar R N' (@dollar (cart R N') N' A i) j))))) (@det N' A)))). +Axiom thm_CRAMER_MATRIX_LEFT : forall {N' : Type'}, forall A : cart (cart R N') N', forall X : cart (cart R N') N', forall B : cart (cart R N') N', (~ ((@det N' A) = (R_of_N (NUMERAL 0%N)))) -> ((@matrix_mul N' N' N' X A) = B) = (X = (@lambda (cart R N') N' (fun k : N => @lambda R N' (fun l : N => Rdiv (@det N' (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @COND R (j = l) (@dollar R N' (@dollar (cart R N') N' B k) i) (@dollar R N' (@dollar (cart R N') N' A j) i))))) (@det N' A))))). +Axiom thm_CRAMER_MATRIX_RIGHT : forall {N' : Type'}, forall A : cart (cart R N') N', forall X : cart (cart R N') N', forall B : cart (cart R N') N', (~ ((@det N' A) = (R_of_N (NUMERAL 0%N)))) -> ((@matrix_mul N' N' N' A X) = B) = (X = (@lambda (cart R N') N' (fun k : N => @lambda R N' (fun l : N => Rdiv (@det N' (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @COND R (j = k) (@dollar R N' (@dollar (cart R N') N' B i) l) (@dollar R N' (@dollar (cart R N') N' A i) j))))) (@det N' A))))). +Axiom thm_CRAMER_MATRIX_RIGHT_INVERSE : forall {N' : Type'}, forall A : cart (cart R N') N', forall A' : cart (cart R N') N', ((@matrix_mul N' N' N' A A') = (@mat N' N' (NUMERAL (BIT1 0%N)))) = ((~ ((@det N' A) = (R_of_N (NUMERAL 0%N)))) /\ (A' = (@lambda (cart R N') N' (fun k : N => @lambda R N' (fun l : N => Rdiv (@det N' (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @COND R (j = k) (@COND R (i = l) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@dollar R N' (@dollar (cart R N') N' A i) j))))) (@det N' A)))))). +Axiom thm_CRAMER_MATRIX_LEFT_INVERSE : forall {N' : Type'}, forall A : cart (cart R N') N', forall A' : cart (cart R N') N', ((@matrix_mul N' N' N' A' A) = (@mat N' N' (NUMERAL (BIT1 0%N)))) = ((~ ((@det N' A) = (R_of_N (NUMERAL 0%N)))) /\ (A' = (@lambda (cart R N') N' (fun k : N => @lambda R N' (fun l : N => Rdiv (@det N' (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @COND R (j = l) (@COND R (i = k) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@dollar R N' (@dollar (cart R N') N' A j) i))))) (@det N' A)))))). +Axiom thm_cofactor : forall {N' : Type'}, forall A : cart (cart R N') N', (@cofactor N' A) = (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @det N' (@lambda (cart R N') N' (fun k : N => @lambda R N' (fun l : N => @COND R ((k = i) /\ (l = j)) (R_of_N (NUMERAL (BIT1 0%N))) (@COND R ((k = i) \/ (l = j)) (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' A k) l)))))))). +Axiom thm_COFACTOR_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@cofactor N' (@transp N' N' A)) = (@transp N' N' (@cofactor N' A)). +Axiom thm_COFACTOR_COLUMN : forall {N' : Type'}, forall A : cart (cart R N') N', (@cofactor N' A) = (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @det N' (@lambda (cart R N') N' (fun k : N => @lambda R N' (fun l : N => @COND R (l = j) (@COND R (k = i) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@dollar R N' (@dollar (cart R N') N' A k) l))))))). +Axiom thm_COFACTOR_ROW : forall {N' : Type'}, forall A : cart (cart R N') N', (@cofactor N' A) = (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @det N' (@lambda (cart R N') N' (fun k : N => @lambda R N' (fun l : N => @COND R (k = i) (@COND R (l = j) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@dollar R N' (@dollar (cart R N') N' A k) l))))))). +Axiom thm_MATRIX_RIGHT_INVERSE_COFACTOR : forall {N' : Type'}, forall A : cart (cart R N') N', forall A' : cart (cart R N') N', ((@matrix_mul N' N' N' A A') = (@mat N' N' (NUMERAL (BIT1 0%N)))) = ((~ ((@det N' A) = (R_of_N (NUMERAL 0%N)))) /\ (A' = (@__ N' N' (Rinv (@det N' A)) (@transp N' N' (@cofactor N' A))))). +Axiom thm_MATRIX_LEFT_INVERSE_COFACTOR : forall {N' : Type'}, forall A : cart (cart R N') N', forall A' : cart (cart R N') N', ((@matrix_mul N' N' N' A' A) = (@mat N' N' (NUMERAL (BIT1 0%N)))) = ((~ ((@det N' A) = (R_of_N (NUMERAL 0%N)))) /\ (A' = (@__ N' N' (Rinv (@det N' A)) (@transp N' N' (@cofactor N' A))))). +Axiom thm_MATRIX_INV_COFACTOR : forall {_662200 : Type'}, forall A : cart (cart R _662200) _662200, (~ ((@det _662200 A) = (R_of_N (NUMERAL 0%N)))) -> (@matrix_inv _662200 _662200 A) = (@__ _662200 _662200 (Rinv (@det _662200 A)) (@transp _662200 _662200 (@cofactor _662200 A))). +Axiom thm_COFACTOR_MATRIX_INV : forall {N' : Type'}, forall A : cart (cart R N') N', (~ ((@det N' A) = (R_of_N (NUMERAL 0%N)))) -> (@cofactor N' A) = (@__ N' N' (@det N' A) (@transp N' N' (@matrix_inv N' N' A))). +Axiom thm_COFACTOR_I : forall {N' : Type'}, (@cofactor N' (@mat N' N' (NUMERAL (BIT1 0%N)))) = (@mat N' N' (NUMERAL (BIT1 0%N))). +Axiom thm_DET_COFACTOR_EXPANSION : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@det N' A) = (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun j : N => Rmult (@dollar R N' (@dollar (cart R N') N' A i) j) (@dollar R N' (@dollar (cart R N') N' (@cofactor N' A) i) j))). +Axiom thm_MATRIX_MUL_RIGHT_COFACTOR : forall {N' : Type'}, forall A : cart (cart R N') N', (@matrix_mul N' N' N' A (@transp N' N' (@cofactor N' A))) = (@__ N' N' (@det N' A) (@mat N' N' (NUMERAL (BIT1 0%N)))). +Axiom thm_MATRIX_MUL_LEFT_COFACTOR : forall {N' : Type'}, forall A : cart (cart R N') N', (@matrix_mul N' N' N' (@transp N' N' (@cofactor N' A)) A) = (@__ N' N' (@det N' A) (@mat N' N' (NUMERAL (BIT1 0%N)))). +Axiom thm_COFACTOR_CMUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall c : R, (@cofactor N' (@__ N' N' c A)) = (@__ N' N' (real_pow c (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) (@cofactor N' A)). +Axiom thm_COFACTOR_0 : forall {N' : Type'}, (@cofactor N' (@mat N' N' (NUMERAL 0%N))) = (@COND (cart (cart R N') N') ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) (@mat N' N' (NUMERAL (BIT1 0%N))) (@mat N' N' (NUMERAL 0%N))). +Axiom thm_PRODUCT_1 : forall (f : N -> R), (@product N (dotdot (NUMERAL (BIT1 0%N)) (NUMERAL (BIT1 0%N))) f) = (f (NUMERAL (BIT1 0%N))). +Axiom thm_PRODUCT_2 : forall t : N -> R, (@product N (dotdot (NUMERAL (BIT1 0%N)) (NUMERAL (BIT0 (BIT1 0%N)))) t) = (Rmult (t (NUMERAL (BIT1 0%N))) (t (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_PRODUCT_3 : forall t : N -> R, (@product N (dotdot (NUMERAL (BIT1 0%N)) (NUMERAL (BIT1 (BIT1 0%N)))) t) = (Rmult (t (NUMERAL (BIT1 0%N))) (Rmult (t (NUMERAL (BIT0 (BIT1 0%N)))) (t (NUMERAL (BIT1 (BIT1 0%N)))))). +Axiom thm_PRODUCT_4 : forall t : N -> R, (@product N (dotdot (NUMERAL (BIT1 0%N)) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) t) = (Rmult (t (NUMERAL (BIT1 0%N))) (Rmult (t (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (t (NUMERAL (BIT1 (BIT1 0%N)))) (t (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))))). +Axiom thm_DET_1_GEN : forall {N' : Type'}, forall A : cart (cart R N') N', ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@det N' A) = (@dollar R N' (@dollar (cart R N') N' A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))). +Axiom thm_DET_1 : forall A : cart (cart R unit) unit, (@det unit A) = (@dollar R unit (@dollar (cart R unit) unit A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))). +Axiom thm_DET_2 : forall A : cart (cart R (tybit0 unit)) (tybit0 unit), (@det (tybit0 unit) A) = (Rminus (Rmult (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))))). +Axiom thm_DET_3 : forall A : cart (cart R (tybit1 unit)) (tybit1 unit), (@det (tybit1 unit) A) = (Rplus (Rmult (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))))) (Rplus (Rmult (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))))) (Rminus (Rminus (Rminus (Rmult (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))))) (Rmult (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))))) (Rmult (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N))))))) (Rmult (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) (@dollar (cart R (tybit1 unit)) (tybit1 unit) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 0%N)))))))). +Axiom thm_DET_4 : forall A : cart (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)), (@det (tybit0 (tybit0 unit)) A) = (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))))) (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT1 0%N))))))) (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT1 (BIT1 0%N))))))) (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT1 (BIT1 0%N))))))) (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))))) (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT1 0%N)))))) (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))))) (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT1 0%N)))))) (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT1 0%N))))))) (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT1 0%N))))))) (Rplus (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT1 (BIT1 0%N))))))) (Rminus (Rminus (Rminus (Rminus (Rminus (Rminus (Rminus (Rminus (Rminus (Rminus (Rminus (Rminus (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT1 0%N)))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT1 (BIT1 0%N)))))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT1 0%N)))))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT1 0%N))))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT1 (BIT1 0%N)))))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT1 0%N)))))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT1 0%N))))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT1 (BIT1 0%N)))))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT1 0%N))))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT1 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) (@dollar (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) A (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT1 0%N))))))))))))))))))). +Axiom thm_COFACTOR_1_GEN : forall {N' : Type'}, forall A : cart (cart R N') N', ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@cofactor N' A) = (@mat N' N' (NUMERAL (BIT1 0%N))). +Axiom thm_COFACTOR_1 : forall A : cart (cart R unit) unit, (@cofactor unit A) = (@mat unit unit (NUMERAL (BIT1 0%N))). +Axiom thm_DISJOINT_HYPERPLANES_IMP_COLLINEAR : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2534 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2534 ((@dot N' a x) = c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2535 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2535 ((@dot N' b x) = d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))). +Axiom thm_DISJOINT_HALFSPACES_IMP_COLLINEAR : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2540 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2540 (Rlt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2541 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2541 (Rlt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2542 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2542 (Rlt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2543 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2543 (Rle (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2544 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2544 (Rlt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2545 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2545 ((@dot N' b x) = d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2546 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2546 (Rlt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2547 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2547 (Rge (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2548 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2548 (Rlt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2549 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2549 (Rgt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2550 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2550 (Rle (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2551 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2551 (Rlt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2552 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2552 (Rle (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2553 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2553 (Rle (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2554 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2554 (Rle (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2555 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2555 ((@dot N' b x) = d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2556 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2556 (Rle (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2557 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2557 (Rge (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2558 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2558 (Rle (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2559 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2559 (Rgt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2560 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2560 ((@dot N' a x) = c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2561 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2561 (Rlt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2562 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2562 ((@dot N' a x) = c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2563 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2563 (Rle (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2564 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2564 ((@dot N' a x) = c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2565 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2565 ((@dot N' b x) = d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2566 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2566 ((@dot N' a x) = c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2567 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2567 (Rge (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2568 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2568 ((@dot N' a x) = c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2569 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2569 (Rgt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2570 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2570 (Rge (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2571 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2571 (Rlt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2572 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2572 (Rge (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2573 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2573 (Rle (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2574 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2574 (Rge (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2575 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2575 ((@dot N' b x) = d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2576 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2576 (Rge (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2577 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2577 (Rge (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2578 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2578 (Rge (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2579 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2579 (Rgt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2580 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2580 (Rgt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2581 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2581 (Rlt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2582 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2582 (Rgt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2583 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2583 (Rle (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2584 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2584 (Rgt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2585 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2585 ((@dot N' b x) = d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2586 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2586 (Rgt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2587 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2587 (Rge (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@DISJOINT (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2588 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2588 (Rgt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2589 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2589 (Rgt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))))))))))))))))))))))))))). +Axiom thm_SUBSET_HALFSPACES_IMP_COLLINEAR : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2595 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2595 (Rlt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2596 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2596 (Rlt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2597 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2597 (Rlt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2598 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2598 (Rle (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2599 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2599 (Rlt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2600 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2600 ((@dot N' b x) = d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2601 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2601 (Rlt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2602 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2602 (Rge (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2603 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2603 (Rlt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2604 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2604 (Rgt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2605 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2605 (Rle (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2606 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2606 (Rlt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2607 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2607 (Rle (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2608 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2608 (Rle (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2609 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2609 (Rle (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2610 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2610 ((@dot N' b x) = d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2611 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2611 (Rle (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2612 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2612 (Rge (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2613 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2613 (Rle (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2614 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2614 (Rgt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2615 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2615 ((@dot N' a x) = c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2616 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2616 (Rlt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2617 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2617 ((@dot N' a x) = c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2618 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2618 (Rle (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2619 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2619 ((@dot N' a x) = c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2620 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2620 ((@dot N' b x) = d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2621 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2621 ((@dot N' a x) = c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2622 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2622 (Rge (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2623 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2623 ((@dot N' a x) = c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2624 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2624 (Rgt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2625 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2625 (Rge (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2626 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2626 (Rlt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2627 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2627 (Rge (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2628 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2628 (Rle (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2629 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2629 (Rge (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2630 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2630 ((@dot N' b x) = d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2631 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2631 (Rge (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2632 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2632 (Rge (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2633 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2633 (Rge (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2634 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2634 (Rgt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2635 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2635 (Rgt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2636 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2636 (Rlt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2637 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2637 (Rgt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2638 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2638 (Rle (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2639 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2639 (Rgt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2640 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2640 ((@dot N' b x) = d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2641 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2641 (Rgt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2642 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2642 (Rge (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', forall c : R, forall d : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2643 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2643 (Rgt (@dot N' a x) c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2644 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2644 (Rgt (@dot N' b x) d) x))) -> @collinear N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))))))))))))))))))))))))))). +Axiom thm_SUBSET_HYPERPLANES : forall {N' : Type'}, forall a : cart R N', forall b : R, forall a' : cart R N', forall b' : R, (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2649 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2649 ((@dot N' a x) = b) x)) (@GSPEC (cart R N') (fun GEN_PVAR_2650 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2650 ((@dot N' a' x) = b') x))) = (((@GSPEC (cart R N') (fun GEN_PVAR_2651 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2651 ((@dot N' a x) = b) x)) = (@EMPTY (cart R N'))) \/ (((@GSPEC (cart R N') (fun GEN_PVAR_2652 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2652 ((@dot N' a' x) = b') x)) = (@UNIV (cart R N'))) \/ ((@GSPEC (cart R N') (fun GEN_PVAR_2653 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2653 ((@dot N' a x) = b) x)) = (@GSPEC (cart R N') (fun GEN_PVAR_2654 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2654 ((@dot N' a' x) = b') x))))). +Axiom thm_EIGENVALUES_CHARACTERISTIC_ALT : forall {N' : Type'}, forall A : cart (cart R N') N', forall c : R, (exists v : cart R N', (~ (v = (@vec N' (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' N' A v) = (@percent N' c v))) = ((@det N' (@matrix_sub N' N' A (@__ N' N' c (@mat N' N' (NUMERAL (BIT1 0%N)))))) = (R_of_N (NUMERAL 0%N))). +Axiom thm_EIGENVALUES_CHARACTERISTIC : forall {N' : Type'}, forall A : cart (cart R N') N', forall c : R, (exists v : cart R N', (~ (v = (@vec N' (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' N' A v) = (@percent N' c v))) = ((@det N' (@matrix_sub N' N' (@__ N' N' c (@mat N' N' (NUMERAL (BIT1 0%N)))) A)) = (R_of_N (NUMERAL 0%N))). +Axiom thm_INVERTIBLE_EIGENVALUES : forall {N' : Type'}, forall A : cart (cart R N') N', (@invertible N' N' A) = (forall c : R, forall v : cart R N', (((@matrix_vector_mul N' N' A v) = (@percent N' c v)) /\ (~ (v = (@vec N' (NUMERAL 0%N))))) -> ~ (c = (R_of_N (NUMERAL 0%N)))). +Axiom thm_CHARACTERISTIC_POLYNOMIAL : forall {N' : Type'}, forall A : cart (cart R N') N', exists a : N -> R, ((a (@dimindex N' (@UNIV N'))) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall x : R, (@det N' (@matrix_sub N' N' (@__ N' N' x (@mat N' N' (NUMERAL (BIT1 0%N)))) A)) = (@sum N (dotdot (NUMERAL 0%N) (@dimindex N' (@UNIV N'))) (fun i : N => Rmult (a i) (real_pow x i)))). +Axiom thm_FINITE_EIGENVALUES : forall {N' : Type'}, forall A : cart (cart R N') N', @FINITE R (@GSPEC R (fun GEN_PVAR_2657 : R => exists c : R, @SETSPEC R GEN_PVAR_2657 (exists v : cart R N', (~ (v = (@vec N' (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' N' A v) = (@percent N' c v))) c)). +Axiom thm_GRASSMANN_PLUCKER_2 : forall x1 : cart R (tybit0 unit), forall x2 : cart R (tybit0 unit), forall y1 : cart R (tybit0 unit), forall y2 : cart R (tybit0 unit), (Rmult (@det (tybit0 unit) (@vector (cart R (tybit0 unit)) (tybit0 unit) (@cons (cart R (tybit0 unit)) x1 (@cons (cart R (tybit0 unit)) x2 (@nil (cart R (tybit0 unit))))))) (@det (tybit0 unit) (@vector (cart R (tybit0 unit)) (tybit0 unit) (@cons (cart R (tybit0 unit)) y1 (@cons (cart R (tybit0 unit)) y2 (@nil (cart R (tybit0 unit)))))))) = (Rplus (Rmult (@det (tybit0 unit) (@vector (cart R (tybit0 unit)) (tybit0 unit) (@cons (cart R (tybit0 unit)) y1 (@cons (cart R (tybit0 unit)) x2 (@nil (cart R (tybit0 unit))))))) (@det (tybit0 unit) (@vector (cart R (tybit0 unit)) (tybit0 unit) (@cons (cart R (tybit0 unit)) x1 (@cons (cart R (tybit0 unit)) y2 (@nil (cart R (tybit0 unit)))))))) (Rmult (@det (tybit0 unit) (@vector (cart R (tybit0 unit)) (tybit0 unit) (@cons (cart R (tybit0 unit)) y2 (@cons (cart R (tybit0 unit)) x2 (@nil (cart R (tybit0 unit))))))) (@det (tybit0 unit) (@vector (cart R (tybit0 unit)) (tybit0 unit) (@cons (cart R (tybit0 unit)) y1 (@cons (cart R (tybit0 unit)) x1 (@nil (cart R (tybit0 unit))))))))). +Axiom thm_GRASSMANN_PLUCKER_3 : forall x1 : cart R (tybit1 unit), forall x2 : cart R (tybit1 unit), forall x3 : cart R (tybit1 unit), forall y1 : cart R (tybit1 unit), forall y2 : cart R (tybit1 unit), forall y3 : cart R (tybit1 unit), (Rmult (@det (tybit1 unit) (@vector (cart R (tybit1 unit)) (tybit1 unit) (@cons (cart R (tybit1 unit)) x1 (@cons (cart R (tybit1 unit)) x2 (@cons (cart R (tybit1 unit)) x3 (@nil (cart R (tybit1 unit)))))))) (@det (tybit1 unit) (@vector (cart R (tybit1 unit)) (tybit1 unit) (@cons (cart R (tybit1 unit)) y1 (@cons (cart R (tybit1 unit)) y2 (@cons (cart R (tybit1 unit)) y3 (@nil (cart R (tybit1 unit))))))))) = (Rplus (Rmult (@det (tybit1 unit) (@vector (cart R (tybit1 unit)) (tybit1 unit) (@cons (cart R (tybit1 unit)) y1 (@cons (cart R (tybit1 unit)) x2 (@cons (cart R (tybit1 unit)) x3 (@nil (cart R (tybit1 unit)))))))) (@det (tybit1 unit) (@vector (cart R (tybit1 unit)) (tybit1 unit) (@cons (cart R (tybit1 unit)) x1 (@cons (cart R (tybit1 unit)) y2 (@cons (cart R (tybit1 unit)) y3 (@nil (cart R (tybit1 unit))))))))) (Rplus (Rmult (@det (tybit1 unit) (@vector (cart R (tybit1 unit)) (tybit1 unit) (@cons (cart R (tybit1 unit)) y2 (@cons (cart R (tybit1 unit)) x2 (@cons (cart R (tybit1 unit)) x3 (@nil (cart R (tybit1 unit)))))))) (@det (tybit1 unit) (@vector (cart R (tybit1 unit)) (tybit1 unit) (@cons (cart R (tybit1 unit)) y1 (@cons (cart R (tybit1 unit)) x1 (@cons (cart R (tybit1 unit)) y3 (@nil (cart R (tybit1 unit))))))))) (Rmult (@det (tybit1 unit) (@vector (cart R (tybit1 unit)) (tybit1 unit) (@cons (cart R (tybit1 unit)) y3 (@cons (cart R (tybit1 unit)) x2 (@cons (cart R (tybit1 unit)) x3 (@nil (cart R (tybit1 unit)))))))) (@det (tybit1 unit) (@vector (cart R (tybit1 unit)) (tybit1 unit) (@cons (cart R (tybit1 unit)) y1 (@cons (cart R (tybit1 unit)) y2 (@cons (cart R (tybit1 unit)) x1 (@nil (cart R (tybit1 unit))))))))))). +Axiom thm_GRASSMANN_PLUCKER_4 : forall x1 : cart R (tybit0 (tybit0 unit)), forall x2 : cart R (tybit0 (tybit0 unit)), forall x3 : cart R (tybit0 (tybit0 unit)), forall x4 : cart R (tybit0 (tybit0 unit)), forall y1 : cart R (tybit0 (tybit0 unit)), forall y2 : cart R (tybit0 (tybit0 unit)), forall y3 : cart R (tybit0 (tybit0 unit)), forall y4 : cart R (tybit0 (tybit0 unit)), (Rmult (@det (tybit0 (tybit0 unit)) (@vector (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) (@cons (cart R (tybit0 (tybit0 unit))) x1 (@cons (cart R (tybit0 (tybit0 unit))) x2 (@cons (cart R (tybit0 (tybit0 unit))) x3 (@cons (cart R (tybit0 (tybit0 unit))) x4 (@nil (cart R (tybit0 (tybit0 unit)))))))))) (@det (tybit0 (tybit0 unit)) (@vector (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) (@cons (cart R (tybit0 (tybit0 unit))) y1 (@cons (cart R (tybit0 (tybit0 unit))) y2 (@cons (cart R (tybit0 (tybit0 unit))) y3 (@cons (cart R (tybit0 (tybit0 unit))) y4 (@nil (cart R (tybit0 (tybit0 unit))))))))))) = (Rplus (Rmult (@det (tybit0 (tybit0 unit)) (@vector (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) (@cons (cart R (tybit0 (tybit0 unit))) y1 (@cons (cart R (tybit0 (tybit0 unit))) x2 (@cons (cart R (tybit0 (tybit0 unit))) x3 (@cons (cart R (tybit0 (tybit0 unit))) x4 (@nil (cart R (tybit0 (tybit0 unit)))))))))) (@det (tybit0 (tybit0 unit)) (@vector (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) (@cons (cart R (tybit0 (tybit0 unit))) x1 (@cons (cart R (tybit0 (tybit0 unit))) y2 (@cons (cart R (tybit0 (tybit0 unit))) y3 (@cons (cart R (tybit0 (tybit0 unit))) y4 (@nil (cart R (tybit0 (tybit0 unit))))))))))) (Rplus (Rmult (@det (tybit0 (tybit0 unit)) (@vector (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) (@cons (cart R (tybit0 (tybit0 unit))) y2 (@cons (cart R (tybit0 (tybit0 unit))) x2 (@cons (cart R (tybit0 (tybit0 unit))) x3 (@cons (cart R (tybit0 (tybit0 unit))) x4 (@nil (cart R (tybit0 (tybit0 unit)))))))))) (@det (tybit0 (tybit0 unit)) (@vector (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) (@cons (cart R (tybit0 (tybit0 unit))) y1 (@cons (cart R (tybit0 (tybit0 unit))) x1 (@cons (cart R (tybit0 (tybit0 unit))) y3 (@cons (cart R (tybit0 (tybit0 unit))) y4 (@nil (cart R (tybit0 (tybit0 unit))))))))))) (Rplus (Rmult (@det (tybit0 (tybit0 unit)) (@vector (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) (@cons (cart R (tybit0 (tybit0 unit))) y3 (@cons (cart R (tybit0 (tybit0 unit))) x2 (@cons (cart R (tybit0 (tybit0 unit))) x3 (@cons (cart R (tybit0 (tybit0 unit))) x4 (@nil (cart R (tybit0 (tybit0 unit)))))))))) (@det (tybit0 (tybit0 unit)) (@vector (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) (@cons (cart R (tybit0 (tybit0 unit))) y1 (@cons (cart R (tybit0 (tybit0 unit))) y2 (@cons (cart R (tybit0 (tybit0 unit))) x1 (@cons (cart R (tybit0 (tybit0 unit))) y4 (@nil (cart R (tybit0 (tybit0 unit))))))))))) (Rmult (@det (tybit0 (tybit0 unit)) (@vector (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) (@cons (cart R (tybit0 (tybit0 unit))) y4 (@cons (cart R (tybit0 (tybit0 unit))) x2 (@cons (cart R (tybit0 (tybit0 unit))) x3 (@cons (cart R (tybit0 (tybit0 unit))) x4 (@nil (cart R (tybit0 (tybit0 unit)))))))))) (@det (tybit0 (tybit0 unit)) (@vector (cart R (tybit0 (tybit0 unit))) (tybit0 (tybit0 unit)) (@cons (cart R (tybit0 (tybit0 unit))) y1 (@cons (cart R (tybit0 (tybit0 unit))) y2 (@cons (cart R (tybit0 (tybit0 unit))) y3 (@cons (cart R (tybit0 (tybit0 unit))) x1 (@nil (cart R (tybit0 (tybit0 unit)))))))))))))). +Axiom thm_INTEGER_PRODUCT : forall {_670351 : Type'}, forall f : _670351 -> R, forall s : _670351 -> Prop, (forall x : _670351, (@IN _670351 x s) -> integer (f x)) -> integer (@product _670351 s f). +Axiom thm_INTEGER_SIGN : forall {_670363 : Type'}, forall p : _670363 -> _670363, integer (@sign _670363 p). +Axiom thm_INTEGER_DET : forall {N' : Type'}, forall M : cart (cart R N') N', (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> integer (@dollar R N' (@dollar (cart R N') N' M i) j)) -> integer (@det N' M). +Axiom thm_diagonal_matrix : forall {M N' : Type'}, forall A : cart (cart R N') M, (@diagonal_matrix M N' A) = (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (~ (i = j)))))) -> (@dollar R N' (@dollar (cart R N') M A i) j) = (R_of_N (NUMERAL 0%N))). +Axiom thm_DIAGONAL_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', (@diagonal_matrix N' N' A) = (A = (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @COND R (i = j) (@dollar R N' (@dollar (cart R N') N' A i) j) (R_of_N (NUMERAL 0%N)))))). +Axiom thm_DIAGONAL_MATRIX_MAT : forall {N' : Type'}, forall m : N, @diagonal_matrix N' N' (@mat N' N' m). +Axiom thm_TRANSP_DIAGONAL_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', (@diagonal_matrix N' N' A) -> (@transp N' N' A) = A. +Axiom thm_DIAGONAL_IMP_SYMMETRIC_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', (@diagonal_matrix N' N' A) -> @symmetric_matrix N' A. +Axiom thm_DIAGONAL_MATRIX_ADD : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, ((@diagonal_matrix M N' A) /\ (@diagonal_matrix M N' B)) -> @diagonal_matrix M N' (@matrix_add M N' A B). +Axiom thm_DIAGONAL_MATRIX_CMUL : forall {M N' : Type'}, forall A : cart (cart R N') M, forall c : R, (@diagonal_matrix M N' A) -> @diagonal_matrix M N' (@__ M N' c A). +Axiom thm_MATRIX_MUL_DIAGONAL : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@diagonal_matrix N' N' A) /\ (@diagonal_matrix N' N' B)) -> (@matrix_mul N' N' N' A B) = (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => Rmult (@dollar R N' (@dollar (cart R N') N' A i) j) (@dollar R N' (@dollar (cart R N') N' B i) j)))). +Axiom thm_DIAGONAL_MATRIX_MUL_COMPONENT : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', forall i : N, forall j : N, ((@diagonal_matrix N' N' A) /\ ((@diagonal_matrix N' N' B) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))))) -> (@dollar R N' (@dollar (cart R N') N' (@matrix_mul N' N' N' A B) i) j) = (Rmult (@dollar R N' (@dollar (cart R N') N' A i) j) (@dollar R N' (@dollar (cart R N') N' B i) j)). +Axiom thm_DIAGONAL_MATRIX_MUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@diagonal_matrix N' N' A) /\ (@diagonal_matrix N' N' B)) -> @diagonal_matrix N' N' (@matrix_mul N' N' N' A B). +Axiom thm_DIAGONAL_MATRIX_MUL_EQ : forall {M N' : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R N') M, (@diagonal_matrix N' N' (@matrix_mul N' M N' A B)) = (@pairwise N (fun i : N => fun j : N => @orthogonal M (@row N' M i A) (@column M N' j B)) (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))). +Axiom thm_DIAGONAL_MATRIX_INV_EXPLICIT : forall {N' : Type'}, forall A : cart (cart R N') N', (@diagonal_matrix N' N' A) -> (@matrix_inv N' N' A) = (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => Rinv (@dollar R N' (@dollar (cart R N') N' A i) j)))). +Axiom thm_DIAGONAL_MATRIX_INV_COMPONENT : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, forall j : N, ((@diagonal_matrix N' N' A) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N'))))))) -> (@dollar R N' (@dollar (cart R N') N' (@matrix_inv N' N' A) i) j) = (Rinv (@dollar R N' (@dollar (cart R N') N' A i) j)). +Axiom thm_DIAGONAL_MATRIX_INV : forall {N' : Type'}, forall A : cart (cart R N') N', (@diagonal_matrix N' N' (@matrix_inv N' N' A)) = (@diagonal_matrix N' N' A). +Axiom thm_DET_DIAGONAL : forall {N' : Type'}, forall A : cart (cart R N') N', (@diagonal_matrix N' N' A) -> (@det N' A) = (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' (@dollar (cart R N') N' A i) i)). +Axiom thm_INVERTIBLE_DIAGONAL_MATRIX : forall {N' : Type'}, forall D : cart (cart R N') N', (@diagonal_matrix N' N' D) -> (@invertible N' N' D) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> ~ ((@dollar R N' (@dollar (cart R N') N' D i) i) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMMUTING_WITH_DIAGONAL_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', forall D : cart (cart R N') N', (@diagonal_matrix N' N' D) -> ((@matrix_mul N' N' N' A D) = (@matrix_mul N' N' N' D A)) = (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> ((@dollar R N' (@dollar (cart R N') N' A i) j) = (R_of_N (NUMERAL 0%N))) \/ ((@dollar R N' (@dollar (cart R N') N' D i) i) = (@dollar R N' (@dollar (cart R N') N' D j) j))). +Axiom thm_RANK_DIAGONAL_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', (@diagonal_matrix N' N' A) -> (@rank N' N' A) = (@CARD N (@GSPEC N (fun GEN_PVAR_2662 : N => exists i : N, @SETSPEC N GEN_PVAR_2662 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (~ ((@dollar R N' (@dollar (cart R N') N' A i) i) = (R_of_N (NUMERAL 0%N))))) i))). +Axiom thm_ONORM_DIAGONAL_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', (@diagonal_matrix N' N' A) -> (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)) = (sup (@GSPEC R (fun GEN_PVAR_2663 : R => exists i : N, @SETSPEC R GEN_PVAR_2663 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (Rabs (@dollar R N' (@dollar (cart R N') N' A i) i))))). +Axiom thm_positive_semidefinite : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) = ((@symmetric_matrix N' A) /\ (forall x : cart R N', Rle (R_of_N (NUMERAL 0%N)) (@dot N' x (@matrix_vector_mul N' N' A x)))). +Axiom thm_POSITIVE_SEMIDEFINITE_IMP_SYMMETRIC_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) -> @symmetric_matrix N' A. +Axiom thm_POSITIVE_SEMIDEFINITE_IMP_SYMMETRIC : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) -> (@transp N' N' A) = A. +Axiom thm_POSITIVE_SEMIDEFINITE_ADD : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_semidefinite N' A) /\ (@positive_semidefinite N' B)) -> @positive_semidefinite N' (@matrix_add N' N' A B). +Axiom thm_POSITIVE_SEMIDEFINITE_CMUL : forall {N' : Type'}, forall c : R, forall A : cart (cart R N') N', ((@positive_semidefinite N' A) /\ (Rle (R_of_N (NUMERAL 0%N)) c)) -> @positive_semidefinite N' (@__ N' N' c A). +Axiom thm_POSITIVE_SEMIDEFINITE_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' (@transp N' N' A)) = (@positive_semidefinite N' A). +Axiom thm_POSITIVE_SEMIDEFINITE_COVARIANCE : forall {M N' : Type'}, forall A : cart (cart R N') M, @positive_semidefinite N' (@matrix_mul N' M N' (@transp M N' A) A). +Axiom thm_POSITIVE_SEMIDEFINITE_SIMILAR : forall {M N' : Type'}, forall A : cart (cart R M) M, forall B : cart (cart R N') M, (@positive_semidefinite M A) -> @positive_semidefinite N' (@matrix_mul N' M N' (@transp M N' B) (@matrix_mul M M N' A B)). +Axiom thm_POSITIVE_SEMIDEFINITE_SIMILAR_EQ : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', (@invertible N' N' B) -> (@positive_semidefinite N' (@matrix_mul N' N' N' (@transp N' N' B) (@matrix_mul N' N' N' A B))) = (@positive_semidefinite N' A). +Axiom thm_POSITIVE_SEMIDEFINITE_DIAGONAL_MATRIX : forall {N' : Type'}, forall D : cart (cart R N') N', ((@diagonal_matrix N' N' D) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' D i) i))) -> @positive_semidefinite N' D. +Axiom thm_POSITIVE_SEMIDEFINITE_DIAGONAL_MATRIX_EQ : forall {N' : Type'}, forall D : cart (cart R N') N', (@diagonal_matrix N' N' D) -> (@positive_semidefinite N' D) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' D i) i)). +Axiom thm_DIAGONAL_POSITIVE_SEMIDEFINITE : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, ((@positive_semidefinite N' A) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' A i) i). +Axiom thm_TRACE_POSITIVE_SEMIDEFINITE : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) -> Rle (R_of_N (NUMERAL 0%N)) (@trace N' A). +Axiom thm_TRACE_LE_MUL_SQUARES : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@symmetric_matrix N' A) /\ (@symmetric_matrix N' B)) -> Rle (@trace N' (@matrix_mul N' N' N' (@matrix_mul N' N' N' A B) (@matrix_mul N' N' N' A B))) (@trace N' (@matrix_mul N' N' N' (@matrix_mul N' N' N' A A) (@matrix_mul N' N' N' B B))). +Axiom thm_POSITIVE_SEMIDEFINITE_ZERO_FORM : forall {N' : Type'} (x : cart R N'), forall A : cart (cart R N') N', ((@positive_semidefinite N' A) /\ ((@dot N' x (@matrix_vector_mul N' N' A x)) = (R_of_N (NUMERAL 0%N)))) -> (@matrix_vector_mul N' N' A x) = (@vec N' (NUMERAL 0%N)). +Axiom thm_POSITIVE_SEMIDEFINITE_ZERO_FORM_EQ : forall {N' : Type'} (x : cart R N'), forall A : cart (cart R N') N', (@positive_semidefinite N' A) -> ((@dot N' x (@matrix_vector_mul N' N' A x)) = (R_of_N (NUMERAL 0%N))) = ((@matrix_vector_mul N' N' A x) = (@vec N' (NUMERAL 0%N))). +Axiom thm_POSITIVE_SEMIDEFINITE_1_GEN : forall {N' : Type'}, forall A : cart (cart R N') N', ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@positive_semidefinite N' A) = (Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N)))). +Axiom thm_POSITIVE_SEMIDEFINITE_1 : forall A : cart (cart R unit) unit, (@positive_semidefinite unit A) = (Rle (R_of_N (NUMERAL 0%N)) (@dollar R unit (@dollar (cart R unit) unit A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N)))). +Axiom thm_POSITIVE_SEMIDEFINITE_SUBMATRIX_2 : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, forall j : N, ((@positive_semidefinite N' A) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N'))))))) -> @positive_semidefinite (tybit0 unit) (@vector (cart R (tybit0 unit)) (tybit0 unit) (@cons (cart R (tybit0 unit)) (@vector R (tybit0 unit) (@cons R (@dollar R N' (@dollar (cart R N') N' A i) i) (@cons R (@dollar R N' (@dollar (cart R N') N' A i) j) (@nil R)))) (@cons (cart R (tybit0 unit)) (@vector R (tybit0 unit) (@cons R (@dollar R N' (@dollar (cart R N') N' A j) i) (@cons R (@dollar R N' (@dollar (cart R N') N' A j) j) (@nil R)))) (@nil (cart R (tybit0 unit)))))). +Axiom thm_DOT_VECTORIZE : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, (@dot (finite_prod M N') (@vectorize R M N' A) (@vectorize R M N' B)) = (@trace N' (@matrix_mul N' M N' (@transp M N' A) B)). +Axiom thm_NORM_VECTORIZE_TRANSP : forall {M N' : Type'}, forall A : cart (cart R N') M, (@vector_norm (finite_prod N' M) (@vectorize R N' M (@transp M N' A))) = (@vector_norm (finite_prod M N') (@vectorize R M N' A)). +Axiom thm_COMPATIBLE_NORM_VECTORIZE : forall {M N' : Type'}, forall A : cart (cart R N') M, forall x : cart R N', Rle (@vector_norm M (@matrix_vector_mul M N' A x)) (Rmult (@vector_norm (finite_prod M N') (@vectorize R M N' A)) (@vector_norm N' x)). +Axiom thm_ONORM_LE_NORM_VECTORIZE : forall {M N' : Type'}, forall A : cart (cart R M) N', Rle (@onorm M N' (fun x : cart R M => @matrix_vector_mul N' M A x)) (@vector_norm (finite_prod N' M) (@vectorize R N' M A)). +Axiom thm_NORM_VECTORIZE_POW_2 : forall {M N' : Type'}, forall A : cart (cart R N') M, (real_pow (@vector_norm (finite_prod M N') (@vectorize R M N' A)) (NUMERAL (BIT0 (BIT1 0%N)))) = (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M))) (fun i : N => real_pow (@vector_norm N' (@dollar (cart R N') M A i)) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_NORM_VECTORIZE_MUL_LE : forall {M N' P : Type'}, forall A : cart (cart R N') P, forall B : cart (cart R M) N', Rle (@vector_norm (finite_prod P M) (@vectorize R P M (@matrix_mul P N' M A B))) (Rmult (@vector_norm (finite_prod P N') (@vectorize R P N' A)) (@vector_norm (finite_prod N' M) (@vectorize R N' M B))). +Axiom thm_NORM_VECTORIZE_HADAMARD_LE : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R N') M, Rle (@vector_norm (finite_prod M N') (@vectorize R M N' (@lambda (cart R N') M (fun i : N => @lambda R N' (fun j : N => Rmult (@dollar R N' (@dollar (cart R N') M A i) j) (@dollar R N' (@dollar (cart R N') M B i) j)))))) (Rmult (@vector_norm (finite_prod M N') (@vectorize R M N' A)) (@vector_norm (finite_prod M N') (@vectorize R M N' B))). +Axiom thm_TRACE_COVARIANCE_POS_LE : forall {M N' : Type'}, forall A : cart (cart R M) N', Rle (R_of_N (NUMERAL 0%N)) (@trace M (@matrix_mul M N' M (@transp N' M A) A)). +Axiom thm_TRACE_COVARIANCE_EQ_0 : forall {M N' : Type'}, forall A : cart (cart R M) N', ((@trace M (@matrix_mul M N' M (@transp N' M A) A)) = (R_of_N (NUMERAL 0%N))) = (A = (@mat N' M (NUMERAL 0%N))). +Axiom thm_TRACE_COVARIANCE_POS_LT : forall {M N' : Type'}, forall A : cart (cart R M) N', (Rlt (R_of_N (NUMERAL 0%N)) (@trace M (@matrix_mul M N' M (@transp N' M A) A))) = (~ (A = (@mat N' M (NUMERAL 0%N)))). +Axiom thm_TRACE_COVARIANCE_CAUCHY_SCHWARZ : forall {M N' : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R M) N', Rle (@trace M (@matrix_mul M N' M (@transp N' M A) B)) (Rmult (sqrt (@trace M (@matrix_mul M N' M (@transp N' M A) A))) (sqrt (@trace M (@matrix_mul M N' M (@transp N' M B) B)))). +Axiom thm_TRACE_COVARIANCE_CAUCHY_SCHWARZ_ABS : forall {M N' : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R M) N', Rle (Rabs (@trace M (@matrix_mul M N' M (@transp N' M A) B))) (Rmult (sqrt (@trace M (@matrix_mul M N' M (@transp N' M A) A))) (sqrt (@trace M (@matrix_mul M N' M (@transp N' M B) B)))). +Axiom thm_TRACE_COVARIANCE_CAUCHY_SCHWARZ_SQUARE : forall {M N' : Type'}, forall A : cart (cart R M) N', forall B : cart (cart R M) N', Rle (real_pow (@trace M (@matrix_mul M N' M (@transp N' M A) B)) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@trace M (@matrix_mul M N' M (@transp N' M A) A)) (@trace M (@matrix_mul M N' M (@transp N' M B) B))). +Axiom thm_positive_definite : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) = ((@symmetric_matrix N' A) /\ (forall x : cart R N', (~ (x = (@vec N' (NUMERAL 0%N)))) -> Rlt (R_of_N (NUMERAL 0%N)) (@dot N' x (@matrix_vector_mul N' N' A x)))). +Axiom thm_POSITIVE_DEFINITE_IMP_SYMMETRIC_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) -> @symmetric_matrix N' A. +Axiom thm_POSITIVE_DEFINITE_IMP_SYMMETRIC : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) -> (@transp N' N' A) = A. +Axiom thm_POSITIVE_DEFINITE_POSITIVE_SEMIDEFINITE : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) = ((@positive_semidefinite N' A) /\ (@invertible N' N' A)). +Axiom thm_POSITIVE_DEFINITE_SIMILAR_EQ : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', (@positive_definite N' (@matrix_mul N' N' N' (@transp N' N' B) (@matrix_mul N' N' N' A B))) = ((@invertible N' N' B) /\ (@positive_definite N' A)). +Axiom thm_POSITIVE_DEFINITE_1_GEN : forall {N' : Type'}, forall A : cart (cart R N') N', ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@positive_definite N' A) = (Rlt (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N)))). +Axiom thm_POSITIVE_DEFINITE_1 : forall A : cart (cart R unit) unit, (@positive_definite unit A) = (Rlt (R_of_N (NUMERAL 0%N)) (@dollar R unit (@dollar (cart R unit) unit A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N)))). +Axiom thm_POSITIVE_DEFINITE_IMP_INVERTIBLE : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) -> @invertible N' N' A. +Axiom thm_POSITIVE_DEFINITE_IMP_POSITIVE_SEMIDEFINITE : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) -> @positive_semidefinite N' A. +Axiom thm_POSITIVE_SEMIDEFINITE_POSITIVE_DEFINITE_ADD : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_semidefinite N' A) /\ (@positive_definite N' B)) -> @positive_definite N' (@matrix_add N' N' A B). +Axiom thm_POSITIVE_DEFINITE_POSITIVE_SEMIDEFINITE_ADD : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_definite N' A) /\ (@positive_semidefinite N' B)) -> @positive_definite N' (@matrix_add N' N' A B). +Axiom thm_POSITIVE_DEFINITE_ADD : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_definite N' A) /\ (@positive_definite N' B)) -> @positive_definite N' (@matrix_add N' N' A B). +Axiom thm_POSITIVE_DEFINITE_CMUL : forall {N' : Type'}, forall c : R, forall A : cart (cart R N') N', ((@positive_definite N' A) /\ (Rlt (R_of_N (NUMERAL 0%N)) c)) -> @positive_definite N' (@__ N' N' c A). +Axiom thm_NEARBY_POSITIVE_DEFINITE_MATRIX_GEN : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', forall x : R, ((@positive_semidefinite N' A) /\ ((@positive_definite N' B) /\ (Rlt (R_of_N (NUMERAL 0%N)) x))) -> @positive_definite N' (@matrix_add N' N' A (@__ N' N' x B)). +Axiom thm_POSITIVE_DEFINITE_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' (@transp N' N' A)) = (@positive_definite N' A). +Axiom thm_POSITIVE_DEFINITE_COVARIANCE : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' (@matrix_mul N' N' N' (@transp N' N' A) A)) = (@invertible N' N' A). +Axiom thm_POSITIVE_DEFINITE_SIMILAR : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_definite N' A) /\ (@invertible N' N' B)) -> @positive_definite N' (@matrix_mul N' N' N' (@transp N' N' B) (@matrix_mul N' N' N' A B)). +Axiom thm_POSITIVE_DEFINITE_DIAGONAL_MATRIX : forall {N' : Type'}, forall D : cart (cart R N') N', ((@diagonal_matrix N' N' D) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' D i) i))) -> @positive_definite N' D. +Axiom thm_POSITIVE_DEFINITE_DIAGONAL_MATRIX_EQ : forall {N' : Type'}, forall D : cart (cart R N') N', (@diagonal_matrix N' N' D) -> (@positive_definite N' D) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' D i) i)). +Axiom thm_DIAGONAL_POSITIVE_DEFINITE : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, ((@positive_definite N' A) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> Rlt (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' A i) i). +Axiom thm_TRACE_POSITIVE_DEFINITE : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) -> Rlt (R_of_N (NUMERAL 0%N)) (@trace N' A). +Axiom thm_POSITIVE_DEFINITE_MAT : forall {N' : Type'}, forall m : N, (@positive_definite N' (@mat N' N' m)) = (N.lt (NUMERAL 0%N) m). +Axiom thm_POSITIVE_DEFINITE_ID : forall {N' : Type'}, @positive_definite N' (@mat N' N' (NUMERAL (BIT1 0%N))). +Axiom thm_POSITIVE_SEMIDEFINITE_MAT : forall {N' : Type'}, forall m : N, @positive_semidefinite N' (@mat N' N' m). +Axiom thm_NEARBY_POSITIVE_DEFINITE_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', forall x : R, ((@positive_semidefinite N' A) /\ (Rlt (R_of_N (NUMERAL 0%N)) x)) -> @positive_definite N' (@matrix_add N' N' A (@__ N' N' x (@mat N' N' (NUMERAL (BIT1 0%N))))). +Axiom thm_POSITIVE_SEMIDEFINITE_ANTISYM : forall {N' : Type'}, forall A : cart (cart R N') N', ((@positive_semidefinite N' A) /\ (@positive_semidefinite N' (@matrix_neg N' N' A))) = (A = (@mat N' N' (NUMERAL 0%N))). +Axiom thm_LOEWNER_ORDER_ANTISYM : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_semidefinite N' (@matrix_sub N' N' A B)) /\ (@positive_semidefinite N' (@matrix_sub N' N' B A))) = (A = B). +Axiom thm_HADAMARD_INEQUALITY_ROW : forall {N' : Type'}, forall A : cart (cart R N') N', Rle (Rabs (@det N' A)) (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @vector_norm N' (@row N' N' i A))). +Axiom thm_HADAMARD_INEQUALITY_COLUMN : forall {N' : Type'}, forall A : cart (cart R N') N', Rle (Rabs (@det N' A)) (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @vector_norm N' (@column N' N' i A))). +Axiom thm_orthogonal_transformation : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) = ((@linear N' N' f) /\ (forall v : cart R N', forall w : cart R N', (@dot N' (f v) (f w)) = (@dot N' v w))). +Axiom thm_ORTHOGONAL_TRANSFORMATION : forall {_675424 : Type'}, forall f : (cart R _675424) -> cart R _675424, (@orthogonal_transformation _675424 f) = ((@linear _675424 _675424 f) /\ (forall v : cart R _675424, (@vector_norm _675424 (f v)) = (@vector_norm _675424 v))). +Axiom thm_ORTHOGONAL_ORTHOGONAL_TRANSFORMATION : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall x : cart R N', forall y : cart R N', (@orthogonal_transformation N' f) -> (@orthogonal N' (f x) (f y)) = (@orthogonal N' x y). +Axiom thm_ORTHOGONAL_TRANSFORMATION_COMPOSE : forall {_675489 : Type'}, forall f : (cart R _675489) -> cart R _675489, forall g : (cart R _675489) -> cart R _675489, ((@orthogonal_transformation _675489 f) /\ (@orthogonal_transformation _675489 g)) -> @orthogonal_transformation _675489 (@o (cart R _675489) (cart R _675489) (cart R _675489) f g). +Axiom thm_ORTHOGONAL_TRANSFORMATION_NEG : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' (fun x : cart R N' => @vector_neg N' (f x))) = (@orthogonal_transformation N' f). +Axiom thm_ORTHOGONAL_TRANSFORMATION_LINEAR : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) -> @linear N' N' f. +Axiom thm_ORTHOGONAL_TRANSFORMATION_INJECTIVE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) -> forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y. +Axiom thm_ORTHOGONAL_TRANSFORMATION_SURJECTIVE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) -> forall y : cart R N', exists x : cart R N', (f x) = y. +Axiom thm_orthogonal_matrix : forall {N' : Type'}, forall Q : cart (cart R N') N', (@orthogonal_matrix N' Q) = (((@matrix_mul N' N' N' (@transp N' N' Q) Q) = (@mat N' N' (NUMERAL (BIT1 0%N)))) /\ ((@matrix_mul N' N' N' Q (@transp N' N' Q)) = (@mat N' N' (NUMERAL (BIT1 0%N))))). +Axiom thm_ORTHOGONAL_MATRIX : forall {N' : Type'} (Q : cart (cart R N') N'), (@orthogonal_matrix N' Q) = ((@matrix_mul N' N' N' (@transp N' N' Q) Q) = (@mat N' N' (NUMERAL (BIT1 0%N)))). +Axiom thm_ORTHOGONAL_MATRIX_ALT : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) = ((@matrix_mul N' N' N' A (@transp N' N' A)) = (@mat N' N' (NUMERAL (BIT1 0%N)))). +Axiom thm_ORTHOGONAL_MATRIX_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' (@transp N' N' A)) = (@orthogonal_matrix N' A). +Axiom thm_ORTHOGONAL_MATRIX_TRANSP_LMUL : forall {N' : Type'}, forall P : cart (cart R N') N', (@orthogonal_matrix N' P) -> (@matrix_mul N' N' N' (@transp N' N' P) P) = (@mat N' N' (NUMERAL (BIT1 0%N))). +Axiom thm_ORTHOGONAL_MATRIX_TRANSP_RMUL : forall {N' : Type'}, forall P : cart (cart R N') N', (@orthogonal_matrix N' P) -> (@matrix_mul N' N' N' P (@transp N' N' P)) = (@mat N' N' (NUMERAL (BIT1 0%N))). +Axiom thm_NORM_VECTORIZE_ORTHOGONAL_MATRIX_RMUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall P : cart (cart R N') N', (@orthogonal_matrix N' P) -> (@vector_norm (finite_prod N' N') (@vectorize R N' N' (@matrix_mul N' N' N' A P))) = (@vector_norm (finite_prod N' N') (@vectorize R N' N' A)). +Axiom thm_NORM_VECTORIZE_ORTHOGONAL_MATRIX_LMUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall P : cart (cart R N') N', (@orthogonal_matrix N' P) -> (@vector_norm (finite_prod N' N') (@vectorize R N' N' (@matrix_mul N' N' N' P A))) = (@vector_norm (finite_prod N' N') (@vectorize R N' N' A)). +Axiom thm_ORTHOGONAL_MATRIX_ID : forall {_675874 : Type'}, @orthogonal_matrix _675874 (@mat _675874 _675874 (NUMERAL (BIT1 0%N))). +Axiom thm_ORTHOGONAL_MATRIX_MUL : forall {_675903 : Type'}, forall A : cart (cart R _675903) _675903, forall B : cart (cart R _675903) _675903, ((@orthogonal_matrix _675903 A) /\ (@orthogonal_matrix _675903 B)) -> @orthogonal_matrix _675903 (@matrix_mul _675903 _675903 _675903 A B). +Axiom thm_ORTHOGONAL_TRANSFORMATION_MATRIX : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) = ((@linear N' N' f) /\ (@orthogonal_matrix N' (@matrix N' N' f))). +Axiom thm_ORTHOGONAL_MATRIX_TRANSFORMATION : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) = (@orthogonal_transformation N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)). +Axiom thm_ORTHOGONAL_MATRIX_MATRIX : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) -> @orthogonal_matrix N' (@matrix N' N' f). +Axiom thm_ORTHOGONAL_MATRIX_NORM_EQ : forall {_676070 : Type'}, forall A : cart (cart R _676070) _676070, (@orthogonal_matrix _676070 A) = (forall x : cart R _676070, (@vector_norm _676070 (@matrix_vector_mul _676070 _676070 A x)) = (@vector_norm _676070 x)). +Axiom thm_ORTHOGONAL_MATRIX_NORM : forall {N' : Type'}, forall A : cart (cart R N') N', forall x : cart R N', (@orthogonal_matrix N' A) -> (@vector_norm N' (@matrix_vector_mul N' N' A x)) = (@vector_norm N' x). +Axiom thm_DET_ORTHOGONAL_MATRIX : forall {_676142 : Type'}, forall Q : cart (cart R _676142) _676142, (@orthogonal_matrix _676142 Q) -> ((@det _676142 Q) = (R_of_N (NUMERAL (BIT1 0%N)))) \/ ((@det _676142 Q) = (Ropp (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_ORTHOGONAL_MATRIX_IMP_INVERTIBLE : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) -> @invertible N' N' A. +Axiom thm_MATRIX_MUL_LTRANSP_DOT_COLUMN : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_mul N' M N' (@transp M N' A) A) = (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @dot M (@column M N' i A) (@column M N' j A)))). +Axiom thm_MATRIX_MUL_RTRANSP_DOT_ROW : forall {M N' : Type'}, forall A : cart (cart R N') M, (@matrix_mul M N' M A (@transp M N' A)) = (@lambda (cart R M) M (fun i : N => @lambda R M (fun j : N => @dot N' (@row M N' i A) (@row M N' j A)))). +Axiom thm_ORTHOGONAL_MATRIX_ORTHONORMAL_COLUMNS : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) = ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@vector_norm N' (@column N' N' i A)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (~ (i = j)))))) -> @orthogonal N' (@column N' N' i A) (@column N' N' j A))). +Axiom thm_ORTHOGONAL_MATRIX_ORTHONORMAL_ROWS : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) = ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@vector_norm N' (@row N' N' i A)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (~ (i = j)))))) -> @orthogonal N' (@row N' N' i A) (@row N' N' j A))). +Axiom thm_ORTHOGONAL_MATRIX_ORTHONORMAL_ROWS_INDEXED : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) = ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@vector_norm N' (@row N' N' i A)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@pairwise N (fun i : N => fun j : N => @orthogonal N' (@row N' N' i A) (@row N' N' j A)) (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))). +Axiom thm_ORTHOGONAL_MATRIX_ORTHONORMAL_ROWS_PAIRWISE : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) = (((@CARD (cart R N') (@rows N' N' A)) = (@dimindex N' (@UNIV N'))) /\ ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@vector_norm N' (@row N' N' i A)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@pairwise (cart R N') (@orthogonal N') (@rows N' N' A)))). +Axiom thm_ORTHOGONAL_MATRIX_ORTHONORMAL_ROWS_SPAN : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) = (((@span N' (@rows N' N' A)) = (@UNIV (cart R N'))) /\ ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@vector_norm N' (@row N' N' i A)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@pairwise (cart R N') (@orthogonal N') (@rows N' N' A)))). +Axiom thm_ORTHOGONAL_MATRIX_ORTHONORMAL_COLUMNS_INDEXED : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) = ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@vector_norm N' (@column N' N' i A)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@pairwise N (fun i : N => fun j : N => @orthogonal N' (@column N' N' i A) (@column N' N' j A)) (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))). +Axiom thm_ORTHOGONAL_MATRIX_ORTHONORMAL_COLUMNS_PAIRWISE : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) = (((@CARD (cart R N') (@columns N' N' A)) = (@dimindex N' (@UNIV N'))) /\ ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@vector_norm N' (@column N' N' i A)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@pairwise (cart R N') (@orthogonal N') (@columns N' N' A)))). +Axiom thm_ORTHOGONAL_MATRIX_ORTHONORMAL_COLUMNS_SPAN : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) = (((@span N' (@columns N' N' A)) = (@UNIV (cart R N'))) /\ ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@vector_norm N' (@column N' N' i A)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@pairwise (cart R N') (@orthogonal N') (@columns N' N' A)))). +Axiom thm_ORTHOGONAL_MATRIX_2 : forall A : cart (cart R (tybit0 unit)) (tybit0 unit), (@orthogonal_matrix (tybit0 unit) A) = (((Rplus (real_pow (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((Rplus (real_pow (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((Rplus (Rmult (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))))) = (R_of_N (NUMERAL 0%N))))). +Axiom thm_ORTHOGONAL_MATRIX_2_ALT : forall A : cart (cart R (tybit0 unit)) (tybit0 unit), (@orthogonal_matrix (tybit0 unit) A) = (((Rplus (real_pow (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((((@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) = (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) = (Ropp (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N)))))) \/ (((@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) = (Ropp (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) = (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))))))). +Axiom thm_ORTHOGONAL_MATRIX_INV : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) -> (@matrix_inv N' N' A) = (@transp N' N' A). +Axiom thm_ORTHOGONAL_MATRIX_INV_EQ : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' (@matrix_inv N' N' A)) = (@orthogonal_matrix N' A). +Axiom thm_ORTHOGONAL_TRANSFORMATION_ORTHOGONAL_EIGENVECTORS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall v : cart R N', forall w : cart R N', forall a : R, forall b : R, ((@orthogonal_transformation N' f) /\ (((f v) = (@percent N' a v)) /\ (((f w) = (@percent N' b w)) /\ (~ (a = b))))) -> @orthogonal N' v w. +Axiom thm_ORTHOGONAL_MATRIX_ORTHOGONAL_EIGENVECTORS : forall {N' : Type'}, forall A : cart (cart R N') N', forall v : cart R N', forall w : cart R N', forall a : R, forall b : R, ((@orthogonal_matrix N' A) /\ (((@matrix_vector_mul N' N' A v) = (@percent N' a v)) /\ (((@matrix_vector_mul N' N' A w) = (@percent N' b w)) /\ (~ (a = b))))) -> @orthogonal N' v w. +Axiom thm_ORTHOGONAL_TRANSFORMATION_ID : forall {_677364 : Type'}, @orthogonal_transformation _677364 (fun x : cart R _677364 => x). +Axiom thm_ORTHOGONAL_TRANSFORMATION_I : forall {_677369 : Type'}, @orthogonal_transformation _677369 (@I (cart R _677369)). +Axiom thm_ORTHOGONAL_TRANSFORMATION_NEGATION : forall {_677377 : Type'}, @orthogonal_transformation _677377 (@vector_neg _677377). +Axiom thm_ORTHOGONAL_TRANSFORMATION_1_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@orthogonal_transformation N' f) = ((f = (@I (cart R N'))) \/ (f = (@vector_neg N'))). +Axiom thm_ORTHOGONAL_MATRIX_1 : forall {N' : Type'}, forall m : cart (cart R N') N', ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@orthogonal_matrix N' m) = ((m = (@mat N' N' (NUMERAL (BIT1 0%N)))) \/ (m = (@matrix_neg N' N' (@mat N' N' (NUMERAL (BIT1 0%N)))))). +Axiom thm_MATRIX_INV_ORTHOGONAL_LMUL : forall {M N' : Type'}, forall U : cart (cart R N') N', forall A : cart (cart R M) N', (@orthogonal_matrix N' U) -> (@matrix_inv M N' (@matrix_mul N' N' M U A)) = (@matrix_mul M N' N' (@matrix_inv M N' A) (@matrix_inv N' N' U)). +Axiom thm_MATRIX_INV_ORTHOGONAL_RMUL : forall {M N' : Type'}, forall U : cart (cart R M) M, forall A : cart (cart R M) N', (@orthogonal_matrix M U) -> (@matrix_inv M N' (@matrix_mul N' M M A U)) = (@matrix_mul M M N' (@matrix_inv M M U) (@matrix_inv M N' A)). +Axiom thm_ORTHOGONAL_TRANSFORMATION_EQ_ADJOINT_LEFT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) = ((@linear N' N' f) /\ ((@o (cart R N') (cart R N') (cart R N') (@adjoint N' N' f) f) = (@I (cart R N')))). +Axiom thm_ORTHOGONAL_TRANSFORMATION_EQ_ADJOINT_RIGHT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) = ((@linear N' N' f) /\ ((@o (cart R N') (cart R N') (cart R N') f (@adjoint N' N' f)) = (@I (cart R N')))). +Axiom thm_ORTHOGONAL_TRANSFORMATION_EQ_ADJOINT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) = ((@linear N' N' f) /\ (((@o (cart R N') (cart R N') (cart R N') (@adjoint N' N' f) f) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') f (@adjoint N' N' f)) = (@I (cart R N'))))). +Axiom thm_ORTHOGONAL_TRANSFORMATION_ADJOINT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) -> @orthogonal_transformation N' (@adjoint N' N' f). +Axiom thm_ONORM_ORTHOGONAL_TRANSFORMATION : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) -> (@onorm N' N' f) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_ONORM_ORTHOGONAL_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', (@orthogonal_matrix N' A) -> (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_SCALING_LINEAR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : R, (((f (@vec M (NUMERAL 0%N))) = (@vec N' (NUMERAL 0%N))) /\ (forall x : cart R M, forall y : cart R M, (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (Rmult c (@distance M (@pair (cart R M) (cart R M) x y))))) -> @linear M N' f. +Axiom thm_ISOMETRY_LINEAR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (((f (@vec M (NUMERAL 0%N))) = (@vec N' (NUMERAL 0%N))) /\ (forall x : cart R M, forall y : cart R M, (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance M (@pair (cart R M) (cart R M) x y)))) -> @linear M N' f. +Axiom thm_ISOMETRY_IMP_AFFINITY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall x : cart R M, forall y : cart R M, (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance M (@pair (cart R M) (cart R M) x y))) -> exists h : (cart R M) -> cart R N', (@linear M N' h) /\ (forall x : cart R M, (f x) = (@vector_add N' (f (@vec M (NUMERAL 0%N))) (h x))). +Axiom thm_ORTHOGONALITY_PRESERVING_IMP_SCALING : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, (@orthogonal M x y) -> @orthogonal N' (f x) (f y))) -> exists c : R, (Rle (R_of_N (NUMERAL 0%N)) c) /\ (forall x : cart R M, (@vector_norm N' (f x)) = (Rmult c (@vector_norm M x))). +Axiom thm_ORTHOGONALITY_PRESERVING_EQ_SIMILARITY : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', (@orthogonal N' x y) -> @orthogonal N' (f x) (f y))) = (exists c : R, exists g : (cart R N') -> cart R N', (@orthogonal_transformation N' g) /\ (f = (fun z : cart R N' => @percent N' c (g z)))). +Axiom thm_ORTHOGONALITY_PRESERVING_EQ_SIMILARITY_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', (@orthogonal N' x y) -> @orthogonal N' (f x) (f y))) = (exists c : R, exists g : (cart R N') -> cart R N', (Rle (R_of_N (NUMERAL 0%N)) c) /\ ((@orthogonal_transformation N' g) /\ (f = (fun z : cart R N' => @percent N' c (g z))))). +Axiom thm_ORTHOGONAL_TRANSFORMATION_ISOMETRY : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) = (((f (@vec N' (NUMERAL 0%N))) = (@vec N' (NUMERAL 0%N))) /\ (forall x : cart R N', forall y : cart R N', (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance N' (@pair (cart R N') (cart R N') x y)))). +Axiom thm_ISOMETRY_SPHERE_EXTEND : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((forall x : cart R N', ((@vector_norm N' x) = (R_of_N (NUMERAL (BIT1 0%N)))) -> (@vector_norm N' (f x)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall x : cart R N', forall y : cart R N', (((@vector_norm N' x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vector_norm N' y) = (R_of_N (NUMERAL (BIT1 0%N))))) -> (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance N' (@pair (cart R N') (cart R N') x y)))) -> exists g : (cart R N') -> cart R N', (@orthogonal_transformation N' g) /\ (forall x : cart R N', ((@vector_norm N' x) = (R_of_N (NUMERAL (BIT1 0%N)))) -> (g x) = (f x)). +Axiom thm_ORTHOGONAL_TRANSFORMATION_INVERSE_o : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) -> exists g : (cart R N') -> cart R N', (@orthogonal_transformation N' g) /\ (((@o (cart R N') (cart R N') (cart R N') g f) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') f g) = (@I (cart R N')))). +Axiom thm_ORTHOGONAL_TRANSFORMATION_INVERSE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) -> exists g : (cart R N') -> cart R N', (@orthogonal_transformation N' g) /\ ((forall x : cart R N', (g (f x)) = x) /\ (forall y : cart R N', (f (g y)) = y)). +Axiom thm_ONORM_COMPOSE_ORTHOGONAL_TRANSFORMATION_LEFT : forall {_679086 _679087 : Type'}, forall f : (cart R _679087) -> cart R _679087, forall g : (cart R _679086) -> cart R _679087, (@orthogonal_transformation _679087 f) -> (@onorm _679086 _679087 (@o (cart R _679086) (cart R _679087) (cart R _679087) f g)) = (@onorm _679086 _679087 g). +Axiom thm_ONORM_COMPOSE_ORTHOGONAL_TRANSFORMATION_RIGHT : forall {_679113 _679114 : Type'}, forall f : (cart R _679113) -> cart R _679114, forall g : (cart R _679113) -> cart R _679113, (@orthogonal_transformation _679113 g) -> (@onorm _679113 _679114 (@o (cart R _679113) (cart R _679113) (cart R _679114) f g)) = (@onorm _679113 _679114 f). +Axiom thm_SQNORM_LE_MAX_EIGENVECTOR_SPAN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall b : (cart R N') -> Prop, forall c : (cart R N') -> R, forall x : cart R N', forall l : R, ((@linear N' N' f) /\ ((@pairwise (cart R N') (@orthogonal N') b) /\ ((forall x' : cart R N', (@IN (cart R N') x' b) -> ((f x') = (@percent N' (c x') x')) /\ (Rle (real_pow (c x') (NUMERAL (BIT0 (BIT1 0%N)))) l)) /\ (@IN (cart R N') x (@span N' b))))) -> Rle (real_pow (@vector_norm N' (f x)) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult l (real_pow (@vector_norm N' x) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_NORM_LE_MAX_EIGENVECTOR_SPAN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall b : (cart R N') -> Prop, forall c : (cart R N') -> R, forall x : cart R N', forall l : R, ((@linear N' N' f) /\ ((@pairwise (cart R N') (@orthogonal N') b) /\ ((forall x' : cart R N', (@IN (cart R N') x' b) -> ((f x') = (@percent N' (c x') x')) /\ (Rle (Rabs (c x')) l)) /\ (@IN (cart R N') x (@span N' b))))) -> Rle (@vector_norm N' (f x)) (Rmult l (@vector_norm N' x)). +Axiom thm_ONORM_EQ_MAX_EIGENVECTOR : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall b : (cart R N') -> Prop, forall c : (cart R N') -> R, ((@linear N' N' f) /\ ((@pairwise (cart R N') (@orthogonal N') b) /\ (((@span N' b) = (@UNIV (cart R N'))) /\ ((~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) b)) /\ (forall x : cart R N', (@IN (cart R N') x b) -> (f x) = (@percent N' (c x) x)))))) -> (@onorm N' N' f) = (sup (@GSPEC R (fun GEN_PVAR_2665 : R => exists x : cart R N', @SETSPEC R GEN_PVAR_2665 (@IN (cart R N') x b) (Rabs (c x))))). +Axiom thm_ONORM_ORTHOGONAL_MATRIX_MUL_LEFT : forall {N' : Type'}, forall A : cart (cart R N') N', forall P : cart (cart R N') N', (@orthogonal_matrix N' P) -> (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' (@matrix_mul N' N' N' P A) x)) = (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)). +Axiom thm_ONORM_ORTHOGONAL_MATRIX_MUL_RIGHT : forall {N' : Type'}, forall A : cart (cart R N') N', forall P : cart (cart R N') N', (@orthogonal_matrix N' P) -> (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' (@matrix_mul N' N' N' A P) x)) = (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)). +Axiom thm_ONORM_DIAGONALIZED_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', forall D : cart (cart R N') N', forall P : cart (cart R N') N', ((@orthogonal_matrix N' P) /\ ((@diagonal_matrix N' N' D) /\ ((@matrix_mul N' N' N' (@transp N' N' P) (@matrix_mul N' N' N' D P)) = A))) -> (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)) = (sup (@GSPEC R (fun GEN_PVAR_2666 : R => exists i : N, @SETSPEC R GEN_PVAR_2666 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (Rabs (@dollar R N' (@dollar (cart R N') N' D i) i))))). +Axiom thm_ONORM_DIAGONALIZED_COVARIANCE_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', forall D : cart (cart R N') N', forall P : cart (cart R N') N', ((@orthogonal_matrix N' P) /\ ((@diagonal_matrix N' N' D) /\ ((@matrix_mul N' N' N' (@transp N' N' P) (@matrix_mul N' N' N' D P)) = (@matrix_mul N' N' N' (@transp N' N' A) A)))) -> (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)) = (sqrt (sup (@GSPEC R (fun GEN_PVAR_2667 : R => exists i : N, @SETSPEC R GEN_PVAR_2667 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (Rabs (@dollar R N' (@dollar (cart R N') N' D i) i)))))). +Axiom thm_ORTHOGONAL_MATRIX_EXISTS_BASIS : forall {N' : Type'}, forall a : cart R N', ((@vector_norm N' a) = (R_of_N (NUMERAL (BIT1 0%N)))) -> exists A : cart (cart R N') N', (@orthogonal_matrix N' A) /\ ((@matrix_vector_mul N' N' A (@basis N' (NUMERAL (BIT1 0%N)))) = a). +Axiom thm_ORTHOGONAL_TRANSFORMATION_EXISTS_1 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (((@vector_norm N' a) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vector_norm N' b) = (R_of_N (NUMERAL (BIT1 0%N))))) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ ((f a) = b). +Axiom thm_ORTHOGONAL_TRANSFORMATION_EXISTS : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', ((@vector_norm N' a) = (@vector_norm N' b)) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ ((f a) = b). +Axiom thm_ORTHOGONAL_TRANSFORMATION_INTO_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ ((@subspace N' t) /\ (N.le (@dim N' s) (@dim N' t)))) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) t). +Axiom thm_ORTHOGONAL_TRANSFORMATION_ONTO_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ ((@subspace N' t) /\ ((@dim N' s) = (@dim N' t)))) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ ((@IMAGE (cart R N') (cart R N') f s) = t). +Axiom thm_rotation_matrix : forall {_680518 : Type'}, forall Q : cart (cart R _680518) _680518, (@rotation_matrix _680518 Q) = ((@orthogonal_matrix _680518 Q) /\ ((@det _680518 Q) = (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_rotoinversion_matrix : forall {_680533 : Type'}, forall Q : cart (cart R _680533) _680533, (@rotoinversion_matrix _680533 Q) = ((@orthogonal_matrix _680533 Q) /\ ((@det _680533 Q) = (Ropp (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_ORTHOGONAL_ROTATION_OR_ROTOINVERSION : forall {_680551 : Type'}, forall Q : cart (cart R _680551) _680551, (@orthogonal_matrix _680551 Q) = ((@rotation_matrix _680551 Q) \/ (@rotoinversion_matrix _680551 Q)). +Axiom thm_ROTATION_MATRIX_1 : forall {N' : Type'}, forall m : cart (cart R N') N', ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@rotation_matrix N' m) = (m = (@mat N' N' (NUMERAL (BIT1 0%N)))). +Axiom thm_ROTOINVERSION_MATRIX_1 : forall {N' : Type'}, forall m : cart (cart R N') N', ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@rotoinversion_matrix N' m) = (m = (@matrix_neg N' N' (@mat N' N' (NUMERAL (BIT1 0%N))))). +Axiom thm_ROTATION_MATRIX_2 : forall A : cart (cart R (tybit0 unit)) (tybit0 unit), (@rotation_matrix (tybit0 unit) A) = (((Rplus (real_pow (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) = (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) = (Ropp (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))))))). +Axiom thm_ROTATION_MATRIX_EXISTS_BASIS : forall {N' : Type'}, forall a : cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@vector_norm N' a) = (R_of_N (NUMERAL (BIT1 0%N))))) -> exists A : cart (cart R N') N', (@rotation_matrix N' A) /\ ((@matrix_vector_mul N' N' A (@basis N' (NUMERAL (BIT1 0%N)))) = a). +Axiom thm_ROTATION_EXISTS_1 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (((@vector_norm N' a) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vector_norm N' b) = (R_of_N (NUMERAL (BIT1 0%N)))))) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (((@det N' (@matrix N' N' f)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((f a) = b)). +Axiom thm_ROTATION_EXISTS : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@vector_norm N' a) = (@vector_norm N' b))) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (((@det N' (@matrix N' N' f)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((f a) = b)). +Axiom thm_ROTATION_RIGHTWARD_LINE : forall {N' : Type'}, forall a : cart R N', forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> exists b : R, exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> (@det N' (@matrix N' N' f)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((f (@percent N' b (@basis N' k))) = a) /\ (Rle (R_of_N (NUMERAL 0%N)) b))). +Axiom thm_EULER_ROTATION_THEOREM : forall A : cart (cart R (tybit1 unit)) (tybit1 unit), (@rotation_matrix (tybit1 unit) A) -> exists v : cart R (tybit1 unit), (~ (v = (@vec (tybit1 unit) (NUMERAL 0%N)))) /\ ((@matrix_vector_mul (tybit1 unit) (tybit1 unit) A v) = v). +Axiom thm_EULER_ROTOINVERSION_THEOREM : forall A : cart (cart R (tybit1 unit)) (tybit1 unit), (@rotoinversion_matrix (tybit1 unit) A) -> exists v : cart R (tybit1 unit), (~ (v = (@vec (tybit1 unit) (NUMERAL 0%N)))) /\ ((@matrix_vector_mul (tybit1 unit) (tybit1 unit) A v) = (@vector_neg (tybit1 unit) v)). +Axiom thm_ROTATION_LOWDIM_HORIZONTAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (N.lt (@dim N' s) (@dimindex N' (@UNIV N'))) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (((@det N' (@matrix N' N' f)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) (@GSPEC (cart R N') (fun GEN_PVAR_2668 : cart R N' => exists z : cart R N', @SETSPEC (cart R N') GEN_PVAR_2668 ((@dollar R N' z (@dimindex N' (@UNIV N'))) = (R_of_N (NUMERAL 0%N))) z)))). +Axiom thm_ORTHOGONAL_TRANSFORMATION_LOWDIM_HORIZONTAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (N.lt (@dim N' s) (@dimindex N' (@UNIV N'))) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) (@GSPEC (cart R N') (fun GEN_PVAR_2669 : cart R N' => exists z : cart R N', @SETSPEC (cart R N') GEN_PVAR_2669 ((@dollar R N' z (@dimindex N' (@UNIV N'))) = (R_of_N (NUMERAL 0%N))) z))). +Axiom thm_ORTHOGONAL_TRANSFORMATION_BETWEEN_ORTHOGONAL_SETS : forall {N' : Type'}, forall v : N -> cart R N', forall w : N -> cart R N', forall k : N -> Prop, ((@pairwise N (fun i : N => fun j : N => @orthogonal N' (v i) (v j)) k) /\ ((@pairwise N (fun i : N => fun j : N => @orthogonal N' (w i) (w j)) k) /\ (forall i : N, (@IN N i k) -> (@vector_norm N' (v i)) = (@vector_norm N' (w i))))) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (forall i : N, (@IN N i k) -> (f (v i)) = (w i)). +Axiom thm_reflect_along : forall {N' : Type'}, forall x : cart R N', forall v : cart R N', (@reflect_along N' v x) = (@vector_sub N' x (@percent N' (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rdiv (@dot N' x v) (@dot N' v v))) v)). +Axiom thm_REFLECT_ALONG_ADD : forall {N' : Type'}, forall v : cart R N', forall x : cart R N', forall y : cart R N', (@reflect_along N' v (@vector_add N' x y)) = (@vector_add N' (@reflect_along N' v x) (@reflect_along N' v y)). +Axiom thm_REFLECT_ALONG_MUL : forall {N' : Type'}, forall v : cart R N', forall a : R, forall x : cart R N', (@reflect_along N' v (@percent N' a x)) = (@percent N' a (@reflect_along N' v x)). +Axiom thm_LINEAR_REFLECT_ALONG : forall {N' : Type'}, forall v : cart R N', @linear N' N' (@reflect_along N' v). +Axiom thm_REFLECT_ALONG_0 : forall {N' : Type'}, forall v : cart R N', (@reflect_along N' v (@vec N' (NUMERAL 0%N))) = (@vec N' (NUMERAL 0%N)). +Axiom thm_REFLECT_ALONG_NEG : forall {N' : Type'}, forall v : cart R N', forall x : cart R N', (@reflect_along N' v (@vector_neg N' x)) = (@vector_neg N' (@reflect_along N' v x)). +Axiom thm_REFLECT_ALONG_REFL : forall {N' : Type'}, forall v : cart R N', (@reflect_along N' v v) = (@vector_neg N' v). +Axiom thm_REFLECT_ALONG_INVOLUTION : forall {N' : Type'}, forall v : cart R N', forall x : cart R N', (@reflect_along N' v (@reflect_along N' v x)) = x. +Axiom thm_REFLECT_ALONG_GALOIS : forall {N' : Type'}, forall v : cart R N', forall p : cart R N', forall q : cart R N', ((@reflect_along N' v p) = q) = (p = (@reflect_along N' v q)). +Axiom thm_REFLECT_ALONG_EQ_0 : forall {N' : Type'}, forall v : cart R N', forall x : cart R N', ((@reflect_along N' v x) = (@vec N' (NUMERAL 0%N))) = (x = (@vec N' (NUMERAL 0%N))). +Axiom thm_ORTHOGONAL_TRANSFORMATION_REFLECT_ALONG : forall {N' : Type'}, forall v : cart R N', @orthogonal_transformation N' (@reflect_along N' v). +Axiom thm_REFLECT_ALONG_EQ_SELF : forall {N' : Type'}, forall v : cart R N', forall x : cart R N', ((@reflect_along N' v x) = x) = (@orthogonal N' v x). +Axiom thm_REFLECT_ALONG_ZERO : forall {N' : Type'}, (@reflect_along N' (@vec N' (NUMERAL 0%N))) = (@I (cart R N')). +Axiom thm_REFLECT_ALONG_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall v : cart R M, forall x : cart R M, ((@linear M N' f) /\ (forall x' : cart R M, (@vector_norm N' (f x')) = (@vector_norm M x'))) -> (@reflect_along N' (f v) (f x)) = (f (@reflect_along M v x)). +Axiom thm_REFLECT_ALONG_SCALE : forall {N' : Type'}, forall c : R, forall v : cart R N', forall x : cart R N', (~ (c = (R_of_N (NUMERAL 0%N)))) -> (@reflect_along N' (@percent N' c v) x) = (@reflect_along N' v x). +Axiom thm_REFLECT_ALONG_NEGATION : forall {N' : Type'}, forall v : cart R N', (@reflect_along N' (@vector_neg N' v)) = (@reflect_along N' v). +Axiom thm_REFLECT_ALONG_1D : forall {N' : Type'}, forall v : cart R N', forall x : cart R N', ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@reflect_along N' v x) = (@COND (cart R N') (v = (@vec N' (NUMERAL 0%N))) x (@vector_neg N' x)). +Axiom thm_REFLECT_ALONG_BASIS : forall {N' : Type'}, forall x : cart R N', forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@reflect_along N' (@basis N' k) x) = (@vector_sub N' x (@percent N' (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R N' x k)) (@basis N' k))). +Axiom thm_MATRIX_REFLECT_ALONG_BASIS : forall {N' : Type'}, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@matrix N' N' (@reflect_along N' (@basis N' k))) = (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @COND R ((i = k) /\ (j = k)) (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@COND R (i = j) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N)))))). +Axiom thm_ROTOINVERSION_MATRIX_REFLECT_ALONG : forall {N' : Type'}, forall v : cart R N', (~ (v = (@vec N' (NUMERAL 0%N)))) -> @rotoinversion_matrix N' (@matrix N' N' (@reflect_along N' v)). +Axiom thm_DET_MATRIX_REFLECT_ALONG : forall {N' : Type'}, forall v : cart R N', (@det N' (@matrix N' N' (@reflect_along N' v))) = (@COND R (v = (@vec N' (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))) (Ropp (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_REFLECT_ALONG_BASIS_COMPONENT : forall {N' : Type'}, forall x : cart R N', forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> (@dollar R N' (@reflect_along N' (@basis N' i) x) j) = (@COND R (j = i) (Ropp (@dollar R N' x j)) (@dollar R N' x j)). +Axiom thm_REFLECT_BASIS_ALONG_BASIS : forall {N' : Type'}, forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> (@reflect_along N' (@basis N' i) (@basis N' j)) = (@COND (cart R N') (i = j) (@vector_neg N' (@basis N' j)) (@basis N' j)). +Axiom thm_NORM_REFLECT_ALONG : forall {N' : Type'}, forall v : cart R N', forall x : cart R N', (@vector_norm N' (@reflect_along N' v x)) = (@vector_norm N' x). +Axiom thm_REFLECT_ALONG_EQ : forall {N' : Type'}, forall v : cart R N', forall x : cart R N', forall y : cart R N', ((@reflect_along N' v x) = (@reflect_along N' v y)) = (x = y). +Axiom thm_REFLECT_ALONG_SURJECTIVE : forall {N' : Type'}, forall v : cart R N', forall y : cart R N', exists x : cart R N', (@reflect_along N' v x) = y. +Axiom thm_REFLECT_ALONG_SWITCH : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (((@vector_norm N' a) = (@vector_norm N' b)) /\ (~ (a = b))) -> ((@reflect_along N' (@vector_sub N' b a) a) = b) /\ ((@reflect_along N' (@vector_sub N' b a) b) = a). +Axiom thm_ROTOINVERSION_EXISTS_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@subspace N' s) /\ ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ ((~ (a = b)) /\ ((@vector_norm N' a) = (@vector_norm N' b)))))) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (((@IMAGE (cart R N') (cart R N') f s) = s) /\ ((forall x : cart R N', ((@orthogonal N' a x) /\ (@orthogonal N' b x)) -> (f x) = x) /\ (((@det N' (@matrix N' N' f)) = (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) /\ (((f a) = b) /\ ((f b) = a))))). +Axiom thm_ORTHOGONAL_TRANSFORMATION_EXISTS_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@subspace N' s) /\ ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ ((@vector_norm N' a) = (@vector_norm N' b))))) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (((@IMAGE (cart R N') (cart R N') f s) = s) /\ ((forall x : cart R N', ((@orthogonal N' a x) /\ (@orthogonal N' b x)) -> (f x) = x) /\ (((f a) = b) /\ ((f b) = a)))). +Axiom thm_ORTHOGONAL_TRANSFORMATION_GENERATED_BY_REFLECTIONS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall n : N, ((@orthogonal_transformation N' f) /\ (N.le (@dimindex N' (@UNIV N')) (N.add (@dim N' (@GSPEC (cart R N') (fun GEN_PVAR_2671 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2671 ((f x) = x) x))) n))) -> exists l : list (cart R N'), (N.le (@LENGTH (cart R N') l) n) /\ ((@List.Forall (cart R N') (fun v : cart R N' => ~ (v = (@vec N' (NUMERAL 0%N)))) l) /\ (f = (@ITLIST (cart R N') ((cart R N') -> cart R N') (fun v : cart R N' => fun h : (cart R N') -> cart R N' => @o (cart R N') (cart R N') (cart R N') (@reflect_along N' v) h) l (@I (cart R N'))))). +Axiom thm_ORTHOGONAL_TRANSFORMATION_REFLECT_INDUCT : forall {N' : Type'}, forall P : ((cart R N') -> cart R N') -> Prop, ((P (@I (cart R N'))) /\ (forall f : (cart R N') -> cart R N', forall a : cart R N', ((@orthogonal_transformation N' f) /\ ((~ (a = (@vec N' (NUMERAL 0%N)))) /\ (P f))) -> P (@o (cart R N') (cart R N') (cart R N') (@reflect_along N' a) f))) -> forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) -> P f. +Axiom thm_COLLINEAR_TRANSLATION_EQ : forall {_687642 : Type'}, forall a : cart R _687642, forall s : (cart R _687642) -> Prop, (@collinear _687642 (@IMAGE (cart R _687642) (cart R _687642) (fun x : cart R _687642 => @vector_add _687642 a x) s)) = (@collinear _687642 s). +Axiom thm_COLLINEAR_TRANSLATION : forall {_687672 : Type'}, forall s : (cart R _687672) -> Prop, forall a : cart R _687672, (@collinear _687672 s) -> @collinear _687672 (@IMAGE (cart R _687672) (cart R _687672) (fun x : cart R _687672 => @vector_add _687672 a x) s). +Axiom thm_COLLINEAR_LINEAR_IMAGE : forall {_687690 _687693 : Type'}, forall f : (cart R _687690) -> cart R _687693, forall s : (cart R _687690) -> Prop, ((@collinear _687690 s) /\ (@linear _687690 _687693 f)) -> @collinear _687693 (@IMAGE (cart R _687690) (cart R _687693) f s). +Axiom thm_COLLINEAR_LINEAR_IMAGE_EQ : forall {_687715 _687743 : Type'}, forall f : (cart R _687743) -> cart R _687715, forall s : (cart R _687743) -> Prop, ((@linear _687743 _687715 f) /\ (forall x : cart R _687743, forall y : cart R _687743, ((f x) = (f y)) -> x = y)) -> (@collinear _687715 (@IMAGE (cart R _687743) (cart R _687715) f s)) = (@collinear _687743 s). +Axiom thm_open_def : forall {_688489 : Type'}, forall s : (cart R _688489) -> Prop, (@_open _688489 s) = (forall x : cart R _688489, (@IN (cart R _688489) x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x' : cart R _688489, (Rlt (@distance _688489 (@pair (cart R _688489) (cart R _688489) x' x)) e) -> @IN (cart R _688489) x' s)). +Axiom thm_euclidean : forall {_688505 : Type'}, (@euclidean _688505) = (@topology (cart R _688505) (@_open _688505)). +Axiom thm_euclidean_metric : forall {N' : Type'}, (@euclidean_metric N') = (@metric (cart R N') (@pair ((cart R N') -> Prop) ((prod (cart R N') (cart R N')) -> R) (@UNIV (cart R N')) (@distance N'))). +Axiom thm_EUCLIDEAN_METRIC : forall {N' : Type'}, ((@mdist (cart R N') (@euclidean_metric N')) = (@distance N')) /\ ((@mspace (cart R N') (@euclidean_metric N')) = (@UNIV (cart R N'))). +Axiom thm_OPEN_IN_EUCLIDEAN_METRIC : forall {N' : Type'}, (@open_in (cart R N') (@mtopology (cart R N') (@euclidean_metric N'))) = (@_open N'). +Axiom thm_OPEN_IN_EUCLIDEAN : forall {_688567 : Type'}, (@open_in (cart R _688567) (@euclidean _688567)) = (@_open _688567). +Axiom thm_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) = (@open_in (cart R N') (@euclidean N') s). +Axiom thm_MTOPOLOGY_EUCLIDEAN_METRIC : forall {N' : Type'}, (@mtopology (cart R N') (@euclidean_metric N')) = (@euclidean N'). +Axiom thm_METRIZABLE_SPACE_EUCLIDEAN : forall {_688592 : Type'}, @metrizable_space (cart R _688592) (@euclidean _688592). +Axiom thm_HAUSDORFF_SPACE_EUCLIDEAN : forall {_688596 : Type'}, @hausdorff_space (cart R _688596) (@euclidean _688596). +Axiom thm_KC_SPACE_EUCLIDEAN : forall {N' : Type'}, @kc_space (cart R N') (@euclidean N'). +Axiom thm_T1_SPACE_EUCLIDEAN : forall {_688604 : Type'}, @t1_space (cart R _688604) (@euclidean _688604). +Axiom thm_REGULAR_SPACE_EUCLIDEAN : forall {_688608 : Type'}, @regular_space (cart R _688608) (@euclidean _688608). +Axiom thm_K_SPACE_EUCLIDEAN : forall {N' : Type'}, @k_space (cart R N') (@euclidean N'). +Axiom thm_OPEN_EMPTY : forall {_688615 : Type'}, @_open _688615 (@EMPTY (cart R _688615)). +Axiom thm_OPEN_UNIV : forall {N' : Type'}, @_open N' (@UNIV (cart R N')). +Axiom thm_OPEN_INTER : forall {_688637 : Type'}, forall s : (cart R _688637) -> Prop, forall t : (cart R _688637) -> Prop, ((@_open _688637 s) /\ (@_open _688637 t)) -> @_open _688637 (@INTER (cart R _688637) s t). +Axiom thm_OPEN_UNIONS : forall {_688656 : Type'} (f : ((cart R _688656) -> Prop) -> Prop), (forall s : (cart R _688656) -> Prop, (@IN ((cart R _688656) -> Prop) s f) -> @_open _688656 s) -> @_open _688656 (@UNIONS (cart R _688656) f). +Axiom thm_OPEN_EXISTS_IN : forall {A N' : Type'}, forall P : A -> Prop, forall Q : A -> (cart R N') -> Prop, (forall a : A, (P a) -> @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_2699 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2699 (Q a x) x))) -> @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_2700 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2700 (exists a : A, (P a) /\ (Q a x)) x)). +Axiom thm_OPEN_EXISTS : forall {A N' : Type'}, forall Q : A -> (cart R N') -> Prop, (forall a : A, @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_2701 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2701 (Q a x) x))) -> @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_2702 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2702 (exists a : A, Q a x) x)). +Axiom thm_OPEN_RELATIVE_TO : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@relative_to (cart R N') (@_open N') s t) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t). +Axiom thm_TOPSPACE_EUCLIDEAN : forall {N' : Type'}, (@topspace (cart R N') (@euclidean N')) = (@UNIV (cart R N')). +Axiom thm_TOPSPACE_EUCLIDEAN_SUBTOPOLOGY : forall {_688844 : Type'}, forall s : (cart R _688844) -> Prop, (@topspace (cart R _688844) (@subtopology (cart R _688844) (@euclidean _688844) s)) = s. +Axiom thm_OPEN_IN_REFL : forall {N' : Type'}, forall s : (cart R N') -> Prop, @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) s. +Axiom thm_SUBTOPOLOGY_EUCLIDEAN_EQ_DISCRETE_TOPOLOGY_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> (@subtopology (cart R N') (@euclidean N') s) = (@discrete_topology (cart R N') s). +Axiom thm_closed : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) = (@_open N' (@DIFF (cart R N') (@UNIV (cart R N')) s)). +Axiom thm_CLOSED_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) = (@closed_in (cart R N') (@euclidean N') s). +Axiom thm_CLOSED_IN_EUCLIDEAN : forall {N' : Type'}, (@closed_in (cart R N') (@euclidean N')) = (@closed N'). +Axiom thm_CLOSED_IN_EUCLIDEAN_METRIC : forall {N' : Type'}, (@closed_in (cart R N') (@mtopology (cart R N') (@euclidean_metric N'))) = (@closed N'). +Axiom thm_CLOSED_IN_REFL : forall {N' : Type'}, forall s : (cart R N') -> Prop, @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) s. +Axiom thm_CLOSED_RELATIVE_TO : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@relative_to (cart R N') (@closed N') s t) = (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t). +Axiom thm_OPEN_UNION : forall {_688967 : Type'}, forall s : (cart R _688967) -> Prop, forall t : (cart R _688967) -> Prop, ((@_open _688967 s) /\ (@_open _688967 t)) -> @_open _688967 (@UNION (cart R _688967) s t). +Axiom thm_OPEN_SUBOPEN : forall {_688998 : Type'}, forall s : (cart R _688998) -> Prop, (@_open _688998 s) = (forall x : cart R _688998, (@IN (cart R _688998) x s) -> exists t : (cart R _688998) -> Prop, (@_open _688998 t) /\ ((@IN (cart R _688998) x t) /\ (@SUBSET (cart R _688998) t s))). +Axiom thm_CLOSED_EMPTY : forall {_689009 : Type'}, @closed _689009 (@EMPTY (cart R _689009)). +Axiom thm_CLOSED_UNIV : forall {N' : Type'}, @closed N' (@UNIV (cart R N')). +Axiom thm_CLOSED_UNION : forall {_689031 : Type'}, forall s : (cart R _689031) -> Prop, forall t : (cart R _689031) -> Prop, ((@closed _689031 s) /\ (@closed _689031 t)) -> @closed _689031 (@UNION (cart R _689031) s t). +Axiom thm_CLOSED_INTER : forall {_689053 : Type'}, forall s : (cart R _689053) -> Prop, forall t : (cart R _689053) -> Prop, ((@closed _689053 s) /\ (@closed _689053 t)) -> @closed _689053 (@INTER (cart R _689053) s t). +Axiom thm_CLOSED_INTERS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @closed N' s) -> @closed N' (@INTERS (cart R N') f). +Axiom thm_CLOSED_FORALL_IN : forall {A N' : Type'}, forall P : A -> Prop, forall Q : A -> (cart R N') -> Prop, (forall a : A, (P a) -> @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2706 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2706 (Q a x) x))) -> @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2707 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2707 (forall a : A, (P a) -> Q a x) x)). +Axiom thm_CLOSED_FORALL : forall {A N' : Type'}, forall Q : A -> (cart R N') -> Prop, (forall a : A, @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2708 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2708 (Q a x) x))) -> @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2709 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2709 (forall a : A, Q a x) x)). +Axiom thm_OPEN_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) = (@closed N' (@DIFF (cart R N') (@UNIV (cart R N')) s)). +Axiom thm_OPEN_DIFF : forall {_689256 : Type'}, forall s : (cart R _689256) -> Prop, forall t : (cart R _689256) -> Prop, ((@_open _689256 s) /\ (@closed _689256 t)) -> @_open _689256 (@DIFF (cart R _689256) s t). +Axiom thm_CLOSED_DIFF : forall {_689278 : Type'}, forall s : (cart R _689278) -> Prop, forall t : (cart R _689278) -> Prop, ((@closed _689278 s) /\ (@_open _689278 t)) -> @closed _689278 (@DIFF (cart R _689278) s t). +Axiom thm_OPEN_INTERS : forall {_689305 : Type'}, forall s : ((cart R _689305) -> Prop) -> Prop, ((@FINITE ((cart R _689305) -> Prop) s) /\ (forall t : (cart R _689305) -> Prop, (@IN ((cart R _689305) -> Prop) t s) -> @_open _689305 t)) -> @_open _689305 (@INTERS (cart R _689305) s). +Axiom thm_CLOSED_UNIONS : forall {_689331 : Type'}, forall s : ((cart R _689331) -> Prop) -> Prop, ((@FINITE ((cart R _689331) -> Prop) s) /\ (forall t : (cart R _689331) -> Prop, (@IN ((cart R _689331) -> Prop) t s) -> @closed _689331 t)) -> @closed _689331 (@UNIONS (cart R _689331) s). +Axiom thm_CLOSED_LOCALLY_FINITE_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @closed N' s) /\ (@locally_finite_in (cart R N') (@euclidean N') f)) -> @closed N' (@UNIONS (cart R N') f). +Axiom thm_LIMIT_EQ_LIFT : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, (@limit A R euclideanreal f l net') = (@limit A (cart R unit) (@euclidean unit) (@o A R (cart R unit) lift f) (lift l) net'). +Axiom thm_LIMIT_EQ_DROP : forall {A : Type'}, forall net' : net A, forall f : A -> cart R unit, forall l : cart R unit, (@limit A (cart R unit) (@euclidean unit) f l net') = (@limit A R euclideanreal (@o A (cart R unit) R drop f) (drop l) net'). +Axiom thm_CONTINUOUS_MAP_EQ_LIFT : forall {A : Type'}, forall top : Topology A, forall f : A -> R, (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) f) = (@continuous_map A (cart R unit) (@pair (Topology A) (Topology (cart R unit)) top (@euclidean unit)) (@o A R (cart R unit) lift f)). +Axiom thm_CONTINUOUS_MAP_EQ_DROP : forall {A : Type'}, forall top : Topology A, forall f : A -> cart R unit, (@continuous_map A (cart R unit) (@pair (Topology A) (Topology (cart R unit)) top (@euclidean unit)) f) = (@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (@o A (cart R unit) R drop f)). +Axiom thm_LIMIT_COMPONENTWISE_REAL : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', (@limit A (cart R N') (@euclidean N') f l net') = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @limit A R euclideanreal (fun x : A => @dollar R N' (f x) i) (@dollar R N' l i) net'). +Axiom thm_CONTINUOUS_MAP_COMPONENTWISE_REAL : forall {A N' : Type'}, forall top : Topology A, forall f : A -> cart R N', (@continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) f) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => @dollar R N' (f x) i)). +Axiom thm_CONTINUOUS_MAP_LIFT : @continuous_map R (cart R unit) (@pair (Topology R) (Topology (cart R unit)) euclideanreal (@euclidean unit)) lift. +Axiom thm_CONTINUOUS_MAP_DROP : @continuous_map (cart R unit) R (@pair (Topology (cart R unit)) (Topology R) (@euclidean unit) euclideanreal) drop. +Axiom thm_CONTINUOUS_MAP_LIFT_EQ : forall {A : Type'}, forall top : Topology A, forall f : (cart R unit) -> A, (@continuous_map (cart R unit) A (@pair (Topology (cart R unit)) (Topology A) (@euclidean unit) top) f) = (@continuous_map R A (@pair (Topology R) (Topology A) euclideanreal top) (@o R (cart R unit) A f lift)). +Axiom thm_CONTINUOUS_MAP_DROP_EQ : forall {A : Type'}, forall top : Topology A, forall f : R -> A, (@continuous_map R A (@pair (Topology R) (Topology A) euclideanreal top) f) = (@continuous_map (cart R unit) A (@pair (Topology (cart R unit)) (Topology A) (@euclidean unit) top) (@o (cart R unit) R A f drop)). +Axiom thm_CONTINUOUS_MAP_LIFT_EQ_GEN : forall {A : Type'}, forall top : Topology A, forall s : (cart R unit) -> Prop, forall f : (cart R unit) -> A, (@continuous_map (cart R unit) A (@pair (Topology (cart R unit)) (Topology A) (@subtopology (cart R unit) (@euclidean unit) s) top) f) = (@continuous_map R A (@pair (Topology R) (Topology A) (@subtopology R euclideanreal (@IMAGE (cart R unit) R drop s)) top) (@o R (cart R unit) A f lift)). +Axiom thm_CONTINUOUS_MAP_DROP_EQ_GEN : forall {A : Type'}, forall top : Topology A, forall s : R -> Prop, forall f : R -> A, (@continuous_map R A (@pair (Topology R) (Topology A) (@subtopology R euclideanreal s) top) f) = (@continuous_map (cart R unit) A (@pair (Topology (cart R unit)) (Topology A) (@subtopology (cart R unit) (@euclidean unit) (@IMAGE R (cart R unit) lift s)) top) (@o (cart R unit) R A f drop)). +Axiom thm_CONTINUOUS_MAP_VECTOR_CONST : forall {A N' : Type'}, forall top : Topology A, forall b : cart R N', @continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) (fun x : A => b). +Axiom thm_CONTINUOUS_MAP_VECTOR_ADD : forall {A N' : Type'}, forall top : Topology A, forall f : A -> cart R N', forall g : A -> cart R N', ((@continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) f) /\ (@continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) g)) -> @continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) (fun x : A => @vector_add N' (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_VECTOR_SUB : forall {A N' : Type'}, forall top : Topology A, forall f : A -> cart R N', forall g : A -> cart R N', ((@continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) f) /\ (@continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) g)) -> @continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) (fun x : A => @vector_sub N' (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_VECTOR_MUL : forall {A N' : Type'}, forall top : Topology A, forall c : A -> R, forall f : A -> cart R N', ((@continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) c) /\ (@continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) f)) -> @continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) (fun x : A => @percent N' (c x) (f x)). +Axiom thm_CONTINUOUS_MAP_DOT : forall {A N' : Type'}, forall top : Topology A, forall f : A -> cart R N', forall g : A -> cart R N', ((@continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) f) /\ (@continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) g)) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => @dot N' (f x) (g x)). +Axiom thm_CONTINUOUS_MAP_VSUM : forall {A K N' : Type'}, forall top : Topology A, forall k : K -> Prop, forall f : A -> K -> cart R N', ((@FINITE K k) /\ (forall i : K, (@IN K i k) -> @continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) (fun x : A => f x i))) -> @continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) (fun x : A => @vsum K N' k (f x)). +Axiom thm_CONTINUOUS_MAP_EUCLIDEAN_COMPONENT : forall {A N' : Type'}, forall top : Topology A, forall f : A -> cart R N', forall i : N, (@continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) f) -> @continuous_map A R (@pair (Topology A) (Topology R) top euclideanreal) (fun x : A => @dollar R N' (f x) i). +Axiom thm_ball : forall {_690257 : Type'}, forall x : cart R _690257, forall e : R, (@ball _690257 (@pair (cart R _690257) R x e)) = (@GSPEC (cart R _690257) (fun GEN_PVAR_2710 : cart R _690257 => exists y : cart R _690257, @SETSPEC (cart R _690257) GEN_PVAR_2710 (Rlt (@distance _690257 (@pair (cart R _690257) (cart R _690257) x y)) e) y)). +Axiom thm_IN_BALL : forall {_690283 : Type'}, forall x : cart R _690283, forall y : cart R _690283, forall e : R, (@IN (cart R _690283) y (@ball _690283 (@pair (cart R _690283) R x e))) = (Rlt (@distance _690283 (@pair (cart R _690283) (cart R _690283) x y)) e). +Axiom thm_MBALL_EUCLIDEAN : forall {N' : Type'}, forall x : cart R N', forall r : R, (@mball (cart R N') (@euclidean_metric N') (@pair (cart R N') R x r)) = (@ball N' (@pair (cart R N') R x r)). +Axiom thm_cball : forall {_690350 : Type'}, forall x : cart R _690350, forall e : R, (@cball _690350 (@pair (cart R _690350) R x e)) = (@GSPEC (cart R _690350) (fun GEN_PVAR_2711 : cart R _690350 => exists y : cart R _690350, @SETSPEC (cart R _690350) GEN_PVAR_2711 (Rle (@distance _690350 (@pair (cart R _690350) (cart R _690350) x y)) e) y)). +Axiom thm_IN_CBALL : forall {_690376 : Type'}, forall x : cart R _690376, forall y : cart R _690376, forall e : R, (@IN (cart R _690376) y (@cball _690376 (@pair (cart R _690376) R x e))) = (Rle (@distance _690376 (@pair (cart R _690376) (cart R _690376) x y)) e). +Axiom thm_MCBALL_EUCLIDEAN : forall {N' : Type'}, forall x : cart R N', forall r : R, (@mcball (cart R N') (@euclidean_metric N') (@pair (cart R N') R x r)) = (@cball N' (@pair (cart R N') R x r)). +Axiom thm_sphere : forall {_690443 : Type'}, forall x : cart R _690443, forall e : R, (@sphere _690443 (@pair (cart R _690443) R x e)) = (@GSPEC (cart R _690443) (fun GEN_PVAR_2712 : cart R _690443 => exists y : cart R _690443, @SETSPEC (cart R _690443) GEN_PVAR_2712 ((@distance _690443 (@pair (cart R _690443) (cart R _690443) x y)) = e) y)). +Axiom thm_IN_SPHERE : forall {_690469 : Type'}, forall x : cart R _690469, forall y : cart R _690469, forall e : R, (@IN (cart R _690469) y (@sphere _690469 (@pair (cart R _690469) R x e))) = ((@distance _690469 (@pair (cart R _690469) (cart R _690469) x y)) = e). +Axiom thm_IN_BALL_0 : forall {_690506 : Type'}, forall x : cart R _690506, forall e : R, (@IN (cart R _690506) x (@ball _690506 (@pair (cart R _690506) R (@vec _690506 (NUMERAL 0%N)) e))) = (Rlt (@vector_norm _690506 x) e). +Axiom thm_IN_CBALL_0 : forall {_690535 : Type'}, forall x : cart R _690535, forall e : R, (@IN (cart R _690535) x (@cball _690535 (@pair (cart R _690535) R (@vec _690535 (NUMERAL 0%N)) e))) = (Rle (@vector_norm _690535 x) e). +Axiom thm_IN_SPHERE_0 : forall {_690564 : Type'}, forall x : cart R _690564, forall e : R, (@IN (cart R _690564) x (@sphere _690564 (@pair (cart R _690564) R (@vec _690564 (NUMERAL 0%N)) e))) = ((@vector_norm _690564 x) = e). +Axiom thm_BALL_TRIVIAL : forall {_690581 : Type'}, forall x : cart R _690581, (@ball _690581 (@pair (cart R _690581) R x (R_of_N (NUMERAL 0%N)))) = (@EMPTY (cart R _690581)). +Axiom thm_CBALL_TRIVIAL : forall {_690598 : Type'}, forall x : cart R _690598, (@cball _690598 (@pair (cart R _690598) R x (R_of_N (NUMERAL 0%N)))) = (@INSERT (cart R _690598) x (@EMPTY (cart R _690598))). +Axiom thm_CENTRE_IN_CBALL : forall {_690624 : Type'}, forall x : cart R _690624, forall e : R, (@IN (cart R _690624) x (@cball _690624 (@pair (cart R _690624) R x e))) = (Rle (R_of_N (NUMERAL 0%N)) e). +Axiom thm_BALL_SUBSET_CBALL : forall {_690653 : Type'}, forall x : cart R _690653, forall e : R, @SUBSET (cart R _690653) (@ball _690653 (@pair (cart R _690653) R x e)) (@cball _690653 (@pair (cart R _690653) R x e)). +Axiom thm_SPHERE_SUBSET_CBALL : forall {_690677 : Type'}, forall x : cart R _690677, forall e : R, @SUBSET (cart R _690677) (@sphere _690677 (@pair (cart R _690677) R x e)) (@cball _690677 (@pair (cart R _690677) R x e)). +Axiom thm_SUBSET_BALL : forall {_690710 : Type'}, forall x : cart R _690710, forall d : R, forall e : R, (Rle d e) -> @SUBSET (cart R _690710) (@ball _690710 (@pair (cart R _690710) R x d)) (@ball _690710 (@pair (cart R _690710) R x e)). +Axiom thm_SUBSET_CBALL : forall {_690743 : Type'}, forall x : cart R _690743, forall d : R, forall e : R, (Rle d e) -> @SUBSET (cart R _690743) (@cball _690743 (@pair (cart R _690743) R x d)) (@cball _690743 (@pair (cart R _690743) R x e)). +Axiom thm_BALL_MAX_UNION : forall {_690783 : Type'}, forall a : cart R _690783, forall r : R, forall s : R, (@ball _690783 (@pair (cart R _690783) R a (Rmax r s))) = (@UNION (cart R _690783) (@ball _690783 (@pair (cart R _690783) R a r)) (@ball _690783 (@pair (cart R _690783) R a s))). +Axiom thm_BALL_MIN_INTER : forall {_690823 : Type'}, forall a : cart R _690823, forall r : R, forall s : R, (@ball _690823 (@pair (cart R _690823) R a (Rmin r s))) = (@INTER (cart R _690823) (@ball _690823 (@pair (cart R _690823) R a r)) (@ball _690823 (@pair (cart R _690823) R a s))). +Axiom thm_CBALL_MAX_UNION : forall {_690863 : Type'}, forall a : cart R _690863, forall r : R, forall s : R, (@cball _690863 (@pair (cart R _690863) R a (Rmax r s))) = (@UNION (cart R _690863) (@cball _690863 (@pair (cart R _690863) R a r)) (@cball _690863 (@pair (cart R _690863) R a s))). +Axiom thm_CBALL_MIN_INTER : forall {_690903 : Type'}, forall x : cart R _690903, forall d : R, forall e : R, (@cball _690903 (@pair (cart R _690903) R x (Rmin d e))) = (@INTER (cart R _690903) (@cball _690903 (@pair (cart R _690903) R x d)) (@cball _690903 (@pair (cart R _690903) R x e))). +Axiom thm_BALL_TRANSLATION : forall {_690953 : Type'}, forall a : cart R _690953, forall x : cart R _690953, forall r : R, (@ball _690953 (@pair (cart R _690953) R (@vector_add _690953 a x) r)) = (@IMAGE (cart R _690953) (cart R _690953) (fun y : cart R _690953 => @vector_add _690953 a y) (@ball _690953 (@pair (cart R _690953) R x r))). +Axiom thm_CBALL_TRANSLATION : forall {_691005 : Type'}, forall a : cart R _691005, forall x : cart R _691005, forall r : R, (@cball _691005 (@pair (cart R _691005) R (@vector_add _691005 a x) r)) = (@IMAGE (cart R _691005) (cart R _691005) (fun y : cart R _691005 => @vector_add _691005 a y) (@cball _691005 (@pair (cart R _691005) R x r))). +Axiom thm_SPHERE_TRANSLATION : forall {_691057 : Type'}, forall a : cart R _691057, forall x : cart R _691057, forall r : R, (@sphere _691057 (@pair (cart R _691057) R (@vector_add _691057 a x) r)) = (@IMAGE (cart R _691057) (cart R _691057) (fun y : cart R _691057 => @vector_add _691057 a y) (@sphere _691057 (@pair (cart R _691057) R x r))). +Axiom thm_BALL_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall r : R, ((@linear M N' f) /\ ((forall y : cart R N', exists x' : cart R M, (f x') = y) /\ (forall x' : cart R M, (@vector_norm N' (f x')) = (@vector_norm M x')))) -> (@ball N' (@pair (cart R N') R (f x) r)) = (@IMAGE (cart R M) (cart R N') f (@ball M (@pair (cart R M) R x r))). +Axiom thm_CBALL_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall r : R, ((@linear M N' f) /\ ((forall y : cart R N', exists x' : cart R M, (f x') = y) /\ (forall x' : cart R M, (@vector_norm N' (f x')) = (@vector_norm M x')))) -> (@cball N' (@pair (cart R N') R (f x) r)) = (@IMAGE (cart R M) (cart R N') f (@cball M (@pair (cart R M) R x r))). +Axiom thm_SPHERE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall r : R, ((@linear M N' f) /\ ((forall y : cart R N', exists x' : cart R M, (f x') = y) /\ (forall x' : cart R M, (@vector_norm N' (f x')) = (@vector_norm M x')))) -> (@sphere N' (@pair (cart R N') R (f x) r)) = (@IMAGE (cart R M) (cart R N') f (@sphere M (@pair (cart R M) R x r))). +Axiom thm_BALL_SCALING : forall {_691332 : Type'}, forall c : R, (Rlt (R_of_N (NUMERAL 0%N)) c) -> forall x : cart R _691332, forall r : R, (@ball _691332 (@pair (cart R _691332) R (@percent _691332 c x) (Rmult c r))) = (@IMAGE (cart R _691332) (cart R _691332) (fun x' : cart R _691332 => @percent _691332 c x') (@ball _691332 (@pair (cart R _691332) R x r))). +Axiom thm_CBALL_SCALING : forall {_691395 : Type'}, forall c : R, (Rlt (R_of_N (NUMERAL 0%N)) c) -> forall x : cart R _691395, forall r : R, (@cball _691395 (@pair (cart R _691395) R (@percent _691395 c x) (Rmult c r))) = (@IMAGE (cart R _691395) (cart R _691395) (fun x' : cart R _691395 => @percent _691395 c x') (@cball _691395 (@pair (cart R _691395) R x r))). +Axiom thm_SPHERE_SCALING : forall {_691458 : Type'}, forall c : R, (Rlt (R_of_N (NUMERAL 0%N)) c) -> forall x : cart R _691458, forall r : R, (@sphere _691458 (@pair (cart R _691458) R (@percent _691458 c x) (Rmult c r))) = (@IMAGE (cart R _691458) (cart R _691458) (fun x' : cart R _691458 => @percent _691458 c x') (@sphere _691458 (@pair (cart R _691458) R x r))). +Axiom thm_CBALL_DIFF_BALL : forall {_691491 : Type'}, forall a : cart R _691491, forall r : R, (@DIFF (cart R _691491) (@cball _691491 (@pair (cart R _691491) R a r)) (@ball _691491 (@pair (cart R _691491) R a r))) = (@sphere _691491 (@pair (cart R _691491) R a r)). +Axiom thm_BALL_UNION_SPHERE : forall {_691524 : Type'}, forall a : cart R _691524, forall r : R, (@UNION (cart R _691524) (@ball _691524 (@pair (cart R _691524) R a r)) (@sphere _691524 (@pair (cart R _691524) R a r))) = (@cball _691524 (@pair (cart R _691524) R a r)). +Axiom thm_SPHERE_UNION_BALL : forall {_691557 : Type'}, forall a : cart R _691557, forall r : R, (@UNION (cart R _691557) (@sphere _691557 (@pair (cart R _691557) R a r)) (@ball _691557 (@pair (cart R _691557) R a r))) = (@cball _691557 (@pair (cart R _691557) R a r)). +Axiom thm_CBALL_DIFF_SPHERE : forall {_691590 : Type'}, forall a : cart R _691590, forall r : R, (@DIFF (cart R _691590) (@cball _691590 (@pair (cart R _691590) R a r)) (@sphere _691590 (@pair (cart R _691590) R a r))) = (@ball _691590 (@pair (cart R _691590) R a r)). +Axiom thm_OPEN_BALL : forall {_691607 : Type'}, forall x : cart R _691607, forall e : R, @_open _691607 (@ball _691607 (@pair (cart R _691607) R x e)). +Axiom thm_CENTRE_IN_BALL : forall {_691627 : Type'}, forall x : cart R _691627, forall e : R, (@IN (cart R _691627) x (@ball _691627 (@pair (cart R _691627) R x e))) = (Rlt (R_of_N (NUMERAL 0%N)) e). +Axiom thm_OPEN_CONTAINS_BALL : forall {_691645 : Type'}, forall s : (cart R _691645) -> Prop, (@_open _691645 s) = (forall x : cart R _691645, (@IN (cart R _691645) x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET (cart R _691645) (@ball _691645 (@pair (cart R _691645) R x e)) s)). +Axiom thm_OPEN_CONTAINS_BALL_EQ : forall {_691683 : Type'}, forall s : (cart R _691683) -> Prop, (@_open _691683 s) -> forall x : cart R _691683, (@IN (cart R _691683) x s) = (exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET (cart R _691683) (@ball _691683 (@pair (cart R _691683) R x e)) s)). +Axiom thm_BALL_EQ_EMPTY : forall {_691728 : Type'}, forall x : cart R _691728, forall e : R, ((@ball _691728 (@pair (cart R _691728) R x e)) = (@EMPTY (cart R _691728))) = (Rle e (R_of_N (NUMERAL 0%N))). +Axiom thm_BALL_EMPTY : forall {_691759 : Type'}, forall x : cart R _691759, forall e : R, (Rle e (R_of_N (NUMERAL 0%N))) -> (@ball _691759 (@pair (cart R _691759) R x e)) = (@EMPTY (cart R _691759)). +Axiom thm_OPEN_CONTAINS_CBALL : forall {_691793 : Type'}, forall s : (cart R _691793) -> Prop, (@_open _691793 s) = (forall x : cart R _691793, (@IN (cart R _691793) x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET (cart R _691793) (@cball _691793 (@pair (cart R _691793) R x e)) s)). +Axiom thm_OPEN_CONTAINS_CBALL_EQ : forall {_691831 : Type'}, forall s : (cart R _691831) -> Prop, (@_open _691831 s) -> forall x : cart R _691831, (@IN (cart R _691831) x s) = (exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET (cart R _691831) (@cball _691831 (@pair (cart R _691831) R x e)) s)). +Axiom thm_SPHERE_EQ_EMPTY : forall {N' : Type'}, forall a : cart R N', forall r : R, ((@sphere N' (@pair (cart R N') R a r)) = (@EMPTY (cart R N'))) = (Rlt r (R_of_N (NUMERAL 0%N))). +Axiom thm_SPHERE_EMPTY : forall {N' : Type'}, forall a : cart R N', forall r : R, (Rlt r (R_of_N (NUMERAL 0%N))) -> (@sphere N' (@pair (cart R N') R a r)) = (@EMPTY (cart R N')). +Axiom thm_NEGATIONS_BALL : forall {N' : Type'}, forall r : R, (@IMAGE (cart R N') (cart R N') (@vector_neg N') (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) = (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r)). +Axiom thm_NEGATIONS_CBALL : forall {N' : Type'}, forall r : R, (@IMAGE (cart R N') (cart R N') (@vector_neg N') (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) = (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r)). +Axiom thm_NEGATIONS_SPHERE : forall {N' : Type'}, forall r : R, (@IMAGE (cart R N') (cart R N') (@vector_neg N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) = (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r)). +Axiom thm_ORTHOGONAL_TRANSFORMATION_BALL : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall r : R, (@orthogonal_transformation N' f) -> (@IMAGE (cart R N') (cart R N') f (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) = (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r)). +Axiom thm_ORTHOGONAL_TRANSFORMATION_CBALL : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall r : R, (@orthogonal_transformation N' f) -> (@IMAGE (cart R N') (cart R N') f (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) = (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r)). +Axiom thm_ORTHOGONAL_TRANSFORMATION_SPHERE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall r : R, (@orthogonal_transformation N' f) -> (@IMAGE (cart R N') (cart R N') f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) = (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r)). +Axiom thm_OPEN_IN_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) = (exists t : (cart R N') -> Prop, (@_open N' t) /\ (s = (@INTER (cart R N') u t))). +Axiom thm_OPEN_IN_INTER_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@_open N' t)) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) (@INTER (cart R N') s t). +Axiom thm_OPEN_IN_OPEN_INTER : forall {_692206 : Type'}, forall u : (cart R _692206) -> Prop, forall s : (cart R _692206) -> Prop, (@_open _692206 s) -> @open_in (cart R _692206) (@subtopology (cart R _692206) (@euclidean _692206) u) (@INTER (cart R _692206) u s). +Axiom thm_OPEN_OPEN_IN_TRANS : forall {_692243 : Type'}, forall s : (cart R _692243) -> Prop, forall t : (cart R _692243) -> Prop, ((@_open _692243 s) /\ ((@_open _692243 t) /\ (@SUBSET (cart R _692243) t s))) -> @open_in (cart R _692243) (@subtopology (cart R _692243) (@euclidean _692243) s) t. +Axiom thm_OPEN_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') s t) /\ (@_open N' s)) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s. +Axiom thm_CLOSED_IN_DIFF_OPEN : forall {_692308 : Type'}, forall s : (cart R _692308) -> Prop, forall t : (cart R _692308) -> Prop, (@_open _692308 t) -> @closed_in (cart R _692308) (@subtopology (cart R _692308) (@euclidean _692308) s) (@DIFF (cart R _692308) s t). +Axiom thm_CLOSED_IN_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) = (exists t : (cart R N') -> Prop, (@closed N' t) /\ (s = (@INTER (cart R N') u t))). +Axiom thm_CLOSED_SUBSET_EQ : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@closed N' s) -> (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) = (@SUBSET (cart R N') s u). +Axiom thm_CLOSED_IN_INTER_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@closed N' t)) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) (@INTER (cart R N') s t). +Axiom thm_CLOSED_IN_CLOSED_INTER : forall {_692425 : Type'}, forall u : (cart R _692425) -> Prop, forall s : (cart R _692425) -> Prop, (@closed _692425 s) -> @closed_in (cart R _692425) (@subtopology (cart R _692425) (@euclidean _692425) u) (@INTER (cart R _692425) u s). +Axiom thm_CLOSED_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') s t) /\ (@closed N' s)) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s. +Axiom thm_OPEN_IN_DIFF_CLOSED : forall {_692486 : Type'}, forall s : (cart R _692486) -> Prop, forall t : (cart R _692486) -> Prop, (@closed _692486 t) -> @open_in (cart R _692486) (@subtopology (cart R _692486) (@euclidean _692486) s) (@DIFF (cart R _692486) s t). +Axiom thm_open_in : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) = ((@SUBSET (cart R N') s u) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x' : cart R N', ((@IN (cart R N') x' u) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x' x)) e)) -> @IN (cart R N') x' s))). +Axiom thm_OPEN_IN_CONTAINS_BALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) = ((@SUBSET (cart R N') s t) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET (cart R N') (@INTER (cart R N') (@ball N' (@pair (cart R N') R x e)) t) s))). +Axiom thm_OPEN_IN_CONTAINS_CBALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) = ((@SUBSET (cart R N') s t) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET (cart R N') (@INTER (cart R N') (@cball N' (@pair (cart R N') R x e)) t) s))). +Axiom thm_OPEN_IN_TRANS_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (forall u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t). +Axiom thm_OPEN_IN_OPEN_TRANS : forall {_692802 : Type'}, forall s : (cart R _692802) -> Prop, forall t : (cart R _692802) -> Prop, ((@open_in (cart R _692802) (@subtopology (cart R _692802) (@euclidean _692802) t) s) /\ (@_open _692802 t)) -> @_open _692802 s. +Axiom thm_CLOSED_IN_TRANS_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (forall u : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) = (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t). +Axiom thm_CLOSED_IN_CLOSED_TRANS : forall {_692864 : Type'}, forall s : (cart R _692864) -> Prop, forall t : (cart R _692864) -> Prop, ((@closed_in (cart R _692864) (@subtopology (cart R _692864) (@euclidean _692864) t) s) /\ (@closed _692864 t)) -> @closed _692864 s. +Axiom thm_OPEN_IN_OPEN_EQ : forall {_692890 : Type'}, forall s : (cart R _692890) -> Prop, forall t : (cart R _692890) -> Prop, (@_open _692890 s) -> (@open_in (cart R _692890) (@subtopology (cart R _692890) (@euclidean _692890) s) t) = ((@_open _692890 t) /\ (@SUBSET (cart R _692890) t s)). +Axiom thm_CLOSED_IN_CLOSED_EQ : forall {_692919 : Type'}, forall s : (cart R _692919) -> Prop, forall t : (cart R _692919) -> Prop, (@closed _692919 s) -> (@closed_in (cart R _692919) (@subtopology (cart R _692919) (@euclidean _692919) s) t) = ((@closed _692919 t) /\ (@SUBSET (cart R _692919) t s)). +Axiom thm_OPEN_IN_TRANSLATION_EQ : forall {_692975 : Type'}, forall a : cart R _692975, forall s : (cart R _692975) -> Prop, forall t : (cart R _692975) -> Prop, (@open_in (cart R _692975) (@subtopology (cart R _692975) (@euclidean _692975) (@IMAGE (cart R _692975) (cart R _692975) (fun x : cart R _692975 => @vector_add _692975 a x) t)) (@IMAGE (cart R _692975) (cart R _692975) (fun x : cart R _692975 => @vector_add _692975 a x) s)) = (@open_in (cart R _692975) (@subtopology (cart R _692975) (@euclidean _692975) t) s). +Axiom thm_CLOSED_IN_TRANSLATION_EQ : forall {_693034 : Type'}, forall a : cart R _693034, forall s : (cart R _693034) -> Prop, forall t : (cart R _693034) -> Prop, (@closed_in (cart R _693034) (@subtopology (cart R _693034) (@euclidean _693034) (@IMAGE (cart R _693034) (cart R _693034) (fun x : cart R _693034 => @vector_add _693034 a x) t)) (@IMAGE (cart R _693034) (cart R _693034) (fun x : cart R _693034 => @vector_add _693034 a x) s)) = (@closed_in (cart R _693034) (@subtopology (cart R _693034) (@euclidean _693034) t) s). +Axiom thm_OPEN_IN_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f t)) (@IMAGE (cart R M) (cart R N') f s)) = (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) t) s). +Axiom thm_CLOSED_IN_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f t)) (@IMAGE (cart R M) (cart R N') f s)) = (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) t) s). +Axiom thm_HOMEOMORPHIC_MAPS_EUCLIDEAN_SPACE_EUCLIDEAN_GEN : forall {N' : Type'}, forall n : N, (N.le n (@dimindex N' (@UNIV N'))) -> @homeomorphic_maps (N -> R) (cart R N') (@pair (Topology (N -> R)) (Topology (cart R N')) (euclidean_space n) (@subtopology (cart R N') (@euclidean N') (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) (@pair ((N -> R) -> cart R N') ((cart R N') -> N -> R) (fun x : N -> R => @lambda R N' (fun i : N => @COND R ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i n)) (x i) (R_of_N (NUMERAL 0%N)))) (fun x : cart R N' => fun i : N => @COND R ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i n)) (@dollar R N' x i) (R_of_N (NUMERAL 0%N)))). +Axiom thm_HOMEOMORPHIC_MAPS_EUCLIDEAN_SPACE_EUCLIDEAN : forall {N' : Type'}, @homeomorphic_maps (N -> R) (cart R N') (@pair (Topology (N -> R)) (Topology (cart R N')) (euclidean_space (@dimindex N' (@UNIV N'))) (@euclidean N')) (@pair ((N -> R) -> cart R N') ((cart R N') -> N -> R) (fun x : N -> R => @lambda R N' (fun i : N => x i)) (fun x : cart R N' => fun i : N => @COND R ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@dollar R N' x i) (R_of_N (NUMERAL 0%N)))). +Axiom thm_HOMEOMORPHIC_MAPS_NSPHERE_EUCLIDEAN_SPHERE : forall {N' : Type'}, forall n : N, ((N.le (NUMERAL (BIT1 0%N)) n) /\ (N.le n (@dimindex N' (@UNIV N')))) -> @homeomorphic_maps (N -> R) (cart R N') (@pair (Topology (N -> R)) (Topology (cart R N')) (nsphere (N.sub n (NUMERAL (BIT1 0%N)))) (@subtopology (cart R N') (@euclidean N') (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n)))))) (@pair ((N -> R) -> cart R N') ((cart R N') -> N -> R) (fun x : N -> R => @lambda R N' (fun i : N => @COND R ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i n)) (x i) (R_of_N (NUMERAL 0%N)))) (fun x : cart R N' => fun i : N => @COND R ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i n)) (@dollar R N' x i) (R_of_N (NUMERAL 0%N)))). +Axiom thm_manhattan : forall {N' : Type'}, (@manhattan N') = (@metric (cart R N') (@pair ((cart R N') -> Prop) ((prod (cart R N') (cart R N')) -> R) (@UNIV (cart R N')) (@GABS ((prod (cart R N') (cart R N')) -> R) (fun f : (prod (cart R N') (cart R N')) -> R => forall x : cart R N', forall y : cart R N', @GEQ R (f (@pair (cart R N') (cart R N') x y)) (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => Rabs (Rminus (@dollar R N' x i) (@dollar R N' y i)))))))). +Axiom thm_MANHATTAN : forall {N' : Type'}, ((@mspace (cart R N') (@manhattan N')) = (@UNIV (cart R N'))) /\ (forall x : cart R N', forall y : cart R N', (@mdist (cart R N') (@manhattan N') (@pair (cart R N') (cart R N') x y)) = (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => Rabs (Rminus (@dollar R N' x i) (@dollar R N' y i))))). +Axiom thm_open_segment : forall {_693771 : Type'}, forall a : cart R _693771, forall b : cart R _693771, (@open_segment _693771 (@pair (cart R _693771) (cart R _693771) a b)) = (@DIFF (cart R _693771) (@closed_segment _693771 (@cons (prod (cart R _693771) (cart R _693771)) (@pair (cart R _693771) (cart R _693771) a b) (@nil (prod (cart R _693771) (cart R _693771))))) (@INSERT (cart R _693771) a (@INSERT (cart R _693771) b (@EMPTY (cart R _693771))))). +Axiom thm_OPEN_SEGMENT_ALT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (~ (a = b)) -> (@open_segment N' (@pair (cart R N') (cart R N') a b)) = (@GSPEC (cart R N') (fun GEN_PVAR_2715 : cart R N' => exists u : R, @SETSPEC (cart R N') GEN_PVAR_2715 ((Rlt (R_of_N (NUMERAL 0%N)) u) /\ (Rlt u (R_of_N (NUMERAL (BIT1 0%N))))) (@vector_add N' (@percent N' (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) a) (@percent N' u b)))). +Axiom thm_segment : forall {_694065 : Type'} (a : cart R _694065) (b : cart R _694065), ((@closed_segment _694065 (@cons (prod (cart R _694065) (cart R _694065)) (@pair (cart R _694065) (cart R _694065) a b) (@nil (prod (cart R _694065) (cart R _694065))))) = (@GSPEC (cart R _694065) (fun GEN_PVAR_2716 : cart R _694065 => exists u : R, @SETSPEC (cart R _694065) GEN_PVAR_2716 ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N))))) (@vector_add _694065 (@percent _694065 (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) a) (@percent _694065 u b))))) /\ ((@open_segment _694065 (@pair (cart R _694065) (cart R _694065) a b)) = (@DIFF (cart R _694065) (@closed_segment _694065 (@cons (prod (cart R _694065) (cart R _694065)) (@pair (cart R _694065) (cart R _694065) a b) (@nil (prod (cart R _694065) (cart R _694065))))) (@INSERT (cart R _694065) a (@INSERT (cart R _694065) b (@EMPTY (cart R _694065)))))). +Axiom thm_SEGMENT_REFL : forall {_694135 _694137 : Type'}, (forall a : cart R _694135, (@closed_segment _694135 (@cons (prod (cart R _694135) (cart R _694135)) (@pair (cart R _694135) (cart R _694135) a a) (@nil (prod (cart R _694135) (cart R _694135))))) = (@INSERT (cart R _694135) a (@EMPTY (cart R _694135)))) /\ (forall a : cart R _694137, (@open_segment _694137 (@pair (cart R _694137) (cart R _694137) a a)) = (@EMPTY (cart R _694137))). +Axiom thm_IN_SEGMENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (exists u : R, (Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle u (R_of_N (NUMERAL (BIT1 0%N)))) /\ (x = (@vector_add N' (@percent N' (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) a) (@percent N' u b)))))) /\ ((@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))) = ((~ (a = b)) /\ (exists u : R, (Rlt (R_of_N (NUMERAL 0%N)) u) /\ ((Rlt u (R_of_N (NUMERAL (BIT1 0%N)))) /\ (x = (@vector_add N' (@percent N' (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) a) (@percent N' u b))))))). +Axiom thm_SEGMENT_SYM : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') b a) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', (@open_segment N' (@pair (cart R N') (cart R N') a b)) = (@open_segment N' (@pair (cart R N') (cart R N') b a))). +Axiom thm_ENDS_IN_SEGMENT : forall {_694409 : Type'}, forall a : cart R _694409, forall b : cart R _694409, (@IN (cart R _694409) a (@closed_segment _694409 (@cons (prod (cart R _694409) (cart R _694409)) (@pair (cart R _694409) (cart R _694409) a b) (@nil (prod (cart R _694409) (cart R _694409)))))) /\ (@IN (cart R _694409) b (@closed_segment _694409 (@cons (prod (cart R _694409) (cart R _694409)) (@pair (cart R _694409) (cart R _694409) a b) (@nil (prod (cart R _694409) (cart R _694409)))))). +Axiom thm_ENDS_NOT_IN_SEGMENT : forall {_694446 : Type'}, forall a : cart R _694446, forall b : cart R _694446, (~ (@IN (cart R _694446) a (@open_segment _694446 (@pair (cart R _694446) (cart R _694446) a b)))) /\ (~ (@IN (cart R _694446) b (@open_segment _694446 (@pair (cart R _694446) (cart R _694446) a b)))). +Axiom thm_SEGMENT_CLOSED_OPEN : forall {_694525 : Type'}, forall a : cart R _694525, forall b : cart R _694525, (@closed_segment _694525 (@cons (prod (cart R _694525) (cart R _694525)) (@pair (cart R _694525) (cart R _694525) a b) (@nil (prod (cart R _694525) (cart R _694525))))) = (@UNION (cart R _694525) (@open_segment _694525 (@pair (cart R _694525) (cart R _694525) a b)) (@INSERT (cart R _694525) a (@INSERT (cart R _694525) b (@EMPTY (cart R _694525))))). +Axiom thm_SEGMENT_OPEN_SUBSET_CLOSED : forall {_694559 : Type'}, forall a : cart R _694559, forall b : cart R _694559, @SUBSET (cart R _694559) (@open_segment _694559 (@pair (cart R _694559) (cart R _694559) a b)) (@closed_segment _694559 (@cons (prod (cart R _694559) (cart R _694559)) (@pair (cart R _694559) (cart R _694559) a b) (@nil (prod (cart R _694559) (cart R _694559))))). +Axiom thm_MIDPOINT_IN_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @IN (cart R N') (@midpoint N' (@pair (cart R N') (cart R N') a b)) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', (@IN (cart R N') (@midpoint N' (@pair (cart R N') (cart R N') a b)) (@open_segment N' (@pair (cart R N') (cart R N') a b))) = (~ (a = b))). +Axiom thm_BETWEEN_IN_SEGMENT : forall {N' : Type'}, forall x : cart R N', forall a : cart R N', forall b : cart R N', (@between N' x (@pair (cart R N') (cart R N') a b)) = (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_IN_SEGMENT_COMPONENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', forall i : N, ((@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> (Rle (Rmin (@dollar R N' a i) (@dollar R N' b i)) (@dollar R N' x i)) /\ (Rle (@dollar R N' x i) (Rmax (@dollar R N' a i) (@dollar R N' b i))). +Axiom thm_SEGMENT_TRANSLATION : forall {_695140 _695153 : Type'}, (forall c : cart R _695140, forall a : cart R _695140, forall b : cart R _695140, (@closed_segment _695140 (@cons (prod (cart R _695140) (cart R _695140)) (@pair (cart R _695140) (cart R _695140) (@vector_add _695140 c a) (@vector_add _695140 c b)) (@nil (prod (cart R _695140) (cart R _695140))))) = (@IMAGE (cart R _695140) (cart R _695140) (fun x : cart R _695140 => @vector_add _695140 c x) (@closed_segment _695140 (@cons (prod (cart R _695140) (cart R _695140)) (@pair (cart R _695140) (cart R _695140) a b) (@nil (prod (cart R _695140) (cart R _695140))))))) /\ (forall c : cart R _695153, forall a : cart R _695153, forall b : cart R _695153, (@open_segment _695153 (@pair (cart R _695153) (cart R _695153) (@vector_add _695153 c a) (@vector_add _695153 c b))) = (@IMAGE (cart R _695153) (cart R _695153) (fun x : cart R _695153 => @vector_add _695153 c x) (@open_segment _695153 (@pair (cart R _695153) (cart R _695153) a b)))). +Axiom thm_CLOSED_SEGMENT_LINEAR_IMAGE : forall {_695225 _695226 : Type'}, forall f : (cart R _695226) -> cart R _695225, forall a : cart R _695226, forall b : cart R _695226, (@linear _695226 _695225 f) -> (@closed_segment _695225 (@cons (prod (cart R _695225) (cart R _695225)) (@pair (cart R _695225) (cart R _695225) (f a) (f b)) (@nil (prod (cart R _695225) (cart R _695225))))) = (@IMAGE (cart R _695226) (cart R _695225) f (@closed_segment _695226 (@cons (prod (cart R _695226) (cart R _695226)) (@pair (cart R _695226) (cart R _695226) a b) (@nil (prod (cart R _695226) (cart R _695226)))))). +Axiom thm_OPEN_SEGMENT_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@open_segment N' (@pair (cart R N') (cart R N') (f a) (f b))) = (@IMAGE (cart R M) (cart R N') f (@open_segment M (@pair (cart R M) (cart R M) a b))). +Axiom thm_IN_OPEN_SEGMENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))) = ((@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((~ (x = a)) /\ (~ (x = b)))). +Axiom thm_IN_OPEN_SEGMENT_ALT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))) = ((@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((~ (x = a)) /\ ((~ (x = b)) /\ (~ (a = b))))). +Axiom thm_COLLINEAR_DIST_IN_CLOSED_SEGMENT : forall {_695494 : Type'}, forall a : cart R _695494, forall b : cart R _695494, forall x : cart R _695494, ((@collinear _695494 (@INSERT (cart R _695494) x (@INSERT (cart R _695494) a (@INSERT (cart R _695494) b (@EMPTY (cart R _695494)))))) /\ ((Rle (@distance _695494 (@pair (cart R _695494) (cart R _695494) x a)) (@distance _695494 (@pair (cart R _695494) (cart R _695494) a b))) /\ (Rle (@distance _695494 (@pair (cart R _695494) (cart R _695494) x b)) (@distance _695494 (@pair (cart R _695494) (cart R _695494) a b))))) -> @IN (cart R _695494) x (@closed_segment _695494 (@cons (prod (cart R _695494) (cart R _695494)) (@pair (cart R _695494) (cart R _695494) a b) (@nil (prod (cart R _695494) (cart R _695494))))). +Axiom thm_COLLINEAR_DIST_IN_OPEN_SEGMENT : forall {_695575 : Type'}, forall a : cart R _695575, forall b : cart R _695575, forall x : cart R _695575, ((@collinear _695575 (@INSERT (cart R _695575) x (@INSERT (cart R _695575) a (@INSERT (cart R _695575) b (@EMPTY (cart R _695575)))))) /\ ((Rlt (@distance _695575 (@pair (cart R _695575) (cart R _695575) x a)) (@distance _695575 (@pair (cart R _695575) (cart R _695575) a b))) /\ (Rlt (@distance _695575 (@pair (cart R _695575) (cart R _695575) x b)) (@distance _695575 (@pair (cart R _695575) (cart R _695575) a b))))) -> @IN (cart R _695575) x (@open_segment _695575 (@pair (cart R _695575) (cart R _695575) a b)). +Axiom thm_DIST_IN_OPEN_SEGMENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))) -> (Rlt (@distance N' (@pair (cart R N') (cart R N') x a)) (@distance N' (@pair (cart R N') (cart R N') a b))) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x b)) (@distance N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_DIST_IN_CLOSED_SEGMENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> (Rle (@distance N' (@pair (cart R N') (cart R N') x a)) (@distance N' (@pair (cart R N') (cart R N') a b))) /\ (Rle (@distance N' (@pair (cart R N') (cart R N') x b)) (@distance N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_DIST_DECREASES_OPEN_SEGMENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall x : cart R N', (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))) -> (Rlt (@distance N' (@pair (cart R N') (cart R N') c x)) (@distance N' (@pair (cart R N') (cart R N') c a))) \/ (Rlt (@distance N' (@pair (cart R N') (cart R N') c x)) (@distance N' (@pair (cart R N') (cart R N') c b))). +Axiom thm_DIST_DECREASES_CLOSED_SEGMENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall x : cart R N', (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> (Rle (@distance N' (@pair (cart R N') (cart R N') c x)) (@distance N' (@pair (cart R N') (cart R N') c a))) \/ (Rle (@distance N' (@pair (cart R N') (cart R N') c x)) (@distance N' (@pair (cart R N') (cart R N') c b))). +Axiom thm_DIST_IN_CLOSED_SEGMENT_2 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (@IN (cart R N') y (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) -> Rle (@distance N' (@pair (cart R N') (cart R N') x y)) (@distance N' (@pair (cart R N') (cart R N') a b)). +Axiom thm_connected : forall {_696240 : Type'}, forall s : (cart R _696240) -> Prop, (@connected _696240 s) = (~ (exists e1 : (cart R _696240) -> Prop, exists e2 : (cart R _696240) -> Prop, (@_open _696240 e1) /\ ((@_open _696240 e2) /\ ((@SUBSET (cart R _696240) s (@UNION (cart R _696240) e1 e2)) /\ (((@INTER (cart R _696240) e1 (@INTER (cart R _696240) e2 s)) = (@EMPTY (cart R _696240))) /\ ((~ ((@INTER (cart R _696240) e1 s) = (@EMPTY (cart R _696240)))) /\ (~ ((@INTER (cart R _696240) e2 s) = (@EMPTY (cart R _696240)))))))))). +Axiom thm_CONNECTED_IN_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected_in (cart R N') (@euclidean N') s) = (@connected N' s). +Axiom thm_CONNECTED_SPACE_EUCLIDEAN_SUBTOPOLOGY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected_space (cart R N') (@subtopology (cart R N') (@euclidean N') s)) = (@connected N' s). +Axiom thm_CONNECTED_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) = (~ (exists e1 : (cart R N') -> Prop, exists e2 : (cart R N') -> Prop, (@closed N' e1) /\ ((@closed N' e2) /\ ((@SUBSET (cart R N') s (@UNION (cart R N') e1 e2)) /\ (((@INTER (cart R N') e1 (@INTER (cart R N') e2 s)) = (@EMPTY (cart R N'))) /\ ((~ ((@INTER (cart R N') e1 s) = (@EMPTY (cart R N')))) /\ (~ ((@INTER (cart R N') e2 s) = (@EMPTY (cart R N')))))))))). +Axiom thm_CONNECTED_OPEN_IN : forall {_696379 : Type'}, forall s : (cart R _696379) -> Prop, (@connected _696379 s) = (~ (exists e1 : (cart R _696379) -> Prop, exists e2 : (cart R _696379) -> Prop, (@open_in (cart R _696379) (@subtopology (cart R _696379) (@euclidean _696379) s) e1) /\ ((@open_in (cart R _696379) (@subtopology (cart R _696379) (@euclidean _696379) s) e2) /\ ((@SUBSET (cart R _696379) s (@UNION (cart R _696379) e1 e2)) /\ (((@INTER (cart R _696379) e1 e2) = (@EMPTY (cart R _696379))) /\ ((~ (e1 = (@EMPTY (cart R _696379)))) /\ (~ (e2 = (@EMPTY (cart R _696379)))))))))). +Axiom thm_CONNECTED_OPEN_IN_EQ : forall {_696444 : Type'}, forall s : (cart R _696444) -> Prop, (@connected _696444 s) = (~ (exists e1 : (cart R _696444) -> Prop, exists e2 : (cart R _696444) -> Prop, (@open_in (cart R _696444) (@subtopology (cart R _696444) (@euclidean _696444) s) e1) /\ ((@open_in (cart R _696444) (@subtopology (cart R _696444) (@euclidean _696444) s) e2) /\ (((@UNION (cart R _696444) e1 e2) = s) /\ (((@INTER (cart R _696444) e1 e2) = (@EMPTY (cart R _696444))) /\ ((~ (e1 = (@EMPTY (cart R _696444)))) /\ (~ (e2 = (@EMPTY (cart R _696444)))))))))). +Axiom thm_CONNECTED_CLOSED_IN : forall {_696509 : Type'}, forall s : (cart R _696509) -> Prop, (@connected _696509 s) = (~ (exists e1 : (cart R _696509) -> Prop, exists e2 : (cart R _696509) -> Prop, (@closed_in (cart R _696509) (@subtopology (cart R _696509) (@euclidean _696509) s) e1) /\ ((@closed_in (cart R _696509) (@subtopology (cart R _696509) (@euclidean _696509) s) e2) /\ ((@SUBSET (cart R _696509) s (@UNION (cart R _696509) e1 e2)) /\ (((@INTER (cart R _696509) e1 e2) = (@EMPTY (cart R _696509))) /\ ((~ (e1 = (@EMPTY (cart R _696509)))) /\ (~ (e2 = (@EMPTY (cart R _696509)))))))))). +Axiom thm_CONNECTED_CLOSED_IN_EQ : forall {_696574 : Type'}, forall s : (cart R _696574) -> Prop, (@connected _696574 s) = (~ (exists e1 : (cart R _696574) -> Prop, exists e2 : (cart R _696574) -> Prop, (@closed_in (cart R _696574) (@subtopology (cart R _696574) (@euclidean _696574) s) e1) /\ ((@closed_in (cart R _696574) (@subtopology (cart R _696574) (@euclidean _696574) s) e2) /\ (((@UNION (cart R _696574) e1 e2) = s) /\ (((@INTER (cart R _696574) e1 e2) = (@EMPTY (cart R _696574))) /\ ((~ (e1 = (@EMPTY (cart R _696574)))) /\ (~ (e2 = (@EMPTY (cart R _696574)))))))))). +Axiom thm_CONNECTED_CLOPEN : forall {_696639 : Type'}, forall s : (cart R _696639) -> Prop, (@connected _696639 s) = (forall t : (cart R _696639) -> Prop, ((@open_in (cart R _696639) (@subtopology (cart R _696639) (@euclidean _696639) s) t) /\ (@closed_in (cart R _696639) (@subtopology (cart R _696639) (@euclidean _696639) s) t)) -> (t = (@EMPTY (cart R _696639))) \/ (t = s)). +Axiom thm_CONNECTED_CLOSED_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> (@connected N' s) = (~ (exists e1 : (cart R N') -> Prop, exists e2 : (cart R N') -> Prop, (@closed N' e1) /\ ((@closed N' e2) /\ ((~ (e1 = (@EMPTY (cart R N')))) /\ ((~ (e2 = (@EMPTY (cart R N')))) /\ (((@UNION (cart R N') e1 e2) = s) /\ ((@INTER (cart R N') e1 e2) = (@EMPTY (cart R N'))))))))). +Axiom thm_CONNECTED_OPEN_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> (@connected N' s) = (~ (exists e1 : (cart R N') -> Prop, exists e2 : (cart R N') -> Prop, (@_open N' e1) /\ ((@_open N' e2) /\ ((~ (e1 = (@EMPTY (cart R N')))) /\ ((~ (e2 = (@EMPTY (cart R N')))) /\ (((@UNION (cart R N') e1 e2) = s) /\ ((@INTER (cart R N') e1 e2) = (@EMPTY (cart R N'))))))))). +Axiom thm_CONNECTED_IFF_CONNECTABLE_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) = (forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a s) /\ (@IN (cart R N') b s)) -> exists t : (cart R N') -> Prop, (@connected N' t) /\ ((@SUBSET (cart R N') t s) /\ ((@IN (cart R N') a t) /\ (@IN (cart R N') b t)))). +Axiom thm_CONNECTED_EMPTY : forall {_696839 : Type'}, @connected _696839 (@EMPTY (cart R _696839)). +Axiom thm_CONNECTED_SING : forall {_696847 : Type'}, forall a : cart R _696847, @connected _696847 (@INSERT (cart R _696847) a (@EMPTY (cart R _696847))). +Axiom thm_CONNECTED_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @connected N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', @connected N' (@open_segment N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_CONNECTED_UNIV : forall {N' : Type'}, @connected N' (@UNIV (cart R N')). +Axiom thm_CLOPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closed N' s) /\ (@_open N' s)) = ((s = (@EMPTY (cart R N'))) \/ (s = (@UNIV (cart R N')))). +Axiom thm_CONNECTED_UNIONS : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s P) -> @connected N' s) /\ (~ ((@INTERS (cart R N') P) = (@EMPTY (cart R N'))))) -> @connected N' (@UNIONS (cart R N') P). +Axiom thm_CONNECTED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@connected N' t) /\ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))))) -> @connected N' (@UNION (cart R N') s t). +Axiom thm_CONNECTED_DIFF_OPEN_FROM_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@SUBSET (cart R N') s t) /\ ((@SUBSET (cart R N') t u) /\ ((@_open N' s) /\ ((@closed N' t) /\ ((@connected N' u) /\ (@connected N' (@DIFF (cart R N') t s))))))) -> @connected N' (@DIFF (cart R N') u s). +Axiom thm_CONNECTED_DISJOINT_UNIONS_OPEN_UNIQUE : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall f' : ((cart R N') -> Prop) -> Prop, ((@pairwise ((cart R N') -> Prop) (@DISJOINT (cart R N')) f) /\ ((@pairwise ((cart R N') -> Prop) (@DISJOINT (cart R N')) f') /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@_open N' s) /\ ((@connected N' s) /\ (~ (s = (@EMPTY (cart R N')))))) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f') -> (@_open N' s) /\ ((@connected N' s) /\ (~ (s = (@EMPTY (cart R N')))))) /\ ((@UNIONS (cart R N') f) = (@UNIONS (cart R N') f')))))) -> f = f'. +Axiom thm_CONNECTED_FROM_CLOSED_UNION_AND_INTER_LOCAL : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@connected N' (@UNION (cart R N') s t)) /\ (@connected N' (@INTER (cart R N') s t))))) -> (@connected N' s) /\ (@connected N' t). +Axiom thm_CONNECTED_FROM_OPEN_UNION_AND_INTER_LOCAL : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@connected N' (@UNION (cart R N') s t)) /\ (@connected N' (@INTER (cart R N') s t))))) -> (@connected N' s) /\ (@connected N' t). +Axiom thm_CONNECTED_FROM_CLOSED_UNION_AND_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ ((@connected N' (@UNION (cart R N') s t)) /\ (@connected N' (@INTER (cart R N') s t))))) -> (@connected N' s) /\ (@connected N' t). +Axiom thm_CONNECTED_FROM_OPEN_UNION_AND_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@_open N' s) /\ ((@_open N' t) /\ ((@connected N' (@UNION (cart R N') s t)) /\ (@connected N' (@INTER (cart R N') s t))))) -> (@connected N' s) /\ (@connected N' t). +Axiom thm_CONNECTED_INDUCTION : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall Q : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@connected N' s) /\ ((forall t : (cart R N') -> Prop, forall a : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@IN (cart R N') a t)) -> exists z : cart R N', (@IN (cart R N') z t) /\ (P z)) /\ (forall a : cart R N', (@IN (cart R N') a s) -> exists t : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ ((@IN (cart R N') a t) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x t) /\ ((@IN (cart R N') y t) /\ ((P x) /\ ((P y) /\ (Q x))))) -> Q y))))) -> forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ ((P a) /\ ((P b) /\ (Q a))))) -> Q b. +Axiom thm_CONNECTED_EQUIVALENCE_RELATION_GEN : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall R' : (cart R N') -> (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@connected N' s) /\ ((forall x : cart R N', forall y : cart R N', (R' x y) -> R' y x) /\ ((forall x : cart R N', forall y : cart R N', forall z : cart R N', ((R' x y) /\ (R' y z)) -> R' x z) /\ ((forall t : (cart R N') -> Prop, forall a : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@IN (cart R N') a t)) -> exists z : cart R N', (@IN (cart R N') z t) /\ (P z)) /\ (forall a : cart R N', (@IN (cart R N') a s) -> exists t : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ ((@IN (cart R N') a t) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x t) /\ ((@IN (cart R N') y t) /\ ((P x) /\ (P y)))) -> R' x y))))))) -> forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ ((P a) /\ (P b)))) -> R' a b. +Axiom thm_CONNECTED_INDUCTION_SIMPLE : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@connected N' s) /\ (forall a : cart R N', (@IN (cart R N') a s) -> exists t : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ ((@IN (cart R N') a t) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x t) /\ ((@IN (cart R N') y t) /\ (P x))) -> P y)))) -> forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (P a))) -> P b. +Axiom thm_CONNECTED_EQUIVALENCE_RELATION : forall {N' : Type'}, forall R' : (cart R N') -> (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@connected N' s) /\ ((forall x : cart R N', forall y : cart R N', (R' x y) -> R' y x) /\ ((forall x : cart R N', forall y : cart R N', forall z : cart R N', ((R' x y) /\ (R' y z)) -> R' x z) /\ (forall a : cart R N', (@IN (cart R N') a s) -> exists t : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ ((@IN (cart R N') a t) /\ (forall x : cart R N', (@IN (cart R N') x t) -> R' a x)))))) -> forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a s) /\ (@IN (cart R N') b s)) -> R' a b. +Axiom thm_LOCALLY_CONSTANT_IMP_CONSTANT : forall {A N' : Type'}, forall f : (cart R N') -> A, forall s : (cart R N') -> Prop, ((@connected N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@IN (cart R N') x u) /\ (forall x' : cart R N', (@IN (cart R N') x' u) -> (f x') = (f x))))) -> exists c : A, forall x : cart R N', (@IN (cart R N') x s) -> (f x) = c. +Axiom thm_limit_point_of : forall {_698817 : Type'}, forall x : cart R _698817, forall s : (cart R _698817) -> Prop, (@limit_point_of _698817 x s) = (forall t : (cart R _698817) -> Prop, ((@IN (cart R _698817) x t) /\ (@_open _698817 t)) -> exists y : cart R _698817, (~ (y = x)) /\ ((@IN (cart R _698817) y s) /\ (@IN (cart R _698817) y t))). +Axiom thm_EUCLIDEAN_DERIVED_SET_OF_IFF_LIMIT_POINT_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@derived_set_of (cart R N') (@euclidean N') s) = (@GSPEC (cart R N') (fun GEN_PVAR_2722 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2722 (@limit_point_of N' x s) x)). +Axiom thm_LIMIT_POINT_IN_DERIVED_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@limit_point_of N' x s) = (@IN (cart R N') x (@derived_set_of (cart R N') (@euclidean N') s)). +Axiom thm_LIMPT_SUBSET : forall {_698914 : Type'}, forall x : cart R _698914, forall s : (cart R _698914) -> Prop, forall t : (cart R _698914) -> Prop, ((@limit_point_of _698914 x s) /\ (@SUBSET (cart R _698914) s t)) -> @limit_point_of _698914 x t. +Axiom thm_LIMPT_APPROACHABLE : forall {_698934 : Type'}, forall x : cart R _698934, forall s : (cart R _698934) -> Prop, (@limit_point_of _698934 x s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists x' : cart R _698934, (@IN (cart R _698934) x' s) /\ ((~ (x' = x)) /\ (Rlt (@distance _698934 (@pair (cart R _698934) (cart R _698934) x' x)) e))). +Axiom thm_LIMPT_APPROACHABLE_LE : forall {_699007 : Type'}, forall x : cart R _699007, forall s : (cart R _699007) -> Prop, (@limit_point_of _699007 x s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists x' : cart R _699007, (@IN (cart R _699007) x' s) /\ ((~ (x' = x)) /\ (Rle (@distance _699007 (@pair (cart R _699007) (cart R _699007) x' x)) e))). +Axiom thm_DISCRETE_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@GSPEC (cart R N') (fun GEN_PVAR_2723 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2723 ((@IN (cart R N') x t) /\ (@limit_point_of N' x s)) x)) = (@EMPTY (cart R N'))) = (forall x : cart R N', (@IN (cart R N') x t) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall y : cart R N', ((@IN (cart R N') y s) /\ (~ (y = x))) -> Rle e (@vector_norm N' (@vector_sub N' y x)))). +Axiom thm_CLOSED_LIMPT : forall {_699139 : Type'}, forall s : (cart R _699139) -> Prop, (@closed _699139 s) = (forall x : cart R _699139, (@limit_point_of _699139 x s) -> @IN (cart R _699139) x s). +Axiom thm_LIMPT_EMPTY : forall {_699160 : Type'}, forall x : cart R _699160, ~ (@limit_point_of _699160 x (@EMPTY (cart R _699160))). +Axiom thm_NO_LIMIT_POINT_IMP_CLOSED : forall {_699176 : Type'}, forall s : (cart R _699176) -> Prop, (~ (exists x : cart R _699176, @limit_point_of _699176 x s)) -> @closed _699176 s. +Axiom thm_CLOSED_POSITIVE_ORTHANT : forall {N' : Type'}, @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2724 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2724 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' x i)) x)). +Axiom thm_FINITE_SET_AVOID : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', ((@IN (cart R N') x s) /\ (~ (x = a))) -> Rle d (@distance N' (@pair (cart R N') (cart R N') a x))). +Axiom thm_LIMIT_POINT_FINITE : forall {_699406 : Type'}, forall s : (cart R _699406) -> Prop, forall a : cart R _699406, (@FINITE (cart R _699406) s) -> ~ (@limit_point_of _699406 a s). +Axiom thm_LIMPT_SING : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', ~ (@limit_point_of N' x (@INSERT (cart R N') y (@EMPTY (cart R N')))). +Axiom thm_LIMIT_POINT_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', (@limit_point_of N' x (@UNION (cart R N') s t)) = ((@limit_point_of N' x s) \/ (@limit_point_of N' x t)). +Axiom thm_LIMPT_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', (@limit_point_of N' x (@INSERT (cart R N') y s)) = (@limit_point_of N' x s). +Axiom thm_LIMPT_DELETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall x : cart R N', (@limit_point_of N' x (@DELETE (cart R N') s a)) = (@limit_point_of N' x s). +Axiom thm_LIMIT_POINT_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall x : cart R N', (@FINITE ((cart R N') -> Prop) f) -> (@limit_point_of N' x (@UNIONS (cart R N') f)) = (exists s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) /\ (@limit_point_of N' x s)). +Axiom thm_LIMPT_OF_LIMPTS : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@limit_point_of N' x (@GSPEC (cart R N') (fun GEN_PVAR_2725 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2725 (@limit_point_of N' y s) y))) -> @limit_point_of N' x s. +Axiom thm_CLOSED_LIMPTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2726 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2726 (@limit_point_of N' x s) x)). +Axiom thm_DISCRETE_IMP_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (Rlt (@vector_norm N' (@vector_sub N' y x)) e))) -> y = x)) -> @closed N' s. +Axiom thm_LIMPT_OF_UNIV : forall {N' : Type'}, forall x : cart R N', @limit_point_of N' x (@UNIV (cart R N')). +Axiom thm_LIMPT_OF_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ ((@limit_point_of N' x s) /\ (@IN (cart R N') x t))) -> @limit_point_of N' x t. +Axiom thm_LIMPT_OF_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@_open N' s) /\ (@IN (cart R N') x s)) -> @limit_point_of N' x s. +Axiom thm_OPEN_IN_SING : forall {_699843 : Type'}, forall s : (cart R _699843) -> Prop, forall a : cart R _699843, (@open_in (cart R _699843) (@subtopology (cart R _699843) (@euclidean _699843) s) (@INSERT (cart R _699843) a (@EMPTY (cart R _699843)))) = ((@IN (cart R _699843) a s) /\ (~ (@limit_point_of _699843 a s))). +Axiom thm_CLOSED_SING : forall {N' : Type'}, forall a : cart R N', @closed N' (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_CLOSED_IN_SING : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall x : cart R N', (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) (@INSERT (cart R N') x (@EMPTY (cart R N')))) = (@IN (cart R N') x u). +Axiom thm_CLOSED_IN_INSERT : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall a : cart R N', ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@IN (cart R N') a u)) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) (@INSERT (cart R N') a s). +Axiom thm_LIMIT_POINT_OF_LOCAL_IMP : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', ((@SUBSET (cart R N') s u) /\ ((@limit_point_of N' x s) /\ ((@IN (cart R N') x t) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t)))) -> exists y : cart R N', (~ (y = x)) /\ ((@IN (cart R N') y s) /\ (@IN (cart R N') y t)). +Axiom thm_LIMIT_POINT_OF_LOCAL : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall x : cart R N', ((@SUBSET (cart R N') s u) /\ (@IN (cart R N') x u)) -> (@limit_point_of N' x s) = (forall t : (cart R N') -> Prop, ((@IN (cart R N') x t) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t)) -> exists y : cart R N', (~ (y = x)) /\ ((@IN (cart R N') y s) /\ (@IN (cart R N') y t))). +Axiom thm_interior : forall {_700106 : Type'}, forall s : (cart R _700106) -> Prop, (@interior _700106 s) = (@GSPEC (cart R _700106) (fun GEN_PVAR_2727 : cart R _700106 => exists x : cart R _700106, @SETSPEC (cart R _700106) GEN_PVAR_2727 (exists t : (cart R _700106) -> Prop, (@_open _700106 t) /\ ((@IN (cart R _700106) x t) /\ (@SUBSET (cart R _700106) t s))) x)). +Axiom thm_EUCLIDEAN_INTERIOR_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@interior_of (cart R N') (@euclidean N') s) = (@interior N' s). +Axiom thm_INTERIOR_EQ : forall {_700140 : Type'}, forall s : (cart R _700140) -> Prop, ((@interior _700140 s) = s) = (@_open _700140 s). +Axiom thm_INTERIOR_OPEN : forall {_700151 : Type'}, forall s : (cart R _700151) -> Prop, (@_open _700151 s) -> (@interior _700151 s) = s. +Axiom thm_INTERIOR_EMPTY : forall {_700162 : Type'}, (@interior _700162 (@EMPTY (cart R _700162))) = (@EMPTY (cart R _700162)). +Axiom thm_INTERIOR_UNIV : forall {N' : Type'}, (@interior N' (@UNIV (cart R N'))) = (@UNIV (cart R N')). +Axiom thm_OPEN_INTERIOR : forall {_700181 : Type'}, forall s : (cart R _700181) -> Prop, @_open _700181 (@interior _700181 s). +Axiom thm_INTERIOR_INTERIOR : forall {_700195 : Type'}, forall s : (cart R _700195) -> Prop, (@interior _700195 (@interior _700195 s)) = (@interior _700195 s). +Axiom thm_INTERIOR_SUBSET : forall {_700205 : Type'}, forall s : (cart R _700205) -> Prop, @SUBSET (cart R _700205) (@interior _700205 s) s. +Axiom thm_SUBSET_INTERIOR_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@SUBSET (cart R N') s (@interior N' s)) = (@_open N' s). +Axiom thm_SUBSET_INTERIOR : forall {_700240 : Type'}, forall s : (cart R _700240) -> Prop, forall t : (cart R _700240) -> Prop, (@SUBSET (cart R _700240) s t) -> @SUBSET (cart R _700240) (@interior _700240 s) (@interior _700240 t). +Axiom thm_INTERIOR_MAXIMAL : forall {_700263 : Type'}, forall s : (cart R _700263) -> Prop, forall t : (cart R _700263) -> Prop, ((@SUBSET (cart R _700263) t s) /\ (@_open _700263 t)) -> @SUBSET (cart R _700263) t (@interior _700263 s). +Axiom thm_INTERIOR_MAXIMAL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@_open N' s) -> (@SUBSET (cart R N') s (@interior N' t)) = (@SUBSET (cart R N') s t). +Axiom thm_INTERIOR_UNIQUE : forall {_700327 : Type'}, forall s : (cart R _700327) -> Prop, forall t : (cart R _700327) -> Prop, ((@SUBSET (cart R _700327) t s) /\ ((@_open _700327 t) /\ (forall t' : (cart R _700327) -> Prop, ((@SUBSET (cart R _700327) t' s) /\ (@_open _700327 t')) -> @SUBSET (cart R _700327) t' t))) -> (@interior _700327 s) = t. +Axiom thm_INTERIOR_EQ_UNIV : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@interior N' s) = (@UNIV (cart R N'))) = (s = (@UNIV (cart R N'))). +Axiom thm_IN_INTERIOR : forall {_700371 : Type'}, forall x : cart R _700371, forall s : (cart R _700371) -> Prop, (@IN (cart R _700371) x (@interior _700371 s)) = (exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET (cart R _700371) (@ball _700371 (@pair (cart R _700371) R x e)) s)). +Axiom thm_INTERIOR_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@interior N' (@INTER (cart R N') s t)) = (@INTER (cart R N') (@interior N' s) (@interior N' t)). +Axiom thm_INTERIOR_FINITE_INTERS : forall {N' : Type'}, forall s : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) s) -> (@interior N' (@INTERS (cart R N') s)) = (@INTERS (cart R N') (@IMAGE ((cart R N') -> Prop) ((cart R N') -> Prop) (@interior N') s)). +Axiom thm_INTERIOR_INTERS_SUBSET : forall {_700457 : Type'}, forall f : ((cart R _700457) -> Prop) -> Prop, @SUBSET (cart R _700457) (@interior _700457 (@INTERS (cart R _700457) f)) (@INTERS (cart R _700457) (@IMAGE ((cart R _700457) -> Prop) ((cart R _700457) -> Prop) (@interior _700457) f)). +Axiom thm_UNION_INTERIOR_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, @SUBSET (cart R N') (@UNION (cart R N') (@interior N' s) (@interior N' t)) (@interior N' (@UNION (cart R N') s t)). +Axiom thm_INTERIOR_EQ_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@interior N' s) = (@EMPTY (cart R N'))) = (forall t : (cart R N') -> Prop, ((@_open N' t) /\ (@SUBSET (cart R N') t s)) -> t = (@EMPTY (cart R N'))). +Axiom thm_INTERIOR_EQ_EMPTY_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@interior N' s) = (@EMPTY (cart R N'))) = (forall t : (cart R N') -> Prop, ((@_open N' t) /\ (~ (t = (@EMPTY (cart R N'))))) -> ~ ((@DIFF (cart R N') t s) = (@EMPTY (cart R N')))). +Axiom thm_INTERIOR_LIMIT_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@IN (cart R N') x (@interior N' s)) -> @limit_point_of N' x s. +Axiom thm_INTERIOR_SING : forall {N' : Type'}, forall a : cart R N', (@interior N' (@INSERT (cart R N') a (@EMPTY (cart R N')))) = (@EMPTY (cart R N')). +Axiom thm_INTERIOR_CLOSED_UNION_EMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@interior N' t) = (@EMPTY (cart R N')))) -> (@interior N' (@UNION (cart R N') s t)) = (@interior N' s). +Axiom thm_INTERIOR_UNION_EQ_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) \/ (@closed N' t)) -> ((@interior N' (@UNION (cart R N') s t)) = (@EMPTY (cart R N'))) = (((@interior N' s) = (@EMPTY (cart R N'))) /\ ((@interior N' t) = (@EMPTY (cart R N')))). +Axiom thm_INTERIOR_UNIONS_OPEN_SUBSETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_2728 : (cart R N') -> Prop => exists t : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_2728 ((@_open N' t) /\ (@SUBSET (cart R N') t s)) t))) = (@interior N' s). +Axiom thm_closure : forall {_700740 : Type'}, forall s : (cart R _700740) -> Prop, (@closure _700740 s) = (@UNION (cart R _700740) s (@GSPEC (cart R _700740) (fun GEN_PVAR_2729 : cart R _700740 => exists x : cart R _700740, @SETSPEC (cart R _700740) GEN_PVAR_2729 (@limit_point_of _700740 x s) x))). +Axiom thm_EUCLIDEAN_CLOSURE_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closure_of (cart R N') (@euclidean N') s) = (@closure N' s). +Axiom thm_CLOSURE_APPROACHABLE : forall {_700770 : Type'}, forall x : cart R _700770, forall s : (cart R _700770) -> Prop, (@IN (cart R _700770) x (@closure _700770 s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists y : cart R _700770, (@IN (cart R _700770) y s) /\ (Rlt (@distance _700770 (@pair (cart R _700770) (cart R _700770) y x)) e)). +Axiom thm_CLOSURE_NONEMPTY_OPEN_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@IN (cart R N') x (@closure N' s)) = (forall t : (cart R N') -> Prop, ((@IN (cart R N') x t) /\ (@_open N' t)) -> ~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))). +Axiom thm_CLOSURE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closure N' s) = (@DIFF (cart R N') (@UNIV (cart R N')) (@interior N' (@DIFF (cart R N') (@UNIV (cart R N')) s))). +Axiom thm_INTERIOR_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@interior N' s) = (@DIFF (cart R N') (@UNIV (cart R N')) (@closure N' (@DIFF (cart R N') (@UNIV (cart R N')) s))). +Axiom thm_CLOSED_CLOSURE : forall {_700887 : Type'}, forall s : (cart R _700887) -> Prop, @closed _700887 (@closure _700887 s). +Axiom thm_CLOSURE_HULL : forall {_700901 : Type'}, forall s : (cart R _700901) -> Prop, (@closure _700901 s) = (@hull (cart R _700901) (@closed _700901) s). +Axiom thm_CLOSURE_EQ : forall {_700913 : Type'}, forall s : (cart R _700913) -> Prop, ((@closure _700913 s) = s) = (@closed _700913 s). +Axiom thm_CLOSURE_CLOSED : forall {_700924 : Type'}, forall s : (cart R _700924) -> Prop, (@closed _700924 s) -> (@closure _700924 s) = s. +Axiom thm_CLOSURE_CLOSURE : forall {_700943 : Type'}, forall s : (cart R _700943) -> Prop, (@closure _700943 (@closure _700943 s)) = (@closure _700943 s). +Axiom thm_CLOSURE_SUBSET : forall {_700953 : Type'}, forall s : (cart R _700953) -> Prop, @SUBSET (cart R _700953) s (@closure _700953 s). +Axiom thm_CLOSURE_INC : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@IN (cart R N') x s) -> @IN (cart R N') x (@closure N' s). +Axiom thm_SUBSET_CLOSURE : forall {_700993 : Type'}, forall s : (cart R _700993) -> Prop, forall t : (cart R _700993) -> Prop, (@SUBSET (cart R _700993) s t) -> @SUBSET (cart R _700993) (@closure _700993 s) (@closure _700993 t). +Axiom thm_CLOSURE_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@closure N' (@UNION (cart R N') s t)) = (@UNION (cart R N') (@closure N' s) (@closure N' t)). +Axiom thm_CLOSURE_UNIONS_SUBSET : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, @SUBSET (cart R N') (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_2730 : (cart R N') -> Prop => exists s : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_2730 (@IN ((cart R N') -> Prop) s f) (@closure N' s)))) (@closure N' (@UNIONS (cart R N') f)). +Axiom thm_CLOSURE_INTER_SUBSET : forall {_701072 : Type'}, forall s : (cart R _701072) -> Prop, forall t : (cart R _701072) -> Prop, @SUBSET (cart R _701072) (@closure _701072 (@INTER (cart R _701072) s t)) (@INTER (cart R _701072) (@closure _701072 s) (@closure _701072 t)). +Axiom thm_CLOSURE_INTERS_SUBSET : forall {_701111 : Type'}, forall f : ((cart R _701111) -> Prop) -> Prop, @SUBSET (cart R _701111) (@closure _701111 (@INTERS (cart R _701111) f)) (@INTERS (cart R _701111) (@IMAGE ((cart R _701111) -> Prop) ((cart R _701111) -> Prop) (@closure _701111) f)). +Axiom thm_CLOSURE_MINIMAL : forall {_701134 : Type'}, forall s : (cart R _701134) -> Prop, forall t : (cart R _701134) -> Prop, ((@SUBSET (cart R _701134) s t) /\ (@closed _701134 t)) -> @SUBSET (cart R _701134) (@closure _701134 s) t. +Axiom thm_CLOSURE_MINIMAL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@closed N' t) -> (@SUBSET (cart R N') (@closure N' s) t) = (@SUBSET (cart R N') s t). +Axiom thm_CLOSURE_UNIQUE : forall {_701198 : Type'}, forall s : (cart R _701198) -> Prop, forall t : (cart R _701198) -> Prop, ((@SUBSET (cart R _701198) s t) /\ ((@closed _701198 t) /\ (forall t' : (cart R _701198) -> Prop, ((@SUBSET (cart R _701198) s t') /\ (@closed _701198 t')) -> @SUBSET (cart R _701198) t t'))) -> (@closure _701198 s) = t. +Axiom thm_CLOSURE_EMPTY : forall {_701204 : Type'}, (@closure _701204 (@EMPTY (cart R _701204))) = (@EMPTY (cart R _701204)). +Axiom thm_CLOSURE_UNIV : forall {N' : Type'}, (@closure N' (@UNIV (cart R N'))) = (@UNIV (cart R N')). +Axiom thm_LIMPT_OF_OPEN_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@_open N' s) /\ (@IN (cart R N') x (@closure N' s))) -> @limit_point_of N' x s. +Axiom thm_CLOSURE_UNIONS : forall {_701337 : Type'}, forall f : ((cart R _701337) -> Prop) -> Prop, (@FINITE ((cart R _701337) -> Prop) f) -> (@closure _701337 (@UNIONS (cart R _701337) f)) = (@UNIONS (cart R _701337) (@GSPEC ((cart R _701337) -> Prop) (fun GEN_PVAR_2734 : (cart R _701337) -> Prop => exists s : (cart R _701337) -> Prop, @SETSPEC ((cart R _701337) -> Prop) GEN_PVAR_2734 (@IN ((cart R _701337) -> Prop) s f) (@closure _701337 s)))). +Axiom thm_CLOSURE_EQ_EMPTY : forall {_701365 : Type'}, forall s : (cart R _701365) -> Prop, ((@closure _701365 s) = (@EMPTY (cart R _701365))) = (s = (@EMPTY (cart R _701365))). +Axiom thm_CLOSURE_SUBSET_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@SUBSET (cart R N') (@closure N' s) s) = (@closed N' s). +Axiom thm_OPEN_INTER_CLOSURE_EQ_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@_open N' s) -> ((@INTER (cart R N') s (@closure N' t)) = (@EMPTY (cart R N'))) = ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))). +Axiom thm_CLOSURE_MINIMAL_LOCAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@SUBSET (cart R N') t u)) -> @SUBSET (cart R N') (@INTER (cart R N') s (@closure N' t)) u. +Axiom thm_CLOSURE_OPEN_IN_INTER_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@SUBSET (cart R N') t u)) -> (@closure N' (@INTER (cart R N') s (@closure N' t))) = (@closure N' (@INTER (cart R N') s t)). +Axiom thm_OPEN_IN_INTER_CLOSURE_EQ_EMPTY : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@SUBSET (cart R N') t u)) -> ((@INTER (cart R N') s (@closure N' t)) = (@EMPTY (cart R N'))) = ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))). +Axiom thm_CLOSURE_OPEN_INTER_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@_open N' s) -> (@closure N' (@INTER (cart R N') s (@closure N' t))) = (@closure N' (@INTER (cart R N') s t)). +Axiom thm_OPEN_INTER_CLOSURE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@_open N' s) -> @SUBSET (cart R N') (@INTER (cart R N') s (@closure N' t)) (@closure N' (@INTER (cart R N') s t)). +Axiom thm_OPEN_INTER_CLOSURE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@_open N' s) -> (@INTER (cart R N') s (@closure N' t)) = (@INTER (cart R N') s (@closure N' (@INTER (cart R N') s t))). +Axiom thm_CLOSURE_OPEN_INTER_SUPERSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@_open N' s) /\ (@SUBSET (cart R N') s (@closure N' t))) -> (@closure N' (@INTER (cart R N') s t)) = (@closure N' s). +Axiom thm_CLOSURE_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closure N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) = (@DIFF (cart R N') (@UNIV (cart R N')) (@interior N' s)). +Axiom thm_INTERIOR_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@interior N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) = (@DIFF (cart R N') (@UNIV (cart R N')) (@closure N' s)). +Axiom thm_CLOSURE_LOCALLY_FINITE_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, (@locally_finite_in (cart R N') (@euclidean N') f) -> (@closure N' (@UNIONS (cart R N') f)) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_2735 : (cart R N') -> Prop => exists s : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_2735 (@IN ((cart R N') -> Prop) s f) (@closure N' s)))). +Axiom thm_CONNECTED_INTERMEDIATE_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@SUBSET (cart R N') s t) /\ (@SUBSET (cart R N') t (@closure N' s)))) -> @connected N' t. +Axiom thm_CONNECTED_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) -> @connected N' (@closure N' s). +Axiom thm_CONNECTED_UNION_STRONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@connected N' t) /\ (~ ((@INTER (cart R N') (@closure N' s) t) = (@EMPTY (cart R N')))))) -> @connected N' (@UNION (cart R N') s t). +Axiom thm_CONNECTED_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@connected N' s) -> (@connected N' (@INSERT (cart R N') a s)) = ((s = (@EMPTY (cart R N'))) \/ (@IN (cart R N') a (@closure N' s))). +Axiom thm_CONNECTED_INSERT_LIMPT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@connected N' s) /\ (@limit_point_of N' a s)) -> @connected N' (@INSERT (cart R N') a s). +Axiom thm_INTERIOR_DIFF : forall {_701970 : Type'}, forall s : (cart R _701970) -> Prop, forall t : (cart R _701970) -> Prop, (@interior _701970 (@DIFF (cart R _701970) s t)) = (@DIFF (cart R _701970) (@interior _701970 s) (@closure _701970 t)). +Axiom thm_LIMPT_OF_CLOSURE : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@limit_point_of N' x (@closure N' s)) = (@limit_point_of N' x s). +Axiom thm_PERFECT_FROM_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (forall x : cart R N', (@IN (cart R N') x (@closure N' s)) -> @limit_point_of N' x (@closure N' s)) -> forall x : cart R N', (@IN (cart R N') x s) -> @limit_point_of N' x s. +Axiom thm_DENSE_IMP_PERFECT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closure N' s) = (@UNIV (cart R N'))) -> forall x : cart R N', (@IN (cart R N') x s) -> @limit_point_of N' x s. +Axiom thm_CLOSED_IN_LIMPT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) = ((@SUBSET (cart R N') s t) /\ (forall x : cart R N', ((@limit_point_of N' x s) /\ (@IN (cart R N') x t)) -> @IN (cart R N') x s)). +Axiom thm_CLOSED_IN_INTER_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) = ((@INTER (cart R N') s (@closure N' t)) = t). +Axiom thm_INTERIOR_CLOSURE_IDEMP : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@interior N' (@closure N' (@interior N' (@closure N' s)))) = (@interior N' (@closure N' s)). +Axiom thm_CLOSURE_INTERIOR_IDEMP : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closure N' (@interior N' (@closure N' (@interior N' s)))) = (@closure N' (@interior N' s)). +Axiom thm_NOWHERE_DENSE_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@interior N' (@closure N' (@UNION (cart R N') s t))) = (@EMPTY (cart R N'))) = (((@interior N' (@closure N' s)) = (@EMPTY (cart R N'))) /\ ((@interior N' (@closure N' t)) = (@EMPTY (cart R N')))). +Axiom thm_NOWHERE_DENSE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@interior N' (@closure N' s)) = (@EMPTY (cart R N'))) = (forall t : (cart R N') -> Prop, ((@_open N' t) /\ (~ (t = (@EMPTY (cart R N'))))) -> exists u : (cart R N') -> Prop, (@_open N' u) /\ ((~ (u = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') u t) /\ ((@INTER (cart R N') u s) = (@EMPTY (cart R N')))))). +Axiom thm_INTERIOR_CLOSURE_INTER_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@_open N' s) /\ (@_open N' t)) -> (@interior N' (@closure N' (@INTER (cart R N') s t))) = (@INTER (cart R N') (@interior N' (@closure N' s)) (@interior N' (@closure N' t))). +Axiom thm_CLOSURE_INTERIOR_UNION_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ (@closed N' t)) -> (@closure N' (@interior N' (@UNION (cart R N') s t))) = (@UNION (cart R N') (@closure N' (@interior N' s)) (@closure N' (@interior N' t))). +Axiom thm_REGULAR_OPEN_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (((@interior N' (@closure N' s)) = s) /\ ((@interior N' (@closure N' t)) = t)) -> (@interior N' (@closure N' (@INTER (cart R N') s t))) = (@INTER (cart R N') s t). +Axiom thm_REGULAR_CLOSED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (((@closure N' (@interior N' s)) = s) /\ ((@closure N' (@interior N' t)) = t)) -> (@closure N' (@interior N' (@UNION (cart R N') s t))) = (@UNION (cart R N') s t). +Axiom thm_REGULAR_CLOSED_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> (@closure N' (@interior N' t)) = t)) -> (@closure N' (@interior N' (@UNIONS (cart R N') f))) = (@UNIONS (cart R N') f). +Axiom thm_DIFF_CLOSURE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, @SUBSET (cart R N') (@DIFF (cart R N') (@closure N' s) (@closure N' t)) (@closure N' (@DIFF (cart R N') s t)). +Axiom thm_DENSE_OPEN_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, (((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@SUBSET (cart R N') t u)) \/ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ (@SUBSET (cart R N') s u))) -> (@SUBSET (cart R N') u (@closure N' (@INTER (cart R N') s t))) = ((@SUBSET (cart R N') u (@closure N' s)) /\ (@SUBSET (cart R N') u (@closure N' t))). +Axiom thm_DENSE_OPEN_INTERS : forall {N' : Type'}, forall g : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((@FINITE ((cart R N') -> Prop) g) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t g) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@SUBSET (cart R N') s (@closure N' t)))) -> @SUBSET (cart R N') s (@closure N' (@INTERS (cart R N') g)). +Axiom thm_SEPARATION_CLOSED_IN_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (((@INTER (cart R N') s (@closure N' t)) = (@EMPTY (cart R N'))) /\ ((@INTER (cart R N') t (@closure N' s)) = (@EMPTY (cart R N')))) = ((@DISJOINT (cart R N') s t) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t))). +Axiom thm_SEPARATION_OPEN_IN_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (((@INTER (cart R N') s (@closure N' t)) = (@EMPTY (cart R N'))) /\ ((@INTER (cart R N') t (@closure N' s)) = (@EMPTY (cart R N')))) = ((@DISJOINT (cart R N') s t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t))). +Axiom thm_CONNECTED_SEPARATION_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) = (~ (exists c1 : (cart R N') -> Prop, exists c2 : (cart R N') -> Prop, (@SUBSET (cart R N') s (@UNION (cart R N') c1 c2)) /\ ((~ ((@INTER (cart R N') c1 s) = (@EMPTY (cart R N')))) /\ ((~ ((@INTER (cart R N') c2 s) = (@EMPTY (cart R N')))) /\ (((@INTER (cart R N') c1 (@closure N' c2)) = (@EMPTY (cart R N'))) /\ ((@INTER (cart R N') c2 (@closure N' c1)) = (@EMPTY (cart R N')))))))). +Axiom thm_CONNECTED_SEPARATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) = (~ (exists c1 : (cart R N') -> Prop, exists c2 : (cart R N') -> Prop, ((@UNION (cart R N') c1 c2) = s) /\ ((~ (c1 = (@EMPTY (cart R N')))) /\ ((~ (c2 = (@EMPTY (cart R N')))) /\ (((@INTER (cart R N') c1 (@closure N' c2)) = (@EMPTY (cart R N'))) /\ ((@INTER (cart R N') c2 (@closure N' c1)) = (@EMPTY (cart R N')))))))). +Axiom thm_frontier : forall {_703071 : Type'}, forall s : (cart R _703071) -> Prop, (@frontier _703071 s) = (@DIFF (cart R _703071) (@closure _703071 s) (@interior _703071 s)). +Axiom thm_EUCLIDEAN_FRONTIER_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@frontier_of (cart R N') (@euclidean N') s) = (@frontier N' s). +Axiom thm_FRONTIER_CLOSED : forall {_703094 : Type'}, forall s : (cart R _703094) -> Prop, @closed _703094 (@frontier _703094 s). +Axiom thm_FRONTIER_CLOSURES : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@frontier N' s) = (@INTER (cart R N') (@closure N' s) (@closure N' (@DIFF (cart R N') (@UNIV (cart R N')) s))). +Axiom thm_FRONTIER_OPEN_STRADDLE_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@_open N' u) /\ (~ ((@INTER (cart R N') u (@frontier N' s)) = (@EMPTY (cart R N'))))) -> (~ ((@INTER (cart R N') u s) = (@EMPTY (cart R N')))) /\ (~ ((@DIFF (cart R N') u s) = (@EMPTY (cart R N')))). +Axiom thm_FRONTIER_UNION_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@UNION (cart R N') (@frontier N' s) (@interior N' s)) = (@closure N' s). +Axiom thm_FRONTIER_STRADDLE : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@IN (cart R N') a (@frontier N' s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> (exists x : cart R N', (@IN (cart R N') x s) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') a x)) e)) /\ (exists x : cart R N', (~ (@IN (cart R N') x s)) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') a x)) e))). +Axiom thm_FRONTIER_SUBSET_CLOSED : forall {_703302 : Type'}, forall s : (cart R _703302) -> Prop, (@closed _703302 s) -> @SUBSET (cart R _703302) (@frontier _703302 s) s. +Axiom thm_FRONTIER_EMPTY : forall {_703313 : Type'}, (@frontier _703313 (@EMPTY (cart R _703313))) = (@EMPTY (cart R _703313)). +Axiom thm_FRONTIER_UNIV : forall {N' : Type'}, (@frontier N' (@UNIV (cart R N'))) = (@EMPTY (cart R N')). +Axiom thm_FRONTIER_SUBSET_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@SUBSET (cart R N') (@frontier N' s) s) = (@closed N' s). +Axiom thm_FRONTIER_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@frontier N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) = (@frontier N' s). +Axiom thm_FRONTIER_DISJOINT_EQ : forall {_703385 : Type'}, forall s : (cart R _703385) -> Prop, ((@INTER (cart R _703385) (@frontier _703385 s) s) = (@EMPTY (cart R _703385))) = (@_open _703385 s). +Axiom thm_FRONTIER_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@frontier N' (@INTER (cart R N') s t)) = (@INTER (cart R N') (@closure N' (@INTER (cart R N') s t)) (@UNION (cart R N') (@frontier N' s) (@frontier N' t))). +Axiom thm_FRONTIER_INTER_SUBSET : forall {_703476 : Type'}, forall s : (cart R _703476) -> Prop, forall t : (cart R _703476) -> Prop, @SUBSET (cart R _703476) (@frontier _703476 (@INTER (cart R _703476) s t)) (@UNION (cart R _703476) (@frontier _703476 s) (@frontier _703476 t)). +Axiom thm_FRONTIER_INTER_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ (@closed N' t)) -> (@frontier N' (@INTER (cart R N') s t)) = (@UNION (cart R N') (@INTER (cart R N') (@frontier N' s) t) (@INTER (cart R N') s (@frontier N' t))). +Axiom thm_FRONTIER_UNION_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, @SUBSET (cart R N') (@frontier N' (@UNION (cart R N') s t)) (@UNION (cart R N') (@frontier N' s) (@frontier N' t)). +Axiom thm_FRONTIER_INTERIORS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@frontier N' s) = (@DIFF (cart R N') (@DIFF (cart R N') (@UNIV (cart R N')) (@interior N' s)) (@interior N' (@DIFF (cart R N') (@UNIV (cart R N')) s))). +Axiom thm_FRONTIER_FRONTIER_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@frontier N' (@frontier N' s)) (@frontier N' s). +Axiom thm_INTERIOR_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@interior N' (@frontier N' s)) = (@DIFF (cart R N') (@interior N' (@closure N' s)) (@closure N' (@interior N' s))). +Axiom thm_THIN_FRONTIER_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@interior N' (@frontier N' s)) = (@EMPTY (cart R N'))) = (@SUBSET (cart R N') (@interior N' (@closure N' s)) (@closure N' (@interior N' s))). +Axiom thm_THIN_FRONTIER_CIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@interior N' (@frontier N' s)) = (@EMPTY (cart R N'))) = ((@closure N' (@interior N' (@closure N' s))) = (@closure N' (@interior N' s))). +Axiom thm_THIN_FRONTIER_ICI : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@interior N' (@frontier N' s)) = (@EMPTY (cart R N'))) = ((@interior N' (@closure N' (@interior N' s))) = (@interior N' (@closure N' s))). +Axiom thm_INTERIOR_FRONTIER_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) \/ (@closed N' s)) -> (@interior N' (@frontier N' s)) = (@EMPTY (cart R N')). +Axiom thm_FRONTIER_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) \/ (@closed N' s)) -> (@frontier N' (@frontier N' s)) = (@frontier N' s). +Axiom thm_FRONTIER_FRONTIER_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@frontier N' (@frontier N' (@frontier N' s))) = (@frontier N' (@frontier N' s)). +Axiom thm_REGULAR_CLOSURE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@SUBSET (cart R N') s (@closure N' (@interior N' s))) = ((@closure N' (@interior N' s)) = (@closure N' s)). +Axiom thm_REGULAR_INTERIOR_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@SUBSET (cart R N') (@interior N' (@closure N' s)) s) = ((@interior N' (@closure N' s)) = (@interior N' s)). +Axiom thm_REGULAR_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closure N' (@interior N' s)) = s) = ((@closed N' s) /\ (@SUBSET (cart R N') s (@closure N' (@interior N' s)))). +Axiom thm_REGULAR_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@interior N' (@closure N' s)) = s) = ((@_open N' s) /\ (@SUBSET (cart R N') (@interior N' (@closure N' s)) s)). +Axiom thm_REGULAR_CLOSURE_IMP_THIN_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@SUBSET (cart R N') s (@closure N' (@interior N' s))) -> (@interior N' (@frontier N' s)) = (@EMPTY (cart R N')). +Axiom thm_REGULAR_INTERIOR_IMP_THIN_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@SUBSET (cart R N') (@interior N' (@closure N' s)) s) -> (@interior N' (@frontier N' s)) = (@EMPTY (cart R N')). +Axiom thm_UNION_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@UNION (cart R N') (@frontier N' s) (@frontier N' t)) = (@UNION (cart R N') (@frontier N' (@UNION (cart R N') s t)) (@UNION (cart R N') (@frontier N' (@INTER (cart R N') s t)) (@INTER (cart R N') (@frontier N' s) (@frontier N' t)))). +Axiom thm_CONNECTED_INTER_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))) /\ (~ ((@DIFF (cart R N') s t) = (@EMPTY (cart R N')))))) -> ~ ((@INTER (cart R N') s (@frontier N' t)) = (@EMPTY (cart R N'))). +Axiom thm_FRONTIER_NOT_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R N')))) /\ (~ (s = (@UNIV (cart R N'))))) -> ~ ((@frontier N' s) = (@EMPTY (cart R N'))). +Axiom thm_FRONTIER_EQ_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@frontier N' s) = (@EMPTY (cart R N'))) = ((s = (@EMPTY (cart R N'))) \/ (s = (@UNIV (cart R N')))). +Axiom thm_INTERIOR_CLOSED_EQ_EMPTY_AS_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closed N' s) /\ ((@interior N' s) = (@EMPTY (cart R N')))) = (exists t : (cart R N') -> Prop, (@_open N' t) /\ (s = (@frontier N' t))). +Axiom thm_FRONTIER_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@INTER (cart R N') (@closure N' s) (@closure N' t)) = (@EMPTY (cart R N'))) -> (@frontier N' (@UNION (cart R N') s t)) = (@UNION (cart R N') (@frontier N' s) (@frontier N' t)). +Axiom thm_CLOSURE_UNION_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closure N' s) = (@UNION (cart R N') s (@frontier N' s)). +Axiom thm_FRONTIER_INTERIOR_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@frontier N' (@interior N' s)) (@frontier N' s). +Axiom thm_FRONTIER_CLOSURE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@frontier N' (@closure N' s)) (@frontier N' s). +Axiom thm_SET_DIFF_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@DIFF (cart R N') s (@frontier N' s)) = (@interior N' s). +Axiom thm_FRONTIER_INTER_SUBSET_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, @SUBSET (cart R N') (@frontier N' (@INTER (cart R N') s t)) (@UNION (cart R N') (@INTER (cart R N') (@closure N' s) (@frontier N' t)) (@INTER (cart R N') (@frontier N' s) (@closure N' t))). +Axiom thm_COMMON_FRONTIER_DOMAINS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@_open N' s) /\ ((@_open N' t) /\ ((@connected N' s) /\ ((@connected N' t) /\ ((@frontier N' s) = (@frontier N' t)))))) -> (s = t) \/ (@DISJOINT (cart R N') s t). +Axiom thm_FRONTIER_OPEN_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@_open N' s) /\ ((@_open N' t) /\ (@DISJOINT (cart R N') s t))) -> (@frontier N' (@UNION (cart R N') s t)) = (@UNION (cart R N') (@frontier N' s) (@frontier N' t)). +Axiom thm_FRONTIER_OPEN_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @_open N' s) /\ (@pairwise ((cart R N') -> Prop) (@DISJOINT (cart R N')) f))) -> (@frontier N' (@UNIONS (cart R N') f)) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_2736 : (cart R N') -> Prop => exists s : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_2736 (@IN ((cart R N') -> Prop) s f) (@frontier N' s)))). +Axiom thm_CONNECTED_CLOSURE_FROM_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' (@frontier N' s)) -> @connected N' (@closure N' s). +Axiom thm_at : forall {_704829 : Type'}, forall a : cart R _704829, (@_at _704829 a) = (@atpointof (cart R _704829) (@euclidean _704829) a). +Axiom thm_at_infinity : forall {_704872 : Type'}, (@at_infinity _704872) = (@mk_net (cart R _704872) (@pair (((cart R _704872) -> Prop) -> Prop) ((cart R _704872) -> Prop) (@GSPEC ((cart R _704872) -> Prop) (fun GEN_PVAR_2739 : (cart R _704872) -> Prop => exists b : R, @SETSPEC ((cart R _704872) -> Prop) GEN_PVAR_2739 (@IN R b (@UNIV R)) (@GSPEC (cart R _704872) (fun GEN_PVAR_2738 : cart R _704872 => exists x : cart R _704872, @SETSPEC (cart R _704872) GEN_PVAR_2738 (Rle b (@vector_norm _704872 x)) x)))) (@EMPTY (cart R _704872)))). +Axiom thm_at_posinfinity : at_posinfinity = (@mk_net R (@pair ((R -> Prop) -> Prop) (R -> Prop) (@GSPEC (R -> Prop) (fun GEN_PVAR_2742 : R -> Prop => exists a : R, @SETSPEC (R -> Prop) GEN_PVAR_2742 (@IN R a (@UNIV R)) (@GSPEC R (fun GEN_PVAR_2741 : R => exists x : R, @SETSPEC R GEN_PVAR_2741 (Rle a x) x)))) (@EMPTY R))). +Axiom thm_at_neginfinity : at_neginfinity = (@mk_net R (@pair ((R -> Prop) -> Prop) (R -> Prop) (@GSPEC (R -> Prop) (fun GEN_PVAR_2745 : R -> Prop => exists a : R, @SETSPEC (R -> Prop) GEN_PVAR_2745 (@IN R a (@UNIV R)) (@GSPEC R (fun GEN_PVAR_2744 : R => exists x : R, @SETSPEC R GEN_PVAR_2744 (Rle x a) x)))) (@EMPTY R))). +Axiom thm_in_direction : forall {_705005 : Type'}, forall a : cart R _705005, forall v : cart R _705005, (@in_direction _705005 a v) = (@within (cart R _705005) (@_at _705005 a) (@GSPEC (cart R _705005) (fun GEN_PVAR_2746 : cart R _705005 => exists b : cart R _705005, @SETSPEC (cart R _705005) GEN_PVAR_2746 (exists c : R, (Rle (R_of_N (NUMERAL 0%N)) c) /\ ((@vector_sub _705005 b a) = (@percent _705005 c v))) b))). +Axiom thm_AT : forall {N' : Type'}, forall a : cart R N', (@netfilter (cart R N') (@_at N' a)) = (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_2747 : (cart R N') -> Prop => exists u : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_2747 ((@_open N' u) /\ (@IN (cart R N') a u)) u)). +Axiom thm_NETLIMIT_AT : forall {_705051 : Type'}, forall a : cart R _705051, (@netlimit (cart R _705051) (@_at _705051 a)) = a. +Axiom thm_NETLIMIT_WITHIN : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@netlimit (cart R N') (@within (cart R N') (@_at N' a) s)) = a. +Axiom thm_NETLIMITS_AT_INFINITY : forall {N' : Type'}, (@netlimits (cart R N') (@at_infinity N')) = (@EMPTY (cart R N')). +Axiom thm_AT_INFINITY : forall {N' : Type'}, (@netfilter (cart R N') (@at_infinity N')) = (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_2750 : (cart R N') -> Prop => exists b : R, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_2750 (@IN R b (@UNIV R)) (@GSPEC (cart R N') (fun GEN_PVAR_2749 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2749 (Rle b (@vector_norm N' x)) x)))). +Axiom thm_NETLIMITS_AT_POSINFINITY : (@netlimits R at_posinfinity) = (@EMPTY R). +Axiom thm_AT_POSINFINITY : (@netfilter R at_posinfinity) = (@GSPEC (R -> Prop) (fun GEN_PVAR_2753 : R -> Prop => exists a : R, @SETSPEC (R -> Prop) GEN_PVAR_2753 (@IN R a (@UNIV R)) (@GSPEC R (fun GEN_PVAR_2752 : R => exists x : R, @SETSPEC R GEN_PVAR_2752 (Rle a x) x)))). +Axiom thm_NETLIMITS_AT_NEGINFINITY : (@netlimits R at_neginfinity) = (@EMPTY R). +Axiom thm_AT_NEGINFINITY : (@netfilter R at_neginfinity) = (@GSPEC (R -> Prop) (fun GEN_PVAR_2756 : R -> Prop => exists a : R, @SETSPEC (R -> Prop) GEN_PVAR_2756 (@IN R a (@UNIV R)) (@GSPEC R (fun GEN_PVAR_2755 : R => exists x : R, @SETSPEC R GEN_PVAR_2755 (Rle x a) x)))). +Axiom thm_WITHIN_UNIV : forall {N' : Type'}, forall x : cart R N', (@within (cart R N') (@_at N' x) (@UNIV (cart R N'))) = (@_at N' x). +Axiom thm_EVENTUALLY_WITHIN : forall {M : Type'}, forall s : (cart R M) -> Prop, forall a : cart R M, forall p : (cart R M) -> Prop, (@eventually (cart R M) p (@within (cart R M) (@_at M a) s)) = (exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, ((@IN (cart R M) x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@distance M (@pair (cart R M) (cart R M) x a))) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x a)) d))) -> p x)). +Axiom thm_EVENTUALLY_WITHIN_LE : forall {M : Type'}, forall s : (cart R M) -> Prop, forall a : cart R M, forall p : (cart R M) -> Prop, (@eventually (cart R M) p (@within (cart R M) (@_at M a) s)) = (exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, ((@IN (cart R M) x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@distance M (@pair (cart R M) (cart R M) x a))) /\ (Rle (@distance M (@pair (cart R M) (cart R M) x a)) d))) -> p x)). +Axiom thm_EVENTUALLY_WITHIN_TOPOLOGICAL : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall a : cart R N', (@eventually (cart R N') P (@within (cart R N') (@_at N' a) s)) = (exists t : (cart R N') -> Prop, (@_open N' t) /\ ((@IN (cart R N') a t) /\ (forall x : cart R N', (@IN (cart R N') x (@INTER (cart R N') s (@DELETE (cart R N') t a))) -> P x))). +Axiom thm_TRIVIAL_LIMIT_WITHIN : forall {N' : Type'} (s : (cart R N') -> Prop), forall a : cart R N', (@trivial_limit (cart R N') (@within (cart R N') (@_at N' a) s)) = (~ (@limit_point_of N' a s)). +Axiom thm_LIM_WITHIN_CLOSED_TRIVIAL : forall {_705489 : Type'}, forall a : cart R _705489, forall s : (cart R _705489) -> Prop, ((@closed _705489 s) /\ (~ (@IN (cart R _705489) a s))) -> @trivial_limit (cart R _705489) (@within (cart R _705489) (@_at _705489 a) s). +Axiom thm_EVENTUALLY_AT : forall {_705516 : Type'}, forall a : cart R _705516, forall p : (cart R _705516) -> Prop, (@eventually (cart R _705516) p (@_at _705516 a)) = (exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R _705516, ((Rlt (R_of_N (NUMERAL 0%N)) (@distance _705516 (@pair (cart R _705516) (cart R _705516) x a))) /\ (Rlt (@distance _705516 (@pair (cart R _705516) (cart R _705516) x a)) d)) -> p x)). +Axiom thm_EVENTUALLY_AT_TOPOLOGICAL : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall a : cart R N', (@eventually (cart R N') P (@_at N' a)) = (exists t : (cart R N') -> Prop, (@_open N' t) /\ ((@IN (cart R N') a t) /\ (forall x : cart R N', (@IN (cart R N') x (@DELETE (cart R N') t a)) -> P x))). +Axiom thm_TRIVIAL_LIMIT_AT : forall {_705612 : Type'}, forall a : cart R _705612, ~ (@trivial_limit (cart R _705612) (@_at _705612 a)). +Axiom thm_EVENTUALLY_HAPPENS_AT : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall a : cart R N', (@eventually (cart R N') P (@_at N' a)) -> exists b : cart R N', (~ (b = a)) /\ (P b). +Axiom thm_EVENTUALLY_AT_INFINITY : forall {_705737 : Type'}, forall p : (cart R _705737) -> Prop, (@eventually (cart R _705737) p (@at_infinity _705737)) = (exists b : R, forall x : cart R _705737, (Rge (@vector_norm _705737 x) b) -> p x). +Axiom thm_EVENTUALLY_AT_INFINITY_WITHIN : forall {N' : Type'}, forall p : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@eventually (cart R N') p (@within (cart R N') (@at_infinity N') s)) = (exists b : R, forall x : cart R N', ((@IN (cart R N') x s) /\ (Rge (@vector_norm N' x) b)) -> p x). +Axiom thm_EVENTUALLY_AT_INFINITY_POS : forall {N' : Type'}, forall p : (cart R N') -> Prop, (@eventually (cart R N') p (@at_infinity N')) = (exists b : R, (Rlt (R_of_N (NUMERAL 0%N)) b) /\ (forall x : cart R N', (Rge (@vector_norm N' x) b) -> p x)). +Axiom thm_TRIVIAL_LIMIT_AT_INFINITY : forall {_705897 : Type'}, ~ (@trivial_limit (cart R _705897) (@at_infinity _705897)). +Axiom thm_EVENTUALLY_AT_POSINFINITY : forall p : R -> Prop, (@eventually R p at_posinfinity) = (exists b : R, forall x : R, (Rge x b) -> p x). +Axiom thm_TRIVIAL_LIMIT_AT_POSINFINITY : ~ (@trivial_limit R at_posinfinity). +Axiom thm_EVENTUALLY_AT_NEGINFINITY : forall p : R -> Prop, (@eventually R p at_neginfinity) = (exists b : R, forall x : R, (Rle x b) -> p x). +Axiom thm_TRIVIAL_LIMIT_AT_NEGINFINITY : ~ (@trivial_limit R at_neginfinity). +Axiom thm_EVENTUALLY_AT_ZERO : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall a : cart R N', (@eventually (cart R N') P (@_at N' a)) = (@eventually (cart R N') (fun x : cart R N' => P (@vector_add N' a x)) (@_at N' (@vec N' (NUMERAL 0%N)))). +Axiom thm_EVENTUALLY_AT_WITHIN : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall a : cart R N', (@eventually (cart R N') P (@_at N' a)) -> @eventually (cart R N') P (@within (cart R N') (@_at N' a) s). +Axiom thm_EVENTUALLY_WITHIN_ZERO : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall a : cart R N', (@eventually (cart R N') P (@within (cart R N') (@_at N' a) s)) = (@eventually (cart R N') (fun x : cart R N' => P (@vector_add N' a x)) (@within (cart R N') (@_at N' (@vec N' (NUMERAL 0%N))) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_sub N' x a) s))). +Axiom thm_IN_INTERIOR_EVENTUALLY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@IN (cart R N') a (@interior N' s)) = ((@IN (cart R N') a s) /\ (@eventually (cart R N') (fun x : cart R N' => @IN (cart R N') x s) (@_at N' a))). +Axiom thm_EVENTUALLY_WITHIN_INTERIOR : forall {N' : Type'}, forall p : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall x : cart R N', (@IN (cart R N') x (@interior N' s)) -> (@eventually (cart R N') p (@within (cart R N') (@_at N' x) s)) = (@eventually (cart R N') p (@_at N' x)). +Axiom thm_EVENTUALLY_IN_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@_open N' s) /\ (@IN (cart R N') a s)) -> @eventually (cart R N') (fun x : cart R N' => @IN (cart R N') x s) (@_at N' a). +Axiom thm_EVENTUALLY_WITHIN_OPEN : forall {_706339 M : Type'} (P : (cart R M) -> Prop), forall f : _706339, forall a : cart R M, forall s : (cart R M) -> Prop, ((@IN (cart R M) a s) /\ (@_open M s)) -> (@eventually (cart R M) P (@within (cart R M) (@_at M a) s)) = (@eventually (cart R M) P (@_at M a)). +Axiom thm_EVENTUALLY_WITHIN_OPEN_IN : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall a : cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN (cart R N') a t) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t)) -> (@eventually (cart R N') P (@within (cart R N') (@_at N' a) t)) = (@eventually (cart R N') P (@within (cart R N') (@_at N' a) s)). +Axiom thm_EVENTUALLY_WITHIN_INTERIOR_LOCAL : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall a : cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@IN (cart R N') a u) /\ ((@SUBSET (cart R N') u t) /\ ((@SUBSET (cart R N') t s) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u)))) -> (@eventually (cart R N') P (@within (cart R N') (@_at N' a) t)) = (@eventually (cart R N') P (@within (cart R N') (@_at N' a) s)). +Axiom thm_EVENTUALLY_SCALABLE_PROPERTY : forall {N' : Type'}, forall P : (cart R N') -> Prop, ((forall c : R, forall x : cart R N', ((Rle (R_of_N (NUMERAL 0%N)) c) /\ (P x)) -> P (@percent N' c x)) /\ (@eventually (cart R N') P (@_at N' (@vec N' (NUMERAL 0%N))))) -> forall x : cart R N', P x. +Axiom thm_EVENTUALLY_SCALABLE_PROPERTY_EQ : forall {N' : Type'}, forall P : (cart R N') -> Prop, (forall c : R, forall x : cart R N', ((Rle (R_of_N (NUMERAL 0%N)) c) /\ (P x)) -> P (@percent N' c x)) -> (@eventually (cart R N') P (@_at N' (@vec N' (NUMERAL 0%N)))) = (forall x : cart R N', P x). +Axiom thm_ONORM_LE_EVENTUALLY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall b : R, (@linear M N' f) -> (Rle (@onorm M N' f) b) = (@eventually (cart R M) (fun y : cart R M => Rle (@vector_norm N' (f y)) (Rmult b (@vector_norm M y))) (@_at M (@vec M (NUMERAL 0%N)))). +Axiom thm_EVENTUALLY_WITHIN_REFLECT : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall a : cart R N', (@eventually (cart R N') (fun x : cart R N' => P (@vector_neg N' x)) (@within (cart R N') (@_at N' (@vector_neg N' a)) (@IMAGE (cart R N') (cart R N') (@vector_neg N') s))) = (@eventually (cart R N') P (@within (cart R N') (@_at N' a) s)). +Axiom thm_EVENTUALLY_AT_REFLECT : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall a : cart R N', (@eventually (cart R N') (fun x : cart R N' => P (@vector_neg N' x)) (@_at N' (@vector_neg N' a))) = (@eventually (cart R N') P (@_at N' a)). +Axiom thm_EVENTUALLY_WITHIN_DELETE : forall {N' : Type'}, forall P : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall a : cart R N', (@eventually (cart R N') P (@within (cart R N') (@_at N' a) (@DELETE (cart R N') s a))) = (@eventually (cart R N') P (@within (cart R N') (@_at N' a) s)). +Axiom thm_tendsto : forall {_706965 _706970 : Type'}, forall f : _706970 -> cart R _706965, forall l : cart R _706965, forall net' : net _706970, (@FImp _706965 _706970 f l net') = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually _706970 (fun x : _706970 => Rlt (@distance _706965 (@pair (cart R _706965) (cart R _706965) (f x) l)) e) net'). +Axiom thm_LIMIT_EUCLIDEAN : forall {A N' : Type'}, forall f : A -> cart R N', forall x : cart R N', forall net' : net A, (@limit A (cart R N') (@euclidean N') f x net') = (@FImp N' A f x net'). +Axiom thm_lim : forall {_707013 _707014 : Type'}, forall f : _707014 -> cart R _707013, forall net' : net _707014, (@lim _707013 _707014 net' f) = (@ε (cart R _707013) (fun l : cart R _707013 => @FImp _707013 _707014 f l net')). +Axiom thm_TENDSTO_ALT : forall {A N' : Type'}, forall f : A -> cart R N', forall l : cart R N', forall net' : net A, (@FImp N' A f l net') = (forall s : (cart R N') -> Prop, ((@_open N' s) /\ (@IN (cart R N') l s)) -> @eventually A (fun x : A => @IN (cart R N') (f x) s) net'). +Axiom thm_TENDSTO_ALT_WITHIN : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', forall u : (cart R N') -> Prop, ((@IN (cart R N') l u) /\ (@eventually A (fun x : A => @IN (cart R N') (f x) u) net')) -> (@FImp N' A f l net') = (forall s : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@IN (cart R N') l s)) -> @eventually A (fun x : A => @IN (cart R N') (f x) s) net'). +Axiom thm_LIM_EVENTUALLY_IN_OPEN_IN : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@IN (cart R N') l s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@eventually A (fun x : A => @IN (cart R N') (f x) u) net') /\ (@FImp N' A f l net')))) -> @eventually A (fun x : A => @IN (cart R N') (f x) s) net'. +Axiom thm_LIM_EVENTUALLY_IN_OPEN : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', forall s : (cart R N') -> Prop, ((@_open N' s) /\ ((@FImp N' A f l net') /\ (@IN (cart R N') l s))) -> @eventually A (fun x : A => @IN (cart R N') (f x) s) net'. +Axiom thm_LIM_TRIVIAL : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', (@trivial_limit A net') -> @FImp N' A f l net'. +Axiom thm_LIM_WITHIN_REFLECT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall l : cart R N', forall a : cart R M, forall s : (cart R M) -> Prop, (@FImp N' (cart R M) (fun x : cart R M => f (@vector_neg M x)) l (@within (cart R M) (@_at M (@vector_neg M a)) (@IMAGE (cart R M) (cart R M) (@vector_neg M) s))) = (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) s)). +Axiom thm_LIM_AT_REFLECT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall l : cart R N', forall a : cart R M, (@FImp N' (cart R M) (fun x : cart R M => f (@vector_neg M x)) l (@_at M (@vector_neg M a))) = (@FImp N' (cart R M) f l (@_at M a)). +Axiom thm_LIM_WITHIN_ZERO : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall l : cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) s)) = (@FImp N' (cart R M) (fun x : cart R M => f (@vector_add M a x)) l (@within (cart R M) (@_at M (@vec M (NUMERAL 0%N))) (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_sub M x a) s))). +Axiom thm_LIM_WITHIN_DELETE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall l : cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) (@DELETE (cart R M) s a))) = (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) s)). +Axiom thm_LIM_COMPONENTWISE_REAL : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', (@FImp N' A f l net') = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @limit A R euclideanreal (fun x : A => @dollar R N' (f x) i) (@dollar R N' l i) net'). +Axiom thm_LIM_COMPONENTWISE_LIFT : forall {A N' : Type'} (l : cart R N'), forall net' : net A, forall f : A -> cart R N', (@FImp N' A f l net') = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @FImp unit A (fun x : A => lift (@dollar R N' (f x) i)) (lift (@dollar R N' l i)) net'). +Axiom thm_LIM_EQ_DROP : forall {A : Type'}, forall net' : net A, forall f : A -> cart R unit, forall l : cart R unit, (@FImp unit A f l net') = (@limit A R euclideanreal (@o A (cart R unit) R drop f) (drop l) net'). +Axiom thm_LIM_EQ_LIFT : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, (@limit A R euclideanreal f l net') = (@FImp unit A (@o A R (cart R unit) lift f) (lift l) net'). +Axiom thm_LIM_WITHIN_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall l : cart R N', forall a : cart R M, forall s : (cart R M) -> Prop, (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, ((@IN (cart R M) x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@distance M (@pair (cart R M) (cart R M) x a))) /\ (Rle (@distance M (@pair (cart R M) (cart R M) x a)) d))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) l)) e)). +Axiom thm_LIM_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall l : cart R N', forall a : cart R M, forall s : (cart R M) -> Prop, (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, ((@IN (cart R M) x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@distance M (@pair (cart R M) (cart R M) x a))) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x a)) d))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) l)) e)). +Axiom thm_LIM_AT_LE : forall {_707865 _707868 : Type'}, forall f : (cart R _707868) -> cart R _707865, forall l : cart R _707865, forall a : cart R _707868, (@FImp _707865 (cart R _707868) f l (@_at _707868 a)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R _707868, ((Rlt (R_of_N (NUMERAL 0%N)) (@distance _707868 (@pair (cart R _707868) (cart R _707868) x a))) /\ (Rle (@distance _707868 (@pair (cart R _707868) (cart R _707868) x a)) d)) -> Rlt (@distance _707865 (@pair (cart R _707865) (cart R _707865) (f x) l)) e)). +Axiom thm_LIM_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall l : cart R N', forall a : cart R M, (@FImp N' (cart R M) f l (@_at M a)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, ((Rlt (R_of_N (NUMERAL 0%N)) (@distance M (@pair (cart R M) (cart R M) x a))) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x a)) d)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) l)) e)). +Axiom thm_LIM_AT_INFINITY : forall {_708037 _708065 : Type'}, forall f : (cart R _708065) -> cart R _708037, forall l : cart R _708037, (@FImp _708037 (cart R _708065) f l (@at_infinity _708065)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists b : R, forall x : cart R _708065, (Rge (@vector_norm _708065 x) b) -> Rlt (@distance _708037 (@pair (cart R _708037) (cart R _708037) (f x) l)) e). +Axiom thm_LIM_AT_INFINITY_POS : forall {_708124 _708159 : Type'}, forall f : (cart R _708159) -> cart R _708124, forall l : cart R _708124, (@FImp _708124 (cart R _708159) f l (@at_infinity _708159)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists b : R, (Rlt (R_of_N (NUMERAL 0%N)) b) /\ (forall x : cart R _708159, (Rge (@vector_norm _708159 x) b) -> Rlt (@distance _708124 (@pair (cart R _708124) (cart R _708124) (f x) l)) e)). +Axiom thm_LIM_AT_POSINFINITY : forall {_708188 : Type'}, forall f : R -> cart R _708188, forall l : cart R _708188, (@FImp _708188 R f l at_posinfinity) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists b : R, forall x : R, (Rge x b) -> Rlt (@distance _708188 (@pair (cart R _708188) (cart R _708188) (f x) l)) e). +Axiom thm_LIM_AT_NEGINFINITY : forall {_708240 : Type'}, forall f : R -> cart R _708240, forall l : cart R _708240, (@FImp _708240 R f l at_neginfinity) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists b : R, forall x : R, (Rle x b) -> Rlt (@distance _708240 (@pair (cart R _708240) (cart R _708240) (f x) l)) e). +Axiom thm_LIM_AT_INFINITY_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall l : cart R N', forall s : (cart R M) -> Prop, (@FImp N' (cart R M) f l (@within (cart R M) (@at_infinity M) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists b : R, forall x : cart R M, ((@IN (cart R M) x s) /\ (Rge (@vector_norm M x) b)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) l)) e). +Axiom thm_LIM_AT_INFINITY_WITHIN_POS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall l : cart R N', forall s : (cart R M) -> Prop, (@FImp N' (cart R M) f l (@within (cart R M) (@at_infinity M) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists b : R, (Rlt (R_of_N (NUMERAL 0%N)) b) /\ (forall x : cart R M, ((@IN (cart R M) x s) /\ (Rge (@vector_norm M x) b)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) l)) e)). +Axiom thm_LIM_SEQUENTIALLY : forall {_708467 : Type'}, forall s : N -> cart R _708467, forall l : cart R _708467, (@FImp _708467 N s l sequentially) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, (N.le N' n) -> Rlt (@distance _708467 (@pair (cart R _708467) (cart R _708467) (s n) l)) e). +Axiom thm_LIM_EVENTUALLY : forall {_708528 _708532 : Type'}, forall net' : net _708528, forall f : _708528 -> cart R _708532, forall l : cart R _708532, (@eventually _708528 (fun x : _708528 => (f x) = l) net') -> @FImp _708532 _708528 f l net'. +Axiom thm_LIM_POSINFINITY_SEQUENTIALLY : forall {_708553 : Type'}, forall f : R -> cart R _708553, forall l : cart R _708553, (@FImp _708553 R f l at_posinfinity) -> @FImp _708553 N (fun n : N => f (R_of_N n)) l sequentially. +Axiom thm_LIM_INFINITY_POSINFINITY_LIFT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall l : cart R N', (@FImp N' (cart R unit) f l (@at_infinity unit)) -> @FImp N' R (@o R (cart R unit) (cart R N') f lift) l at_posinfinity. +Axiom thm_LIM_SELF_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@FImp N' (cart R M) f (f a) (@within (cart R M) (@_at M a) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, ((@IN (cart R M) x s) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x a)) d)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) (f a))) e)). +Axiom thm_LIM_SELF_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, (@FImp N' (cart R M) f (f a) (@_at M a)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, (Rlt (@distance M (@pair (cart R M) (cart R M) x a)) d) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) (f a))) e)). +Axiom thm_LIM_SUBSEQUENCE : forall {_708795 : Type'}, forall s : N -> cart R _708795, forall r : N -> N, forall l : cart R _708795, ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp _708795 N s l sequentially)) -> @FImp _708795 N (@o N N (cart R _708795) s r) l sequentially. +Axiom thm_SEQUENTIAL_LIMIT_URYSOHN : forall {N' : Type'}, forall s : N -> cart R N', forall l : cart R N', (@FImp N' N s l sequentially) = (forall r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) -> exists q : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (q m) (q n)) /\ (@FImp N' N (@o N N (cart R N') s (@o N N N r q)) l sequentially)). +Axiom thm_LIM_WITHIN_EMPTY : forall {_708946 _708952 : Type'}, forall f : (cart R _708952) -> cart R _708946, forall l : cart R _708946, forall x : cart R _708952, @FImp _708946 (cart R _708952) f l (@within (cart R _708952) (@_at _708952 x) (@EMPTY (cart R _708952))). +Axiom thm_LIM_WITHIN_SUBSET : forall {_708978 _708997 : Type'} (t : (cart R _708997) -> Prop), forall f : (cart R _708997) -> cart R _708978, forall l : cart R _708978, forall a : cart R _708997, forall s : (cart R _708997) -> Prop, ((@FImp _708978 (cart R _708997) f l (@within (cart R _708997) (@_at _708997 a) s)) /\ (@SUBSET (cart R _708997) t s)) -> @FImp _708978 (cart R _708997) f l (@within (cart R _708997) (@_at _708997 a) t). +Axiom thm_LIM_UNION : forall {_709039 _709065 : Type'}, forall f : (cart R _709065) -> cart R _709039, forall x : cart R _709065, forall l : cart R _709039, forall s : (cart R _709065) -> Prop, forall t : (cart R _709065) -> Prop, ((@FImp _709039 (cart R _709065) f l (@within (cart R _709065) (@_at _709065 x) s)) /\ (@FImp _709039 (cart R _709065) f l (@within (cart R _709065) (@_at _709065 x) t))) -> @FImp _709039 (cart R _709065) f l (@within (cart R _709065) (@_at _709065 x) (@UNION (cart R _709065) s t)). +Axiom thm_LIM_UNION_UNIV : forall {_709097 N' : Type'}, forall f : (cart R N') -> cart R _709097, forall x : cart R N', forall l : cart R _709097, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@FImp _709097 (cart R N') f l (@within (cart R N') (@_at N' x) s)) /\ ((@FImp _709097 (cart R N') f l (@within (cart R N') (@_at N' x) t)) /\ ((@UNION (cart R N') s t) = (@UNIV (cart R N'))))) -> @FImp _709097 (cart R N') f l (@_at N' x). +Axiom thm_LIM_COMPOSE_WITHIN : forall {A N' P : Type'}, forall net' : net A, forall f : A -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R N') -> Prop, forall y : cart R N', forall z : cart R P, ((@FImp N' A f y net') /\ ((@eventually A (fun w : A => (@IN (cart R N') (f w) s) /\ (((f w) = y) -> (g y) = z)) net') /\ (@FImp P (cart R N') g z (@within (cart R N') (@_at N' y) s)))) -> @FImp P A (@o A (cart R N') (cart R P) g f) z net'. +Axiom thm_LIM_COMPOSE_AT : forall {A N' P : Type'}, forall net' : net A, forall f : A -> cart R N', forall g : (cart R N') -> cart R P, forall y : cart R N', forall z : cart R P, ((@FImp N' A f y net') /\ ((@eventually A (fun w : A => ((f w) = y) -> (g y) = z) net') /\ (@FImp P (cart R N') g z (@_at N' y)))) -> @FImp P A (@o A (cart R N') (cart R P) g f) z net'. +Axiom thm_LIM_AT_WITHIN : forall {_709309 _709322 : Type'}, forall f : (cart R _709322) -> cart R _709309, forall l : cart R _709309, forall a : cart R _709322, forall s : (cart R _709322) -> Prop, (@FImp _709309 (cart R _709322) f l (@_at _709322 a)) -> @FImp _709309 (cart R _709322) f l (@within (cart R _709322) (@_at _709322 a) s). +Axiom thm_LIM_WITHIN_OPEN : forall {_709354 M : Type'}, forall f : (cart R M) -> cart R _709354, forall l : cart R _709354, forall a : cart R M, forall s : (cart R M) -> Prop, ((@IN (cart R M) a s) /\ (@_open M s)) -> (@FImp _709354 (cart R M) f l (@within (cart R M) (@_at M a) s)) = (@FImp _709354 (cart R M) f l (@_at M a)). +Axiom thm_LIM_WITHIN_OPEN_IN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall l : cart R N', forall a : cart R M, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@IN (cart R M) a t) /\ (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) t)) -> (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) t)) = (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) s)). +Axiom thm_LIMPT_SEQUENTIAL : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@limit_point_of N' x s) = (exists f : N -> cart R N', (forall n : N, @IN (cart R N') (f n) (@DELETE (cart R N') s x)) /\ (@FImp N' N f x sequentially)). +Axiom thm_LIMPT_SEQUENTIAL_DECREASING : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@limit_point_of N' x s) = (exists f : N -> cart R N', (forall n : N, @IN (cart R N') (f n) (@DELETE (cart R N') s x)) /\ ((forall m : N, forall n : N, (N.lt m n) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f n) x)) (@distance N' (@pair (cart R N') (cart R N') (f m) x))) /\ (@FImp N' N f x sequentially))). +Axiom thm_LIMPT_SEQUENTIAL_INJ : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@limit_point_of N' x s) = (exists f : N -> cart R N', (forall n : N, @IN (cart R N') (f n) (@DELETE (cart R N') s x)) /\ ((forall m : N, forall n : N, ((f m) = (f n)) = (m = n)) /\ (@FImp N' N f x sequentially))). +Axiom thm_LIMPT_INFINITE_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@limit_point_of N' x s) = (forall t : (cart R N') -> Prop, ((@IN (cart R N') x t) /\ (@_open N' t)) -> @INFINITE (cart R N') (@INTER (cart R N') s t)). +Axiom thm_LIMPT_INFINITE_CBALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@limit_point_of N' x s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @INFINITE (cart R N') (@INTER (cart R N') s (@cball N' (@pair (cart R N') R x e)))). +Axiom thm_LIMPT_INFINITE_BALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@limit_point_of N' x s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @INFINITE (cart R N') (@INTER (cart R N') s (@ball N' (@pair (cart R N') R x e)))). +Axiom thm_INFINITE_OPEN_IN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (exists x : cart R N', (@IN (cart R N') x s) /\ (@limit_point_of N' x u))) -> @INFINITE (cart R N') s. +Axiom thm_condensation_point_of : forall {_709863 : Type'}, forall x : cart R _709863, forall s : (cart R _709863) -> Prop, (@condensation_point_of _709863 x s) = (forall t : (cart R _709863) -> Prop, ((@IN (cart R _709863) x t) /\ (@_open _709863 t)) -> ~ (@COUNTABLE (cart R _709863) (@INTER (cart R _709863) s t))). +Axiom thm_CONDENSATION_POINT_OF_SUBSET : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@condensation_point_of N' x s) /\ (@SUBSET (cart R N') s t)) -> @condensation_point_of N' x t. +Axiom thm_CONDENSATION_POINT_IMP_LIMPT : forall {_709909 : Type'}, forall x : cart R _709909, forall s : (cart R _709909) -> Prop, (@condensation_point_of _709909 x s) -> @limit_point_of _709909 x s. +Axiom thm_CONDENSATION_POINT_INFINITE_CBALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@condensation_point_of N' x s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> ~ (@COUNTABLE (cart R N') (@INTER (cart R N') s (@cball N' (@pair (cart R N') R x e))))). +Axiom thm_CONDENSATION_POINT_INFINITE_BALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@condensation_point_of N' x s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> ~ (@COUNTABLE (cart R N') (@INTER (cart R N') s (@ball N' (@pair (cart R N') R x e))))). +Axiom thm_CONDENSATION_POINT_ALT : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@condensation_point_of N' x s) = (forall t : (cart R N') -> Prop, (@COUNTABLE (cart R N') t) -> @limit_point_of N' x (@DIFF (cart R N') s t)). +Axiom thm_LIM_LINEAR : forall {_710143 _710147 A : Type'}, forall net' : net A, forall h : (cart R _710143) -> cart R _710147, forall f : A -> cart R _710143, forall l : cart R _710143, ((@FImp _710143 A f l net') /\ (@linear _710143 _710147 h)) -> @FImp _710147 A (fun x : A => h (f x)) (h l) net'. +Axiom thm_LIM_CONST : forall {_710173 N' : Type'}, forall net' : net _710173, forall a : cart R N', @FImp N' _710173 (fun x : _710173 => a) a net'. +Axiom thm_LIM_CMUL : forall {_710204 _710207 : Type'} (net' : net _710204), forall f : _710204 -> cart R _710207, forall l : cart R _710207, forall c : R, (@FImp _710207 _710204 f l net') -> @FImp _710207 _710204 (fun x : _710204 => @percent _710207 c (f x)) (@percent _710207 c l) net'. +Axiom thm_LIM_CMUL_EQ : forall {_710247 _710254 : Type'}, forall net' : net _710247, forall f : _710247 -> cart R _710254, forall l : cart R _710254, forall c : R, (~ (c = (R_of_N (NUMERAL 0%N)))) -> (@FImp _710254 _710247 (fun x : _710247 => @percent _710254 c (f x)) (@percent _710254 c l) net') = (@FImp _710254 _710247 f l net'). +Axiom thm_LIM_NEG : forall {_710304 N' : Type'}, forall net' : net _710304, forall f : _710304 -> cart R N', forall l : cart R N', (@FImp N' _710304 f l net') -> @FImp N' _710304 (fun x : _710304 => @vector_neg N' (f x)) (@vector_neg N' l) net'. +Axiom thm_LIM_NEG_EQ : forall {_710343 N' : Type'}, forall net' : net _710343, forall f : _710343 -> cart R N', forall l : cart R N', (@FImp N' _710343 (fun x : _710343 => @vector_neg N' (f x)) (@vector_neg N' l) net') = (@FImp N' _710343 f l net'). +Axiom thm_LIM_ADD : forall {_710418 A : Type'}, forall net' : net A, forall f : A -> cart R _710418, forall g : A -> cart R _710418, forall l : cart R _710418, forall m : cart R _710418, ((@FImp _710418 A f l net') /\ (@FImp _710418 A g m net')) -> @FImp _710418 A (fun x : A => @vector_add _710418 (f x) (g x)) (@vector_add _710418 l m) net'. +Axiom thm_LIM_ABS : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', (@FImp N' A f l net') -> @FImp N' A (fun x : A => @lambda R N' (fun i : N => Rabs (@dollar R N' (f x) i))) (@lambda R N' (fun i : N => Rabs (@dollar R N' l i))) net'. +Axiom thm_LIM_LIFT_ABS_COMPONENT : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', forall k : N, (@FImp N' A f l net') -> @FImp unit A (fun x : A => lift (Rabs (@dollar R N' (f x) k))) (lift (Rabs (@dollar R N' l k))) net'. +Axiom thm_LIM_SUB : forall {_710604 A : Type'}, forall net' : net A, forall f : A -> cart R _710604, forall g : A -> cart R _710604, forall l : cart R _710604, forall m : cart R _710604, ((@FImp _710604 A f l net') /\ (@FImp _710604 A g m net')) -> @FImp _710604 A (fun x : A => @vector_sub _710604 (f x) (g x)) (@vector_sub _710604 l m) net'. +Axiom thm_LIM_MAX : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall g : A -> cart R N', forall l : cart R N', forall m : cart R N', ((@FImp N' A f l net') /\ (@FImp N' A g m net')) -> @FImp N' A (fun x : A => @lambda R N' (fun i : N => Rmax (@dollar R N' (f x) i) (@dollar R N' (g x) i))) (@lambda R N' (fun i : N => Rmax (@dollar R N' l i) (@dollar R N' m i))) net'. +Axiom thm_LIM_MIN : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall g : A -> cart R N', forall l : cart R N', forall m : cart R N', ((@FImp N' A f l net') /\ (@FImp N' A g m net')) -> @FImp N' A (fun x : A => @lambda R N' (fun i : N => Rmin (@dollar R N' (f x) i) (@dollar R N' (g x) i))) (@lambda R N' (fun i : N => Rmin (@dollar R N' l i) (@dollar R N' m i))) net'. +Axiom thm_LIM_NORM : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', (@FImp N' A f l net') -> @FImp unit A (fun x : A => lift (@vector_norm N' (f x))) (lift (@vector_norm N' l)) net'. +Axiom thm_LIM_NULL : forall {_710835 _710840 : Type'}, forall net' : net _710835, forall f : _710835 -> cart R _710840, forall l : cart R _710840, (@FImp _710840 _710835 f l net') = (@FImp _710840 _710835 (fun x : _710835 => @vector_sub _710840 (f x) l) (@vec _710840 (NUMERAL 0%N)) net'). +Axiom thm_LIM_NULL_NORM : forall {_710861 _710872 : Type'}, forall net' : net _710872, forall f : _710872 -> cart R _710861, (@FImp _710861 _710872 f (@vec _710861 (NUMERAL 0%N)) net') = (@FImp unit _710872 (fun x : _710872 => lift (@vector_norm _710861 (f x))) (@vec unit (NUMERAL 0%N)) net'). +Axiom thm_LIM_NULL_CMUL_EQ : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall c : R, (@FImp N' A (fun x : A => @percent N' c (f x)) (@vec N' (NUMERAL 0%N)) net') = ((c = (R_of_N (NUMERAL 0%N))) \/ (@FImp N' A f (@vec N' (NUMERAL 0%N)) net')). +Axiom thm_LIM_NULL_CMUL : forall {_710963 _710965 : Type'}, forall net' : net _710963, forall f : _710963 -> cart R _710965, forall c : R, (@FImp _710965 _710963 f (@vec _710965 (NUMERAL 0%N)) net') -> @FImp _710965 _710963 (fun x : _710963 => @percent _710965 c (f x)) (@vec _710965 (NUMERAL 0%N)) net'. +Axiom thm_LIM_NULL_VMUL_EQ : forall {A N' : Type'}, forall net' : net A, forall c : A -> R, forall v : cart R N', (@FImp N' A (fun x : A => @percent N' (c x) v) (@vec N' (NUMERAL 0%N)) net') = ((v = (@vec N' (NUMERAL 0%N))) \/ (@FImp unit A (fun x : A => lift (c x)) (@vec unit (NUMERAL 0%N)) net')). +Axiom thm_LIM_NULL_VMUL : forall {A N' : Type'}, forall net' : net A, forall c : A -> R, forall v : cart R N', (@FImp unit A (fun x : A => lift (c x)) (@vec unit (NUMERAL 0%N)) net') -> @FImp N' A (fun x : A => @percent N' (c x) v) (@vec N' (NUMERAL 0%N)) net'. +Axiom thm_LIM_NULL_NEG : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', (@FImp N' A (fun x : A => @vector_neg N' (f x)) (@vec N' (NUMERAL 0%N)) net') = (@FImp N' A f (@vec N' (NUMERAL 0%N)) net'). +Axiom thm_LIM_NULL_ADD : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall g : A -> cart R N', ((@FImp N' A f (@vec N' (NUMERAL 0%N)) net') /\ (@FImp N' A g (@vec N' (NUMERAL 0%N)) net')) -> @FImp N' A (fun x : A => @vector_add N' (f x) (g x)) (@vec N' (NUMERAL 0%N)) net'. +Axiom thm_LIM_NULL_SUB : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall g : A -> cart R N', ((@FImp N' A f (@vec N' (NUMERAL 0%N)) net') /\ (@FImp N' A g (@vec N' (NUMERAL 0%N)) net')) -> @FImp N' A (fun x : A => @vector_sub N' (f x) (g x)) (@vec N' (NUMERAL 0%N)) net'. +Axiom thm_LIM_NULL_COMPARISON : forall {_711252 _711261 : Type'}, forall net' : net _711252, forall f : _711252 -> cart R _711261, forall g : _711252 -> R, ((@eventually _711252 (fun x : _711252 => Rle (@vector_norm _711261 (f x)) (g x)) net') /\ (@FImp unit _711252 (fun x : _711252 => lift (g x)) (@vec unit (NUMERAL 0%N)) net')) -> @FImp _711261 _711252 f (@vec _711261 (NUMERAL 0%N)) net'. +Axiom thm_LIM_COMPONENT : forall {_711300 N' : Type'}, forall net' : net _711300, forall f : _711300 -> cart R N', forall i : N, forall l : cart R N', (@FImp N' _711300 f l net') -> @FImp unit _711300 (fun a : _711300 => lift (@dollar R N' (f a) i)) (lift (@dollar R N' l i)) net'. +Axiom thm_LIM_TRANSFORM_BOUND : forall {_711339 _711346 _711353 : Type'} (net' : net _711339), forall f : _711339 -> cart R _711353, forall g : _711339 -> cart R _711346, ((@eventually _711339 (fun n : _711339 => Rle (@vector_norm _711353 (f n)) (@vector_norm _711346 (g n))) net') /\ (@FImp _711346 _711339 g (@vec _711346 (NUMERAL 0%N)) net')) -> @FImp _711353 _711339 f (@vec _711353 (NUMERAL 0%N)) net'. +Axiom thm_LIM_NULL_CMUL_BOUNDED : forall {A N' : Type'} (net' : net A), forall f : A -> R, forall g : A -> cart R N', forall B : R, ((@eventually A (fun a : A => ((g a) = (@vec N' (NUMERAL 0%N))) \/ (Rle (Rabs (f a)) B)) net') /\ (@FImp N' A g (@vec N' (NUMERAL 0%N)) net')) -> @FImp N' A (fun n : A => @percent N' (f n) (g n)) (@vec N' (NUMERAL 0%N)) net'. +Axiom thm_LIM_NULL_VMUL_BOUNDED : forall {A N' : Type'} (net' : net A), forall f : A -> R, forall g : A -> cart R N', forall B : R, ((@FImp unit A (@o A R (cart R unit) lift f) (@vec unit (NUMERAL 0%N)) net') /\ (@eventually A (fun a : A => ((f a) = (R_of_N (NUMERAL 0%N))) \/ (Rle (@vector_norm N' (g a)) B)) net')) -> @FImp N' A (fun n : A => @percent N' (f n) (g n)) (@vec N' (NUMERAL 0%N)) net'. +Axiom thm_LIM_VSUM : forall {A B N' : Type'}, forall net' : net B, forall f : A -> B -> cart R N', forall l : A -> cart R N', forall s : A -> Prop, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> @FImp N' B (f i) (l i) net')) -> @FImp N' B (fun x : B => @vsum A N' s (fun i : A => f i x)) (@vsum A N' s l) net'. +Axiom thm_LIM_NULL_VSUM : forall {A B N' : Type'}, forall net' : net A, forall f : A -> B -> cart R N', forall s : B -> Prop, ((@FINITE B s) /\ (forall a : B, (@IN B a s) -> @FImp N' A (fun x : A => f x a) (@vec N' (NUMERAL 0%N)) net')) -> @FImp N' A (fun x : A => @vsum B N' s (f x)) (@vec N' (NUMERAL 0%N)) net'. +Axiom thm_LIM_IN_CLOSED_SET : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall s : (cart R N') -> Prop, forall l : cart R N', ((@closed N' s) /\ ((@eventually A (fun x : A => @IN (cart R N') (f x) s) net') /\ ((~ (@trivial_limit A net')) /\ (@FImp N' A f l net')))) -> @IN (cart R N') l s. +Axiom thm_LIM_NORM_UBOUND : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', forall b : R, ((~ (@trivial_limit A net')) /\ ((@FImp N' A f l net') /\ (@eventually A (fun x : A => Rle (@vector_norm N' (f x)) b) net'))) -> Rle (@vector_norm N' l) b. +Axiom thm_LIM_NORM_LBOUND : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', forall b : R, ((~ (@trivial_limit A net')) /\ ((@FImp N' A f l net') /\ (@eventually A (fun x : A => Rle b (@vector_norm N' (f x))) net'))) -> Rle b (@vector_norm N' l). +Axiom thm_LIM_UNIQUE : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', forall l' : cart R N', ((~ (@trivial_limit A net')) /\ ((@FImp N' A f l net') /\ (@FImp N' A f l' net'))) -> l = l'. +Axiom thm_TENDSTO_LIM : forall {_712159 _712163 : Type'}, forall net' : net _712159, forall f : _712159 -> cart R _712163, forall l : cart R _712163, ((~ (@trivial_limit _712159 net')) /\ (@FImp _712163 _712159 f l net')) -> (@lim _712163 _712159 net' f) = l. +Axiom thm_LIM_CONST_EQ : forall {A N' : Type'}, forall net' : net A, forall c : cart R N', forall d : cart R N', (@FImp N' A (fun x : A => c) d net') = ((@trivial_limit A net') \/ (c = d)). +Axiom thm_LIM_WITHIN_ID : forall {_712228 : Type'}, forall a : cart R _712228, forall s : (cart R _712228) -> Prop, @FImp _712228 (cart R _712228) (fun x : cart R _712228 => x) a (@within (cart R _712228) (@_at _712228 a) s). +Axiom thm_LIM_AT_ID : forall {_712242 : Type'}, forall a : cart R _712242, @FImp _712242 (cart R _712242) (fun x : cart R _712242 => x) a (@_at _712242 a). +Axiom thm_LIM_AT_ZERO : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall l : cart R N', forall a : cart R M, (@FImp N' (cart R M) f l (@_at M a)) = (@FImp N' (cart R M) (fun x : cart R M => f (@vector_add M a x)) l (@_at M (@vec M (NUMERAL 0%N)))). +Axiom thm_UNIFORM_LIM_ADD : forall {_712452 A B : Type'}, forall net' : net A, forall P : B -> Prop, forall f : B -> A -> cart R _712452, forall g : B -> A -> cart R _712452, forall l : B -> cart R _712452, forall m : B -> cart R _712452, ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm _712452 (@vector_sub _712452 (f n x) (l n))) e) net') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm _712452 (@vector_sub _712452 (g n x) (m n))) e) net')) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm _712452 (@vector_sub _712452 (@vector_add _712452 (f n x) (g n x)) (@vector_add _712452 (l n) (m n)))) e) net'. +Axiom thm_UNIFORM_LIM_SUB : forall {_712637 A B : Type'}, forall net' : net A, forall P : B -> Prop, forall f : B -> A -> cart R _712637, forall g : B -> A -> cart R _712637, forall l : B -> cart R _712637, forall m : B -> cart R _712637, ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm _712637 (@vector_sub _712637 (f n x) (l n))) e) net') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm _712637 (@vector_sub _712637 (g n x) (m n))) e) net')) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm _712637 (@vector_sub _712637 (@vector_sub _712637 (f n x) (g n x)) (@vector_sub _712637 (l n) (m n)))) e) net'. +Axiom thm_UNIFORM_LIM_BILINEAR : forall {A B M N' P : Type'}, forall net' : net A, forall P' : B -> Prop, forall h : (cart R M) -> (cart R N') -> cart R P, forall f : B -> A -> cart R M, forall g : B -> A -> cart R N', forall l : B -> cart R M, forall m : B -> cart R N', forall b1 : R, forall b2 : R, ((@bilinear N' P M h) /\ ((@eventually A (fun x : A => forall n : B, (P' n) -> Rle (@vector_norm M (l n)) b1) net') /\ ((@eventually A (fun x : A => forall n : B, (P' n) -> Rle (@vector_norm N' (m n)) b2) net') /\ ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P' n) -> Rlt (@vector_norm M (@vector_sub M (f n x) (l n))) e) net') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P' n) -> Rlt (@vector_norm N' (@vector_sub N' (g n x) (m n))) e) net'))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P' n) -> Rlt (@vector_norm P (@vector_sub P (h (f n x) (g n x)) (h (l n) (m n)))) e) net'. +Axiom thm_LIM_BILINEAR : forall {A M N' P : Type'}, forall net' : net A, forall h : (cart R M) -> (cart R N') -> cart R P, forall f : A -> cart R M, forall g : A -> cart R N', forall l : cart R M, forall m : cart R N', ((@FImp M A f l net') /\ ((@FImp N' A g m net') /\ (@bilinear N' P M h))) -> @FImp P A (fun x : A => h (f x) (g x)) (h l m) net'. +Axiom thm_BILINEAR_EPSILON_DELTA : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall a : cart R M, forall b : cart R N', forall e : R, ((@bilinear N' P M bop) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, forall y : cart R N', ((Rlt (@vector_norm M (@vector_sub M x a)) d) /\ (Rlt (@vector_norm N' (@vector_sub N' y b)) d)) -> Rlt (@vector_norm P (@vector_sub P (bop x y) (bop a b))) e). +Axiom thm_LIM_TRANSFORM : forall {_713548 _713563 : Type'}, forall net' : net _713548, forall f : _713548 -> cart R _713563, forall g : _713548 -> cart R _713563, forall l : cart R _713563, ((@FImp _713563 _713548 (fun x : _713548 => @vector_sub _713563 (f x) (g x)) (@vec _713563 (NUMERAL 0%N)) net') /\ (@FImp _713563 _713548 f l net')) -> @FImp _713563 _713548 g l net'. +Axiom thm_LIM_TRANSFORM_EVENTUALLY : forall {_713597 _713606 : Type'}, forall net' : net _713597, forall f : _713597 -> cart R _713606, forall g : _713597 -> cart R _713606, forall l : cart R _713606, ((@eventually _713597 (fun x : _713597 => (f x) = (g x)) net') /\ (@FImp _713606 _713597 f l net')) -> @FImp _713606 _713597 g l net'. +Axiom thm_LIM_TRANSFORM_WITHIN : forall {_713692 _713698 : Type'} (l : cart R _713692), forall f : (cart R _713698) -> cart R _713692, forall g : (cart R _713698) -> cart R _713692, forall x : cart R _713698, forall s : (cart R _713698) -> Prop, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x' : cart R _713698, ((@IN (cart R _713698) x' s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@distance _713698 (@pair (cart R _713698) (cart R _713698) x' x))) /\ (Rlt (@distance _713698 (@pair (cart R _713698) (cart R _713698) x' x)) d))) -> (f x') = (g x')) /\ (@FImp _713692 (cart R _713698) f l (@within (cart R _713698) (@_at _713698 x) s)))) -> @FImp _713692 (cart R _713698) g l (@within (cart R _713698) (@_at _713698 x) s). +Axiom thm_LIM_TRANSFORM_AT : forall {_713774 _713777 : Type'} (l : cart R _713774), forall f : (cart R _713777) -> cart R _713774, forall g : (cart R _713777) -> cart R _713774, forall x : cart R _713777, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x' : cart R _713777, ((Rlt (R_of_N (NUMERAL 0%N)) (@distance _713777 (@pair (cart R _713777) (cart R _713777) x' x))) /\ (Rlt (@distance _713777 (@pair (cart R _713777) (cart R _713777) x' x)) d)) -> (f x') = (g x')) /\ (@FImp _713774 (cart R _713777) f l (@_at _713777 x)))) -> @FImp _713774 (cart R _713777) g l (@_at _713777 x). +Axiom thm_LIM_TRANSFORM_EQ : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall g : A -> cart R N', forall l : cart R N', (@FImp N' A (fun x : A => @vector_sub N' (f x) (g x)) (@vec N' (NUMERAL 0%N)) net') -> (@FImp N' A f l net') = (@FImp N' A g l net'). +Axiom thm_LIM_TRANSFORM_WITHIN_SET : forall {_713886 _713902 : Type'}, forall f : (cart R _713902) -> cart R _713886, forall l : cart R _713886, forall a : cart R _713902, forall s : (cart R _713902) -> Prop, forall t : (cart R _713902) -> Prop, (@eventually (cart R _713902) (fun x : cart R _713902 => (@IN (cart R _713902) x s) = (@IN (cart R _713902) x t)) (@_at _713902 a)) -> (@FImp _713886 (cart R _713902) f l (@within (cart R _713902) (@_at _713902 a) s)) = (@FImp _713886 (cart R _713902) f l (@within (cart R _713902) (@_at _713902 a) t)). +Axiom thm_LIM_TRANSFORM_WITHIN_SET_IMP : forall {_713954 _713970 : Type'}, forall f : (cart R _713970) -> cart R _713954, forall l : cart R _713954, forall a : cart R _713970, forall s : (cart R _713970) -> Prop, forall t : (cart R _713970) -> Prop, ((@eventually (cart R _713970) (fun x : cart R _713970 => (@IN (cart R _713970) x t) -> @IN (cart R _713970) x s) (@_at _713970 a)) /\ (@FImp _713954 (cart R _713970) f l (@within (cart R _713970) (@_at _713970 a) s))) -> @FImp _713954 (cart R _713970) f l (@within (cart R _713970) (@_at _713970 a) t). +Axiom thm_LIM_TRANSFORM_AWAY_WITHIN : forall {M N' : Type'} (l : cart R N'), forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall s : (cart R M) -> Prop, ((~ (a = b)) /\ ((forall x : cart R M, ((@IN (cart R M) x s) /\ ((~ (x = a)) /\ (~ (x = b)))) -> (f x) = (g x)) /\ (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) s)))) -> @FImp N' (cart R M) g l (@within (cart R M) (@_at M a) s). +Axiom thm_LIM_TRANSFORM_AWAY_AT : forall {M N' : Type'} (l : cart R N'), forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, ((~ (a = b)) /\ ((forall x : cart R M, ((~ (x = a)) /\ (~ (x = b))) -> (f x) = (g x)) /\ (@FImp N' (cart R M) f l (@_at M a)))) -> @FImp N' (cart R M) g l (@_at M a). +Axiom thm_LIM_TRANSFORM_WITHIN_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, forall l : cart R N', ((@_open M s) /\ ((@IN (cart R M) a s) /\ ((forall x : cart R M, ((@IN (cart R M) x s) /\ (~ (x = a))) -> (f x) = (g x)) /\ (@FImp N' (cart R M) f l (@_at M a))))) -> @FImp N' (cart R M) g l (@_at M a). +Axiom thm_LIM_TRANSFORM_WITHIN_OPEN_IN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall a : cart R M, forall l : cart R N', ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) t) s) /\ ((@IN (cart R M) a s) /\ ((forall x : cart R M, ((@IN (cart R M) x s) /\ (~ (x = a))) -> (f x) = (g x)) /\ (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) t))))) -> @FImp N' (cart R M) g l (@within (cart R M) (@_at M a) t). +Axiom thm_LINEAR_LIMIT : forall {A M N' : Type'}, forall net' : net A, forall f : A -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((~ (@trivial_limit A net')) /\ ((@eventually A (fun i : A => @linear M N' (f i)) net') /\ (forall x : cart R M, @FImp N' A (fun i : A => f i x) (g x) net'))) -> @linear M N' g. +Axiom thm_LINEAR_SEQUENTIAL_LIMIT : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@eventually N (fun n : N => @linear M N' (f n)) sequentially) /\ (forall x : cart R M, @FImp N' N (fun n : N => f n x) (g x) sequentially)) -> @linear M N' g. +Axiom thm_LIM_CASES_FINITE_SEQUENTIALLY : forall {_714498 : Type'} (P : N -> Prop), forall f : N -> cart R _714498, forall g : N -> cart R _714498, forall l : cart R _714498, (@FINITE N (@GSPEC N (fun GEN_PVAR_2761 : N => exists n : N, @SETSPEC N GEN_PVAR_2761 (P n) n))) -> (@FImp _714498 N (fun n : N => @COND (cart R _714498) (P n) (f n) (g n)) l sequentially) = (@FImp _714498 N g l sequentially). +Axiom thm_LIM_CASES_COFINITE_SEQUENTIALLY : forall {_714550 : Type'} (P : N -> Prop), forall f : N -> cart R _714550, forall g : N -> cart R _714550, forall l : cart R _714550, (@FINITE N (@GSPEC N (fun GEN_PVAR_2762 : N => exists n : N, @SETSPEC N GEN_PVAR_2762 (~ (P n)) n))) -> (@FImp _714550 N (fun n : N => @COND (cart R _714550) (P n) (f n) (g n)) l sequentially) = (@FImp _714550 N f l sequentially). +Axiom thm_LIM_CASES_SEQUENTIALLY : forall {_714665 : Type'}, forall f : N -> cart R _714665, forall g : N -> cart R _714665, forall l : cart R _714665, forall m : N, ((@FImp _714665 N (fun n : N => @COND (cart R _714665) (N.le m n) (f n) (g n)) l sequentially) = (@FImp _714665 N f l sequentially)) /\ (((@FImp _714665 N (fun n : N => @COND (cart R _714665) (N.lt m n) (f n) (g n)) l sequentially) = (@FImp _714665 N f l sequentially)) /\ (((@FImp _714665 N (fun n : N => @COND (cart R _714665) (N.le n m) (f n) (g n)) l sequentially) = (@FImp _714665 N g l sequentially)) /\ ((@FImp _714665 N (fun n : N => @COND (cart R _714665) (N.lt n m) (f n) (g n)) l sequentially) = (@FImp _714665 N g l sequentially)))). +Axiom thm_LIM_CONG_WITHIN : forall {_714708 _714714 : Type'} (f : (cart R _714714) -> cart R _714708) (g : (cart R _714714) -> cart R _714708) (l : cart R _714708) (a : cart R _714714) (s : (cart R _714714) -> Prop), (forall x : cart R _714714, ((@IN (cart R _714714) x s) /\ (~ (x = a))) -> (f x) = (g x)) -> (@FImp _714708 (cart R _714714) (fun x : cart R _714714 => f x) l (@within (cart R _714714) (@_at _714714 a) s)) = (@FImp _714708 (cart R _714714) g l (@within (cart R _714714) (@_at _714714 a) s)). +Axiom thm_LIM_CONG_AT : forall {_714748 _714751 : Type'} (f : (cart R _714751) -> cart R _714748) (g : (cart R _714751) -> cart R _714748) (l : cart R _714748) (a : cart R _714751), (forall x : cart R _714751, (~ (x = a)) -> (f x) = (g x)) -> (@FImp _714748 (cart R _714751) (fun x : cart R _714751 => f x) l (@_at _714751 a)) = (@FImp _714748 (cart R _714751) g l (@_at _714751 a)). +Axiom thm_CLOSURE_SEQUENTIAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall l : cart R N', (@IN (cart R N') l (@closure N' s)) = (exists x : N -> cart R N', (forall n : N, @IN (cart R N') (x n) s) /\ (@FImp N' N x l sequentially)). +Axiom thm_CLOSED_CONTAINS_SEQUENTIAL_LIMIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : N -> cart R N', forall l : cart R N', ((@closed N' s) /\ ((forall n : N, @IN (cart R N') (x n) s) /\ (@FImp N' N x l sequentially))) -> @IN (cart R N') l s. +Axiom thm_CLOSED_SEQUENTIAL_LIMITS : forall {_714879 : Type'}, forall s : (cart R _714879) -> Prop, (@closed _714879 s) = (forall x : N -> cart R _714879, forall l : cart R _714879, ((forall n : N, @IN (cart R _714879) (x n) s) /\ (@FImp _714879 N x l sequentially)) -> @IN (cart R _714879) l s). +Axiom thm_CLOSED_IN_SEQUENTIAL_LIMITS : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) = ((@SUBSET (cart R N') s u) /\ (forall x : N -> cart R N', forall l : cart R N', ((forall n : N, @IN (cart R N') (x n) s) /\ ((@IN (cart R N') l u) /\ (@FImp N' N x l sequentially))) -> @IN (cart R N') l s)). +Axiom thm_CLOSED_APPROACHABLE : forall {_714952 : Type'}, forall x : cart R _714952, forall s : (cart R _714952) -> Prop, (@closed _714952 s) -> (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists y : cart R _714952, (@IN (cart R _714952) y s) /\ (Rlt (@distance _714952 (@pair (cart R _714952) (cart R _714952) y x)) e)) = (@IN (cart R _714952) x s). +Axiom thm_IN_CLOSURE_DELETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@IN (cart R N') x (@closure N' (@DELETE (cart R N') s x))) = (@limit_point_of N' x s). +Axiom thm_DENSE_LIMIT_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@GSPEC (cart R N') (fun GEN_PVAR_2763 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2763 (@limit_point_of N' x s) x)) = (@UNIV (cart R N'))) = ((@closure N' s) = (@UNIV (cart R N'))). +Axiom thm_SEQ_OFFSET : forall {_715079 : Type'}, forall f : N -> cart R _715079, forall l : cart R _715079, forall k : N, (@FImp _715079 N f l sequentially) -> @FImp _715079 N (fun i : N => f (N.add i k)) l sequentially. +Axiom thm_SEQ_OFFSET_NEG : forall {_715143 : Type'}, forall f : N -> cart R _715143, forall l : cart R _715143, forall k : N, (@FImp _715143 N f l sequentially) -> @FImp _715143 N (fun i : N => f (N.sub i k)) l sequentially. +Axiom thm_SEQ_OFFSET_REV : forall {_715241 : Type'}, forall f : N -> cart R _715241, forall l : cart R _715241, forall k : N, (@FImp _715241 N (fun i : N => f (N.add i k)) l sequentially) -> @FImp _715241 N f l sequentially. +Axiom thm_SEQ_OFFSET_EQ : forall {N' : Type'}, forall k : N, forall f : N -> cart R N', forall l : cart R N', (@FImp N' N (fun i : N => f (N.add i k)) l sequentially) = (@FImp N' N f l sequentially). +Axiom thm_CONVERGENT_OFFSET : forall {N' : Type'}, forall f : N -> cart R N', forall k : N, (exists l : cart R N', @FImp N' N f l sequentially) -> exists l : cart R N', @FImp N' N (fun i : N => f (N.add i k)) l sequentially. +Axiom thm_CONVERGENT_OFFSET_EQ : forall {N' : Type'}, forall f : N -> cart R N', forall k : N, (exists l : cart R N', @FImp N' N (fun i : N => f (N.add i k)) l sequentially) = (exists l : cart R N', @FImp N' N f l sequentially). +Axiom thm_CONVERGENT_OFFSET_REV : forall {N' : Type'}, forall f : N -> cart R N', forall k : N, (exists l : cart R N', @FImp N' N (fun i : N => f (N.add i k)) l sequentially) -> exists l : cart R N', @FImp N' N f l sequentially. +Axiom thm_SEQ_HARMONIC_OFFSET : forall a : R, @FImp unit N (fun n : N => lift (Rinv (Rplus (R_of_N n) a))) (@vec unit (NUMERAL 0%N)) sequentially. +Axiom thm_SEQ_HARMONIC : @FImp unit N (fun n : N => lift (Rinv (R_of_N n))) (@vec unit (NUMERAL 0%N)) sequentially. +Axiom thm_SEQ_HARMONIC_RATIO : forall a : R, forall b : R, @FImp unit N (fun n : N => lift (Rdiv (Rplus (R_of_N n) a) (Rplus (R_of_N n) b))) (@vec unit (NUMERAL (BIT1 0%N))) sequentially. +Axiom thm_CLOSED_CBALL : forall {N' : Type'}, forall x : cart R N', forall e : R, @closed N' (@cball N' (@pair (cart R N') R x e)). +Axiom thm_CLOSURE_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (@closure N' (@cball N' (@pair (cart R N') R a r))) = (@cball N' (@pair (cart R N') R a r)). +Axiom thm_IN_INTERIOR_CBALL : forall {_715608 : Type'}, forall x : cart R _715608, forall s : (cart R _715608) -> Prop, (@IN (cart R _715608) x (@interior _715608 s)) = (exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET (cart R _715608) (@cball _715608 (@pair (cart R _715608) R x e)) s)). +Axiom thm_LIMPT_BALL : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', forall e : R, (@limit_point_of N' y (@ball N' (@pair (cart R N') R x e))) = ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@IN (cart R N') y (@cball N' (@pair (cart R N') R x e)))). +Axiom thm_CLOSURE_BALL : forall {N' : Type'}, forall x : cart R N', forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> (@closure N' (@ball N' (@pair (cart R N') R x e))) = (@cball N' (@pair (cart R N') R x e)). +Axiom thm_INTERIOR_BALL : forall {_715939 : Type'}, forall a : cart R _715939, forall r : R, (@interior _715939 (@ball _715939 (@pair (cart R _715939) R a r))) = (@ball _715939 (@pair (cart R _715939) R a r)). +Axiom thm_INTERIOR_CBALL : forall {N' : Type'}, forall x : cart R N', forall e : R, (@interior N' (@cball N' (@pair (cart R N') R x e))) = (@ball N' (@pair (cart R N') R x e)). +Axiom thm_FRONTIER_BALL : forall {_716180 : Type'}, forall a : cart R _716180, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> (@frontier _716180 (@ball _716180 (@pair (cart R _716180) R a e))) = (@sphere _716180 (@pair (cart R _716180) R a e)). +Axiom thm_FRONTIER_CBALL : forall {_716206 : Type'}, forall a : cart R _716206, forall e : R, (@frontier _716206 (@cball _716206 (@pair (cart R _716206) R a e))) = (@sphere _716206 (@pair (cart R _716206) R a e)). +Axiom thm_INTERIOR_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (@interior N' (@sphere N' (@pair (cart R N') R a r))) = (@EMPTY (cart R N')). +Axiom thm_CBALL_EQ_EMPTY : forall {_716247 : Type'}, forall x : cart R _716247, forall e : R, ((@cball _716247 (@pair (cart R _716247) R x e)) = (@EMPTY (cart R _716247))) = (Rlt e (R_of_N (NUMERAL 0%N))). +Axiom thm_CBALL_EMPTY : forall {_716278 : Type'}, forall x : cart R _716278, forall e : R, (Rlt e (R_of_N (NUMERAL 0%N))) -> (@cball _716278 (@pair (cart R _716278) R x e)) = (@EMPTY (cart R _716278)). +Axiom thm_CBALL_EQ_SING : forall {N' : Type'}, forall x : cart R N', forall e : R, ((@cball N' (@pair (cart R N') R x e)) = (@INSERT (cart R N') x (@EMPTY (cart R N')))) = (e = (R_of_N (NUMERAL 0%N))). +Axiom thm_CBALL_SING : forall {_716403 : Type'}, forall x : cart R _716403, forall e : R, (e = (R_of_N (NUMERAL 0%N))) -> (@cball _716403 (@pair (cart R _716403) R x e)) = (@INSERT (cart R _716403) x (@EMPTY (cart R _716403))). +Axiom thm_SPHERE_SING : forall {_716432 : Type'}, forall x : cart R _716432, forall e : R, (e = (R_of_N (NUMERAL 0%N))) -> (@sphere _716432 (@pair (cart R _716432) R x e)) = (@INSERT (cart R _716432) x (@EMPTY (cart R _716432))). +Axiom thm_SPHERE_EQ_SING : forall {N' : Type'}, forall a : cart R N', forall r : R, forall x : cart R N', ((@sphere N' (@pair (cart R N') R a r)) = (@INSERT (cart R N') x (@EMPTY (cart R N')))) = ((x = a) /\ (r = (R_of_N (NUMERAL 0%N)))). +Axiom thm_HAS_SIZE_SPHERE_1 : forall {N' : Type'}, forall a : cart R N', forall r : R, (@HAS_SIZE (cart R N') (@sphere N' (@pair (cart R N') R a r)) (NUMERAL (BIT1 0%N))) = (r = (R_of_N (NUMERAL 0%N))). +Axiom thm_IMAGE_AFFINITY_CBALL : forall {N' : Type'}, forall m : R, forall c : cart R N', forall a : cart R N', forall r : R, (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) (@cball N' (@pair (cart R N') R a r))) = (@COND ((cart R N') -> Prop) ((Rle (R_of_N (NUMERAL 0%N)) r) \/ (~ (m = (R_of_N (NUMERAL 0%N))))) (@cball N' (@pair (cart R N') R (@vector_add N' (@percent N' m a) c) (Rmult (Rabs m) r))) (@EMPTY (cart R N'))). +Axiom thm_IMAGE_AFFINITY_BALL : forall {N' : Type'}, forall m : R, forall c : cart R N', forall a : cart R N', forall r : R, (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) (@ball N' (@pair (cart R N') R a r))) = (@COND ((cart R N') -> Prop) (~ (m = (R_of_N (NUMERAL 0%N)))) (@ball N' (@pair (cart R N') R (@vector_add N' (@percent N' m a) c) (Rmult (Rabs m) r))) (@COND ((cart R N') -> Prop) (Rle r (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R N')) (@INSERT (cart R N') c (@EMPTY (cart R N'))))). +Axiom thm_IMAGE_AFFINITY_SPHERE : forall {N' : Type'}, forall m : R, forall c : cart R N', forall a : cart R N', forall r : R, (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) (@sphere N' (@pair (cart R N') R a r))) = (@COND ((cart R N') -> Prop) ((Rle (R_of_N (NUMERAL 0%N)) r) \/ (~ (m = (R_of_N (NUMERAL 0%N))))) (@sphere N' (@pair (cart R N') R (@vector_add N' (@percent N' m a) c) (Rmult (Rabs m) r))) (@EMPTY (cart R N'))). +Axiom thm_EVENTUALLY_WITHIN_INTERIOR_INTER : forall {_717125 : Type'}, forall p : (cart R _717125) -> Prop, forall s : (cart R _717125) -> Prop, forall t : (cart R _717125) -> Prop, forall x : cart R _717125, (@IN (cart R _717125) x (@interior _717125 s)) -> (@eventually (cart R _717125) p (@within (cart R _717125) (@_at _717125 x) (@INTER (cart R _717125) s t))) = (@eventually (cart R _717125) p (@within (cart R _717125) (@_at _717125 x) t)). +Axiom thm_LIM_WITHIN_INTERIOR_INTER : forall {_717155 _717174 : Type'} (t : (cart R _717174) -> Prop), forall f : (cart R _717174) -> cart R _717155, forall l : cart R _717155, forall s : (cart R _717174) -> Prop, forall x : cart R _717174, (@IN (cart R _717174) x (@interior _717174 s)) -> (@FImp _717155 (cart R _717174) f l (@within (cart R _717174) (@_at _717174 x) (@INTER (cart R _717174) s t))) = (@FImp _717155 (cart R _717174) f l (@within (cart R _717174) (@_at _717174 x) t)). +Axiom thm_LIM_WITHIN_INTERIOR : forall {_717204 _717217 : Type'}, forall f : (cart R _717217) -> cart R _717204, forall l : cart R _717204, forall s : (cart R _717217) -> Prop, forall x : cart R _717217, (@IN (cart R _717217) x (@interior _717217 s)) -> (@FImp _717204 (cart R _717217) f l (@within (cart R _717217) (@_at _717217 x) s)) = (@FImp _717204 (cart R _717217) f l (@_at _717217 x)). +Axiom thm_CONNECTED_IMP_PERFECT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@connected N' s) /\ ((~ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N'))))) /\ (@IN (cart R N') x s))) -> @limit_point_of N' x s. +Axiom thm_CONNECTED_IMP_PERFECT_CLOSED : forall {_717270 : Type'}, forall s : (cart R _717270) -> Prop, forall x : cart R _717270, ((@connected _717270 s) /\ ((@closed _717270 s) /\ (~ (exists a : cart R _717270, s = (@INSERT (cart R _717270) a (@EMPTY (cart R _717270))))))) -> (@limit_point_of _717270 x s) = (@IN (cart R _717270) x s). +Axiom thm_CONNECTED_LIMIT_POINTS_EQ_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@connected N' s) /\ (~ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N')))))) -> (@GSPEC (cart R N') (fun GEN_PVAR_2764 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2764 (@limit_point_of N' x s) x)) = (@closure N' s). +Axiom thm_CONNECTED_LIMIT_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) -> @connected N' (@GSPEC (cart R N') (fun GEN_PVAR_2765 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2765 (@limit_point_of N' x s) x)). +Axiom thm_bounded : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) = (exists a : R, forall x : cart R N', (@IN (cart R N') x s) -> Rle (@vector_norm N' x) a). +Axiom thm_MBOUNDED_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@mbounded (cart R N') (@euclidean_metric N') s) = (@bounded N' s). +Axiom thm_BOUNDED_EMPTY : forall {_717442 : Type'}, @bounded _717442 (@EMPTY (cart R _717442)). +Axiom thm_BOUNDED_SUBSET : forall {_717463 : Type'}, forall s : (cart R _717463) -> Prop, forall t : (cart R _717463) -> Prop, ((@bounded _717463 t) /\ (@SUBSET (cart R _717463) s t)) -> @bounded _717463 s. +Axiom thm_BOUNDED_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @bounded N' (@interior N' s). +Axiom thm_BOUNDED_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @bounded N' (@closure N' s). +Axiom thm_BOUNDED_CLOSURE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' (@closure N' s)) = (@bounded N' s). +Axiom thm_BOUNDED_CBALL : forall {N' : Type'}, forall x : cart R N', forall e : R, @bounded N' (@cball N' (@pair (cart R N') R x e)). +Axiom thm_BOUNDED_BALL : forall {_717544 : Type'}, forall x : cart R _717544, forall e : R, @bounded _717544 (@ball _717544 (@pair (cart R _717544) R x e)). +Axiom thm_FINITE_IMP_BOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> @bounded N' s. +Axiom thm_BOUNDED_NORM_IMAGE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) = (@bounded unit (@IMAGE (cart R N') (cart R unit) (@o (cart R N') R (cart R unit) lift (@vector_norm N')) s)). +Axiom thm_BOUNDED_UNION : forall {_717647 : Type'}, forall s : (cart R _717647) -> Prop, forall t : (cart R _717647) -> Prop, (@bounded _717647 (@UNION (cart R _717647) s t)) = ((@bounded _717647 s) /\ (@bounded _717647 t)). +Axiom thm_BOUNDED_UNIONS : forall {_717669 : Type'}, forall f : ((cart R _717669) -> Prop) -> Prop, ((@FINITE ((cart R _717669) -> Prop) f) /\ (forall s : (cart R _717669) -> Prop, (@IN ((cart R _717669) -> Prop) s f) -> @bounded _717669 s)) -> @bounded _717669 (@UNIONS (cart R _717669) f). +Axiom thm_BOUNDED_POS : forall {_717712 : Type'}, forall s : (cart R _717712) -> Prop, (@bounded _717712 s) = (exists b : R, (Rlt (R_of_N (NUMERAL 0%N)) b) /\ (forall x : cart R _717712, (@IN (cart R _717712) x s) -> Rle (@vector_norm _717712 x) b)). +Axiom thm_BOUNDED_POS_LT : forall {_717778 : Type'}, forall s : (cart R _717778) -> Prop, (@bounded _717778 s) = (exists b : R, (Rlt (R_of_N (NUMERAL 0%N)) b) /\ (forall x : cart R _717778, (@IN (cart R _717778) x s) -> Rlt (@vector_norm _717778 x) b)). +Axiom thm_BOUNDED_PAIRS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) = (exists B : R, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (@distance N' (@pair (cart R N') (cart R N') x y)) B). +Axiom thm_BOUNDED_PAIRS_POS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) = (exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (@distance N' (@pair (cart R N') (cart R N') x y)) B)). +Axiom thm_BOUNDED_INTER : forall {_717973 : Type'}, forall s : (cart R _717973) -> Prop, forall t : (cart R _717973) -> Prop, ((@bounded _717973 s) \/ (@bounded _717973 t)) -> @bounded _717973 (@INTER (cart R _717973) s t). +Axiom thm_BOUNDED_DIFF : forall {_717991 : Type'}, forall s : (cart R _717991) -> Prop, forall t : (cart R _717991) -> Prop, (@bounded _717991 s) -> @bounded _717991 (@DIFF (cart R _717991) s t). +Axiom thm_BOUNDED_INSERT : forall {_718028 : Type'}, forall x : cart R _718028, forall s : (cart R _718028) -> Prop, (@bounded _718028 (@INSERT (cart R _718028) x s)) = (@bounded _718028 s). +Axiom thm_BOUNDED_SING : forall {_718035 : Type'}, forall a : cart R _718035, @bounded _718035 (@INSERT (cart R _718035) a (@EMPTY (cart R _718035))). +Axiom thm_BOUNDED_DELETE : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@bounded N' (@DELETE (cart R N') s x)) = (@bounded N' s). +Axiom thm_BOUNDED_INTERS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, (exists s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) /\ (@bounded N' s)) -> @bounded N' (@INTERS (cart R N') f). +Axiom thm_NOT_BOUNDED_UNIV : forall {N' : Type'}, ~ (@bounded N' (@UNIV (cart R N'))). +Axiom thm_NOT_OPEN_SING : forall {N' : Type'}, forall a : cart R N', ~ (@_open N' (@INSERT (cart R N') a (@EMPTY (cart R N')))). +Axiom thm_COBOUNDED_IMP_UNBOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) -> ~ (@bounded N' s). +Axiom thm_BOUNDED_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@bounded M s) /\ (@linear M N' f)) -> @bounded N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_BOUNDED_LINEAR_IMAGE_EQ : forall {_718252 _718280 : Type'}, forall f : (cart R _718280) -> cart R _718252, forall s : (cart R _718280) -> Prop, ((@linear _718280 _718252 f) /\ (forall x : cart R _718280, forall y : cart R _718280, ((f x) = (f y)) -> x = y)) -> (@bounded _718252 (@IMAGE (cart R _718280) (cart R _718252) f s)) = (@bounded _718280 s). +Axiom thm_BOUNDED_SCALING : forall {_718293 : Type'}, forall c : R, forall s : (cart R _718293) -> Prop, (@bounded _718293 s) -> @bounded _718293 (@IMAGE (cart R _718293) (cart R _718293) (fun x : cart R _718293 => @percent _718293 c x) s). +Axiom thm_BOUNDED_NEGATIONS : forall {_718328 : Type'}, forall s : (cart R _718328) -> Prop, (@bounded _718328 s) -> @bounded _718328 (@IMAGE (cart R _718328) (cart R _718328) (@vector_neg _718328) s). +Axiom thm_BOUNDED_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@bounded N' s) -> @bounded N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_BOUNDED_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@bounded N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@bounded N' s). +Axiom thm_BOUNDED_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@bounded N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@bounded N' s)). +Axiom thm_BOUNDED_AFFINITY_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@bounded N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = ((m = (R_of_N (NUMERAL 0%N))) \/ (@bounded N' s)). +Axiom thm_BOUNDED_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@bounded N' s) -> @bounded N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s). +Axiom thm_BOUNDED_DIFFS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ (@bounded N' t)) -> @bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_2766 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2766 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_sub N' x y))). +Axiom thm_BOUNDED_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ (@bounded N' t)) -> @bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_2767 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2767 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_BOUNDED_SUMS_IMAGE : forall {_718826 _718829 : Type'}, forall f : _718826 -> cart R _718829, forall g : _718826 -> cart R _718829, forall t : _718826 -> Prop, ((@bounded _718829 (@GSPEC (cart R _718829) (fun GEN_PVAR_2768 : cart R _718829 => exists x : _718826, @SETSPEC (cart R _718829) GEN_PVAR_2768 (@IN _718826 x t) (f x)))) /\ (@bounded _718829 (@GSPEC (cart R _718829) (fun GEN_PVAR_2769 : cart R _718829 => exists x : _718826, @SETSPEC (cart R _718829) GEN_PVAR_2769 (@IN _718826 x t) (g x))))) -> @bounded _718829 (@GSPEC (cart R _718829) (fun GEN_PVAR_2770 : cart R _718829 => exists x : _718826, @SETSPEC (cart R _718829) GEN_PVAR_2770 (@IN _718826 x t) (@vector_add _718829 (f x) (g x)))). +Axiom thm_BOUNDED_SUMS_IMAGES : forall {A B N' : Type'}, forall f : A -> B -> cart R N', forall t : A -> Prop, forall s : B -> Prop, ((@FINITE B s) /\ (forall a : B, (@IN B a s) -> @bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_2771 : cart R N' => exists x : A, @SETSPEC (cart R N') GEN_PVAR_2771 (@IN A x t) (f x a))))) -> @bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_2772 : cart R N' => exists x : A, @SETSPEC (cart R N') GEN_PVAR_2772 (@IN A x t) (@vsum B N' s (f x)))). +Axiom thm_BOUNDED_SUBSET_BALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@bounded N' s) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@SUBSET (cart R N') s (@ball N' (@pair (cart R N') R x r))). +Axiom thm_BOUNDED_SUBSET_CBALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@bounded N' s) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@SUBSET (cart R N') s (@cball N' (@pair (cart R N') R x r))). +Axiom thm_UNBOUNDED_INTER_COBOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((~ (@bounded N' s)) /\ (@bounded N' (@DIFF (cart R N') (@UNIV (cart R N')) t))) -> ~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))). +Axiom thm_COBOUNDED_INTER_UNBOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (~ (@bounded N' t))) -> ~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))). +Axiom thm_SUBSPACE_BOUNDED_EQ_TRIVIAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> (@bounded N' s) = (s = (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))). +Axiom thm_BOUNDED_COMPONENTWISE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @bounded unit (@IMAGE (cart R N') (cart R unit) (fun x : cart R N' => lift (@dollar R N' x i)) s)). +Axiom thm_BOUNDED_SUBSET_OPEN_INTERVAL_SYMMETRIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> exists a : cart R N', @SUBSET (cart R N') s (@open_interval N' (@pair (cart R N') (cart R N') (@vector_neg N' a) a)). +Axiom thm_BOUNDED_SUBSET_OPEN_INTERVAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> exists a : cart R N', exists b : cart R N', @SUBSET (cart R N') s (@open_interval N' (@pair (cart R N') (cart R N') a b)). +Axiom thm_BOUNDED_SUBSET_CLOSED_INTERVAL_SYMMETRIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> exists a : cart R N', @SUBSET (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vector_neg N' a) a) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_BOUNDED_SUBSET_CLOSED_INTERVAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> exists a : cart R N', exists b : cart R N', @SUBSET (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_BOUNDED_LIFT : forall s : R -> Prop, (@bounded unit (@IMAGE R (cart R unit) lift s)) = (exists a : R, forall x : R, (@IN R x s) -> Rle (Rabs x) a). +Axiom thm_BOUNDED_HAS_SUP : forall s : R -> Prop, ((@bounded unit (@IMAGE R (cart R unit) lift s)) /\ (~ (s = (@EMPTY R)))) -> (forall x : R, (@IN R x s) -> Rle x (sup s)) /\ (forall b : R, (forall x : R, (@IN R x s) -> Rle x b) -> Rle (sup s) b). +Axiom thm_SUP_INSERT : forall x : R, forall s : R -> Prop, (@bounded unit (@IMAGE R (cart R unit) lift s)) -> (sup (@INSERT R x s)) = (@COND R (s = (@EMPTY R)) x (Rmax x (sup s))). +Axiom thm_BOUNDED_HAS_INF : forall s : R -> Prop, ((@bounded unit (@IMAGE R (cart R unit) lift s)) /\ (~ (s = (@EMPTY R)))) -> (forall x : R, (@IN R x s) -> Rle (inf s) x) /\ (forall b : R, (forall x : R, (@IN R x s) -> Rle b x) -> Rle b (inf s)). +Axiom thm_INF_INSERT : forall x : R, forall s : R -> Prop, (@bounded unit (@IMAGE R (cart R unit) lift s)) -> (inf (@INSERT R x s)) = (@COND R (s = (@EMPTY R)) x (Rmin x (inf s))). +Axiom thm_SUBSET_BALLS : forall {N' : Type'}, (forall a : cart R N', forall a' : cart R N', forall r : R, forall r' : R, (@SUBSET (cart R N') (@ball N' (@pair (cart R N') R a r)) (@ball N' (@pair (cart R N') R a' r'))) = ((Rle (Rplus (@distance N' (@pair (cart R N') (cart R N') a a')) r) r') \/ (Rle r (R_of_N (NUMERAL 0%N))))) /\ ((forall a : cart R N', forall a' : cart R N', forall r : R, forall r' : R, (@SUBSET (cart R N') (@ball N' (@pair (cart R N') R a r)) (@cball N' (@pair (cart R N') R a' r'))) = ((Rle (Rplus (@distance N' (@pair (cart R N') (cart R N') a a')) r) r') \/ (Rle r (R_of_N (NUMERAL 0%N))))) /\ ((forall a : cart R N', forall a' : cart R N', forall r : R, forall r' : R, (@SUBSET (cart R N') (@cball N' (@pair (cart R N') R a r)) (@ball N' (@pair (cart R N') R a' r'))) = ((Rlt (Rplus (@distance N' (@pair (cart R N') (cart R N') a a')) r) r') \/ (Rlt r (R_of_N (NUMERAL 0%N))))) /\ (forall a : cart R N', forall a' : cart R N', forall r : R, forall r' : R, (@SUBSET (cart R N') (@cball N' (@pair (cart R N') R a r)) (@cball N' (@pair (cart R N') R a' r'))) = ((Rle (Rplus (@distance N' (@pair (cart R N') (cart R N') a a')) r) r') \/ (Rlt r (R_of_N (NUMERAL 0%N))))))). +Axiom thm_INTER_BALLS_EQ_EMPTY : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, ((@INTER (cart R N') (@ball N' (@pair (cart R N') R a r)) (@ball N' (@pair (cart R N') R b s))) = (@EMPTY (cart R N'))) = ((Rle r (R_of_N (NUMERAL 0%N))) \/ ((Rle s (R_of_N (NUMERAL 0%N))) \/ (Rle (Rplus r s) (@distance N' (@pair (cart R N') (cart R N') a b)))))) /\ ((forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, ((@INTER (cart R N') (@ball N' (@pair (cart R N') R a r)) (@cball N' (@pair (cart R N') R b s))) = (@EMPTY (cart R N'))) = ((Rle r (R_of_N (NUMERAL 0%N))) \/ ((Rlt s (R_of_N (NUMERAL 0%N))) \/ (Rle (Rplus r s) (@distance N' (@pair (cart R N') (cart R N') a b)))))) /\ ((forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, ((@INTER (cart R N') (@cball N' (@pair (cart R N') R a r)) (@ball N' (@pair (cart R N') R b s))) = (@EMPTY (cart R N'))) = ((Rlt r (R_of_N (NUMERAL 0%N))) \/ ((Rle s (R_of_N (NUMERAL 0%N))) \/ (Rle (Rplus r s) (@distance N' (@pair (cart R N') (cart R N') a b)))))) /\ (forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, ((@INTER (cart R N') (@cball N' (@pair (cart R N') R a r)) (@cball N' (@pair (cart R N') R b s))) = (@EMPTY (cart R N'))) = ((Rlt r (R_of_N (NUMERAL 0%N))) \/ ((Rlt s (R_of_N (NUMERAL 0%N))) \/ (Rlt (Rplus r s) (@distance N' (@pair (cart R N') (cart R N') a b)))))))). +Axiom thm_compact : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) = (forall f : N -> cart R N', (forall n : N, @IN (cart R N') (f n) s) -> exists l : cart R N', exists r : N -> N, (@IN (cart R N') l s) /\ ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp N' N (@o N N (cart R N') f r) l sequentially))). +Axiom thm_COMPACT_IN_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact_in (cart R N') (@euclidean N') s) = (@compact N' s). +Axiom thm_COMPACT_SPACE_EUCLIDEAN_SUBTOPOLOGY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact_space (cart R N') (@subtopology (cart R N') (@euclidean N') s)) = (@compact N' s). +Axiom thm_COMPACT_IMP_CLOSED : forall {_720599 : Type'}, forall s : (cart R _720599) -> Prop, (@compact _720599 s) -> @closed _720599 s. +Axiom thm_COMPACT_IMP_BOUNDED : forall {_720610 : Type'}, forall s : (cart R _720610) -> Prop, (@compact _720610 s) -> @bounded _720610 s. +Axiom thm_COMPACT_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', @compact N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_BOUNDED_CLOSED_IMP_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@closed N' s)) -> @compact N' s. +Axiom thm_COMPACT_EQ_BOUNDED_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) = ((@bounded N' s) /\ (@closed N' s)). +Axiom thm_NOT_COMPACT_UNIV : forall {N' : Type'}, ~ (@compact N' (@UNIV (cart R N'))). +Axiom thm_COMPACT_CLOSURE : forall {_720836 : Type'}, forall s : (cart R _720836) -> Prop, (@compact _720836 (@closure _720836 s)) = (@bounded _720836 s). +Axiom thm_CLOSED_IN_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t)) -> @compact N' t. +Axiom thm_CLOSED_IN_COMPACT_EQ : forall {_720888 : Type'}, forall s : (cart R _720888) -> Prop, forall t : (cart R _720888) -> Prop, (@compact _720888 s) -> (@closed_in (cart R _720888) (@subtopology (cart R _720888) (@euclidean _720888) s) t) = ((@compact _720888 t) /\ (@SUBSET (cart R _720888) t s)). +Axiom thm_COMPACT_EQ_HEINE_BOREL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) = (forall f : ((cart R N') -> Prop) -> Prop, ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> @_open N' t) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') f))) -> exists f' : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) f' f) /\ ((@FINITE ((cart R N') -> Prop) f') /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') f')))). +Axiom thm_COMPACT_IMP_HEINE_BOREL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> forall f : ((cart R N') -> Prop) -> Prop, ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> @_open N' t) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') f))) -> exists f' : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) f' f) /\ ((@FINITE ((cart R N') -> Prop) f') /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') f'))). +Axiom thm_COMPACT_EQ_BOLZANO_WEIERSTRASS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) = (forall t : (cart R N') -> Prop, ((@INFINITE (cart R N') t) /\ (@SUBSET (cart R N') t s)) -> exists x : cart R N', (@IN (cart R N') x s) /\ (@limit_point_of N' x t)). +Axiom thm_BOLZANO_WEIERSTRASS_IMP_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (forall t : (cart R N') -> Prop, ((@INFINITE (cart R N') t) /\ (@SUBSET (cart R N') t s)) -> exists x : cart R N', (@IN (cart R N') x s) /\ (@limit_point_of N' x t)) -> @closed N' s. +Axiom thm_COMPACT_IMP_TOTALLY_BOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists k : (cart R N') -> Prop, (@FINITE (cart R N') k) /\ ((@SUBSET (cart R N') k s) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') (@IMAGE (cart R N') ((cart R N') -> Prop) (fun x : cart R N' => @ball N' (@pair (cart R N') R x e)) k)))). +Axiom thm_HEINE_BOREL_LEMMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> forall t : ((cart R N') -> Prop) -> Prop, ((@SUBSET (cart R N') s (@UNIONS (cart R N') t)) /\ (forall b : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) b t) -> @_open N' b)) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists b : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) b t) /\ (@SUBSET (cart R N') (@ball N' (@pair (cart R N') R x e)) b)). +Axiom thm_HEINE_BOREL_IMP_BOLZANO_WEIERSTRASS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (forall f : ((cart R N') -> Prop) -> Prop, ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> @_open N' t) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') f))) -> exists f' : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) f' f) /\ ((@FINITE ((cart R N') -> Prop) f') /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') f')))) -> forall t : (cart R N') -> Prop, ((@INFINITE (cart R N') t) /\ (@SUBSET (cart R N') t s)) -> exists x : cart R N', (@IN (cart R N') x s) /\ (@limit_point_of N' x t). +Axiom thm_BOLZANO_WEIERSTRASS_IMP_BOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (forall t : (cart R N') -> Prop, ((@INFINITE (cart R N') t) /\ (@SUBSET (cart R N') t s)) -> exists x : cart R N', @limit_point_of N' x t) -> @bounded N' s. +Axiom thm_COMPACT_EQ_HEINE_BOREL_SUBTOPOLOGY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) = (forall f : ((cart R N') -> Prop) -> Prop, ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') f))) -> exists f' : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) f' f) /\ ((@FINITE ((cart R N') -> Prop) f') /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') f')))). +Axiom thm_COMPACT_EQ_HEINE_BOREL_GEN : forall {N' : Type'}, forall c : (cart R N') -> Prop, (@compact N' c) = (forall f : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@SUBSET (cart R N') c (@UNIONS (cart R N') f))) -> exists f' : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) f' f) /\ ((@FINITE ((cart R N') -> Prop) f') /\ (@SUBSET (cart R N') c (@UNIONS (cart R N') f')))). +Axiom thm_BOUNDED_EQ_BOLZANO_WEIERSTRASS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) = (forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') t s) /\ (@INFINITE (cart R N') t)) -> exists x : cart R N', @limit_point_of N' x t). +Axiom thm_BOLZANO_WEIERSTRASS : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@INFINITE (cart R N') s)) -> exists x : cart R N', @limit_point_of N' x s. +Axiom thm_BOUNDED_EQ_TOTALLY_BOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists k : (cart R N') -> Prop, (@FINITE (cart R N') k) /\ ((@SUBSET (cart R N') k s) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') (@IMAGE (cart R N') ((cart R N') -> Prop) (fun x : cart R N' => @ball N' (@pair (cart R N') R x e)) k))))). +Axiom thm_CONVERGENT_BOUNDED_MONOTONE_1 : forall s : N -> cart R unit, ((@bounded unit (@IMAGE N (cart R unit) s (@UNIV N))) /\ ((forall n : N, Rle (drop (s n)) (drop (s (N.succ n)))) \/ (forall n : N, Rle (drop (s (N.succ n))) (drop (s n))))) -> exists l : cart R unit, @FImp unit N s l sequentially. +Axiom thm_CONVERGENT_BOUNDED_INCREASING_1 : forall s : N -> cart R unit, forall b : R, ((forall n : N, Rle (drop (s n)) (drop (s (N.succ n)))) /\ (forall n : N, Rle (drop (s n)) b)) -> exists l : cart R unit, @FImp unit N s l sequentially. +Axiom thm_CONVERGENT_BOUNDED_DECREASING_1 : forall s : N -> cart R unit, forall b : R, ((forall n : N, Rle (drop (s (N.succ n))) (drop (s n))) /\ (forall n : N, Rle b (drop (s n)))) -> exists l : cart R unit, @FImp unit N s l sequentially. +Axiom thm_cauchy : forall {N' : Type'}, forall s : N -> cart R N', (@cauchy N' s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, ((N.ge m N'') /\ (N.ge n N'')) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (s m) (s n))) e). +Axiom thm_CAUCHY_IN_EUCLIDEAN : forall {N' : Type'}, forall s : N -> cart R N', (@cauchy_in (cart R N') (@euclidean_metric N') s) = (@cauchy N' s). +Axiom thm_complete : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@complete N' s) = (forall f : N -> cart R N', ((forall n : N, @IN (cart R N') (f n) s) /\ (@cauchy N' f)) -> exists l : cart R N', (@IN (cart R N') l s) /\ (@FImp N' N f l sequentially)). +Axiom thm_CAUCHY : forall {N' : Type'}, forall s : N -> cart R N', (@cauchy N' s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, (N.ge n N'') -> Rlt (@distance N' (@pair (cart R N') (cart R N') (s n) (s N''))) e). +Axiom thm_CAUCHY_SUBSEQUENCE : forall {N' : Type'}, forall x : N -> cart R N', forall r : N -> N, ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@cauchy N' x)) -> @cauchy N' (@o N N (cart R N') x r). +Axiom thm_CAUCHY_OFFSET : forall {N' : Type'}, forall k : N, forall x : N -> cart R N', (@cauchy N' (fun i : N => x (N.add i k))) = (@cauchy N' x). +Axiom thm_CONVERGENT_IMP_CAUCHY : forall {_722040 : Type'}, forall s : N -> cart R _722040, forall l : cart R _722040, (@FImp _722040 N s l sequentially) -> @cauchy _722040 s. +Axiom thm_CAUCHY_IMP_BOUNDED : forall {N' : Type'}, forall s : N -> cart R N', (@cauchy N' s) -> @bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_2773 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2773 (exists n : N, y = (s n)) y)). +Axiom thm_CAUCHY_CONVERGENT_SUBSEQUENCE : forall {N' : Type'} (l : cart R N'), forall x : N -> cart R N', forall r : N -> N, ((@cauchy N' x) /\ ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp N' N (@o N N (cart R N') x r) l sequentially))) -> @FImp N' N x l sequentially. +Axiom thm_COMPACT_IMP_COMPLETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> @complete N' s. +Axiom thm_COMPLETE_UNIV : forall {N' : Type'}, @complete N' (@UNIV (cart R N')). +Axiom thm_COMPLETE_EQ_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@complete N' s) = (@closed N' s). +Axiom thm_CONVERGENT_EQ_CAUCHY : forall {_722212 : Type'}, forall s : N -> cart R _722212, (exists l : cart R _722212, @FImp _722212 N s l sequentially) = (@cauchy _722212 s). +Axiom thm_CONVERGENT_IMP_BOUNDED : forall {_722230 : Type'}, forall s : N -> cart R _722230, forall l : cart R _722230, (@FImp _722230 N s l sequentially) -> @bounded _722230 (@IMAGE N (cart R _722230) s (@UNIV N)). +Axiom thm_CONVERGENT_BOUNDED_MONOTONE_EQ : forall s : N -> cart R unit, ((forall n : N, Rle (drop (s n)) (drop (s (N.succ n)))) \/ (forall n : N, Rle (drop (s (N.succ n))) (drop (s n)))) -> (exists l : cart R unit, @FImp unit N s l sequentially) = (@bounded unit (@IMAGE N (cart R unit) s (@UNIV N))). +Axiom thm_MCOMPLETE_EUCLIDEAN : forall {N' : Type'}, @mcomplete (cart R N') (@euclidean_metric N'). +Axiom thm_COMPLETELY_METRIZABLE_SPACE_EUCLIDEAN : forall {_722297 : Type'}, @completely_metrizable_space (cart R _722297) (@euclidean _722297). +Axiom thm_CONVERGENT_EQ_ZERO_OSCILLATION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall s : (cart R M) -> Prop, (exists l : cart R N', @FImp N' (cart R M) f l (@within (cart R M) (@_at M a) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists u : (cart R M) -> Prop, (@_open M u) /\ ((@IN (cart R M) a u) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x (@DELETE (cart R M) (@INTER (cart R M) s u) a)) /\ (@IN (cart R M) y (@DELETE (cart R M) (@INTER (cart R M) s u) a))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) e))). +Axiom thm_CONVERGENT_EQ_CAUCHY_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (exists l : cart R N', @FImp N' (cart R M) f l (@within (cart R M) (@_at M a) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, forall x' : cart R M, ((@IN (cart R M) x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@distance M (@pair (cart R M) (cart R M) x a))) /\ ((Rlt (@distance M (@pair (cart R M) (cart R M) x a)) d) /\ ((@IN (cart R M) x' s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@distance M (@pair (cart R M) (cart R M) x' a))) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x' a)) d)))))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) (f x'))) e)). +Axiom thm_CONVERGENT_EQ_CAUCHY_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, (exists l : cart R N', @FImp N' (cart R M) f l (@_at M a)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, forall x' : cart R M, ((Rlt (R_of_N (NUMERAL 0%N)) (@distance M (@pair (cart R M) (cart R M) x a))) /\ ((Rlt (@distance M (@pair (cart R M) (cart R M) x a)) d) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@distance M (@pair (cart R M) (cart R M) x' a))) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x' a)) d)))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) (f x'))) e)). +Axiom thm_SEQUENCE_INFINITE_LEMMA : forall {N' : Type'}, forall f : N -> cart R N', forall l : cart R N', ((forall n : N, ~ ((f n) = l)) /\ (@FImp N' N f l sequentially)) -> @INFINITE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_2776 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2776 (exists n : N, y = (f n)) y)). +Axiom thm_LIMPT_OF_SEQUENCE_SUBSEQUENCE : forall {N' : Type'}, forall f : N -> cart R N', forall l : cart R N', (@limit_point_of N' l (@IMAGE N (cart R N') f (@UNIV N))) -> exists r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp N' N (@o N N (cart R N') f r) l sequentially). +Axiom thm_SEQUENCE_UNIQUE_LIMPT : forall {N' : Type'}, forall f : N -> cart R N', forall l : cart R N', forall l' : cart R N', ((@FImp N' N f l sequentially) /\ (@limit_point_of N' l' (@GSPEC (cart R N') (fun GEN_PVAR_2779 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2779 (exists n : N, y = (f n)) y)))) -> l' = l. +Axiom thm_COMPACT_SEQUENCE_WITH_LIMIT_GEN : forall {N' : Type'}, forall f : N -> cart R N', forall l : cart R N', forall s : (cart R N') -> Prop, ((@FImp N' N f l sequentially) /\ (@SUBSET (cart R N') s (@IMAGE N (cart R N') f (@UNIV N)))) -> @compact N' (@INSERT (cart R N') l s). +Axiom thm_COMPACT_SEQUENCE_WITH_LIMIT : forall {N' : Type'}, forall f : N -> cart R N', forall l : cart R N', (@FImp N' N f l sequentially) -> @compact N' (@INSERT (cart R N') l (@IMAGE N (cart R N') f (@UNIV N))). +Axiom thm_BOLZANO_WEIERSTRASS_CONTRAPOS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@SUBSET (cart R N') t s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> ~ (@limit_point_of N' x t)))) -> @FINITE (cart R N') t. +Axiom thm_DISCRETE_BOUNDED_IMP_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (Rlt (@vector_norm N' (@vector_sub N' y x)) e))) -> y = x) /\ (@bounded N' s))) -> @FINITE (cart R N') s. +Axiom thm_FINITE_EQ_BOUNDED_DISCRETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) = ((@bounded N' s) /\ (exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (Rlt (@vector_norm N' (@vector_sub N' y x)) r))) -> x = y))). +Axiom thm_DISCRETE_EQ_FINITE_BOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> ((@GSPEC (cart R N') (fun GEN_PVAR_2782 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2782 (@limit_point_of N' x s) x)) = (@EMPTY (cart R N'))) = (@FINITE (cart R N') s). +Axiom thm_DISCRETE_EQ_FINITE_BOUNDED_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@bounded N' t) /\ (@SUBSET (cart R N') t s))) -> ((@GSPEC (cart R N') (fun GEN_PVAR_2785 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2785 ((@IN (cart R N') x s) /\ (@limit_point_of N' x t)) x)) = (@EMPTY (cart R N'))) = (@FINITE (cart R N') t). +Axiom thm_DISCRETE_EQ_FINITE_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ (@SUBSET (cart R N') t s)) -> ((@GSPEC (cart R N') (fun GEN_PVAR_2786 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2786 ((@IN (cart R N') x s) /\ (@limit_point_of N' x t)) x)) = (@EMPTY (cart R N'))) = (@FINITE (cart R N') t). +Axiom thm_COMPACT_EMPTY : forall {_723550 : Type'}, @compact _723550 (@EMPTY (cart R _723550)). +Axiom thm_COMPACT_UNION : forall {_723568 : Type'}, forall s : (cart R _723568) -> Prop, forall t : (cart R _723568) -> Prop, ((@compact _723568 s) /\ (@compact _723568 t)) -> @compact _723568 (@UNION (cart R _723568) s t). +Axiom thm_COMPACT_INTER : forall {_723590 : Type'}, forall s : (cart R _723590) -> Prop, forall t : (cart R _723590) -> Prop, ((@compact _723590 s) /\ (@compact _723590 t)) -> @compact _723590 (@INTER (cart R _723590) s t). +Axiom thm_COMPACT_INTER_CLOSED : forall {_723612 : Type'}, forall s : (cart R _723612) -> Prop, forall t : (cart R _723612) -> Prop, ((@compact _723612 s) /\ (@closed _723612 t)) -> @compact _723612 (@INTER (cart R _723612) s t). +Axiom thm_CLOSED_INTER_COMPACT : forall {_723634 : Type'}, forall s : (cart R _723634) -> Prop, forall t : (cart R _723634) -> Prop, ((@closed _723634 s) /\ (@compact _723634 t)) -> @compact _723634 (@INTER (cart R _723634) s t). +Axiom thm_COMPACT_INTERS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @compact N' s) /\ (~ (f = (@EMPTY ((cart R N') -> Prop))))) -> @compact N' (@INTERS (cart R N') f). +Axiom thm_FINITE_IMP_CLOSED : forall {_723679 : Type'}, forall s : (cart R _723679) -> Prop, (@FINITE (cart R _723679) s) -> @closed _723679 s. +Axiom thm_FINITE_IMP_CLOSED_IN : forall {_723704 : Type'}, forall s : (cart R _723704) -> Prop, forall t : (cart R _723704) -> Prop, ((@FINITE (cart R _723704) s) /\ (@SUBSET (cart R _723704) s t)) -> @closed_in (cart R _723704) (@subtopology (cart R _723704) (@euclidean _723704) t) s. +Axiom thm_FINITE_IMP_COMPACT : forall {_723715 : Type'}, forall s : (cart R _723715) -> Prop, (@FINITE (cart R _723715) s) -> @compact _723715 s. +Axiom thm_COMPACT_SING : forall {_723722 : Type'}, forall a : cart R _723722, @compact _723722 (@INSERT (cart R _723722) a (@EMPTY (cart R _723722))). +Axiom thm_COMPACT_INSERT : forall {_723753 : Type'}, forall a : cart R _723753, forall s : (cart R _723753) -> Prop, (@compact _723753 s) -> @compact _723753 (@INSERT (cart R _723753) a s). +Axiom thm_CLOSURE_SING : forall {N' : Type'}, forall x : cart R N', (@closure N' (@INSERT (cart R N') x (@EMPTY (cart R N')))) = (@INSERT (cart R N') x (@EMPTY (cart R N'))). +Axiom thm_CLOSURE_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@closure N' (@INSERT (cart R N') a s)) = (@INSERT (cart R N') a (@closure N' s)). +Axiom thm_CLOSURE_DELETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@closure N' (@DELETE (cart R N') s a)) = (@COND ((cart R N') -> Prop) (@limit_point_of N' a s) (@closure N' s) (@DELETE (cart R N') (@closure N' s) a)). +Axiom thm_CLOSED_INSERT : forall {_723870 : Type'}, forall a : cart R _723870, forall s : (cart R _723870) -> Prop, (@closed _723870 s) -> @closed _723870 (@INSERT (cart R _723870) a s). +Axiom thm_CONNECTED_2 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@connected N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))) = (a = b). +Axiom thm_COMPACT_CBALL : forall {_723911 : Type'}, forall x : cart R _723911, forall e : R, @compact _723911 (@cball _723911 (@pair (cart R _723911) R x e)). +Axiom thm_COMPACT_FRONTIER_BOUNDED : forall {_723924 : Type'}, forall s : (cart R _723924) -> Prop, (@bounded _723924 s) -> @compact _723924 (@frontier _723924 s). +Axiom thm_COMPACT_FRONTIER : forall {_723937 : Type'}, forall s : (cart R _723937) -> Prop, (@compact _723937 s) -> @compact _723937 (@frontier _723937 s). +Axiom thm_BOUNDED_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @bounded N' (@frontier N' s). +Axiom thm_FRONTIER_SUBSET_COMPACT : forall {_723963 : Type'}, forall s : (cart R _723963) -> Prop, (@compact _723963 s) -> @SUBSET (cart R _723963) (@frontier _723963 s) s. +Axiom thm_OPEN_DELETE : forall {_723995 : Type'}, forall s : (cart R _723995) -> Prop, forall x : cart R _723995, (@_open _723995 s) -> @_open _723995 (@DELETE (cart R _723995) s x). +Axiom thm_OPEN_IN_DELETE : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall a : cart R N', (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) (@DELETE (cart R N') s a). +Axiom thm_CLOSED_INTERS_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) = (forall e : R, @compact N' (@INTER (cart R N') (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) e)) s)). +Axiom thm_COMPACT_UNIONS : forall {_724135 : Type'}, forall s : ((cart R _724135) -> Prop) -> Prop, ((@FINITE ((cart R _724135) -> Prop) s) /\ (forall t : (cart R _724135) -> Prop, (@IN ((cart R _724135) -> Prop) t s) -> @compact _724135 t)) -> @compact _724135 (@UNIONS (cart R _724135) s). +Axiom thm_COMPACT_DIFF : forall {_724170 : Type'}, forall s : (cart R _724170) -> Prop, forall t : (cart R _724170) -> Prop, ((@compact _724170 s) /\ (@_open _724170 t)) -> @compact _724170 (@DIFF (cart R _724170) s t). +Axiom thm_COMPACT_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, @compact N' (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_BOUNDED_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, @bounded N' (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_CLOSED_SPHERE : forall {_724222 : Type'}, forall a : cart R _724222, forall r : R, @closed _724222 (@sphere _724222 (@pair (cart R _724222) R a r)). +Axiom thm_CLOSURE_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (@closure N' (@sphere N' (@pair (cart R N') R a r))) = (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_FRONTIER_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (@frontier N' (@sphere N' (@pair (cart R N') R a r))) = (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_FRONTIER_SING : forall {N' : Type'}, forall a : cart R N', (@frontier N' (@INSERT (cart R N') a (@EMPTY (cart R N')))) = (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_COMPACT_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@_open N' s)) = (s = (@EMPTY (cart R N'))). +Axiom thm_COMPACT_IMP_FIP : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : ((cart R N') -> Prop) -> Prop, ((@compact N' s) /\ ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> @closed N' t) /\ (forall f' : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f') /\ (@SUBSET ((cart R N') -> Prop) f' f)) -> ~ ((@INTER (cart R N') s (@INTERS (cart R N') f')) = (@EMPTY (cart R N')))))) -> ~ ((@INTER (cart R N') s (@INTERS (cart R N') f)) = (@EMPTY (cart R N'))). +Axiom thm_CLOSED_IMP_FIP : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : ((cart R N') -> Prop) -> Prop, ((@closed N' s) /\ ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> @closed N' t) /\ ((exists t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) /\ (@bounded N' t)) /\ (forall f' : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f') /\ (@SUBSET ((cart R N') -> Prop) f' f)) -> ~ ((@INTER (cart R N') s (@INTERS (cart R N') f')) = (@EMPTY (cart R N'))))))) -> ~ ((@INTER (cart R N') s (@INTERS (cart R N') f)) = (@EMPTY (cart R N'))). +Axiom thm_CLOSED_IMP_FIP_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : ((cart R N') -> Prop) -> Prop, ((@closed N' s) /\ ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> @compact N' t) /\ (forall f' : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f') /\ (@SUBSET ((cart R N') -> Prop) f' f)) -> ~ ((@INTER (cart R N') s (@INTERS (cart R N') f')) = (@EMPTY (cart R N')))))) -> ~ ((@INTER (cart R N') s (@INTERS (cart R N') f)) = (@EMPTY (cart R N'))). +Axiom thm_CLOSED_FIP : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> @closed N' t) /\ ((exists t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) /\ (@bounded N' t)) /\ (forall f' : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f') /\ (@SUBSET ((cart R N') -> Prop) f' f)) -> ~ ((@INTERS (cart R N') f') = (@EMPTY (cart R N')))))) -> ~ ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))). +Axiom thm_COMPACT_FIP : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> @compact N' t) /\ (forall f' : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f') /\ (@SUBSET ((cart R N') -> Prop) f' f)) -> ~ ((@INTERS (cart R N') f') = (@EMPTY (cart R N'))))) -> ~ ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))). +Axiom thm_BOUNDED_CLOSED_NEST : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, ((forall n : N, @closed N' (s n)) /\ ((forall n : N, ~ ((s n) = (@EMPTY (cart R N')))) /\ ((forall m : N, forall n : N, (N.le m n) -> @SUBSET (cart R N') (s n) (s m)) /\ (@bounded N' (s (NUMERAL 0%N)))))) -> exists a : cart R N', forall n : N, @IN (cart R N') a (s n). +Axiom thm_DECREASING_CLOSED_NEST : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, ((forall n : N, @closed N' (s n)) /\ ((forall n : N, ~ ((s n) = (@EMPTY (cart R N')))) /\ ((forall m : N, forall n : N, (N.le m n) -> @SUBSET (cart R N') (s n) (s m)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists n : N, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (s n)) /\ (@IN (cart R N') y (s n))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) e)))) -> exists a : cart R N', forall n : N, @IN (cart R N') a (s n). +Axiom thm_DECREASING_CLOSED_NEST_SING : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, ((forall n : N, @closed N' (s n)) /\ ((forall n : N, ~ ((s n) = (@EMPTY (cart R N')))) /\ ((forall m : N, forall n : N, (N.le m n) -> @SUBSET (cart R N') (s n) (s m)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists n : N, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (s n)) /\ (@IN (cart R N') y (s n))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) e)))) -> exists a : cart R N', (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_2787 : (cart R N') -> Prop => exists t : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_2787 (exists n : N, t = (s n)) t))) = (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_BOUNDED_CLOSED_CHAIN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall b : (cart R N') -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed N' s) /\ (~ (s = (@EMPTY (cart R N'))))) /\ ((forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s)) /\ ((@IN ((cart R N') -> Prop) b f) /\ (@bounded N' b)))) -> ~ ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))). +Axiom thm_COMPACT_CHAIN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@compact N' s) /\ (~ (s = (@EMPTY (cart R N'))))) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s))) -> ~ ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))). +Axiom thm_COMPACT_NEST : forall {_725190 : Type'}, forall s : N -> (cart R _725190) -> Prop, ((forall n : N, (@compact _725190 (s n)) /\ (~ ((s n) = (@EMPTY (cart R _725190))))) /\ (forall m : N, forall n : N, (N.le m n) -> @SUBSET (cart R _725190) (s n) (s m))) -> ~ ((@INTERS (cart R _725190) (@GSPEC ((cart R _725190) -> Prop) (fun GEN_PVAR_2788 : (cart R _725190) -> Prop => exists n : N, @SETSPEC ((cart R _725190) -> Prop) GEN_PVAR_2788 (@IN N n (@UNIV N)) (s n)))) = (@EMPTY (cart R _725190))). +Axiom thm_SEQUENCE_ESCAPES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : N -> cart R N', (forall n : N, @IN (cart R N') (x n) s) -> (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k s) /\ (@compact N' k)) -> @FINITE N (@GSPEC N (fun GEN_PVAR_2789 : N => exists n : N, @SETSPEC N GEN_PVAR_2789 (@IN (cart R N') (x n) k) n))) = (~ (exists y : cart R N', exists r : N -> N, (@IN (cart R N') y s) /\ ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp N' N (@o N N (cart R N') x r) y sequentially)))). +Axiom thm_SEQUENCE_ESCAPES_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : N -> cart R N', (forall n : N, @IN (cart R N') (x n) s) -> (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k s) /\ (@compact N' k)) -> @eventually N (fun n : N => ~ (@IN (cart R N') (x n) k)) sequentially) = (~ (exists y : cart R N', exists r : N -> N, (@IN (cart R N') y s) /\ ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp N' N (@o N N (cart R N') x r) y sequentially)))). +Axiom thm_CONVERGENT_SUBSEQUENCE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : N -> cart R N', (forall n : N, @IN (cart R N') (x n) s) -> (exists y : cart R N', exists r : N -> N, (@IN (cart R N') y s) /\ ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp N' N (@o N N (cart R N') x r) y sequentially))) = (exists k : (cart R N') -> Prop, (@SUBSET (cart R N') k s) /\ ((@compact N' k) /\ (@INFINITE N (@GSPEC N (fun GEN_PVAR_2790 : N => exists n : N, @SETSPEC N GEN_PVAR_2790 (@IN (cart R N') (x n) k) n))))). +Axiom thm_UNIFORMLY_CONVERGENT_EQ_CAUCHY : forall {A N' : Type'}, forall P : A -> Prop, forall s : N -> A -> cart R N', (exists l : A -> cart R N', forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : A, ((N.le N'' n) /\ (P x)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (s n x) (l x))) e) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, forall x : A, ((N.le N'' m) /\ ((N.le N'' n) /\ (P x))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (s m x) (s n x))) e). +Axiom thm_UNIFORMLY_CONVERGENT_EQ_CAUCHY_ALT : forall {A N' : Type'}, forall P : A -> Prop, forall s : N -> A -> cart R N', (exists l : A -> cart R N', forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : A, ((N.le N'' n) /\ (P x)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (s n x) (l x))) e) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, forall x : A, ((N.le N'' m) /\ ((N.le N'' n) /\ ((N.lt m n) /\ (P x)))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (s m x) (s n x))) e). +Axiom thm_UNIFORMLY_CAUCHY_IMP_UNIFORMLY_CONVERGENT : forall {A N' : Type'}, forall P : A -> Prop, forall s : N -> A -> cart R N', forall l : A -> cart R N', ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, forall x : A, ((N.le N'' m) /\ ((N.le N'' n) /\ (P x))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (s m x) (s n x))) e) /\ (forall x : A, (P x) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, (N.le N'' n) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (s n x) (l x))) e)) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : A, ((N.le N'' n) /\ (P x)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (s n x) (l x))) e. +Axiom thm_continuous : forall {_726086 _726088 : Type'}, forall f : _726088 -> cart R _726086, forall net' : net _726088, (@continuous _726086 _726088 f net') = (@FImp _726086 _726088 f (f (@netlimit _726088 net')) net'). +Axiom thm_CONTINUOUS_TRIVIAL_LIMIT : forall {_726103 _726106 : Type'}, forall f : _726103 -> cart R _726106, forall net' : net _726103, (@trivial_limit _726103 net') -> @continuous _726106 _726103 f net'. +Axiom thm_CONTINUOUS_WITHIN : forall {_726129 M : Type'} (s : (cart R M) -> Prop), forall f : (cart R M) -> cart R _726129, forall x : cart R M, (@continuous _726129 (cart R M) f (@within (cart R M) (@_at M x) s)) = (@FImp _726129 (cart R M) f (f x) (@within (cart R M) (@_at M x) s)). +Axiom thm_LIM_CONTINUOUS_SELF_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall x : cart R M, forall y : cart R N', ((@continuous N' (cart R M) f (@within (cart R M) (@_at M x) s)) /\ ((f x) = y)) -> @FImp N' (cart R M) f y (@within (cart R M) (@_at M x) s). +Axiom thm_CONTINUOUS_AT : forall {_726204 N' : Type'}, forall f : (cart R N') -> cart R _726204, forall x : cart R N', (@continuous _726204 (cart R N') f (@_at N' x)) = (@FImp _726204 (cart R N') f (f x) (@_at N' x)). +Axiom thm_LIM_CONTINUOUS_SELF_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall y : cart R N', ((@continuous N' (cart R M) f (@_at M x)) /\ ((f x) = y)) -> @FImp N' (cart R M) f y (@_at M x). +Axiom thm_CONTINUOUS_AT_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall s : (cart R M) -> Prop, (@continuous N' (cart R M) f (@_at M x)) -> @continuous N' (cart R M) f (@within (cart R M) (@_at M x) s). +Axiom thm_CONTINUOUS_WITHIN_CLOSED_NONTRIVIAL : forall {_726294 _726301 : Type'} (f : (cart R _726294) -> cart R _726301), forall a : cart R _726294, forall s : (cart R _726294) -> Prop, ((@closed _726294 s) /\ (~ (@IN (cart R _726294) a s))) -> @continuous _726301 (cart R _726294) f (@within (cart R _726294) (@_at _726294 a) s). +Axiom thm_CONTINUOUS_TRANSFORM_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall x : cart R M, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN (cart R M) x s) /\ ((forall x' : cart R M, ((@IN (cart R M) x' s) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x' x)) d)) -> (f x') = (g x')) /\ (@continuous N' (cart R M) f (@within (cart R M) (@_at M x) s))))) -> @continuous N' (cart R M) g (@within (cart R M) (@_at M x) s). +Axiom thm_CONTINUOUS_TRANSFORM_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall x : cart R M, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x' : cart R M, (Rlt (@distance M (@pair (cart R M) (cart R M) x' x)) d) -> (f x') = (g x')) /\ (@continuous N' (cart R M) f (@_at M x)))) -> @continuous N' (cart R M) g (@_at M x). +Axiom thm_CONTINUOUS_TRANSFORM_WITHIN_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, ((@_open M s) /\ ((@IN (cart R M) a s) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (g x)) /\ (@continuous N' (cart R M) f (@_at M a))))) -> @continuous N' (cart R M) g (@_at M a). +Axiom thm_CONTINUOUS_TRANSFORM_WITHIN_OPEN_IN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall a : cart R M, ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) t) s) /\ ((@IN (cart R M) a s) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (g x)) /\ (@continuous N' (cart R M) f (@within (cart R M) (@_at M a) t))))) -> @continuous N' (cart R M) g (@within (cart R M) (@_at M a) t). +Axiom thm_CONTINUOUS_TRANSFORM_WITHIN_SET_IMP : forall {_726617 _726632 : Type'}, forall f : (cart R _726632) -> cart R _726617, forall a : cart R _726632, forall s : (cart R _726632) -> Prop, forall t : (cart R _726632) -> Prop, ((@eventually (cart R _726632) (fun x : cart R _726632 => (@IN (cart R _726632) x t) -> @IN (cart R _726632) x s) (@_at _726632 a)) /\ (@continuous _726617 (cart R _726632) f (@within (cart R _726632) (@_at _726632 a) s))) -> @continuous _726617 (cart R _726632) f (@within (cart R _726632) (@_at _726632 a) t). +Axiom thm_continuous_within : forall {_726638 _726644 : Type'} (s : (cart R _726644) -> Prop) (f : (cart R _726644) -> cart R _726638) (x : cart R _726644), (@continuous _726638 (cart R _726644) f (@within (cart R _726644) (@_at _726644 x) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R _726644, ((@IN (cart R _726644) x' s) /\ (Rlt (@distance _726644 (@pair (cart R _726644) (cart R _726644) x' x)) d)) -> Rlt (@distance _726638 (@pair (cart R _726638) (cart R _726638) (f x') (f x))) e)). +Axiom thm_continuous_at : forall {_726707 _726710 : Type'} (f : (cart R _726710) -> cart R _726707) (x : cart R _726710), (@continuous _726707 (cart R _726710) f (@_at _726710 x)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R _726710, (Rlt (@distance _726710 (@pair (cart R _726710) (cart R _726710) x' x)) d) -> Rlt (@distance _726707 (@pair (cart R _726707) (cart R _726707) (f x') (f x))) e)). +Axiom thm_CONTINUOUS_WITHIN_COMPARISON : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, forall a : cart R M, ((@continuous P (cart R M) g (@within (cart R M) (@_at M a) s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (@distance N' (@pair (cart R N') (cart R N') (f a) (f x))) (@distance P (@pair (cart R P) (cart R P) (g a) (g x))))) -> @continuous N' (cart R M) f (@within (cart R M) (@_at M a) s). +Axiom thm_CONTINUOUS_EQ_CAUCHY_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@continuous N' (cart R M) f (@within (cart R M) (@_at M a) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, forall x' : cart R M, ((@IN (cart R M) x (@INSERT (cart R M) a s)) /\ ((Rlt (@distance M (@pair (cart R M) (cart R M) x a)) d) /\ ((@IN (cart R M) x' (@INSERT (cart R M) a s)) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x' a)) d)))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) (f x'))) e)). +Axiom thm_CONTINUOUS_EQ_CAUCHY_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, (@continuous N' (cart R M) f (@_at M a)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, forall x' : cart R M, ((Rlt (@distance M (@pair (cart R M) (cart R M) x a)) d) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x' a)) d)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) (f x'))) e)). +Axiom thm_CONTINUOUS_WITHIN_BALL : forall {_727199 _727205 : Type'}, forall f : (cart R _727199) -> cart R _727205, forall s : (cart R _727199) -> Prop, forall x : cart R _727199, (@continuous _727205 (cart R _727199) f (@within (cart R _727199) (@_at _727199 x) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (@SUBSET (cart R _727205) (@IMAGE (cart R _727199) (cart R _727205) f (@INTER (cart R _727199) (@ball _727199 (@pair (cart R _727199) R x d)) s)) (@ball _727205 (@pair (cart R _727205) R (f x) e)))). +Axiom thm_CONTINUOUS_AT_BALL : forall {_727258 _727264 : Type'}, forall f : (cart R _727258) -> cart R _727264, forall x : cart R _727258, (@continuous _727264 (cart R _727258) f (@_at _727258 x)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (@SUBSET (cart R _727264) (@IMAGE (cart R _727258) (cart R _727264) f (@ball _727258 (@pair (cart R _727258) R x d))) (@ball _727264 (@pair (cart R _727264) R (f x) e)))). +Axiom thm_continuous_on : forall {_727321 _727330 : Type'}, forall s : (cart R _727321) -> Prop, forall f : (cart R _727321) -> cart R _727330, (@continuous_on _727321 _727330 f s) = (forall x : cart R _727321, (@IN (cart R _727321) x s) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R _727321, ((@IN (cart R _727321) x' s) /\ (Rlt (@distance _727321 (@pair (cart R _727321) (cart R _727321) x' x)) d)) -> Rlt (@distance _727330 (@pair (cart R _727330) (cart R _727330) (f x') (f x))) e)). +Axiom thm_uniformly_continuous_on : forall {_727392 _727401 : Type'}, forall s : (cart R _727392) -> Prop, forall f : (cart R _727392) -> cart R _727401, (@uniformly_continuous_on _727392 _727401 f s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R _727392, forall x' : cart R _727392, ((@IN (cart R _727392) x s) /\ ((@IN (cart R _727392) x' s) /\ (Rlt (@distance _727392 (@pair (cart R _727392) (cart R _727392) x' x)) d))) -> Rlt (@distance _727401 (@pair (cart R _727401) (cart R _727401) (f x') (f x))) e)). +Axiom thm_CONTINUOUS_MAP_EUCLIDEAN : forall {M N' : Type'}, forall f : (cart R N') -> cart R M, forall s : (cart R N') -> Prop, (@continuous_map (cart R N') (cart R M) (@pair (Topology (cart R N')) (Topology (cart R M)) (@subtopology (cart R N') (@euclidean N') s) (@euclidean M)) f) = (@continuous_on N' M f s). +Axiom thm_CONTINUOUS_MAP_EUCLIDEAN_EUCLIDEAN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@continuous_map (cart R M) (cart R N') (@pair (Topology (cart R M)) (Topology (cart R N')) (@euclidean M) (@euclidean N')) f) = (@continuous_on M N' f (@UNIV (cart R M))). +Axiom thm_CONTINUOUS_MAP_EUCLIDEAN2 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@continuous_map (cart R M) (cart R N') (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f) = ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_EUCLIDEAN : forall {M N' : Type'}, forall f : (cart R N') -> cart R M, forall s : (cart R N') -> Prop, (@uniformly_continuous_map (cart R M) (cart R N') (@pair (Metric (cart R N')) (Metric (cart R M)) (@submetric (cart R N') (@euclidean_metric N') s) (@euclidean_metric M)) f) = (@uniformly_continuous_on N' M f s). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_LIFT : @uniformly_continuous_map (cart R unit) R (@pair (Metric R) (Metric (cart R unit)) real_euclidean_metric (@euclidean_metric unit)) lift. +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_DROP : @uniformly_continuous_map R (cart R unit) (@pair (Metric (cart R unit)) (Metric R) (@euclidean_metric unit) real_euclidean_metric) drop. +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_EQ_LIFT : forall {A : Type'}, forall m : Metric A, forall f : A -> R, (@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) f) = (@uniformly_continuous_map (cart R unit) A (@pair (Metric A) (Metric (cart R unit)) m (@euclidean_metric unit)) (@o A R (cart R unit) lift f)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_EQ_DROP : forall {A : Type'}, forall m : Metric A, forall f : A -> cart R unit, (@uniformly_continuous_map (cart R unit) A (@pair (Metric A) (Metric (cart R unit)) m (@euclidean_metric unit)) f) = (@uniformly_continuous_map R A (@pair (Metric A) (Metric R) m real_euclidean_metric) (@o A (cart R unit) R drop f)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_LIFT_EQ : forall {A : Type'}, forall m : Metric A, forall f : (cart R unit) -> A, (@uniformly_continuous_map A (cart R unit) (@pair (Metric (cart R unit)) (Metric A) (@euclidean_metric unit) m) f) = (@uniformly_continuous_map A R (@pair (Metric R) (Metric A) real_euclidean_metric m) (@o R (cart R unit) A f lift)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_DROP_EQ : forall {A : Type'}, forall m : Metric A, forall f : R -> A, (@uniformly_continuous_map A R (@pair (Metric R) (Metric A) real_euclidean_metric m) f) = (@uniformly_continuous_map A (cart R unit) (@pair (Metric (cart R unit)) (Metric A) (@euclidean_metric unit) m) (@o (cart R unit) R A f drop)). +Axiom thm_CONTINUOUS_ON_COMPARISON : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, ((@continuous_on M P g s) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) (@distance P (@pair (cart R P) (cart R P) (g x) (g y))))) -> @continuous_on M N' f s. +Axiom thm_UNIFORMLY_CONTINUOUS_IMP_CONTINUOUS : forall {_727793 _727794 : Type'}, forall f : (cart R _727794) -> cart R _727793, forall s : (cart R _727794) -> Prop, (@uniformly_continuous_on _727794 _727793 f s) -> @continuous_on _727794 _727793 f s. +Axiom thm_CONTINUOUS_AT_IMP_CONTINUOUS_ON : forall {_727821 _727828 : Type'}, forall f : (cart R _727828) -> cart R _727821, forall s : (cart R _727828) -> Prop, (forall x : cart R _727828, (@IN (cart R _727828) x s) -> @continuous _727821 (cart R _727828) f (@_at _727828 x)) -> @continuous_on _727828 _727821 f s. +Axiom thm_CONTINUOUS_ON_EQ_CONTINUOUS_WITHIN : forall {_727842 _727861 : Type'}, forall f : (cart R _727861) -> cart R _727842, forall s : (cart R _727861) -> Prop, (@continuous_on _727861 _727842 f s) = (forall x : cart R _727861, (@IN (cart R _727861) x s) -> @continuous _727842 (cart R _727861) f (@within (cart R _727861) (@_at _727861 x) s)). +Axiom thm_CONTINUOUS_ON : forall {_727875 N' : Type'}, forall f : (cart R N') -> cart R _727875, forall s : (cart R N') -> Prop, (@continuous_on N' _727875 f s) = (forall x : cart R N', (@IN (cart R N') x s) -> @FImp _727875 (cart R N') f (f x) (@within (cart R N') (@_at N' x) s)). +Axiom thm_CONTINUOUS_ON_EQ_CONTINUOUS_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@_open M s) -> (@continuous_on M N' f s) = (forall x : cart R M, (@IN (cart R M) x s) -> @continuous N' (cart R M) f (@_at M x)). +Axiom thm_CONTINUOUS_WITHIN_OPEN_IN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@IN (cart R M) a t) /\ (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) t)) -> (@continuous N' (cart R M) f (@within (cart R M) (@_at M a) t)) = (@continuous N' (cart R M) f (@within (cart R M) (@_at M a) s)). +Axiom thm_CONTINUOUS_WITHIN_SUBSET : forall {_728005 _728023 : Type'}, forall f : (cart R _728023) -> cart R _728005, forall s : (cart R _728023) -> Prop, forall t : (cart R _728023) -> Prop, forall x : cart R _728023, ((@continuous _728005 (cart R _728023) f (@within (cart R _728023) (@_at _728023 x) s)) /\ (@SUBSET (cart R _728023) t s)) -> @continuous _728005 (cart R _728023) f (@within (cart R _728023) (@_at _728023 x) t). +Axiom thm_CONTINUOUS_ON_SUBSET : forall {_728043 _728044 : Type'}, forall f : (cart R _728044) -> cart R _728043, forall s : (cart R _728044) -> Prop, forall t : (cart R _728044) -> Prop, ((@continuous_on _728044 _728043 f s) /\ (@SUBSET (cart R _728044) t s)) -> @continuous_on _728044 _728043 f t. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_SUBSET : forall {_728071 _728072 : Type'}, forall f : (cart R _728072) -> cart R _728071, forall s : (cart R _728072) -> Prop, forall t : (cart R _728072) -> Prop, ((@uniformly_continuous_on _728072 _728071 f s) /\ (@SUBSET (cart R _728072) t s)) -> @uniformly_continuous_on _728072 _728071 f t. +Axiom thm_CONTINUOUS_ON_INTERIOR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall x : cart R M, ((@continuous_on M N' f s) /\ (@IN (cart R M) x (@interior M s))) -> @continuous N' (cart R M) f (@_at M x). +Axiom thm_CONTINUOUS_ON_EQ : forall {_728149 _728150 : Type'}, forall f : (cart R _728150) -> cart R _728149, forall g : (cart R _728150) -> cart R _728149, forall s : (cart R _728150) -> Prop, ((forall x : cart R _728150, (@IN (cart R _728150) x s) -> (f x) = (g x)) /\ (@continuous_on _728150 _728149 f s)) -> @continuous_on _728150 _728149 g s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_EQ : forall {_728188 _728189 : Type'}, forall f : (cart R _728189) -> cart R _728188, forall g : (cart R _728189) -> cart R _728188, forall s : (cart R _728189) -> Prop, ((forall x : cart R _728189, (@IN (cart R _728189) x s) -> (f x) = (g x)) /\ (@uniformly_continuous_on _728189 _728188 f s)) -> @uniformly_continuous_on _728189 _728188 g s. +Axiom thm_CONTINUOUS_ON_RESTRICT : forall {M N' : Type'}, forall P : (cart R M) -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall x : cart R M, (@IN (cart R M) x s) -> P x) -> (@continuous_on M N' (fun x : cart R M => @COND (cart R N') (P x) (f x) (g x)) s) = (@continuous_on M N' f s). +Axiom thm_UNIFORMLY_CONTINUOUS_ON_RESTRICT : forall {M N' : Type'}, forall P : (cart R M) -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall x : cart R M, (@IN (cart R M) x s) -> P x) -> (@uniformly_continuous_on M N' (fun x : cart R M => @COND (cart R N') (P x) (f x) (g x)) s) = (@uniformly_continuous_on M N' f s). +Axiom thm_CONTINUOUS_ON_SING : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, @continuous_on M N' f (@INSERT (cart R M) a (@EMPTY (cart R M))). +Axiom thm_CONTINUOUS_ON_EMPTY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', @continuous_on M N' f (@EMPTY (cart R M)). +Axiom thm_CONTINUOUS_ON_NO_LIMPT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (~ (exists x : cart R M, @limit_point_of M x s)) -> @continuous_on M N' f s. +Axiom thm_CONTINUOUS_ON_FINITE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@FINITE (cart R M) s) -> @continuous_on M N' f s. +Axiom thm_CONTRACTION_IMP_CONTINUOUS_ON : forall {M N' : Type'} (s : (cart R M) -> Prop), forall f : (cart R M) -> cart R N', (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) (@distance M (@pair (cart R M) (cart R M) x y))) -> @continuous_on M N' f s. +Axiom thm_ISOMETRY_ON_IMP_CONTINUOUS_ON : forall {M N' : Type'} (s : (cart R M) -> Prop), forall f : (cart R M) -> cart R N', (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance M (@pair (cart R M) (cart R M) x y))) -> @continuous_on M N' f s. +Axiom thm_CONTINUOUS_WITHIN_SEQUENTIALLY : forall {_728536 N' : Type'}, forall f : (cart R N') -> cart R _728536, forall s : (cart R N') -> Prop, forall a : cart R N', (@continuous _728536 (cart R N') f (@within (cart R N') (@_at N' a) s)) = (forall x : N -> cart R N', ((forall n : N, @IN (cart R N') (x n) s) /\ (@FImp N' N x a sequentially)) -> @FImp _728536 N (@o N (cart R N') (cart R _728536) f x) (f a) sequentially). +Axiom thm_CONTINUOUS_AT_SEQUENTIALLY : forall {_728588 N' : Type'}, forall f : (cart R N') -> cart R _728588, forall a : cart R N', (@continuous _728588 (cart R N') f (@_at N' a)) = (forall x : N -> cart R N', (@FImp N' N x a sequentially) -> @FImp _728588 N (@o N (cart R N') (cart R _728588) f x) (f a) sequentially). +Axiom thm_CONTINUOUS_ON_SEQUENTIALLY : forall {_728627 N' : Type'}, forall f : (cart R N') -> cart R _728627, forall s : (cart R N') -> Prop, (@continuous_on N' _728627 f s) = (forall x : N -> cart R N', forall a : cart R N', ((@IN (cart R N') a s) /\ ((forall n : N, @IN (cart R N') (x n) s) /\ (@FImp N' N x a sequentially))) -> @FImp _728627 N (@o N (cart R N') (cart R _728627) f x) (f a) sequentially). +Axiom thm_UNIFORMLY_CONTINUOUS_ON_SEQUENTIALLY_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@uniformly_continuous_on M N' f s) = (forall e : R, forall x : N -> cart R M, forall y : N -> cart R M, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((forall n : N, @IN (cart R M) (x n) s) /\ ((forall n : N, @IN (cart R M) (y n) s) /\ (@FImp M N (fun n : N => @vector_sub M (x n) (y n)) (@vec M (NUMERAL 0%N)) sequentially)))) -> exists n : N, Rlt (@distance N' (@pair (cart R N') (cart R N') (f (x n)) (f (y n)))) e). +Axiom thm_UNIFORMLY_CONTINUOUS_ON_SEQUENTIALLY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@uniformly_continuous_on M N' f s) = (forall x : N -> cart R M, forall y : N -> cart R M, ((forall n : N, @IN (cart R M) (x n) s) /\ ((forall n : N, @IN (cart R M) (y n) s) /\ (@FImp M N (fun n : N => @vector_sub M (x n) (y n)) (@vec M (NUMERAL 0%N)) sequentially))) -> @FImp N' N (fun n : N => @vector_sub N' (f (x n)) (f (y n))) (@vec N' (NUMERAL 0%N)) sequentially). +Axiom thm_LIM_WITHIN_SEQUENTIALLY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, forall l : cart R N', (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) s)) = (forall x : N -> cart R M, ((forall n : N, @IN (cart R M) (x n) (@DELETE (cart R M) s a)) /\ (@FImp M N x a sequentially)) -> @FImp N' N (@o N (cart R M) (cart R N') f x) l sequentially). +Axiom thm_LIM_WITHIN_SEQUENTIALLY_INJ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, forall l : cart R N', (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) s)) = (forall x : N -> cart R M, ((forall n : N, @IN (cart R M) (x n) (@DELETE (cart R M) s a)) /\ ((forall m : N, forall n : N, ((x m) = (x n)) = (m = n)) /\ (@FImp M N x a sequentially))) -> @FImp N' N (@o N (cart R M) (cart R N') f x) l sequentially). +Axiom thm_LIM_WITHIN_SEQUENTIALLY_DECREASING : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, forall l : cart R N', (@FImp N' (cart R M) f l (@within (cart R M) (@_at M a) s)) = (forall x : N -> cart R M, ((forall n : N, @IN (cart R M) (x n) (@DELETE (cart R M) s a)) /\ ((forall m : N, forall n : N, (N.lt m n) -> Rlt (@distance M (@pair (cart R M) (cart R M) (x n) a)) (@distance M (@pair (cart R M) (cart R M) (x m) a))) /\ (@FImp M N x a sequentially))) -> @FImp N' N (@o N (cart R M) (cart R N') f x) l sequentially). +Axiom thm_LIM_AT_SEQUENTIALLY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall l : cart R N', (@FImp N' (cart R M) f l (@_at M a)) = (forall x : N -> cart R M, ((forall n : N, ~ ((x n) = a)) /\ (@FImp M N x a sequentially)) -> @FImp N' N (@o N (cart R M) (cart R N') f x) l sequentially). +Axiom thm_CONTINUOUS_WITHIN_SEQUENTIALLY_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@continuous N' (cart R M) f (@within (cart R M) (@_at M a) s)) = (forall e : R, forall x : N -> cart R M, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((forall n : N, @IN (cart R M) (x n) (@DELETE (cart R M) s a)) /\ ((@FImp M N x a sequentially) /\ (forall m : N, forall n : N, ((x m) = (x n)) = (m = n))))) -> exists n : N, Rlt (@distance N' (@pair (cart R N') (cart R N') (f (x n)) (f a))) e). +Axiom thm_CONTINUOUS_WITHIN_SEQUENTIALLY_INJ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@continuous N' (cart R M) f (@within (cart R M) (@_at M a) s)) = (forall x : N -> cart R M, ((forall n : N, @IN (cart R M) (x n) (@DELETE (cart R M) s a)) /\ ((forall m : N, forall n : N, ((x m) = (x n)) = (m = n)) /\ (@FImp M N x a sequentially))) -> @FImp N' N (@o N (cart R M) (cart R N') f x) (f a) sequentially). +Axiom thm_CONTINUOUS_AT_SEQUENTIALLY_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, (@continuous N' (cart R M) f (@_at M a)) = (forall e : R, forall x : N -> cart R M, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((forall n : N, ~ ((x n) = a)) /\ ((@FImp M N x a sequentially) /\ (forall m : N, forall n : N, ((x m) = (x n)) = (m = n))))) -> exists n : N, Rlt (@distance N' (@pair (cart R N') (cart R N') (f (x n)) (f a))) e). +Axiom thm_CONTINUOUS_AT_SEQUENTIALLY_INJ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, (@continuous N' (cart R M) f (@_at M a)) = (forall x : N -> cart R M, ((forall n : N, ~ ((x n) = a)) /\ ((forall m : N, forall n : N, ((x m) = (x n)) = (m = n)) /\ (@FImp M N x a sequentially))) -> @FImp N' N (@o N (cart R M) (cart R N') f x) (f a) sequentially). +Axiom thm_LIM_CONTINUOUS : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', ((@continuous N' A f net') /\ ((f (@netlimit A net')) = l)) -> @FImp N' A f l net'. +Axiom thm_LIM_CONTINUOUS_FUNCTION : forall {_729910 _729913 _729927 : Type'}, forall f : (cart R _729913) -> cart R _729910, forall net' : net _729927, forall g : _729927 -> cart R _729913, forall l : cart R _729913, ((@continuous _729910 (cart R _729913) f (@_at _729913 l)) /\ (@FImp _729913 _729927 g l net')) -> @FImp _729910 _729927 (fun x : _729927 => f (g x)) (f l) net'. +Axiom thm_LIM_CONTINUOUS_FUNCTION_WITHIN : forall {A M N' : Type'}, forall net' : net A, forall f : (cart R M) -> cart R N', forall g : A -> cart R M, forall l : cart R M, forall s : (cart R M) -> Prop, ((@continuous N' (cart R M) f (@within (cart R M) (@_at M l) s)) /\ ((@FImp M A g l net') /\ (@eventually A (fun a : A => @IN (cart R M) (g a) s) net'))) -> @FImp N' A (fun x : A => f (g x)) (f l) net'. +Axiom thm_LIMIT_POINT_OF_IMAGE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall u : (cart R M) -> Prop, forall x : cart R M, ((@limit_point_of M x s) /\ ((@continuous N' (cart R M) f (@within (cart R M) (@_at M x) s)) /\ ((@_open M u) /\ ((@IN (cart R M) x u) /\ (@FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_2800 : cart R M => exists z : cart R M, @SETSPEC (cart R M) GEN_PVAR_2800 ((@IN (cart R M) z (@INTER (cart R M) s u)) /\ ((f z) = (f x))) z))))))) -> @limit_point_of N' (f x) (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LIMIT_POINT_OF_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall x : cart R M, ((@limit_point_of M x s) /\ ((@continuous N' (cart R M) f (@within (cart R M) (@_at M x) s)) /\ (forall x' : cart R M, forall y : cart R M, ((@IN (cart R M) x' s) /\ ((@IN (cart R M) y s) /\ ((f x') = (f y)))) -> x' = y))) -> @limit_point_of N' (f x) (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_CONTINUOUS_IMAGE_NESTED_INTERS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : N -> (cart R M) -> Prop, ((@continuous_on M N' f (s (NUMERAL 0%N))) /\ ((forall n : N, @compact M (s n)) /\ (forall n : N, @SUBSET (cart R M) (s (N.succ n)) (s n)))) -> (@IMAGE (cart R M) (cart R N') f (@INTERS (cart R M) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_2801 : (cart R M) -> Prop => exists n : N, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_2801 (@IN N n (@UNIV N)) (s n))))) = (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_2802 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_2802 (@IN N n (@UNIV N)) (@IMAGE (cart R M) (cart R N') f (s n))))). +Axiom thm_CONTINUOUS_IMAGE_NESTED_INTERS_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : N -> (cart R M) -> Prop, forall m : N, ((@continuous_on M N' f (s m)) /\ ((forall n : N, (N.le m n) -> @compact M (s n)) /\ (forall n : N, (N.le m n) -> @SUBSET (cart R M) (s (N.succ n)) (s n)))) -> (@IMAGE (cart R M) (cart R N') f (@INTERS (cart R M) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_2803 : (cart R M) -> Prop => exists n : N, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_2803 (N.le m n) (s n))))) = (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_2804 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_2804 (N.le m n) (@IMAGE (cart R M) (cart R N') f (s n))))). +Axiom thm_CONTINUOUS_CONST : forall {_730777 _730780 : Type'}, forall net' : net _730780, forall c : cart R _730777, @continuous _730777 _730780 (fun x : _730780 => c) net'. +Axiom thm_CONTINUOUS_CMUL : forall {_730798 _730809 : Type'}, forall f : _730809 -> cart R _730798, forall c : R, forall net' : net _730809, (@continuous _730798 _730809 f net') -> @continuous _730798 _730809 (fun x : _730809 => @percent _730798 c (f x)) net'. +Axiom thm_CONTINUOUS_NEG : forall {_730833 _730836 : Type'}, forall f : _730833 -> cart R _730836, forall net' : net _730833, (@continuous _730836 _730833 f net') -> @continuous _730836 _730833 (fun x : _730833 => @vector_neg _730836 (f x)) net'. +Axiom thm_CONTINUOUS_ADD : forall {_730875 _730878 : Type'}, forall f : _730875 -> cart R _730878, forall g : _730875 -> cart R _730878, forall net' : net _730875, ((@continuous _730878 _730875 f net') /\ (@continuous _730878 _730875 g net')) -> @continuous _730878 _730875 (fun x : _730875 => @vector_add _730878 (f x) (g x)) net'. +Axiom thm_CONTINUOUS_SUB : forall {_730917 _730920 : Type'}, forall f : _730917 -> cart R _730920, forall g : _730917 -> cart R _730920, forall net' : net _730917, ((@continuous _730920 _730917 f net') /\ (@continuous _730920 _730917 g net')) -> @continuous _730920 _730917 (fun x : _730917 => @vector_sub _730920 (f x) (g x)) net'. +Axiom thm_CONTINUOUS_ABS : forall {A N' : Type'}, forall f : A -> cart R N', forall net' : net A, (@continuous N' A f net') -> @continuous N' A (fun x : A => @lambda R N' (fun i : N => Rabs (@dollar R N' (f x) i))) net'. +Axiom thm_CONTINUOUS_LIFT_ABS_COMPONENT : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall k : N, (@continuous N' A f net') -> @continuous unit A (fun x : A => lift (Rabs (@dollar R N' (f x) k))) net'. +Axiom thm_CONTINUOUS_LIFT_ABS : forall {A : Type'}, forall net' : net A, forall f : A -> R, (@continuous unit A (fun x : A => lift (f x)) net') -> @continuous unit A (fun x : A => lift (Rabs (f x))) net'. +Axiom thm_CONTINUOUS_MAX : forall {A N' : Type'}, forall f : A -> cart R N', forall g : A -> cart R N', forall net' : net A, ((@continuous N' A f net') /\ (@continuous N' A g net')) -> @continuous N' A (fun x : A => @lambda R N' (fun i : N => Rmax (@dollar R N' (f x) i) (@dollar R N' (g x) i))) net'. +Axiom thm_CONTINUOUS_MIN : forall {A N' : Type'}, forall f : A -> cart R N', forall g : A -> cart R N', forall net' : net A, ((@continuous N' A f net') /\ (@continuous N' A g net')) -> @continuous N' A (fun x : A => @lambda R N' (fun i : N => Rmin (@dollar R N' (f x) i) (@dollar R N' (g x) i))) net'. +Axiom thm_CONTINUOUS_MAX_1 : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, ((@continuous unit A (fun x : A => lift (f x)) net') /\ (@continuous unit A (fun x : A => lift (g x)) net')) -> @continuous unit A (fun x : A => lift (Rmax (f x) (g x))) net'. +Axiom thm_CONTINUOUS_MIN_1 : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, ((@continuous unit A (fun x : A => lift (f x)) net') /\ (@continuous unit A (fun x : A => lift (g x)) net')) -> @continuous unit A (fun x : A => lift (Rmin (f x) (g x))) net'. +Axiom thm_CONTINUOUS_VSUM : forall {_731237 _731252 _731253 : Type'}, forall net' : net _731252, forall f : _731253 -> _731252 -> cart R _731237, forall s : _731253 -> Prop, ((@FINITE _731253 s) /\ (forall a : _731253, (@IN _731253 a s) -> @continuous _731237 _731252 (f a) net')) -> @continuous _731237 _731252 (fun x : _731252 => @vsum _731253 _731237 s (fun a : _731253 => f a x)) net'. +Axiom thm_CONTINUOUS_COMPONENTWISE_LIFT : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', (@continuous N' A f net') = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @continuous unit A (fun x : A => lift (@dollar R N' (f x) i)) net'). +Axiom thm_CONTINUOUS_ON_CONST : forall {_731309 _731310 : Type'}, forall s : (cart R _731310) -> Prop, forall c : cart R _731309, @continuous_on _731310 _731309 (fun x : cart R _731310 => c) s. +Axiom thm_CONTINUOUS_ON_CMUL : forall {_731330 _731335 : Type'}, forall f : (cart R _731335) -> cart R _731330, forall c : R, forall s : (cart R _731335) -> Prop, (@continuous_on _731335 _731330 f s) -> @continuous_on _731335 _731330 (fun x : cart R _731335 => @percent _731330 c (f x)) s. +Axiom thm_CONTINUOUS_ON_NEG : forall {_731360 _731368 : Type'}, forall f : (cart R _731360) -> cart R _731368, forall s : (cart R _731360) -> Prop, (@continuous_on _731360 _731368 f s) -> @continuous_on _731360 _731368 (fun x : cart R _731360 => @vector_neg _731368 (f x)) s. +Axiom thm_CONTINUOUS_ON_ADD : forall {_731400 _731410 : Type'}, forall f : (cart R _731400) -> cart R _731410, forall g : (cart R _731400) -> cart R _731410, forall s : (cart R _731400) -> Prop, ((@continuous_on _731400 _731410 f s) /\ (@continuous_on _731400 _731410 g s)) -> @continuous_on _731400 _731410 (fun x : cart R _731400 => @vector_add _731410 (f x) (g x)) s. +Axiom thm_CONTINUOUS_ON_SUB : forall {_731442 _731452 : Type'}, forall f : (cart R _731442) -> cart R _731452, forall g : (cart R _731442) -> cart R _731452, forall s : (cart R _731442) -> Prop, ((@continuous_on _731442 _731452 f s) /\ (@continuous_on _731442 _731452 g s)) -> @continuous_on _731442 _731452 (fun x : cart R _731442 => @vector_sub _731452 (f x) (g x)) s. +Axiom thm_CONTINUOUS_ON_LIFT_ABS_COMPONENT : forall {M N' : Type'} (k : N), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) -> @continuous_on M unit (fun x : cart R M => lift (Rabs (@dollar R N' (f x) k))) s. +Axiom thm_CONTINUOUS_ON_LIFT_ABS : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@continuous_on N' unit (fun x : cart R N' => lift (f x)) s) -> @continuous_on N' unit (fun x : cart R N' => lift (Rabs (f x))) s. +Axiom thm_CONTINUOUS_ON_ABS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) -> @continuous_on M N' (fun x : cart R M => @lambda R N' (fun i : N => Rabs (@dollar R N' (f x) i))) s. +Axiom thm_CONTINUOUS_ON_MAX : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@continuous_on M N' g s)) -> @continuous_on M N' (fun x : cart R M => @lambda R N' (fun i : N => Rmax (@dollar R N' (f x) i) (@dollar R N' (g x) i))) s. +Axiom thm_CONTINUOUS_ON_MIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@continuous_on M N' g s)) -> @continuous_on M N' (fun x : cart R M => @lambda R N' (fun i : N => Rmin (@dollar R N' (f x) i) (@dollar R N' (g x) i))) s. +Axiom thm_CONTINUOUS_ON_MAX_1 : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@continuous_on N' unit (fun x : cart R N' => lift (f x)) s) /\ (@continuous_on N' unit (fun x : cart R N' => lift (g x)) s)) -> @continuous_on N' unit (fun x : cart R N' => lift (Rmax (f x) (g x))) s. +Axiom thm_CONTINUOUS_ON_MIN_1 : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@continuous_on N' unit (fun x : cart R N' => lift (f x)) s) /\ (@continuous_on N' unit (fun x : cart R N' => lift (g x)) s)) -> @continuous_on N' unit (fun x : cart R N' => lift (Rmin (f x) (g x))) s. +Axiom thm_CONTINUOUS_ON_VSUM : forall {_731765 _731771 _731781 : Type'}, forall t : (cart R _731771) -> Prop, forall f : _731781 -> (cart R _731771) -> cart R _731765, forall s : _731781 -> Prop, ((@FINITE _731781 s) /\ (forall a : _731781, (@IN _731781 a s) -> @continuous_on _731771 _731765 (f a) t)) -> @continuous_on _731771 _731765 (fun x : cart R _731771 => @vsum _731781 _731765 s (fun a : _731781 => f a x)) t. +Axiom thm_CONTINUOUS_ON_COMPONENTWISE_LIFT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @continuous_on M unit (fun x : cart R M => lift (@dollar R N' (f x) i)) s). +Axiom thm_CONTINUOUS_ON_REFLECT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' (fun x : cart R M => f (@vector_neg M x)) (@IMAGE (cart R M) (cart R M) (@vector_neg M) s)) = (@continuous_on M N' f s). +Axiom thm_UNIFORMLY_CONTINUOUS_ON_CONST : forall {_731914 _731915 : Type'}, forall s : (cart R _731915) -> Prop, forall c : cart R _731914, @uniformly_continuous_on _731915 _731914 (fun x : cart R _731915 => c) s. +Axiom thm_LINEAR_UNIFORMLY_CONTINUOUS_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@linear M N' f) -> @uniformly_continuous_on M N' f s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_COMPOSE : forall {_732034 _732035 _732038 : Type'}, forall f : (cart R _732035) -> cart R _732034, forall g : (cart R _732034) -> cart R _732038, forall s : (cart R _732035) -> Prop, ((@uniformly_continuous_on _732035 _732034 f s) /\ (@uniformly_continuous_on _732034 _732038 g (@IMAGE (cart R _732035) (cart R _732034) f s))) -> @uniformly_continuous_on _732035 _732038 (@o (cart R _732035) (cart R _732034) (cart R _732038) g f) s. +Axiom thm_BILINEAR_UNIFORMLY_CONTINUOUS_ON_COMPOSE : forall {M N' P Q : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall h : (cart R N') -> (cart R P) -> cart R Q, forall s : (cart R M) -> Prop, ((@uniformly_continuous_on M N' f s) /\ ((@uniformly_continuous_on M P g s) /\ ((@bilinear P Q N' h) /\ ((@bounded N' (@IMAGE (cart R M) (cart R N') f s)) /\ (@bounded P (@IMAGE (cart R M) (cart R P) g s)))))) -> @uniformly_continuous_on M Q (fun x : cart R M => h (f x) (g x)) s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_MUL : forall {M N' : Type'}, forall f : (cart R M) -> R, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@uniformly_continuous_on M unit (@o (cart R M) R (cart R unit) lift f) s) /\ ((@uniformly_continuous_on M N' g s) /\ ((@bounded unit (@IMAGE (cart R M) (cart R unit) (@o (cart R M) R (cart R unit) lift f) s)) /\ (@bounded N' (@IMAGE (cart R M) (cart R N') g s))))) -> @uniformly_continuous_on M N' (fun x : cart R M => @percent N' (f x) (g x)) s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_CMUL : forall {_732409 _732414 : Type'}, forall f : (cart R _732414) -> cart R _732409, forall c : R, forall s : (cart R _732414) -> Prop, (@uniformly_continuous_on _732414 _732409 f s) -> @uniformly_continuous_on _732414 _732409 (fun x : cart R _732414 => @percent _732409 c (f x)) s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_VMUL : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall c : (cart R M) -> R, forall v : cart R N', (@uniformly_continuous_on M unit (@o (cart R M) R (cart R unit) lift c) s) -> @uniformly_continuous_on M N' (fun x : cart R M => @percent N' (c x) v) s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_NEG : forall {_732480 _732488 : Type'}, forall f : (cart R _732480) -> cart R _732488, forall s : (cart R _732480) -> Prop, (@uniformly_continuous_on _732480 _732488 f s) -> @uniformly_continuous_on _732480 _732488 (fun x : cart R _732480 => @vector_neg _732488 (f x)) s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_ADD : forall {_732520 _732530 : Type'}, forall f : (cart R _732520) -> cart R _732530, forall g : (cart R _732520) -> cart R _732530, forall s : (cart R _732520) -> Prop, ((@uniformly_continuous_on _732520 _732530 f s) /\ (@uniformly_continuous_on _732520 _732530 g s)) -> @uniformly_continuous_on _732520 _732530 (fun x : cart R _732520 => @vector_add _732530 (f x) (g x)) s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_SUB : forall {_732562 _732572 : Type'}, forall f : (cart R _732562) -> cart R _732572, forall g : (cart R _732562) -> cart R _732572, forall s : (cart R _732562) -> Prop, ((@uniformly_continuous_on _732562 _732572 f s) /\ (@uniformly_continuous_on _732562 _732572 g s)) -> @uniformly_continuous_on _732562 _732572 (fun x : cart R _732562 => @vector_sub _732572 (f x) (g x)) s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_VSUM : forall {_732606 _732612 _732622 : Type'}, forall t : (cart R _732612) -> Prop, forall f : _732622 -> (cart R _732612) -> cart R _732606, forall s : _732622 -> Prop, ((@FINITE _732622 s) /\ (forall a : _732622, (@IN _732622 a s) -> @uniformly_continuous_on _732612 _732606 (f a) t)) -> @uniformly_continuous_on _732612 _732606 (fun x : cart R _732612 => @vsum _732622 _732606 s (fun a : _732622 => f a x)) t. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_SQRT : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@uniformly_continuous_on N' unit (@o (cart R N') R (cart R unit) lift f) s) -> @uniformly_continuous_on N' unit (fun x : cart R N' => lift (sqrt (f x))) s. +Axiom thm_CONTINUOUS_WITHIN_ID : forall {_732671 : Type'}, forall a : cart R _732671, forall s : (cart R _732671) -> Prop, @continuous _732671 (cart R _732671) (fun x : cart R _732671 => x) (@within (cart R _732671) (@_at _732671 a) s). +Axiom thm_CONTINUOUS_AT_ID : forall {_732684 : Type'}, forall a : cart R _732684, @continuous _732684 (cart R _732684) (fun x : cart R _732684 => x) (@_at _732684 a). +Axiom thm_CONTINUOUS_ON_ID : forall {_732693 : Type'}, forall s : (cart R _732693) -> Prop, @continuous_on _732693 _732693 (fun x : cart R _732693 => x) s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_ID : forall {_732704 : Type'}, forall s : (cart R _732704) -> Prop, @uniformly_continuous_on _732704 _732704 (fun x : cart R _732704 => x) s. +Axiom thm_CONTINUOUS_WITHIN_COMPOSE : forall {_732731 _732740 _732765 : Type'}, forall f : (cart R _732765) -> cart R _732731, forall g : (cart R _732731) -> cart R _732740, forall x : cart R _732765, forall s : (cart R _732765) -> Prop, ((@continuous _732731 (cart R _732765) f (@within (cart R _732765) (@_at _732765 x) s)) /\ (@continuous _732740 (cart R _732731) g (@within (cart R _732731) (@_at _732731 (f x)) (@IMAGE (cart R _732765) (cart R _732731) f s)))) -> @continuous _732740 (cart R _732765) (@o (cart R _732765) (cart R _732731) (cart R _732740) g f) (@within (cart R _732765) (@_at _732765 x) s). +Axiom thm_CONTINUOUS_AT_COMPOSE : forall {_732785 _732791 _732806 : Type'}, forall f : (cart R _732806) -> cart R _732785, forall g : (cart R _732785) -> cart R _732791, forall x : cart R _732806, ((@continuous _732785 (cart R _732806) f (@_at _732806 x)) /\ (@continuous _732791 (cart R _732785) g (@_at _732785 (f x)))) -> @continuous _732791 (cart R _732806) (@o (cart R _732806) (cart R _732785) (cart R _732791) g f) (@_at _732806 x). +Axiom thm_CONTINUOUS_ON_COMPOSE : forall {_732826 _732827 _732830 : Type'}, forall f : (cart R _732827) -> cart R _732826, forall g : (cart R _732826) -> cart R _732830, forall s : (cart R _732827) -> Prop, ((@continuous_on _732827 _732826 f s) /\ (@continuous_on _732826 _732830 g (@IMAGE (cart R _732827) (cart R _732826) f s))) -> @continuous_on _732827 _732830 (@o (cart R _732827) (cart R _732826) (cart R _732830) g f) s. +Axiom thm_CONTINUOUS_WITHIN_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall u : (cart R M) -> Prop, (@continuous N' (cart R M) f (@within (cart R M) (@_at M x) u)) = (forall t : (cart R N') -> Prop, ((@_open N' t) /\ (@IN (cart R N') (f x) t)) -> exists s : (cart R M) -> Prop, (@_open M s) /\ ((@IN (cart R M) x s) /\ (forall x' : cart R M, ((@IN (cart R M) x' s) /\ (@IN (cart R M) x' u)) -> @IN (cart R N') (f x') t))). +Axiom thm_CONTINUOUS_AT_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, (@continuous N' (cart R M) f (@_at M x)) = (forall t : (cart R N') -> Prop, ((@_open N' t) /\ (@IN (cart R N') (f x) t)) -> exists s : (cart R M) -> Prop, (@_open M s) /\ ((@IN (cart R M) x s) /\ (forall x' : cart R M, (@IN (cart R M) x' s) -> @IN (cart R N') (f x') t))). +Axiom thm_CONTINUOUS_ON_OPEN_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) -> (@continuous_on M N' f s) = (forall u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2805 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2805 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))). +Axiom thm_CONTINUOUS_ON_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) = (forall t : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f s)) t) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2806 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2806 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_CONTINUOUS_OPEN_IN_PREIMAGE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u))) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2807 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2807 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x)). +Axiom thm_CONTINUOUS_ON_IMP_OPEN_IN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f s)) t)) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2808 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2808 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_CONTINUOUS_OPEN_IN_PREIMAGE_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, forall v : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v)))) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2809 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2809 ((@IN (cart R M) x u) /\ (@IN (cart R N') (f x) v)) x)). +Axiom thm_CONTINUOUS_ON_CLOSED_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) -> (@continuous_on M N' f s) = (forall u : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2810 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2810 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))). +Axiom thm_CONTINUOUS_ON_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) = (forall t : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f s)) t) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2811 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2811 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_CONTINUOUS_CLOSED_IN_PREIMAGE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u))) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2812 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2812 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x)). +Axiom thm_CONTINUOUS_ON_IMP_CLOSED_IN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f s)) t)) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2813 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2813 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_CONTINUOUS_CLOSED_IN_PREIMAGE_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, forall v : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v)))) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2814 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2814 ((@IN (cart R M) x u) /\ (@IN (cart R N') (f x) v)) x)). +Axiom thm_CONTINUOUS_OPEN_IN_PREIMAGE : forall {_733750 _733752 : Type'}, forall f : (cart R _733750) -> cart R _733752, forall s : (cart R _733750) -> Prop, forall t : (cart R _733752) -> Prop, ((@continuous_on _733750 _733752 f s) /\ (@_open _733752 t)) -> @open_in (cart R _733750) (@subtopology (cart R _733750) (@euclidean _733750) s) (@GSPEC (cart R _733750) (fun GEN_PVAR_2815 : cart R _733750 => exists x : cart R _733750, @SETSPEC (cart R _733750) GEN_PVAR_2815 ((@IN (cart R _733750) x s) /\ (@IN (cart R _733752) (f x) t)) x)). +Axiom thm_CONTINUOUS_CLOSED_IN_PREIMAGE : forall {_733829 _733831 : Type'}, forall f : (cart R _733829) -> cart R _733831, forall s : (cart R _733829) -> Prop, forall t : (cart R _733831) -> Prop, ((@continuous_on _733829 _733831 f s) /\ (@closed _733831 t)) -> @closed_in (cart R _733829) (@subtopology (cart R _733829) (@euclidean _733829) s) (@GSPEC (cart R _733829) (fun GEN_PVAR_2816 : cart R _733829 => exists x : cart R _733829, @SETSPEC (cart R _733829) GEN_PVAR_2816 ((@IN (cart R _733829) x s) /\ (@IN (cart R _733831) (f x) t)) x)). +Axiom thm_CONTINUOUS_OPEN_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@_open M s) /\ (@_open N' t))) -> @_open M (@GSPEC (cart R M) (fun GEN_PVAR_2818 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2818 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_CONTINUOUS_CLOSED_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@closed M s) /\ (@closed N' t))) -> @closed M (@GSPEC (cart R M) (fun GEN_PVAR_2820 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2820 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_CONTINUOUS_OPEN_PREIMAGE_UNIV : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, ((forall x : cart R M, @continuous N' (cart R M) f (@_at M x)) /\ (@_open N' s)) -> @_open M (@GSPEC (cart R M) (fun GEN_PVAR_2821 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2821 (@IN (cart R N') (f x) s) x)). +Axiom thm_CONTINUOUS_CLOSED_PREIMAGE_UNIV : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, ((forall x : cart R M, @continuous N' (cart R M) f (@_at M x)) /\ (@closed N' s)) -> @closed M (@GSPEC (cart R M) (fun GEN_PVAR_2822 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2822 (@IN (cart R N') (f x) s) x)). +Axiom thm_CONTINUOUS_OPEN_IN_PREIMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) = (forall t : (cart R N') -> Prop, (@_open N' t) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2823 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2823 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_CONTINUOUS_CLOSED_IN_PREIMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) = (forall t : (cart R N') -> Prop, (@closed N' t) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2824 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2824 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_RESTRICTION_CONTINUOUS_ON : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall f : (cart R M) -> cart R N', (@SUBSET (cart R M) s t) -> (@continuous_on M N' (@RESTRICTION (cart R M) (cart R N') t f) s) = (@continuous_on M N' f s). +Axiom thm_LINEAR_LIM_0 : forall {_734343 _734347 : Type'}, forall f : (cart R _734347) -> cart R _734343, (@linear _734347 _734343 f) -> @FImp _734343 (cart R _734347) f (@vec _734343 (NUMERAL 0%N)) (@_at _734347 (@vec _734347 (NUMERAL 0%N))). +Axiom thm_LINEAR_CONTINUOUS_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, (@linear M N' f) -> @continuous N' (cart R M) f (@_at M a). +Axiom thm_LINEAR_CONTINUOUS_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall x : cart R M, (@linear M N' f) -> @continuous N' (cart R M) f (@within (cart R M) (@_at M x) s). +Axiom thm_LINEAR_CONTINUOUS_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@linear M N' f) -> @continuous_on M N' f s. +Axiom thm_LINEAR_CONTINUOUS_COMPOSE : forall {A N' P : Type'}, forall net' : net A, forall f : A -> cart R N', forall g : (cart R N') -> cart R P, ((@continuous N' A f net') /\ (@linear N' P g)) -> @continuous P A (fun x : A => g (f x)) net'. +Axiom thm_LINEAR_CONTINUOUS_ON_COMPOSE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@linear N' P g)) -> @continuous_on M P (fun x : cart R M => g (f x)) s. +Axiom thm_CONTINUOUS_LIFT_COMPONENT_COMPOSE : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall i : N, (@continuous N' A f net') -> @continuous unit A (fun x : A => lift (@dollar R N' (f x) i)) net'. +Axiom thm_CONTINUOUS_ON_LIFT_COMPONENT_COMPOSE : forall {M N' : Type'} (i : N), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) -> @continuous_on M unit (fun x : cart R M => lift (@dollar R N' (f x) i)) s. +Axiom thm_BILINEAR_CONTINUOUS_COMPOSE : forall {A M N' P : Type'}, forall net' : net A, forall f : A -> cart R M, forall g : A -> cart R N', forall h : (cart R M) -> (cart R N') -> cart R P, ((@continuous M A f net') /\ ((@continuous N' A g net') /\ (@bilinear N' P M h))) -> @continuous P A (fun x : A => h (f x) (g x)) net'. +Axiom thm_BILINEAR_CONTINUOUS_ON_COMPOSE : forall {_734637 _734643 _734648 _734652 : Type'}, forall f : (cart R _734652) -> cart R _734637, forall g : (cart R _734652) -> cart R _734643, forall h : (cart R _734637) -> (cart R _734643) -> cart R _734648, forall s : (cart R _734652) -> Prop, ((@continuous_on _734652 _734637 f s) /\ ((@continuous_on _734652 _734643 g s) /\ (@bilinear _734643 _734648 _734637 h))) -> @continuous_on _734652 _734648 (fun x : cart R _734652 => h (f x) (g x)) s. +Axiom thm_BILINEAR_CONTINUOUS_ON : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, (@bilinear N' P M bop) -> @continuous_on (finite_sum M N') P (fun z : cart R (finite_sum M N') => bop (@fstcart R M N' z) (@sndcart R M N' z)) (@UNIV (cart R (finite_sum M N'))). +Axiom thm_BILINEAR_DOT : forall {N' : Type'}, @bilinear N' unit N' (fun x : cart R N' => fun y : cart R N' => lift (@dot N' x y)). +Axiom thm_CONTINUOUS_LIFT_DOT2 : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall g : A -> cart R N', ((@continuous N' A f net') /\ (@continuous N' A g net')) -> @continuous unit A (fun x : A => lift (@dot N' (f x) (g x))) net'. +Axiom thm_CONTINUOUS_ON_LIFT_DOT2 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@continuous_on M N' g s)) -> @continuous_on M unit (fun x : cart R M => lift (@dot N' (f x) (g x))) s. +Axiom thm_COMPACT_CONTINUOUS_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@compact M s)) -> @compact N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_COMPACT_TRANSLATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@compact N' s) -> @compact N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_COMPACT_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@compact N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@compact N' s). +Axiom thm_COMPACT_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@compact M s) /\ (@linear M N' f)) -> @compact N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_COMPACT_LINEAR_IMAGE_EQ : forall {_734967 _734995 : Type'}, forall f : (cart R _734995) -> cart R _734967, forall s : (cart R _734995) -> Prop, ((@linear _734995 _734967 f) /\ (forall x : cart R _734995, forall y : cart R _734995, ((f x) = (f y)) -> x = y)) -> (@compact _734967 (@IMAGE (cart R _734995) (cart R _734967) f s)) = (@compact _734995 s). +Axiom thm_CONNECTED_CONTINUOUS_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@connected M s)) -> @connected N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_CONNECTED_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@connected N' s) -> @connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_CONNECTED_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@connected N' s). +Axiom thm_CONNECTED_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@connected M s) /\ (@linear M N' f)) -> @connected N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_CONNECTED_LINEAR_IMAGE_EQ : forall {_735159 _735187 : Type'}, forall f : (cart R _735187) -> cart R _735159, forall s : (cart R _735187) -> Prop, ((@linear _735187 _735159 f) /\ (forall x : cart R _735187, forall y : cart R _735187, ((f x) = (f y)) -> x = y)) -> (@connected _735159 (@IMAGE (cart R _735187) (cart R _735159) f s)) = (@connected _735187 s). +Axiom thm_BOUNDED_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@bounded (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@bounded M s) /\ (@bounded N' t)))). +Axiom thm_BOUNDED_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@bounded M s) /\ (@bounded N' t)) -> @bounded (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_CLOSED_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@closed (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@closed M s) /\ (@closed N' t)))). +Axiom thm_CLOSED_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@closed M s) /\ (@closed N' t)) -> @closed (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_COMPACT_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@compact (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@compact M s) /\ (@compact N' t)))). +Axiom thm_COMPACT_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@compact M s) /\ (@compact N' t)) -> @compact (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_OPEN_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@_open (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@_open M s) /\ (@_open N' t)))). +Axiom thm_OPEN_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@_open M s) /\ (@_open N' t)) -> @_open (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_OPEN_IN_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) s') /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) t')) -> @open_in (cart R (finite_sum M N')) (@subtopology (cart R (finite_sum M N')) (@euclidean (finite_sum M N')) (@PCROSS R M N' s t)) (@PCROSS R M N' s' t'). +Axiom thm_PASTECART_IN_INTERIOR_SUBTOPOLOGY : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R (finite_sum M N')) -> Prop, forall x : cart R M, forall y : cart R N', ((@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) u) /\ (@open_in (cart R (finite_sum M N')) (@subtopology (cart R (finite_sum M N')) (@euclidean (finite_sum M N')) (@PCROSS R M N' s t)) u)) -> exists v : (cart R M) -> Prop, exists w : (cart R N') -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) v) /\ ((@IN (cart R M) x v) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) w) /\ ((@IN (cart R N') y w) /\ (@SUBSET (cart R (finite_sum M N')) (@PCROSS R M N' v w) u)))). +Axiom thm_PASTECART_IN_INTERIOR : forall {M N' : Type'}, forall u : (cart R (finite_sum M N')) -> Prop, forall x : cart R M, forall y : cart R N', ((@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) u) /\ (@_open (finite_sum M N') u)) -> exists v : (cart R M) -> Prop, exists w : (cart R N') -> Prop, (@_open M v) /\ ((@IN (cart R M) x v) /\ ((@_open N' w) /\ ((@IN (cart R N') y w) /\ (@SUBSET (cart R (finite_sum M N')) (@PCROSS R M N' v w) u)))). +Axiom thm_OPEN_IN_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, (@open_in (cart R (finite_sum M N')) (@subtopology (cart R (finite_sum M N')) (@euclidean (finite_sum M N')) (@PCROSS R M N' s t)) (@PCROSS R M N' s' t')) = ((s' = (@EMPTY (cart R M))) \/ ((t' = (@EMPTY (cart R N'))) \/ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) s') /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) t')))). +Axiom thm_INTERIOR_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@interior (finite_sum M N') (@PCROSS R M N' s t)) = (@PCROSS R M N' (@interior M s) (@interior N' t)). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_PASTING : forall {M N' : Type'}, @lipschitz_continuous_map (cart R (finite_sum M N')) (prod (cart R M) (cart R N')) (@pair (Metric (prod (cart R M) (cart R N'))) (Metric (cart R (finite_sum M N'))) (@prod_metric (cart R M) (cart R N') (@euclidean_metric M) (@euclidean_metric N')) (@euclidean_metric (finite_sum M N'))) (@GABS ((prod (cart R M) (cart R N')) -> cart R (finite_sum M N')) (fun f : (prod (cart R M) (cart R N')) -> cart R (finite_sum M N') => forall x : cart R M, forall y : cart R N', @GEQ (cart R (finite_sum M N')) (f (@pair (cart R M) (cart R N') x y)) (@pastecart R M N' x y))). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_CART_PROJECTIONS : forall {M N' : Type'}, (@lipschitz_continuous_map (cart R M) (cart R (finite_sum M N')) (@pair (Metric (cart R (finite_sum M N'))) (Metric (cart R M)) (@euclidean_metric (finite_sum M N')) (@euclidean_metric M)) (@fstcart R M N')) /\ (@lipschitz_continuous_map (cart R N') (cart R (finite_sum M N')) (@pair (Metric (cart R (finite_sum M N'))) (Metric (cart R N')) (@euclidean_metric (finite_sum M N')) (@euclidean_metric N')) (@sndcart R M N')). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_PASTEWISE : forall {A M N' : Type'}, forall m : Metric A, forall f : A -> cart R (finite_sum M N'), (@lipschitz_continuous_map (cart R (finite_sum M N')) A (@pair (Metric A) (Metric (cart R (finite_sum M N'))) m (@euclidean_metric (finite_sum M N'))) f) = ((@lipschitz_continuous_map (cart R M) A (@pair (Metric A) (Metric (cart R M)) m (@euclidean_metric M)) (@o A (cart R (finite_sum M N')) (cart R M) (@fstcart R M N') f)) /\ (@lipschitz_continuous_map (cart R N') A (@pair (Metric A) (Metric (cart R N')) m (@euclidean_metric N')) (@o A (cart R (finite_sum M N')) (cart R N') (@sndcart R M N') f))). +Axiom thm_LIPSCHITZ_CONTINUOUS_MAP_PASTED : forall {A M N' : Type'}, forall m : Metric A, forall f : A -> cart R M, forall g : A -> cart R N', (@lipschitz_continuous_map (cart R (finite_sum M N')) A (@pair (Metric A) (Metric (cart R (finite_sum M N'))) m (@euclidean_metric (finite_sum M N'))) (fun x : A => @pastecart R M N' (f x) (g x))) = ((@lipschitz_continuous_map (cart R M) A (@pair (Metric A) (Metric (cart R M)) m (@euclidean_metric M)) f) /\ (@lipschitz_continuous_map (cart R N') A (@pair (Metric A) (Metric (cart R N')) m (@euclidean_metric N')) g)). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_PASTEWISE : forall {A M N' : Type'}, forall m : Metric A, forall f : A -> cart R (finite_sum M N'), (@uniformly_continuous_map (cart R (finite_sum M N')) A (@pair (Metric A) (Metric (cart R (finite_sum M N'))) m (@euclidean_metric (finite_sum M N'))) f) = ((@uniformly_continuous_map (cart R M) A (@pair (Metric A) (Metric (cart R M)) m (@euclidean_metric M)) (@o A (cart R (finite_sum M N')) (cart R M) (@fstcart R M N') f)) /\ (@uniformly_continuous_map (cart R N') A (@pair (Metric A) (Metric (cart R N')) m (@euclidean_metric N')) (@o A (cart R (finite_sum M N')) (cart R N') (@sndcart R M N') f))). +Axiom thm_UNIFORMLY_CONTINUOUS_MAP_PASTED : forall {A M N' : Type'}, forall m : Metric A, forall f : A -> cart R M, forall g : A -> cart R N', (@uniformly_continuous_map (cart R (finite_sum M N')) A (@pair (Metric A) (Metric (cart R (finite_sum M N'))) m (@euclidean_metric (finite_sum M N'))) (fun x : A => @pastecart R M N' (f x) (g x))) = ((@uniformly_continuous_map (cart R M) A (@pair (Metric A) (Metric (cart R M)) m (@euclidean_metric M)) f) /\ (@uniformly_continuous_map (cart R N') A (@pair (Metric A) (Metric (cart R N')) m (@euclidean_metric N')) g)). +Axiom thm_CAUCHY_CONTINUOUS_MAP_PASTEWISE : forall {A M N' : Type'}, forall m : Metric A, forall f : A -> cart R (finite_sum M N'), (@cauchy_continuous_map A (cart R (finite_sum M N')) (@pair (Metric A) (Metric (cart R (finite_sum M N'))) m (@euclidean_metric (finite_sum M N'))) f) = ((@cauchy_continuous_map A (cart R M) (@pair (Metric A) (Metric (cart R M)) m (@euclidean_metric M)) (@o A (cart R (finite_sum M N')) (cart R M) (@fstcart R M N') f)) /\ (@cauchy_continuous_map A (cart R N') (@pair (Metric A) (Metric (cart R N')) m (@euclidean_metric N')) (@o A (cart R (finite_sum M N')) (cart R N') (@sndcart R M N') f))). +Axiom thm_CAUCHY_CONTINUOUS_MAP_PASTED : forall {A M N' : Type'}, forall m : Metric A, forall f : A -> cart R M, forall g : A -> cart R N', (@cauchy_continuous_map A (cart R (finite_sum M N')) (@pair (Metric A) (Metric (cart R (finite_sum M N'))) m (@euclidean_metric (finite_sum M N'))) (fun x : A => @pastecart R M N' (f x) (g x))) = ((@cauchy_continuous_map A (cart R M) (@pair (Metric A) (Metric (cart R M)) m (@euclidean_metric M)) f) /\ (@cauchy_continuous_map A (cart R N') (@pair (Metric A) (Metric (cart R N')) m (@euclidean_metric N')) g)). +Axiom thm_CONTINUOUS_MAP_PASTEWISE : forall {A M N' : Type'}, forall top : Topology A, forall f : A -> cart R (finite_sum M N'), (@continuous_map A (cart R (finite_sum M N')) (@pair (Topology A) (Topology (cart R (finite_sum M N'))) top (@euclidean (finite_sum M N'))) f) = ((@continuous_map A (cart R M) (@pair (Topology A) (Topology (cart R M)) top (@euclidean M)) (@o A (cart R (finite_sum M N')) (cart R M) (@fstcart R M N') f)) /\ (@continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) (@o A (cart R (finite_sum M N')) (cart R N') (@sndcart R M N') f))). +Axiom thm_CONTINUOUS_MAP_PASTED : forall {A M N' : Type'}, forall top : Topology A, forall f : A -> cart R M, forall g : A -> cart R N', (@continuous_map A (cart R (finite_sum M N')) (@pair (Topology A) (Topology (cart R (finite_sum M N'))) top (@euclidean (finite_sum M N'))) (fun x : A => @pastecart R M N' (f x) (g x))) = ((@continuous_map A (cart R M) (@pair (Topology A) (Topology (cart R M)) top (@euclidean M)) f) /\ (@continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@euclidean N')) g)). +Axiom thm_QUASICOMPACT_OPEN_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) -> (forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2833 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2833 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) = (forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2834 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2834 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u). +Axiom thm_QUOTIENT_MAP_IMP_CONTINUOUS_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2835 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2835 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u))) -> @continuous_on M N' f s. +Axiom thm_QUOTIENT_MAP_IMP_CONTINUOUS_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2836 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2836 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u))) -> @continuous_on M N' f s. +Axiom thm_OPEN_MAP_IMP_QUOTIENT_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (forall t : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) t) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f s)) (@IMAGE (cart R M) (cart R N') f t))) -> forall t : (cart R N') -> Prop, (@SUBSET (cart R N') t (@IMAGE (cart R M) (cart R N') f s)) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2838 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2838 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f s)) t). +Axiom thm_CLOSED_MAP_IMP_QUOTIENT_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (forall t : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) t) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f s)) (@IMAGE (cart R M) (cart R N') f t))) -> forall t : (cart R N') -> Prop, (@SUBSET (cart R N') t (@IMAGE (cart R M) (cart R N') f s)) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2840 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2840 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f s)) t). +Axiom thm_CONTINUOUS_RIGHT_INVERSE_IMP_QUOTIENT_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' M g t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g t) s) /\ (forall y : cart R N', (@IN (cart R N') y t) -> (f (g y)) = y))))) -> forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2842 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2842 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u). +Axiom thm_CONTINUOUS_LEFT_INVERSE_IMP_QUOTIENT_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ ((@continuous_on N' M g (@IMAGE (cart R M) (cart R N') f s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x))) -> forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u (@IMAGE (cart R M) (cart R N') f s)) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2843 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2843 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f s)) u). +Axiom thm_QUOTIENT_MAP_OPEN_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) -> (forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2844 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2844 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u)) = (forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2845 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2845 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u)). +Axiom thm_CONTINUOUS_ON_COMPOSE_QUOTIENT : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u) /\ ((forall v : (cart R N') -> Prop, (@SUBSET (cart R N') v t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2847 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2847 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) v)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v)) /\ (@continuous_on M P (@o (cart R M) (cart R N') (cart R P) g f) s)))) -> @continuous_on N' P g t. +Axiom thm_LIFT_TO_QUOTIENT_SPACE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall h : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall v : (cart R N') -> Prop, (@SUBSET (cart R N') v t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2848 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2848 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) v)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v)) /\ ((@continuous_on M P h s) /\ (((@IMAGE (cart R M) (cart R P) h s) = u) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> (h x) = (h y)))))) -> exists g : (cart R N') -> cart R P, (@continuous_on N' P g t) /\ (((@IMAGE (cart R N') (cart R P) g t) = u) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (h x) = (g (f x)))). +Axiom thm_QUOTIENT_MAP_COMPOSE_EXPLICIT : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((forall v : (cart R N') -> Prop, (@SUBSET (cart R N') v t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2852 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2852 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) v)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v)) /\ (forall v : (cart R P) -> Prop, (@SUBSET (cart R P) v u) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@GSPEC (cart R N') (fun GEN_PVAR_2853 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2853 ((@IN (cart R N') x t) /\ (@IN (cart R P) (g x) v)) x))) = (@open_in (cart R P) (@subtopology (cart R P) (@euclidean P) u) v)))) -> forall v : (cart R P) -> Prop, (@SUBSET (cart R P) v u) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2854 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2854 ((@IN (cart R M) x s) /\ (@IN (cart R P) (@o (cart R M) (cart R N') (cart R P) g f x) v)) x))) = (@open_in (cart R P) (@subtopology (cart R P) (@euclidean P) u) v). +Axiom thm_QUOTIENT_MAP_FROM_COMPOSITION_EXPLICIT : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' P g t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u) /\ (forall v : (cart R P) -> Prop, (@SUBSET (cart R P) v u) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2858 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2858 ((@IN (cart R M) x s) /\ (@IN (cart R P) (@o (cart R M) (cart R N') (cart R P) g f x) v)) x))) = (@open_in (cart R P) (@subtopology (cart R P) (@euclidean P) u) v)))))) -> forall v : (cart R P) -> Prop, (@SUBSET (cart R P) v u) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@GSPEC (cart R N') (fun GEN_PVAR_2859 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2859 ((@IN (cart R N') x t) /\ (@IN (cart R P) (g x) v)) x))) = (@open_in (cart R P) (@subtopology (cart R P) (@euclidean P) u) v). +Axiom thm_QUOTIENT_MAP_FROM_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R N') -> Prop, ((@continuous_on M N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f t) u) /\ ((@SUBSET (cart R M) s t) /\ (((@IMAGE (cart R M) (cart R N') f s) = u) /\ (forall v : (cart R N') -> Prop, (@SUBSET (cart R N') v u) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2860 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2860 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) v)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) v)))))) -> forall v : (cart R N') -> Prop, (@SUBSET (cart R N') v u) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) t) (@GSPEC (cart R M) (fun GEN_PVAR_2861 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2861 ((@IN (cart R M) x t) /\ (@IN (cart R N') (f x) v)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) v). +Axiom thm_QUOTIENT_MAP_RESTRICT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2863 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2863 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u)) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) c) \/ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) c)))) -> forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u c) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@GSPEC (cart R M) (fun GEN_PVAR_2864 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2864 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) c)) x))) (@GSPEC (cart R M) (fun GEN_PVAR_2866 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2866 ((@IN (cart R M) x (@GSPEC (cart R M) (fun GEN_PVAR_2865 : cart R M => exists x' : cart R M, @SETSPEC (cart R M) GEN_PVAR_2865 ((@IN (cart R M) x' s) /\ (@IN (cart R N') (f x') c)) x'))) /\ (@IN (cart R N') (f x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') c) u). +Axiom thm_CONNECTED_MONOTONE_QUOTIENT_PREIMAGE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2867 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2867 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u)) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> @connected M (@GSPEC (cart R M) (fun GEN_PVAR_2868 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2868 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) /\ (((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) c) \/ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) c)) /\ (@connected N' c))))) -> @connected M (@GSPEC (cart R M) (fun GEN_PVAR_2869 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2869 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) c)) x)). +Axiom thm_CONNECTED_MONOTONE_QUOTIENT_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2870 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2870 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u)) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> @connected M (@GSPEC (cart R M) (fun GEN_PVAR_2871 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2871 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) /\ (@connected N' t))))) -> @connected M s. +Axiom thm_CLOSED_MAP_CLOSURES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall s : (cart R M) -> Prop, (@closed M s) -> @closed N' (@IMAGE (cart R M) (cart R N') f s)) = (forall s : (cart R M) -> Prop, @SUBSET (cart R N') (@closure N' (@IMAGE (cart R M) (cart R N') f s)) (@IMAGE (cart R M) (cart R N') f (@closure M s))). +Axiom thm_OPEN_MAP_INTERIORS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall s : (cart R M) -> Prop, (@_open M s) -> @_open N' (@IMAGE (cart R M) (cart R N') f s)) = (forall s : (cart R M) -> Prop, @SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@interior M s)) (@interior N' (@IMAGE (cart R M) (cart R N') f s))). +Axiom thm_OPEN_MAP_RESTRICT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)) /\ (@SUBSET (cart R N') t' t)) -> forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@GSPEC (cart R M) (fun GEN_PVAR_2872 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2872 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t')) x))) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t') (@IMAGE (cart R M) (cart R N') f u). +Axiom thm_CLOSED_MAP_RESTRICT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((forall u : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)) /\ (@SUBSET (cart R N') t' t)) -> forall u : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@GSPEC (cart R M) (fun GEN_PVAR_2873 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2873 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t')) x))) u) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t') (@IMAGE (cart R M) (cart R N') f u). +Axiom thm_QUOTIENT_MAP_OPEN_MAP_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2874 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2874 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u))) -> (forall k : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k)) = (forall k : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2875 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2875 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) (@IMAGE (cart R M) (cart R N') f k))) x))). +Axiom thm_QUOTIENT_MAP_CLOSED_MAP_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2876 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2876 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u))) -> (forall k : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k)) = (forall k : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2877 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2877 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) (@IMAGE (cart R M) (cart R N') f k))) x))). +Axiom thm_CLOSED_MAP_IMP_OPEN_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall u : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)) /\ (forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2879 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2879 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) (@IMAGE (cart R M) (cart R N') f u))) x))))) -> forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u). +Axiom thm_OPEN_MAP_IMP_CLOSED_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)) /\ (forall u : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_2881 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2881 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) (@IMAGE (cart R M) (cart R N') f u))) x))))) -> forall u : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u). +Axiom thm_OPEN_MAP_IFF_CLOSED_MAP_BIJECTIVE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (((@IMAGE (cart R M) (cart R N') f s) = t) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y)) -> (forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)) = (forall c : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) c) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f c)). +Axiom thm_OPEN_MAP_FROM_COMPOSITION_SURJECTIVE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u) /\ (forall k : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @open_in (cart R P) (@subtopology (cart R P) (@euclidean P) u) (@IMAGE (cart R M) (cart R P) (@o (cart R M) (cart R N') (cart R P) g f) k))))) -> forall k : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) k) -> @open_in (cart R P) (@subtopology (cart R P) (@euclidean P) u) (@IMAGE (cart R N') (cart R P) g k). +Axiom thm_CLOSED_MAP_FROM_COMPOSITION_SURJECTIVE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u) /\ (forall k : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @closed_in (cart R P) (@subtopology (cart R P) (@euclidean P) u) (@IMAGE (cart R M) (cart R P) (@o (cart R M) (cart R N') (cart R P) g f) k))))) -> forall k : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) k) -> @closed_in (cart R P) (@subtopology (cart R P) (@euclidean P) u) (@IMAGE (cart R N') (cart R P) g k). +Axiom thm_OPEN_MAP_FROM_COMPOSITION_INJECTIVE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u) /\ ((@continuous_on N' P g t) /\ ((forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x t) /\ ((@IN (cart R N') y t) /\ ((g x) = (g y)))) -> x = y) /\ (forall k : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @open_in (cart R P) (@subtopology (cart R P) (@euclidean P) u) (@IMAGE (cart R M) (cart R P) (@o (cart R M) (cart R N') (cart R P) g f) k)))))) -> forall k : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k). +Axiom thm_CLOSED_MAP_FROM_COMPOSITION_INJECTIVE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u) /\ ((@continuous_on N' P g t) /\ ((forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x t) /\ ((@IN (cart R N') y t) /\ ((g x) = (g y)))) -> x = y) /\ (forall k : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @closed_in (cart R P) (@subtopology (cart R P) (@euclidean P) u) (@IMAGE (cart R M) (cart R P) (@o (cart R M) (cart R N') (cart R P) g f) k)))))) -> forall k : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k). +Axiom thm_OPEN_MAP_CLOSED_SUPERSET_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, forall w : (cart R N') -> Prop, ((forall k : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k)) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@SUBSET (cart R N') w t) /\ (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_2886 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2886 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) w)) x)) u)))) -> exists v : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ ((@SUBSET (cart R N') w v) /\ (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_2887 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2887 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) v)) x)) u)). +Axiom thm_OPEN_MAP_CLOSED_SUPERSET_PREIMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) -> (forall k : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k)) = (forall u : (cart R M) -> Prop, forall w : (cart R N') -> Prop, ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@SUBSET (cart R N') w t) /\ (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_2888 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2888 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) w)) x)) u))) -> exists v : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ ((@SUBSET (cart R N') w v) /\ (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_2889 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2889 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) v)) x)) u))). +Axiom thm_CLOSED_MAP_OPEN_SUPERSET_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, forall w : (cart R N') -> Prop, ((forall k : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k)) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@SUBSET (cart R N') w t) /\ (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_2890 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2890 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) w)) x)) u)))) -> exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ ((@SUBSET (cart R N') w v) /\ (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_2891 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2891 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) v)) x)) u)). +Axiom thm_CLOSED_MAP_OPEN_SUPERSET_PREIMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) -> (forall k : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k)) = (forall u : (cart R M) -> Prop, forall w : (cart R N') -> Prop, ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@SUBSET (cart R N') w t) /\ (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_2892 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2892 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) w)) x)) u))) -> exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ ((@SUBSET (cart R N') w v) /\ (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_2893 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2893 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) v)) x)) u))). +Axiom thm_CLOSED_MAP_OPEN_SUPERSET_PREIMAGE_POINT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) -> (forall k : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k)) = (forall u : (cart R M) -> Prop, forall y : cart R N', ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@IN (cart R N') y t) /\ (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_2894 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2894 ((@IN (cart R M) x s) /\ ((f x) = y)) x)) u))) -> exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ ((@IN (cart R N') y v) /\ (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_2895 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2895 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) v)) x)) u))). +Axiom thm_CONNECTED_OPEN_MONOTONE_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall c : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) c) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f c)) /\ (forall y : cart R N', (@IN (cart R N') y t) -> @connected M (@GSPEC (cart R M) (fun GEN_PVAR_2896 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2896 ((@IN (cart R M) x s) /\ ((f x) = y)) x)))))) -> forall c : (cart R N') -> Prop, ((@connected N' c) /\ (@SUBSET (cart R N') c t)) -> @connected M (@GSPEC (cart R M) (fun GEN_PVAR_2897 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2897 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) c)) x)). +Axiom thm_CONNECTED_CLOSED_MONOTONE_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall c : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) c) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f c)) /\ (forall y : cart R N', (@IN (cart R N') y t) -> @connected M (@GSPEC (cart R M) (fun GEN_PVAR_2898 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2898 ((@IN (cart R M) x s) /\ ((f x) = y)) x)))))) -> forall c : (cart R N') -> Prop, ((@connected N' c) /\ (@SUBSET (cart R N') c t)) -> @connected M (@GSPEC (cart R M) (fun GEN_PVAR_2899 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2899 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) c)) x)). +Axiom thm_PROPER_MAP_INTO_EUCLIDEAN : forall {A N' : Type'}, forall top : Topology A, forall f : A -> cart R N', forall s : (cart R N') -> Prop, ((@continuous_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@subtopology (cart R N') (@euclidean N') s)) f) \/ (@kc_space A top)) -> (@proper_map A (cart R N') (@pair (Topology A) (Topology (cart R N')) top (@subtopology (cart R N') (@euclidean N') s)) f) = ((@SUBSET (cart R N') (@IMAGE A (cart R N') f (@topspace A top)) s) /\ (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k s) /\ (@compact N' k)) -> @compact_in A top (@GSPEC A (fun GEN_PVAR_2900 : A => exists x : A, @SETSPEC A GEN_PVAR_2900 ((@IN A x (@topspace A top)) /\ (@IN (cart R N') (f x) k)) x)))). +Axiom thm_PROPER_MAP_EUCLIDEAN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@proper_map (cart R M) (cart R N') (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f) = ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2901 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2901 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)))). +Axiom thm_PROPER_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) -> (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2902 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2902 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x))) = ((forall k : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k)) /\ (forall a : cart R N', (@IN (cart R N') a t) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2903 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2903 ((@IN (cart R M) x s) /\ ((f x) = a)) x)))). +Axiom thm_PROPER_MAP_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2904 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2904 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)))) = ((forall k : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k)) /\ (forall a : cart R N', (@IN (cart R N') a t) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2905 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2905 ((@IN (cart R M) x s) /\ ((f x) = a)) x)))). +Axiom thm_PROPER_MAP_FROM_COMPACT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@compact M s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) k)))) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2906 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2906 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)). +Axiom thm_PROPER_MAP_FROM_COMPACT_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@compact M s) /\ ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t))) -> forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2907 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2907 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)). +Axiom thm_PROPER_MAP_EUCLIDEAN_COMPOSE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2909 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2909 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x))) /\ (forall k : (cart R P) -> Prop, ((@SUBSET (cart R P) k u) /\ (@compact P k)) -> @compact N' (@GSPEC (cart R N') (fun GEN_PVAR_2910 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2910 ((@IN (cart R N') x t) /\ (@IN (cart R P) (g x) k)) x))))) -> forall k : (cart R P) -> Prop, ((@SUBSET (cart R P) k u) /\ (@compact P k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2911 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2911 ((@IN (cart R M) x s) /\ (@IN (cart R P) (@o (cart R M) (cart R N') (cart R P) g f x) k)) x)). +Axiom thm_PROPER_MAP_EUCLIDEAN_FROM_COMPOSITION_LEFT : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((@continuous_on N' P g t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u) /\ (forall k : (cart R P) -> Prop, ((@SUBSET (cart R P) k u) /\ (@compact P k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2912 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2912 ((@IN (cart R M) x s) /\ (@IN (cart R P) (@o (cart R M) (cart R N') (cart R P) g f x) k)) x))))))) -> forall k : (cart R P) -> Prop, ((@SUBSET (cart R P) k u) /\ (@compact P k)) -> @compact N' (@GSPEC (cart R N') (fun GEN_PVAR_2913 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2913 ((@IN (cart R N') x t) /\ (@IN (cart R P) (g x) k)) x)). +Axiom thm_PROPER_MAP_EUCLIDEAN_FROM_COMPOSITION_RIGHT : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' P g t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u) /\ (forall k : (cart R P) -> Prop, ((@SUBSET (cart R P) k u) /\ (@compact P k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2914 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2914 ((@IN (cart R M) x s) /\ (@IN (cart R P) (@o (cart R M) (cart R N') (cart R P) g f x) k)) x))))))) -> forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2915 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2915 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)). +Axiom thm_PROPER_MAP_FSTCART : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@compact N' t) /\ ((@SUBSET (cart R M) k s) /\ (@compact M k))) -> @compact (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_2917 : cart R (finite_sum M N') => exists z : cart R (finite_sum M N'), @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_2917 ((@IN (cart R (finite_sum M N')) z (@PCROSS R M N' s t)) /\ (@IN (cart R M) (@fstcart R M N' z) k)) z)). +Axiom thm_CLOSED_MAP_FSTCART : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R (finite_sum M N')) -> Prop, ((@compact N' t) /\ (@closed_in (cart R (finite_sum M N')) (@subtopology (cart R (finite_sum M N')) (@euclidean (finite_sum M N')) (@PCROSS R M N' s t)) c)) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@IMAGE (cart R (finite_sum M N')) (cart R M) (@fstcart R M N') c). +Axiom thm_PROPER_MAP_SNDCART : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R N') -> Prop, ((@compact M s) /\ ((@SUBSET (cart R N') k t) /\ (@compact N' k))) -> @compact (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_2919 : cart R (finite_sum M N') => exists z : cart R (finite_sum M N'), @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_2919 ((@IN (cart R (finite_sum M N')) z (@PCROSS R M N' s t)) /\ (@IN (cart R N') (@sndcart R M N' z) k)) z)). +Axiom thm_CLOSED_MAP_SNDCART : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R (finite_sum M N')) -> Prop, ((@compact M s) /\ (@closed_in (cart R (finite_sum M N')) (@subtopology (cart R (finite_sum M N')) (@euclidean (finite_sum M N')) (@PCROSS R M N' s t)) c)) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R (finite_sum M N')) (cart R N') (@sndcart R M N') c). +Axiom thm_CLOSED_IN_COMPACT_PROJECTION : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R (finite_sum M N')) -> Prop, ((@compact M s) /\ (@closed_in (cart R (finite_sum M N')) (@subtopology (cart R (finite_sum M N')) (@euclidean (finite_sum M N')) (@PCROSS R M N' s t)) u)) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@GSPEC (cart R N') (fun GEN_PVAR_2920 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2920 (exists x : cart R M, (@IN (cart R M) x s) /\ (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) u)) y)). +Axiom thm_CLOSED_COMPACT_PROJECTION : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R (finite_sum M N')) -> Prop, ((@compact M s) /\ (@closed (finite_sum M N') t)) -> @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2923 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_2923 (exists x : cart R M, (@IN (cart R M) x s) /\ (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) t)) y)). +Axiom thm_TUBE_LEMMA : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R (finite_sum M N')) -> Prop, forall a : cart R N', ((@compact M s) /\ ((~ (s = (@EMPTY (cart R M)))) /\ ((@SUBSET (cart R (finite_sum M N')) (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_2924 : cart R (finite_sum M N') => exists x : cart R M, @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_2924 (@IN (cart R M) x s) (@pastecart R M N' x a))) u) /\ (@open_in (cart R (finite_sum M N')) (@subtopology (cart R (finite_sum M N')) (@euclidean (finite_sum M N')) (@PCROSS R M N' s t)) u)))) -> exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ ((@IN (cart R N') a v) /\ (@SUBSET (cart R (finite_sum M N')) (@PCROSS R M N' s v) u)). +Axiom thm_TUBE_LEMMA_GEN : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, forall u : (cart R (finite_sum M N')) -> Prop, ((@compact M s) /\ ((~ (s = (@EMPTY (cart R M)))) /\ ((@SUBSET (cart R N') t t') /\ ((@SUBSET (cart R (finite_sum M N')) (@PCROSS R M N' s t) u) /\ (@open_in (cart R (finite_sum M N')) (@subtopology (cart R (finite_sum M N')) (@euclidean (finite_sum M N')) (@PCROSS R M N' s t')) u))))) -> exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t') v) /\ ((@SUBSET (cart R N') t v) /\ (@SUBSET (cart R (finite_sum M N')) (@PCROSS R M N' s v) u)). +Axiom thm_PROPER_MAP_SEQUENTIALLY_IMP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall x : N -> cart R M, forall y : cart R N', ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2925 : cart R M => exists x' : cart R M, @SETSPEC (cart R M) GEN_PVAR_2925 ((@IN (cart R M) x' s) /\ (@IN (cart R N') (f x') k)) x'))) /\ ((forall n : N, @IN (cart R M) (x n) s) /\ ((@IN (cart R N') y t) /\ (@FImp N' N (@o N (cart R M) (cart R N') f x) y sequentially))))) -> exists z : cart R M, exists r : N -> N, (@IN (cart R M) z s) /\ ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp M N (@o N N (cart R M) x r) z sequentially)). +Axiom thm_PROPER_MAP_SEQUENTIALLY_REV : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (forall x : N -> cart R M, forall y : cart R N', ((forall n : N, @IN (cart R M) (x n) s) /\ ((@IN (cart R N') y t) /\ (@FImp N' N (@o N (cart R M) (cart R N') f x) y sequentially))) -> exists z : cart R M, exists r : N -> N, (@IN (cart R M) z s) /\ ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp M N (@o N N (cart R M) x r) z sequentially)))) -> forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2926 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2926 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)). +Axiom thm_PROPER_MAP_SEQUENTIALLY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t)) -> (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2927 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2927 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x))) = (forall x : N -> cart R M, forall y : cart R N', ((forall n : N, @IN (cart R M) (x n) s) /\ ((@IN (cart R N') y t) /\ (@FImp N' N (@o N (cart R M) (cart R N') f x) y sequentially))) -> exists z : cart R M, exists r : N -> N, (@IN (cart R M) z s) /\ ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp M N (@o N N (cart R M) x r) z sequentially))). +Axiom thm_PROPER_MAP_ESCAPES_IMP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall x : N -> cart R M, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2928 : cart R M => exists x' : cart R M, @SETSPEC (cart R M) GEN_PVAR_2928 ((@IN (cart R M) x' s) /\ (@IN (cart R N') (f x') k)) x'))) /\ ((forall n : N, @IN (cart R M) (x n) s) /\ (forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@compact M c)) -> @FINITE N (@GSPEC N (fun GEN_PVAR_2929 : N => exists n : N, @SETSPEC N GEN_PVAR_2929 (@IN (cart R M) (x n) c) n)))))) -> forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @FINITE N (@GSPEC N (fun GEN_PVAR_2930 : N => exists n : N, @SETSPEC N GEN_PVAR_2930 (@IN (cart R N') (f (x n)) k) n)). +Axiom thm_PROPER_MAP_ESCAPES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t)) -> (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_2931 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_2931 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x))) = (forall x : N -> cart R M, ((forall n : N, @IN (cart R M) (x n) s) /\ (forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@compact M c)) -> @FINITE N (@GSPEC N (fun GEN_PVAR_2932 : N => exists n : N, @SETSPEC N GEN_PVAR_2932 (@IN (cart R M) (x n) c) n)))) -> forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @FINITE N (@GSPEC N (fun GEN_PVAR_2933 : N => exists n : N, @SETSPEC N GEN_PVAR_2933 (@IN (cart R N') (f (x n)) k) n))). +Axiom thm_CONTINUOUS_ON_UNION_LOCAL_OPEN : forall {M N' : Type'} (t : (cart R M) -> Prop), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNION (cart R M) s t)) s) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNION (cart R M) s t)) t) /\ ((@continuous_on M N' f s) /\ (@continuous_on M N' f t)))) -> @continuous_on M N' f (@UNION (cart R M) s t). +Axiom thm_CONTINUOUS_ON_UNION_OPEN : forall {_744609 _744614 : Type'}, forall f : (cart R _744609) -> cart R _744614, forall s : (cart R _744609) -> Prop, forall t : (cart R _744609) -> Prop, ((@_open _744609 s) /\ ((@_open _744609 t) /\ ((@continuous_on _744609 _744614 f s) /\ (@continuous_on _744609 _744614 f t)))) -> @continuous_on _744609 _744614 f (@UNION (cart R _744609) s t). +Axiom thm_CONTINUOUS_ON_CASES_LOCAL_OPEN : forall {M N' : Type'}, forall P : (cart R M) -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNION (cart R M) s t)) s) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNION (cart R M) s t)) t) /\ ((@continuous_on M N' f s) /\ ((@continuous_on M N' g t) /\ (forall x : cart R M, (((@IN (cart R M) x s) /\ (~ (P x))) \/ ((@IN (cart R M) x t) /\ (P x))) -> (f x) = (g x)))))) -> @continuous_on M N' (fun x : cart R M => @COND (cart R N') (P x) (f x) (g x)) (@UNION (cart R M) s t). +Axiom thm_CONTINUOUS_ON_CASES_OPEN : forall {_744771 _744802 : Type'}, forall P : (cart R _744802) -> Prop, forall f : (cart R _744802) -> cart R _744771, forall g : (cart R _744802) -> cart R _744771, forall s : (cart R _744802) -> Prop, forall t : (cart R _744802) -> Prop, ((@_open _744802 s) /\ ((@_open _744802 t) /\ ((@continuous_on _744802 _744771 f s) /\ ((@continuous_on _744802 _744771 g t) /\ (forall x : cart R _744802, (((@IN (cart R _744802) x s) /\ (~ (P x))) \/ ((@IN (cart R _744802) x t) /\ (P x))) -> (f x) = (g x)))))) -> @continuous_on _744802 _744771 (fun x : cart R _744802 => @COND (cart R _744771) (P x) (f x) (g x)) (@UNION (cart R _744802) s t). +Axiom thm_LIM_LIFT_DOT : forall {M N' : Type'} (l : cart R N') (net' : net (cart R M)), forall f : (cart R M) -> cart R N', forall a : cart R N', (@FImp N' (cart R M) f l net') -> @FImp unit (cart R M) (@o (cart R M) R (cart R unit) lift (fun y : cart R M => @dot N' a (f y))) (lift (@dot N' a l)) net'. +Axiom thm_CONTINUOUS_AT_LIFT_DOT : forall {N' : Type'}, forall a : cart R N', forall x : cart R N', @continuous unit (cart R N') (@o (cart R N') R (cart R unit) lift (fun y : cart R N' => @dot N' a y)) (@_at N' x). +Axiom thm_CONTINUOUS_ON_LIFT_DOT : forall {_744898 : Type'} (a : cart R _744898), forall s : (cart R _744898) -> Prop, @continuous_on _744898 unit (@o (cart R _744898) R (cart R unit) lift (fun y : cart R _744898 => @dot _744898 a y)) s. +Axiom thm_CLOSED_INTERVAL_LEFT : forall {N' : Type'}, forall b : cart R N', @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2934 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2934 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' x i) (@dollar R N' b i)) x)). +Axiom thm_CLOSED_INTERVAL_RIGHT : forall {N' : Type'}, forall a : cart R N', @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2935 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2935 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' a i) (@dollar R N' x i)) x)). +Axiom thm_CLOSED_HALFSPACE_LE : forall {N' : Type'}, forall a : cart R N', forall b : R, @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2938 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2938 (Rle (@dot N' a x) b) x)). +Axiom thm_CLOSED_HALFSPACE_GE : forall {N' : Type'}, forall a : cart R N', forall b : R, @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2939 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2939 (Rge (@dot N' a x) b) x)). +Axiom thm_CLOSED_HYPERPLANE : forall {_745358 : Type'}, forall a : cart R _745358, forall b : R, @closed _745358 (@GSPEC (cart R _745358) (fun GEN_PVAR_2943 : cart R _745358 => exists x : cart R _745358, @SETSPEC (cart R _745358) GEN_PVAR_2943 ((@dot _745358 a x) = b) x)). +Axiom thm_CLOSURE_HYPERPLANE : forall {_745390 : Type'}, forall a : cart R _745390, forall b : R, (@closure _745390 (@GSPEC (cart R _745390) (fun GEN_PVAR_2944 : cart R _745390 => exists x : cart R _745390, @SETSPEC (cart R _745390) GEN_PVAR_2944 ((@dot _745390 a x) = b) x))) = (@GSPEC (cart R _745390) (fun GEN_PVAR_2945 : cart R _745390 => exists x : cart R _745390, @SETSPEC (cart R _745390) GEN_PVAR_2945 ((@dot _745390 a x) = b) x)). +Axiom thm_CLOSED_STANDARD_HYPERPLANE : forall {N' : Type'}, forall k : N, forall a : R, @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2946 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2946 ((@dollar R N' x k) = a) x)). +Axiom thm_CLOSED_HALFSPACE_COMPONENT_LE : forall {N' : Type'}, forall a : R, forall k : N, @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2947 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2947 (Rle (@dollar R N' x k) a) x)). +Axiom thm_CLOSED_HALFSPACE_COMPONENT_GE : forall {N' : Type'}, forall a : R, forall k : N, @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_2948 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2948 (Rge (@dollar R N' x k) a) x)). +Axiom thm_OPEN_HALFSPACE_LT : forall {_745673 : Type'}, forall a : cart R _745673, forall b : R, @_open _745673 (@GSPEC (cart R _745673) (fun GEN_PVAR_2951 : cart R _745673 => exists x : cart R _745673, @SETSPEC (cart R _745673) GEN_PVAR_2951 (Rlt (@dot _745673 a x) b) x)). +Axiom thm_OPEN_HALFSPACE_COMPONENT_LT : forall {N' : Type'}, forall a : R, forall k : N, @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_2952 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2952 (Rlt (@dollar R N' x k) a) x)). +Axiom thm_OPEN_HALFSPACE_GT : forall {_745814 : Type'}, forall a : cart R _745814, forall b : R, @_open _745814 (@GSPEC (cart R _745814) (fun GEN_PVAR_2955 : cart R _745814 => exists x : cart R _745814, @SETSPEC (cart R _745814) GEN_PVAR_2955 (Rgt (@dot _745814 a x) b) x)). +Axiom thm_OPEN_HALFSPACE_COMPONENT_GT : forall {N' : Type'}, forall a : R, forall k : N, @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_2956 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2956 (Rgt (@dollar R N' x k) a) x)). +Axiom thm_OPEN_POSITIVE_MULTIPLES : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_2957 : cart R N' => exists c : R, exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2957 ((Rlt (R_of_N (NUMERAL 0%N)) c) /\ (@IN (cart R N') x s)) (@percent N' c x))). +Axiom thm_OPEN_INTERVAL_LEFT : forall {N' : Type'}, forall b : cart R N', @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_2962 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2962 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (@dollar R N' x i) (@dollar R N' b i)) x)). +Axiom thm_OPEN_INTERVAL_RIGHT : forall {N' : Type'}, forall a : cart R N', @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_2967 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2967 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (@dollar R N' a i) (@dollar R N' x i)) x)). +Axiom thm_OPEN_POSITIVE_ORTHANT : forall {N' : Type'}, @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_2968 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2968 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (R_of_N (NUMERAL 0%N)) (@dollar R N' x i)) x)). +Axiom thm_INTERIOR_HALFSPACE_LE : forall {N' : Type'}, forall a : cart R N', forall b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) -> (@interior N' (@GSPEC (cart R N') (fun GEN_PVAR_2969 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2969 (Rle (@dot N' a x) b) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_2970 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2970 (Rlt (@dot N' a x) b) x)). +Axiom thm_INTERIOR_HALFSPACE_GE : forall {N' : Type'}, forall a : cart R N', forall b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) -> (@interior N' (@GSPEC (cart R N') (fun GEN_PVAR_2971 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2971 (Rge (@dot N' a x) b) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_2972 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2972 (Rgt (@dot N' a x) b) x)). +Axiom thm_INTERIOR_HALFSPACE_COMPONENT_LE : forall {N' : Type'}, forall a : R, forall k : N, (@interior N' (@GSPEC (cart R N') (fun GEN_PVAR_2973 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2973 (Rle (@dollar R N' x k) a) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_2974 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2974 (Rlt (@dollar R N' x k) a) x)). +Axiom thm_INTERIOR_HALFSPACE_COMPONENT_GE : forall {N' : Type'}, forall a : R, forall k : N, (@interior N' (@GSPEC (cart R N') (fun GEN_PVAR_2975 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2975 (Rge (@dollar R N' x k) a) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_2976 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2976 (Rgt (@dollar R N' x k) a) x)). +Axiom thm_CLOSURE_HALFSPACE_LT : forall {N' : Type'}, forall a : cart R N', forall b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) -> (@closure N' (@GSPEC (cart R N') (fun GEN_PVAR_2979 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2979 (Rlt (@dot N' a x) b) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_2980 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2980 (Rle (@dot N' a x) b) x)). +Axiom thm_CLOSURE_HALFSPACE_GT : forall {N' : Type'}, forall a : cart R N', forall b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) -> (@closure N' (@GSPEC (cart R N') (fun GEN_PVAR_2981 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2981 (Rgt (@dot N' a x) b) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_2982 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2982 (Rge (@dot N' a x) b) x)). +Axiom thm_CLOSURE_HALFSPACE_COMPONENT_LT : forall {N' : Type'}, forall a : R, forall k : N, (@closure N' (@GSPEC (cart R N') (fun GEN_PVAR_2983 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2983 (Rlt (@dollar R N' x k) a) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_2984 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2984 (Rle (@dollar R N' x k) a) x)). +Axiom thm_CLOSURE_HALFSPACE_COMPONENT_GT : forall {N' : Type'}, forall a : R, forall k : N, (@closure N' (@GSPEC (cart R N') (fun GEN_PVAR_2985 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2985 (Rgt (@dollar R N' x k) a) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_2986 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2986 (Rge (@dollar R N' x k) a) x)). +Axiom thm_INTERIOR_HYPERPLANE : forall {_747138 : Type'}, forall a : cart R _747138, forall b : R, (~ (a = (@vec _747138 (NUMERAL 0%N)))) -> (@interior _747138 (@GSPEC (cart R _747138) (fun GEN_PVAR_2990 : cart R _747138 => exists x : cart R _747138, @SETSPEC (cart R _747138) GEN_PVAR_2990 ((@dot _747138 a x) = b) x))) = (@EMPTY (cart R _747138)). +Axiom thm_FRONTIER_HALFSPACE_LE : forall {N' : Type'}, forall a : cart R N', forall b : R, (~ ((a = (@vec N' (NUMERAL 0%N))) /\ (b = (R_of_N (NUMERAL 0%N))))) -> (@frontier N' (@GSPEC (cart R N') (fun GEN_PVAR_2991 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2991 (Rle (@dot N' a x) b) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_2992 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2992 ((@dot N' a x) = b) x)). +Axiom thm_FRONTIER_HALFSPACE_GE : forall {N' : Type'}, forall a : cart R N', forall b : R, (~ ((a = (@vec N' (NUMERAL 0%N))) /\ (b = (R_of_N (NUMERAL 0%N))))) -> (@frontier N' (@GSPEC (cart R N') (fun GEN_PVAR_2993 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2993 (Rge (@dot N' a x) b) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_2994 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2994 ((@dot N' a x) = b) x)). +Axiom thm_FRONTIER_HALFSPACE_LT : forall {N' : Type'}, forall a : cart R N', forall b : R, (~ ((a = (@vec N' (NUMERAL 0%N))) /\ (b = (R_of_N (NUMERAL 0%N))))) -> (@frontier N' (@GSPEC (cart R N') (fun GEN_PVAR_2995 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2995 (Rlt (@dot N' a x) b) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_2996 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2996 ((@dot N' a x) = b) x)). +Axiom thm_FRONTIER_HALFSPACE_GT : forall {N' : Type'}, forall a : cart R N', forall b : R, (~ ((a = (@vec N' (NUMERAL 0%N))) /\ (b = (R_of_N (NUMERAL 0%N))))) -> (@frontier N' (@GSPEC (cart R N') (fun GEN_PVAR_2997 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2997 (Rgt (@dot N' a x) b) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_2998 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2998 ((@dot N' a x) = b) x)). +Axiom thm_FRONTIER_HALFSPACE_COMPONENT_LE : forall {N' : Type'}, forall a : R, forall k : N, (@frontier N' (@GSPEC (cart R N') (fun GEN_PVAR_2999 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_2999 (Rle (@dollar R N' x k) a) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_3000 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3000 ((@dollar R N' x k) = a) x)). +Axiom thm_FRONTIER_HALFSPACE_COMPONENT_GE : forall {N' : Type'}, forall a : R, forall k : N, (@frontier N' (@GSPEC (cart R N') (fun GEN_PVAR_3001 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3001 (Rge (@dollar R N' x k) a) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_3002 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3002 ((@dollar R N' x k) = a) x)). +Axiom thm_FRONTIER_HALFSPACE_COMPONENT_LT : forall {N' : Type'}, forall a : R, forall k : N, (@frontier N' (@GSPEC (cart R N') (fun GEN_PVAR_3003 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3003 (Rlt (@dollar R N' x k) a) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_3004 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3004 ((@dollar R N' x k) = a) x)). +Axiom thm_FRONTIER_HALFSPACE_COMPONENT_GT : forall {N' : Type'}, forall a : R, forall k : N, (@frontier N' (@GSPEC (cart R N') (fun GEN_PVAR_3005 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3005 (Rgt (@dollar R N' x k) a) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_3006 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3006 ((@dollar R N' x k) = a) x)). +Axiom thm_INTERIOR_STANDARD_HYPERPLANE : forall {N' : Type'}, forall k : N, forall a : R, (@interior N' (@GSPEC (cart R N') (fun GEN_PVAR_3007 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3007 ((@dollar R N' x k) = a) x))) = (@EMPTY (cart R N')). +Axiom thm_EMPTY_INTERIOR_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (N.lt (@dim N' s) (@dimindex N' (@UNIV N'))) -> (@interior N' s) = (@EMPTY (cart R N')). +Axiom thm_DIM_NONEMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ ((@interior N' s) = (@EMPTY (cart R N')))) -> (@dim N' s) = (@dimindex N' (@UNIV N')). +Axiom thm_UNBOUNDED_HALFSPACE_COMPONENT_LE : forall {N' : Type'}, forall a : R, forall k : N, ~ (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3009 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3009 (Rle (@dollar R N' x k) a) x))). +Axiom thm_UNBOUNDED_HALFSPACE_COMPONENT_GE : forall {N' : Type'}, forall a : R, forall k : N, ~ (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3010 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3010 (Rge (@dollar R N' x k) a) x))). +Axiom thm_UNBOUNDED_HALFSPACE_COMPONENT_LT : forall {N' : Type'}, forall a : R, forall k : N, ~ (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3011 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3011 (Rlt (@dollar R N' x k) a) x))). +Axiom thm_UNBOUNDED_HALFSPACE_COMPONENT_GT : forall {N' : Type'}, forall a : R, forall k : N, ~ (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3012 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3012 (Rgt (@dollar R N' x k) a) x))). +Axiom thm_BOUNDED_HALFSPACE_LE : forall {N' : Type'}, forall a : cart R N', forall b : R, (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3014 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3014 (Rle (@dot N' a x) b) x))) = ((a = (@vec N' (NUMERAL 0%N))) /\ (Rlt b (R_of_N (NUMERAL 0%N)))). +Axiom thm_BOUNDED_HALFSPACE_GE : forall {N' : Type'}, forall a : cart R N', forall b : R, (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3015 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3015 (Rge (@dot N' a x) b) x))) = ((a = (@vec N' (NUMERAL 0%N))) /\ (Rlt (R_of_N (NUMERAL 0%N)) b)). +Axiom thm_BOUNDED_HALFSPACE_LT : forall {N' : Type'}, forall a : cart R N', forall b : R, (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3017 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3017 (Rlt (@dot N' a x) b) x))) = ((a = (@vec N' (NUMERAL 0%N))) /\ (Rle b (R_of_N (NUMERAL 0%N)))). +Axiom thm_BOUNDED_HALFSPACE_GT : forall {N' : Type'}, forall a : cart R N', forall b : R, (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3018 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3018 (Rgt (@dot N' a x) b) x))) = ((a = (@vec N' (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) b)). +Axiom thm_FORALL_IN_INTERMEDIATE_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@closed N' t) /\ ((@continuous_on M N' f s') /\ ((@SUBSET (cart R M) s s') /\ ((@SUBSET (cart R M) s' (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @IN (cart R N') (f x) t))))) -> forall x : cart R M, (@IN (cart R M) x s') -> @IN (cart R N') (f x) t. +Axiom thm_FORALL_IN_INTERMEDIATE_CLOSURE_EQ : forall {_748420 _748436 : Type'}, forall f : (cart R _748436) -> cart R _748420, forall s : (cart R _748436) -> Prop, forall s' : (cart R _748436) -> Prop, forall t : (cart R _748420) -> Prop, ((@closed _748420 t) /\ ((@continuous_on _748436 _748420 f s') /\ ((@SUBSET (cart R _748436) s s') /\ (@SUBSET (cart R _748436) s' (@closure _748436 s))))) -> (forall x : cart R _748436, (@IN (cart R _748436) x s') -> @IN (cart R _748420) (f x) t) = (forall x : cart R _748436, (@IN (cart R _748436) x s) -> @IN (cart R _748420) (f x) t). +Axiom thm_CONTINUOUS_LE_ON_INTERMEDIATE_CLOSURE : forall {M : Type'}, forall f : (cart R M) -> R, forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, forall a : R, ((@continuous_on M unit (@o (cart R M) R (cart R unit) lift f) s') /\ ((@SUBSET (cart R M) s s') /\ ((@SUBSET (cart R M) s' (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (f x) a)))) -> forall x : cart R M, (@IN (cart R M) x s') -> Rle (f x) a. +Axiom thm_CONTINUOUS_GE_ON_INTERMEDIATE_CLOSURE : forall {M : Type'}, forall f : (cart R M) -> R, forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, forall a : R, ((@continuous_on M unit (@o (cart R M) R (cart R unit) lift f) s') /\ ((@SUBSET (cart R M) s s') /\ ((@SUBSET (cart R M) s' (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle a (f x))))) -> forall x : cart R M, (@IN (cart R M) x s') -> Rle a (f x). +Axiom thm_CONTINUOUS_CONSTANT_ON_INTERMEDIATE_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, forall a : cart R N', ((@continuous_on M N' f s') /\ ((@SUBSET (cart R M) s s') /\ ((@SUBSET (cart R M) s' (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a)))) -> forall x : cart R M, (@IN (cart R M) x s') -> (f x) = a. +Axiom thm_CONTINUOUS_AGREE_ON_INTERMEDIATE_CLOSURE : forall {M N' : Type'}, forall g : (cart R M) -> cart R N', forall h : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, ((@continuous_on M N' g s') /\ ((@continuous_on M N' h s') /\ ((@SUBSET (cart R M) s s') /\ ((@SUBSET (cart R M) s' (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (h x)))))) -> forall x : cart R M, (@IN (cart R M) x s') -> (g x) = (h x). +Axiom thm_FORALL_IN_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@closed N' t) /\ ((@continuous_on M N' f (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @IN (cart R N') (f x) t))) -> forall x : cart R M, (@IN (cart R M) x (@closure M s)) -> @IN (cart R N') (f x) t. +Axiom thm_FORALL_IN_CLOSURE_EQ : forall {_748927 _748933 : Type'}, forall f : (cart R _748933) -> cart R _748927, forall s : (cart R _748933) -> Prop, forall t : (cart R _748927) -> Prop, ((@closed _748927 t) /\ (@continuous_on _748933 _748927 f (@closure _748933 s))) -> (forall x : cart R _748933, (@IN (cart R _748933) x (@closure _748933 s)) -> @IN (cart R _748927) (f x) t) = (forall x : cart R _748933, (@IN (cart R _748933) x s) -> @IN (cart R _748927) (f x) t). +Axiom thm_SUP_CLOSURE : forall s : (cart R unit) -> Prop, (sup (@IMAGE (cart R unit) R drop (@closure unit s))) = (sup (@IMAGE (cart R unit) R drop s)). +Axiom thm_INF_CLOSURE : forall s : (cart R unit) -> Prop, (inf (@IMAGE (cart R unit) R drop (@closure unit s))) = (inf (@IMAGE (cart R unit) R drop s)). +Axiom thm_CONTINUOUS_LE_ON_CLOSURE : forall {M : Type'}, forall f : (cart R M) -> R, forall s : (cart R M) -> Prop, forall a : R, ((@continuous_on M unit (@o (cart R M) R (cart R unit) lift f) (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (f x) a)) -> forall x : cart R M, (@IN (cart R M) x (@closure M s)) -> Rle (f x) a. +Axiom thm_CONTINUOUS_GE_ON_CLOSURE : forall {M : Type'}, forall f : (cart R M) -> R, forall s : (cart R M) -> Prop, forall a : R, ((@continuous_on M unit (@o (cart R M) R (cart R unit) lift f) (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle a (f x))) -> forall x : cart R M, (@IN (cart R M) x (@closure M s)) -> Rle a (f x). +Axiom thm_CONTINUOUS_CONSTANT_ON_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R N', ((@continuous_on M N' f (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a)) -> forall x : cart R M, (@IN (cart R M) x (@closure M s)) -> (f x) = a. +Axiom thm_CONTINUOUS_AGREE_ON_CLOSURE : forall {M N' : Type'} (s : (cart R M) -> Prop), forall g : (cart R M) -> cart R N', forall h : (cart R M) -> cart R N', ((@continuous_on M N' g (@closure M s)) /\ ((@continuous_on M N' h (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (h x)))) -> forall x : cart R M, (@IN (cart R M) x (@closure M s)) -> (g x) = (h x). +Axiom thm_CONTINUOUS_CLOSED_IN_PREIMAGE_CONSTANT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R N', (@continuous_on M N' f s) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3025 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3025 ((@IN (cart R M) x s) /\ ((f x) = a)) x)). +Axiom thm_CONTINUOUS_CLOSED_PREIMAGE_CONSTANT : forall {M N' : Type'} (a : cart R N'), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@closed M s)) -> @closed M (@GSPEC (cart R M) (fun GEN_PVAR_3029 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3029 ((@IN (cart R M) x s) /\ ((f x) = a)) x)). +Axiom thm_CONTINUOUS_ON_INTERMEDIATE_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x t) -> @FImp N' (cart R M) f (f x) (@within (cart R M) (@_at M x) s))) -> @continuous_on M N' f t. +Axiom thm_CONTINUOUS_ON_INTERMEDIATE_CLOSURE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) s t) /\ (@SUBSET (cart R M) t (@closure M s))) -> (@continuous_on M N' f t) = (forall x : cart R M, (@IN (cart R M) x t) -> @FImp N' (cart R M) f (f x) (@within (cart R M) (@_at M x) s)). +Axiom thm_CONTINUOUS_ON_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f (@closure M s)) = (forall x : cart R M, forall e : R, ((@IN (cart R M) x (@closure M s)) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall y : cart R M, ((@IN (cart R M) y s) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) y x)) d)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f y) (f x))) e)). +Axiom thm_CONTINUOUS_ON_CLOSURE_SEQUENTIALLY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f (@closure M s)) = (forall x : N -> cart R M, forall a : cart R M, ((@IN (cart R M) a (@closure M s)) /\ ((forall n : N, @IN (cart R M) (x n) s) /\ (@FImp M N x a sequentially))) -> @FImp N' N (@o N (cart R M) (cart R N') f x) (f a) sequentially). +Axiom thm_CONTINUOUS_ON_INTERMEDIATE_CLOSURE_POINTWISE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) s t) /\ ((@SUBSET (cart R M) t (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x t) -> @continuous_on M N' f (@INSERT (cart R M) x s)))) -> @continuous_on M N' f t. +Axiom thm_FUNCTION_EXTENSION_POINTWISE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R N') -> Prop, ((@SUBSET (cart R M) s t) /\ ((@SUBSET (cart R M) t (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x t) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g (@INSERT (cart R M) x s)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@INSERT (cart R M) x s)) u) /\ (forall x' : cart R M, (@IN (cart R M) x' s) -> (g x') = (f x')))))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g t) u) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))). +Axiom thm_FUNCTION_EXTENSION_POINTWISE_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R N') -> Prop, ((@SUBSET (cart R M) s t) /\ ((@SUBSET (cart R M) t (@closure M s)) /\ ((@closed N' u) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) u) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> exists l : cart R N', @FImp N' (cart R M) f l (@within (cart R M) (@_at M x) s))))))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g t) u) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))). +Axiom thm_UNIFORMLY_CONTINUOUS_ON_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@uniformly_continuous_on M N' f s) /\ (@continuous_on M N' f (@closure M s))) -> @uniformly_continuous_on M N' f (@closure M s). +Axiom thm_CONTINUOUS_ON_LIFT_SQRT : forall s : (cart R unit) -> Prop, @continuous_on unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R sqrt drop)) s. +Axiom thm_CONTINUOUS_AT_SQRT : forall a : cart R unit, @continuous unit (cart R unit) (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R sqrt drop)) (@_at unit a). +Axiom thm_CONTINUOUS_WITHIN_LIFT_SQRT : forall a : cart R unit, forall s : (cart R unit) -> Prop, @continuous unit (cart R unit) (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R sqrt drop)) (@within (cart R unit) (@_at unit a) s). +Axiom thm_CONTINUOUS_WITHIN_SQRT_COMPOSE : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall a : cart R N', (@continuous unit (cart R N') (fun x : cart R N' => lift (f x)) (@within (cart R N') (@_at N' a) s)) -> @continuous unit (cart R N') (fun x : cart R N' => lift (sqrt (f x))) (@within (cart R N') (@_at N' a) s). +Axiom thm_CONTINUOUS_AT_SQRT_COMPOSE : forall {N' : Type'}, forall f : (cart R N') -> R, forall a : cart R N', (@continuous unit (cart R N') (fun x : cart R N' => lift (f x)) (@_at N' a)) -> @continuous unit (cart R N') (fun x : cart R N' => lift (sqrt (f x))) (@_at N' a). +Axiom thm_CONTINUOUS_ON_LIFT_SQRT_COMPOSE : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@continuous_on N' unit (@o (cart R N') R (cart R unit) lift f) s) -> @continuous_on N' unit (fun x : cart R N' => lift (sqrt (f x))) s. +Axiom thm_UNIFORMLY_CONTINUOUS_IMP_CAUCHY_CONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@uniformly_continuous_on M N' f s) -> forall x : N -> cart R M, ((@cauchy M x) /\ (forall n : N, @IN (cart R M) (x n) s)) -> @cauchy N' (@o N (cart R M) (cart R N') f x). +Axiom thm_CONTINUOUS_CLOSED_IMP_CAUCHY_CONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@closed M s)) -> forall x : N -> cart R M, ((@cauchy M x) /\ (forall n : N, @IN (cart R M) (x n) s)) -> @cauchy N' (@o N (cart R M) (cart R N') f x). +Axiom thm_CAUCHY_CONTINUOUS_EXTENDS_TO_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall x : N -> cart R M, ((@cauchy M x) /\ (forall n : N, @IN (cart R M) (x n) s)) -> @cauchy N' (@o N (cart R M) (cart R N') f x)) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)). +Axiom thm_UNIFORMLY_CONTINUOUS_EXTENDS_TO_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@uniformly_continuous_on M N' f s) -> exists g : (cart R M) -> cart R N', (@uniformly_continuous_on M N' g (@closure M s)) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)) /\ (forall h : (cart R M) -> cart R N', ((@continuous_on M N' h (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (h x) = (f x))) -> forall x : cart R M, (@IN (cart R M) x (@closure M s)) -> (h x) = (g x))). +Axiom thm_CAUCHY_CONTINUOUS_IMP_CONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall x : N -> cart R M, ((@cauchy M x) /\ (forall n : N, @IN (cart R M) (x n) s)) -> @cauchy N' (@o N (cart R M) (cart R N') f x)) -> @continuous_on M N' f s. +Axiom thm_BOUNDED_UNIFORMLY_CONTINUOUS_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@uniformly_continuous_on M N' f s) /\ (@bounded M s)) -> @bounded N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LIPSCHITZ_IMP_UNIFORMLY_CONTINUOUS_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) -> @uniformly_continuous_on M N' f s. +Axiom thm_BOUNDED_LIPSCHITZ_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) /\ (@bounded M s)) -> @bounded N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LIPSCHITZ_IMP_CONTINUOUS_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) -> @continuous_on M N' f s. +Axiom thm_LIPSCHITZ_LIM : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall b : R, ((forall n : N, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f n x) (f n y))) (Rmult b (@vector_norm M (@vector_sub M x y)))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @FImp N' N (fun n : N => f n x) (g x) sequentially)) -> forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (g x) (g y))) (Rmult b (@vector_norm M (@vector_sub M x y))). +Axiom thm_LIPSCHITZ_ON_SUP : forall {N' : Type'}, forall P : ((cart R N') -> cart R unit) -> Prop, forall B : R, forall s : (cart R N') -> Prop, ((Rle (R_of_N (NUMERAL 0%N)) B) /\ ((forall f : (cart R N') -> cart R unit, (P f) -> forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (@vector_norm unit (@vector_sub unit (f x) (f y))) (Rmult B (@vector_norm N' (@vector_sub N' x y)))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists C : R, forall f : (cart R N') -> cart R unit, (P f) -> Rle (drop (f x)) C))) -> forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (@vector_norm unit (@vector_sub unit (lift (sup (@GSPEC R (fun GEN_PVAR_3035 : R => exists f : (cart R N') -> cart R unit, @SETSPEC R GEN_PVAR_3035 (P f) (drop (f x)))))) (lift (sup (@GSPEC R (fun GEN_PVAR_3036 : R => exists f : (cart R N') -> cart R unit, @SETSPEC R GEN_PVAR_3036 (P f) (drop (f y)))))))) (Rmult B (@vector_norm N' (@vector_sub N' x y))). +Axiom thm_LIPSCHITZ_ON_INF : forall {N' : Type'}, forall P : ((cart R N') -> cart R unit) -> Prop, forall B : R, forall s : (cart R N') -> Prop, ((Rle (R_of_N (NUMERAL 0%N)) B) /\ ((forall f : (cart R N') -> cart R unit, (P f) -> forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (@vector_norm unit (@vector_sub unit (f x) (f y))) (Rmult B (@vector_norm N' (@vector_sub N' x y)))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists C : R, forall f : (cart R N') -> cart R unit, (P f) -> Rle C (drop (f x))))) -> forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (@vector_norm unit (@vector_sub unit (lift (inf (@GSPEC R (fun GEN_PVAR_3042 : R => exists f : (cart R N') -> cart R unit, @SETSPEC R GEN_PVAR_3042 (P f) (drop (f x)))))) (lift (inf (@GSPEC R (fun GEN_PVAR_3043 : R => exists f : (cart R N') -> cart R unit, @SETSPEC R GEN_PVAR_3043 (P f) (drop (f y)))))))) (Rmult B (@vector_norm N' (@vector_sub N' x y))). +Axiom thm_CONTINUOUS_AT_COMPOSE_EQ : forall {M N' : Type'} (x : cart R M), forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R M, forall h : (cart R M) -> cart R M, ((@continuous M (cart R M) g (@_at M x)) /\ ((@continuous M (cart R M) h (@_at M (g x))) /\ ((forall y : cart R M, (g (h y)) = y) /\ ((h (g x)) = x)))) -> (@continuous N' (cart R M) f (@_at M (g x))) = (@continuous N' (cart R M) (fun x' : cart R M => f (g x')) (@_at M x)). +Axiom thm_CONTINUOUS_AT_TRANSLATION : forall {M N' : Type'}, forall a : cart R M, forall z : cart R M, forall f : (cart R M) -> cart R N', (@continuous N' (cart R M) f (@_at M (@vector_add M a z))) = (@continuous N' (cart R M) (fun x : cart R M => f (@vector_add M a x)) (@_at M z)). +Axiom thm_CONTINUOUS_AT_LINEAR_IMAGE : forall {M N' : Type'}, forall h : (cart R M) -> cart R M, forall z : cart R M, forall f : (cart R M) -> cart R N', ((@linear M M h) /\ (forall x : cart R M, (@vector_norm M (h x)) = (@vector_norm M x))) -> (@continuous N' (cart R M) f (@_at M (h z))) = (@continuous N' (cart R M) (fun x : cart R M => f (h x)) (@_at M z)). +Axiom thm_INTERIOR_IMAGE_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall x : cart R M, @continuous N' (cart R M) f (@_at M x)) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> @SUBSET (cart R N') (@interior N' (@IMAGE (cart R M) (cart R N') f s)) (@IMAGE (cart R M) (cart R N') f (@interior M s)). +Axiom thm_CONTINUOUS_WITHIN_AVOID : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall s : (cart R M) -> Prop, forall a : cart R N', ((@continuous N' (cart R M) f (@within (cart R M) (@_at M x) s)) /\ ((@IN (cart R M) x s) /\ (~ ((f x) = a)))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall y : cart R M, ((@IN (cart R M) y s) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x y)) e)) -> ~ ((f y) = a)). +Axiom thm_CONTINUOUS_AT_AVOID : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall a : cart R N', ((@continuous N' (cart R M) f (@_at M x)) /\ (~ ((f x) = a))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall y : cart R M, (Rlt (@distance M (@pair (cart R M) (cart R M) x y)) e) -> ~ ((f y) = a)). +Axiom thm_CONTINUOUS_ON_AVOID : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall s : (cart R M) -> Prop, forall a : cart R N', ((@continuous_on M N' f s) /\ ((@IN (cart R M) x s) /\ (~ ((f x) = a)))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall y : cart R M, ((@IN (cart R M) y s) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x y)) e)) -> ~ ((f y) = a)). +Axiom thm_CONTINUOUS_ON_OPEN_AVOID : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall s : (cart R M) -> Prop, forall a : cart R N', ((@continuous_on M N' f s) /\ ((@_open M s) /\ ((@IN (cart R M) x s) /\ (~ ((f x) = a))))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall y : cart R M, (Rlt (@distance M (@pair (cart R M) (cart R M) x y)) e) -> ~ ((f y) = a)). +Axiom thm_CONTINUOUS_LEVELSET_OPEN_IN_CASES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R N', ((@connected M s) /\ ((@continuous_on M N' f s) /\ (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3047 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3047 ((@IN (cart R M) x s) /\ ((f x) = a)) x))))) -> (forall x : cart R M, (@IN (cart R M) x s) -> ~ ((f x) = a)) \/ (forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a). +Axiom thm_CONTINUOUS_LEVELSET_OPEN_IN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R N', ((@connected M s) /\ ((@continuous_on M N' f s) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3048 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3048 ((@IN (cart R M) x s) /\ ((f x) = a)) x))) /\ (exists x : cart R M, (@IN (cart R M) x s) /\ ((f x) = a))))) -> forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a. +Axiom thm_CONTINUOUS_LEVELSET_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R N', ((@connected M s) /\ ((@continuous_on M N' f s) /\ ((@_open M (@GSPEC (cart R M) (fun GEN_PVAR_3050 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3050 ((@IN (cart R M) x s) /\ ((f x) = a)) x))) /\ (exists x : cart R M, (@IN (cart R M) x s) /\ ((f x) = a))))) -> forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a. +Axiom thm_OPEN_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, ((~ (c = (R_of_N (NUMERAL 0%N)))) /\ (@_open N' s)) -> @_open N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s). +Axiom thm_OPEN_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@_open N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = (((c = (R_of_N (NUMERAL 0%N))) -> s = (@EMPTY (cart R N'))) /\ (@_open N' s)). +Axiom thm_OPEN_NEGATIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @_open N' (@IMAGE (cart R N') (cart R N') (@vector_neg N') s). +Axiom thm_OPEN_TRANSLATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@_open N' s) -> @_open N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_OPEN_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@_open N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@_open N' s). +Axiom thm_OPEN_AFFINITY_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@_open N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = (((m = (R_of_N (NUMERAL 0%N))) -> s = (@EMPTY (cart R N'))) /\ (@_open N' s)). +Axiom thm_OPEN_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', ((@_open N' s) /\ ((m = (R_of_N (NUMERAL 0%N))) -> s = (@EMPTY (cart R N')))) -> @_open N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s). +Axiom thm_INTERIOR_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@interior N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@interior N' s)). +Axiom thm_OPEN_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@_open N' s) \/ (@_open N' t)) -> @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_3051 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3051 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_UPPER_HEMICONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall s : (cart R M) -> Prop, (forall x : cart R M, (@IN (cart R M) x s) -> @SUBSET (cart R N') (f x) t) -> (forall u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3052 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3052 ((@IN (cart R M) x s) /\ (@SUBSET (cart R N') (f x) u)) x))) = (forall u : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3053 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3053 ((@IN (cart R M) x s) /\ (~ ((@INTER (cart R N') (f x) u) = (@EMPTY (cart R N'))))) x))). +Axiom thm_LOWER_HEMICONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall s : (cart R M) -> Prop, (forall x : cart R M, (@IN (cart R M) x s) -> @SUBSET (cart R N') (f x) t) -> (forall u : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3054 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3054 ((@IN (cart R M) x s) /\ (@SUBSET (cart R N') (f x) u)) x))) = (forall u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3055 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3055 ((@IN (cart R M) x s) /\ (~ ((@INTER (cart R N') (f x) u) = (@EMPTY (cart R N'))))) x))). +Axiom thm_OPEN_MAP_IFF_LOWER_HEMICONTINUOUS_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) -> (forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)) = (forall u : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@GSPEC (cart R N') (fun GEN_PVAR_3057 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3057 ((@IN (cart R N') y t) /\ (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_3056 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3056 ((@IN (cart R M) x s) /\ ((f x) = y)) x)) u)) y))). +Axiom thm_CLOSED_MAP_IFF_UPPER_HEMICONTINUOUS_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) -> (forall u : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)) = (forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@GSPEC (cart R N') (fun GEN_PVAR_3059 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3059 ((@IN (cart R N') y t) /\ (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_3058 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3058 ((@IN (cart R M) x s) /\ ((f x) = y)) x)) u)) y))). +Axiom thm_UPPER_LOWER_HEMICONTINUOUS_EXPLICIT : forall {M N' : Type'}, forall f : (cart R M) -> (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall s : (cart R M) -> Prop, ((forall x : cart R M, (@IN (cart R M) x s) -> @SUBSET (cart R N') (f x) t) /\ ((forall u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3067 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3067 ((@IN (cart R M) x s) /\ (@SUBSET (cart R N') (f x) u)) x))) /\ (forall u : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3068 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3068 ((@IN (cart R M) x s) /\ (@SUBSET (cart R N') (f x) u)) x))))) -> forall x : cart R M, forall e : R, ((@IN (cart R M) x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@bounded N' (f x)) /\ (~ ((f x) = (@EMPTY (cart R N'))))))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R M, ((@IN (cart R M) x' s) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x x')) d)) -> (forall y : cart R N', (@IN (cart R N') y (f x)) -> exists y' : cart R N', (@IN (cart R N') y' (f x')) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') y y')) e)) /\ (forall y' : cart R N', (@IN (cart R N') y' (f x')) -> exists y : cart R N', (@IN (cart R N') y (f x)) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') y' y)) e))). +Axiom thm_connected_component : forall {_754293 : Type'}, forall s : (cart R _754293) -> Prop, forall x : cart R _754293, forall y : cart R _754293, (@connected_component _754293 s x y) = (exists t : (cart R _754293) -> Prop, (@connected _754293 t) /\ ((@SUBSET (cart R _754293) t s) /\ ((@IN (cart R _754293) x t) /\ (@IN (cart R _754293) y t)))). +Axiom thm_CONNECTED_COMPONENT_OF_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@connected_component_of (cart R N') (@subtopology (cart R N') (@euclidean N') s) x) = (@connected_component N' s x). +Axiom thm_CONNECTED_COMPONENT_IN : forall {_754347 : Type'}, forall s : (cart R _754347) -> Prop, forall x : cart R _754347, forall y : cart R _754347, (@connected_component _754347 s x y) -> (@IN (cart R _754347) x s) /\ (@IN (cart R _754347) y s). +Axiom thm_CONNECTED_COMPONENT_REFL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@IN (cart R N') x s) -> @connected_component N' s x x. +Axiom thm_CONNECTED_COMPONENT_REFL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@connected_component N' s x x) = (@IN (cart R N') x s). +Axiom thm_CONNECTED_COMPONENT_SYM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', (@connected_component N' s x y) -> @connected_component N' s y x. +Axiom thm_CONNECTED_COMPONENT_TRANS : forall {N' : Type'} (z : cart R N'), forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@connected_component N' s x y) /\ (@connected_component N' s y z)) -> @connected_component N' s x z. +Axiom thm_CONNECTED_COMPONENT_OF_SUBSET : forall {_754482 : Type'} (y : cart R _754482), forall s : (cart R _754482) -> Prop, forall t : (cart R _754482) -> Prop, forall x : cart R _754482, ((@SUBSET (cart R _754482) s t) /\ (@connected_component _754482 s x y)) -> @connected_component _754482 t x y. +Axiom thm_CONNECTED_COMPONENT_SET : forall {_754497 : Type'}, forall s : (cart R _754497) -> Prop, forall x : cart R _754497, (@connected_component _754497 s x) = (@GSPEC (cart R _754497) (fun GEN_PVAR_3069 : cart R _754497 => exists y : cart R _754497, @SETSPEC (cart R _754497) GEN_PVAR_3069 (exists t : (cart R _754497) -> Prop, (@connected _754497 t) /\ ((@SUBSET (cart R _754497) t s) /\ ((@IN (cart R _754497) x t) /\ (@IN (cart R _754497) y t)))) y)). +Axiom thm_CONNECTED_COMPONENT_UNIONS : forall {_754563 : Type'}, forall s : (cart R _754563) -> Prop, forall x : cart R _754563, (@connected_component _754563 s x) = (@UNIONS (cart R _754563) (@GSPEC ((cart R _754563) -> Prop) (fun GEN_PVAR_3070 : (cart R _754563) -> Prop => exists t : (cart R _754563) -> Prop, @SETSPEC ((cart R _754563) -> Prop) GEN_PVAR_3070 ((@connected _754563 t) /\ ((@IN (cart R _754563) x t) /\ (@SUBSET (cart R _754563) t s))) t))). +Axiom thm_CONNECTED_COMPONENT_SUBSET : forall {_754586 : Type'}, forall s : (cart R _754586) -> Prop, forall x : cart R _754586, @SUBSET (cart R _754586) (@connected_component _754586 s x) s. +Axiom thm_CONNECTED_CONNECTED_COMPONENT_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) = (forall x : cart R N', (@IN (cart R N') x s) -> (@connected_component N' s x) = s). +Axiom thm_CONNECTED_COMPONENT_UNIV : forall {N' : Type'}, forall x : cart R N', (@connected_component N' (@UNIV (cart R N')) x) = (@UNIV (cart R N')). +Axiom thm_CONNECTED_COMPONENT_EQ_UNIV : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@connected_component N' s x) = (@UNIV (cart R N'))) = (s = (@UNIV (cart R N'))). +Axiom thm_CONNECTED_COMPONENT_EQ_SELF : forall {_754683 : Type'}, forall s : (cart R _754683) -> Prop, forall x : cart R _754683, ((@connected _754683 s) /\ (@IN (cart R _754683) x s)) -> (@connected_component _754683 s x) = s. +Axiom thm_CONNECTED_IFF_CONNECTED_COMPONENT : forall {_754701 : Type'}, forall s : (cart R _754701) -> Prop, (@connected _754701 s) = (forall x : cart R _754701, forall y : cart R _754701, ((@IN (cart R _754701) x s) /\ (@IN (cart R _754701) y s)) -> @connected_component _754701 s x y). +Axiom thm_CONNECTED_IMP_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@connected N' s) /\ ((@IN (cart R N') a s) /\ (@IN (cart R N') b s))) -> @connected_component N' s a b. +Axiom thm_CONNECTED_COMPONENT_MAXIMAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', ((@IN (cart R N') x t) /\ ((@connected N' t) /\ (@SUBSET (cart R N') t s))) -> @SUBSET (cart R N') t (@connected_component N' s x). +Axiom thm_CONNECTED_COMPONENT_MONO : forall {_754814 : Type'}, forall s : (cart R _754814) -> Prop, forall t : (cart R _754814) -> Prop, forall x : cart R _754814, (@SUBSET (cart R _754814) s t) -> @SUBSET (cart R _754814) (@connected_component _754814 s x) (@connected_component _754814 t x). +Axiom thm_CONNECTED_CONNECTED_COMPONENT : forall {_754828 : Type'}, forall s : (cart R _754828) -> Prop, forall x : cart R _754828, @connected _754828 (@connected_component _754828 s x). +Axiom thm_CONNECTED_COMPONENT_EQ_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@connected_component N' s x) = (@EMPTY (cart R N'))) = (~ (@IN (cart R N') x s)). +Axiom thm_CONNECTED_COMPONENT_EMPTY : forall {_754862 : Type'}, forall x : cart R _754862, (@connected_component _754862 (@EMPTY (cart R _754862)) x) = (@EMPTY (cart R _754862)). +Axiom thm_CONNECTED_COMPONENT_EQ : forall {_754894 : Type'}, forall s : (cart R _754894) -> Prop, forall x : cart R _754894, forall y : cart R _754894, (@IN (cart R _754894) y (@connected_component _754894 s x)) -> (@connected_component _754894 s y) = (@connected_component _754894 s x). +Axiom thm_CLOSED_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@closed N' s) -> @closed N' (@connected_component N' s x). +Axiom thm_CONNECTED_COMPONENT_DISJOINT : forall {_754947 : Type'}, forall s : (cart R _754947) -> Prop, forall a : cart R _754947, forall b : cart R _754947, (@DISJOINT (cart R _754947) (@connected_component _754947 s a) (@connected_component _754947 s b)) = (~ (@IN (cart R _754947) a (@connected_component _754947 s b))). +Axiom thm_CONNECTED_COMPONENT_NONOVERLAP : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@INTER (cart R N') (@connected_component N' s a) (@connected_component N' s b)) = (@EMPTY (cart R N'))) = ((~ (@IN (cart R N') a s)) \/ ((~ (@IN (cart R N') b s)) \/ (~ ((@connected_component N' s a) = (@connected_component N' s b))))). +Axiom thm_CONNECTED_COMPONENT_OVERLAP : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (~ ((@INTER (cart R N') (@connected_component N' s a) (@connected_component N' s b)) = (@EMPTY (cart R N')))) = ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ ((@connected_component N' s a) = (@connected_component N' s b)))). +Axiom thm_CONNECTED_COMPONENT_SYM_EQ : forall {_755082 : Type'}, forall s : (cart R _755082) -> Prop, forall x : cart R _755082, forall y : cart R _755082, (@connected_component _755082 s x y) = (@connected_component _755082 s y x). +Axiom thm_CONNECTED_COMPONENT_EQ_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@connected_component N' s x) = (@connected_component N' s y)) = (((~ (@IN (cart R N') x s)) /\ (~ (@IN (cart R N') y s))) \/ ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (@connected_component N' s x y)))). +Axiom thm_CONNECTED_EQ_CONNECTED_COMPONENT_EQ : forall {_755180 : Type'}, forall s : (cart R _755180) -> Prop, (@connected _755180 s) = (forall x : cart R _755180, forall y : cart R _755180, ((@IN (cart R _755180) x s) /\ (@IN (cart R _755180) y s)) -> (@connected_component _755180 s x) = (@connected_component _755180 s y)). +Axiom thm_CONNECTED_COMPONENT_IDEMP : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@connected_component N' (@connected_component N' s x) x) = (@connected_component N' s x). +Axiom thm_CONNECTED_COMPONENT_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall x : cart R N', ((@IN (cart R N') x c) /\ ((@SUBSET (cart R N') c s) /\ ((@connected N' c) /\ (forall c' : (cart R N') -> Prop, ((@IN (cart R N') x c') /\ ((@SUBSET (cart R N') c' s) /\ (@connected N' c'))) -> @SUBSET (cart R N') c' c)))) -> (@connected_component N' s x) = c. +Axiom thm_JOINABLE_CONNECTED_COMPONENT_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@connected N' t) /\ ((@SUBSET (cart R N') t s) /\ ((~ ((@INTER (cart R N') (@connected_component N' s x) t) = (@EMPTY (cart R N')))) /\ (~ ((@INTER (cart R N') (@connected_component N' s y) t) = (@EMPTY (cart R N'))))))) -> (@connected_component N' s x) = (@connected_component N' s y). +Axiom thm_CONNECTED_COMPONENT_TRANSLATION : forall {_755375 : Type'}, forall a : cart R _755375, forall s : (cart R _755375) -> Prop, forall x : cart R _755375, (@connected_component _755375 (@IMAGE (cart R _755375) (cart R _755375) (fun x' : cart R _755375 => @vector_add _755375 a x') s) (@vector_add _755375 a x)) = (@IMAGE (cart R _755375) (cart R _755375) (fun x' : cart R _755375 => @vector_add _755375 a x') (@connected_component _755375 s x)). +Axiom thm_CONNECTED_COMPONENT_LINEAR_IMAGE : forall {_755404 _755454 : Type'}, forall f : (cart R _755454) -> cart R _755404, forall s : (cart R _755454) -> Prop, forall x : cart R _755454, ((@linear _755454 _755404 f) /\ ((forall x' : cart R _755454, forall y : cart R _755454, ((f x') = (f y)) -> x' = y) /\ (forall y : cart R _755404, exists x' : cart R _755454, (f x') = y))) -> (@connected_component _755404 (@IMAGE (cart R _755454) (cart R _755404) f s) (f x)) = (@IMAGE (cart R _755454) (cart R _755404) f (@connected_component _755454 s x)). +Axiom thm_UNIONS_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3071 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3071 (@IN (cart R N') x s) (@connected_component N' s x)))) = s. +Axiom thm_COMPLEMENT_CONNECTED_COMPONENT_UNIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@DIFF (cart R N') s (@connected_component N' s x)) = (@UNIONS (cart R N') (@DELETE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3072 : (cart R N') -> Prop => exists y : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3072 (@IN (cart R N') y s) (@connected_component N' s y))) (@connected_component N' s x))). +Axiom thm_CLOSED_IN_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@connected_component N' s x). +Axiom thm_OPEN_IN_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3074 : (cart R N') -> Prop => exists x' : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3074 (@IN (cart R N') x' s) (@connected_component N' s x')))) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@connected_component N' s x). +Axiom thm_CONNECTED_COMPONENT_EQUIVALENCE_RELATION : forall {N' : Type'}, forall R' : (cart R N') -> (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((forall x : cart R N', forall y : cart R N', (R' x y) -> R' y x) /\ ((forall x : cart R N', forall y : cart R N', forall z : cart R N', ((R' x y) /\ (R' y z)) -> R' x z) /\ (forall a : cart R N', (@IN (cart R N') a s) -> exists t : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ ((@IN (cart R N') a t) /\ (forall x : cart R N', (@IN (cart R N') x t) -> R' a x))))) -> forall a : cart R N', forall b : cart R N', (@connected_component N' s a b) -> R' a b. +Axiom thm_CONNECTED_COMPONENT_INTERMEDIATE_SUBSET : forall {N' : Type'}, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall a : cart R N', ((@SUBSET (cart R N') (@connected_component N' u a) t) /\ (@SUBSET (cart R N') t u)) -> (@connected_component N' t a) = (@connected_component N' u a). +Axiom thm_CONNECTED_UNIONS_STRONG : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @connected N' s) /\ (~ ((@INTER (cart R N') (@UNIONS (cart R N') f) (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3075 : (cart R N') -> Prop => exists s : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3075 (@IN ((cart R N') -> Prop) s f) (@closure N' s))))) = (@EMPTY (cart R N'))))) -> @connected N' (@UNIONS (cart R N') f). +Axiom thm_NOT_CONNECTED_COMPONENT_SEPARATED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', (((@INTER (cart R N') s (@closure N' t)) = (@EMPTY (cart R N'))) /\ (((@INTER (cart R N') t (@closure N' s)) = (@EMPTY (cart R N'))) /\ ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)))) -> ~ (@connected_component N' (@UNION (cart R N') s t) x y). +Axiom thm_CONNECTED_COMPONENT_SEPARATED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', (((@INTER (cart R N') s (@closure N' t)) = (@EMPTY (cart R N'))) /\ ((@INTER (cart R N') t (@closure N' s)) = (@EMPTY (cart R N')))) -> (@connected_component N' (@UNION (cart R N') s t) x) = (@COND ((cart R N') -> Prop) (@IN (cart R N') x s) (@connected_component N' s x) (@COND ((cart R N') -> Prop) (@IN (cart R N') x t) (@connected_component N' t x) (@EMPTY (cart R N')))). +Axiom thm_CONNECTED_CONNECTED_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@SUBSET (cart R N') s (@closure N' (@DIFF (cart R N') s t))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists u : (cart R N') -> Prop, (@IN (cart R N') x u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@connected N' (@DIFF (cart R N') u t)))))) -> @connected N' (@DIFF (cart R N') s t). +Axiom thm_CONNECTED_COMPONENT_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@FINITE (cart R N') s) -> (@connected_component N' s x) = (@COND ((cart R N') -> Prop) (@IN (cart R N') x s) (@INSERT (cart R N') x (@EMPTY (cart R N'))) (@EMPTY (cart R N'))). +Axiom thm_components : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@components N' s) = (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3076 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3076 (@IN (cart R N') x s) (@connected_component N' s x))). +Axiom thm_EUCLIDEAN_CONNECTED_COMPONENTS_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected_components_of (cart R N') (@subtopology (cart R N') (@euclidean N') s)) = (@components N' s). +Axiom thm_PAIRWISE_SEPARATED_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, @pairwise ((cart R N') -> Prop) (@separated_in (cart R N') (@euclidean N')) (@components N' s). +Axiom thm_COMPONENTS_TRANSLATION : forall {_756385 : Type'}, forall a : cart R _756385, forall s : (cart R _756385) -> Prop, (@components _756385 (@IMAGE (cart R _756385) (cart R _756385) (fun x : cart R _756385 => @vector_add _756385 a x) s)) = (@IMAGE ((cart R _756385) -> Prop) ((cart R _756385) -> Prop) (@IMAGE (cart R _756385) (cart R _756385) (fun x : cart R _756385 => @vector_add _756385 a x)) (@components _756385 s)). +Axiom thm_COMPONENTS_LINEAR_IMAGE : forall {_756407 _756457 : Type'}, forall f : (cart R _756457) -> cart R _756407, forall s : (cart R _756457) -> Prop, ((@linear _756457 _756407 f) /\ ((forall x : cart R _756457, forall y : cart R _756457, ((f x) = (f y)) -> x = y) /\ (forall y : cart R _756407, exists x : cart R _756457, (f x) = y))) -> (@components _756407 (@IMAGE (cart R _756457) (cart R _756407) f s)) = (@IMAGE ((cart R _756457) -> Prop) ((cart R _756407) -> Prop) (@IMAGE (cart R _756457) (cart R _756407) f) (@components _756457 s)). +Axiom thm_IN_COMPONENTS : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s (@components N' u)) = (exists x : cart R N', (@IN (cart R N') x u) /\ (s = (@connected_component N' u x))). +Axiom thm_CONNECTED_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@connected_component N' s a b) = (exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) /\ ((@IN (cart R N') a c) /\ (@IN (cart R N') b c))). +Axiom thm_UNIONS_COMPONENTS : forall {N' : Type'}, forall u : (cart R N') -> Prop, u = (@UNIONS (cart R N') (@components N' u)). +Axiom thm_PAIRWISE_DISJOINT_COMPONENTS : forall {N' : Type'}, forall u : (cart R N') -> Prop, @pairwise ((cart R N') -> Prop) (@DISJOINT (cart R N')) (@components N' u). +Axiom thm_IN_COMPONENTS_NONEMPTY : forall {_756669 : Type'}, forall s : (cart R _756669) -> Prop, forall c : (cart R _756669) -> Prop, (@IN ((cart R _756669) -> Prop) c (@components _756669 s)) -> ~ (c = (@EMPTY (cart R _756669))). +Axiom thm_IN_COMPONENTS_SUBSET : forall {_756690 : Type'}, forall s : (cart R _756690) -> Prop, forall c : (cart R _756690) -> Prop, (@IN ((cart R _756690) -> Prop) c (@components _756690 s)) -> @SUBSET (cart R _756690) c s. +Axiom thm_IN_COMPONENTS_CONNECTED : forall {_756709 : Type'}, forall s : (cart R _756709) -> Prop, forall c : (cart R _756709) -> Prop, (@IN ((cart R _756709) -> Prop) c (@components _756709 s)) -> @connected _756709 c. +Axiom thm_CONNECTED_COMPONENT_IN_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@IN ((cart R N') -> Prop) (@connected_component N' s x) (@components N' s)) = (@IN (cart R N') x s). +Axiom thm_IN_COMPONENTS_MAXIMAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) = ((~ (c = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') c s) /\ ((@connected N' c) /\ (forall c' : (cart R N') -> Prop, ((~ (c' = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') c c') /\ ((@SUBSET (cart R N') c' s) /\ (@connected N' c')))) -> c' = c)))). +Axiom thm_JOINABLE_COMPONENTS_EQ : forall {_756854 : Type'}, forall s : (cart R _756854) -> Prop, forall t : (cart R _756854) -> Prop, forall c1 : (cart R _756854) -> Prop, forall c2 : (cart R _756854) -> Prop, ((@connected _756854 t) /\ ((@SUBSET (cart R _756854) t s) /\ ((@IN ((cart R _756854) -> Prop) c1 (@components _756854 s)) /\ ((@IN ((cart R _756854) -> Prop) c2 (@components _756854 s)) /\ ((~ ((@INTER (cart R _756854) c1 t) = (@EMPTY (cart R _756854)))) /\ (~ ((@INTER (cart R _756854) c2 t) = (@EMPTY (cart R _756854))))))))) -> c1 = c2. +Axiom thm_CLOSED_IN_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c. +Axiom thm_CLOSED_COMPONENTS : forall {_756913 : Type'}, forall s : (cart R _756913) -> Prop, forall c : (cart R _756913) -> Prop, ((@closed _756913 s) /\ (@IN ((cart R _756913) -> Prop) c (@components _756913 s))) -> @closed _756913 c. +Axiom thm_COMPACT_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@compact N' s) -> @compact N' (@connected_component N' s a). +Axiom thm_COMPACT_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' s) /\ (@IN ((cart R N') -> Prop) c (@components N' s))) -> @compact N' c. +Axiom thm_CONTINUOUS_ON_COMPONENTS_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M s)) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) c) /\ (@continuous_on M N' f c)) -> @continuous_on M N' f s. +Axiom thm_CONTINUOUS_ON_COMPONENTS_FINITE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@FINITE ((cart R M) -> Prop) (@components M s)) /\ (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M s)) -> @continuous_on M N' f c)) -> @continuous_on M N' f s. +Axiom thm_COMPONENTS_NONOVERLAP : forall {_757191 : Type'}, forall s : (cart R _757191) -> Prop, forall c : (cart R _757191) -> Prop, forall c' : (cart R _757191) -> Prop, ((@IN ((cart R _757191) -> Prop) c (@components _757191 s)) /\ (@IN ((cart R _757191) -> Prop) c' (@components _757191 s))) -> ((@INTER (cart R _757191) c c') = (@EMPTY (cart R _757191))) = (~ (c = c')). +Axiom thm_COMPONENTS_EQ : forall {_757231 : Type'}, forall s : (cart R _757231) -> Prop, forall c : (cart R _757231) -> Prop, forall c' : (cart R _757231) -> Prop, ((@IN ((cart R _757231) -> Prop) c (@components _757231 s)) /\ (@IN ((cart R _757231) -> Prop) c' (@components _757231 s))) -> (c = c') = (~ ((@INTER (cart R _757231) c c') = (@EMPTY (cart R _757231)))). +Axiom thm_COMPONENTS_EQ_EMPTY : forall {_757261 : Type'}, forall s : (cart R _757261) -> Prop, ((@components _757261 s) = (@EMPTY ((cart R _757261) -> Prop))) = (s = (@EMPTY (cart R _757261))). +Axiom thm_COMPONENTS_EMPTY : forall {_757272 : Type'}, (@components _757272 (@EMPTY (cart R _757272))) = (@EMPTY ((cart R _757272) -> Prop)). +Axiom thm_CONNECTED_EQ_CONNECTED_COMPONENTS_EQ : forall {_757283 : Type'}, forall s : (cart R _757283) -> Prop, (@connected _757283 s) = (forall c : (cart R _757283) -> Prop, forall c' : (cart R _757283) -> Prop, ((@IN ((cart R _757283) -> Prop) c (@components _757283 s)) /\ (@IN ((cart R _757283) -> Prop) c' (@components _757283 s))) -> c = c'). +Axiom thm_COMPONENTS_EQ_SING_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (exists a : (cart R N') -> Prop, (@components N' s) = (@INSERT ((cart R N') -> Prop) a (@EMPTY ((cart R N') -> Prop)))) = ((@connected N' s) /\ (~ (s = (@EMPTY (cart R N'))))). +Axiom thm_COMPONENTS_EQ_SING : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@components N' s) = (@INSERT ((cart R N') -> Prop) s (@EMPTY ((cart R N') -> Prop)))) = ((@connected N' s) /\ (~ (s = (@EMPTY (cart R N'))))). +Axiom thm_CONNECTED_EQ_COMPONENTS_SING : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) = ((s = (@EMPTY (cart R N'))) \/ ((@components N' s) = (@INSERT ((cart R N') -> Prop) s (@EMPTY ((cart R N') -> Prop))))). +Axiom thm_CONNECTED_EQ_COMPONENTS_SING_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) = ((s = (@EMPTY (cart R N'))) \/ (exists a : (cart R N') -> Prop, (@components N' s) = (@INSERT ((cart R N') -> Prop) a (@EMPTY ((cart R N') -> Prop))))). +Axiom thm_CONNECTED_EQ_CARD_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) = ((@FINITE ((cart R N') -> Prop) (@components N' s)) /\ (N.le (@CARD ((cart R N') -> Prop) (@components N' s)) (NUMERAL (BIT1 0%N)))). +Axiom thm_COMPONENTS_UNIV : forall {N' : Type'}, (@components N' (@UNIV (cart R N'))) = (@INSERT ((cart R N') -> Prop) (@UNIV (cart R N')) (@EMPTY ((cart R N') -> Prop))). +Axiom thm_CONNECTED_EQ_COMPONENTS_SUBSET_SING : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) = (@SUBSET ((cart R N') -> Prop) (@components N' s) (@INSERT ((cart R N') -> Prop) s (@EMPTY ((cart R N') -> Prop)))). +Axiom thm_CONNECTED_EQ_COMPONENTS_SUBSET_SING_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) = (exists a : (cart R N') -> Prop, @SUBSET ((cart R N') -> Prop) (@components N' s) (@INSERT ((cart R N') -> Prop) a (@EMPTY ((cart R N') -> Prop)))). +Axiom thm_IN_COMPONENTS_SELF : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s (@components N' s)) = ((@connected N' s) /\ (~ (s = (@EMPTY (cart R N'))))). +Axiom thm_COMPONENTS_MAXIMAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) c (@components N' s)) /\ ((@connected N' t) /\ ((@SUBSET (cart R N') t s) /\ (~ ((@INTER (cart R N') c t) = (@EMPTY (cart R N'))))))) -> @SUBSET (cart R N') t c. +Axiom thm_IN_COMPONENTS_MAXIMAL_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) = ((~ (c = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') c s) /\ ((@connected N' c) /\ (forall c' : (cart R N') -> Prop, ((~ ((@INTER (cart R N') c c') = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') c' s) /\ (@connected N' c'))) -> @SUBSET (cart R N') c' c)))). +Axiom thm_COMPONENTS_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall k : ((cart R N') -> Prop) -> Prop, (((@UNIONS (cart R N') k) = s) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c k) -> (@connected N' c) /\ ((~ (c = (@EMPTY (cart R N')))) /\ (forall c' : (cart R N') -> Prop, ((@connected N' c') /\ ((@SUBSET (cart R N') c c') /\ (@SUBSET (cart R N') c' s))) -> c' = c)))) -> (@components N' s) = k. +Axiom thm_COMPONENTS_UNIQUE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall k : ((cart R N') -> Prop) -> Prop, ((@components N' s) = k) = (((@UNIONS (cart R N') k) = s) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c k) -> (@connected N' c) /\ ((~ (c = (@EMPTY (cart R N')))) /\ (forall c' : (cart R N') -> Prop, ((@connected N' c') /\ ((@SUBSET (cart R N') c c') /\ (@SUBSET (cart R N') c' s))) -> c' = c)))). +Axiom thm_COMPONENTS_UNIQUE_2 : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c1 : (cart R N') -> Prop, forall c2 : (cart R N') -> Prop, ((@connected N' c1) /\ ((@connected N' c2) /\ (((@UNION (cart R N') c1 c2) = s) /\ (~ (@connected N' s))))) -> (@components N' s) = (@INSERT ((cart R N') -> Prop) c1 (@INSERT ((cart R N') -> Prop) c2 (@EMPTY ((cart R N') -> Prop)))). +Axiom thm_EXISTS_COMPONENT_SUPERSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') t s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@connected N' t))) -> exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) /\ (@SUBSET (cart R N') t c). +Axiom thm_COMPONENTS_INTERMEDIATE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s (@components N' u)) /\ ((@SUBSET (cart R N') s t) /\ (@SUBSET (cart R N') t u))) -> @IN ((cart R N') -> Prop) s (@components N' t). +Axiom thm_FINITE_COMPONENTS_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> @FINITE ((cart R N') -> Prop) (@components N' s). +Axiom thm_COMPONENTS_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> (@components N' s) = (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3085 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3085 (@IN (cart R N') x s) (@INSERT (cart R N') x (@EMPTY (cart R N'))))). +Axiom thm_COMPONENTS_INTER_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall d : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) c (@components N' s)) /\ (@IN ((cart R N') -> Prop) d (@components N' (@INTER (cart R N') t c)))) -> @IN ((cart R N') -> Prop) d (@components N' (@INTER (cart R N') t s)). +Axiom thm_IN_COMPONENTS_UNIONS_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) -> (@DIFF (cart R N') s c) = (@UNIONS (cart R N') (@DELETE ((cart R N') -> Prop) (@components N' s) c)). +Axiom thm_CONNECTED_SUBSET_CLOPEN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@connected N' c) /\ ((@SUBSET (cart R N') c u) /\ (~ ((@INTER (cart R N') c s) = (@EMPTY (cart R N')))))))) -> @SUBSET (cart R N') c s. +Axiom thm_CLOPEN_UNIONS_COMPONENTS : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s)) -> exists k : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) k (@components N' u)) /\ (s = (@UNIONS (cart R N') k)). +Axiom thm_CLOPEN_IN_COMPONENTS : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@connected N' s) /\ (~ (s = (@EMPTY (cart R N'))))))) -> @IN ((cart R N') -> Prop) s (@components N' u). +Axiom thm_CONNECTED_UNIONS_PAIRWISE : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @connected N' s) /\ (@pairwise ((cart R N') -> Prop) (fun s : (cart R N') -> Prop => fun t : (cart R N') -> Prop => ((~ (s = (@EMPTY (cart R N')))) /\ (~ (t = (@EMPTY (cart R N'))))) -> ~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))) f)) -> @connected N' (@UNIONS (cart R N') f). +Axiom thm_COMPONENTS_SEPARATED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (((@INTER (cart R N') s (@closure N' t)) = (@EMPTY (cart R N'))) /\ ((@INTER (cart R N') t (@closure N' s)) = (@EMPTY (cart R N')))) -> (@components N' (@UNION (cart R N') s t)) = (@UNION ((cart R N') -> Prop) (@components N' s) (@components N' t)). +Axiom thm_COMPONENTS_COMPLEMENT_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) (@frontier N' s))) = (@UNION ((cart R N') -> Prop) (@components N' (@interior N' s)) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) (@closure N' s)))). +Axiom thm_CARD_LE_COMPONENTS_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, @le_c ((cart R N') -> Prop) (Datatypes.sum ((cart R N') -> Prop) ((cart R N') -> Prop)) (@components N' (@UNION (cart R N') s t)) (@add_c ((cart R N') -> Prop) ((cart R N') -> Prop) (@components N' s) (@components N' t)). +Axiom thm_FINITE_COMPONENTS_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@FINITE ((cart R N') -> Prop) (@components N' s)) /\ (@FINITE ((cart R N') -> Prop) (@components N' t))) -> @FINITE ((cart R N') -> Prop) (@components N' (@UNION (cart R N') s t)). +Axiom thm_COUNTABLE_COMPONENTS_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@COUNTABLE ((cart R N') -> Prop) (@components N' s)) /\ (@COUNTABLE ((cart R N') -> Prop) (@components N' t))) -> @COUNTABLE ((cart R N') -> Prop) (@components N' (@UNION (cart R N') s t)). +Axiom thm_MINIMAL_SEPARATING_COMMON_COMPONENT_FRONTIER_ELEMENTWISE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c1 : (cart R N') -> Prop, forall c2 : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) c1 (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ ((@IN ((cart R N') -> Prop) c2 (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ ((@IN (cart R N') a c1) /\ ((@IN (cart R N') b c2) /\ (((@frontier N' c1) = s) /\ (((@frontier N' c2) = s) /\ (@PSUBSET (cart R N') t s))))))) -> @connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) t) a b. +Axiom thm_MINIMAL_SEPARATING_COMMON_COMPONENT_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@PSUBSET (cart R N') t s) /\ ((~ (s = (@UNIV (cart R N')))) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) -> (@frontier N' c) = s))) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) t). +Axiom thm_COMPACT_UNIFORMLY_EQUICONTINUOUS : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall s : (cart R M) -> Prop, ((forall x : cart R M, forall e : R, ((@IN (cart R M) x s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall f : (cart R M) -> cart R N', forall x' : cart R M, ((@IN ((cart R M) -> cart R N') f fs) /\ ((@IN (cart R M) x' s) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x' x)) d))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x') (f x))) e)) /\ (@compact M s)) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall f : (cart R M) -> cart R N', forall x : cart R M, forall x' : cart R M, ((@IN ((cart R M) -> cart R N') f fs) /\ ((@IN (cart R M) x s) /\ ((@IN (cart R M) x' s) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x' x)) d)))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x') (f x))) e). +Axiom thm_COMPACT_UNIFORMLY_CONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@compact M s)) -> @uniformly_continuous_on M N' f s. +Axiom thm_CONTINUOUS_EQ_CAUCHY_CONTINUOUS_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@closed M s) -> (@continuous_on M N' f s) = (forall x : N -> cart R M, ((@cauchy M x) /\ (forall n : N, @IN (cart R M) (x n) s)) -> @cauchy N' (@o N (cart R M) (cart R N') f x)). +Axiom thm_UNIFORMLY_CONTINUOUS_EQ_CAUCHY_CONTINUOUS_BOUNDED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@bounded M s) -> (@uniformly_continuous_on M N' f s) = (forall x : N -> cart R M, ((@cauchy M x) /\ (forall n : N, @IN (cart R M) (x n) s)) -> @cauchy N' (@o N (cart R M) (cart R N') f x)). +Axiom thm_CAUCHY_CONTINUOUS_EXTENDS_TO_CAUCHY_CONTINUOUS_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall x : N -> cart R M, ((@cauchy M x) /\ (forall n : N, @IN (cart R M) (x n) s)) -> @cauchy N' (@o N (cart R M) (cart R N') f x)) -> exists g : (cart R M) -> cart R N', (forall x : N -> cart R M, ((@cauchy M x) /\ (forall n : N, @IN (cart R M) (x n) (@closure M s))) -> @cauchy N' (@o N (cart R M) (cart R N') g x)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)). +Axiom thm_CAUCHY_CONTINUOUS_EQ_EXTENDS_TO_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall x : N -> cart R M, ((@cauchy M x) /\ (forall n : N, @IN (cart R M) (x n) s)) -> @cauchy N' (@o N (cart R M) (cart R N') f x)) = (exists g : (cart R M) -> cart R N', (@continuous_on M N' g (@closure M s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))). +Axiom thm_UNIFORMLY_CONTINUOUS_ON_UNION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@bounded M s) /\ ((@bounded M t) /\ ((@uniformly_continuous_on M N' f t) /\ (@continuous_on M N' f (@UNION (cart R M) (@closure M s) t))))) -> @uniformly_continuous_on M N' f (@UNION (cart R M) s t). +Axiom thm_CONTINUOUS_UNIFORM_LIMIT : forall {A M N' : Type'}, forall net' : net A, forall f : A -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((~ (@trivial_limit A net')) /\ ((@eventually A (fun n : A => @continuous_on M N' (f n) s) net') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun n : A => forall x : cart R M, (@IN (cart R M) x s) -> Rlt (@vector_norm N' (@vector_sub N' (f n x) (g x))) e) net'))) -> @continuous_on M N' g s. +Axiom thm_CONTINUOUS_UNIFORMLY_CAUCHY_LIMIT : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@eventually N (fun n : N => @continuous_on M N' (f n) s) sequentially) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, forall x : cart R M, ((N.le N'' m) /\ ((N.le N'' n) /\ (@IN (cart R M) x s))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f m x) (f n x))) e)) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @FImp N' N (fun n : N => f n x) (g x) sequentially). +Axiom thm_OPEN_LIFT : forall s : R -> Prop, (@_open unit (@IMAGE R (cart R unit) lift s)) = (forall x : R, (@IN R x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x' : R, (Rlt (Rabs (Rminus x' x)) e) -> @IN R x' s)). +Axiom thm_LIMPT_APPROACHABLE_LIFT : forall x : R, forall s : R -> Prop, (@limit_point_of unit (lift x) (@IMAGE R (cart R unit) lift s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists x' : R, (@IN R x' s) /\ ((~ (x' = x)) /\ (Rlt (Rabs (Rminus x' x)) e))). +Axiom thm_CLOSED_LIFT : forall s : R -> Prop, (@closed unit (@IMAGE R (cart R unit) lift s)) = (forall x : R, (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists x' : R, (@IN R x' s) /\ ((~ (x' = x)) /\ (Rlt (Rabs (Rminus x' x)) e))) -> @IN R x s). +Axiom thm_CONTINUOUS_AT_LIFT_RANGE : forall {_760218 : Type'}, forall f : (cart R _760218) -> R, forall x : cart R _760218, (@continuous unit (cart R _760218) (@o (cart R _760218) R (cart R unit) lift f) (@_at _760218 x)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R _760218, (Rlt (@vector_norm _760218 (@vector_sub _760218 x' x)) d) -> Rlt (Rabs (Rminus (f x') (f x))) e)). +Axiom thm_CONTINUOUS_ON_LIFT_RANGE : forall {_760306 : Type'}, forall f : (cart R _760306) -> R, forall s : (cart R _760306) -> Prop, (@continuous_on _760306 unit (@o (cart R _760306) R (cart R unit) lift f) s) = (forall x : cart R _760306, (@IN (cart R _760306) x s) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R _760306, ((@IN (cart R _760306) x' s) /\ (Rlt (@vector_norm _760306 (@vector_sub _760306 x' x)) d)) -> Rlt (Rabs (Rminus (f x') (f x))) e)). +Axiom thm_CONTINUOUS_LIFT_NORM_COMPOSE : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', (@continuous N' A f net') -> @continuous unit A (fun x : A => lift (@vector_norm N' (f x))) net'. +Axiom thm_CONTINUOUS_ON_LIFT_NORM_COMPOSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) -> @continuous_on M unit (fun x : cart R M => lift (@vector_norm N' (f x))) s. +Axiom thm_CONTINUOUS_AT_LIFT_NORM : forall {_760381 : Type'}, forall x : cart R _760381, @continuous unit (cart R _760381) (@o (cart R _760381) R (cart R unit) lift (@vector_norm _760381)) (@_at _760381 x). +Axiom thm_CONTINUOUS_ON_LIFT_NORM : forall {_760398 : Type'}, forall s : (cart R _760398) -> Prop, @continuous_on _760398 unit (@o (cart R _760398) R (cart R unit) lift (@vector_norm _760398)) s. +Axiom thm_PROPER_MAP_NORM_SIMPLE : forall {N' : Type'}, forall k : (cart R unit) -> Prop, (@compact unit k) -> @compact N' (@GSPEC (cart R N') (fun GEN_PVAR_3089 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3089 (@IN (cart R unit) (lift (@vector_norm N' x)) k) x)). +Axiom thm_PROPER_MAP_NORM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R unit) -> Prop, (@closed N' s) -> forall k : (cart R unit) -> Prop, ((@SUBSET (cart R unit) k t) /\ (@compact unit k)) -> @compact N' (@GSPEC (cart R N') (fun GEN_PVAR_3092 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3092 ((@IN (cart R N') x s) /\ (@IN (cart R unit) (lift (@vector_norm N' x)) k)) x)). +Axiom thm_CLOSED_MAP_NORM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @closed unit (@IMAGE (cart R N') (cart R unit) (@o (cart R N') R (cart R unit) lift (@vector_norm N')) s). +Axiom thm_CONTINUOUS_AT_LIFT_COMPONENT : forall {N' : Type'}, forall i : N, forall a : cart R N', ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @continuous unit (cart R N') (fun x : cart R N' => lift (@dollar R N' x i)) (@_at N' a). +Axiom thm_CONTINUOUS_ON_LIFT_COMPONENT : forall {N' : Type'}, forall i : N, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @continuous_on N' unit (fun x : cart R N' => lift (@dollar R N' x i)) s. +Axiom thm_CONTINUOUS_AT_LIFT_INFNORM : forall {N' : Type'}, forall x : cart R N', @continuous unit (cart R N') (@o (cart R N') R (cart R unit) lift (@infnorm N')) (@_at N' x). +Axiom thm_CONTINUOUS_AT_LIFT_DIST : forall {N' : Type'}, forall a : cart R N', forall x : cart R N', @continuous unit (cart R N') (@o (cart R N') R (cart R unit) lift (fun x' : cart R N' => @distance N' (@pair (cart R N') (cart R N') a x'))) (@_at N' x). +Axiom thm_CONTINUOUS_ON_LIFT_DIST : forall {_760753 : Type'}, forall a : cart R _760753, forall s : (cart R _760753) -> Prop, @continuous_on _760753 unit (@o (cart R _760753) R (cart R unit) lift (fun x : cart R _760753 => @distance _760753 (@pair (cart R _760753) (cart R _760753) a x))) s. +Axiom thm_COMPACT_ATTAINS_SUP : forall s : R -> Prop, ((@compact unit (@IMAGE R (cart R unit) lift s)) /\ (~ (s = (@EMPTY R)))) -> exists x : R, (@IN R x s) /\ (forall y : R, (@IN R y s) -> Rle y x). +Axiom thm_COMPACT_ATTAINS_INF : forall s : R -> Prop, ((@compact unit (@IMAGE R (cart R unit) lift s)) /\ (~ (s = (@EMPTY R)))) -> exists x : R, (@IN R x s) /\ (forall y : R, (@IN R y s) -> Rle x y). +Axiom thm_CONTINUOUS_ATTAINS_SUP : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@continuous_on N' unit (@o (cart R N') R (cart R unit) lift f) s))) -> exists x : cart R N', (@IN (cart R N') x s) /\ (forall y : cart R N', (@IN (cart R N') y s) -> Rle (f y) (f x)). +Axiom thm_CONTINUOUS_ATTAINS_INF : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@continuous_on N' unit (@o (cart R N') R (cart R unit) lift f) s))) -> exists x : cart R N', (@IN (cart R N') x s) /\ (forall y : cart R N', (@IN (cart R N') y s) -> Rle (f x) (f y)). +Axiom thm_DISTANCE_ATTAINS_SUP : forall {_761113 : Type'}, forall s : (cart R _761113) -> Prop, forall a : cart R _761113, ((@compact _761113 s) /\ (~ (s = (@EMPTY (cart R _761113))))) -> exists x : cart R _761113, (@IN (cart R _761113) x s) /\ (forall y : cart R _761113, (@IN (cart R _761113) y s) -> Rle (@distance _761113 (@pair (cart R _761113) (cart R _761113) a y)) (@distance _761113 (@pair (cart R _761113) (cart R _761113) a x))). +Axiom thm_DISTANCE_ATTAINS_INF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@closed N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists x : cart R N', (@IN (cart R N') x s) /\ (forall y : cart R N', (@IN (cart R N') y s) -> Rle (@distance N' (@pair (cart R N') (cart R N') a x)) (@distance N' (@pair (cart R N') (cart R N') a y))). +Axiom thm_LIM_MUL : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', forall c : A -> R, forall d : R, ((@FImp unit A (@o A R (cart R unit) lift c) (lift d) net') /\ (@FImp N' A f l net')) -> @FImp N' A (fun x : A => @percent N' (c x) (f x)) (@percent N' d l) net'. +Axiom thm_LIM_LIFT_POW : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, forall n : N, (@FImp unit A (fun a : A => lift (f a)) (lift l) net') -> @FImp unit A (fun a : A => lift (real_pow (f a) n)) (lift (real_pow l n)) net'. +Axiom thm_LIM_LIFT_PRODUCT : forall {A B : Type'}, forall net' : net A, forall f : A -> B -> R, forall g : B -> R, forall t : B -> Prop, ((@FINITE B t) /\ (forall i : B, (@IN B i t) -> @FImp unit A (fun x : A => lift (f x i)) (lift (g i)) net')) -> @FImp unit A (fun x : A => lift (@product B t (f x))) (lift (@product B t g)) net'. +Axiom thm_LIM_VMUL : forall {A N' : Type'}, forall net' : net A, forall c : A -> R, forall d : R, forall v : cart R N', (@FImp unit A (@o A R (cart R unit) lift c) (lift d) net') -> @FImp N' A (fun x : A => @percent N' (c x) v) (@percent N' d v) net'. +Axiom thm_CONTINUOUS_VMUL : forall {_761548 _761549 : Type'}, forall net' : net _761549, forall c : _761549 -> R, forall v : cart R _761548, (@continuous unit _761549 (@o _761549 R (cart R unit) lift c) net') -> @continuous _761548 _761549 (fun x : _761549 => @percent _761548 (c x) v) net'. +Axiom thm_CONTINUOUS_MUL : forall {_761578 _761590 : Type'}, forall net' : net _761590, forall f : _761590 -> cart R _761578, forall c : _761590 -> R, ((@continuous unit _761590 (@o _761590 R (cart R unit) lift c) net') /\ (@continuous _761578 _761590 f net')) -> @continuous _761578 _761590 (fun x : _761590 => @percent _761578 (c x) (f x)) net'. +Axiom thm_CONTINUOUS_ON_VMUL : forall {_761618 _761623 : Type'}, forall s : (cart R _761618) -> Prop, forall c : (cart R _761618) -> R, forall v : cart R _761623, (@continuous_on _761618 unit (@o (cart R _761618) R (cart R unit) lift c) s) -> @continuous_on _761618 _761623 (fun x : cart R _761618 => @percent _761623 (c x) v) s. +Axiom thm_CONTINUOUS_ON_MUL : forall {_761653 _761658 : Type'}, forall s : (cart R _761658) -> Prop, forall c : (cart R _761658) -> R, forall f : (cart R _761658) -> cart R _761653, ((@continuous_on _761658 unit (@o (cart R _761658) R (cart R unit) lift c) s) /\ (@continuous_on _761658 _761653 f s)) -> @continuous_on _761658 _761653 (fun x : cart R _761658 => @percent _761653 (c x) (f x)) s. +Axiom thm_CONTINUOUS_LIFT_POW : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall n : N, (@continuous unit A (fun x : A => lift (f x)) net') -> @continuous unit A (fun x : A => lift (real_pow (f x) n)) net'. +Axiom thm_CONTINUOUS_ON_LIFT_POW : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall n : N, (@continuous_on N' unit (fun x : cart R N' => lift (f x)) s) -> @continuous_on N' unit (fun x : cart R N' => lift (real_pow (f x) n)) s. +Axiom thm_CONTINUOUS_LIFT_PRODUCT : forall {A B : Type'}, forall net' : net A, forall f : A -> B -> R, forall t : B -> Prop, ((@FINITE B t) /\ (forall i : B, (@IN B i t) -> @continuous unit A (fun x : A => lift (f x i)) net')) -> @continuous unit A (fun x : A => lift (@product B t (f x))) net'. +Axiom thm_CONTINUOUS_ON_LIFT_PRODUCT : forall {A N' : Type'}, forall f : (cart R N') -> A -> R, forall s : (cart R N') -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (forall i : A, (@IN A i t) -> @continuous_on N' unit (fun x : cart R N' => lift (f x i)) s)) -> @continuous_on N' unit (fun x : cart R N' => lift (@product A t (f x))) s. +Axiom thm_LIM_INV : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, ((@FImp unit A (@o A R (cart R unit) lift f) (lift l) net') /\ (~ (l = (R_of_N (NUMERAL 0%N))))) -> @FImp unit A (@o A R (cart R unit) lift (@o A R R Rinv f)) (lift (Rinv l)) net'. +Axiom thm_CONTINUOUS_INV : forall {_761907 : Type'}, forall net' : net _761907, forall f : _761907 -> R, ((@continuous unit _761907 (@o _761907 R (cart R unit) lift f) net') /\ (~ ((f (@netlimit _761907 net')) = (R_of_N (NUMERAL 0%N))))) -> @continuous unit _761907 (@o _761907 R (cart R unit) lift (@o _761907 R R Rinv f)) net'. +Axiom thm_CONTINUOUS_AT_WITHIN_INV : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall a : cart R N', ((@continuous unit (cart R N') (@o (cart R N') R (cart R unit) lift f) (@within (cart R N') (@_at N' a) s)) /\ (~ ((f a) = (R_of_N (NUMERAL 0%N))))) -> @continuous unit (cart R N') (@o (cart R N') R (cart R unit) lift (@o (cart R N') R R Rinv f)) (@within (cart R N') (@_at N' a) s). +Axiom thm_CONTINUOUS_AT_INV : forall {_762037 : Type'}, forall f : (cart R _762037) -> R, forall a : cart R _762037, ((@continuous unit (cart R _762037) (@o (cart R _762037) R (cart R unit) lift f) (@_at _762037 a)) /\ (~ ((f a) = (R_of_N (NUMERAL 0%N))))) -> @continuous unit (cart R _762037) (@o (cart R _762037) R (cart R unit) lift (@o (cart R _762037) R R Rinv f)) (@_at _762037 a). +Axiom thm_CONTINUOUS_ON_INV : forall {_762079 : Type'}, forall f : (cart R _762079) -> R, forall s : (cart R _762079) -> Prop, ((@continuous_on _762079 unit (@o (cart R _762079) R (cart R unit) lift f) s) /\ (forall x : cart R _762079, (@IN (cart R _762079) x s) -> ~ ((f x) = (R_of_N (NUMERAL 0%N))))) -> @continuous_on _762079 unit (@o (cart R _762079) R (cart R unit) lift (@o (cart R _762079) R R Rinv f)) s. +Axiom thm_CONTINUOUS_MAP_PASTECART : forall {M N' : Type'}, @continuous_map (prod (cart R M) (cart R N')) (cart R (finite_sum M N')) (@pair (Topology (prod (cart R M) (cart R N'))) (Topology (cart R (finite_sum M N'))) (@prod_topology (cart R M) (cart R N') (@euclidean M) (@euclidean N')) (@euclidean (finite_sum M N'))) (@GABS ((prod (cart R M) (cart R N')) -> cart R (finite_sum M N')) (fun f : (prod (cart R M) (cart R N')) -> cart R (finite_sum M N') => forall x : cart R M, forall y : cart R N', @GEQ (cart R (finite_sum M N')) (f (@pair (cart R M) (cart R N') x y)) (@pastecart R M N' x y))). +Axiom thm_LIM_PASTECART : forall {A M N' : Type'} (a : cart R M) (b : cart R N'), forall net' : net A, forall f : A -> cart R M, forall g : A -> cart R N', ((@FImp M A f a net') /\ (@FImp N' A g b net')) -> @FImp (finite_sum M N') A (fun x : A => @pastecart R M N' (f x) (g x)) (@pastecart R M N' a b) net'. +Axiom thm_LIM_PASTECART_EQ : forall {A M N' : Type'} (a : cart R M) (b : cart R N'), forall net' : net A, forall f : A -> cart R M, forall g : A -> cart R N', (@FImp (finite_sum M N') A (fun x : A => @pastecart R M N' (f x) (g x)) (@pastecart R M N' a b) net') = ((@FImp M A f a net') /\ (@FImp N' A g b net')). +Axiom thm_CONTINUOUS_PASTECART : forall {A M N' : Type'}, forall net' : net A, forall f : A -> cart R M, forall g : A -> cart R N', ((@continuous M A f net') /\ (@continuous N' A g net')) -> @continuous (finite_sum M N') A (fun x : A => @pastecart R M N' (f x) (g x)) net'. +Axiom thm_CONTINUOUS_ON_PASTECART : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@continuous_on M P g s)) -> @continuous_on M (finite_sum N' P) (fun x : cart R M => @pastecart R N' P (f x) (g x)) s. +Axiom thm_CONTINUOUS_FSTCART : forall {A M N' : Type'}, forall net' : net A, forall f : A -> cart R (finite_sum M N'), (@continuous (finite_sum M N') A f net') -> @continuous M A (fun x : A => @fstcart R M N' (f x)) net'. +Axiom thm_CONTINUOUS_SNDCART : forall {A M N' : Type'}, forall net' : net A, forall f : A -> cart R (finite_sum M N'), (@continuous (finite_sum M N') A f net') -> @continuous N' A (fun x : A => @sndcart R M N' (f x)) net'. +Axiom thm_CONTINUOUS_ON_FSTCART : forall {M N' P : Type'} (s : (cart R M) -> Prop), forall f : (cart R M) -> cart R (finite_sum N' P), (@continuous_on M (finite_sum N' P) f s) -> @continuous_on M N' (fun x : cart R M => @fstcart R N' P (f x)) s. +Axiom thm_CONTINUOUS_ON_SNDCART : forall {M N' P : Type'} (s : (cart R M) -> Prop), forall f : (cart R M) -> cart R (finite_sum N' P), (@continuous_on M (finite_sum N' P) f s) -> @continuous_on M P (fun x : cart R M => @sndcart R N' P (f x)) s. +Axiom thm_CONNECTED_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@connected M s) /\ (@connected N' t)) -> @connected (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_CONNECTED_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@connected (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@connected M s) /\ (@connected N' t)))). +Axiom thm_CONNECTED_COMPONENT_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall a : cart R M, forall b : cart R N', (@connected_component (finite_sum M N') (@PCROSS R M N' s t) (@pastecart R M N' a b)) = (@PCROSS R M N' (@connected_component M s a) (@connected_component N' t b)). +Axiom thm_COMPONENTS_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@components (finite_sum M N') (@PCROSS R M N' s t)) = (@GSPEC ((cart R (finite_sum M N')) -> Prop) (fun GEN_PVAR_3100 : (cart R (finite_sum M N')) -> Prop => exists c : (cart R M) -> Prop, exists d : (cart R N') -> Prop, @SETSPEC ((cart R (finite_sum M N')) -> Prop) GEN_PVAR_3100 ((@IN ((cart R M) -> Prop) c (@components M s)) /\ (@IN ((cart R N') -> Prop) d (@components N' t))) (@PCROSS R M N' c d))). +Axiom thm_CLOSURE_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@closure (finite_sum M N') (@PCROSS R M N' s t)) = (@PCROSS R M N' (@closure M s) (@closure N' t)). +Axiom thm_LIMPT_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall x : cart R M, forall y : cart R N', ((@limit_point_of M x s) /\ (@limit_point_of N' y t)) -> @limit_point_of (finite_sum M N') (@pastecart R M N' x y) (@PCROSS R M N' s t). +Axiom thm_CLOSED_IN_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) s') /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) t')) -> @closed_in (cart R (finite_sum M N')) (@subtopology (cart R (finite_sum M N')) (@euclidean (finite_sum M N')) (@PCROSS R M N' s t)) (@PCROSS R M N' s' t'). +Axiom thm_CLOSED_IN_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, (@closed_in (cart R (finite_sum M N')) (@subtopology (cart R (finite_sum M N')) (@euclidean (finite_sum M N')) (@PCROSS R M N' s t)) (@PCROSS R M N' s' t')) = ((s' = (@EMPTY (cart R M))) \/ ((t' = (@EMPTY (cart R N'))) \/ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) s') /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) t')))). +Axiom thm_FRONTIER_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@frontier (finite_sum M N') (@PCROSS R M N' s t)) = (@UNION (cart R (finite_sum M N')) (@PCROSS R M N' (@frontier M s) (@closure N' t)) (@PCROSS R M N' (@closure M s) (@frontier N' t))). +Axiom thm_CONNECTED_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@connected N' s) -> @connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s). +Axiom thm_CONNECTED_NEGATIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) -> @connected N' (@IMAGE (cart R N') (cart R N') (@vector_neg N') s). +Axiom thm_CONNECTED_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@connected N' s)). +Axiom thm_CONNECTED_AFFINITY_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = ((m = (R_of_N (NUMERAL 0%N))) \/ (@connected N' s)). +Axiom thm_CONNECTED_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@connected N' s) -> @connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s). +Axiom thm_CONNECTED_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ (@connected N' t)) -> @connected N' (@GSPEC (cart R N') (fun GEN_PVAR_3101 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3101 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_COMPACT_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@compact N' s) -> @compact N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s). +Axiom thm_COMPACT_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@compact N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@compact N' s)). +Axiom thm_COMPACT_NEGATIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> @compact N' (@IMAGE (cart R N') (cart R N') (@vector_neg N') s). +Axiom thm_COMPACT_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ (@compact N' t)) -> @compact N' (@GSPEC (cart R N') (fun GEN_PVAR_3103 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3103 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_COMPACT_DIFFERENCES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ (@compact N' t)) -> @compact N' (@GSPEC (cart R N') (fun GEN_PVAR_3106 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3106 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_sub N' x y))). +Axiom thm_COMPACT_AFFINITY_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@compact N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = ((m = (R_of_N (NUMERAL 0%N))) \/ (@compact N' s)). +Axiom thm_COMPACT_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@compact N' s) -> @compact N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s). +Axiom thm_COMPACT_SUP_MAXDISTANCE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists x : cart R N', exists y : cart R N', (@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (forall u : cart R N', forall v : cart R N', ((@IN (cart R N') u s) /\ (@IN (cart R N') v s)) -> Rle (@vector_norm N' (@vector_sub N' u v)) (@vector_norm N' (@vector_sub N' x y)))). +Axiom thm_diameter : forall {_764049 : Type'}, forall s : (cart R _764049) -> Prop, (@diameter _764049 s) = (@COND R (s = (@EMPTY (cart R _764049))) (R_of_N (NUMERAL 0%N)) (sup (@GSPEC R (fun GEN_PVAR_3108 : R => exists x : cart R _764049, exists y : cart R _764049, @SETSPEC R GEN_PVAR_3108 ((@IN (cart R _764049) x s) /\ (@IN (cart R _764049) y s)) (@vector_norm _764049 (@vector_sub _764049 x y)))))). +Axiom thm_DIAMETER_BOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (@vector_norm N' (@vector_sub N' x y)) (@diameter N' s)) /\ (forall d : R, ((Rle (R_of_N (NUMERAL 0%N)) d) /\ (Rlt d (@diameter N' s))) -> exists x : cart R N', exists y : cart R N', (@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (Rgt (@vector_norm N' (@vector_sub N' x y)) d))). +Axiom thm_DIAMETER_BOUNDED_BOUND : forall {_764303 : Type'}, forall s : (cart R _764303) -> Prop, forall x : cart R _764303, forall y : cart R _764303, ((@bounded _764303 s) /\ ((@IN (cart R _764303) x s) /\ (@IN (cart R _764303) y s))) -> Rle (@vector_norm _764303 (@vector_sub _764303 x y)) (@diameter _764303 s). +Axiom thm_DIAMETER_COMPACT_ATTAINED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists x : cart R N', exists y : cart R N', (@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((@vector_norm N' (@vector_sub N' x y)) = (@diameter N' s))). +Axiom thm_DIAMETER_TRANSLATION : forall {_764388 : Type'}, forall a : cart R _764388, forall s : (cart R _764388) -> Prop, (@diameter _764388 (@IMAGE (cart R _764388) (cart R _764388) (fun x : cart R _764388 => @vector_add _764388 a x) s)) = (@diameter _764388 s). +Axiom thm_DIAMETER_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, (@vector_norm N' (f x)) = (@vector_norm M x))) -> (@diameter N' (@IMAGE (cart R M) (cart R N') f s)) = (@diameter M s). +Axiom thm_DIAMETER_EMPTY : forall {_764440 : Type'}, (@diameter _764440 (@EMPTY (cart R _764440))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DIAMETER_SING : forall {_764489 : Type'}, forall a : cart R _764489, (@diameter _764489 (@INSERT (cart R _764489) a (@EMPTY (cart R _764489)))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DIAMETER_POS_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> Rle (R_of_N (NUMERAL 0%N)) (@diameter N' s). +Axiom thm_DIAMETER_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') s t) /\ (@bounded N' t)) -> Rle (@diameter N' s) (@diameter N' t). +Axiom thm_DIAMETER_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@diameter N' (@closure N' s)) = (@diameter N' s). +Axiom thm_DIAMETER_SUBSET_CBALL_NONEMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists z : cart R N', (@IN (cart R N') z s) /\ (@SUBSET (cart R N') s (@cball N' (@pair (cart R N') R z (@diameter N' s)))). +Axiom thm_DIAMETER_SUBSET_CBALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> exists z : cart R N', @SUBSET (cart R N') s (@cball N' (@pair (cart R N') R z (@diameter N' s))). +Axiom thm_DIAMETER_EQ_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> ((@diameter N' s) = (R_of_N (NUMERAL 0%N))) = ((s = (@EMPTY (cart R N'))) \/ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N'))))). +Axiom thm_DIAMETER_LE : forall {N' : Type'} (d : R), forall s : (cart R N') -> Prop, (((~ (s = (@EMPTY (cart R N')))) \/ (Rle (R_of_N (NUMERAL 0%N)) d)) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (@vector_norm N' (@vector_sub N' x y)) d)) -> Rle (@diameter N' s) d. +Axiom thm_BOUNDED_AND_DIAMETER_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall r : R, ((@bounded N' s) /\ (Rle (@diameter N' s) r)) = ((Rle (R_of_N (NUMERAL 0%N)) r) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (@distance N' (@pair (cart R N') (cart R N') x y)) r)). +Axiom thm_DIST_LE_DIAMETER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@bounded N' s) /\ ((@IN (cart R N') a s) /\ (@IN (cart R N') b s))) -> Rle (@distance N' (@pair (cart R N') (cart R N') a b)) (@diameter N' s). +Axiom thm_DIAMETER_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (@diameter N' (@cball N' (@pair (cart R N') R a r))) = (@COND R (Rlt r (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL 0%N)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) r)). +Axiom thm_DIAMETER_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (@diameter N' (@ball N' (@pair (cart R N') R a r))) = (@COND R (Rlt r (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL 0%N)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) r)). +Axiom thm_DIAMETER_SCALING : forall {N' : Type'}, forall a : R, forall s : (cart R N') -> Prop, (@bounded N' s) -> (@diameter N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' a x) s)) = (Rmult (Rabs a) (@diameter N' s)). +Axiom thm_DIAMETER_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@bounded N' s) -> (@diameter N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = (Rmult (Rabs m) (@diameter N' s)). +Axiom thm_DIAMETER_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ (@bounded N' t)) -> Rle (@diameter N' (@GSPEC (cart R N') (fun GEN_PVAR_3115 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3115 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))) (Rplus (@diameter N' s) (@diameter N' t)). +Axiom thm_DIAMETER_LE_SUMS_RIGHT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((~ (t = (@EMPTY (cart R N')))) /\ ((@bounded N' s) /\ (@bounded N' t))) -> Rle (@diameter N' s) (@diameter N' (@GSPEC (cart R N') (fun GEN_PVAR_3116 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3116 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))). +Axiom thm_DIAMETER_LE_SUMS_LEFT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R N')))) /\ ((@bounded N' s) /\ (@bounded N' t))) -> Rle (@diameter N' t) (@diameter N' (@GSPEC (cart R N') (fun GEN_PVAR_3117 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3117 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))). +Axiom thm_DIAMETER_UNION_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ ((@bounded N' t) /\ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))))) -> Rle (@diameter N' (@UNION (cart R N') s t)) (Rplus (@diameter N' s) (@diameter N' t)). +Axiom thm_LEBESGUE_COVERING_LEMMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : ((cart R N') -> Prop) -> Prop, ((@compact N' s) /\ ((~ (c = (@EMPTY ((cart R N') -> Prop)))) /\ ((@SUBSET (cart R N') s (@UNIONS (cart R N') c)) /\ (forall b : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) b c) -> @_open N' b)))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') t s) /\ (Rle (@diameter N' t) d)) -> exists b : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) b c) /\ (@SUBSET (cart R N') t b)). +Axiom thm_LEBESGUE_COVERING_LEMMA_GEN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall c : ((cart R N') -> Prop) -> Prop, ((@compact N' s) /\ ((~ (c = (@EMPTY ((cart R N') -> Prop)))) /\ ((@SUBSET (cart R N') s (@UNIONS (cart R N') c)) /\ (forall b : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) b c) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) b)))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') t s) /\ (Rle (@diameter N' t) d)) -> exists b : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) b c) /\ (@SUBSET (cart R N') t b)). +Axiom thm_CLOSED_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@closed N' s) -> @closed N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s). +Axiom thm_CLOSED_NEGATIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @closed N' (@IMAGE (cart R N') (cart R N') (@vector_neg N') s). +Axiom thm_COMPACT_CLOSED_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ (@closed N' t)) -> @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_3118 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3118 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_CLOSED_COMPACT_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ (@compact N' t)) -> @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_3121 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3121 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_CLOSURE_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) \/ (@bounded N' t)) -> (@closure N' (@GSPEC (cart R N') (fun GEN_PVAR_3122 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3122 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))) = (@GSPEC (cart R N') (fun GEN_PVAR_3123 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3123 ((@IN (cart R N') x (@closure N' s)) /\ (@IN (cart R N') y (@closure N' t))) (@vector_add N' x y))). +Axiom thm_COMPACT_CLOSED_DIFFERENCES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ (@closed N' t)) -> @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_3126 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3126 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_sub N' x y))). +Axiom thm_CLOSED_COMPACT_DIFFERENCES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ (@compact N' t)) -> @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_3129 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3129 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_sub N' x y))). +Axiom thm_CLOSED_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@closed N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@closed N' s). +Axiom thm_CLOSED_TRANSLATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@closed N' s) -> @closed N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_COMPLETE_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@complete N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@complete N' s). +Axiom thm_CLOSED_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@closed N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@closed N' s)). +Axiom thm_CLOSED_AFFINITY_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@closed N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = ((m = (R_of_N (NUMERAL 0%N))) \/ (@closed N' s)). +Axiom thm_CLOSED_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@closed N' s) -> @closed N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s). +Axiom thm_TRANSLATION_DIFF : forall {N' : Type'} (a : cart R N'), forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@DIFF (cart R N') s t)) = (@DIFF (cart R N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) t)). +Axiom thm_CLOSURE_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@closure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@closure N' s)). +Axiom thm_FRONTIER_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@frontier N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@frontier N' s)). +Axiom thm_DIAMETER_LT_SUMS_RIGHT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (exists a : cart R N', @SUBSET (cart R N') t (@INSERT (cart R N') a (@EMPTY (cart R N'))))) /\ ((@bounded N' s) /\ (@bounded N' t)))) -> Rlt (@diameter N' s) (@diameter N' (@GSPEC (cart R N') (fun GEN_PVAR_3132 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3132 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))). +Axiom thm_DIAMETER_LT_SUMS_LEFT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((~ (exists a : cart R N', @SUBSET (cart R N') s (@INSERT (cart R N') a (@EMPTY (cart R N'))))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ ((@bounded N' s) /\ (@bounded N' t)))) -> Rlt (@diameter N' t) (@diameter N' (@GSPEC (cart R N') (fun GEN_PVAR_3133 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3133 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))). +Axiom thm_COMPACT_SHRINK_ENCLOSING_BALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall r : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@compact N' s) /\ (@SUBSET (cart R N') s (@ball N' (@pair (cart R N') R x r))))) -> exists r' : R, (Rlt (R_of_N (NUMERAL 0%N)) r') /\ ((Rlt r' r) /\ (@SUBSET (cart R N') s (@ball N' (@pair (cart R N') R x r')))). +Axiom thm_COMPACT_SHRINK_ENCLOSING_BALL_INFTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall b : R, ((@compact N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (Rmult b (@vector_norm N' x)) (R_of_N (NUMERAL (BIT1 0%N))))) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((Rlt (Rmult b r) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (@vector_norm N' x) r)). +Axiom thm_SEPARATE_POINT_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@closed N' s) /\ (~ (@IN (cart R N') a s))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rle d (@distance N' (@pair (cart R N') (cart R N') a x))). +Axiom thm_SEPARATE_COMPACT_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@closed N' t) /\ ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) -> Rle d (@distance N' (@pair (cart R N') (cart R N') x y))). +Axiom thm_SEPARATE_CLOSED_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@compact N' t) /\ ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) -> Rle d (@distance N' (@pair (cart R N') (cart R N') x y))). +Axiom thm_CLOSED_UNION_COMPACT_SUBSETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> exists f : N -> (cart R N') -> Prop, (forall n : N, @compact N' (f n)) /\ ((forall n : N, @SUBSET (cart R N') (f n) s) /\ ((forall n : N, @SUBSET (cart R N') (f n) (f (N.add n (NUMERAL (BIT1 0%N))))) /\ (((@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3135 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3135 (@IN N n (@UNIV N)) (f n)))) = s) /\ (forall k : (cart R N') -> Prop, ((@compact N' k) /\ (@SUBSET (cart R N') k s)) -> exists N'' : N, forall n : N, (N.ge n N'') -> @SUBSET (cart R N') k (f n))))). +Axiom thm_OPEN_UNION_COMPACT_SUBSETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> exists f : N -> (cart R N') -> Prop, (forall n : N, @compact N' (f n)) /\ ((forall n : N, @SUBSET (cart R N') (f n) s) /\ ((forall n : N, @SUBSET (cart R N') (f n) (@interior N' (f (N.add n (NUMERAL (BIT1 0%N)))))) /\ (((@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3143 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3143 (@IN N n (@UNIV N)) (f n)))) = s) /\ (forall k : (cart R N') -> Prop, ((@compact N' k) /\ (@SUBSET (cart R N') k s)) -> exists N'' : N, forall n : N, (N.ge n N'') -> @SUBSET (cart R N') k (f n))))). +Axiom thm_CONTINUOUS_CLOSED_GRAPH_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t)) -> @closed_in (cart R (finite_sum M N')) (@subtopology (cart R (finite_sum M N')) (@euclidean (finite_sum M N')) (@PCROSS R M N' s t)) (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_3146 : cart R (finite_sum M N') => exists x : cart R M, @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_3146 (@IN (cart R M) x s) (@pastecart R M N' x (f x)))). +Axiom thm_CONTINUOUS_CLOSED_GRAPH_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@compact N' t) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t)) -> (@continuous_on M N' f s) = (@closed_in (cart R (finite_sum M N')) (@subtopology (cart R (finite_sum M N')) (@euclidean (finite_sum M N')) (@PCROSS R M N' s t)) (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_3149 : cart R (finite_sum M N') => exists x : cart R M, @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_3149 (@IN (cart R M) x s) (@pastecart R M N' x (f x))))). +Axiom thm_CONTINUOUS_CLOSED_GRAPH : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@closed M s) /\ (@continuous_on M N' f s)) -> @closed (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_3150 : cart R (finite_sum M N') => exists x : cart R M, @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_3150 (@IN (cart R M) x s) (@pastecart R M N' x (f x)))). +Axiom thm_CONTINUOUS_FROM_CLOSED_GRAPH : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@compact N' t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (@closed (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_3151 : cart R (finite_sum M N') => exists x : cart R M, @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_3151 (@IN (cart R M) x s) (@pastecart R M N' x (f x))))))) -> @continuous_on M N' f s. +Axiom thm_OPEN_INTERVAL_LEMMA : forall a : R, forall b : R, forall x : R, ((Rlt a x) /\ (Rlt x b)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : R, (Rlt (Rabs (Rminus x' x)) d) -> (Rlt a x') /\ (Rlt x' b)). +Axiom thm_OPEN_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', @_open N' (@open_interval N' (@pair (cart R N') (cart R N') a b)). +Axiom thm_CLOSED_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', @closed N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_INTERIOR_CLOSED_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@interior N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@open_interval N' (@pair (cart R N') (cart R N') a b)). +Axiom thm_INTERIOR_INTERVAL : forall {_770399 _770403 : Type'}, (forall a : cart R _770399, forall b : cart R _770399, (@interior _770399 (@closed_interval _770399 (@cons (prod (cart R _770399) (cart R _770399)) (@pair (cart R _770399) (cart R _770399) a b) (@nil (prod (cart R _770399) (cart R _770399)))))) = (@open_interval _770399 (@pair (cart R _770399) (cart R _770399) a b))) /\ (forall a : cart R _770403, forall b : cart R _770403, (@interior _770403 (@open_interval _770403 (@pair (cart R _770403) (cart R _770403) a b))) = (@open_interval _770403 (@pair (cart R _770403) (cart R _770403) a b))). +Axiom thm_BOUNDED_CLOSED_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', @bounded N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_BOUNDED_INTERVAL : forall {_770540 _770542 : Type'}, (forall a : cart R _770540, forall b : cart R _770540, @bounded _770540 (@closed_interval _770540 (@cons (prod (cart R _770540) (cart R _770540)) (@pair (cart R _770540) (cart R _770540) a b) (@nil (prod (cart R _770540) (cart R _770540)))))) /\ (forall a : cart R _770542, forall b : cart R _770542, @bounded _770542 (@open_interval _770542 (@pair (cart R _770542) (cart R _770542) a b))). +Axiom thm_NOT_INTERVAL_UNIV : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', ~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@UNIV (cart R N')))) /\ (forall a : cart R N', forall b : cart R N', ~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@UNIV (cart R N')))). +Axiom thm_OPEN_INTERVAL_MIDPOINT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))) -> @IN (cart R N') (@percent N' (Rinv (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (@vector_add N' a b)) (@open_interval N' (@pair (cart R N') (cart R N') a b)). +Axiom thm_OPEN_CLOSED_INTERVAL_CONVEX : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', forall y : cart R N', forall e : R, ((@IN (cart R N') x (@open_interval N' (@pair (cart R N') (cart R N') a b))) /\ ((@IN (cart R N') y (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (Rle e (R_of_N (NUMERAL (BIT1 0%N))))))) -> @IN (cart R N') (@vector_add N' (@percent N' e x) (@percent N' (Rminus (R_of_N (NUMERAL (BIT1 0%N))) e) y)) (@open_interval N' (@pair (cart R N') (cart R N') a b)). +Axiom thm_CLOSURE_OPEN_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))) -> (@closure N' (@open_interval N' (@pair (cart R N') (cart R N') a b))) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_CLOSURE_INTERVAL : forall {_771160 _771165 : Type'}, (forall a : cart R _771160, forall b : cart R _771160, (@closure _771160 (@closed_interval _771160 (@cons (prod (cart R _771160) (cart R _771160)) (@pair (cart R _771160) (cart R _771160) a b) (@nil (prod (cart R _771160) (cart R _771160)))))) = (@closed_interval _771160 (@cons (prod (cart R _771160) (cart R _771160)) (@pair (cart R _771160) (cart R _771160) a b) (@nil (prod (cart R _771160) (cart R _771160)))))) /\ (forall a : cart R _771165, forall b : cart R _771165, (@closure _771165 (@open_interval _771165 (@pair (cart R _771165) (cart R _771165) a b))) = (@COND ((cart R _771165) -> Prop) ((@open_interval _771165 (@pair (cart R _771165) (cart R _771165) a b)) = (@EMPTY (cart R _771165))) (@EMPTY (cart R _771165)) (@closed_interval _771165 (@cons (prod (cart R _771165) (cart R _771165)) (@pair (cart R _771165) (cart R _771165) a b) (@nil (prod (cart R _771165) (cart R _771165))))))). +Axiom thm_FRONTIER_CLOSED_INTERVAL : forall {_771219 : Type'}, forall a : cart R _771219, forall b : cart R _771219, (@frontier _771219 (@closed_interval _771219 (@cons (prod (cart R _771219) (cart R _771219)) (@pair (cart R _771219) (cart R _771219) a b) (@nil (prod (cart R _771219) (cart R _771219)))))) = (@DIFF (cart R _771219) (@closed_interval _771219 (@cons (prod (cart R _771219) (cart R _771219)) (@pair (cart R _771219) (cart R _771219) a b) (@nil (prod (cart R _771219) (cart R _771219))))) (@open_interval _771219 (@pair (cart R _771219) (cart R _771219) a b))). +Axiom thm_FRONTIER_OPEN_INTERVAL : forall {_771284 : Type'}, forall a : cart R _771284, forall b : cart R _771284, (@frontier _771284 (@open_interval _771284 (@pair (cart R _771284) (cart R _771284) a b))) = (@COND ((cart R _771284) -> Prop) ((@open_interval _771284 (@pair (cart R _771284) (cart R _771284) a b)) = (@EMPTY (cart R _771284))) (@EMPTY (cart R _771284)) (@DIFF (cart R _771284) (@closed_interval _771284 (@cons (prod (cart R _771284) (cart R _771284)) (@pair (cart R _771284) (cart R _771284) a b) (@nil (prod (cart R _771284) (cart R _771284))))) (@open_interval _771284 (@pair (cart R _771284) (cart R _771284) a b)))). +Axiom thm_INTER_INTERVAL_MIXED_EQ_EMPTY : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', (~ ((@open_interval N' (@pair (cart R N') (cart R N') c d)) = (@EMPTY (cart R N')))) -> ((@INTER (cart R N') (@open_interval N' (@pair (cart R N') (cart R N') a b)) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) = (@EMPTY (cart R N'))) = ((@INTER (cart R N') (@open_interval N' (@pair (cart R N') (cart R N') a b)) (@open_interval N' (@pair (cart R N') (cart R N') c d))) = (@EMPTY (cart R N'))). +Axiom thm_INTERVAL_TRANSLATION : forall {_771489 _771502 : Type'}, (forall c : cart R _771489, forall a : cart R _771489, forall b : cart R _771489, (@closed_interval _771489 (@cons (prod (cart R _771489) (cart R _771489)) (@pair (cart R _771489) (cart R _771489) (@vector_add _771489 c a) (@vector_add _771489 c b)) (@nil (prod (cart R _771489) (cart R _771489))))) = (@IMAGE (cart R _771489) (cart R _771489) (fun x : cart R _771489 => @vector_add _771489 c x) (@closed_interval _771489 (@cons (prod (cart R _771489) (cart R _771489)) (@pair (cart R _771489) (cart R _771489) a b) (@nil (prod (cart R _771489) (cart R _771489))))))) /\ (forall c : cart R _771502, forall a : cart R _771502, forall b : cart R _771502, (@open_interval _771502 (@pair (cart R _771502) (cart R _771502) (@vector_add _771502 c a) (@vector_add _771502 c b))) = (@IMAGE (cart R _771502) (cart R _771502) (fun x : cart R _771502 => @vector_add _771502 c x) (@open_interval _771502 (@pair (cart R _771502) (cart R _771502) a b)))). +Axiom thm_EMPTY_AS_INTERVAL : forall {_771547 : Type'}, (@EMPTY (cart R _771547)) = (@closed_interval _771547 (@cons (prod (cart R _771547) (cart R _771547)) (@pair (cart R _771547) (cart R _771547) (@vec _771547 (NUMERAL (BIT1 0%N))) (@vec _771547 (NUMERAL 0%N))) (@nil (prod (cart R _771547) (cart R _771547))))). +Axiom thm_UNIT_INTERVAL_NONEMPTY : forall {N' : Type'}, (~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vec N' (NUMERAL 0%N)) (@vec N' (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) /\ (~ ((@open_interval N' (@pair (cart R N') (cart R N') (@vec N' (NUMERAL 0%N)) (@vec N' (NUMERAL (BIT1 0%N))))) = (@EMPTY (cart R N')))). +Axiom thm_IMAGE_STRETCH_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall m : N -> R, (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @lambda R N' (fun k : N => Rmult (m k) (@dollar R N' x k))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@COND ((cart R N') -> Prop) ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))) (@EMPTY (cart R N')) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@lambda R N' (fun k : N => Rmin (Rmult (m k) (@dollar R N' a k)) (Rmult (m k) (@dollar R N' b k)))) (@lambda R N' (fun k : N => Rmax (Rmult (m k) (@dollar R N' a k)) (Rmult (m k) (@dollar R N' b k))))) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_INTERVAL_IMAGE_STRETCH_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall m : N -> R, exists u : cart R N', exists v : cart R N', (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @lambda R N' (fun k : N => Rmult (m k) (@dollar R N' x k))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_CLOSED_INTERVAL_IMAGE_UNIT_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) -> (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @lambda R N' (fun i : N => Rmult (Rminus (@dollar R N' b i) (@dollar R N' a i)) (@dollar R N' x i))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vec N' (NUMERAL 0%N)) (@vec N' (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_SUMS_INTERVALS : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) /\ (~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))))) -> (@GSPEC (cart R N') (fun GEN_PVAR_3152 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3152 ((@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (@IN (cart R N') y (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))))) (@vector_add N' x y))) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vector_add N' a c) (@vector_add N' b d)) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))) /\ (~ ((@open_interval N' (@pair (cart R N') (cart R N') c d)) = (@EMPTY (cart R N'))))) -> (@GSPEC (cart R N') (fun GEN_PVAR_3153 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3153 ((@IN (cart R N') x (@open_interval N' (@pair (cart R N') (cart R N') a b))) /\ (@IN (cart R N') y (@open_interval N' (@pair (cart R N') (cart R N') c d)))) (@vector_add N' x y))) = (@open_interval N' (@pair (cart R N') (cart R N') (@vector_add N' a c) (@vector_add N' b d)))). +Axiom thm_PCROSS_INTERVAL : forall {M N' : Type'}, forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', (@PCROSS R M N' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) = (@closed_interval (finite_sum M N') (@cons (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))) (@pair (cart R (finite_sum M N')) (cart R (finite_sum M N')) (@pastecart R M N' a c) (@pastecart R M N' b d)) (@nil (prod (cart R (finite_sum M N')) (cart R (finite_sum M N')))))). +Axiom thm_OPEN_CONTAINS_OPEN_INTERVAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) = (forall x : cart R N', (@IN (cart R N') x s) -> exists a : cart R N', exists b : cart R N', (@IN (cart R N') x (@open_interval N' (@pair (cart R N') (cart R N') a b))) /\ (@SUBSET (cart R N') (@open_interval N' (@pair (cart R N') (cart R N') a b)) s)). +Axiom thm_OPEN_CONTAINS_INTERVAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) = (forall x : cart R N', (@IN (cart R N') x s) -> exists a : cart R N', exists b : cart R N', (@IN (cart R N') x (@open_interval N' (@pair (cart R N') (cart R N') a b))) /\ (@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) s)). +Axiom thm_DIAMETER_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@diameter N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@COND R ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))) (R_of_N (NUMERAL 0%N)) (@vector_norm N' (@vector_sub N' b a)))) /\ (forall a : cart R N', forall b : cart R N', (@diameter N' (@open_interval N' (@pair (cart R N') (cart R N') a b))) = (@COND R ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N'))) (R_of_N (NUMERAL 0%N)) (@vector_norm N' (@vector_sub N' b a)))). +Axiom thm_IMAGE_TWIZZLE_INTERVAL : forall {M N' : Type'}, forall p : N -> N, forall a : cart R M, forall b : cart R M, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ (@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))) -> (@IMAGE (cart R M) (cart R N') (fun x : cart R M => @lambda R N' (fun i : N => @dollar R M x (p i))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@lambda R N' (fun i : N => @dollar R M a (p i))) (@lambda R N' (fun i : N => @dollar R M b (p i)))) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_EQ_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) = ((((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))) /\ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) \/ ((a = c) /\ (b = d)))) /\ ((forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@open_interval N' (@pair (cart R N') (cart R N') c d))) = (((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))) /\ ((@open_interval N' (@pair (cart R N') (cart R N') c d)) = (@EMPTY (cart R N'))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) = (((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N'))) /\ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))))) /\ (forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@open_interval N' (@pair (cart R N') (cart R N') c d))) = ((((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N'))) /\ ((@open_interval N' (@pair (cart R N') (cart R N') c d)) = (@EMPTY (cart R N')))) \/ ((a = c) /\ (b = d)))))). +Axiom thm_CLOSED_INTERVAL_EQ : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @closed N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', (@closed N' (@open_interval N' (@pair (cart R N') (cart R N') a b))) = ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))). +Axiom thm_OPEN_INTERVAL_EQ : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@_open N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) /\ (forall a : cart R N', forall b : cart R N', @_open N' (@open_interval N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_COMPACT_INTERVAL_EQ : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @compact N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', (@compact N' (@open_interval N' (@pair (cart R N') (cart R N') a b))) = ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))). +Axiom thm_CLOSED_INTERVAL_DROPOUT : forall {M N' : Type'}, forall k : N, forall a : cart R N', forall b : cart R N', (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (Rle (@dollar R N' a k) (@dollar R N' b k))))) -> (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@dropout N' M k a) (@dropout N' M k b)) (@nil (prod (cart R M) (cart R M))))) = (@IMAGE (cart R N') (cart R M) (@dropout N' M k) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_IMAGE_DROPOUT_CLOSED_INTERVAL : forall {M N' : Type'}, forall k : N, forall a : cart R N', forall b : cart R N', (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@IMAGE (cart R N') (cart R M) (@dropout N' M k) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@COND ((cart R M) -> Prop) (Rle (@dollar R N' a k) (@dollar R N' b k)) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@dropout N' M k a) (@dropout N' M k b)) (@nil (prod (cart R M) (cart R M))))) (@EMPTY (cart R M))). +Axiom thm_EQ_BALLS : forall {N' : Type'}, (forall a : cart R N', forall a' : cart R N', forall r : R, forall r' : R, ((@ball N' (@pair (cart R N') R a r)) = (@ball N' (@pair (cart R N') R a' r'))) = (((a = a') /\ (r = r')) \/ ((Rle r (R_of_N (NUMERAL 0%N))) /\ (Rle r' (R_of_N (NUMERAL 0%N)))))) /\ ((forall a : cart R N', forall a' : cart R N', forall r : R, forall r' : R, ((@ball N' (@pair (cart R N') R a r)) = (@cball N' (@pair (cart R N') R a' r'))) = ((Rle r (R_of_N (NUMERAL 0%N))) /\ (Rlt r' (R_of_N (NUMERAL 0%N))))) /\ ((forall a : cart R N', forall a' : cart R N', forall r : R, forall r' : R, ((@cball N' (@pair (cart R N') R a r)) = (@ball N' (@pair (cart R N') R a' r'))) = ((Rlt r (R_of_N (NUMERAL 0%N))) /\ (Rle r' (R_of_N (NUMERAL 0%N))))) /\ (forall a : cart R N', forall a' : cart R N', forall r : R, forall r' : R, ((@cball N' (@pair (cart R N') R a r)) = (@cball N' (@pair (cart R N') R a' r'))) = (((a = a') /\ (r = r')) \/ ((Rlt r (R_of_N (NUMERAL 0%N))) /\ (Rlt r' (R_of_N (NUMERAL 0%N)))))))). +Axiom thm_IN_INTERVAL_1 : forall a : cart R unit, forall b : cart R unit, forall x : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = ((Rle (drop a) (drop x)) /\ (Rle (drop x) (drop b)))) /\ ((@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) = ((Rlt (drop a) (drop x)) /\ (Rlt (drop x) (drop b)))). +Axiom thm_REAL_INTERVAL_INTERVAL : forall (a : R) (b : R), ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@IMAGE (cart R unit) R drop (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (lift a) (lift b)) (@nil (prod (cart R unit) (cart R unit))))))) /\ ((open_real_interval (@pair R R a b)) = (@IMAGE (cart R unit) R drop (@open_interval unit (@pair (cart R unit) (cart R unit) (lift a) (lift b))))). +Axiom thm_INTERVAL_REAL_INTERVAL : forall (a : cart R unit) (b : cart R unit), ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@IMAGE R (cart R unit) lift (closed_real_interval (@cons (prod R R) (@pair R R (drop a) (drop b)) (@nil (prod R R)))))) /\ ((@open_interval unit (@pair (cart R unit) (cart R unit) a b)) = (@IMAGE R (cart R unit) lift (open_real_interval (@pair R R (drop a) (drop b))))). +Axiom thm_DROP_IN_REAL_INTERVAL : (forall a : R, forall b : R, forall x : cart R unit, (@IN R (drop x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (lift a) (lift b)) (@nil (prod (cart R unit) (cart R unit))))))) /\ (forall a : R, forall b : R, forall x : cart R unit, (@IN R (drop x) (open_real_interval (@pair R R a b))) = (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) (lift a) (lift b))))). +Axiom thm_LIFT_IN_INTERVAL : (forall a : cart R unit, forall b : cart R unit, forall x : R, (@IN (cart R unit) (lift x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (drop a) (drop b)) (@nil (prod R R)))))) /\ (forall a : cart R unit, forall b : cart R unit, forall x : R, (@IN (cart R unit) (lift x) (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) = (@IN R x (open_real_interval (@pair R R (drop a) (drop b))))). +Axiom thm_IMAGE_LIFT_REAL_INTERVAL : forall (a : R) (b : R), ((@IMAGE R (cart R unit) lift (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (lift a) (lift b)) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IMAGE R (cart R unit) lift (open_real_interval (@pair R R a b))) = (@open_interval unit (@pair (cart R unit) (cart R unit) (lift a) (lift b)))). +Axiom thm_IMAGE_DROP_INTERVAL : forall (a : cart R unit) (b : cart R unit), ((@IMAGE (cart R unit) R drop (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (closed_real_interval (@cons (prod R R) (@pair R R (drop a) (drop b)) (@nil (prod R R))))) /\ ((@IMAGE (cart R unit) R drop (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) = (open_real_interval (@pair R R (drop a) (drop b)))). +Axiom thm_INTERVAL_CASES_1 : forall (a : cart R unit) (b : cart R unit), forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) \/ ((x = a) \/ (x = b)). +Axiom thm_INTERVAL_EQ_EMPTY_1 : forall a : cart R unit, forall b : cart R unit, (((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit))) = (Rlt (drop b) (drop a))) /\ (((@open_interval unit (@pair (cart R unit) (cart R unit) a b)) = (@EMPTY (cart R unit))) = (Rle (drop b) (drop a))). +Axiom thm_INTERVAL_NE_EMPTY_1 : (forall a : cart R unit, forall b : cart R unit, (~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) = (Rle (drop a) (drop b))) /\ (forall a : cart R unit, forall b : cart R unit, (~ ((@open_interval unit (@pair (cart R unit) (cart R unit) a b)) = (@EMPTY (cart R unit)))) = (Rlt (drop a) (drop b))). +Axiom thm_UNION_INTERVAL_1 : forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (@UNION (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit)))))) = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_SUBSET_INTERVAL_1 : forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, forall d : cart R unit, ((@SUBSET (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit)))))) = ((Rlt (drop b) (drop a)) \/ ((Rle (drop c) (drop a)) /\ ((Rle (drop a) (drop b)) /\ (Rle (drop b) (drop d)))))) /\ (((@SUBSET (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (@open_interval unit (@pair (cart R unit) (cart R unit) c d))) = ((Rlt (drop b) (drop a)) \/ ((Rlt (drop c) (drop a)) /\ ((Rle (drop a) (drop b)) /\ (Rlt (drop b) (drop d)))))) /\ (((@SUBSET (cart R unit) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit)))))) = ((Rle (drop b) (drop a)) \/ ((Rle (drop c) (drop a)) /\ ((Rlt (drop a) (drop b)) /\ (Rle (drop b) (drop d)))))) /\ ((@SUBSET (cart R unit) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) (@open_interval unit (@pair (cart R unit) (cart R unit) c d))) = ((Rle (drop b) (drop a)) \/ ((Rle (drop c) (drop a)) /\ ((Rlt (drop a) (drop b)) /\ (Rle (drop b) (drop d)))))))). +Axiom thm_EQ_INTERVAL_1 : forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, forall d : cart R unit, ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit)))))) = (((Rlt (drop b) (drop a)) /\ (Rlt (drop d) (drop c))) \/ (((drop a) = (drop c)) /\ ((drop b) = (drop d)))). +Axiom thm_DISJOINT_INTERVAL_1 : forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, forall d : cart R unit, (((@INTER (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit)))))) = (@EMPTY (cart R unit))) = ((Rlt (drop b) (drop a)) \/ ((Rlt (drop d) (drop c)) \/ ((Rlt (drop b) (drop c)) \/ (Rlt (drop d) (drop a)))))) /\ ((((@INTER (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (@open_interval unit (@pair (cart R unit) (cart R unit) c d))) = (@EMPTY (cart R unit))) = ((Rlt (drop b) (drop a)) \/ ((Rle (drop d) (drop c)) \/ ((Rle (drop b) (drop c)) \/ (Rle (drop d) (drop a)))))) /\ ((((@INTER (cart R unit) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit)))))) = (@EMPTY (cart R unit))) = ((Rle (drop b) (drop a)) \/ ((Rlt (drop d) (drop c)) \/ ((Rle (drop b) (drop c)) \/ (Rle (drop d) (drop a)))))) /\ (((@INTER (cart R unit) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) (@open_interval unit (@pair (cart R unit) (cart R unit) c d))) = (@EMPTY (cart R unit))) = ((Rle (drop b) (drop a)) \/ ((Rle (drop d) (drop c)) \/ ((Rle (drop b) (drop c)) \/ (Rle (drop d) (drop a)))))))). +Axiom thm_OPEN_CLOSED_INTERVAL_1 : forall a : cart R unit, forall b : cart R unit, (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) = (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (@INSERT (cart R unit) a (@INSERT (cart R unit) b (@EMPTY (cart R unit))))). +Axiom thm_CLOSED_OPEN_INTERVAL_1 : forall a : cart R unit, forall b : cart R unit, (Rle (drop a) (drop b)) -> (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@UNION (cart R unit) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) (@INSERT (cart R unit) a (@INSERT (cart R unit) b (@EMPTY (cart R unit))))). +Axiom thm_BALL_1 : forall x : cart R unit, forall r : R, ((@cball unit (@pair (cart R unit) R x r)) = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_sub unit x (lift r)) (@vector_add unit x (lift r))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@ball unit (@pair (cart R unit) R x r)) = (@open_interval unit (@pair (cart R unit) (cart R unit) (@vector_sub unit x (lift r)) (@vector_add unit x (lift r))))). +Axiom thm_SPHERE_1 : forall a : cart R unit, forall r : R, (@sphere unit (@pair (cart R unit) R a r)) = (@COND ((cart R unit) -> Prop) (Rlt r (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R unit)) (@INSERT (cart R unit) (@vector_sub unit a (lift r)) (@INSERT (cart R unit) (@vector_add unit a (lift r)) (@EMPTY (cart R unit))))). +Axiom thm_FINITE_SPHERE_1 : forall a : cart R unit, forall r : R, @FINITE (cart R unit) (@sphere unit (@pair (cart R unit) R a r)). +Axiom thm_FINITE_INTERVAL_1 : (forall a : cart R unit, forall b : cart R unit, (@FINITE (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (Rle (drop b) (drop a))) /\ (forall a : cart R unit, forall b : cart R unit, (@FINITE (cart R unit) (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) = (Rle (drop b) (drop a))). +Axiom thm_BALL_INTERVAL : forall x : cart R unit, forall e : R, (@ball unit (@pair (cart R unit) R x e)) = (@open_interval unit (@pair (cart R unit) (cart R unit) (@vector_sub unit x (lift e)) (@vector_add unit x (lift e)))). +Axiom thm_CBALL_INTERVAL : forall x : cart R unit, forall e : R, (@cball unit (@pair (cart R unit) R x e)) = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_sub unit x (lift e)) (@vector_add unit x (lift e))) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_BALL_INTERVAL_0 : forall e : R, (@ball unit (@pair (cart R unit) R (@vec unit (NUMERAL 0%N)) e)) = (@open_interval unit (@pair (cart R unit) (cart R unit) (@vector_neg unit (lift e)) (lift e))). +Axiom thm_CBALL_INTERVAL_0 : forall e : R, (@cball unit (@pair (cart R unit) R (@vec unit (NUMERAL 0%N)) e)) = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_neg unit (lift e)) (lift e)) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTER_INTERVAL_1 : forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, forall d : cart R unit, (@INTER (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit)))))) = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (lift (Rmax (drop a) (drop c))) (lift (Rmin (drop b) (drop d)))) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_CLOSED_DIFF_OPEN_INTERVAL_1 : forall a : cart R unit, forall b : cart R unit, (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) = (@COND ((cart R unit) -> Prop) ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit))) (@EMPTY (cart R unit)) (@INSERT (cart R unit) a (@INSERT (cart R unit) b (@EMPTY (cart R unit))))). +Axiom thm_INTERVAL_1 : (forall a : cart R unit, forall b : cart R unit, (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@COND ((cart R unit) -> Prop) (Rle (drop a) (drop b)) (@cball unit (@pair (cart R unit) R (@midpoint unit (@pair (cart R unit) (cart R unit) a b)) (Rdiv (@distance unit (@pair (cart R unit) (cart R unit) a b)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) (@EMPTY (cart R unit)))) /\ (forall a : cart R unit, forall b : cart R unit, (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) = (@COND ((cart R unit) -> Prop) (Rlt (drop a) (drop b)) (@ball unit (@pair (cart R unit) R (@midpoint unit (@pair (cart R unit) (cart R unit) a b)) (Rdiv (@distance unit (@pair (cart R unit) (cart R unit) a b)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) (@EMPTY (cart R unit)))). +Axiom thm_SEGMENT_1 : (forall a : cart R unit, forall b : cart R unit, (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@COND ((cart R unit) -> Prop) (Rle (drop a) (drop b)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) b a) (@nil (prod (cart R unit) (cart R unit))))))) /\ (forall a : cart R unit, forall b : cart R unit, (@open_segment unit (@pair (cart R unit) (cart R unit) a b)) = (@COND ((cart R unit) -> Prop) (Rle (drop a) (drop b)) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) (@open_interval unit (@pair (cart R unit) (cart R unit) b a)))). +Axiom thm_OPEN_SEGMENT_1 : forall a : cart R unit, forall b : cart R unit, @_open unit (@open_segment unit (@pair (cart R unit) (cart R unit) a b)). +Axiom thm_INTERVAL_SUBSET_SEGMENT_1 : (forall a : cart R unit, forall b : cart R unit, @SUBSET (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall a : cart R unit, forall b : cart R unit, @SUBSET (cart R unit) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) (@open_segment unit (@pair (cart R unit) (cart R unit) a b))). +Axiom thm_SEGMENT_SCALAR_MULTIPLE : forall {N' : Type'}, (forall a : R, forall b : R, forall v : cart R N', (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@percent N' a v) (@percent N' b v)) (@nil (prod (cart R N') (cart R N'))))) = (@GSPEC (cart R N') (fun GEN_PVAR_3159 : cart R N' => exists x : R, @SETSPEC (cart R N') GEN_PVAR_3159 (((Rle a x) /\ (Rle x b)) \/ ((Rle b x) /\ (Rle x a))) (@percent N' x v)))) /\ (forall a : R, forall b : R, forall v : cart R N', (~ (v = (@vec N' (NUMERAL 0%N)))) -> (@open_segment N' (@pair (cart R N') (cart R N') (@percent N' a v) (@percent N' b v))) = (@GSPEC (cart R N') (fun GEN_PVAR_3160 : cart R N' => exists x : R, @SETSPEC (cart R N') GEN_PVAR_3160 (((Rlt a x) /\ (Rlt x b)) \/ ((Rlt b x) /\ (Rlt x a))) (@percent N' x v)))). +Axiom thm_FINITE_INTER_COLLINEAR_OPEN_SEGMENTS : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', (@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) -> (@FINITE (cart R N') (@INTER (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@open_segment N' (@pair (cart R N') (cart R N') c d)))) = ((@INTER (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@open_segment N' (@pair (cart R N') (cart R N') c d))) = (@EMPTY (cart R N'))). +Axiom thm_BOUNDED_SEPARATION_1D : forall {N' : Type'}, forall s : (cart R N') -> Prop, (((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) /\ (@bounded N' s)) -> (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) = (s = (@EMPTY (cart R N'))). +Axiom thm_is_interval : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' s) = (forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> ((Rle (@dollar R N' a i) (@dollar R N' x i)) /\ (Rle (@dollar R N' x i) (@dollar R N' b i))) \/ ((Rle (@dollar R N' b i) (@dollar R N' x i)) /\ (Rle (@dollar R N' x i) (@dollar R N' a i)))))) -> @IN (cart R N') x s). +Axiom thm_IS_INTERVAL_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@is_interval N' (@open_interval N' (@pair (cart R N') (cart R N') a b))) /\ (@is_interval N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_IS_INTERVAL_EMPTY : forall {_777708 : Type'}, @is_interval _777708 (@EMPTY (cart R _777708)). +Axiom thm_IS_INTERVAL_UNIV : forall {N' : Type'}, @is_interval N' (@UNIV (cart R N')). +Axiom thm_IS_INTERVAL_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@is_interval N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@is_interval N' s). +Axiom thm_IS_INTERVAL_TRANSLATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@is_interval N' s) -> @is_interval N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_IS_INTERVAL_POINTWISE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@is_interval N' s) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> exists a : cart R N', (@IN (cart R N') a s) /\ ((@dollar R N' a i) = (@dollar R N' x i)))) -> @IN (cart R N') x s. +Axiom thm_IS_INTERVAL_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@is_interval N' s) /\ (@compact N' s)) = (exists a : cart R N', exists b : cart R N', s = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_IS_INTERVAL_1 : forall s : (cart R unit) -> Prop, (@is_interval unit s) = (forall a : cart R unit, forall b : cart R unit, forall x : cart R unit, ((@IN (cart R unit) a s) /\ ((@IN (cart R unit) b s) /\ ((Rle (drop a) (drop x)) /\ (Rle (drop x) (drop b))))) -> @IN (cart R unit) x s). +Axiom thm_IS_INTERVAL_1_CASES : forall s : (cart R unit) -> Prop, (@is_interval unit s) = ((s = (@EMPTY (cart R unit))) \/ ((s = (@UNIV (cart R unit))) \/ ((exists a : R, s = (@GSPEC (cart R unit) (fun GEN_PVAR_3172 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3172 (Rlt a (drop x)) x))) \/ ((exists a : R, s = (@GSPEC (cart R unit) (fun GEN_PVAR_3173 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3173 (Rle a (drop x)) x))) \/ ((exists b : R, s = (@GSPEC (cart R unit) (fun GEN_PVAR_3174 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3174 (Rle (drop x) b) x))) \/ ((exists b : R, s = (@GSPEC (cart R unit) (fun GEN_PVAR_3175 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3175 (Rlt (drop x) b) x))) \/ ((exists a : R, exists b : R, s = (@GSPEC (cart R unit) (fun GEN_PVAR_3176 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3176 ((Rlt a (drop x)) /\ (Rlt (drop x) b)) x))) \/ ((exists a : R, exists b : R, s = (@GSPEC (cart R unit) (fun GEN_PVAR_3177 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3177 ((Rlt a (drop x)) /\ (Rle (drop x) b)) x))) \/ ((exists a : R, exists b : R, s = (@GSPEC (cart R unit) (fun GEN_PVAR_3178 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3178 ((Rle a (drop x)) /\ (Rlt (drop x) b)) x))) \/ (exists a : R, exists b : R, s = (@GSPEC (cart R unit) (fun GEN_PVAR_3179 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3179 ((Rle a (drop x)) /\ (Rle (drop x) b)) x)))))))))))). +Axiom thm_IS_INTERVAL_1_CLAUSES : (@is_interval unit (@EMPTY (cart R unit))) /\ ((@is_interval unit (@UNIV (cart R unit))) /\ ((forall a : R, @is_interval unit (@GSPEC (cart R unit) (fun GEN_PVAR_3180 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3180 (Rlt a (drop x)) x))) /\ ((forall a : R, @is_interval unit (@GSPEC (cart R unit) (fun GEN_PVAR_3181 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3181 (Rle a (drop x)) x))) /\ ((forall b : R, @is_interval unit (@GSPEC (cart R unit) (fun GEN_PVAR_3182 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3182 (Rlt (drop x) b) x))) /\ ((forall b : R, @is_interval unit (@GSPEC (cart R unit) (fun GEN_PVAR_3183 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3183 (Rle (drop x) b) x))) /\ ((forall a : R, forall b : R, @is_interval unit (@GSPEC (cart R unit) (fun GEN_PVAR_3184 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3184 ((Rlt a (drop x)) /\ (Rlt (drop x) b)) x))) /\ ((forall a : R, forall b : R, @is_interval unit (@GSPEC (cart R unit) (fun GEN_PVAR_3185 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3185 ((Rlt a (drop x)) /\ (Rle (drop x) b)) x))) /\ ((forall a : R, forall b : R, @is_interval unit (@GSPEC (cart R unit) (fun GEN_PVAR_3186 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3186 ((Rle a (drop x)) /\ (Rlt (drop x) b)) x))) /\ (forall a : R, forall b : R, @is_interval unit (@GSPEC (cart R unit) (fun GEN_PVAR_3187 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3187 ((Rle a (drop x)) /\ (Rle (drop x) b)) x))))))))))). +Axiom thm_IS_REALINTERVAL_IS_INTERVAL : forall s : R -> Prop, (is_realinterval s) = (@is_interval unit (@IMAGE R (cart R unit) lift s)). +Axiom thm_IS_INTERVAL_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@is_interval M s) /\ (@is_interval N' t)) -> @is_interval (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_IS_INTERVAL_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@is_interval (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@is_interval M s) /\ (@is_interval N' t)))). +Axiom thm_IS_INTERVAL_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@is_interval N' s) /\ (@is_interval N' t)) -> @is_interval N' (@INTER (cart R N') s t). +Axiom thm_INTERVAL_SUBSET_IS_INTERVAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@is_interval N' s) -> (@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) s) = (((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))) \/ ((@IN (cart R N') a s) /\ (@IN (cart R N') b s))). +Axiom thm_INTERVAL_CONTAINS_COMPACT_NEIGHBOURHOOD : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@is_interval N' s) /\ (@IN (cart R N') x s)) -> exists a : cart R N', exists b : cart R N', exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) s) /\ (@SUBSET (cart R N') (@INTER (cart R N') (@ball N' (@pair (cart R N') R x d)) s) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))))). +Axiom thm_IS_INTERVAL_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@is_interval N' s) /\ (@is_interval N' t)) -> @is_interval N' (@GSPEC (cart R N') (fun GEN_PVAR_3188 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3188 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_IS_INTERVAL_SING : forall {N' : Type'}, forall a : cart R N', @is_interval N' (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_INTERVAL_EQ_SING : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@INSERT (cart R N') x (@EMPTY (cart R N')))) = ((a = x) /\ (b = x))) /\ (forall a : cart R N', forall b : cart R N', forall x : cart R N', ~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@INSERT (cart R N') x (@EMPTY (cart R N'))))). +Axiom thm_IS_INTERVAL_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@is_interval N' s) -> @is_interval N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s). +Axiom thm_IS_INTERVAL_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@is_interval N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@is_interval N' s)). +Axiom thm_IS_INTERVAL_REFLECT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' (@IMAGE (cart R N') (cart R N') (@vector_neg N') s)) = (@is_interval N' s). +Axiom thm_CARD_FRONTIER_INTERVAL_1 : forall s : (cart R unit) -> Prop, (@is_interval unit s) -> (@FINITE (cart R unit) (@frontier unit s)) /\ (N.le (@CARD (cart R unit) (@frontier unit s)) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_UNION_INTERVAL_SUBSET_INTERVAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((@is_interval N' s) /\ ((@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) s) /\ (@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) s))) -> exists u : cart R N', exists v : cart R N', (@SUBSET (cart R N') (@UNION (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N')))))) /\ (@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N'))))) s). +Axiom thm_LIM_COMPONENT_UBOUND : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', forall b : R, forall k : N, ((~ (@trivial_limit A net')) /\ ((@FImp N' A f l net') /\ ((@eventually A (fun x : A => Rle (@dollar R N' (f x) k) b) net') /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))))) -> Rle (@dollar R N' l k) b. +Axiom thm_LIM_COMPONENT_LBOUND : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall l : cart R N', forall b : R, forall k : N, ((~ (@trivial_limit A net')) /\ ((@FImp N' A f l net') /\ ((@eventually A (fun x : A => Rle b (@dollar R N' (f x) k)) net') /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))))) -> Rle b (@dollar R N' l k). +Axiom thm_LIM_COMPONENT_EQ : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall i : N, forall l : cart R N', forall b : R, ((@FImp N' A f l net') /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((~ (@trivial_limit A net')) /\ (@eventually A (fun x : A => (@dollar R N' (f x) i) = b) net'))))) -> (@dollar R N' l i) = b. +Axiom thm_LIM_COMPONENT_LE : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', forall g : A -> cart R N', forall k : N, forall l : cart R N', forall m : cart R N', ((~ (@trivial_limit A net')) /\ ((@FImp N' A f l net') /\ ((@FImp N' A g m net') /\ ((@eventually A (fun x : A => Rle (@dollar R N' (f x) k) (@dollar R N' (g x) k)) net') /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))))))) -> Rle (@dollar R N' l k) (@dollar R N' m k). +Axiom thm_LIM_DROP_LE : forall {A : Type'}, forall net' : net A, forall f : A -> cart R unit, forall g : A -> cart R unit, forall l : cart R unit, forall m : cart R unit, ((~ (@trivial_limit A net')) /\ ((@FImp unit A f l net') /\ ((@FImp unit A g m net') /\ (@eventually A (fun x : A => Rle (drop (f x)) (drop (g x))) net')))) -> Rle (drop l) (drop m). +Axiom thm_LIM_DROP_UBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> cart R unit, forall l : cart R unit, forall b : R, ((@FImp unit A f l net') /\ ((~ (@trivial_limit A net')) /\ (@eventually A (fun x : A => Rle (drop (f x)) b) net'))) -> Rle (drop l) b. +Axiom thm_LIM_DROP_LBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> cart R unit, forall l : cart R unit, forall b : R, ((@FImp unit A f l net') /\ ((~ (@trivial_limit A net')) /\ (@eventually A (fun x : A => Rle b (drop (f x))) net'))) -> Rle b (drop l). +Axiom thm_LIMIT_PAIR_DROP_LE : forall {A B : Type'}, forall net1 : net A, forall net2 : net B, forall f : A -> cart R unit, forall g : B -> cart R unit, forall l : cart R unit, forall m : cart R unit, ((~ (@trivial_limit A net1)) /\ ((~ (@trivial_limit B net2)) /\ ((@FImp unit A f l net1) /\ ((@FImp unit B g m net2) /\ (@eventually A (fun x : A => @eventually B (fun y : B => Rle (drop (f x)) (drop (g y))) net2) net1))))) -> Rle (drop l) (drop m). +Axiom thm_IMAGE_CLOSURE_SUBSET : forall {M N' : Type'}, forall f : (cart R N') -> cart R M, forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, ((@continuous_on N' M f (@closure N' s)) /\ ((@closed M t) /\ (@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) f s) t))) -> @SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) f (@closure N' s)) t. +Axiom thm_CLOSURE_IMAGE_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f (@closure M s)) -> (@closure N' (@IMAGE (cart R M) (cart R N') f (@closure M s))) = (@closure N' (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_CLOSURE_IMAGE_BOUNDED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f (@closure M s)) /\ (@bounded M s)) -> (@closure N' (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@closure M s)). +Axiom thm_CONTINUOUS_ON_CLOSURE_NORM_LE : forall {M N' : Type'}, forall f : (cart R N') -> cart R M, forall s : (cart R N') -> Prop, forall x : cart R N', forall b : R, ((@continuous_on N' M f (@closure N' s)) /\ ((forall y : cart R N', (@IN (cart R N') y s) -> Rle (@vector_norm M (f y)) b) /\ (@IN (cart R N') x (@closure N' s)))) -> Rle (@vector_norm M (f x)) b. +Axiom thm_CONTINUOUS_ON_CLOSURE_COMPONENT_LE : forall {M N' : Type'}, forall f : (cart R N') -> cart R M, forall s : (cart R N') -> Prop, forall x : cart R N', forall b : R, forall k : N, ((@continuous_on N' M f (@closure N' s)) /\ ((forall y : cart R N', (@IN (cart R N') y s) -> Rle (@dollar R M (f y) k) b) /\ (@IN (cart R N') x (@closure N' s)))) -> Rle (@dollar R M (f x) k) b. +Axiom thm_CONTINUOUS_ON_CLOSURE_COMPONENT_GE : forall {M N' : Type'}, forall f : (cart R N') -> cart R M, forall s : (cart R N') -> Prop, forall x : cart R N', forall b : R, forall k : N, ((@continuous_on N' M f (@closure N' s)) /\ ((forall y : cart R N', (@IN (cart R N') y s) -> Rle b (@dollar R M (f y) k)) /\ (@IN (cart R N') x (@closure N' s)))) -> Rle b (@dollar R M (f x) k). +Axiom thm_CONTINUOUS_MAP_CLOSURES_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) = (forall t : (cart R M) -> Prop, (@SUBSET (cart R M) t s) -> @SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@INTER (cart R M) s (@closure M t))) (@closure N' (@IMAGE (cart R M) (cart R N') f t))). +Axiom thm_CONTINUOUS_MAP_CLOSURES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@continuous_on M N' f (@UNIV (cart R M))) = (forall s : (cart R M) -> Prop, @SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@closure M s)) (@closure N' (@IMAGE (cart R M) (cart R N') f s))). +Axiom thm_PROPER_MAP_ESCAPES_FROM_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall x : N -> cart R M, forall r : N -> N, forall a : cart R M, forall b : cart R N', ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3197 : cart R M => exists x' : cart R M, @SETSPEC (cart R M) GEN_PVAR_3197 ((@IN (cart R M) x' s) /\ (@IN (cart R N') (f x') k)) x'))) /\ ((forall n : N, @IN (cart R M) (x n) s) /\ ((~ (@IN (cart R M) a s)) /\ ((@FImp M N x a sequentially) /\ ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@FImp N' N (@o N (cart R M) (cart R N') f (@o N N (cart R M) x r)) b sequentially))))))) -> ~ (@IN (cart R N') b (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_FRONTIER_PROPER_MAP_IMAGE_SUBSET_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on M N' f (@closure M s)) /\ (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3198 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3198 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x))))) -> @SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@DIFF (cart R M) (@closure M s) s)) (@DIFF (cart R N') (@closure N' (@IMAGE (cart R M) (cart R N') f s)) (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_FRONTIER_PROPER_MAP_IMAGE_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@_open M s) /\ ((@continuous_on M N' f (@closure M s)) /\ (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3199 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3199 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)))))) -> @SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@frontier M s)) (@frontier N' (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_FRONTIER_CLOPEN_MAP_IMAGE_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@closed N' (@IMAGE (cart R M) (cart R N') f (@closure M s))) /\ (@_open N' (@IMAGE (cart R M) (cart R N') f (@interior M s)))) -> @SUBSET (cart R N') (@frontier N' (@IMAGE (cart R M) (cart R N') f s)) (@IMAGE (cart R M) (cart R N') f (@frontier M s)). +Axiom thm_FRONTIER_OPEN_MAP_IMAGE_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@bounded M s) /\ ((@continuous_on M N' f (@closure M s)) /\ (@_open N' (@IMAGE (cart R M) (cart R N') f (@interior M s))))) -> @SUBSET (cart R N') (@frontier N' (@IMAGE (cart R M) (cart R N') f s)) (@IMAGE (cart R M) (cart R N') f (@frontier M s)). +Axiom thm_FRONTIER_PROPER_CLOPEN_MAP_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@_open M s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on M N' f (@closure M s)) /\ ((@_open N' (@IMAGE (cart R M) (cart R N') f s)) /\ ((@closed N' (@IMAGE (cart R M) (cart R N') f (@closure M s))) /\ (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3200 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3200 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)))))))) -> (@IMAGE (cart R M) (cart R N') f (@frontier M s)) = (@frontier N' (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_FRONTIER_PROPER_OPEN_MAP_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@bounded M s) /\ ((@_open M s) /\ ((@_open N' (@IMAGE (cart R M) (cart R N') f s)) /\ ((@continuous_on M N' f (@closure M s)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3201 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3201 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)))))))) -> (@IMAGE (cart R M) (cart R N') f (@frontier M s)) = (@frontier N' (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_FRONTIER_CLOPEN_MAP_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@_open M s) /\ ((@_open N' (@IMAGE (cart R M) (cart R N') f s)) /\ ((@closed N' (@IMAGE (cart R M) (cart R N') f (@closure M s))) /\ ((@continuous_on M N' f (@closure M s)) /\ ((forall y : cart R N', @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3202 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3202 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) /\ (forall c : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) c) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f c))))))) -> (@IMAGE (cart R M) (cart R N') f (@frontier M s)) = (@frontier N' (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_LIM_WITHIN_UNION : forall {_782906 _782937 : Type'} (s : (cart R _782937) -> Prop) (f : (cart R _782937) -> cart R _782906) (l : cart R _782906) (x : cart R _782937) (t : (cart R _782937) -> Prop), (@FImp _782906 (cart R _782937) f l (@within (cart R _782937) (@_at _782937 x) (@UNION (cart R _782937) s t))) = ((@FImp _782906 (cart R _782937) f l (@within (cart R _782937) (@_at _782937 x) s)) /\ (@FImp _782906 (cart R _782937) f l (@within (cart R _782937) (@_at _782937 x) t))). +Axiom thm_CONTINUOUS_ON_UNION : forall {_782960 _782965 : Type'}, forall f : (cart R _782960) -> cart R _782965, forall s : (cart R _782960) -> Prop, forall t : (cart R _782960) -> Prop, ((@closed _782960 s) /\ ((@closed _782960 t) /\ ((@continuous_on _782960 _782965 f s) /\ (@continuous_on _782960 _782965 f t)))) -> @continuous_on _782960 _782965 f (@UNION (cart R _782960) s t). +Axiom thm_CONTINUOUS_ON_CASES : forall {M N' : Type'}, forall P : (cart R M) -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@closed M s) /\ ((@closed M t) /\ ((@continuous_on M N' f s) /\ ((@continuous_on M N' g t) /\ (forall x : cart R M, (((@IN (cart R M) x s) /\ (~ (P x))) \/ ((@IN (cart R M) x t) /\ (P x))) -> (f x) = (g x)))))) -> @continuous_on M N' (fun x : cart R M => @COND (cart R N') (P x) (f x) (g x)) (@UNION (cart R M) s t). +Axiom thm_CONTINUOUS_ON_UNION_LOCAL : forall {M N' : Type'} (t : (cart R M) -> Prop), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNION (cart R M) s t)) s) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNION (cart R M) s t)) t) /\ ((@continuous_on M N' f s) /\ (@continuous_on M N' f t)))) -> @continuous_on M N' f (@UNION (cart R M) s t). +Axiom thm_CONTINUOUS_ON_CASES_LOCAL : forall {M N' : Type'}, forall P : (cart R M) -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNION (cart R M) s t)) s) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNION (cart R M) s t)) t) /\ ((@continuous_on M N' f s) /\ ((@continuous_on M N' g t) /\ (forall x : cart R M, (((@IN (cart R M) x s) /\ (~ (P x))) \/ ((@IN (cart R M) x t) /\ (P x))) -> (f x) = (g x)))))) -> @continuous_on M N' (fun x : cart R M => @COND (cart R N') (P x) (f x) (g x)) (@UNION (cart R M) s t). +Axiom thm_CONTINUOUS_ON_CASES_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall h : (cart R M) -> R, forall s : (cart R M) -> Prop, forall a : R, ((@continuous_on M N' f (@GSPEC (cart R M) (fun GEN_PVAR_3215 : cart R M => exists t : cart R M, @SETSPEC (cart R M) GEN_PVAR_3215 ((@IN (cart R M) t s) /\ (Rle (h t) a)) t))) /\ ((@continuous_on M N' g (@GSPEC (cart R M) (fun GEN_PVAR_3216 : cart R M => exists t : cart R M, @SETSPEC (cart R M) GEN_PVAR_3216 ((@IN (cart R M) t s) /\ (Rle a (h t))) t))) /\ ((@continuous_on M unit (@o (cart R M) R (cart R unit) lift h) s) /\ (forall t : cart R M, ((@IN (cart R M) t s) /\ ((h t) = a)) -> (f t) = (g t))))) -> @continuous_on M N' (fun t : cart R M => @COND (cart R N') (Rle (h t) a) (f t) (g t)) s. +Axiom thm_CONTINUOUS_ON_CASES_1 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : R, ((@continuous_on unit N' f (@GSPEC (cart R unit) (fun GEN_PVAR_3217 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3217 ((@IN (cart R unit) t s) /\ (Rle (drop t) a)) t))) /\ ((@continuous_on unit N' g (@GSPEC (cart R unit) (fun GEN_PVAR_3218 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3218 ((@IN (cart R unit) t s) /\ (Rle a (drop t))) t))) /\ ((@IN (cart R unit) (lift a) s) -> (f (lift a)) = (g (lift a))))) -> @continuous_on unit N' (fun t : cart R unit => @COND (cart R N') (Rle (drop t) a) (f t) (g t)) s. +Axiom thm_EXTENSION_FROM_CLOPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R N') -> Prop, ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) t) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) t) /\ ((@continuous_on M N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f t) u) /\ ((u = (@EMPTY (cart R N'))) -> s = (@EMPTY (cart R M))))))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) u) /\ (forall x : cart R M, (@IN (cart R M) x t) -> (g x) = (f x))). +Axiom thm_CONTINUOUS_ON_CLOPEN_INDICATOR : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall a : cart R N', forall b : cart R N', (@continuous_on M N' (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x t) a b) s) = ((a = b) \/ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@INTER (cart R M) s t)) /\ (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@INTER (cart R M) s t)))). +Axiom thm_LIM_NULL_ONORM_COMPONENTWISE : forall {A M N' : Type'}, forall net' : net A, forall f : A -> (cart R M) -> cart R N', (forall a : A, @linear M N' (f a)) -> (@FImp unit A (fun a : A => lift (@onorm M N' (f a))) (@vec unit (NUMERAL 0%N)) net') = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> @FImp N' A (fun a : A => f a (@basis M i)) (@vec N' (NUMERAL 0%N)) net'). +Axiom thm_LIM_NULL_MATRIX_ONORM : forall {A M N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R M) N', (@FImp unit A (fun a : A => lift (@onorm M N' (fun x : cart R M => @matrix_vector_mul N' M (A' a) x))) (@vec unit (NUMERAL 0%N)) net') = (forall x : cart R M, @FImp N' A (fun a : A => @matrix_vector_mul N' M (A' a) x) (@vec N' (NUMERAL 0%N)) net'). +Axiom thm_LIM_NULL_MATRIX_ONORM_COMPONENTWISE : forall {A M N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R M) N', (@FImp unit A (fun a : A => lift (@onorm M N' (fun x : cart R M => @matrix_vector_mul N' M (A' a) x))) (@vec unit (NUMERAL 0%N)) net') = (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex M (@UNIV M)))))) -> @FImp unit A (fun a : A => lift (@dollar R M (@dollar (cart R M) N' (A' a) i) j)) (@vec unit (NUMERAL 0%N)) net'). +Axiom thm_LIM_NULL_ONORM : forall {A M N' : Type'}, forall net' : net A, forall f : A -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((forall a : A, @linear M N' (f a)) /\ ((@linear M N' g) /\ (@FImp unit A (fun a : A => lift (@onorm M N' (fun x : cart R M => @vector_sub N' (f a x) (g x)))) (@vec unit (NUMERAL 0%N)) net'))) -> @FImp unit A (fun a : A => lift (@onorm M N' (f a))) (lift (@onorm M N' g)) net'. +Axiom thm_LIM_MATRIX_COMPONENTWISE : forall {A M N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R M) N', forall B : cart (cart R M) N', (forall x : cart R M, @FImp N' A (fun a : A => @matrix_vector_mul N' M (A' a) x) (@matrix_vector_mul N' M B x) net') = (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex M (@UNIV M)))))) -> @FImp unit A (fun a : A => lift (@dollar R M (@dollar (cart R M) N' (A' a) i) j)) (lift (@dollar R M (@dollar (cart R M) N' B i) j)) net'). +Axiom thm_CONTINUOUS_MATRIX_COMPONENTWISE : forall {A M N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R M) N', (forall x : cart R M, @continuous N' A (fun a : A => @matrix_vector_mul N' M (A' a) x) net') = (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex M (@UNIV M)))))) -> @continuous unit A (fun a : A => lift (@dollar R M (@dollar (cart R M) N' (A' a) i) j)) net'). +Axiom thm_CONTINUOUS_ON_MATRIX_COMPONENTWISE : forall {M N' P : Type'}, forall A : (cart R P) -> cart (cart R M) N', forall s : (cart R P) -> Prop, (forall x : cart R M, @continuous_on P N' (fun a : cart R P => @matrix_vector_mul N' M (A a) x) s) = (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex M (@UNIV M)))))) -> @continuous_on P unit (fun a : cart R P => lift (@dollar R M (@dollar (cart R M) N' (A a) i) j)) s). +Axiom thm_CONTINUOUS_MATRIX_VECTOR_MUL : forall {A M N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R N') M, forall v : A -> cart R N', ((@continuous (finite_prod M N') A (@o A (cart (cart R N') M) (cart R (finite_prod M N')) (@vectorize R M N') A') net') /\ (@continuous N' A v net')) -> @continuous M A (fun x : A => @matrix_vector_mul M N' (A' x) (v x)) net'. +Axiom thm_CONTINUOUS_ON_MATRIX_VECTOR_MUL : forall {M N' P : Type'}, forall A : (cart R P) -> cart (cart R N') M, forall v : (cart R P) -> cart R N', forall s : (cart R P) -> Prop, ((@continuous_on P (finite_prod M N') (@o (cart R P) (cart (cart R N') M) (cart R (finite_prod M N')) (@vectorize R M N') A) s) /\ (@continuous_on P N' v s)) -> @continuous_on P M (fun x : cart R P => @matrix_vector_mul M N' (A x) (v x)) s. +Axiom thm_CONTINUOUS_MATRIX_MUL : forall {A M N' P : Type'}, forall net' : net A, forall A' : A -> cart (cart R N') M, forall B : A -> cart (cart R P) N', ((@continuous (finite_prod M N') A (@o A (cart (cart R N') M) (cart R (finite_prod M N')) (@vectorize R M N') A') net') /\ (@continuous (finite_prod N' P) A (@o A (cart (cart R P) N') (cart R (finite_prod N' P)) (@vectorize R N' P) B) net')) -> @continuous (finite_prod M P) A (fun x : A => @vectorize R M P (@matrix_mul M N' P (A' x) (B x))) net'. +Axiom thm_CONTINUOUS_ON_MATRIX_MUL : forall {M N' P Q : Type'}, forall A : (cart R Q) -> cart (cart R N') M, forall B : (cart R Q) -> cart (cart R P) N', forall s : (cart R Q) -> Prop, ((@continuous_on Q (finite_prod M N') (@o (cart R Q) (cart (cart R N') M) (cart R (finite_prod M N')) (@vectorize R M N') A) s) /\ (@continuous_on Q (finite_prod N' P) (@o (cart R Q) (cart (cart R P) N') (cart R (finite_prod N' P)) (@vectorize R N' P) B) s)) -> @continuous_on Q (finite_prod M P) (fun x : cart R Q => @vectorize R M P (@matrix_mul M N' P (A x) (B x))) s. +Axiom thm_LIM_VECTORIZE_COMPONENTWISE : forall {A M N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R N') M, forall B : cart (cart R N') M, (@FImp (finite_prod M N') A (fun a : A => @vectorize R M N' (A' a)) (@vectorize R M N' B) net') = (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> @FImp unit A (fun a : A => lift (@dollar R N' (@dollar (cart R N') M (A' a) i) j)) (lift (@dollar R N' (@dollar (cart R N') M B i) j)) net'). +Axiom thm_CONTINUOUS_VECTORIZE_COMPONENTWISE : forall {A M N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R N') M, (@continuous (finite_prod M N') A (fun a : A => @vectorize R M N' (A' a)) net') = (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> @continuous unit A (fun a : A => lift (@dollar R N' (@dollar (cart R N') M (A' a) i) j)) net'). +Axiom thm_CONTINUOUS_ON_VECTORIZE_COMPONENTWISE : forall {M N' P : Type'}, forall A : (cart R P) -> cart (cart R N') M, forall s : (cart R P) -> Prop, (@continuous_on P (finite_prod M N') (fun a : cart R P => @vectorize R M N' (A a)) s) = (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> @continuous_on P unit (fun a : cart R P => lift (@dollar R N' (@dollar (cart R N') M (A a) i) j)) s). +Axiom thm_LINEAR_TRANSP : forall {M N' : Type'}, @linear (finite_prod M N') (finite_prod N' M) (@o (cart R (finite_prod M N')) (cart (cart R M) N') (cart R (finite_prod N' M)) (@vectorize R N' M) (@o (cart R (finite_prod M N')) (cart (cart R N') M) (cart (cart R M) N') (@transp M N') (@matrify R M N'))). +Axiom thm_LIM_MATRIX_VECTORIZE : forall {A M N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R M) N', forall B : cart (cart R M) N', (forall x : cart R M, @FImp N' A (fun a : A => @matrix_vector_mul N' M (A' a) x) (@matrix_vector_mul N' M B x) net') = (@FImp (finite_prod N' M) A (fun a : A => @vectorize R N' M (A' a)) (@vectorize R N' M B) net'). +Axiom thm_CONTINUOUS_MATRIX_VECTORIZE : forall {A M N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R N') M, (forall x : cart R N', @continuous M A (fun a : A => @matrix_vector_mul M N' (A' a) x) net') = (@continuous (finite_prod M N') A (fun a : A => @vectorize R M N' (A' a)) net'). +Axiom thm_CONTINUOUS_ON_MATRIX_VECTORIZE : forall {M N' P : Type'}, forall A : (cart R P) -> cart (cart R N') M, forall s : (cart R P) -> Prop, (forall x : cart R N', @continuous_on P M (fun a : cart R P => @matrix_vector_mul M N' (A a) x) s) = (@continuous_on P (finite_prod M N') (fun a : cart R P => @vectorize R M N' (A a)) s). +Axiom thm_CONNECTED_IVT_HYPERPLANE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', forall a : cart R N', forall b : R, ((@connected N' s) /\ ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((Rle (@dot N' a x) b) /\ (Rle b (@dot N' a y)))))) -> exists z : cart R N', (@IN (cart R N') z s) /\ ((@dot N' a z) = b). +Axiom thm_CONNECTED_IVT_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', forall a : R, forall k : N, ((@connected N' s) /\ ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((Rle (@dollar R N' x k) a) /\ (Rle a (@dollar R N' y k)))))))) -> exists z : cart R N', (@IN (cart R N') z s) /\ ((@dollar R N' z k) = a). +Axiom thm_MAPPING_CONNECTED_ONTO_SEGMENT : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall a : cart R N', forall b : cart R N', ((@connected M s) /\ (~ (exists a' : cart R M, @SUBSET (cart R M) s (@INSERT (cart R M) a' (@EMPTY (cart R M)))))) -> exists f : (cart R M) -> cart R N', (@continuous_on M N' f s) /\ ((@IMAGE (cart R M) (cart R N') f s) = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_BOUNDED_INCREASING_CONVERGENT : forall s : N -> cart R unit, ((@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_3224 : cart R unit => exists n : N, @SETSPEC (cart R unit) GEN_PVAR_3224 (@IN N n (@UNIV N)) (s n)))) /\ (forall n : N, Rle (drop (s n)) (drop (s (N.succ n))))) -> exists l : cart R unit, @FImp unit N s l sequentially. +Axiom thm_BOUNDED_DECREASING_CONVERGENT : forall s : N -> cart R unit, ((@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_3225 : cart R unit => exists n : N, @SETSPEC (cart R unit) GEN_PVAR_3225 (@IN N n (@UNIV N)) (s n)))) /\ (forall n : N, Rle (drop (s (N.succ n))) (drop (s n)))) -> exists l : cart R unit, @FImp unit N s l sequentially. +Axiom thm_homeomorphism : forall {_787178 _787179 : Type'}, forall f : (cart R _787178) -> cart R _787179, forall s : (cart R _787178) -> Prop, forall g : (cart R _787179) -> cart R _787178, forall t : (cart R _787179) -> Prop, (@homeomorphism _787178 _787179 (@pair ((cart R _787178) -> Prop) ((cart R _787179) -> Prop) s t) (@pair ((cart R _787178) -> cart R _787179) ((cart R _787179) -> cart R _787178) f g)) = ((forall x : cart R _787178, (@IN (cart R _787178) x s) -> (g (f x)) = x) /\ (((@IMAGE (cart R _787178) (cart R _787179) f s) = t) /\ ((@continuous_on _787178 _787179 f s) /\ ((forall y : cart R _787179, (@IN (cart R _787179) y t) -> (f (g y)) = y) /\ (((@IMAGE (cart R _787179) (cart R _787178) g t) = s) /\ (@continuous_on _787179 _787178 g t)))))). +Axiom thm_homeomorphic : forall {_787195 _787196 : Type'}, forall s : (cart R _787196) -> Prop, forall t : (cart R _787195) -> Prop, (@homeomorphic _787195 _787196 s t) = (exists f : (cart R _787196) -> cart R _787195, exists g : (cart R _787195) -> cart R _787196, @homeomorphism _787196 _787195 (@pair ((cart R _787196) -> Prop) ((cart R _787195) -> Prop) s t) (@pair ((cart R _787196) -> cart R _787195) ((cart R _787195) -> cart R _787196) f g)). +Axiom thm_HOMEOMORPHISM : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) = ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' M g t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g t) s) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x) /\ (forall y : cart R N', (@IN (cart R N') y t) -> (f (g y)) = y)))))). +Axiom thm_HOMEOMORPHIC_MAPS_EUCLIDEAN_SUBTOPOLOGY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic_maps (cart R M) (cart R N') (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) = (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)). +Axiom thm_HOMEOMORPHIC_SPACE_EUCLIDEAN : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic_space (cart R M) (cart R N') (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) = (@homeomorphic N' M s t). +Axiom thm_HOMEOMORPHISM_IMP_HOMEOMORPHIC : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) -> @homeomorphic N' M s t. +Axiom thm_HOMEOMORPHISM_OF_SUBSETS : forall {_787469 _787470 : Type'}, forall f : (cart R _787470) -> cart R _787469, forall g : (cart R _787469) -> cart R _787470, forall s : (cart R _787470) -> Prop, forall t : (cart R _787469) -> Prop, forall s' : (cart R _787470) -> Prop, forall t' : (cart R _787469) -> Prop, ((@homeomorphism _787470 _787469 (@pair ((cart R _787470) -> Prop) ((cart R _787469) -> Prop) s t) (@pair ((cart R _787470) -> cart R _787469) ((cart R _787469) -> cart R _787470) f g)) /\ ((@SUBSET (cart R _787470) s' s) /\ ((@SUBSET (cart R _787469) t' t) /\ ((@IMAGE (cart R _787470) (cart R _787469) f s') = t')))) -> @homeomorphism _787470 _787469 (@pair ((cart R _787470) -> Prop) ((cart R _787469) -> Prop) s' t') (@pair ((cart R _787470) -> cart R _787469) ((cart R _787469) -> cart R _787470) f g). +Axiom thm_HOMEOMORPHISM_OF_SUBSETS_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall s' : (cart R M) -> Prop, forall t' : (cart R N') -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ ((@SUBSET (cart R M) s' s) /\ ((@SUBSET (cart R N') t' t) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (@IN (cart R N') (f x) t') = (@IN (cart R M) x s'))))) -> @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s' t') (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g). +Axiom thm_HOMEOMORPHISM_ID : forall {N' : Type'}, forall s : (cart R N') -> Prop, @homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s s) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') (fun x : cart R N' => x) (fun x : cart R N' => x)). +Axiom thm_HOMEOMORPHISM_I : forall {N' : Type'}, forall s : (cart R N') -> Prop, @homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s s) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') (@I (cart R N')) (@I (cart R N'))). +Axiom thm_HOMEOMORPHIC_REFL : forall {N' : Type'}, forall s : (cart R N') -> Prop, @homeomorphic N' N' s s. +Axiom thm_HOMEOMORPHISM_SYM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) = (@homeomorphism N' M (@pair ((cart R N') -> Prop) ((cart R M) -> Prop) t s) (@pair ((cart R N') -> cart R M) ((cart R M) -> cart R N') g f)). +Axiom thm_HOMEOMORPHIC_SYM : forall {_787665 _787666 : Type'}, forall s : (cart R _787665) -> Prop, forall t : (cart R _787666) -> Prop, (@homeomorphic _787666 _787665 s t) = (@homeomorphic _787665 _787666 t s). +Axiom thm_HOMEOMORPHISM_COMPOSE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall h : (cart R N') -> cart R P, forall k : (cart R P) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@homeomorphism N' P (@pair ((cart R N') -> Prop) ((cart R P) -> Prop) t u) (@pair ((cart R N') -> cart R P) ((cart R P) -> cart R N') h k))) -> @homeomorphism M P (@pair ((cart R M) -> Prop) ((cart R P) -> Prop) s u) (@pair ((cart R M) -> cart R P) ((cart R P) -> cart R M) (@o (cart R M) (cart R N') (cart R P) h f) (@o (cart R P) (cart R N') (cart R M) g k)). +Axiom thm_HOMEOMORPHIC_TRANS : forall {M N' P : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@homeomorphic N' M s t) /\ (@homeomorphic P N' t u)) -> @homeomorphic P M s u. +Axiom thm_HOMEOMORPHISM_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall f' : (cart R M) -> cart R N', forall g' : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (f' x) = (f x)) /\ (forall y : cart R N', (@IN (cart R N') y t) -> (g' y) = (g y)))) -> @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f' g'). +Axiom thm_LINEAR_IMP_HOMEOMORPHISM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@linear M N' f) /\ ((@linear N' M g) /\ (((@o (cart R M) (cart R N') (cart R M) g f) = (@I (cart R M))) /\ ((@IMAGE (cart R M) (cart R N') f s) = t)))) -> @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g). +Axiom thm_ORTHOGONAL_TRANSFORMATION_IMP_HOMEOMORPHISM : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@orthogonal_transformation N' f) /\ ((@IMAGE (cart R N') (cart R N') f s) = t)) -> exists g : (cart R N') -> cart R N', (@orthogonal_transformation N' g) /\ (@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)). +Axiom thm_HOMEOMORPHIC_SELF_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) u s)) -> @homeomorphic M N' (@IMAGE (cart R M) (cart R N') f u) u. +Axiom thm_HOMEOMORPHIC_IMP_CARD_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> @eq_c (cart R M) (cart R N') s t. +Axiom thm_HOMEOMORPHIC_FINITENESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@FINITE (cart R M) s) = (@FINITE (cart R N') t). +Axiom thm_HOMEOMORPHISM_FINITENESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@FINITE (cart R N') (@IMAGE (cart R M) (cart R N') f k)) = (@FINITE (cart R M) k). +Axiom thm_HOMEOMORPHIC_INFINITENESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@INFINITE (cart R M) s) = (@INFINITE (cart R N') t). +Axiom thm_HOMEOMORPHISM_INFINITENESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@INFINITE (cart R N') (@IMAGE (cart R M) (cart R N') f k)) = (@INFINITE (cart R M) k). +Axiom thm_HOMEOMORPHIC_COUNTABILITY : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@COUNTABLE (cart R M) s) = (@COUNTABLE (cart R N') t). +Axiom thm_HOMEOMORPHISM_COUNTABILITY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@COUNTABLE (cart R N') (@IMAGE (cart R M) (cart R N') f k)) = (@COUNTABLE (cart R M) k). +Axiom thm_HOMEOMORPHIC_EMPTY : forall {M N' : Type'}, (forall s : (cart R N') -> Prop, (@homeomorphic M N' s (@EMPTY (cart R M))) = (s = (@EMPTY (cart R N')))) /\ (forall s : (cart R N') -> Prop, (@homeomorphic N' M (@EMPTY (cart R M)) s) = (s = (@EMPTY (cart R N')))). +Axiom thm_HOMEOMORPHIC_MINIMAL : forall {_788366 _788367 : Type'}, forall s : (cart R _788366) -> Prop, forall t : (cart R _788367) -> Prop, (@homeomorphic _788367 _788366 s t) = (exists f : (cart R _788366) -> cart R _788367, exists g : (cart R _788367) -> cart R _788366, (forall x : cart R _788366, (@IN (cart R _788366) x s) -> (@IN (cart R _788367) (f x) t) /\ ((g (f x)) = x)) /\ ((forall y : cart R _788367, (@IN (cart R _788367) y t) -> (@IN (cart R _788366) (g y) s) /\ ((f (g y)) = y)) /\ ((@continuous_on _788366 _788367 f s) /\ (@continuous_on _788367 _788366 g t)))). +Axiom thm_HOMEOMORPHIC_INJECTIVE_LINEAR_IMAGE_SELF : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> @homeomorphic M N' (@IMAGE (cart R M) (cart R N') f s) s. +Axiom thm_HOMEOMORPHIC_INJECTIVE_LINEAR_IMAGE_LEFT_EQ : forall {_788478 M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R _788478) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@homeomorphic _788478 N' (@IMAGE (cart R M) (cart R N') f s) t) = (@homeomorphic _788478 M s t). +Axiom thm_HOMEOMORPHIC_INJECTIVE_LINEAR_IMAGE_RIGHT_EQ : forall {_788529 M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R _788529) -> Prop, forall t : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@homeomorphic N' _788529 s (@IMAGE (cart R M) (cart R N') f t)) = (@homeomorphic M _788529 s t). +Axiom thm_HOMEOMORPHIC_TRANSLATION_SELF : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, @homeomorphic N' N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) s. +Axiom thm_HOMEOMORPHIC_TRANSLATION_LEFT_EQ : forall {_788609 N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, forall t : (cart R _788609) -> Prop, (@homeomorphic _788609 N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) t) = (@homeomorphic _788609 N' s t). +Axiom thm_HOMEOMORPHIC_TRANSLATION_RIGHT_EQ : forall {_788646 N' : Type'}, forall a : cart R N', forall s : (cart R _788646) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' _788646 s (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) t)) = (@homeomorphic N' _788646 s t). +Axiom thm_INVOLUTION_IMP_HOMEOMORPHISM_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@continuous_on N' N' f u) /\ ((@SUBSET (cart R N') (@UNION (cart R N') s (@IMAGE (cart R N') (cart R N') f s)) u) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f (f x)) = x))) -> @homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s (@IMAGE (cart R N') (cart R N') f s)) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f f). +Axiom thm_INVOLUTION_IMP_HOMEOMORPHISM : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@continuous_on N' N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f (f x)) = x))) -> @homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s s) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f f). +Axiom thm_HOMEOMORPHISM_IMP_QUOTIENT_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) -> forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3226 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3226 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u). +Axiom thm_HOMEOMORPHIC_PCROSS : forall {M N' P Q : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall s' : (cart R P) -> Prop, forall t' : (cart R Q) -> Prop, ((@homeomorphic P M s s') /\ (@homeomorphic Q N' t t')) -> @homeomorphic (finite_sum P Q) (finite_sum M N') (@PCROSS R M N' s t) (@PCROSS R P Q s' t'). +Axiom thm_HOMEOMORPHIC_PCROSS_SYM : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, @homeomorphic (finite_sum N' M) (finite_sum M N') (@PCROSS R M N' s t) (@PCROSS R N' M t s). +Axiom thm_HOMEOMORPHIC_PCROSS_ASSOC : forall {M N' P : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, @homeomorphic (finite_sum (finite_sum M N') P) (finite_sum M (finite_sum N' P)) (@PCROSS R M (finite_sum N' P) s (@PCROSS R N' P t u)) (@PCROSS R (finite_sum M N') P (@PCROSS R M N' s t) u). +Axiom thm_HOMEOMORPHIC_SCALING_LEFT : forall {_789130 _789142 : Type'}, forall c : R, (Rlt (R_of_N (NUMERAL 0%N)) c) -> forall s : (cart R _789142) -> Prop, forall t : (cart R _789130) -> Prop, (@homeomorphic _789130 _789142 (@IMAGE (cart R _789142) (cart R _789142) (fun x : cart R _789142 => @percent _789142 c x) s) t) = (@homeomorphic _789130 _789142 s t). +Axiom thm_HOMEOMORPHIC_SCALING_RIGHT : forall {_789168 _789182 : Type'}, forall c : R, (Rlt (R_of_N (NUMERAL 0%N)) c) -> forall s : (cart R _789168) -> Prop, forall t : (cart R _789182) -> Prop, (@homeomorphic _789182 _789168 s (@IMAGE (cart R _789182) (cart R _789182) (fun x : cart R _789182 => @percent _789182 c x) t)) = (@homeomorphic _789182 _789168 s t). +Axiom thm_HOMEOMORPHIC_SUBSPACES : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@subspace M s) /\ ((@subspace N' t) /\ ((@dim M s) = (@dim N' t)))) -> @homeomorphic N' M s t. +Axiom thm_HOMEOMORPHIC_FINITE : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@FINITE (cart R M) s) /\ (@FINITE (cart R N') t)) -> (@homeomorphic N' M s t) = ((@CARD (cart R M) s) = (@CARD (cart R N') t)). +Axiom thm_HOMEOMORPHIC_FINITE_STRONG : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@FINITE (cart R M) s) \/ (@FINITE (cart R N') t)) -> (@homeomorphic N' M s t) = ((@FINITE (cart R M) s) /\ ((@FINITE (cart R N') t) /\ ((@CARD (cart R M) s) = (@CARD (cart R N') t)))). +Axiom thm_HOMEOMORPHIC_HAS_SIZE : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall n : N, (@homeomorphic N' M s t) -> (@HAS_SIZE (cart R M) s n) = (@HAS_SIZE (cart R N') t n). +Axiom thm_HOMEOMORPHISM_HAS_SIZE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, forall n : N, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@HAS_SIZE (cart R N') (@IMAGE (cart R M) (cart R N') f k) n) = (@HAS_SIZE (cart R M) k n). +Axiom thm_HOMEOMORPHIC_SING : forall {M N' : Type'}, forall a : cart R M, forall b : cart R N', @homeomorphic N' M (@INSERT (cart R M) a (@EMPTY (cart R M))) (@INSERT (cart R N') b (@EMPTY (cart R N'))). +Axiom thm_HOMEOMORPHIC_PCROSS_SING : forall {M N' : Type'}, (forall s : (cart R M) -> Prop, forall a : cart R N', @homeomorphic (finite_sum M N') M s (@PCROSS R M N' s (@INSERT (cart R N') a (@EMPTY (cart R N'))))) /\ (forall s : (cart R M) -> Prop, forall a : cart R N', @homeomorphic (finite_sum N' M) M s (@PCROSS R N' M (@INSERT (cart R N') a (@EMPTY (cart R N'))) s)). +Axiom thm_LIFT_TO_QUOTIENT_SPACE_UNIQUE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, (((@IMAGE (cart R M) (cart R N') f s) = t) /\ (((@IMAGE (cart R M) (cart R P) g s) = u) /\ ((forall v : (cart R N') -> Prop, (@SUBSET (cart R N') v t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3227 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3227 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) v)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v)) /\ ((forall v : (cart R P) -> Prop, (@SUBSET (cart R P) v u) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3228 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3228 ((@IN (cart R M) x s) /\ (@IN (cart R P) (g x) v)) x))) = (@open_in (cart R P) (@subtopology (cart R P) (@euclidean P) u) v)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> ((f x) = (f y)) = ((g x) = (g y))))))) -> @homeomorphic P N' t u. +Axiom thm_HOMOEOMORPHISM_PASTE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall f' : (cart R M) -> cart R N', forall g' : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall s' : (cart R M) -> Prop, forall t' : (cart R N') -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s' t') (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f' g')) /\ ((((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNION (cart R M) s s')) s) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNION (cart R M) s s')) s') /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') t t')) t) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') t t')) t')))) \/ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNION (cart R M) s s')) s) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNION (cart R M) s s')) s') /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') t t')) t) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') t t')) t'))))) /\ ((forall x : cart R M, (@IN (cart R M) x (@INTER (cart R M) s s')) -> (f' x) = (f x)) /\ (forall y : cart R N', (@IN (cart R N') y (@INTER (cart R N') t t')) -> (g' y) = (g y)))))) -> exists h : (cart R M) -> cart R N', exists k : (cart R N') -> cart R M, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) (@UNION (cart R M) s s') (@UNION (cart R N') t t')) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) h k)) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (h x) = (f x)) /\ ((forall x : cart R M, (@IN (cart R M) x s') -> (h x) = (f' x)) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> (k y) = (g y)) /\ ((forall y : cart R N', (@IN (cart R N') y t') -> (k y) = (g' y)) /\ (((@IMAGE (cart R M) (cart R N') h s) = t) /\ (((@IMAGE (cart R M) (cart R N') h s') = t') /\ (((@IMAGE (cart R N') (cart R M) k t) = s) /\ (((@IMAGE (cart R N') (cart R M) k t') = s') /\ (((@IMAGE (cart R M) (cart R N') h (@INTER (cart R M) s s')) = (@INTER (cart R N') t t')) /\ (((@IMAGE (cart R M) (cart R N') h (@DIFF (cart R M) s s')) = (@DIFF (cart R N') t t')) /\ (((@IMAGE (cart R M) (cart R N') h (@DIFF (cart R M) s' s)) = (@DIFF (cart R N') t' t)) /\ (((@IMAGE (cart R N') (cart R M) k (@INTER (cart R N') t t')) = (@INTER (cart R M) s s')) /\ (((@IMAGE (cart R N') (cart R M) k (@DIFF (cart R N') t t')) = (@DIFF (cart R M) s s')) /\ ((@IMAGE (cart R N') (cart R M) k (@DIFF (cart R N') t' t)) = (@DIFF (cart R M) s' s))))))))))))))). +Axiom thm_HOMEOMORPHISM_GRAPH_EXPLICIT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@homeomorphism M (finite_sum M N') (@pair ((cart R M) -> Prop) ((cart R (finite_sum M N')) -> Prop) s (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_3229 : cart R (finite_sum M N') => exists x : cart R M, @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_3229 (@IN (cart R M) x s) (@pastecart R M N' x (f x))))) (@pair ((cart R M) -> cart R (finite_sum M N')) ((cart R (finite_sum M N')) -> cart R M) (fun x : cart R M => @pastecart R M N' x (f x)) (@fstcart R M N'))) = (@continuous_on M N' f s). +Axiom thm_HOMEOMORPHISM_GRAPH : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (exists g : (cart R (finite_sum M N')) -> cart R M, @homeomorphism M (finite_sum M N') (@pair ((cart R M) -> Prop) ((cart R (finite_sum M N')) -> Prop) s (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_3230 : cart R (finite_sum M N') => exists x : cart R M, @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_3230 (@IN (cart R M) x s) (@pastecart R M N' x (f x))))) (@pair ((cart R M) -> cart R (finite_sum M N')) ((cart R (finite_sum M N')) -> cart R M) (fun x : cart R M => @pastecart R M N' x (f x)) g)) = (@continuous_on M N' f s). +Axiom thm_HOMEOMORPHIC_GRAPH : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) -> @homeomorphic M (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_3231 : cart R (finite_sum M N') => exists x : cart R M, @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_3231 (@IN (cart R M) x s) (@pastecart R M N' x (f x)))) s. +Axiom thm_CONTINUOUS_ON_INVERSE_OPEN_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x) /\ (forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u))))) -> @continuous_on N' M g t. +Axiom thm_CONTINUOUS_ON_INVERSE_CLOSED_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x) /\ (forall u : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u))))) -> @continuous_on N' M g t. +Axiom thm_CONTINUOUS_INVERSE_INJECTIVE_PROPER_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x) /\ (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3232 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3232 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)))))) -> @continuous_on N' M g t. +Axiom thm_HOMEOMORPHISM_INJECTIVE_OPEN_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y) /\ (forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u))))) -> exists g : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g). +Axiom thm_HOMEOMORPHISM_INJECTIVE_CLOSED_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y) /\ (forall u : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u))))) -> exists g : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g). +Axiom thm_HOMEOMORPHISM_IMP_OPEN_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u)) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u). +Axiom thm_HOMEOMORPHISM_IMP_CLOSED_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u)) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u). +Axiom thm_HOMEOMORPHISM_INJECTIVE_OPEN_MAP_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y))) -> (exists g : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) = (forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)). +Axiom thm_HOMEOMORPHISM_INJECTIVE_CLOSED_MAP_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y))) -> (exists g : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) = (forall u : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)). +Axiom thm_INJECTIVE_MAP_OPEN_IFF_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y))) -> (forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)) = (forall u : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)). +Axiom thm_HOMEOMORPHISM_OPEN_IN_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, forall v : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ ((@SUBSET (cart R M) u s) /\ (@SUBSET (cart R M) v s))) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f u)) (@IMAGE (cart R M) (cart R N') f v)) = (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) v). +Axiom thm_HOMEOMORPHISM_OPENNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k)) = (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k). +Axiom thm_HOMEOMORPHISM_CLOSED_IN_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, forall v : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ ((@SUBSET (cart R M) u s) /\ (@SUBSET (cart R M) v s))) -> (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f u)) (@IMAGE (cart R M) (cart R N') f v)) = (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) v). +Axiom thm_HOMEOMORPHISM_CLOSEDNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f k)) = (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) k). +Axiom thm_HOMEOMORPHISM_DERIVED_SET_OF : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) u s)) -> (@IMAGE (cart R M) (cart R N') f (@derived_set_of (cart R M) (@subtopology (cart R M) (@euclidean M) s) u)) = (@derived_set_of (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)). +Axiom thm_HOMEOMORPHISM_CLOSURE_OF : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) u s)) -> (@IMAGE (cart R M) (cart R N') f (@closure_of (cart R M) (@subtopology (cart R M) (@euclidean M) s) u)) = (@closure_of (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)). +Axiom thm_HOMEOMORPHISM_INTERIOR_OF : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) u s)) -> (@IMAGE (cart R M) (cart R N') f (@interior_of (cart R M) (@subtopology (cart R M) (@euclidean M) s) u)) = (@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)). +Axiom thm_HOMEOMORPHISM_FRONTIER_OF : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) u s)) -> (@IMAGE (cart R M) (cart R N') f (@frontier_of (cart R M) (@subtopology (cart R M) (@euclidean M) s) u)) = (@frontier_of (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)). +Axiom thm_HOMEOMORPHISM_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) u s)) -> (@INTER (cart R N') t (@closure N' (@IMAGE (cart R M) (cart R N') f u))) = (@IMAGE (cart R M) (cart R N') f (@INTER (cart R M) s (@closure M u))). +Axiom thm_HOMEOMORPHISM_CONNECTED_COMPONENT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall x : cart R M, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@IN (cart R M) x s)) -> (@connected_component N' (@IMAGE (cart R M) (cart R N') f s) (f x)) = (@IMAGE (cart R M) (cart R N') f (@connected_component M s x)). +Axiom thm_HOMEOMORPHISM_COMPONENTS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) -> (@components N' t) = (@IMAGE ((cart R M) -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R M) (cart R N') f) (@components M s)). +Axiom thm_LOCAL_HOMEOMORPHISM_IMP_OPEN_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (forall x : cart R M, (@IN (cart R M) x s) -> exists u : (cart R M) -> Prop, exists v : (cart R N') -> Prop, exists g : (cart R N') -> cart R M, (@IN (cart R M) x u) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) u v) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g))))) -> forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u). +Axiom thm_DERIVED_SET_OF_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@derived_set_of (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) u)) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@derived_set_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) s)). +Axiom thm_CLOSURE_OF_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@closure_of (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) u)) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@closure_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) s)). +Axiom thm_INTERIOR_OF_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) u)) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) s)). +Axiom thm_FRONTIER_OF_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@frontier_of (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) u)) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@frontier_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) s)). +Axiom thm_DERIVED_SET_OF_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@derived_set_of (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f u)) (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@derived_set_of (cart R M) (@subtopology (cart R M) (@euclidean M) u) s)). +Axiom thm_CLOSURE_OF_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@closure_of (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f u)) (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@closure_of (cart R M) (@subtopology (cart R M) (@euclidean M) u) s)). +Axiom thm_FRONTIER_OF_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@frontier_of (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f u)) (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@frontier_of (cart R M) (@subtopology (cart R M) (@euclidean M) u) s)). +Axiom thm_INTERIOR_OF_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f u)) (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@interior_of (cart R M) (@subtopology (cart R M) (@euclidean M) u) s)). +Axiom thm_CONTINUOUS_IMP_CLOSED_MAP_EXPLICIT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ (@compact M s))) -> forall u : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u). +Axiom thm_CONTINUOUS_IMP_QUOTIENT_MAP_EXPLICIT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ (@compact M s))) -> forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3241 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3241 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u). +Axiom thm_CONTINUOUS_ON_INVERSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ ((@compact M s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x))) -> @continuous_on N' M g (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_HOMEOMORPHISM_COMPACT : forall {_793207 _793257 : Type'}, forall s : (cart R _793207) -> Prop, forall f : (cart R _793207) -> cart R _793257, forall t : (cart R _793257) -> Prop, ((@compact _793207 s) /\ ((@continuous_on _793207 _793257 f s) /\ (((@IMAGE (cart R _793207) (cart R _793257) f s) = t) /\ (forall x : cart R _793207, forall y : cart R _793207, ((@IN (cart R _793207) x s) /\ ((@IN (cart R _793207) y s) /\ ((f x) = (f y)))) -> x = y)))) -> exists g : (cart R _793257) -> cart R _793207, @homeomorphism _793207 _793257 (@pair ((cart R _793207) -> Prop) ((cart R _793257) -> Prop) s t) (@pair ((cart R _793207) -> cart R _793257) ((cart R _793257) -> cart R _793207) f g). +Axiom thm_HOMEOMORPHIC_COMPACT : forall {_793285 _793332 : Type'}, forall s : (cart R _793285) -> Prop, forall f : (cart R _793285) -> cart R _793332, forall t : (cart R _793332) -> Prop, ((@compact _793285 s) /\ ((@continuous_on _793285 _793332 f s) /\ (((@IMAGE (cart R _793285) (cart R _793332) f s) = t) /\ (forall x : cart R _793285, forall y : cart R _793285, ((@IN (cart R _793285) x s) /\ ((@IN (cart R _793285) y s) /\ ((f x) = (f y)))) -> x = y)))) -> @homeomorphic _793332 _793285 s t. +Axiom thm_HOMEOMORPHISM_FROM_COMPOSITION_SURJECTIVE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((@continuous_on N' P g t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u) /\ (exists h : (cart R P) -> cart R M, @homeomorphism M P (@pair ((cart R M) -> Prop) ((cart R P) -> Prop) s u) (@pair ((cart R M) -> cart R P) ((cart R P) -> cart R M) (@o (cart R M) (cart R N') (cart R P) g f) h)))))) -> (exists f' : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f f')) /\ (exists g' : (cart R P) -> cart R N', @homeomorphism N' P (@pair ((cart R N') -> Prop) ((cart R P) -> Prop) t u) (@pair ((cart R N') -> cart R P) ((cart R P) -> cart R N') g g')). +Axiom thm_HOMEOMORPHISM_FROM_COMPOSITION_INJECTIVE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' P g t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u) /\ ((forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x t) /\ ((@IN (cart R N') y t) /\ ((g x) = (g y)))) -> x = y) /\ (exists h : (cart R P) -> cart R M, @homeomorphism M P (@pair ((cart R M) -> Prop) ((cart R P) -> Prop) s u) (@pair ((cart R M) -> cart R P) ((cart R P) -> cart R M) (@o (cart R M) (cart R N') (cart R P) g f) h))))))) -> (exists f' : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f f')) /\ (exists g' : (cart R P) -> cart R N', @homeomorphism N' P (@pair ((cart R N') -> Prop) ((cart R P) -> Prop) t u) (@pair ((cart R N') -> cart R P) ((cart R P) -> cart R N') g g')). +Axiom thm_HOMEOMORPHIC_COMPACTNESS : forall {_793632 _793633 : Type'}, forall s : (cart R _793632) -> Prop, forall t : (cart R _793633) -> Prop, (@homeomorphic _793633 _793632 s t) -> (@compact _793632 s) = (@compact _793633 t). +Axiom thm_HOMEOMORPHIC_CONNECTEDNESS : forall {_793653 _793654 : Type'}, forall s : (cart R _793653) -> Prop, forall t : (cart R _793654) -> Prop, (@homeomorphic _793654 _793653 s t) -> (@connected _793653 s) = (@connected _793654 t). +Axiom thm_HOMEOMORPHISM_COMPACTNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@compact N' (@IMAGE (cart R M) (cart R N') f k)) = (@compact M k). +Axiom thm_HOMEOMORPHISM_CONNECTEDNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@connected N' (@IMAGE (cart R M) (cart R N') f k)) = (@connected M k). +Axiom thm_HOMEOMORPHIC_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (~ (c = (R_of_N (NUMERAL 0%N)))) -> @homeomorphic N' N' s (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s). +Axiom thm_HOMEOMORPHIC_TRANSLATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', @homeomorphic N' N' s (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_HOMEOMORPHIC_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall c : R, (~ (c = (R_of_N (NUMERAL 0%N)))) -> @homeomorphic N' N' s (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' c x) a) s). +Axiom thm_HOMEOMORPHIC_BALLS : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall d : R, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> @homeomorphic N' N' (@ball N' (@pair (cart R N') R a d)) (@ball N' (@pair (cart R N') R b e)). +Axiom thm_HOMEOMORPHIC_SPHERES : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall d : R, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> @homeomorphic N' N' (@sphere N' (@pair (cart R N') R a d)) (@sphere N' (@pair (cart R N') R b e)). +Axiom thm_HOMEOMORPHIC_CBALLS : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall d : R, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> @homeomorphic N' N' (@cball N' (@pair (cart R N') R a d)) (@cball N' (@pair (cart R N') R b e)). +Axiom thm_HOMEOMORPHISM_ONE_POINT_COMPACTIFICATIONS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall a : cart R M, forall b : cart R N', ((@compact M s) /\ ((@compact N' t) /\ ((@IN (cart R M) a s) /\ ((@IN (cart R N') b t) /\ (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) (@DELETE (cart R M) s a) (@DELETE (cart R N') t b)) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)))))) -> exists f' : (cart R M) -> cart R N', exists g' : (cart R N') -> cart R M, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f' g')) /\ (((f' a) = b) /\ (((g' b) = a) /\ ((forall x : cart R M, (@IN (cart R M) x (@DELETE (cart R M) s a)) -> (f' x) = (f x)) /\ (forall y : cart R N', (@IN (cart R N') y (@DELETE (cart R N') t b)) -> (g' y) = (g y))))). +Axiom thm_HOMEOMORPHIC_ONE_POINT_COMPACTIFICATIONS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall a : cart R M, forall b : cart R N', ((@compact M s) /\ ((@compact N' t) /\ ((@IN (cart R M) a s) /\ ((@IN (cart R N') b t) /\ (@homeomorphic N' M (@DELETE (cart R M) s a) (@DELETE (cart R N') t b)))))) -> @homeomorphic N' M s t. +Axiom thm_BOUNDED_IMAGE_IN_COMPACTIFICATION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall u : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) u (@DIFF (cart R N') s t)) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ ((@compact N' s) /\ ((@closed M u) /\ (@SUBSET (cart R M) c u)))) -> (@bounded M c) = ((@INTER (cart R N') (@closure N' (@IMAGE (cart R M) (cart R N') f c)) t) = (@EMPTY (cart R N'))). +Axiom thm_HOMEOMORPHIC_OPEN_INTERVALS_1 : forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, forall d : cart R unit, ((Rlt (drop a) (drop b)) /\ (Rlt (drop c) (drop d))) -> @homeomorphic unit unit (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) (@open_interval unit (@pair (cart R unit) (cart R unit) c d)). +Axiom thm_HOMEOMORPHIC_OPEN_INTERVAL_UNIV_1 : forall a : cart R unit, forall b : cart R unit, (Rlt (drop a) (drop b)) -> @homeomorphic unit unit (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) (@UNIV (cart R unit)). +Axiom thm_HOMEOMORPHIC_OPEN_INTERVALS : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', (((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N'))) = ((@open_interval N' (@pair (cart R N') (cart R N') c d)) = (@EMPTY (cart R N')))) -> @homeomorphic N' N' (@open_interval N' (@pair (cart R N') (cart R N') a b)) (@open_interval N' (@pair (cart R N') (cart R N') c d)). +Axiom thm_HOMEOMORPHIC_OPEN_INTERVAL_UNIV : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))) -> @homeomorphic N' N' (@open_interval N' (@pair (cart R N') (cart R N') a b)) (@UNIV (cart R N')). +Axiom thm_HOMEOMORPHIC_BALL_UNIV : forall {N' : Type'}, forall a : cart R N', forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> @homeomorphic N' N' (@ball N' (@pair (cart R N') R a r)) (@UNIV (cart R N')). +Axiom thm_CARD_EQ_EUCLIDEAN : forall {N' : Type'}, @eq_c (cart R N') R (@UNIV (cart R N')) (@UNIV R). +Axiom thm_UNCOUNTABLE_EUCLIDEAN : forall {N' : Type'}, ~ (@COUNTABLE (cart R N') (@UNIV (cart R N'))). +Axiom thm_CARD_EQ_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))) -> @eq_c (cart R N') R (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@UNIV R)) /\ (forall a : cart R N', forall b : cart R N', (~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))) -> @eq_c (cart R N') R (@open_interval N' (@pair (cart R N') (cart R N') a b)) (@UNIV R)). +Axiom thm_UNCOUNTABLE_INTERVAL : forall {_796049 _796053 : Type'}, (forall a : cart R _796049, forall b : cart R _796049, (~ ((@open_interval _796049 (@pair (cart R _796049) (cart R _796049) a b)) = (@EMPTY (cart R _796049)))) -> ~ (@COUNTABLE (cart R _796049) (@closed_interval _796049 (@cons (prod (cart R _796049) (cart R _796049)) (@pair (cart R _796049) (cart R _796049) a b) (@nil (prod (cart R _796049) (cart R _796049))))))) /\ (forall a : cart R _796053, forall b : cart R _796053, (~ ((@open_interval _796053 (@pair (cart R _796053) (cart R _796053) a b)) = (@EMPTY (cart R _796053)))) -> ~ (@COUNTABLE (cart R _796053) (@open_interval _796053 (@pair (cart R _796053) (cart R _796053) a b)))). +Axiom thm_COUNTABLE_OPEN_INTERVAL : forall {_796093 : Type'}, forall a : cart R _796093, forall b : cart R _796093, (@COUNTABLE (cart R _796093) (@open_interval _796093 (@pair (cart R _796093) (cart R _796093) a b))) = ((@open_interval _796093 (@pair (cart R _796093) (cart R _796093) a b)) = (@EMPTY (cart R _796093))). +Axiom thm_CARD_EQ_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> @eq_c (cart R N') R s (@UNIV R). +Axiom thm_UNCOUNTABLE_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> ~ (@COUNTABLE (cart R N') s). +Axiom thm_CARD_EQ_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> @eq_c (cart R N') R (@ball N' (@pair (cart R N') R a r)) (@UNIV R). +Axiom thm_CARD_EQ_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> @eq_c (cart R N') R (@cball N' (@pair (cart R N') R a r)) (@UNIV R). +Axiom thm_FINITE_IMP_NOT_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ (~ (s = (@EMPTY (cart R N'))))) -> ~ (@_open N' s). +Axiom thm_OPEN_IMP_INFINITE : forall {_796262 : Type'}, forall s : (cart R _796262) -> Prop, (@_open _796262 s) -> (s = (@EMPTY (cart R _796262))) \/ (@INFINITE (cart R _796262) s). +Axiom thm_EMPTY_INTERIOR_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> (@interior N' s) = (@EMPTY (cart R N')). +Axiom thm_FINITE_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (@FINITE (cart R N') (@cball N' (@pair (cart R N') R a r))) = (Rle r (R_of_N (NUMERAL 0%N))). +Axiom thm_FINITE_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (@FINITE (cart R N') (@ball N' (@pair (cart R N') R a r))) = (Rle r (R_of_N (NUMERAL 0%N))). +Axiom thm_CARD_EQ_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@connected N' s) /\ ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (~ (a = b))))) -> @eq_c (cart R N') R s (@UNIV R). +Axiom thm_UNCOUNTABLE_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@connected N' s) /\ ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (~ (a = b))))) -> ~ (@COUNTABLE (cart R N') s). +Axiom thm_CARD_LT_IMP_DISCONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@lt_c (cart R N') R s (@UNIV R)) /\ (@IN (cart R N') x s)) -> (@connected_component N' s x) = (@INSERT (cart R N') x (@EMPTY (cart R N'))). +Axiom thm_COUNTABLE_IMP_DISCONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@COUNTABLE (cart R N') s) /\ (@IN (cart R N') x s)) -> (@connected_component N' s x) = (@INSERT (cart R N') x (@EMPTY (cart R N'))). +Axiom thm_CONNECTED_CARD_EQ_IFF_NONTRIVIAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) -> (@eq_c (cart R N') R s (@UNIV R)) = (~ (exists a : cart R N', @SUBSET (cart R N') s (@INSERT (cart R N') a (@EMPTY (cart R N'))))). +Axiom thm_CONNECTED_CARD_LT_IFF_TRIVIAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) -> (@lt_c (cart R N') R s (@UNIV R)) = (exists a : cart R N', @SUBSET (cart R N') s (@INSERT (cart R N') a (@EMPTY (cart R N')))). +Axiom thm_SMALL_IMP_TOTALLY_DISCONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lt_c (cart R N') R s (@UNIV R)) -> (@components N' s) = (@IMAGE (cart R N') ((cart R N') -> Prop) (fun x : cart R N' => @INSERT (cart R N') x (@EMPTY (cart R N'))) s). +Axiom thm_FINITE_IMP_TOTALLY_DISCONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> (@components N' s) = (@IMAGE (cart R N') ((cart R N') -> Prop) (fun x : cart R N' => @INSERT (cart R N') x (@EMPTY (cart R N'))) s). +Axiom thm_CONTINUOUS_DISCONNECTED_RANGE_CONSTANT_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, (@connected M s) = (forall f : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (forall y : cart R N', (@IN (cart R N') y t) -> (@connected_component N' t y) = (@INSERT (cart R N') y (@EMPTY (cart R N')))))) -> exists a : cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a). +Axiom thm_CONTINUOUS_FINITE_RANGE_CONSTANT_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, (@connected M s) = (forall f : (cart R M) -> cart R N', ((@continuous_on M N' f s) /\ (@FINITE (cart R N') (@IMAGE (cart R M) (cart R N') f s))) -> exists a : cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a). +Axiom thm_CONTINUOUS_DISCRETE_RANGE_CONSTANT_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, (@connected M s) = (forall f : (cart R M) -> cart R N', ((@continuous_on M N' f s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall y : cart R M, ((@IN (cart R M) y s) /\ (~ ((f y) = (f x)))) -> Rle e (@vector_norm N' (@vector_sub N' (f y) (f x)))))) -> exists a : cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a). +Axiom thm_CONTINUOUS_DISCONNECTED_RANGE_CONSTANT : forall {M N' : Type'} (t : (cart R N') -> Prop), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@connected M s) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (forall y : cart R N', (@IN (cart R N') y t) -> (@connected_component N' t y) = (@INSERT (cart R N') y (@EMPTY (cart R N'))))))) -> exists a : cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a. +Axiom thm_CONTINUOUS_DISCRETE_RANGE_CONSTANT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@connected M s) /\ ((@continuous_on M N' f s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall y : cart R M, ((@IN (cart R M) y s) /\ (~ ((f y) = (f x)))) -> Rle e (@vector_norm N' (@vector_sub N' (f y) (f x))))))) -> exists a : cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a. +Axiom thm_CONTINUOUS_FINITE_RANGE_CONSTANT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@connected M s) /\ ((@continuous_on M N' f s) /\ (@FINITE (cart R N') (@IMAGE (cart R M) (cart R N') f s)))) -> exists a : cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a. +Axiom thm_CONTINUOUS_COUNTABLE_RANGE_CONSTANT_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, (@connected M s) = (forall f : (cart R M) -> cart R N', ((@continuous_on M N' f s) /\ (@COUNTABLE (cart R N') (@IMAGE (cart R M) (cart R N') f s))) -> exists a : cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a). +Axiom thm_CONTINUOUS_CARD_LT_RANGE_CONSTANT_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, (@connected M s) = (forall f : (cart R M) -> cart R N', ((@continuous_on M N' f s) /\ (@lt_c (cart R N') R (@IMAGE (cart R M) (cart R N') f s) (@UNIV R))) -> exists a : cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a). +Axiom thm_CONTINUOUS_COUNTABLE_RANGE_CONSTANT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@connected M s) /\ ((@continuous_on M N' f s) /\ (@COUNTABLE (cart R N') (@IMAGE (cart R M) (cart R N') f s)))) -> exists a : cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a. +Axiom thm_CONTINUOUS_CARD_LT_RANGE_CONSTANT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@connected M s) /\ ((@continuous_on M N' f s) /\ (@lt_c (cart R N') R (@IMAGE (cart R M) (cart R N') f s) (@UNIV R)))) -> exists a : cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (f x) = a. +Axiom thm_HOMEOMORPHIC_HYPERPLANES : forall {N' : Type'}, forall a : cart R N', forall b : R, forall c : cart R N', forall d : R, ((~ (a = (@vec N' (NUMERAL 0%N)))) /\ (~ (c = (@vec N' (NUMERAL 0%N))))) -> @homeomorphic N' N' (@GSPEC (cart R N') (fun GEN_PVAR_3251 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3251 ((@dot N' a x) = b) x)) (@GSPEC (cart R N') (fun GEN_PVAR_3252 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3252 ((@dot N' c x) = d) x)). +Axiom thm_HOMEOMORPHIC_HYPERPLANE_STANDARD_HYPERPLANE : forall {N' : Type'}, forall a : cart R N', forall b : R, forall k : N, forall c : R, ((~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> @homeomorphic N' N' (@GSPEC (cart R N') (fun GEN_PVAR_3255 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3255 ((@dot N' a x) = b) x)) (@GSPEC (cart R N') (fun GEN_PVAR_3256 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3256 ((@dollar R N' x k) = c) x)). +Axiom thm_HOMEOMORPHIC_STANDARD_HYPERPLANE_HYPERPLANE : forall {N' : Type'}, forall a : cart R N', forall b : R, forall k : N, forall c : R, ((~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> @homeomorphic N' N' (@GSPEC (cart R N') (fun GEN_PVAR_3257 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3257 ((@dollar R N' x k) = c) x)) (@GSPEC (cart R N') (fun GEN_PVAR_3258 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3258 ((@dot N' a x) = b) x)). +Axiom thm_HOMEOMORPHIC_HYPERPLANE_UNIV : forall {M N' : Type'}, forall a : cart R N', forall b : R, ((~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((@dimindex N' (@UNIV N')) = (N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))))) -> @homeomorphic M N' (@GSPEC (cart R N') (fun GEN_PVAR_3260 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3260 ((@dot N' a x) = b) x)) (@UNIV (cart R M)). +Axiom thm_CAUCHY_ISOMETRIC : forall {_798331 _798372 : Type'}, forall f : (cart R _798372) -> cart R _798331, forall s : (cart R _798372) -> Prop, forall e : R, forall x : N -> cart R _798372, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@subspace _798372 s) /\ ((@linear _798372 _798331 f) /\ ((forall x' : cart R _798372, (@IN (cart R _798372) x' s) -> Rge (@vector_norm _798331 (f x')) (Rmult e (@vector_norm _798372 x'))) /\ ((forall n : N, @IN (cart R _798372) (x n) s) /\ (@cauchy _798331 (@o N (cart R _798372) (cart R _798331) f x))))))) -> @cauchy _798372 x. +Axiom thm_COMPLETE_ISOMETRIC_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@subspace M s) /\ ((@linear M N' f) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> Rge (@vector_norm N' (f x)) (Rmult e (@vector_norm M x))) /\ (@complete M s))))) -> @complete N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_INJECTIVE_IMP_ISOMETRIC : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@closed M s) /\ ((@subspace M s) /\ ((@linear M N' f) /\ (forall x : cart R M, ((@IN (cart R M) x s) /\ ((f x) = (@vec N' (NUMERAL 0%N)))) -> x = (@vec M (NUMERAL 0%N)))))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rge (@vector_norm N' (f x)) (Rmult e (@vector_norm M x))). +Axiom thm_CLOSED_INJECTIVE_IMAGE_SUBSPACE : forall {_798785 _798790 : Type'}, forall f : (cart R _798790) -> cart R _798785, forall s : (cart R _798790) -> Prop, ((@subspace _798790 s) /\ ((@linear _798790 _798785 f) /\ ((forall x : cart R _798790, ((@IN (cart R _798790) x s) /\ ((f x) = (@vec _798785 (NUMERAL 0%N)))) -> x = (@vec _798790 (NUMERAL 0%N))) /\ (@closed _798790 s)))) -> @closed _798785 (@IMAGE (cart R _798790) (cart R _798785) f s). +Axiom thm_OPEN_SURJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall y : cart R N', exists x : cart R M, (f x) = y)) -> forall s : (cart R M) -> Prop, (@_open M s) -> @_open N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_OPEN_BIJECTIVE_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@_open N' (@IMAGE (cart R M) (cart R N') f s)) = (@_open M s). +Axiom thm_OPEN_INVERTIBLE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((@invertible N' M (@matrix M N' f)) /\ (@_open M s))) -> @_open N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_CLOSED_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> forall s : (cart R M) -> Prop, (@closed M s) -> @closed N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_CLOSED_INJECTIVE_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@closed N' (@IMAGE (cart R M) (cart R N') f s)) = (@closed M s). +Axiom thm_CLOSURE_LINEAR_IMAGE_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@linear M N' f) -> @SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@closure M s)) (@closure N' (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_CLOSURE_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@closure N' (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@closure M s)). +Axiom thm_CLOSURE_BOUNDED_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (@bounded M s)) -> (@closure N' (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@closure M s)). +Axiom thm_LINEAR_INTERIOR_IMAGE_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> @SUBSET (cart R N') (@interior N' (@IMAGE (cart R M) (cart R N') f s)) (@IMAGE (cart R M) (cart R N') f (@interior M s)). +Axiom thm_LINEAR_IMAGE_SUBSET_INTERIOR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall y : cart R N', exists x : cart R M, (f x) = y)) -> @SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@interior M s)) (@interior N' (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_INTERIOR_BIJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@interior N' (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@interior M s)). +Axiom thm_FRONTIER_BIJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@frontier N' (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@frontier M s)). +Axiom thm_IN_INTERIOR_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall x : cart R M, ((@linear M N' f) /\ ((@linear N' M g) /\ (((@o (cart R N') (cart R M) (cart R N') f g) = (@I (cart R N'))) /\ (@IN (cart R M) x (@interior M s))))) -> @IN (cart R N') (f x) (@interior N' (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_LINEAR_OPEN_MAPPING : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, ((@linear M N' f) /\ ((@linear N' M g) /\ ((@o (cart R N') (cart R M) (cart R N') f g) = (@I (cart R N'))))) -> forall s : (cart R M) -> Prop, (@_open M s) -> @_open N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_INTERIOR_INJECTIVE_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> (@interior N' (@IMAGE (cart R N') (cart R N') f s)) = (@IMAGE (cart R N') (cart R N') f (@interior N' s)). +Axiom thm_INTERIOR_SURJECTIVE_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (forall y : cart R N', exists x : cart R N', (f x) = y)) -> (@interior N' (@IMAGE (cart R N') (cart R N') f s)) = (@IMAGE (cart R N') (cart R N') f (@interior N' s)). +Axiom thm_CLOSURE_SURJECTIVE_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (forall y : cart R N', exists x : cart R N', (f x) = y)) -> (@closure N' (@IMAGE (cart R N') (cart R N') f s)) = (@IMAGE (cart R N') (cart R N') f (@closure N' s)). +Axiom thm_FRONTIER_INJECTIVE_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> (@frontier N' (@IMAGE (cart R N') (cart R N') f s)) = (@IMAGE (cart R N') (cart R N') f (@frontier N' s)). +Axiom thm_FRONTIER_SURJECTIVE_LINEAR_IMAGE : forall {N' : Type'} (s : (cart R N') -> Prop), forall f : (cart R N') -> cart R N', ((@linear N' N' f) /\ (forall y : cart R N', exists x : cart R N', (f x) = y)) -> (@frontier N' (@IMAGE (cart R N') (cart R N') f s)) = (@IMAGE (cart R N') (cart R N') f (@frontier N' s)). +Axiom thm_COMPLETE_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> forall s : (cart R M) -> Prop, (@complete M s) -> @complete N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_COMPLETE_INJECTIVE_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@complete N' (@IMAGE (cart R M) (cart R N') f s)) = (@complete M s). +Axiom thm_LIMPT_INJECTIVE_LINEAR_IMAGE_EQ : forall {M N' : Type'} (x : cart R M), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x' : cart R M, forall y : cart R M, ((f x') = (f y)) -> x' = y)) -> (@limit_point_of N' (f x) (@IMAGE (cart R M) (cart R N') f s)) = (@limit_point_of M x s). +Axiom thm_LIMPT_TRANSLATION_EQ : forall {_800082 : Type'}, forall a : cart R _800082, forall s : (cart R _800082) -> Prop, forall x : cart R _800082, (@limit_point_of _800082 (@vector_add _800082 a x) (@IMAGE (cart R _800082) (cart R _800082) (fun y : cart R _800082 => @vector_add _800082 a y) s)) = (@limit_point_of _800082 x s). +Axiom thm_OPEN_OPEN_LEFT_PROJECTION : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R (finite_sum M N')) -> Prop, ((@_open M s) /\ (@_open (finite_sum M N') t)) -> @_open M (@GSPEC (cart R M) (fun GEN_PVAR_3270 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3270 ((@IN (cart R M) x s) /\ (exists y : cart R N', @IN (cart R (finite_sum M N')) (@pastecart R M N' x y) t)) x)). +Axiom thm_OPEN_OPEN_RIGHT_PROJECTION : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R (finite_sum M N')) -> Prop, ((@_open N' s) /\ (@_open (finite_sum M N') t)) -> @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_3272 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3272 ((@IN (cart R N') y s) /\ (exists x : cart R M, @IN (cart R (finite_sum M N')) (@pastecart R M N' x y) t)) y)). +Axiom thm_OPEN_MAP_FSTCART : forall {M N' : Type'}, forall s : (cart R (finite_sum M N')) -> Prop, (@_open (finite_sum M N') s) -> @_open M (@IMAGE (cart R (finite_sum M N')) (cart R M) (@fstcart R M N') s). +Axiom thm_OPEN_MAP_SNDCART : forall {M N' : Type'}, forall s : (cart R (finite_sum M N')) -> Prop, (@_open (finite_sum M N') s) -> @_open N' (@IMAGE (cart R (finite_sum M N')) (cart R N') (@sndcart R M N') s). +Axiom thm_INTERIOR_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@interior N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = (@COND ((cart R N') -> Prop) (c = (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R N')) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) (@interior N' s))). +Axiom thm_INTERIOR_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@interior N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = (@COND ((cart R N') -> Prop) (m = (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R N')) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) (@interior N' s))). +Axiom thm_CLOSURE_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@closure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) (@closure N' s)). +Axiom thm_CLOSURE_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@closure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) (@closure N' s)). +Axiom thm_FRONTIER_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@frontier N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = (@COND ((cart R N') -> Prop) ((c = (R_of_N (NUMERAL 0%N))) /\ (s = (@UNIV (cart R N')))) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N'))) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) (@frontier N' s))). +Axiom thm_FRONTIER_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@frontier N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = (@COND ((cart R N') -> Prop) ((m = (R_of_N (NUMERAL 0%N))) /\ (s = (@UNIV (cart R N')))) (@INSERT (cart R N') c (@EMPTY (cart R N'))) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) (@frontier N' s))). +Axiom thm_INTERIOR_NEGATIONS : forall {_800721 : Type'}, forall s : (cart R _800721) -> Prop, (@interior _800721 (@IMAGE (cart R _800721) (cart R _800721) (@vector_neg _800721) s)) = (@IMAGE (cart R _800721) (cart R _800721) (@vector_neg _800721) (@interior _800721 s)). +Axiom thm_SYMMETRIC_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (forall x : cart R N', (@IN (cart R N') x s) -> @IN (cart R N') (@vector_neg N' x) s) -> forall x : cart R N', (@IN (cart R N') x (@interior N' s)) -> @IN (cart R N') (@vector_neg N' x) (@interior N' s). +Axiom thm_CLOSURE_NEGATIONS : forall {_800814 : Type'}, forall s : (cart R _800814) -> Prop, (@closure _800814 (@IMAGE (cart R _800814) (cart R _800814) (@vector_neg _800814) s)) = (@IMAGE (cart R _800814) (cart R _800814) (@vector_neg _800814) (@closure _800814 s)). +Axiom thm_SYMMETRIC_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (forall x : cart R N', (@IN (cart R N') x s) -> @IN (cart R N') (@vector_neg N' x) s) -> forall x : cart R N', (@IN (cart R N') x (@closure N' s)) -> @IN (cart R N') (@vector_neg N' x) (@closure N' s). +Axiom thm_SUBSPACE_SUBSTANDARD : forall {N' : Type'}, forall d : N, @subspace N' (@GSPEC (cart R N') (fun GEN_PVAR_3274 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3274 (forall i : N, ((N.lt d i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@dollar R N' x i) = (R_of_N (NUMERAL 0%N))) x)). +Axiom thm_CLOSED_SUBSTANDARD : forall {N' : Type'}, forall d : N, @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_3279 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3279 (forall i : N, ((N.lt d i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@dollar R N' x i) = (R_of_N (NUMERAL 0%N))) x)). +Axiom thm_DIM_SUBSTANDARD : forall {N' : Type'}, forall d : N, (N.le d (@dimindex N' (@UNIV N'))) -> (@dim N' (@GSPEC (cart R N') (fun GEN_PVAR_3281 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3281 (forall i : N, ((N.lt d i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@dollar R N' x i) = (R_of_N (NUMERAL 0%N))) x))) = d. +Axiom thm_CLOSED_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> @closed N' s. +Axiom thm_COMPLETE_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> @complete N' s. +Axiom thm_CLOSED_SPAN : forall {_801445 : Type'}, forall s : (cart R _801445) -> Prop, @closed _801445 (@span _801445 s). +Axiom thm_CLOSURE_SUBSET_SPAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@closure N' s) (@span N' s). +Axiom thm_DIM_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@dim N' (@closure N' s)) = (@dim N' s). +Axiom thm_CLOSED_BOUNDEDPREIM_CONTINUOUS_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@closed M s) /\ ((@continuous_on M N' f s) /\ (forall e : R, @bounded M (@GSPEC (cart R M) (fun GEN_PVAR_3284 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3284 ((@IN (cart R M) x s) /\ (Rle (@vector_norm N' (f x)) e)) x))))) -> @closed N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_CLOSED_INJECTIVE_IMAGE_SUBSET_SUBSPACE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@closed M s) /\ ((@SUBSET (cart R M) s t) /\ ((@subspace M t) /\ ((@linear M N' f) /\ (forall x : cart R M, ((@IN (cart R M) x t) /\ ((f x) = (@vec N' (NUMERAL 0%N)))) -> x = (@vec M (NUMERAL 0%N))))))) -> @closed N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_BASIS_COORDINATES_LIPSCHITZ : forall {N' : Type'}, forall b : (cart R N') -> Prop, (@independent N' b) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall c : (cart R N') -> R, forall v : cart R N', (@IN (cart R N') v b) -> Rle (Rabs (c v)) (Rmult B (@vector_norm N' (@vsum (cart R N') N' b (fun v' : cart R N' => @percent N' (c v') v'))))). +Axiom thm_COMPLEMENTARY_SUM_COMPONENTS_LIPSCHITZ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ ((@subspace N' t) /\ (@SUBSET (cart R N') (@INTER (cart R N') s t) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))))) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) -> Rle (@vector_norm N' x) (Rmult B (@vector_norm N' (@vector_add N' x y)))). +Axiom thm_BASIS_COORDINATES_CONTINUOUS : forall {N' : Type'}, forall b : (cart R N') -> Prop, forall e : R, ((@independent N' b) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall c : (cart R N') -> R, (Rlt (@vector_norm N' (@vsum (cart R N') N' b (fun v : cart R N' => @percent N' (c v) v))) d) -> forall v : cart R N', (@IN (cart R N') v b) -> Rlt (Rabs (c v)) e). +Axiom thm_COMPLEMENTARY_SUM_HOMEOMORPHIC_PCROSS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') (@INTER (cart R N') (@span N' s) (@span N' t)) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))) -> @homeomorphic (finite_sum N' N') N' (@GSPEC (cart R N') (fun GEN_PVAR_3286 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3286 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))) (@PCROSS R N' N' s t). +Axiom thm_AFFINITY_INVERSES : forall {_802549 : Type'}, forall m : R, forall c : cart R _802549, (~ (m = (R_of_N (NUMERAL 0%N)))) -> ((@o (cart R _802549) (cart R _802549) (cart R _802549) (fun x : cart R _802549 => @vector_add _802549 (@percent _802549 m x) c) (fun x : cart R _802549 => @vector_add _802549 (@percent _802549 (Rinv m) x) (@vector_neg _802549 (@percent _802549 (Rinv m) c)))) = (@I (cart R _802549))) /\ ((@o (cart R _802549) (cart R _802549) (cart R _802549) (fun x : cart R _802549 => @vector_add _802549 (@percent _802549 (Rinv m) x) (@vector_neg _802549 (@percent _802549 (Rinv m) c))) (fun x : cart R _802549 => @vector_add _802549 (@percent _802549 m x) c)) = (@I (cart R _802549))). +Axiom thm_REAL_AFFINITY_LE : forall m : R, forall c : R, forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) m) -> (Rle (Rplus (Rmult m x) c) y) = (Rle x (Rplus (Rmult (Rinv m) y) (Ropp (Rdiv c m)))). +Axiom thm_REAL_LE_AFFINITY : forall m : R, forall c : R, forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) m) -> (Rle y (Rplus (Rmult m x) c)) = (Rle (Rplus (Rmult (Rinv m) y) (Ropp (Rdiv c m))) x). +Axiom thm_REAL_AFFINITY_LT : forall m : R, forall c : R, forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) m) -> (Rlt (Rplus (Rmult m x) c) y) = (Rlt x (Rplus (Rmult (Rinv m) y) (Ropp (Rdiv c m)))). +Axiom thm_REAL_LT_AFFINITY : forall m : R, forall c : R, forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) m) -> (Rlt y (Rplus (Rmult m x) c)) = (Rlt (Rplus (Rmult (Rinv m) y) (Ropp (Rdiv c m))) x). +Axiom thm_REAL_AFFINITY_EQ : forall m : R, forall c : R, forall x : R, forall y : R, (~ (m = (R_of_N (NUMERAL 0%N)))) -> ((Rplus (Rmult m x) c) = y) = (x = (Rplus (Rmult (Rinv m) y) (Ropp (Rdiv c m)))). +Axiom thm_REAL_EQ_AFFINITY : forall m : R, forall c : R, forall x : R, forall y : R, (~ (m = (R_of_N (NUMERAL 0%N)))) -> (y = (Rplus (Rmult m x) c)) = ((Rplus (Rmult (Rinv m) y) (Ropp (Rdiv c m))) = x). +Axiom thm_VECTOR_AFFINITY_EQ : forall {_802966 : Type'}, forall m : R, forall c : cart R _802966, forall x : cart R _802966, forall y : cart R _802966, (~ (m = (R_of_N (NUMERAL 0%N)))) -> ((@vector_add _802966 (@percent _802966 m x) c) = y) = (x = (@vector_add _802966 (@percent _802966 (Rinv m) y) (@vector_neg _802966 (@percent _802966 (Rinv m) c)))). +Axiom thm_VECTOR_EQ_AFFINITY : forall {_803036 : Type'}, forall m : R, forall c : cart R _803036, forall x : cart R _803036, forall y : cart R _803036, (~ (m = (R_of_N (NUMERAL 0%N)))) -> (y = (@vector_add _803036 (@percent _803036 m x) c)) = ((@vector_add _803036 (@percent _803036 (Rinv m) y) (@vector_neg _803036 (@percent _803036 (Rinv m) c))) = x). +Axiom thm_IMAGE_AFFINITY_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall m : R, forall c : cart R N', (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@COND ((cart R N') -> Prop) ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))) (@EMPTY (cart R N')) (@COND ((cart R N') -> Prop) (Rle (R_of_N (NUMERAL 0%N)) m) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vector_add N' (@percent N' m a) c) (@vector_add N' (@percent N' m b) c)) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vector_add N' (@percent N' m b) c) (@vector_add N' (@percent N' m a) c)) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_LIM_LIFT_DET : forall {A N' : Type'}, forall A' : A -> cart (cart R N') N', forall B : cart (cart R N') N', forall net' : net A, (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> @FImp unit A (fun x : A => lift (@dollar R N' (@dollar (cart R N') N' (A' x) i) j)) (lift (@dollar R N' (@dollar (cart R N') N' B i) j)) net') -> @FImp unit A (fun x : A => lift (@det N' (A' x))) (lift (@det N' B)) net'. +Axiom thm_LIM_COFACTOR : forall {A N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R N') N', forall B : cart (cart R N') N', (forall x : cart R N', @FImp N' A (fun a : A => @matrix_vector_mul N' N' (A' a) x) (@matrix_vector_mul N' N' B x) net') -> forall x : cart R N', @FImp N' A (fun a : A => @matrix_vector_mul N' N' (@cofactor N' (A' a)) x) (@matrix_vector_mul N' N' (@cofactor N' B) x) net'. +Axiom thm_LIM_MATRIX_TRANSP : forall {A M N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R M) N', forall B : cart (cart R M) N', (forall x : cart R N', @FImp M A (fun a : A => @matrix_vector_mul M N' (@transp N' M (A' a)) x) (@matrix_vector_mul M N' (@transp N' M B) x) net') = (forall x : cart R M, @FImp N' A (fun a : A => @matrix_vector_mul N' M (A' a) x) (@matrix_vector_mul N' M B x) net'). +Axiom thm_LIM_MATRIX_INV : forall {A N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R N') N', forall B : cart (cart R N') N', ((forall x : cart R N', @FImp N' A (fun a : A => @matrix_vector_mul N' N' (A' a) x) (@matrix_vector_mul N' N' B x) net') /\ (~ ((@det N' B) = (R_of_N (NUMERAL 0%N))))) -> forall x : cart R N', @FImp N' A (fun a : A => @matrix_vector_mul N' N' (@matrix_inv N' N' (A' a)) x) (@matrix_vector_mul N' N' (@matrix_inv N' N' B) x) net'. +Axiom thm_CONTINUOUS_LIFT_DET : forall {A N' : Type'}, forall A' : A -> cart (cart R N') N', forall net' : net A, (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> @continuous unit A (fun x : A => lift (@dollar R N' (@dollar (cart R N') N' (A' x) i) j)) net') -> @continuous unit A (fun x : A => lift (@det N' (A' x))) net'. +Axiom thm_CONTINUOUS_ON_LIFT_DET : forall {M N' : Type'}, forall A : (cart R M) -> cart (cart R N') N', forall s : (cart R M) -> Prop, (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> @continuous_on M unit (fun x : cart R M => lift (@dollar R N' (@dollar (cart R N') N' (A x) i) j)) s) -> @continuous_on M unit (fun x : cart R M => lift (@det N' (A x))) s. +Axiom thm_CONTINUOUS_DET_VECTORIZE : forall {A N' : Type'}, forall net' : net A, forall A' : A -> cart (cart R N') N', (@continuous (finite_prod N' N') A (fun a : A => @vectorize R N' N' (A' a)) net') -> @continuous unit A (fun a : A => lift (@det N' (A' a))) net'. +Axiom thm_CONTINUOUS_ON_DET_VECTORIZE : forall {M N' : Type'} (s : (cart R M) -> Prop), forall A : (cart R M) -> cart (cart R N') N', (@continuous_on M (finite_prod N' N') (fun a : cart R M => @vectorize R N' N' (A a)) s) -> @continuous_on M unit (fun a : cart R M => lift (@det N' (A a))) s. +Axiom thm_CONTINUOUS_DET_EXPLICIT : forall {N' : Type'}, forall A : cart (cart R N') N', forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall A' : cart (cart R N') N', (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> Rlt (Rabs (Rminus (@dollar R N' (@dollar (cart R N') N' A' i) j) (@dollar R N' (@dollar (cart R N') N' A i) j))) d) -> Rlt (Rabs (Rminus (@det N' A') (@det N' A))) e). +Axiom thm_NEARBY_INVERTIBLE_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x : R, ((~ (x = (R_of_N (NUMERAL 0%N)))) /\ (Rlt (Rabs x) e)) -> @invertible N' N' (@matrix_add N' N' A (@__ N' N' x (@mat N' N' (NUMERAL (BIT1 0%N)))))). +Axiom thm_NEARBY_INVERTIBLE_MATRIX_GEN : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', (@invertible N' N' B) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x : R, ((~ (x = (R_of_N (NUMERAL 0%N)))) /\ (Rlt (Rabs x) e)) -> @invertible N' N' (@matrix_add N' N' A (@__ N' N' x B))). +Axiom thm_MATRIX_WLOG_INVERTIBLE : forall {N' : Type'}, forall P : (cart (cart R N') N') -> Prop, ((forall A : cart (cart R N') N', (@invertible N' N' A) -> P A) /\ (forall A : cart (cart R N') N', exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (@closed unit (@GSPEC (cart R unit) (fun GEN_PVAR_3287 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3287 ((@IN (cart R unit) x (@cball unit (@pair (cart R unit) R (@vec unit (NUMERAL 0%N)) d))) /\ (P (@matrix_add N' N' A (@__ N' N' (drop x) (@mat N' N' (NUMERAL (BIT1 0%N))))))) x))))) -> forall A : cart (cart R N') N', P A. +Axiom thm_SYLVESTER_DETERMINANT_IDENTITY : forall {M N' : Type'}, forall A : cart (cart R N') M, forall B : cart (cart R M) N', (@det M (@matrix_add M M (@mat M M (NUMERAL (BIT1 0%N))) (@matrix_mul M N' M A B))) = (@det N' (@matrix_add N' N' (@mat N' N' (NUMERAL (BIT1 0%N))) (@matrix_mul N' M N' B A))). +Axiom thm_COFACTOR_MATRIX_MUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', (@cofactor N' (@matrix_mul N' N' N' A B)) = (@matrix_mul N' N' N' (@cofactor N' A) (@cofactor N' B)). +Axiom thm_DET_COFACTOR : forall {N' : Type'}, forall A : cart (cart R N') N', (@det N' (@cofactor N' A)) = (real_pow (@det N' A) (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))). +Axiom thm_INVERTIBLE_COFACTOR : forall {N' : Type'}, forall A : cart (cart R N') N', (@invertible N' N' (@cofactor N' A)) = (((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) \/ (@invertible N' N' A)). +Axiom thm_COFACTOR_COFACTOR : forall {N' : Type'}, forall A : cart (cart R N') N', (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> (@cofactor N' (@cofactor N' A)) = (@__ N' N' (real_pow (@det N' A) (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT0 (BIT1 0%N))))) A). +Axiom thm_RANK_COFACTOR_EQ_FULL : forall {N' : Type'}, forall A : cart (cart R N') N', ((@rank N' N' (@cofactor N' A)) = (@dimindex N' (@UNIV N'))) = (((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) \/ ((@rank N' N' A) = (@dimindex N' (@UNIV N')))). +Axiom thm_COFACTOR_EQ_0 : forall {N' : Type'}, forall A : cart (cart R N') N', ((@cofactor N' A) = (@mat N' N' (NUMERAL 0%N))) = (N.lt (@rank N' N' A) (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))). +Axiom thm_RANK_COFACTOR_EQ_1 : forall {N' : Type'}, forall A : cart (cart R N') N', ((@rank N' N' (@cofactor N' A)) = (NUMERAL (BIT1 0%N))) = (((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) \/ ((@rank N' N' A) = (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N))))). +Axiom thm_RANK_COFACTOR : forall {N' : Type'}, forall A : cart (cart R N') N', (@rank N' N' (@cofactor N' A)) = (@COND N ((@rank N' N' A) = (@dimindex N' (@UNIV N'))) (@dimindex N' (@UNIV N')) (@COND N ((@rank N' N' A) = (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) (NUMERAL (BIT1 0%N)) (NUMERAL 0%N))). +Axiom thm_SAME_EIGENVALUES_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', forall c : R, (exists v : cart R N', (~ (v = (@vec N' (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' N' (@transp N' N' A) v) = (@percent N' c v))) = (exists v : cart R N', (~ (v = (@vec N' (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' N' A v) = (@percent N' c v))). +Axiom thm_SAME_EIGENVALUES_SIMILAR : forall {N' : Type'}, forall S' : cart (cart R N') N', forall A : cart (cart R N') N', forall c : R, (@invertible N' N' S') -> (exists v : cart R N', (~ (v = (@vec N' (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' N' (@matrix_mul N' N' N' (@matrix_inv N' N' S') (@matrix_mul N' N' N' A S')) v) = (@percent N' c v))) = (exists v : cart R N', (~ (v = (@vec N' (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' N' A v) = (@percent N' c v))). +Axiom thm_SAME_EIGENVALUES_MATRIX_MUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', forall c : R, (exists v : cart R N', (~ (v = (@vec N' (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' N' (@matrix_mul N' N' N' A B) v) = (@percent N' c v))) = (exists v : cart R N', (~ (v = (@vec N' (NUMERAL 0%N)))) /\ ((@matrix_vector_mul N' N' (@matrix_mul N' N' N' B A) v) = (@percent N' c v))). +Axiom thm_SAME_EIGENVECTORS_MATRIX_INV : forall {N' : Type'}, forall A : cart (cart R N') N', forall c : R, forall v : cart R N', (@symmetric_matrix N' A) -> ((@matrix_vector_mul N' N' (@matrix_inv N' N' A) v) = (@percent N' c v)) = ((@matrix_vector_mul N' N' A v) = (@percent N' (Rinv c) v)). +Axiom thm_NORMAL_MATRIX_SAME_EIGENPAIRS_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@normal_matrix N' A) -> forall c : R, forall v : cart R N', ((@matrix_vector_mul N' N' (@transp N' N' A) v) = (@percent N' c v)) = ((@matrix_vector_mul N' N' A v) = (@percent N' c v)). +Axiom thm_NORMAL_MATRIX_SAME_EIGENVECTORS_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@normal_matrix N' A) -> forall v : cart R N', (exists c : R, (@matrix_vector_mul N' N' (@transp N' N' A) v) = (@percent N' c v)) = (exists c : R, (@matrix_vector_mul N' N' A v) = (@percent N' c v)). +Axiom thm_DET_OPEN_MAP : forall {N' : Type'}, forall A : cart (cart R N') N', forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> (exists B : cart (cart R N') N', (forall i : N, forall j : N, Rlt (Rabs (Rminus (@dollar R N' (@dollar (cart R N') N' B i) j) (@dollar R N' (@dollar (cart R N') N' A i) j))) e) /\ (Rlt (@det N' B) (@det N' A))) /\ (exists C : cart (cart R N') N', (forall i : N, forall j : N, Rlt (Rabs (Rminus (@dollar R N' (@dollar (cart R N') N' C i) j) (@dollar R N' (@dollar (cart R N') N' A i) j))) e) /\ (Rgt (@det N' C) (@det N' A))). +Axiom thm_SELF_ADJOINT_HAS_EIGENVECTOR_IN_SUBSPACE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (((@adjoint N' N' f) = f) /\ ((@subspace N' s) /\ ((~ (s = (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N'))))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @IN (cart R N') (f x) s))))) -> exists v : cart R N', exists c : R, (@IN (cart R N') v s) /\ (((@vector_norm N' v) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((f v) = (@percent N' c v))). +Axiom thm_SELF_ADJOINT_HAS_EIGENVECTOR : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@linear N' N' f) /\ ((@adjoint N' N' f) = f)) -> exists v : cart R N', exists c : R, ((@vector_norm N' v) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((f v) = (@percent N' c v)). +Axiom thm_SELF_ADJOINT_HAS_EIGENVECTOR_BASIS_OF_SUBSPACE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (((@adjoint N' N' f) = f) /\ ((@subspace N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @IN (cart R N') (f x) s)))) -> exists b : (cart R N') -> Prop, (@SUBSET (cart R N') b s) /\ ((@pairwise (cart R N') (@orthogonal N') b) /\ ((forall x : cart R N', (@IN (cart R N') x b) -> ((@vector_norm N' x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (exists c : R, (f x) = (@percent N' c x))) /\ ((@independent N' b) /\ (((@span N' b) = s) /\ (@HAS_SIZE (cart R N') b (@dim N' s)))))). +Axiom thm_SELF_ADJOINT_HAS_EIGENVECTOR_BASIS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@linear N' N' f) /\ ((@adjoint N' N' f) = f)) -> exists b : (cart R N') -> Prop, (@pairwise (cart R N') (@orthogonal N') b) /\ ((forall x : cart R N', (@IN (cart R N') x b) -> ((@vector_norm N' x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (exists c : R, (f x) = (@percent N' c x))) /\ ((@independent N' b) /\ (((@span N' b) = (@UNIV (cart R N'))) /\ (@HAS_SIZE (cart R N') b (@dimindex N' (@UNIV N')))))). +Axiom thm_EIGENVALUE_LOWERBOUND_DOT : forall {N' : Type'}, forall A : cart (cart R N') N', forall a : R, ((@symmetric_matrix N' A) /\ (forall c : R, forall v : cart R N', (((@matrix_vector_mul N' N' A v) = (@percent N' c v)) /\ (~ (v = (@vec N' (NUMERAL 0%N))))) -> Rle a c)) -> forall x : cart R N', Rle (Rmult a (real_pow (@vector_norm N' x) (NUMERAL (BIT0 (BIT1 0%N))))) (@dot N' x (@matrix_vector_mul N' N' A x)). +Axiom thm_EIGENVALUE_LOWERBOUND_DOT_EQ : forall {N' : Type'}, forall A : cart (cart R N') N', forall a : R, (@symmetric_matrix N' A) -> (forall c : R, forall v : cart R N', (((@matrix_vector_mul N' N' A v) = (@percent N' c v)) /\ (~ (v = (@vec N' (NUMERAL 0%N))))) -> Rle a c) = (forall x : cart R N', Rle (Rmult a (real_pow (@vector_norm N' x) (NUMERAL (BIT0 (BIT1 0%N))))) (@dot N' x (@matrix_vector_mul N' N' A x))). +Axiom thm_SYMMETRIC_MATRIX_DIAGONALIZABLE_EXPLICIT : forall {N' : Type'}, forall A : cart (cart R N') N', (@symmetric_matrix N' A) -> exists P : cart (cart R N') N', exists d : N -> R, (@orthogonal_matrix N' P) /\ ((@matrix_mul N' N' N' (@transp N' N' P) (@matrix_mul N' N' N' A P)) = (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @COND R (i = j) (d i) (R_of_N (NUMERAL 0%N)))))). +Axiom thm_SYMMETRIC_MATRIX_IMP_DIAGONALIZABLE : forall {N' : Type'}, forall A : cart (cart R N') N', (@symmetric_matrix N' A) -> exists P : cart (cart R N') N', (@orthogonal_matrix N' P) /\ (@diagonal_matrix N' N' (@matrix_mul N' N' N' (@transp N' N' P) (@matrix_mul N' N' N' A P))). +Axiom thm_SYMMETRIC_MATRIX_EQ_DIAGONALIZABLE : forall {N' : Type'}, forall A : cart (cart R N') N', (@symmetric_matrix N' A) = (exists P : cart (cart R N') N', (@orthogonal_matrix N' P) /\ (@diagonal_matrix N' N' (@matrix_mul N' N' N' (@transp N' N' P) (@matrix_mul N' N' N' A P)))). +Axiom thm_SYMMETRIC_MATRIX_EQ_DIAGONALIZABLE_ALT : forall {N' : Type'}, forall A : cart (cart R N') N', (@symmetric_matrix N' A) = (exists P : cart (cart R N') N', exists D : cart (cart R N') N', (@orthogonal_matrix N' P) /\ ((@diagonal_matrix N' N' D) /\ (A = (@matrix_mul N' N' N' (@transp N' N' P) (@matrix_mul N' N' N' D P))))). +Axiom thm_TRACE_MATRIX_INV_LMUL : forall {M N' : Type'}, forall A : cart (cart R N') M, (@trace N' (@matrix_mul N' M N' (@matrix_inv N' M A) A)) = (R_of_N (@rank N' M A)). +Axiom thm_TRACE_MATRIX_INV_RMUL : forall {M N' : Type'}, forall A : cart (cart R N') M, (@trace M (@matrix_mul M N' M A (@matrix_inv N' M A))) = (R_of_N (@rank N' M A)). +Axiom thm_IDEMPOTENT_MATRIX_TRACE_EQ_RANK : forall {N' : Type'}, forall A : cart (cart R N') N', ((@matrix_mul N' N' N' A A) = A) -> (@trace N' A) = (R_of_N (@rank N' N' A)). +Axiom thm_POSITIVE_SEMIDEFINITE_EIGENVALUES : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) = ((@symmetric_matrix N' A) /\ (forall c : R, forall v : cart R N', (((@matrix_vector_mul N' N' A v) = (@percent N' c v)) /\ (~ (v = (@vec N' (NUMERAL 0%N))))) -> Rle (R_of_N (NUMERAL 0%N)) c)). +Axiom thm_POSITIVE_DEFINITE_EIGENVALUES : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) = ((@symmetric_matrix N' A) /\ (forall c : R, forall v : cart R N', (((@matrix_vector_mul N' N' A v) = (@percent N' c v)) /\ (~ (v = (@vec N' (NUMERAL 0%N))))) -> Rlt (R_of_N (NUMERAL 0%N)) c)). +Axiom thm_POSITIVE_SEMIDEFINITE_COVARIANCE_EQ_ALT : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) = (exists S' : cart (cart R N') N', (@positive_semidefinite N' S') /\ (A = (@matrix_mul N' N' N' (@transp N' N' S') S'))). +Axiom thm_POSITIVE_SEMIDEFINITE_COVARIANCE_EQ : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) = (exists S' : cart (cart R N') N', A = (@matrix_mul N' N' N' (@transp N' N' S') S')). +Axiom thm_POSITIVE_SEMIDEFINITE_SQRT_EQ : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) = (exists S' : cart (cart R N') N', (@positive_semidefinite N' S') /\ (A = (@matrix_mul N' N' N' S' S'))). +Axiom thm_POSITIVE_SEMIDEFINITE_SQRT : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) -> exists S' : cart (cart R N') N', A = (@matrix_mul N' N' N' S' S'). +Axiom thm_POSITIVE_DEFINITE_COVARIANCE_EQ : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) = (exists S' : cart (cart R N') N', (@invertible N' N' S') /\ ((@matrix_mul N' N' N' (@transp N' N' S') S') = A)). +Axiom thm_POSITIVE_DEFINITE_COVARIANCE_EQ_ALT : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) = (exists S' : cart (cart R N') N', (@positive_definite N' S') /\ ((@matrix_mul N' N' N' (@transp N' N' S') S') = A)). +Axiom thm_DET_POSITIVE_SEMIDEFINITE : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) -> Rle (R_of_N (NUMERAL 0%N)) (@det N' A). +Axiom thm_DET_POSITIVE_DEFINITE : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) -> Rlt (R_of_N (NUMERAL 0%N)) (@det N' A). +Axiom thm_POSITIVE_SEMIDEFINITE_DIAGONAL_INEQUALITY : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, forall j : N, ((@positive_semidefinite N' A) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N'))))))) -> Rle (real_pow (@dollar R N' (@dollar (cart R N') N' A i) j) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R N' (@dollar (cart R N') N' A i) i) (@dollar R N' (@dollar (cart R N') N' A j) j)). +Axiom thm_TRACE_COVARIANCE_POSITIVE_SEMIDEFINITE_LE : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) -> Rle (@trace N' (@matrix_mul N' N' N' (@transp N' N' A) A)) (real_pow (@trace N' A) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_TRACE_SQUARE_POSITIVE_SEMIDEFINITE_LE : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) -> Rle (@trace N' (@matrix_mul N' N' N' A A)) (real_pow (@trace N' A) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_TRACE_MUL_POSITIVE_SEMIDEFINITE_LE : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_semidefinite N' A) /\ (@positive_semidefinite N' B)) -> Rle (@trace N' (@matrix_mul N' N' N' A B)) (Rmult (@trace N' A) (@trace N' B)). +Axiom thm_POSITIVE_SEMIDEFINITE_ZERO_ROW : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, ((@positive_semidefinite N' A) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((@dollar R N' (@dollar (cart R N') N' A i) i) = (R_of_N (NUMERAL 0%N)))))) -> (@row N' N' i A) = (@vec N' (NUMERAL 0%N)). +Axiom thm_POSITIVE_SEMIDEFINITE_ZERO_COLUMN : forall {N' : Type'}, forall A : cart (cart R N') N', forall i : N, ((@positive_semidefinite N' A) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((@dollar R N' (@dollar (cart R N') N' A i) i) = (R_of_N (NUMERAL 0%N)))))) -> (@column N' N' i A) = (@vec N' (NUMERAL 0%N)). +Axiom thm_POSITIVE_SEMIDEFINITE_TRACE_EQ_0 : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) -> ((@trace N' A) = (R_of_N (NUMERAL 0%N))) = (A = (@mat N' N' (NUMERAL 0%N))). +Axiom thm_COVARIANCE_MATRIX_EQ_SQUARE : forall {N' : Type'}, forall A : cart (cart R N') N', ((@matrix_mul N' N' N' (@transp N' N' A) A) = (@matrix_mul N' N' N' A A)) = (@symmetric_matrix N' A). +Axiom thm_TRACE_MUL_POSITIVE_SEMIDEFINITE_EQ_0 : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_semidefinite N' A) /\ (@positive_semidefinite N' B)) -> ((@trace N' (@matrix_mul N' N' N' A B)) = (R_of_N (NUMERAL 0%N))) = ((@matrix_mul N' N' N' A B) = (@mat N' N' (NUMERAL 0%N))). +Axiom thm_TRACE_MUL_POSITIVE_SEMIDEFINITE : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_semidefinite N' A) /\ (@positive_semidefinite N' B)) -> Rle (R_of_N (NUMERAL 0%N)) (@trace N' (@matrix_mul N' N' N' A B)). +Axiom thm_TRACE_MUL_POSITIVE_SEMIDEFINITE_DEFINITE_EQ_0 : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_semidefinite N' A) /\ (@positive_definite N' B)) -> ((@trace N' (@matrix_mul N' N' N' A B)) = (R_of_N (NUMERAL 0%N))) = (A = (@mat N' N' (NUMERAL 0%N))). +Axiom thm_TRACE_MUL_POSITIVE_DEFINITE_SEMIDEFINITE_EQ_0 : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_definite N' A) /\ (@positive_semidefinite N' B)) -> ((@trace N' (@matrix_mul N' N' N' A B)) = (R_of_N (NUMERAL 0%N))) = (B = (@mat N' N' (NUMERAL 0%N))). +Axiom thm_POSITIVE_SEMIDEFINITE_AND_ORTHOGONAL : forall {N' : Type'}, forall A : cart (cart R N') N', ((@positive_semidefinite N' A) /\ (@orthogonal_matrix N' A)) -> A = (@mat N' N' (NUMERAL (BIT1 0%N))). +Axiom thm_POSITIVE_SEMIDEFINITE_INV : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' (@matrix_inv N' N' A)) = (@positive_semidefinite N' A). +Axiom thm_POSITIVE_DEFINITE_INV : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' (@matrix_inv N' N' A)) = (@positive_definite N' A). +Axiom thm_POSITIVE_DEFINITE_COFACTOR : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) -> @positive_definite N' (@cofactor N' A). +Axiom thm_POSITIVE_SEMIDEFINITE_COFACTOR : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) -> @positive_semidefinite N' (@cofactor N' A). +Axiom thm_POSITIVE_DEFINITE_COFACTOR_EQ : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) = ((@positive_definite N' (@cofactor N' A)) /\ (Rlt (R_of_N (NUMERAL 0%N)) (@det N' A))). +Axiom thm_POSITIVE_SEMIDEFINITE_COVARIANCE_UNIQUE : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) = (@ex1 (cart (cart R N') N') (fun S' : cart (cart R N') N' => (@positive_semidefinite N' S') /\ (A = (@matrix_mul N' N' N' (@transp N' N' S') S')))). +Axiom thm_POSITIVE_SEMIDEFINITE_SQRT_UNIQUE : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) = (@ex1 (cart (cart R N') N') (fun S' : cart (cart R N') N' => (@positive_semidefinite N' S') /\ (A = (@matrix_mul N' N' N' S' S')))). +Axiom thm_POSITIVE_SEMIDEFINITE_MUL_EQ : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_semidefinite N' A) /\ (@positive_semidefinite N' B)) -> (@positive_semidefinite N' (@matrix_mul N' N' N' A B)) = ((@matrix_mul N' N' N' A B) = (@matrix_mul N' N' N' B A)). +Axiom thm_POSITIVE_SEMIDEFINITE_MUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_semidefinite N' A) /\ ((@positive_semidefinite N' B) /\ ((@matrix_mul N' N' N' A B) = (@matrix_mul N' N' N' B A)))) -> @positive_semidefinite N' (@matrix_mul N' N' N' A B). +Axiom thm_POSITIVE_DEFINITE_MUL_EQ : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_definite N' A) /\ (@positive_definite N' B)) -> (@positive_definite N' (@matrix_mul N' N' N' A B)) = ((@matrix_mul N' N' N' A B) = (@matrix_mul N' N' N' B A)). +Axiom thm_POSITIVE_DEFINITE_MUL : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_definite N' A) /\ ((@positive_definite N' B) /\ ((@matrix_mul N' N' N' A B) = (@matrix_mul N' N' N' B A)))) -> @positive_definite N' (@matrix_mul N' N' N' A B). +Axiom thm_COMMUTING_WITH_SQUARE_ROOT_MATRIX : forall {N' : Type'}, forall A : cart (cart R N') N', forall S' : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_semidefinite N' S') /\ (((@matrix_mul N' N' N' S' S') = A) /\ ((@matrix_mul N' N' N' A B) = (@matrix_mul N' N' N' B A)))) -> (@matrix_mul N' N' N' S' B) = (@matrix_mul N' N' N' B S'). +Axiom thm_POSITIVE_SEMIDEFINITE_MUL_EIGENVALUES : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_semidefinite N' A) /\ (@positive_semidefinite N' B)) -> forall c : R, forall v : cart R N', (((@matrix_vector_mul N' N' (@matrix_mul N' N' N' A B) v) = (@percent N' c v)) /\ (~ (v = (@vec N' (NUMERAL 0%N))))) -> Rle (R_of_N (NUMERAL 0%N)) c. +Axiom thm_POSITIVE_SEMIDEFINITE_2_DET : forall A : cart (cart R (tybit0 unit)) (tybit0 unit), (@positive_semidefinite (tybit0 unit) A) = ((@symmetric_matrix (tybit0 unit) A) /\ ((Rle (R_of_N (NUMERAL 0%N)) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N)))) /\ ((Rle (R_of_N (NUMERAL 0%N)) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) /\ (Rle (R_of_N (NUMERAL 0%N)) (@det (tybit0 unit) A))))). +Axiom thm_POSITIVE_SEMIDEFINITE_2 : forall A : cart (cart R (tybit0 unit)) (tybit0 unit), (@positive_semidefinite (tybit0 unit) A) = (((@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) = (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((Rle (R_of_N (NUMERAL 0%N)) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N)))) /\ ((Rle (R_of_N (NUMERAL 0%N)) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) /\ (Rle (real_pow (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_POSITIVE_DEFINITE_2_DET : forall A : cart (cart R (tybit0 unit)) (tybit0 unit), (@positive_definite (tybit0 unit) A) = ((@symmetric_matrix (tybit0 unit) A) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N)))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) /\ (Rlt (R_of_N (NUMERAL 0%N)) (@det (tybit0 unit) A))))). +Axiom thm_POSITIVE_DEFINITE_2 : forall A : cart (cart R (tybit0 unit)) (tybit0 unit), (@positive_definite (tybit0 unit) A) = (((@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) = (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N)))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) /\ (Rlt (real_pow (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) A (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_REAL_LE_NORM_MATRIX_MUL_DET : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', (forall x : cart R N', Rle (@vector_norm N' (@matrix_vector_mul N' N' A x)) (@vector_norm N' (@matrix_vector_mul N' N' B x))) -> Rle (Rabs (@det N' A)) (Rabs (@det N' B)). +Axiom thm_DET_LE_ONORM_POW : forall {N' : Type'}, forall A : cart (cart R N') N', Rle (Rabs (@det N' A)) (real_pow (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)) (@dimindex N' (@UNIV N'))). +Axiom thm_ONORM_INVERSE_DET_LE_ONORM_POW : forall {N' : Type'}, forall A : cart (cart R N') N', (@invertible N' N' A) -> Rle (Rmult (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' (@matrix_inv N' N' A) x)) (@det N' A)) (real_pow (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' A x)) (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))). +Axiom thm_ONORM_INVERSE_DET_LE_ONORM_POW_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@linear N' N' f) /\ ((@linear N' N' g) /\ ((@o (cart R N') (cart R N') (cart R N') f g) = (@I (cart R N'))))) -> Rle (Rmult (@onorm N' N' f) (@det N' (@matrix N' N' g))) (real_pow (@onorm N' N' g) (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))). +Axiom thm_HADAMARD_INEQUALITY_PSD : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_semidefinite N' A) -> Rle (@det N' A) (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' (@dollar (cart R N') N' A i) i)). +Axiom thm_POSITIVE_DEFINITE_NEARBY : forall {N' : Type'}, forall A : cart (cart R N') N', (@positive_definite N' A) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall B : cart (cart R N') N', ((@symmetric_matrix N' B) /\ (Rlt (@onorm N' N' (fun x : cart R N' => @matrix_vector_mul N' N' (@matrix_sub N' N' B A) x)) e)) -> @positive_definite N' B). +Axiom thm_POSITIVE_DEFINITE_EVENTUALLY : forall {N' : Type'}, forall A : cart (cart R N') N', (@symmetric_matrix N' A) -> exists a : R, forall x : R, (Rle a x) -> @positive_definite N' (@matrix_add N' N' A (@__ N' N' x (@mat N' N' (NUMERAL (BIT1 0%N))))). +Axiom thm_POSITIVE_DEFINITE_HADAMARD_PRODUCT : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_definite N' A) /\ (@positive_definite N' B)) -> @positive_definite N' (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => Rmult (@dollar R N' (@dollar (cart R N') N' A i) j) (@dollar R N' (@dollar (cart R N') N' B i) j)))). +Axiom thm_POSITIVE_SEMIDEFINITE_HADAMARD_PRODUCT : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@positive_semidefinite N' A) /\ (@positive_semidefinite N' B)) -> @positive_semidefinite N' (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => Rmult (@dollar R N' (@dollar (cart R N') N' A i) j) (@dollar R N' (@dollar (cart R N') N' B i) j)))). +Axiom thm_RIGHT_POLAR_DECOMPOSITION : forall {N' : Type'}, forall A : cart (cart R N') N', exists U : cart (cart R N') N', exists P : cart (cart R N') N', (@orthogonal_matrix N' U) /\ ((@positive_semidefinite N' P) /\ ((@matrix_mul N' N' N' U P) = A)). +Axiom thm_LEFT_POLAR_DECOMPOSITION : forall {N' : Type'}, forall A : cart (cart R N') N', exists U : cart (cart R N') N', exists P : cart (cart R N') N', (@orthogonal_matrix N' U) /\ ((@positive_semidefinite N' P) /\ ((@matrix_mul N' N' N' P U) = A)). +Axiom thm_RIGHT_POLAR_DECOMPOSITION_INVERTIBLE : forall {N' : Type'}, forall A : cart (cart R N') N', (@invertible N' N' A) = (exists U : cart (cart R N') N', exists P : cart (cart R N') N', (@orthogonal_matrix N' U) /\ ((@positive_definite N' P) /\ ((@matrix_mul N' N' N' U P) = A))). +Axiom thm_LEFT_POLAR_DECOMPOSITION_INVERTIBLE : forall {N' : Type'}, forall A : cart (cart R N') N', (@invertible N' N' A) = (exists U : cart (cart R N') N', exists P : cart (cart R N') N', (@orthogonal_matrix N' U) /\ ((@positive_definite N' P) /\ ((@matrix_mul N' N' N' P U) = A))). +Axiom thm_NORMAL_RIGHT_POLAR_DECOMPOSITION : forall {N' : Type'}, forall A : cart (cart R N') N', forall U : cart (cart R N') N', forall P : cart (cart R N') N', ((@orthogonal_matrix N' U) /\ ((@positive_semidefinite N' P) /\ ((@matrix_mul N' N' N' U P) = A))) -> (@normal_matrix N' A) = ((@matrix_mul N' N' N' P U) = (@matrix_mul N' N' N' U P)). +Axiom thm_NORMAL_LEFT_POLAR_DECOMPOSITION : forall {N' : Type'}, forall A : cart (cart R N') N', forall U : cart (cart R N') N', forall P : cart (cart R N') N', ((@orthogonal_matrix N' U) /\ ((@positive_semidefinite N' P) /\ ((@matrix_mul N' N' N' P U) = A))) -> (@normal_matrix N' A) = ((@matrix_mul N' N' N' P U) = (@matrix_mul N' N' N' U P)). +Axiom thm_NORMAL_BIPOLAR_DECOMPOSITION : forall {N' : Type'}, forall A : cart (cart R N') N', (@normal_matrix N' A) = (exists U : cart (cart R N') N', exists P : cart (cart R N') N', (@orthogonal_matrix N' U) /\ ((@positive_semidefinite N' P) /\ (((@matrix_mul N' N' N' U P) = A) /\ ((@matrix_mul N' N' N' P U) = A)))). +Axiom thm_LEFT_POLAR_DECOMPOSITION_UNIQUE : forall {N' : Type'}, forall A : cart (cart R N') N', @ex1 (cart (cart R N') N') (fun P : cart (cart R N') N' => exists U : cart (cart R N') N', (@orthogonal_matrix N' U) /\ ((@positive_semidefinite N' P) /\ ((@matrix_mul N' N' N' P U) = A))). +Axiom thm_RIGHT_POLAR_DECOMPOSITION_UNIQUE : forall {N' : Type'}, forall A : cart (cart R N') N', @ex1 (cart (cart R N') N') (fun P : cart (cart R N') N' => exists U : cart (cart R N') N', (@orthogonal_matrix N' U) /\ ((@positive_semidefinite N' P) /\ ((@matrix_mul N' N' N' U P) = A))). +Axiom thm_LEFT_POLAR_DECOMPOSITION_INVERTIBLE_UNIQUE : forall {N' : Type'}, forall A : cart (cart R N') N', forall U : cart (cart R N') N', forall V : cart (cart R N') N', forall P : cart (cart R N') N', forall S' : cart (cart R N') N', ((@invertible N' N' A) /\ ((@orthogonal_matrix N' U) /\ ((@positive_semidefinite N' P) /\ ((@orthogonal_matrix N' V) /\ ((@positive_semidefinite N' S') /\ (((@matrix_mul N' N' N' P U) = A) /\ ((@matrix_mul N' N' N' S' V) = A))))))) -> (P = S') /\ (U = V). +Axiom thm_RIGHT_POLAR_DECOMPOSITION_INVERTIBLE_UNIQUE : forall {N' : Type'}, forall A : cart (cart R N') N', forall U : cart (cart R N') N', forall V : cart (cart R N') N', forall P : cart (cart R N') N', forall S' : cart (cart R N') N', ((@invertible N' N' A) /\ ((@orthogonal_matrix N' U) /\ ((@positive_semidefinite N' P) /\ ((@orthogonal_matrix N' V) /\ ((@positive_semidefinite N' S') /\ (((@matrix_mul N' N' N' U P) = A) /\ ((@matrix_mul N' N' N' V S') = A))))))) -> (P = S') /\ (U = V). +Axiom thm_COVARIANCE_UNIQUE_UP_TO_ORTHOGONAL : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@matrix_mul N' N' N' (@transp N' N' A) A) = (@matrix_mul N' N' N' (@transp N' N' B) B)) = (exists U : cart (cart R N') N', (@orthogonal_matrix N' U) /\ ((@matrix_mul N' N' N' U A) = B)). +Axiom thm_COVARIANCE_UNIQUE_UP_TO_ORTHOGONAL_ALT : forall {N' : Type'}, forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((@matrix_mul N' N' N' A (@transp N' N' A)) = (@matrix_mul N' N' N' B (@transp N' N' B))) = (exists U : cart (cart R N') N', (@orthogonal_matrix N' U) /\ ((@matrix_mul N' N' N' A U) = B)). +Axiom thm_NORMAL_MATRIX_SIMILAR_TRANSP : forall {N' : Type'}, forall A : cart (cart R N') N', (@normal_matrix N' A) = (exists U : cart (cart R N') N', (@orthogonal_matrix N' U) /\ ((@matrix_mul N' N' N' U (@transp N' N' A)) = A)). +Axiom thm_NORMAL_MATRIX_SIMILAR_TRANSP_ALT : forall {N' : Type'}, forall A : cart (cart R N') N', (@normal_matrix N' A) = (exists U : cart (cart R N') N', (@orthogonal_matrix N' U) /\ ((@matrix_mul N' N' N' (@transp N' N' A) U) = A)). +Axiom thm_MATRIX_DIAGONALIZABLE : forall {N' : Type'}, forall A : cart (cart R N') N', exists P : cart (cart R N') N', exists D : cart (cart R N') N', exists Q : cart (cart R N') N', (@orthogonal_matrix N' P) /\ ((@diagonal_matrix N' N' D) /\ ((@orthogonal_matrix N' Q) /\ ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' D i) i)) /\ (A = (@matrix_mul N' N' N' P (@matrix_mul N' N' N' D Q)))))). +Axiom thm_sums : forall {_819656 : Type'}, forall s : N -> Prop, forall f : N -> cart R _819656, forall l : cart R _819656, (@sums _819656 f l s) = (@FImp _819656 N (fun n : N => @vsum N _819656 (@INTER N s (dotdot (NUMERAL 0%N) n)) f) l sequentially). +Axiom thm_infsum : forall {_819675 : Type'}, forall f : N -> cart R _819675, forall s : N -> Prop, (@infsum _819675 s f) = (@ε (cart R _819675) (fun l : cart R _819675 => @sums _819675 f l s)). +Axiom thm_summable : forall {_819689 : Type'}, forall f : N -> cart R _819689, forall s : N -> Prop, (@summable _819689 s f) = (exists l : cart R _819689, @sums _819689 f l s). +Axiom thm_SUMS_SUMMABLE : forall {_819708 : Type'}, forall f : N -> cart R _819708, forall l : cart R _819708, forall s : N -> Prop, (@sums _819708 f l s) -> @summable _819708 s f. +Axiom thm_SUMS_INFSUM : forall {_819729 : Type'}, forall f : N -> cart R _819729, forall s : N -> Prop, (@sums _819729 f (@infsum _819729 s f) s) = (@summable _819729 s f). +Axiom thm_SUMS_LIM : forall {N' : Type'}, forall f : N -> cart R N', forall s : N -> Prop, (@sums N' f (@lim N' N sequentially (fun n : N => @vsum N N' (@INTER N s (dotdot (NUMERAL 0%N) n)) f)) s) = (@summable N' s f). +Axiom thm_SERIES_FROM : forall {_819785 : Type'}, forall f : N -> cart R _819785, forall l : cart R _819785, forall k : N, (@sums _819785 f l (from k)) = (@FImp _819785 N (fun n : N => @vsum N _819785 (dotdot k n) f) l sequentially). +Axiom thm_SERIES_UNIQUE : forall {N' : Type'}, forall f : N -> cart R N', forall l : cart R N', forall l' : cart R N', forall s : N -> Prop, ((@sums N' f l s) /\ (@sums N' f l' s)) -> l = l'. +Axiom thm_INFSUM_UNIQUE : forall {N' : Type'}, forall f : N -> cart R N', forall l : cart R N', forall s : N -> Prop, (@sums N' f l s) -> (@infsum N' s f) = l. +Axiom thm_SERIES_TERMS_TOZERO : forall {_819919 : Type'}, forall f : N -> cart R _819919, forall l : cart R _819919, forall n : N, (@sums _819919 f l (from n)) -> @FImp _819919 N f (@vec _819919 (NUMERAL 0%N)) sequentially. +Axiom thm_SERIES_FINITE : forall {_819965 : Type'}, forall f : N -> cart R _819965, forall s : N -> Prop, (@FINITE N s) -> @sums _819965 f (@vsum N _819965 s f) s. +Axiom thm_SERIES_FINITE_EQ : forall {N' : Type'}, forall f : N -> cart R N', forall s : N -> Prop, forall y : cart R N', (@FINITE N s) -> (@sums N' f y s) = ((@vsum N N' s f) = y). +Axiom thm_SERIES_LINEAR : forall {_820020 _820023 : Type'}, forall f : N -> cart R _820020, forall h : (cart R _820020) -> cart R _820023, forall l : cart R _820020, forall s : N -> Prop, ((@sums _820020 f l s) /\ (@linear _820020 _820023 h)) -> @sums _820023 (fun n : N => h (f n)) (h l) s. +Axiom thm_SERIES_0 : forall {_820047 : Type'}, forall s : N -> Prop, @sums _820047 (fun n : N => @vec _820047 (NUMERAL 0%N)) (@vec _820047 (NUMERAL 0%N)) s. +Axiom thm_SERIES_ADD : forall {_820100 : Type'}, forall x : N -> cart R _820100, forall x0 : cart R _820100, forall y : N -> cart R _820100, forall y0 : cart R _820100, forall s : N -> Prop, ((@sums _820100 x x0 s) /\ (@sums _820100 y y0 s)) -> @sums _820100 (fun n : N => @vector_add _820100 (x n) (y n)) (@vector_add _820100 x0 y0) s. +Axiom thm_SERIES_SUB : forall {_820159 : Type'}, forall x : N -> cart R _820159, forall x0 : cart R _820159, forall y : N -> cart R _820159, forall y0 : cart R _820159, forall s : N -> Prop, ((@sums _820159 x x0 s) /\ (@sums _820159 y y0 s)) -> @sums _820159 (fun n : N => @vector_sub _820159 (x n) (y n)) (@vector_sub _820159 x0 y0) s. +Axiom thm_SERIES_CMUL : forall {_820201 : Type'}, forall x : N -> cart R _820201, forall x0 : cart R _820201, forall c : R, forall s : N -> Prop, (@sums _820201 x x0 s) -> @sums _820201 (fun n : N => @percent _820201 c (x n)) (@percent _820201 c x0) s. +Axiom thm_SERIES_NEG : forall {_820237 : Type'}, forall x : N -> cart R _820237, forall x0 : cart R _820237, forall s : N -> Prop, (@sums _820237 x x0 s) -> @sums _820237 (fun n : N => @vector_neg _820237 (x n)) (@vector_neg _820237 x0) s. +Axiom thm_SUMS_IFF : forall {_820282 : Type'} (l : cart R _820282), forall f : N -> cart R _820282, forall g : N -> cart R _820282, forall k : N -> Prop, (forall x : N, (@IN N x k) -> (f x) = (g x)) -> (@sums _820282 f l k) = (@sums _820282 g l k). +Axiom thm_SUMS_EQ : forall {_820321 : Type'} (l : cart R _820321), forall f : N -> cart R _820321, forall g : N -> cart R _820321, forall k : N -> Prop, ((forall x : N, (@IN N x k) -> (f x) = (g x)) /\ (@sums _820321 f l k)) -> @sums _820321 g l k. +Axiom thm_SUMS_0 : forall {N' : Type'}, forall f : N -> cart R N', forall s : N -> Prop, (forall n : N, (@IN N n s) -> (f n) = (@vec N' (NUMERAL 0%N))) -> @sums N' f (@vec N' (NUMERAL 0%N)) s. +Axiom thm_SERIES_FINITE_SUPPORT : forall {N' : Type'}, forall f : N -> cart R N', forall s : N -> Prop, forall k : N -> Prop, ((@FINITE N (@INTER N s k)) /\ (forall x : N, ((@IN N x k) /\ (~ (@IN N x s))) -> (f x) = (@vec N' (NUMERAL 0%N)))) -> @sums N' f (@vsum N N' (@INTER N s k) f) k. +Axiom thm_SERIES_COMPONENT : forall {N' : Type'}, forall f : N -> cart R N', forall s : N -> Prop, forall l : cart R N', forall k : N, ((@sums N' f l s) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> @sums unit (fun i : N => lift (@dollar R N' (f i) k)) (lift (@dollar R N' l k)) s. +Axiom thm_SERIES_DIFFS : forall {N' : Type'}, forall f : N -> cart R N', forall k : N, (@FImp N' N f (@vec N' (NUMERAL 0%N)) sequentially) -> @sums N' (fun n : N => @vector_sub N' (f n) (f (N.add n (NUMERAL (BIT1 0%N))))) (f k) (from k). +Axiom thm_SERIES_TRIVIAL : forall {_820571 : Type'}, forall f : N -> cart R _820571, @sums _820571 f (@vec _820571 (NUMERAL 0%N)) (@EMPTY N). +Axiom thm_SERIES_RESTRICT : forall {N' : Type'}, forall f : N -> cart R N', forall k : N -> Prop, forall l : cart R N', (@sums N' (fun n : N => @COND (cart R N') (@IN N n k) (f n) (@vec N' (NUMERAL 0%N))) l (@UNIV N)) = (@sums N' f l k). +Axiom thm_SERIES_VSUM : forall {_820710 : Type'}, forall f : N -> cart R _820710, forall l : cart R _820710, forall k : N -> Prop, forall s : N -> Prop, ((@FINITE N s) /\ ((@SUBSET N s k) /\ ((forall x : N, (~ (@IN N x s)) -> (f x) = (@vec _820710 (NUMERAL 0%N))) /\ ((@vsum N _820710 s f) = l)))) -> @sums _820710 f l k. +Axiom thm_SUMS_REINDEX : forall {N' : Type'}, forall k : N, forall a : N -> cart R N', forall l : cart R N', forall n : N, (@sums N' (fun x : N => a (N.add x k)) l (from n)) = (@sums N' a l (from (N.add n k))). +Axiom thm_SUMS_REINDEX_GEN : forall {N' : Type'}, forall k : N, forall a : N -> cart R N', forall l : cart R N', forall s : N -> Prop, (@sums N' (fun x : N => a (N.add x k)) l s) = (@sums N' a l (@IMAGE N N (fun i : N => N.add i k) s)). +Axiom thm_SERIES_EVEN : forall {N' : Type'}, forall f : N -> cart R N', forall l : cart R N', forall n : N, (@sums N' f l (from n)) = (@sums N' (fun i : N => @COND (cart R N') (EVEN i) (f (N.div i (NUMERAL (BIT0 (BIT1 0%N))))) (@vec N' (NUMERAL 0%N))) l (from (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n))). +Axiom thm_SERIES_ODD : forall {N' : Type'}, forall f : N -> cart R N', forall l : cart R N', forall n : N, (@sums N' f l (from n)) = (@sums N' (fun i : N => @COND (cart R N') (ODD i) (f (N.div i (NUMERAL (BIT0 (BIT1 0%N))))) (@vec N' (NUMERAL 0%N))) l (from (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N))))). +Axiom thm_SERIES_PASTECART : forall {M N' : Type'}, forall f1 : N -> cart R N', forall f2 : N -> cart R M, forall l1 : cart R N', forall l2 : cart R M, forall s : N -> Prop, (@sums (finite_sum N' M) (fun x : N => @pastecart R N' M (f1 x) (f2 x)) (@pastecart R N' M l1 l2) s) = ((@sums N' f1 l1 s) /\ (@sums M f2 l2 s)). +Axiom thm_SUMMABLE_LINEAR : forall {_821346 _821349 : Type'}, forall f : N -> cart R _821346, forall h : (cart R _821346) -> cart R _821349, forall s : N -> Prop, ((@summable _821346 s f) /\ (@linear _821346 _821349 h)) -> @summable _821349 s (fun n : N => h (f n)). +Axiom thm_SUMMABLE_0 : forall {_821368 : Type'}, forall s : N -> Prop, @summable _821368 s (fun n : N => @vec _821368 (NUMERAL 0%N)). +Axiom thm_SUMMABLE_ADD : forall {_821404 : Type'}, forall x : N -> cart R _821404, forall y : N -> cart R _821404, forall s : N -> Prop, ((@summable _821404 s x) /\ (@summable _821404 s y)) -> @summable _821404 s (fun n : N => @vector_add _821404 (x n) (y n)). +Axiom thm_SUMMABLE_SUB : forall {_821443 : Type'}, forall x : N -> cart R _821443, forall y : N -> cart R _821443, forall s : N -> Prop, ((@summable _821443 s x) /\ (@summable _821443 s y)) -> @summable _821443 s (fun n : N => @vector_sub _821443 (x n) (y n)). +Axiom thm_SUMMABLE_CMUL : forall {_821464 : Type'}, forall s : N -> Prop, forall x : N -> cart R _821464, forall c : R, (@summable _821464 s x) -> @summable _821464 s (fun n : N => @percent _821464 c (x n)). +Axiom thm_SUMMABLE_NEG : forall {_821498 : Type'}, forall x : N -> cart R _821498, forall s : N -> Prop, (@summable _821498 s x) -> @summable _821498 s (fun n : N => @vector_neg _821498 (x n)). +Axiom thm_SUMMABLE_IFF : forall {_821538 : Type'}, forall f : N -> cart R _821538, forall g : N -> cart R _821538, forall k : N -> Prop, (forall x : N, (@IN N x k) -> (f x) = (g x)) -> (@summable _821538 k f) = (@summable _821538 k g). +Axiom thm_SUMMABLE_EQ : forall {_821575 : Type'}, forall f : N -> cart R _821575, forall g : N -> cart R _821575, forall k : N -> Prop, ((forall x : N, (@IN N x k) -> (f x) = (g x)) /\ (@summable _821575 k f)) -> @summable _821575 k g. +Axiom thm_SUMMABLE_FINITE : forall {N' : Type'}, forall k : N -> Prop, forall f : N -> cart R N', (@FINITE N k) -> @summable N' k f. +Axiom thm_SUMMABLE_COMPONENT : forall {N' : Type'}, forall f : N -> cart R N', forall s : N -> Prop, forall k : N, ((@summable N' s f) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> @summable unit s (fun i : N => lift (@dollar R N' (f i) k)). +Axiom thm_SERIES_SUBSET : forall {_821684 : Type'}, forall x : N -> cart R _821684, forall s : N -> Prop, forall t : N -> Prop, forall l : cart R _821684, ((@SUBSET N s t) /\ (@sums _821684 (fun i : N => @COND (cart R _821684) (@IN N i s) (x i) (@vec _821684 (NUMERAL 0%N))) l t)) -> @sums _821684 x l s. +Axiom thm_SUMMABLE_SUBSET : forall {_821722 : Type'}, forall x : N -> cart R _821722, forall s : N -> Prop, forall t : N -> Prop, ((@SUBSET N s t) /\ (@summable _821722 t (fun i : N => @COND (cart R _821722) (@IN N i s) (x i) (@vec _821722 (NUMERAL 0%N))))) -> @summable _821722 s x. +Axiom thm_SUMMABLE_TRIVIAL : forall {N' : Type'}, forall f : N -> cart R N', @summable N' (@EMPTY N) f. +Axiom thm_SUMMABLE_RESTRICT : forall {N' : Type'}, forall f : N -> cart R N', forall k : N -> Prop, (@summable N' (@UNIV N) (fun n : N => @COND (cart R N') (@IN N n k) (f n) (@vec N' (NUMERAL 0%N)))) = (@summable N' k f). +Axiom thm_SUMS_FINITE_DIFF : forall {N' : Type'}, forall f : N -> cart R N', forall t : N -> Prop, forall s : N -> Prop, forall l : cart R N', ((@SUBSET N t s) /\ ((@FINITE N t) /\ (@sums N' f l s))) -> @sums N' f (@vector_sub N' l (@vsum N N' t f)) (@DIFF N s t). +Axiom thm_SUMS_FINITE_UNION : forall {N' : Type'}, forall f : N -> cart R N', forall s : N -> Prop, forall t : N -> Prop, forall l : cart R N', ((@FINITE N t) /\ (@sums N' f l s)) -> @sums N' f (@vector_add N' l (@vsum N N' (@DIFF N t s) f)) (@UNION N s t). +Axiom thm_SUMS_OFFSET : forall {N' : Type'}, forall f : N -> cart R N', forall l : cart R N', forall m : N, forall n : N, ((@sums N' f l (from m)) /\ ((N.lt (NUMERAL 0%N) n) /\ (N.le m n))) -> @sums N' f (@vector_sub N' l (@vsum N N' (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f)) (from n). +Axiom thm_SUMS_OFFSET_REV : forall {N' : Type'}, forall f : N -> cart R N', forall l : cart R N', forall m : N, forall n : N, ((@sums N' f l (from m)) /\ ((N.lt (NUMERAL 0%N) m) /\ (N.le n m))) -> @sums N' f (@vector_add N' l (@vsum N N' (dotdot n (N.sub m (NUMERAL (BIT1 0%N)))) f)) (from n). +Axiom thm_SUMMABLE_REINDEX : forall {_822078 : Type'}, forall k : N, forall a : N -> cart R _822078, forall n : N, (@summable _822078 (from n) (fun x : N => a (N.add x k))) = (@summable _822078 (from (N.add n k)) a). +Axiom thm_SUMMABLE_EVEN : forall {N' : Type'}, forall f : N -> cart R N', forall n : N, (@summable N' (from n) f) = (@summable N' (from (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n)) (fun i : N => @COND (cart R N') (EVEN i) (f (N.div i (NUMERAL (BIT0 (BIT1 0%N))))) (@vec N' (NUMERAL 0%N)))). +Axiom thm_SUMMABLE_ODD : forall {N' : Type'}, forall f : N -> cart R N', forall n : N, (@summable N' (from n) f) = (@summable N' (from (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) (fun i : N => @COND (cart R N') (ODD i) (f (N.div i (NUMERAL (BIT0 (BIT1 0%N))))) (@vec N' (NUMERAL 0%N)))). +Axiom thm_SERIES_DROP_LE : forall f : N -> cart R unit, forall g : N -> cart R unit, forall s : N -> Prop, forall a : cart R unit, forall b : cart R unit, ((@sums unit f a s) /\ ((@sums unit g b s) /\ (forall x : N, (@IN N x s) -> Rle (drop (f x)) (drop (g x))))) -> Rle (drop a) (drop b). +Axiom thm_SERIES_DROP_POS : forall f : N -> cart R unit, forall s : N -> Prop, forall a : cart R unit, ((@sums unit f a s) /\ (forall x : N, (@IN N x s) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f x)))) -> Rle (R_of_N (NUMERAL 0%N)) (drop a). +Axiom thm_SERIES_BOUND : forall {N' : Type'}, forall f : N -> cart R N', forall g : N -> R, forall s : N -> Prop, forall a : cart R N', forall b : R, ((@sums N' f a s) /\ ((@sums unit (@o N R (cart R unit) lift g) (lift b) s) /\ (forall i : N, (@IN N i s) -> Rle (@vector_norm N' (f i)) (g i)))) -> Rle (@vector_norm N' a) b. +Axiom thm_INFSUM_LINEAR : forall {_822469 _822483 : Type'}, forall f : N -> cart R _822483, forall h : (cart R _822483) -> cart R _822469, forall s : N -> Prop, ((@summable _822483 s f) /\ (@linear _822483 _822469 h)) -> (@infsum _822469 s (fun n : N => h (f n))) = (h (@infsum _822483 s f)). +Axiom thm_INFSUM_0 : forall {_822496 : Type'} (s : N -> Prop), (@infsum _822496 s (fun i : N => @vec _822496 (NUMERAL 0%N))) = (@vec _822496 (NUMERAL 0%N)). +Axiom thm_INFSUM_ADD : forall {_822547 : Type'}, forall x : N -> cart R _822547, forall y : N -> cart R _822547, forall s : N -> Prop, ((@summable _822547 s x) /\ (@summable _822547 s y)) -> (@infsum _822547 s (fun i : N => @vector_add _822547 (x i) (y i))) = (@vector_add _822547 (@infsum _822547 s x) (@infsum _822547 s y)). +Axiom thm_INFSUM_SUB : forall {_822604 : Type'}, forall x : N -> cart R _822604, forall y : N -> cart R _822604, forall s : N -> Prop, ((@summable _822604 s x) /\ (@summable _822604 s y)) -> (@infsum _822604 s (fun i : N => @vector_sub _822604 (x i) (y i))) = (@vector_sub _822604 (@infsum _822604 s x) (@infsum _822604 s y)). +Axiom thm_INFSUM_CMUL : forall {_822646 : Type'}, forall s : N -> Prop, forall x : N -> cart R _822646, forall c : R, (@summable _822646 s x) -> (@infsum _822646 s (fun n : N => @percent _822646 c (x n))) = (@percent _822646 c (@infsum _822646 s x)). +Axiom thm_INFSUM_NEG : forall {_822682 : Type'}, forall s : N -> Prop, forall x : N -> cart R _822682, (@summable _822682 s x) -> (@infsum _822682 s (fun n : N => @vector_neg _822682 (x n))) = (@vector_neg _822682 (@infsum _822682 s x)). +Axiom thm_INFSUM_EQ : forall {_822736 : Type'}, forall f : N -> cart R _822736, forall g : N -> cart R _822736, forall k : N -> Prop, ((@summable _822736 k f) /\ ((@summable _822736 k g) /\ (forall x : N, (@IN N x k) -> (f x) = (g x)))) -> (@infsum _822736 k f) = (@infsum _822736 k g). +Axiom thm_INFSUM_RESTRICT : forall {N' : Type'}, forall k : N -> Prop, forall a : N -> cart R N', (@infsum N' (@UNIV N) (fun n : N => @COND (cart R N') (@IN N n k) (a n) (@vec N' (NUMERAL 0%N)))) = (@infsum N' k a). +Axiom thm_PARTIAL_SUMS_COMPONENT_LE_INFSUM : forall {N' : Type'}, forall f : N -> cart R N', forall s : N -> Prop, forall k : N, forall n : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((forall i : N, (@IN N i s) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (f i) k)) /\ (@summable N' s f)))) -> Rle (@dollar R N' (@vsum N N' (@INTER N s (dotdot (NUMERAL 0%N) n)) f) k) (@dollar R N' (@infsum N' s f) k). +Axiom thm_PARTIAL_SUMS_DROP_LE_INFSUM : forall f : N -> cart R unit, forall s : N -> Prop, forall n : N, ((forall i : N, (@IN N i s) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f i))) /\ (@summable unit s f)) -> Rle (drop (@vsum N unit (@INTER N s (dotdot (NUMERAL 0%N) n)) f)) (drop (@infsum unit s f)). +Axiom thm_INFSUM_EVEN : forall {N' : Type'}, forall f : N -> cart R N', forall n : N, (@infsum N' (from n) f) = (@infsum N' (from (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n)) (fun i : N => @COND (cart R N') (EVEN i) (f (N.div i (NUMERAL (BIT0 (BIT1 0%N))))) (@vec N' (NUMERAL 0%N)))). +Axiom thm_INFSUM_ODD : forall {N' : Type'}, forall f : N -> cart R N', forall n : N, (@infsum N' (from n) f) = (@infsum N' (from (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) (fun i : N => @COND (cart R N') (ODD i) (f (N.div i (NUMERAL (BIT0 (BIT1 0%N))))) (@vec N' (NUMERAL 0%N)))). +Axiom thm_SEQUENCE_CAUCHY_WLOG : forall {_823108 : Type'} (e : R), forall P : N -> Prop, forall s : N -> cart R _823108, (forall m : N, forall n : N, ((P m) /\ (P n)) -> Rlt (@distance _823108 (@pair (cart R _823108) (cart R _823108) (s m) (s n))) e) = (forall m : N, forall n : N, ((P m) /\ ((P n) /\ (N.le m n))) -> Rlt (@distance _823108 (@pair (cart R _823108) (cart R _823108) (s m) (s n))) e). +Axiom thm_VSUM_DIFF_LEMMA : forall {N' : Type'}, forall f : N -> cart R N', forall k : N -> Prop, forall m : N, forall n : N, (N.le m n) -> (@vector_sub N' (@vsum N N' (@INTER N k (dotdot (NUMERAL 0%N) n)) f) (@vsum N N' (@INTER N k (dotdot (NUMERAL 0%N) m)) f)) = (@vsum N N' (@INTER N k (dotdot (N.add m (NUMERAL (BIT1 0%N))) n)) f). +Axiom thm_NORM_VSUM_TRIVIAL_LEMMA : forall {_823294 : Type'} (P : Prop) (s : N -> Prop) (m : N) (n : N) (f : N -> cart R _823294), forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> (P -> Rlt (@vector_norm _823294 (@vsum N _823294 (@INTER N s (dotdot m n)) f)) e) = (P -> (N.lt n m) \/ (Rlt (@vector_norm _823294 (@vsum N _823294 (@INTER N s (dotdot m n)) f)) e)). +Axiom thm_SERIES_CAUCHY : forall {_823509 : Type'}, forall f : N -> cart R _823509, forall s : N -> Prop, (exists l : cart R _823509, @sums _823509 f l s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall m : N, forall n : N, (N.ge m N') -> Rlt (@vector_norm _823509 (@vsum N _823509 (@INTER N s (dotdot m n)) f)) e). +Axiom thm_SUMMABLE_CAUCHY : forall {_823567 : Type'}, forall f : N -> cart R _823567, forall s : N -> Prop, (@summable _823567 s f) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall m : N, forall n : N, (N.ge m N') -> Rlt (@vector_norm _823567 (@vsum N _823567 (@INTER N s (dotdot m n)) f)) e). +Axiom thm_SUMMABLE_IFF_EVENTUALLY : forall {_823660 : Type'}, forall f : N -> cart R _823660, forall g : N -> cart R _823660, forall k : N -> Prop, (exists N' : N, forall n : N, ((N.le N' n) /\ (@IN N n k)) -> (f n) = (g n)) -> (@summable _823660 k f) = (@summable _823660 k g). +Axiom thm_SUMMABLE_EQ_EVENTUALLY : forall {_823726 : Type'}, forall f : N -> cart R _823726, forall g : N -> cart R _823726, forall k : N -> Prop, ((exists N' : N, forall n : N, ((N.le N' n) /\ (@IN N n k)) -> (f n) = (g n)) /\ (@summable _823726 k f)) -> @summable _823726 k g. +Axiom thm_SUMMABLE_IFF_COFINITE : forall {_823790 : Type'}, forall f : N -> cart R _823790, forall s : N -> Prop, forall t : N -> Prop, (@FINITE N (@UNION N (@DIFF N s t) (@DIFF N t s))) -> (@summable _823790 s f) = (@summable _823790 t f). +Axiom thm_SUMMABLE_EQ_COFINITE : forall {_823824 : Type'}, forall f : N -> cart R _823824, forall s : N -> Prop, forall t : N -> Prop, ((@FINITE N (@UNION N (@DIFF N s t) (@DIFF N t s))) /\ (@summable _823824 s f)) -> @summable _823824 t f. +Axiom thm_SUMMABLE_FROM_ELSEWHERE : forall {_823857 : Type'}, forall f : N -> cart R _823857, forall m : N, forall n : N, (@summable _823857 (from m) f) -> @summable _823857 (from n) f. +Axiom thm_SUMMABLE_FROM_ELSEWHERE_EQ : forall {N' : Type'}, forall n : N, forall m : N, forall f : N -> cart R N', (@summable N' (from m) f) = (@summable N' (from n) f). +Axiom thm_SERIES_CAUCHY_UNIFORM : forall {A N' : Type'}, forall P : A -> Prop, forall f : A -> N -> cart R N', forall k : N -> Prop, (exists l : A -> cart R N', forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : A, ((N.le N'' n) /\ (P x)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (@vsum N N' (@INTER N k (dotdot (NUMERAL 0%N) n)) (f x)) (l x))) e) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, forall x : A, ((N.le N'' m) /\ (P x)) -> Rlt (@vector_norm N' (@vsum N N' (@INTER N k (dotdot m n)) (f x))) e). +Axiom thm_SERIES_GOESTOZERO : forall {_824273 : Type'}, forall s : N -> Prop, forall x : N -> cart R _824273, (@summable _824273 s x) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually N (fun n : N => (@IN N n s) -> Rlt (@vector_norm _824273 (x n)) e) sequentially. +Axiom thm_SUMMABLE_IMP_TOZERO : forall {N' : Type'}, forall f : N -> cart R N', forall k : N -> Prop, (@summable N' k f) -> @FImp N' N (fun n : N => @COND (cart R N') (@IN N n k) (f n) (@vec N' (NUMERAL 0%N))) (@vec N' (NUMERAL 0%N)) sequentially. +Axiom thm_SUMMABLE_IMP_BOUNDED : forall {N' : Type'}, forall f : N -> cart R N', forall k : N -> Prop, (@summable N' k f) -> @bounded N' (@IMAGE N (cart R N') f k). +Axiom thm_SUMMABLE_IMP_SUMS_BOUNDED : forall {N' : Type'}, forall f : N -> cart R N', forall k : N, (@summable N' (from k) f) -> @bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3324 : cart R N' => exists n : N, @SETSPEC (cart R N') GEN_PVAR_3324 (@IN N n (@UNIV N)) (@vsum N N' (dotdot k n) f))). +Axiom thm_SERIES_COMPARISON : forall {N' : Type'}, forall f : N -> cart R N', forall g : N -> R, forall s : N -> Prop, ((exists l : cart R unit, @sums unit (@o N R (cart R unit) lift g) l s) /\ (exists N'' : N, forall n : N, ((N.ge n N'') /\ (@IN N n s)) -> Rle (@vector_norm N' (f n)) (g n))) -> exists l : cart R N', @sums N' f l s. +Axiom thm_SUMMABLE_COMPARISON : forall {_824697 : Type'}, forall f : N -> cart R _824697, forall g : N -> R, forall s : N -> Prop, ((@summable unit s (@o N R (cart R unit) lift g)) /\ (exists N' : N, forall n : N, ((N.ge n N') /\ (@IN N n s)) -> Rle (@vector_norm _824697 (f n)) (g n))) -> @summable _824697 s f. +Axiom thm_SERIES_LIFT_ABSCONV_IMP_CONV : forall {N' : Type'}, forall x : N -> cart R N', forall k : N -> Prop, (@summable unit k (fun n : N => lift (@vector_norm N' (x n)))) -> @summable N' k x. +Axiom thm_SUMMABLE_SUBSET_ABSCONV : forall {N' : Type'}, forall x : N -> cart R N', forall s : N -> Prop, forall t : N -> Prop, ((@summable unit s (fun n : N => lift (@vector_norm N' (x n)))) /\ (@SUBSET N t s)) -> @summable unit t (fun n : N => lift (@vector_norm N' (x n))). +Axiom thm_SERIES_COMPARISON_BOUND : forall {N' : Type'}, forall f : N -> cart R N', forall g : N -> cart R unit, forall s : N -> Prop, forall a : cart R unit, ((@sums unit g a s) /\ (forall i : N, (@IN N i s) -> Rle (@vector_norm N' (f i)) (drop (g i)))) -> exists l : cart R N', (@sums N' f l s) /\ (Rle (@vector_norm N' l) (drop a)). +Axiom thm_SERIES_COMPARISON_UNIFORM : forall {A N' : Type'}, forall f : A -> N -> cart R N', forall g : N -> R, forall P : A -> Prop, forall s : N -> Prop, ((exists l : cart R unit, @sums unit (@o N R (cart R unit) lift g) l s) /\ (exists N'' : N, forall n : N, forall x : A, ((N.le N'' n) /\ ((@IN N n s) /\ (P x))) -> Rle (@vector_norm N' (f x n)) (g n))) -> exists l : A -> cart R N', forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : A, ((N.le N'' n) /\ (P x)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (@vsum N N' (@INTER N s (dotdot (NUMERAL 0%N) n)) (f x)) (l x))) e. +Axiom thm_SERIES_RATIO : forall {N' : Type'}, forall c : R, forall a : N -> cart R N', forall s : N -> Prop, forall N'' : N, ((Rlt c (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall n : N, (N.ge n N'') -> Rle (@vector_norm N' (a (N.succ n))) (Rmult c (@vector_norm N' (a n))))) -> exists l : cart R N', @sums N' a l s. +Axiom thm_SUMMABLE_RATIO : forall {N' : Type'}, forall c : R, forall a : N -> cart R N', forall s : N -> Prop, forall N'' : N, ((Rlt c (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall n : N, (N.ge n N'') -> Rle (@vector_norm N' (a (N.succ n))) (Rmult c (@vector_norm N' (a n))))) -> @summable N' s a. +Axiom thm_SUMMABLE_REAL_GP : forall x : R, forall k : N -> Prop, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> @summable unit k (fun n : N => lift (real_pow x n)). +Axiom thm_BOUNDED_PARTIAL_SUMS : forall {N' : Type'}, forall f : N -> cart R N', forall k : N, (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3327 : cart R N' => exists n : N, @SETSPEC (cart R N') GEN_PVAR_3327 (@IN N n (@UNIV N)) (@vsum N N' (dotdot k n) f)))) -> @bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3328 : cart R N' => exists m : N, exists n : N, @SETSPEC (cart R N') GEN_PVAR_3328 ((@IN N m (@UNIV N)) /\ (@IN N n (@UNIV N))) (@vsum N N' (dotdot m n) f))). +Axiom thm_SUMMABLE_BILINEAR_PARTIAL_PRE : forall {M N' P : Type'}, forall f : N -> cart R M, forall g : N -> cart R N', forall h : (cart R M) -> (cart R N') -> cart R P, forall l : cart R P, forall k : N, ((@bilinear N' P M h) /\ ((@FImp P N (fun n : N => h (f (N.add n (NUMERAL (BIT1 0%N)))) (g n)) l sequentially) /\ (@summable P (from k) (fun n : N => h (@vector_sub M (f (N.add n (NUMERAL (BIT1 0%N)))) (f n)) (g n))))) -> @summable P (from k) (fun n : N => h (f n) (@vector_sub N' (g n) (g (N.sub n (NUMERAL (BIT1 0%N)))))). +Axiom thm_SERIES_DIRICHLET_BILINEAR : forall {M N' P : Type'}, forall f : N -> cart R N', forall g : N -> cart R M, forall h : (cart R M) -> (cart R N') -> cart R P, forall k : N, forall m : N, forall p : N, forall l : cart R P, ((@bilinear N' P M h) /\ ((@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3329 : cart R N' => exists n : N, @SETSPEC (cart R N') GEN_PVAR_3329 (@IN N n (@UNIV N)) (@vsum N N' (dotdot m n) f)))) /\ ((@summable unit (from p) (fun n : N => lift (@vector_norm M (@vector_sub M (g (N.add n (NUMERAL (BIT1 0%N)))) (g n))))) /\ (@FImp P N (fun n : N => h (g (N.add n (NUMERAL (BIT1 0%N)))) (@vsum N N' (dotdot (NUMERAL (BIT1 0%N)) n) f)) l sequentially)))) -> @summable P (from k) (fun n : N => h (g n) (f n)). +Axiom thm_SERIES_DIRICHLET : forall {N' : Type'}, forall f : N -> cart R N', forall g : N -> R, forall N'' : N, forall k : N, forall m : N, ((@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_3330 : cart R N' => exists n : N, @SETSPEC (cart R N') GEN_PVAR_3330 (@IN N n (@UNIV N)) (@vsum N N' (dotdot m n) f)))) /\ ((forall n : N, (N.le N'' n) -> Rle (g (N.add n (NUMERAL (BIT1 0%N)))) (g n)) /\ (@FImp unit N (@o N R (cart R unit) lift g) (@vec unit (NUMERAL 0%N)) sequentially))) -> @summable N' (from k) (fun n : N => @percent N' (g n) (f n)). +Axiom thm_SERIES_INJECTIVE_IMAGE_STRONG : forall {N' : Type'}, forall x : N -> cart R N', forall s : N -> Prop, forall f : N -> N, ((@summable unit (@IMAGE N N f s) (fun n : N => lift (@vector_norm N' (x n)))) /\ (forall m : N, forall n : N, ((@IN N m s) /\ ((@IN N n s) /\ ((f m) = (f n)))) -> m = n)) -> @FImp N' N (fun n : N => @vector_sub N' (@vsum N N' (@INTER N (@IMAGE N N f s) (dotdot (NUMERAL 0%N) n)) x) (@vsum N N' (@INTER N s (dotdot (NUMERAL 0%N) n)) (@o N N (cart R N') x f))) (@vec N' (NUMERAL 0%N)) sequentially. +Axiom thm_SERIES_INJECTIVE_IMAGE : forall {N' : Type'}, forall x : N -> cart R N', forall s : N -> Prop, forall f : N -> N, forall l : cart R N', ((@summable unit (@IMAGE N N f s) (fun n : N => lift (@vector_norm N' (x n)))) /\ (forall m : N, forall n : N, ((@IN N m s) /\ ((@IN N n s) /\ ((f m) = (f n)))) -> m = n)) -> (@sums N' (@o N N (cart R N') x f) l s) = (@sums N' x l (@IMAGE N N f s)). +Axiom thm_SERIES_REARRANGE_EQ : forall {N' : Type'}, forall x : N -> cart R N', forall s : N -> Prop, forall p : N -> N, forall l : cart R N', ((@summable unit s (fun n : N => lift (@vector_norm N' (x n)))) /\ (@permutes N p s)) -> (@sums N' (@o N N (cart R N') x p) l s) = (@sums N' x l s). +Axiom thm_SERIES_REARRANGE : forall {N' : Type'}, forall x : N -> cart R N', forall s : N -> Prop, forall p : N -> N, forall l : cart R N', ((@summable unit s (fun n : N => lift (@vector_norm N' (x n)))) /\ ((@permutes N p s) /\ (@sums N' x l s))) -> @sums N' (@o N N (cart R N') x p) l s. +Axiom thm_SUMMABLE_REARRANGE : forall {_827348 : Type'}, forall x : N -> cart R _827348, forall s : N -> Prop, forall p : N -> N, ((@summable unit s (fun n : N => lift (@vector_norm _827348 (x n)))) /\ (@permutes N p s)) -> @summable _827348 s (@o N N (cart R _827348) x p). +Axiom thm_TOEPLITZ_BILINEAR_SERIES_NULL : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall a : N -> N -> cart R M, forall x : N -> cart R N', forall m : N, forall b : R, ((@bilinear N' P M bop) /\ ((@FImp N' N x (@vec N' (NUMERAL 0%N)) sequentially) /\ ((forall p : N, @FImp M N (fun n : N => a n p) (@vec M (NUMERAL 0%N)) sequentially) /\ (forall n : N, Rle (@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => @vector_norm M (a n i))) b)))) -> @FImp P N (fun n : N => @vsum N P (dotdot m n) (fun i : N => bop (a n i) (x i))) (@vec P (NUMERAL 0%N)) sequentially. +Axiom thm_TOEPLITZ_BILINEAR_SERIES : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall a : N -> N -> cart R M, forall x : N -> cart R N', forall m : N, forall r : N, forall l : cart R N', forall i : cart R M, forall b : R, ((@bilinear N' P M bop) /\ ((@FImp N' N x l sequentially) /\ ((forall p : N, @FImp M N (fun n : N => a n p) (@vec M (NUMERAL 0%N)) sequentially) /\ ((@FImp M N (fun n : N => @vsum N M (dotdot r n) (fun i' : N => a n i')) i sequentially) /\ (forall n : N, Rle (@sum N (dotdot (NUMERAL 0%N) n) (fun i' : N => @vector_norm M (a n i'))) b))))) -> @FImp P N (fun n : N => @vsum N P (dotdot m n) (fun i' : N => bop (a n i') (x i'))) (bop i l) sequentially. +Axiom thm_LIM_BILINEAR_CONVOLUTION : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall x : N -> cart R M, forall y : N -> cart R N', forall m : N, forall k : R, forall a : cart R M, forall b : cart R N', ((@bilinear N' P M bop) /\ ((@FImp M N x a sequentially) /\ (@FImp N' N y b sequentially))) -> @FImp P N (fun n : N => @percent P (Rinv (Rplus (R_of_N n) k)) (@vsum N P (dotdot m n) (fun i : N => bop (x i) (y (N.sub n i))))) (bop a b) sequentially. +Axiom thm_LIM_CESARO : forall {N' : Type'}, forall a : N -> cart R N', forall l : cart R N', forall m : N, forall k : R, (@FImp N' N a l sequentially) -> @FImp N' N (fun n : N => @percent N' (Rinv (Rplus (R_of_N n) k)) (@vsum N N' (dotdot m n) a)) l sequentially. +Axiom thm_SERIES_BILINEAR : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall x : N -> cart R M, forall y : N -> cart R N', forall a : cart R M, forall b : cart R N', ((@bilinear N' P M bop) /\ ((@sums M x a (from (NUMERAL 0%N))) /\ ((@sums N' y b (from (NUMERAL 0%N))) /\ ((@summable unit (from (NUMERAL 0%N)) (fun n : N => lift (@vector_norm M (x n)))) \/ (@summable unit (from (NUMERAL 0%N)) (fun n : N => lift (@vector_norm N' (y n)))))))) -> @sums P (fun n : N => @vsum N P (dotdot (NUMERAL 0%N) n) (fun i : N => bop (x i) (y (N.sub n i)))) (bop a b) (from (NUMERAL 0%N)). +Axiom thm_SERIES_BILINEAR_UNIQUE : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall x : N -> cart R M, forall y : N -> cart R N', forall a : cart R M, forall b : cart R N', forall c : cart R P, ((@bilinear N' P M bop) /\ ((@sums M x a (from (NUMERAL 0%N))) /\ ((@sums N' y b (from (NUMERAL 0%N))) /\ (@sums P (fun n : N => @vsum N P (dotdot (NUMERAL 0%N) n) (fun i : N => bop (x i) (y (N.sub n i)))) c (from (NUMERAL 0%N)))))) -> (bop a b) = c. +Axiom thm_SUMMABLE_BILINEAR_LEFT : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall x : N -> cart R M, forall y : N -> cart R N', forall m : N, forall n : N, forall p : N, ((@bilinear N' P M bop) /\ ((@summable unit (from m) (fun n' : N => lift (@vector_norm M (x n')))) /\ (@summable N' (from n) y))) -> @summable P (from p) (fun n' : N => @vsum N P (dotdot (NUMERAL 0%N) n') (fun i : N => bop (x i) (y (N.sub n' i)))). +Axiom thm_SUMMABLE_BILINEAR_RIGHT : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall x : N -> cart R M, forall y : N -> cart R N', forall m : N, forall n : N, forall p : N, ((@bilinear N' P M bop) /\ ((@summable M (from m) x) /\ (@summable unit (from n) (fun n' : N => lift (@vector_norm N' (y n')))))) -> @summable P (from p) (fun n' : N => @vsum N P (dotdot (NUMERAL 0%N) n') (fun i : N => bop (x i) (y (N.sub n' i)))). +Axiom thm_CAUCHY_EQ_SUMMABLE : forall {N' : Type'}, forall x : N -> cart R N', (@cauchy N' x) = (@summable N' (from (NUMERAL 0%N)) (fun n : N => @vector_sub N' (x (N.add n (NUMERAL (BIT1 0%N)))) (x n))). +Axiom thm_CAUCHY_ABSOLUTELY_SUMMABLE_SUBSEQUENCE : forall {N' : Type'}, forall x : N -> cart R N', (@cauchy N' x) -> exists r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (@summable unit (from (NUMERAL 0%N)) (fun n : N => lift (@distance N' (@pair (cart R N') (cart R N') (x (r (N.add n (NUMERAL (BIT1 0%N))))) (x (r n)))))). +Axiom thm_ABSOLUTELY_SUMMABLE_IMP_CAUCHY : forall {N' : Type'}, forall x : N -> cart R N', (@summable unit (from (NUMERAL 0%N)) (fun n : N => lift (@distance N' (@pair (cart R N') (cart R N') (x (N.add n (NUMERAL (BIT1 0%N)))) (x n))))) -> @cauchy N' x. +Axiom thm_COMPLETE_ABSOLUTELY_SUMMABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@complete N' s) = (forall f : N -> cart R N', ((forall n : N, @IN (cart R N') (f n) s) /\ (@summable unit (from (NUMERAL 0%N)) (fun n : N => lift (@distance N' (@pair (cart R N') (cart R N') (f (N.add n (NUMERAL (BIT1 0%N)))) (f n)))))) -> exists l : cart R N', (@IN (cart R N') l s) /\ (@FImp N' N f l sequentially)). +Axiom thm_BANACH_FIX : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall c : R, ((@complete N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((Rle (R_of_N (NUMERAL 0%N)) c) /\ ((Rlt c (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) (Rmult c (@distance N' (@pair (cart R N') (cart R N') x y))))))))) -> @ex1 (cart R N') (fun x : cart R N' => (@IN (cart R N') x s) /\ ((f x) = x)). +Axiom thm_EDELSTEIN_FIX : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (~ (x = y)))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) (@distance N' (@pair (cart R N') (cart R N') x y)))))) -> @ex1 (cart R N') (fun x : cart R N' => (@IN (cart R N') x s) /\ ((f x) = x)). +Axiom thm_BANACH_FIX_ITER : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall c : R, forall n : N, ((@complete N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((Rle (R_of_N (NUMERAL 0%N)) c) /\ ((Rlt c (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (@distance N' (@pair (cart R N') (cart R N') (@ITER (cart R N') n f x) (@ITER (cart R N') n f y))) (Rmult c (@distance N' (@pair (cart R N') (cart R N') x y))))))))) -> @ex1 (cart R N') (fun x : cart R N' => (@IN (cart R N') x s) /\ ((f x) = x)). +Axiom thm_EDELSTEIN_FIX_ITER : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall n : N, ((@compact N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (~ (x = y)))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (@ITER (cart R N') n f x) (@ITER (cart R N') n f y))) (@distance N' (@pair (cart R N') (cart R N') x y)))))) -> @ex1 (cart R N') (fun x : cart R N' => (@IN (cart R N') x s) /\ ((f x) = x)). +Axiom thm_DINI : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall g : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((forall n : N, @continuous_on N' unit (f n) s) /\ ((@continuous_on N' unit g s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @FImp unit N (fun n : N => f n x) (g x) sequentially) /\ (forall n : N, forall x : cart R N', (@IN (cart R N') x s) -> Rle (drop (f n x)) (drop (f (N.add n (NUMERAL (BIT1 0%N))) x))))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually N (fun n : N => forall x : cart R N', (@IN (cart R N') x s) -> Rlt (@vector_norm unit (@vector_sub unit (f n x) (g x))) e) sequentially. +Axiom thm_closest_point : forall {_832524 : Type'}, forall s : (cart R _832524) -> Prop, forall a : cart R _832524, (@closest_point _832524 s a) = (@ε (cart R _832524) (fun x : cart R _832524 => (@IN (cart R _832524) x s) /\ (forall y : cart R _832524, (@IN (cart R _832524) y s) -> Rle (@distance _832524 (@pair (cart R _832524) (cart R _832524) a x)) (@distance _832524 (@pair (cart R _832524) (cart R _832524) a y))))). +Axiom thm_CLOSEST_POINT_EXISTS : forall {_832587 : Type'}, forall s : (cart R _832587) -> Prop, forall a : cart R _832587, ((@closed _832587 s) /\ (~ (s = (@EMPTY (cart R _832587))))) -> (@IN (cart R _832587) (@closest_point _832587 s a) s) /\ (forall y : cart R _832587, (@IN (cart R _832587) y s) -> Rle (@distance _832587 (@pair (cart R _832587) (cart R _832587) a (@closest_point _832587 s a))) (@distance _832587 (@pair (cart R _832587) (cart R _832587) a y))). +Axiom thm_CLOSEST_POINT_IN_SET : forall {_832612 : Type'}, forall s : (cart R _832612) -> Prop, forall a : cart R _832612, ((@closed _832612 s) /\ (~ (s = (@EMPTY (cart R _832612))))) -> @IN (cart R _832612) (@closest_point _832612 s a) s. +Axiom thm_CLOSEST_POINT_LE : forall {_832642 : Type'}, forall s : (cart R _832642) -> Prop, forall a : cart R _832642, forall x : cart R _832642, ((@closed _832642 s) /\ (@IN (cart R _832642) x s)) -> Rle (@distance _832642 (@pair (cart R _832642) (cart R _832642) a (@closest_point _832642 s a))) (@distance _832642 (@pair (cart R _832642) (cart R _832642) a x)). +Axiom thm_CLOSEST_POINT_SELF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@IN (cart R N') x s) -> (@closest_point N' s x) = x. +Axiom thm_CLOSEST_POINT_REFL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@closed N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> ((@closest_point N' s x) = x) = (@IN (cart R N') x s). +Axiom thm_DIST_CLOSEST_POINT_LIPSCHITZ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@closed N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> Rle (Rabs (Rminus (@distance N' (@pair (cart R N') (cart R N') x (@closest_point N' s x))) (@distance N' (@pair (cart R N') (cart R N') y (@closest_point N' s y))))) (@distance N' (@pair (cart R N') (cart R N') x y)). +Axiom thm_CONTINUOUS_AT_DIST_CLOSEST_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@closed N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> @continuous unit (cart R N') (fun x' : cart R N' => lift (@distance N' (@pair (cart R N') (cart R N') x' (@closest_point N' s x')))) (@_at N' x). +Axiom thm_CONTINUOUS_ON_DIST_CLOSEST_POINT : forall {_832846 : Type'}, forall s : (cart R _832846) -> Prop, forall t : (cart R _832846) -> Prop, ((@closed _832846 s) /\ (~ (s = (@EMPTY (cart R _832846))))) -> @continuous_on _832846 unit (fun x : cart R _832846 => lift (@distance _832846 (@pair (cart R _832846) (cart R _832846) x (@closest_point _832846 s x)))) t. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_DIST_CLOSEST_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> @uniformly_continuous_on N' unit (fun x : cart R N' => lift (@distance N' (@pair (cart R N') (cart R N') x (@closest_point N' s x)))) t. +Axiom thm_SEGMENT_TO_CLOSEST_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@closed N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> (@INTER (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a (@closest_point N' s a))) s) = (@EMPTY (cart R N')). +Axiom thm_SEGMENT_TO_POINT_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@closed N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists b : cart R N', (@IN (cart R N') b s) /\ ((@INTER (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) s) = (@EMPTY (cart R N'))). +Axiom thm_CLOSEST_POINT_IN_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@closed N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> (@IN (cart R N') (@closest_point N' s x) (@interior N' s)) = (@IN (cart R N') x (@interior N' s)). +Axiom thm_CLOSEST_POINT_IN_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@closed N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (@IN (cart R N') x (@interior N' s))))) -> @IN (cart R N') (@closest_point N' s x) (@frontier N' s). +Axiom thm_CLOSEST_POINT_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (~ (@IN (cart R N') x (@interior N' s))) -> (@closest_point N' (@frontier N' s) x) = (@closest_point N' (@closure N' s) x). +Axiom thm_setdist : forall {_833496 : Type'}, forall s : (cart R _833496) -> Prop, forall t : (cart R _833496) -> Prop, (@setdist _833496 (@pair ((cart R _833496) -> Prop) ((cart R _833496) -> Prop) s t)) = (@COND R ((s = (@EMPTY (cart R _833496))) \/ (t = (@EMPTY (cart R _833496)))) (R_of_N (NUMERAL 0%N)) (inf (@GSPEC R (fun GEN_PVAR_3332 : R => exists x : cart R _833496, exists y : cart R _833496, @SETSPEC R GEN_PVAR_3332 ((@IN (cart R _833496) x s) /\ (@IN (cart R _833496) y t)) (@distance _833496 (@pair (cart R _833496) (cart R _833496) x y)))))). +Axiom thm_SETDIST_EMPTY : forall {_833514 _833530 : Type'}, (forall t : (cart R _833514) -> Prop, (@setdist _833514 (@pair ((cart R _833514) -> Prop) ((cart R _833514) -> Prop) (@EMPTY (cart R _833514)) t)) = (R_of_N (NUMERAL 0%N))) /\ (forall s : (cart R _833530) -> Prop, (@setdist _833530 (@pair ((cart R _833530) -> Prop) ((cart R _833530) -> Prop) s (@EMPTY (cart R _833530)))) = (R_of_N (NUMERAL 0%N))). +Axiom thm_SETDIST_POS_LE : forall {_833553 : Type'}, forall s : (cart R _833553) -> Prop, forall t : (cart R _833553) -> Prop, Rle (R_of_N (NUMERAL 0%N)) (@setdist _833553 (@pair ((cart R _833553) -> Prop) ((cart R _833553) -> Prop) s t)). +Axiom thm_SETDIST_POS_LT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (Rlt (R_of_N (NUMERAL 0%N)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))) = (~ ((@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_SETDIST_SUBSETS_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall s' : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((@SUBSET (cart R N') s' s) /\ ((@SUBSET (cart R N') t' t) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) -> exists x' : cart R N', exists y' : cart R N', (@IN (cart R N') x' s') /\ ((@IN (cart R N') y' t') /\ (Rle (@distance N' (@pair (cart R N') (cart R N') x' y')) (@distance N' (@pair (cart R N') (cart R N') x y))))))) -> (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s' t')) = (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_REAL_LE_SETDIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall d : R, ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) -> Rle d (@distance N' (@pair (cart R N') (cart R N') x y))))) -> Rle d (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_SETDIST_LE_DIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) (@distance N' (@pair (cart R N') (cart R N') x y)). +Axiom thm_REAL_LE_SETDIST_EQ : forall {N' : Type'}, forall d : R, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (Rle d (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))) = ((forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) -> Rle d (@distance N' (@pair (cart R N') (cart R N') x y))) /\ (((s = (@EMPTY (cart R N'))) \/ (t = (@EMPTY (cart R N')))) -> Rle d (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_SETDIST_LT_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall b : R, ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (Rlt (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) b))) -> exists x : cart R N', exists y : cart R N', (@IN (cart R N') x s) /\ ((@IN (cart R N') y t) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) b)). +Axiom thm_SETDIST_REFL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s s)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SETDIST_SYM : forall {_834081 : Type'}, forall s : (cart R _834081) -> Prop, forall t : (cart R _834081) -> Prop, (@setdist _834081 (@pair ((cart R _834081) -> Prop) ((cart R _834081) -> Prop) s t)) = (@setdist _834081 (@pair ((cart R _834081) -> Prop) ((cart R _834081) -> Prop) t s)). +Axiom thm_SETDIST_TRIANGLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall t : (cart R N') -> Prop, Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) (Rplus (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s (@INSERT (cart R N') a (@EMPTY (cart R N'))))) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') a (@EMPTY (cart R N'))) t))). +Axiom thm_SETDIST_SINGS : forall {_834230 : Type'}, forall x : cart R _834230, forall y : cart R _834230, (@setdist _834230 (@pair ((cart R _834230) -> Prop) ((cart R _834230) -> Prop) (@INSERT (cart R _834230) x (@EMPTY (cart R _834230))) (@INSERT (cart R _834230) y (@EMPTY (cart R _834230))))) = (@distance _834230 (@pair (cart R _834230) (cart R _834230) x y)). +Axiom thm_SETDIST_SCALING : forall {N' : Type'}, forall a : R, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' a x) s) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' a x) t))) = (Rmult (Rabs a) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))). +Axiom thm_SETDIST_UNIFORMLY_CONTINUOUS_ON_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@uniformly_continuous_on M N' f s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R M) -> Prop, forall t' : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ ((@SUBSET (cart R M) t' s) /\ ((@bounded M t) /\ ((@bounded M t') /\ (Rlt (@setdist M (@pair ((cart R M) -> Prop) ((cart R M) -> Prop) t' t)) d))))) -> Rlt (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R M) (cart R N') f t') (@IMAGE (cart R M) (cart R N') f t))) e)). +Axiom thm_SETDIST_UNIFORMLY_CONTINUOUS_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@uniformly_continuous_on M N' f s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R M) -> Prop, forall t' : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ ((@SUBSET (cart R M) t' s) /\ (Rlt (@setdist M (@pair ((cart R M) -> Prop) ((cart R M) -> Prop) t' t)) d))) -> Rlt (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R M) (cart R N') f t') (@IMAGE (cart R M) (cart R N') f t))) e)). +Axiom thm_SETDIST_SING_TRIANGLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', Rle (Rabs (Rminus (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) s)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) s)))) (@distance N' (@pair (cart R N') (cart R N') x y)). +Axiom thm_CONTINUOUS_AT_LIFT_SETDIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', @continuous unit (cart R N') (fun y : cart R N' => lift (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) s))) (@_at N' x). +Axiom thm_CONTINUOUS_ON_LIFT_SETDIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, @continuous_on N' unit (fun y : cart R N' => lift (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) s))) t. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_LIFT_SETDIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, @uniformly_continuous_on N' unit (fun y : cart R N' => lift (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) s))) t. +Axiom thm_SETDIST_DIFFERENCES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N'))) (@GSPEC (cart R N') (fun GEN_PVAR_3337 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3337 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_sub N' x y))))). +Axiom thm_SETDIST_SUBSET_RIGHT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((~ (t = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') t u)) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s u)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_SETDIST_SUBSET_LEFT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') s t)) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s u)). +Axiom thm_SETDIST_CLOSURE : forall {N' : Type'}, (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@closure N' s) t)) = (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s (@closure N' t))) = (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))). +Axiom thm_SETDIST_FRONTIER : forall {N' : Type'}, (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@DISJOINT (cart R N') s t) -> (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@frontier N' s) t)) = (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@DISJOINT (cart R N') s t) -> (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s (@frontier N' t))) = (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))). +Axiom thm_SETDIST_COMPACT_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@closed N' t) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (t = (@EMPTY (cart R N'))))))) -> exists x : cart R N', exists y : cart R N', (@IN (cart R N') x s) /\ ((@IN (cart R N') y t) /\ ((@distance N' (@pair (cart R N') (cart R N') x y)) = (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)))). +Axiom thm_SETDIST_CLOSED_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@compact N' t) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (t = (@EMPTY (cart R N'))))))) -> exists x : cart R N', exists y : cart R N', (@IN (cart R N') x s) /\ ((@IN (cart R N') y t) /\ ((@distance N' (@pair (cart R N') (cart R N') x y)) = (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)))). +Axiom thm_SETDIST_EQ_0_COMPACT_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ (@closed N' t)) -> ((@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (R_of_N (NUMERAL 0%N))) = ((s = (@EMPTY (cart R N'))) \/ ((t = (@EMPTY (cart R N'))) \/ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))))). +Axiom thm_SETDIST_EQ_0_CLOSED_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ (@compact N' t)) -> ((@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (R_of_N (NUMERAL 0%N))) = ((s = (@EMPTY (cart R N'))) \/ ((t = (@EMPTY (cart R N'))) \/ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))))). +Axiom thm_SETDIST_EQ_0_BOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) \/ (@bounded N' t)) -> ((@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (R_of_N (NUMERAL 0%N))) = ((s = (@EMPTY (cart R N'))) \/ ((t = (@EMPTY (cart R N'))) \/ (~ ((@INTER (cart R N') (@closure N' s) (@closure N' t)) = (@EMPTY (cart R N')))))). +Axiom thm_SETDIST_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) t))) = (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_SETDIST_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, (@vector_norm N' (f x)) = (@vector_norm M x))) -> (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R M) (cart R N') f s) (@IMAGE (cart R M) (cart R N') f t))) = (@setdist M (@pair ((cart R M) -> Prop) ((cart R M) -> Prop) s t)). +Axiom thm_SETDIST_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall d : R, ((@IN (cart R N') a s) /\ ((@IN (cart R N') b t) /\ (((@distance N' (@pair (cart R N') (cart R N') a b)) = d) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) -> Rle (@distance N' (@pair (cart R N') (cart R N') a b)) (@distance N' (@pair (cart R N') (cart R N') x y)))))) -> (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = d. +Axiom thm_SETDIST_UNIV : forall {N' : Type'}, (forall s : (cart R N') -> Prop, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s (@UNIV (cart R N')))) = (R_of_N (NUMERAL 0%N))) /\ (forall t : (cart R N') -> Prop, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@UNIV (cart R N')) t)) = (R_of_N (NUMERAL 0%N))). +Axiom thm_SETDIST_ZERO : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (~ (@DISJOINT (cart R N') s t)) -> (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SETDIST_ZERO_STRONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (~ (@DISJOINT (cart R N') (@closure N' s) (@closure N' t))) -> (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SETDIST_FRONTIERS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (@COND R (@DISJOINT (cart R N') s t) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@frontier N' s) (@frontier N' t))) (R_of_N (NUMERAL 0%N))). +Axiom thm_SETDIST_SING_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (~ (@IN (cart R N') x s)) -> (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) (@frontier N' s))) = (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) s)). +Axiom thm_SETDIST_CLOSEST_POINT : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, ((@closed N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') a (@EMPTY (cart R N'))) s)) = (@distance N' (@pair (cart R N') (cart R N') a (@closest_point N' s a))). +Axiom thm_SETDIST_EQ_0_SING : forall {N' : Type'}, (forall s : (cart R N') -> Prop, forall x : cart R N', ((@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) s)) = (R_of_N (NUMERAL 0%N))) = ((s = (@EMPTY (cart R N'))) \/ (@IN (cart R N') x (@closure N' s)))) /\ (forall s : (cart R N') -> Prop, forall x : cart R N', ((@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s (@INSERT (cart R N') x (@EMPTY (cart R N'))))) = (R_of_N (NUMERAL 0%N))) = ((s = (@EMPTY (cart R N'))) \/ (@IN (cart R N') x (@closure N' s)))). +Axiom thm_SETDIST_EQ_0_CLOSED : forall {_836629 : Type'}, forall s : (cart R _836629) -> Prop, forall x : cart R _836629, (@closed _836629 s) -> ((@setdist _836629 (@pair ((cart R _836629) -> Prop) ((cart R _836629) -> Prop) (@INSERT (cart R _836629) x (@EMPTY (cart R _836629))) s)) = (R_of_N (NUMERAL 0%N))) = ((s = (@EMPTY (cart R _836629))) \/ (@IN (cart R _836629) x s)). +Axiom thm_SETDIST_EQ_0_CLOSED_IN : forall {_836679 : Type'}, forall u : (cart R _836679) -> Prop, forall s : (cart R _836679) -> Prop, forall x : cart R _836679, ((@closed_in (cart R _836679) (@subtopology (cart R _836679) (@euclidean _836679) u) s) /\ (@IN (cart R _836679) x u)) -> ((@setdist _836679 (@pair ((cart R _836679) -> Prop) ((cart R _836679) -> Prop) (@INSERT (cart R _836679) x (@EMPTY (cart R _836679))) s)) = (R_of_N (NUMERAL 0%N))) = ((s = (@EMPTY (cart R _836679))) \/ (@IN (cart R _836679) x s)). +Axiom thm_SETDIST_SING_IN_SET : forall {_836727 : Type'}, forall x : cart R _836727, forall s : (cart R _836727) -> Prop, (@IN (cart R _836727) x s) -> (@setdist _836727 (@pair ((cart R _836727) -> Prop) ((cart R _836727) -> Prop) (@INSERT (cart R _836727) x (@EMPTY (cart R _836727))) s)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SETDIST_SING_FRONTIER_CASES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) s)) = (@COND R (@IN (cart R N') x s) (R_of_N (NUMERAL 0%N)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) (@frontier N' s)))). +Axiom thm_SETDIST_LE_SING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', (@IN (cart R N') x s) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) t)). +Axiom thm_SETDIST_BALLS : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@ball N' (@pair (cart R N') R a r)) (@ball N' (@pair (cart R N') R b s)))) = (@COND R ((Rle r (R_of_N (NUMERAL 0%N))) \/ (Rle s (R_of_N (NUMERAL 0%N)))) (R_of_N (NUMERAL 0%N)) (Rmax (R_of_N (NUMERAL 0%N)) (Rminus (@distance N' (@pair (cart R N') (cart R N') a b)) (Rplus r s))))) /\ ((forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@ball N' (@pair (cart R N') R a r)) (@cball N' (@pair (cart R N') R b s)))) = (@COND R ((Rle r (R_of_N (NUMERAL 0%N))) \/ (Rlt s (R_of_N (NUMERAL 0%N)))) (R_of_N (NUMERAL 0%N)) (Rmax (R_of_N (NUMERAL 0%N)) (Rminus (@distance N' (@pair (cart R N') (cart R N') a b)) (Rplus r s))))) /\ ((forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@cball N' (@pair (cart R N') R a r)) (@ball N' (@pair (cart R N') R b s)))) = (@COND R ((Rlt r (R_of_N (NUMERAL 0%N))) \/ (Rle s (R_of_N (NUMERAL 0%N)))) (R_of_N (NUMERAL 0%N)) (Rmax (R_of_N (NUMERAL 0%N)) (Rminus (@distance N' (@pair (cart R N') (cart R N') a b)) (Rplus r s))))) /\ (forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@cball N' (@pair (cart R N') R a r)) (@cball N' (@pair (cart R N') R b s)))) = (@COND R ((Rlt r (R_of_N (NUMERAL 0%N))) \/ (Rlt s (R_of_N (NUMERAL 0%N)))) (R_of_N (NUMERAL 0%N)) (Rmax (R_of_N (NUMERAL 0%N)) (Rminus (@distance N' (@pair (cart R N') (cart R N') a b)) (Rplus r s))))))). +Axiom thm_OPEN_TRANSLATION_SUBSET_PREIMAGE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ (@_open N' t)) -> @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_3344 : cart R N' => exists a : cart R N', @SETSPEC (cart R N') GEN_PVAR_3344 (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) t) a)). +Axiom thm_UNIFORMLY_CONTINUOUS_ON_SETDIST : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall t' : (cart R M) -> Prop, ((@uniformly_continuous_on M N' f s) /\ ((@SUBSET (cart R M) t s) /\ ((@SUBSET (cart R M) t' s) /\ ((@setdist M (@pair ((cart R M) -> Prop) ((cart R M) -> Prop) t t')) = (R_of_N (NUMERAL 0%N)))))) -> (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R M) (cart R N') f t) (@IMAGE (cart R M) (cart R N') f t'))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_UNIFORMLY_CONTINUOUS_ON_SETDIST_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@uniformly_continuous_on M N' f s) = (forall t : (cart R M) -> Prop, forall t' : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ ((@SUBSET (cart R M) t' s) /\ ((@setdist M (@pair ((cart R M) -> Prop) ((cart R M) -> Prop) t t')) = (R_of_N (NUMERAL 0%N))))) -> (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R M) (cart R N') f t) (@IMAGE (cart R M) (cart R N') f t'))) = (R_of_N (NUMERAL 0%N))). +Axiom thm_OPEN_IN_SEPARATED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (Rlt (R_of_N (NUMERAL 0%N)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t). +Axiom thm_CLOSED_IN_SEPARATED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (Rlt (R_of_N (NUMERAL 0%N)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))) -> (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t). +Axiom thm_COMPACT_IN_SEPARATED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' (@UNION (cart R N') s t)) /\ (Rlt (R_of_N (NUMERAL 0%N)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)))) -> (@compact N' s) /\ (@compact N' t). +Axiom thm_CONNECTED_IMP_NONSEPARATED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@connected N' (@UNION (cart R N') s t)) -> (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SEPARATION_CLOSURES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (((@INTER (cart R N') s (@closure N' t)) = (@EMPTY (cart R N'))) /\ ((@INTER (cart R N') t (@closure N' s)) = (@EMPTY (cart R N')))) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@DISJOINT (cart R N') u v) /\ ((@_open N' u) /\ ((@_open N' v) /\ ((@SUBSET (cart R N') s u) /\ (@SUBSET (cart R N') t v)))). +Axiom thm_SEPARATION_NORMAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))))) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@_open N' u) /\ ((@_open N' v) /\ ((@SUBSET (cart R N') s u) /\ ((@SUBSET (cart R N') t v) /\ ((@INTER (cart R N') u v) = (@EMPTY (cart R N')))))). +Axiom thm_SEPARATION_NORMAL_LOCAL_CLOSURES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ (@DISJOINT (cart R N') s t))) -> exists s' : (cart R N') -> Prop, exists t' : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s') /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t') /\ ((@SUBSET (cart R N') s s') /\ ((@SUBSET (cart R N') t t') /\ ((@DISJOINT (cart R N') s' t') /\ (@DISJOINT (cart R N') (@closure_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) s') (@closure_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) t')))))). +Axiom thm_SEPARATION_NORMAL_LOCAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))))) -> exists s' : (cart R N') -> Prop, exists t' : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s') /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t') /\ ((@SUBSET (cart R N') s s') /\ ((@SUBSET (cart R N') t t') /\ ((@INTER (cart R N') s' t') = (@EMPTY (cart R N')))))). +Axiom thm_SEPARATION_NORMAL_CLOSURES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ (@DISJOINT (cart R N') s t))) -> exists s' : (cart R N') -> Prop, exists t' : (cart R N') -> Prop, (@_open N' s') /\ ((@_open N' t') /\ ((@SUBSET (cart R N') s s') /\ ((@SUBSET (cart R N') t t') /\ ((@DISJOINT (cart R N') s' t') /\ (@DISJOINT (cart R N') (@closure N' s') (@closure N' t')))))). +Axiom thm_SEPARATION_NORMAL_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@closed N' t) /\ ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))))) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@_open N' u) /\ ((@compact N' (@closure N' u)) /\ ((@_open N' v) /\ ((@SUBSET (cart R N') s u) /\ ((@SUBSET (cart R N') t v) /\ ((@INTER (cart R N') u v) = (@EMPTY (cart R N'))))))). +Axiom thm_SEPARATION_HAUSDORFF : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (~ (x = y)) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@_open N' u) /\ ((@_open N' v) /\ ((@IN (cart R N') x u) /\ ((@IN (cart R N') y v) /\ ((@INTER (cart R N') u v) = (@EMPTY (cart R N')))))). +Axiom thm_SEPARATION_T2 : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (~ (x = y)) = (exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@_open N' u) /\ ((@_open N' v) /\ ((@IN (cart R N') x u) /\ ((@IN (cart R N') y v) /\ ((@INTER (cart R N') u v) = (@EMPTY (cart R N'))))))). +Axiom thm_SEPARATION_T1 : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (~ (x = y)) = (exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@_open N' u) /\ ((@_open N' v) /\ ((@IN (cart R N') x u) /\ ((~ (@IN (cart R N') y u)) /\ ((~ (@IN (cart R N') x v)) /\ (@IN (cart R N') y v)))))). +Axiom thm_SEPARATION_T0 : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (~ (x = y)) = (exists u : (cart R N') -> Prop, (@_open N' u) /\ (~ ((@IN (cart R N') x u) = (@IN (cart R N') y u)))). +Axiom thm_CLOSED_IN_EQ_CONTINUOUS_LEVELSET : forall {M N' : Type'}, forall u : (cart R M) -> Prop, forall s : (cart R M) -> Prop, forall a : cart R N', (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s) = (exists f : (cart R M) -> cart R N', (@continuous_on M N' f u) /\ ((@GSPEC (cart R M) (fun GEN_PVAR_3353 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3353 ((@IN (cart R M) x u) /\ ((f x) = a)) x)) = s)). +Axiom thm_CLOSED_EQ_CONTINUOUS_LEVELSET : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall a : cart R N', (@closed M s) = (exists f : (cart R M) -> cart R N', (@continuous_on M N' f (@UNIV (cart R M))) /\ ((@GSPEC (cart R M) (fun GEN_PVAR_3356 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3356 ((f x) = a) x)) = s)). +Axiom thm_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) = (~ (exists e1 : (cart R N') -> Prop, exists e2 : (cart R N') -> Prop, (@_open N' e1) /\ ((@_open N' e2) /\ ((@SUBSET (cart R N') s (@UNION (cart R N') e1 e2)) /\ (((@INTER (cart R N') e1 e2) = (@EMPTY (cart R N'))) /\ ((~ ((@INTER (cart R N') e1 s) = (@EMPTY (cart R N')))) /\ (~ ((@INTER (cart R N') e2 s) = (@EMPTY (cart R N')))))))))). +Axiom thm_CONNECTED_CHAIN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@compact N' s) /\ (@connected N' s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s))) -> @connected N' (@INTERS (cart R N') f). +Axiom thm_CONNECTED_CHAIN_GEN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed N' s) /\ (@connected N' s)) /\ ((exists s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) /\ (@compact N' s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s)))) -> @connected N' (@INTERS (cart R N') f). +Axiom thm_CONNECTED_NEST : forall {_841447 : Type'}, forall s : N -> (cart R _841447) -> Prop, ((forall n : N, (@compact _841447 (s n)) /\ (@connected _841447 (s n))) /\ (forall m : N, forall n : N, (N.le m n) -> @SUBSET (cart R _841447) (s n) (s m))) -> @connected _841447 (@INTERS (cart R _841447) (@GSPEC ((cart R _841447) -> Prop) (fun GEN_PVAR_3358 : (cart R _841447) -> Prop => exists n : N, @SETSPEC ((cart R _841447) -> Prop) GEN_PVAR_3358 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_CONNECTED_NEST_GEN : forall {_841507 : Type'}, forall s : N -> (cart R _841507) -> Prop, ((forall n : N, (@closed _841507 (s n)) /\ (@connected _841507 (s n))) /\ ((exists n : N, @compact _841507 (s n)) /\ (forall m : N, forall n : N, (N.le m n) -> @SUBSET (cart R _841507) (s n) (s m)))) -> @connected _841507 (@INTERS (cart R _841507) (@GSPEC ((cart R _841507) -> Prop) (fun GEN_PVAR_3359 : (cart R _841507) -> Prop => exists n : N, @SETSPEC ((cart R _841507) -> Prop) GEN_PVAR_3359 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_hausdist : forall {N' : Type'}, forall t : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (@LET (R -> Prop) R (fun ds : R -> Prop => @LET_END R (@COND R ((~ (ds = (@EMPTY R))) /\ (exists b : R, forall d : R, (@IN R d ds) -> Rle d b)) (sup ds) (R_of_N (NUMERAL 0%N)))) (@UNION R (@GSPEC R (fun GEN_PVAR_3360 : R => exists x : cart R N', @SETSPEC R GEN_PVAR_3360 (@IN (cart R N') x s) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) t)))) (@GSPEC R (fun GEN_PVAR_3361 : R => exists y : cart R N', @SETSPEC R GEN_PVAR_3361 (@IN (cart R N') y t) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) s)))))). +Axiom thm_HAUSDIST_POS_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, Rle (R_of_N (NUMERAL 0%N)) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_HAUSDIST_POS_LT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (Rlt (R_of_N (NUMERAL 0%N)) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))) = (~ ((@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_ABS_HAUSDIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (Rabs (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))) = (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_HAUSDIST_REFL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s s)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_HAUSDIST_SYM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t s)). +Axiom thm_HAUSDIST_EMPTY : forall {N' : Type'}, (forall t : (cart R N') -> Prop, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@EMPTY (cart R N')) t)) = (R_of_N (NUMERAL 0%N))) /\ (forall s : (cart R N') -> Prop, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s (@EMPTY (cart R N')))) = (R_of_N (NUMERAL 0%N))). +Axiom thm_HAUSDIST_SINGS : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) (@INSERT (cart R N') y (@EMPTY (cart R N'))))) = (@distance N' (@pair (cart R N') (cart R N') x y)). +Axiom thm_HAUSDIST_SCALING : forall {N' : Type'}, forall a : R, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' a x) s) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' a x) t))) = (Rmult (Rabs a) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))). +Axiom thm_HAUSDIST_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall s' : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, (forall b : R, ((forall x : cart R M, (@IN (cart R M) x s) -> Rle (@setdist M (@pair ((cart R M) -> Prop) ((cart R M) -> Prop) (@INSERT (cart R M) x (@EMPTY (cart R M))) t)) b) /\ (forall y : cart R M, (@IN (cart R M) y t) -> Rle (@setdist M (@pair ((cart R M) -> Prop) ((cart R M) -> Prop) (@INSERT (cart R M) y (@EMPTY (cart R M))) s)) b)) = ((forall x : cart R N', (@IN (cart R N') x s') -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) t')) b) /\ (forall y : cart R N', (@IN (cart R N') y t') -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) s')) b))) -> (@hausdist M (@pair ((cart R M) -> Prop) ((cart R M) -> Prop) s t)) = (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s' t')). +Axiom thm_HAUSDIST_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) t))) = (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_HAUSDIST_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, (@vector_norm N' (f x)) = (@vector_norm M x))) -> (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R M) (cart R N') f s) (@IMAGE (cart R M) (cart R N') f t))) = (@hausdist M (@pair ((cart R M) -> Prop) ((cart R M) -> Prop) s t)). +Axiom thm_HAUSDIST_CLOSURE : forall {N' : Type'}, (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@closure N' s) t)) = (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s (@closure N' t))) = (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))). +Axiom thm_REAL_HAUSDIST_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall b : R, ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) t)) b) /\ (forall y : cart R N', (@IN (cart R N') y t) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) s)) b)))) -> Rle (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) b. +Axiom thm_REAL_HAUSDIST_LE_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall b : R, ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_3384 : cart R N' => exists y : cart R N', exists z : cart R N', @SETSPEC (cart R N') GEN_PVAR_3384 ((@IN (cart R N') y t) /\ (@IN (cart R N') z (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) b)))) (@vector_add N' y z)))) /\ (@SUBSET (cart R N') t (@GSPEC (cart R N') (fun GEN_PVAR_3385 : cart R N' => exists y : cart R N', exists z : cart R N', @SETSPEC (cart R N') GEN_PVAR_3385 ((@IN (cart R N') y s) /\ (@IN (cart R N') z (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) b)))) (@vector_add N' y z))))))) -> Rle (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) b. +Axiom thm_REAL_LE_HAUSDIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : R, forall b : R, forall c : R, forall z : cart R N', ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) t)) b) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) s)) c) /\ (((@IN (cart R N') z s) /\ (Rle a (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') z (@EMPTY (cart R N'))) t)))) \/ ((@IN (cart R N') z t) /\ (Rle a (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') z (@EMPTY (cart R N'))) s))))))))) -> Rle a (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_SETDIST_LE_HAUSDIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ (@bounded N' t)) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_SETDIST_SING_LE_HAUSDIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', ((@bounded N' s) /\ ((@bounded N' t) /\ (@IN (cart R N') x s))) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) t)) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_SETDIST_HAUSDIST_TRIANGLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((~ (t = (@EMPTY (cart R N')))) /\ ((@bounded N' t) /\ (@bounded N' u))) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s u)) (Rplus (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u))). +Axiom thm_HAUSDIST_SETDIST_TRIANGLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((~ (t = (@EMPTY (cart R N')))) /\ ((@bounded N' s) /\ (@bounded N' t))) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s u)) (Rplus (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u))). +Axiom thm_REAL_LT_HAUSDIST_POINT_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', forall d : R, ((@bounded N' s) /\ ((@bounded N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ ((Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) d) /\ (@IN (cart R N') x s))))) -> exists y : cart R N', (@IN (cart R N') y t) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) d). +Axiom thm_HAUSDIST_UNIFORMLY_CONTINUOUS_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@uniformly_continuous_on M N' f s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R M) -> Prop, forall t' : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ ((@SUBSET (cart R M) t' s) /\ ((@bounded M t) /\ ((@bounded M t') /\ (Rlt (@hausdist M (@pair ((cart R M) -> Prop) ((cart R M) -> Prop) t' t)) d))))) -> Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R M) (cart R N') f t') (@IMAGE (cart R M) (cart R N') f t))) e)). +Axiom thm_SUBSET_COMPACT_HAUSDIST_LIMIT : forall {N' : Type'}, forall f : N -> (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((forall n : N, @SUBSET (cart R N') t (f n)) /\ ((forall n : N, @bounded N' (f n)) /\ (@FImp unit N (fun n : N => lift (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f n) s))) (@vec unit (NUMERAL 0%N)) sequentially))))) -> @SUBSET (cart R N') t s. +Axiom thm_UPPER_LOWER_HEMICONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall s : (cart R M) -> Prop, ((forall x : cart R M, (@IN (cart R M) x s) -> @SUBSET (cart R N') (f x) t) /\ ((forall u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3388 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3388 ((@IN (cart R M) x s) /\ (@SUBSET (cart R N') (f x) u)) x))) /\ (forall u : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_3389 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3389 ((@IN (cart R M) x s) /\ (@SUBSET (cart R N') (f x) u)) x))))) -> forall x : cart R M, forall e : R, ((@IN (cart R M) x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@bounded N' (f x)))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R M, ((@IN (cart R M) x' s) /\ (Rlt (@distance M (@pair (cart R M) (cart R M) x x')) d)) -> Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f x) (f x'))) e). +Axiom thm_HAUSDIST_NONTRIVIAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ ((@bounded N' t) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (t = (@EMPTY (cart R N'))))))) -> (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (sup (@UNION R (@GSPEC R (fun GEN_PVAR_3390 : R => exists x : cart R N', @SETSPEC R GEN_PVAR_3390 (@IN (cart R N') x s) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) t)))) (@GSPEC R (fun GEN_PVAR_3391 : R => exists y : cart R N', @SETSPEC R GEN_PVAR_3391 (@IN (cart R N') y t) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) s)))))). +Axiom thm_HAUSDIST_NONTRIVIAL_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ ((@bounded N' t) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (t = (@EMPTY (cart R N'))))))) -> (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (Rmax (sup (@GSPEC R (fun GEN_PVAR_3392 : R => exists x : cart R N', @SETSPEC R GEN_PVAR_3392 (@IN (cart R N') x s) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) t))))) (sup (@GSPEC R (fun GEN_PVAR_3393 : R => exists y : cart R N', @SETSPEC R GEN_PVAR_3393 (@IN (cart R N') y t) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) s)))))). +Axiom thm_REAL_HAUSDIST_LE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall b : R, ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ ((@bounded N' s) /\ (@bounded N' t)))) -> (Rle (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) b) = ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) t)) b) /\ (forall y : cart R N', (@IN (cart R N') y t) -> Rle (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') y (@EMPTY (cart R N'))) s)) b)). +Axiom thm_HAUSDIST_UNION_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@bounded N' s) /\ ((@bounded N' t) /\ ((@bounded N' u) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (~ (u = (@EMPTY (cart R N')))))))) -> Rle (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@UNION (cart R N') s t) (@UNION (cart R N') s u))) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u)). +Axiom thm_HAUSDIST_INSERT_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', ((@bounded N' s) /\ ((@bounded N' t) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (t = (@EMPTY (cart R N'))))))) -> Rle (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') a s) (@INSERT (cart R N') a t))) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_HAUSDIST_COMPACT_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ ((@compact N' t) /\ (~ (t = (@EMPTY (cart R N')))))) -> forall x : cart R N', (@IN (cart R N') x s) -> exists y : cart R N', (@IN (cart R N') y t) /\ (Rle (@distance N' (@pair (cart R N') (cart R N') x y)) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))). +Axiom thm_HAUSDIST_TRIANGLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@bounded N' s) /\ ((@bounded N' t) /\ ((@bounded N' u) /\ (~ (t = (@EMPTY (cart R N'))))))) -> Rle (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s u)) (Rplus (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u))). +Axiom thm_HAUSDIST_COMPACT_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ ((@compact N' t) /\ (~ (t = (@EMPTY (cart R N')))))) -> @SUBSET (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_3395 : cart R N' => exists y : cart R N', exists z : cart R N', @SETSPEC (cart R N') GEN_PVAR_3395 ((@IN (cart R N') y t) /\ (@IN (cart R N') z (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)))))) (@vector_add N' y z))). +Axiom thm_HAUSDIST_SUMS_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall v : (cart R N') -> Prop, ((@bounded N' s) /\ ((@bounded N' t) /\ ((@bounded N' u) /\ (@bounded N' v)))) -> Rle (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@GSPEC (cart R N') (fun GEN_PVAR_3398 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3398 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))) (@GSPEC (cart R N') (fun GEN_PVAR_3399 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3399 ((@IN (cart R N') x u) /\ (@IN (cart R N') y v)) (@vector_add N' x y))))) (Rplus (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s u)) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t v))). +Axiom thm_HAUSDIST_SUMS_LE_LCANCEL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@bounded N' s) /\ ((@bounded N' t) /\ (@bounded N' u))) -> Rle (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@GSPEC (cart R N') (fun GEN_PVAR_3400 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3400 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))) (@GSPEC (cart R N') (fun GEN_PVAR_3401 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3401 ((@IN (cart R N') x s) /\ (@IN (cart R N') y u)) (@vector_add N' x y))))) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u)). +Axiom thm_HAUSDIST_SUMS_LE_RCANCEL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@bounded N' s) /\ ((@bounded N' t) /\ (@bounded N' u))) -> Rle (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@GSPEC (cart R N') (fun GEN_PVAR_3402 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3402 ((@IN (cart R N') x s) /\ (@IN (cart R N') y u)) (@vector_add N' x y))) (@GSPEC (cart R N') (fun GEN_PVAR_3403 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3403 ((@IN (cart R N') x t) /\ (@IN (cart R N') y u)) (@vector_add N' x y))))) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_HAUSDIST_EQ_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ (@bounded N' t)) -> ((@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (R_of_N (NUMERAL 0%N))) = ((s = (@EMPTY (cart R N'))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@closure N' s) = (@closure N' t)))). +Axiom thm_HAUSDIST_COMPACT_NONTRIVIAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@compact N' t) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (t = (@EMPTY (cart R N'))))))) -> (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (inf (@GSPEC R (fun GEN_PVAR_3406 : R => exists e : R, @SETSPEC R GEN_PVAR_3406 ((Rle (R_of_N (NUMERAL 0%N)) e) /\ ((@SUBSET (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_3404 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3404 ((@IN (cart R N') x t) /\ (Rle (@vector_norm N' y) e)) (@vector_add N' x y)))) /\ (@SUBSET (cart R N') t (@GSPEC (cart R N') (fun GEN_PVAR_3405 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3405 ((@IN (cart R N') x s) /\ (Rle (@vector_norm N' y) e)) (@vector_add N' x y)))))) e))). +Axiom thm_HAUSDIST_BALLS : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@ball N' (@pair (cart R N') R a r)) (@ball N' (@pair (cart R N') R b s)))) = (@COND R ((Rle r (R_of_N (NUMERAL 0%N))) \/ (Rle s (R_of_N (NUMERAL 0%N)))) (R_of_N (NUMERAL 0%N)) (Rplus (@distance N' (@pair (cart R N') (cart R N') a b)) (Rabs (Rminus r s))))) /\ ((forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@ball N' (@pair (cart R N') R a r)) (@cball N' (@pair (cart R N') R b s)))) = (@COND R ((Rle r (R_of_N (NUMERAL 0%N))) \/ (Rlt s (R_of_N (NUMERAL 0%N)))) (R_of_N (NUMERAL 0%N)) (Rplus (@distance N' (@pair (cart R N') (cart R N') a b)) (Rabs (Rminus r s))))) /\ ((forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@cball N' (@pair (cart R N') R a r)) (@ball N' (@pair (cart R N') R b s)))) = (@COND R ((Rlt r (R_of_N (NUMERAL 0%N))) \/ (Rle s (R_of_N (NUMERAL 0%N)))) (R_of_N (NUMERAL 0%N)) (Rplus (@distance N' (@pair (cart R N') (cart R N') a b)) (Rabs (Rminus r s))))) /\ (forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@cball N' (@pair (cart R N') R a r)) (@cball N' (@pair (cart R N') R b s)))) = (@COND R ((Rlt r (R_of_N (NUMERAL 0%N))) \/ (Rlt s (R_of_N (NUMERAL 0%N)))) (R_of_N (NUMERAL 0%N)) (Rplus (@distance N' (@pair (cart R N') (cart R N') a b)) (Rabs (Rminus r s))))))). +Axiom thm_HAUSDIST_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ ((@bounded N' t) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (t = (@EMPTY (cart R N'))))))) -> (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) = (sup (@GSPEC R (fun GEN_PVAR_3407 : R => exists x : cart R N', @SETSPEC R GEN_PVAR_3407 (@IN (cart R N') x (@UNIV (cart R N'))) (Rabs (Rminus (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) s)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) t))))))). +Axiom thm_DIAMETERS_HAUSDIST_BOUND : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@bounded N' t) /\ (~ (t = (@EMPTY (cart R N'))))))) -> Rle (Rabs (Rminus (@diameter N' s) (@diameter N' t))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t))). +Axiom thm_CONTINUOUS_DIAMETER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@bounded N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R N') -> Prop, ((@bounded N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) d))) -> Rlt (Rabs (Rminus (@diameter N' s) (@diameter N' t))) e). +Axiom thm_CONNECTED_HAUSDIST_LIMIT : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, forall k : (cart R N') -> Prop, ((forall n : N, (@bounded N' (s n)) /\ ((@connected N' (s n)) /\ (~ ((s n) = (@EMPTY (cart R N')))))) /\ ((@compact N' k) /\ (@FImp unit N (fun n : N => lift (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (s n) k))) (@vec unit (NUMERAL 0%N)) sequentially))) -> @connected N' k. +Axiom thm_HAUSDIST_COMPACT_INTERS_LIMIT : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, ((forall n : N, @compact N' (s n)) /\ (forall n : N, @SUBSET (cart R N') (s (N.succ n)) (s n))) -> @FImp unit N (fun n : N => lift (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (s n) (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3421 : (cart R N') -> Prop => exists i : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3421 (@IN N i (@UNIV N)) (s i))))))) (@vec unit (NUMERAL 0%N)) sequentially. +Axiom thm_COMPLETE_HAUSDIST_UNIV : forall {N' : Type'}, forall f : N -> (cart R N') -> Prop, ((forall n : N, (@bounded N' (f n)) /\ (~ ((f n) = (@EMPTY (cart R N'))))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, ((N.ge m N'') /\ (N.ge n N'')) -> Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f m) (f n))) e)) -> exists s : (cart R N') -> Prop, (@compact N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@FImp unit N (fun n : N => lift (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f n) s))) (@vec unit (NUMERAL 0%N)) sequentially)). +Axiom thm_COMPLETE_HAUSDIST : forall {N' : Type'}, forall f : N -> (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@closed N' c) /\ ((forall n : N, (@bounded N' (f n)) /\ ((~ ((f n) = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') (f n) c))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, ((N.ge m N'') /\ (N.ge n N'')) -> Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f m) (f n))) e))) -> exists s : (cart R N') -> Prop, (@compact N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') s c) /\ (@FImp unit N (fun n : N => lift (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f n) s))) (@vec unit (NUMERAL 0%N)) sequentially))). +Axiom thm_TOTALLY_BOUNDED_HAUSDIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@bounded N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists k : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) k) /\ ((forall u : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) u k) -> (~ (u = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') u s)) /\ (forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') t s) /\ (~ (t = (@EMPTY (cart R N'))))) -> exists u : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) u k) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u)) e))). +Axiom thm_COMPACT_HAUSDIST : forall {N' : Type'}, forall f : N -> (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' c) /\ (forall n : N, (~ ((f n) = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') (f n) c))) -> exists r : N -> N, exists s : (cart R N') -> Prop, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ ((@compact N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') s c) /\ (@FImp unit N (fun n : N => lift (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f (r n)) s))) (@vec unit (NUMERAL 0%N)) sequentially)))). +Axiom thm_ISOMETRY_IMP_OPEN_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance M (@pair (cart R M) (cart R M) x y))) /\ (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u))) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u). +Axiom thm_ISOMETRY_IMP_EMBEDDING : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (((@IMAGE (cart R M) (cart R N') f s) = t) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance M (@pair (cart R M) (cart R M) x y)))) -> exists g : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g). +Axiom thm_ISOMETRY_IMP_HOMEOMORPHISM_COMPACT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance N' (@pair (cart R N') (cart R N') x y))))) -> exists g : (cart R N') -> cart R N', @homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s s) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g). +Axiom thm_URYSOHN_LOCAL_STRONG : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall a : cart R M, forall b : cart R M, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ (((@INTER (cart R N') s t) = (@EMPTY (cart R N'))) /\ (~ (a = b))))) -> exists f : (cart R N') -> cart R M, (@continuous_on N' M f u) /\ ((forall x : cart R N', (@IN (cart R N') x u) -> @IN (cart R M) (f x) (@closed_segment M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((forall x : cart R N', (@IN (cart R N') x u) -> ((f x) = a) = (@IN (cart R N') x s)) /\ (forall x : cart R N', (@IN (cart R N') x u) -> ((f x) = b) = (@IN (cart R N') x t)))). +Axiom thm_URYSOHN_LOCAL : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall a : cart R M, forall b : cart R M, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))))) -> exists f : (cart R N') -> cart R M, (@continuous_on N' M f u) /\ ((forall x : cart R N', (@IN (cart R N') x u) -> @IN (cart R M) (f x) (@closed_segment M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (f x) = a) /\ (forall x : cart R N', (@IN (cart R N') x t) -> (f x) = b))). +Axiom thm_URYSOHN_STRONG : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R M, forall b : cart R M, ((@closed N' s) /\ ((@closed N' t) /\ (((@INTER (cart R N') s t) = (@EMPTY (cart R N'))) /\ (~ (a = b))))) -> exists f : (cart R N') -> cart R M, (@continuous_on N' M f (@UNIV (cart R N'))) /\ ((forall x : cart R N', @IN (cart R M) (f x) (@closed_segment M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((forall x : cart R N', ((f x) = a) = (@IN (cart R N') x s)) /\ (forall x : cart R N', ((f x) = b) = (@IN (cart R N') x t)))). +Axiom thm_URYSOHN : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R M, forall b : cart R M, ((@closed N' s) /\ ((@closed N' t) /\ ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))))) -> exists f : (cart R N') -> cart R M, (@continuous_on N' M f (@UNIV (cart R N'))) /\ ((forall x : cart R N', @IN (cart R M) (f x) (@closed_segment M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (f x) = a) /\ (forall x : cart R N', (@IN (cart R N') x t) -> (f x) = b))). +Axiom thm_CLOSURE_DYADIC_RATIONALS : forall {N' : Type'}, (@closure N' (@GSPEC (cart R N') (fun GEN_PVAR_3437 : cart R N' => exists n : N, exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3437 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> integer (@dollar R N' x i)) (@percent N' (Rinv (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) x)))) = (@UNIV (cart R N')). +Axiom thm_CLOSURE_RATIONAL_COORDINATES : forall {N' : Type'}, (@closure N' (@GSPEC (cart R N') (fun GEN_PVAR_3439 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3439 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> rational (@dollar R N' x i)) x))) = (@UNIV (cart R N')). +Axiom thm_CLOSURE_DYADIC_RATIONALS_IN_OPEN_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> (@closure N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_3440 : cart R N' => exists n : N, exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3440 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> integer (@dollar R N' x i)) (@percent N' (Rinv (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) x))))) = (@closure N' s). +Axiom thm_CLOSURE_RATIONALS_IN_OPEN_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> (@closure N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_3441 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3441 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> rational (@dollar R N' x i)) x)))) = (@closure N' s). +Axiom thm_UNIV_SECOND_COUNTABLE : forall {N' : Type'}, exists b : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) b) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c b) -> @_open N' c) /\ (forall s : (cart R N') -> Prop, (@_open N' s) -> exists u : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) u b) /\ (s = (@UNIONS (cart R N') u)))). +Axiom thm_UNIV_SECOND_COUNTABLE_SEQUENCE : forall {N' : Type'}, exists b : N -> (cart R N') -> Prop, (forall m : N, forall n : N, ((b m) = (b n)) = (m = n)) /\ ((forall n : N, @_open N' (b n)) /\ (forall s : (cart R N') -> Prop, (@_open N' s) -> exists k : N -> Prop, s = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3448 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3448 (@IN N n k) (b n)))))). +Axiom thm_SUBSET_SECOND_COUNTABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, exists b : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) b) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c b) -> (~ (c = (@EMPTY (cart R N')))) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c)) /\ (forall t : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) -> exists u : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) u b) /\ (t = (@UNIONS (cart R N') u)))). +Axiom thm_SEPARABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, exists t : (cart R N') -> Prop, (@COUNTABLE (cart R N') t) /\ ((@SUBSET (cart R N') t s) /\ (@SUBSET (cart R N') s (@closure N' t))). +Axiom thm_OPEN_SET_RATIONAL_COORDINATES : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists x : cart R N', (@IN (cart R N') x s) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> rational (@dollar R N' x i)). +Axiom thm_OPEN_COUNTABLE_UNION_CLOSED_INTERVALS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> exists D : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) D) /\ ((forall i : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) i D) -> (@SUBSET (cart R N') i s) /\ (exists a : cart R N', exists b : cart R N', i = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) /\ ((@UNIONS (cart R N') D) = s)). +Axiom thm_OPEN_COUNTABLE_UNION_OPEN_INTERVALS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> exists D : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) D) /\ ((forall i : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) i D) -> (@SUBSET (cart R N') i s) /\ (exists a : cart R N', exists b : cart R N', i = (@open_interval N' (@pair (cart R N') (cart R N') a b)))) /\ ((@UNIONS (cart R N') D) = s)). +Axiom thm_LINDELOF : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @_open N' s) -> exists f' : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) f' f) /\ ((@COUNTABLE ((cart R N') -> Prop) f') /\ ((@UNIONS (cart R N') f') = (@UNIONS (cart R N') f))). +Axiom thm_LINDELOF_OPEN_IN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall u : (cart R N') -> Prop, (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) -> exists f' : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) f' f) /\ ((@COUNTABLE ((cart R N') -> Prop) f') /\ ((@UNIONS (cart R N') f') = (@UNIONS (cart R N') f))). +Axiom thm_COUNTABLE_DISJOINT_OPEN_IN_SUBSETS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall u : (cart R N') -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@pairwise ((cart R N') -> Prop) (@DISJOINT (cart R N')) f)) -> @COUNTABLE ((cart R N') -> Prop) f. +Axiom thm_COUNTABLE_DISJOINT_OPEN_SUBSETS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @_open N' s) /\ (@pairwise ((cart R N') -> Prop) (@DISJOINT (cart R N')) f)) -> @COUNTABLE ((cart R N') -> Prop) f. +Axiom thm_COUNTABLE_DISJOINT_NONEMPTY_INTERIOR_SUBSETS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ ((@interior N' s) = (@EMPTY (cart R N')))) -> s = (@EMPTY (cart R N'))) /\ (@pairwise ((cart R N') -> Prop) (@DISJOINT (cart R N')) f)) -> @COUNTABLE ((cart R N') -> Prop) f. +Axiom thm_COUNTABLE_COMPACT_OPEN_IN : forall {N' : Type'}, forall u : (cart R N') -> Prop, @COUNTABLE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3459 : (cart R N') -> Prop => exists c : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3459 ((@compact N' c) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) c)) c)). +Axiom thm_COUNTABLE_CLOPEN_IN : forall {N' : Type'}, forall u : (cart R N') -> Prop, (@compact N' u) -> @COUNTABLE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3461 : (cart R N') -> Prop => exists c : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3461 ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) c) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) c)) c)). +Axiom thm_CARD_EQ_OPEN_SETS : forall {N' : Type'}, @eq_c ((cart R N') -> Prop) R (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3464 : (cart R N') -> Prop => exists s : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3464 (@_open N' s) s)) (@UNIV R). +Axiom thm_CARD_EQ_CLOSED_SETS : forall {N' : Type'}, @eq_c ((cart R N') -> Prop) R (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3468 : (cart R N') -> Prop => exists s : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3468 (@closed N' s) s)) (@UNIV R). +Axiom thm_CARD_EQ_COMPACT_SETS : forall {N' : Type'}, @eq_c ((cart R N') -> Prop) R (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3470 : (cart R N') -> Prop => exists s : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3470 (@compact N' s) s)) (@UNIV R). +Axiom thm_COUNTABLE_NON_CONDENSATION_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, @COUNTABLE (cart R N') (@DIFF (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_3472 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3472 (@condensation_point_of N' x s) x))). +Axiom thm_COUNTABLE_NON_LIMIT_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, @COUNTABLE (cart R N') (@DIFF (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_3476 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3476 (@limit_point_of N' x s) x))). +Axiom thm_COUNTABLE_ISOLATED_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (forall a : cart R N', (@IN (cart R N') a s) -> ~ (@limit_point_of N' a s)) -> @COUNTABLE (cart R N') s. +Axiom thm_CARD_EQ_CONDENSATION_POINTS_IN_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@COUNTABLE (cart R N') s)) -> @eq_c (cart R N') (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_3480 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3480 ((@IN (cart R N') x s) /\ (@condensation_point_of N' x s)) x)) s. +Axiom thm_CONDENSATION_POINT_OF_CONDENSATION_POINTS : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@condensation_point_of N' x (@GSPEC (cart R N') (fun GEN_PVAR_3483 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3483 (@condensation_point_of N' y s) y))) = (@condensation_point_of N' x s). +Axiom thm_LIMPT_OF_CONDENSATION_POINTS : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@limit_point_of N' x (@GSPEC (cart R N') (fun GEN_PVAR_3482 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3482 (@condensation_point_of N' y s) y))) = (@condensation_point_of N' x s). +Axiom thm_CLOSED_CONDENSATION_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_3484 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_3484 (@condensation_point_of N' x s) x)). +Axiom thm_CANTOR_BENDIXSON_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ ((forall x : cart R N', (@IN (cart R N') x t) -> @condensation_point_of N' x t) /\ ((@COUNTABLE (cart R N') u) /\ ((@DISJOINT (cart R N') t u) /\ (s = (@UNION (cart R N') t u))))). +Axiom thm_CANTOR_BENDIXSON : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, (@closed N' t) /\ ((forall x : cart R N', (@IN (cart R N') x t) -> @limit_point_of N' x t) /\ ((@COUNTABLE (cart R N') u) /\ ((@DISJOINT (cart R N') t u) /\ (s = (@UNION (cart R N') t u))))). +Axiom thm_DISCRETE_IMP_COUNTABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (forall x : cart R N', (@IN (cart R N') x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall y : cart R N', ((@IN (cart R N') y s) /\ (~ (y = x))) -> Rle e (@vector_norm N' (@vector_sub N' y x)))) -> @COUNTABLE (cart R N') s. +Axiom thm_UNCOUNTABLE_CONTAINS_LIMIT_POINT : forall {_855837 : Type'}, forall s : (cart R _855837) -> Prop, (~ (@COUNTABLE (cart R _855837) s)) -> exists x : cart R _855837, (@IN (cart R _855837) x s) /\ (@limit_point_of _855837 x s). +Axiom thm_EVENTUALLY_WITHIN_RIGHT_ALT_GEN : forall P : (cart R unit) -> Prop, forall s : (cart R unit) -> Prop, forall a : cart R unit, (@eventually (cart R unit) P (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3488 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3488 ((@IN (cart R unit) x s) /\ (Rle (drop a) (drop x))) x)))) = (@eventually (cart R unit) P (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3489 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3489 ((@IN (cart R unit) x s) /\ (Rlt (drop a) (drop x))) x)))). +Axiom thm_EVENTUALLY_WITHIN_RIGHT_ALT : forall P : (cart R unit) -> Prop, forall a : cart R unit, (@eventually (cart R unit) P (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3490 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3490 (Rle (drop a) (drop x)) x)))) = (@eventually (cart R unit) P (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3491 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3491 (Rlt (drop a) (drop x)) x)))). +Axiom thm_RIGHT_LIMIT_WITHIN_ALT : forall {_856005 : Type'}, forall f : (cart R unit) -> cart R _856005, forall l : cart R _856005, forall s : (cart R unit) -> Prop, forall a : cart R unit, (@FImp _856005 (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3492 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3492 ((@IN (cart R unit) x s) /\ (Rle (drop a) (drop x))) x)))) = (@FImp _856005 (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3493 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3493 ((@IN (cart R unit) x s) /\ (Rlt (drop a) (drop x))) x)))). +Axiom thm_RIGHT_LIMIT_ALT : forall {_856084 : Type'}, forall f : (cart R unit) -> cart R _856084, forall l : cart R _856084, forall a : cart R unit, (@FImp _856084 (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3494 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3494 (Rle (drop a) (drop x)) x)))) = (@FImp _856084 (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3495 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3495 (Rlt (drop a) (drop x)) x)))). +Axiom thm_EVENTUALLY_WITHIN_LEFT_ALT_GEN : forall P : (cart R unit) -> Prop, forall s : (cart R unit) -> Prop, forall a : cart R unit, (@eventually (cart R unit) P (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3496 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3496 ((@IN (cart R unit) x s) /\ (Rle (drop x) (drop a))) x)))) = (@eventually (cart R unit) P (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3497 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3497 ((@IN (cart R unit) x s) /\ (Rlt (drop x) (drop a))) x)))). +Axiom thm_EVENTUALLY_WITHIN_LEFT_ALT : forall P : (cart R unit) -> Prop, forall a : cart R unit, (@eventually (cart R unit) P (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3498 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3498 (Rle (drop x) (drop a)) x)))) = (@eventually (cart R unit) P (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3499 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3499 (Rlt (drop x) (drop a)) x)))). +Axiom thm_LEFT_LIMIT_WITHIN_ALT : forall {_856302 : Type'}, forall f : (cart R unit) -> cart R _856302, forall l : cart R _856302, forall s : (cart R unit) -> Prop, forall a : cart R unit, (@FImp _856302 (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3500 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3500 ((@IN (cart R unit) x s) /\ (Rle (drop x) (drop a))) x)))) = (@FImp _856302 (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3501 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3501 ((@IN (cart R unit) x s) /\ (Rlt (drop x) (drop a))) x)))). +Axiom thm_LEFT_LIMIT_ALT : forall {_856381 : Type'}, forall f : (cart R unit) -> cart R _856381, forall l : cart R _856381, forall a : cart R unit, (@FImp _856381 (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3502 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3502 (Rle (drop x) (drop a)) x)))) = (@FImp _856381 (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3503 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3503 (Rlt (drop x) (drop a)) x)))). +Axiom thm_TWO_SIDED_LIMIT_WITHIN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, forall l : cart R N', (@FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit a) s)) = ((@FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit a) (@INTER (cart R unit) s (@GSPEC (cart R unit) (fun GEN_PVAR_3504 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3504 (Rle (drop x) (drop a)) x))))) /\ (@FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit a) (@INTER (cart R unit) s (@GSPEC (cart R unit) (fun GEN_PVAR_3505 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3505 (Rle (drop a) (drop x)) x)))))). +Axiom thm_TWO_SIDED_LIMIT_AT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall l : cart R N', (@FImp N' (cart R unit) f l (@_at unit a)) = ((@FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3506 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3506 (Rle (drop x) (drop a)) x)))) /\ (@FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3507 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3507 (Rle (drop a) (drop x)) x))))). +Axiom thm_NON_TRIVIAL_LIMIT_LEFT : forall a : cart R unit, ~ (@trivial_limit (cart R unit) (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3508 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3508 (Rle (drop x) (drop a)) x)))). +Axiom thm_NON_TRIVIAL_LIMIT_RIGHT : forall a : cart R unit, ~ (@trivial_limit (cart R unit) (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_3509 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3509 (Rle (drop a) (drop x)) x)))). +Axiom thm_COUNTABLE_TRIVIAL_RIGHT_LIMITS : forall s : (cart R unit) -> Prop, @COUNTABLE (cart R unit) (@GSPEC (cart R unit) (fun GEN_PVAR_3513 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3513 ((@IN (cart R unit) x s) /\ (@trivial_limit (cart R unit) (@within (cart R unit) (@_at unit x) (@GSPEC (cart R unit) (fun GEN_PVAR_3512 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3512 ((@IN (cart R unit) t s) /\ (Rle (drop x) (drop t))) t))))) x)). +Axiom thm_COUNTABLE_TRIVIAL_LEFT_LIMITS : forall s : (cart R unit) -> Prop, @COUNTABLE (cart R unit) (@GSPEC (cart R unit) (fun GEN_PVAR_3517 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3517 ((@IN (cart R unit) x s) /\ (@trivial_limit (cart R unit) (@within (cart R unit) (@_at unit x) (@GSPEC (cart R unit) (fun GEN_PVAR_3516 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3516 ((@IN (cart R unit) t s) /\ (Rle (drop t) (drop x))) t))))) x)). +Axiom thm_COUNTABLE_NONCONTINUOUS_RIGHT_LIMITS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, @COUNTABLE (cart R unit) (@GSPEC (cart R unit) (fun GEN_PVAR_3527 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3527 ((@IN (cart R unit) x s) /\ ((exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit x) (@GSPEC (cart R unit) (fun GEN_PVAR_3526 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3526 ((@IN (cart R unit) t s) /\ (Rle (drop x) (drop t))) t)))) /\ (~ (@continuous N' (cart R unit) f (@within (cart R unit) (@_at unit x) s))))) x)). +Axiom thm_COUNTABLE_NONCONTINUOUS_LEFT_LIMITS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, @COUNTABLE (cart R unit) (@GSPEC (cart R unit) (fun GEN_PVAR_3531 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3531 ((@IN (cart R unit) x s) /\ ((exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit x) (@GSPEC (cart R unit) (fun GEN_PVAR_3530 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3530 ((@IN (cart R unit) t s) /\ (Rle (drop t) (drop x))) t)))) /\ (~ (@continuous N' (cart R unit) f (@within (cart R unit) (@_at unit x) s))))) x)). +Axiom thm_COUNTABLE_NONCONTINUOUS_ONE_SIDED_LIMITS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, @COUNTABLE (cart R unit) (@GSPEC (cart R unit) (fun GEN_PVAR_3534 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3534 ((@IN (cart R unit) x s) /\ (((exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit x) (@GSPEC (cart R unit) (fun GEN_PVAR_3532 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3532 ((@IN (cart R unit) t s) /\ (Rle (drop t) (drop x))) t)))) \/ (exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit x) (@GSPEC (cart R unit) (fun GEN_PVAR_3533 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3533 ((@IN (cart R unit) t s) /\ (Rle (drop x) (drop t))) t))))) /\ (~ (@continuous N' (cart R unit) f (@within (cart R unit) (@_at unit x) s))))) x)). +Axiom thm_CLOSED_LOCAL_HOMEOMORPHISM_IMP_PROPER_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((forall c : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) c) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f c)) /\ (forall w : (cart R M) -> Prop, forall x : cart R M, ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) w) /\ (@IN (cart R M) x w)) -> exists u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@PSUBSET (cart R M) (@INSERT (cart R M) x (@EMPTY (cart R M))) u) /\ ((@SUBSET (cart R M) u w) /\ ((@continuous_on M N' f u) /\ (forall x' : cart R M, ((@IN (cart R M) x' u) /\ (~ (x' = x))) -> ~ ((f x') = (f x)))))))) -> forall y : cart R N', @FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_3537 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3537 ((@IN (cart R M) x s) /\ ((f x) = y)) x)). +Axiom thm_CLOSED_LOCAL_HOMEOMORPHISM_IMP_PROPER : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((forall x : cart R M, ((@connected_component M s x) = (@INSERT (cart R M) x (@EMPTY (cart R M)))) -> s = (@INSERT (cart R M) x (@EMPTY (cart R M)))) /\ ((forall c : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) c) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f c)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists u : (cart R M) -> Prop, exists v : (cart R N') -> Prop, exists g : (cart R N') -> cart R M, (@IN (cart R M) x u) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) u v) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g))))))) -> forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3538 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3538 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)). +Axiom thm_BROUWER_REDUCTION_THEOREM_GEN : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((forall f : N -> (cart R N') -> Prop, ((forall n : N, (@closed N' (f n)) /\ (P (f n))) /\ (forall n : N, @SUBSET (cart R N') (f (N.succ n)) (f n))) -> P (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3541 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3541 (@IN N n (@UNIV N)) (f n))))) /\ ((@closed N' s) /\ (P s))) -> exists t : (cart R N') -> Prop, (@SUBSET (cart R N') t s) /\ ((@closed N' t) /\ ((P t) /\ (forall u : (cart R N') -> Prop, ((@SUBSET (cart R N') u s) /\ ((@closed N' u) /\ (P u))) -> ~ (@PSUBSET (cart R N') u t)))). +Axiom thm_BROUWER_REDUCTION_THEOREM : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((forall f : N -> (cart R N') -> Prop, ((forall n : N, (@compact N' (f n)) /\ ((~ ((f n) = (@EMPTY (cart R N')))) /\ (P (f n)))) /\ (forall n : N, @SUBSET (cart R N') (f (N.succ n)) (f n))) -> P (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3542 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3542 (@IN N n (@UNIV N)) (f n))))) /\ ((@compact N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (P s)))) -> exists t : (cart R N') -> Prop, (@SUBSET (cart R N') t s) /\ ((@compact N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ ((P t) /\ (forall u : (cart R N') -> Prop, ((@SUBSET (cart R N') u s) /\ ((@closed N' u) /\ ((~ (u = (@EMPTY (cart R N')))) /\ (P u)))) -> ~ (@PSUBSET (cart R N') u t))))). +Axiom thm_MINIMAL_CONTINUUM : forall {N' : Type'}, forall t : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@SUBSET (cart R N') t s) /\ ((@compact N' s) /\ (@connected N' s))) -> exists u : (cart R N') -> Prop, (@SUBSET (cart R N') t u) /\ ((@SUBSET (cart R N') u s) /\ ((@compact N' u) /\ ((@connected N' u) /\ (forall v : (cart R N') -> Prop, ((@SUBSET (cart R N') v u) /\ ((@SUBSET (cart R N') t v) /\ ((@compact N' v) /\ (@connected N' v)))) -> v = u)))). +Axiom thm_FUNCTION_CONVERGENT_SUBSEQUENCE : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall M' : R, ((@COUNTABLE (cart R M) s) /\ (forall n : N, forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f n x)) M')) -> exists k : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (k m) (k n)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists l : cart R N', @FImp N' N (fun n : N => f (k n) x) l sequentially). +Axiom thm_ARZELA_ASCOLI : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall M' : R, ((@compact M s) /\ ((forall n : N, forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f n x)) M') /\ (forall x : cart R M, forall e : R, ((@IN (cart R M) x s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall n : N, forall y : cart R M, ((@IN (cart R M) y s) /\ (Rlt (@vector_norm M (@vector_sub M x y)) d)) -> Rlt (@vector_norm N' (@vector_sub N' (f n x) (f n y))) e)))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g s) /\ (exists r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : cart R M, ((N.ge n N'') /\ (@IN (cart R M) x s)) -> Rlt (@vector_norm N' (@vector_sub N' (f (r n) x) (g x))) e)). +Axiom thm_ARZELA_ASCOLI_LIPSCHITZ : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall b : R, ((@compact M s) /\ ((@bounded N' t) /\ ((forall n : N, forall x : cart R M, (@IN (cart R M) x s) -> ~ ((@INTER (cart R N') (@IMAGE (cart R M) (cart R N') (f n) s) t) = (@EMPTY (cart R N')))) /\ (forall n : N, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f n x) (f n y))) (Rmult b (@vector_norm M (@vector_sub M x y))))))) -> exists g : (cart R M) -> cart R N', (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (g x) (g y))) (Rmult b (@vector_norm M (@vector_sub M x y)))) /\ (exists r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : cart R M, ((N.ge n N'') /\ (@IN (cart R M) x s)) -> Rlt (@vector_norm N' (@vector_sub N' (f (r n) x) (g x))) e)). +Axiom thm_locally : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall P : ((cart R N') -> Prop) -> Prop, (@locally N' P s) = (forall w : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) w) /\ (@IN (cart R N') x w)) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((P v) /\ ((@IN (cart R N') x u) /\ ((@SUBSET (cart R N') u v) /\ (@SUBSET (cart R N') v w))))). +Axiom thm_NEIGHBOURHOOD_BASE_OF_EUCLIDEAN : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, (@neighbourhood_base_of (cart R N') P (@subtopology (cart R N') (@euclidean N') s)) = (@locally N' P s). +Axiom thm_LOCALLY_MONO : forall {_861083 : Type'}, forall P : ((cart R _861083) -> Prop) -> Prop, forall Q : ((cart R _861083) -> Prop) -> Prop, forall s : (cart R _861083) -> Prop, ((forall t : (cart R _861083) -> Prop, (P t) -> Q t) /\ (@locally _861083 P s)) -> @locally _861083 Q s. +Axiom thm_LOCALLY_OPEN_SUBSET : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@locally N' P s) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t)) -> @locally N' P t. +Axiom thm_LOCALLY_LOCALLY : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, (@locally N' (@locally N' P)) = (@locally N' P). +Axiom thm_LOCALLY_ON_NBDS : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, (@locally N' P s) = (forall a : cart R N', (@IN (cart R N') a s) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@IN (cart R N') a u) /\ ((@SUBSET (cart R N') u v) /\ ((@SUBSET (cart R N') v s) /\ (@locally N' P v))))). +Axiom thm_LOCALLY_ON_OPEN_SUBSETS : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, (@locally N' P s) = (forall a : cart R N', (@IN (cart R N') a s) -> exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ ((@IN (cart R N') a v) /\ (@locally N' P v))). +Axiom thm_LOCALLY_AND_SUBSET : forall {N' : Type'} (P : ((cart R N') -> Prop) -> Prop), forall s : (cart R N') -> Prop, (@locally N' P s) = (@locally N' (fun t : (cart R N') -> Prop => (@SUBSET (cart R N') t s) /\ (P t)) s). +Axiom thm_LOCALLY_AND_OPEN_IN : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, (@locally N' (fun u : (cart R N') -> Prop => (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (P u)) s) = (forall v : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@IN (cart R N') x v)) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((P u) /\ ((@IN (cart R N') x u) /\ (@SUBSET (cart R N') u v)))). +Axiom thm_LOCALLY_AND_SMALL_LE : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> (@locally N' P) = (@locally N' (fun s : (cart R N') -> Prop => (P s) /\ ((@bounded N' s) /\ (Rle (@diameter N' s) e)))). +Axiom thm_LOCALLY_AND_SMALL_LT : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> (@locally N' P) = (@locally N' (fun s : (cart R N') -> Prop => (P s) /\ ((@bounded N' s) /\ (Rlt (@diameter N' s) e)))). +Axiom thm_LOCALLY_OPEN_BASIS : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, (@locally N' (fun u : (cart R N') -> Prop => (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (P u)) s) = (exists b : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) b) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c b) -> (~ (c = (@EMPTY (cart R N')))) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c) /\ (P c))) /\ (forall t : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) -> exists u : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) u b) /\ (t = (@UNIONS (cart R N') u))))). +Axiom thm_LOCALLY_AND_OPEN_IN_IDEMPOT : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, (@locally N' (fun u : (cart R N') -> Prop => (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@locally N' (fun v : (cart R N') -> Prop => (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) v) /\ (P v)) u)) s) = (@locally N' (fun u : (cart R N') -> Prop => (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (P u)) s). +Axiom thm_LOCALLY_IMP_COUNTABLE_UNION_OF : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, (@locally N' P s) -> @UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) P s. +Axiom thm_LOCALLY_IMP_FINITE_UNION_OF : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@locally N' P s)) -> @UNION_OF (cart R N') (@FINITE ((cart R N') -> Prop)) P s. +Axiom thm_LOCALLY_DIFF_CLOSED : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@locally N' P s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t)) -> @locally N' P (@DIFF (cart R N') s t). +Axiom thm_LOCALLY_CLOSED_IN_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall v : (cart R N') -> Prop, forall a : cart R N', ((@IN (cart R N') a v) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v)) -> exists u : (cart R N') -> Prop, (@IN (cart R N') a u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@SUBSET (cart R N') u v) /\ (@SUBSET (cart R N') (@closure_of (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) v))). +Axiom thm_LOCALLY_CLOSED_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, @locally N' (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s)) s. +Axiom thm_LOCALLY_EMPTY : forall {_862280 : Type'}, forall P : ((cart R _862280) -> Prop) -> Prop, @locally _862280 P (@EMPTY (cart R _862280)). +Axiom thm_LOCALLY_SING : forall {_862389 : Type'}, forall P : ((cart R _862389) -> Prop) -> Prop, forall a : cart R _862389, (@locally _862389 P (@INSERT (cart R _862389) a (@EMPTY (cart R _862389)))) = (P (@INSERT (cart R _862389) a (@EMPTY (cart R _862389)))). +Axiom thm_LOCALLY_INTER : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((P s) /\ (P t)) -> P (@INTER (cart R N') s t)) -> forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@locally N' P s) /\ (@locally N' P t)) -> @locally N' P (@INTER (cart R N') s t). +Axiom thm_LOCALLY_INTER_OPEN : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@locally N' P s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t))) -> @locally N' P (@INTER (cart R N') s t). +Axiom thm_LOCALLY_OPEN_INTER : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@locally N' P t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t))) -> @locally N' P (@INTER (cart R N') s t). +Axiom thm_LOCALLY_PCROSS : forall {M N' : Type'}, forall P : ((cart R M) -> Prop) -> Prop, forall Q : ((cart R N') -> Prop) -> Prop, forall R' : ((cart R (finite_sum M N')) -> Prop) -> Prop, (forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((P s) /\ (Q t)) -> R' (@PCROSS R M N' s t)) -> forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@locally M P s) /\ (@locally N' Q t)) -> @locally (finite_sum M N') R' (@PCROSS R M N' s t). +Axiom thm_HOMEOMORPHISM_LOCALLY : forall {M N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall Q : ((cart R M) -> Prop) -> Prop, forall f : (cart R N') -> cart R M, forall g : (cart R M) -> cart R N', (forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, (@homeomorphism N' M (@pair ((cart R N') -> Prop) ((cart R M) -> Prop) s t) (@pair ((cart R N') -> cart R M) ((cart R M) -> cart R N') f g)) -> (P s) = (Q t)) -> forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, (@homeomorphism N' M (@pair ((cart R N') -> Prop) ((cart R M) -> Prop) s t) (@pair ((cart R N') -> cart R M) ((cart R M) -> cart R N') f g)) -> (@locally N' P s) = (@locally M Q t). +Axiom thm_HOMEOMORPHIC_LOCALLY : forall {M N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall Q : ((cart R M) -> Prop) -> Prop, (forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, (@homeomorphic M N' s t) -> (P s) = (Q t)) -> forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, (@homeomorphic M N' s t) -> (@locally N' P s) = (@locally M Q t). +Axiom thm_LOCALLY_TRANSLATION : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, (forall a : cart R N', forall s : (cart R N') -> Prop, (P (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (P s)) -> forall a : cart R N', forall s : (cart R N') -> Prop, (@locally N' P (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@locally N' P s). +Axiom thm_LOCALLY_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall Q : ((cart R M) -> Prop) -> Prop, (forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (P (@IMAGE (cart R M) (cart R N') f s)) = (Q s)) -> forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@locally N' P (@IMAGE (cart R M) (cart R N') f s)) = (@locally M Q s). +Axiom thm_LOCALLY_OPEN_MAP_IMAGE : forall {M N' : Type'}, forall P : ((cart R M) -> Prop) -> Prop, forall Q : ((cart R N') -> Prop) -> Prop, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ ((forall t : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) t) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f s)) (@IMAGE (cart R M) (cart R N') f t)) /\ ((forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (P t)) -> Q (@IMAGE (cart R M) (cart R N') f t)) /\ (@locally M P s)))) -> @locally N' Q (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LOCALLY_FINE_COVERING_COMPACT : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, forall e : R, ((@compact N' s) /\ ((@locally N' P s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ (((@UNIONS (cart R N') f) = s) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c f) -> (P c) /\ ((@bounded N' c) /\ (Rle (@diameter N' c) e)))). +Axiom thm_LOCALLY_COUNTABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@COUNTABLE (cart R N')) s) = (@COUNTABLE (cart R N') s). +Axiom thm_LOCALLY_CONSTANT : forall {A N' : Type'}, forall f : (cart R N') -> A, forall s : (cart R N') -> Prop, (@connected N' s) -> (@locally N' (fun u : (cart R N') -> Prop => exists c : A, forall x : cart R N', (@IN (cart R N') x u) -> (f x) = c) s) = (exists c : A, forall x : cart R N', (@IN (cart R N') x s) -> (f x) = c). +Axiom thm_LOCALLY_CONTINUOUS_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@locally M (fun u : (cart R M) -> Prop => @continuous_on M N' f u) s) = (@continuous_on M N' f s). +Axiom thm_LOCALLY_CONTINUOUS_ON_EXPLICIT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) = (forall x : cart R M, (@IN (cart R M) x s) -> exists u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@IN (cart R M) x u) /\ (@continuous_on M N' f u))). +Axiom thm_LOCALLY_CONTINUOUS_ON_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) = (forall x : cart R M, (@IN (cart R M) x s) -> exists u : (cart R M) -> Prop, exists v : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@IN (cart R M) x u) /\ ((@SUBSET (cart R M) u v) /\ (@continuous_on M N' f v)))). +Axiom thm_LOCALLY_TO_COMPACTLY : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@SUBSET (cart R N') t u) /\ ((@SUBSET (cart R N') u s) /\ (P u))) -> P t) /\ ((forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> (P t) /\ (@SUBSET (cart R N') t s))) -> P (@UNIONS (cart R N') f)) /\ ((@locally N' P s) /\ ((@compact N' c) /\ (@SUBSET (cart R N') c s))))) -> P c. +Axiom thm_LOCALLY_COMPACT_SPACE_SUBTOPOLOGY_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally_compact_space (cart R N') (@subtopology (cart R N') (@euclidean N') s)) = (@locally N' (@compact N') s). +Axiom thm_LOCALLY_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) = (forall x : cart R N', (@IN (cart R N') x s) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@IN (cart R N') x u) /\ ((@SUBSET (cart R N') u v) /\ ((@SUBSET (cart R N') v s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@compact N' v))))). +Axiom thm_LOCALLY_COMPACT_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) = (forall x : cart R N', (@IN (cart R N') x s) -> exists u : (cart R N') -> Prop, (@IN (cart R N') x u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@compact N' (@closure N' u)) /\ (@SUBSET (cart R N') (@closure N' u) s)))). +Axiom thm_LOCALLY_COMPACT_INTER_CBALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) = (forall x : cart R N', (@IN (cart R N') x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@closed N' (@INTER (cart R N') (@cball N' (@pair (cart R N') R x e)) s))). +Axiom thm_LOCALLY_COMPACT_INTER_CBALLS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) = (forall x : cart R N', (@IN (cart R N') x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall d : R, (Rle d e) -> @closed N' (@INTER (cart R N') (@cball N' (@pair (cart R N') R x d)) s))). +Axiom thm_LOCALLY_COMPACT_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) = (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k s) /\ (@compact N' k)) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@SUBSET (cart R N') k u) /\ ((@SUBSET (cart R N') u v) /\ ((@SUBSET (cart R N') v s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@compact N' v))))). +Axiom thm_LOCALLY_COMPACT_COMPACT_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) = (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k s) /\ (@compact N' k)) -> exists u : (cart R N') -> Prop, (@SUBSET (cart R N') k u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@compact N' (@closure N' u)) /\ (@SUBSET (cart R N') (@closure N' u) s)))). +Axiom thm_LOCALLY_COMPACT_COMPACT_SUBOPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) = (forall k : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') k s) /\ ((@compact N' k) /\ ((@_open N' t) /\ (@SUBSET (cart R N') k t)))) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@SUBSET (cart R N') k u) /\ ((@SUBSET (cart R N') u v) /\ ((@SUBSET (cart R N') u t) /\ ((@SUBSET (cart R N') v s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@compact N' v)))))). +Axiom thm_OPEN_IMP_LOCALLY_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @locally N' (@compact N') s. +Axiom thm_CLOSED_IMP_LOCALLY_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @locally N' (@compact N') s. +Axiom thm_IS_INTERVAL_LOCALLY_COMPACT_INTERVAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' s) -> @locally N' (fun k : (cart R N') -> Prop => exists a : cart R N', exists b : cart R N', k = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) s. +Axiom thm_IS_INTERVAL_IMP_LOCALLY_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' s) -> @locally N' (@compact N') s. +Axiom thm_LOCALLY_COMPACT_UNIV : forall {N' : Type'}, @locally N' (@compact N') (@UNIV (cart R N')). +Axiom thm_LOCALLY_COMPACT_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ (@locally N' (@compact N') t)) -> @locally N' (@compact N') (@INTER (cart R N') s t). +Axiom thm_LOCALLY_COMPACT_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@locally N' (@compact N') s)) -> @locally N' (@compact N') t. +Axiom thm_LOCALLY_COMPACT_CLOSED_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@locally N' (@compact N') s)) -> @locally N' (@compact N') t. +Axiom thm_LOCALLY_COMPACT_DELETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@locally N' (@compact N') s) -> @locally N' (@compact N') (@DELETE (cart R N') s a). +Axiom thm_SIGMA_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) -> exists f : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) f) /\ ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> @compact N' t) /\ ((@UNIONS (cart R N') f) = s)). +Axiom thm_HOMEOMORPHIC_LOCAL_COMPACTNESS : forall {_864942 N' : Type'}, forall s : (cart R _864942) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' _864942 s t) -> (@locally _864942 (@compact _864942) s) = (@locally N' (@compact N') t). +Axiom thm_LOCALLY_COMPACT_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@locally N' (@compact N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@locally N' (@compact N') s). +Axiom thm_LOCALLY_COMPACT_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@locally N' (@compact N') (@IMAGE (cart R M) (cart R N') f s)) = (@locally M (@compact M) s). +Axiom thm_HOMEOMORPHISM_LOCAL_COMPACTNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@locally N' (@compact N') (@IMAGE (cart R M) (cart R N') f k)) = (@locally M (@compact M) k). +Axiom thm_LOCALLY_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@closed N') s) = (@locally N' (@compact N') s). +Axiom thm_LOCALLY_COMPACT_CLOSED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ ((@locally N' (@compact N') t) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t)))) -> @locally N' (@compact N') (@UNION (cart R N') s t). +Axiom thm_LOCALLY_COMPACT_OPEN_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall u : (cart R N') -> Prop, ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c f) -> @locally N' (@compact N') c) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c f) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) c)) -> @locally N' (@compact N') (@UNIONS (cart R N') f). +Axiom thm_LOCALLY_COMPACT_OPEN_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ ((@locally N' (@compact N') t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t)))) -> @locally N' (@compact N') (@UNION (cart R N') s t). +Axiom thm_LOCALLY_COMPACT_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@locally M (@compact M) s) /\ (@locally N' (@compact N') t)) -> @locally (finite_sum M N') (@compact (finite_sum M N')) (@PCROSS R M N' s t). +Axiom thm_LOCALLY_COMPACT_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@locally (finite_sum M N') (@compact (finite_sum M N')) (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@locally M (@compact M) s) /\ (@locally N' (@compact N') t)))). +Axiom thm_OPEN_IN_LOCALLY_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@locally N' (@compact N') s) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) = ((@SUBSET (cart R N') t s) /\ (forall k : (cart R N') -> Prop, ((@compact N' k) /\ (@SUBSET (cart R N') k s)) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') k) (@INTER (cart R N') k t))). +Axiom thm_LOCALLY_COMPACT_PROPER_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k (@IMAGE (cart R M) (cart R N') f s)) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3554 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3554 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)))) -> (@locally M (@compact M) s) = (@locally N' (@compact N') (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_LOCALLY_COMPACT_PROPER_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k (@IMAGE (cart R M) (cart R N') f s)) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3555 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3555 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x))) /\ (@locally M (@compact M) s))) -> @locally N' (@compact N') (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LOCALLY_COMPACT_PROPER_CONTINUOUS_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3561 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3561 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x))) /\ ((@locally N' (@compact N') c) /\ (@SUBSET (cart R N') c t))))) -> @locally M (@compact M) (@GSPEC (cart R M) (fun GEN_PVAR_3562 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3562 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) c)) x)). +Axiom thm_MUMFORD_LEMMA : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall y : cart R N', ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@locally M (@compact M) s) /\ ((@IN (cart R N') y t) /\ (@compact M (@GSPEC (cart R M) (fun GEN_PVAR_3571 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3571 ((@IN (cart R M) x s) /\ ((f x) = y)) x))))))) -> exists u : (cart R M) -> Prop, exists v : (cart R N') -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ ((@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_3572 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3572 ((@IN (cart R M) x s) /\ ((f x) = y)) x)) u) /\ ((@IN (cart R N') y v) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f u) v) /\ (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k v) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3573 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3573 ((@IN (cart R M) x u) /\ (@IN (cart R N') (f x) k)) x))))))). +Axiom thm_LOCALLY_EQ_COMPACTLY : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@SUBSET (cart R N') t u) /\ ((@SUBSET (cart R N') u s) /\ (P u))) -> P t) /\ ((forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> (P t) /\ (@SUBSET (cart R N') t s))) -> P (@UNIONS (cart R N') f)) /\ (@locally N' (@compact N') s))) -> (@locally N' P s) = (forall c : (cart R N') -> Prop, ((@compact N' c) /\ (@SUBSET (cart R N') c s)) -> P c). +Axiom thm_LOCALLY_COMPACT_OPEN_INTER_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) -> exists t : (cart R N') -> Prop, (@_open N' t) /\ (s = (@INTER (cart R N') t (@closure N' s))). +Axiom thm_LOCALLY_COMPACT_CLOSED_IN_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) -> exists t : (cart R N') -> Prop, (@_open N' t) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s). +Axiom thm_LOCALLY_COMPACT_HOMEOMORPHISM_PROJECTION_CLOSED : forall {M N' : Type'}, forall s : (cart R M) -> Prop, (@locally M (@compact M) s) -> exists t : (cart R (finite_sum M N')) -> Prop, exists f : (cart R M) -> cart R (finite_sum M N'), (@closed (finite_sum M N') t) /\ (@homeomorphism M (finite_sum M N') (@pair ((cart R M) -> Prop) ((cart R (finite_sum M N')) -> Prop) s t) (@pair ((cart R M) -> cart R (finite_sum M N')) ((cart R (finite_sum M N')) -> cart R M) f (@fstcart R M N'))). +Axiom thm_LOCALLY_COMPACT_CLOSED_INTER_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) = (exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, (@closed N' t) /\ ((@_open N' u) /\ (s = (@INTER (cart R N') t u)))). +Axiom thm_LOCALLY_COMPACT_CLOSED_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) = (exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, (@closed N' t) /\ ((@closed N' u) /\ ((@DIFF (cart R N') t u) = s))). +Axiom thm_LOCALLY_COMPACT_CLOSURE_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) = (@closed N' (@DIFF (cart R N') (@closure N' s) s)). +Axiom thm_gdelta : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@gdelta N' s) = (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@_open N') s). +Axiom thm_fsigma : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@fsigma N' s) = (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@closed N') s). +Axiom thm_FSIGMA_IN_EUCLIDEAN : forall {_867501 : Type'}, (@fsigma_in (cart R _867501) (@euclidean _867501)) = (@fsigma _867501). +Axiom thm_GDELTA_IN_EUCLIDEAN : forall {_867509 : Type'}, (@gdelta_in (cart R _867509) (@euclidean _867509)) = (@gdelta _867509). +Axiom thm_FSIGMA_UNIONS_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@fsigma N' s) = (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@compact N') s). +Axiom thm_GDELTA_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@gdelta N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) = (@fsigma N' s). +Axiom thm_FSIGMA_ASCENDING : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@fsigma N' s) = (exists c : N -> (cart R N') -> Prop, (forall n : N, @compact N' (c n)) /\ ((forall n : N, @SUBSET (cart R N') (c n) (c (N.succ n))) /\ ((@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3576 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3576 (@IN N n (@UNIV N)) (c n)))) = s))). +Axiom thm_FSIGMA_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@fsigma N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) = (@gdelta N' s). +Axiom thm_GDELTA_DESCENDING : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@gdelta N' s) = (exists u : N -> (cart R N') -> Prop, (forall n : N, @_open N' (u n)) /\ ((forall n : N, @SUBSET (cart R N') (u (N.succ n)) (u n)) /\ ((@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3577 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3577 (@IN N n (@UNIV N)) (u n)))) = s))). +Axiom thm_GDELTA_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@gdelta N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@gdelta N' s). +Axiom thm_FSIGMA_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@fsigma N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@fsigma N' s). +Axiom thm_GDELTA_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> (@gdelta N' (@IMAGE (cart R N') (cart R N') f s)) = (@gdelta N' s). +Axiom thm_FSIGMA_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> (@fsigma N' (@IMAGE (cart R N') (cart R N') f s)) = (@fsigma N' s). +Axiom thm_FSIGMA_LOCALLY_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) -> @fsigma N' s. +Axiom thm_OPEN_IMP_FSIGMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @fsigma N' s. +Axiom thm_CLOSED_IMP_FSIGMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @fsigma N' s. +Axiom thm_CLOSED_IMP_GDELTA : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @gdelta N' s. +Axiom thm_FSIGMA_SING : forall {N' : Type'}, forall x : cart R N', @fsigma N' (@INSERT (cart R N') x (@EMPTY (cart R N'))). +Axiom thm_GDELTA_SING : forall {N' : Type'}, forall x : cart R N', @gdelta N' (@INSERT (cart R N') x (@EMPTY (cart R N'))). +Axiom thm_OPEN_IMP_GDELTA : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @gdelta N' s. +Axiom thm_GDELTA_EMPTY : forall {_867953 : Type'}, @gdelta _867953 (@EMPTY (cart R _867953)). +Axiom thm_FSIGMA_EMPTY : forall {_867957 : Type'}, @fsigma _867957 (@EMPTY (cart R _867957)). +Axiom thm_GDELTA_UNIV : forall {N' : Type'}, @gdelta N' (@UNIV (cart R N')). +Axiom thm_FSIGMA_UNIV : forall {N' : Type'}, @fsigma N' (@UNIV (cart R N')). +Axiom thm_GDELTA_INTERS : forall {N' : Type'}, forall g : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) g) /\ (forall u : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) u g) -> @gdelta N' u)) -> @gdelta N' (@INTERS (cart R N') g). +Axiom thm_GDELTA_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@gdelta N' s) /\ (@gdelta N' t)) -> @gdelta N' (@INTER (cart R N') s t). +Axiom thm_GDELTA_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@gdelta N' s) /\ (@fsigma N' t)) -> @gdelta N' (@DIFF (cart R N') s t). +Axiom thm_FSIGMA_UNIONS : forall {N' : Type'}, forall g : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) g) /\ (forall u : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) u g) -> @fsigma N' u)) -> @fsigma N' (@UNIONS (cart R N') g). +Axiom thm_COUNTABLE_IMP_FSIGMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@COUNTABLE (cart R N') s) -> @fsigma N' s. +Axiom thm_FSIGMA_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@fsigma N' s) /\ (@fsigma N' t)) -> @fsigma N' (@UNION (cart R N') s t). +Axiom thm_GDELTA_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@gdelta N' s) /\ (@gdelta N' t)) -> @gdelta N' (@UNION (cart R N') s t). +Axiom thm_FSIGMA_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@fsigma N' s) /\ (@fsigma N' t)) -> @fsigma N' (@INTER (cart R N') s t). +Axiom thm_FSIGMA_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@fsigma N' s) /\ (@gdelta N' t)) -> @fsigma N' (@DIFF (cart R N') s t). +Axiom thm_GDELTA_UNIONS : forall {N' : Type'}, forall g : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) g) /\ (forall u : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) u g) -> @gdelta N' u)) -> @gdelta N' (@UNIONS (cart R N') g). +Axiom thm_FSIGMA_INTERS : forall {N' : Type'}, forall g : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) g) /\ (forall u : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) u g) -> @fsigma N' u)) -> @fsigma N' (@INTERS (cart R N') g). +Axiom thm_OPEN_IN_FSIGMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) /\ (@fsigma N' t)) -> @fsigma N' s. +Axiom thm_CLOSED_IN_FSIGMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) /\ (@fsigma N' t)) -> @fsigma N' s. +Axiom thm_OPEN_IN_GDELTA : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) /\ (@gdelta N' t)) -> @gdelta N' s. +Axiom thm_CLOSED_IN_GDELTA : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) /\ (@gdelta N' t)) -> @gdelta N' s. +Axiom thm_GDELTA_LOCALLY_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) -> @gdelta N' s. +Axiom thm_FSIGMA_CONTINUOUS_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@fsigma M s)) -> @fsigma N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_HOMEOMORPHIC_FSIGMANESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@fsigma M s) = (@fsigma N' t). +Axiom thm_HOMEOMORPHISM_FSIGMANESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@fsigma N' (@IMAGE (cart R M) (cart R N') f k)) = (@fsigma M k). +Axiom thm_FSIGMA_FSIGMA_PROJECTION : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R (finite_sum M N')) -> Prop, ((@SUBSET (cart R M) (@IMAGE (cart R (finite_sum M N')) (cart R M) (@fstcart R M N') t) s) /\ (@fsigma (finite_sum M N') t)) -> @fsigma N' (@GSPEC (cart R N') (fun GEN_PVAR_3580 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_3580 (exists x : cart R M, (@IN (cart R M) x s) /\ (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) t)) y)). +Axiom thm_CONTINUOUS_FSIGMA_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@fsigma M s) /\ (@fsigma N' t))) -> @fsigma M (@GSPEC (cart R M) (fun GEN_PVAR_3583 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3583 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_CONTINUOUS_GDELTA_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@gdelta M s) /\ (@gdelta N' t))) -> @gdelta M (@GSPEC (cart R M) (fun GEN_PVAR_3587 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3587 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_FSIGMA_PROPER_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_3589 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3589 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x))) -> forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@fsigma N' k)) -> @fsigma M (@GSPEC (cart R M) (fun GEN_PVAR_3590 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3590 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)). +Axiom thm_FSIGMA_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@fsigma M s) /\ (@fsigma N' t)) -> @fsigma (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_FSIGMA_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@fsigma (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@fsigma M s) /\ (@fsigma N' t)))). +Axiom thm_GDELTA_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@gdelta M s) /\ (@gdelta N' t)) -> @gdelta (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_GDELTA_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@gdelta (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@gdelta M s) /\ (@gdelta N' t)))). +Axiom thm_CARD_EQ_GDELTA_SETS : forall {N' : Type'}, @eq_c ((cart R N') -> Prop) R (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3600 : (cart R N') -> Prop => exists s : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3600 (@gdelta N' s) s)) (@UNIV R). +Axiom thm_CARD_EQ_FSIGMA_SETS : forall {N' : Type'}, @eq_c ((cart R N') -> Prop) R (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3602 : (cart R N') -> Prop => exists s : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3602 (@fsigma N' s) s)) (@UNIV R). +Axiom thm_GDELTA_POINTS_OF_CONVERGENCE_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, @gdelta M (@GSPEC (cart R M) (fun GEN_PVAR_3607 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3607 (exists l : cart R N', @FImp N' (cart R M) f l (@within (cart R M) (@_at M x) s)) x)). +Axiom thm_GDELTA_POINTS_OF_CONVERGENCE_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', @gdelta M (@GSPEC (cart R M) (fun GEN_PVAR_3608 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3608 (exists l : cart R N', @FImp N' (cart R M) f l (@_at M x)) x)). +Axiom thm_GDELTA_POINTS_OF_CONTINUITY_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, exists t : (cart R M) -> Prop, (@gdelta M t) /\ ((@GSPEC (cart R M) (fun GEN_PVAR_3612 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3612 ((@IN (cart R M) x s) /\ (@continuous N' (cart R M) f (@within (cart R M) (@_at M x) s))) x)) = (@INTER (cart R M) s t)). +Axiom thm_GDELTA_POINTS_OF_CONTINUITY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', @gdelta M (@GSPEC (cart R M) (fun GEN_PVAR_3613 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3613 (@continuous N' (cart R M) f (@_at M x)) x)). +Axiom thm_LAVRENTIEV : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (@gdelta N' t))) -> exists u : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@gdelta M u) /\ ((@SUBSET (cart R M) s u) /\ ((@SUBSET (cart R M) u (@closure M s)) /\ ((@continuous_on M N' g u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g u) t) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)))))). +Axiom thm_LAVRENTIEV_HOMEOMORPHISM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall s' : (cart R N') -> Prop, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s s') (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f f')) -> exists u : (cart R M) -> Prop, exists u' : (cart R N') -> Prop, exists g : (cart R M) -> cart R N', exists g' : (cart R N') -> cart R M, (@gdelta M u) /\ ((@SUBSET (cart R M) s u) /\ ((@SUBSET (cart R M) u (@closure M s)) /\ ((@gdelta N' u') /\ ((@SUBSET (cart R N') s' u') /\ ((@SUBSET (cart R N') u' (@closure N' s')) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)) /\ ((forall x : cart R N', (@IN (cart R N') x s') -> (g' x) = (f' x)) /\ (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) u u') (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) g g'))))))))). +Axiom thm_LAVRENTIEV_HOMEOMORPHISM_SELF : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, (@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s s) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f f')) -> exists u : (cart R N') -> Prop, exists g : (cart R N') -> cart R N', exists g' : (cart R N') -> cart R N', (@gdelta N' u) /\ ((@SUBSET (cart R N') s u) /\ ((@SUBSET (cart R N') u (@closure N' s)) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> ((g x) = (f x)) /\ ((g' x) = (f' x))) /\ (@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) u u) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') g g'))))). +Axiom thm_HOMEOMORPHIC_GDELTANESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@gdelta M s) = (@gdelta N' t). +Axiom thm_HOMEOMORPHISM_GDELTANESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@gdelta N' (@IMAGE (cart R M) (cart R N') f k)) = (@gdelta M k). +Axiom thm_EFFECTIVELY_COUNTABLE_CLOPEN_IN_CHAIN_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall v : (cart R N') -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') v) s) \/ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') v) s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s))) -> exists f' : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) f') /\ ((@SUBSET ((cart R N') -> Prop) f' f) /\ ((@UNIONS (cart R N') f') = (@UNIONS (cart R N') f))). +Axiom thm_COUNTABLE_ASCENDING_CLOPEN_IN_CHAIN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall v : (cart R N') -> Prop, ((~ (f = (@EMPTY ((cart R N') -> Prop)))) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') v) s) \/ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') v) s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s)))) -> exists u : N -> (cart R N') -> Prop, (forall n : N, @IN ((cart R N') -> Prop) (u n) f) /\ ((forall n : N, @SUBSET (cart R N') (u n) (u (N.succ n))) /\ ((@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3625 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3625 (@IN N n (@UNIV N)) (u n)))) = (@UNIONS (cart R N') f))). +Axiom thm_EFFECTIVELY_COUNTABLE_CLOPEN_IN_CHAIN_INTERS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall v : (cart R N') -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') v) s) \/ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') v) s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s))) -> exists f' : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) f') /\ ((@SUBSET ((cart R N') -> Prop) f' f) /\ ((@INTERS (cart R N') f') = (@INTERS (cart R N') f))). +Axiom thm_COUNTABLE_DESCENDING_CLOPEN_IN_CHAIN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall v : (cart R N') -> Prop, ((~ (f = (@EMPTY ((cart R N') -> Prop)))) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') v) s) \/ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') v) s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s)))) -> exists u : N -> (cart R N') -> Prop, (forall n : N, @IN ((cart R N') -> Prop) (u n) f) /\ ((forall n : N, @SUBSET (cart R N') (u (N.succ n)) (u n)) /\ ((@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3626 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3626 (@IN N n (@UNIV N)) (u n)))) = (@INTERS (cart R N') f))). +Axiom thm_EFFECTIVELY_COUNTABLE_CLOPEN_CHAIN_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed N' s) \/ (@_open N' s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s))) -> exists f' : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) f') /\ ((@SUBSET ((cart R N') -> Prop) f' f) /\ ((@UNIONS (cart R N') f') = (@UNIONS (cart R N') f))). +Axiom thm_COUNTABLE_ASCENDING_CLOPEN_CHAIN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((~ (f = (@EMPTY ((cart R N') -> Prop)))) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed N' s) \/ (@_open N' s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s)))) -> exists u : N -> (cart R N') -> Prop, (forall n : N, @IN ((cart R N') -> Prop) (u n) f) /\ ((forall n : N, @SUBSET (cart R N') (u n) (u (N.succ n))) /\ ((@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3627 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3627 (@IN N n (@UNIV N)) (u n)))) = (@UNIONS (cart R N') f))). +Axiom thm_EFFECTIVELY_COUNTABLE_CLOPEN_CHAIN_INTERS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed N' s) \/ (@_open N' s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s))) -> exists f' : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) f') /\ ((@SUBSET ((cart R N') -> Prop) f' f) /\ ((@INTERS (cart R N') f') = (@INTERS (cart R N') f))). +Axiom thm_COUNTABLE_DESCENDING_CLOPEN_CHAIN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((~ (f = (@EMPTY ((cart R N') -> Prop)))) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed N' s) \/ (@_open N' s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s)))) -> exists u : N -> (cart R N') -> Prop, (forall n : N, @IN ((cart R N') -> Prop) (u n) f) /\ ((forall n : N, @SUBSET (cart R N') (u (N.succ n)) (u n)) /\ ((@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3628 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3628 (@IN N n (@UNIV N)) (u n)))) = (@INTERS (cart R N') f))). +Axiom thm_FSIGMA_UNIONS_CLOPEN_CHAIN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed N' s) \/ (@_open N' s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s))) -> @fsigma N' (@UNIONS (cart R N') f). +Axiom thm_GDELTA_INTERS_CLOPEN_CHAIN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed N' s) \/ (@_open N' s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s))) -> @gdelta N' (@INTERS (cart R N') f). +Axiom thm_CANTOR_BAIRE_STATIONARY_PRINCIPLE : forall {A N' : Type'}, forall f : A -> (cart R N') -> Prop, forall v : (cart R N') -> Prop, forall w : A -> A -> Prop, ((@woset A w) /\ ((~ (@COUNTABLE (prod A A) (@GSPEC (prod A A) (fun GEN_PVAR_3635 : prod A A => exists x : A, exists y : A, @SETSPEC (prod A A) GEN_PVAR_3635 (w x y) (@pair A A x y))))) /\ ((forall v' : A -> A -> Prop, ((@inseg A v' w) /\ (~ (v' = w))) -> @COUNTABLE (prod A A) (@GSPEC (prod A A) (fun GEN_PVAR_3636 : prod A A => exists x : A, exists y : A, @SETSPEC (prod A A) GEN_PVAR_3636 (v' x y) (@pair A A x y)))) /\ ((forall i : A, (@IN A i (@fld A w)) -> (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') v) (f i)) \/ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') v) (f i))) /\ (forall i : A, forall j : A, (w i j) -> @SUBSET (cart R N') (f j) (f i)))))) -> exists k : A, (@IN A k (@fld A w)) /\ (forall i : A, (w k i) -> (f i) = (f k)). +Axiom thm_borel_RULES : forall {N' : Type'}, (forall s : (cart R N') -> Prop, (@_open N' s) -> @borel N' s) /\ ((forall s : (cart R N') -> Prop, (@borel N' s) -> @borel N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> @borel N' s)) -> @borel N' (@UNIONS (cart R N') u))). +Axiom thm_borel_CASES : forall {N' : Type'}, forall a : (cart R N') -> Prop, (@borel N' a) = ((@_open N' a) \/ ((exists s : (cart R N') -> Prop, (a = (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (@borel N' s)) \/ (exists u : ((cart R N') -> Prop) -> Prop, (a = (@UNIONS (cart R N') u)) /\ ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> @borel N' s))))). +Axiom thm_borel_INDUCT : forall {N' : Type'}, forall borel' : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@_open N' s) -> borel' s) /\ ((forall s : (cart R N') -> Prop, (borel' s) -> borel' (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> borel' s)) -> borel' (@UNIONS (cart R N') u)))) -> forall a : (cart R N') -> Prop, (@borel N' a) -> borel' a. +Axiom thm_BOREL_INDUCT_COMPACT : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@compact N' s) -> P s) /\ ((forall s : (cart R N') -> Prop, (P s) -> P (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> P s)) -> P (@UNIONS (cart R N') u)))) -> forall a : (cart R N') -> Prop, (@borel N' a) -> P a. +Axiom thm_BOREL_INDUCT_COMPACT_DIFF : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@compact N' s) -> P s) /\ ((forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((P s) /\ (P t)) -> P (@DIFF (cart R N') s t)) /\ (forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> P s)) -> P (@UNIONS (cart R N') u)))) -> forall a : (cart R N') -> Prop, (@borel N' a) -> P a. +Axiom thm_BOREL_INDUCT_COMPACT_ALT : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@compact N' s) -> P s) /\ ((forall s : (cart R N') -> Prop, (P s) -> P (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ ((~ (u = (@EMPTY ((cart R N') -> Prop)))) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> P s))) -> P (@INTERS (cart R N') u)))) -> forall a : (cart R N') -> Prop, (@borel N' a) -> P a. +Axiom thm_BOREL_INDUCT_UNIONS_INTERS : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@_open N' s) -> P s) /\ ((forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> P s)) -> P (@UNIONS (cart R N') u)) /\ (forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> P s)) -> P (@INTERS (cart R N') u)))) -> forall a : (cart R N') -> Prop, (@borel N' a) -> P a. +Axiom thm_BOREL_INDUCT_COMPACT_UNIONS_INTERS : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@compact N' s) -> P s) /\ ((forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> P s)) -> P (@UNIONS (cart R N') u)) /\ (forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> P s)) -> P (@INTERS (cart R N') u)))) -> forall a : (cart R N') -> Prop, (@borel N' a) -> P a. +Axiom thm_BOREL_INDUCT_CLOSED_UNIONS_INTERS : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@closed N' s) -> P s) /\ ((forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> P s)) -> P (@UNIONS (cart R N') u)) /\ (forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> P s)) -> P (@INTERS (cart R N') u)))) -> forall a : (cart R N') -> Prop, (@borel N' a) -> P a. +Axiom thm_OPEN_IMP_BOREL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @borel N' s. +Axiom thm_BOREL_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@borel N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) = (@borel N' s). +Axiom thm_BOREL_UNIONS : forall {N' : Type'}, forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> @borel N' s)) -> @borel N' (@UNIONS (cart R N') u). +Axiom thm_BOREL_INTERS : forall {N' : Type'}, forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> @borel N' s)) -> @borel N' (@INTERS (cart R N') u). +Axiom thm_BOREL_EMPTY : forall {_873099 : Type'}, @borel _873099 (@EMPTY (cart R _873099)). +Axiom thm_BOREL_UNIV : forall {N' : Type'}, @borel N' (@UNIV (cart R N')). +Axiom thm_BOREL_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@borel N' s) /\ (@borel N' t)) -> @borel N' (@UNION (cart R N') s t). +Axiom thm_BOREL_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@borel N' s) /\ (@borel N' t)) -> @borel N' (@INTER (cart R N') s t). +Axiom thm_BOREL_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@borel N' s) /\ (@borel N' t)) -> @borel N' (@DIFF (cart R N') s t). +Axiom thm_CLOSED_IMP_BOREL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @borel N' s. +Axiom thm_COMPACT_IMP_BOREL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> @borel N' s. +Axiom thm_FSIGMA_IMP_BOREL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@fsigma N' s) -> @borel N' s. +Axiom thm_GDELTA_IMP_BOREL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@gdelta N' s) -> @borel N' s. +Axiom thm_LOCALLY_COMPACT_IMP_BOREL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) -> @borel N' s. +Axiom thm_OPEN_IN_BOREL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) /\ (@borel N' t)) -> @borel N' s. +Axiom thm_CLOSED_IN_BOREL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) /\ (@borel N' t)) -> @borel N' s. +Axiom thm_CONTINUOUS_BOREL_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@borel M s) /\ (@borel N' t))) -> @borel M (@GSPEC (cart R M) (fun GEN_PVAR_3643 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3643 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_HOMEOMORPHIC_BORELNESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@borel M s) = (@borel N' t). +Axiom thm_BOREL_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@borel N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@borel N' s). +Axiom thm_BOREL_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> (@borel N' (@IMAGE (cart R N') (cart R N') f s)) = (@borel N' s). +Axiom thm_HOMEOMORPHISM_BORELNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@borel N' (@IMAGE (cart R M) (cart R N') f k)) = (@borel M k). +Axiom thm_BOREL_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@borel M s) /\ (@borel N' t)) -> @borel (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_BOREL_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@borel (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@borel M s) /\ (@borel N' t)))). +Axiom thm_LAVRENTIEV_BOREL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (@borel N' t))) -> exists u : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@borel M u) /\ ((@SUBSET (cart R M) s u) /\ ((@SUBSET (cart R M) u (@closure M s)) /\ ((@continuous_on M N' g u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g u) t) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)))))). +Axiom thm_BAIRE_MONO : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall m : N, forall n : N, ((@baire M N' m s f) /\ (N.le m n)) -> @baire M N' n s f. +Axiom thm_CONTINUOUS_ON_IMP_BAIRE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, (@continuous_on M N' f s) -> @baire M N' n s f. +Axiom thm_BAIRE_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall n : N, ((@baire M N' n s f) /\ (@SUBSET (cart R M) t s)) -> @baire M N' n t f. +Axiom thm_BAIRE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, ((forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (g x)) /\ (@baire M N' n s f)) -> @baire M N' n s g. +Axiom thm_BAIRE_CONST : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall n : N, forall a : cart R N', @baire M N' n s (fun x : cart R M => a). +Axiom thm_BAIRE_PASTECART : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, forall n : N, ((@baire M N' n s f) /\ (@baire M P n s g)) -> @baire M (finite_sum N' P) n s (fun x : cart R M => @pastecart R N' P (f x) (g x)). +Axiom thm_BAIRE_COMPOSE_CONTINUOUS : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall k : N, ((@continuous_on M N' f s) /\ (@baire N' P k (@IMAGE (cart R M) (cart R N') f s) g)) -> @baire M P k s (@o (cart R M) (cart R N') (cart R P) g f). +Axiom thm_BAIRE_CONTINUOUS_COMPOSE_UNIV : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, ((@continuous_on N' P f (@UNIV (cart R N'))) /\ (@baire M N' n s g)) -> @baire M P n s (@o (cart R M) (cart R N') (cart R P) f g). +Axiom thm_BAIRE_CMUL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall c : R, forall n : N, (@baire M N' n s f) -> @baire M N' n s (fun x : cart R M => @percent N' c (f x)). +Axiom thm_BAIRE_BILINEAR : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, forall n : N, ((@bilinear P Q N' bop) /\ ((@baire M N' n s f) /\ (@baire M P n s g))) -> @baire M Q n s (fun x : cart R M => bop (f x) (g x)). +Axiom thm_BAIRE_ADD : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, ((@baire M N' n s f) /\ (@baire M N' n s g)) -> @baire M N' n s (fun x : cart R M => @vector_add N' (f x) (g x)). +Axiom thm_BAIRE_SUB : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, ((@baire M N' n s f) /\ (@baire M N' n s g)) -> @baire M N' n s (fun x : cart R M => @vector_sub N' (f x) (g x)). +Axiom thm_BAIRE_MUL : forall {M N' : Type'}, forall f : (cart R M) -> R, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, ((@baire M unit n s (fun x : cart R M => lift (f x))) /\ (@baire M N' n s g)) -> @baire M N' n s (fun x : cart R M => @percent N' (f x) (g x)). +Axiom thm_BAIRE_VSUM : forall {A M N' : Type'}, forall f : A -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : A -> Prop, forall n : N, ((@FINITE A t) /\ (forall i : A, (@IN A i t) -> @baire M N' n s (f i))) -> @baire M N' n s (fun x : cart R M => @vsum A N' t (fun i : A => f i x)). +Axiom thm_BAIRE_PRODUCT : forall {A N' : Type'}, forall f : A -> (cart R N') -> R, forall s : (cart R N') -> Prop, forall t : A -> Prop, forall n : N, ((@FINITE A t) /\ (forall i : A, (@IN A i t) -> @baire N' unit n s (fun x : cart R N' => lift (f i x)))) -> @baire N' unit n s (fun x : cart R N' => lift (@product A t (fun i : A => f i x))). +Axiom thm_BAIRE_NORM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, (@baire M N' n s f) -> @baire M unit n s (fun x : cart R M => lift (@vector_norm N' (f x))). +Axiom thm_BAIRE_MAX : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall s : (cart R N') -> Prop, forall n : N, ((@baire N' unit n s (fun x : cart R N' => lift (f x))) /\ (@baire N' unit n s (fun x : cart R N' => lift (g x)))) -> @baire N' unit n s (fun x : cart R N' => lift (Rmax (f x) (g x))). +Axiom thm_BAIRE_MIN : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall s : (cart R N') -> Prop, forall n : N, ((@baire N' unit n s (fun x : cart R N' => lift (f x))) /\ (@baire N' unit n s (fun x : cart R N' => lift (g x)))) -> @baire N' unit n s (fun x : cart R N' => lift (Rmin (f x) (g x))). +Axiom thm_BAIRE_COMPONENTWISE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, (@baire M N' n s f) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @baire M unit n s (fun x : cart R M => lift (@dollar R N' (f x) i))). +Axiom thm_BAIRE_UNIFORM_LIMIT : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, ((@eventually N (fun n : N => @baire M N' k s (f n)) sequentially) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually N (fun n : N => forall x : cart R M, (@IN (cart R M) x s) -> Rlt (@vector_norm N' (@vector_sub N' (f n x) (g x))) e) sequentially)) -> @baire M N' k s g. +Axiom thm_BAIRE_UNIFORM_APPROXIMATION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, (@baire M N' k s f) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists g : (cart R M) -> cart R N', (@baire M N' k s g) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rlt (@vector_norm N' (@vector_sub N' (g x) (f x))) e)). +Axiom thm_FSIGMA_BAIRE1_PREIMAGE_OPEN_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : N -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) /\ ((forall n : N, @continuous_on M N' (g n) s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @FImp N' N (fun n : N => g n x) (f x) sequentially)))) -> exists c : ((cart R M) -> Prop) -> Prop, (@COUNTABLE ((cart R M) -> Prop) c) /\ ((forall t' : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) t' c) -> @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) t') /\ ((@UNIONS (cart R M) c) = (@GSPEC (cart R M) (fun GEN_PVAR_3672 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3672 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x)))). +Axiom thm_FSIGMA_BAIRE1_PREIMAGE_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall u : (cart R N') -> Prop, ((@fsigma M s) /\ ((@_open N' u) /\ (@baire M N' (NUMERAL (BIT1 0%N)) s f))) -> @fsigma M (@GSPEC (cart R M) (fun GEN_PVAR_3673 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3673 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x)). +Axiom thm_GDELTA_BAIRE1_PREIMAGE_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall c : (cart R N') -> Prop, ((@gdelta M s) /\ ((@closed N' c) /\ (@baire M N' (NUMERAL (BIT1 0%N)) s f))) -> @gdelta M (@GSPEC (cart R M) (fun GEN_PVAR_3676 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3676 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) c)) x)). +Axiom thm_BAIRE_INDICATOR_EMPTY : forall {_877201 : Type'} (u : (cart R _877201) -> Prop), forall n : N, @baire _877201 unit n u (@indicator _877201 (@EMPTY (cart R _877201))). +Axiom thm_BAIRE_INDICATOR_UNIV : forall {N' : Type'} (u : (cart R N') -> Prop), forall n : N, @baire N' unit n u (@indicator N' (@UNIV (cart R N'))). +Axiom thm_BAIRE_INDICATOR_REFL : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall n : N, @baire N' unit n u (@indicator N' u). +Axiom thm_BAIRE_INDICATOR_COMPLEMENT : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall n : N, (@baire N' unit n u (@indicator N' (@DIFF (cart R N') u s))) = (@baire N' unit n u (@indicator N' s)). +Axiom thm_BAIRE_INDICATOR_COMPLEMENT_UNIV : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall n : N, (@baire N' unit n u (@indicator N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) = (@baire N' unit n u (@indicator N' s)). +Axiom thm_BAIRE_INDICATOR_INTER : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall n : N, ((@baire N' unit n u (@indicator N' s)) /\ (@baire N' unit n u (@indicator N' t))) -> @baire N' unit n u (@indicator N' (@INTER (cart R N') s t)). +Axiom thm_BAIRE_INDICATOR_UNION : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall n : N, ((@baire N' unit n u (@indicator N' s)) /\ (@baire N' unit n u (@indicator N' t))) -> @baire N' unit n u (@indicator N' (@UNION (cart R N') s t)). +Axiom thm_BAIRE_INDICATOR_DIFF : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall n : N, ((@baire N' unit n u (@indicator N' s)) /\ (@baire N' unit n u (@indicator N' t))) -> @baire N' unit n u (@indicator N' (@DIFF (cart R N') s t)). +Axiom thm_BAIRE_INDICATOR_INTERS : forall {_877510 : Type'} (u : (cart R _877510) -> Prop), forall f : ((cart R _877510) -> Prop) -> Prop, forall n : N, ((@FINITE ((cart R _877510) -> Prop) f) /\ (forall s : (cart R _877510) -> Prop, (@IN ((cart R _877510) -> Prop) s f) -> @baire _877510 unit n u (@indicator _877510 s))) -> @baire _877510 unit n u (@indicator _877510 (@INTERS (cart R _877510) f)). +Axiom thm_BAIRE_INDICATOR_UNIONS : forall {_877550 : Type'} (u : (cart R _877550) -> Prop), forall f : ((cart R _877550) -> Prop) -> Prop, forall n : N, ((@FINITE ((cart R _877550) -> Prop) f) /\ (forall s : (cart R _877550) -> Prop, (@IN ((cart R _877550) -> Prop) s f) -> @baire _877550 unit n u (@indicator _877550 s))) -> @baire _877550 unit n u (@indicator _877550 (@UNIONS (cart R _877550) f)). +Axiom thm_BAIRE0_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@baire N' unit (NUMERAL 0%N) (@UNIV (cart R N')) (@indicator N' s)) = ((s = (@EMPTY (cart R N'))) \/ (s = (@UNIV (cart R N')))). +Axiom thm_COUNTABLE_UNION_OF_BAIRE0_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit (NUMERAL 0%N) (@UNIV (cart R N'))) (@indicator N')) s) = ((s = (@EMPTY (cart R N'))) \/ (s = (@UNIV (cart R N')))). +Axiom thm_COUNTABLE_INTERSECTION_OF_BAIRE0_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit (NUMERAL 0%N) (@UNIV (cart R N'))) (@indicator N')) s) = ((s = (@EMPTY (cart R N'))) \/ (s = (@UNIV (cart R N')))). +Axiom thm_BAIRE1_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@baire N' unit (NUMERAL (BIT1 0%N)) (@UNIV (cart R N')) (@indicator N' s)) = ((@fsigma N' s) /\ (@gdelta N' s)). +Axiom thm_GDELTA_BAIRE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@gdelta N' s) = (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit (NUMERAL (BIT1 0%N)) (@UNIV (cart R N'))) (@indicator N')) s). +Axiom thm_FSIGMA_BAIRE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@fsigma N' s) = (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit (NUMERAL (BIT1 0%N)) (@UNIV (cart R N'))) (@indicator N')) s). +Axiom thm_CLOSED_IMP_BAIRE1_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @baire N' unit (NUMERAL (BIT1 0%N)) (@UNIV (cart R N')) (@indicator N' s). +Axiom thm_OPEN_IMP_BAIRE1_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @baire N' unit (NUMERAL (BIT1 0%N)) (@UNIV (cart R N')) (@indicator N' s). +Axiom thm_BAIRE_INDICATOR_CONTINUOUS_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall k : N, ((@baire N' unit k u (@indicator N' t)) /\ ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) u))) -> @baire M unit k s (@indicator M (@GSPEC (cart R M) (fun GEN_PVAR_3679 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3679 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_BAIRE_INDICATOR_CONTINUOUS_PREIMAGE_UNIV : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, forall k : N, ((@baire N' unit k (@UNIV (cart R N')) (@indicator N' s)) /\ (@continuous_on M N' f (@UNIV (cart R M)))) -> @baire M unit k (@UNIV (cart R M)) (@indicator M (@GSPEC (cart R M) (fun GEN_PVAR_3682 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3682 (@IN (cart R N') (f x) s) x))). +Axiom thm_BAIRE_INDICATOR_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, forall k : N, (@baire N' unit k (@UNIV (cart R N')) (@indicator N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s))) = (@baire N' unit k (@UNIV (cart R N')) (@indicator N' s)). +Axiom thm_BAIRE_INDICATOR_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y))) -> (@baire N' unit k (@UNIV (cart R N')) (@indicator N' (@IMAGE (cart R M) (cart R N') f s))) = (@baire M unit k (@UNIV (cart R M)) (@indicator M s)). +Axiom thm_BAIRE_INDICATOR_BIJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@baire N' unit k (@UNIV (cart R N')) (@indicator N' (@IMAGE (cart R M) (cart R N') f s))) = (@baire M unit k (@UNIV (cart R M)) (@indicator M s)). +Axiom thm_COUNTABLE_UNION_OF_BAIRE_INDICATOR_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, forall k : N, (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) s). +Axiom thm_COUNTABLE_INTERSECTION_OF_BAIRE_INDICATOR_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, forall k : N, (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) s). +Axiom thm_COUNTABLE_UNION_OF_BAIRE_INDICATOR_BIJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) (@IMAGE (cart R M) (cart R N') f s)) = (@UNION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) s). +Axiom thm_COUNTABLE_INTERSECTION_OF_BAIRE_INDICATOR_BIJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) (@IMAGE (cart R M) (cart R N') f s)) = (@INTERSECTION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) s). +Axiom thm_FSIGMA_REDUCTION_GEN_ALT : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, forall k : N, (forall n : N, @UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) (s n)) -> exists t : N -> (cart R N') -> Prop, (forall n : N, @UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) (t n)) /\ ((forall n : N, @SUBSET (cart R N') (t n) (s n)) /\ ((@pairwise N (fun m : N => fun n : N => @DISJOINT (cart R N') (t m) (t n)) (@UNIV N)) /\ ((@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3688 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3688 (@IN N n (@UNIV N)) (t n)))) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3689 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3689 (@IN N n (@UNIV N)) (s n))))))). +Axiom thm_FSIGMA_REDUCTION_GEN_2 : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall k : N, ((@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) s) /\ (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) t)) -> exists s' : (cart R N') -> Prop, exists t' : (cart R N') -> Prop, (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) s') /\ ((@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) t') /\ ((@SUBSET (cart R N') s' s) /\ ((@SUBSET (cart R N') t' t) /\ ((@DISJOINT (cart R N') s' t') /\ ((@UNION (cart R N') s' t') = (@UNION (cart R N') s t)))))). +Axiom thm_FSIGMA_REDUCTION : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, (forall n : N, @fsigma N' (s n)) -> exists t : N -> (cart R N') -> Prop, (forall n : N, @fsigma N' (t n)) /\ ((forall n : N, @SUBSET (cart R N') (t n) (s n)) /\ ((@pairwise N (fun m : N => fun n : N => @DISJOINT (cart R N') (t m) (t n)) (@UNIV N)) /\ ((@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3690 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3690 (@IN N n (@UNIV N)) (t n)))) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_3691 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_3691 (@IN N n (@UNIV N)) (s n))))))). +Axiom thm_COUNTABLE_UNION_OF_BAIRE_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall k : N, (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) s) -> @baire N' unit (N.add k (NUMERAL (BIT1 0%N))) (@UNIV (cart R N')) (@indicator N' s). +Axiom thm_COUNTABLE_INTERSECTION_OF_BAIRE_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall k : N, (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) s) -> @baire N' unit (N.add k (NUMERAL (BIT1 0%N))) (@UNIV (cart R N')) (@indicator N' s). +Axiom thm_GDELTA_SEPARATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@gdelta N' s) /\ ((@gdelta N' t) /\ (@DISJOINT (cart R N') s t))) -> exists u : (cart R N') -> Prop, (@fsigma N' u) /\ ((@gdelta N' u) /\ ((@SUBSET (cart R N') s u) /\ (@DISJOINT (cart R N') u t))). +Axiom thm_FSIGMA_BAIRE_PREIMAGE_OPEN_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall u : (cart R N') -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((@baire M N' k s f) /\ (@_open N' u))) -> exists t : (cart R M) -> Prop, (@UNION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) t) /\ ((@GSPEC (cart R M) (fun GEN_PVAR_3762 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3762 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x)) = (@INTER (cart R M) s t)). +Axiom thm_FSIGMA_BAIRE_PREIMAGE_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall u : (cart R N') -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((@baire M N' k s f) /\ ((@UNION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) s) /\ (@_open N' u)))) -> @UNION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) (@GSPEC (cart R M) (fun GEN_PVAR_3763 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3763 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x)). +Axiom thm_GDELTA_BAIRE_PREIMAGE_CLOSED_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall u : (cart R N') -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((@baire M N' k s f) /\ (@closed N' u))) -> exists t : (cart R M) -> Prop, (@INTERSECTION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) t) /\ ((@GSPEC (cart R M) (fun GEN_PVAR_3766 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3766 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x)) = (@INTER (cart R M) s t)). +Axiom thm_GDELTA_BAIRE_PREIMAGE_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall u : (cart R N') -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((@baire M N' k s f) /\ ((@INTERSECTION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) s) /\ (@closed N' u)))) -> @INTERSECTION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) (@GSPEC (cart R M) (fun GEN_PVAR_3767 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3767 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x)). +Axiom thm_BAIRE_EQ_FSIGMA_PREIMAGE_OPEN_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, (N.le (NUMERAL (BIT1 0%N)) k) -> (@baire M N' k s f) = (forall u : (cart R N') -> Prop, (@_open N' u) -> exists t : (cart R M) -> Prop, (@UNION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) t) /\ ((@GSPEC (cart R M) (fun GEN_PVAR_3782 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3782 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x)) = (@INTER (cart R M) s t))). +Axiom thm_BAIRE_EQ_FSIGMA_PREIMAGE_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (@UNION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) s)) -> (@baire M N' k s f) = (forall u : (cart R N') -> Prop, (@_open N' u) -> @UNION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) (@GSPEC (cart R M) (fun GEN_PVAR_3784 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3784 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))). +Axiom thm_BAIRE_EQ_FSIGMA_PREIMAGE_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, (N.le (NUMERAL (BIT1 0%N)) k) -> ((@UNION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) s) /\ (@baire M N' k s f)) = (forall u : (cart R N') -> Prop, (@_open N' u) -> @UNION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) (@GSPEC (cart R M) (fun GEN_PVAR_3786 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3786 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))). +Axiom thm_BAIRE_EQ_GDELTA_PREIMAGE_CLOSED_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, (N.le (NUMERAL (BIT1 0%N)) k) -> (@baire M N' k s f) = (forall u : (cart R N') -> Prop, (@closed N' u) -> exists t : (cart R M) -> Prop, (@INTERSECTION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) t) /\ ((@GSPEC (cart R M) (fun GEN_PVAR_3789 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3789 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x)) = (@INTER (cart R M) s t))). +Axiom thm_BAIRE_EQ_GDELTA_PREIMAGE_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (@INTERSECTION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) s)) -> (@baire M N' k s f) = (forall u : (cart R N') -> Prop, (@closed N' u) -> @INTERSECTION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) (@GSPEC (cart R M) (fun GEN_PVAR_3791 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3791 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))). +Axiom thm_BAIRE_EQ_GDELTA_PREIMAGE_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, (N.le (NUMERAL (BIT1 0%N)) k) -> ((@INTERSECTION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) s) /\ (@baire M N' k s f)) = (forall u : (cart R N') -> Prop, (@closed N' u) -> @INTERSECTION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) (@GSPEC (cart R M) (fun GEN_PVAR_3793 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3793 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))). +Axiom thm_COUNTABLE_DISCONTINUITIES_IMP_BAIRE1 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@COUNTABLE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_3801 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3801 ((@IN (cart R M) x s) /\ (~ (@continuous N' (cart R M) f (@within (cart R M) (@_at M x) s)))) x))) -> @baire M N' (NUMERAL (BIT1 0%N)) s f. +Axiom thm_COUNTABLE_NEITHER_SIDED_LIMITS_IMP_BAIRE1_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@COUNTABLE (cart R unit) (@GSPEC (cart R unit) (fun GEN_PVAR_3804 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3804 ((@IN (cart R unit) x s) /\ ((~ (exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit x) (@GSPEC (cart R unit) (fun GEN_PVAR_3802 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3802 ((@IN (cart R unit) t s) /\ (Rle (drop t) (drop x))) t))))) /\ (~ (exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit x) (@GSPEC (cart R unit) (fun GEN_PVAR_3803 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3803 ((@IN (cart R unit) t s) /\ (Rle (drop x) (drop t))) t))))))) x))) -> @baire unit N' (NUMERAL (BIT1 0%N)) s f. +Axiom thm_COUNTABLE_NEITHER_SIDED_LIMITS_IMP_BAIRE1 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@COUNTABLE (cart R unit) (@GSPEC (cart R unit) (fun GEN_PVAR_3807 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3807 ((@IN (cart R unit) x s) /\ ((~ (exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit x) (@GSPEC (cart R unit) (fun GEN_PVAR_3805 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3805 (Rle (drop t) (drop x)) t))))) /\ (~ (exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit x) (@GSPEC (cart R unit) (fun GEN_PVAR_3806 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_3806 (Rle (drop x) (drop t)) t))))))) x))) -> @baire unit N' (NUMERAL (BIT1 0%N)) s f. +Axiom thm_BAIRE_EXTENSION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, ((@baire M N' k s f) /\ (@INTERSECTION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) s)) -> exists g : (cart R M) -> cart R N', (@baire M N' k (@UNIV (cart R M)) g) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)). +Axiom thm_BAIRE_LAVRENTIEV : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, (@baire M N' k s f) -> exists u : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@INTERSECTION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit (N.add k (NUMERAL (BIT1 0%N))) (@UNIV (cart R M))) (@indicator M)) u) /\ ((@SUBSET (cart R M) s u) /\ ((@SUBSET (cart R M) u (@closure M s)) /\ ((@baire M N' k u g) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))))). +Axiom thm_BAIRE_CASES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall k : N, ((@baire M N' k s f) /\ ((@baire M N' k (@DIFF (cart R M) t s) g) /\ (@baire M unit k (@UNIV (cart R M)) (@indicator M s)))) -> @baire M N' k t (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (g x)). +Axiom thm_BAIRE_RESTRICT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, ((@baire M N' k s f) /\ (@baire M unit k (@UNIV (cart R M)) (@indicator M s))) -> @baire M N' k (@UNIV (cart R M)) (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))). +Axiom thm_BAIRE_FSIGMA_PREIMAGE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall u : (cart R N') -> Prop, forall m : N, forall n : N, ((@baire M N' m s f) /\ (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit n (@UNIV (cart R N'))) (@indicator N')) u)) -> exists c : (cart R M) -> Prop, (@UNION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit (N.add m n) (@UNIV (cart R M))) (@indicator M)) c) /\ ((@GSPEC (cart R M) (fun GEN_PVAR_3928 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3928 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x)) = (@INTER (cart R M) s c)). +Axiom thm_BAIRE_COMPOSE : forall {M N' P : Type'}, forall m : N, forall n : N, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, ((@baire M N' m s f) /\ (@baire N' P n (@IMAGE (cart R M) (cart R N') f s) g)) -> @baire M P (N.add m n) s (@o (cart R M) (cart R N') (cart R P) g f). +Axiom thm_BAIRE_CONTINUOUS_COMPOSE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall k : N, ((@baire M N' k s f) /\ (@continuous_on N' P g (@IMAGE (cart R M) (cart R N') f s))) -> @baire M P k s (@o (cart R M) (cart R N') (cart R P) g f). +Axiom thm_HOMEOMORPHIC_BAIRE_INDICATOR : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : N, ((@homeomorphic N' M s t) /\ (N.le (NUMERAL (BIT1 0%N)) k)) -> (@baire M unit k (@UNIV (cart R M)) (@indicator M s)) = (@baire N' unit k (@UNIV (cart R N')) (@indicator N' t)). +Axiom thm_HOMEOMORPHIC_COUNTABLE_UNION_OF_BAIRE_INDICATOR : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : N, ((@homeomorphic N' M s t) /\ (N.le (NUMERAL (BIT1 0%N)) k)) -> (@UNION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) s) = (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) t). +Axiom thm_HOMEOMORPHIC_COUNTABLE_INTERSECTION_OF_BAIRE_INDICATOR : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : N, ((@homeomorphic N' M s t) /\ (N.le (NUMERAL (BIT1 0%N)) k)) -> (@INTERSECTION_OF (cart R M) (@COUNTABLE ((cart R M) -> Prop)) (@o ((cart R M) -> Prop) ((cart R M) -> cart R unit) Prop (@baire M unit k (@UNIV (cart R M))) (@indicator M)) s) = (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) t). +Axiom thm_FSIGMA_DISJOINT_GEN : forall {N' : Type'}, forall k : N, forall s : (cart R N') -> Prop, (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) s) = (@UNION_OF (cart R N') (@INTER (((cart R N') -> Prop) -> Prop) (@COUNTABLE ((cart R N') -> Prop)) (@pairwise ((cart R N') -> Prop) (@DISJOINT (cart R N')))) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) s). +Axiom thm_FSIGMA_GDELTA_GEN : forall {N' : Type'}, forall k : N, forall s : (cart R N') -> Prop, (N.le (NUMERAL (BIT1 0%N)) k) -> (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit (N.add k (NUMERAL (BIT1 0%N))) (@UNIV (cart R N'))) (@indicator N')) s) = (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N'))) s). +Axiom thm_GDELTA_FSIGMA_GEN : forall {N' : Type'}, forall k : N, forall s : (cart R N') -> Prop, (N.le (NUMERAL (BIT1 0%N)) k) -> (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit (N.add k (NUMERAL (BIT1 0%N))) (@UNIV (cart R N'))) (@indicator N')) s) = (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N'))) s). +Axiom thm_FSIGMA_GDELTA_DISJOINT : forall {N' : Type'}, forall k : N, forall s : (cart R N') -> Prop, (N.le (NUMERAL (BIT1 0%N)) k) -> (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit (N.add k (NUMERAL (BIT1 0%N))) (@UNIV (cart R N'))) (@indicator N')) s) = (@UNION_OF (cart R N') (@INTER (((cart R N') -> Prop) -> Prop) (@COUNTABLE ((cart R N') -> Prop)) (@pairwise ((cart R N') -> Prop) (@DISJOINT (cart R N')))) (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N'))) s). +Axiom thm_LOCALLY_BAIRE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, (@locally M (fun u : (cart R M) -> Prop => @baire M N' k u f) s) = (@baire M N' k s f). +Axiom thm_LOCALLY_BAIRE_EXPLICIT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, (@baire M N' k s f) = (forall x : cart R M, (@IN (cart R M) x s) -> exists u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@IN (cart R M) x u) /\ (@baire M N' k u f))). +Axiom thm_LOCALLY_BAIRE_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, (@baire M N' k s f) = (forall x : cart R M, (@IN (cart R M) x s) -> exists u : (cart R M) -> Prop, exists v : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@IN (cart R M) x u) /\ ((@SUBSET (cart R M) u v) /\ (@baire M N' k v f)))). +Axiom thm_FSIGMA_LOCALLY_GEN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k u) (@indicator N')) s)) -> exists t : (cart R N') -> Prop, (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) t) /\ ((@INTER (cart R N') u t) = (@INTER (cart R N') u s)). +Axiom thm_FSIGMA_LOCALLY_EQ : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall k : N, (N.le (NUMERAL (BIT1 0%N)) k) -> ((@SUBSET (cart R N') s u) /\ (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k u) (@indicator N')) s)) = (exists t : (cart R N') -> Prop, (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) t) /\ ((@INTER (cart R N') u t) = s)). +Axiom thm_FSIGMA_LOCALLY_TRANS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((@SUBSET (cart R N') s t) /\ ((@SUBSET (cart R N') t u) /\ ((@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k t) (@indicator N')) s) /\ (@UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k u) (@indicator N')) t))))) -> @UNION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k u) (@indicator N')) s. +Axiom thm_GDELTA_LOCALLY_GEN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k u) (@indicator N')) s)) -> exists t : (cart R N') -> Prop, (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) t) /\ ((@INTER (cart R N') u t) = (@INTER (cart R N') u s)). +Axiom thm_GDELTA_LOCALLY_EQ : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall k : N, (N.le (NUMERAL (BIT1 0%N)) k) -> ((@SUBSET (cart R N') s u) /\ (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k u) (@indicator N')) s)) = (exists t : (cart R N') -> Prop, (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) t) /\ ((@INTER (cart R N') u t) = s)). +Axiom thm_GDELTA_LOCALLY_TRANS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((@SUBSET (cart R N') s t) /\ ((@SUBSET (cart R N') t u) /\ ((@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k t) (@indicator N')) s) /\ (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k u) (@indicator N')) t))))) -> @INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k u) (@indicator N')) s. +Axiom thm_BAIRE_INDICATOR_LOCALLY : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((@baire N' unit k u (@indicator N' s)) /\ (@INTERSECTION_OF (cart R N') (@COUNTABLE ((cart R N') -> Prop)) (@o ((cart R N') -> Prop) ((cart R N') -> cart R unit) Prop (@baire N' unit k (@UNIV (cart R N'))) (@indicator N')) u))) -> exists t : (cart R N') -> Prop, (@baire N' unit k (@UNIV (cart R N')) (@indicator N' t)) /\ ((@INTER (cart R N') u t) = (@INTER (cart R N') u s)). +Axiom thm_borel_measurable_RULES : forall {M N' : Type'}, (forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) -> @borel_measurable_on M N' f s) /\ (forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall n : N, @borel_measurable_on M N' (f n) s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @FImp N' N (fun n : N => f n x) (g x) sequentially)) -> @borel_measurable_on M N' g s). +Axiom thm_borel_measurable_CASES : forall {M N' : Type'}, forall a0 : (cart R M) -> cart R N', forall a1 : (cart R M) -> Prop, (@borel_measurable_on M N' a0 a1) = ((@continuous_on M N' a0 a1) \/ (exists f : N -> (cart R M) -> cart R N', (forall n : N, @borel_measurable_on M N' (f n) a1) /\ (forall x : cart R M, (@IN (cart R M) x a1) -> @FImp N' N (fun n : N => f n x) (a0 x) sequentially))). +Axiom thm_borel_measurable_INDUCT : forall {M N' : Type'}, forall borel_measurable_on' : ((cart R M) -> cart R N') -> ((cart R M) -> Prop) -> Prop, ((forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) -> borel_measurable_on' f s) /\ (forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall n : N, borel_measurable_on' (f n) s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @FImp N' N (fun n : N => f n x) (g x) sequentially)) -> borel_measurable_on' g s)) -> forall a0 : (cart R M) -> cart R N', forall a1 : (cart R M) -> Prop, (@borel_measurable_on M N' a0 a1) -> borel_measurable_on' a0 a1. +Axiom thm_CONTINUOUS_IMP_BOREL_MEASURABLE_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) -> @borel_measurable_on M N' f s. +Axiom thm_BAIRE_IMP_BOREL_MEASURABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, (@baire M N' n s f) -> @borel_measurable_on M N' f s. +Axiom thm_BOREL_MEASURABLE_ON_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@borel_measurable_on M N' f s) /\ (@SUBSET (cart R M) t s)) -> @borel_measurable_on M N' f t. +Axiom thm_BOREL_MEASURABLE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (g x)) /\ (@borel_measurable_on M N' f s)) -> @borel_measurable_on M N' g s. +Axiom thm_BOREL_MEASURABLE_PASTECART : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, ((@borel_measurable_on M N' f s) /\ (@borel_measurable_on M P g s)) -> @borel_measurable_on M (finite_sum N' P) (fun x : cart R M => @pastecart R N' P (f x) (g x)) s. +Axiom thm_BOREL_MEASURABLE_CONTINUOUS_COMPOSE : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on N' P f (@UNIV (cart R N'))) /\ (@borel_measurable_on M N' g s)) -> @borel_measurable_on M P (@o (cart R M) (cart R N') (cart R P) f g) s. +Axiom thm_BOREL_MEASURABLE_CMUL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall c : R, (@borel_measurable_on M N' f s) -> @borel_measurable_on M N' (fun x : cart R M => @percent N' c (f x)) s. +Axiom thm_BOREL_MEASURABLE_BILINEAR : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, ((@bilinear P Q N' bop) /\ ((@borel_measurable_on M N' f s) /\ (@borel_measurable_on M P g s))) -> @borel_measurable_on M Q (fun x : cart R M => bop (f x) (g x)) s. +Axiom thm_BOREL_MEASURABLE_ADD : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@borel_measurable_on M N' f s) /\ (@borel_measurable_on M N' g s)) -> @borel_measurable_on M N' (fun x : cart R M => @vector_add N' (f x) (g x)) s. +Axiom thm_BOREL_MEASURABLE_SUB : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@borel_measurable_on M N' f s) /\ (@borel_measurable_on M N' g s)) -> @borel_measurable_on M N' (fun x : cart R M => @vector_sub N' (f x) (g x)) s. +Axiom thm_BOREL_MEASURABLE_CONST : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall c : cart R N', @borel_measurable_on M N' (fun x : cart R M => c) s. +Axiom thm_BOREL_MEASURABLE_VSUM : forall {A M N' : Type'}, forall f : A -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (forall i : A, (@IN A i t) -> @borel_measurable_on M N' (f i) s)) -> @borel_measurable_on M N' (fun x : cart R M => @vsum A N' t (fun i : A => f i x)) s. +Axiom thm_BOREL_MEASURABLE_MUL : forall {M N' : Type'}, forall f : (cart R M) -> R, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@borel_measurable_on M unit (fun x : cart R M => lift (f x)) s) /\ (@borel_measurable_on M N' g s)) -> @borel_measurable_on M N' (fun x : cart R M => @percent N' (f x) (g x)) s. +Axiom thm_BOREL_MEASURABLE_NORM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@borel_measurable_on M N' f s) -> @borel_measurable_on M unit (fun x : cart R M => lift (@vector_norm N' (f x))) s. +Axiom thm_BOREL_MEASURABLE_MAX : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@borel_measurable_on N' unit (fun x : cart R N' => lift (f x)) s) /\ (@borel_measurable_on N' unit (fun x : cart R N' => lift (g x)) s)) -> @borel_measurable_on N' unit (fun x : cart R N' => lift (Rmax (f x) (g x))) s. +Axiom thm_BOREL_MEASURABLE_MIN : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@borel_measurable_on N' unit (fun x : cart R N' => lift (f x)) s) /\ (@borel_measurable_on N' unit (fun x : cart R N' => lift (g x)) s)) -> @borel_measurable_on N' unit (fun x : cart R N' => lift (Rmin (f x) (g x))) s. +Axiom thm_BOREL_MEASURABLE_PRODUCT : forall {A N' : Type'}, forall f : A -> (cart R N') -> R, forall s : (cart R N') -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (forall i : A, (@IN A i t) -> @borel_measurable_on N' unit (fun x : cart R N' => lift (f i x)) s)) -> @borel_measurable_on N' unit (fun x : cart R N' => lift (@product A t (fun i : A => f i x))) s. +Axiom thm_BOREL_MEASURABLE_COMPONENTWISE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@borel_measurable_on M N' f s) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @borel_measurable_on M unit (fun x : cart R M => lift (@dollar R N' (f x) i)) s). +Axiom thm_BOREL_BOREL_MEASURABLE_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@borel_measurable_on M N' f s) /\ ((@borel M s) /\ (@borel N' t))) -> @borel M (@GSPEC (cart R M) (fun GEN_PVAR_3990 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_3990 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_BOREL_MEASURABLE_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@borel_measurable_on N' unit (@indicator N' s) (@UNIV (cart R N'))) = (@borel N' s). +Axiom thm_BOREL_MEASURABLE_ON_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@borel N' s) -> (@borel_measurable_on N' unit (@indicator N' t) s) = (@borel N' (@INTER (cart R N') s t)). +Axiom thm_BOREL_MEASURABLE_PREIMAGE_BOREL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@borel M s) /\ (@borel_measurable_on M N' f s)) = (forall t : (cart R N') -> Prop, (@borel N' t) -> @borel M (@GSPEC (cart R M) (fun GEN_PVAR_4006 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4006 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_BOREL_MEASURABLE_EXTENSION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@borel_measurable_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (@borel N' t))) -> exists g : (cart R M) -> cart R N', (@borel_measurable_on M N' g (@UNIV (cart R M))) /\ (((~ (t = (@EMPTY (cart R N')))) -> @SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@UNIV (cart R M))) t) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))). +Axiom thm_BOREL_MEASURABLE_COMPOSE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, ((@borel_measurable_on M N' f s) /\ (@borel_measurable_on N' P g (@IMAGE (cart R M) (cart R N') f s))) -> @borel_measurable_on M P (@o (cart R M) (cart R N') (cart R P) g f) s. +Axiom thm_BOREL_MEASURABLE_CASES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@borel_measurable_on M N' f s) /\ ((@borel_measurable_on M N' g (@DIFF (cart R M) t s)) /\ (@borel M s))) -> @borel_measurable_on M N' (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (g x)) t. +Axiom thm_BOREL_MEASURABLE_RESTRICT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@borel_measurable_on M N' f s) /\ (@borel M s)) -> @borel_measurable_on M N' (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) (@UNIV (cart R M)). +Axiom thm_analytic : forall {_893426 : Type'}, forall s : (cart R _893426) -> Prop, (@analytic _893426 s) = (@suslin (cart R _893426) (@compact _893426) s). +Axiom thm_COMPACT_IMP_ANALYTIC : forall {_893435 : Type'}, forall s : (cart R _893435) -> Prop, (@compact _893435 s) -> @analytic _893435 s. +Axiom thm_ANALYTIC_EMPTY : forall {N' : Type'}, @analytic N' (@EMPTY (cart R N')). +Axiom thm_ANALYTIC_UNIONS : forall {N' : Type'}, forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> @analytic N' s)) -> @analytic N' (@UNIONS (cart R N') u). +Axiom thm_ANALYTIC_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@analytic N' s) /\ (@analytic N' t)) -> @analytic N' (@UNION (cart R N') s t). +Axiom thm_LOCALLY_COMPACT_IMP_ANALYTIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) -> @analytic N' s. +Axiom thm_OPEN_IMP_ANALYTIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @analytic N' s. +Axiom thm_CLOSED_IMP_ANALYTIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @analytic N' s. +Axiom thm_ANALYTIC_UNIV : forall {N' : Type'}, @analytic N' (@UNIV (cart R N')). +Axiom thm_ANALYTIC_INTERS : forall {N' : Type'}, forall u : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) u) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> @analytic N' s)) -> @analytic N' (@INTERS (cart R N') u). +Axiom thm_ANALYTIC_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@analytic N' s) /\ (@analytic N' t)) -> @analytic N' (@INTER (cart R N') s t). +Axiom thm_OPEN_IN_ANALYTIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) /\ (@analytic N' t)) -> @analytic N' s. +Axiom thm_CLOSED_IN_ANALYTIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) /\ (@analytic N' t)) -> @analytic N' s. +Axiom thm_BOREL_IMP_ANALYTIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@borel N' s) -> @analytic N' s. +Axiom thm_GDELTA_IMP_ANALYTIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@gdelta N' s) -> @analytic N' s. +Axiom thm_FSIGMA_IMP_ANALYTIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@fsigma N' s) -> @analytic N' s. +Axiom thm_ANALYTIC_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@analytic M s) /\ (@analytic N' t)) -> @analytic (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_ANALYTIC_BOREL_MEASURABLE_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@borel_measurable_on M N' f s) /\ ((@analytic M s) /\ (@analytic N' t))) -> @analytic M (@GSPEC (cart R M) (fun GEN_PVAR_4115 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4115 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_ANALYTIC_CONTINUOUS_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@analytic M s) /\ (@analytic N' t))) -> @analytic M (@GSPEC (cart R M) (fun GEN_PVAR_4116 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4116 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_ANALYTIC_CONTINUOUS_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@analytic M s) /\ (@continuous_on M N' f s)) -> @analytic N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_HOMEOMORPHIC_ANALYTICITY : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@analytic M s) = (@analytic N' t). +Axiom thm_ANALYTIC_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@analytic N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@analytic N' s). +Axiom thm_ANALYTIC_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> (@analytic N' (@IMAGE (cart R N') (cart R N') f s)) = (@analytic N' s). +Axiom thm_ANALYTIC_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@analytic (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@analytic M s) /\ (@analytic N' t)))). +Axiom thm_ANALYTIC_BOREL_MEASURABLE_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@analytic M s) /\ (@borel_measurable_on M N' f s)) -> @analytic N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_CARD_EQ_ANALYTIC_SETS : forall {N' : Type'}, @eq_c ((cart R N') -> Prop) R (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4121 : (cart R N') -> Prop => exists s : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4121 (@analytic N' s) s)) (@UNIV R). +Axiom thm_CARD_EQ_BOREL_SETS : forall {N' : Type'}, @eq_c ((cart R N') -> Prop) R (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4124 : (cart R N') -> Prop => exists s : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4124 (@borel N' s) s)) (@UNIV R). +Axiom thm_CARD_EQ_BOREL_MEASURABLE_FUNCTIONS : forall {M N' : Type'}, @eq_c ((cart R M) -> cart R N') R (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_4128 : (cart R M) -> cart R N' => exists f : (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_4128 (@borel_measurable_on M N' f (@UNIV (cart R M))) f)) (@UNIV R). +Axiom thm_CARD_EQ_BAIRE_FUNCTIONS : forall {M N' : Type'} (k : N), @eq_c ((cart R M) -> cart R N') R (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_4131 : (cart R M) -> cart R N' => exists f : (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_4131 (@baire M N' k (@UNIV (cart R M)) f) f)) (@UNIV R). +Axiom thm_FSIGMA_PREIMAGE_CARD_GE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, ((@continuous_on M N' f s) /\ (@fsigma M s)) -> @fsigma N' (@GSPEC (cart R N') (fun GEN_PVAR_4143 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4143 ((@FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_4141 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4141 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) -> N.le n (@CARD (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_4142 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4142 ((@IN (cart R M) x s) /\ ((f x) = y)) x)))) y)). +Axiom thm_GDELTA_PREIMAGE_CARD_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, ((@continuous_on M N' f s) /\ (@fsigma M s)) -> @gdelta N' (@GSPEC (cart R N') (fun GEN_PVAR_4148 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4148 ((@FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_4146 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4146 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) /\ (N.le (@CARD (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_4147 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4147 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) n)) y)). +Axiom thm_BOREL_PREIMAGE_HAS_SIZE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, ((@continuous_on M N' f s) /\ (@fsigma M s)) -> @borel N' (@GSPEC (cart R N') (fun GEN_PVAR_4155 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4155 (@HAS_SIZE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_4154 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4154 ((@IN (cart R M) x s) /\ ((f x) = y)) x)) n) y)). +Axiom thm_BOREL_PREIMAGE_FINITE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@fsigma M s)) -> @borel N' (@GSPEC (cart R N') (fun GEN_PVAR_4164 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4164 (@FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_4163 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4163 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) y)). +Axiom thm_BOREL_PREIMAGE_INFINITE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@fsigma M s)) -> @borel N' (@GSPEC (cart R N') (fun GEN_PVAR_4168 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4168 (@INFINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_4167 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4167 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) y)). +Axiom thm_BAIRE : forall {N' : Type'}, forall g : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ ((@COUNTABLE ((cart R N') -> Prop) g) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t g) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@SUBSET (cart R N') s (@closure N' t))))) -> @SUBSET (cart R N') s (@closure N' (@INTERS (cart R N') g)). +Axiom thm_BAIRE_ALT : forall {N' : Type'}, forall g : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@COUNTABLE ((cart R N') -> Prop) g) /\ ((@UNIONS (cart R N') g) = s)))) -> exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t g) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((~ (u = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') u (@closure N' t)))). +Axiom thm_NOWHERE_DENSE_COUNTABLE_UNIONS_CLOSED_IN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall g : ((cart R N') -> Prop) -> Prop, ((@locally N' (@compact N') u) /\ ((@COUNTABLE ((cart R N') -> Prop) g) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s g) -> (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) = (@EMPTY (cart R N')))))) -> (@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) (@UNIONS (cart R N') g)) = (@EMPTY (cart R N')). +Axiom thm_NOWHERE_DENSE_COUNTABLE_UNIONS_CLOSED : forall {N' : Type'}, forall g : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) g) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s g) -> (@closed N' s) /\ ((@interior N' s) = (@EMPTY (cart R N'))))) -> (@interior N' (@UNIONS (cart R N') g)) = (@EMPTY (cart R N')). +Axiom thm_NOWHERE_DENSE_COUNTABLE_UNIONS : forall {N' : Type'}, forall g : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) g) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s g) -> (@interior N' (@closure N' s)) = (@EMPTY (cart R N')))) -> (@interior N' (@UNIONS (cart R N') g)) = (@EMPTY (cart R N')). +Axiom thm_SILVERMAN_STEINHAUSLIKE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@gdelta N' s) /\ ((@gdelta N' t) /\ ((@SUBSET (cart R N') (@UNIV (cart R N')) (@closure N' s)) /\ (@SUBSET (cart R N') (@UNIV (cart R N')) (@closure N' t))))) -> (@GSPEC (cart R N') (fun GEN_PVAR_4175 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4175 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))) = (@UNIV (cart R N')). +Axiom thm_DENSE_GDELTA_IMP_LARGE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@gdelta N' s) /\ (@SUBSET (cart R N') (@UNIV (cart R N')) (@closure N' s))) -> @eq_c (cart R N') R s (@UNIV R). +Axiom thm_NOT_GDELTA_DENSE_COUNTABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@COUNTABLE (cart R N') s) /\ ((@closure N' s) = (@UNIV (cart R N')))) -> ~ (@gdelta N' s). +Axiom thm_GDELTA_CONTINUOUS_FUNCTION_MINIMA : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@compact M s)) -> @gdelta M (@GSPEC (cart R M) (fun GEN_PVAR_4206 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4206 ((@IN (cart R M) x s) /\ (forall y : cart R M, ((@IN (cart R M) y s) /\ ((f x) = (f y))) -> (x = y) \/ (exists k : N, (N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex M (@UNIV M))) /\ ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.lt i k)) -> Rle (@dollar R M x i) (@dollar R M y i)) /\ (Rlt (@dollar R M x k) (@dollar R M y k))))))) x)). +Axiom thm_GDELTA_DOMAIN_OF_INJECTIVITY_CONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@compact M s)) -> exists t : (cart R M) -> Prop, (@gdelta M t) /\ ((@SUBSET (cart R M) t s) /\ (((@IMAGE (cart R M) (cart R N') f t) = (@IMAGE (cart R M) (cart R N') f s)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x t) /\ ((@IN (cart R M) y t) /\ ((f x) = (f y)))) -> x = y))). +Axiom thm_BOREL_DOMAIN_OF_INJECTIVITY_CONTINUOUS_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : ((cart R M) -> Prop) -> Prop, ((@COUNTABLE ((cart R M) -> Prop) u) /\ (forall k : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) k u) -> (@compact M k) /\ (@continuous_on M N' f k))) -> exists t : (cart R M) -> Prop, (@borel M t) /\ ((@SUBSET (cart R M) t (@UNIONS (cart R M) u)) /\ (((@IMAGE (cart R M) (cart R N') f t) = (@IMAGE (cart R M) (cart R N') f (@UNIONS (cart R M) u))) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x t) /\ ((@IN (cart R M) y t) /\ ((f x) = (f y)))) -> x = y))). +Axiom thm_BOREL_DOMAIN_OF_INJECTIVITY_CONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@fsigma M s)) -> exists t : (cart R M) -> Prop, (@borel M t) /\ ((@SUBSET (cart R M) t s) /\ (((@IMAGE (cart R M) (cart R N') f t) = (@IMAGE (cart R M) (cart R N') f s)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x t) /\ ((@IN (cart R M) y t) /\ ((f x) = (f y)))) -> x = y))). +Axiom thm_PARACOMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : ((cart R N') -> Prop) -> Prop, ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) -> @_open N' t) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') c))) -> exists c' : ((cart R N') -> Prop) -> Prop, (@SUBSET (cart R N') s (@UNIONS (cart R N') c')) /\ ((forall u : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) u c') -> (@_open N' u) /\ (exists t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) /\ (@SUBSET (cart R N') u t))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists v : (cart R N') -> Prop, (@_open N' v) /\ ((@IN (cart R N') x v) /\ (@FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4223 : (cart R N') -> Prop => exists u : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4223 ((@IN ((cart R N') -> Prop) u c') /\ (~ ((@INTER (cart R N') u v) = (@EMPTY (cart R N'))))) u)))))). +Axiom thm_PARACOMPACT_CLOSED_IN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall c : ((cart R N') -> Prop) -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') c)))) -> exists c' : ((cart R N') -> Prop) -> Prop, (@SUBSET (cart R N') s (@UNIONS (cart R N') c')) /\ ((forall v : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) v c') -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) v) /\ (exists t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) /\ (@SUBSET (cart R N') v t))) /\ (forall x : cart R N', (@IN (cart R N') x u) -> exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) v) /\ ((@IN (cart R N') x v) /\ (@FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4228 : (cart R N') -> Prop => exists n : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4228 ((@IN ((cart R N') -> Prop) n c') /\ (~ ((@INTER (cart R N') n v) = (@EMPTY (cart R N'))))) n)))))). +Axiom thm_PARACOMPACT_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : ((cart R N') -> Prop) -> Prop, ((@closed N' s) /\ ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) -> @_open N' t) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') c)))) -> exists c' : ((cart R N') -> Prop) -> Prop, (@SUBSET (cart R N') s (@UNIONS (cart R N') c')) /\ ((forall u : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) u c') -> (@_open N' u) /\ (exists t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) /\ (@SUBSET (cart R N') u t))) /\ (forall x : cart R N', exists v : (cart R N') -> Prop, (@_open N' v) /\ ((@IN (cart R N') x v) /\ (@FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4229 : (cart R N') -> Prop => exists u : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4229 ((@IN ((cart R N') -> Prop) u c') /\ (~ ((@INTER (cart R N') u v) = (@EMPTY (cart R N'))))) u)))))). +Axiom thm_SUBORDINATE_PARTITION_OF_UNITY : forall {N' : Type'}, forall c : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((@SUBSET (cart R N') s (@UNIONS (cart R N') c)) /\ ((forall u : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) u c) -> @_open N' u) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists v : (cart R N') -> Prop, (@_open N' v) /\ ((@IN (cart R N') x v) /\ (@FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4231 : (cart R N') -> Prop => exists u : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4231 ((@IN ((cart R N') -> Prop) u c) /\ (~ ((@INTER (cart R N') u v) = (@EMPTY (cart R N'))))) u))))))) -> exists f : ((cart R N') -> Prop) -> (cart R N') -> R, (forall u : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) u c) -> (@continuous_on N' unit (@o (cart R N') R (cart R unit) lift (f u)) s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (f u x))) /\ ((forall x : cart R N', forall u : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) u c) /\ ((@IN (cart R N') x s) /\ (~ (@IN (cart R N') x u)))) -> (f u x) = (R_of_N (NUMERAL 0%N))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (@sum ((cart R N') -> Prop) c (fun u : (cart R N') -> Prop => f u x)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists n : (cart R N') -> Prop, (@_open N' n) /\ ((@IN (cart R N') x n) /\ (@FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4232 : (cart R N') -> Prop => exists u : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4232 ((@IN ((cart R N') -> Prop) u c) /\ (~ (forall x' : cart R N', (@IN (cart R N') x' n) -> (f u x') = (R_of_N (NUMERAL 0%N))))) u))))))). +Axiom thm_TRANSLATION_EQ_IMP : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, (forall a : cart R N', forall s : (cart R N') -> Prop, (P (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (P s)) = (forall a : cart R N', forall s : (cart R N') -> Prop, (P s) -> P (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)). +Axiom thm_DIM_HYPERPLANE : forall {N' : Type'}, forall a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) -> (@dim N' (@GSPEC (cart R N') (fun GEN_PVAR_4233 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4233 ((@dot N' a x) = (R_of_N (NUMERAL 0%N))) x))) = (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N))). +Axiom thm_DIM_EQ_HYPERPLANE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@dim N' s) = (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) = (exists a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((@span N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_4234 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4234 ((@dot N' a x) = (R_of_N (NUMERAL 0%N))) x)))). +Axiom thm_affine : forall {_900445 : Type'}, forall s : (cart R _900445) -> Prop, (@affine _900445 s) = (forall x : cart R _900445, forall y : cart R _900445, forall u : R, forall v : R, ((@IN (cart R _900445) x s) /\ ((@IN (cart R _900445) y s) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))) -> @IN (cart R _900445) (@vector_add _900445 (@percent _900445 u x) (@percent _900445 v y)) s). +Axiom thm_AFFINE_ALT : forall {_900514 : Type'} (s : (cart R _900514) -> Prop), (@affine _900514 s) = (forall x : cart R _900514, forall y : cart R _900514, forall u : R, ((@IN (cart R _900514) x s) /\ (@IN (cart R _900514) y s)) -> @IN (cart R _900514) (@vector_add _900514 (@percent _900514 (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) x) (@percent _900514 u y)) s). +Axiom thm_AFFINE_SCALING : forall {_900573 : Type'}, forall s : (cart R _900573) -> Prop, forall c : R, (@affine _900573 s) -> @affine _900573 (@IMAGE (cart R _900573) (cart R _900573) (fun x : cart R _900573 => @percent _900573 c x) s). +Axiom thm_AFFINE_NEGATIONS : forall {_900661 : Type'}, forall s : (cart R _900661) -> Prop, (@affine _900661 s) -> @affine _900661 (@IMAGE (cart R _900661) (cart R _900661) (@vector_neg _900661) s). +Axiom thm_AFFINE_SUMS : forall {_900789 : Type'}, forall s : (cart R _900789) -> Prop, forall t : (cart R _900789) -> Prop, ((@affine _900789 s) /\ (@affine _900789 t)) -> @affine _900789 (@GSPEC (cart R _900789) (fun GEN_PVAR_4235 : cart R _900789 => exists x : cart R _900789, exists y : cart R _900789, @SETSPEC (cart R _900789) GEN_PVAR_4235 ((@IN (cart R _900789) x s) /\ (@IN (cart R _900789) y t)) (@vector_add _900789 x y))). +Axiom thm_AFFINE_DIFFERENCES : forall {_900917 : Type'}, forall s : (cart R _900917) -> Prop, forall t : (cart R _900917) -> Prop, ((@affine _900917 s) /\ (@affine _900917 t)) -> @affine _900917 (@GSPEC (cart R _900917) (fun GEN_PVAR_4236 : cart R _900917 => exists x : cart R _900917, exists y : cart R _900917, @SETSPEC (cart R _900917) GEN_PVAR_4236 ((@IN (cart R _900917) x s) /\ (@IN (cart R _900917) y t)) (@vector_sub _900917 x y))). +Axiom thm_AFFINE_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@affine N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@affine N' s). +Axiom thm_AFFINE_TRANSLATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@affine N' s) -> @affine N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_AFFINE_LINEAR_IMAGE : forall {_901071 _901074 : Type'}, forall f : (cart R _901071) -> cart R _901074, forall s : (cart R _901071) -> Prop, ((@affine _901071 s) /\ (@linear _901071 _901074 f)) -> @affine _901074 (@IMAGE (cart R _901071) (cart R _901074) f s). +Axiom thm_AFFINE_LINEAR_IMAGE_EQ : forall {_901096 _901124 : Type'}, forall f : (cart R _901124) -> cart R _901096, forall s : (cart R _901124) -> Prop, ((@linear _901124 _901096 f) /\ (forall x : cart R _901124, forall y : cart R _901124, ((f x) = (f y)) -> x = y)) -> (@affine _901096 (@IMAGE (cart R _901124) (cart R _901096) f s)) = (@affine _901124 s). +Axiom thm_AFFINE_LINEAR_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, ((@linear M N' f) /\ (@affine N' s)) -> @affine M (@GSPEC (cart R M) (fun GEN_PVAR_4237 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4237 (@IN (cart R N') (f x) s) x)). +Axiom thm_AFFINE_EMPTY : forall {_901163 : Type'}, @affine _901163 (@EMPTY (cart R _901163)). +Axiom thm_AFFINE_SING : forall {_901171 : Type'}, forall x : cart R _901171, @affine _901171 (@INSERT (cart R _901171) x (@EMPTY (cart R _901171))). +Axiom thm_AFFINE_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@affine N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@affine N' s)). +Axiom thm_AFFINE_AFFINITY_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@affine N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = ((m = (R_of_N (NUMERAL 0%N))) \/ (@affine N' s)). +Axiom thm_AFFINE_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@affine N' s) -> @affine N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s). +Axiom thm_AFFINE_UNIV : forall {N' : Type'}, @affine N' (@UNIV (cart R N')). +Axiom thm_AFFINE_HYPERPLANE : forall {_901328 : Type'}, forall a : cart R _901328, forall b : R, @affine _901328 (@GSPEC (cart R _901328) (fun GEN_PVAR_4238 : cart R _901328 => exists x : cart R _901328, @SETSPEC (cart R _901328) GEN_PVAR_4238 ((@dot _901328 a x) = b) x)). +Axiom thm_AFFINE_STANDARD_HYPERPLANE : forall {N' : Type'}, forall b : R, forall k : N, @affine N' (@GSPEC (cart R N') (fun GEN_PVAR_4239 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4239 ((@dollar R N' x k) = b) x)). +Axiom thm_AFFINE_INTERS : forall {_901409 : Type'} (f : ((cart R _901409) -> Prop) -> Prop), (forall s : (cart R _901409) -> Prop, (@IN ((cart R _901409) -> Prop) s f) -> @affine _901409 s) -> @affine _901409 (@INTERS (cart R _901409) f). +Axiom thm_AFFINE_INTER : forall {_901430 : Type'}, forall s : (cart R _901430) -> Prop, forall t : (cart R _901430) -> Prop, ((@affine _901430 s) /\ (@affine _901430 t)) -> @affine _901430 (@INTER (cart R _901430) s t). +Axiom thm_AFFINE_AFFINE_HULL : forall {_901446 : Type'}, forall s : (cart R _901446) -> Prop, @affine _901446 (@hull (cart R _901446) (@affine _901446) s). +Axiom thm_AFFINE_HULL_EQ : forall {_901462 : Type'}, forall s : (cart R _901462) -> Prop, ((@hull (cart R _901462) (@affine _901462) s) = s) = (@affine _901462 s). +Axiom thm_IS_AFFINE_HULL : forall {_901482 : Type'}, forall s : (cart R _901482) -> Prop, (@affine _901482 s) = (exists t : (cart R _901482) -> Prop, s = (@hull (cart R _901482) (@affine _901482) t)). +Axiom thm_AFFINE_HULL_UNIV : forall {N' : Type'}, (@hull (cart R N') (@affine N') (@UNIV (cart R N'))) = (@UNIV (cart R N')). +Axiom thm_AFFINE_HULLS_EQ : forall {_901530 : Type'}, forall s : (cart R _901530) -> Prop, forall t : (cart R _901530) -> Prop, ((@SUBSET (cart R _901530) s (@hull (cart R _901530) (@affine _901530) t)) /\ (@SUBSET (cart R _901530) t (@hull (cart R _901530) (@affine _901530) s))) -> (@hull (cart R _901530) (@affine _901530) s) = (@hull (cart R _901530) (@affine _901530) t). +Axiom thm_AFFINE_HULL_TRANSLATION : forall {_901574 : Type'}, forall a : cart R _901574, forall s : (cart R _901574) -> Prop, (@hull (cart R _901574) (@affine _901574) (@IMAGE (cart R _901574) (cart R _901574) (fun x : cart R _901574 => @vector_add _901574 a x) s)) = (@IMAGE (cart R _901574) (cart R _901574) (fun x : cart R _901574 => @vector_add _901574 a x) (@hull (cart R _901574) (@affine _901574) s)). +Axiom thm_AFFINE_HULL_LINEAR_IMAGE : forall {_901594 _901613 : Type'}, forall f : (cart R _901613) -> cart R _901594, forall s : (cart R _901613) -> Prop, (@linear _901613 _901594 f) -> (@hull (cart R _901594) (@affine _901594) (@IMAGE (cart R _901613) (cart R _901594) f s)) = (@IMAGE (cart R _901613) (cart R _901594) f (@hull (cart R _901613) (@affine _901613) s)). +Axiom thm_IN_AFFINE_HULL_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall x : cart R M, ((@linear M N' f) /\ (@IN (cart R M) x (@hull (cart R M) (@affine M) s))) -> @IN (cart R N') (f x) (@hull (cart R N') (@affine N') (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_SAME_DISTANCES_TO_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (forall x : cart R N', (@IN (cart R N') x s) -> (@distance N' (@pair (cart R N') (cart R N') x a)) = (@distance N' (@pair (cart R N') (cart R N') x b))) -> forall x : cart R N', (@IN (cart R N') x (@hull (cart R N') (@affine N') s)) -> (@distance N' (@pair (cart R N') (cart R N') x a)) = (@distance N' (@pair (cart R N') (cart R N') x b)). +Axiom thm_BILINEAR_IN_AFFINE_HULL : forall {M N' P : Type'}, forall f : (cart R M) -> (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall x : cart R M, forall y : cart R N', ((@bilinear N' P M f) /\ ((@IN (cart R M) x (@hull (cart R M) (@affine M) s)) /\ (@IN (cart R N') y (@hull (cart R N') (@affine N') t)))) -> @IN (cart R P) (f x y) (@hull (cart R P) (@affine P) (@GSPEC (cart R P) (fun GEN_PVAR_4244 : cart R P => exists a : cart R M, exists b : cart R N', @SETSPEC (cart R P) GEN_PVAR_4244 ((@IN (cart R M) a s) /\ (@IN (cart R N') b t)) (f a b)))). +Axiom thm_IN_AFFINE_ADD_MUL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall x : cart R N', forall d : R, ((@affine N' s) /\ ((@IN (cart R N') a s) /\ (@IN (cart R N') (@vector_add N' a x) s))) -> @IN (cart R N') (@vector_add N' a (@percent N' d x)) s. +Axiom thm_IN_AFFINE_ADD_MUL_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : R, forall x : cart R N', forall y : cart R N', forall z : cart R N', ((@affine N' s) /\ ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (@IN (cart R N') z s)))) -> @IN (cart R N') (@vector_add N' x (@percent N' a (@vector_sub N' y z))) s. +Axiom thm_IN_AFFINE_MUL_DIFF_ADD : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : R, forall x : cart R N', forall y : cart R N', forall z : cart R N', ((@affine N' s) /\ ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (@IN (cart R N') z s)))) -> @IN (cart R N') (@vector_add N' (@percent N' a (@vector_sub N' x y)) z) s. +Axiom thm_IN_AFFINE_SUB_MUL_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : R, forall x : cart R N', forall y : cart R N', forall z : cart R N', ((@affine N' s) /\ ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (@IN (cart R N') z s)))) -> @IN (cart R N') (@vector_sub N' x (@percent N' a (@vector_sub N' y z))) s. +Axiom thm_AFFINE_DIFFS_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@affine N' s) /\ (@IN (cart R N') a s)) -> @subspace N' (@GSPEC (cart R N') (fun GEN_PVAR_4245 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4245 (@IN (cart R N') x s) (@vector_sub N' x a))). +Axiom thm_AFFINE_VSUM : forall {A N' : Type'}, forall s : (cart R N') -> Prop, forall k : A -> Prop, forall u : A -> R, forall x : A -> cart R N', ((@FINITE A k) /\ ((@affine N' s) /\ (((@sum A k u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : A, (@IN A i k) -> @IN (cart R N') (x i) s)))) -> @IN (cart R N') (@vsum A N' k (fun i : A => @percent N' (u i) (x i))) s. +Axiom thm_AFFINE_VSUM_STRONG : forall {A N' : Type'}, forall s : (cart R N') -> Prop, forall k : A -> Prop, forall u : A -> R, forall x : A -> cart R N', ((@affine N' s) /\ (((@sum A k u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : A, (@IN A i k) -> ((u i) = (R_of_N (NUMERAL 0%N))) \/ (@IN (cart R N') (x i) s)))) -> @IN (cart R N') (@vsum A N' k (fun i : A => @percent N' (u i) (x i))) s. +Axiom thm_AFFINE_INDEXED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@affine N' s) = (forall k : N, forall u : N -> R, forall x : N -> cart R N', ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k)) -> @IN (cart R N') (x i) s) /\ ((@sum N (dotdot (NUMERAL (BIT1 0%N)) k) u) = (R_of_N (NUMERAL (BIT1 0%N))))) -> @IN (cart R N') (@vsum N N' (dotdot (NUMERAL (BIT1 0%N)) k) (fun i : N => @percent N' (u i) (x i))) s). +Axiom thm_AFFINE_HULL_INDEXED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@hull (cart R N') (@affine N') s) = (@GSPEC (cart R N') (fun GEN_PVAR_4248 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4248 (exists k : N, exists u : N -> R, exists x : N -> cart R N', (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k)) -> @IN (cart R N') (x i) s) /\ (((@sum N (dotdot (NUMERAL (BIT1 0%N)) k) u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum N N' (dotdot (NUMERAL (BIT1 0%N)) k) (fun i : N => @percent N' (u i) (x i))) = y))) y)). +Axiom thm_AFFINE : forall {N' : Type'}, forall V : (cart R N') -> Prop, (@affine N' V) = (forall s : (cart R N') -> Prop, forall u : (cart R N') -> R, ((@FINITE (cart R N') s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') s V) /\ ((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N))))))) -> @IN (cart R N') (@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) V). +Axiom thm_AFFINE_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@affine N' s) = (forall t : (cart R N') -> Prop, forall u : (cart R N') -> R, ((@FINITE (cart R N') t) /\ ((@SUBSET (cart R N') t s) /\ ((@sum (cart R N') t u) = (R_of_N (NUMERAL (BIT1 0%N)))))) -> @IN (cart R N') (@vsum (cart R N') N' t (fun x : cart R N' => @percent N' (u x) x)) s). +Axiom thm_AFFINE_HULL_EXPLICIT : forall {N' : Type'}, forall p : (cart R N') -> Prop, (@hull (cart R N') (@affine N') p) = (@GSPEC (cart R N') (fun GEN_PVAR_4251 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4251 (exists s : (cart R N') -> Prop, exists u : (cart R N') -> R, (@FINITE (cart R N') s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') s p) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun v : cart R N' => @percent N' (u v) v)) = y))))) y)). +Axiom thm_AFFINE_HULL_EXPLICIT_ALT : forall {N' : Type'}, forall p : (cart R N') -> Prop, (@hull (cart R N') (@affine N') p) = (@GSPEC (cart R N') (fun GEN_PVAR_4252 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4252 (exists s : (cart R N') -> Prop, exists u : (cart R N') -> R, (@FINITE (cart R N') s) /\ ((@SUBSET (cart R N') s p) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun v : cart R N' => @percent N' (u v) v)) = y)))) y)). +Axiom thm_AFFINE_HULL_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@hull (cart R N') (@affine N') s) = (@GSPEC (cart R N') (fun GEN_PVAR_4254 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4254 (exists u : (cart R N') -> R, ((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun v : cart R N' => @percent N' (u v) v)) = y)) y)). +Axiom thm_AFFINE_HULL_0_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s)) = (exists t : (cart R N') -> Prop, exists u : (cart R N') -> R, (@FINITE (cart R N') t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') t s) /\ ((~ ((@sum (cart R N') t u) = (R_of_N (NUMERAL 0%N)))) /\ ((@vsum (cart R N') N' t (fun x : cart R N' => @percent N' (u x) x)) = (@vec N' (NUMERAL 0%N))))))). +Axiom thm_AFFINE_HULL_EMPTY : forall {_904167 : Type'}, (@hull (cart R _904167) (@affine _904167) (@EMPTY (cart R _904167))) = (@EMPTY (cart R _904167)). +Axiom thm_AFFINE_HULL_EQ_EMPTY : forall {_904183 : Type'}, forall s : (cart R _904183) -> Prop, ((@hull (cart R _904183) (@affine _904183) s) = (@EMPTY (cart R _904183))) = (s = (@EMPTY (cart R _904183))). +Axiom thm_AFFINE_HULL_FINITE_STEP_GEN : forall {N' : Type'} (w : R) (s : (cart R N') -> Prop) (y : cart R N') (a : cart R N'), forall P : (cart R N') -> R -> Prop, ((exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x (@EMPTY (cart R N'))) -> P x (u x)) /\ (((@sum (cart R N') (@EMPTY (cart R N')) u) = w) /\ ((@vsum (cart R N') N' (@EMPTY (cart R N')) (fun x : cart R N' => @percent N' (u x) x)) = y))) = ((w = (R_of_N (NUMERAL 0%N))) /\ (y = (@vec N' (NUMERAL 0%N))))) /\ (((@FINITE (cart R N') s) /\ ((forall y' : R, ((@IN (cart R N') a s) /\ (P a y')) -> P a (Rdiv y' (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ (forall x : R, forall y' : R, ((@IN (cart R N') a s) /\ ((P a x) /\ (P a y'))) -> P a (Rplus x y')))) -> (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x (@INSERT (cart R N') a s)) -> P x (u x)) /\ (((@sum (cart R N') (@INSERT (cart R N') a s) u) = w) /\ ((@vsum (cart R N') N' (@INSERT (cart R N') a s) (fun x : cart R N' => @percent N' (u x) x)) = y))) = (exists v : R, exists u : (cart R N') -> R, (P a v) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> P x (u x)) /\ (((@sum (cart R N') s u) = (Rminus w v)) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = (@vector_sub N' y (@percent N' v a))))))). +Axiom thm_AFFINE_HULL_FINITE_STEP : forall {N' : Type'} (w : R) (s : (cart R N') -> Prop) (y : cart R N') (a : cart R N'), ((exists u : (cart R N') -> R, ((@sum (cart R N') (@EMPTY (cart R N')) u) = w) /\ ((@vsum (cart R N') N' (@EMPTY (cart R N')) (fun x : cart R N' => @percent N' (u x) x)) = y)) = ((w = (R_of_N (NUMERAL 0%N))) /\ (y = (@vec N' (NUMERAL 0%N))))) /\ ((@FINITE (cart R N') s) -> (exists u : (cart R N') -> R, ((@sum (cart R N') (@INSERT (cart R N') a s) u) = w) /\ ((@vsum (cart R N') N' (@INSERT (cart R N') a s) (fun x : cart R N' => @percent N' (u x) x)) = y)) = (exists v : R, exists u : (cart R N') -> R, ((@sum (cart R N') s u) = (Rminus w v)) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = (@vector_sub N' y (@percent N' v a))))). +Axiom thm_AFFINE_HULL_2 : forall {_904797 : Type'}, forall a : cart R _904797, forall b : cart R _904797, (@hull (cart R _904797) (@affine _904797) (@INSERT (cart R _904797) a (@INSERT (cart R _904797) b (@EMPTY (cart R _904797))))) = (@GSPEC (cart R _904797) (fun GEN_PVAR_4257 : cart R _904797 => exists u : R, exists v : R, @SETSPEC (cart R _904797) GEN_PVAR_4257 ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_add _904797 (@percent _904797 u a) (@percent _904797 v b)))). +Axiom thm_AFFINE_HULL_2_ALT : forall {_904880 : Type'}, forall a : cart R _904880, forall b : cart R _904880, (@hull (cart R _904880) (@affine _904880) (@INSERT (cart R _904880) a (@INSERT (cart R _904880) b (@EMPTY (cart R _904880))))) = (@GSPEC (cart R _904880) (fun GEN_PVAR_4258 : cart R _904880 => exists u : R, @SETSPEC (cart R _904880) GEN_PVAR_4258 (@IN R u (@UNIV R)) (@vector_add _904880 a (@percent _904880 u (@vector_sub _904880 b a))))). +Axiom thm_AFFINE_HULL_3 : forall {_904998 : Type'} (a : cart R _904998) (b : cart R _904998) (c : cart R _904998), (@hull (cart R _904998) (@affine _904998) (@INSERT (cart R _904998) a (@INSERT (cart R _904998) b (@INSERT (cart R _904998) c (@EMPTY (cart R _904998)))))) = (@GSPEC (cart R _904998) (fun GEN_PVAR_4259 : cart R _904998 => exists u : R, exists v : R, exists w : R, @SETSPEC (cart R _904998) GEN_PVAR_4259 ((Rplus u (Rplus v w)) = (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_add _904998 (@percent _904998 u a) (@vector_add _904998 (@percent _904998 v b) (@percent _904998 w c))))). +Axiom thm_AFFINE_HULL_0_2_EXPLICIT : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') (@INSERT (cart R N') x (@INSERT (cart R N') y (@EMPTY (cart R N')))))) = (exists a : R, exists b : R, ((@vector_add N' (@percent N' a x) (@percent N' b y)) = (@vec N' (NUMERAL 0%N))) /\ (~ ((Rplus a b) = (R_of_N (NUMERAL 0%N))))). +Axiom thm_AFFINE_HULL_0_3_EXPLICIT : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', forall z : cart R N', (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') (@INSERT (cart R N') x (@INSERT (cart R N') y (@INSERT (cart R N') z (@EMPTY (cart R N'))))))) = (exists a : R, exists b : R, exists c : R, ((@vector_add N' (@percent N' a x) (@vector_add N' (@percent N' b y) (@percent N' c z))) = (@vec N' (NUMERAL 0%N))) /\ (~ ((Rplus a (Rplus b c)) = (R_of_N (NUMERAL 0%N))))). +Axiom thm_AFFINE_HULL_INSERT_SUBSET_SPAN : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@hull (cart R N') (@affine N') (@INSERT (cart R N') a s)) (@GSPEC (cart R N') (fun GEN_PVAR_4261 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_4261 (@IN (cart R N') v (@span N' (@GSPEC (cart R N') (fun GEN_PVAR_4260 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4260 (@IN (cart R N') x s) (@vector_sub N' x a))))) (@vector_add N' a v))). +Axiom thm_AFFINE_HULL_INSERT_SPAN : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (~ (@IN (cart R N') a s)) -> (@hull (cart R N') (@affine N') (@INSERT (cart R N') a s)) = (@GSPEC (cart R N') (fun GEN_PVAR_4263 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_4263 (@IN (cart R N') v (@span N' (@GSPEC (cart R N') (fun GEN_PVAR_4262 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4262 (@IN (cart R N') x s) (@vector_sub N' x a))))) (@vector_add N' a v))). +Axiom thm_AFFINE_HULL_SPAN : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@IN (cart R N') a s) -> (@hull (cart R N') (@affine N') s) = (@GSPEC (cart R N') (fun GEN_PVAR_4265 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_4265 (@IN (cart R N') v (@span N' (@GSPEC (cart R N') (fun GEN_PVAR_4264 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4264 (@IN (cart R N') x (@DELETE (cart R N') s a)) (@vector_sub N' x a))))) (@vector_add N' a v))). +Axiom thm_DIFFS_AFFINE_HULL_SPAN : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@IN (cart R N') a s) -> (@GSPEC (cart R N') (fun GEN_PVAR_4266 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4266 (@IN (cart R N') x (@hull (cart R N') (@affine N') s)) (@vector_sub N' x a))) = (@span N' (@GSPEC (cart R N') (fun GEN_PVAR_4267 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4267 (@IN (cart R N') x s) (@vector_sub N' x a)))). +Axiom thm_AFFINE_HULL_SING : forall {_906009 : Type'}, forall a : cart R _906009, (@hull (cart R _906009) (@affine _906009) (@INSERT (cart R _906009) a (@EMPTY (cart R _906009)))) = (@INSERT (cart R _906009) a (@EMPTY (cart R _906009))). +Axiom thm_AFFINE_HULL_EQ_SING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@hull (cart R N') (@affine N') s) = (@INSERT (cart R N') a (@EMPTY (cart R N')))) = (s = (@INSERT (cart R N') a (@EMPTY (cart R N')))). +Axiom thm_AFFINE_HULL_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@hull (cart R N') (@affine N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) (@hull (cart R N') (@affine N') s)). +Axiom thm_AFFINE_HULL_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall c : R, (@hull (cart R N') (@affine N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' c x) a) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' c x) a) (@hull (cart R N') (@affine N') s)). +Axiom thm_convex : forall {_906283 : Type'}, forall s : (cart R _906283) -> Prop, (@convex _906283 s) = (forall x : cart R _906283, forall y : cart R _906283, forall u : R, forall v : R, ((@IN (cart R _906283) x s) /\ ((@IN (cart R _906283) y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @IN (cart R _906283) (@vector_add _906283 (@percent _906283 u x) (@percent _906283 v y)) s). +Axiom thm_CONVEX_ALT : forall {_906420 : Type'} (s : (cart R _906420) -> Prop), (@convex _906420 s) = (forall x : cart R _906420, forall y : cart R _906420, forall u : R, ((@IN (cart R _906420) x s) /\ ((@IN (cart R _906420) y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N))))))) -> @IN (cart R _906420) (@vector_add _906420 (@percent _906420 (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) x) (@percent _906420 u y)) s). +Axiom thm_IN_CONVEX_SET : forall {_906488 : Type'}, forall s : (cart R _906488) -> Prop, forall a : cart R _906488, forall b : cart R _906488, forall u : R, ((@convex _906488 s) /\ ((@IN (cart R _906488) a s) /\ ((@IN (cart R _906488) b s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @IN (cart R _906488) (@vector_add _906488 (@percent _906488 (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) a) (@percent _906488 u b)) s. +Axiom thm_MIDPOINT_IN_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@convex N' s) /\ ((@IN (cart R N') x s) /\ (@IN (cart R N') y s))) -> @IN (cart R N') (@midpoint N' (@pair (cart R N') (cart R N') x y)) s. +Axiom thm_CONVEX_CONTAINS_SEGMENT : forall {_906578 : Type'}, forall s : (cart R _906578) -> Prop, (@convex _906578 s) = (forall a : cart R _906578, forall b : cart R _906578, ((@IN (cart R _906578) a s) /\ (@IN (cart R _906578) b s)) -> @SUBSET (cart R _906578) (@closed_segment _906578 (@cons (prod (cart R _906578) (cart R _906578)) (@pair (cart R _906578) (cart R _906578) a b) (@nil (prod (cart R _906578) (cart R _906578))))) s). +Axiom thm_CONVEX_CONTAINS_OPEN_SEGMENT : forall {_906617 : Type'}, forall s : (cart R _906617) -> Prop, (@convex _906617 s) = (forall a : cart R _906617, forall b : cart R _906617, ((@IN (cart R _906617) a s) /\ (@IN (cart R _906617) b s)) -> @SUBSET (cart R _906617) (@open_segment _906617 (@pair (cart R _906617) (cart R _906617) a b)) s). +Axiom thm_CONVEX_CONTAINS_SEGMENT_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) = (forall a : cart R N', forall b : cart R N', (@SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) s) = ((@IN (cart R N') a s) /\ (@IN (cart R N') b s))). +Axiom thm_CONVEX_CONTAINS_SEGMENT_IMP : forall {_906702 : Type'}, forall s : (cart R _906702) -> Prop, forall a : cart R _906702, forall b : cart R _906702, (@convex _906702 s) -> (@SUBSET (cart R _906702) (@closed_segment _906702 (@cons (prod (cart R _906702) (cart R _906702)) (@pair (cart R _906702) (cart R _906702) a b) (@nil (prod (cart R _906702) (cart R _906702))))) s) = ((@IN (cart R _906702) a s) /\ (@IN (cart R _906702) b s)). +Axiom thm_SEGMENT_SUBSET_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@convex N' s) /\ ((@IN (cart R N') a s) /\ (@IN (cart R N') b s))) -> @SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) s. +Axiom thm_CONVEX_CONTAINS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@convex N' s) /\ ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))))) -> @IN (cart R N') x s. +Axiom thm_CONVEX_EMPTY : forall {_906799 : Type'}, @convex _906799 (@EMPTY (cart R _906799)). +Axiom thm_CONVEX_SING : forall {_906807 : Type'}, forall a : cart R _906807, @convex _906807 (@INSERT (cart R _906807) a (@EMPTY (cart R _906807))). +Axiom thm_CONVEX_UNIV : forall {N' : Type'}, @convex N' (@UNIV (cart R N')). +Axiom thm_CONVEX_INTERS : forall {_906829 : Type'} (f : ((cart R _906829) -> Prop) -> Prop), (forall s : (cart R _906829) -> Prop, (@IN ((cart R _906829) -> Prop) s f) -> @convex _906829 s) -> @convex _906829 (@INTERS (cart R _906829) f). +Axiom thm_CONVEX_INTER : forall {_906850 : Type'}, forall s : (cart R _906850) -> Prop, forall t : (cart R _906850) -> Prop, ((@convex _906850 s) /\ (@convex _906850 t)) -> @convex _906850 (@INTER (cart R _906850) s t). +Axiom thm_CONVEX_HALFSPACE_LE : forall {_906891 : Type'}, forall a : cart R _906891, forall b : R, @convex _906891 (@GSPEC (cart R _906891) (fun GEN_PVAR_4270 : cart R _906891 => exists x : cart R _906891, @SETSPEC (cart R _906891) GEN_PVAR_4270 (Rle (@dot _906891 a x) b) x)). +Axiom thm_CONVEX_HALFSPACE_COMPONENT_LE : forall {N' : Type'}, forall a : R, forall k : N, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4271 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4271 (Rle (@dollar R N' x k) a) x)). +Axiom thm_CONVEX_HALFSPACE_GE : forall {N' : Type'}, forall a : cart R N', forall b : R, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4274 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4274 (Rge (@dot N' a x) b) x)). +Axiom thm_CONVEX_HALFSPACE_COMPONENT_GE : forall {N' : Type'}, forall a : R, forall k : N, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4275 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4275 (Rge (@dollar R N' x k) a) x)). +Axiom thm_CONVEX_HYPERPLANE : forall {N' : Type'}, forall a : cart R N', forall b : R, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4279 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4279 ((@dot N' a x) = b) x)). +Axiom thm_CONVEX_STANDARD_HYPERPLANE : forall {N' : Type'}, forall k : N, forall a : R, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4280 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4280 ((@dollar R N' x k) = a) x)). +Axiom thm_CONVEX_HALFSPACE_LT : forall {_907290 : Type'}, forall a : cart R _907290, forall b : R, @convex _907290 (@GSPEC (cart R _907290) (fun GEN_PVAR_4281 : cart R _907290 => exists x : cart R _907290, @SETSPEC (cart R _907290) GEN_PVAR_4281 (Rlt (@dot _907290 a x) b) x)). +Axiom thm_CONVEX_HALFSPACE_COMPONENT_LT : forall {N' : Type'}, forall a : R, forall k : N, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4282 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4282 (Rlt (@dollar R N' x k) a) x)). +Axiom thm_CONVEX_HALFSPACE_GT : forall {_907399 : Type'}, forall a : cart R _907399, forall b : R, @convex _907399 (@GSPEC (cart R _907399) (fun GEN_PVAR_4283 : cart R _907399 => exists x : cart R _907399, @SETSPEC (cart R _907399) GEN_PVAR_4283 (Rgt (@dot _907399 a x) b) x)). +Axiom thm_CONVEX_HALFSPACE_COMPONENT_GT : forall {N' : Type'}, forall a : R, forall k : N, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4284 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4284 (Rgt (@dollar R N' x k) a) x)). +Axiom thm_CONVEX_STRIP_COMPONENT_LE : forall {N' : Type'}, forall a : R, forall k : N, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4288 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4288 (Rle (Rabs (@dollar R N' x k)) a) x)). +Axiom thm_CONVEX_STRIP_COMPONENT_LT : forall {N' : Type'}, forall a : R, forall k : N, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4292 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4292 (Rlt (Rabs (@dollar R N' x k)) a) x)). +Axiom thm_CONVEX_HALFSPACE_SGN : forall {N' : Type'}, forall a : cart R N', forall b : R, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4294 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4294 ((real_sgn (@dot N' a x)) = b) x)). +Axiom thm_CONVEX_HALFSPACE_COMPONENT_SGN : forall {N' : Type'}, forall a : R, forall k : N, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4295 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4295 ((real_sgn (@dollar R N' x k)) = a) x)). +Axiom thm_CONVEX_POSITIVE_ORTHANT : forall {N' : Type'}, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4296 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4296 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' x i)) x)). +Axiom thm_LIMPT_OF_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex N' s) /\ (@IN (cart R N') x s)) -> (@limit_point_of N' x s) = (~ (s = (@INSERT (cart R N') x (@EMPTY (cart R N'))))). +Axiom thm_TRIVIAL_LIMIT_WITHIN_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex N' s) /\ (@IN (cart R N') x s)) -> (@trivial_limit (cart R N') (@within (cart R N') (@_at N' x) s)) = (s = (@INSERT (cart R N') x (@EMPTY (cart R N')))). +Axiom thm_CONVEX_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@convex N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@convex N' s). +Axiom thm_CONVEX_TRANSLATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@convex N' s) -> @convex N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_CONVEX_LINEAR_IMAGE : forall {_908283 _908286 : Type'}, forall f : (cart R _908283) -> cart R _908286, forall s : (cart R _908283) -> Prop, ((@convex _908283 s) /\ (@linear _908283 _908286 f)) -> @convex _908286 (@IMAGE (cart R _908283) (cart R _908286) f s). +Axiom thm_CONVEX_LINEAR_IMAGE_EQ : forall {_908308 _908336 : Type'}, forall f : (cart R _908336) -> cart R _908308, forall s : (cart R _908336) -> Prop, ((@linear _908336 _908308 f) /\ (forall x : cart R _908336, forall y : cart R _908336, ((f x) = (f y)) -> x = y)) -> (@convex _908308 (@IMAGE (cart R _908336) (cart R _908308) f s)) = (@convex _908336 s). +Axiom thm_CONVEX_VSUM : forall {A N' : Type'}, forall s : (cart R N') -> Prop, forall k : A -> Prop, forall u : A -> R, forall x : A -> cart R N', ((@FINITE A k) /\ ((@convex N' s) /\ (((@sum A k u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : A, (@IN A i k) -> (Rle (R_of_N (NUMERAL 0%N)) (u i)) /\ (@IN (cart R N') (x i) s))))) -> @IN (cart R N') (@vsum A N' k (fun i : A => @percent N' (u i) (x i))) s. +Axiom thm_CONVEX_VSUM_STRONG : forall {A N' : Type'}, forall s : (cart R N') -> Prop, forall k : A -> Prop, forall u : A -> R, forall x : A -> cart R N', ((@convex N' s) /\ (((@sum A k u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : A, (@IN A i k) -> (Rle (R_of_N (NUMERAL 0%N)) (u i)) /\ (((u i) = (R_of_N (NUMERAL 0%N))) \/ (@IN (cart R N') (x i) s))))) -> @IN (cart R N') (@vsum A N' k (fun i : A => @percent N' (u i) (x i))) s. +Axiom thm_CONVEX_INDEXED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) = (forall k : N, forall u : N -> R, forall x : N -> cart R N', ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k)) -> (Rle (R_of_N (NUMERAL 0%N)) (u i)) /\ (@IN (cart R N') (x i) s)) /\ ((@sum N (dotdot (NUMERAL (BIT1 0%N)) k) u) = (R_of_N (NUMERAL (BIT1 0%N))))) -> @IN (cart R N') (@vsum N N' (dotdot (NUMERAL (BIT1 0%N)) k) (fun i : N => @percent N' (u i) (x i))) s). +Axiom thm_CONVEX_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) = (forall t : (cart R N') -> Prop, forall u : (cart R N') -> R, ((@FINITE (cart R N') t) /\ ((@SUBSET (cart R N') t s) /\ ((forall x : cart R N', (@IN (cart R N') x t) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ ((@sum (cart R N') t u) = (R_of_N (NUMERAL (BIT1 0%N))))))) -> @IN (cart R N') (@vsum (cart R N') N' t (fun x : cart R N' => @percent N' (u x) x)) s). +Axiom thm_CONVEX : forall {N' : Type'}, forall V : (cart R N') -> Prop, (@convex N' V) = (forall s : (cart R N') -> Prop, forall u : (cart R N') -> R, ((@FINITE (cart R N') s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') s V) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ ((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @IN (cart R N') (@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) V). +Axiom thm_CONVEX_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> (@convex N' s) = (forall u : (cart R N') -> R, ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ ((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N))))) -> @IN (cart R N') (@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) s). +Axiom thm_AFFINE_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@affine M s) /\ (@affine N' t)) -> @affine (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_AFFINE_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@affine (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@affine M s) /\ (@affine N' t)))). +Axiom thm_CONVEX_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@convex M s) /\ (@convex N' t)) -> @convex (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_CONVEX_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@convex (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@convex M s) /\ (@convex N' t)))). +Axiom thm_conic : forall {_909275 : Type'}, forall s : (cart R _909275) -> Prop, (@conic _909275 s) = (forall x : cart R _909275, forall c : R, ((@IN (cart R _909275) x s) /\ (Rle (R_of_N (NUMERAL 0%N)) c)) -> @IN (cart R _909275) (@percent _909275 c x) s). +Axiom thm_SUBSPACE_IMP_CONIC : forall {_909284 : Type'}, forall s : (cart R _909284) -> Prop, (@subspace _909284 s) -> @conic _909284 s. +Axiom thm_CONIC_EMPTY : forall {_909289 : Type'}, @conic _909289 (@EMPTY (cart R _909289)). +Axiom thm_CONIC_UNIV : forall {N' : Type'}, @conic N' (@UNIV (cart R N')). +Axiom thm_CONIC_INTERS : forall {_909308 : Type'} (f : ((cart R _909308) -> Prop) -> Prop), (forall s : (cart R _909308) -> Prop, (@IN ((cart R _909308) -> Prop) s f) -> @conic _909308 s) -> @conic _909308 (@INTERS (cart R _909308) f). +Axiom thm_CONIC_LINEAR_IMAGE : forall {_909327 _909330 : Type'}, forall f : (cart R _909327) -> cart R _909330, forall s : (cart R _909327) -> Prop, ((@conic _909327 s) /\ (@linear _909327 _909330 f)) -> @conic _909330 (@IMAGE (cart R _909327) (cart R _909330) f s). +Axiom thm_CONIC_LINEAR_IMAGE_EQ : forall {_909352 _909380 : Type'}, forall f : (cart R _909380) -> cart R _909352, forall s : (cart R _909380) -> Prop, ((@linear _909380 _909352 f) /\ (forall x : cart R _909380, forall y : cart R _909380, ((f x) = (f y)) -> x = y)) -> (@conic _909352 (@IMAGE (cart R _909380) (cart R _909352) f s)) = (@conic _909380 s). +Axiom thm_CONIC_MUL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, forall x : cart R N', ((@conic N' s) /\ ((@IN (cart R N') x s) /\ (Rle (R_of_N (NUMERAL 0%N)) c))) -> @IN (cart R N') (@percent N' c x) s. +Axiom thm_CONIC_CONIC_HULL : forall {_909426 : Type'}, forall s : (cart R _909426) -> Prop, @conic _909426 (@hull (cart R _909426) (@conic _909426) s). +Axiom thm_CONIC_HULL_EQ : forall {_909442 : Type'}, forall s : (cart R _909442) -> Prop, ((@hull (cart R _909442) (@conic _909442) s) = s) = (@conic _909442 s). +Axiom thm_CONIC_HULL_UNIV : forall {N' : Type'}, (@hull (cart R N') (@conic N') (@UNIV (cart R N'))) = (@UNIV (cart R N')). +Axiom thm_CONIC_NEGATIONS : forall {_909471 : Type'}, forall s : (cart R _909471) -> Prop, (@conic _909471 s) -> @conic _909471 (@IMAGE (cart R _909471) (cart R _909471) (@vector_neg _909471) s). +Axiom thm_CONIC_SPAN : forall {_909483 : Type'}, forall s : (cart R _909483) -> Prop, @conic _909483 (@span _909483 s). +Axiom thm_CONIC_HULL_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@hull (cart R N') (@conic N') s) = (@GSPEC (cart R N') (fun GEN_PVAR_4299 : cart R N' => exists c : R, exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4299 ((Rle (R_of_N (NUMERAL 0%N)) c) /\ (@IN (cart R N') x s)) (@percent N' c x))). +Axiom thm_CONIC_HULL_AS_IMAGE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@hull (cart R N') (@conic N') s) = (@IMAGE (cart R (finite_sum unit N')) (cart R N') (fun z : cart R (finite_sum unit N') => @percent N' (drop (@fstcart R unit N' z)) (@sndcart R unit N' z)) (@PCROSS R unit N' (@GSPEC (cart R unit) (fun GEN_PVAR_4300 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_4300 (Rle (R_of_N (NUMERAL 0%N)) (drop t)) t)) s)). +Axiom thm_CONIC_HULL_POINTLESS_AS_IMAGE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@DELETE (cart R N') (@hull (cart R N') (@conic N') s) (@vec N' (NUMERAL 0%N))) = (@IMAGE (cart R (finite_sum unit N')) (cart R N') (fun z : cart R (finite_sum unit N') => @percent N' (drop (@fstcart R unit N' z)) (@sndcart R unit N' z)) (@PCROSS R unit N' (@GSPEC (cart R unit) (fun GEN_PVAR_4301 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_4301 (Rlt (R_of_N (NUMERAL 0%N)) (drop t)) t)) (@DELETE (cart R N') s (@vec N' (NUMERAL 0%N))))). +Axiom thm_CONIC_HULL_LINEAR_IMAGE : forall {_909787 _909806 : Type'}, forall f : (cart R _909806) -> cart R _909787, forall s : (cart R _909806) -> Prop, (@linear _909806 _909787 f) -> (@hull (cart R _909787) (@conic _909787) (@IMAGE (cart R _909806) (cart R _909787) f s)) = (@IMAGE (cart R _909806) (cart R _909787) f (@hull (cart R _909806) (@conic _909806) s)). +Axiom thm_CONIC_HULL_IMAGE_SCALE : forall {N' : Type'}, forall c : (cart R N') -> R, forall s : (cart R N') -> Prop, (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (R_of_N (NUMERAL 0%N)) (c x)) -> (@hull (cart R N') (@conic N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' (c x) x) s)) = (@hull (cart R N') (@conic N') s). +Axiom thm_CONVEX_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @convex N' (@hull (cart R N') (@conic N') s). +Axiom thm_CONIC_HALFSPACE_LE : forall {_910065 : Type'}, forall a : cart R _910065, @conic _910065 (@GSPEC (cart R _910065) (fun GEN_PVAR_4306 : cart R _910065 => exists x : cart R _910065, @SETSPEC (cart R _910065) GEN_PVAR_4306 (Rle (@dot _910065 a x) (R_of_N (NUMERAL 0%N))) x)). +Axiom thm_CONIC_HALFSPACE_GE : forall {_910092 : Type'}, forall a : cart R _910092, @conic _910092 (@GSPEC (cart R _910092) (fun GEN_PVAR_4307 : cart R _910092 => exists x : cart R _910092, @SETSPEC (cart R _910092) GEN_PVAR_4307 (Rge (@dot _910092 a x) (R_of_N (NUMERAL 0%N))) x)). +Axiom thm_CONIC_HULL_EMPTY : forall {_910102 : Type'}, (@hull (cart R _910102) (@conic _910102) (@EMPTY (cart R _910102))) = (@EMPTY (cart R _910102)). +Axiom thm_CONIC_CONTAINS_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@conic N' s) -> (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s) = (~ (s = (@EMPTY (cart R N')))). +Axiom thm_CONIC_HULL_EQ_EMPTY : forall {_910144 : Type'}, forall s : (cart R _910144) -> Prop, ((@hull (cart R _910144) (@conic _910144) s) = (@EMPTY (cart R _910144))) = (s = (@EMPTY (cart R _910144))). +Axiom thm_CONIC_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@conic N' s) /\ (@conic N' t)) -> @conic N' (@GSPEC (cart R N') (fun GEN_PVAR_4308 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4308 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_CONIC_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@conic M s) /\ (@conic N' t)) -> @conic (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_CONIC_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@conic (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@conic M s) /\ (@conic N' t)))). +Axiom thm_CONIC_POSITIVE_ORTHANT : forall {N' : Type'}, @conic N' (@GSPEC (cart R N') (fun GEN_PVAR_4309 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4309 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' x i)) x)). +Axiom thm_CONIC_HULL_0 : forall {_910351 : Type'}, (@hull (cart R _910351) (@conic _910351) (@INSERT (cart R _910351) (@vec _910351 (NUMERAL 0%N)) (@EMPTY (cart R _910351)))) = (@INSERT (cart R _910351) (@vec _910351 (NUMERAL 0%N)) (@EMPTY (cart R _910351))). +Axiom thm_CONIC_HULL_CONTAINS_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@conic N') s)) = (~ (s = (@EMPTY (cart R N')))). +Axiom thm_CONIC_HULL_EQ_SING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@hull (cart R N') (@conic N') s) = (@INSERT (cart R N') x (@EMPTY (cart R N')))) = ((s = (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))) /\ (x = (@vec N' (NUMERAL 0%N)))). +Axiom thm_CONIC_HULL_INTER_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@SUBSET (cart R N') f s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s)))) -> (@INTER (cart R N') (@hull (cart R N') (@conic N') f) (@hull (cart R N') (@affine N') s)) = f. +Axiom thm_SEPARATE_CLOSED_CONES : forall {N' : Type'}, forall c : (cart R N') -> Prop, forall d : (cart R N') -> Prop, ((@conic N' c) /\ ((@closed N' c) /\ ((@conic N' d) /\ ((@closed N' d) /\ (@SUBSET (cart R N') (@INTER (cart R N') c d) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))))))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x c) /\ (@IN (cart R N') y d)) -> Rge (@distance N' (@pair (cart R N') (cart R N') x y)) (Rmult e (Rmax (@vector_norm N' x) (@vector_norm N' y)))). +Axiom thm_CONTINUOUS_ON_COMPACT_SURFACE_PROJECTION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall v : (cart R N') -> Prop, forall d : (cart R N') -> R, ((@compact N' s) /\ ((@SUBSET (cart R N') s (@DELETE (cart R N') v (@vec N' (NUMERAL 0%N)))) /\ ((@conic N' v) /\ (forall x : cart R N', forall k : R, (@IN (cart R N') x (@DELETE (cart R N') v (@vec N' (NUMERAL 0%N)))) -> ((Rlt (R_of_N (NUMERAL 0%N)) k) /\ (@IN (cart R N') (@percent N' k x) s)) = ((d x) = k))))) -> @continuous_on N' N' (fun x : cart R N' => @percent N' (d x) x) (@DELETE (cart R N') v (@vec N' (NUMERAL 0%N))). +Axiom thm_affine_dependent : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@affine_dependent N' s) = (exists x : cart R N', (@IN (cart R N') x s) /\ (@IN (cart R N') x (@hull (cart R N') (@affine N') (@DELETE (cart R N') s x)))). +Axiom thm_AFFINE_DEPENDENT_EXPLICIT : forall {N' : Type'}, forall p : (cart R N') -> Prop, (@affine_dependent N' p) = (exists s : (cart R N') -> Prop, exists u : (cart R N') -> R, (@FINITE (cart R N') s) /\ ((@SUBSET (cart R N') s p) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL 0%N))) /\ ((exists v : cart R N', (@IN (cart R N') v s) /\ (~ ((u v) = (R_of_N (NUMERAL 0%N))))) /\ ((@vsum (cart R N') N' s (fun v : cart R N' => @percent N' (u v) v)) = (@vec N' (NUMERAL 0%N))))))). +Axiom thm_AFFINE_DEPENDENT_EXPLICIT_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> (@affine_dependent N' s) = (exists u : (cart R N') -> R, ((@sum (cart R N') s u) = (R_of_N (NUMERAL 0%N))) /\ ((exists v : cart R N', (@IN (cart R N') v s) /\ (~ ((u v) = (R_of_N (NUMERAL 0%N))))) /\ ((@vsum (cart R N') N' s (fun v : cart R N' => @percent N' (u v) v)) = (@vec N' (NUMERAL 0%N))))). +Axiom thm_AFFINE_DEPENDENT_TRANSLATION_EQ : forall {_911637 : Type'}, forall a : cart R _911637, forall s : (cart R _911637) -> Prop, (@affine_dependent _911637 (@IMAGE (cart R _911637) (cart R _911637) (fun x : cart R _911637 => @vector_add _911637 a x) s)) = (@affine_dependent _911637 s). +Axiom thm_AFFINE_DEPENDENT_TRANSLATION : forall {_911667 : Type'}, forall s : (cart R _911667) -> Prop, forall a : cart R _911667, (@affine_dependent _911667 s) -> @affine_dependent _911667 (@IMAGE (cart R _911667) (cart R _911667) (fun x : cart R _911667 => @vector_add _911667 a x) s). +Axiom thm_AFFINE_DEPENDENT_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@affine_dependent N' (@IMAGE (cart R M) (cart R N') f s)) = (@affine_dependent M s). +Axiom thm_AFFINE_DEPENDENT_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y) /\ (@affine_dependent M s))) -> @affine_dependent N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_AFFINE_DEPENDENT_MONO : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@affine_dependent N' s) /\ (@SUBSET (cart R N') s t)) -> @affine_dependent N' t. +Axiom thm_AFFINE_INDEPENDENT_EMPTY : forall {_911833 : Type'}, ~ (@affine_dependent _911833 (@EMPTY (cart R _911833))). +Axiom thm_AFFINE_INDEPENDENT_1 : forall {N' : Type'}, forall a : cart R N', ~ (@affine_dependent N' (@INSERT (cart R N') a (@EMPTY (cart R N')))). +Axiom thm_AFFINE_INDEPENDENT_2 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', ~ (@affine_dependent N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))). +Axiom thm_AFFINE_INDEPENDENT_SUBSET : forall {_911946 : Type'}, forall s : (cart R _911946) -> Prop, forall t : (cart R _911946) -> Prop, ((~ (@affine_dependent _911946 t)) /\ (@SUBSET (cart R _911946) s t)) -> ~ (@affine_dependent _911946 s). +Axiom thm_AFFINE_INDEPENDENT_DELETE : forall {_911960 : Type'}, forall s : (cart R _911960) -> Prop, forall a : cart R _911960, (~ (@affine_dependent _911960 s)) -> ~ (@affine_dependent _911960 (@DELETE (cart R _911960) s a)). +Axiom thm_coplanar : forall {_911989 : Type'}, forall s : (cart R _911989) -> Prop, (@coplanar _911989 s) = (exists u : cart R _911989, exists v : cart R _911989, exists w : cart R _911989, @SUBSET (cart R _911989) s (@hull (cart R _911989) (@affine _911989) (@INSERT (cart R _911989) u (@INSERT (cart R _911989) v (@INSERT (cart R _911989) w (@EMPTY (cart R _911989))))))). +Axiom thm_COLLINEAR_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@collinear N' s) = (exists u : cart R N', exists v : cart R N', @SUBSET (cart R N') s (@hull (cart R N') (@affine N') (@INSERT (cart R N') u (@INSERT (cart R N') v (@EMPTY (cart R N')))))). +Axiom thm_COLLINEAR_IMP_COPLANAR : forall {_912136 : Type'}, forall s : (cart R _912136) -> Prop, (@collinear _912136 s) -> @coplanar _912136 s. +Axiom thm_COPLANAR_SMALL : forall {_912170 : Type'}, forall s : (cart R _912170) -> Prop, ((@FINITE (cart R _912170) s) /\ (N.le (@CARD (cart R _912170) s) (NUMERAL (BIT1 (BIT1 0%N))))) -> @coplanar _912170 s. +Axiom thm_COPLANAR_EMPTY : forall {_912173 : Type'}, @coplanar _912173 (@EMPTY (cart R _912173)). +Axiom thm_COPLANAR_SING : forall {_912181 : Type'}, forall a : cart R _912181, @coplanar _912181 (@INSERT (cart R _912181) a (@EMPTY (cart R _912181))). +Axiom thm_COPLANAR_2 : forall {_912196 : Type'}, forall a : cart R _912196, forall b : cart R _912196, @coplanar _912196 (@INSERT (cart R _912196) a (@INSERT (cart R _912196) b (@EMPTY (cart R _912196)))). +Axiom thm_COPLANAR_3 : forall {_912218 : Type'}, forall a : cart R _912218, forall b : cart R _912218, forall c : cart R _912218, @coplanar _912218 (@INSERT (cart R _912218) a (@INSERT (cart R _912218) b (@INSERT (cart R _912218) c (@EMPTY (cart R _912218))))). +Axiom thm_COLLINEAR_AFFINE_HULL_COLLINEAR : forall {_912243 : Type'}, forall s : (cart R _912243) -> Prop, (@collinear _912243 (@hull (cart R _912243) (@affine _912243) s)) = (@collinear _912243 s). +Axiom thm_COPLANAR_AFFINE_HULL_COPLANAR : forall {_912258 : Type'}, forall s : (cart R _912258) -> Prop, (@coplanar _912258 (@hull (cart R _912258) (@affine _912258) s)) = (@coplanar _912258 s). +Axiom thm_COPLANAR_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@coplanar N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@coplanar N' s). +Axiom thm_COPLANAR_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@coplanar N' s) -> @coplanar N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_COPLANAR_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@coplanar M s) /\ (@linear M N' f)) -> @coplanar N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_COPLANAR_LINEAR_IMAGE_EQ : forall {_912398 _912426 : Type'}, forall f : (cart R _912426) -> cart R _912398, forall s : (cart R _912426) -> Prop, ((@linear _912426 _912398 f) /\ (forall x : cart R _912426, forall y : cart R _912426, ((f x) = (f y)) -> x = y)) -> (@coplanar _912398 (@IMAGE (cart R _912426) (cart R _912398) f s)) = (@coplanar _912426 s). +Axiom thm_COPLANAR_SUBSET : forall {_912446 : Type'}, forall s : (cart R _912446) -> Prop, forall t : (cart R _912446) -> Prop, ((@coplanar _912446 t) /\ (@SUBSET (cart R _912446) s t)) -> @coplanar _912446 s. +Axiom thm_AFFINE_HULL_3_IMP_COLLINEAR : forall {_912468 : Type'}, forall a : cart R _912468, forall b : cart R _912468, forall c : cart R _912468, (@IN (cart R _912468) c (@hull (cart R _912468) (@affine _912468) (@INSERT (cart R _912468) a (@INSERT (cart R _912468) b (@EMPTY (cart R _912468)))))) -> @collinear _912468 (@INSERT (cart R _912468) a (@INSERT (cart R _912468) b (@INSERT (cart R _912468) c (@EMPTY (cart R _912468))))). +Axiom thm_COLLINEAR_3_AFFINE_HULL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', (~ (a = b)) -> (@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) = (@IN (cart R N') c (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))). +Axiom thm_COLLINEAR_3_EQ_AFFINE_DEPENDENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', (@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) = ((a = b) \/ ((a = c) \/ ((b = c) \/ (@affine_dependent N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N'))))))))). +Axiom thm_AFFINE_DEPENDENT_IMP_COLLINEAR_3 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', (@affine_dependent N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) -> @collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N'))))). +Axiom thm_COLLINEAR_3_IN_AFFINE_HULL : forall {N' : Type'}, forall v0 : cart R N', forall v1 : cart R N', forall x : cart R N', (~ (v1 = v0)) -> (@collinear N' (@INSERT (cart R N') v0 (@INSERT (cart R N') v1 (@INSERT (cart R N') x (@EMPTY (cart R N')))))) = (@IN (cart R N') x (@hull (cart R N') (@affine N') (@INSERT (cart R N') v0 (@INSERT (cart R N') v1 (@EMPTY (cart R N')))))). +Axiom thm_COLLINEAR_3_EXPLICIT : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', forall z : cart R N', (@collinear N' (@INSERT (cart R N') x (@INSERT (cart R N') y (@INSERT (cart R N') z (@EMPTY (cart R N')))))) = (exists a : R, exists b : R, exists c : R, ((@vector_add N' (@percent N' a x) (@vector_add N' (@percent N' b y) (@percent N' c z))) = (@vec N' (NUMERAL 0%N))) /\ (((Rplus a (Rplus b c)) = (R_of_N (NUMERAL 0%N))) /\ (~ ((a = (R_of_N (NUMERAL 0%N))) /\ ((b = (R_of_N (NUMERAL 0%N))) /\ (c = (R_of_N (NUMERAL 0%N)))))))). +Axiom thm_CONVEX_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @connected N' s. +Axiom thm_convex_on : forall {_913183 : Type'}, forall s : (cart R _913183) -> Prop, forall f : (cart R _913183) -> R, (@convex_on _913183 f s) = (forall x : cart R _913183, forall y : cart R _913183, forall u : R, forall v : R, ((@IN (cart R _913183) x s) /\ ((@IN (cart R _913183) y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (f (@vector_add _913183 (@percent _913183 u x) (@percent _913183 v y))) (Rplus (Rmult u (f x)) (Rmult v (f y)))). +Axiom thm_CONVEX_ON_EMPTY : forall {N' : Type'}, forall f : (cart R N') -> R, @convex_on N' f (@EMPTY (cart R N')). +Axiom thm_CONVEX_ON_SUBSET : forall {_913215 : Type'}, forall f : (cart R _913215) -> R, forall s : (cart R _913215) -> Prop, forall t : (cart R _913215) -> Prop, ((@convex_on _913215 f t) /\ (@SUBSET (cart R _913215) s t)) -> @convex_on _913215 f s. +Axiom thm_CONVEX_ON_EQ : forall {_913262 : Type'}, forall f : (cart R _913262) -> R, forall g : (cart R _913262) -> R, forall s : (cart R _913262) -> Prop, ((@convex _913262 s) /\ ((forall x : cart R _913262, (@IN (cart R _913262) x s) -> (f x) = (g x)) /\ (@convex_on _913262 f s))) -> @convex_on _913262 g s. +Axiom thm_CONVEX_ON_CONST : forall {_913274 : Type'}, forall s : (cart R _913274) -> Prop, forall a : R, @convex_on _913274 (fun x : cart R _913274 => a) s. +Axiom thm_LINEAR_IMP_CONVEX_ON : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@linear N' unit (@o (cart R N') R (cart R unit) lift f)) -> @convex_on N' f s. +Axiom thm_CONVEX_ON_SING : forall {N' : Type'}, forall f : (cart R N') -> R, forall a : cart R N', @convex_on N' f (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_CONVEX_ADD : forall {_913361 : Type'}, forall s : (cart R _913361) -> Prop, forall f : (cart R _913361) -> R, forall g : (cart R _913361) -> R, ((@convex_on _913361 f s) /\ (@convex_on _913361 g s)) -> @convex_on _913361 (fun x : cart R _913361 => Rplus (f x) (g x)) s. +Axiom thm_CONVEX_ADD_EQ : forall {N' : Type'}, forall a : R, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@convex_on N' (fun x : cart R N' => Rplus a (f x)) s) = (@convex_on N' f s). +Axiom thm_CONVEX_CMUL : forall {_913471 : Type'}, forall s : (cart R _913471) -> Prop, forall c : R, forall f : (cart R _913471) -> R, ((Rle (R_of_N (NUMERAL 0%N)) c) /\ (@convex_on _913471 f s)) -> @convex_on _913471 (fun x : cart R _913471 => Rmult c (f x)) s. +Axiom thm_CONVEX_MAX : forall {_913503 : Type'}, forall f : (cart R _913503) -> R, forall g : (cart R _913503) -> R, forall s : (cart R _913503) -> Prop, ((@convex_on _913503 f s) /\ (@convex_on _913503 g s)) -> @convex_on _913503 (fun x : cart R _913503 => Rmax (f x) (g x)) s. +Axiom thm_CONVEX_ON_SUM : forall {A N' : Type'}, forall t : (cart R N') -> Prop, forall f : A -> (cart R N') -> R, forall s : A -> Prop, ((@FINITE A s) /\ (forall a : A, (@IN A a s) -> @convex_on N' (f a) t)) -> @convex_on N' (fun x : cart R N' => @sum A s (fun a : A => f a x)) t. +Axiom thm_CONVEX_ON_IMP_MIDPOINT_CONVEX : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@convex_on N' f s) /\ ((@IN (cart R N') x s) /\ (@IN (cart R N') y s))) -> Rle (f (@midpoint N' (@pair (cart R N') (cart R N') x y))) (Rdiv (Rplus (f x) (f y)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_CONVEX_LOWER : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', forall u : R, forall v : R, ((@convex_on N' f s) /\ ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N))))))))) -> Rle (f (@vector_add N' (@percent N' u x) (@percent N' v y))) (Rmax (f x) (f y)). +Axiom thm_CONVEX_LOWER_SEGMENT : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@convex_on N' f s) /\ ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))))) -> Rle (f x) (Rmax (f a) (f b)). +Axiom thm_CONVEX_LOWER_SEGMENT_LT : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@convex_on N' f s) /\ ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ ((@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((~ (x = b)) /\ (Rlt (f a) (f b))))))) -> Rlt (f x) (f b). +Axiom thm_CONVEX_LOCAL_GLOBAL_MINIMUM_SEGMENT : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex_on N' f s) /\ ((@IN (cart R N') x s) /\ (forall z : cart R N', ((@IN (cart R N') z s) /\ (~ (z = x))) -> exists y : cart R N', (@IN (cart R N') y (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') x z) (@nil (prod (cart R N') (cart R N')))))) /\ ((@IN (cart R N') y s) /\ ((~ (y = x)) /\ (Rle (f x) (f y))))))) -> forall z : cart R N', (@IN (cart R N') z s) -> Rle (f x) (f z). +Axiom thm_CONVEX_LOCAL_GLOBAL_MINIMUM_GEN : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', ((@convex_on N' f s) /\ ((@IN (cart R N') x t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) t) /\ ((@SUBSET (cart R N') t s) /\ (forall y : cart R N', (@IN (cart R N') y t) -> Rle (f x) (f y)))))) -> forall y : cart R N', (@IN (cart R N') y s) -> Rle (f x) (f y). +Axiom thm_CONVEX_LOCAL_GLOBAL_MINIMUM : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', ((@convex_on N' f s) /\ ((@IN (cart R N') x t) /\ ((@_open N' t) /\ ((@SUBSET (cart R N') t s) /\ (forall y : cart R N', (@IN (cart R N') y t) -> Rle (f x) (f y)))))) -> forall y : cart R N', (@IN (cart R N') y s) -> Rle (f x) (f y). +Axiom thm_CONVEX_DISTANCE : forall {_914436 : Type'}, forall s : (cart R _914436) -> Prop, forall a : cart R _914436, @convex_on _914436 (fun x : cart R _914436 => @distance _914436 (@pair (cart R _914436) (cart R _914436) a x)) s. +Axiom thm_CONVEX_NORM : forall {N' : Type'}, forall s : (cart R N') -> Prop, @convex_on N' (@vector_norm N') s. +Axiom thm_CONVEX_ON_COMPOSE_LINEAR : forall {M N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@convex_on N' f (@IMAGE (cart R M) (cart R N') g s)) /\ (@linear M N' g)) -> @convex_on M (@o (cart R M) (cart R N') R f g) s. +Axiom thm_CONVEX_ON_TRANSLATION : forall {N' : Type'} (s : (cart R N') -> Prop), forall f : (cart R N') -> R, forall a : cart R N', (@convex_on N' f (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@convex_on N' (fun x : cart R N' => f (@vector_add N' a x)) s). +Axiom thm_LINEAR_CONVEX_ON_1 : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, (@linear N' unit f) = (((f (@vec N' (NUMERAL 0%N))) = (@vec unit (NUMERAL 0%N))) /\ ((@convex_on N' (@o (cart R N') (cart R unit) R drop f) (@UNIV (cart R N'))) /\ (@convex_on N' (@o (cart R N') R R Ropp (@o (cart R N') (cart R unit) R drop f)) (@UNIV (cart R N'))))). +Axiom thm_CONVEX_CONCAVE_EQ_AFFINE : forall {N' : Type'}, forall f : (cart R N') -> R, ((@convex_on N' f (@UNIV (cart R N'))) /\ (@convex_on N' (@o (cart R N') R R Ropp f) (@UNIV (cart R N')))) = (exists a : cart R N', exists b : R, f = (fun x : cart R N' => Rplus (@dot N' a x) b)). +Axiom thm_CONVEX_BALL : forall {N' : Type'}, forall x : cart R N', forall e : R, @convex N' (@ball N' (@pair (cart R N') R x e)). +Axiom thm_CONNECTED_BALL : forall {N' : Type'}, forall x : cart R N', forall e : R, @connected N' (@ball N' (@pair (cart R N') R x e)). +Axiom thm_CONVEX_CBALL : forall {N' : Type'}, forall x : cart R N', forall e : R, @convex N' (@cball N' (@pair (cart R N') R x e)). +Axiom thm_CONNECTED_CBALL : forall {N' : Type'}, forall x : cart R N', forall e : R, @connected N' (@cball N' (@pair (cart R N') R x e)). +Axiom thm_CONVEX_INTERMEDIATE_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') (@ball N' (@pair (cart R N') R a r)) t) /\ (@SUBSET (cart R N') t (@cball N' (@pair (cart R N') R a r)))) -> @convex N' t. +Axiom thm_FRONTIER_OF_CONNECTED_COMPONENT_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', @SUBSET (cart R N') (@frontier N' (@connected_component N' s x)) (@frontier N' s). +Axiom thm_FRONTIER_OF_COMPONENTS_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) -> @SUBSET (cart R N') (@frontier N' c) (@frontier N' s). +Axiom thm_FRONTIER_OF_COMPONENTS_CLOSED_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@closed N' s) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)))) -> @SUBSET (cart R N') (@frontier N' c) s. +Axiom thm_CONTAINS_COMPONENT_OF_COMPACT_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' s) /\ (@IN ((cart R N') -> Prop) c (@components N' s))) -> exists d : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) d (@components N' (@frontier N' s))) /\ (@SUBSET (cart R N') d c). +Axiom thm_CARD_LE_COMPONENTS_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> @le_c ((cart R N') -> Prop) ((cart R N') -> Prop) (@components N' s) (@components N' (@frontier N' s)). +Axiom thm_CONTAINS_COMPONENT_OF_CLOSURE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@bounded N' s) /\ (@IN ((cart R N') -> Prop) c (@components N' (@closure N' s)))) -> exists d : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) d (@components N' (@frontier N' s))) /\ (@SUBSET (cart R N') d c). +Axiom thm_CARD_LE_COMPONENTS_CLOSURE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @le_c ((cart R N') -> Prop) ((cart R N') -> Prop) (@components N' (@closure N' s)) (@components N' (@frontier N' s)). +Axiom thm_CONNECTED_UNION_CLOPEN_IN_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@connected N' s) /\ ((@connected N' u) /\ ((@SUBSET (cart R N') s u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@DIFF (cart R N') u s)) t) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@DIFF (cart R N') u s)) t))))) -> @connected N' (@UNION (cart R N') s t). +Axiom thm_COMPONENT_COMPLEMENT_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@connected N' s) /\ ((@connected N' u) /\ ((@SUBSET (cart R N') s u) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') u s)))))) -> @connected N' (@DIFF (cart R N') u c). +Axiom thm_BALL_SUBSET_OPEN_MAP_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, forall r : R, ((@bounded M s) /\ ((@continuous_on M N' f (@closure M s)) /\ ((@_open N' (@IMAGE (cart R M) (cart R N') f (@interior M s))) /\ ((@IN (cart R M) a s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall z : cart R M, (@IN (cart R M) z (@frontier M s)) -> Rle r (@vector_norm N' (@vector_sub N' (f z) (f a))))))))) -> @SUBSET (cart R N') (@ball N' (@pair (cart R N') R (f a) r)) (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_CONVEX_SCALING : forall {_916420 : Type'}, forall s : (cart R _916420) -> Prop, forall c : R, (@convex _916420 s) -> @convex _916420 (@IMAGE (cart R _916420) (cart R _916420) (fun x : cart R _916420 => @percent _916420 c x) s). +Axiom thm_CONVEX_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@convex N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@convex N' s)). +Axiom thm_CONVEX_NEGATIONS : forall {_916547 : Type'}, forall s : (cart R _916547) -> Prop, (@convex _916547 s) -> @convex _916547 (@IMAGE (cart R _916547) (cart R _916547) (@vector_neg _916547) s). +Axiom thm_CONVEX_SUMS : forall {_916675 : Type'}, forall s : (cart R _916675) -> Prop, forall t : (cart R _916675) -> Prop, ((@convex _916675 s) /\ (@convex _916675 t)) -> @convex _916675 (@GSPEC (cart R _916675) (fun GEN_PVAR_4313 : cart R _916675 => exists x : cart R _916675, exists y : cart R _916675, @SETSPEC (cart R _916675) GEN_PVAR_4313 ((@IN (cart R _916675) x s) /\ (@IN (cart R _916675) y t)) (@vector_add _916675 x y))). +Axiom thm_CONVEX_DIFFERENCES : forall {_916803 : Type'}, forall s : (cart R _916803) -> Prop, forall t : (cart R _916803) -> Prop, ((@convex _916803 s) /\ (@convex _916803 t)) -> @convex _916803 (@GSPEC (cart R _916803) (fun GEN_PVAR_4314 : cart R _916803 => exists x : cart R _916803, exists y : cart R _916803, @SETSPEC (cart R _916803) GEN_PVAR_4314 ((@IN (cart R _916803) x s) /\ (@IN (cart R _916803) y t)) (@vector_sub _916803 x y))). +Axiom thm_CONVEX_AFFINITY_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@convex N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = ((m = (R_of_N (NUMERAL 0%N))) \/ (@convex N' s)). +Axiom thm_CONVEX_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@convex N' s) -> @convex N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s). +Axiom thm_CONVEX_LINEAR_PREIMAGE : forall {M N' : Type'} (s : (cart R N') -> Prop), forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (@convex N' s)) -> @convex M (@GSPEC (cart R M) (fun GEN_PVAR_4315 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4315 (@IN (cart R N') (f x) s) x)). +Axiom thm_CONVEX_SUMS_MULTIPLES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, forall d : R, ((@convex N' s) /\ ((Rle (R_of_N (NUMERAL 0%N)) c) /\ (Rle (R_of_N (NUMERAL 0%N)) d))) -> (@GSPEC (cart R N') (fun GEN_PVAR_4316 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4316 ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) (@vector_add N' (@percent N' c x) (@percent N' d y)))) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' (Rplus c d) x) s). +Axiom thm_CONVEX_TRANSLATION_SUBSET_PREIMAGE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@convex N' t) -> @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4317 : cart R N' => exists a : cart R N', @SETSPEC (cart R N') GEN_PVAR_4317 (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) t) a)). +Axiom thm_CONVEX_TRANSLATION_SUPERSET_PREIMAGE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@convex N' t) -> @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4320 : cart R N' => exists a : cart R N', @SETSPEC (cart R N') GEN_PVAR_4320 (@SUBSET (cart R N') s (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) t)) a)). +Axiom thm_SUBSET_SUMS_LCANCEL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R N')))) /\ ((@bounded N' s) /\ ((@closed N' u) /\ ((@convex N' u) /\ (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4321 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4321 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))) (@GSPEC (cart R N') (fun GEN_PVAR_4322 : cart R N' => exists x : cart R N', exists z : cart R N', @SETSPEC (cart R N') GEN_PVAR_4322 ((@IN (cart R N') x s) /\ (@IN (cart R N') z u)) (@vector_add N' x z)))))))) -> @SUBSET (cart R N') t u. +Axiom thm_SUBSET_SUMS_RCANCEL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@closed N' t) /\ ((@convex N' t) /\ ((@bounded N' u) /\ ((~ (u = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4323 : cart R N' => exists x : cart R N', exists z : cart R N', @SETSPEC (cart R N') GEN_PVAR_4323 ((@IN (cart R N') x s) /\ (@IN (cart R N') z u)) (@vector_add N' x z))) (@GSPEC (cart R N') (fun GEN_PVAR_4324 : cart R N' => exists y : cart R N', exists z : cart R N', @SETSPEC (cart R N') GEN_PVAR_4324 ((@IN (cart R N') y t) /\ (@IN (cart R N') z u)) (@vector_add N' y z)))))))) -> @SUBSET (cart R N') s t. +Axiom thm_EQ_SUMS_LCANCEL : forall {_918105 : Type'}, forall s : (cart R _918105) -> Prop, forall t : (cart R _918105) -> Prop, forall u : (cart R _918105) -> Prop, ((~ (s = (@EMPTY (cart R _918105)))) /\ ((@bounded _918105 s) /\ ((@closed _918105 t) /\ ((@convex _918105 t) /\ ((@closed _918105 u) /\ ((@convex _918105 u) /\ ((@GSPEC (cart R _918105) (fun GEN_PVAR_4325 : cart R _918105 => exists x : cart R _918105, exists y : cart R _918105, @SETSPEC (cart R _918105) GEN_PVAR_4325 ((@IN (cart R _918105) x s) /\ (@IN (cart R _918105) y t)) (@vector_add _918105 x y))) = (@GSPEC (cart R _918105) (fun GEN_PVAR_4326 : cart R _918105 => exists x : cart R _918105, exists z : cart R _918105, @SETSPEC (cart R _918105) GEN_PVAR_4326 ((@IN (cart R _918105) x s) /\ (@IN (cart R _918105) z u)) (@vector_add _918105 x z)))))))))) -> t = u. +Axiom thm_EQ_SUMS_RCANCEL : forall {_918219 : Type'}, forall s : (cart R _918219) -> Prop, forall t : (cart R _918219) -> Prop, forall u : (cart R _918219) -> Prop, ((@closed _918219 s) /\ ((@convex _918219 s) /\ ((@closed _918219 t) /\ ((@convex _918219 t) /\ ((@bounded _918219 u) /\ ((~ (u = (@EMPTY (cart R _918219)))) /\ ((@GSPEC (cart R _918219) (fun GEN_PVAR_4327 : cart R _918219 => exists x : cart R _918219, exists z : cart R _918219, @SETSPEC (cart R _918219) GEN_PVAR_4327 ((@IN (cart R _918219) x s) /\ (@IN (cart R _918219) z u)) (@vector_add _918219 x z))) = (@GSPEC (cart R _918219) (fun GEN_PVAR_4328 : cart R _918219 => exists y : cart R _918219, exists z : cart R _918219, @SETSPEC (cart R _918219) GEN_PVAR_4328 ((@IN (cart R _918219) y t) /\ (@IN (cart R _918219) z u)) (@vector_add _918219 y z)))))))))) -> s = t. +Axiom thm_CONVEX_CONVEX_HULL : forall {_918236 : Type'}, forall s : (cart R _918236) -> Prop, @convex _918236 (@hull (cart R _918236) (@convex _918236) s). +Axiom thm_CONVEX_HULL_EQ : forall {_918252 : Type'}, forall s : (cart R _918252) -> Prop, ((@hull (cart R _918252) (@convex _918252) s) = s) = (@convex _918252 s). +Axiom thm_CONVEX_HULLS_EQ : forall {_918290 : Type'}, forall s : (cart R _918290) -> Prop, forall t : (cart R _918290) -> Prop, ((@SUBSET (cart R _918290) s (@hull (cart R _918290) (@convex _918290) t)) /\ (@SUBSET (cart R _918290) t (@hull (cart R _918290) (@convex _918290) s))) -> (@hull (cart R _918290) (@convex _918290) s) = (@hull (cart R _918290) (@convex _918290) t). +Axiom thm_IS_CONVEX_HULL : forall {_918310 : Type'}, forall s : (cart R _918310) -> Prop, (@convex _918310 s) = (exists t : (cart R _918310) -> Prop, s = (@hull (cart R _918310) (@convex _918310) t)). +Axiom thm_CONVEX_HULL_CONTAINS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@IN (cart R N') a (@hull (cart R N') (@convex N') s)) /\ ((@IN (cart R N') b (@hull (cart R N') (@convex N') s)) /\ (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))))) -> @IN (cart R N') x (@hull (cart R N') (@convex N') s). +Axiom thm_MIDPOINTS_IN_CONVEX_HULL : forall {N' : Type'} (y : cart R N'), forall x : cart R N', forall s : (cart R N') -> Prop, ((@IN (cart R N') x (@hull (cart R N') (@convex N') s)) /\ (@IN (cart R N') y (@hull (cart R N') (@convex N') s))) -> @IN (cart R N') (@midpoint N' (@pair (cart R N') (cart R N') x y)) (@hull (cart R N') (@convex N') s). +Axiom thm_CONVEX_HULL_UNIV : forall {N' : Type'}, (@hull (cart R N') (@convex N') (@UNIV (cart R N'))) = (@UNIV (cart R N')). +Axiom thm_BOUNDED_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @bounded N' (@hull (cart R N') (@convex N') s). +Axiom thm_BOUNDED_CONVEX_HULL_EQ : forall {_918459 : Type'}, forall s : (cart R _918459) -> Prop, (@bounded _918459 (@hull (cart R _918459) (@convex _918459) s)) = (@bounded _918459 s). +Axiom thm_FINITE_IMP_BOUNDED_CONVEX_HULL : forall {_918474 : Type'}, forall s : (cart R _918474) -> Prop, (@FINITE (cart R _918474) s) -> @bounded _918474 (@hull (cart R _918474) (@convex _918474) s). +Axiom thm_CONVEX_HULL_EMPTY : forall {_918482 : Type'}, (@hull (cart R _918482) (@convex _918482) (@EMPTY (cart R _918482))) = (@EMPTY (cart R _918482)). +Axiom thm_CONVEX_HULL_EQ_EMPTY : forall {_918498 : Type'}, forall s : (cart R _918498) -> Prop, ((@hull (cart R _918498) (@convex _918498) s) = (@EMPTY (cart R _918498))) = (s = (@EMPTY (cart R _918498))). +Axiom thm_CONVEX_HULL_SING : forall {_918515 : Type'}, forall a : cart R _918515, (@hull (cart R _918515) (@convex _918515) (@INSERT (cart R _918515) a (@EMPTY (cart R _918515)))) = (@INSERT (cart R _918515) a (@EMPTY (cart R _918515))). +Axiom thm_CONVEX_HULL_EQ_SING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@hull (cart R N') (@convex N') s) = (@INSERT (cart R N') a (@EMPTY (cart R N')))) = (s = (@INSERT (cart R N') a (@EMPTY (cart R N')))). +Axiom thm_CONVEX_HULL_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (~ (s = (@EMPTY (cart R N')))) -> (@hull (cart R N') (@convex N') (@INSERT (cart R N') a s)) = (@GSPEC (cart R N') (fun GEN_PVAR_4329 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4329 (exists u : R, exists v : R, exists b : cart R N', (Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ (((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@IN (cart R N') b (@hull (cart R N') (@convex N') s)) /\ (x = (@vector_add N' (@percent N' u a) (@percent N' v b))))))) x)). +Axiom thm_CONVEX_HULL_INSERT_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@hull (cart R N') (@convex N') (@INSERT (cart R N') a s)) = (@COND ((cart R N') -> Prop) (s = (@EMPTY (cart R N'))) (@INSERT (cart R N') a (@EMPTY (cart R N'))) (@GSPEC (cart R N') (fun GEN_PVAR_4330 : cart R N' => exists u : R, exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4330 ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle u (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@IN (cart R N') x (@hull (cart R N') (@convex N') s)))) (@vector_add N' (@percent N' (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) a) (@percent N' u x))))). +Axiom thm_CONVEX_HULL_INSERT_SEGMENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@hull (cart R N') (@convex N') (@INSERT (cart R N') a s)) = (@COND ((cart R N') -> Prop) (s = (@EMPTY (cart R N'))) (@INSERT (cart R N') a (@EMPTY (cart R N'))) (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4331 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4331 (@IN (cart R N') x (@hull (cart R N') (@convex N') s)) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a x) (@nil (prod (cart R N') (cart R N'))))))))). +Axiom thm_CONVEX_HULL_INDEXED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@hull (cart R N') (@convex N') s) = (@GSPEC (cart R N') (fun GEN_PVAR_4332 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4332 (exists k : N, exists u : N -> R, exists x : N -> cart R N', (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k)) -> (Rle (R_of_N (NUMERAL 0%N)) (u i)) /\ (@IN (cart R N') (x i) s)) /\ (((@sum N (dotdot (NUMERAL (BIT1 0%N)) k) u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum N N' (dotdot (NUMERAL (BIT1 0%N)) k) (fun i : N => @percent N' (u i) (x i))) = y))) y)). +Axiom thm_CONVEX_HULL_FINITE_IMAGE_EXPLICIT : forall {A N' : Type'}, forall f : A -> cart R N', forall k : A -> Prop, (@FINITE A k) -> (@hull (cart R N') (@convex N') (@IMAGE A (cart R N') f k)) = (@GSPEC (cart R N') (fun GEN_PVAR_4333 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4333 (exists u : A -> R, (forall a : A, (@IN A a k) -> Rle (R_of_N (NUMERAL 0%N)) (u a)) /\ (((@sum A k u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum A N' k (fun a : A => @percent N' (u a) (f a))) = y))) y)). +Axiom thm_CONVEX_HULL_EXPLICIT : forall {N' : Type'}, forall p : (cart R N') -> Prop, (@hull (cart R N') (@convex N') p) = (@GSPEC (cart R N') (fun GEN_PVAR_4335 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4335 (exists s : (cart R N') -> Prop, exists u : (cart R N') -> R, (@FINITE (cart R N') s) /\ ((@SUBSET (cart R N') s p) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun v : cart R N' => @percent N' (u v) v)) = y))))) y)). +Axiom thm_CONVEX_HULL_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@hull (cart R N') (@convex N') s) = (@GSPEC (cart R N') (fun GEN_PVAR_4337 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4337 (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = y))) y)). +Axiom thm_CONVEX_HULL_IMAGE : forall {A N' : Type'}, forall f : A -> cart R N', forall k : A -> Prop, (@hull (cart R N') (@convex N') (@IMAGE A (cart R N') f k)) = (@GSPEC (cart R N') (fun GEN_PVAR_4339 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4339 (exists c : A -> Prop, exists u : A -> R, (@FINITE A c) /\ ((@SUBSET A c k) /\ ((forall a : A, (@IN A a c) -> Rle (R_of_N (NUMERAL 0%N)) (u a)) /\ (((@sum A c u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum A N' c (fun a : A => @percent N' (u a) (f a))) = y))))) y)). +Axiom thm_CONVEX_HULL_IMAGE_LT : forall {A N' : Type'}, forall f : A -> cart R N', forall k : A -> Prop, (@hull (cart R N') (@convex N') (@IMAGE A (cart R N') f k)) = (@GSPEC (cart R N') (fun GEN_PVAR_4341 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4341 (exists c : A -> Prop, exists u : A -> R, (@FINITE A c) /\ ((@SUBSET A c k) /\ ((forall a : A, (@IN A a c) -> Rlt (R_of_N (NUMERAL 0%N)) (u a)) /\ (((@sum A c u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum A N' c (fun a : A => @percent N' (u a) (f a))) = y))))) y)). +Axiom thm_CONVEX_HULL_UNION_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ (@convex N' t)) -> (@hull (cart R N') (@convex N') (@UNION (cart R N') s t)) = (@UNION (cart R N') s (@UNION (cart R N') t (@GSPEC (cart R N') (fun GEN_PVAR_4342 : cart R N' => exists x : cart R N', exists u : R, exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4342 ((@IN (cart R N') x s) /\ ((@IN (cart R N') y t) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N))))))) (@vector_add N' (@percent N' (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) x) (@percent N' u y)))))). +Axiom thm_CONVEX_HULL_UNION_NONEMPTY_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@convex N' t) /\ (~ (t = (@EMPTY (cart R N'))))))) -> (@hull (cart R N') (@convex N') (@UNION (cart R N') s t)) = (@GSPEC (cart R N') (fun GEN_PVAR_4343 : cart R N' => exists x : cart R N', exists u : R, exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4343 ((@IN (cart R N') x s) /\ ((@IN (cart R N') y t) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N))))))) (@vector_add N' (@percent N' (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) x) (@percent N' u y)))). +Axiom thm_CONVEX_HULL_UNION_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((@convex N' (@UNIONS (cart R N') f)) /\ (~ (f = (@EMPTY ((cart R N') -> Prop))))) -> (@hull (cart R N') (@convex N') (@UNION (cart R N') s (@UNIONS (cart R N') f))) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4344 : (cart R N') -> Prop => exists t : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4344 (@IN ((cart R N') -> Prop) t f) (@hull (cart R N') (@convex N') (@UNION (cart R N') s t))))). +Axiom thm_CONVEX_HULL_FINITE_STEP : forall {N' : Type'} (w : R) (s : (cart R N') -> Prop) (y : cart R N') (a : cart R N'), ((exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x (@EMPTY (cart R N'))) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ (((@sum (cart R N') (@EMPTY (cart R N')) u) = w) /\ ((@vsum (cart R N') N' (@EMPTY (cart R N')) (fun x : cart R N' => @percent N' (u x) x)) = y))) = ((w = (R_of_N (NUMERAL 0%N))) /\ (y = (@vec N' (NUMERAL 0%N))))) /\ ((@FINITE (cart R N') s) -> (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x (@INSERT (cart R N') a s)) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ (((@sum (cart R N') (@INSERT (cart R N') a s) u) = w) /\ ((@vsum (cart R N') N' (@INSERT (cart R N') a s) (fun x : cart R N' => @percent N' (u x) x)) = y))) = (exists v : R, (Rle (R_of_N (NUMERAL 0%N)) v) /\ (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ (((@sum (cart R N') s u) = (Rminus w v)) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = (@vector_sub N' y (@percent N' v a))))))). +Axiom thm_CONVEX_HULL_2 : forall {_921322 : Type'}, forall a : cart R _921322, forall b : cart R _921322, (@hull (cart R _921322) (@convex _921322) (@INSERT (cart R _921322) a (@INSERT (cart R _921322) b (@EMPTY (cart R _921322))))) = (@GSPEC (cart R _921322) (fun GEN_PVAR_4345 : cart R _921322 => exists u : R, exists v : R, @SETSPEC (cart R _921322) GEN_PVAR_4345 ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))) (@vector_add _921322 (@percent _921322 u a) (@percent _921322 v b)))). +Axiom thm_CONVEX_HULL_2_ALT : forall {_921451 : Type'}, forall a : cart R _921451, forall b : cart R _921451, (@hull (cart R _921451) (@convex _921451) (@INSERT (cart R _921451) a (@INSERT (cart R _921451) b (@EMPTY (cart R _921451))))) = (@GSPEC (cart R _921451) (fun GEN_PVAR_4346 : cart R _921451 => exists u : R, @SETSPEC (cart R _921451) GEN_PVAR_4346 ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N))))) (@vector_add _921451 a (@percent _921451 u (@vector_sub _921451 b a))))). +Axiom thm_CONVEX_HULL_3 : forall {_921590 : Type'} (a : cart R _921590) (b : cart R _921590) (c : cart R _921590), (@hull (cart R _921590) (@convex _921590) (@INSERT (cart R _921590) a (@INSERT (cart R _921590) b (@INSERT (cart R _921590) c (@EMPTY (cart R _921590)))))) = (@GSPEC (cart R _921590) (fun GEN_PVAR_4347 : cart R _921590 => exists u : R, exists v : R, exists w : R, @SETSPEC (cart R _921590) GEN_PVAR_4347 ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rle (R_of_N (NUMERAL 0%N)) w) /\ ((Rplus u (Rplus v w)) = (R_of_N (NUMERAL (BIT1 0%N))))))) (@vector_add _921590 (@percent _921590 u a) (@vector_add _921590 (@percent _921590 v b) (@percent _921590 w c))))). +Axiom thm_CONVEX_HULL_3_ALT : forall {_921764 : Type'}, forall a : cart R _921764, forall b : cart R _921764, forall c : cart R _921764, (@hull (cart R _921764) (@convex _921764) (@INSERT (cart R _921764) a (@INSERT (cart R _921764) b (@INSERT (cart R _921764) c (@EMPTY (cart R _921764)))))) = (@GSPEC (cart R _921764) (fun GEN_PVAR_4348 : cart R _921764 => exists u : R, exists v : R, @SETSPEC (cart R _921764) GEN_PVAR_4348 ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ (Rle (Rplus u v) (R_of_N (NUMERAL (BIT1 0%N)))))) (@vector_add _921764 a (@vector_add _921764 (@percent _921764 u (@vector_sub _921764 b a)) (@percent _921764 v (@vector_sub _921764 c a)))))). +Axiom thm_CONVEX_HULL_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@hull (cart R N') (@convex N') (@GSPEC (cart R N') (fun GEN_PVAR_4349 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4349 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))) = (@GSPEC (cart R N') (fun GEN_PVAR_4350 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4350 ((@IN (cart R N') x (@hull (cart R N') (@convex N') s)) /\ (@IN (cart R N') y (@hull (cart R N') (@convex N') t))) (@vector_add N' x y))). +Axiom thm_AFFINE_HULL_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@hull (cart R N') (@affine N') (@GSPEC (cart R N') (fun GEN_PVAR_4351 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4351 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))) = (@GSPEC (cart R N') (fun GEN_PVAR_4352 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4352 ((@IN (cart R N') x (@hull (cart R N') (@affine N') s)) /\ (@IN (cart R N') y (@hull (cart R N') (@affine N') t))) (@vector_add N' x y))). +Axiom thm_CONVEX_HULL_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@hull (cart R (finite_sum M N')) (@convex (finite_sum M N')) (@PCROSS R M N' s t)) = (@PCROSS R M N' (@hull (cart R M) (@convex M) s) (@hull (cart R N') (@convex N') t)). +Axiom thm_AFFINE_HULL_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@hull (cart R (finite_sum M N')) (@affine (finite_sum M N')) (@PCROSS R M N' s t)) = (@PCROSS R M N' (@hull (cart R M) (@affine M) s) (@hull (cart R N') (@affine N') t)). +Axiom thm_BILINEAR_IN_CONVEX_HULL : forall {M N' P : Type'}, forall f : (cart R M) -> (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall x : cart R M, forall y : cart R N', ((@bilinear N' P M f) /\ ((@IN (cart R M) x (@hull (cart R M) (@convex M) s)) /\ (@IN (cart R N') y (@hull (cart R N') (@convex N') t)))) -> @IN (cart R P) (f x y) (@hull (cart R P) (@convex P) (@GSPEC (cart R P) (fun GEN_PVAR_4361 : cart R P => exists a : cart R M, exists b : cart R N', @SETSPEC (cart R P) GEN_PVAR_4361 ((@IN (cart R M) a s) /\ (@IN (cart R N') b t)) (f a b)))). +Axiom thm_SUBSPACE_IMP_AFFINE : forall {_922515 : Type'}, forall s : (cart R _922515) -> Prop, (@subspace _922515 s) -> @affine _922515 s. +Axiom thm_AFFINE_IMP_CONVEX : forall {_922526 : Type'}, forall s : (cart R _922526) -> Prop, (@affine _922526 s) -> @convex _922526 s. +Axiom thm_SUBSPACE_IMP_CONVEX : forall {_922537 : Type'}, forall s : (cart R _922537) -> Prop, (@subspace _922537 s) -> @convex _922537 s. +Axiom thm_AFFINE_HULL_SUBSET_SPAN : forall {_922553 : Type'}, forall s : (cart R _922553) -> Prop, @SUBSET (cart R _922553) (@hull (cart R _922553) (@affine _922553) s) (@span _922553 s). +Axiom thm_CONVEX_HULL_SUBSET_SPAN : forall {_922567 : Type'}, forall s : (cart R _922567) -> Prop, @SUBSET (cart R _922567) (@hull (cart R _922567) (@convex _922567) s) (@span _922567 s). +Axiom thm_CONVEX_HULL_SUBSET_AFFINE_HULL : forall {_922583 : Type'}, forall s : (cart R _922583) -> Prop, @SUBSET (cart R _922583) (@hull (cart R _922583) (@convex _922583) s) (@hull (cart R _922583) (@affine _922583) s). +Axiom thm_COLLINEAR_CONVEX_HULL_COLLINEAR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@collinear N' (@hull (cart R N') (@convex N') s)) = (@collinear N' s). +Axiom thm_AFFINE_SPAN : forall {_922607 : Type'}, forall s : (cart R _922607) -> Prop, @affine _922607 (@span _922607 s). +Axiom thm_CONVEX_SPAN : forall {_922616 : Type'}, forall s : (cart R _922616) -> Prop, @convex _922616 (@span _922616 s). +Axiom thm_SEGMENT_SUBSET_LINE : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', @SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))). +Axiom thm_SPAN_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@span N' (@hull (cart R N') (@convex N') s)) = (@span N' s). +Axiom thm_DIM_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@dim N' (@hull (cart R N') (@convex N') s)) = (@dim N' s). +Axiom thm_AFFINE_EQ_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s) -> (@affine N' s) = (@subspace N' s). +Axiom thm_AFFINE_IMP_SUBSPACE : forall {_922842 : Type'}, forall s : (cart R _922842) -> Prop, ((@affine _922842 s) /\ (@IN (cart R _922842) (@vec _922842 (NUMERAL 0%N)) s)) -> @subspace _922842 s. +Axiom thm_SUBSPACE_EQ_AFFINE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) = ((@affine N' s) /\ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s)). +Axiom thm_AFFINE_HULL_EQ_SPAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s)) -> (@hull (cart R N') (@affine N') s) = (@span N' s). +Axiom thm_SPAN_AFFINE_HULL_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@span N' s) = (@hull (cart R N') (@affine N') (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) s)). +Axiom thm_CLOSED_AFFINE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@affine N' s) -> @closed N' s. +Axiom thm_CLOSED_AFFINE_HULL : forall {_923085 : Type'}, forall s : (cart R _923085) -> Prop, @closed _923085 (@hull (cart R _923085) (@affine _923085) s). +Axiom thm_CLOSURE_SUBSET_AFFINE_HULL : forall {_923099 : Type'}, forall s : (cart R _923099) -> Prop, @SUBSET (cart R _923099) (@closure _923099 s) (@hull (cart R _923099) (@affine _923099) s). +Axiom thm_AFFINE_HULL_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@hull (cart R N') (@affine N') (@closure N' s)) = (@hull (cart R N') (@affine N') s). +Axiom thm_AFFINE_HULL_EQ_SPAN_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@hull (cart R N') (@affine N') s) = (@span N' s)) = (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s)). +Axiom thm_AFFINE_DEPENDENT_IMP_DEPENDENT : forall {_923152 : Type'}, forall s : (cart R _923152) -> Prop, (@affine_dependent _923152 s) -> @dependent _923152 s. +Axiom thm_DEPENDENT_AFFINE_DEPENDENT_CASES : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@dependent N' s) = ((@affine_dependent N' s) \/ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s))). +Axiom thm_DEPENDENT_IMP_AFFINE_DEPENDENT : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, ((@dependent N' (@GSPEC (cart R N') (fun GEN_PVAR_4362 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4362 (@IN (cart R N') x s) (@vector_sub N' x a)))) /\ (~ (@IN (cart R N') a s))) -> @affine_dependent N' (@INSERT (cart R N') a s). +Axiom thm_AFFINE_DEPENDENT_BIGGERSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) -> N.ge (@CARD (cart R N') s) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT0 (BIT1 0%N))))) -> @affine_dependent N' s. +Axiom thm_AFFINE_DEPENDENT_BIGGERSET_GENERAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) -> N.ge (@CARD (cart R N') s) (N.add (@dim N' s) (NUMERAL (BIT0 (BIT1 0%N))))) -> @affine_dependent N' s. +Axiom thm_AFFINE_INDEPENDENT_IMP_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> @FINITE (cart R N') s. +Axiom thm_AFFINE_INDEPENDENT_CARD_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> N.le (@CARD (cart R N') s) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N))). +Axiom thm_AFFINE_INDEPENDENT_CONVEX_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((~ (@affine_dependent N' s)) /\ (@SUBSET (cart R N') t s)) -> (@hull (cart R N') (@convex N') t) = (@INTER (cart R N') (@hull (cart R N') (@affine N') t) (@hull (cart R N') (@convex N') s)). +Axiom thm_DISJOINT_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((~ (@affine_dependent N' s)) /\ ((@SUBSET (cart R N') t s) /\ ((@SUBSET (cart R N') u s) /\ (@DISJOINT (cart R N') t u)))) -> @DISJOINT (cart R N') (@hull (cart R N') (@affine N') t) (@hull (cart R N') (@affine N') u). +Axiom thm_AFFINE_INDEPENDENT_SPAN_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((~ (@affine_dependent N' s)) /\ ((@CARD (cart R N') s) = (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N))))) -> (@hull (cart R N') (@affine N') s) = (@UNIV (cart R N')). +Axiom thm_AFFINE_INDEPENDENT_SPAN_GT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((~ (@affine_dependent N' s)) /\ (N.lt (@dimindex N' (@UNIV N')) (@CARD (cart R N') s))) -> (@hull (cart R N') (@affine N') s) = (@UNIV (cart R N')). +Axiom thm_EMPTY_INTERIOR_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ (N.le (@CARD (cart R N') s) (@dimindex N' (@UNIV N')))) -> (@interior N' (@hull (cart R N') (@affine N') s)) = (@EMPTY (cart R N')). +Axiom thm_EMPTY_INTERIOR_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ (N.le (@CARD (cart R N') s) (@dimindex N' (@UNIV N')))) -> (@interior N' (@hull (cart R N') (@convex N') s)) = (@EMPTY (cart R N')). +Axiom thm_AFFINE_DEPENDENT_CHOOSE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (~ (@affine_dependent N' s)) -> (@affine_dependent N' (@INSERT (cart R N') a s)) = ((~ (@IN (cart R N') a s)) /\ (@IN (cart R N') a (@hull (cart R N') (@affine N') s))). +Axiom thm_AFFINE_INDEPENDENT_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((~ (@affine_dependent N' s)) /\ (~ (@IN (cart R N') a (@hull (cart R N') (@affine N') s)))) -> ~ (@affine_dependent N' (@INSERT (cart R N') a s)). +Axiom thm_AFFINE_HULL_EXPLICIT_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> R, forall u' : (cart R N') -> R, ((~ (@affine_dependent N' s)) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((@sum (cart R N') s u') = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = (@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u' x) x)))))) -> forall x : cart R N', (@IN (cart R N') x s) -> (u x) = (u' x). +Axiom thm_INDEPENDENT_IMP_AFFINE_DEPENDENT_0 : forall {_924786 : Type'}, forall s : (cart R _924786) -> Prop, (@independent _924786 s) -> ~ (@affine_dependent _924786 (@INSERT (cart R _924786) (@vec _924786 (NUMERAL 0%N)) s)). +Axiom thm_AFFINE_INDEPENDENT_STDBASIS : forall {N' : Type'}, ~ (@affine_dependent N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@GSPEC (cart R N') (fun GEN_PVAR_4368 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_4368 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@basis N' i))))). +Axiom thm_SPAN_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@span N' (@hull (cart R N') (@conic N') s)) = (@span N' s). +Axiom thm_CONIC_HULLS_EQ_IMP_SPANS_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@hull (cart R N') (@conic N') s) = (@hull (cart R N') (@conic N') t)) -> (@span N' s) = (@span N' t). +Axiom thm_DIM_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@dim N' (@hull (cart R N') (@conic N') s)) = (@dim N' s). +Axiom thm_CONIC_HULL_SUBSET_SPAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@hull (cart R N') (@conic N') s) (@span N' s). +Axiom thm_CONIC_IMAGE_MULTIPLE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@conic N' s) = (forall a : R, (Rle (R_of_N (NUMERAL 0%N)) a) -> @SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' a x) s) s). +Axiom thm_CONIC_IMAGE_MULTIPLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : R, ((@conic N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) a)) -> (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' a x) s) = s. +Axiom thm_AFFINE_TRANSLATION_SUBSPACE : forall {N' : Type'}, forall t : (cart R N') -> Prop, ((@affine N' t) /\ (~ (t = (@EMPTY (cart R N'))))) = (exists a : cart R N', exists s : (cart R N') -> Prop, (@subspace N' s) /\ (t = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s))). +Axiom thm_AFFINE_TRANSLATION_UNIQUE_SUBSPACE : forall {N' : Type'}, forall t : (cart R N') -> Prop, ((@affine N' t) /\ (~ (t = (@EMPTY (cart R N'))))) = (@ex1 ((cart R N') -> Prop) (fun s : (cart R N') -> Prop => exists a : cart R N', (@subspace N' s) /\ (t = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)))). +Axiom thm_AFFINE_TRANSLATION_SUBSPACE_EXPLICIT : forall {N' : Type'}, forall t : (cart R N') -> Prop, forall a : cart R N', ((@affine N' t) /\ (@IN (cart R N') a t)) -> (@subspace N' (@GSPEC (cart R N') (fun GEN_PVAR_4369 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4369 (@IN (cart R N') x t) (@vector_sub N' x a)))) /\ (t = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@GSPEC (cart R N') (fun GEN_PVAR_4370 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4370 (@IN (cart R N') x t) (@vector_sub N' x a))))). +Axiom thm_AFFINE_PARALLEL_SLICE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : R, (@affine N' s) -> ((@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4374 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4374 (Rle (@dot N' a x) b) x))) = (@EMPTY (cart R N'))) \/ ((@SUBSET (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4375 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4375 (Rle (@dot N' a x) b) x))) \/ (exists a' : cart R N', exists b' : R, (~ (a' = (@vec N' (NUMERAL 0%N)))) /\ (((@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4376 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4376 (Rle (@dot N' a' x) b') x))) = (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4377 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4377 (Rle (@dot N' a x) b) x)))) /\ (((@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4378 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4378 ((@dot N' a' x) = b') x))) = (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4379 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4379 ((@dot N' a x) = b) x)))) /\ (forall w : cart R N', (@IN (cart R N') w s) -> @IN (cart R N') (@vector_add N' w a') s))))). +Axiom thm_MAXIMAL_AFFINE_INDEPENDENT_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall b : (cart R N') -> Prop, ((@SUBSET (cart R N') b s) /\ ((~ (@affine_dependent N' b)) /\ (forall b' : (cart R N') -> Prop, ((@SUBSET (cart R N') b b') /\ ((@SUBSET (cart R N') b' s) /\ (~ (@affine_dependent N' b')))) -> b' = b))) -> @SUBSET (cart R N') s (@hull (cart R N') (@affine N') b). +Axiom thm_MAXIMAL_AFFINE_INDEPENDENT_SUBSET_AFFINE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall b : (cart R N') -> Prop, ((@affine N' s) /\ ((@SUBSET (cart R N') b s) /\ ((~ (@affine_dependent N' b)) /\ (forall b' : (cart R N') -> Prop, ((@SUBSET (cart R N') b b') /\ ((@SUBSET (cart R N') b' s) /\ (~ (@affine_dependent N' b')))) -> b' = b)))) -> (@hull (cart R N') (@affine N') b) = s. +Axiom thm_EXTEND_TO_AFFINE_BASIS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((~ (@affine_dependent N' s)) /\ (@SUBSET (cart R N') s u)) -> exists t : (cart R N') -> Prop, (~ (@affine_dependent N' t)) /\ ((@SUBSET (cart R N') s t) /\ ((@SUBSET (cart R N') t u) /\ ((@hull (cart R N') (@affine N') t) = (@hull (cart R N') (@affine N') u)))). +Axiom thm_AFFINE_BASIS_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, exists b : (cart R N') -> Prop, (~ (@affine_dependent N' b)) /\ ((@SUBSET (cart R N') b s) /\ ((@hull (cart R N') (@affine N') b) = (@hull (cart R N') (@affine N') s))). +Axiom thm_aff_dim : forall {_926023 : Type'}, forall s : (cart R _926023) -> Prop, (@aff_dim _926023 s) = (@ε Z (fun d : Z => exists b : (cart R _926023) -> Prop, ((@hull (cart R _926023) (@affine _926023) b) = (@hull (cart R _926023) (@affine _926023) s)) /\ ((~ (@affine_dependent _926023 b)) /\ ((Z_of_N (@CARD (cart R _926023) b)) = (int_add d (Z_of_N (NUMERAL (BIT1 0%N)))))))). +Axiom thm_AFF_DIM : forall {_926104 : Type'}, forall s : (cart R _926104) -> Prop, exists b : (cart R _926104) -> Prop, ((@hull (cart R _926104) (@affine _926104) b) = (@hull (cart R _926104) (@affine _926104) s)) /\ ((~ (@affine_dependent _926104 b)) /\ ((@aff_dim _926104 s) = (int_sub (Z_of_N (@CARD (cart R _926104) b)) (Z_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_AFF_DIM_EMPTY : forall {_926157 : Type'}, (@aff_dim _926157 (@EMPTY (cart R _926157))) = (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_AFF_DIM_AFFINE_HULL : forall {_926184 : Type'}, forall s : (cart R _926184) -> Prop, (@aff_dim _926184 (@hull (cart R _926184) (@affine _926184) s)) = (@aff_dim _926184 s). +Axiom thm_AFF_DIM_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@aff_dim N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@aff_dim N' s). +Axiom thm_AFFINE_HULL_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@hull (cart R N') (@affine N') (@hull (cart R N') (@conic N') s)) = (@COND ((cart R N') -> Prop) (s = (@EMPTY (cart R N'))) (@EMPTY (cart R N')) (@hull (cart R N') (@affine N') (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) s))). +Axiom thm_AFFINE_INDEPENDENT_CARD_DIM_DIFFS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((~ (@affine_dependent N' s)) /\ (@IN (cart R N') a s)) -> (@CARD (cart R N') s) = (N.add (@dim N' (@GSPEC (cart R N') (fun GEN_PVAR_4381 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4381 (@IN (cart R N') x s) (@vector_sub N' x a)))) (NUMERAL (BIT1 0%N))). +Axiom thm_AFF_DIM_DIM_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s)) -> (@aff_dim N' s) = (Z_of_N (@dim N' s)). +Axiom thm_AFF_DIM_DIM_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> (@aff_dim N' s) = (Z_of_N (@dim N' s)). +Axiom thm_AFF_DIM_DIM_AFFINE_DIFFS_STRONG : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@IN (cart R N') a (@hull (cart R N') (@affine N') s)) -> (@aff_dim N' s) = (Z_of_N (@dim N' (@GSPEC (cart R N') (fun GEN_PVAR_4387 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4387 (@IN (cart R N') x s) (@vector_sub N' x a))))). +Axiom thm_AFF_DIM_DIM_AFFINE_DIFFS : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@IN (cart R N') a s) -> (@aff_dim N' s) = (Z_of_N (@dim N' (@GSPEC (cart R N') (fun GEN_PVAR_4388 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4388 (@IN (cart R N') x s) (@vector_sub N' x a))))). +Axiom thm_AFF_DIM_LINEAR_IMAGE_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@linear M N' f) -> int_le (@aff_dim N' (@IMAGE (cart R M) (cart R N') f s)) (@aff_dim M s). +Axiom thm_AFF_DIM_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@aff_dim N' (@IMAGE (cart R M) (cart R N') f s)) = (@aff_dim M s). +Axiom thm_AFF_DIM_AFFINE_INDEPENDENT : forall {N' : Type'}, forall b : (cart R N') -> Prop, (~ (@affine_dependent N' b)) -> (@aff_dim N' b) = (int_sub (Z_of_N (@CARD (cart R N') b)) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_AFF_DIM_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall b : (cart R N') -> Prop, (((@hull (cart R N') (@affine N') b) = (@hull (cart R N') (@affine N') s)) /\ (~ (@affine_dependent N' b))) -> (@aff_dim N' s) = (int_sub (Z_of_N (@CARD (cart R N') b)) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_AFF_DIM_SING : forall {N' : Type'}, forall a : cart R N', (@aff_dim N' (@INSERT (cart R N') a (@EMPTY (cart R N')))) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_AFF_DIM_LE_CARD : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> int_le (@aff_dim N' s) (int_sub (Z_of_N (@CARD (cart R N') s)) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_AFF_DIM_GE : forall {N' : Type'}, forall s : (cart R N') -> Prop, int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (@aff_dim N' s). +Axiom thm_AFF_DIM_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) -> int_le (@aff_dim N' s) (@aff_dim N' t). +Axiom thm_AFF_DIM_LE_DIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, int_le (@aff_dim N' s) (Z_of_N (@dim N' s)). +Axiom thm_AFF_DIM_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@aff_dim N' (@hull (cart R N') (@convex N') s)) = (@aff_dim N' s). +Axiom thm_AFF_DIM_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@aff_dim N' (@closure N' s)) = (@aff_dim N' s). +Axiom thm_AFF_DIM_2 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@aff_dim N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))) = (@COND Z (a = b) (Z_of_N (NUMERAL 0%N)) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_AFF_DIM_EQ_MINUS1 : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@aff_dim N' s) = (int_neg (Z_of_N (NUMERAL (BIT1 0%N))))) = (s = (@EMPTY (cart R N'))). +Axiom thm_AFF_DIM_POS_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (int_le (Z_of_N (NUMERAL 0%N)) (@aff_dim N' s)) = (~ (s = (@EMPTY (cart R N')))). +Axiom thm_AFF_DIM_EQ_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@aff_dim N' s) = (Z_of_N (NUMERAL 0%N))) = (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N')))). +Axiom thm_CONNECTED_IMP_PERFECT_AFF_DIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@connected N' s) /\ ((~ ((@aff_dim N' s) = (Z_of_N (NUMERAL 0%N)))) /\ (@IN (cart R N') x s))) -> @limit_point_of N' x s. +Axiom thm_AFF_DIM_UNIV : forall {N' : Type'}, (@aff_dim N' (@UNIV (cart R N'))) = (Z_of_N (@dimindex N' (@UNIV N'))). +Axiom thm_AFF_DIM_EQ_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') s t) /\ (int_le (@aff_dim N' t) (@aff_dim N' s))) -> (@hull (cart R N') (@affine N') s) = (@hull (cart R N') (@affine N') t). +Axiom thm_AFF_DIM_SUMS_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@affine N' s) /\ ((@affine N' t) /\ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))))) -> (@aff_dim N' (@GSPEC (cart R N') (fun GEN_PVAR_4396 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4396 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))) = (int_sub (int_add (@aff_dim N' s) (@aff_dim N' t)) (@aff_dim N' (@INTER (cart R N') s t))). +Axiom thm_AFF_DIM_PSUBSET : forall {_928022 : Type'}, forall s : (cart R _928022) -> Prop, forall t : (cart R _928022) -> Prop, (@PSUBSET (cart R _928022) (@hull (cart R _928022) (@affine _928022) s) (@hull (cart R _928022) (@affine _928022) t)) -> int_lt (@aff_dim _928022 s) (@aff_dim _928022 t). +Axiom thm_AFF_DIM_EQ_FULL_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) -> ((@aff_dim N' s) = (@aff_dim N' t)) = ((@hull (cart R N') (@affine N') s) = (@hull (cart R N') (@affine N') t)). +Axiom thm_AFF_DIM_EQ_FULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@aff_dim N' s) = (Z_of_N (@dimindex N' (@UNIV N')))) = ((@hull (cart R N') (@affine N') s) = (@UNIV (cart R N'))). +Axiom thm_AFF_DIM_LE_UNIV : forall {N' : Type'}, forall s : (cart R N') -> Prop, int_le (@aff_dim N' s) (Z_of_N (@dimindex N' (@UNIV N'))). +Axiom thm_AFFINE_INDEPENDENT_IFF_CARD : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@affine_dependent N' s)) = ((@FINITE (cart R N') s) /\ ((@aff_dim N' s) = (int_sub (Z_of_N (@CARD (cart R N') s)) (Z_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_AFFINE_HULL_CONVEX_INTER_NONEMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ (~ ((@INTER (cart R N') s (@interior N' t)) = (@EMPTY (cart R N'))))) -> (@hull (cart R N') (@affine N') (@INTER (cart R N') s t)) = (@hull (cart R N') (@affine N') s). +Axiom thm_AFFINE_HULL_CONVEX_INTER_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@_open N' t) /\ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))))) -> (@hull (cart R N') (@affine N') (@INTER (cart R N') s t)) = (@hull (cart R N') (@affine N') s). +Axiom thm_AFFINE_HULL_AFFINE_INTER_NONEMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@affine N' s) /\ (~ ((@INTER (cart R N') s (@interior N' t)) = (@EMPTY (cart R N'))))) -> (@hull (cart R N') (@affine N') (@INTER (cart R N') s t)) = s. +Axiom thm_AFFINE_HULL_AFFINE_INTER_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@affine N' s) /\ ((@_open N' t) /\ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))))) -> (@hull (cart R N') (@affine N') (@INTER (cart R N') s t)) = s. +Axiom thm_CONVEX_AND_AFFINE_INTER_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@convex N' s) /\ ((@affine N' t) /\ ((@_open N' u) /\ (((@INTER (cart R N') s u) = (@INTER (cart R N') t u)) /\ (~ ((@INTER (cart R N') s u) = (@EMPTY (cart R N')))))))) -> (@hull (cart R N') (@affine N') s) = t. +Axiom thm_AFFINE_HULL_CONVEX_INTER_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) t) /\ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))))) -> (@hull (cart R N') (@affine N') (@INTER (cart R N') s t)) = (@hull (cart R N') (@affine N') s). +Axiom thm_AFFINE_HULL_AFFINE_INTER_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@affine N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))))) -> (@hull (cart R N') (@affine N') (@INTER (cart R N') s t)) = s. +Axiom thm_AFFINE_HULL_OPEN_IN_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (~ (t = (@EMPTY (cart R N')))))) -> (@hull (cart R N') (@affine N') t) = (@hull (cart R N') (@affine N') s). +Axiom thm_AFFINE_HULL_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') t)) s) /\ (~ (s = (@EMPTY (cart R N'))))) -> (@hull (cart R N') (@affine N') s) = (@hull (cart R N') (@affine N') t). +Axiom thm_AFFINE_HULL_OPEN_IN_AFFINE : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@affine N' u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (~ (s = (@EMPTY (cart R N')))))) -> (@hull (cart R N') (@affine N') s) = u. +Axiom thm_AFFINE_HULL_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> (@hull (cart R N') (@affine N') s) = (@UNIV (cart R N')). +Axiom thm_AFFINE_HULL_NONEMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ ((@interior N' s) = (@EMPTY (cart R N')))) -> (@hull (cart R N') (@affine N') s) = (@UNIV (cart R N')). +Axiom thm_AFF_DIM_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> (@aff_dim N' s) = (Z_of_N (@dimindex N' (@UNIV N'))). +Axiom thm_AFF_DIM_NONEMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ ((@interior N' s) = (@EMPTY (cart R N')))) -> (@aff_dim N' s) = (Z_of_N (@dimindex N' (@UNIV N'))). +Axiom thm_EMPTY_INTERIOR_AFF_DIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (int_lt (@aff_dim N' s) (Z_of_N (@dimindex N' (@UNIV N')))) -> (@interior N' s) = (@EMPTY (cart R N')). +Axiom thm_SPAN_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> (@span N' s) = (@UNIV (cart R N')). +Axiom thm_DIM_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> (@dim N' s) = (@dimindex N' (@UNIV N')). +Axiom thm_AFF_DIM_INSERT : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@aff_dim N' (@INSERT (cart R N') a s)) = (@COND Z (@IN (cart R N') a (@hull (cart R N') (@affine N') s)) (@aff_dim N' s) (int_add (@aff_dim N' s) (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_AFF_DIM_DIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@aff_dim N' s) = (@COND Z (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s)) (Z_of_N (@dim N' s)) (int_sub (Z_of_N (@dim N' s)) (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_AFF_DIM_CONIC_HULL_DIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@aff_dim N' (@hull (cart R N') (@conic N') s)) = (@COND Z (s = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (@dim N' s))). +Axiom thm_AFFINE_BOUNDED_EQ_TRIVIAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@affine N' s) -> (@bounded N' s) = ((s = (@EMPTY (cart R N'))) \/ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N'))))). +Axiom thm_AFFINE_BOUNDED_EQ_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@affine N' s) -> (@bounded N' s) = (int_le (@aff_dim N' s) (Z_of_N (NUMERAL 0%N))). +Axiom thm_COLLINEAR_AFF_DIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@collinear N' s) = (int_le (@aff_dim N' s) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_COPLANAR_AFF_DIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@coplanar N' s) = (int_le (@aff_dim N' s) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_HOMEOMORPHIC_AFFINE_SETS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@affine M s) /\ ((@affine N' t) /\ ((@aff_dim M s) = (@aff_dim N' t)))) -> @homeomorphic N' M s t. +Axiom thm_AFF_DIM_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R N')))) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) /\ (@affine N' t))) -> (@aff_dim N' s) = (@aff_dim N' t). +Axiom thm_DIM_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R N')))) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) /\ (@subspace N' t))) -> (@dim N' s) = (@dim N' t). +Axiom thm_AFF_DIM_CONVEX_INTER_NONEMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ (~ ((@INTER (cart R N') s (@interior N' t)) = (@EMPTY (cart R N'))))) -> (@aff_dim N' (@INTER (cart R N') s t)) = (@aff_dim N' s). +Axiom thm_AFF_DIM_CONVEX_INTER_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@_open N' t) /\ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))))) -> (@aff_dim N' (@INTER (cart R N') s t)) = (@aff_dim N' s). +Axiom thm_AFF_DIM_NONEMPTY_INTERIOR_OF : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@SUBSET (cart R N') s u) /\ ((@affine N' u) /\ (~ ((@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) = (@EMPTY (cart R N')))))) -> (@aff_dim N' s) = (@aff_dim N' u). +Axiom thm_EMPTY_INTERIOR_OF_AFF_DIM : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@affine N' u) /\ (int_lt (@aff_dim N' s) (@aff_dim N' u))) -> (@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) = (@EMPTY (cart R N')). +Axiom thm_AFFINE_HULL_HALFSPACE_LT : forall {N' : Type'}, forall a : cart R N', forall b : R, (@hull (cart R N') (@affine N') (@GSPEC (cart R N') (fun GEN_PVAR_4397 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4397 (Rlt (@dot N' a x) b) x))) = (@COND ((cart R N') -> Prop) ((a = (@vec N' (NUMERAL 0%N))) /\ (Rle b (R_of_N (NUMERAL 0%N)))) (@EMPTY (cart R N')) (@UNIV (cart R N'))). +Axiom thm_AFFINE_HULL_HALFSPACE_LE : forall {N' : Type'}, forall a : cart R N', forall b : R, (@hull (cart R N') (@affine N') (@GSPEC (cart R N') (fun GEN_PVAR_4399 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4399 (Rle (@dot N' a x) b) x))) = (@COND ((cart R N') -> Prop) ((a = (@vec N' (NUMERAL 0%N))) /\ (Rlt b (R_of_N (NUMERAL 0%N)))) (@EMPTY (cart R N')) (@UNIV (cart R N'))). +Axiom thm_AFFINE_HULL_HALFSPACE_GT : forall {N' : Type'}, forall a : cart R N', forall b : R, (@hull (cart R N') (@affine N') (@GSPEC (cart R N') (fun GEN_PVAR_4400 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4400 (Rgt (@dot N' a x) b) x))) = (@COND ((cart R N') -> Prop) ((a = (@vec N' (NUMERAL 0%N))) /\ (Rge b (R_of_N (NUMERAL 0%N)))) (@EMPTY (cart R N')) (@UNIV (cart R N'))). +Axiom thm_AFFINE_HULL_HALFSPACE_GE : forall {N' : Type'}, forall a : cart R N', forall b : R, (@hull (cart R N') (@affine N') (@GSPEC (cart R N') (fun GEN_PVAR_4401 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4401 (Rge (@dot N' a x) b) x))) = (@COND ((cart R N') -> Prop) ((a = (@vec N' (NUMERAL 0%N))) /\ (Rgt b (R_of_N (NUMERAL 0%N)))) (@EMPTY (cart R N')) (@UNIV (cart R N'))). +Axiom thm_AFF_DIM_HALFSPACE_LT : forall {N' : Type'}, forall a : cart R N', forall b : R, (@aff_dim N' (@GSPEC (cart R N') (fun GEN_PVAR_4402 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4402 (Rlt (@dot N' a x) b) x))) = (@COND Z ((a = (@vec N' (NUMERAL 0%N))) /\ (Rle b (R_of_N (NUMERAL 0%N)))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (@dimindex N' (@UNIV N')))). +Axiom thm_AFF_DIM_HALFSPACE_LE : forall {N' : Type'}, forall a : cart R N', forall b : R, (@aff_dim N' (@GSPEC (cart R N') (fun GEN_PVAR_4403 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4403 (Rle (@dot N' a x) b) x))) = (@COND Z ((a = (@vec N' (NUMERAL 0%N))) /\ (Rlt b (R_of_N (NUMERAL 0%N)))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (@dimindex N' (@UNIV N')))). +Axiom thm_AFF_DIM_HALFSPACE_GT : forall {N' : Type'}, forall a : cart R N', forall b : R, (@aff_dim N' (@GSPEC (cart R N') (fun GEN_PVAR_4404 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4404 (Rgt (@dot N' a x) b) x))) = (@COND Z ((a = (@vec N' (NUMERAL 0%N))) /\ (Rge b (R_of_N (NUMERAL 0%N)))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (@dimindex N' (@UNIV N')))). +Axiom thm_AFF_DIM_HALFSPACE_GE : forall {N' : Type'}, forall a : cart R N', forall b : R, (@aff_dim N' (@GSPEC (cart R N') (fun GEN_PVAR_4405 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4405 (Rge (@dot N' a x) b) x))) = (@COND Z ((a = (@vec N' (NUMERAL 0%N))) /\ (Rgt b (R_of_N (NUMERAL 0%N)))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (@dimindex N' (@UNIV N')))). +Axiom thm_CHOOSE_AFFINE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall d : Z, ((@affine N' s) /\ ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) d) /\ (int_le d (@aff_dim N' s)))) -> exists t : (cart R N') -> Prop, (@affine N' t) /\ ((@SUBSET (cart R N') t s) /\ ((@aff_dim N' t) = d)). +Axiom thm_NONEMPTY_AFFINE_EXISTS : forall {N' : Type'}, forall n : Z, forall a : cart R N', ((int_le (Z_of_N (NUMERAL 0%N)) n) /\ (int_le n (Z_of_N (@dimindex N' (@UNIV N'))))) -> exists s : (cart R N') -> Prop, (@affine N' s) /\ ((@IN (cart R N') a s) /\ ((@aff_dim N' s) = n)). +Axiom thm_AFFINE_EXISTS : forall {N' : Type'}, forall n : Z, ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (int_le n (Z_of_N (@dimindex N' (@UNIV N'))))) -> exists s : (cart R N') -> Prop, (@affine N' s) /\ ((@aff_dim N' s) = n). +Axiom thm_AFF_DIM_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@aff_dim N' (@hull (cart R N') (@conic N') s)) = (@COND Z ((s = (@EMPTY (cart R N'))) \/ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s))) (@aff_dim N' s) (int_add (@aff_dim N' s) (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_AFF_DIM_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R M)))) /\ (~ (t = (@EMPTY (cart R N'))))) -> (@aff_dim (finite_sum M N') (@PCROSS R M N' s t)) = (int_add (@aff_dim M s) (@aff_dim N' t)). +Axiom thm_AFF_DIM_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@affine N' s) /\ ((@affine N' t) /\ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))))) -> (@aff_dim N' (@UNION (cart R N') s t)) = (int_sub (int_add (@aff_dim N' s) (@aff_dim N' t)) (@aff_dim N' (@INTER (cart R N') s t))). +Axiom thm_COPLANAR_INTERSECTING_LINES : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', forall z : cart R N', ((@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') z (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ (@collinear N' (@INSERT (cart R N') c (@INSERT (cart R N') z (@INSERT (cart R N') d (@EMPTY (cart R N'))))))) -> @coplanar N' (@INSERT (cart R N') z (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@INSERT (cart R N') d (@EMPTY (cart R N'))))))). +Axiom thm_ISOMETRIC_HOMEOMORPHISM_AFFINE : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@affine M s) /\ ((@affine N' t) /\ ((@aff_dim M s) = (@aff_dim N' t)))) -> exists f : (cart R M) -> cart R N', exists g : (cart R N') -> cart R M, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ ((forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance M (@pair (cart R M) (cart R M) x y))) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x t) /\ (@IN (cart R N') y t)) -> (@distance M (@pair (cart R M) (cart R M) (g x) (g y))) = (@distance N' (@pair (cart R N') (cart R N') x y)))). +Axiom thm_RIGID_TRANSFORMATION_BETWEEN_CONGRUENT_SETS : forall {A N' : Type'}, forall x : A -> cart R N', forall y : A -> cart R N', forall s : A -> Prop, (forall i : A, forall j : A, ((@IN A i s) /\ (@IN A j s)) -> (@distance N' (@pair (cart R N') (cart R N') (x i) (x j))) = (@distance N' (@pair (cart R N') (cart R N') (y i) (y j)))) -> exists a : cart R N', exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (forall i : A, (@IN A i s) -> (y i) = (@vector_add N' a (f (x i)))). +Axiom thm_RIGID_TRANSFORMATION_BETWEEN_CONGRUENT_SETS_STRONG : forall {A N' : Type'}, forall x : A -> cart R N', forall y : A -> cart R N', forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A t s) /\ (((@hull (cart R N') (@affine N') (@IMAGE A (cart R N') y t)) = (@hull (cart R N') (@affine N') (@IMAGE A (cart R N') y s))) /\ (forall i : A, forall j : A, ((@IN A i s) /\ (@IN A j t)) -> (@distance N' (@pair (cart R N') (cart R N') (x i) (x j))) = (@distance N' (@pair (cart R N') (cart R N') (y i) (y j)))))) -> exists a : cart R N', exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (forall i : A, (@IN A i s) -> (y i) = (@vector_add N' a (f (x i)))). +Axiom thm_RIGID_TRANSFORMATION_BETWEEN_3 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall a' : cart R N', forall b' : cart R N', forall c' : cart R N', (((@distance N' (@pair (cart R N') (cart R N') a b)) = (@distance N' (@pair (cart R N') (cart R N') a' b'))) /\ (((@distance N' (@pair (cart R N') (cart R N') b c)) = (@distance N' (@pair (cart R N') (cart R N') b' c'))) /\ ((@distance N' (@pair (cart R N') (cart R N') c a)) = (@distance N' (@pair (cart R N') (cart R N') c' a'))))) -> exists k : cart R N', exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ ((a' = (@vector_add N' k (f a))) /\ ((b' = (@vector_add N' k (f b))) /\ (c' = (@vector_add N' k (f c))))). +Axiom thm_RIGID_TRANSFORMATION_BETWEEN_2 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall a' : cart R N', forall b' : cart R N', ((@distance N' (@pair (cart R N') (cart R N') a b)) = (@distance N' (@pair (cart R N') (cart R N') a' b'))) -> exists k : cart R N', exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ ((a' = (@vector_add N' k (f a))) /\ (b' = (@vector_add N' k (f b)))). +Axiom thm_CONVEX_HULL_CARATHEODORY_AFF_DIM : forall {N' : Type'}, forall p : (cart R N') -> Prop, (@hull (cart R N') (@convex N') p) = (@GSPEC (cart R N') (fun GEN_PVAR_4407 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4407 (exists s : (cart R N') -> Prop, exists u : (cart R N') -> R, (@FINITE (cart R N') s) /\ ((@SUBSET (cart R N') s p) /\ ((int_le (Z_of_N (@CARD (cart R N') s)) (int_add (@aff_dim N' p) (Z_of_N (NUMERAL (BIT1 0%N))))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun v : cart R N' => @percent N' (u v) v)) = y)))))) y)). +Axiom thm_CARATHEODORY_AFF_DIM : forall {N' : Type'}, forall p : (cart R N') -> Prop, (@hull (cart R N') (@convex N') p) = (@GSPEC (cart R N') (fun GEN_PVAR_4408 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4408 (exists s : (cart R N') -> Prop, (@FINITE (cart R N') s) /\ ((@SUBSET (cart R N') s p) /\ ((int_le (Z_of_N (@CARD (cart R N') s)) (int_add (@aff_dim N' p) (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (@IN (cart R N') x (@hull (cart R N') (@convex N') s))))) x)). +Axiom thm_CONVEX_HULL_CARATHEODORY : forall {N' : Type'}, forall p : (cart R N') -> Prop, (@hull (cart R N') (@convex N') p) = (@GSPEC (cart R N') (fun GEN_PVAR_4409 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4409 (exists s : (cart R N') -> Prop, exists u : (cart R N') -> R, (@FINITE (cart R N') s) /\ ((@SUBSET (cart R N') s p) /\ ((N.le (@CARD (cart R N') s) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun v : cart R N' => @percent N' (u v) v)) = y)))))) y)). +Axiom thm_CARATHEODORY : forall {N' : Type'}, forall p : (cart R N') -> Prop, (@hull (cart R N') (@convex N') p) = (@GSPEC (cart R N') (fun GEN_PVAR_4410 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4410 (exists s : (cart R N') -> Prop, (@FINITE (cart R N') s) /\ ((@SUBSET (cart R N') s p) /\ ((N.le (@CARD (cart R N') s) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) /\ (@IN (cart R N') x (@hull (cart R N') (@convex N') s))))) x)). +Axiom thm_CONVEX_HULL_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (~ (@affine_dependent N' (@UNION (cart R N') s t))) -> (@INTER (cart R N') (@hull (cart R N') (@convex N') s) (@hull (cart R N') (@convex N') t)) = (@hull (cart R N') (@convex N') (@INTER (cart R N') s t)). +Axiom thm_AFFINE_HULL_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (~ (@affine_dependent N' (@UNION (cart R N') s t))) -> (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@hull (cart R N') (@affine N') t)) = (@hull (cart R N') (@affine N') (@INTER (cart R N') s t)). +Axiom thm_AFFINE_HULL_INTERS : forall {N' : Type'}, forall s : ((cart R N') -> Prop) -> Prop, (~ (@affine_dependent N' (@UNIONS (cart R N') s))) -> (@hull (cart R N') (@affine N') (@INTERS (cart R N') s)) = (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4417 : (cart R N') -> Prop => exists t : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4417 (@IN ((cart R N') -> Prop) t s) (@hull (cart R N') (@affine N') t)))). +Axiom thm_CONVEX_HULL_INTERS : forall {N' : Type'}, forall s : ((cart R N') -> Prop) -> Prop, (~ (@affine_dependent N' (@UNIONS (cart R N') s))) -> (@hull (cart R N') (@convex N') (@INTERS (cart R N') s)) = (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4422 : (cart R N') -> Prop => exists t : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4422 (@IN ((cart R N') -> Prop) t s) (@hull (cart R N') (@convex N') t)))). +Axiom thm_IN_CONVEX_HULL_EXCHANGE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall x : cart R N', ((@IN (cart R N') a (@hull (cart R N') (@convex N') s)) /\ (@IN (cart R N') x (@hull (cart R N') (@convex N') s))) -> exists b : cart R N', (@IN (cart R N') b s) /\ (@IN (cart R N') x (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@DELETE (cart R N') s b)))). +Axiom thm_IN_CONVEX_HULL_EXCHANGE_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, forall a : cart R N', forall x : cart R N', ((~ (@affine_dependent N' s)) /\ ((@IN (cart R N') a (@hull (cart R N') (@convex N') s)) /\ ((@SUBSET (cart R N') t s) /\ ((@SUBSET (cart R N') t' s) /\ ((@IN (cart R N') x (@hull (cart R N') (@convex N') (@INSERT (cart R N') a t))) /\ (@IN (cart R N') x (@hull (cart R N') (@convex N') (@INSERT (cart R N') a t')))))))) -> @IN (cart R N') x (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@INTER (cart R N') t t'))). +Axiom thm_CONVEX_HULL_EXCHANGE_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@IN (cart R N') a (@hull (cart R N') (@convex N') s)) -> (@hull (cart R N') (@convex N') s) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4427 : (cart R N') -> Prop => exists b : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4427 (@IN (cart R N') b s) (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@DELETE (cart R N') s b)))))). +Axiom thm_CONVEX_HULL_EXCHANGE_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((~ (@affine_dependent N' s)) /\ ((@IN (cart R N') a (@hull (cart R N') (@convex N') s)) /\ ((@SUBSET (cart R N') t s) /\ (@SUBSET (cart R N') t' s)))) -> (@INTER (cart R N') (@hull (cart R N') (@convex N') (@INSERT (cart R N') a t)) (@hull (cart R N') (@convex N') (@INSERT (cart R N') a t'))) = (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@INTER (cart R N') t t'))). +Axiom thm_AFF_DIM_EQ_INTER_HYPERPLANE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@affine N' s) /\ ((@affine N' t) /\ ((@SUBSET (cart R N') t s) /\ ((int_add (@aff_dim N' t) (Z_of_N (NUMERAL (BIT1 0%N)))) = (@aff_dim N' s))))) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((@INTER (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4428 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4428 ((@dot N' a x) = b) x)) s) = t). +Axiom thm_AFF_DIM_EQ_HYPERPLANE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@aff_dim N' s) = (int_sub (Z_of_N (@dimindex N' (@UNIV N'))) (Z_of_N (NUMERAL (BIT1 0%N))))) = (exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((@hull (cart R N') (@affine N') s) = (@GSPEC (cart R N') (fun GEN_PVAR_4429 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4429 ((@dot N' a x) = b) x)))). +Axiom thm_AFF_DIM_HYPERPLANE : forall {N' : Type'}, forall a : cart R N', forall b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) -> (@aff_dim N' (@GSPEC (cart R N') (fun GEN_PVAR_4430 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4430 ((@dot N' a x) = b) x))) = (int_sub (Z_of_N (@dimindex N' (@UNIV N'))) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_BOUNDED_HYPERPLANE_EQ_TRIVIAL : forall {N' : Type'}, forall a : cart R N', forall b : R, (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_4432 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4432 ((@dot N' a x) = b) x))) = (@COND Prop (a = (@vec N' (NUMERAL 0%N))) (~ (b = (R_of_N (NUMERAL 0%N)))) ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N)))). +Axiom thm_AFFINE_HULL_FINITE_INTERSECTION_HYPERPLANES : forall {N' : Type'}, forall s : (cart R N') -> Prop, exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ (((int_add (Z_of_N (@CARD ((cart R N') -> Prop) f)) (@aff_dim N' s)) = (Z_of_N (@dimindex N' (@UNIV N')))) /\ (((@hull (cart R N') (@affine N') s) = (@INTERS (cart R N') f)) /\ (forall h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (h = (@GSPEC (cart R N') (fun GEN_PVAR_4434 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4434 ((@dot N' a x) = b) x)))))). +Axiom thm_AFFINE_HYPERPLANE_SUMS_EQ_UNIV : forall {N' : Type'}, forall a : cart R N', forall b : R, forall s : (cart R N') -> Prop, ((@affine N' s) /\ ((~ ((@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4441 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_4441 ((@dot N' a v) = b) v))) = (@EMPTY (cart R N')))) /\ (~ ((@DIFF (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4442 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_4442 ((@dot N' a v) = b) v))) = (@EMPTY (cart R N')))))) -> (@GSPEC (cart R N') (fun GEN_PVAR_4444 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4444 ((@IN (cart R N') x s) /\ (@IN (cart R N') y (@GSPEC (cart R N') (fun GEN_PVAR_4443 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_4443 ((@dot N' a v) = b) v)))) (@vector_add N' x y))) = (@UNIV (cart R N')). +Axiom thm_AFF_DIM_AFFINE_INTER_HYPERPLANE : forall {N' : Type'}, forall a : cart R N', forall b : R, forall s : (cart R N') -> Prop, (@affine N' s) -> (@aff_dim N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4448 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4448 ((@dot N' a x) = b) x)))) = (@COND Z ((@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4449 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_4449 ((@dot N' a v) = b) v))) = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (@COND Z (@SUBSET (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4450 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_4450 ((@dot N' a v) = b) v))) (@aff_dim N' s) (int_sub (@aff_dim N' s) (Z_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_AFF_DIM_LT_FULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (int_lt (@aff_dim N' s) (Z_of_N (@dimindex N' (@UNIV N')))) = (~ ((@hull (cart R N') (@affine N') s) = (@UNIV (cart R N')))). +Axiom thm_AFF_LOWDIM_SUBSET_HYPERPLANE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (int_lt (@aff_dim N' s) (Z_of_N (@dimindex N' (@UNIV N')))) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (@SUBSET (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4451 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4451 ((@dot N' a x) = b) x))). +Axiom thm_COLLINEAR_HYPERPLANE_2 : forall {N' : Type'}, forall a : cart R N', forall b : R, ((N.le (@dimindex N' (@UNIV N')) (NUMERAL (BIT0 (BIT1 0%N)))) /\ (~ (a = (@vec N' (NUMERAL 0%N))))) -> @collinear N' (@GSPEC (cart R N') (fun GEN_PVAR_4452 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4452 ((@dot N' a x) = b) x)). +Axiom thm_COLLINEAR_STANDARD_HYPERPLANE_2 : forall {N' : Type'}, forall k : N, forall b : R, (N.le (@dimindex N' (@UNIV N')) (NUMERAL (BIT0 (BIT1 0%N)))) -> @collinear N' (@GSPEC (cart R N') (fun GEN_PVAR_4453 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4453 ((@dollar R N' x k) = b) x)). +Axiom thm_ROTATION_TO_GENERAL_POSITION_EXISTS_GEN : forall {N' : Type'}, forall n : N, forall s : (cart R N') -> Prop, ((N.le n (@dimindex N' (@UNIV N'))) /\ ((@COUNTABLE (cart R N') s) /\ (@SUBSET (cart R N') s (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n)))))) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (((@det N' (@matrix N' N' f)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((forall x : cart R N', (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i n)) -> (@dollar R N' x i) = (R_of_N (NUMERAL 0%N))) -> (f x) = x) /\ (((@IMAGE (cart R N') (cart R N') f (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n)))) = (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n)))) /\ (@pairwise (cart R N') (fun x : cart R N' => fun y : cart R N' => forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i n)) -> ~ ((@dollar R N' (f x) i) = (@dollar R N' (f y) i))) s)))). +Axiom thm_ROTATION_TO_GENERAL_POSITION_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@COUNTABLE (cart R N') s) -> exists f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) /\ (((@det N' (@matrix N' N' f)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@pairwise (cart R N') (fun x : cart R N' => fun y : cart R N' => forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> ~ ((@dollar R N' (f x) i) = (@dollar R N' (f y) i))) s)). +Axiom thm_OPEN_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @_open N' (@hull (cart R N') (@convex N') s). +Axiom thm_COMPACT_CONVEX_COMBINATIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ (@compact N' t)) -> @compact N' (@GSPEC (cart R N') (fun GEN_PVAR_4472 : cart R N' => exists x : cart R N', exists u : R, exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4472 ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle u (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)))) (@vector_add N' (@percent N' (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) x) (@percent N' u y)))). +Axiom thm_COMPACT_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> @compact N' (@hull (cart R N') (@convex N') s). +Axiom thm_FINITE_IMP_COMPACT_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> @compact N' (@hull (cart R N') (@convex N') s). +Axiom thm_CONVEX_HULL_INTERIOR_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@hull (cart R N') (@convex N') (@interior N' s)) (@interior N' (@hull (cart R N') (@convex N') s)). +Axiom thm_SIMPLEX_FURTHEST_LT : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, forall x : cart R N', ((@IN (cart R N') x (@hull (cart R N') (@convex N') s)) /\ (~ (@IN (cart R N') x s))) -> exists y : cart R N', (@IN (cart R N') y (@hull (cart R N') (@convex N') s)) /\ (Rlt (@vector_norm N' (@vector_sub N' x a)) (@vector_norm N' (@vector_sub N' y a))). +Axiom thm_SIMPLEX_FURTHEST_LT_EXISTS : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, forall x : cart R N', ((@IN (cart R N') x (@hull (cart R N') (@convex N') s)) /\ (~ (@IN (cart R N') x s))) -> exists y : cart R N', (@IN (cart R N') y s) /\ (Rlt (@vector_norm N' (@vector_sub N' x a)) (@vector_norm N' (@vector_sub N' y a))). +Axiom thm_SIMPLEX_FURTHEST_LE_EXISTS : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, forall x : cart R N', (@IN (cart R N') x (@hull (cart R N') (@convex N') s)) -> exists y : cart R N', (@IN (cart R N') y s) /\ (Rle (@vector_norm N' (@vector_sub N' x a)) (@vector_norm N' (@vector_sub N' y a))). +Axiom thm_SIMPLEX_FURTHEST_LE : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists y : cart R N', (@IN (cart R N') y s) /\ (forall x : cart R N', (@IN (cart R N') x (@hull (cart R N') (@convex N') s)) -> Rle (@vector_norm N' (@vector_sub N' x a)) (@vector_norm N' (@vector_sub N' y a))). +Axiom thm_SIMPLEX_EXTREMAL_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists u : cart R N', exists v : cart R N', (@IN (cart R N') u s) /\ ((@IN (cart R N') v s) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@hull (cart R N') (@convex N') s)) /\ (@IN (cart R N') y (@hull (cart R N') (@convex N') s))) -> Rle (@vector_norm N' (@vector_sub N' x y)) (@vector_norm N' (@vector_sub N' u v)))). +Axiom thm_SIMPLEX_EXTREMAL_LE_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@FINITE (cart R N') s) /\ ((@IN (cart R N') x (@hull (cart R N') (@convex N') s)) /\ (@IN (cart R N') y (@hull (cart R N') (@convex N') s)))) -> exists u : cart R N', exists v : cart R N', (@IN (cart R N') u s) /\ ((@IN (cart R N') v s) /\ (Rle (@vector_norm N' (@vector_sub N' x y)) (@vector_norm N' (@vector_sub N' u v)))). +Axiom thm_CLOSER_POINTS_LEMMA : forall {N' : Type'}, forall y : cart R N', forall z : cart R N', (Rgt (@dot N' y z) (R_of_N (NUMERAL 0%N))) -> exists u : R, (Rlt (R_of_N (NUMERAL 0%N)) u) /\ (forall v : R, ((Rlt (R_of_N (NUMERAL 0%N)) v) /\ (Rle v u)) -> Rlt (@vector_norm N' (@vector_sub N' (@percent N' v z) y)) (@vector_norm N' y)). +Axiom thm_CLOSER_POINT_LEMMA : forall {_940322 : Type'}, forall x : cart R _940322, forall y : cart R _940322, forall z : cart R _940322, (Rgt (@dot _940322 (@vector_sub _940322 y x) (@vector_sub _940322 z x)) (R_of_N (NUMERAL 0%N))) -> exists u : R, (Rlt (R_of_N (NUMERAL 0%N)) u) /\ ((Rle u (R_of_N (NUMERAL (BIT1 0%N)))) /\ (Rlt (@distance _940322 (@pair (cart R _940322) (cart R _940322) (@vector_add _940322 x (@percent _940322 u (@vector_sub _940322 z x))) y)) (@distance _940322 (@pair (cart R _940322) (cart R _940322) x y)))). +Axiom thm_ANY_CLOSEST_POINT_DOT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall x : cart R N', forall y : cart R N', ((@convex N' s) /\ ((@closed N' s) /\ ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (forall z : cart R N', (@IN (cart R N') z s) -> Rle (@distance N' (@pair (cart R N') (cart R N') a x)) (@distance N' (@pair (cart R N') (cart R N') a z))))))) -> Rle (@dot N' (@vector_sub N' a x) (@vector_sub N' y x)) (R_of_N (NUMERAL 0%N)). +Axiom thm_ANY_CLOSEST_POINT_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall x : cart R N', forall y : cart R N', ((@convex N' s) /\ ((@closed N' s) /\ ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((forall z : cart R N', (@IN (cart R N') z s) -> Rle (@distance N' (@pair (cart R N') (cart R N') a x)) (@distance N' (@pair (cart R N') (cart R N') a z))) /\ (forall z : cart R N', (@IN (cart R N') z s) -> Rle (@distance N' (@pair (cart R N') (cart R N') a y)) (@distance N' (@pair (cart R N') (cart R N') a z)))))))) -> x = y. +Axiom thm_CLOSEST_POINT_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall x : cart R N', ((@convex N' s) /\ ((@closed N' s) /\ ((@IN (cart R N') x s) /\ (forall z : cart R N', (@IN (cart R N') z s) -> Rle (@distance N' (@pair (cart R N') (cart R N') a x)) (@distance N' (@pair (cart R N') (cart R N') a z)))))) -> x = (@closest_point N' s a). +Axiom thm_CLOSEST_POINT_DOT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall x : cart R N', ((@convex N' s) /\ ((@closed N' s) /\ (@IN (cart R N') x s))) -> Rle (@dot N' (@vector_sub N' a (@closest_point N' s a)) (@vector_sub N' x (@closest_point N' s a))) (R_of_N (NUMERAL 0%N)). +Axiom thm_CLOSEST_POINT_LT : forall {_940811 : Type'}, forall s : (cart R _940811) -> Prop, forall a : cart R _940811, forall x : cart R _940811, ((@convex _940811 s) /\ ((@closed _940811 s) /\ ((@IN (cart R _940811) x s) /\ (~ (x = (@closest_point _940811 s a)))))) -> Rlt (@distance _940811 (@pair (cart R _940811) (cart R _940811) a (@closest_point _940811 s a))) (@distance _940811 (@pair (cart R _940811) (cart R _940811) a x)). +Axiom thm_CLOSEST_POINT_LIPSCHITZ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@convex N' s) /\ ((@closed N' s) /\ (~ (s = (@EMPTY (cart R N')))))) -> Rle (@distance N' (@pair (cart R N') (cart R N') (@closest_point N' s x) (@closest_point N' s y))) (@distance N' (@pair (cart R N') (cart R N') x y)). +Axiom thm_CONTINUOUS_AT_CLOSEST_POINT : forall {_941014 : Type'}, forall s : (cart R _941014) -> Prop, forall x : cart R _941014, ((@convex _941014 s) /\ ((@closed _941014 s) /\ (~ (s = (@EMPTY (cart R _941014)))))) -> @continuous _941014 (cart R _941014) (@closest_point _941014 s) (@_at _941014 x). +Axiom thm_CONTINUOUS_ON_CLOSEST_POINT : forall {_941029 : Type'}, forall s : (cart R _941029) -> Prop, forall t : (cart R _941029) -> Prop, ((@convex _941029 s) /\ ((@closed _941029 s) /\ (~ (s = (@EMPTY (cart R _941029)))))) -> @continuous_on _941029 _941029 (@closest_point _941029 s) t. +Axiom thm_CLOSEST_POINT_TRANSLATION : forall {N' : Type'} (x : cart R N'), forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ ((@closed N' s) /\ (~ (s = (@EMPTY (cart R N')))))) -> (@closest_point N' (@IMAGE (cart R N') (cart R N') (fun x' : cart R N' => @vector_add N' a x') s) (@vector_add N' a x)) = (@vector_add N' a (@closest_point N' s x)). +Axiom thm_ANY_CLOSEST_POINT_AFFINE_ORTHOGONAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@affine N' s) /\ ((@IN (cart R N') b s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rle (@distance N' (@pair (cart R N') (cart R N') a b)) (@distance N' (@pair (cart R N') (cart R N') a x))))) -> forall x : cart R N', (@IN (cart R N') x s) -> @orthogonal N' (@vector_sub N' x b) (@vector_sub N' a b). +Axiom thm_ORTHOGONAL_ANY_CLOSEST_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@IN (cart R N') b s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @orthogonal N' (@vector_sub N' x b) (@vector_sub N' a b))) -> forall x : cart R N', (@IN (cart R N') x s) -> Rle (@distance N' (@pair (cart R N') (cart R N') a b)) (@distance N' (@pair (cart R N') (cart R N') a x)). +Axiom thm_CLOSEST_POINT_AFFINE_ORTHOGONAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall x : cart R N', ((@affine N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@IN (cart R N') x s))) -> @orthogonal N' (@vector_sub N' x (@closest_point N' s a)) (@vector_sub N' a (@closest_point N' s a)). +Axiom thm_CLOSEST_POINT_AFFINE_ORTHOGONAL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@affine N' s) /\ (@IN (cart R N') b s)) -> ((@closest_point N' s a) = b) = (forall x : cart R N', (@IN (cart R N') x s) -> @orthogonal N' (@vector_sub N' x b) (@vector_sub N' a b)). +Axiom thm_CLOSEST_POINT_SUBSPACE_ORTHOGONAL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@subspace N' s) -> ((@closest_point N' s a) = b) = ((@IN (cart R N') b s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @orthogonal N' (@vector_sub N' a b) x)). +Axiom thm_CLOSEST_POINT_SUBSPACE_ORTHOGONAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@subspace N' s) /\ (@IN (cart R N') b s)) -> @orthogonal N' (@vector_sub N' a (@closest_point N' s a)) b. +Axiom thm_LINEAR_CLOSEST_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> @linear N' N' (@closest_point N' s). +Axiom thm_SELF_ADJOINT_CLOSEST_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> (@adjoint N' N' (@closest_point N' s)) = (@closest_point N' s). +Axiom thm_CLOSEST_POINT_IDEMPOTENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> (@o (cart R N') (cart R N') (cart R N') (@closest_point N' s) (@closest_point N' s)) = (@closest_point N' s). +Axiom thm_MATRIX_INV_PROJECTION_IMAGE_ALT : forall {M N' : Type'}, forall A : cart (cart R M) N', forall x : cart R N', (@matrix_vector_mul N' N' (@matrix_mul N' M N' A (@matrix_inv M N' A)) x) = (@closest_point N' (@IMAGE (cart R M) (cart R N') (fun x' : cart R M => @matrix_vector_mul N' M A x') (@UNIV (cart R M))) x). +Axiom thm_MATRIX_INV_PROJECTION_IMAGE : forall {M N' : Type'}, forall A : cart (cart R M) N', (@matrix_mul N' M N' A (@matrix_inv M N' A)) = (@matrix N' N' (@closest_point N' (@IMAGE (cart R M) (cart R N') (fun x : cart R M => @matrix_vector_mul N' M A x) (@UNIV (cart R M))))). +Axiom thm_SEPARATING_HYPERPLANE_AFFINE_AFFINE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@affine N' s) /\ ((@affine N' t) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (@DISJOINT (cart R N') s t))))) -> exists a : cart R N', exists b : R, exists c : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((Rlt b c) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (@dot N' a x) = b) /\ (forall x : cart R N', (@IN (cart R N') x t) -> (@dot N' a x) = c))). +Axiom thm_SEPARATING_HYPERPLANE_AFFINE_HULLS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (@DISJOINT (cart R N') (@hull (cart R N') (@affine N') s) (@hull (cart R N') (@affine N') t)))) -> exists a : cart R N', exists b : R, exists c : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((Rlt b c) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (@dot N' a x) = b) /\ (forall x : cart R N', (@IN (cart R N') x t) -> (@dot N' a x) = c))). +Axiom thm_SUPPORTING_HYPERPLANE_COMPACT_POINT_SUP : forall {N' : Type'}, forall a : cart R N', forall c : cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists b : R, exists y : cart R N', (@IN (cart R N') y s) /\ (((@dot N' a (@vector_sub N' y c)) = b) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rle (@dot N' a (@vector_sub N' x c)) b)). +Axiom thm_SUPPORTING_HYPERPLANE_COMPACT_POINT_INF : forall {N' : Type'}, forall a : cart R N', forall c : cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists b : R, exists y : cart R N', (@IN (cart R N') y s) /\ (((@dot N' a (@vector_sub N' y c)) = b) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rge (@dot N' a (@vector_sub N' x c)) b)). +Axiom thm_SUPPORTING_HYPERPLANE_CLOSED_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall z : cart R N', ((@convex N' s) /\ ((@closed N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (@IN (cart R N') z s))))) -> exists a : cart R N', exists b : R, exists y : cart R N', (Rlt (@dot N' a z) b) /\ ((@IN (cart R N') y s) /\ (((@dot N' a y) = b) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rge (@dot N' a x) b))). +Axiom thm_SEPARATING_HYPERPLANE_CLOSED_POINT_INSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall z : cart R N', ((@convex N' s) /\ ((@closed N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (@IN (cart R N') z s))))) -> exists a : cart R N', exists b : R, (@IN (cart R N') a s) /\ ((Rlt (@dot N' (@vector_sub N' a z) z) b) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rgt (@dot N' (@vector_sub N' a z) x) b)). +Axiom thm_SEPARATING_HYPERPLANE_CLOSED_0_INSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@closed N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s))))) -> exists a : cart R N', exists b : R, (@IN (cart R N') a s) /\ ((~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) b) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rgt (@dot N' a x) b))). +Axiom thm_SEPARATING_HYPERPLANE_CLOSED_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall z : cart R N', ((@convex N' s) /\ ((@closed N' s) /\ (~ (@IN (cart R N') z s)))) -> exists a : cart R N', exists b : R, (Rlt (@dot N' a z) b) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rgt (@dot N' a x) b). +Axiom thm_SEPARATING_HYPERPLANE_CLOSED_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@closed N' s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s)))) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) b) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rgt (@dot N' a x) b)). +Axiom thm_SEPARATING_HYPERPLANE_CLOSED_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@closed N' s) /\ ((@convex N' t) /\ ((@compact N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (@DISJOINT (cart R N') s t)))))) -> exists a : cart R N', exists b : R, (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (@dot N' a x) b) /\ (forall x : cart R N', (@IN (cart R N') x t) -> Rgt (@dot N' a x) b). +Axiom thm_SEPARATING_HYPERPLANE_COMPACT_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@compact N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@convex N' t) /\ ((@closed N' t) /\ (@DISJOINT (cart R N') s t)))))) -> exists a : cart R N', exists b : R, (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (@dot N' a x) b) /\ (forall x : cart R N', (@IN (cart R N') x t) -> Rgt (@dot N' a x) b). +Axiom thm_SEPARATING_HYPERPLANE_COMPACT_CLOSED_NONZERO : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@compact N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@convex N' t) /\ ((@closed N' t) /\ (@DISJOINT (cart R N') s t)))))) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rlt (@dot N' a x) b) /\ (forall x : cart R N', (@IN (cart R N') x t) -> Rgt (@dot N' a x) b)). +Axiom thm_SEPARATING_HYPERPLANE_COMPACT_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@compact N' s) /\ ((@convex N' t) /\ ((@compact N' t) /\ (@DISJOINT (cart R N') s t))))) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rlt (@dot N' a x) b) /\ (forall x : cart R N', (@IN (cart R N') x t) -> Rgt (@dot N' a x) b)). +Axiom thm_SEPARATING_HYPERPLANE_SET_0_INSPAN : forall {_944388 N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s)))) -> exists a : cart R N', exists b : _944388, (@IN (cart R N') a (@span N' s)) /\ ((~ (a = (@vec N' (NUMERAL 0%N)))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (@dot N' a x))). +Axiom thm_SEPARATING_HYPERPLANE_SET_POINT_INAFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall z : cart R N', ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (@IN (cart R N') z s)))) -> exists a : cart R N', exists b : R, (@IN (cart R N') (@vector_add N' z a) (@hull (cart R N') (@affine N') (@INSERT (cart R N') z s))) /\ ((~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((Rle (@dot N' a z) b) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rge (@dot N' a x) b))). +Axiom thm_SEPARATING_HYPERPLANE_SET_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s))) -> exists a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (@dot N' a x)). +Axiom thm_SEPARATING_HYPERPLANE_SETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@convex N' t) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (@DISJOINT (cart R N') s t))))) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (@dot N' a x) b) /\ (forall x : cart R N', (@IN (cart R N') x t) -> Rge (@dot N' a x) b)). +Axiom thm_UNBOUNDED_COMPLEMENT_COMPONENT_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@convex N' s) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)))) -> ~ (@bounded N' c). +Axiom thm_UNBOUNDED_COMPLEMENT_CONVEX : forall {N' : Type'}, forall c : (cart R N') -> Prop, ((@convex N' c) /\ (~ (c = (@UNIV (cart R N'))))) -> ~ (@bounded N' (@DIFF (cart R N') (@UNIV (cart R N')) c)). +Axiom thm_COMPONENTS_CONVEX_COMPLEMENT_CONTAINS_HALFSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@convex N' s) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)))) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4486 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4486 (Rle (@dot N' a x) b) x)) c). +Axiom thm_FINITE_COMPONENTS_COMPLEMENT_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @FINITE ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)). +Axiom thm_CARD_COMPONENTS_COMPLEMENT_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> N.le (@CARD ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) (NUMERAL (BIT0 (BIT1 0%N))). +Axiom thm_CONVEX_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @convex N' (@closure N' s). +Axiom thm_CONVEX_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @convex N' (@interior N' s). +Axiom thm_CONVEX_HULL_CLOSURE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@hull (cart R N') (@convex N') (@closure N' s)) (@closure N' (@hull (cart R N') (@convex N') s)). +Axiom thm_CONVEX_HULL_CLOSURE : forall {_945869 : Type'}, forall s : (cart R _945869) -> Prop, (@bounded _945869 s) -> (@hull (cart R _945869) (@convex _945869) (@closure _945869 s)) = (@closure _945869 (@hull (cart R _945869) (@convex _945869) s)). +Axiom thm_SUPPORTING_HYPERPLANE_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall z : cart R N', ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (@IN (cart R N') z s)))) -> exists a : cart R N', exists b : R, exists y : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((Rle (@dot N' a z) b) /\ ((@IN (cart R N') y (@closure N' s)) /\ (((@dot N' a y) = b) /\ (forall x : cart R N', (@IN (cart R N') x (@closure N' s)) -> Rge (@dot N' a x) b)))). +Axiom thm_CONVEX_ON_SETDIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@convex N' t) -> @convex_on N' (fun x : cart R N' => @setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) t)) s. +Axiom thm_CONVEX_HULL_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@hull (cart R N') (@convex N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@hull (cart R N') (@convex N') s)). +Axiom thm_CONVEX_HULL_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@hull (cart R N') (@convex N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) (@hull (cart R N') (@convex N') s)). +Axiom thm_CONVEX_HULL_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall c : R, (@hull (cart R N') (@convex N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' c x) a) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' c x) a) (@hull (cart R N') (@convex N') s)). +Axiom thm_CONVEX_HALFSPACE_INTERSECTION : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closed N' s) /\ (@convex N' s)) -> s = (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4502 : (cart R N') -> Prop => exists h : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4502 ((@SUBSET (cart R N') s h) /\ (exists a : cart R N', exists b : R, h = (@GSPEC (cart R N') (fun GEN_PVAR_4501 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4501 (Rle (@dot N' a x) b) x)))) h))). +Axiom thm_polar_dual : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polar_dual N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_4503 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4503 (forall u : cart R N', (@IN (cart R N') u s) -> Rge (@dot N' u x) (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) x)). +Axiom thm_POLAR_DUAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polar_dual N' s) = (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4506 : (cart R N') -> Prop => exists u : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4506 (@IN (cart R N') u s) (@GSPEC (cart R N') (fun GEN_PVAR_4505 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4505 (Rge (@dot N' u x) (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) x))))). +Axiom thm_CLOSED_POLAR_DUAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, @closed N' (@polar_dual N' s). +Axiom thm_CONVEX_POLAR_DUAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, @convex N' (@polar_dual N' s). +Axiom thm_POLAR_DUAL_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, @IN (cart R N') (@vec N' (NUMERAL 0%N)) (@polar_dual N' s). +Axiom thm_POLAR_DUAL_EMPTY : forall {N' : Type'}, (@polar_dual N' (@EMPTY (cart R N'))) = (@UNIV (cart R N')). +Axiom thm_POLAR_DUAL_SING : forall {N' : Type'}, (@polar_dual N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))) = (@UNIV (cart R N')). +Axiom thm_POLAR_DUAL_UNIV : forall {N' : Type'}, (@polar_dual N' (@UNIV (cart R N'))) = (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N'))). +Axiom thm_POLAR_DUAL_ANTIMONO : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) -> @SUBSET (cart R N') (@polar_dual N' t) (@polar_dual N' s). +Axiom thm_POLAR_DUAL_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@polar_dual N' (@UNION (cart R N') s t)) = (@INTER (cart R N') (@polar_dual N' s) (@polar_dual N' t)). +Axiom thm_POLAR_DUAL_SCALING : forall {N' : Type'}, forall a : R, forall s : (cart R N') -> Prop, (~ (a = (R_of_N (NUMERAL 0%N)))) -> (@polar_dual N' (@GSPEC (cart R N') (fun GEN_PVAR_4507 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4507 (@IN (cart R N') x s) (@percent N' a x)))) = (@GSPEC (cart R N') (fun GEN_PVAR_4508 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4508 (@IN (cart R N') x (@polar_dual N' s)) (@percent N' (Rinv a) x))). +Axiom thm_POLAR_DUAL_UNIT_CBALL : forall {N' : Type'}, (@polar_dual N' (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) = (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_POLAR_DUAL_CBALL : forall {N' : Type'}, forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> (@polar_dual N' (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) = (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (Rinv r))). +Axiom thm_POLAR_DUAL_POLAR_DUAL_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polar_dual N' (@polar_dual N' s)) = (@closure N' (@hull (cart R N') (@convex N') (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) s))). +Axiom thm_POLAR_DUAL_POLAR_DUAL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@polar_dual N' (@polar_dual N' s)) = s) = ((@closed N' s) /\ ((@convex N' s) /\ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s))). +Axiom thm_POLAR_DUAL_POLAR_DUAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closed N' s) /\ ((@convex N' s) /\ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s))) -> (@polar_dual N' (@polar_dual N' s)) = s. +Axiom thm_RADON_EX_LEMMA : forall {N' : Type'}, forall c : (cart R N') -> Prop, ((@FINITE (cart R N') c) /\ (@affine_dependent N' c)) -> exists u : (cart R N') -> R, ((@sum (cart R N') c u) = (R_of_N (NUMERAL 0%N))) /\ ((exists v : cart R N', (@IN (cart R N') v c) /\ (~ ((u v) = (R_of_N (NUMERAL 0%N))))) /\ ((@vsum (cart R N') N' c (fun v : cart R N' => @percent N' (u v) v)) = (@vec N' (NUMERAL 0%N)))). +Axiom thm_RADON_S_LEMMA : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, ((@FINITE A s) /\ ((@sum A s f) = (R_of_N (NUMERAL 0%N)))) -> (@sum A (@GSPEC A (fun GEN_PVAR_4516 : A => exists x : A, @SETSPEC A GEN_PVAR_4516 ((@IN A x s) /\ (Rlt (R_of_N (NUMERAL 0%N)) (f x))) x)) f) = (Ropp (@sum A (@GSPEC A (fun GEN_PVAR_4517 : A => exists x : A, @SETSPEC A GEN_PVAR_4517 ((@IN A x s) /\ (Rlt (f x) (R_of_N (NUMERAL 0%N)))) x)) f)). +Axiom thm_RADON_V_LEMMA : forall {A N' : Type'}, forall s : A -> Prop, forall f : A -> cart R N', forall g : A -> R, ((@FINITE A s) /\ (((@vsum A N' s f) = (@vec N' (NUMERAL 0%N))) /\ (forall x : A, ((g x) = (R_of_N (NUMERAL 0%N))) -> (f x) = (@vec N' (NUMERAL 0%N))))) -> (@vsum A N' (@GSPEC A (fun GEN_PVAR_4524 : A => exists x : A, @SETSPEC A GEN_PVAR_4524 ((@IN A x s) /\ (Rlt (R_of_N (NUMERAL 0%N)) (g x))) x)) f) = (@vector_neg N' (@vsum A N' (@GSPEC A (fun GEN_PVAR_4525 : A => exists x : A, @SETSPEC A GEN_PVAR_4525 ((@IN A x s) /\ (Rlt (g x) (R_of_N (NUMERAL 0%N)))) x)) f)). +Axiom thm_RADON_PARTITION : forall {N' : Type'}, forall c : (cart R N') -> Prop, ((@FINITE (cart R N') c) /\ (@affine_dependent N' c)) -> exists m : (cart R N') -> Prop, exists p : (cart R N') -> Prop, (@DISJOINT (cart R N') m p) /\ (((@UNION (cart R N') m p) = c) /\ (~ (@DISJOINT (cart R N') (@hull (cart R N') (@convex N') m) (@hull (cart R N') (@convex N') p)))). +Axiom thm_RADON : forall {N' : Type'}, forall c : (cart R N') -> Prop, (@affine_dependent N' c) -> exists m : (cart R N') -> Prop, exists p : (cart R N') -> Prop, (@SUBSET (cart R N') m c) /\ ((@SUBSET (cart R N') p c) /\ ((@DISJOINT (cart R N') m p) /\ (~ (@DISJOINT (cart R N') (@hull (cart R N') (@convex N') m) (@hull (cart R N') (@convex N') p))))). +Axiom thm_HELLY_INDUCT : forall {N' : Type'}, forall n : N, forall f : ((cart R N') -> Prop) -> Prop, ((@HAS_SIZE ((cart R N') -> Prop) f n) /\ ((N.ge n (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @convex N' s) /\ (forall t : ((cart R N') -> Prop) -> Prop, ((@SUBSET ((cart R N') -> Prop) t f) /\ ((@CARD ((cart R N') -> Prop) t) = (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N))))) -> ~ ((@INTERS (cart R N') t) = (@EMPTY (cart R N'))))))) -> ~ ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))). +Axiom thm_HELLY : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ ((N.ge (@CARD ((cart R N') -> Prop) f) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @convex N' s) /\ (forall t : ((cart R N') -> Prop) -> Prop, ((@SUBSET ((cart R N') -> Prop) t f) /\ ((@CARD ((cart R N') -> Prop) t) = (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N))))) -> ~ ((@INTERS (cart R N') t) = (@EMPTY (cart R N'))))))) -> ~ ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))). +Axiom thm_HELLY_ALT : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @convex N' s) /\ (forall t : ((cart R N') -> Prop) -> Prop, ((@SUBSET ((cart R N') -> Prop) t f) /\ (N.le (@CARD ((cart R N') -> Prop) t) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N))))) -> ~ ((@INTERS (cart R N') t) = (@EMPTY (cart R N')))))) -> ~ ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))). +Axiom thm_HELLY_CLOSED_ALT : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@convex N' s) /\ (@closed N' s)) /\ ((exists s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) /\ (@bounded N' s)) /\ (forall t : ((cart R N') -> Prop) -> Prop, ((@SUBSET ((cart R N') -> Prop) t f) /\ ((@FINITE ((cart R N') -> Prop) t) /\ (N.le (@CARD ((cart R N') -> Prop) t) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))))) -> ~ ((@INTERS (cart R N') t) = (@EMPTY (cart R N')))))) -> ~ ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))). +Axiom thm_HELLY_COMPACT_ALT : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@convex N' s) /\ (@compact N' s)) /\ (forall t : ((cart R N') -> Prop) -> Prop, ((@SUBSET ((cart R N') -> Prop) t f) /\ ((@FINITE ((cart R N') -> Prop) t) /\ (N.le (@CARD ((cart R N') -> Prop) t) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))))) -> ~ ((@INTERS (cart R N') t) = (@EMPTY (cart R N'))))) -> ~ ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))). +Axiom thm_HELLY_CLOSED : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, (((@FINITE ((cart R N') -> Prop) f) -> N.ge (@CARD ((cart R N') -> Prop) f) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@convex N' s) /\ (@closed N' s)) /\ ((exists s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) /\ (@bounded N' s)) /\ (forall t : ((cart R N') -> Prop) -> Prop, ((@SUBSET ((cart R N') -> Prop) t f) /\ ((@FINITE ((cart R N') -> Prop) t) /\ ((@CARD ((cart R N') -> Prop) t) = (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))))) -> ~ ((@INTERS (cart R N') t) = (@EMPTY (cart R N'))))))) -> ~ ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))). +Axiom thm_HELLY_COMPACT : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, (((@FINITE ((cart R N') -> Prop) f) -> N.ge (@CARD ((cart R N') -> Prop) f) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@convex N' s) /\ (@compact N' s)) /\ (forall t : ((cart R N') -> Prop) -> Prop, ((@SUBSET ((cart R N') -> Prop) t f) /\ ((@FINITE ((cart R N') -> Prop) t) /\ ((@CARD ((cart R N') -> Prop) t) = (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))))) -> ~ ((@INTERS (cart R N') t) = (@EMPTY (cart R N')))))) -> ~ ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))). +Axiom thm_KIRCHBERGER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@compact N' t) /\ (forall s' : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((@SUBSET (cart R N') s' s) /\ ((@SUBSET (cart R N') t' t) /\ ((@FINITE (cart R N') s') /\ ((@FINITE (cart R N') t') /\ (N.le (N.add (@CARD (cart R N') s') (@CARD (cart R N') t')) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT0 (BIT1 0%N))))))))) -> exists a : cart R N', exists b : R, (forall x : cart R N', (@IN (cart R N') x s') -> Rlt (@dot N' a x) b) /\ (forall x : cart R N', (@IN (cart R N') x t') -> Rgt (@dot N' a x) b)))) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rlt (@dot N' a x) b) /\ (forall x : cart R N', (@IN (cart R N') x t) -> Rgt (@dot N' a x) b)). +Axiom thm_CONVEX_HULL_LINEAR_IMAGE : forall {_950869 _950888 : Type'}, forall f : (cart R _950888) -> cart R _950869, forall s : (cart R _950888) -> Prop, (@linear _950888 _950869 f) -> (@hull (cart R _950869) (@convex _950869) (@IMAGE (cart R _950888) (cart R _950869) f s)) = (@IMAGE (cart R _950888) (cart R _950869) f (@hull (cart R _950888) (@convex _950888) s)). +Axiom thm_IN_CONVEX_HULL_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall x : cart R M, ((@linear M N' f) /\ (@IN (cart R M) x (@hull (cart R M) (@convex M) s))) -> @IN (cart R N') (f x) (@hull (cart R N') (@convex N') (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_CONIC_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@conic N' s) -> @conic N' (@hull (cart R N') (@convex N') s). +Axiom thm_CONIC_HULL_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@hull (cart R N') (@conic N') (@hull (cart R N') (@convex N') s)) = (@hull (cart R N') (@convex N') (@hull (cart R N') (@conic N') s)). +Axiom thm_IS_INTERVAL_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' s) -> @convex N' s. +Axiom thm_IS_INTERVAL_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' s) -> @connected N' s. +Axiom thm_IS_INTERVAL_CONNECTED_1 : forall s : (cart R unit) -> Prop, (@is_interval unit s) = (@connected unit s). +Axiom thm_CONVEX_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@convex N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (@convex N' (@open_interval N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_CONNECTED_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @connected N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', @connected N' (@open_interval N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_LIMIT_POINT_OF_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', forall x : cart R N', (@limit_point_of N' x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = ((~ (a = b)) /\ (@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))))) /\ (forall a : cart R N', forall b : cart R N', forall x : cart R N', (@limit_point_of N' x (@open_interval N' (@pair (cart R N') (cart R N') a b))) = ((~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))) /\ (@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))))). +Axiom thm_CONVEX_CONNECTED_COLLINEAR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@collinear N' s) -> (@convex N' s) = (@connected N' s). +Axiom thm_CONVEX_EQ_CONVEX_LINE_INTERSECTION : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) = (forall a : cart R N', forall b : cart R N', @convex N' (@INTER (cart R N') s (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))))). +Axiom thm_CONVEX_EQ_CONNECTED_LINE_INTERSECTION : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) = (forall a : cart R N', forall b : cart R N', @connected N' (@INTER (cart R N') s (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))))). +Axiom thm_IS_INTERVAL_CONVEX_1 : forall s : (cart R unit) -> Prop, (@is_interval unit s) = (@convex unit s). +Axiom thm_CONVEX_CONNECTED_1 : forall s : (cart R unit) -> Prop, (@convex unit s) = (@connected unit s). +Axiom thm_CONNECTED_CONVEX_1 : forall s : (cart R unit) -> Prop, (@connected unit s) = (@convex unit s). +Axiom thm_CONNECTED_COMPACT_INTERVAL_1 : forall s : (cart R unit) -> Prop, ((@connected unit s) /\ (@compact unit s)) = (exists a : cart R unit, exists b : cart R unit, s = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_CONVEX_CONNECTED_1_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@convex N' s) = (@connected N' s). +Axiom thm_CONNECTED_CONVEX_1_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@connected N' s) = (@convex N' s). +Axiom thm_COMPACT_CONVEX_COLLINEAR_SEGMENT_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R N')))) /\ ((@compact N' s) /\ ((@connected N' s) /\ (@collinear N' s)))) -> exists a : cart R N', exists b : cart R N', s = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_COMPACT_CONVEX_COLLINEAR_SEGMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R N')))) /\ ((@compact N' s) /\ ((@convex N' s) /\ (@collinear N' s)))) -> exists a : cart R N', exists b : cart R N', s = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_IN_CONVEX_HULL_INTERVAL_1 : forall s : (cart R unit) -> Prop, forall x : cart R unit, (@IN (cart R unit) x (@hull (cart R unit) (@convex unit) s)) = (exists a : cart R unit, exists b : cart R unit, (@IN (cart R unit) a s) /\ ((@IN (cart R unit) b s) /\ (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))). +Axiom thm_IN_CONVEX_HULL_SEGMENT_1 : forall s : (cart R unit) -> Prop, forall x : cart R unit, (@IN (cart R unit) x (@hull (cart R unit) (@convex unit) s)) = (exists a : cart R unit, exists b : cart R unit, (@IN (cart R unit) a s) /\ ((@IN (cart R unit) b s) /\ (@IN (cart R unit) x (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))). +Axiom thm_JUNG : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall r : R, ((@bounded N' s) /\ (Rle (Rmult (sqrt (Rdiv (R_of_N (@dimindex N' (@UNIV N'))) (R_of_N (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) (NUMERAL (BIT0 (BIT1 0%N))))))) (@diameter N' s)) r)) -> exists a : cart R N', @SUBSET (cart R N') s (@cball N' (@pair (cart R N') R a r)). +Axiom thm_KIRSZBRAUN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall B : R, ((Rle (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y))))) -> exists g : (cart R M) -> cart R N', (forall x : cart R M, forall y : cart R M, Rle (@vector_norm N' (@vector_sub N' (g x) (g y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)). +Axiom thm_LIPSCHITZ_EXTENSION_EXISTS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) -> exists g : (cart R M) -> cart R N', (exists B : R, forall x : cart R M, forall y : cart R M, Rle (@vector_norm N' (@vector_sub N' (g x) (g y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)). +Axiom thm_DUGUNDJI : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : (cart R N') -> Prop, forall u : (cart R M) -> Prop, forall s : (cart R M) -> Prop, ((@convex N' c) /\ ((~ (c = (@EMPTY (cart R N')))) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s) /\ ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) c))))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g u) c) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))). +Axiom thm_TIETZE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall s : (cart R M) -> Prop, forall B : R, ((Rle (R_of_N (NUMERAL 0%N)) B) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s) /\ ((@continuous_on M N' f s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f x)) B)))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g u) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)) /\ (forall x : cart R M, (@IN (cart R M) x u) -> Rle (@vector_norm N' (g x)) B)). +Axiom thm_TIETZE_CLOSED_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall s : (cart R M) -> Prop, forall a : cart R N', forall b : cart R N', ((~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s) /\ ((@continuous_on M N' f s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @IN (cart R N') (f x) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g u) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)) /\ (forall x : cart R M, (@IN (cart R M) x u) -> @IN (cart R N') (g x) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_TIETZE_CLOSED_INTERVAL_1 : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall a : cart R unit, forall b : cart R unit, ((Rle (drop a) (drop b)) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@continuous_on N' unit f s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @IN (cart R unit) (f x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))))) -> exists g : (cart R N') -> cart R unit, (@continuous_on N' unit g u) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (g x) = (f x)) /\ (forall x : cart R N', (@IN (cart R N') x u) -> @IN (cart R unit) (g x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))). +Axiom thm_TIETZE_OPEN_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall s : (cart R M) -> Prop, forall a : cart R N', forall b : cart R N', ((~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s) /\ ((@continuous_on M N' f s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @IN (cart R N') (f x) (@open_interval N' (@pair (cart R N') (cart R N') a b)))))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g u) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)) /\ (forall x : cart R M, (@IN (cart R M) x u) -> @IN (cart R N') (g x) (@open_interval N' (@pair (cart R N') (cart R N') a b)))). +Axiom thm_TIETZE_OPEN_INTERVAL_1 : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall a : cart R unit, forall b : cart R unit, ((Rlt (drop a) (drop b)) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@continuous_on N' unit f s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @IN (cart R unit) (f x) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)))))) -> exists g : (cart R N') -> cart R unit, (@continuous_on N' unit g u) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (g x) = (f x)) /\ (forall x : cart R N', (@IN (cart R N') x u) -> @IN (cart R unit) (g x) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)))). +Axiom thm_TIETZE_UNBOUNDED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall s : (cart R M) -> Prop, ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s) /\ (@continuous_on M N' f s)) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g u) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)). +Axiom thm_convex_cone : forall {_959290 : Type'}, forall s : (cart R _959290) -> Prop, (@convex_cone _959290 s) = ((~ (s = (@EMPTY (cart R _959290)))) /\ ((@convex _959290 s) /\ (@conic _959290 s))). +Axiom thm_CONVEX_CONE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex_cone N' s) = ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) s) /\ ((forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> @IN (cart R N') (@vector_add N' x y) s) /\ (forall x : cart R N', forall c : R, ((@IN (cart R N') x s) /\ (Rle (R_of_N (NUMERAL 0%N)) c)) -> @IN (cart R N') (@percent N' c x) s))). +Axiom thm_CONVEX_CONE_ADD : forall {_959431 : Type'}, forall s : (cart R _959431) -> Prop, forall x : cart R _959431, forall y : cart R _959431, ((@convex_cone _959431 s) /\ ((@IN (cart R _959431) x s) /\ (@IN (cart R _959431) y s))) -> @IN (cart R _959431) (@vector_add _959431 x y) s. +Axiom thm_CONVEX_CONE_MUL : forall {_959453 : Type'}, forall s : (cart R _959453) -> Prop, forall c : R, forall x : cart R _959453, ((@convex_cone _959453 s) /\ ((Rle (R_of_N (NUMERAL 0%N)) c) /\ (@IN (cart R _959453) x s))) -> @IN (cart R _959453) (@percent _959453 c x) s. +Axiom thm_CONVEX_CONE_NONEMPTY : forall {_959478 : Type'}, forall s : (cart R _959478) -> Prop, (@convex_cone _959478 s) -> ~ (s = (@EMPTY (cart R _959478))). +Axiom thm_CONVEX_CONE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@convex_cone M s) /\ (@linear M N' f)) -> @convex_cone N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_CONVEX_CONE_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@convex_cone N' (@IMAGE (cart R M) (cart R N') f s)) = (@convex_cone M s). +Axiom thm_CONVEX_CONE_HALFSPACE_GE : forall {_959576 : Type'}, forall a : cart R _959576, @convex_cone _959576 (@GSPEC (cart R _959576) (fun GEN_PVAR_4571 : cart R _959576 => exists x : cart R _959576, @SETSPEC (cart R _959576) GEN_PVAR_4571 (Rge (@dot _959576 a x) (R_of_N (NUMERAL 0%N))) x)). +Axiom thm_CONVEX_CONE_HALFSPACE_LE : forall {_959618 : Type'}, forall a : cart R _959618, @convex_cone _959618 (@GSPEC (cart R _959618) (fun GEN_PVAR_4572 : cart R _959618 => exists x : cart R _959618, @SETSPEC (cart R _959618) GEN_PVAR_4572 (Rle (@dot _959618 a x) (R_of_N (NUMERAL 0%N))) x)). +Axiom thm_CONVEX_CONE_CONTAINS_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex_cone N' s) -> @IN (cart R N') (@vec N' (NUMERAL 0%N)) s. +Axiom thm_CONVEX_CONE_INTERS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @convex_cone N' s) -> @convex_cone N' (@INTERS (cart R N') f). +Axiom thm_CONVEX_CONE_CONVEX_CONE_HULL : forall {_959670 : Type'}, forall s : (cart R _959670) -> Prop, @convex_cone _959670 (@hull (cart R _959670) (@convex_cone _959670) s). +Axiom thm_CONVEX_CONVEX_CONE_HULL : forall {_959681 : Type'}, forall s : (cart R _959681) -> Prop, @convex _959681 (@hull (cart R _959681) (@convex_cone _959681) s). +Axiom thm_CONIC_CONVEX_CONE_HULL : forall {_959692 : Type'}, forall s : (cart R _959692) -> Prop, @conic _959692 (@hull (cart R _959692) (@convex_cone _959692) s). +Axiom thm_CONVEX_CONE_HULL_NONEMPTY : forall {_959705 : Type'}, forall s : (cart R _959705) -> Prop, ~ ((@hull (cart R _959705) (@convex_cone _959705) s) = (@EMPTY (cart R _959705))). +Axiom thm_CONVEX_CONE_HULL_CONTAINS_0 : forall {_959720 : Type'}, forall s : (cart R _959720) -> Prop, @IN (cart R _959720) (@vec _959720 (NUMERAL 0%N)) (@hull (cart R _959720) (@convex_cone _959720) s). +Axiom thm_CONVEX_CONE_HULL_ADD : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@hull (cart R N') (@convex_cone N') s)) /\ (@IN (cart R N') y (@hull (cart R N') (@convex_cone N') s))) -> @IN (cart R N') (@vector_add N' x y) (@hull (cart R N') (@convex_cone N') s). +Axiom thm_CONVEX_CONE_HULL_MUL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, forall x : cart R N', ((Rle (R_of_N (NUMERAL 0%N)) c) /\ (@IN (cart R N') x (@hull (cart R N') (@convex_cone N') s))) -> @IN (cart R N') (@percent N' c x) (@hull (cart R N') (@convex_cone N') s). +Axiom thm_CONVEX_CONE_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex_cone N' s) /\ (@convex_cone N' t)) -> @convex_cone N' (@GSPEC (cart R N') (fun GEN_PVAR_4573 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4573 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_CONVEX_CONE_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@convex_cone M s) /\ (@convex_cone N' t)) -> @convex_cone (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_CONVEX_CONE_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@convex_cone (finite_sum M N') (@PCROSS R M N' s t)) = ((@convex_cone M s) /\ (@convex_cone N' t)). +Axiom thm_CONVEX_CONE_HULL_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@hull (cart R N') (@convex_cone N') (@UNION (cart R N') s t)) = (@GSPEC (cart R N') (fun GEN_PVAR_4574 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4574 ((@IN (cart R N') x (@hull (cart R N') (@convex_cone N') s)) /\ (@IN (cart R N') y (@hull (cart R N') (@convex_cone N') t))) (@vector_add N' x y))). +Axiom thm_CONVEX_CONE_SING : forall {_960013 : Type'}, @convex_cone _960013 (@INSERT (cart R _960013) (@vec _960013 (NUMERAL 0%N)) (@EMPTY (cart R _960013))). +Axiom thm_CONVEX_HULL_SUBSET_CONVEX_CONE_HULL : forall {_960030 : Type'}, forall s : (cart R _960030) -> Prop, @SUBSET (cart R _960030) (@hull (cart R _960030) (@convex _960030) s) (@hull (cart R _960030) (@convex_cone _960030) s). +Axiom thm_CONIC_HULL_SUBSET_CONVEX_CONE_HULL : forall {_960046 : Type'}, forall s : (cart R _960046) -> Prop, @SUBSET (cart R _960046) (@hull (cart R _960046) (@conic _960046) s) (@hull (cart R _960046) (@convex_cone _960046) s). +Axiom thm_CONVEX_CONE_HULL_SEPARATE_NONEMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (s = (@EMPTY (cart R N')))) -> (@hull (cart R N') (@convex_cone N') s) = (@hull (cart R N') (@conic N') (@hull (cart R N') (@convex N') s)). +Axiom thm_CONVEX_CONE_HULL_EMPTY : forall {_960100 : Type'}, (@hull (cart R _960100) (@convex_cone _960100) (@EMPTY (cart R _960100))) = (@INSERT (cart R _960100) (@vec _960100 (NUMERAL 0%N)) (@EMPTY (cart R _960100))). +Axiom thm_CONVEX_CONE_HULL_SEPARATE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@hull (cart R N') (@convex_cone N') s) = (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@conic N') (@hull (cart R N') (@convex N') s))). +Axiom thm_CONVEX_CONE_HULL_CONVEX_HULL_NONEMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (s = (@EMPTY (cart R N')))) -> (@hull (cart R N') (@convex_cone N') s) = (@GSPEC (cart R N') (fun GEN_PVAR_4575 : cart R N' => exists c : R, exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4575 ((Rle (R_of_N (NUMERAL 0%N)) c) /\ (@IN (cart R N') x (@hull (cart R N') (@convex N') s))) (@percent N' c x))). +Axiom thm_CONVEX_CONE_HULL_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@hull (cart R N') (@convex_cone N') s) = (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@GSPEC (cart R N') (fun GEN_PVAR_4576 : cart R N' => exists c : R, exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4576 ((Rle (R_of_N (NUMERAL 0%N)) c) /\ (@IN (cart R N') x (@hull (cart R N') (@convex N') s))) (@percent N' c x)))). +Axiom thm_CONVEX_CONE_HULL_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@linear M N' f) -> (@hull (cart R N') (@convex_cone N') (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@hull (cart R M) (@convex_cone M) s)). +Axiom thm_SUBSPACE_IMP_CONVEX_CONE : forall {_960311 : Type'}, forall s : (cart R _960311) -> Prop, (@subspace _960311 s) -> @convex_cone _960311 s. +Axiom thm_CONVEX_CONE_SPAN : forall {_960322 : Type'}, forall s : (cart R _960322) -> Prop, @convex_cone _960322 (@span _960322 s). +Axiom thm_CONVEX_CONE_NEGATIONS : forall {_960341 : Type'}, forall s : (cart R _960341) -> Prop, (@convex_cone _960341 s) -> @convex_cone _960341 (@IMAGE (cart R _960341) (cart R _960341) (@vector_neg _960341) s). +Axiom thm_SUBSPACE_CONVEX_CONE_SYMMETRIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) = ((@convex_cone N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @IN (cart R N') (@vector_neg N' x) s)). +Axiom thm_SPAN_CONVEX_CONE_ALLSIGNS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@span N' s) = (@hull (cart R N') (@convex_cone N') (@UNION (cart R N') s (@IMAGE (cart R N') (cart R N') (@vector_neg N') s))). +Axiom thm_epigraph : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> R, (@epigraph N' s f) = (@GSPEC (cart R (finite_sum N' unit)) (fun GEN_PVAR_4578 : cart R (finite_sum N' unit) => exists xy : cart R (finite_sum N' unit), @SETSPEC (cart R (finite_sum N' unit)) GEN_PVAR_4578 ((@IN (cart R N') (@fstcart R N' unit xy) s) /\ (Rle (f (@fstcart R N' unit xy)) (drop (@sndcart R N' unit xy)))) xy)). +Axiom thm_IN_EPIGRAPH : forall {_960553 : Type'} (s : (cart R _960553) -> Prop) (f : (cart R _960553) -> R), forall x : cart R _960553, forall y : R, (@IN (cart R (finite_sum _960553 unit)) (@pastecart R _960553 unit x (lift y)) (@epigraph _960553 s f)) = ((@IN (cart R _960553) x s) /\ (Rle (f x) y)). +Axiom thm_CONVEX_EPIGRAPH : forall {_960578 : Type'}, forall f : (cart R _960578) -> R, forall s : (cart R _960578) -> Prop, ((@convex_on _960578 f s) /\ (@convex _960578 s)) = (@convex (finite_sum _960578 unit) (@epigraph _960578 s f)). +Axiom thm_CONVEX_EPIGRAPH_CONVEX : forall {_960598 : Type'}, forall f : (cart R _960598) -> R, forall s : (cart R _960598) -> Prop, (@convex _960598 s) -> (@convex_on _960598 f s) = (@convex (finite_sum _960598 unit) (@epigraph _960598 s f)). +Axiom thm_CONVEX_ON_EPIGRAPH_SLICE_LE : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall a : R, ((@convex_on N' f s) /\ (@convex N' s)) -> @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4579 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4579 ((@IN (cart R N') x s) /\ (Rle (f x) a)) x)). +Axiom thm_CONVEX_ON_EPIGRAPH_SLICE_LT : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall a : R, ((@convex_on N' f s) /\ (@convex N' s)) -> @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4580 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4580 ((@IN (cart R N') x s) /\ (Rlt (f x) a)) x)). +Axiom thm_CONVEX_ON_SUP : forall {A N' : Type'} (f : A -> (cart R N') -> R), forall t : A -> Prop, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((forall i : A, (@IN A i t) -> @convex_on N' (f i) s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists B : R, forall i : A, (@IN A i t) -> Rle (f i x) B))) -> @convex_on N' (fun x : cart R N' => sup (@GSPEC R (fun GEN_PVAR_4583 : R => exists i : A, @SETSPEC R GEN_PVAR_4583 (@IN A i t) (f i x)))) s. +Axiom thm_FORALL_OF_PASTECART : forall {A B M N' : Type'} (P : (A -> cart B M) -> (A -> cart B N') -> Prop), (forall p : A -> cart B (finite_sum M N'), P (@o A (cart B (finite_sum M N')) (cart B M) (@fstcart B M N') p) (@o A (cart B (finite_sum M N')) (cart B N') (@sndcart B M N') p)) = (forall x : A -> cart B M, forall y : A -> cart B N', P x y). +Axiom thm_FORALL_OF_DROP : forall {A : Type'} (P : (A -> R) -> Prop), (forall v : A -> cart R unit, P (@o A (cart R unit) R drop v)) = (forall x : A -> R, P x). +Axiom thm_CONVEX_ON_JENSEN : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@convex N' s) -> (@convex_on N' f s) = (forall k : N, forall u : N -> R, forall x : N -> cart R N', ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k)) -> (Rle (R_of_N (NUMERAL 0%N)) (u i)) /\ (@IN (cart R N') (x i) s)) /\ ((@sum N (dotdot (NUMERAL (BIT1 0%N)) k) u) = (R_of_N (NUMERAL (BIT1 0%N))))) -> Rle (f (@vsum N N' (dotdot (NUMERAL (BIT1 0%N)) k) (fun i : N => @percent N' (u i) (x i)))) (@sum N (dotdot (NUMERAL (BIT1 0%N)) k) (fun i : N => Rmult (u i) (f (x i))))). +Axiom thm_CONVEX_ON_IMP_JENSEN : forall {A N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall k : A -> Prop, forall u : A -> R, forall x : A -> cart R N', ((@convex_on N' f s) /\ ((@convex N' s) /\ ((@FINITE A k) /\ ((forall i : A, (@IN A i k) -> (Rle (R_of_N (NUMERAL 0%N)) (u i)) /\ (@IN (cart R N') (x i) s)) /\ ((@sum A k u) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (f (@vsum A N' k (fun i : A => @percent N' (u i) (x i)))) (@sum A k (fun i : A => Rmult (u i) (f (x i)))). +Axiom thm_IVT_INCREASING_COMPONENT_ON_1 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall y : R, forall k : N, ((Rle (drop a) (drop b)) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((Rle (@dollar R N' (f a) k) y) /\ (Rle y (@dollar R N' (f b) k))))))) -> exists x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@dollar R N' (f x) k) = y). +Axiom thm_IVT_INCREASING_COMPONENT_1 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall y : R, forall k : N, ((Rle (drop a) (drop b)) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @continuous N' (cart R unit) f (@_at unit x)) /\ ((Rle (@dollar R N' (f a) k) y) /\ (Rle y (@dollar R N' (f b) k))))))) -> exists x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@dollar R N' (f x) k) = y). +Axiom thm_IVT_DECREASING_COMPONENT_ON_1 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall y : R, forall k : N, ((Rle (drop a) (drop b)) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((Rle (@dollar R N' (f b) k) y) /\ (Rle y (@dollar R N' (f a) k))))))) -> exists x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@dollar R N' (f x) k) = y). +Axiom thm_IVT_DECREASING_COMPONENT_1 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall y : R, forall k : N, ((Rle (drop a) (drop b)) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @continuous N' (cart R unit) f (@_at unit x)) /\ ((Rle (@dollar R N' (f b) k) y) /\ (Rle y (@dollar R N' (f a) k))))))) -> exists x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@dollar R N' (f x) k) = y). +Axiom thm_CONVEX_ON_CONVEX_HULL_BOUND : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall b : R, ((@convex_on N' f (@hull (cart R N') (@convex N') s)) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rle (f x) b)) -> forall x : cart R N', (@IN (cart R N') x (@hull (cart R N') (@convex N') s)) -> Rle (f x) b. +Axiom thm_CONVEX_ON_CONVEX_HULL_BOUND_EQ : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall b : R, (@convex_on N' f (@hull (cart R N') (@convex N') s)) -> (forall x : cart R N', (@IN (cart R N') x (@hull (cart R N') (@convex N') s)) -> Rle (f x) b) = (forall x : cart R N', (@IN (cart R N') x s) -> Rle (f x) b). +Axiom thm_DIST_CONVEX_HULL_BOUND_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall d : R, (forall x : cart R N', (@IN (cart R N') x (@hull (cart R N') (@convex N') s)) -> Rle (@distance N' (@pair (cart R N') (cart R N') a x)) d) = (forall x : cart R N', (@IN (cart R N') x s) -> Rle (@distance N' (@pair (cart R N') (cart R N') a x)) d). +Axiom thm_DIST_CONVEX_HULL_BOUND_2 : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall d : R, (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@hull (cart R N') (@convex N') s)) /\ (@IN (cart R N') y (@hull (cart R N') (@convex N') s))) -> Rle (@distance N' (@pair (cart R N') (cart R N') x y)) d) = (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (@distance N' (@pair (cart R N') (cart R N') x y)) d). +Axiom thm_DIAMETER_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@diameter N' (@hull (cart R N') (@convex N') s)) = (@diameter N' s). +Axiom thm_DIAMETER_SIMPLEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (s = (@EMPTY (cart R N')))) -> (@diameter N' (@hull (cart R N') (@convex N') s)) = (sup (@GSPEC R (fun GEN_PVAR_4584 : R => exists x : cart R N', exists y : cart R N', @SETSPEC R GEN_PVAR_4584 ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) (@distance N' (@pair (cart R N') (cart R N') x y))))). +Axiom thm_UNIT_INTERVAL_CONVEX_HULL : forall {N' : Type'}, (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vec N' (NUMERAL 0%N)) (@vec N' (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R N') (cart R N'))))) = (@hull (cart R N') (@convex N') (@GSPEC (cart R N') (fun GEN_PVAR_4593 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4593 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> ((@dollar R N' x i) = (R_of_N (NUMERAL 0%N))) \/ ((@dollar R N' x i) = (R_of_N (NUMERAL (BIT1 0%N))))) x))). +Axiom thm_CLOSED_INTERVAL_AS_CONVEX_HULL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', exists s : (cart R N') -> Prop, (@FINITE (cart R N') s) /\ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@hull (cart R N') (@convex N') s)). +Axiom thm_CONVEX_ON_LEFT_SECANT_MUL : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@convex_on N' f s) = (forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))))) -> Rle (Rmult (Rminus (f x) (f a)) (@vector_norm N' (@vector_sub N' b a))) (Rmult (Rminus (f b) (f a)) (@vector_norm N' (@vector_sub N' x a)))). +Axiom thm_CONVEX_ON_MID_SECANT_MUL : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@convex_on N' f s) = (forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))))) -> Rle (Rmult (Rminus (f x) (f a)) (@vector_norm N' (@vector_sub N' b x))) (Rmult (Rminus (f b) (f x)) (@vector_norm N' (@vector_sub N' x a)))). +Axiom thm_CONVEX_ON_RIGHT_SECANT_MUL : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@convex_on N' f s) = (forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))))) -> Rle (Rmult (Rminus (f b) (f a)) (@vector_norm N' (@vector_sub N' b x))) (Rmult (Rminus (f b) (f x)) (@vector_norm N' (@vector_sub N' b a)))). +Axiom thm_CONVEX_ON_LEFT_SECANT : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@convex_on N' f s) = (forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))))) -> Rle (Rdiv (Rminus (f x) (f a)) (@vector_norm N' (@vector_sub N' x a))) (Rdiv (Rminus (f b) (f a)) (@vector_norm N' (@vector_sub N' b a)))). +Axiom thm_CONVEX_ON_MID_SECANT : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@convex_on N' f s) = (forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))))) -> Rle (Rdiv (Rminus (f x) (f a)) (@vector_norm N' (@vector_sub N' x a))) (Rdiv (Rminus (f b) (f x)) (@vector_norm N' (@vector_sub N' b x)))). +Axiom thm_CONVEX_ON_RIGHT_SECANT : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@convex_on N' f s) = (forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))))) -> Rle (Rdiv (Rminus (f b) (f a)) (@vector_norm N' (@vector_sub N' b a))) (Rdiv (Rminus (f b) (f x)) (@vector_norm N' (@vector_sub N' b x)))). +Axiom thm_CONVEX_ON_SECANTS_1_IMP : forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, forall d : cart R unit, ((@convex_on unit f s) /\ ((@IN (cart R unit) a s) /\ ((@IN (cart R unit) b s) /\ ((@IN (cart R unit) c s) /\ ((@IN (cart R unit) d s) /\ ((Rlt (drop a) (drop b)) /\ ((Rle (drop b) (drop c)) /\ (Rlt (drop c) (drop d))))))))) -> Rle (Rdiv (Rminus (f b) (f a)) (Rminus (drop b) (drop a))) (Rdiv (Rminus (f d) (f c)) (Rminus (drop d) (drop c))). +Axiom thm_CONVEX_ON_SECANTS_1 : forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, (@is_interval unit s) -> (@convex_on unit f s) = (forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, forall d : cart R unit, ((@IN (cart R unit) a s) /\ ((@IN (cart R unit) b s) /\ ((@IN (cart R unit) c s) /\ ((@IN (cart R unit) d s) /\ ((Rlt (drop a) (drop b)) /\ ((Rle (drop b) (drop c)) /\ (Rlt (drop c) (drop d)))))))) -> Rle (Rdiv (Rminus (f b) (f a)) (Rminus (drop b) (drop a))) (Rdiv (Rminus (f d) (f c)) (Rminus (drop d) (drop c)))). +Axiom thm_starlike : forall {_964271 : Type'}, forall s : (cart R _964271) -> Prop, (@starlike _964271 s) = (exists a : cart R _964271, (@IN (cart R _964271) a s) /\ (forall x : cart R _964271, (@IN (cart R _964271) x s) -> @SUBSET (cart R _964271) (@closed_segment _964271 (@cons (prod (cart R _964271) (cart R _964271)) (@pair (cart R _964271) (cart R _964271) a x) (@nil (prod (cart R _964271) (cart R _964271))))) s)). +Axiom thm_CONVEX_IMP_STARLIKE : forall {_964283 : Type'}, forall s : (cart R _964283) -> Prop, ((@convex _964283 s) /\ (~ (s = (@EMPTY (cart R _964283))))) -> @starlike _964283 s. +Axiom thm_CONIC_IMP_STARLIKE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@conic N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> @starlike N' s. +Axiom thm_SEGMENT_CONVEX_HULL : forall {_964385 : Type'}, forall a : cart R _964385, forall b : cart R _964385, (@closed_segment _964385 (@cons (prod (cart R _964385) (cart R _964385)) (@pair (cart R _964385) (cart R _964385) a b) (@nil (prod (cart R _964385) (cart R _964385))))) = (@hull (cart R _964385) (@convex _964385) (@INSERT (cart R _964385) a (@INSERT (cart R _964385) b (@EMPTY (cart R _964385))))). +Axiom thm_CONTINUOUS_INCREASING_IMAGE_INTERVAL_1 : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, ((~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) /\ ((@continuous_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))))) -> (@IMAGE (cart R unit) (cart R unit) f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (f a) (f b)) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_CONTINUOUS_DECREASING_IMAGE_INTERVAL_1 : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, ((~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) /\ ((@continuous_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x))))) -> (@IMAGE (cart R unit) (cart R unit) f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (f b) (f a)) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_SEGMENT_FURTHEST_LE : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', forall y : cart R N', (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> (Rle (@vector_norm N' (@vector_sub N' y x)) (@vector_norm N' (@vector_sub N' y a))) \/ (Rle (@vector_norm N' (@vector_sub N' y x)) (@vector_norm N' (@vector_sub N' y b))). +Axiom thm_SEGMENT_BOUND : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> (Rle (@vector_norm N' (@vector_sub N' x a)) (@vector_norm N' (@vector_sub N' b a))) /\ (Rle (@vector_norm N' (@vector_sub N' x b)) (@vector_norm N' (@vector_sub N' b a))). +Axiom thm_BETWEEN_IN_CONVEX_HULL : forall {N' : Type'}, forall x : cart R N', forall a : cart R N', forall b : cart R N', (@between N' x (@pair (cart R N') (cart R N') a b)) = (@IN (cart R N') x (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))). +Axiom thm_STARLIKE_LINEAR_IMAGE : forall {_964948 _964951 : Type'}, forall f : (cart R _964948) -> cart R _964951, forall s : (cart R _964948) -> Prop, ((@starlike _964948 s) /\ (@linear _964948 _964951 f)) -> @starlike _964951 (@IMAGE (cart R _964948) (cart R _964951) f s). +Axiom thm_STARLIKE_LINEAR_IMAGE_EQ : forall {_964973 _965001 : Type'}, forall f : (cart R _965001) -> cart R _964973, forall s : (cart R _965001) -> Prop, ((@linear _965001 _964973 f) /\ (forall x : cart R _965001, forall y : cart R _965001, ((f x) = (f y)) -> x = y)) -> (@starlike _964973 (@IMAGE (cart R _965001) (cart R _964973) f s)) = (@starlike _965001 s). +Axiom thm_STARLIKE_TRANSLATION_EQ : forall {_965028 : Type'}, forall a : cart R _965028, forall s : (cart R _965028) -> Prop, (@starlike _965028 (@IMAGE (cart R _965028) (cart R _965028) (fun x : cart R _965028 => @vector_add _965028 a x) s)) = (@starlike _965028 s). +Axiom thm_BETWEEN_LINEAR_IMAGE_EQ : forall {_965054 _965055 : Type'}, forall f : (cart R _965054) -> cart R _965055, forall x : cart R _965054, forall y : cart R _965054, forall z : cart R _965054, ((@linear _965054 _965055 f) /\ (forall x' : cart R _965054, forall y' : cart R _965054, ((f x') = (f y')) -> x' = y')) -> (@between _965055 (f x) (@pair (cart R _965055) (cart R _965055) (f y) (f z))) = (@between _965054 x (@pair (cart R _965054) (cart R _965054) y z)). +Axiom thm_STARLIKE_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@starlike N' s) -> @starlike N' (@closure N' s). +Axiom thm_STARLIKE_UNIV : forall {N' : Type'}, @starlike N' (@UNIV (cart R N')). +Axiom thm_STARLIKE_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@starlike M s) /\ (@starlike N' t)) -> @starlike (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_STARLIKE_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@starlike (finite_sum M N') (@PCROSS R M N' s t)) = ((@starlike M s) /\ (@starlike N' t)). +Axiom thm_BETWEEN_DIST_LT : forall {N' : Type'} (x : cart R N'), forall r : R, forall a : cart R N', forall b : cart R N', forall c : cart R N', ((Rlt (@distance N' (@pair (cart R N') (cart R N') c a)) r) /\ ((Rlt (@distance N' (@pair (cart R N') (cart R N') c b)) r) /\ (@between N' x (@pair (cart R N') (cart R N') a b)))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') c x)) r. +Axiom thm_BETWEEN_DIST_LE : forall {N' : Type'} (x : cart R N'), forall r : R, forall a : cart R N', forall b : cart R N', forall c : cart R N', ((Rle (@distance N' (@pair (cart R N') (cart R N') c a)) r) /\ ((Rle (@distance N' (@pair (cart R N') (cart R N') c b)) r) /\ (@between N' x (@pair (cart R N') (cart R N') a b)))) -> Rle (@distance N' (@pair (cart R N') (cart R N') c x)) r. +Axiom thm_BETWEEN_NORM_LT : forall {N' : Type'}, forall r : R, forall a : cart R N', forall b : cart R N', forall x : cart R N', ((Rlt (@vector_norm N' a) r) /\ ((Rlt (@vector_norm N' b) r) /\ (@between N' x (@pair (cart R N') (cart R N') a b)))) -> Rlt (@vector_norm N' x) r. +Axiom thm_BETWEEN_NORM_LE : forall {N' : Type'}, forall r : R, forall a : cart R N', forall b : cart R N', forall x : cart R N', ((Rle (@vector_norm N' a) r) /\ ((Rle (@vector_norm N' b) r) /\ (@between N' x (@pair (cart R N') (cart R N') a b)))) -> Rle (@vector_norm N' x) r. +Axiom thm_UNION_SEGMENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', (@IN (cart R N') b (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a c) (@nil (prod (cart R N') (cart R N')))))) -> (@UNION (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') b c) (@nil (prod (cart R N') (cart R N')))))) = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a c) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_CONVEX_STARCENTRES : forall {N' : Type'}, forall s : (cart R N') -> Prop, @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4597 : cart R N' => exists a : cart R N', @SETSPEC (cart R N') GEN_PVAR_4597 ((@IN (cart R N') a s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a x) (@nil (prod (cart R N') (cart R N'))))) s)) a)). +Axiom thm_MIDPOINT_CONVEX_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) \/ (@closed N' s)) -> (@convex N' s) = (forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a s) /\ (@IN (cart R N') b s)) -> @IN (cart R N') (@midpoint N' (@pair (cart R N') (cart R N') a b)) s). +Axiom thm_COLLINEAR_DESCALE : forall {N' : Type'}, forall a : R, forall b : R, forall c : R, forall x : cart R N', forall y : cart R N', forall z : cart R N', ((~ (a = (R_of_N (NUMERAL 0%N)))) /\ ((~ (c = (R_of_N (NUMERAL 0%N)))) /\ ((@collinear N' (@INSERT (cart R N') (@percent N' a x) (@INSERT (cart R N') (@percent N' b y) (@INSERT (cart R N') (@percent N' c z) (@EMPTY (cart R N')))))) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') (@INSERT (cart R N') x (@INSERT (cart R N') y (@INSERT (cart R N') z (@EMPTY (cart R N'))))))))))) -> @collinear N' (@INSERT (cart R N') x (@INSERT (cart R N') y (@INSERT (cart R N') z (@EMPTY (cart R N'))))). +Axiom thm_CLOSED_SEGMENT_DESCALE : forall {N' : Type'}, forall a : R, forall b : R, forall c : R, forall x : cart R N', forall y : cart R N', forall z : cart R N', ((Rlt (R_of_N (NUMERAL 0%N)) a) /\ ((Rle (R_of_N (NUMERAL 0%N)) b) /\ ((Rlt (R_of_N (NUMERAL 0%N)) c) /\ ((@IN (cart R N') (@percent N' b y) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@percent N' a x) (@percent N' c z)) (@nil (prod (cart R N') (cart R N')))))) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') (@INSERT (cart R N') x (@INSERT (cart R N') y (@INSERT (cart R N') z (@EMPTY (cart R N')))))))))))) -> @IN (cart R N') y (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') x z) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_OPEN_SEGMENT_DESCALE : forall {N' : Type'}, forall a : R, forall b : R, forall c : R, forall x : cart R N', forall y : cart R N', forall z : cart R N', ((Rlt (R_of_N (NUMERAL 0%N)) a) /\ ((Rle (R_of_N (NUMERAL 0%N)) b) /\ ((Rlt (R_of_N (NUMERAL 0%N)) c) /\ ((@IN (cart R N') (@percent N' b y) (@open_segment N' (@pair (cart R N') (cart R N') (@percent N' a x) (@percent N' c z)))) /\ ((~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') (@INSERT (cart R N') x (@INSERT (cart R N') y (@INSERT (cart R N') z (@EMPTY (cart R N')))))))) /\ (~ ((x = y) /\ (z = y)))))))) -> @IN (cart R N') y (@open_segment N' (@pair (cart R N') (cart R N') x z)). +Axiom thm_IN_INTERIOR_CONVEX_SHRINK : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, forall x : cart R N', forall c : cart R N', ((@convex N' s) /\ ((@IN (cart R N') c (@interior N' s)) /\ ((@IN (cart R N') x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (Rle e (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @IN (cart R N') (@vector_sub N' x (@percent N' e (@vector_sub N' x c))) (@interior N' s). +Axiom thm_IN_INTERIOR_CLOSURE_CONVEX_SHRINK : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, forall x : cart R N', forall c : cart R N', ((@convex N' s) /\ ((@IN (cart R N') c (@interior N' s)) /\ ((@IN (cart R N') x (@closure N' s)) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (Rle e (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @IN (cart R N') (@vector_sub N' x (@percent N' e (@vector_sub N' x c))) (@interior N' s). +Axiom thm_IN_INTERIOR_CLOSURE_CONVEX_SEGMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@convex N' s) /\ ((@IN (cart R N') a (@interior N' s)) /\ (@IN (cart R N') b (@closure N' s)))) -> @SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@interior N' s). +Axiom thm_relative_interior : forall {_967920 : Type'}, forall s : (cart R _967920) -> Prop, (@relative_interior _967920 s) = (@GSPEC (cart R _967920) (fun GEN_PVAR_4598 : cart R _967920 => exists x : cart R _967920, @SETSPEC (cart R _967920) GEN_PVAR_4598 (exists t : (cart R _967920) -> Prop, (@open_in (cart R _967920) (@subtopology (cart R _967920) (@euclidean _967920) (@hull (cart R _967920) (@affine _967920) s)) t) /\ ((@IN (cart R _967920) x t) /\ (@SUBSET (cart R _967920) t s))) x)). +Axiom thm_relative_frontier : forall {_967940 : Type'}, forall s : (cart R _967940) -> Prop, (@relative_frontier _967940 s) = (@DIFF (cart R _967940) (@closure _967940 s) (@relative_interior _967940 s)). +Axiom thm_RELATIVE_INTERIOR_INTERIOR_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@relative_interior N' s) = (@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s). +Axiom thm_RELATIVE_FRONTIER_FRONTIER_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@relative_frontier N' s) = (@frontier_of (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s). +Axiom thm_RELATIVE_INTERIOR : forall {_968059 : Type'}, forall s : (cart R _968059) -> Prop, (@relative_interior _968059 s) = (@GSPEC (cart R _968059) (fun GEN_PVAR_4599 : cart R _968059 => exists x : cart R _968059, @SETSPEC (cart R _968059) GEN_PVAR_4599 ((@IN (cart R _968059) x s) /\ (exists t : (cart R _968059) -> Prop, (@_open _968059 t) /\ ((@IN (cart R _968059) x t) /\ (@SUBSET (cart R _968059) (@INTER (cart R _968059) t (@hull (cart R _968059) (@affine _968059) s)) s)))) x)). +Axiom thm_RELATIVE_INTERIOR_EQ : forall {_968071 : Type'}, forall s : (cart R _968071) -> Prop, ((@relative_interior _968071 s) = s) = (@open_in (cart R _968071) (@subtopology (cart R _968071) (@euclidean _968071) (@hull (cart R _968071) (@affine _968071) s)) s). +Axiom thm_RELATIVE_INTERIOR_OPEN_IN : forall {_968105 : Type'}, forall s : (cart R _968105) -> Prop, (@open_in (cart R _968105) (@subtopology (cart R _968105) (@euclidean _968105) (@hull (cart R _968105) (@affine _968105) s)) s) -> (@relative_interior _968105 s) = s. +Axiom thm_RELATIVE_INTERIOR_EMPTY : forall {_968111 : Type'}, (@relative_interior _968111 (@EMPTY (cart R _968111))) = (@EMPTY (cart R _968111)). +Axiom thm_RELATIVE_FRONTIER_EMPTY : forall {_968119 : Type'}, (@relative_frontier _968119 (@EMPTY (cart R _968119))) = (@EMPTY (cart R _968119)). +Axiom thm_RELATIVE_INTERIOR_AFFINE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@affine N' s) -> (@relative_interior N' s) = s. +Axiom thm_RELATIVE_INTERIOR_UNIV : forall {_968153 : Type'}, forall s : (cart R _968153) -> Prop, (@relative_interior _968153 (@hull (cart R _968153) (@affine _968153) s)) = (@hull (cart R _968153) (@affine _968153) s). +Axiom thm_OPEN_IN_RELATIVE_INTERIOR : forall {_968171 : Type'}, forall s : (cart R _968171) -> Prop, @open_in (cart R _968171) (@subtopology (cart R _968171) (@euclidean _968171) (@hull (cart R _968171) (@affine _968171) s)) (@relative_interior _968171 s). +Axiom thm_RELATIVE_INTERIOR_SUBSET : forall {_968181 : Type'}, forall s : (cart R _968181) -> Prop, @SUBSET (cart R _968181) (@relative_interior _968181 s) s. +Axiom thm_RELATIVE_FRONTIER_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @SUBSET (cart R N') (@relative_frontier N' s) s. +Axiom thm_RELATIVE_FRONTIER_SUBSET_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@SUBSET (cart R N') (@relative_frontier N' s) s) = (@closed N' s). +Axiom thm_BOUNDED_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @bounded N' (@relative_interior N' s). +Axiom thm_OPEN_IN_SET_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@relative_interior N' s). +Axiom thm_SUBSET_RELATIVE_INTERIOR : forall {_968276 : Type'}, forall s : (cart R _968276) -> Prop, forall t : (cart R _968276) -> Prop, ((@SUBSET (cart R _968276) s t) /\ ((@hull (cart R _968276) (@affine _968276) s) = (@hull (cart R _968276) (@affine _968276) t))) -> @SUBSET (cart R _968276) (@relative_interior _968276 s) (@relative_interior _968276 t). +Axiom thm_RELATIVE_INTERIOR_CLOSURE_SUBSET : forall {_968290 : Type'}, forall s : (cart R _968290) -> Prop, @SUBSET (cart R _968290) (@relative_interior _968290 s) (@relative_interior _968290 (@closure _968290 s)). +Axiom thm_RELATIVE_INTERIOR_MAXIMAL : forall {_968322 : Type'}, forall s : (cart R _968322) -> Prop, forall t : (cart R _968322) -> Prop, ((@SUBSET (cart R _968322) t s) /\ (@open_in (cart R _968322) (@subtopology (cart R _968322) (@euclidean _968322) (@hull (cart R _968322) (@affine _968322) s)) t)) -> @SUBSET (cart R _968322) t (@relative_interior _968322 s). +Axiom thm_RELATIVE_INTERIOR_UNIQUE : forall {_968381 : Type'}, forall s : (cart R _968381) -> Prop, forall t : (cart R _968381) -> Prop, ((@SUBSET (cart R _968381) t s) /\ ((@open_in (cart R _968381) (@subtopology (cart R _968381) (@euclidean _968381) (@hull (cart R _968381) (@affine _968381) s)) t) /\ (forall t' : (cart R _968381) -> Prop, ((@SUBSET (cart R _968381) t' s) /\ (@open_in (cart R _968381) (@subtopology (cart R _968381) (@euclidean _968381) (@hull (cart R _968381) (@affine _968381) s)) t')) -> @SUBSET (cart R _968381) t' t))) -> (@relative_interior _968381 s) = t. +Axiom thm_IN_RELATIVE_INTERIOR : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@IN (cart R N') x (@relative_interior N' s)) = ((@IN (cart R N') x s) /\ (exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET (cart R N') (@INTER (cart R N') (@ball N' (@pair (cart R N') R x e)) (@hull (cart R N') (@affine N') s)) s))). +Axiom thm_IN_RELATIVE_INTERIOR_CBALL : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@IN (cart R N') x (@relative_interior N' s)) = ((@IN (cart R N') x s) /\ (exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@SUBSET (cart R N') (@INTER (cart R N') (@cball N' (@pair (cart R N') R x e)) (@hull (cart R N') (@affine N') s)) s))). +Axiom thm_RELATIVE_INTERIOR_CONVEX_INTER_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@_open N' t) /\ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))))) -> (@relative_interior N' (@INTER (cart R N') s t)) = (@INTER (cart R N') (@relative_interior N' s) t). +Axiom thm_CONIC_HULL_EQ_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)) -> (@hull (cart R N') (@conic N') s) = (@hull (cart R N') (@affine N') s). +Axiom thm_CONIC_HULL_EQ_SPAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)) -> (@hull (cart R N') (@conic N') s) = (@span N' s). +Axiom thm_CONIC_HULL_EQ_SPAN_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' (@hull (cart R N') (@conic N') s))) = ((@hull (cart R N') (@conic N') s) = (@span N' s)). +Axiom thm_OPEN_IN_SUBSET_RELATIVE_INTERIOR : forall {_968824 : Type'}, forall s : (cart R _968824) -> Prop, forall t : (cart R _968824) -> Prop, (@open_in (cart R _968824) (@subtopology (cart R _968824) (@euclidean _968824) (@hull (cart R _968824) (@affine _968824) t)) s) -> (@SUBSET (cart R _968824) s (@relative_interior _968824 t)) = (@SUBSET (cart R _968824) s t). +Axiom thm_RELATIVE_INTERIOR_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@relative_interior N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@relative_interior N' s)). +Axiom thm_RELATIVE_FRONTIER_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@relative_frontier N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@relative_frontier N' s)). +Axiom thm_RELATIVE_INTERIOR_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@relative_interior N' (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@relative_interior M s)). +Axiom thm_RELATIVE_FRONTIER_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@relative_frontier N' (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@relative_frontier M s)). +Axiom thm_RELATIVE_INTERIOR_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@relative_interior N' (@relative_interior N' s)) = (@relative_interior N' s). +Axiom thm_RELATIVE_INTERIOR_EQ_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> ((@relative_interior N' s) = (@EMPTY (cart R N'))) = (s = (@EMPTY (cart R N'))). +Axiom thm_AFF_DIM_NONEMPTY_INTERIOR_OF_EQ : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@affine N' u) /\ (@SUBSET (cart R N') s u))) -> ((@aff_dim N' s) = (@aff_dim N' u)) = (((s = (@EMPTY (cart R N'))) /\ (u = (@EMPTY (cart R N')))) \/ (~ ((@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) = (@EMPTY (cart R N'))))). +Axiom thm_RELATIVE_INTERIOR_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@hull (cart R N') (@affine N') s) = (@UNIV (cart R N'))) -> (@relative_interior N' s) = (@interior N' s). +Axiom thm_RELATIVE_INTERIOR_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> (@relative_interior N' s) = s. +Axiom thm_RELATIVE_INTERIOR_NONEMPTY_INTERIOR : forall {_969563 : Type'}, forall s : (cart R _969563) -> Prop, (~ ((@interior _969563 s) = (@EMPTY (cart R _969563)))) -> (@relative_interior _969563 s) = (@interior _969563 s). +Axiom thm_RELATIVE_FRONTIER_NONEMPTY_INTERIOR : forall {_969584 : Type'}, forall s : (cart R _969584) -> Prop, (~ ((@interior _969584 s) = (@EMPTY (cart R _969584)))) -> (@relative_frontier _969584 s) = (@frontier _969584 s). +Axiom thm_RELATIVE_FRONTIER_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@hull (cart R N') (@affine N') s) = (@UNIV (cart R N'))) -> (@relative_frontier N' s) = (@frontier N' s). +Axiom thm_RELATIVE_FRONTIER_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> (@relative_frontier N' s) = (@frontier N' s). +Axiom thm_AFFINE_HULL_CONVEX_HULL : forall {_969647 : Type'}, forall s : (cart R _969647) -> Prop, (@hull (cart R _969647) (@affine _969647) (@hull (cart R _969647) (@convex _969647) s)) = (@hull (cart R _969647) (@affine _969647) s). +Axiom thm_INTERIOR_SIMPLEX_NONEMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@independent N' s) /\ (@HAS_SIZE (cart R N') s (@dimindex N' (@UNIV N')))) -> exists a : cart R N', @IN (cart R N') a (@interior N' (@hull (cart R N') (@convex N') (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) s))). +Axiom thm_INTERIOR_SUBSET_RELATIVE_INTERIOR : forall {_969762 : Type'}, forall s : (cart R _969762) -> Prop, @SUBSET (cart R _969762) (@interior _969762 s) (@relative_interior _969762 s). +Axiom thm_RELATIVE_FRONTIER_SUBSET_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@relative_frontier N' s) (@frontier N' s). +Axiom thm_CONVEX_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @convex N' (@relative_interior N' s). +Axiom thm_IN_RELATIVE_INTERIOR_CONVEX_SHRINK : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, forall x : cart R N', forall c : cart R N', ((@convex N' s) /\ ((@IN (cart R N') c (@relative_interior N' s)) /\ ((@IN (cart R N') x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (Rle e (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @IN (cart R N') (@vector_sub N' x (@percent N' e (@vector_sub N' x c))) (@relative_interior N' s). +Axiom thm_IN_RELATIVE_INTERIOR_CLOSURE_CONVEX_SHRINK : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, forall x : cart R N', forall c : cart R N', ((@convex N' s) /\ ((@IN (cart R N') c (@relative_interior N' s)) /\ ((@IN (cart R N') x (@closure N' s)) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (Rle e (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @IN (cart R N') (@vector_sub N' x (@percent N' e (@vector_sub N' x c))) (@relative_interior N' s). +Axiom thm_IN_RELATIVE_INTERIOR_CLOSURE_CONVEX_SEGMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@convex N' s) /\ ((@IN (cart R N') a (@relative_interior N' s)) /\ (@IN (cart R N') b (@closure N' s)))) -> @SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@relative_interior N' s). +Axiom thm_INTER_RELATIVE_FRONTIER_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)) /\ (@SUBSET (cart R N') t (@relative_frontier N' s)))) -> t = (@INTER (cart R N') (@relative_frontier N' s) (@hull (cart R N') (@conic N') t)). +Axiom thm_INTER_CONVEX_HULL_INSERT_RELATIVE_EXTERIOR : forall {N' : Type'}, forall c : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall z : cart R N', ((@convex N' c) /\ ((@SUBSET (cart R N') t c) /\ ((@IN (cart R N') z (@relative_interior N' c)) /\ (@DISJOINT (cart R N') s (@relative_interior N' c))))) -> (@INTER (cart R N') s (@hull (cart R N') (@convex N') (@INSERT (cart R N') z t))) = (@INTER (cart R N') s (@hull (cart R N') (@convex N') t)). +Axiom thm_CONVEX_OPEN_SEGMENT_CASES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@convex N' s) /\ ((@IN (cart R N') a (@closure N' s)) /\ (@IN (cart R N') b (@closure N' s)))) -> (@SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@relative_frontier N' s)) \/ (@SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@relative_interior N' s)). +Axiom thm_CONVEX_OPEN_SEGMENT_CASES_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@convex N' s) /\ ((@IN (cart R N') a (@closure N' s)) /\ (@IN (cart R N') b (@closure N' s)))) -> (@SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@frontier N' s)) \/ (@SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@interior N' s)). +Axiom thm_EXTEND_CONVEX_RELATIVE_FRONTIER_SEGMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@convex N' s) /\ ((@IN (cart R N') a (@closure N' s)) /\ ((@IN (cart R N') b (@closure N' s)) /\ ((@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))) /\ (@IN (cart R N') x (@relative_frontier N' s)))))) -> @SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@relative_frontier N' s). +Axiom thm_SEGMENT_SUBSET_RELATIVE_FRONTIER_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall c : cart R N', ((@convex N' s) /\ ((@IN (cart R N') c (@open_segment N' (@pair (cart R N') (cart R N') a b))) /\ (@SUBSET (cart R N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N'))))) (@relative_frontier N' s)))) -> @SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@relative_frontier N' s). +Axiom thm_EXTEND_CONVEX_FRONTIER_SEGMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall x : cart R N', ((@convex N' s) /\ ((@IN (cart R N') a (@closure N' s)) /\ ((@IN (cart R N') b (@closure N' s)) /\ ((@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))) /\ (@IN (cart R N') x (@frontier N' s)))))) -> @SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@frontier N' s). +Axiom thm_RELATIVE_INTERIOR_SING : forall {_971482 : Type'}, forall a : cart R _971482, (@relative_interior _971482 (@INSERT (cart R _971482) a (@EMPTY (cart R _971482)))) = (@INSERT (cart R _971482) a (@EMPTY (cart R _971482))). +Axiom thm_RELATIVE_FRONTIER_SING : forall {N' : Type'}, forall a : cart R N', (@relative_frontier N' (@INSERT (cart R N') a (@EMPTY (cart R N')))) = (@EMPTY (cart R N')). +Axiom thm_RELATIVE_INTERIOR_CBALL : forall {_971546 : Type'}, forall a : cart R _971546, forall r : R, (@relative_interior _971546 (@cball _971546 (@pair (cart R _971546) R a r))) = (@COND ((cart R _971546) -> Prop) (r = (R_of_N (NUMERAL 0%N))) (@INSERT (cart R _971546) a (@EMPTY (cart R _971546))) (@ball _971546 (@pair (cart R _971546) R a r))). +Axiom thm_RELATIVE_INTERIOR_BALL : forall {_971572 : Type'}, forall a : cart R _971572, forall r : R, (@relative_interior _971572 (@ball _971572 (@pair (cart R _971572) R a r))) = (@ball _971572 (@pair (cart R _971572) R a r)). +Axiom thm_RELATIVE_FRONTIER_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (@relative_frontier N' (@cball N' (@pair (cart R N') R a r))) = (@COND ((cart R N') -> Prop) (r = (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R N')) (@sphere N' (@pair (cart R N') R a r))). +Axiom thm_RELATIVE_FRONTIER_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (@relative_frontier N' (@ball N' (@pair (cart R N') R a r))) = (@COND ((cart R N') -> Prop) (r = (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R N')) (@sphere N' (@pair (cart R N') R a r))). +Axiom thm_DIFFERENT_NORM_3_COLLINEAR_POINTS : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', ~ ((@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))) /\ (((@vector_norm N' a) = (@vector_norm N' b)) /\ ((@vector_norm N' x) = (@vector_norm N' b)))). +Axiom thm_OPEN_SEGMENT_SUBSET_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, forall u : cart R N', forall v : cart R N', ((@IN (cart R N') u (@cball N' (@pair (cart R N') R a r))) /\ (@IN (cart R N') v (@cball N' (@pair (cart R N') R a r)))) -> @SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') u v)) (@ball N' (@pair (cart R N') R a r)). +Axiom thm_STARLIKE_CONVEX_TWEAK_BOUNDARY_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') (@relative_interior N' s) t) /\ (@SUBSET (cart R N') t (@closure N' s))))) -> @starlike N' t. +Axiom thm_RELATIVE_INTERIOR_PROLONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@relative_interior N' s)) /\ (@IN (cart R N') y s)) -> exists t : R, (Rlt (R_of_N (NUMERAL (BIT1 0%N))) t) /\ (@IN (cart R N') (@vector_add N' y (@percent N' t (@vector_sub N' x y))) s). +Axiom thm_RELATIVE_INTERIOR_CONVEX_PROLONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@relative_interior N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_4600 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4600 ((@IN (cart R N') x s) /\ (forall y : cart R N', (@IN (cart R N') y s) -> exists t : R, (Rlt (R_of_N (NUMERAL (BIT1 0%N))) t) /\ (@IN (cart R N') (@vector_add N' y (@percent N' t (@vector_sub N' x y))) s))) x)). +Axiom thm_RELATIVE_INTERIOR_EQ_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@relative_interior N' s) = (@closure N' s)) = (@affine N' s). +Axiom thm_RAY_TO_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall l : cart R N', ((@bounded N' s) /\ ((@IN (cart R N') a (@relative_interior N' s)) /\ ((@IN (cart R N') (@vector_add N' a l) (@hull (cart R N') (@affine N') s)) /\ (~ (l = (@vec N' (NUMERAL 0%N))))))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN (cart R N') (@vector_add N' a (@percent N' d l)) (@relative_frontier N' s)) /\ (forall e : R, ((Rle (R_of_N (NUMERAL 0%N)) e) /\ (Rlt e d)) -> @IN (cart R N') (@vector_add N' a (@percent N' e l)) (@relative_interior N' s))). +Axiom thm_RAY_TO_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall l : cart R N', ((@bounded N' s) /\ ((@IN (cart R N') a (@interior N' s)) /\ (~ (l = (@vec N' (NUMERAL 0%N)))))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN (cart R N') (@vector_add N' a (@percent N' d l)) (@frontier N' s)) /\ (forall e : R, ((Rle (R_of_N (NUMERAL 0%N)) e) /\ (Rlt e d)) -> @IN (cart R N') (@vector_add N' a (@percent N' e l)) (@interior N' s))). +Axiom thm_SEGMENT_TO_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@convex N' s) /\ ((@bounded N' s) /\ ((@IN (cart R N') x (@relative_interior N' s)) /\ ((@IN (cart R N') y s) /\ (~ ((x = y) /\ (s = (@INSERT (cart R N') x (@EMPTY (cart R N')))))))))) -> exists z : cart R N', (@IN (cart R N') z (@relative_frontier N' s)) /\ ((@IN (cart R N') y (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') x z) (@nil (prod (cart R N') (cart R N')))))) /\ (@SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') x z)) (@relative_interior N' s))). +Axiom thm_SEGMENT_TO_RELATIVE_FRONTIER_SIMPLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@bounded N' s) /\ ((@IN (cart R N') x s) /\ (~ (s = (@INSERT (cart R N') x (@EMPTY (cart R N'))))))) -> exists a : cart R N', exists b : cart R N', (@IN (cart R N') a (@relative_frontier N' s)) /\ ((@IN (cart R N') b (@relative_frontier N' s)) /\ (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_SEGMENT_TO_FRONTIER_SIMPLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@bounded N' s) /\ (@IN (cart R N') x s)) -> exists a : cart R N', exists b : cart R N', (@IN (cart R N') a (@frontier N' s)) /\ ((@IN (cart R N') b (@frontier N' s)) /\ (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_SEGMENT_OUT_TO_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@bounded N' s) /\ ((@IN (cart R N') b (@closure N' s)) /\ (~ (b = a)))) -> exists c : cart R N', (~ (c = a)) /\ ((@IN (cart R N') c (@frontier N' s)) /\ (@IN (cart R N') b (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a c) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_SUBSET_CONVEX_HULL_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (~ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N')))))) -> @SUBSET (cart R N') s (@hull (cart R N') (@convex N') (@relative_frontier N' s)). +Axiom thm_SUBSET_CONVEX_HULL_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @SUBSET (cart R N') s (@hull (cart R N') (@convex N') (@frontier N' s)). +Axiom thm_AFFINE_HULL_RELATIVE_FRONTIER_BOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (~ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N')))))) -> (@hull (cart R N') (@affine N') (@relative_frontier N' s)) = (@hull (cart R N') (@affine N') s). +Axiom thm_KREIN_MILMAN_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@compact N' s) /\ (~ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N'))))))) -> s = (@hull (cart R N') (@convex N') (@relative_frontier N' s)). +Axiom thm_KREIN_MILMAN_RELATIVE_BOUNDARY : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@compact N' s) /\ (~ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N'))))))) -> s = (@hull (cart R N') (@convex N') (@DIFF (cart R N') s (@relative_interior N' s))). +Axiom thm_KREIN_MILMAN_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (@compact N' s)) -> s = (@hull (cart R N') (@convex N') (@frontier N' s)). +Axiom thm_RELATIVE_FRONTIER_NOT_SING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@bounded N' s) -> ~ ((@relative_frontier N' s) = (@INSERT (cart R N') a (@EMPTY (cart R N')))). +Axiom thm_RELATIVE_INTERIOR_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@relative_interior (finite_sum M N') (@PCROSS R M N' s t)) = (@PCROSS R M N' (@relative_interior M s) (@relative_interior N' t)). +Axiom thm_RELATIVE_FRONTIER_EQ_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@relative_frontier N' s) = (@EMPTY (cart R N'))) = (@affine N' s). +Axiom thm_DIAMETER_BOUNDED_BOUND_LT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@bounded N' s) /\ ((@IN (cart R N') x (@relative_interior N' s)) /\ ((@IN (cart R N') y (@closure N' s)) /\ (~ ((@diameter N' s) = (R_of_N (NUMERAL 0%N))))))) -> Rlt (@vector_norm N' (@vector_sub N' x y)) (@diameter N' s). +Axiom thm_DIAMETER_ATTAINED_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (~ ((@diameter N' s) = (R_of_N (NUMERAL 0%N))))) -> exists x : cart R N', exists y : cart R N', (@IN (cart R N') x (@relative_frontier N' s)) /\ ((@IN (cart R N') y (@relative_frontier N' s)) /\ ((@vector_norm N' (@vector_sub N' x y)) = (@diameter N' s))). +Axiom thm_DIAMETER_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (~ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N')))))) -> (@diameter N' (@relative_frontier N' s)) = (@diameter N' s). +Axiom thm_DIAMETER_ATTAINED_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (~ ((@diameter N' s) = (R_of_N (NUMERAL 0%N))))) -> exists x : cart R N', exists y : cart R N', (@IN (cart R N') x (@frontier N' s)) /\ ((@IN (cart R N') y (@frontier N' s)) /\ ((@vector_norm N' (@vector_sub N' x y)) = (@diameter N' s))). +Axiom thm_DIAMETER_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> (@diameter N' (@frontier N' s)) = (@diameter N' s). +Axiom thm_CLOSEST_POINT_IN_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@closed N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@IN (cart R N') x (@hull (cart R N') (@affine N') s)))) -> (@IN (cart R N') (@closest_point N' s x) (@relative_interior N' s)) = (@IN (cart R N') x (@relative_interior N' s)). +Axiom thm_CLOSEST_POINT_IN_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@closed N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@IN (cart R N') x (@DIFF (cart R N') (@hull (cart R N') (@affine N') s) (@relative_interior N' s))))) -> @IN (cart R N') (@closest_point N' s x) (@relative_frontier N' s). +Axiom thm_IN_RELATIVE_INTERIOR_IN_OPEN_SEGMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall a : cart R N', ((@convex N' s) /\ ((@IN (cart R N') x (@relative_interior N' s)) /\ ((@IN (cart R N') a (@hull (cart R N') (@affine N') s)) /\ (~ (x = a))))) -> exists b : cart R N', (@IN (cart R N') b s) /\ (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_IN_RELATIVE_INTERIOR_IN_OPEN_SEGMENT_STRONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall a : cart R N', ((@convex N' s) /\ ((@IN (cart R N') x (@relative_interior N' s)) /\ ((@IN (cart R N') a (@hull (cart R N') (@affine N') s)) /\ (~ (x = a))))) -> exists b : cart R N', (@IN (cart R N') b (@relative_interior N' s)) /\ (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_IN_RELATIVE_INTERIOR_IN_OPEN_SEGMENT_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@convex N' s) -> (@IN (cart R N') x (@relative_interior N' s)) = ((~ (s = (@EMPTY (cart R N')))) /\ (forall a : cart R N', ((@IN (cart R N') a s) /\ (~ (a = x))) -> exists b : cart R N', (@IN (cart R N') b s) /\ (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))))). +Axiom thm_INTER_RELATIVE_INTERIOR_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ (@convex N' t)) -> @SUBSET (cart R N') (@INTER (cart R N') (@relative_interior N' s) (@relative_interior N' t)) (@relative_interior N' (@INTER (cart R N') s t)). +Axiom thm_RELATIVE_INTERIOR_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@convex N' t) /\ (~ ((@INTER (cart R N') (@relative_interior N' s) (@relative_interior N' t)) = (@EMPTY (cart R N')))))) -> (@relative_interior N' (@INTER (cart R N') s t)) = (@INTER (cart R N') (@relative_interior N' s) (@relative_interior N' t)). +Axiom thm_SUBSET_RELATIVE_INTERIOR_INTERSECTING_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@convex N' t) /\ ((@SUBSET (cart R N') s t) /\ (~ ((@INTER (cart R N') s (@relative_interior N' t)) = (@EMPTY (cart R N'))))))) -> @SUBSET (cart R N') (@relative_interior N' s) (@relative_interior N' t). +Axiom thm_CONVEX_HULL_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (@hull (cart R N') (@convex N') (@sphere N' (@pair (cart R N') R a r))) = (@cball N' (@pair (cart R N') R a r)). +Axiom thm_SPHERE_SUBSET_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall r : R, (@convex N' s) -> (@SUBSET (cart R N') (@sphere N' (@pair (cart R N') R a r)) s) = (@SUBSET (cart R N') (@cball N' (@pair (cart R N') R a r)) s). +Axiom thm_DIAMETER_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (@diameter N' (@sphere N' (@pair (cart R N') R a r))) = (@COND R (Rlt r (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL 0%N)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) r)). +Axiom thm_CONVEX_NEARBY_IN_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall r : R, ((@convex N' s) /\ ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)) /\ (Rlt (R_of_N (NUMERAL (BIT1 0%N))) r))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y (@hull (cart R N') (@affine N') s)) /\ (Rle (@distance N' (@pair (cart R N') (cart R N') x y)) d))) -> @IN (cart R N') y (@IMAGE (cart R N') (cart R N') (fun x' : cart R N' => @percent N' r x') s)). +Axiom thm_CONVEX_NEARBY_IN_SCALING_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall r : R, ((@convex N' s) /\ ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)) /\ (Rlt (R_of_N (NUMERAL (BIT1 0%N))) r))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y (@hull (cart R N') (@affine N') s)) /\ (Rle (@distance N' (@pair (cart R N') (cart R N') x y)) d))) -> @IN (cart R N') y (@IMAGE (cart R N') (cart R N') (fun x' : cart R N' => @percent N' r x') (@relative_interior N' s))). +Axiom thm_CONVEX_NEARBY_NOT_IN_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall r : R, ((@convex N' s) /\ ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (Rlt r (R_of_N (NUMERAL (BIT1 0%N))))))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@relative_frontier N' s)) /\ (Rle (@distance N' (@pair (cart R N') (cart R N') x y)) d)) -> ~ (@IN (cart R N') y (@IMAGE (cart R N') (cart R N') (fun x' : cart R N' => @percent N' r x') s))). +Axiom thm_IS_INTERVAL_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' s) -> @is_interval N' (@relative_interior N' s). +Axiom thm_IS_INTERVAL_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' s) -> @is_interval N' (@interior N' s). +Axiom thm_IS_INTERVAL_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' s) -> @is_interval N' (@closure N' s). +Axiom thm_CONVEX_PREIMAGE_CONCAVE_SCALING : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@convex N' t) /\ ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) s) /\ ((@convex_on N' (fun x : cart R N' => Ropp (f x)) t) /\ (forall x : cart R N', (@IN (cart R N') x t) -> Rlt (R_of_N (NUMERAL 0%N)) (f x)))))) -> @convex N' (@GSPEC (cart R N') (fun GEN_PVAR_4605 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4605 ((@IN (cart R N') x t) /\ (@IN (cart R N') (@percent N' (Rinv (f x)) x) s)) x)). +Axiom thm_CONVEXITY_PRESERVING_SHRINK_0 : forall {N' : Type'}, exists f : (cart R N') -> cart R N', exists g : (cart R N') -> cart R N', (@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@UNIV (cart R N')) (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ ((forall s : (cart R N') -> Prop, (@hull (cart R N') (@conic N') (@IMAGE (cart R N') (cart R N') f s)) = (@hull (cart R N') (@conic N') s)) /\ ((forall s : (cart R N') -> Prop, (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s) -> @IN (cart R N') (@vec N' (NUMERAL 0%N)) (@IMAGE (cart R N') (cart R N') f s)) /\ ((forall s : (cart R N') -> Prop, ((@convex N' s) /\ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s)) -> @convex N' (@IMAGE (cart R N') (cart R N') f s)) /\ (forall s : (cart R N') -> Prop, (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)) -> @IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' (@IMAGE (cart R N') (cart R N') f s)))))). +Axiom thm_HAUSDIST_CONVEX_HULLS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ (@bounded N' t)) -> Rle (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@hull (cart R N') (@convex N') s) (@hull (cart R N') (@convex N') t))) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_HAUSDIST_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@bounded N' s) /\ ((@bounded N' t) /\ ((@convex N' s) /\ ((@convex N' t) /\ ((@bounded N' u) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (~ (u = (@EMPTY (cart R N'))))))))))) -> (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@GSPEC (cart R N') (fun GEN_PVAR_4613 : cart R N' => exists x : cart R N', exists e : cart R N', @SETSPEC (cart R N') GEN_PVAR_4613 ((@IN (cart R N') x s) /\ (@IN (cart R N') e u)) (@vector_add N' x e))) (@GSPEC (cart R N') (fun GEN_PVAR_4614 : cart R N' => exists y : cart R N', exists e : cart R N', @SETSPEC (cart R N') GEN_PVAR_4614 ((@IN (cart R N') y t) /\ (@IN (cart R N') e u)) (@vector_add N' y e))))) = (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_HAUSDIST_COMPLEMENTS_CONVEX_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall d : R, forall x : cart R N', ((@convex N' s) /\ ((@bounded N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@bounded N' t) /\ ((~ (@IN (cart R N') x s)) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) d)))))) -> exists y : cart R N', (~ (@IN (cart R N') y t)) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) d). +Axiom thm_HAUSDIST_COMPLEMENTS_CONVEX_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@bounded N' s) /\ ((@convex N' t) /\ ((@bounded N' t) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ (t = (@EMPTY (cart R N'))))))))) -> Rle (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@DIFF (cart R N') (@UNIV (cart R N')) s) (@DIFF (cart R N') (@UNIV (cart R N')) t))) (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_CONVEX_HAUSDIST_LIMIT : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@eventually N (fun n : N => (@bounded N' (s n)) /\ ((@convex N' (s n)) /\ (~ ((s n) = (@EMPTY (cart R N')))))) sequentially) /\ ((@compact N' t) /\ (@FImp unit N (fun n : N => lift (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (s n) t))) (@vec unit (NUMERAL 0%N)) sequentially))) -> @convex N' t. +Axiom thm_COMPLETE_HAUSDIST_CONVEX : forall {N' : Type'}, forall f : N -> (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@closed N' c) /\ ((forall n : N, (@bounded N' (f n)) /\ ((@convex N' (f n)) /\ ((~ ((f n) = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') (f n) c)))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, ((N.ge m N'') /\ (N.ge n N'')) -> Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f m) (f n))) e))) -> exists s : (cart R N') -> Prop, (@compact N' s) /\ ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') s c) /\ (@FImp unit N (fun n : N => lift (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f n) s))) (@vec unit (NUMERAL 0%N)) sequentially)))). +Axiom thm_COMPLETE_HAUSDIST_CONVEX_UNIV : forall {N' : Type'}, forall f : N -> (cart R N') -> Prop, ((forall n : N, (@bounded N' (f n)) /\ ((@convex N' (f n)) /\ (~ ((f n) = (@EMPTY (cart R N')))))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, ((N.ge m N'') /\ (N.ge n N'')) -> Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f m) (f n))) e)) -> exists s : (cart R N') -> Prop, (@compact N' s) /\ ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@FImp unit N (fun n : N => lift (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f n) s))) (@vec unit (NUMERAL 0%N)) sequentially))). +Axiom thm_BLASCHKE : forall {N' : Type'}, forall f : N -> (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' c) /\ (forall n : N, (@convex N' (f n)) /\ ((~ ((f n) = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') (f n) c)))) -> exists r : N -> N, exists s : (cart R N') -> Prop, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ ((@compact N' s) /\ ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') s c) /\ (@FImp unit N (fun n : N => lift (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f (r n)) s))) (@vec unit (NUMERAL 0%N)) sequentially))))). +Axiom thm_BLASCHKE_UNIV : forall {N' : Type'}, forall f : N -> (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@bounded N' c) /\ (forall n : N, (@convex N' (f n)) /\ ((~ ((f n) = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') (f n) c)))) -> exists r : N -> N, exists s : (cart R N') -> Prop, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ ((@compact N' s) /\ ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@FImp unit N (fun n : N => lift (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (f (r n)) s))) (@vec unit (NUMERAL 0%N)) sequentially)))). +Axiom thm_CONVEX_CLOSURE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (~ ((@interior N' s) = (@EMPTY (cart R N'))))) -> (@closure N' (@interior N' s)) = (@closure N' s). +Axiom thm_EMPTY_INTERIOR_SUBSET_HYPERPLANE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@interior N' s) = (@EMPTY (cart R N')))) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (@SUBSET (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4616 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4616 ((@dot N' a x) = b) x))). +Axiom thm_CONVEX_INTERIOR_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@interior N' (@closure N' s)) = (@interior N' s). +Axiom thm_FRONTIER_CLOSURE_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@frontier N' (@closure N' s)) = (@frontier N' s). +Axiom thm_CONVEX_CLOSURE_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@closure N' (@relative_interior N' s)) = (@closure N' s). +Axiom thm_OPEN_IN_CONVEX_MEETS_RELATIVE_INTERIOR : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@convex N' u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (~ (s = (@EMPTY (cart R N')))))) -> ~ ((@INTER (cart R N') s (@relative_interior N' u)) = (@EMPTY (cart R N'))). +Axiom thm_OPEN_SUBSET_CLOSURE_CONVEX : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@_open N' u) /\ (@convex N' s)) -> (@SUBSET (cart R N') u (@closure N' s)) = (@SUBSET (cart R N') u (@interior N' s)). +Axiom thm_SETDIST_RELATIVE_INTERIOR : forall {_982105 _982134 : Type'}, (forall s : (cart R _982105) -> Prop, forall t : (cart R _982105) -> Prop, (@convex _982105 s) -> (@setdist _982105 (@pair ((cart R _982105) -> Prop) ((cart R _982105) -> Prop) (@relative_interior _982105 s) t)) = (@setdist _982105 (@pair ((cart R _982105) -> Prop) ((cart R _982105) -> Prop) s t))) /\ (forall s : (cart R _982134) -> Prop, forall t : (cart R _982134) -> Prop, (@convex _982134 t) -> (@setdist _982134 (@pair ((cart R _982134) -> Prop) ((cart R _982134) -> Prop) s (@relative_interior _982134 t))) = (@setdist _982134 (@pair ((cart R _982134) -> Prop) ((cart R _982134) -> Prop) s t))). +Axiom thm_HAUSDIST_RELATIVE_INTERIOR : forall {_982166 _982195 : Type'}, (forall s : (cart R _982166) -> Prop, forall t : (cart R _982166) -> Prop, (@convex _982166 s) -> (@hausdist _982166 (@pair ((cart R _982166) -> Prop) ((cart R _982166) -> Prop) (@relative_interior _982166 s) t)) = (@hausdist _982166 (@pair ((cart R _982166) -> Prop) ((cart R _982166) -> Prop) s t))) /\ (forall s : (cart R _982195) -> Prop, forall t : (cart R _982195) -> Prop, (@convex _982195 t) -> (@hausdist _982195 (@pair ((cart R _982195) -> Prop) ((cart R _982195) -> Prop) s (@relative_interior _982195 t))) = (@hausdist _982195 (@pair ((cart R _982195) -> Prop) ((cart R _982195) -> Prop) s t))). +Axiom thm_AFFINE_HULL_RELATIVE_INTERIOR : forall {_982234 : Type'}, forall s : (cart R _982234) -> Prop, (@convex _982234 s) -> (@hull (cart R _982234) (@affine _982234) (@relative_interior _982234 s)) = (@hull (cart R _982234) (@affine _982234) s). +Axiom thm_AFF_DIM_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@aff_dim N' (@relative_interior N' s)) = (@aff_dim N' s). +Axiom thm_CONVEX_RELATIVE_INTERIOR_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@relative_interior N' (@closure N' s)) = (@relative_interior N' s). +Axiom thm_RELATIVE_FRONTIER_CLOSURE : forall {_982660 : Type'}, forall s : (cart R _982660) -> Prop, (@convex _982660 s) -> (@relative_frontier _982660 (@closure _982660 s)) = (@relative_frontier _982660 s). +Axiom thm_RELATIVE_FRONTIER_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@relative_frontier N' (@relative_interior N' s)) = (@relative_frontier N' s). +Axiom thm_CONNECTED_INTER_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@SUBSET (cart R N') s (@hull (cart R N') (@affine N') t)) /\ ((~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N')))) /\ (~ ((@DIFF (cart R N') s t) = (@EMPTY (cart R N'))))))) -> ~ ((@INTER (cart R N') s (@relative_frontier N' t)) = (@EMPTY (cart R N'))). +Axiom thm_CLOSED_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, @closed N' (@relative_frontier N' s). +Axiom thm_CLOSED_RELATIVE_BOUNDARY : forall {_982835 : Type'}, forall s : (cart R _982835) -> Prop, (@closed _982835 s) -> @closed _982835 (@DIFF (cart R _982835) s (@relative_interior _982835 s)). +Axiom thm_COMPACT_RELATIVE_BOUNDARY : forall {_982851 : Type'}, forall s : (cart R _982851) -> Prop, (@compact _982851 s) -> @compact _982851 (@DIFF (cart R _982851) s (@relative_interior _982851 s)). +Axiom thm_BOUNDED_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @bounded N' (@relative_frontier N' s). +Axiom thm_COMPACT_RELATIVE_FRONTIER_BOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @compact N' (@relative_frontier N' s). +Axiom thm_COMPACT_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> @compact N' (@relative_frontier N' s). +Axiom thm_CONVEX_SAME_RELATIVE_INTERIOR_CLOSURE : forall {_982923 : Type'}, forall s : (cart R _982923) -> Prop, forall t : (cart R _982923) -> Prop, ((@convex _982923 s) /\ (@convex _982923 t)) -> ((@relative_interior _982923 s) = (@relative_interior _982923 t)) = ((@closure _982923 s) = (@closure _982923 t)). +Axiom thm_CONVEX_SAME_RELATIVE_INTERIOR_CLOSURE_STRADDLE : forall {_982961 : Type'}, forall s : (cart R _982961) -> Prop, forall t : (cart R _982961) -> Prop, ((@convex _982961 s) /\ (@convex _982961 t)) -> ((@relative_interior _982961 s) = (@relative_interior _982961 t)) = ((@SUBSET (cart R _982961) (@relative_interior _982961 s) t) /\ (@SUBSET (cart R _982961) t (@closure _982961 s))). +Axiom thm_RELATIVE_INTERIOR_LINEAR_IMAGE_CONVEX : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (@convex M s)) -> (@relative_interior N' (@IMAGE (cart R M) (cart R N') f s)) = (@IMAGE (cart R M) (cart R N') f (@relative_interior M s)). +Axiom thm_RELATIVE_INTERIOR_LINEAR_PREIMAGE_CONVEX : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, ((@linear M N' f) /\ ((@convex N' s) /\ (~ ((@GSPEC (cart R M) (fun GEN_PVAR_4627 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4627 (@IN (cart R N') (f x) (@relative_interior N' s)) x)) = (@EMPTY (cart R M)))))) -> (@relative_interior M (@GSPEC (cart R M) (fun GEN_PVAR_4628 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4628 (@IN (cart R N') (f x) s) x))) = (@GSPEC (cart R M) (fun GEN_PVAR_4629 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4629 (@IN (cart R N') (f x) (@relative_interior N' s)) x)). +Axiom thm_RELATIVE_INTERIOR_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ (@convex N' t)) -> (@relative_interior N' (@GSPEC (cart R N') (fun GEN_PVAR_4631 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4631 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))) = (@GSPEC (cart R N') (fun GEN_PVAR_4632 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4632 ((@IN (cart R N') x (@relative_interior N' s)) /\ (@IN (cart R N') y (@relative_interior N' t))) (@vector_add N' x y))). +Axiom thm_CLOSURE_INTERS_CONVEX : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @convex N' s) /\ (~ ((@INTERS (cart R N') (@IMAGE ((cart R N') -> Prop) ((cart R N') -> Prop) (@relative_interior N') f)) = (@EMPTY (cart R N'))))) -> (@closure N' (@INTERS (cart R N') f)) = (@INTERS (cart R N') (@IMAGE ((cart R N') -> Prop) ((cart R N') -> Prop) (@closure N') f)). +Axiom thm_CLOSURE_INTERS_CONVEX_OPEN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@convex N' s) /\ (@_open N' s)) -> (@closure N' (@INTERS (cart R N') f)) = (@COND ((cart R N') -> Prop) ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))) (@EMPTY (cart R N')) (@INTERS (cart R N') (@IMAGE ((cart R N') -> Prop) ((cart R N') -> Prop) (@closure N') f))). +Axiom thm_CLOSURE_INTER_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@convex N' t) /\ (~ ((@INTER (cart R N') (@relative_interior N' s) (@relative_interior N' t)) = (@EMPTY (cart R N')))))) -> (@closure N' (@INTER (cart R N') s t)) = (@INTER (cart R N') (@closure N' s) (@closure N' t)). +Axiom thm_CLOSURE_INTER_CONVEX_OPEN : forall {_983879 : Type'}, forall s : (cart R _983879) -> Prop, forall t : (cart R _983879) -> Prop, ((@convex _983879 s) /\ ((@_open _983879 s) /\ ((@convex _983879 t) /\ (@_open _983879 t)))) -> (@closure _983879 (@INTER (cart R _983879) s t)) = (@COND ((cart R _983879) -> Prop) ((@INTER (cart R _983879) s t) = (@EMPTY (cart R _983879))) (@EMPTY (cart R _983879)) (@INTER (cart R _983879) (@closure _983879 s) (@closure _983879 t))). +Axiom thm_CLOSURE_CONVEX_INTER_SUPERSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((~ ((@interior N' s) = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') (@interior N' s) (@closure N' t)))) -> (@closure N' (@INTER (cart R N') s t)) = (@closure N' s). +Axiom thm_CLOSURE_DYADIC_RATIONALS_IN_CONVEX_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (~ ((@interior N' s) = (@EMPTY (cart R N'))))) -> (@closure N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4633 : cart R N' => exists n : N, exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4633 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> integer (@dollar R N' x i)) (@percent N' (Rinv (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) x))))) = (@closure N' s). +Axiom thm_CLOSURE_RATIONALS_IN_CONVEX_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (~ ((@interior N' s) = (@EMPTY (cart R N'))))) -> (@closure N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_4634 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4634 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> rational (@dollar R N' x i)) x)))) = (@closure N' s). +Axiom thm_RELATIVE_INTERIOR_CONVEX_INTER_AFFINE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@affine N' t) /\ (~ ((@INTER (cart R N') (@interior N' s) t) = (@EMPTY (cart R N')))))) -> (@relative_interior N' (@INTER (cart R N') s t)) = (@INTER (cart R N') (@interior N' s) t). +Axiom thm_CONNECTED_WITH_RELATIVE_INTERIOR_OPEN_IN_CONVEX : forall {N' : Type'}, forall c : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@convex N' c) /\ ((@connected N' s) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') c) s))) -> @connected N' (@INTER (cart R N') (@relative_interior N' c) s). +Axiom thm_RELATIVE_INTERIOR_CBALL_INTER_AFFINE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall r : R, ((@affine N' s) /\ ((@IN (cart R N') a s) /\ (~ (r = (R_of_N (NUMERAL 0%N)))))) -> (@relative_interior N' (@INTER (cart R N') (@cball N' (@pair (cart R N') R a r)) s)) = (@INTER (cart R N') (@ball N' (@pair (cart R N') R a r)) s). +Axiom thm_NONDECREASING_EXTENDS_TO_CONVEX_HULL : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) -> exists g : (cart R unit) -> cart R unit, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@hull (cart R unit) (@convex unit) s)) /\ ((@IN (cart R unit) y (@hull (cart R unit) (@convex unit) s)) /\ (Rle (drop x) (drop y)))) -> Rle (drop (g x)) (drop (g y))) /\ (forall x : cart R unit, (@IN (cart R unit) x s) -> (g x) = (f x)). +Axiom thm_NONDECREASING_EXTENDS_FROM_DENSE : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, (((@closure unit s) = (@UNIV (cart R unit))) /\ (((@closure unit (@IMAGE (cart R unit) (cart R unit) f s)) = (@UNIV (cart R unit))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))))) -> exists g : (cart R unit) -> cart R unit, (forall x : cart R unit, forall y : cart R unit, (Rle (drop x) (drop y)) -> Rle (drop (g x)) (drop (g y))) /\ ((forall x : cart R unit, (@IN (cart R unit) x s) -> (g x) = (f x)) /\ ((@continuous_on unit unit g (@UNIV (cart R unit))) /\ ((@IMAGE (cart R unit) (cart R unit) g (@UNIV (cart R unit))) = (@UNIV (cart R unit))))). +Axiom thm_INCREASING_EXTENDS_FROM_DENSE : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, (((@closure unit s) = (@UNIV (cart R unit))) /\ (((@closure unit (@IMAGE (cart R unit) (cart R unit) f s)) = (@UNIV (cart R unit))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rlt (drop x) (drop y)))) -> Rlt (drop (f x)) (drop (f y))))) -> exists g : (cart R unit) -> cart R unit, (forall x : cart R unit, forall y : cart R unit, (Rlt (drop (g x)) (drop (g y))) = (Rlt (drop x) (drop y))) /\ ((forall x : cart R unit, (@IN (cart R unit) x s) -> (g x) = (f x)) /\ ((@continuous_on unit unit g (@UNIV (cart R unit))) /\ ((@IMAGE (cart R unit) (cart R unit) g (@UNIV (cart R unit))) = (@UNIV (cart R unit))))). +Axiom thm_BOUNDED_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @bounded N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', @bounded N' (@open_segment N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_SEGMENT_IMAGE_INTERVAL : forall {_985277 _985283 : Type'}, (forall a : cart R _985277, forall b : cart R _985277, (@closed_segment _985277 (@cons (prod (cart R _985277) (cart R _985277)) (@pair (cart R _985277) (cart R _985277) a b) (@nil (prod (cart R _985277) (cart R _985277))))) = (@IMAGE (cart R unit) (cart R _985277) (fun u : cart R unit => @vector_add _985277 (@percent _985277 (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (drop u)) a) (@percent _985277 (drop u) b)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) /\ (forall a : cart R _985283, forall b : cart R _985283, (~ (a = b)) -> (@open_segment _985283 (@pair (cart R _985283) (cart R _985283) a b)) = (@IMAGE (cart R unit) (cart R _985283) (fun u : cart R unit => @vector_add _985283 (@percent _985283 (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (drop u)) a) (@percent _985283 (drop u) b)) (@open_interval unit (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N))))))). +Axiom thm_CLOSURE_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@closure N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', (@closure N' (@open_segment N' (@pair (cart R N') (cart R N') a b))) = (@COND ((cart R N') -> Prop) (a = b) (@EMPTY (cart R N')) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_CLOSED_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @closed N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', (@closed N' (@open_segment N' (@pair (cart R N') (cart R N') a b))) = (a = b)). +Axiom thm_COMPACT_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @compact N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', (@compact N' (@open_segment N' (@pair (cart R N') (cart R N') a b))) = (a = b)). +Axiom thm_AFFINE_HULL_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@hull (cart R N') (@affine N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', (@hull (cart R N') (@affine N') (@open_segment N' (@pair (cart R N') (cart R N') a b))) = (@COND ((cart R N') -> Prop) (a = b) (@EMPTY (cart R N')) (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))))). +Axiom thm_SEGMENT_AS_BALL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@INTER (cart R N') (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))) (@cball N' (@pair (cart R N') R (@percent N' (Rinv (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (@vector_add N' a b)) (Rdiv (@vector_norm N' (@vector_sub N' b a)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))) /\ (forall a : cart R N', forall b : cart R N', (@open_segment N' (@pair (cart R N') (cart R N') a b)) = (@INTER (cart R N') (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))) (@ball N' (@pair (cart R N') R (@percent N' (Rinv (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (@vector_add N' a b)) (Rdiv (@vector_norm N' (@vector_sub N' b a)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_CONVEX_SEGMENT : forall {_986033 _986035 : Type'}, (forall a : cart R _986033, forall b : cart R _986033, @convex _986033 (@closed_segment _986033 (@cons (prod (cart R _986033) (cart R _986033)) (@pair (cart R _986033) (cart R _986033) a b) (@nil (prod (cart R _986033) (cart R _986033)))))) /\ (forall a : cart R _986035, forall b : cart R _986035, @convex _986035 (@open_segment _986035 (@pair (cart R _986035) (cart R _986035) a b))). +Axiom thm_RELATIVE_INTERIOR_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@relative_interior N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@COND ((cart R N') -> Prop) (a = b) (@INSERT (cart R N') a (@EMPTY (cart R N'))) (@open_segment N' (@pair (cart R N') (cart R N') a b)))) /\ (forall a : cart R N', forall b : cart R N', (@relative_interior N' (@open_segment N' (@pair (cart R N') (cart R N') a b))) = (@open_segment N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_OPEN_IN_SEGMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) s) /\ (@SUBSET (cart R N') s (@hull (cart R N') (@affine N') (@open_segment N' (@pair (cart R N') (cart R N') a b))))) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@open_segment N' (@pair (cart R N') (cart R N') a b)). +Axiom thm_AFF_DIM_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@aff_dim N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@COND Z (a = b) (Z_of_N (NUMERAL 0%N)) (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (forall a : cart R N', forall b : cart R N', (@aff_dim N' (@open_segment N' (@pair (cart R N') (cart R N') a b))) = (@COND Z (a = b) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_CONVEX_SEMIOPEN_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @convex N' (@DELETE (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) a)) /\ (forall a : cart R N', forall b : cart R N', @convex N' (@DELETE (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) b)). +Axiom thm_CONNECTED_SEMIOPEN_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @connected N' (@DELETE (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) a)) /\ (forall a : cart R N', forall b : cart R N', @connected N' (@DELETE (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) b)). +Axiom thm_SEGMENT_EQ_EMPTY : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', ~ ((@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) /\ (forall a : cart R N', forall b : cart R N', ((@open_segment N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N'))) = (a = b)). +Axiom thm_FINITE_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@FINITE (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (a = b)) /\ (forall a : cart R N', forall b : cart R N', (@FINITE (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b))) = (a = b)). +Axiom thm_SEGMENT_EQ_SING : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', forall c : cart R N', ((@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@INSERT (cart R N') c (@EMPTY (cart R N')))) = ((a = c) /\ (b = c))) /\ (forall a : cart R N', forall b : cart R N', forall c : cart R N', ~ ((@open_segment N' (@pair (cart R N') (cart R N') a b)) = (@INSERT (cart R N') c (@EMPTY (cart R N'))))). +Axiom thm_SEGMENT_SUBSET_RELATIVE_FRONTIER_CONVEX_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall c : cart R N', ((@convex N' s) /\ ((@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) /\ ((~ (a = b)) /\ ((~ (a = c)) /\ ((~ (b = c)) /\ (@SUBSET (cart R N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N'))))) (@relative_frontier N' s))))))) -> @SUBSET (cart R N') (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) (@relative_frontier N' s). +Axiom thm_SUBSET_SEGMENT_OPEN_CLOSED : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', (@SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@open_segment N' (@pair (cart R N') (cart R N') c d))) = ((a = b) \/ (@SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_SUBSET_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', (@SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) = ((@IN (cart R N') a (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) /\ (@IN (cart R N') b (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', (@SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@open_segment N' (@pair (cart R N') (cart R N') c d))) = ((@IN (cart R N') a (@open_segment N' (@pair (cart R N') (cart R N') c d))) /\ (@IN (cart R N') b (@open_segment N' (@pair (cart R N') (cart R N') c d))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', (@SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) = ((a = b) \/ ((@IN (cart R N') a (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) /\ (@IN (cart R N') b (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))))))) /\ (forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', (@SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@open_segment N' (@pair (cart R N') (cart R N') c d))) = ((a = b) \/ ((@IN (cart R N') a (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) /\ (@IN (cart R N') b (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))))))))). +Axiom thm_INTERIOR_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@interior N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@COND ((cart R N') -> Prop) (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) (@EMPTY (cart R N')) (@open_segment N' (@pair (cart R N') (cart R N') a b)))) /\ (forall a : cart R N', forall b : cart R N', (@interior N' (@open_segment N' (@pair (cart R N') (cart R N') a b))) = (@COND ((cart R N') -> Prop) (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) (@EMPTY (cart R N')) (@open_segment N' (@pair (cart R N') (cart R N') a b)))). +Axiom thm_FRONTIER_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@frontier N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@COND ((cart R N') -> Prop) (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', (@frontier N' (@open_segment N' (@pair (cart R N') (cart R N') a b))) = (@COND ((cart R N') -> Prop) (a = b) (@EMPTY (cart R N')) (@COND ((cart R N') -> Prop) (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))))). +Axiom thm_SEGMENT_EQ : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) = ((@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))) = (@INSERT (cart R N') c (@INSERT (cart R N') d (@EMPTY (cart R N')))))) /\ ((forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ~ ((@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@open_segment N' (@pair (cart R N') (cart R N') c d)))) /\ ((forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ~ ((@open_segment N' (@pair (cart R N') (cart R N') a b)) = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))))) /\ (forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((@open_segment N' (@pair (cart R N') (cart R N') a b)) = (@open_segment N' (@pair (cart R N') (cart R N') c d))) = (((a = b) /\ (c = d)) \/ ((@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))) = (@INSERT (cart R N') c (@INSERT (cart R N') d (@EMPTY (cart R N'))))))))). +Axiom thm_COLLINEAR_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @collinear N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', @collinear N' (@open_segment N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_INTER_SEGMENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', ((@IN (cart R N') b (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a c) (@nil (prod (cart R N') (cart R N')))))) \/ (~ (@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))))) -> (@INTER (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') b c) (@nil (prod (cart R N') (cart R N')))))) = (@INSERT (cart R N') b (@EMPTY (cart R N'))). +Axiom thm_CONVEX_LINE_INTERSECTION_UNIQUE_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@convex N' s) /\ ((@closed N' s) /\ ((@IN (cart R N') a (@relative_frontier N' s)) /\ ((@IN (cart R N') b (@relative_frontier N' s)) /\ (~ ((@INTER (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@relative_interior N' s)) = (@EMPTY (cart R N')))))))) -> (@INTER (cart R N') s (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_CONVEX_LINE_INTERSECTION_UNIQUE_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@convex N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s) /\ ((@IN (cart R N') a (@relative_frontier N' s)) /\ ((@IN (cart R N') b (@relative_frontier N' s)) /\ (~ ((@INTER (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) s) = (@EMPTY (cart R N')))))))) -> (@INTER (cart R N') s (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) = (@open_segment N' (@pair (cart R N') (cart R N') a b)). +Axiom thm_CONVEX_LINE_INTERSECTION_UNIQUE_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@convex N' s) /\ ((@_open N' s) /\ ((@IN (cart R N') a (@relative_frontier N' s)) /\ ((@IN (cart R N') b (@relative_frontier N' s)) /\ (~ ((@INTER (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) s) = (@EMPTY (cart R N')))))))) -> (@INTER (cart R N') s (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) = (@open_segment N' (@pair (cart R N') (cart R N') a b)). +Axiom thm_CONVEX_LINE_INTERSECTIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@convex N' s) /\ ((@IN (cart R N') a (@relative_frontier N' s)) /\ ((@IN (cart R N') b (@relative_frontier N' s)) /\ (~ ((@INTER (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@relative_interior N' s)) = (@EMPTY (cart R N'))))))) -> (~ (a = b)) /\ (((@INTER (cart R N') (@closure N' s) (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (((@INTER (cart R N') (@relative_interior N' s) (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) = (@open_segment N' (@pair (cart R N') (cart R N') a b))) /\ ((@INTER (cart R N') (@relative_frontier N' s) (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) = (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))))). +Axiom thm_CONVEX_LINE_INTERSECTIONS_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@convex N' s) /\ ((@IN (cart R N') a (@relative_frontier N' s)) /\ ((@IN (cart R N') b (@relative_frontier N' s)) /\ (~ (@SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@relative_frontier N' s)))))) -> (~ (a = b)) /\ (((@INTER (cart R N') (@closure N' s) (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (((@INTER (cart R N') (@relative_interior N' s) (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) = (@open_segment N' (@pair (cart R N') (cart R N') a b))) /\ ((@INTER (cart R N') (@relative_frontier N' s) (@hull (cart R N') (@affine N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))))) = (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))))). +Axiom thm_CLOSED_STRIP_COMPONENT_LE : forall {N' : Type'}, forall a : R, forall k : N, @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_4643 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4643 (Rle (Rabs (@dollar R N' x k)) a) x)). +Axiom thm_OPEN_STRIP_COMPONENT_LT : forall {N' : Type'}, forall a : R, forall k : N, @_open N' (@GSPEC (cart R N') (fun GEN_PVAR_4647 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4647 (Rlt (Rabs (@dollar R N' x k)) a) x)). +Axiom thm_INTERIOR_STRIP_COMPONENT_LE : forall {N' : Type'}, forall a : R, forall k : N, (@interior N' (@GSPEC (cart R N') (fun GEN_PVAR_4651 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4651 (Rle (Rabs (@dollar R N' x k)) a) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_4652 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4652 (Rlt (Rabs (@dollar R N' x k)) a) x)). +Axiom thm_CLOSURE_STRIP_COMPONENT_LT : forall {N' : Type'}, forall a : R, forall k : N, (@closure N' (@GSPEC (cart R N') (fun GEN_PVAR_4653 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4653 (Rlt (Rabs (@dollar R N' x k)) a) x))) = (@COND ((cart R N') -> Prop) (a = (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R N')) (@GSPEC (cart R N') (fun GEN_PVAR_4654 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4654 (Rle (Rabs (@dollar R N' x k)) a) x))). +Axiom thm_FRONTIER_STRIP_COMPONENT_LE : forall {N' : Type'}, forall a : R, forall k : N, (@frontier N' (@GSPEC (cart R N') (fun GEN_PVAR_4655 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4655 (Rle (Rabs (@dollar R N' x k)) a) x))) = (@GSPEC (cart R N') (fun GEN_PVAR_4656 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4656 ((Rabs (@dollar R N' x k)) = a) x)). +Axiom thm_FRONTIER_STRIP_COMPONENT_LT : forall {N' : Type'}, forall a : R, forall k : N, (@frontier N' (@GSPEC (cart R N') (fun GEN_PVAR_4657 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4657 (Rlt (Rabs (@dollar R N' x k)) a) x))) = (@COND ((cart R N') -> Prop) (a = (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R N')) (@GSPEC (cart R N') (fun GEN_PVAR_4658 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4658 ((Rabs (@dollar R N' x k)) = a) x))). +Axiom thm_DENSE_COMPLEMENT_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((N.lt (@dim N' t) (@dim N' s)) /\ (@subspace N' s)) -> (@closure N' (@DIFF (cart R N') s t)) = s. +Axiom thm_DENSE_COMPLEMENT_AFFINE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((int_lt (@aff_dim N' t) (@aff_dim N' s)) /\ (@affine N' s)) -> (@closure N' (@DIFF (cart R N') s t)) = s. +Axiom thm_DENSE_COMPLEMENT_OPEN_IN_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((int_lt (@aff_dim N' t) (@aff_dim N' s)) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s)) -> (@closure N' (@DIFF (cart R N') s t)) = (@closure N' s). +Axiom thm_DENSE_COMPLEMENT_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((int_lt (@aff_dim N' t) (@aff_dim N' s)) /\ (@convex N' s)) -> (@closure N' (@DIFF (cart R N') s t)) = (@closure N' s). +Axiom thm_DENSE_COMPLEMENT_CONVEX_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((int_lt (@aff_dim N' t) (@aff_dim N' s)) /\ ((@convex N' s) /\ (@closed N' s))) -> (@closure N' (@DIFF (cart R N') s t)) = s. +Axiom thm_COMPACT_FRONTIER_LINE_LEMMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@compact N' s) /\ ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) s) /\ (~ (x = (@vec N' (NUMERAL 0%N)))))) -> exists u : R, (Rle (R_of_N (NUMERAL 0%N)) u) /\ ((@IN (cart R N') (@percent N' u x) (@frontier N' s)) /\ (forall v : R, (Rlt u v) -> ~ (@IN (cart R N') (@percent N' v x) s))). +Axiom thm_STARLIKE_COMPACT_PROJECTIVE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@compact N' s) /\ ((@IN (cart R N') a (@relative_interior N' s)) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a x)) (@relative_interior N' s)))) -> (@homeomorphic N' N' (@DIFF (cart R N') s (@relative_interior N' s)) (@INTER (cart R N') (@sphere N' (@pair (cart R N') R a (R_of_N (NUMERAL (BIT1 0%N))))) (@hull (cart R N') (@affine N') s))) /\ ((@homeomorphic N' N' s (@INTER (cart R N') (@cball N' (@pair (cart R N') R a (R_of_N (NUMERAL (BIT1 0%N))))) (@hull (cart R N') (@affine N') s))) /\ (@homeomorphic N' N' (@relative_interior N' s) (@INTER (cart R N') (@ball N' (@pair (cart R N') R a (R_of_N (NUMERAL (BIT1 0%N))))) (@hull (cart R N') (@affine N') s)))). +Axiom thm_HOMEOMORPHIC_CONVEX_COMPACT_SETS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@convex M s) /\ ((@compact M s) /\ ((@convex N' t) /\ ((@compact N' t) /\ ((@aff_dim M s) = (@aff_dim N' t)))))) -> @homeomorphic N' M s t. +Axiom thm_HOMEOMORPHIC_RELATIVE_FRONTIERS_CONVEX_BOUNDED_SETS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@convex M s) /\ ((@bounded M s) /\ ((@convex N' t) /\ ((@bounded N' t) /\ ((@aff_dim M s) = (@aff_dim N' t)))))) -> @homeomorphic N' M (@relative_frontier M s) (@relative_frontier N' t). +Axiom thm_HOMEOMORPHIC_RELATIVE_INTERIORS_CONVEX_COMPACT_SETS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@convex M s) /\ ((@compact M s) /\ ((@convex N' t) /\ ((@compact N' t) /\ ((@aff_dim M s) = (@aff_dim N' t)))))) -> @homeomorphic N' M (@relative_interior M s) (@relative_interior N' t). +Axiom thm_HOMEOMORPHIC_CONVEX_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@compact N' s) /\ ((~ ((@interior N' s) = (@EMPTY (cart R N')))) /\ ((@convex N' t) /\ ((@compact N' t) /\ (~ ((@interior N' t) = (@EMPTY (cart R N'))))))))) -> @homeomorphic N' N' s t. +Axiom thm_HOMEOMORPHIC_CONVEX_COMPACT_CBALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall b : cart R N', forall e : R, ((@convex N' s) /\ ((@compact N' s) /\ ((~ ((@interior N' s) = (@EMPTY (cart R N')))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)))) -> @homeomorphic N' N' s (@cball N' (@pair (cart R N') R b e)). +Axiom thm_HOMEOMORPHIC_CLOSED_INTERVALS : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))) /\ (~ ((@open_interval N' (@pair (cart R N') (cart R N') c d)) = (@EMPTY (cart R N'))))) -> @homeomorphic N' N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_HOMEOMORPHIC_RELATIVELY_OPEN_CONVEX_SETS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@convex M s) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@hull (cart R M) (@affine M) s)) s) /\ ((@convex N' t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') t)) t) /\ ((@aff_dim M s) = (@aff_dim N' t)))))) -> @homeomorphic N' M s t. +Axiom thm_HOMEOMORPHIC_CONVEX_OPEN_SETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@_open N' s) /\ ((@convex N' t) /\ ((@_open N' t) /\ ((s = (@EMPTY (cart R N'))) = (t = (@EMPTY (cart R N')))))))) -> @homeomorphic N' N' s t. +Axiom thm_LIPSCHITZ_CONVEX_SPHERICAL_PROJECTION_EXPLICIT : forall {N' : Type'}, forall r : R, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@convex N' s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) s) /\ ((@SUBSET (cart R N') (@INTER (cart R N') (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r)) (@hull (cart R N') (@affine N') s)) (@relative_interior N' s)) /\ ((@IN (cart R N') x (@relative_frontier N' s)) /\ (@IN (cart R N') y (@relative_frontier N' s))))))) -> Rle (@distance N' (@pair (cart R N') (cart R N') (@percent N' (Rinv (@vector_norm N' x)) x) (@percent N' (Rinv (@vector_norm N' y)) y))) (Rmult (Rinv r) (@distance N' (@pair (cart R N') (cart R N') x y))). +Axiom thm_LIPSCHITZ_CONVEX_SPHERICAL_PROJECTION : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s))) -> exists B : R, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@relative_frontier N' s)) /\ (@IN (cart R N') y (@relative_frontier N' s))) -> Rle (@distance N' (@pair (cart R N') (cart R N') (@percent N' (Rinv (@vector_norm N' x)) x) (@percent N' (Rinv (@vector_norm N' y)) y))) (Rmult B (@distance N' (@pair (cart R N') (cart R N') x y))). +Axiom thm_INVERSE_LIPSCHITZ_CONVEX_SPHERICAL_PROJECTION_EXPLICIT : forall {N' : Type'}, forall r : R, forall R' : R, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@convex N' s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) s) /\ ((@SUBSET (cart R N') (@INTER (cart R N') (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r)) (@hull (cart R N') (@affine N') s)) (@relative_interior N' s)) /\ ((@SUBSET (cart R N') s (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) R'))) /\ ((@IN (cart R N') x (@relative_frontier N' s)) /\ (@IN (cart R N') y (@relative_frontier N' s)))))))) -> Rge (@distance N' (@pair (cart R N') (cart R N') (@percent N' (Rinv (@vector_norm N' x)) x) (@percent N' (Rinv (@vector_norm N' y)) y))) (Rmult (Rdiv r (real_pow R' (NUMERAL (BIT0 (BIT1 0%N))))) (@distance N' (@pair (cart R N') (cart R N') x y))). +Axiom thm_INVERSE_LIPSCHITZ_CONVEX_SPHERICAL_PROJECTION : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@bounded N' s) /\ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)))) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@relative_frontier N' s)) /\ (@IN (cart R N') y (@relative_frontier N' s))) -> Rge (@distance N' (@pair (cart R N') (cart R N') (@percent N' (Rinv (@vector_norm N' x)) x) (@percent N' (Rinv (@vector_norm N' y)) y))) (Rmult B (@distance N' (@pair (cart R N') (cart R N') x y)))). +Axiom thm_BILIPSCHITZ_HOMEOMORPHISM_SPHERICAL_PROJECTION : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@bounded N' s) /\ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)))) -> exists g : (cart R N') -> cart R N', (@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@relative_frontier N' s) (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@hull (cart R N') (@affine N') s))) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') (fun x : cart R N' => @percent N' (Rinv (@vector_norm N' x)) x) g)) /\ ((exists B : R, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@relative_frontier N' s)) /\ (@IN (cart R N') y (@relative_frontier N' s))) -> Rle (@vector_norm N' (@vector_sub N' (@percent N' (Rinv (@vector_norm N' x)) x) (@percent N' (Rinv (@vector_norm N' y)) y))) (Rmult B (@vector_norm N' (@vector_sub N' x y)))) /\ (exists B : R, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@hull (cart R N') (@affine N') s))) /\ (@IN (cart R N') y (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@hull (cart R N') (@affine N') s)))) -> Rle (@vector_norm N' (@vector_sub N' (g x) (g y))) (Rmult B (@vector_norm N' (@vector_sub N' x y))))). +Axiom thm_BILIPSCHITZ_HOMEOMORPHISM_RELATIVE_FRONTIERS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@convex M s) /\ ((@bounded M s) /\ ((@convex N' t) /\ ((@bounded N' t) /\ ((@aff_dim M s) = (@aff_dim N' t)))))) -> exists f : (cart R M) -> cart R N', exists g : (cart R N') -> cart R M, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) (@relative_frontier M s) (@relative_frontier N' t)) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ ((exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x (@relative_frontier M s)) /\ (@IN (cart R M) y (@relative_frontier M s))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) /\ (exists B : R, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@relative_frontier N' t)) /\ (@IN (cart R N') y (@relative_frontier N' t))) -> Rle (@vector_norm M (@vector_sub M (g x) (g y))) (Rmult B (@vector_norm N' (@vector_sub N' x y))))). +Axiom thm_AFF_DIM_NONEMPTY_INTERIOR_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> ((@aff_dim N' s) = (Z_of_N (@dimindex N' (@UNIV N')))) = (~ ((@interior N' s) = (@EMPTY (cart R N')))). +Axiom thm_AFF_DIM_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (@aff_dim N' (@ball N' (@pair (cart R N') R a r))) = (@COND Z (Rlt (R_of_N (NUMERAL 0%N)) r) (Z_of_N (@dimindex N' (@UNIV N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_AFF_DIM_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (@aff_dim N' (@cball N' (@pair (cart R N') R a r))) = (@COND Z (Rlt (R_of_N (NUMERAL 0%N)) r) (Z_of_N (@dimindex N' (@UNIV N'))) (@COND Z (r = (R_of_N (NUMERAL 0%N))) (Z_of_N (NUMERAL 0%N)) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_AFF_DIM_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@aff_dim N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@COND Z ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (@CARD N (@GSPEC N (fun GEN_PVAR_4669 : N => exists i : N, @SETSPEC N GEN_PVAR_4669 ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ (Rlt (@dollar R N' a i) (@dollar R N' b i)))) i)))))) /\ (forall a : cart R N', forall b : cart R N', (@aff_dim N' (@open_interval N' (@pair (cart R N') (cart R N') a b))) = (@COND Z ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (@dimindex N' (@UNIV N'))))). +Axiom thm_GRAPH_EMBEDS_IN_R3 : forall {A : Type'}, forall s : A -> Prop, (@le_c A R s (@UNIV R)) -> exists v : A -> cart R (tybit1 unit), (forall a : A, forall b : A, ((@IN A a s) /\ (@IN A b s)) -> ((v a) = (v b)) = (a = b)) /\ (forall a : A, forall b : A, forall c : A, forall d : A, (~ ((@INSERT (cart R (tybit1 unit)) (v a) (@INSERT (cart R (tybit1 unit)) (v b) (@EMPTY (cart R (tybit1 unit))))) = (@INSERT (cart R (tybit1 unit)) (v c) (@INSERT (cart R (tybit1 unit)) (v d) (@EMPTY (cart R (tybit1 unit))))))) -> @SUBSET (cart R (tybit1 unit)) (@INTER (cart R (tybit1 unit)) (@closed_segment (tybit1 unit) (@cons (prod (cart R (tybit1 unit)) (cart R (tybit1 unit))) (@pair (cart R (tybit1 unit)) (cart R (tybit1 unit)) (v a) (v b)) (@nil (prod (cart R (tybit1 unit)) (cart R (tybit1 unit)))))) (@closed_segment (tybit1 unit) (@cons (prod (cart R (tybit1 unit)) (cart R (tybit1 unit))) (@pair (cart R (tybit1 unit)) (cart R (tybit1 unit)) (v c) (v d)) (@nil (prod (cart R (tybit1 unit)) (cart R (tybit1 unit))))))) (@INTER (cart R (tybit1 unit)) (@INSERT (cart R (tybit1 unit)) (v a) (@INSERT (cart R (tybit1 unit)) (v b) (@EMPTY (cart R (tybit1 unit))))) (@INSERT (cart R (tybit1 unit)) (v c) (@INSERT (cart R (tybit1 unit)) (v d) (@EMPTY (cart R (tybit1 unit))))))). +Axiom thm_MIDPOINT_CONVEX_DYADIC_RATIONALS : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> (@IN (cart R N') (@midpoint N' (@pair (cart R N') (cart R N') x y)) s) /\ (Rle (f (@midpoint N' (@pair (cart R N') (cart R N') x y))) (Rdiv (Rplus (f x) (f y)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> forall n : N, forall m : N, forall p : N, forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((N.add m p) = (N.pow (NUMERAL (BIT0 (BIT1 0%N))) n)))) -> (@IN (cart R N') (@vector_add N' (@percent N' (Rdiv (R_of_N m) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) x) (@percent N' (Rdiv (R_of_N p) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) y)) s) /\ (Rle (f (@vector_add N' (@percent N' (Rdiv (R_of_N m) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) x) (@percent N' (Rdiv (R_of_N p) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) y))) (Rplus (Rmult (Rdiv (R_of_N m) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) (f x)) (Rmult (Rdiv (R_of_N p) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) (f y)))). +Axiom thm_CONTINUOUS_MIDPOINT_CONVEX : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@continuous_on N' unit (@o (cart R N') R (cart R unit) lift f) s) /\ ((@convex N' s) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (f (@midpoint N' (@pair (cart R N') (cart R N') x y))) (Rdiv (Rplus (f x) (f y)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> @convex_on N' f s. +Axiom thm_SEPARATING_HYPERPLANE_RELATIVE_INTERIORS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@convex N' t) /\ ((~ (((s = (@EMPTY (cart R N'))) /\ (t = (@UNIV (cart R N')))) \/ ((s = (@UNIV (cart R N'))) /\ (t = (@EMPTY (cart R N')))))) /\ (@DISJOINT (cart R N') (@relative_interior N' s) (@relative_interior N' t))))) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (@dot N' a x) b) /\ (forall x : cart R N', (@IN (cart R N') x t) -> Rge (@dot N' a x) b)). +Axiom thm_SUPPORTING_HYPERPLANE_RELATIVE_BOUNDARY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex N' s) /\ ((@IN (cart R N') x s) /\ (~ (@IN (cart R N') x (@relative_interior N' s))))) -> exists a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((forall y : cart R N', (@IN (cart R N') y s) -> Rle (@dot N' a x) (@dot N' a y)) /\ (forall y : cart R N', (@IN (cart R N') y (@relative_interior N' s)) -> Rlt (@dot N' a x) (@dot N' a y))). +Axiom thm_SUPPORTING_HYPERPLANE_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex N' s) /\ (@IN (cart R N') x (@relative_frontier N' s))) -> exists a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((forall y : cart R N', (@IN (cart R N') y (@closure N' s)) -> Rle (@dot N' a x) (@dot N' a y)) /\ (forall y : cart R N', (@IN (cart R N') y (@relative_interior N' s)) -> Rlt (@dot N' a x) (@dot N' a y))). +Axiom thm_SUPPORTING_HYPERPLANE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex N' s) /\ (@IN (cart R N') x (@frontier N' s))) -> exists a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (forall y : cart R N', (@IN (cart R N') y (@closure N' s)) -> Rle (@dot N' a x) (@dot N' a y)). +Axiom thm_UNBOUNDED_CONVEX_CLOSED_CONTAINS_RAY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ ((~ (@bounded N' s)) /\ ((@closed N' s) /\ (@IN (cart R N') a s)))) -> exists l : cart R N', (~ (l = (@vec N' (NUMERAL 0%N)))) /\ (forall t : R, (Rle (R_of_N (NUMERAL 0%N)) t) -> @IN (cart R N') (@vector_add N' a (@percent N' t l)) s). +Axiom thm_CONVEX_CLOSED_CONTAINS_SAME_RAY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall l : cart R N', ((@convex N' s) /\ ((@closed N' s) /\ ((@IN (cart R N') b s) /\ (forall t : R, (Rle (R_of_N (NUMERAL 0%N)) t) -> @IN (cart R N') (@vector_add N' a (@percent N' t l)) s)))) -> forall t : R, (Rle (R_of_N (NUMERAL 0%N)) t) -> @IN (cart R N') (@vector_add N' b (@percent N' t l)) s. +Axiom thm_UNBOUNDED_CONVEX_CLOSED_CONTAINS_RAYS : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((~ (@bounded N' s)) /\ (@closed N' s))) -> exists l : cart R N', (~ (l = (@vec N' (NUMERAL 0%N)))) /\ (forall a : cart R N', forall t : R, ((@IN (cart R N') a s) /\ (Rle (R_of_N (NUMERAL 0%N)) t)) -> @IN (cart R N') (@vector_add N' a (@percent N' t l)) s). +Axiom thm_RELATIVE_INTERIOR_UNBOUNDED_CONVEX_CONTAINS_RAY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ ((~ (@bounded N' s)) /\ (@IN (cart R N') a (@relative_interior N' s)))) -> exists l : cart R N', (~ (l = (@vec N' (NUMERAL 0%N)))) /\ (forall t : R, (Rle (R_of_N (NUMERAL 0%N)) t) -> @IN (cart R N') (@vector_add N' a (@percent N' t l)) (@relative_interior N' s)). +Axiom thm_RELATIVE_INTERIOR_CONVEX_CONTAINS_SAME_RAY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall l : cart R N', ((@convex N' s) /\ ((@IN (cart R N') b (@relative_interior N' s)) /\ (forall t : R, (Rle (R_of_N (NUMERAL 0%N)) t) -> @IN (cart R N') (@vector_add N' a (@percent N' t l)) (@relative_interior N' s)))) -> forall t : R, (Rle (R_of_N (NUMERAL 0%N)) t) -> @IN (cart R N') (@vector_add N' b (@percent N' t l)) (@relative_interior N' s). +Axiom thm_RELATIVE_INTERIOR_UNBOUNDED_CONVEX_CONTAINS_RAYS : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (~ (@bounded N' s))) -> exists l : cart R N', (~ (l = (@vec N' (NUMERAL 0%N)))) /\ (forall a : cart R N', forall t : R, ((@IN (cart R N') a (@relative_interior N' s)) /\ (Rle (R_of_N (NUMERAL 0%N)) t)) -> @IN (cart R N') (@vector_add N' a (@percent N' t l)) (@relative_interior N' s)). +Axiom thm_CONVEX_TRIPLE_RELATIVE_FRONTIER : forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall d : cart R (tybit0 unit), forall e : R, ((@convex (tybit0 unit) s) /\ ((@SUBSET (cart R (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))) (@relative_frontier (tybit0 unit) s)) /\ ((~ (a = b)) /\ ((~ (a = c)) /\ ((~ (b = c)) /\ (((@dot (tybit0 unit) d a) = e) /\ (((@dot (tybit0 unit) d b) = e) /\ ((@dot (tybit0 unit) d c) = e)))))))) -> (@SUBSET (cart R (tybit0 unit)) s (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_4677 : cart R (tybit0 unit) => exists x : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_4677 (Rle (@dot (tybit0 unit) d x) e) x))) \/ (@SUBSET (cart R (tybit0 unit)) s (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_4678 : cart R (tybit0 unit) => exists x : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_4678 (Rge (@dot (tybit0 unit) d x) e) x))). +Axiom thm_EXPLICIT_SUBSET_RELATIVE_INTERIOR_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> @SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4679 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4679 (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x s) -> (Rlt (R_of_N (NUMERAL 0%N)) (u x)) /\ (Rlt (u x) (R_of_N (NUMERAL (BIT1 0%N))))) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = y))) y)) (@relative_interior N' (@hull (cart R N') (@convex N') s)). +Axiom thm_EXPLICIT_SUBSET_RELATIVE_INTERIOR_CONVEX_HULL_MINIMAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> @SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4680 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4680 (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (R_of_N (NUMERAL 0%N)) (u x)) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = y))) y)) (@relative_interior N' (@hull (cart R N') (@convex N') s)). +Axiom thm_RELATIVE_INTERIOR_CONVEX_HULL_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> (@relative_interior N' (@hull (cart R N') (@convex N') s)) = (@GSPEC (cart R N') (fun GEN_PVAR_4683 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4683 (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (R_of_N (NUMERAL 0%N)) (u x)) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = y))) y)). +Axiom thm_EXPLICIT_SUBSET_INTERIOR_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ ((@hull (cart R N') (@affine N') s) = (@UNIV (cart R N')))) -> @SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4684 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4684 (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x s) -> (Rlt (R_of_N (NUMERAL 0%N)) (u x)) /\ (Rlt (u x) (R_of_N (NUMERAL (BIT1 0%N))))) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = y))) y)) (@interior N' (@hull (cart R N') (@convex N') s)). +Axiom thm_EXPLICIT_SUBSET_INTERIOR_CONVEX_HULL_MINIMAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ ((@hull (cart R N') (@affine N') s) = (@UNIV (cart R N')))) -> @SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4685 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4685 (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (R_of_N (NUMERAL 0%N)) (u x)) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = y))) y)) (@interior N' (@hull (cart R N') (@convex N') s)). +Axiom thm_INTERIOR_CONVEX_HULL_EXPLICIT_MINIMAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> (@interior N' (@hull (cart R N') (@convex N') s)) = (@COND ((cart R N') -> Prop) (N.le (@CARD (cart R N') s) (@dimindex N' (@UNIV N'))) (@EMPTY (cart R N')) (@GSPEC (cart R N') (fun GEN_PVAR_4686 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4686 (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (R_of_N (NUMERAL 0%N)) (u x)) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = y))) y))). +Axiom thm_INTERIOR_CONVEX_HULL_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> (@interior N' (@hull (cart R N') (@convex N') s)) = (@COND ((cart R N') -> Prop) (N.le (@CARD (cart R N') s) (@dimindex N' (@UNIV N'))) (@EMPTY (cart R N')) (@GSPEC (cart R N') (fun GEN_PVAR_4687 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4687 (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x s) -> (Rlt (R_of_N (NUMERAL 0%N)) (u x)) /\ (Rlt (u x) (R_of_N (NUMERAL (BIT1 0%N))))) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = y))) y))). +Axiom thm_DISJOINT_RELATIVE_INTERIOR_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((~ (@affine_dependent N' s)) /\ (~ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N')))))) -> (@INTER (cart R N') (@relative_interior N' (@hull (cart R N') (@convex N') s)) s) = (@EMPTY (cart R N')). +Axiom thm_INTERIOR_CONVEX_HULL_3_MINIMAL : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (~ (@collinear (tybit0 unit) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) -> (@interior (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) = (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_4688 : cart R (tybit0 unit) => exists v : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_4688 (exists x : R, exists y : R, exists z : R, (Rlt (R_of_N (NUMERAL 0%N)) x) /\ ((Rlt (R_of_N (NUMERAL 0%N)) y) /\ ((Rlt (R_of_N (NUMERAL 0%N)) z) /\ (((Rplus x (Rplus y z)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vector_add (tybit0 unit) (@percent (tybit0 unit) x a) (@vector_add (tybit0 unit) (@percent (tybit0 unit) y b) (@percent (tybit0 unit) z c))) = v))))) v)). +Axiom thm_INTERIOR_CONVEX_HULL_3 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (~ (@collinear (tybit0 unit) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) -> (@interior (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) = (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_4689 : cart R (tybit0 unit) => exists v : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_4689 (exists x : R, exists y : R, exists z : R, (Rlt (R_of_N (NUMERAL 0%N)) x) /\ ((Rlt x (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) y) /\ ((Rlt y (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) z) /\ ((Rlt z (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((Rplus x (Rplus y z)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vector_add (tybit0 unit) (@percent (tybit0 unit) x a) (@vector_add (tybit0 unit) (@percent (tybit0 unit) y b) (@percent (tybit0 unit) z c))) = v)))))))) v)). +Axiom thm_CLOSURE_CONVEX_HULL : forall {_1003646 : Type'}, forall s : (cart R _1003646) -> Prop, (@compact _1003646 s) -> (@closure _1003646 (@hull (cart R _1003646) (@convex _1003646) s)) = (@hull (cart R _1003646) (@convex _1003646) s). +Axiom thm_RELATIVE_FRONTIER_CONVEX_HULL_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> (@relative_frontier N' (@hull (cart R N') (@convex N') s)) = (@GSPEC (cart R N') (fun GEN_PVAR_4690 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4690 (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ ((exists x : cart R N', (@IN (cart R N') x s) /\ ((u x) = (R_of_N (NUMERAL 0%N)))) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = y)))) y)). +Axiom thm_FRONTIER_CONVEX_HULL_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> (@frontier N' (@hull (cart R N') (@convex N') s)) = (@GSPEC (cart R N') (fun GEN_PVAR_4691 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4691 (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ (((N.lt (@dimindex N' (@UNIV N')) (@CARD (cart R N') s)) -> exists x : cart R N', (@IN (cart R N') x s) /\ ((u x) = (R_of_N (NUMERAL 0%N)))) /\ (((@sum (cart R N') s u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = y)))) y)). +Axiom thm_RELATIVE_FRONTIER_OF_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> (@relative_frontier N' (@hull (cart R N') (@convex N') s)) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4692 : (cart R N') -> Prop => exists a : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4692 (@IN (cart R N') a s) (@hull (cart R N') (@convex N') (@DELETE (cart R N') s a))))). +Axiom thm_FRONTIER_CONVEX_HULL_CASES : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> (@frontier N' (@hull (cart R N') (@convex N') s)) = (@COND ((cart R N') -> Prop) (N.le (@CARD (cart R N') s) (@dimindex N' (@UNIV N'))) (@hull (cart R N') (@convex N') s) (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4693 : (cart R N') -> Prop => exists a : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4693 (@IN (cart R N') a s) (@hull (cart R N') (@convex N') (@DELETE (cart R N') s a)))))). +Axiom thm_IN_FRONTIER_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@FINITE (cart R N') s) /\ ((N.le (@CARD (cart R N') s) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) /\ (@IN (cart R N') x s))) -> @IN (cart R N') x (@frontier N' (@hull (cart R N') (@convex N') s)). +Axiom thm_NOT_IN_INTERIOR_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@FINITE (cart R N') s) /\ ((N.le (@CARD (cart R N') s) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) /\ (@IN (cart R N') x s))) -> ~ (@IN (cart R N') x (@interior N' (@hull (cart R N') (@convex N') s))). +Axiom thm_INTERIOR_CONVEX_HULL_EQ_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@HAS_SIZE (cart R N') s (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) -> ((@interior N' (@hull (cart R N') (@convex N') s)) = (@EMPTY (cart R N'))) = (@affine_dependent N' s). +Axiom thm_SIMPLEX_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s))) -> (@hull (cart R N') (@convex N') (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) s)) = (@GSPEC (cart R N') (fun GEN_PVAR_4694 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4694 (exists u : (cart R N') -> R, (forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (u x)) /\ ((Rle (@sum (cart R N') s u) (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@vsum (cart R N') N' s (fun x : cart R N' => @percent N' (u x) x)) = y))) y)). +Axiom thm_STD_SIMPLEX : forall {N' : Type'}, (@hull (cart R N') (@convex N') (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@GSPEC (cart R N') (fun GEN_PVAR_4695 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_4695 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@basis N' i))))) = (@GSPEC (cart R N') (fun GEN_PVAR_4696 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4696 ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' x i)) /\ (Rle (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' x i)) (R_of_N (NUMERAL (BIT1 0%N))))) x)). +Axiom thm_INTERIOR_STD_SIMPLEX : forall {N' : Type'}, (@interior N' (@hull (cart R N') (@convex N') (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@GSPEC (cart R N') (fun GEN_PVAR_4697 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_4697 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@basis N' i)))))) = (@GSPEC (cart R N') (fun GEN_PVAR_4698 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4698 ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (R_of_N (NUMERAL 0%N)) (@dollar R N' x i)) /\ (Rlt (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' x i)) (R_of_N (NUMERAL (BIT1 0%N))))) x)). +Axiom thm_barycentre : forall {_1005137 : Type'}, forall s : (cart R _1005137) -> Prop, (@barycentre _1005137 s) = (@COND (cart R _1005137) (@FINITE (cart R _1005137) s) (@vsum (cart R _1005137) _1005137 s (fun x : cart R _1005137 => @percent _1005137 (Rinv (R_of_N (@CARD (cart R _1005137) s))) x)) (@vec _1005137 (NUMERAL 0%N))). +Axiom thm_BARYCENTRE_0 : forall {_1005146 : Type'}, (@barycentre _1005146 (@EMPTY (cart R _1005146))) = (@vec _1005146 (NUMERAL 0%N)). +Axiom thm_BARYCENTRE_1 : forall {N' : Type'}, forall a : cart R N', (@barycentre N' (@INSERT (cart R N') a (@EMPTY (cart R N')))) = a. +Axiom thm_BARYCENTRE_2 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@barycentre N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))) = (@midpoint N' (@pair (cart R N') (cart R N') a b)). +Axiom thm_BARYCENTRE_IN_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ (~ (s = (@EMPTY (cart R N'))))) -> @IN (cart R N') (@barycentre N' s) (@relative_interior N' (@hull (cart R N') (@convex N') s)). +Axiom thm_BARYCENTRE_IN_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ (~ (s = (@EMPTY (cart R N'))))) -> @IN (cart R N') (@barycentre N' s) (@hull (cart R N') (@convex N') s). +Axiom thm_BARYCENTRE_IN_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ (~ (s = (@EMPTY (cart R N'))))) -> @IN (cart R N') (@barycentre N' s) (@hull (cart R N') (@affine N') s). +Axiom thm_BARYCENTRE_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@barycentre N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@vector_add N' (@COND (cart R N') ((@FINITE (cart R N') s) /\ (~ (s = (@EMPTY (cart R N'))))) a (@vec N' (NUMERAL 0%N))) (@barycentre N' s)). +Axiom thm_BARYCENTRE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@barycentre N' (@IMAGE (cart R M) (cart R N') f s)) = (f (@barycentre M s)). +Axiom thm_BARYCENTRE_NOT_IN_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((~ (@affine_dependent N' s)) /\ (~ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N')))))) -> ~ (@IN (cart R N') (@barycentre N' s) s). +Axiom thm_REGULAR_POLYTOPE_DIST_BARYCENTRE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : N, forall r : R, ((@HAS_SIZE (cart R N') s n) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (~ (x = y)))) -> (@distance N' (@pair (cart R N') (cart R N') x y)) = r)) -> forall x : cart R N', (@IN (cart R N') x s) -> (@distance N' (@pair (cart R N') (cart R N') (@barycentre N' s) x)) = (Rmult (sqrt (Rdiv (Rminus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (R_of_N n)))) r). +Axiom thm_REGULAR_POLYTOPE_EXISTS : forall {N' : Type'}, forall r : R, forall s : (cart R N') -> Prop, forall n : N, ((int_le (Z_of_N n) (int_add (@aff_dim N' s) (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (Rlt (R_of_N (NUMERAL 0%N)) r)) -> exists k : (cart R N') -> Prop, (@HAS_SIZE (cart R N') k n) /\ ((~ (@affine_dependent N' k)) /\ ((@SUBSET (cart R N') k (@hull (cart R N') (@affine N') s)) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x k) /\ ((@IN (cart R N') y k) /\ (~ (x = y)))) -> (@distance N' (@pair (cart R N') (cart R N') x y)) = r))). +Axiom thm_REGULAR_POLYTOPE_WITH_BARYCENTRE_EXISTS_ALT : forall {N' : Type'}, forall r : R, forall s : (cart R N') -> Prop, forall a : cart R N', forall n : N, ((int_le (Z_of_N n) (int_add (@aff_dim N' s) (Z_of_N (NUMERAL (BIT1 0%N))))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@IN (cart R N') a (@hull (cart R N') (@affine N') s)) /\ (~ (n = (NUMERAL 0%N)))))) -> exists k : (cart R N') -> Prop, (@HAS_SIZE (cart R N') k n) /\ ((~ (@affine_dependent N' k)) /\ ((@SUBSET (cart R N') k (@hull (cart R N') (@affine N') s)) /\ (((@barycentre N' k) = a) /\ ((forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x k) /\ ((@IN (cart R N') y k) /\ (~ (x = y)))) -> (@distance N' (@pair (cart R N') (cart R N') x y)) = r) /\ (forall x : cart R N', (@IN (cart R N') x k) -> (@distance N' (@pair (cart R N') (cart R N') a x)) = (Rmult (sqrt (Rdiv (Rminus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (R_of_N n)))) r)))))). +Axiom thm_REGULAR_POLYTOPE_WITH_BARYCENTRE_EXISTS : forall {N' : Type'}, forall r : R, forall s : (cart R N') -> Prop, forall a : cart R N', forall n : N, ((int_le (Z_of_N n) (int_add (@aff_dim N' s) (Z_of_N (NUMERAL (BIT1 0%N))))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@IN (cart R N') a (@hull (cart R N') (@affine N') s)) /\ (N.lt (NUMERAL (BIT1 0%N)) n)))) -> exists k : (cart R N') -> Prop, (@HAS_SIZE (cart R N') k n) /\ ((~ (@affine_dependent N' k)) /\ ((@SUBSET (cart R N') k (@hull (cart R N') (@affine N') s)) /\ (((@barycentre N' k) = a) /\ ((forall x : cart R N', (@IN (cart R N') x k) -> (@distance N' (@pair (cart R N') (cart R N') a x)) = r) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x k) /\ ((@IN (cart R N') y k) /\ (~ (x = y)))) -> (@distance N' (@pair (cart R N') (cart R N') x y)) = (Rmult (sqrt (Rdiv (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (R_of_N n)) (Rminus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))))) r)))))). +Axiom thm_CONVEX_IMP_LOCALLY_BOUNDED : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex_on N' f s) /\ (@IN (cart R N') a (@relative_interior N' s))) -> exists e : R, exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((Rlt (R_of_N (NUMERAL 0%N)) B) /\ ((@SUBSET (cart R N') (@INTER (cart R N') (@cball N' (@pair (cart R N') R a e)) (@hull (cart R N') (@affine N') s)) s) /\ (forall x : cart R N', (@IN (cart R N') x (@INTER (cart R N') (@cball N' (@pair (cart R N') R a e)) (@hull (cart R N') (@affine N') s))) -> Rle (Rabs (f x)) B))). +Axiom thm_CONVEX_IMP_LOCALLY_LIPSCHITZ : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex_on N' f s) /\ (@IN (cart R N') a (@relative_interior N' s))) -> exists e : R, exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((Rlt (R_of_N (NUMERAL 0%N)) B) /\ ((@SUBSET (cart R N') (@INTER (cart R N') (@cball N' (@pair (cart R N') R a e)) (@hull (cart R N') (@affine N') s)) s) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@INTER (cart R N') (@cball N' (@pair (cart R N') R a e)) (@hull (cart R N') (@affine N') s))) /\ (@IN (cart R N') y (@INTER (cart R N') (@cball N' (@pair (cart R N') R a e)) (@hull (cart R N') (@affine N') s)))) -> Rle (Rabs (Rminus (f x) (f y))) (Rmult B (@vector_norm N' (@vector_sub N' x y)))))). +Axiom thm_CONVEX_ON_CONTINUOUS_ON_RELATIVE_INTERIOR : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@convex_on N' f s) -> @continuous_on N' unit (@o (cart R N') R (cart R unit) lift f) (@relative_interior N' s). +Axiom thm_CONVEX_ON_CONTINUOUS : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (@convex_on N' f s)) -> @continuous_on N' unit (@o (cart R N') R (cart R unit) lift f) s. +Axiom thm_CONVEX_IMP_LIPSCHITZ : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex_on N' f t) /\ ((@compact N' s) /\ (@SUBSET (cart R N') s (@relative_interior N' t)))) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (Rabs (Rminus (f x) (f y))) (Rmult B (@vector_norm N' (@vector_sub N' x y)))). +Axiom thm_CONVEX_BOUNDS_LEMMA : forall {N' : Type'} (b : R), forall f : (cart R N') -> R, forall x : cart R N', forall e : R, ((@convex_on N' f (@cball N' (@pair (cart R N') R x e))) /\ (forall y : cart R N', (@IN (cart R N') y (@cball N' (@pair (cart R N') R x e))) -> Rle (f y) b)) -> forall y : cart R N', (@IN (cart R N') y (@cball N' (@pair (cart R N') R x e))) -> Rle (Rabs (f y)) (Rplus b (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rabs (f x)))). +Axiom thm_CONVEX_IMP_BOUNDED_ON_INTERVAL : forall f : (cart R unit) -> R, forall a : cart R unit, forall b : cart R unit, (@convex_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (Rabs (f x)) B). +Axiom thm_CONVEX_IMP_PIECEWISE_MONOTONE : forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, ((@convex_on unit f s) /\ (@is_interval unit s)) -> (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@interior unit s)) /\ ((@IN (cart R unit) y (@interior unit s)) /\ (Rle (drop x) (drop y)))) -> Rle (f x) (f y)) \/ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@interior unit s)) /\ ((@IN (cart R unit) y (@interior unit s)) /\ (Rle (drop x) (drop y)))) -> Rle (f y) (f x)) \/ (exists a : cart R unit, (@IN (cart R unit) a (@interior unit s)) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ ((Rle (drop x) (drop y)) /\ (Rle (drop y) (drop a))))) -> Rle (f y) (f x)) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ ((Rle (drop a) (drop x)) /\ (Rle (drop x) (drop y))))) -> Rle (f x) (f y))))). +Axiom thm_path : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@path N' g) = (@continuous_on unit N' g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_pathstart : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@pathstart N' g) = (g (@vec unit (NUMERAL 0%N))). +Axiom thm_pathfinish : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@pathfinish N' g) = (g (@vec unit (NUMERAL (BIT1 0%N)))). +Axiom thm_path_image : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@path_image N' g) = (@IMAGE (cart R unit) (cart R N') g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_reversepath : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@reversepath N' g) = (fun x : cart R unit => g (@vector_sub unit (@vec unit (NUMERAL (BIT1 0%N))) x)). +Axiom thm_joinpaths : forall {_1009590 : Type'}, forall g1 : (cart R unit) -> _1009590, forall g2 : (cart R unit) -> _1009590, (@addadd _1009590 g1 g2) = (fun x : cart R unit => @COND _1009590 (Rle (drop x) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (g1 (@percent unit (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x)) (g2 (@vector_sub unit (@percent unit (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x) (@vec unit (NUMERAL (BIT1 0%N)))))). +Axiom thm_simple_path : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@simple_path N' g) = ((@path N' g) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((g x) = (g y)))) -> (x = y) \/ (((x = (@vec unit (NUMERAL 0%N))) /\ (y = (@vec unit (NUMERAL (BIT1 0%N))))) \/ ((x = (@vec unit (NUMERAL (BIT1 0%N)))) /\ (y = (@vec unit (NUMERAL 0%N))))))). +Axiom thm_arc : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@arc N' g) = ((@path N' g) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((g x) = (g y)))) -> x = y)). +Axiom thm_PATH_IN_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall g : R -> cart R N', (@path_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) g) = ((@path N' (@o (cart R unit) R (cart R N') g drop)) /\ (@SUBSET (cart R N') (@path_image N' (@o (cart R unit) R (cart R N') g drop)) s)). +Axiom thm_PATH_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall g : (cart R unit) -> cart R N', ((@path N' g) /\ (@SUBSET (cart R N') (@path_image N' g) s)) = (@path_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@o R (cart R unit) (cart R N') g lift)). +Axiom thm_PATH_PATH_IN : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@path N' g) = (@path_in (cart R N') (@euclidean N') (@o R (cart R unit) (cart R N') g lift)). +Axiom thm_PATH_EQ : forall {_1009938 : Type'}, forall p : (cart R unit) -> cart R _1009938, forall q : (cart R unit) -> cart R _1009938, ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p t) = (q t)) /\ (@path _1009938 p)) -> @path _1009938 q. +Axiom thm_PATH_CONTINUOUS_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, ((@path M g) /\ (@continuous_on M N' f (@path_image M g))) -> @path N' (@o (cart R unit) (cart R M) (cart R N') f g). +Axiom thm_PATH_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall g : (cart R unit) -> cart R N', (@path N' (@o (cart R unit) (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) g)) = (@path N' g). +Axiom thm_PATH_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@path N' (@o (cart R unit) (cart R M) (cart R N') f g)) = (@path M g). +Axiom thm_PATHSTART_TRANSLATION : forall {_1010138 : Type'}, forall a : cart R _1010138, forall g : (cart R unit) -> cart R _1010138, (@pathstart _1010138 (@o (cart R unit) (cart R _1010138) (cart R _1010138) (fun x : cart R _1010138 => @vector_add _1010138 a x) g)) = (@vector_add _1010138 a (@pathstart _1010138 g)). +Axiom thm_PATHSTART_LINEAR_IMAGE_EQ : forall {_1010158 _1010171 : Type'}, forall f : (cart R _1010171) -> cart R _1010158, forall g : (cart R unit) -> cart R _1010171, (@linear _1010171 _1010158 f) -> (@pathstart _1010158 (@o (cart R unit) (cart R _1010171) (cart R _1010158) f g)) = (f (@pathstart _1010171 g)). +Axiom thm_PATHFINISH_TRANSLATION : forall {_1010206 : Type'}, forall a : cart R _1010206, forall g : (cart R unit) -> cart R _1010206, (@pathfinish _1010206 (@o (cart R unit) (cart R _1010206) (cart R _1010206) (fun x : cart R _1010206 => @vector_add _1010206 a x) g)) = (@vector_add _1010206 a (@pathfinish _1010206 g)). +Axiom thm_PATHFINISH_LINEAR_IMAGE : forall {_1010226 _1010239 : Type'}, forall f : (cart R _1010239) -> cart R _1010226, forall g : (cart R unit) -> cart R _1010239, (@linear _1010239 _1010226 f) -> (@pathfinish _1010226 (@o (cart R unit) (cart R _1010239) (cart R _1010226) f g)) = (f (@pathfinish _1010239 g)). +Axiom thm_PATH_IMAGE_TRANSLATION : forall {_1010280 : Type'}, forall a : cart R _1010280, forall g : (cart R unit) -> cart R _1010280, (@path_image _1010280 (@o (cart R unit) (cart R _1010280) (cart R _1010280) (fun x : cart R _1010280 => @vector_add _1010280 a x) g)) = (@IMAGE (cart R _1010280) (cart R _1010280) (fun x : cart R _1010280 => @vector_add _1010280 a x) (@path_image _1010280 g)). +Axiom thm_PATH_IMAGE_LINEAR_IMAGE : forall {_1010300 _1010316 : Type'}, forall f : (cart R _1010316) -> cart R _1010300, forall g : (cart R unit) -> cart R _1010316, (@linear _1010316 _1010300 f) -> (@path_image _1010300 (@o (cart R unit) (cart R _1010316) (cart R _1010300) f g)) = (@IMAGE (cart R _1010316) (cart R _1010300) f (@path_image _1010316 g)). +Axiom thm_REVERSEPATH_TRANSLATION : forall {_1010358 : Type'}, forall a : cart R _1010358, forall g : (cart R unit) -> cart R _1010358, (@reversepath _1010358 (@o (cart R unit) (cart R _1010358) (cart R _1010358) (fun x : cart R _1010358 => @vector_add _1010358 a x) g)) = (@o (cart R unit) (cart R _1010358) (cart R _1010358) (fun x : cart R _1010358 => @vector_add _1010358 a x) (@reversepath _1010358 g)). +Axiom thm_REVERSEPATH_LINEAR_IMAGE : forall {_1010378 _1010395 : Type'}, forall f : (cart R _1010395) -> cart R _1010378, forall g : (cart R unit) -> cart R _1010395, (@linear _1010395 _1010378 f) -> (@reversepath _1010378 (@o (cart R unit) (cart R _1010395) (cart R _1010378) f g)) = (@o (cart R unit) (cart R _1010395) (cart R _1010378) f (@reversepath _1010395 g)). +Axiom thm_JOINPATHS_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', (@addadd (cart R N') (@o (cart R unit) (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) g1) (@o (cart R unit) (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) g2)) = (@o (cart R unit) (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@addadd (cart R N') g1 g2)). +Axiom thm_JOINPATHS_LINEAR_IMAGE : forall {_1010482 _1010483 : Type'}, forall f : (cart R _1010482) -> cart R _1010483, forall g1 : (cart R unit) -> cart R _1010482, forall g2 : (cart R unit) -> cart R _1010482, (@linear _1010482 _1010483 f) -> (@addadd (cart R _1010483) (@o (cart R unit) (cart R _1010482) (cart R _1010483) f g1) (@o (cart R unit) (cart R _1010482) (cart R _1010483) f g2)) = (@o (cart R unit) (cart R _1010482) (cart R _1010483) f (@addadd (cart R _1010482) g1 g2)). +Axiom thm_SIMPLE_PATH_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall g : (cart R unit) -> cart R N', (@simple_path N' (@o (cart R unit) (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) g)) = (@simple_path N' g). +Axiom thm_SIMPLE_PATH_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@simple_path N' (@o (cart R unit) (cart R M) (cart R N') f g)) = (@simple_path M g). +Axiom thm_ARC_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall g : (cart R unit) -> cart R N', (@arc N' (@o (cart R unit) (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) g)) = (@arc N' g). +Axiom thm_ARC_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@arc N' (@o (cart R unit) (cart R M) (cart R N') f g)) = (@arc M g). +Axiom thm_SIMPLE_PATH_CONTINUOUS_IMAGE : forall {_1010728 _1010733 : Type'}, forall f : (cart R _1010728) -> cart R _1010733, forall g : (cart R unit) -> cart R _1010728, ((@simple_path _1010728 g) /\ ((@continuous_on _1010728 _1010733 f (@path_image _1010728 g)) /\ (forall x : cart R _1010728, forall y : cart R _1010728, ((@IN (cart R _1010728) x (@path_image _1010728 g)) /\ ((@IN (cart R _1010728) y (@path_image _1010728 g)) /\ ((f x) = (f y)))) -> x = y))) -> @simple_path _1010733 (@o (cart R unit) (cart R _1010728) (cart R _1010733) f g). +Axiom thm_ARC_CONTINUOUS_IMAGE : forall {_1010795 N' : Type'}, forall f : (cart R N') -> cart R _1010795, forall g : (cart R unit) -> cart R N', ((@arc N' g) /\ ((@continuous_on N' _1010795 f (@path_image N' g)) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@path_image N' g)) /\ ((@IN (cart R N') y (@path_image N' g)) /\ ((f x) = (f y)))) -> x = y))) -> @arc _1010795 (@o (cart R unit) (cart R N') (cart R _1010795) f g). +Axiom thm_ARC_IMP_SIMPLE_PATH : forall {_1010846 : Type'}, forall g : (cart R unit) -> cart R _1010846, (@arc _1010846 g) -> @simple_path _1010846 g. +Axiom thm_ARC_IMP_PATH : forall {_1010857 : Type'}, forall g : (cart R unit) -> cart R _1010857, (@arc _1010857 g) -> @path _1010857 g. +Axiom thm_SIMPLE_PATH_IMP_PATH : forall {_1010868 : Type'}, forall g : (cart R unit) -> cart R _1010868, (@simple_path _1010868 g) -> @path _1010868 g. +Axiom thm_SIMPLE_PATH_CASES : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@simple_path N' g) -> (@arc N' g) \/ ((@pathfinish N' g) = (@pathstart N' g)). +Axiom thm_SIMPLE_PATH_IMP_ARC : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', ((@simple_path N' g) /\ (~ ((@pathfinish N' g) = (@pathstart N' g)))) -> @arc N' g. +Axiom thm_ARC_DISTINCT_ENDS : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@arc N' g) -> ~ ((@pathfinish N' g) = (@pathstart N' g)). +Axiom thm_ARC_SIMPLE_PATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@arc N' g) = ((@simple_path N' g) /\ (~ ((@pathfinish N' g) = (@pathstart N' g)))). +Axiom thm_SIMPLE_PATH_EQ_ARC : forall {_1010995 : Type'}, forall g : (cart R unit) -> cart R _1010995, (~ ((@pathstart _1010995 g) = (@pathfinish _1010995 g))) -> (@simple_path _1010995 g) = (@arc _1010995 g). +Axiom thm_PATH_IMAGE_NONEMPTY : forall {_1011012 : Type'}, forall g : (cart R unit) -> cart R _1011012, ~ ((@path_image _1011012 g) = (@EMPTY (cart R _1011012))). +Axiom thm_PATHSTART_IN_PATH_IMAGE : forall {_1011025 : Type'}, forall g : (cart R unit) -> cart R _1011025, @IN (cart R _1011025) (@pathstart _1011025 g) (@path_image _1011025 g). +Axiom thm_PATHFINISH_IN_PATH_IMAGE : forall {_1011037 : Type'}, forall g : (cart R unit) -> cart R _1011037, @IN (cart R _1011037) (@pathfinish _1011037 g) (@path_image _1011037 g). +Axiom thm_CONNECTED_PATH_IMAGE : forall {_1011046 : Type'}, forall g : (cart R unit) -> cart R _1011046, (@path _1011046 g) -> @connected _1011046 (@path_image _1011046 g). +Axiom thm_COMPACT_PATH_IMAGE : forall {_1011059 : Type'}, forall g : (cart R unit) -> cart R _1011059, (@path _1011059 g) -> @compact _1011059 (@path_image _1011059 g). +Axiom thm_BOUNDED_PATH_IMAGE : forall {_1011072 : Type'}, forall g : (cart R unit) -> cart R _1011072, (@path _1011072 g) -> @bounded _1011072 (@path_image _1011072 g). +Axiom thm_CLOSED_PATH_IMAGE : forall {_1011085 : Type'}, forall g : (cart R unit) -> cart R _1011085, (@path _1011085 g) -> @closed _1011085 (@path_image _1011085 g). +Axiom thm_CONNECTED_SIMPLE_PATH_IMAGE : forall {_1011098 : Type'}, forall g : (cart R unit) -> cart R _1011098, (@simple_path _1011098 g) -> @connected _1011098 (@path_image _1011098 g). +Axiom thm_COMPACT_SIMPLE_PATH_IMAGE : forall {_1011111 : Type'}, forall g : (cart R unit) -> cart R _1011111, (@simple_path _1011111 g) -> @compact _1011111 (@path_image _1011111 g). +Axiom thm_BOUNDED_SIMPLE_PATH_IMAGE : forall {_1011124 : Type'}, forall g : (cart R unit) -> cart R _1011124, (@simple_path _1011124 g) -> @bounded _1011124 (@path_image _1011124 g). +Axiom thm_CLOSED_SIMPLE_PATH_IMAGE : forall {_1011137 : Type'}, forall g : (cart R unit) -> cart R _1011137, (@simple_path _1011137 g) -> @closed _1011137 (@path_image _1011137 g). +Axiom thm_CONNECTED_ARC_IMAGE : forall {_1011150 : Type'}, forall g : (cart R unit) -> cart R _1011150, (@arc _1011150 g) -> @connected _1011150 (@path_image _1011150 g). +Axiom thm_COMPACT_ARC_IMAGE : forall {_1011163 : Type'}, forall g : (cart R unit) -> cart R _1011163, (@arc _1011163 g) -> @compact _1011163 (@path_image _1011163 g). +Axiom thm_BOUNDED_ARC_IMAGE : forall {_1011176 : Type'}, forall g : (cart R unit) -> cart R _1011176, (@arc _1011176 g) -> @bounded _1011176 (@path_image _1011176 g). +Axiom thm_CLOSED_ARC_IMAGE : forall {_1011189 : Type'}, forall g : (cart R unit) -> cart R _1011189, (@arc _1011189 g) -> @closed _1011189 (@path_image _1011189 g). +Axiom thm_PATHSTART_COMPOSE : forall {_1011207 _1011215 : Type'}, forall f : (cart R _1011215) -> cart R _1011207, forall p : (cart R unit) -> cart R _1011215, (@pathstart _1011207 (@o (cart R unit) (cart R _1011215) (cart R _1011207) f p)) = (f (@pathstart _1011215 p)). +Axiom thm_PATHFINISH_COMPOSE : forall {_1011229 _1011237 : Type'}, forall f : (cart R _1011237) -> cart R _1011229, forall p : (cart R unit) -> cart R _1011237, (@pathfinish _1011229 (@o (cart R unit) (cart R _1011237) (cart R _1011229) f p)) = (f (@pathfinish _1011237 p)). +Axiom thm_PATH_IMAGE_COMPOSE : forall {_1011251 _1011262 : Type'}, forall f : (cart R _1011262) -> cart R _1011251, forall p : (cart R unit) -> cart R _1011262, (@path_image _1011251 (@o (cart R unit) (cart R _1011262) (cart R _1011251) f p)) = (@IMAGE (cart R _1011262) (cart R _1011251) f (@path_image _1011262 p)). +Axiom thm_PATH_COMPOSE_JOIN : forall {_1011286 _1011299 : Type'}, forall f : _1011286 -> _1011299, forall p : (cart R unit) -> _1011286, forall q : (cart R unit) -> _1011286, (@o (cart R unit) _1011286 _1011299 f (@addadd _1011286 p q)) = (@addadd _1011299 (@o (cart R unit) _1011286 _1011299 f p) (@o (cart R unit) _1011286 _1011299 f q)). +Axiom thm_PATH_COMPOSE_REVERSEPATH : forall {_1011318 _1011320 : Type'}, forall f : (cart R _1011318) -> cart R _1011320, forall p : (cart R unit) -> cart R _1011318, (@o (cart R unit) (cart R _1011318) (cart R _1011320) f (@reversepath _1011318 p)) = (@reversepath _1011320 (@o (cart R unit) (cart R _1011318) (cart R _1011320) f p)). +Axiom thm_JOIN_PATHS_EQ : forall {N' : Type'} (p' : (cart R unit) -> cart R N') (q' : (cart R unit) -> cart R N'), forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p t) = (p' t)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (q t) = (q' t))) -> forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (@addadd (cart R N') p q t) = (@addadd (cart R N') p' q' t). +Axiom thm_CARD_EQ_SIMPLE_PATH_IMAGE : forall {_1011564 : Type'}, forall g : (cart R unit) -> cart R _1011564, (@simple_path _1011564 g) -> @eq_c (cart R _1011564) R (@path_image _1011564 g) (@UNIV R). +Axiom thm_INFINITE_SIMPLE_PATH_IMAGE : forall {_1011580 : Type'}, forall g : (cart R unit) -> cart R _1011580, (@simple_path _1011580 g) -> @INFINITE (cart R _1011580) (@path_image _1011580 g). +Axiom thm_CARD_EQ_ARC_IMAGE : forall {_1011593 : Type'}, forall g : (cart R unit) -> cart R _1011593, (@arc _1011593 g) -> @eq_c (cart R _1011593) R (@path_image _1011593 g) (@UNIV R). +Axiom thm_INFINITE_ARC_IMAGE : forall {_1011609 : Type'}, forall g : (cart R unit) -> cart R _1011609, (@arc _1011609 g) -> @INFINITE (cart R _1011609) (@path_image _1011609 g). +Axiom thm_JOINPATHS : forall {_1011644 : Type'}, forall g1 : (cart R unit) -> cart R _1011644, forall g2 : (cart R unit) -> cart R _1011644, ((@pathfinish _1011644 g1) = (@pathstart _1011644 g2)) -> (@addadd (cart R _1011644) g1 g2) = (fun x : cart R unit => @COND (cart R _1011644) (Rlt (drop x) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (g1 (@percent unit (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x)) (g2 (@vector_sub unit (@percent unit (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x) (@vec unit (NUMERAL (BIT1 0%N)))))). +Axiom thm_REVERSEPATH_REVERSEPATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@reversepath N' (@reversepath N' g)) = g. +Axiom thm_PATHSTART_REVERSEPATH : forall {_1011737 : Type'} (g : (cart R unit) -> cart R _1011737), (@pathstart _1011737 (@reversepath _1011737 g)) = (@pathfinish _1011737 g). +Axiom thm_PATHFINISH_REVERSEPATH : forall {_1011747 : Type'} (g : (cart R unit) -> cart R _1011747), (@pathfinish _1011747 (@reversepath _1011747 g)) = (@pathstart _1011747 g). +Axiom thm_PATHSTART_JOIN : forall {_1011766 : Type'}, forall g1 : (cart R unit) -> cart R _1011766, forall g2 : (cart R unit) -> cart R _1011766, (@pathstart _1011766 (@addadd (cart R _1011766) g1 g2)) = (@pathstart _1011766 g1). +Axiom thm_PATHFINISH_JOIN : forall {_1011785 : Type'}, forall g1 : (cart R unit) -> cart R _1011785, forall g2 : (cart R unit) -> cart R _1011785, (@pathfinish _1011785 (@addadd (cart R _1011785) g1 g2)) = (@pathfinish _1011785 g2). +Axiom thm_PATH_IMAGE_REVERSEPATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@path_image N' (@reversepath N' g)) = (@path_image N' g). +Axiom thm_PATH_REVERSEPATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@path N' (@reversepath N' g)) = (@path N' g). +Axiom thm_PATH_JOIN : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@pathfinish N' g1) = (@pathstart N' g2)) -> (@path N' (@addadd (cart R N') g1 g2)) = ((@path N' g1) /\ (@path N' g2)). +Axiom thm_PATH_JOIN_IMP : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@path N' g1) /\ ((@path N' g2) /\ ((@pathfinish N' g1) = (@pathstart N' g2)))) -> @path N' (@addadd (cart R N') g1 g2). +Axiom thm_PATH_IMAGE_JOIN_SUBSET : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', @SUBSET (cart R N') (@path_image N' (@addadd (cart R N') g1 g2)) (@UNION (cart R N') (@path_image N' g1) (@path_image N' g2)). +Axiom thm_SUBSET_PATH_IMAGE_JOIN : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@SUBSET (cart R N') (@path_image N' g1) s) /\ (@SUBSET (cart R N') (@path_image N' g2) s)) -> @SUBSET (cart R N') (@path_image N' (@addadd (cart R N') g1 g2)) s. +Axiom thm_PATH_IMAGE_JOIN : forall {_1012662 : Type'}, forall g1 : (cart R unit) -> cart R _1012662, forall g2 : (cart R unit) -> cart R _1012662, ((@pathfinish _1012662 g1) = (@pathstart _1012662 g2)) -> (@path_image _1012662 (@addadd (cart R _1012662) g1 g2)) = (@UNION (cart R _1012662) (@path_image _1012662 g1) (@path_image _1012662 g2)). +Axiom thm_NOT_IN_PATH_IMAGE_JOIN : forall {_1012697 : Type'}, forall g1 : (cart R unit) -> cart R _1012697, forall g2 : (cart R unit) -> cart R _1012697, forall x : cart R _1012697, ((~ (@IN (cart R _1012697) x (@path_image _1012697 g1))) /\ (~ (@IN (cart R _1012697) x (@path_image _1012697 g2)))) -> ~ (@IN (cart R _1012697) x (@path_image _1012697 (@addadd (cart R _1012697) g1 g2))). +Axiom thm_ARC_REVERSEPATH : forall {_1012735 : Type'}, forall g : (cart R unit) -> cart R _1012735, (@arc _1012735 g) -> @arc _1012735 (@reversepath _1012735 g). +Axiom thm_ARC_REVERSEPATH_EQ : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@arc N' (@reversepath N' g)) = (@arc N' g). +Axiom thm_SIMPLE_PATH_REVERSEPATH : forall {_1012787 : Type'}, forall g : (cart R unit) -> cart R _1012787, (@simple_path _1012787 g) -> @simple_path _1012787 (@reversepath _1012787 g). +Axiom thm_SIMPLE_PATH_REVERSEPATH_EQ : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@simple_path N' (@reversepath N' g)) = (@simple_path N' g). +Axiom thm_SIMPLE_PATH_JOIN_LOOP : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@arc N' g1) /\ ((@arc N' g2) /\ (((@pathfinish N' g1) = (@pathstart N' g2)) /\ (((@pathfinish N' g2) = (@pathstart N' g1)) /\ (@SUBSET (cart R N') (@INTER (cart R N') (@path_image N' g1) (@path_image N' g2)) (@INSERT (cart R N') (@pathstart N' g1) (@INSERT (cart R N') (@pathstart N' g2) (@EMPTY (cart R N'))))))))) -> @simple_path N' (@addadd (cart R N') g1 g2). +Axiom thm_ARC_JOIN : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@arc N' g1) /\ ((@arc N' g2) /\ (((@pathfinish N' g1) = (@pathstart N' g2)) /\ (@SUBSET (cart R N') (@INTER (cart R N') (@path_image N' g1) (@path_image N' g2)) (@INSERT (cart R N') (@pathstart N' g2) (@EMPTY (cart R N'))))))) -> @arc N' (@addadd (cart R N') g1 g2). +Axiom thm_REVERSEPATH_JOINPATHS : forall {_1013438 : Type'}, forall g1 : (cart R unit) -> cart R _1013438, forall g2 : (cart R unit) -> cart R _1013438, ((@pathfinish _1013438 g1) = (@pathstart _1013438 g2)) -> (@reversepath _1013438 (@addadd (cart R _1013438) g1 g2)) = (@addadd (cart R _1013438) (@reversepath _1013438 g2) (@reversepath _1013438 g1)). +Axiom thm_PATH_JOIN_PATH_ENDS : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@path N' g2) /\ (@path N' (@addadd (cart R N') g1 g2))) -> (@pathfinish N' g1) = (@pathstart N' g2). +Axiom thm_PATH_JOIN_EQ : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@path N' g1) /\ (@path N' g2)) -> (@path N' (@addadd (cart R N') g1 g2)) = ((@pathfinish N' g1) = (@pathstart N' g2)). +Axiom thm_SIMPLE_PATH_JOIN_IMP : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@simple_path N' (@addadd (cart R N') g1 g2)) /\ ((@pathfinish N' g1) = (@pathstart N' g2))) -> (@arc N' g1) /\ ((@arc N' g2) /\ (@SUBSET (cart R N') (@INTER (cart R N') (@path_image N' g1) (@path_image N' g2)) (@INSERT (cart R N') (@pathstart N' g1) (@INSERT (cart R N') (@pathstart N' g2) (@EMPTY (cart R N')))))). +Axiom thm_SIMPLE_PATH_JOIN_LOOP_EQ : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', (((@pathfinish N' g2) = (@pathstart N' g1)) /\ ((@pathfinish N' g1) = (@pathstart N' g2))) -> (@simple_path N' (@addadd (cart R N') g1 g2)) = ((@arc N' g1) /\ ((@arc N' g2) /\ (@SUBSET (cart R N') (@INTER (cart R N') (@path_image N' g1) (@path_image N' g2)) (@INSERT (cart R N') (@pathstart N' g1) (@INSERT (cart R N') (@pathstart N' g2) (@EMPTY (cart R N'))))))). +Axiom thm_SIMPLE_PATH_JOIN_LOOP_EQ_ALT : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', (((@pathfinish N' g2) = (@pathstart N' g1)) /\ ((@pathfinish N' g1) = (@pathstart N' g2))) -> (@simple_path N' (@addadd (cart R N') g1 g2)) = ((@arc N' g1) /\ ((@arc N' g2) /\ ((@INTER (cart R N') (@path_image N' g1) (@path_image N' g2)) = (@INSERT (cart R N') (@pathstart N' g1) (@INSERT (cart R N') (@pathstart N' g2) (@EMPTY (cart R N'))))))). +Axiom thm_ARC_JOIN_EQ : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@pathfinish N' g1) = (@pathstart N' g2)) -> (@arc N' (@addadd (cart R N') g1 g2)) = ((@arc N' g1) /\ ((@arc N' g2) /\ (@SUBSET (cart R N') (@INTER (cart R N') (@path_image N' g1) (@path_image N' g2)) (@INSERT (cart R N') (@pathstart N' g2) (@EMPTY (cart R N')))))). +Axiom thm_ARC_JOIN_EQ_ALT : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@pathfinish N' g1) = (@pathstart N' g2)) -> (@arc N' (@addadd (cart R N') g1 g2)) = ((@arc N' g1) /\ ((@arc N' g2) /\ ((@INTER (cart R N') (@path_image N' g1) (@path_image N' g2)) = (@INSERT (cart R N') (@pathstart N' g2) (@EMPTY (cart R N')))))). +Axiom thm_PATH_ASSOC : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall r : (cart R unit) -> cart R N', (((@pathfinish N' p) = (@pathstart N' q)) /\ ((@pathfinish N' q) = (@pathstart N' r))) -> (@path N' (@addadd (cart R N') p (@addadd (cart R N') q r))) = (@path N' (@addadd (cart R N') (@addadd (cart R N') p q) r)). +Axiom thm_SIMPLE_PATH_ASSOC : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall r : (cart R unit) -> cart R N', (((@pathfinish N' p) = (@pathstart N' q)) /\ ((@pathfinish N' q) = (@pathstart N' r))) -> (@simple_path N' (@addadd (cart R N') p (@addadd (cart R N') q r))) = (@simple_path N' (@addadd (cart R N') (@addadd (cart R N') p q) r)). +Axiom thm_ARC_ASSOC : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall r : (cart R unit) -> cart R N', (((@pathfinish N' p) = (@pathstart N' q)) /\ ((@pathfinish N' q) = (@pathstart N' r))) -> (@arc N' (@addadd (cart R N') p (@addadd (cart R N') q r))) = (@arc N' (@addadd (cart R N') (@addadd (cart R N') p q) r)). +Axiom thm_PATH_SYM : forall {_1014534 : Type'}, forall p : (cart R unit) -> cart R _1014534, forall q : (cart R unit) -> cart R _1014534, (((@pathfinish _1014534 p) = (@pathstart _1014534 q)) /\ ((@pathfinish _1014534 q) = (@pathstart _1014534 p))) -> (@path _1014534 (@addadd (cart R _1014534) p q)) = (@path _1014534 (@addadd (cart R _1014534) q p)). +Axiom thm_SIMPLE_PATH_SYM : forall {_1014573 : Type'}, forall p : (cart R unit) -> cart R _1014573, forall q : (cart R unit) -> cart R _1014573, (((@pathfinish _1014573 p) = (@pathstart _1014573 q)) /\ ((@pathfinish _1014573 q) = (@pathstart _1014573 p))) -> (@simple_path _1014573 (@addadd (cart R _1014573) p q)) = (@simple_path _1014573 (@addadd (cart R _1014573) q p)). +Axiom thm_PATH_IMAGE_SYM : forall {_1014622 : Type'}, forall p : (cart R unit) -> cart R _1014622, forall q : (cart R unit) -> cart R _1014622, (((@pathfinish _1014622 p) = (@pathstart _1014622 q)) /\ ((@pathfinish _1014622 q) = (@pathstart _1014622 p))) -> (@path_image _1014622 (@addadd (cart R _1014622) p q)) = (@path_image _1014622 (@addadd (cart R _1014622) q p)). +Axiom thm_shiftpath : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, (@shiftpath N' a f) = (fun x : cart R unit => @COND (cart R N') (Rle (drop (@vector_add unit a x)) (R_of_N (NUMERAL (BIT1 0%N)))) (f (@vector_add unit a x)) (f (@vector_add unit a (@vector_sub unit x (@vec unit (NUMERAL (BIT1 0%N))))))). +Axiom thm_SHIFTPATH_TRANSLATION : forall {_1014731 : Type'}, forall a : cart R _1014731, forall t : cart R unit, forall g : (cart R unit) -> cart R _1014731, (@shiftpath _1014731 t (@o (cart R unit) (cart R _1014731) (cart R _1014731) (fun x : cart R _1014731 => @vector_add _1014731 a x) g)) = (@o (cart R unit) (cart R _1014731) (cart R _1014731) (fun x : cart R _1014731 => @vector_add _1014731 a x) (@shiftpath _1014731 t g)). +Axiom thm_SHIFTPATH_LINEAR_IMAGE : forall {_1014755 _1014774 : Type'}, forall f : (cart R _1014774) -> cart R _1014755, forall t : cart R unit, forall g : (cart R unit) -> cart R _1014774, (@linear _1014774 _1014755 f) -> (@shiftpath _1014755 t (@o (cart R unit) (cart R _1014774) (cart R _1014755) f g)) = (@o (cart R unit) (cart R _1014774) (cart R _1014755) f (@shiftpath _1014774 t g)). +Axiom thm_PATHSTART_SHIFTPATH : forall {_1014799 : Type'}, forall a : cart R unit, forall g : (cart R unit) -> cart R _1014799, (Rle (drop a) (R_of_N (NUMERAL (BIT1 0%N)))) -> (@pathstart _1014799 (@shiftpath _1014799 a g)) = (g a). +Axiom thm_PATHFINISH_SHIFTPATH : forall {_1014877 : Type'}, forall a : cart R unit, forall g : (cart R unit) -> cart R _1014877, ((Rle (R_of_N (NUMERAL 0%N)) (drop a)) /\ ((@pathfinish _1014877 g) = (@pathstart _1014877 g))) -> (@pathfinish _1014877 (@shiftpath _1014877 a g)) = (g a). +Axiom thm_ENDPOINTS_SHIFTPATH : forall {_1014906 : Type'}, forall a : cart R unit, forall g : (cart R unit) -> cart R _1014906, (((@pathfinish _1014906 g) = (@pathstart _1014906 g)) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> ((@pathfinish _1014906 (@shiftpath _1014906 a g)) = (g a)) /\ ((@pathstart _1014906 (@shiftpath _1014906 a g)) = (g a)). +Axiom thm_CLOSED_SHIFTPATH : forall {_1014995 : Type'}, forall a : cart R unit, forall g : (cart R unit) -> cart R _1014995, (((@pathfinish _1014995 g) = (@pathstart _1014995 g)) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> (@pathfinish _1014995 (@shiftpath _1014995 a g)) = (@pathstart _1014995 (@shiftpath _1014995 a g)). +Axiom thm_PATH_SHIFTPATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R unit, ((@path N' g) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> @path N' (@shiftpath N' a g). +Axiom thm_SHIFTPATH_SHIFTPATH : forall {_1015350 : Type'}, forall g : (cart R unit) -> cart R _1015350, forall a : cart R unit, forall x : cart R unit, ((@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (((@pathfinish _1015350 g) = (@pathstart _1015350 g)) /\ (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> (@shiftpath _1015350 (@vector_sub unit (@vec unit (NUMERAL (BIT1 0%N))) a) (@shiftpath _1015350 a g) x) = (g x). +Axiom thm_PATH_IMAGE_SHIFTPATH : forall {N' : Type'}, forall a : cart R unit, forall g : (cart R unit) -> cart R N', ((@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@pathfinish N' g) = (@pathstart N' g))) -> (@path_image N' (@shiftpath N' a g)) = (@path_image N' g). +Axiom thm_SIMPLE_PATH_SHIFTPATH : forall {_1015708 : Type'}, forall g : (cart R unit) -> cart R _1015708, forall a : cart R unit, ((@simple_path _1015708 g) /\ (((@pathfinish _1015708 g) = (@pathstart _1015708 g)) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> @simple_path _1015708 (@shiftpath _1015708 a g). +Axiom thm_subpath : forall {_1015740 : Type'}, forall g : (cart R unit) -> _1015740, forall v : cart R unit, forall u : cart R unit, (@subpath _1015740 u v g) = (fun x : cart R unit => g (@vector_add unit u (@percent unit (drop (@vector_sub unit v u)) x))). +Axiom thm_SUBPATH_SCALING_LEMMA : forall u : cart R unit, forall v : cart R unit, (@IMAGE (cart R unit) (cart R unit) (fun x : cart R unit => @vector_add unit u (@percent unit (drop (@vector_sub unit v u)) x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) = (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_PATH_IMAGE_SUBPATH_GEN : forall {N' : Type'}, forall u : cart R unit, forall v : cart R unit, forall g : (cart R unit) -> cart R N', (@path_image N' (@subpath (cart R N') u v g)) = (@IMAGE (cart R unit) (cart R N') g (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_PATH_IMAGE_SUBPATH : forall {N' : Type'}, forall u : cart R unit, forall v : cart R unit, forall g : (cart R unit) -> cart R N', (Rle (drop u) (drop v)) -> (@path_image N' (@subpath (cart R N') u v g)) = (@IMAGE (cart R unit) (cart R N') g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_PATH_IMAGE_SUBPATH_COMBINE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall u : cart R unit, ((@path N' g) /\ (@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> (@UNION (cart R N') (@path_image N' (@subpath (cart R N') (@vec unit (NUMERAL 0%N)) u g)) (@path_image N' (@subpath (cart R N') u (@vec unit (NUMERAL (BIT1 0%N))) g))) = (@path_image N' g). +Axiom thm_PATH_SUBPATH : forall {N' : Type'}, forall u : cart R unit, forall v : cart R unit, forall g : (cart R unit) -> cart R N', ((@path N' g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> @path N' (@subpath (cart R N') u v g). +Axiom thm_PATHSTART_SUBPATH : forall {N' : Type'}, forall u : cart R unit, forall v : cart R unit, forall g : (cart R unit) -> cart R N', (@pathstart N' (@subpath (cart R N') u v g)) = (g u). +Axiom thm_PATHFINISH_SUBPATH : forall {N' : Type'}, forall u : cart R unit, forall v : cart R unit, forall g : (cart R unit) -> cart R N', (@pathfinish N' (@subpath (cart R N') u v g)) = (g v). +Axiom thm_SUBPATH_TRIVIAL : forall {_1016118 : Type'}, forall g : (cart R unit) -> _1016118, (@subpath _1016118 (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N))) g) = g. +Axiom thm_SUBPATH_REVERSEPATH : forall {_1016169 : Type'}, forall g : (cart R unit) -> cart R _1016169, (@subpath (cart R _1016169) (@vec unit (NUMERAL (BIT1 0%N))) (@vec unit (NUMERAL 0%N)) g) = (@reversepath _1016169 g). +Axiom thm_REVERSEPATH_SUBPATH : forall {_1016187 : Type'}, forall g : (cart R unit) -> cart R _1016187, forall u : cart R unit, forall v : cart R unit, (@reversepath _1016187 (@subpath (cart R _1016187) u v g)) = (@subpath (cart R _1016187) v u g). +Axiom thm_SUBPATH_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall g : (cart R unit) -> cart R N', forall u : cart R unit, forall v : cart R unit, (@subpath (cart R N') u v (@o (cart R unit) (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) g)) = (@o (cart R unit) (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@subpath (cart R N') u v g)). +Axiom thm_SUBPATH_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, forall u : cart R unit, forall v : cart R unit, (@linear M N' f) -> (@subpath (cart R N') u v (@o (cart R unit) (cart R M) (cart R N') f g)) = (@o (cart R unit) (cart R M) (cart R N') f (@subpath (cart R M) u v g)). +Axiom thm_SIMPLE_PATH_SUBPATH_EQ : forall {_1016421 : Type'}, forall g : (cart R unit) -> cart R _1016421, forall u : cart R unit, forall v : cart R unit, (@simple_path _1016421 (@subpath (cart R _1016421) u v g)) = ((@path _1016421 (@subpath (cart R _1016421) u v g)) /\ ((~ (u = v)) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((g x) = (g y)))) -> (x = y) \/ (((x = u) /\ (y = v)) \/ ((x = v) /\ (y = u)))))). +Axiom thm_ARC_SUBPATH_EQ : forall {_1016595 : Type'}, forall g : (cart R unit) -> cart R _1016595, forall u : cart R unit, forall v : cart R unit, (@arc _1016595 (@subpath (cart R _1016595) u v g)) = ((@path _1016595 (@subpath (cart R _1016595) u v g)) /\ ((~ (u = v)) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((g x) = (g y)))) -> x = y))). +Axiom thm_SIMPLE_PATH_SUBPATH : forall {_1016723 : Type'}, forall g : (cart R unit) -> cart R _1016723, forall u : cart R unit, forall v : cart R unit, ((@simple_path _1016723 g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (~ (u = v))))) -> @simple_path _1016723 (@subpath (cart R _1016723) u v g). +Axiom thm_ARC_SIMPLE_PATH_SUBPATH : forall {_1016794 : Type'}, forall g : (cart R unit) -> cart R _1016794, forall u : cart R unit, forall v : cart R unit, ((@simple_path _1016794 g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (~ ((g u) = (g v)))))) -> @arc _1016794 (@subpath (cart R _1016794) u v g). +Axiom thm_ARC_SUBPATH_ARC : forall {_1016867 : Type'}, forall u : cart R unit, forall v : cart R unit, forall g : (cart R unit) -> cart R _1016867, ((@arc _1016867 g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (~ (u = v))))) -> @arc _1016867 (@subpath (cart R _1016867) u v g). +Axiom thm_ARC_SIMPLE_PATH_SUBPATH_INTERIOR : forall {_1016940 : Type'}, forall g : (cart R unit) -> cart R _1016940, forall u : cart R unit, forall v : cart R unit, ((@simple_path _1016940 g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((~ (u = v)) /\ (Rlt (Rabs (Rminus (drop u) (drop v))) (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @arc _1016940 (@subpath (cart R _1016940) u v g). +Axiom thm_PATH_IMAGE_SUBPATH_SUBSET : forall {N' : Type'}, forall u : cart R unit, forall v : cart R unit, forall g : (cart R unit) -> cart R N', ((@path N' g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> @SUBSET (cart R N') (@path_image N' (@subpath (cart R N') u v g)) (@path_image N' g). +Axiom thm_JOIN_SUBPATHS_MIDDLE : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', (@addadd (cart R N') (@subpath (cart R N') (@vec unit (NUMERAL 0%N)) (lift (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) p) (@subpath (cart R N') (lift (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (@vec unit (NUMERAL (BIT1 0%N))) p)) = p. +Axiom thm_EXISTS_SUBPATH_OF_PATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R N', forall b : cart R N', ((@path N' g) /\ ((@IN (cart R N') a (@path_image N' g)) /\ (@IN (cart R N') b (@path_image N' g)))) -> exists h : (cart R unit) -> cart R N', (@path N' h) /\ (((@pathstart N' h) = a) /\ (((@pathfinish N' h) = b) /\ (@SUBSET (cart R N') (@path_image N' h) (@path_image N' g)))). +Axiom thm_EXISTS_SUBPATH_OF_ARC_NOENDS : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R N', forall b : cart R N', ((@arc N' g) /\ ((@IN (cart R N') a (@path_image N' g)) /\ ((@IN (cart R N') b (@path_image N' g)) /\ ((@INTER (cart R N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))) (@INSERT (cart R N') (@pathstart N' g) (@INSERT (cart R N') (@pathfinish N' g) (@EMPTY (cart R N'))))) = (@EMPTY (cart R N')))))) -> exists h : (cart R unit) -> cart R N', (@path N' h) /\ (((@pathstart N' h) = a) /\ (((@pathfinish N' h) = b) /\ (@SUBSET (cart R N') (@path_image N' h) (@DIFF (cart R N') (@path_image N' g) (@INSERT (cart R N') (@pathstart N' g) (@INSERT (cart R N') (@pathfinish N' g) (@EMPTY (cart R N')))))))). +Axiom thm_EXISTS_SUBARC_OF_ARC_NOENDS : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R N', forall b : cart R N', ((@arc N' g) /\ ((@IN (cart R N') a (@path_image N' g)) /\ ((@IN (cart R N') b (@path_image N' g)) /\ ((~ (a = b)) /\ ((@INTER (cart R N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))) (@INSERT (cart R N') (@pathstart N' g) (@INSERT (cart R N') (@pathfinish N' g) (@EMPTY (cart R N'))))) = (@EMPTY (cart R N'))))))) -> exists h : (cart R unit) -> cart R N', (@arc N' h) /\ (((@pathstart N' h) = a) /\ (((@pathfinish N' h) = b) /\ (@SUBSET (cart R N') (@path_image N' h) (@DIFF (cart R N') (@path_image N' g) (@INSERT (cart R N') (@pathstart N' g) (@INSERT (cart R N') (@pathfinish N' g) (@EMPTY (cart R N')))))))). +Axiom thm_EXISTS_ARC_PSUBSET_SIMPLE_PATH : forall {N' : Type'} (s : (cart R N') -> Prop), forall g : (cart R unit) -> cart R N', ((@simple_path N' g) /\ ((@closed N' s) /\ (@PSUBSET (cart R N') s (@path_image N' g)))) -> exists h : (cart R unit) -> cart R N', (@arc N' h) /\ ((@SUBSET (cart R N') s (@path_image N' h)) /\ (@SUBSET (cart R N') (@path_image N' h) (@path_image N' g))). +Axiom thm_EXISTS_DOUBLE_ARC_EXPLICIT : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@simple_path N' g) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ ((@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) b (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((Rle (drop a) (drop b)) /\ (~ ((g a) = (g b)))))))) -> exists u : (cart R unit) -> cart R N', exists d : (cart R unit) -> cart R N', (@arc N' u) /\ ((@arc N' d) /\ (((@pathstart N' u) = (g a)) /\ (((@pathfinish N' u) = (g b)) /\ (((@pathstart N' d) = (g b)) /\ (((@pathfinish N' d) = (g a)) /\ (((@path_image N' u) = (@IMAGE (cart R unit) (cart R N') g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) /\ (((@path_image N' d) = (@IMAGE (cart R unit) (cart R N') g (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@open_interval unit (@pair (cart R unit) (cart R unit) a b))))) /\ (((@INTER (cart R N') (@path_image N' u) (@path_image N' d)) = (@INSERT (cart R N') (g a) (@INSERT (cart R N') (g b) (@EMPTY (cart R N'))))) /\ ((@UNION (cart R N') (@path_image N' u) (@path_image N' d)) = (@path_image N' g)))))))))). +Axiom thm_EXISTS_DOUBLE_ARC : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R N', forall b : cart R N', ((@simple_path N' g) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ ((@IN (cart R N') a (@path_image N' g)) /\ ((@IN (cart R N') b (@path_image N' g)) /\ (~ (a = b)))))) -> exists u : (cart R unit) -> cart R N', exists d : (cart R unit) -> cart R N', (@arc N' u) /\ ((@arc N' d) /\ (((@pathstart N' u) = a) /\ (((@pathfinish N' u) = b) /\ (((@pathstart N' d) = b) /\ (((@pathfinish N' d) = a) /\ (((@INTER (cart R N') (@path_image N' u) (@path_image N' d)) = (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N'))))) /\ ((@UNION (cart R N') (@path_image N' u) (@path_image N' d)) = (@path_image N' g)))))))). +Axiom thm_SUBPATH_TO_FRONTIER_EXPLICIT : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@path N' g) /\ ((@IN (cart R N') (@pathstart N' g) s) /\ (~ (@IN (cart R N') (@pathfinish N' g) s)))) -> exists u : cart R unit, (@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((forall x : cart R unit, ((Rle (R_of_N (NUMERAL 0%N)) (drop x)) /\ (Rlt (drop x) (drop u))) -> @IN (cart R N') (g x) (@interior N' s)) /\ ((~ (@IN (cart R N') (g u) (@interior N' s))) /\ ((u = (@vec unit (NUMERAL 0%N))) \/ (@IN (cart R N') (g u) (@closure N' s))))). +Axiom thm_SUBPATH_TO_FRONTIER_STRONG : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@path N' g) /\ ((@IN (cart R N') (@pathstart N' g) s) /\ (~ (@IN (cart R N') (@pathfinish N' g) s)))) -> exists u : cart R unit, (@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((~ (@IN (cart R N') (@pathfinish N' (@subpath (cart R N') (@vec unit (NUMERAL 0%N)) u g)) (@interior N' s))) /\ ((u = (@vec unit (NUMERAL 0%N))) \/ ((forall x : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (~ (x = (@vec unit (NUMERAL (BIT1 0%N)))))) -> @IN (cart R N') (@subpath (cart R N') (@vec unit (NUMERAL 0%N)) u g x) (@interior N' s)) /\ (@IN (cart R N') (@pathfinish N' (@subpath (cart R N') (@vec unit (NUMERAL 0%N)) u g)) (@closure N' s))))). +Axiom thm_SUBPATH_TO_FRONTIER : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@path N' g) /\ ((@IN (cart R N') (@pathstart N' g) s) /\ (~ (@IN (cart R N') (@pathfinish N' g) s)))) -> exists u : cart R unit, (@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R N') (@pathfinish N' (@subpath (cart R N') (@vec unit (NUMERAL 0%N)) u g)) (@frontier N' s)) /\ (@SUBSET (cart R N') (@DELETE (cart R N') (@path_image N' (@subpath (cart R N') (@vec unit (NUMERAL 0%N)) u g)) (@pathfinish N' (@subpath (cart R N') (@vec unit (NUMERAL 0%N)) u g))) (@interior N' s))). +Axiom thm_EXISTS_PATH_SUBPATH_TO_FRONTIER : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@path N' g) /\ ((@IN (cart R N') (@pathstart N' g) s) /\ (~ (@IN (cart R N') (@pathfinish N' g) s)))) -> exists h : (cart R unit) -> cart R N', (@path N' h) /\ (((@pathstart N' h) = (@pathstart N' g)) /\ ((@SUBSET (cart R N') (@path_image N' h) (@path_image N' g)) /\ ((@SUBSET (cart R N') (@DELETE (cart R N') (@path_image N' h) (@pathfinish N' h)) (@interior N' s)) /\ (@IN (cart R N') (@pathfinish N' h) (@frontier N' s))))). +Axiom thm_EXISTS_PATH_SUBPATH_TO_FRONTIER_CLOSED : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@closed N' s) /\ ((@path N' g) /\ ((@IN (cart R N') (@pathstart N' g) s) /\ (~ (@IN (cart R N') (@pathfinish N' g) s))))) -> exists h : (cart R unit) -> cart R N', (@path N' h) /\ (((@pathstart N' h) = (@pathstart N' g)) /\ ((@SUBSET (cart R N') (@path_image N' h) (@INTER (cart R N') (@path_image N' g) s)) /\ (@IN (cart R N') (@pathfinish N' h) (@frontier N' s)))). +Axiom thm_PATH_COMBINE : forall {N' : Type'}, forall u : cart R unit, forall g : (cart R unit) -> cart R N', (@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (@path N' g) = ((@path N' (@subpath (cart R N') (@vec unit (NUMERAL 0%N)) u g)) /\ (@path N' (@subpath (cart R N') u (@vec unit (NUMERAL (BIT1 0%N))) g))). +Axiom thm_linepath : forall {_1019931 : Type'}, forall a : cart R _1019931, forall b : cart R _1019931, (@linepath _1019931 (@pair (cart R _1019931) (cart R _1019931) a b)) = (fun x : cart R unit => @vector_add _1019931 (@percent _1019931 (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (drop x)) a) (@percent _1019931 (drop x) b)). +Axiom thm_LINEPATH_TRANSLATION : forall {_1019987 : Type'}, forall a : cart R _1019987, forall b : cart R _1019987, forall c : cart R _1019987, (@linepath _1019987 (@pair (cart R _1019987) (cart R _1019987) (@vector_add _1019987 a b) (@vector_add _1019987 a c))) = (@o (cart R unit) (cart R _1019987) (cart R _1019987) (fun x : cart R _1019987 => @vector_add _1019987 a x) (@linepath _1019987 (@pair (cart R _1019987) (cart R _1019987) b c))). +Axiom thm_LINEPATH_LINEAR_IMAGE : forall {_1020006 _1020032 : Type'}, forall f : (cart R _1020032) -> cart R _1020006, (@linear _1020032 _1020006 f) -> forall b : cart R _1020032, forall c : cart R _1020032, (@linepath _1020006 (@pair (cart R _1020006) (cart R _1020006) (f b) (f c))) = (@o (cart R unit) (cart R _1020032) (cart R _1020006) f (@linepath _1020032 (@pair (cart R _1020032) (cart R _1020032) b c))). +Axiom thm_PATHSTART_LINEPATH : forall {_1020052 : Type'}, forall a : cart R _1020052, forall b : cart R _1020052, (@pathstart _1020052 (@linepath _1020052 (@pair (cart R _1020052) (cart R _1020052) a b))) = a. +Axiom thm_PATHFINISH_LINEPATH : forall {_1020072 : Type'}, forall a : cart R _1020072, forall b : cart R _1020072, (@pathfinish _1020072 (@linepath _1020072 (@pair (cart R _1020072) (cart R _1020072) a b))) = b. +Axiom thm_CONTINUOUS_LINEPATH_AT : forall {_1020145 : Type'}, forall a : cart R _1020145, forall b : cart R _1020145, forall x : cart R unit, @continuous _1020145 (cart R unit) (@linepath _1020145 (@pair (cart R _1020145) (cart R _1020145) a b)) (@_at unit x). +Axiom thm_CONTINUOUS_ON_LINEPATH : forall {_1020170 : Type'}, forall a : cart R _1020170, forall b : cart R _1020170, forall s : (cart R unit) -> Prop, @continuous_on unit _1020170 (@linepath _1020170 (@pair (cart R _1020170) (cart R _1020170) a b)) s. +Axiom thm_PATH_LINEPATH : forall {_1020187 : Type'}, forall a : cart R _1020187, forall b : cart R _1020187, @path _1020187 (@linepath _1020187 (@pair (cart R _1020187) (cart R _1020187) a b)). +Axiom thm_PATH_IMAGE_LINEPATH : forall {_1020222 : Type'}, forall a : cart R _1020222, forall b : cart R _1020222, (@path_image _1020222 (@linepath _1020222 (@pair (cart R _1020222) (cart R _1020222) a b))) = (@closed_segment _1020222 (@cons (prod (cart R _1020222) (cart R _1020222)) (@pair (cart R _1020222) (cart R _1020222) a b) (@nil (prod (cart R _1020222) (cart R _1020222))))). +Axiom thm_REVERSEPATH_LINEPATH : forall {_1020245 : Type'}, forall a : cart R _1020245, forall b : cart R _1020245, (@reversepath _1020245 (@linepath _1020245 (@pair (cart R _1020245) (cart R _1020245) a b))) = (@linepath _1020245 (@pair (cart R _1020245) (cart R _1020245) b a)). +Axiom thm_ARC_LINEPATH : forall {_1020334 : Type'}, forall a : cart R _1020334, forall b : cart R _1020334, (~ (a = b)) -> @arc _1020334 (@linepath _1020334 (@pair (cart R _1020334) (cart R _1020334) a b)). +Axiom thm_SIMPLE_PATH_LINEPATH : forall {_1020357 : Type'}, forall a : cart R _1020357, forall b : cart R _1020357, (~ (a = b)) -> @simple_path _1020357 (@linepath _1020357 (@pair (cart R _1020357) (cart R _1020357) a b)). +Axiom thm_SIMPLE_PATH_LINEPATH_EQ : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@simple_path N' (@linepath N' (@pair (cart R N') (cart R N') a b))) = (~ (a = b)). +Axiom thm_ARC_LINEPATH_EQ : forall {_1020411 : Type'}, forall a : cart R _1020411, forall b : cart R _1020411, (@arc _1020411 (@linepath _1020411 (@pair (cart R _1020411) (cart R _1020411) a b))) = (~ (a = b)). +Axiom thm_LINEPATH_REFL : forall {_1020453 : Type'}, forall a : cart R _1020453, (@linepath _1020453 (@pair (cart R _1020453) (cart R _1020453) a a)) = (fun x : cart R unit => a). +Axiom thm_PATH_IMAGE_CONST : forall {N' : Type'}, forall a : cart R N', (@path_image N' (fun x : cart R unit => a)) = (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_SHIFTPATH_TRIVIAL : forall {_1020498 : Type'}, forall t : cart R unit, forall a : cart R _1020498, (@shiftpath _1020498 t (@linepath _1020498 (@pair (cart R _1020498) (cart R _1020498) a a))) = (@linepath _1020498 (@pair (cart R _1020498) (cart R _1020498) a a)). +Axiom thm_SUBPATH_REFL : forall {_1020520 : Type'}, forall g : (cart R unit) -> cart R _1020520, forall a : cart R unit, (@subpath (cart R _1020520) a a g) = (@linepath _1020520 (@pair (cart R _1020520) (cart R _1020520) (g a) (g a))). +Axiom thm_SEGMENT_TO_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a (@interior N' s)) /\ (~ (@IN (cart R N') b (@interior N' s)))) -> exists c : cart R N', (@IN (cart R N') c (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((~ (c = a)) /\ ((@IN (cart R N') c (@frontier N' s)) /\ (@SUBSET (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a c)) (@interior N' s)))). +Axiom thm_NOT_ON_PATH_BALL : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall z : cart R N', ((@path N' g) /\ (~ (@IN (cart R N') z (@path_image N' g)))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@INTER (cart R N') (@ball N' (@pair (cart R N') R z e)) (@path_image N' g)) = (@EMPTY (cart R N'))). +Axiom thm_NOT_ON_PATH_CBALL : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall z : cart R N', ((@path N' g) /\ (~ (@IN (cart R N') z (@path_image N' g)))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@INTER (cart R N') (@cball N' (@pair (cart R N') R z e)) (@path_image N' g)) = (@EMPTY (cart R N'))). +Axiom thm_HOMEOMORPHISM_ARC : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@arc N' g) -> exists h : (cart R N') -> cart R unit, @homeomorphism unit N' (@pair ((cart R unit) -> Prop) ((cart R N') -> Prop) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@path_image N' g)) (@pair ((cart R unit) -> cart R N') ((cart R N') -> cart R unit) g h). +Axiom thm_HOMEOMORPHIC_ARC_IMAGE_INTERVAL : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@arc N' g) /\ (Rlt (drop a) (drop b))) -> @homeomorphic unit N' (@path_image N' g) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_HOMEOMORPHIC_ARC_IMAGES : forall {M N' : Type'}, forall g : (cart R unit) -> cart R M, forall h : (cart R unit) -> cart R N', ((@arc M g) /\ (@arc N' h)) -> @homeomorphic N' M (@path_image M g) (@path_image N' h). +Axiom thm_HOMEOMORPHIC_ARC_IMAGE_SEGMENT : forall {M N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R M, forall b : cart R M, ((@arc N' g) /\ (~ (a = b))) -> @homeomorphic M N' (@path_image N' g) (@closed_segment M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_HOMEOMORPHIC_ARC_IMAGE_SEGMENT_EQ : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R M, forall b : cart R M, (~ (a = b)) -> (@homeomorphic M N' s (@closed_segment M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (exists g : (cart R unit) -> cart R N', (@arc N' g) /\ ((@path_image N' g) = s)). +Axiom thm_CONNECTED_SUBSET_PATH_IMAGE_ARC : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall g : (cart R unit) -> cart R N', ((@arc N' g) /\ ((@connected N' s) /\ ((@SUBSET (cart R N') s (@path_image N' g)) /\ ((@IN (cart R N') (@pathstart N' g) s) /\ (@IN (cart R N') (@pathfinish N' g) s))))) -> s = (@path_image N' g). +Axiom thm_ARC_IMAGE_UNIQUE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R N', ((@path N' g) /\ ((@arc N' h) /\ ((@SUBSET (cart R N') (@path_image N' g) (@path_image N' h)) /\ ((@INSERT (cart R N') (@pathstart N' g) (@INSERT (cart R N') (@pathfinish N' g) (@EMPTY (cart R N')))) = (@INSERT (cart R N') (@pathstart N' h) (@INSERT (cart R N') (@pathfinish N' h) (@EMPTY (cart R N')))))))) -> (@path_image N' g) = (@path_image N' h). +Axiom thm_CONNECTED_SUBSET_ARC_PAIR : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@arc N' g) /\ ((@arc N' h) /\ (((@pathstart N' g) = (@pathstart N' h)) /\ (((@pathfinish N' g) = (@pathfinish N' h)) /\ (((@INTER (cart R N') (@path_image N' g) (@path_image N' h)) = (@INSERT (cart R N') (@pathstart N' g) (@INSERT (cart R N') (@pathfinish N' g) (@EMPTY (cart R N'))))) /\ ((@connected N' s) /\ ((@SUBSET (cart R N') s (@UNION (cart R N') (@path_image N' g) (@path_image N' h))) /\ ((@IN (cart R N') (@pathstart N' g) s) /\ (@IN (cart R N') (@pathfinish N' g) s))))))))) -> (@SUBSET (cart R N') (@path_image N' g) s) \/ (@SUBSET (cart R N') (@path_image N' h) s). +Axiom thm_HOMEOMORPHIC_SIMPLE_PATH_IMAGES : forall {M N' : Type'}, forall g : (cart R unit) -> cart R M, forall h : (cart R unit) -> cart R N', ((@simple_path M g) /\ (((@pathfinish M g) = (@pathstart M g)) /\ ((@simple_path N' h) /\ ((@pathfinish N' h) = (@pathstart N' h))))) -> @homeomorphic N' M (@path_image M g) (@path_image N' h). +Axiom thm_HOMEOMORPHIC_SIMPLE_PATH_IMAGE_CIRCLE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R (tybit0 unit), forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> (@homeomorphic (tybit0 unit) N' s (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))) = (exists g : (cart R unit) -> cart R N', (@simple_path N' g) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ ((@path_image N' g) = s))). +Axiom thm_HOMEOMORPHIC_SIMPLE_PATH_IMAGE_CIRCLE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R (tybit0 unit), forall r : R, ((@simple_path N' g) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ (Rlt (R_of_N (NUMERAL 0%N)) r))) -> @homeomorphic (tybit0 unit) N' (@path_image N' g) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r)). +Axiom thm_path_component : forall {_1022096 : Type'}, forall s : (cart R _1022096) -> Prop, forall x : cart R _1022096, forall y : cart R _1022096, (@path_component _1022096 s x y) = (exists g : (cart R unit) -> cart R _1022096, (@path _1022096 g) /\ ((@SUBSET (cart R _1022096) (@path_image _1022096 g) s) /\ (((@pathstart _1022096 g) = x) /\ ((@pathfinish _1022096 g) = y)))). +Axiom thm_path_components : forall {_1022138 : Type'}, forall s : (cart R _1022138) -> Prop, (@path_components _1022138 s) = (@GSPEC ((cart R _1022138) -> Prop) (fun GEN_PVAR_4704 : (cart R _1022138) -> Prop => exists x : cart R _1022138, @SETSPEC ((cart R _1022138) -> Prop) GEN_PVAR_4704 (@IN (cart R _1022138) x s) (@path_component _1022138 s x))). +Axiom thm_PATH_COMPONENT_OF_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@path_component_of (cart R N') (@subtopology (cart R N') (@euclidean N') s)) = (@path_component N' s). +Axiom thm_PATH_COMPONENTS_OF_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@path_components_of (cart R N') (@subtopology (cart R N') (@euclidean N') s)) = (@path_components N' s). +Axiom thm_PATH_COMPONENT_IN : forall {_1022196 : Type'}, forall s : (cart R _1022196) -> Prop, forall x : cart R _1022196, forall y : cart R _1022196, (@path_component _1022196 s x y) -> (@IN (cart R _1022196) x s) /\ (@IN (cart R _1022196) y s). +Axiom thm_PATH_COMPONENT_REFL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@path_component N' s x x) = (@IN (cart R N') x s). +Axiom thm_PATH_COMPONENT_REFL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@IN (cart R N') x s) -> @path_component N' s x x. +Axiom thm_PATH_COMPONENT_SYM_EQ : forall {_1022259 : Type'}, forall s : (cart R _1022259) -> Prop, forall x : cart R _1022259, forall y : cart R _1022259, (@path_component _1022259 s x y) = (@path_component _1022259 s y x). +Axiom thm_PATH_COMPONENT_SYM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', (@path_component N' s x y) -> @path_component N' s y x. +Axiom thm_PATH_COMPONENT_TRANS : forall {N' : Type'} (z : cart R N'), forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@path_component N' s x y) /\ (@path_component N' s y z)) -> @path_component N' s x z. +Axiom thm_PATH_COMPONENT_OF_SUBSET : forall {_1022343 : Type'} (y : cart R _1022343), forall s : (cart R _1022343) -> Prop, forall t : (cart R _1022343) -> Prop, forall x : cart R _1022343, ((@SUBSET (cart R _1022343) s t) /\ (@path_component _1022343 s x y)) -> @path_component _1022343 t x y. +Axiom thm_PATH_COMPONENT_SET : forall {_1022358 : Type'}, forall s : (cart R _1022358) -> Prop, forall x : cart R _1022358, (@path_component _1022358 s x) = (@GSPEC (cart R _1022358) (fun GEN_PVAR_4705 : cart R _1022358 => exists y : cart R _1022358, @SETSPEC (cart R _1022358) GEN_PVAR_4705 (exists g : (cart R unit) -> cart R _1022358, (@path _1022358 g) /\ ((@SUBSET (cart R _1022358) (@path_image _1022358 g) s) /\ (((@pathstart _1022358 g) = x) /\ ((@pathfinish _1022358 g) = y)))) y)). +Axiom thm_PATH_COMPONENT_SUBSET : forall {_1022412 : Type'}, forall s : (cart R _1022412) -> Prop, forall x : cart R _1022412, @SUBSET (cart R _1022412) (@path_component _1022412 s x) s. +Axiom thm_PATH_COMPONENT_EQ_EMPTY : forall {_1022429 : Type'}, forall s : (cart R _1022429) -> Prop, forall x : cart R _1022429, ((@path_component _1022429 s x) = (@EMPTY (cart R _1022429))) = (~ (@IN (cart R _1022429) x s)). +Axiom thm_PATH_COMPONENT_EMPTY : forall {_1022445 : Type'}, forall x : cart R _1022445, (@path_component _1022445 (@EMPTY (cart R _1022445)) x) = (@EMPTY (cart R _1022445)). +Axiom thm_UNIONS_PATH_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4706 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4706 (@IN (cart R N') x s) (@path_component N' s x)))) = s. +Axiom thm_PATH_COMPONENT_TRANSLATION : forall {_1022527 : Type'}, forall a : cart R _1022527, forall s : (cart R _1022527) -> Prop, forall x : cart R _1022527, (@path_component _1022527 (@IMAGE (cart R _1022527) (cart R _1022527) (fun x' : cart R _1022527 => @vector_add _1022527 a x') s) (@vector_add _1022527 a x)) = (@IMAGE (cart R _1022527) (cart R _1022527) (fun x' : cart R _1022527 => @vector_add _1022527 a x') (@path_component _1022527 s x)). +Axiom thm_PATH_COMPONENT_LINEAR_IMAGE : forall {_1022556 _1022606 : Type'}, forall f : (cart R _1022606) -> cart R _1022556, forall s : (cart R _1022606) -> Prop, forall x : cart R _1022606, ((@linear _1022606 _1022556 f) /\ ((forall x' : cart R _1022606, forall y : cart R _1022606, ((f x') = (f y)) -> x' = y) /\ (forall y : cart R _1022556, exists x' : cart R _1022606, (f x') = y))) -> (@path_component _1022556 (@IMAGE (cart R _1022606) (cart R _1022556) f s) (f x)) = (@IMAGE (cart R _1022606) (cart R _1022556) f (@path_component _1022606 s x)). +Axiom thm_path_connected : forall {_1022636 : Type'}, forall s : (cart R _1022636) -> Prop, (@path_connected _1022636 s) = (forall x : cart R _1022636, forall y : cart R _1022636, ((@IN (cart R _1022636) x s) /\ (@IN (cart R _1022636) y s)) -> exists g : (cart R unit) -> cart R _1022636, (@path _1022636 g) /\ ((@SUBSET (cart R _1022636) (@path_image _1022636 g) s) /\ (((@pathstart _1022636 g) = x) /\ ((@pathfinish _1022636 g) = y)))). +Axiom thm_PATH_CONNECTED_IFF_PATH_COMPONENT : forall {_1022664 : Type'}, forall s : (cart R _1022664) -> Prop, (@path_connected _1022664 s) = (forall x : cart R _1022664, forall y : cart R _1022664, ((@IN (cart R _1022664) x s) /\ (@IN (cart R _1022664) y s)) -> @path_component _1022664 s x y). +Axiom thm_PATH_CONNECTED_IN_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@path_connected_in (cart R N') (@euclidean N') s) = (@path_connected N' s). +Axiom thm_PATH_CONNECTED_SPACE_EUCLIDEAN_SUBTOPOLOGY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@path_connected_space (cart R N') (@subtopology (cart R N') (@euclidean N') s)) = (@path_connected N' s). +Axiom thm_PATH_CONNECTED_IMP_PATH_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@path_connected N' s) /\ ((@IN (cart R N') a s) /\ (@IN (cart R N') b s))) -> @path_component N' s a b. +Axiom thm_PATH_CONNECTED_COMPONENT_SET : forall {_1022754 : Type'}, forall s : (cart R _1022754) -> Prop, (@path_connected _1022754 s) = (forall x : cart R _1022754, (@IN (cart R _1022754) x s) -> (@path_component _1022754 s x) = s). +Axiom thm_PATH_COMPONENT_MONO : forall {_1022796 : Type'}, forall s : (cart R _1022796) -> Prop, forall t : (cart R _1022796) -> Prop, forall x : cart R _1022796, (@SUBSET (cart R _1022796) s t) -> @SUBSET (cart R _1022796) (@path_component _1022796 s x) (@path_component _1022796 t x). +Axiom thm_PATH_COMPONENT_MAXIMAL : forall {_1022829 : Type'}, forall s : (cart R _1022829) -> Prop, forall t : (cart R _1022829) -> Prop, forall x : cart R _1022829, ((@IN (cart R _1022829) x t) /\ ((@path_connected _1022829 t) /\ (@SUBSET (cart R _1022829) t s))) -> @SUBSET (cart R _1022829) t (@path_component _1022829 s x). +Axiom thm_PATH_COMPONENT_EQ : forall {_1022859 : Type'}, forall s : (cart R _1022859) -> Prop, forall x : cart R _1022859, forall y : cart R _1022859, (@IN (cart R _1022859) y (@path_component _1022859 s x)) -> (@path_component _1022859 s y) = (@path_component _1022859 s x). +Axiom thm_PATH_CONNECTED_PATH_IMAGE : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', (@path N' p) -> @path_connected N' (@path_image N' p). +Axiom thm_PATH_COMPONENT_PATH_IMAGE_PATHSTART : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall x : cart R N', ((@path N' p) /\ (@IN (cart R N') x (@path_image N' p))) -> @path_component N' (@path_image N' p) (@pathstart N' p) x. +Axiom thm_PATH_CONNECTED_PATH_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', @path_connected N' (@path_component N' s x). +Axiom thm_PATH_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', (@path_component N' s x y) = (exists t : (cart R N') -> Prop, (@path_connected N' t) /\ ((@SUBSET (cart R N') t s) /\ ((@IN (cart R N') x t) /\ (@IN (cart R N') y t)))). +Axiom thm_PATH_COMPONENT_PATH_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@path_component N' (@path_component N' s x) x) = (@path_component N' s x). +Axiom thm_PATH_CONNECTED_LINEPATH : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) s) -> @path_component N' s a b. +Axiom thm_PATH_COMPONENT_DISJOINT : forall {_1023077 : Type'}, forall s : (cart R _1023077) -> Prop, forall a : cart R _1023077, forall b : cart R _1023077, (@DISJOINT (cart R _1023077) (@path_component _1023077 s a) (@path_component _1023077 s b)) = (~ (@IN (cart R _1023077) a (@path_component _1023077 s b))). +Axiom thm_PATH_COMPONENT_EQ_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@path_component N' s x) = (@path_component N' s y)) = (((~ (@IN (cart R N') x s)) /\ (~ (@IN (cart R N') y s))) \/ ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (@path_component N' s x y)))). +Axiom thm_PATH_COMPONENT_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall x : cart R N', ((@IN (cart R N') x c) /\ ((@SUBSET (cart R N') c s) /\ ((@path_connected N' c) /\ (forall c' : (cart R N') -> Prop, ((@IN (cart R N') x c') /\ ((@SUBSET (cart R N') c' s) /\ (@path_connected N' c'))) -> @SUBSET (cart R N') c' c)))) -> (@path_component N' s x) = c. +Axiom thm_PATH_COMPONENT_INTERMEDIATE_SUBSET : forall {N' : Type'}, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall a : cart R N', ((@SUBSET (cart R N') (@path_component N' u a) t) /\ (@SUBSET (cart R N') t u)) -> (@path_component N' t a) = (@path_component N' u a). +Axiom thm_COMPLEMENT_PATH_COMPONENT_UNIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@DIFF (cart R N') s (@path_component N' s x)) = (@UNIONS (cart R N') (@DELETE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4707 : (cart R N') -> Prop => exists y : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4707 (@IN (cart R N') y s) (@path_component N' s y))) (@path_component N' s x))). +Axiom thm_OPEN_GENERAL_COMPONENT : forall {N' : Type'}, forall c : ((cart R N') -> Prop) -> (cart R N') -> (cart R N') -> Prop, ((forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', (c s x y) -> (@IN (cart R N') x s) /\ (@IN (cart R N') y s)) /\ ((forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', (c s x y) -> c s y x) /\ ((forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', forall z : cart R N', ((c s x y) /\ (c s y z)) -> c s x z) /\ ((forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@SUBSET (cart R N') s t) /\ (c s x y)) -> c t x y) /\ (forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', forall e : R, ((@IN (cart R N') y (@ball N' (@pair (cart R N') R x e))) /\ (@SUBSET (cart R N') (@ball N' (@pair (cart R N') R x e)) s)) -> c (@ball N' (@pair (cart R N') R x e)) x y))))) -> forall s : (cart R N') -> Prop, forall x : cart R N', (@_open N' s) -> @_open N' (c s x). +Axiom thm_OPEN_NON_GENERAL_COMPONENT : forall {N' : Type'}, forall c : ((cart R N') -> Prop) -> (cart R N') -> (cart R N') -> Prop, ((forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', (c s x y) -> (@IN (cart R N') x s) /\ (@IN (cart R N') y s)) /\ ((forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', (c s x y) -> c s y x) /\ ((forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', forall z : cart R N', ((c s x y) /\ (c s y z)) -> c s x z) /\ ((forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@SUBSET (cart R N') s t) /\ (c s x y)) -> c t x y) /\ (forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', forall e : R, ((@IN (cart R N') y (@ball N' (@pair (cart R N') R x e))) /\ (@SUBSET (cart R N') (@ball N' (@pair (cart R N') R x e)) s)) -> c (@ball N' (@pair (cart R N') R x e)) x y))))) -> forall s : (cart R N') -> Prop, forall x : cart R N', (@_open N' s) -> @_open N' (@DIFF (cart R N') s (c s x)). +Axiom thm_GENERAL_CONNECTED_OPEN : forall {N' : Type'}, forall c : ((cart R N') -> Prop) -> (cart R N') -> (cart R N') -> Prop, ((forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', (c s x y) -> (@IN (cart R N') x s) /\ (@IN (cart R N') y s)) /\ ((forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', (c s x y) -> c s y x) /\ ((forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', forall z : cart R N', ((c s x y) /\ (c s y z)) -> c s x z) /\ ((forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@SUBSET (cart R N') s t) /\ (c s x y)) -> c t x y) /\ (forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', forall e : R, ((@IN (cart R N') y (@ball N' (@pair (cart R N') R x e))) /\ (@SUBSET (cart R N') (@ball N' (@pair (cart R N') R x e)) s)) -> c (@ball N' (@pair (cart R N') R x e)) x y))))) -> forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@_open N' s) /\ ((@connected N' s) /\ ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)))) -> c s x y. +Axiom thm_CONVEX_IMP_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @path_connected N' s. +Axiom thm_PATH_CONNECTED_UNIV : forall {N' : Type'}, @path_connected N' (@UNIV (cart R N')). +Axiom thm_IS_INTERVAL_PATH_CONNECTED : forall {_1024009 : Type'}, forall s : (cart R _1024009) -> Prop, (@is_interval _1024009 s) -> @path_connected _1024009 s. +Axiom thm_PATH_CONNECTED_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @path_connected N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', @path_connected N' (@open_interval N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_PATH_COMPONENT_UNIV : forall {N' : Type'}, forall x : cart R N', (@path_component N' (@UNIV (cart R N')) x) = (@UNIV (cart R N')). +Axiom thm_PATH_CONNECTED_IMP_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@path_connected N' s) -> @connected N' s. +Axiom thm_OPEN_PATH_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@_open N' s) -> @_open N' (@path_component N' s x). +Axiom thm_OPEN_NON_PATH_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@_open N' s) -> @_open N' (@DIFF (cart R N') s (@path_component N' s x)). +Axiom thm_PATH_CONNECTED_CONTINUOUS_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@path_connected M s)) -> @path_connected N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_HOMEOMORPHIC_PATH_CONNECTEDNESS : forall {_1024175 _1024176 : Type'}, forall s : (cart R _1024175) -> Prop, forall t : (cart R _1024176) -> Prop, (@homeomorphic _1024176 _1024175 s t) -> (@path_connected _1024175 s) = (@path_connected _1024176 t). +Axiom thm_PATH_CONNECTED_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@path_connected M s) /\ (@linear M N' f)) -> @path_connected N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_PATH_CONNECTED_LINEAR_IMAGE_EQ : forall {_1024222 _1024250 : Type'}, forall f : (cart R _1024250) -> cart R _1024222, forall s : (cart R _1024250) -> Prop, ((@linear _1024250 _1024222 f) /\ (forall x : cart R _1024250, forall y : cart R _1024250, ((f x) = (f y)) -> x = y)) -> (@path_connected _1024222 (@IMAGE (cart R _1024250) (cart R _1024222) f s)) = (@path_connected _1024250 s). +Axiom thm_HOMEOMORPHISM_PATH_CONNECTEDNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@path_connected N' (@IMAGE (cart R M) (cart R N') f k)) = (@path_connected M k). +Axiom thm_PATH_CONNECTED_EMPTY : forall {_1024305 : Type'}, @path_connected _1024305 (@EMPTY (cart R _1024305)). +Axiom thm_PATH_CONNECTED_SING : forall {N' : Type'}, forall a : cart R N', @path_connected N' (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_PATH_CONNECTED_UNION : forall {_1024343 : Type'}, forall s : (cart R _1024343) -> Prop, forall t : (cart R _1024343) -> Prop, ((@path_connected _1024343 s) /\ ((@path_connected _1024343 t) /\ (~ ((@INTER (cart R _1024343) s t) = (@EMPTY (cart R _1024343)))))) -> @path_connected _1024343 (@UNION (cart R _1024343) s t). +Axiom thm_PATH_CONNECTED_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @path_connected N' s) /\ (~ ((@INTERS (cart R N') f) = (@EMPTY (cart R N'))))) -> @path_connected N' (@UNIONS (cart R N') f). +Axiom thm_PATH_CONNECTED_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@path_connected N' s) -> @path_connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_PATH_CONNECTED_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@path_connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@path_connected N' s). +Axiom thm_PATH_CONNECTED_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@path_connected M s) /\ (@path_connected N' t)) -> @path_connected (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_PATH_CONNECTED_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@path_connected (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@path_connected M s) /\ (@path_connected N' t)))). +Axiom thm_PATH_COMPONENT_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall a : cart R M, forall b : cart R N', (@path_component (finite_sum M N') (@PCROSS R M N' s t) (@pastecart R M N' a b)) = (@PCROSS R M N' (@path_component M s a) (@path_component N' t b)). +Axiom thm_PATH_CONNECTED_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@path_connected N' s) -> @path_connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s). +Axiom thm_PATH_CONNECTED_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@path_connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@path_connected N' s)). +Axiom thm_PATH_CONNECTED_AFFINITY_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@path_connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = ((m = (R_of_N (NUMERAL 0%N))) \/ (@path_connected N' s)). +Axiom thm_PATH_CONNECTED_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@path_connected N' s) -> @path_connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s). +Axiom thm_PATH_CONNECTED_NEGATIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@path_connected N' s) -> @path_connected N' (@IMAGE (cart R N') (cart R N') (@vector_neg N') s). +Axiom thm_PATH_CONNECTED_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@path_connected N' s) /\ (@path_connected N' t)) -> @path_connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4708 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_4708 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_IS_INTERVAL_PATH_CONNECTED_1 : forall s : (cart R unit) -> Prop, (@is_interval unit s) = (@path_connected unit s). +Axiom thm_CARD_LE_PATH_COMPONENTS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) -> @le_c ((cart R N') -> Prop) ((cart R M) -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4709 : (cart R N') -> Prop => exists y : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4709 (@IN (cart R N') y (@IMAGE (cart R M) (cart R N') f s)) (@path_component N' (@IMAGE (cart R M) (cart R N') f s) y))) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_4710 : (cart R M) -> Prop => exists x : cart R M, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_4710 (@IN (cart R M) x s) (@path_component M s x))). +Axiom thm_CARD_LE_CONNECTED_COMPONENTS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) -> @le_c ((cart R N') -> Prop) ((cart R M) -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4711 : (cart R N') -> Prop => exists y : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4711 (@IN (cart R N') y (@IMAGE (cart R M) (cart R N') f s)) (@connected_component N' (@IMAGE (cart R M) (cart R N') f s) y))) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_4712 : (cart R M) -> Prop => exists x : cart R M, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_4712 (@IN (cart R M) x s) (@connected_component M s x))). +Axiom thm_CARD_LE_COMPONENTS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) -> @le_c ((cart R N') -> Prop) ((cart R M) -> Prop) (@components N' (@IMAGE (cart R M) (cart R N') f s)) (@components M s). +Axiom thm_PATH_CONNECTED_SEGMENT : forall {_1025184 _1025186 : Type'}, (forall a : cart R _1025184, forall b : cart R _1025184, @path_connected _1025184 (@closed_segment _1025184 (@cons (prod (cart R _1025184) (cart R _1025184)) (@pair (cart R _1025184) (cart R _1025184) a b) (@nil (prod (cart R _1025184) (cart R _1025184)))))) /\ (forall a : cart R _1025186, forall b : cart R _1025186, @path_connected _1025186 (@open_segment _1025186 (@pair (cart R _1025186) (cart R _1025186) a b))). +Axiom thm_PATH_CONNECTED_SEMIOPEN_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @path_connected N' (@DELETE (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) a)) /\ (forall a : cart R N', forall b : cart R N', @path_connected N' (@DELETE (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) b)). +Axiom thm_SUBSET_CONTINUOUS_IMAGE_SEGMENT_1 : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall a : cart R N', forall b : cart R N', (@continuous_on N' unit f (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> @SUBSET (cart R unit) (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (f a) (f b)) (@nil (prod (cart R unit) (cart R unit))))) (@IMAGE (cart R N') (cart R unit) f (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_CONTINUOUS_INJECTIVE_IMAGE_SEGMENT_1 : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall a : cart R N', forall b : cart R N', ((@continuous_on N' unit f (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((@IN (cart R N') y (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((f x) = (f y)))) -> x = y)) -> (@IMAGE (cart R N') (cart R unit) f (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (f a) (f b)) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_CONTINUOUS_INJECTIVE_IMAGE_OPEN_SEGMENT_1 : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall a : cart R N', forall b : cart R N', ((@continuous_on N' unit f (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((@IN (cart R N') y (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((f x) = (f y)))) -> x = y)) -> (@IMAGE (cart R N') (cart R unit) f (@open_segment N' (@pair (cart R N') (cart R N') a b))) = (@open_segment unit (@pair (cart R unit) (cart R unit) (f a) (f b))). +Axiom thm_CONTINUOUS_IVT_LOCAL_EXTREMUM : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall a : cart R N', forall b : cart R N', ((@continuous_on N' unit f (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((~ (a = b)) /\ ((f a) = (f b)))) -> exists z : cart R N', (@IN (cart R N') z (@open_segment N' (@pair (cart R N') (cart R N') a b))) /\ ((forall w : cart R N', (@IN (cart R N') w (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> Rle (drop (f w)) (drop (f z))) \/ (forall w : cart R N', (@IN (cart R N') w (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> Rle (drop (f z)) (drop (f w)))). +Axiom thm_FRONTIER_UNIONS_SUBSET_CLOSURE : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, @SUBSET (cart R N') (@frontier N' (@UNIONS (cart R N') f)) (@closure N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4713 : (cart R N') -> Prop => exists t : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4713 (@IN ((cart R N') -> Prop) t f) (@frontier N' t))))). +Axiom thm_FRONTIER_UNIONS_SUBSET : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) -> @SUBSET (cart R N') (@frontier N' (@UNIONS (cart R N') f)) (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4714 : (cart R N') -> Prop => exists t : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4714 (@IN ((cart R N') -> Prop) t f) (@frontier N' t)))). +Axiom thm_CLOSURE_CONVEX_INTER_AFFINE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@affine N' t) /\ (~ ((@INTER (cart R N') (@relative_interior N' s) t) = (@EMPTY (cart R N')))))) -> (@closure N' (@INTER (cart R N') s t)) = (@INTER (cart R N') (@closure N' s) t). +Axiom thm_RELATIVE_FRONTIER_CONVEX_INTER_AFFINE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@affine N' t) /\ (~ ((@INTER (cart R N') (@interior N' s) t) = (@EMPTY (cart R N')))))) -> (@relative_frontier N' (@INTER (cart R N') s t)) = (@INTER (cart R N') (@frontier N' s) t). +Axiom thm_RELATIVE_FRONTIER_CBALL_INTER_AFFINE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall r : R, ((@affine N' s) /\ ((@IN (cart R N') a s) /\ (~ (r = (R_of_N (NUMERAL 0%N)))))) -> (@relative_frontier N' (@INTER (cart R N') (@cball N' (@pair (cart R N') R a r)) s)) = (@INTER (cart R N') (@sphere N' (@pair (cart R N') R a r)) s). +Axiom thm_CONNECTED_COMPONENT_1_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) -> (@connected_component N' s a b) = (@SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) s). +Axiom thm_CONNECTED_COMPONENT_1 : forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, (@connected_component unit s a b) = (@SUBSET (cart R unit) (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s). +Axiom thm_HOMEOMORPHIC_SEGMENTS : forall {M N' : Type'}, (forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', (@homeomorphic N' M (@closed_segment M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) = ((a = b) = (c = d))) /\ ((forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', ~ (@homeomorphic N' M (@closed_segment M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@open_segment N' (@pair (cart R N') (cart R N') c d)))) /\ ((forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', ~ (@homeomorphic N' M (@open_segment M (@pair (cart R M) (cart R M) a b)) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))))) /\ (forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', (@homeomorphic N' M (@open_segment M (@pair (cart R M) (cart R M) a b)) (@open_segment N' (@pair (cart R N') (cart R N') c d))) = ((a = b) = (c = d))))). +Axiom thm_HOMEOMORPHISM_SEGMENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (~ (a = b)) -> exists h : (cart R N') -> cart R unit, @homeomorphism unit N' (@pair ((cart R unit) -> Prop) ((cart R N') -> Prop) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) (@pair ((cart R unit) -> cart R N') ((cart R N') -> cart R unit) (fun t : cart R unit => @vector_add N' (@percent N' (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (drop t)) a) (@percent N' (drop t) b)) h). +Axiom thm_CONNECTED_SUBSET_SEGMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@connected N' s) /\ ((@SUBSET (cart R N') s (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((@IN (cart R N') a s) /\ (@IN (cart R N') b s)))) -> s = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_DIAMETER_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@diameter N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@distance N' (@pair (cart R N') (cart R N') a b))) /\ (forall a : cart R N', forall b : cart R N', (@diameter N' (@open_segment N' (@pair (cart R N') (cart R N') a b))) = (@distance N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_SIMPLE_PATH_ENDLESS : forall {N' : Type'}, forall c : (cart R unit) -> cart R N', (@simple_path N' c) -> (@DIFF (cart R N') (@path_image N' c) (@INSERT (cart R N') (@pathstart N' c) (@INSERT (cart R N') (@pathfinish N' c) (@EMPTY (cart R N'))))) = (@IMAGE (cart R unit) (cart R N') c (@open_interval unit (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))))). +Axiom thm_PATH_CONNECTED_SIMPLE_PATH_ENDLESS : forall {N' : Type'}, forall c : (cart R unit) -> cart R N', (@simple_path N' c) -> @path_connected N' (@DIFF (cart R N') (@path_image N' c) (@INSERT (cart R N') (@pathstart N' c) (@INSERT (cart R N') (@pathfinish N' c) (@EMPTY (cart R N'))))). +Axiom thm_CONNECTED_SIMPLE_PATH_ENDLESS : forall {N' : Type'}, forall c : (cart R unit) -> cart R N', (@simple_path N' c) -> @connected N' (@DIFF (cart R N') (@path_image N' c) (@INSERT (cart R N') (@pathstart N' c) (@INSERT (cart R N') (@pathfinish N' c) (@EMPTY (cart R N'))))). +Axiom thm_NONEMPTY_SIMPLE_PATH_ENDLESS : forall {N' : Type'}, forall c : (cart R unit) -> cart R N', (@simple_path N' c) -> ~ ((@DIFF (cart R N') (@path_image N' c) (@INSERT (cart R N') (@pathstart N' c) (@INSERT (cart R N') (@pathfinish N' c) (@EMPTY (cart R N'))))) = (@EMPTY (cart R N'))). +Axiom thm_CONNECTED_ARC_IMAGE_DELETE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R N', ((@arc N' g) /\ (@IN (cart R N') a (@path_image N' g))) -> (@connected N' (@DELETE (cart R N') (@path_image N' g) a)) = (@IN (cart R N') a (@INSERT (cart R N') (@pathstart N' g) (@INSERT (cart R N') (@pathfinish N' g) (@EMPTY (cart R N'))))). +Axiom thm_CONNECTED_SIMPLE_PATH_IMAGE_DELETE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R N', ((@simple_path N' g) /\ ((@pathfinish N' g) = (@pathstart N' g))) -> @connected N' (@DELETE (cart R N') (@path_image N' g) a). +Axiom thm_HOMEOMORPHIC_SIMPLE_PATH_ARC : forall {M N' : Type'}, forall g : (cart R unit) -> cart R M, forall h : (cart R unit) -> cart R N', ((@arc M g) /\ ((@simple_path N' h) /\ (@homeomorphic N' M (@path_image M g) (@path_image N' h)))) -> @arc N' h. +Axiom thm_HOMEOMORPHIC_SIMPLE_PATH_ARC_EQ : forall {M N' : Type'}, forall g : (cart R unit) -> cart R M, forall h : (cart R unit) -> cart R N', ((@simple_path M g) /\ ((@simple_path N' h) /\ (@homeomorphic N' M (@path_image M g) (@path_image N' h)))) -> (@arc M g) = (@arc N' h). +Axiom thm_ARC_ENDS_UNIQUE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R N', ((@arc N' g) /\ ((@simple_path N' h) /\ ((@path_image N' g) = (@path_image N' h)))) -> (@INSERT (cart R N') (@pathstart N' g) (@INSERT (cart R N') (@pathfinish N' g) (@EMPTY (cart R N')))) = (@INSERT (cart R N') (@pathstart N' h) (@INSERT (cart R N') (@pathfinish N' h) (@EMPTY (cart R N')))). +Axiom thm_ARC_HOMEOMORPHISM_ENDS : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R N', forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> cart R N', ((@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@path_image N' g) (@path_image N' h)) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f f')) /\ ((@arc N' g) /\ (@arc N' h))) -> (((f (@pathstart N' g)) = (@pathstart N' h)) /\ (((f (@pathfinish N' g)) = (@pathfinish N' h)) /\ (((f' (@pathstart N' h)) = (@pathstart N' g)) /\ ((f' (@pathfinish N' h)) = (@pathfinish N' g))))) \/ (((f (@pathstart N' g)) = (@pathfinish N' h)) /\ (((f (@pathfinish N' g)) = (@pathstart N' h)) /\ (((f' (@pathstart N' h)) = (@pathfinish N' g)) /\ ((f' (@pathfinish N' h)) = (@pathstart N' g))))). +Axiom thm_HOMEOMORPHISM_ARC_IMAGES : forall {M N' : Type'}, forall g : (cart R unit) -> cart R M, forall h : (cart R unit) -> cart R N', ((@arc M g) /\ (@arc N' h)) -> exists f : (cart R M) -> cart R N', exists f' : (cart R N') -> cart R M, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) (@path_image M g) (@path_image N' h)) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f f')) /\ (((f (@pathstart M g)) = (@pathstart N' h)) /\ (((f (@pathfinish M g)) = (@pathfinish N' h)) /\ (((f' (@pathstart N' h)) = (@pathstart M g)) /\ ((f' (@pathfinish N' h)) = (@pathfinish M g))))). +Axiom thm_COLLINEAR_SIMPLE_PATH_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', ((@simple_path N' g) /\ (@collinear N' (@path_image N' g))) -> (@path_image N' g) = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@pathstart N' g) (@pathfinish N' g)) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_INJECTIVE_INTO_1D_EQ_HOMEOMORPHISM : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((@continuous_on N' unit f s) /\ (@path_connected N' s)) -> (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((f x) = (f y)))) -> x = y) = (exists g : (cart R unit) -> cart R N', @homeomorphism N' unit (@pair ((cart R N') -> Prop) ((cart R unit) -> Prop) s (@IMAGE (cart R N') (cart R unit) f s)) (@pair ((cart R N') -> cart R unit) ((cart R unit) -> cart R N') f g)). +Axiom thm_INJECTIVE_INTO_1D_IMP_OPEN_MAP : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on N' unit f s) /\ ((@path_connected N' s) /\ ((forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((f x) = (f y)))) -> x = y) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t)))) -> @open_in (cart R unit) (@subtopology (cart R unit) (@euclidean unit) (@IMAGE (cart R N') (cart R unit) f s)) (@IMAGE (cart R N') (cart R unit) f t). +Axiom thm_HOMEOMORPHISM_INTO_1D : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, forall t : (cart R unit) -> Prop, ((@path_connected N' s) /\ ((@continuous_on N' unit f s) /\ (((@IMAGE (cart R N') (cart R unit) f s) = t) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((f x) = (f y)))) -> x = y)))) -> exists g : (cart R unit) -> cart R N', @homeomorphism N' unit (@pair ((cart R N') -> Prop) ((cart R unit) -> Prop) s t) (@pair ((cart R N') -> cart R unit) ((cart R unit) -> cart R N') f g). +Axiom thm_CONTINUOUS_INJECTIVE_IFF_MONOTONIC : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@continuous_on unit unit f s) /\ (@is_interval unit s)) -> (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ ((f x) = (f y)))) -> x = y) = ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rlt (drop x) (drop y)))) -> Rlt (drop (f x)) (drop (f y))) \/ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rlt (drop x) (drop y)))) -> Rlt (drop (f y)) (drop (f x)))). +Axiom thm_CONTINUOUS_INJECTIVE_IMP_MONOTONIC : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@continuous_on unit unit f s) /\ ((@is_interval unit s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ ((f x) = (f y)))) -> x = y))) -> (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ (@IN (cart R unit) y s)) -> (Rlt (drop (f x)) (drop (f y))) = (Rlt (drop x) (drop y))) \/ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ (@IN (cart R unit) y s)) -> (Rlt (drop (f x)) (drop (f y))) = (Rlt (drop y) (drop x))). +Axiom thm_HOMEOMORPHISM_1D_IMP_MONOTONIC : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@homeomorphism unit unit (@pair ((cart R unit) -> Prop) ((cart R unit) -> Prop) s t) (@pair ((cart R unit) -> cart R unit) ((cart R unit) -> cart R unit) f g)) /\ (@is_interval unit s)) -> ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ (@IN (cart R unit) y s)) -> (Rlt (drop (f x)) (drop (f y))) = (Rlt (drop x) (drop y))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x t) /\ (@IN (cart R unit) y t)) -> (Rlt (drop (g x)) (drop (g y))) = (Rlt (drop x) (drop y)))) \/ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ (@IN (cart R unit) y s)) -> (Rlt (drop (f x)) (drop (f y))) = (Rlt (drop y) (drop x))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x t) /\ (@IN (cart R unit) y t)) -> (Rlt (drop (g x)) (drop (g y))) = (Rlt (drop y) (drop x)))). +Axiom thm_CONVEXITY_PRESERVING : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@convex M c)) -> @convex N' (@IMAGE (cart R M) (cart R N') f c)) = (forall a : cart R M, forall b : cart R M, (@SUBSET (cart R M) (@closed_segment M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s) -> @convex N' (@IMAGE (cart R M) (cart R N') f (@closed_segment M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))). +Axiom thm_CONVEXITY_PRESERVING_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@convex M c)) -> @convex N' (@IMAGE (cart R M) (cart R N') f c)) = (forall a : cart R M, forall b : cart R M, (@SUBSET (cart R M) (@closed_segment M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s) -> @SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (f a) (f b)) (@nil (prod (cart R N') (cart R N'))))) (@IMAGE (cart R M) (cart R N') f (@closed_segment M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))). +Axiom thm_DARBOUX_AND_REGULATED_IMP_CONTINUOUS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((forall c : (cart R unit) -> Prop, ((@SUBSET (cart R unit) c s) /\ (@connected unit c)) -> @connected N' (@IMAGE (cart R unit) (cart R N') f c)) /\ (forall a : cart R unit, (@IN (cart R unit) a s) -> (exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit a) (@INTER (cart R unit) s (@GSPEC (cart R unit) (fun GEN_PVAR_4719 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_4719 (Rle (drop x) (drop a)) x))))) /\ (exists r : cart R N', @FImp N' (cart R unit) f r (@within (cart R unit) (@_at unit a) (@INTER (cart R unit) s (@GSPEC (cart R unit) (fun GEN_PVAR_4720 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_4720 (Rle (drop a) (drop x)) x)))))))) -> @continuous_on unit N' f s. +Axiom thm_LIPSCHITZ_ON_UNION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, forall l : R, ((@is_interval unit s) /\ ((@is_interval unit t) /\ ((~ ((@INTER (cart R unit) s t) = (@EMPTY (cart R unit)))) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ (@IN (cart R unit) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult l (@vector_norm unit (@vector_sub unit x y)))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x t) /\ (@IN (cart R unit) y t)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult l (@vector_norm unit (@vector_sub unit x y)))))))) -> forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@UNION (cart R unit) s t)) /\ (@IN (cart R unit) y (@UNION (cart R unit) s t))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult l (@vector_norm unit (@vector_sub unit x y))). +Axiom thm_LIPSCHITZ_ON_COMBINE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, forall l : R, ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult l (@vector_norm unit (@vector_sub unit x y)))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) b c) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) b c) (@nil (prod (cart R unit) (cart R unit))))))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult l (@vector_norm unit (@vector_sub unit x y))))) -> forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult l (@vector_norm unit (@vector_sub unit x y))). +Axiom thm_LOCALLY_LIPSCHITZ_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall b : R, ((@convex M s) /\ (forall x : cart R M, forall c : R, ((@IN (cart R M) x s) /\ (Rlt b c)) -> @eventually (cart R M) (fun y : cart R M => Rle (@vector_norm N' (@vector_sub N' (f y) (f x))) (Rmult c (@vector_norm M (@vector_sub M y x)))) (@within (cart R M) (@_at M x) s))) -> forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult b (@vector_norm M (@vector_sub M x y))). +Axiom thm_LOCALLY_LIPSCHITZ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall b : R, ((@convex M s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @eventually (cart R M) (fun y : cart R M => Rle (@vector_norm N' (@vector_sub N' (f y) (f x))) (Rmult b (@vector_norm M (@vector_sub M y x)))) (@within (cart R M) (@_at M x) s))) -> forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult b (@vector_norm M (@vector_sub M x y))). +Axiom thm_CARD_EQ_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (~ (a = b)) -> @eq_c (cart R N') R (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@UNIV R)) /\ (forall a : cart R N', forall b : cart R N', (~ (a = b)) -> @eq_c (cart R N') R (@open_segment N' (@pair (cart R N') (cart R N') a b)) (@UNIV R)). +Axiom thm_UNCOUNTABLE_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (~ (a = b)) -> ~ (@COUNTABLE (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) /\ (forall a : cart R N', forall b : cart R N', (~ (a = b)) -> ~ (@COUNTABLE (cart R N') (@open_segment N' (@pair (cart R N') (cart R N') a b)))). +Axiom thm_CARD_EQ_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@path_connected N' s) /\ ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (~ (a = b))))) -> @eq_c (cart R N') R s (@UNIV R). +Axiom thm_UNCOUNTABLE_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@path_connected N' s) /\ ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (~ (a = b))))) -> ~ (@COUNTABLE (cart R N') s). +Axiom thm_CARD_EQ_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@convex N' s) /\ ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (~ (a = b))))) -> @eq_c (cart R N') R s (@UNIV R). +Axiom thm_UNCOUNTABLE_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@convex N' s) /\ ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (~ (a = b))))) -> ~ (@COUNTABLE (cart R N') s). +Axiom thm_CARD_EQ_NONEMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ ((@interior N' s) = (@EMPTY (cart R N')))) -> @eq_c (cart R N') R s (@UNIV R). +Axiom thm_UNCOUNTABLE_NONEMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ ((@interior N' s) = (@EMPTY (cart R N')))) -> ~ (@COUNTABLE (cart R N') s). +Axiom thm_COUNTABLE_EMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@COUNTABLE (cart R N') s) -> (@interior N' s) = (@EMPTY (cart R N')). +Axiom thm_CONNECTED_FINITE_IFF_SING : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) -> (@FINITE (cart R N') s) = ((s = (@EMPTY (cart R N'))) \/ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N'))))). +Axiom thm_CONNECTED_INFINITE_IFF_CARD_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) -> (@INFINITE (cart R N') s) = (@eq_c (cart R N') R s (@UNIV R)). +Axiom thm_CONNECTED_FINITE_IFF_COUNTABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) -> (@FINITE (cart R N') s) = (@COUNTABLE (cart R N') s). +Axiom thm_CONNECTED_FINITE_EQ_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) -> (@FINITE (cart R N') s) = (int_le (@aff_dim N' s) (Z_of_N (NUMERAL 0%N))). +Axiom thm_CLOSED_AS_FRONTIER_OF_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) = (exists t : (cart R N') -> Prop, (@SUBSET (cart R N') t s) /\ (s = (@frontier N' t))). +Axiom thm_CLOSED_AS_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) = (exists t : (cart R N') -> Prop, s = (@frontier N' t)). +Axiom thm_CARD_EQ_PERFECT_SET : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closed N' s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @limit_point_of N' x s) /\ (~ (s = (@EMPTY (cart R N')))))) -> @eq_c (cart R N') R s (@UNIV R). +Axiom thm_CARD_EQ_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> (@le_c (cart R N') N s (@UNIV N)) \/ (@eq_c (cart R N') R s (@UNIV R)). +Axiom thm_CARD_EQ_CONDENSATION_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@eq_c (cart R N') R (@GSPEC (cart R N') (fun GEN_PVAR_4739 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4739 (@condensation_point_of N' x s) x)) (@UNIV R)) = (~ (@COUNTABLE (cart R N') s)). +Axiom thm_CONDENSATION_POINTS_EQ_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@GSPEC (cart R N') (fun GEN_PVAR_4738 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4738 (@condensation_point_of N' x s) x)) = (@EMPTY (cart R N'))) = (@COUNTABLE (cart R N') s). +Axiom thm_UNCOUNTABLE_HAS_CONDENSATION_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@COUNTABLE (cart R N') s)) -> exists x : cart R N', @condensation_point_of N' x s. +Axiom thm_COSMALL_APPROXIMATION : forall s : R -> Prop, (@lt_c R R (@DIFF R (@UNIV R) s) (@UNIV R)) -> forall x : R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists y : R, (@IN R y s) /\ (Rlt (Rabs (Rminus y x)) e). +Axiom thm_COCOUNTABLE_APPROXIMATION : forall s : R -> Prop, (@COUNTABLE R (@DIFF R (@UNIV R) s)) -> forall x : R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists y : R, (@IN R y s) /\ (Rlt (Rabs (Rminus y x)) e). +Axiom thm_OPEN_SET_COSMALL_COORDINATES : forall {N' : Type'}, forall P : N -> R -> Prop, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @lt_c R R (@DIFF R (@UNIV R) (@GSPEC R (fun GEN_PVAR_4741 : R => exists x : R, @SETSPEC R GEN_PVAR_4741 (P i x) x))) (@UNIV R)) -> forall s : (cart R N') -> Prop, ((@_open N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists x : cart R N', (@IN (cart R N') x s) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> P i (@dollar R N' x i)). +Axiom thm_OPEN_SET_COCOUNTABLE_COORDINATES : forall {N' : Type'}, forall P : N -> R -> Prop, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @COUNTABLE R (@DIFF R (@UNIV R) (@GSPEC R (fun GEN_PVAR_4742 : R => exists x : R, @SETSPEC R GEN_PVAR_4742 (P i x) x)))) -> forall s : (cart R N') -> Prop, ((@_open N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists x : cart R N', (@IN (cart R N') x s) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> P i (@dollar R N' x i)). +Axiom thm_OPEN_SET_IRRATIONAL_COORDINATES : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> exists x : cart R N', (@IN (cart R N') x s) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> ~ (rational (@dollar R N' x i))). +Axiom thm_CLOSURE_COSMALL_COORDINATES : forall {N' : Type'}, forall P : N -> R -> Prop, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @lt_c R R (@DIFF R (@UNIV R) (@GSPEC R (fun GEN_PVAR_4744 : R => exists x : R, @SETSPEC R GEN_PVAR_4744 (P i x) x))) (@UNIV R)) -> (@closure N' (@GSPEC (cart R N') (fun GEN_PVAR_4745 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4745 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> P i (@dollar R N' x i)) x))) = (@UNIV (cart R N')). +Axiom thm_CLOSURE_COCOUNTABLE_COORDINATES : forall {N' : Type'}, forall P : N -> R -> Prop, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @COUNTABLE R (@DIFF R (@UNIV R) (@GSPEC R (fun GEN_PVAR_4746 : R => exists x : R, @SETSPEC R GEN_PVAR_4746 (P i x) x)))) -> (@closure N' (@GSPEC (cart R N') (fun GEN_PVAR_4747 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4747 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> P i (@dollar R N' x i)) x))) = (@UNIV (cart R N')). +Axiom thm_CLOSURE_IRRATIONAL_COORDINATES : forall {N' : Type'}, (@closure N' (@GSPEC (cart R N') (fun GEN_PVAR_4749 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4749 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> ~ (rational (@dollar R N' x i))) x))) = (@UNIV (cart R N')). +Axiom thm_HOMEOMORPHIC_MONOTONE_IMAGE_INTERVAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', ((@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((forall y : cart R N', @connected unit (@GSPEC (cart R unit) (fun GEN_PVAR_4764 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_4764 ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((f x) = y)) x))) /\ (~ ((f (@vec unit (NUMERAL (BIT1 0%N)))) = (f (@vec unit (NUMERAL 0%N))))))) -> @homeomorphic unit N' (@IMAGE (cart R unit) (cart R N') f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_PATH_CONTAINS_ARC : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall a : cart R N', forall b : cart R N', ((@path N' p) /\ (((@pathstart N' p) = a) /\ (((@pathfinish N' p) = b) /\ (~ (a = b))))) -> exists q : (cart R unit) -> cart R N', (@arc N' q) /\ ((@SUBSET (cart R N') (@path_image N' q) (@path_image N' p)) /\ (((@pathstart N' q) = a) /\ ((@pathfinish N' q) = b))). +Axiom thm_PATH_CONNECTED_ARCWISE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@path_connected N' s) = (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (~ (x = y)))) -> exists g : (cart R unit) -> cart R N', (@arc N' g) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ (((@pathstart N' g) = x) /\ ((@pathfinish N' g) = y)))). +Axiom thm_ARC_CONNECTED_TRANS : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R N', ((@arc N' g) /\ ((@arc N' h) /\ (((@pathfinish N' g) = (@pathstart N' h)) /\ (~ ((@pathstart N' g) = (@pathfinish N' h)))))) -> exists i : (cart R unit) -> cart R N', (@arc N' i) /\ ((@SUBSET (cart R N') (@path_image N' i) (@UNION (cart R N') (@path_image N' g) (@path_image N' h))) /\ (((@pathstart N' i) = (@pathstart N' g)) /\ ((@pathfinish N' i) = (@pathfinish N' h)))). +Axiom thm_LOCALLY_CONNECTED_SPACE_SUBTOPOLOGY_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally_connected_space (cart R N') (@subtopology (cart R N') (@euclidean N') s)) = (@locally N' (@connected N') s). +Axiom thm_LOCALLY_CONNECTED_OPEN_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@connected N') s) = (forall t : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@IN (cart R N') x t)) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@connected_component N' t x)). +Axiom thm_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@connected N') s) = (forall v : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@IN (cart R N') x v)) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@connected N' u) /\ ((@IN (cart R N') x u) /\ (@SUBSET (cart R N') u v)))). +Axiom thm_LOCALLY_PATH_CONNECTED_SPACE_SUBTOPOLOGY_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally_path_connected_space (cart R N') (@subtopology (cart R N') (@euclidean N') s)) = (@locally N' (@path_connected N') s). +Axiom thm_LOCALLY_PATH_CONNECTED_OPEN_PATH_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@path_connected N') s) = (forall t : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@IN (cart R N') x t)) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@path_component N' t x)). +Axiom thm_LOCALLY_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@path_connected N') s) = (forall v : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@IN (cart R N') x v)) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@path_connected N' u) /\ ((@IN (cart R N') x u) /\ (@SUBSET (cart R N') u v)))). +Axiom thm_LOCALLY_CONNECTED_OPEN_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@connected N') s) = (forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@IN ((cart R N') -> Prop) c (@components N' t))) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c). +Axiom thm_LOCALLY_CONNECTED_IM_KLEINEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@connected N') s) = (forall v : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@IN (cart R N') x v)) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@IN (cart R N') x u) /\ ((@SUBSET (cart R N') u v) /\ (forall y : cart R N', (@IN (cart R N') y u) -> exists c : (cart R N') -> Prop, (@connected N' c) /\ ((@SUBSET (cart R N') c v) /\ ((@IN (cart R N') x c) /\ (@IN (cart R N') y c))))))). +Axiom thm_LOCALLY_PATH_CONNECTED_IM_KLEINEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@path_connected N') s) = (forall v : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@IN (cart R N') x v)) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@IN (cart R N') x u) /\ ((@SUBSET (cart R N') u v) /\ (forall y : cart R N', (@IN (cart R N') y u) -> exists p : (cart R unit) -> cart R N', (@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) v) /\ (((@pathstart N' p) = x) /\ ((@pathfinish N' p) = y))))))). +Axiom thm_LOCALLY_PATH_CONNECTED_IMP_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@path_connected N') s) -> @locally N' (@connected N') s. +Axiom thm_LOCALLY_CONNECTED_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@locally N' (@connected N') s) /\ (@IN ((cart R N') -> Prop) c (@components N' s))) -> @locally N' (@connected N') c. +Axiom thm_LOCALLY_CONNECTED_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@locally N' (@connected N') s) -> @locally N' (@connected N') (@connected_component N' s x). +Axiom thm_LOCALLY_PATH_CONNECTED_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@locally N' (@path_connected N') s) /\ (@IN ((cart R N') -> Prop) c (@components N' s))) -> @locally N' (@path_connected N') c. +Axiom thm_LOCALLY_PATH_CONNECTED_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@locally N' (@path_connected N') s) -> @locally N' (@path_connected N') (@connected_component N' s x). +Axiom thm_OPEN_IMP_LOCALLY_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @locally N' (@path_connected N') s. +Axiom thm_OPEN_IMP_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @locally N' (@connected N') s. +Axiom thm_LOCALLY_PATH_CONNECTED_UNIV : forall {N' : Type'}, @locally N' (@path_connected N') (@UNIV (cart R N')). +Axiom thm_LOCALLY_CONNECTED_UNIV : forall {N' : Type'}, @locally N' (@connected N') (@UNIV (cart R N')). +Axiom thm_OPEN_IN_CONNECTED_COMPONENT_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@locally N' (@connected N') s) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@connected_component N' s x). +Axiom thm_OPEN_IN_COMPONENTS_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@locally N' (@connected N') s) /\ (@IN ((cart R N') -> Prop) c (@components N' s))) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c. +Axiom thm_OPEN_IN_PATH_COMPONENT_LOCALLY_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@locally N' (@path_connected N') s) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@path_component N' s x). +Axiom thm_CLOSED_IN_PATH_COMPONENT_LOCALLY_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@locally N' (@path_connected N') s) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@path_component N' s x). +Axiom thm_CONVEX_IMP_LOCALLY_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @locally N' (@path_connected N') s. +Axiom thm_OPEN_IN_IMP_LOCALLY_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s) -> @locally N' (@path_connected N') s. +Axiom thm_OPEN_IN_CONNECTED_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@FINITE ((cart R N') -> Prop) (@components N' s)) /\ (@IN ((cart R N') -> Prop) c (@components N' s))) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c. +Axiom thm_FINITE_COMPONENTS_MEETING_COMPACT_SUBSET : forall {N' : Type'}, forall k : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@compact N' k) /\ ((@locally N' (@connected N') s) /\ (@SUBSET (cart R N') k s))) -> @FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4769 : (cart R N') -> Prop => exists c : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4769 ((@IN ((cart R N') -> Prop) c (@components N' s)) /\ (~ ((@INTER (cart R N') c k) = (@EMPTY (cart R N'))))) c)). +Axiom thm_FINITE_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@locally N' (@connected N') s)) -> @FINITE ((cart R N') -> Prop) (@components N' s). +Axiom thm_FINITE_LOCALLY_CONNECTED_CONNECTED_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@locally N' (@connected N') s)) -> @FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4771 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4771 (@IN (cart R N') x s) (@connected_component N' s x))). +Axiom thm_FINITE_LOCALLY_PATH_CONNECTED_PATH_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@locally N' (@path_connected N') s)) -> @FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4774 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4774 (@IN (cart R N') x s) (@path_component N' s x))). +Axiom thm_CONVEX_IMP_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @locally N' (@connected N') s. +Axiom thm_HOMEOMORPHIC_LOCAL_CONNECTEDNESS : forall {_1047920 _1047921 : Type'}, forall s : (cart R _1047920) -> Prop, forall t : (cart R _1047921) -> Prop, (@homeomorphic _1047921 _1047920 s t) -> (@locally _1047920 (@connected _1047920) s) = (@locally _1047921 (@connected _1047921) t). +Axiom thm_HOMEOMORPHISM_LOCAL_CONNECTEDNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@locally N' (@connected N') (@IMAGE (cart R M) (cart R N') f k)) = (@locally M (@connected M) k). +Axiom thm_HOMEOMORPHIC_LOCAL_PATH_CONNECTEDNESS : forall {_1048001 _1048002 : Type'}, forall s : (cart R _1048001) -> Prop, forall t : (cart R _1048002) -> Prop, (@homeomorphic _1048002 _1048001 s t) -> (@locally _1048001 (@path_connected _1048001) s) = (@locally _1048002 (@path_connected _1048002) t). +Axiom thm_HOMEOMORPHISM_LOCAL_PATH_CONNECTEDNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@locally N' (@path_connected N') (@IMAGE (cart R M) (cart R N') f k)) = (@locally M (@path_connected M) k). +Axiom thm_LOCALLY_PATH_CONNECTED_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@locally N' (@path_connected N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@locally N' (@path_connected N') s). +Axiom thm_LOCALLY_CONNECTED_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@locally N' (@connected N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@locally N' (@connected N') s). +Axiom thm_LOCALLY_PATH_CONNECTED_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@locally N' (@path_connected N') (@IMAGE (cart R M) (cart R N') f s)) = (@locally M (@path_connected M) s). +Axiom thm_LOCALLY_CONNECTED_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@locally N' (@connected N') (@IMAGE (cart R M) (cart R N') f s)) = (@locally M (@connected M) s). +Axiom thm_LOCALLY_CONNECTED_QUOTIENT_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall t : (cart R N') -> Prop, (@SUBSET (cart R N') t (@IMAGE (cart R M) (cart R N') f s)) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_4775 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4775 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f s)) t)) /\ (@locally M (@connected M) s)) -> @locally N' (@connected N') (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LOCALLY_PATH_CONNECTED_QUOTIENT_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall t : (cart R N') -> Prop, (@SUBSET (cart R N') t (@IMAGE (cart R M) (cart R N') f s)) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_4776 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4776 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@IMAGE (cart R M) (cart R N') f s)) t)) /\ (@locally M (@path_connected M) s)) -> @locally N' (@path_connected N') (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LOCALLY_CONNECTED_CONTINUOUS_IMAGE_COMPACT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@locally M (@connected M) s) /\ ((@compact M s) /\ (@continuous_on M N' f s))) -> @locally N' (@connected N') (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LOCALLY_PATH_CONNECTED_CONTINUOUS_IMAGE_COMPACT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@locally M (@path_connected M) s) /\ ((@compact M s) /\ (@continuous_on M N' f s))) -> @locally N' (@path_connected N') (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LOCALLY_PATH_CONNECTED_PATH_IMAGE : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', (@path N' p) -> @locally N' (@path_connected N') (@path_image N' p). +Axiom thm_LOCALLY_CONNECTED_PATH_IMAGE : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', (@path N' p) -> @locally N' (@connected N') (@path_image N' p). +Axiom thm_LOCALLY_CONNECTED_LEFT_INVERTIBLE_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ ((@continuous_on N' M g (@IMAGE (cart R M) (cart R N') f s)) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x) /\ (@locally M (@connected M) s)))) -> @locally N' (@connected N') (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LOCALLY_CONNECTED_RIGHT_INVERTIBLE_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ ((@continuous_on N' M g (@IMAGE (cart R M) (cart R N') f s)) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g (@IMAGE (cart R M) (cart R N') f s)) s) /\ ((forall x : cart R N', (@IN (cart R N') x (@IMAGE (cart R M) (cart R N') f s)) -> (f (g x)) = x) /\ (@locally M (@connected M) s))))) -> @locally N' (@connected N') (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LOCALLY_PATH_CONNECTED_LEFT_INVERTIBLE_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ ((@continuous_on N' M g (@IMAGE (cart R M) (cart R N') f s)) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x) /\ (@locally M (@path_connected M) s)))) -> @locally N' (@path_connected N') (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LOCALLY_PATH_CONNECTED_RIGHT_INVERTIBLE_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ ((@continuous_on N' M g (@IMAGE (cart R M) (cart R N') f s)) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g (@IMAGE (cart R M) (cart R N') f s)) s) /\ ((forall x : cart R N', (@IN (cart R N') x (@IMAGE (cart R M) (cart R N') f s)) -> (f (g x)) = x) /\ (@locally M (@path_connected M) s))))) -> @locally N' (@path_connected N') (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LOCALLY_CONNECTED_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@locally M (@connected M) s) /\ (@locally N' (@connected N') t)) -> @locally (finite_sum M N') (@connected (finite_sum M N')) (@PCROSS R M N' s t). +Axiom thm_LOCALLY_PATH_CONNECTED_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@locally M (@path_connected M) s) /\ (@locally N' (@path_connected N') t)) -> @locally (finite_sum M N') (@path_connected (finite_sum M N')) (@PCROSS R M N' s t). +Axiom thm_LOCALLY_CONNECTED_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@locally (finite_sum M N') (@connected (finite_sum M N')) (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@locally M (@connected M) s) /\ (@locally N' (@connected N') t)))). +Axiom thm_LOCALLY_PATH_CONNECTED_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@locally (finite_sum M N') (@path_connected (finite_sum M N')) (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@locally M (@path_connected M) s) /\ (@locally N' (@path_connected N') t)))). +Axiom thm_LOCALLY_CONNECTED_SUBREGION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@locally N' (@connected N') s) /\ ((@SUBSET (cart R N') t s) /\ ((@connected N' c) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) c)))) -> exists c' : (cart R N') -> Prop, (@connected N' c') /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c') /\ (c = (@INTER (cart R N') t c'))). +Axiom thm_CARD_EQ_OPEN_IN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@locally N' (@connected N') u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (exists x : cart R N', (@IN (cart R N') x s) /\ (@limit_point_of N' x u)))) -> @eq_c (cart R N') R s (@UNIV R). +Axiom thm_CARD_EQ_OPEN_IN_AFFINE : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@affine N' u) /\ ((~ ((@aff_dim N' u) = (Z_of_N (NUMERAL 0%N)))) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (~ (s = (@EMPTY (cart R N'))))))) -> @eq_c (cart R N') R s (@UNIV R). +Axiom thm_SEPARATION_BY_CLOSED_INTERMEDIATES : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (~ (@connected N' (@DIFF (cart R N') u s))) -> exists t : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@SUBSET (cart R N') t s) /\ (forall c : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) c) /\ ((@SUBSET (cart R N') t c) /\ (@SUBSET (cart R N') c s))) -> ~ (@connected N' (@DIFF (cart R N') u c)))). +Axiom thm_SEPARATION_BY_CLOSED_INTERMEDIATES_EQ : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@locally N' (@connected N') u) -> (~ (@connected N' (@DIFF (cart R N') u s))) = (exists t : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@SUBSET (cart R N') t s) /\ (forall c : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) c) /\ ((@SUBSET (cart R N') t c) /\ (@SUBSET (cart R N') c s))) -> ~ (@connected N' (@DIFF (cart R N') u c))))). +Axiom thm_LOCALLY_CONNECTED_CLOSED_UNION_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@locally N' (@connected N') s) /\ (@locally N' (@connected N') t)))) -> @locally N' (@connected N') (@UNION (cart R N') s t). +Axiom thm_LOCALLY_CONNECTED_CLOSED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@locally N' (@connected N') s) /\ ((@locally N' (@connected N') t) /\ ((@closed N' s) /\ (@closed N' t)))) -> @locally N' (@connected N') (@UNION (cart R N') s t). +Axiom thm_LOCALLY_CONNECTED_CLOSED_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@closed N' s) /\ (@locally N' (@connected N') s))) -> @locally N' (@connected N') (@UNIONS (cart R N') f). +Axiom thm_LOCALLY_CONNECTED_FROM_UNION_AND_INTER_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@locally N' (@connected N') (@UNION (cart R N') s t)) /\ (@locally N' (@connected N') (@INTER (cart R N') s t))))) -> @locally N' (@connected N') s. +Axiom thm_LOCALLY_CONNECTED_FROM_UNION_AND_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ ((@locally N' (@connected N') (@UNION (cart R N') s t)) /\ (@locally N' (@connected N') (@INTER (cart R N') s t))))) -> @locally N' (@connected N') s. +Axiom thm_LOCALLY_CONNECTED_CLOSURE_FROM_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@connected N') (@frontier N' s)) -> @locally N' (@connected N') (@closure N' s). +Axiom thm_PATH_CONNECTED_FROM_OPEN_UNION_AND_INTER_LOCAL : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@path_connected N' (@UNION (cart R N') s t)) /\ (@path_connected N' (@INTER (cart R N') s t))))) -> (@path_connected N' s) /\ (@path_connected N' t). +Axiom thm_PATH_CONNECTED_FROM_CLOSED_UNION_AND_INTER_LOCAL : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@path_connected N' (@UNION (cart R N') s t)) /\ (@path_connected N' (@INTER (cart R N') s t))))) -> (@path_connected N' s) /\ (@path_connected N' t). +Axiom thm_PATH_CONNECTED_FROM_CLOSED_UNION_AND_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ ((@path_connected N' (@UNION (cart R N') s t)) /\ (@path_connected N' (@INTER (cart R N') s t))))) -> (@path_connected N' s) /\ (@path_connected N' t). +Axiom thm_PATH_CONNECTED_CLOSURE_FROM_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@path_connected N' (@frontier N' s)) -> @path_connected N' (@closure N' s). +Axiom thm_LOCALLY_PATH_CONNECTED_SUBREGION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@locally N' (@path_connected N') s) /\ ((@SUBSET (cart R N') t s) /\ ((@path_connected N' c) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) c)))) -> exists c' : (cart R N') -> Prop, (@path_connected N' c') /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c') /\ (c = (@INTER (cart R N') t c'))). +Axiom thm_LOCALLY_PATH_CONNECTED_FROM_UNION_AND_INTER_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@locally N' (@path_connected N') (@UNION (cart R N') s t)) /\ (@locally N' (@path_connected N') (@INTER (cart R N') s t))))) -> @locally N' (@path_connected N') s. +Axiom thm_LOCALLY_PATH_CONNECTED_FROM_UNION_AND_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ ((@locally N' (@path_connected N') (@UNION (cart R N') s t)) /\ (@locally N' (@path_connected N') (@INTER (cart R N') s t))))) -> @locally N' (@path_connected N') s. +Axiom thm_FCCOVERABLE_IMP_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) c) /\ (((@UNIONS (cart R N') c) = s) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) -> (@connected N' t) /\ ((@bounded N' t) /\ (Rle (@diameter N' t) e))))) -> @locally N' (@connected N') s. +Axiom thm_ULC_IMP_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) d))) -> exists c : (cart R N') -> Prop, (@IN (cart R N') x c) /\ ((@IN (cart R N') y c) /\ ((@SUBSET (cart R N') c s) /\ ((@connected N' c) /\ ((@bounded N' c) /\ (Rle (@diameter N' c) e))))))) -> @locally N' (@connected N') s. +Axiom thm_FCCOVERABLE_INTERMEDIATE_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') s t) /\ ((@SUBSET (cart R N') t (@closure N' s)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) c) /\ (((@UNIONS (cart R N') c) = s) /\ (forall t' : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t' c) -> (@connected N' t') /\ ((@bounded N' t') /\ (Rle (@diameter N' t') e))))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) c) /\ (((@UNIONS (cart R N') c) = t) /\ (forall t' : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t' c) -> (@connected N' t') /\ ((@bounded N' t') /\ (Rle (@diameter N' t') e)))). +Axiom thm_COMPACT_LOCALLY_CONNECTED_IMP_ULC : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@locally N' (@connected N') s)) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) d))) -> exists c : (cart R N') -> Prop, (@IN (cart R N') x c) /\ ((@IN (cart R N') y c) /\ ((@SUBSET (cart R N') c s) /\ ((@connected N' c) /\ ((@bounded N' c) /\ (Rle (@diameter N' c) e)))))). +Axiom thm_COMPACT_LOCALLY_CONNECTED_IMP_ULC_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@locally N' (@connected N') s)) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((Rlt d e) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) d))) -> exists c : (cart R N') -> Prop, (@connected N' c) /\ ((@IN (cart R N') x c) /\ ((@IN (cart R N') y c) /\ (@SUBSET (cart R N') c (@INTER (cart R N') s (@INTER (cart R N') (@ball N' (@pair (cart R N') R x e)) (@ball N' (@pair (cart R N') R y e))))))))). +Axiom thm_BOUNDED_ULC_IMP_FCCOVERABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) d))) -> exists c : (cart R N') -> Prop, (@IN (cart R N') x c) /\ ((@IN (cart R N') y c) /\ ((@SUBSET (cart R N') c s) /\ ((@connected N' c) /\ ((@bounded N' c) /\ (Rle (@diameter N' c) e)))))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) c) /\ (((@UNIONS (cart R N') c) = s) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) -> (@connected N' t) /\ ((@bounded N' t) /\ (Rle (@diameter N' t) e)))). +Axiom thm_COMPACT_LOCALLY_CONNECTED_IMP_FCCOVERABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@locally N' (@connected N') s)) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) c) /\ (((@UNIONS (cart R N') c) = s) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) -> (@connected N' t) /\ ((@bounded N' t) /\ (Rle (@diameter N' t) e)))). +Axiom thm_COMPACT_LOCALLY_CONNECTED_EQ_FCCCOVERABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@locally N' (@connected N') s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) c) /\ (((@UNIONS (cart R N') c) = s) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) -> (@connected N' t) /\ ((@compact N' t) /\ (Rle (@diameter N' t) e))))). +Axiom thm_LOCALLY_FCCOVERABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall a : cart R N', ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) c) /\ (((@UNIONS (cart R N') c) = s) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) -> (@connected N' t) /\ ((@bounded N' t) /\ (Rle (@diameter N' t) e))))) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@IN (cart R N') a u))) -> exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ ((@connected N' v) /\ ((@IN (cart R N') a v) /\ ((@SUBSET (cart R N') v u) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) c) /\ (((@UNIONS (cart R N') c) = v) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) -> (@connected N' t) /\ ((@bounded N' t) /\ (Rle (@diameter N' t) e)))))))). +Axiom thm_LOCALLY_FCCOVERABLE_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall a : cart R N', ((@locally N' (@compact N') s) /\ ((@locally N' (@connected N') s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@IN (cart R N') a u)))) -> exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ ((@connected N' v) /\ ((@IN (cart R N') a v) /\ ((@SUBSET (cart R N') v u) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) c) /\ (((@UNIONS (cart R N') c) = v) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) -> (@connected N' t) /\ ((@bounded N' t) /\ (Rle (@diameter N' t) e)))))))). +Axiom thm_LOCALLY_CONNECTED_CONTINUUM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (fun c : (cart R N') -> Prop => (@compact N' c) /\ ((@connected N' c) /\ (@locally N' (@connected N') c))) s) = ((@locally N' (@compact N') s) /\ (@locally N' (@connected N') s)). +Axiom thm_COMPACT_LOCALLY_CONNECTED_EQ_FCCCOVERABLE_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@locally N' (@connected N') s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) c) /\ (((@UNIONS (cart R N') c) = s) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t c) -> (@connected N' t) /\ ((@compact N' t) /\ ((@locally N' (@connected N') t) /\ (Rle (@diameter N' t) e)))))). +Axiom thm_SEMI_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@connected N' s) /\ ((@locally N' (@compact N') s) /\ (@locally N' (@connected N') s))) -> forall x : cart R N', forall v : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@IN (cart R N') x v)) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@IN (cart R N') x u) /\ ((@SUBSET (cart R N') u v) /\ (@FINITE ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') s u))))). +Axiom thm_SEMI_LOCALLY_CONNECTED_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE ((cart R N') -> Prop) (@components N' s)) /\ ((@locally N' (@compact N') s) /\ (@locally N' (@connected N') s))) -> forall x : cart R N', forall v : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@IN (cart R N') x v)) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@IN (cart R N') x u) /\ ((@SUBSET (cart R N') u v) /\ (@FINITE ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') s u))))). +Axiom thm_SEMI_LOCALLY_CONNECTED_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@locally N' (@connected N') s)) -> forall x : cart R N', forall v : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@IN (cart R N') x v)) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@IN (cart R N') x u) /\ ((@SUBSET (cart R N') u v) /\ (@FINITE ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') s u))))). +Axiom thm_LOCALLY_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@convex N') s) = (forall x : cart R N', (@IN (cart R N') x s) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@IN (cart R N') x u) /\ ((@SUBSET (cart R N') u v) /\ ((@SUBSET (cart R N') v s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@convex N' v))))). +Axiom thm_PROPER_MAP_TO_COMPACT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_4803 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4803 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x))) /\ ((@compact N' t) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t))) -> @continuous_on M N' f s. +Axiom thm_CONTINUOUS_WITHIN_SEQUENTIALLY_COMPACT_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall x : cart R M, ((forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@compact M c)) -> @compact N' (@IMAGE (cart R M) (cart R N') f c)) /\ (@IN (cart R M) x s)) -> (@continuous N' (cart R M) f (@within (cart R M) (@_at M x) s)) = (forall p : N -> cart R M, forall y : cart R N', ((forall n : N, @IN (cart R M) (p n) s) /\ ((@FImp M N p x sequentially) /\ (forall n : N, (f (p n)) = y))) -> (f x) = y). +Axiom thm_COMPACT_CLOSED_POINTIMAGES_IMP_CONTINUOUS_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@compact M c)) -> @compact N' (@IMAGE (cart R M) (cart R N') f c)) /\ (forall y : cart R N', @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_4810 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4810 ((@IN (cart R M) x s) /\ ((f x) = y)) x)))) -> @continuous_on M N' f s. +Axiom thm_COMPACT_CONTINUOUS_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y) -> (@continuous_on M N' f s) = (forall t : (cart R M) -> Prop, ((@compact M t) /\ (@SUBSET (cart R M) t s)) -> @compact N' (@IMAGE (cart R M) (cart R N') f t)). +Axiom thm_CONTINUOUS_EQ_COMPACT_CONNECTED_PRESERVING_GEN : forall {M N' : Type'}, forall P : ((cart R M) -> Prop) -> Prop, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@locally M P s) /\ (forall c : (cart R M) -> Prop, (P c) -> @connected M c)) -> (@continuous_on M N' f s) = ((forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@compact M c)) -> @compact N' (@IMAGE (cart R M) (cart R N') f c)) /\ (forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (P c)) -> @connected N' (@IMAGE (cart R M) (cart R N') f c))). +Axiom thm_CONTINUOUS_EQ_COMPACT_CONNECTED_PRESERVING : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@locally M (@connected M) s) -> (@continuous_on M N' f s) = ((forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@compact M c)) -> @compact N' (@IMAGE (cart R M) (cart R N') f c)) /\ (forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@connected M c)) -> @connected N' (@IMAGE (cart R M) (cart R N') f c))). +Axiom thm_CONTINUOUS_EQ_COMPACT_PATH_CONNECTED_PRESERVING : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@locally M (@path_connected M) s) -> (@continuous_on M N' f s) = ((forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@compact M c)) -> @compact N' (@IMAGE (cart R M) (cart R N') f c)) /\ (forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@path_connected M c)) -> @path_connected N' (@IMAGE (cart R M) (cart R N') f c))). +Axiom thm_CONNECTED_CLOSED_POINTIMAGES_IMP_CONTINUOUS_ON : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, forall t : (cart R unit) -> Prop, ((@SUBSET (cart R unit) (@IMAGE (cart R N') (cart R unit) f s) t) /\ ((@locally N' (@connected N') s) /\ ((forall c : (cart R N') -> Prop, ((@SUBSET (cart R N') c s) /\ (@connected N' c)) -> @connected unit (@IMAGE (cart R N') (cart R unit) f c)) /\ (forall y : cart R unit, @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@GSPEC (cart R N') (fun GEN_PVAR_4817 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4817 ((@IN (cart R N') x s) /\ ((f x) = y)) x)))))) -> @continuous_on N' unit f s. +Axiom thm_CONNECTED_CONNECTED_IMP_CLOSED_POINTIMAGES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@connected M c)) -> @connected N' (@IMAGE (cart R M) (cart R N') f c)) /\ (forall y : cart R N', @connected M (@GSPEC (cart R M) (fun GEN_PVAR_4819 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4819 ((@IN (cart R M) x s) /\ ((f x) = y)) x)))) -> forall y : cart R N', @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_4820 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4820 ((@IN (cart R M) x s) /\ ((f x) = y)) x)). +Axiom thm_CONNECTED_CONNECTED_POINTIMAGES_IMP_CONTINUOUS_ON : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, forall t : (cart R unit) -> Prop, ((@SUBSET (cart R unit) (@IMAGE (cart R N') (cart R unit) f s) t) /\ ((@locally N' (@connected N') s) /\ ((forall c : (cart R N') -> Prop, ((@SUBSET (cart R N') c s) /\ (@connected N' c)) -> @connected unit (@IMAGE (cart R N') (cart R unit) f c)) /\ (forall y : cart R unit, @connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4821 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4821 ((@IN (cart R N') x s) /\ ((f x) = y)) x)))))) -> @continuous_on N' unit f s. +Axiom thm_CLOSED_CLOSED_PREIMAGES_IMP_CONTINUOUS_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@compact N' t) /\ ((forall y : cart R N', @closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_4822 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4822 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) /\ (forall c : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) c) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f c)))) -> @continuous_on M N' f s. +Axiom thm_CLOSED_CONNECTED_PREIMAGES_IMP_CONTINUOUS_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@compact N' t) /\ ((forall y : cart R N', @connected M (@GSPEC (cart R M) (fun GEN_PVAR_4823 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4823 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) /\ ((forall c : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) c) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f c)) /\ (forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@connected M c)) -> @connected N' (@IMAGE (cart R M) (cart R N') f c))))) -> @continuous_on M N' f s. +Axiom thm_BICONNECTED_IMP_CONTINUOUS_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@FINITE ((cart R N') -> Prop) (@components N' t)) /\ ((@locally N' (@compact N') t) /\ ((@locally N' (@connected N') t) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@connected M c)) -> @connected N' (@IMAGE (cart R M) (cart R N') f c)) /\ (forall c : (cart R N') -> Prop, ((@SUBSET (cart R N') c t) /\ (@connected N' c)) -> @connected M (@GSPEC (cart R M) (fun GEN_PVAR_4834 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4834 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) c)) x)))))))) -> @continuous_on M N' f s. +Axiom thm_MONOTONE_TOPOLOGICALLY_IMP : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, (forall c : (cart R unit) -> Prop, (@connected unit c) -> @connected unit (@GSPEC (cart R unit) (fun GEN_PVAR_4837 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_4837 ((@IN (cart R unit) x s) /\ (@IN (cart R unit) (f x) c)) x))) -> (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) \/ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x))). +Axiom thm_MONOTONE_TOPOLOGICALLY_EQ : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, (forall c : (cart R unit) -> Prop, (@connected unit c) -> @connected unit (@GSPEC (cart R unit) (fun GEN_PVAR_4839 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_4839 ((@IN (cart R unit) x s) /\ (@IN (cart R unit) (f x) c)) x))) = ((@is_interval unit s) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) \/ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x))))). +Axiom thm_MONOTONE_TOPOLOGICALLY : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, (@is_interval unit s) -> ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) \/ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x)))) = (forall c : (cart R unit) -> Prop, (@connected unit c) -> @connected unit (@GSPEC (cart R unit) (fun GEN_PVAR_4840 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_4840 ((@IN (cart R unit) x s) /\ (@IN (cart R unit) (f x) c)) x))). +Axiom thm_MONOTONE_TOPOLOGICALLY_INTO_1D_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, (@continuous_on N' unit f s) -> (forall k : (cart R unit) -> Prop, (@connected unit k) -> @connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4841 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4841 ((@IN (cart R N') x s) /\ (@IN (cart R unit) (f x) k)) x))) = ((@connected N' s) /\ (forall y : cart R unit, @connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4842 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4842 ((@IN (cart R N') x s) /\ ((f x) = y)) x)))). +Axiom thm_MONOTONE_TOPOLOGICALLY_INTO_1D : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((@connected N' s) /\ ((@continuous_on N' unit f s) /\ (forall y : cart R unit, @connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4843 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4843 ((@IN (cart R N') x s) /\ ((f x) = y)) x))))) -> forall k : (cart R unit) -> Prop, (@connected unit k) -> @connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4844 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4844 ((@IN (cart R N') x s) /\ (@IN (cart R unit) (f x) k)) x)). +Axiom thm_MONOTONE_TOPOLOGICALLY_POINTS : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (@continuous_on unit unit f s)) -> ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) \/ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x)))) = (forall a : cart R unit, @connected unit (@GSPEC (cart R unit) (fun GEN_PVAR_4845 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_4845 ((@IN (cart R unit) x s) /\ ((f x) = a)) x))). +Axiom thm_MONOTONE_TOPOLOGICALLY_POINTS_IMP : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@continuous_on unit unit f s) /\ ((@is_interval unit s) /\ (forall y : cart R unit, @connected unit (@GSPEC (cart R unit) (fun GEN_PVAR_4846 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_4846 ((@IN (cart R unit) x s) /\ ((f x) = y)) x))))) -> (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) \/ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x))). +Axiom thm_MONOTONE_IMP_HOMEOMORPHISM_1D : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@is_interval unit t) /\ (((@IMAGE (cart R unit) (cart R unit) f s) = t) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rlt (drop x) (drop y)))) -> Rlt (drop (f x)) (drop (f y))) \/ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rlt (drop x) (drop y)))) -> Rlt (drop (f x)) (drop (f y))))))) -> exists g : (cart R unit) -> cart R unit, @homeomorphism unit unit (@pair ((cart R unit) -> Prop) ((cart R unit) -> Prop) s t) (@pair ((cart R unit) -> cart R unit) ((cart R unit) -> cart R unit) f g). +Axiom thm_MONOTONE_CONNECTED_PREIMAGES_IMP_PROPER_MAP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((@locally M (@compact M) s) /\ ((@locally N' (@connected N') t) /\ ((@continuous_on M N' f s) /\ ((forall y : cart R N', @compact M (@GSPEC (cart R M) (fun GEN_PVAR_4855 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4855 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) /\ (forall c : (cart R N') -> Prop, ((@SUBSET (cart R N') c t) /\ (@connected N' c)) -> @connected M (@GSPEC (cart R M) (fun GEN_PVAR_4856 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4856 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) c)) x)))))))) -> forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_4857 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4857 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)). +Axiom thm_MONOTONE_INTO_1D_IMP_PROPER_MAP : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, forall t : (cart R unit) -> Prop, ((@connected N' s) /\ ((@locally N' (@compact N') s) /\ ((@continuous_on N' unit f s) /\ (((@IMAGE (cart R N') (cart R unit) f s) = t) /\ ((forall y : cart R unit, @compact N' (@GSPEC (cart R N') (fun GEN_PVAR_4858 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4858 ((@IN (cart R N') x s) /\ ((f x) = y)) x))) /\ (forall y : cart R unit, @connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4859 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4859 ((@IN (cart R N') x s) /\ ((f x) = y)) x)))))))) -> forall k : (cart R unit) -> Prop, ((@SUBSET (cart R unit) k t) /\ (@compact unit k)) -> @compact N' (@GSPEC (cart R N') (fun GEN_PVAR_4860 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4860 ((@IN (cart R N') x s) /\ (@IN (cart R unit) (f x) k)) x)). +Axiom thm_MONOTONE_CONNECTED_PREIMAGES_IMP_PROPER_MAP_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((@locally M (@compact M) s) /\ ((@locally N' (@connected N') t) /\ ((forall c : (cart R M) -> Prop, ((@SUBSET (cart R M) c s) /\ (@compact M c)) -> @compact N' (@IMAGE (cart R M) (cart R N') f c)) /\ ((forall y : cart R N', @compact M (@GSPEC (cart R M) (fun GEN_PVAR_4861 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4861 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) /\ (forall c : (cart R N') -> Prop, ((@SUBSET (cart R N') c t) /\ (@connected N' c)) -> @connected M (@GSPEC (cart R M) (fun GEN_PVAR_4862 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4862 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) c)) x)))))))) -> forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_4863 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_4863 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x)). +Axiom thm_SURA_BURA_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' s) /\ (@IN ((cart R N') -> Prop) c (@components N' s))) -> c = (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4864 : (cart R N') -> Prop => exists t : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4864 ((@SUBSET (cart R N') c t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t))) t))). +Axiom thm_SURA_BURA_CLOPEN_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ ((@IN ((cart R N') -> Prop) c (@components N' s)) /\ ((@compact N' c) /\ ((@_open N' u) /\ (@SUBSET (cart R N') c u))))) -> exists k : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) k) /\ ((@compact N' k) /\ ((@SUBSET (cart R N') c k) /\ (@SUBSET (cart R N') k u))). +Axiom thm_SURA_BURA_CLOPEN_SUBSET_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ ((@IN ((cart R N') -> Prop) c (@components N' s)) /\ ((@compact N' c) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@SUBSET (cart R N') c u))))) -> exists k : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) k) /\ ((@compact N' k) /\ ((@SUBSET (cart R N') c k) /\ (@SUBSET (cart R N') k u))). +Axiom thm_SURA_BURA : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ ((@IN ((cart R N') -> Prop) c (@components N' s)) /\ (@compact N' c))) -> c = (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4866 : (cart R N') -> Prop => exists k : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4866 ((@SUBSET (cart R N') c k) /\ ((@compact N' k) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) k))) k))). +Axiom thm_COMPONENT_CLOPEN_HAUSDIST_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@locally N' (@compact N') s) /\ ((@IN ((cart R N') -> Prop) c (@components N' s)) /\ (@compact N' c)))) -> exists k : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) k) /\ ((@compact N' k) /\ ((@SUBSET (cart R N') c k) /\ (@SUBSET (cart R N') k (@GSPEC (cart R N') (fun GEN_PVAR_4867 : cart R N' => exists x : cart R N', exists d : cart R N', @SETSPEC (cart R N') GEN_PVAR_4867 ((@IN (cart R N') x c) /\ (@IN (cart R N') d (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) e)))) (@vector_add N' x d)))))). +Axiom thm_COMPONENT_CLOPEN_HAUSDIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@locally N' (@compact N') s) /\ ((@IN ((cart R N') -> Prop) c (@components N' s)) /\ (@compact N' c)))) -> exists k : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) k) /\ ((@compact N' k) /\ ((@SUBSET (cart R N') c k) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) c k)) e))). +Axiom thm_COMPONENT_INTERMEDIATE_CLOPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) t (@components N' s)) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@SUBSET (cart R N') t u) /\ (((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) \/ ((exists r : (cart R unit) -> Prop, @homeomorphic unit N' s r) \/ ((@locally N' (@connected N') s) \/ ((@locally N' (@compact N') s) /\ (@compact N' t)))))))) -> exists c : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c) /\ ((@SUBSET (cart R N') t c) /\ (@SUBSET (cart R N') c u))). +Axiom thm_COMPONENTS_SUBSETS_CLOPEN_PARTITION : forall {N' : Type'}, forall u : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ ((@FINITE ((cart R N') -> Prop) u) /\ ((~ (u = (@EMPTY ((cart R N') -> Prop)))) /\ ((@SUBSET ((cart R N') -> Prop) u (@components N' s)) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c u) -> @compact N' c))))) -> exists f : ((cart R N') -> Prop) -> (cart R N') -> Prop, (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c u) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (f c)) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (f c)) /\ (@SUBSET (cart R N') c (f c)))) /\ ((@pairwise ((cart R N') -> Prop) (fun c : (cart R N') -> Prop => fun c' : (cart R N') -> Prop => ~ ((f c) = (f c'))) u) /\ ((@pairwise ((cart R N') -> Prop) (fun c : (cart R N') -> Prop => fun c' : (cart R N') -> Prop => @DISJOINT (cart R N') (f c) (f c')) u) /\ ((@UNIONS (cart R N') (@IMAGE ((cart R N') -> Prop) ((cart R N') -> Prop) f u)) = s))). +Axiom thm_OPEN_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@_open N' s) -> @_open N' (@connected_component N' s x). +Axiom thm_IN_CLOSURE_CONNECTED_COMPONENT : forall {N' : Type'} (s : (cart R N') -> Prop), forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@_open N' s)) -> (@IN (cart R N') x (@closure N' (@connected_component N' s y))) = (@IN (cart R N') x (@connected_component N' s y)). +Axiom thm_PATH_COMPONENT_SUBSET_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', @SUBSET (cart R N') (@path_component N' s x) (@connected_component N' s x). +Axiom thm_PATH_COMPONENT_EQ_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@locally N' (@path_connected N') s) -> (@path_component N' s x) = (@connected_component N' s x). +Axiom thm_PATH_COMPONENT_IMP_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@path_component N' s a b) -> @connected_component N' s a b. +Axiom thm_LOCALLY_PATH_CONNECTED_PATH_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@locally N' (@path_connected N') s) -> @locally N' (@path_connected N') (@path_component N' s x). +Axiom thm_OPEN_PATH_CONNECTED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@_open N' s) -> (@path_component N' s x) = (@connected_component N' s x). +Axiom thm_PATH_CONNECTED_EQ_CONNECTED_LPC : forall {_1064497 : Type'}, forall s : (cart R _1064497) -> Prop, (@locally _1064497 (@path_connected _1064497) s) -> (@path_connected _1064497 s) = (@connected _1064497 s). +Axiom thm_PATH_CONNECTED_EQ_CONNECTED : forall {_1064512 : Type'}, forall s : (cart R _1064512) -> Prop, (@_open _1064512 s) -> (@path_connected _1064512 s) = (@connected _1064512 s). +Axiom thm_CONNECTED_OPEN_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (@connected N' s)) -> @path_connected N' s. +Axiom thm_CONNECTED_OPEN_ARC_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (@connected N' s)) -> forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> (x = y) \/ (exists g : (cart R unit) -> cart R N', (@arc N' g) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ (((@pathstart N' g) = x) /\ ((@pathfinish N' g) = y)))). +Axiom thm_OPEN_COMPONENTS : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@_open N' u) /\ (@IN ((cart R N') -> Prop) s (@components N' u))) -> @_open N' s. +Axiom thm_COMPONENTS_OPEN_UNIQUE : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c f) -> (@_open N' c) /\ ((@connected N' c) /\ (~ (c = (@EMPTY (cart R N')))))) /\ ((@pairwise ((cart R N') -> Prop) (@DISJOINT (cart R N')) f) /\ ((@UNIONS (cart R N') f) = s))) -> (@components N' s) = f. +Axiom thm_COUNTABLE_OPEN_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @COUNTABLE ((cart R N') -> Prop) (@components N' s). +Axiom thm_COUNTABLE_OPEN_CONNECTED_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@_open N' s) -> @COUNTABLE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4870 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4870 (@IN (cart R N') x t) (@connected_component N' s x))). +Axiom thm_CONTINUOUS_ON_COMPONENTS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@locally M (@connected M) s) /\ (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M s)) -> @continuous_on M N' f c)) -> @continuous_on M N' f s. +Axiom thm_CONTINUOUS_ON_COMPONENTS_EQ : forall {_1064790 _1064795 : Type'}, forall f : (cart R _1064790) -> cart R _1064795, forall s : (cart R _1064790) -> Prop, (@locally _1064790 (@connected _1064790) s) -> (@continuous_on _1064790 _1064795 f s) = (forall c : (cart R _1064790) -> Prop, (@IN ((cart R _1064790) -> Prop) c (@components _1064790 s)) -> @continuous_on _1064790 _1064795 f c). +Axiom thm_CONTINUOUS_ON_COMPONENTS_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@_open M s) /\ (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M s)) -> @continuous_on M N' f c)) -> @continuous_on M N' f s. +Axiom thm_CONTINUOUS_ON_COMPONENTS_OPEN_EQ : forall {_1064858 _1064863 : Type'}, forall f : (cart R _1064858) -> cart R _1064863, forall s : (cart R _1064858) -> Prop, (@_open _1064858 s) -> (@continuous_on _1064858 _1064863 f s) = (forall c : (cart R _1064858) -> Prop, (@IN ((cart R _1064858) -> Prop) c (@components _1064858 s)) -> @continuous_on _1064858 _1064863 f c). +Axiom thm_CLOSED_IN_UNION_COMPLEMENT_COMPONENTS : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall c : ((cart R N') -> Prop) -> Prop, ((@locally N' (@connected N') u) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@SUBSET ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') u s))))) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) (@UNION (cart R N') s (@UNIONS (cart R N') c)). +Axiom thm_CLOSED_UNION_COMPLEMENT_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : ((cart R N') -> Prop) -> Prop, ((@closed N' s) /\ (@SUBSET ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)))) -> @closed N' (@UNION (cart R N') s (@UNIONS (cart R N') c)). +Axiom thm_CLOSED_IN_UNION_COMPLEMENT_COMPONENT : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@locally N' (@connected N') u) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') u s))))) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) (@UNION (cart R N') s c). +Axiom thm_CLOSED_UNION_COMPLEMENT_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@closed N' s) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)))) -> @closed N' (@UNION (cart R N') s c). +Axiom thm_NONSEPARATED_CLOSED_COMPLEMENT_COMPONENTS : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall c : ((cart R N') -> Prop) -> Prop, ((@connected N' u) /\ ((@locally N' (@connected N') u) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') u s))) /\ (~ (c = (@EMPTY ((cart R N') -> Prop))))))))) -> ~ ((@INTER (cart R N') s (@closure N' (@UNIONS (cart R N') c))) = (@EMPTY (cart R N'))). +Axiom thm_COUNTABLE_CONNECTED_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@locally N' (@connected N') s) -> @COUNTABLE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4872 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4872 (@IN (cart R N') x t) (@connected_component N' s x))). +Axiom thm_COUNTABLE_PATH_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@locally N' (@path_connected N') s) -> @COUNTABLE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4874 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4874 (@IN (cart R N') x t) (@path_component N' s x))). +Axiom thm_COUNTABLE_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@connected N') s) -> @COUNTABLE ((cart R N') -> Prop) (@components N' s). +Axiom thm_FRONTIER_MINIMAL_SEPARATING_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@closed N' s) /\ ((~ (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ ((forall t : (cart R N') -> Prop, ((@closed N' t) /\ (@PSUBSET (cart R N') t s)) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) t)) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)))))) -> (@frontier N' c) = s. +Axiom thm_FRONTIER_MINIMAL_SEPARATING_CLOSED_POINTWISE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@closed N' s) /\ ((~ (@IN (cart R N') a s)) /\ ((~ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a b)) /\ (forall t : (cart R N') -> Prop, ((@closed N' t) /\ (@PSUBSET (cart R N') t s)) -> @connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) t) a b)))) -> (@frontier N' (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a)) = s. +Axiom thm_CONNECTED_COMPONENT_DIFF_NONSEPARATED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' s) /\ ((@connected N' s) /\ ((@SUBSET (cart R N') t s) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') s t))))))) -> ~ ((@INTER (cart R N') (@closure N' c) (@closure N' t)) = (@EMPTY (cart R N'))). +Axiom thm_CONNECTED_COMPONENT_DIFF_NONSEPARATED_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' s) /\ ((@connected N' s) /\ ((@PSUBSET (cart R N') t s) /\ (@IN ((cart R N') -> Prop) c (@components N' t))))) -> ~ ((@INTER (cart R N') (@closure N' c) (@closure N' (@DIFF (cart R N') s t))) = (@EMPTY (cart R N'))). +Axiom thm_CONNECTED_COMPONENT_DIFF_CLOSED_NONSEPARATED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' s) /\ ((@connected N' s) /\ ((@closed N' t) /\ ((@SUBSET (cart R N') t s) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') s t)))))))) -> ~ ((@INTER (cart R N') (@closure N' c) t) = (@EMPTY (cart R N'))). +Axiom thm_NONSEPARATED_CLOSED_COMPLEMENT_COMPONENT : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, (((@compact N' u) \/ (@locally N' (@connected N') u)) /\ ((@connected N' u) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') u s))))))) -> ~ ((@INTER (cart R N') s (@closure N' c)) = (@EMPTY (cart R N'))). +Axiom thm_CONNECTED_EQ_NONSEPARATED_CLOSED_COMPLEMENT_COMPONENT : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (((@compact N' u) \/ (@locally N' (@connected N') u)) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@connected N' s) /\ (~ (s = (@EMPTY (cart R N'))))))) -> (@connected N' u) = (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') u s))) -> ~ ((@INTER (cart R N') s (@closure N' c)) = (@EMPTY (cart R N')))). +Axiom thm_CONNECTED_EQ_COMPONENT_DIFF_CLOSED_NONSEPARATED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@closed N' t) /\ ((@connected N' t) /\ ((@SUBSET (cart R N') t s) /\ (~ (t = (@EMPTY (cart R N')))))))) -> (@connected N' s) = (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') s t))) -> ~ ((@INTER (cart R N') (@closure N' c) t) = (@EMPTY (cart R N')))). +Axiom thm_CONNECTED_EQ_COMPONENT_DELETE_NONSEPARATED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (((@compact N' s) \/ ((@locally N' (@connected N') s) \/ (@FINITE ((cart R N') -> Prop) (@components N' (@DELETE (cart R N') s a))))) /\ (@IN (cart R N') a s)) -> (@connected N' s) = (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' (@DELETE (cart R N') s a))) -> @IN (cart R N') a (@closure N' c)). +Axiom thm_CONNECTED_INSERT_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@compact N' (@INSERT (cart R N') a s)) -> (@connected N' (@INSERT (cart R N') a s)) = (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) -> @IN (cart R N') a (@closure N' c)). +Axiom thm_BOUNDARY_BUMPING_THEOREM_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' s) /\ ((@connected N' s) /\ ((@PSUBSET (cart R N') t s) /\ (@IN ((cart R N') -> Prop) c (@components N' t))))) -> ~ ((@INTER (cart R N') (@closure N' c) (@INTER (cart R N') (@closure N' t) (@closure N' (@DIFF (cart R N') s t)))) = (@EMPTY (cart R N'))). +Axiom thm_BOUNDARY_BUMPING_THEOREM_EUCLIDEAN_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' s) /\ ((@connected N' s) /\ ((@closed N' t) /\ ((@PSUBSET (cart R N') t s) /\ (@IN ((cart R N') -> Prop) c (@components N' t)))))) -> ~ ((@INTER (cart R N') c (@INTER (cart R N') (@closure N' t) (@closure N' (@DIFF (cart R N') s t)))) = (@EMPTY (cart R N'))). +Axiom thm_BOUNDARY_BUMPING_THEOREM_EUCLIDEAN_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' s) /\ ((@connected N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ ((@PSUBSET (cart R N') t s) /\ (@IN ((cart R N') -> Prop) c (@components N' (@closure N' t))))))) -> ~ ((@INTER (cart R N') c (@DIFF (cart R N') s t)) = (@EMPTY (cart R N'))). +Axiom thm_BOUNDARY_BUMPING_THEOREM_EUCLIDEAN_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, (((@compact N' s) \/ (@locally N' (@connected N') s)) /\ ((@connected N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ ((@PSUBSET (cart R N') t s) /\ (@IN ((cart R N') -> Prop) c (@components N' t)))))) -> ~ ((@INTER (cart R N') (@closure N' c) (@DIFF (cart R N') s t)) = (@EMPTY (cart R N'))). +Axiom thm_BOUNDARY_BUMPING_THEOREM_EUCLIDEAN_OPEN_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, (((@compact N' s) \/ (@locally N' (@connected N') s)) /\ ((@connected N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ ((@PSUBSET (cart R N') t s) /\ (@IN ((cart R N') -> Prop) c (@components N' t)))))) -> ~ ((@INTER (cart R N') (@closure N' c) (@DIFF (cart R N') (@closure N' t) t)) = (@EMPTY (cart R N'))). +Axiom thm_CONTINUUM_UNION_COMPONENTS_INTERMEDIATE_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' s) /\ ((@connected N' s) /\ ((@compact N' t) /\ ((@SUBSET (cart R N') s t) /\ ((@compact N' u) /\ ((@connected N' u) /\ ((@SUBSET (cart R N') t u) /\ ((@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') u t))) /\ (@SUBSET (cart R N') (@DIFF (cart R N') (@closure N' c) c) s))))))))) -> (@compact N' (@UNION (cart R N') c s)) /\ (@connected N' (@UNION (cart R N') c s)). +Axiom thm_CONTINUUM_UNION_COMPONENTS_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' s) /\ ((@connected N' s) /\ ((@compact N' u) /\ ((@connected N' u) /\ ((@SUBSET (cart R N') s u) /\ ((@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') u s))) /\ (@SUBSET (cart R N') (@DIFF (cart R N') (@closure N' c) c) s))))))) -> (@compact N' (@UNION (cart R N') c s)) /\ (@connected N' (@UNION (cart R N') c s)). +Axiom thm_WELLCHAINED_ELEMENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall e : R, (exists p : N -> cart R N', exists n : N, ((p (NUMERAL 0%N)) = a) /\ (((p n) = b) /\ ((forall i : N, (N.le i n) -> @IN (cart R N') (p i) s) /\ (forall i : N, (N.lt i n) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (p i) (p (N.succ i)))) e)))) = ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (forall c : (cart R N') -> Prop, ((@SUBSET (cart R N') c s) /\ ((@IN (cart R N') a c) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x c) /\ ((@IN (cart R N') y s) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) e))) -> @IN (cart R N') y c))) -> @IN (cart R N') b c))). +Axiom thm_WELLCHAINED_SETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, (forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a s) /\ (@IN (cart R N') b s)) -> exists p : N -> cart R N', exists n : N, ((p (NUMERAL 0%N)) = a) /\ (((p n) = b) /\ ((forall i : N, (N.le i n) -> @IN (cart R N') (p i) s) /\ (forall i : N, (N.lt i n) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (p i) (p (N.succ i)))) e)))) = (forall c : (cart R N') -> Prop, ((@SUBSET (cart R N') c s) /\ ((~ (c = (@EMPTY (cart R N')))) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x c) /\ ((@IN (cart R N') y s) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) e))) -> @IN (cart R N') y c))) -> c = s). +Axiom thm_CONNECTED_IMP_WELLCHAINED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, forall a : cart R N', forall b : cart R N', ((@connected N' s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@IN (cart R N') a s) /\ (@IN (cart R N') b s)))) -> exists p : N -> cart R N', exists n : N, ((p (NUMERAL 0%N)) = a) /\ (((p n) = b) /\ ((forall i : N, (N.le i n) -> @IN (cart R N') (p i) s) /\ (forall i : N, (N.lt i n) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (p i) (p (N.succ i)))) e))). +Axiom thm_CONNECTED_EQ_WELLCHAINED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> (@connected N' s) = (forall e : R, forall a : cart R N', forall b : cart R N', ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@IN (cart R N') a s) /\ (@IN (cart R N') b s))) -> exists p : N -> cart R N', exists n : N, ((p (NUMERAL 0%N)) = a) /\ (((p n) = b) /\ ((forall i : N, (N.le i n) -> @IN (cart R N') (p i) s) /\ (forall i : N, (N.lt i n) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (p i) (p (N.succ i)))) e)))). +Axiom thm_WELLCHAINED_INTERS : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, forall d : R, forall e : R, ((Rlt d e) /\ ((forall m : N, @compact N' (s m)) /\ ((forall m : N, @SUBSET (cart R N') (s (N.succ m)) (s m)) /\ (forall m : N, forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a (s m)) /\ (@IN (cart R N') b (s m))) -> exists p : N -> cart R N', exists n : N, ((p (NUMERAL 0%N)) = a) /\ (((p n) = b) /\ ((forall i : N, (N.le i n) -> @IN (cart R N') (p i) (s m)) /\ (forall i : N, (N.lt i n) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (p i) (p (N.succ i)))) d))))))) -> forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4882 : (cart R N') -> Prop => exists m : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4882 (@IN N m (@UNIV N)) (s m))))) /\ (@IN (cart R N') b (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4883 : (cart R N') -> Prop => exists m : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4883 (@IN N m (@UNIV N)) (s m)))))) -> exists p : N -> cart R N', exists n : N, ((p (NUMERAL 0%N)) = a) /\ (((p n) = b) /\ ((forall i : N, (N.le i n) -> @IN (cart R N') (p i) (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4884 : (cart R N') -> Prop => exists m : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4884 (@IN N m (@UNIV N)) (s m))))) /\ (forall i : N, (N.lt i n) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (p i) (p (N.succ i)))) e))). +Axiom thm_CONNECTED_COMPONENT_IMP_WELLCHAINED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (@connected_component N' s a b)) -> exists p : N -> cart R N', exists n : N, ((p (NUMERAL 0%N)) = a) /\ (((p n) = b) /\ ((forall i : N, (N.le i n) -> @IN (cart R N') (p i) s) /\ (forall i : N, (N.lt i n) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (p i) (p (N.succ i)))) e))). +Axiom thm_CONNECTED_COMPONENT_EQ_WELLCHAINED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@compact N' s) -> (@connected_component N' s a b) = ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists p : N -> cart R N', exists n : N, ((p (NUMERAL 0%N)) = a) /\ (((p n) = b) /\ ((forall i : N, (N.le i n) -> @IN (cart R N') (p i) s) /\ (forall i : N, (N.lt i n) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (p i) (p (N.succ i)))) e)))))). +Axiom thm_COMPACT_PARTITION_CONTAINING_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((@compact N' s) /\ ((@closed N' t) /\ ((@closed N' t') /\ ((@SUBSET (cart R N') t s) /\ ((@SUBSET (cart R N') t' s) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) -> ((@INTER (cart R N') c t) = (@EMPTY (cart R N'))) \/ ((@INTER (cart R N') c t') = (@EMPTY (cart R N'))))))))) -> exists k : (cart R N') -> Prop, exists k' : (cart R N') -> Prop, (@compact N' k) /\ ((@compact N' k') /\ ((@SUBSET (cart R N') t k) /\ ((@SUBSET (cart R N') t' k') /\ ((@DISJOINT (cart R N') k k') /\ ((@UNION (cart R N') k k') = s))))). +Axiom thm_COMPACT_PARTITION_CONTAINING_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@compact N' s) /\ ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (~ (@connected_component N' s a b))))) -> exists k : (cart R N') -> Prop, exists k' : (cart R N') -> Prop, (@compact N' k) /\ ((@compact N' k') /\ ((@IN (cart R N') a k) /\ ((@IN (cart R N') b k') /\ ((@DISJOINT (cart R N') k k') /\ ((@UNION (cart R N') k k') = s))))). +Axiom thm_CONNECTED_COMPONENT_LIMIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : N -> cart R N', forall y : N -> cart R N', forall a : cart R N', forall b : cart R N', ((@compact N' s) /\ ((@FImp N' N x a sequentially) /\ ((@FImp N' N y b sequentially) /\ (@eventually N (fun n : N => @connected_component N' s (x n) (y n)) sequentially)))) -> @connected_component N' s a b. +Axiom thm_CLOSED_UNIONS_COMPONENTS_MEETING_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ (@closed N' t)) -> @closed N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4895 : (cart R N') -> Prop => exists c : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4895 ((@IN ((cart R N') -> Prop) c (@components N' s)) /\ (~ ((@INTER (cart R N') c t) = (@EMPTY (cart R N'))))) c))). +Axiom thm_ARBITRARILY_SMALL_CONTINUUM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall a : cart R N', ((@connected N' s) /\ ((@locally N' (@compact N') s) /\ ((@_open N' u) /\ ((@PSUBSET (cart R N') (@INSERT (cart R N') a (@EMPTY (cart R N'))) s) /\ (@IN (cart R N') a u))))) -> exists c : (cart R N') -> Prop, (@PSUBSET (cart R N') (@INSERT (cart R N') a (@EMPTY (cart R N'))) c) /\ ((@SUBSET (cart R N') c s) /\ ((@SUBSET (cart R N') c u) /\ ((@compact N' c) /\ (@connected N' c)))). +Axiom thm_BOUNDARY_BUMPING_THEOREM_EUCLIDEAN_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@connected N' s) /\ ((@locally N' (@compact N') s) /\ ((@_open N' u) /\ ((~ (@SUBSET (cart R N') s u)) /\ ((@compact N' (@INTER (cart R N') s (@closure N' u))) /\ (@IN ((cart R N') -> Prop) c (@components N' (@INTER (cart R N') s (@closure N' u))))))))) -> ~ ((@INTER (cart R N') c (@frontier N' u)) = (@EMPTY (cart R N'))). +Axiom thm_BOUNDARY_BUMPING_THEOREM_EUCLIDEAN_INTER_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@connected N' s) /\ ((@locally N' (@compact N') s) /\ ((@_open N' u) /\ ((~ ((@INTER (cart R N') s u) = (@EMPTY (cart R N')))) /\ ((~ (@SUBSET (cart R N') s u)) /\ ((@compact N' (@INTER (cart R N') s (@closure N' u))) /\ (@IN ((cart R N') -> Prop) c (@components N' (@INTER (cart R N') s u))))))))) -> exists x : cart R N', (@IN (cart R N') x (@frontier N' u)) /\ (@limit_point_of N' x c). +Axiom thm_LOCALLY_COMPACT_CONNECTED_IMP_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ ((@locally N' (@connected N') s) /\ (@connected N' s))) -> @path_connected N' s. +Axiom thm_LOCALLY_COMPACT_PATH_CONNECTED_EQ_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ (@locally N' (@connected N') s)) -> (@path_connected N' s) = (@connected N' s). +Axiom thm_LOCALLY_COMPACT_LOCALLY_CONNECTED_IMP_LOCALLY_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ (@locally N' (@connected N') s)) -> @locally N' (@path_connected N') s. +Axiom thm_LOCALLY_COMPACT_LOCALLY_PATH_CONNECTED_EQ_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@compact N') s) -> (@locally N' (@path_connected N') s) = (@locally N' (@connected N') s). +Axiom thm_LOCALLY_PATH_CONNECTED_CLOSURE_FROM_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@connected N') (@frontier N' s)) -> @locally N' (@path_connected N') (@closure N' s). +Axiom thm_CLOSED_IRREDUCIBLE_SEPARATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@closed N' s) /\ (~ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a b))) -> exists t : (cart R N') -> Prop, (@SUBSET (cart R N') t s) /\ ((@closed N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ ((~ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) t) a b)) /\ (forall u : (cart R N') -> Prop, (@PSUBSET (cart R N') u t) -> @connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) u) a b)))). +Axiom thm_NORM_SEGMENT_LOWERBOUND : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', forall r : R, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (((@vector_norm N' a) = r) /\ (((@vector_norm N' b) = r) /\ ((@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((@dot N' a b) = (Rmult d (real_pow r (NUMERAL (BIT0 (BIT1 0%N)))))))))) -> Rle (Rmult (sqrt (Rdiv (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs d)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) r) (@vector_norm N' x). +Axiom thm_NORM_SEGMENT_ORTHOGONAL_LOWERBOUND : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', forall r : R, ((Rle r (@vector_norm N' a)) /\ ((Rle r (@vector_norm N' b)) /\ ((@orthogonal N' a b) /\ (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))))) -> Rle (Rdiv r (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (@vector_norm N' x). +Axiom thm_DENSE_ACCESSIBLE_FRONTIER_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall v : (cart R N') -> Prop, ((@_open N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@frontier N' s)) v) /\ (~ (v = (@EMPTY (cart R N')))))) -> exists g : (cart R unit) -> cart R N', (@arc N' g) /\ ((@SUBSET (cart R N') (@IMAGE (cart R unit) (cart R N') g (@DELETE (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@vec unit (NUMERAL (BIT1 0%N))))) s) /\ ((@IN (cart R N') (@pathstart N' g) s) /\ (@IN (cart R N') (@pathfinish N' g) v))). +Axiom thm_DENSE_ACCESSIBLE_FRONTIER_POINTS_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall v : (cart R N') -> Prop, forall x : cart R N', ((@_open N' s) /\ ((@connected N' s) /\ ((@IN (cart R N') x s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@frontier N' s)) v) /\ (~ (v = (@EMPTY (cart R N')))))))) -> exists g : (cart R unit) -> cart R N', (@arc N' g) /\ ((@SUBSET (cart R N') (@IMAGE (cart R unit) (cart R N') g (@DELETE (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@vec unit (NUMERAL (BIT1 0%N))))) s) /\ (((@pathstart N' g) = x) /\ (@IN (cart R N') (@pathfinish N' g) v))). +Axiom thm_DENSE_ACCESSIBLE_FRONTIER_POINT_PAIRS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall v : (cart R N') -> Prop, ((@_open N' s) /\ ((@connected N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@frontier N' s)) u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@frontier N' s)) v) /\ ((~ (u = (@EMPTY (cart R N')))) /\ ((~ (v = (@EMPTY (cart R N')))) /\ (~ (u = v)))))))) -> exists g : (cart R unit) -> cart R N', (@arc N' g) /\ ((@IN (cart R N') (@pathstart N' g) u) /\ ((@IN (cart R N') (@pathfinish N' g) v) /\ (@SUBSET (cart R N') (@IMAGE (cart R unit) (cart R N') g (@open_interval unit (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))))) s))). +Axiom thm_PATH_CONNECTED_CONVEX_DIFF_CARD_LT : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@convex N' u) /\ ((~ (@collinear N' u)) /\ (@lt_c (cart R N') R s (@UNIV R)))) -> @path_connected N' (@DIFF (cart R N') u s). +Axiom thm_CONNECTED_CONVEX_DIFF_CARD_LT : forall {_1078549 : Type'}, forall u : (cart R _1078549) -> Prop, forall s : (cart R _1078549) -> Prop, ((@convex _1078549 u) /\ ((~ (@collinear _1078549 u)) /\ (@lt_c (cart R _1078549) R s (@UNIV R)))) -> @connected _1078549 (@DIFF (cart R _1078549) u s). +Axiom thm_PATH_CONNECTED_CONVEX_DIFF_COUNTABLE : forall {_1078579 : Type'}, forall u : (cart R _1078579) -> Prop, forall s : (cart R _1078579) -> Prop, ((@convex _1078579 u) /\ ((~ (@collinear _1078579 u)) /\ (@COUNTABLE (cart R _1078579) s))) -> @path_connected _1078579 (@DIFF (cart R _1078579) u s). +Axiom thm_CONNECTED_CONVEX_DIFF_COUNTABLE : forall {_1078606 : Type'}, forall u : (cart R _1078606) -> Prop, forall s : (cart R _1078606) -> Prop, ((@convex _1078606 u) /\ ((~ (@collinear _1078606 u)) /\ (@COUNTABLE (cart R _1078606) s))) -> @connected _1078606 (@DIFF (cart R _1078606) u s). +Axiom thm_PATH_CONNECTED_PUNCTURED_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ (~ ((@aff_dim N' s) = (Z_of_N (NUMERAL (BIT1 0%N)))))) -> @path_connected N' (@DELETE (cart R N') s a). +Axiom thm_CONNECTED_PUNCTURED_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ (~ ((@aff_dim N' s) = (Z_of_N (NUMERAL (BIT1 0%N)))))) -> @connected N' (@DELETE (cart R N') s a). +Axiom thm_PATH_CONNECTED_COMPLEMENT_CARD_LT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@lt_c (cart R N') R s (@UNIV R))) -> @path_connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s). +Axiom thm_PATH_CONNECTED_CONNECTED_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@SUBSET (cart R N') s (@closure N' (@DIFF (cart R N') s t))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists u : (cart R N') -> Prop, (@IN (cart R N') x u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@path_connected N' (@DIFF (cart R N') u t)))))) -> @path_connected N' (@DIFF (cart R N') s t). +Axiom thm_PATH_CONNECTED_OPEN_IN_DIFF_CARD_LT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s) /\ ((~ (@collinear N' s)) /\ (@lt_c (cart R N') R t (@UNIV R))))) -> @path_connected N' (@DIFF (cart R N') s t). +Axiom thm_CONNECTED_OPEN_IN_DIFF_CARD_LT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s) /\ ((~ (@collinear N' s)) /\ (@lt_c (cart R N') R t (@UNIV R))))) -> @connected N' (@DIFF (cart R N') s t). +Axiom thm_PATH_CONNECTED_OPEN_DIFF_CARD_LT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@_open N' s) /\ ((@connected N' s) /\ (@lt_c (cart R N') R t (@UNIV R))))) -> @path_connected N' (@DIFF (cart R N') s t). +Axiom thm_CONNECTED_OPEN_DIFF_CARD_LT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@_open N' s) /\ ((@connected N' s) /\ (@lt_c (cart R N') R t (@UNIV R))))) -> @connected N' (@DIFF (cart R N') s t). +Axiom thm_PATH_CONNECTED_OPEN_DIFF_COUNTABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@_open N' s) /\ ((@connected N' s) /\ (@COUNTABLE (cart R N') t)))) -> @path_connected N' (@DIFF (cart R N') s t). +Axiom thm_CONNECTED_OPEN_DIFF_COUNTABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@_open N' s) /\ ((@connected N' s) /\ (@COUNTABLE (cart R N') t)))) -> @connected N' (@DIFF (cart R N') s t). +Axiom thm_PATH_CONNECTED_OPEN_DELETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@_open N' s) /\ (@connected N' s))) -> @path_connected N' (@DELETE (cart R N') s a). +Axiom thm_CONNECTED_OPEN_DELETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@_open N' s) /\ (@connected N' s))) -> @connected N' (@DELETE (cart R N') s a). +Axiom thm_PATH_CONNECTED_PUNCTURED_UNIVERSE : forall {N' : Type'}, forall a : cart R N', (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @path_connected N' (@DIFF (cart R N') (@UNIV (cart R N')) (@INSERT (cart R N') a (@EMPTY (cart R N')))). +Axiom thm_CONNECTED_PUNCTURED_UNIVERSE : forall {N' : Type'}, forall a : cart R N', (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) (@INSERT (cart R N') a (@EMPTY (cart R N')))). +Axiom thm_PATH_CONNECTED_PUNCTURED_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @path_connected N' (@DELETE (cart R N') (@ball N' (@pair (cart R N') R a r)) a). +Axiom thm_CONNECTED_PUNCTURED_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @connected N' (@DELETE (cart R N') (@ball N' (@pair (cart R N') R a r)) a). +Axiom thm_PATH_CONNECTED_PUNCTURED_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @path_connected N' (@DELETE (cart R N') (@cball N' (@pair (cart R N') R a r)) a). +Axiom thm_CONNECTED_PUNCTURED_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @connected N' (@DELETE (cart R N') (@cball N' (@pair (cart R N') R a r)) a). +Axiom thm_PATH_CONNECTED_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @path_connected N' (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_CONNECTED_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @connected N' (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_CONNECTED_SPHERE_EQ : forall {N' : Type'}, forall a : cart R N', forall r : R, (@connected N' (@sphere N' (@pair (cart R N') R a r))) = ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) \/ (Rle r (R_of_N (NUMERAL 0%N)))). +Axiom thm_PATH_CONNECTED_SPHERE_EQ : forall {N' : Type'}, forall a : cart R N', forall r : R, (@path_connected N' (@sphere N' (@pair (cart R N') R a r))) = ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) \/ (Rle r (R_of_N (NUMERAL 0%N)))). +Axiom thm_FINITE_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (@FINITE (cart R N') (@sphere N' (@pair (cart R N') R a r))) = ((Rle r (R_of_N (NUMERAL 0%N))) \/ ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N)))). +Axiom thm_LIMIT_POINT_OF_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, forall x : cart R N', (@limit_point_of N' x (@sphere N' (@pair (cart R N') R a r))) = ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@IN (cart R N') x (@sphere N' (@pair (cart R N') R a r))))). +Axiom thm_CARD_EQ_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (Rlt (R_of_N (NUMERAL 0%N)) r)) -> @eq_c (cart R N') R (@sphere N' (@pair (cart R N') R a r)) (@UNIV R). +Axiom thm_HAS_SIZE_SPHERE_2 : forall {N' : Type'}, forall a : cart R N', forall r : R, (@HAS_SIZE (cart R N') (@sphere N' (@pair (cart R N') R a r)) (NUMERAL (BIT0 (BIT1 0%N)))) = (((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) /\ (Rlt (R_of_N (NUMERAL 0%N)) r)). +Axiom thm_LOCALLY_PATH_CONNECTED_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, @locally N' (@path_connected N') (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_LOCALLY_CONNECTED_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, @locally N' (@connected N') (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_CARD_CIRCLE_INTERSECTION_LE : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall r : R, forall s : R, (~ ((a = b) /\ ((r = s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (Rlt (R_of_N (NUMERAL 0%N)) s))))) -> N.le (@CARD (cart R (tybit0 unit)) (@INTER (cart R (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R b s)))) (NUMERAL (BIT0 (BIT1 0%N))). +Axiom thm_FINITE_CIRCLE_INTERSECTION : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall r : R, forall s : R, (@FINITE (cart R (tybit0 unit)) (@INTER (cart R (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R b s)))) = (~ ((a = b) /\ ((r = s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (Rlt (R_of_N (NUMERAL 0%N)) s))))). +Axiom thm_INTER_SPHERE_EQ_EMPTY : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, ((@INTER (cart R N') (@sphere N' (@pair (cart R N') R a r)) (@sphere N' (@pair (cart R N') R b s))) = (@EMPTY (cart R N'))) = (@COND Prop ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) ((Rlt r (R_of_N (NUMERAL 0%N))) \/ ((Rlt s (R_of_N (NUMERAL 0%N))) \/ ((~ ((@distance N' (@pair (cart R N') (cart R N') a b)) = (Rabs (Rminus r s)))) /\ (~ ((@distance N' (@pair (cart R N') (cart R N') a b)) = (Rplus r s)))))) ((Rlt r (R_of_N (NUMERAL 0%N))) \/ ((Rlt s (R_of_N (NUMERAL 0%N))) \/ ((Rlt (@distance N' (@pair (cart R N') (cart R N') a b)) (Rabs (Rminus r s))) \/ (Rlt (Rplus r s) (@distance N' (@pair (cart R N') (cart R N') a b))))))). +Axiom thm_HAS_SIZE_INTER_SPHERE_1 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall r : R, forall s : R, (@HAS_SIZE (cart R N') (@INTER (cart R N') (@sphere N' (@pair (cart R N') R a r)) (@sphere N' (@pair (cart R N') R b s))) (NUMERAL (BIT1 0%N))) = ((Rle (R_of_N (NUMERAL 0%N)) r) /\ ((Rle (R_of_N (NUMERAL 0%N)) s) /\ (((a = b) -> (r = (R_of_N (NUMERAL 0%N))) /\ (s = (R_of_N (NUMERAL 0%N)))) /\ (((@distance N' (@pair (cart R N') (cart R N') a b)) = (Rplus r s)) \/ ((@distance N' (@pair (cart R N') (cart R N') a b)) = (Rabs (Rminus r s))))))). +Axiom thm_PATH_CONNECTED_ANNULUS : forall {N' : Type'}, (forall a : cart R N', forall r1 : R, forall r2 : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @path_connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4917 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4917 ((Rlt r1 (@vector_norm N' (@vector_sub N' x a))) /\ (Rlt (@vector_norm N' (@vector_sub N' x a)) r2)) x))) /\ ((forall a : cart R N', forall r1 : R, forall r2 : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @path_connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4918 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4918 ((Rlt r1 (@vector_norm N' (@vector_sub N' x a))) /\ (Rle (@vector_norm N' (@vector_sub N' x a)) r2)) x))) /\ ((forall a : cart R N', forall r1 : R, forall r2 : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @path_connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4919 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4919 ((Rle r1 (@vector_norm N' (@vector_sub N' x a))) /\ (Rlt (@vector_norm N' (@vector_sub N' x a)) r2)) x))) /\ (forall a : cart R N', forall r1 : R, forall r2 : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @path_connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4920 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4920 ((Rle r1 (@vector_norm N' (@vector_sub N' x a))) /\ (Rlt (@vector_norm N' (@vector_sub N' x a)) r2)) x))))). +Axiom thm_CONNECTED_ANNULUS : forall {N' : Type'}, (forall a : cart R N', forall r1 : R, forall r2 : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4921 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4921 ((Rlt r1 (@vector_norm N' (@vector_sub N' x a))) /\ (Rlt (@vector_norm N' (@vector_sub N' x a)) r2)) x))) /\ ((forall a : cart R N', forall r1 : R, forall r2 : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4922 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4922 ((Rlt r1 (@vector_norm N' (@vector_sub N' x a))) /\ (Rle (@vector_norm N' (@vector_sub N' x a)) r2)) x))) /\ ((forall a : cart R N', forall r1 : R, forall r2 : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4923 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4923 ((Rle r1 (@vector_norm N' (@vector_sub N' x a))) /\ (Rlt (@vector_norm N' (@vector_sub N' x a)) r2)) x))) /\ (forall a : cart R N', forall r1 : R, forall r2 : R, (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @connected N' (@GSPEC (cart R N') (fun GEN_PVAR_4924 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4924 ((Rle r1 (@vector_norm N' (@vector_sub N' x a))) /\ (Rlt (@vector_norm N' (@vector_sub N' x a)) r2)) x))))). +Axiom thm_PATH_CONNECTED_COMPLEMENT_BOUNDED_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@bounded N' s) /\ (@convex N' s))) -> @path_connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s). +Axiom thm_CONNECTED_COMPLEMENT_BOUNDED_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@bounded N' s) /\ (@convex N' s))) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s). +Axiom thm_CONNECTED_DIFF_BALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall r : R, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@connected N' s) /\ (@SUBSET (cart R N') (@cball N' (@pair (cart R N') R a r)) s))) -> @connected N' (@DIFF (cart R N') s (@ball N' (@pair (cart R N') R a r))). +Axiom thm_PATH_CONNECTED_DIFF_BALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall r : R, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@path_connected N' s) /\ (@SUBSET (cart R N') (@cball N' (@pair (cart R N') R a r)) s))) -> @path_connected N' (@DIFF (cart R N') s (@ball N' (@pair (cart R N') R a r))). +Axiom thm_CONNECTED_DELETE_INTERIOR_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@connected N' s) /\ (@IN (cart R N') a (@interior N' s)))) -> @connected N' (@DELETE (cart R N') s a). +Axiom thm_CONNECTED_DELETE_INTERIOR_POINT_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@IN (cart R N') a (@interior N' s))) -> (@connected N' (@DELETE (cart R N') s a)) = (@connected N' s). +Axiom thm_CONNECTED_OPEN_DELETE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@_open N' s)) -> (@connected N' (@DELETE (cart R N') s a)) = (@connected N' s). +Axiom thm_PATH_CONNECTED_DELETE_INTERIOR_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@path_connected N' s) /\ (@IN (cart R N') a (@interior N' s)))) -> @path_connected N' (@DELETE (cart R N') s a). +Axiom thm_CONNECTED_OPEN_DIFF_CBALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall r : R, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@_open N' s) /\ ((@connected N' s) /\ (@SUBSET (cart R N') (@cball N' (@pair (cart R N') R a r)) s)))) -> @connected N' (@DIFF (cart R N') s (@cball N' (@pair (cart R N') R a r))). +Axiom thm_PATH_CONNECTED_CONVEX_DIFF_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ (int_le (int_add (@aff_dim N' t) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (@aff_dim N' s))) -> @path_connected N' (@DIFF (cart R N') s t). +Axiom thm_PATH_CONNECTED_OPEN_IN_DIFF_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s) /\ (int_le (int_add (@aff_dim N' t) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (@aff_dim N' s)))) -> @path_connected N' (@DIFF (cart R N') s t). +Axiom thm_PATH_CONNECTED_OPEN_IN_DIFF_UNIONS_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : ((cart R N') -> Prop) -> Prop, ((@connected N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s) /\ ((@FINITE ((cart R N') -> Prop) f) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> (@closed N' t) /\ (int_le (int_add (@aff_dim N' t) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (@aff_dim N' s)))))) -> @path_connected N' (@DIFF (cart R N') s (@UNIONS (cart R N') f)). +Axiom thm_CONNECTED_OPEN_IN_DIFF_UNIONS_LOWDIM : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((@connected N' s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s) /\ ((@FINITE ((cart R N') -> Prop) f) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> int_le (int_add (@aff_dim N' t) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (@aff_dim N' s))))) -> @connected N' (@DIFF (cart R N') s (@UNIONS (cart R N') f)). +Axiom thm_BOUNDED_FRONTIER_BOUNDED_OR_COBOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@bounded N' (@frontier N' s))) -> (@bounded N' s) \/ (@bounded N' (@DIFF (cart R N') (@UNIV (cart R N')) s)). +Axiom thm_BOUNDED_COMMON_FRONTIER_DOMAINS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@bounded N' c) /\ ((@_open N' s) /\ ((@connected N' s) /\ ((@_open N' t) /\ ((@connected N' t) /\ ((~ (s = t)) /\ (((@frontier N' s) = c) /\ ((@frontier N' t) = c))))))))) -> (@bounded N' s) \/ (@bounded N' t). +Axiom thm_INTERIOR_ARC_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@arc N' g)) -> (@interior N' (@path_image N' g)) = (@EMPTY (cart R N')). +Axiom thm_INTERIOR_SIMPLE_PATH_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@simple_path N' g)) -> (@interior N' (@path_image N' g)) = (@EMPTY (cart R N')). +Axiom thm_ENDPOINTS_NOT_IN_INTERIOR_SIMPLE_PATH_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@simple_path N' g) -> @DISJOINT (cart R N') (@INSERT (cart R N') (@pathstart N' g) (@INSERT (cart R N') (@pathfinish N' g) (@EMPTY (cart R N')))) (@interior N' (@path_image N' g)). +Axiom thm_COBOUNDED_UNBOUNDED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) -> exists x : cart R N', (@IN (cart R N') x s) /\ (~ (@bounded N' (@connected_component N' s x))). +Axiom thm_COBOUNDED_UNIQUE_UNBOUNDED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@bounded N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ ((~ (@bounded N' (@connected_component N' s x))) /\ (~ (@bounded N' (@connected_component N' s y)))))) -> (@connected_component N' s x) = (@connected_component N' s y). +Axiom thm_COBOUNDED_UNBOUNDED_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) -> exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) /\ (~ (@bounded N' c)). +Axiom thm_COBOUNDED_UNIQUE_UNBOUNDED_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall c' : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@bounded N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ ((@IN ((cart R N') -> Prop) c (@components N' s)) /\ ((~ (@bounded N' c)) /\ ((@IN ((cart R N') -> Prop) c' (@components N' s)) /\ (~ (@bounded N' c'))))))) -> c' = c. +Axiom thm_COBOUNDED_HAS_BOUNDED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@bounded N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (~ (@connected N' s)))) -> exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) /\ (@bounded N' c). +Axiom thm_HOMEOMORPHISM_MOVING_POINT_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s) /\ ((@SUBSET (cart R N') s t) /\ ((@SUBSET (cart R N') t (@hull (cart R N') (@affine N') s)) /\ ((@connected N' s) /\ ((@IN (cart R N') a s) /\ (@IN (cart R N') b s)))))) -> exists f : (cart R N') -> cart R N', exists g : (cart R N') -> cart R N', (@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t t) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ (((f a) = b) /\ ((@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4938 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4938 (~ (((f x) = x) /\ ((g x) = x))) x)) s) /\ (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_4939 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4939 (~ (((f x) = x) /\ ((g x) = x))) x))))). +Axiom thm_HOMEOMORPHISM_MOVING_POINTS_EXISTS_GEN : forall {A N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : A -> cart R N', forall y : A -> cart R N', forall k : A -> Prop, ((int_le (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (@aff_dim N' s)) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s) /\ ((@SUBSET (cart R N') s t) /\ ((@SUBSET (cart R N') t (@hull (cart R N') (@affine N') s)) /\ ((@connected N' s) /\ ((@FINITE A k) /\ ((forall i : A, (@IN A i k) -> (@IN (cart R N') (x i) s) /\ (@IN (cart R N') (y i) s)) /\ (@pairwise A (fun i : A => fun j : A => (~ ((x i) = (x j))) /\ (~ ((y i) = (y j)))) k)))))))) -> exists f : (cart R N') -> cart R N', exists g : (cart R N') -> cart R N', (@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t t) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ ((forall i : A, (@IN A i k) -> (f (x i)) = (y i)) /\ ((@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4942 : cart R N' => exists x' : cart R N', @SETSPEC (cart R N') GEN_PVAR_4942 (~ (((f x') = x') /\ ((g x') = x'))) x')) s) /\ (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_4943 : cart R N' => exists x' : cart R N', @SETSPEC (cart R N') GEN_PVAR_4943 (~ (((f x') = x') /\ ((g x') = x'))) x'))))). +Axiom thm_HOMEOMORPHISM_MOVING_POINTS_EXISTS : forall {A N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : A -> cart R N', forall y : A -> cart R N', forall k : A -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@_open N' s) /\ ((@connected N' s) /\ ((@SUBSET (cart R N') s t) /\ ((@FINITE A k) /\ ((forall i : A, (@IN A i k) -> (@IN (cart R N') (x i) s) /\ (@IN (cart R N') (y i) s)) /\ (@pairwise A (fun i : A => fun j : A => (~ ((x i) = (x j))) /\ (~ ((y i) = (y j)))) k))))))) -> exists f : (cart R N') -> cart R N', exists g : (cart R N') -> cart R N', (@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t t) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ ((forall i : A, (@IN A i k) -> (f (x i)) = (y i)) /\ ((@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4944 : cart R N' => exists x' : cart R N', @SETSPEC (cart R N') GEN_PVAR_4944 (~ (((f x') = x') /\ ((g x') = x'))) x')) s) /\ (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_4945 : cart R N' => exists x' : cart R N', @SETSPEC (cart R N') GEN_PVAR_4945 (~ (((f x') = x') /\ ((g x') = x'))) x'))))). +Axiom thm_HOMEOMORPHISM_GROUPING_POINTS_EXISTS : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R N') -> Prop, ((@_open N' u) /\ ((@_open N' s) /\ ((@connected N' s) /\ ((~ (u = (@EMPTY (cart R N')))) /\ ((@FINITE (cart R N') k) /\ ((@SUBSET (cart R N') k s) /\ ((@SUBSET (cart R N') u s) /\ (@SUBSET (cart R N') s t)))))))) -> exists f : (cart R N') -> cart R N', exists g : (cart R N') -> cart R N', (@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t t) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ ((@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4950 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4950 (~ (((f x) = x) /\ ((g x) = x))) x)) s) /\ ((@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_4951 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4951 (~ (((f x) = x) /\ ((g x) = x))) x))) /\ (forall x : cart R N', (@IN (cart R N') x k) -> @IN (cart R N') (f x) u))). +Axiom thm_HOMEOMORPHISM_GROUPING_POINTS_EXISTS_GEN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s) /\ ((@SUBSET (cart R N') s t) /\ ((@SUBSET (cart R N') t (@hull (cart R N') (@affine N') s)) /\ ((@connected N' s) /\ ((@FINITE (cart R N') k) /\ ((@SUBSET (cart R N') k s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (~ (u = (@EMPTY (cart R N'))))))))))) -> exists f : (cart R N') -> cart R N', exists g : (cart R N') -> cart R N', (@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t t) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ ((forall x : cart R N', (@IN (cart R N') x k) -> @IN (cart R N') (f x) u) /\ ((@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_4954 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4954 (~ (((f x) = x) /\ ((g x) = x))) x)) s) /\ (@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_4955 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4955 (~ (((f x) = x) /\ ((g x) = x))) x))))). +Axiom thm_HOMEOMORPHISM_MOVING_DENSE_COUNTABLE_SUBSETS_EXISTS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@COUNTABLE (cart R M) s) /\ (((@closure M s) = (@hull (cart R M) (@affine M) s)) /\ ((@COUNTABLE (cart R N') t) /\ (((@closure N' t) = (@hull (cart R N') (@affine N') t)) /\ ((@aff_dim M s) = (@aff_dim N' t)))))) -> exists f : (cart R M) -> cart R N', exists g : (cart R N') -> cart R M, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) (@hull (cart R M) (@affine M) s) (@hull (cart R N') (@affine N') t)) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ ((@IMAGE (cart R M) (cart R N') f s) = t). +Axiom thm_HAS_SIZE_UNBOUNDED_COMPONENTS_COMPLEMENT_1 : forall s : (cart R unit) -> Prop, ((@bounded unit s) /\ (~ (s = (@EMPTY (cart R unit))))) -> @HAS_SIZE ((cart R unit) -> Prop) (@GSPEC ((cart R unit) -> Prop) (fun GEN_PVAR_4968 : (cart R unit) -> Prop => exists c : (cart R unit) -> Prop, @SETSPEC ((cart R unit) -> Prop) GEN_PVAR_4968 ((@IN ((cart R unit) -> Prop) c (@components unit (@DIFF (cart R unit) (@UNIV (cart R unit)) s))) /\ (~ (@bounded unit c))) c)) (NUMERAL (BIT0 (BIT1 0%N))). +Axiom thm_HAS_SIZE_UNBOUNDED_COMPONENTS_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @HAS_SIZE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_4970 : (cart R N') -> Prop => exists c : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_4970 ((@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ (~ (@bounded N' c))) c)) (@COND N ((s = (@EMPTY (cart R N'))) \/ (N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N')))) (NUMERAL (BIT1 0%N)) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_inside : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@inside N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_4971 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4971 ((~ (@IN (cart R N') x s)) /\ (@bounded N' (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) x))) x)). +Axiom thm_outside : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@outside N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_4972 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4972 ((~ (@IN (cart R N') x s)) /\ (~ (@bounded N' (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) x)))) x)). +Axiom thm_INSIDE_TRANSLATION : forall {_1093165 : Type'}, forall a : cart R _1093165, forall s : (cart R _1093165) -> Prop, (@inside _1093165 (@IMAGE (cart R _1093165) (cart R _1093165) (fun x : cart R _1093165 => @vector_add _1093165 a x) s)) = (@IMAGE (cart R _1093165) (cart R _1093165) (fun x : cart R _1093165 => @vector_add _1093165 a x) (@inside _1093165 s)). +Axiom thm_OUTSIDE_TRANSLATION : forall {_1093211 : Type'}, forall a : cart R _1093211, forall s : (cart R _1093211) -> Prop, (@outside _1093211 (@IMAGE (cart R _1093211) (cart R _1093211) (fun x : cart R _1093211 => @vector_add _1093211 a x) s)) = (@IMAGE (cart R _1093211) (cart R _1093211) (fun x : cart R _1093211 => @vector_add _1093211 a x) (@outside _1093211 s)). +Axiom thm_INSIDE_LINEAR_IMAGE : forall {_1093233 _1093280 : Type'}, forall f : (cart R _1093280) -> cart R _1093233, forall s : (cart R _1093280) -> Prop, ((@linear _1093280 _1093233 f) /\ ((forall x : cart R _1093280, forall y : cart R _1093280, ((f x) = (f y)) -> x = y) /\ (forall y : cart R _1093233, exists x : cart R _1093280, (f x) = y))) -> (@inside _1093233 (@IMAGE (cart R _1093280) (cart R _1093233) f s)) = (@IMAGE (cart R _1093280) (cart R _1093233) f (@inside _1093280 s)). +Axiom thm_OUTSIDE_LINEAR_IMAGE : forall {_1093296 _1093343 : Type'}, forall f : (cart R _1093343) -> cart R _1093296, forall s : (cart R _1093343) -> Prop, ((@linear _1093343 _1093296 f) /\ ((forall x : cart R _1093343, forall y : cart R _1093343, ((f x) = (f y)) -> x = y) /\ (forall y : cart R _1093296, exists x : cart R _1093343, (f x) = y))) -> (@outside _1093296 (@IMAGE (cart R _1093343) (cart R _1093296) f s)) = (@IMAGE (cart R _1093343) (cart R _1093296) f (@outside _1093343 s)). +Axiom thm_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@outside N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_4973 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4973 (~ (@bounded N' (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) x))) x)). +Axiom thm_INSIDE_NO_OVERLAP : forall {_1093393 : Type'}, forall s : (cart R _1093393) -> Prop, (@INTER (cart R _1093393) (@inside _1093393 s) s) = (@EMPTY (cart R _1093393)). +Axiom thm_OUTSIDE_NO_OVERLAP : forall {_1093407 : Type'}, forall s : (cart R _1093407) -> Prop, (@INTER (cart R _1093407) (@outside _1093407 s) s) = (@EMPTY (cart R _1093407)). +Axiom thm_INSIDE_INTER_OUTSIDE : forall {_1093423 : Type'}, forall s : (cart R _1093423) -> Prop, (@INTER (cart R _1093423) (@inside _1093423 s) (@outside _1093423 s)) = (@EMPTY (cart R _1093423)). +Axiom thm_INSIDE_UNION_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@UNION (cart R N') (@inside N' s) (@outside N' s)) = (@DIFF (cart R N') (@UNIV (cart R N')) s). +Axiom thm_INSIDE_EQ_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@inside N' s) = (@outside N' s)) = (s = (@UNIV (cart R N'))). +Axiom thm_INSIDE_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@inside N' s) = (@DIFF (cart R N') (@UNIV (cart R N')) (@UNION (cart R N') s (@outside N' s))). +Axiom thm_OUTSIDE_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@outside N' s) = (@DIFF (cart R N') (@UNIV (cart R N')) (@UNION (cart R N') s (@inside N' s))). +Axiom thm_INSIDE_EMPTY_EQ_NO_BOUNDED_COMPONENT_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@inside N' s) = (@EMPTY (cart R N'))) = (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) -> ~ (@bounded N' c)). +Axiom thm_OUTSIDE_EMPTY_EQ_NO_BOUNDED_COMPONENT_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@outside N' s) = (@EMPTY (cart R N'))) = (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) -> @bounded N' c). +Axiom thm_INSIDE_SELF_OUTSIDE_EVERSION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') (@UNION (cart R N') s (@inside N' s)) (@inside N' t)) = (@SUBSET (cart R N') (@UNION (cart R N') t (@outside N' t)) (@outside N' s)). +Axiom thm_UNION_WITH_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@UNION (cart R N') s (@inside N' s)) = (@DIFF (cart R N') (@UNIV (cart R N')) (@outside N' s)). +Axiom thm_UNION_WITH_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@UNION (cart R N') s (@outside N' s)) = (@DIFF (cart R N') (@UNIV (cart R N')) (@inside N' s)). +Axiom thm_OUTSIDE_MONO : forall {_1093669 : Type'}, forall s : (cart R _1093669) -> Prop, forall t : (cart R _1093669) -> Prop, (@SUBSET (cart R _1093669) s t) -> @SUBSET (cart R _1093669) (@outside _1093669 t) (@outside _1093669 s). +Axiom thm_INSIDE_MONO : forall {_1093693 : Type'}, forall s : (cart R _1093693) -> Prop, forall t : (cart R _1093693) -> Prop, (@SUBSET (cart R _1093693) s t) -> @SUBSET (cart R _1093693) (@DIFF (cart R _1093693) (@inside _1093693 s) t) (@inside _1093693 t). +Axiom thm_INSIDE_MONO_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) -> @SUBSET (cart R N') (@inside N' s) (@UNION (cart R N') t (@inside N' t)). +Axiom thm_COBOUNDED_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @bounded N' (@DIFF (cart R N') (@UNIV (cart R N')) (@outside N' s)). +Axiom thm_UNBOUNDED_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> ~ (@bounded N' (@outside N' s)). +Axiom thm_BOUNDED_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @bounded N' (@inside N' s). +Axiom thm_CONNECTED_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@bounded N' s)) -> @connected N' (@outside N' s). +Axiom thm_OUTSIDE_CONNECTED_COMPONENT_LT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@outside N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_4976 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4976 (forall B : R, exists y : cart R N', (Rlt B (@vector_norm N' y)) /\ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) x y)) x)). +Axiom thm_OUTSIDE_CONNECTED_COMPONENT_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@outside N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_4977 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4977 (forall B : R, exists y : cart R N', (Rle B (@vector_norm N' y)) /\ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) x y)) x)). +Axiom thm_NOT_OUTSIDE_CONNECTED_COMPONENT_LT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@bounded N' s)) -> (@DIFF (cart R N') (@UNIV (cart R N')) (@outside N' s)) = (@GSPEC (cart R N') (fun GEN_PVAR_4978 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4978 (forall B : R, exists y : cart R N', (Rlt B (@vector_norm N' y)) /\ (~ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) x y))) x)). +Axiom thm_NOT_OUTSIDE_CONNECTED_COMPONENT_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@bounded N' s)) -> (@DIFF (cart R N') (@UNIV (cart R N')) (@outside N' s)) = (@GSPEC (cart R N') (fun GEN_PVAR_4979 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4979 (forall B : R, exists y : cart R N', (Rle B (@vector_norm N' y)) /\ (~ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) x y))) x)). +Axiom thm_INSIDE_CONNECTED_COMPONENT_LT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@bounded N' s)) -> (@inside N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_4980 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4980 ((~ (@IN (cart R N') x s)) /\ (forall B : R, exists y : cart R N', (Rlt B (@vector_norm N' y)) /\ (~ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) x y)))) x)). +Axiom thm_INSIDE_CONNECTED_COMPONENT_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@bounded N' s)) -> (@inside N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_4981 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4981 ((~ (@IN (cart R N') x s)) /\ (forall B : R, exists y : cart R N', (Rle B (@vector_norm N' y)) /\ (~ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) x y)))) x)). +Axiom thm_OUTSIDE_UNION_OUTSIDE_UNION : forall {N' : Type'}, forall c : (cart R N') -> Prop, forall c1 : (cart R N') -> Prop, forall c2 : (cart R N') -> Prop, ((@INTER (cart R N') c (@outside N' (@UNION (cart R N') c1 c2))) = (@EMPTY (cart R N'))) -> @SUBSET (cart R N') (@outside N' (@UNION (cart R N') c1 c2)) (@outside N' (@UNION (cart R N') c1 c)). +Axiom thm_INSIDE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@connected N' u) /\ ((~ (@bounded N' u)) /\ ((@UNION (cart R N') t u) = (@DIFF (cart R N') (@UNIV (cart R N')) s)))) -> @SUBSET (cart R N') (@inside N' s) t. +Axiom thm_INSIDE_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@connected N' t) /\ ((@bounded N' t) /\ ((@connected N' u) /\ ((~ (@bounded N' u)) /\ ((~ (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ ((@UNION (cart R N') t u) = (@DIFF (cart R N') (@UNIV (cart R N')) s))))))) -> (@inside N' s) = t. +Axiom thm_INSIDE_OUTSIDE_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@connected N' t) /\ ((@bounded N' t) /\ ((@connected N' u) /\ ((~ (@bounded N' u)) /\ ((~ (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ ((@UNION (cart R N') t u) = (@DIFF (cart R N') (@UNIV (cart R N')) s))))))) -> ((@inside N' s) = t) /\ ((@outside N' s) = u). +Axiom thm_INTERIOR_INSIDE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @SUBSET (cart R N') (@interior N' s) (@inside N' (@frontier N' s)). +Axiom thm_INSIDE_EMPTY : forall {_1094989 : Type'}, (@inside _1094989 (@EMPTY (cart R _1094989))) = (@EMPTY (cart R _1094989)). +Axiom thm_OUTSIDE_EMPTY : forall {N' : Type'}, (@outside N' (@EMPTY (cart R N'))) = (@UNIV (cart R N')). +Axiom thm_INSIDE_SAME_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) x y) /\ (@IN (cart R N') x (@inside N' s))) -> @IN (cart R N') y (@inside N' s). +Axiom thm_OUTSIDE_SAME_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) x y) /\ (@IN (cart R N') x (@outside N' s))) -> @IN (cart R N') y (@outside N' s). +Axiom thm_CONNECTED_COMPONENT_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@connected_component N' (@inside N' s) a) = (@COND ((cart R N') -> Prop) (@IN (cart R N') a (@inside N' s)) (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a) (@EMPTY (cart R N'))). +Axiom thm_CONNECTED_COMPONENT_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@connected_component N' (@outside N' s) a) = (@COND ((cart R N') -> Prop) (@IN (cart R N') a (@outside N' s)) (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a) (@EMPTY (cart R N'))). +Axiom thm_BOUNDED_COMPONENTS_INSIDE : forall {N' : Type'} (s : (cart R N') -> Prop), forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' (@inside N' s))) -> @bounded N' c. +Axiom thm_UNBOUNDED_COMPONENTS_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' (@outside N' s))) -> ~ (@bounded N' c). +Axiom thm_INSIDE_WITH_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@inside N' (@UNION (cart R N') s (@inside N' s))) = (@EMPTY (cart R N')). +Axiom thm_OUTSIDE_WITH_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@outside N' (@UNION (cart R N') s (@outside N' s))) = (@EMPTY (cart R N')). +Axiom thm_OUTSIDE_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@outside N' s) = (@DIFF (cart R N') (@UNIV (cart R N')) s). +Axiom thm_INSIDE_CONVEX : forall {_1095546 : Type'}, forall s : (cart R _1095546) -> Prop, (@convex _1095546 s) -> (@inside _1095546 s) = (@EMPTY (cart R _1095546)). +Axiom thm_OUTSIDE_SUBSET_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' t) /\ (@SUBSET (cart R N') s t)) -> @SUBSET (cart R N') (@DIFF (cart R N') (@UNIV (cart R N')) t) (@outside N' s). +Axiom thm_INSIDE_SUBSET_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@convex N' c) /\ (@SUBSET (cart R N') s c)) -> @SUBSET (cart R N') (@inside N' s) c. +Axiom thm_INSIDE_SUBSET_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@inside N' s) (@hull (cart R N') (@convex N') s). +Axiom thm_UNBOUNDED_DISJOINT_IN_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', ((@connected N' t) /\ ((~ (@bounded N' t)) /\ ((@IN (cart R N') x t) /\ (@DISJOINT (cart R N') s t)))) -> @IN (cart R N') x (@outside N' s). +Axiom thm_INSIDE_SUBSET_INTERIOR_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@convex N' c) /\ (@SUBSET (cart R N') s c)) -> @SUBSET (cart R N') (@inside N' s) (@interior N' c). +Axiom thm_INSIDE_SUBSET_INTERIOR_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@inside N' s) (@interior N' (@hull (cart R N') (@convex N') s)). +Axiom thm_OUTSIDE_FRONTIER_MISSES_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @SUBSET (cart R N') (@outside N' (@frontier N' s)) (@DIFF (cart R N') (@UNIV (cart R N')) (@closure N' s)). +Axiom thm_OUTSIDE_FRONTIER_EQ_COMPLEMENT_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@convex N' s)) -> (@outside N' (@frontier N' s)) = (@DIFF (cart R N') (@UNIV (cart R N')) (@closure N' s)). +Axiom thm_INSIDE_FRONTIER_EQ_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@convex N' s)) -> (@inside N' (@frontier N' s)) = (@interior N' s). +Axiom thm_INSIDE_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (@inside N' (@sphere N' (@pair (cart R N') R a r))) = (@ball N' (@pair (cart R N') R a r)). +Axiom thm_OUTSIDE_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (@outside N' (@sphere N' (@pair (cart R N') R a r))) = (@DIFF (cart R N') (@UNIV (cart R N')) (@cball N' (@pair (cart R N') R a r))). +Axiom thm_OPEN_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @_open N' (@inside N' s). +Axiom thm_OPEN_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @_open N' (@outside N' s). +Axiom thm_CLOSURE_INSIDE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @SUBSET (cart R N') (@closure N' (@inside N' s)) (@UNION (cart R N') s (@inside N' s)). +Axiom thm_FRONTIER_INSIDE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @SUBSET (cart R N') (@frontier N' (@inside N' s)) s. +Axiom thm_FRONTIER_WITH_INSIDE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @SUBSET (cart R N') (@frontier N' (@UNION (cart R N') s (@inside N' s))) s. +Axiom thm_CLOSURE_OUTSIDE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @SUBSET (cart R N') (@closure N' (@outside N' s)) (@UNION (cart R N') s (@outside N' s)). +Axiom thm_FRONTIER_OUTSIDE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @SUBSET (cart R N') (@frontier N' (@outside N' s)) s. +Axiom thm_FRONTIER_WITH_OUTSIDE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @SUBSET (cart R N') (@frontier N' (@UNION (cart R N') s (@outside N' s))) s. +Axiom thm_CLOSED_WITH_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @closed N' (@UNION (cart R N') s (@inside N' s)). +Axiom thm_BOUNDED_WITH_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @bounded N' (@UNION (cart R N') s (@inside N' s)). +Axiom thm_COMPACT_WITH_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> @compact N' (@UNION (cart R N') s (@inside N' s)). +Axiom thm_INSIDE_COMPLEMENT_UNBOUNDED_CONNECTED_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (~ (@bounded N' (@DIFF (cart R N') (@UNIV (cart R N')) s)))) -> (@inside N' s) = (@EMPTY (cart R N')). +Axiom thm_INSIDE_BOUNDED_COMPLEMENT_CONNECTED_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (@bounded N' s)) -> (@inside N' s) = (@EMPTY (cart R N')). +Axiom thm_INSIDE_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') s (@inside N' t)) -> @SUBSET (cart R N') (@DIFF (cart R N') (@inside N' s) t) (@inside N' t). +Axiom thm_INSIDE_INSIDE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@inside N' (@inside N' s)) s. +Axiom thm_INSIDE_OUTSIDE_INTERSECT_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' t) /\ ((~ ((@INTER (cart R N') (@inside N' s) t) = (@EMPTY (cart R N')))) /\ (~ ((@INTER (cart R N') (@outside N' s) t) = (@EMPTY (cart R N')))))) -> ~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))). +Axiom thm_OUTSIDE_BOUNDED_NONEMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> ~ ((@outside N' s) = (@EMPTY (cart R N'))). +Axiom thm_OUTSIDE_COMPACT_IN_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@_open N' t) /\ ((@SUBSET (cart R N') s t) /\ (~ (t = (@EMPTY (cart R N'))))))) -> ~ ((@INTER (cart R N') (@outside N' s) t) = (@EMPTY (cart R N'))). +Axiom thm_INSIDE_INSIDE_COMPACT_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@compact N' t) /\ ((@SUBSET (cart R N') s (@inside N' t)) /\ (@connected N' t)))) -> @SUBSET (cart R N') (@inside N' s) (@inside N' t). +Axiom thm_INSIDE_SELF_OUTSIDE_COMPACT_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@compact N' t) /\ ((@SUBSET (cart R N') s (@inside N' t)) /\ (@connected N' t)))) -> @SUBSET (cart R N') (@UNION (cart R N') t (@outside N' t)) (@outside N' s). +Axiom thm_INSIDE_OUTSIDE_COMPACT_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@compact N' t) /\ ((@SUBSET (cart R N') s (@inside N' t)) /\ (@connected N' t)))) -> @SUBSET (cart R N') t (@outside N' s). +Axiom thm_CONNECTED_WITH_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closed N' s) /\ (@connected N' s)) -> @connected N' (@UNION (cart R N') s (@inside N' s)). +Axiom thm_CONNECTED_WITH_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closed N' s) /\ (@connected N' s)) -> @connected N' (@UNION (cart R N') s (@outside N' s)). +Axiom thm_INSIDE_INSIDE_EQ_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closed N' s) /\ (@connected N' s)) -> (@inside N' (@inside N' s)) = (@EMPTY (cart R N')). +Axiom thm_INSIDE_IN_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) (@inside N' s) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) = ((@connected N' (@inside N' s)) /\ (~ ((@inside N' s) = (@EMPTY (cart R N'))))). +Axiom thm_OUTSIDE_IN_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) (@outside N' s) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) = ((@connected N' (@outside N' s)) /\ (~ ((@outside N' s) = (@EMPTY (cart R N'))))). +Axiom thm_BOUNDED_UNIQUE_OUTSIDE : forall {N' : Type'}, forall c : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@bounded N' s)) -> ((@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ (~ (@bounded N' c))) = (c = (@outside N' s)). +Axiom thm_EMPTY_INSIDE_PSUBSET_CONVEX_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ (@PSUBSET (cart R N') t (@frontier N' s))) -> (@inside N' t) = (@EMPTY (cart R N')). +Axiom thm_HOMOTOPIC_WITH_EUCLIDEAN : forall {M N' : Type'}, forall P : ((cart R M) -> cart R N') -> Prop, forall X : (cart R M) -> Prop, forall Y : (cart R N') -> Prop, forall p : (cart R M) -> cart R N', forall q : (cart R M) -> cart R N', (@homotopic_with (cart R N') (cart R M) P (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) X) (@subtopology (cart R N') (@euclidean N') Y)) p q) = (exists h : (cart R (finite_sum unit M)) -> cart R N', (@continuous_on (finite_sum unit M) N' h (@PCROSS R unit M (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) X)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum unit M)) (cart R N') h (@PCROSS R unit M (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) X)) Y) /\ ((forall x : cart R M, (h (@pastecart R unit M (@vec unit (NUMERAL 0%N)) x)) = (p x)) /\ ((forall x : cart R M, (h (@pastecart R unit M (@vec unit (NUMERAL (BIT1 0%N))) x)) = (q x)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> P (fun x : cart R M => h (@pastecart R unit M t x))))))). +Axiom thm_HOMOTOPIC_WITH_EUCLIDEAN_ALT : forall {M N' : Type'} (Y : (cart R N') -> Prop) (p : (cart R M) -> cart R N') (X : (cart R M) -> Prop) (q : (cart R M) -> cart R N') (P : ((cart R M) -> cart R N') -> Prop), (forall h : (cart R M) -> cart R N', forall k : (cart R M) -> cart R N', (forall x : cart R M, (@IN (cart R M) x X) -> (h x) = (k x)) -> (P h) = (P k)) -> (@homotopic_with (cart R N') (cart R M) P (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) X) (@subtopology (cart R N') (@euclidean N') Y)) p q) = (exists h : (cart R (finite_sum unit M)) -> cart R N', (@continuous_on (finite_sum unit M) N' h (@PCROSS R unit M (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) X)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum unit M)) (cart R N') h (@PCROSS R unit M (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) X)) Y) /\ ((forall x : cart R M, (@IN (cart R M) x X) -> (h (@pastecart R unit M (@vec unit (NUMERAL 0%N)) x)) = (p x)) /\ ((forall x : cart R M, (@IN (cart R M) x X) -> (h (@pastecart R unit M (@vec unit (NUMERAL (BIT1 0%N))) x)) = (q x)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> P (fun x : cart R M => h (@pastecart R unit M t x))))))). +Axiom thm_HOMOTOPIC_WITH_RESTRICT : forall {M N' : Type'}, forall P : ((cart R M) -> cart R N') -> Prop, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall s' : (cart R M) -> Prop, forall t' : (cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@homotopic_with (cart R N') (cart R M) P (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f g) /\ ((@SUBSET (cart R M) s' s) /\ (forall h : (cart R M) -> cart R N', ((P h) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') h s) t)) -> @SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') h s') t'))) -> @homotopic_with (cart R N') (cart R M) P (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s') (@subtopology (cart R N') (@euclidean N') t')) f g. +Axiom thm_HOMOTOPIC_WITH_IMP_CONTINUOUS : forall {M N' : Type'}, forall P : ((cart R M) -> cart R N') -> Prop, forall X : (cart R M) -> Prop, forall Y : (cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', (@homotopic_with (cart R N') (cart R M) P (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) X) (@subtopology (cart R N') (@euclidean N') Y)) f g) -> (@continuous_on M N' f X) /\ (@continuous_on M N' g X). +Axiom thm_HOMOTOPIC_WITH_IMP_SUBSET : forall {M N' : Type'}, forall P : ((cart R M) -> cart R N') -> Prop, forall X : (cart R M) -> Prop, forall Y : (cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', (@homotopic_with (cart R N') (cart R M) P (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) X) (@subtopology (cart R N') (@euclidean N') Y)) f g) -> (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f X) Y) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g X) Y). +Axiom thm_HOMOTOPIC_WITH_MONO : forall {M N' : Type'}, forall P : ((cart R M) -> cart R N') -> Prop, forall Q : ((cart R M) -> cart R N') -> Prop, forall X : (cart R M) -> Prop, forall Y : (cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@homotopic_with (cart R N') (cart R M) P (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) X) (@subtopology (cart R N') (@euclidean N') Y)) f g) /\ (forall h : (cart R M) -> cart R N', ((@continuous_on M N' h X) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') h X) Y) /\ (P h))) -> Q h)) -> @homotopic_with (cart R N') (cart R M) Q (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) X) (@subtopology (cart R N') (@euclidean N') Y)) f g. +Axiom thm_HOMOTOPIC_WITH_SUBSET_LEFT : forall {_1098487 _1098491 : Type'}, forall P : ((cart R _1098487) -> cart R _1098491) -> Prop, forall X : (cart R _1098487) -> Prop, forall Y : (cart R _1098491) -> Prop, forall Z' : (cart R _1098487) -> Prop, forall f : (cart R _1098487) -> cart R _1098491, forall g : (cart R _1098487) -> cart R _1098491, ((@homotopic_with (cart R _1098491) (cart R _1098487) P (@pair (Topology (cart R _1098487)) (Topology (cart R _1098491)) (@subtopology (cart R _1098487) (@euclidean _1098487) X) (@subtopology (cart R _1098491) (@euclidean _1098491) Y)) f g) /\ (@SUBSET (cart R _1098487) Z' X)) -> @homotopic_with (cart R _1098491) (cart R _1098487) P (@pair (Topology (cart R _1098487)) (Topology (cart R _1098491)) (@subtopology (cart R _1098487) (@euclidean _1098487) Z') (@subtopology (cart R _1098491) (@euclidean _1098491) Y)) f g. +Axiom thm_HOMOTOPIC_WITH_SUBSET_RIGHT : forall {M N' : Type'}, forall P : ((cart R M) -> cart R N') -> Prop, forall X : (cart R M) -> Prop, forall Y : (cart R N') -> Prop, forall Z' : (cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@homotopic_with (cart R N') (cart R M) P (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) X) (@subtopology (cart R N') (@euclidean N') Y)) f g) /\ (@SUBSET (cart R N') Y Z')) -> @homotopic_with (cart R N') (cart R M) P (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) X) (@subtopology (cart R N') (@euclidean N') Z')) f g. +Axiom thm_HOMOTOPIC_WITH_COMPOSE_CONTINUOUS_RIGHT : forall {M N' P : Type'}, forall p : ((cart R M) -> cart R P) -> Prop, forall f : (cart R N') -> cart R P, forall g : (cart R N') -> cart R P, forall h : (cart R M) -> cart R N', forall W : (cart R M) -> Prop, forall X : (cart R N') -> Prop, forall Y : (cart R P) -> Prop, ((@homotopic_with (cart R P) (cart R N') (fun f' : (cart R N') -> cart R P => p (@o (cart R M) (cart R N') (cart R P) f' h)) (@pair (Topology (cart R N')) (Topology (cart R P)) (@subtopology (cart R N') (@euclidean N') X) (@subtopology (cart R P) (@euclidean P) Y)) f g) /\ ((@continuous_on M N' h W) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') h W) X))) -> @homotopic_with (cart R P) (cart R M) p (@pair (Topology (cart R M)) (Topology (cart R P)) (@subtopology (cart R M) (@euclidean M) W) (@subtopology (cart R P) (@euclidean P) Y)) (@o (cart R M) (cart R N') (cart R P) f h) (@o (cart R M) (cart R N') (cart R P) g h). +Axiom thm_HOMOTOPIC_COMPOSE_CONTINUOUS_RIGHT : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall g : (cart R N') -> cart R P, forall h : (cart R M) -> cart R N', forall W : (cart R M) -> Prop, forall X : (cart R N') -> Prop, forall Y : (cart R P) -> Prop, ((@homotopic_with (cart R P) (cart R N') (fun f' : (cart R N') -> cart R P => True) (@pair (Topology (cart R N')) (Topology (cart R P)) (@subtopology (cart R N') (@euclidean N') X) (@subtopology (cart R P) (@euclidean P) Y)) f g) /\ ((@continuous_on M N' h W) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') h W) X))) -> @homotopic_with (cart R P) (cart R M) (fun f' : (cart R M) -> cart R P => True) (@pair (Topology (cart R M)) (Topology (cart R P)) (@subtopology (cart R M) (@euclidean M) W) (@subtopology (cart R P) (@euclidean P) Y)) (@o (cart R M) (cart R N') (cart R P) f h) (@o (cart R M) (cart R N') (cart R P) g h). +Axiom thm_HOMOTOPIC_WITH_COMPOSE_CONTINUOUS_LEFT : forall {M N' P : Type'}, forall p : ((cart R M) -> cart R P) -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall h : (cart R N') -> cart R P, forall X : (cart R M) -> Prop, forall Y : (cart R N') -> Prop, forall Z' : (cart R P) -> Prop, ((@homotopic_with (cart R N') (cart R M) (fun f' : (cart R M) -> cart R N' => p (@o (cart R M) (cart R N') (cart R P) h f')) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) X) (@subtopology (cart R N') (@euclidean N') Y)) f g) /\ ((@continuous_on N' P h Y) /\ (@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) h Y) Z'))) -> @homotopic_with (cart R P) (cart R M) p (@pair (Topology (cart R M)) (Topology (cart R P)) (@subtopology (cart R M) (@euclidean M) X) (@subtopology (cart R P) (@euclidean P) Z')) (@o (cart R M) (cart R N') (cart R P) h f) (@o (cart R M) (cart R N') (cart R P) h g). +Axiom thm_HOMOTOPIC_COMPOSE_CONTINUOUS_LEFT : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall h : (cart R N') -> cart R P, forall X : (cart R M) -> Prop, forall Y : (cart R N') -> Prop, forall Z' : (cart R P) -> Prop, ((@homotopic_with (cart R N') (cart R M) (fun f' : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) X) (@subtopology (cart R N') (@euclidean N') Y)) f g) /\ ((@continuous_on N' P h Y) /\ (@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) h Y) Z'))) -> @homotopic_with (cart R P) (cart R M) (fun f' : (cart R M) -> cart R P => True) (@pair (Topology (cart R M)) (Topology (cart R P)) (@subtopology (cart R M) (@euclidean M) X) (@subtopology (cart R P) (@euclidean P) Z')) (@o (cart R M) (cart R N') (cart R P) h f) (@o (cart R M) (cart R N') (cart R P) h g). +Axiom thm_HOMOTOPIC_WITH_PCROSS : forall {M N' P Q : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R P) -> cart R Q, forall g : (cart R M) -> cart R N', forall g' : (cart R P) -> cart R Q, forall p : ((cart R M) -> cart R N') -> Prop, forall p' : ((cart R P) -> cart R Q) -> Prop, forall q : ((cart R (finite_sum M P)) -> cart R (finite_sum N' Q)) -> Prop, forall s : (cart R M) -> Prop, forall s' : (cart R P) -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R Q) -> Prop, ((@homotopic_with (cart R N') (cart R M) p (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f g) /\ ((@homotopic_with (cart R Q) (cart R P) p' (@pair (Topology (cart R P)) (Topology (cart R Q)) (@subtopology (cart R P) (@euclidean P) s') (@subtopology (cart R Q) (@euclidean Q) t')) f' g') /\ (forall f'' : (cart R M) -> cart R N', forall g'' : (cart R P) -> cart R Q, ((p f'') /\ (p' g'')) -> q (fun x : cart R (finite_sum M P) => @pastecart R N' Q (f'' (@fstcart R M P x)) (g'' (@sndcart R M P x)))))) -> @homotopic_with (cart R (finite_sum N' Q)) (cart R (finite_sum M P)) q (@pair (Topology (cart R (finite_sum M P))) (Topology (cart R (finite_sum N' Q))) (@subtopology (cart R (finite_sum M P)) (@euclidean (finite_sum M P)) (@PCROSS R M P s s')) (@subtopology (cart R (finite_sum N' Q)) (@euclidean (finite_sum N' Q)) (@PCROSS R N' Q t t'))) (fun z : cart R (finite_sum M P) => @pastecart R N' Q (f (@fstcart R M P z)) (f' (@sndcart R M P z))) (fun z : cart R (finite_sum M P) => @pastecart R N' Q (g (@fstcart R M P z)) (g' (@sndcart R M P z))). +Axiom thm_HOMOTOPIC_WITH_COMPOSE : forall {M N' P : Type'}, forall P' : ((cart R M) -> cart R N') -> Prop, forall Q : ((cart R N') -> cart R P) -> Prop, forall R' : ((cart R M) -> cart R P) -> Prop, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall g' : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((forall f'' : (cart R M) -> cart R N', forall g'' : (cart R N') -> cart R P, ((@continuous_on M N' f'' s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f'' s) t) /\ ((P' f'') /\ ((@continuous_on N' P g'' t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g'' t) u) /\ (Q g'')))))) -> R' (@o (cart R M) (cart R N') (cart R P) g'' f'')) /\ ((@homotopic_with (cart R N') (cart R M) P' (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f f') /\ (@homotopic_with (cart R P) (cart R N') Q (@pair (Topology (cart R N')) (Topology (cart R P)) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R P) (@euclidean P) u)) g g'))) -> @homotopic_with (cart R P) (cart R M) R' (@pair (Topology (cart R M)) (Topology (cart R P)) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R P) (@euclidean P) u)) (@o (cart R M) (cart R N') (cart R P) g f) (@o (cart R M) (cart R N') (cart R P) g' f'). +Axiom thm_HOMOTOPIC_COMPOSE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall g' : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f f') /\ (@homotopic_with (cart R P) (cart R N') (fun x : (cart R N') -> cart R P => True) (@pair (Topology (cart R N')) (Topology (cart R P)) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R P) (@euclidean P) u)) g g')) -> @homotopic_with (cart R P) (cart R M) (fun x : (cart R M) -> cart R P => True) (@pair (Topology (cart R M)) (Topology (cart R P)) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R P) (@euclidean P) u)) (@o (cart R M) (cart R N') (cart R P) g f) (@o (cart R M) (cart R N') (cart R P) g' f'). +Axiom thm_HOMOTOPIC_TRIVIALITY : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on M N' g s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) t)))) -> @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f g) = (((s = (@EMPTY (cart R M))) \/ (@path_connected N' t)) /\ (forall f : (cart R M) -> cart R N', ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t)) -> exists c : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => c))). +Axiom thm_HOMOTOPIC_ON_CLOPEN_UNIONS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, forall u : ((cart R M) -> Prop) -> Prop, (forall s : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) s u) -> (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNIONS (cart R M) u)) s) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNIONS (cart R M) u)) s) /\ (@homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f g))) -> @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) (@UNIONS (cart R M) u)) (@subtopology (cart R N') (@euclidean N') t)) f g. +Axiom thm_INESSENTIAL_ON_CLOPEN_UNIONS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, forall u : ((cart R M) -> Prop) -> Prop, ((@path_connected N' t) /\ (forall s : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) s u) -> (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNIONS (cart R M) u)) s) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@UNIONS (cart R M) u)) s) /\ (exists a : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => a))))) -> exists a : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) (@UNIONS (cart R M) u)) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => a). +Axiom thm_HOMOTOPIC_WITH_REFLECTIONS_ALONG : forall {N' : Type'}, forall P : ((cart R N') -> cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((~ (b = (@vec N' (NUMERAL 0%N)))) /\ (forall c : cart R N', (@IN (cart R N') c (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> (P (@reflect_along N' c)) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') (@reflect_along N' c) s) t)))) -> @homotopic_with (cart R N') (cart R N') P (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') t)) (@reflect_along N' a) (@reflect_along N' b). +Axiom thm_HOMOTOPIC_WITH_ORTHOGONAL_TRANSFORMATIONS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (@orthogonal_transformation N') (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) f g) = ((@orthogonal_transformation N' f) /\ ((@orthogonal_transformation N' g) /\ ((@det N' (@matrix N' N' f)) = (@det N' (@matrix N' N' g))))). +Axiom thm_HOMOTOPIC_WITH_ORTHOGONAL_TRANSFORMATIONS_GEN : forall {N' : Type'}, forall P : R -> Prop, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (P r)) -> (@homotopic_with (cart R N') (cart R N') (@orthogonal_transformation N') (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@GSPEC (cart R N') (fun GEN_PVAR_4988 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4988 (P (@vector_norm N' x)) x))) (@subtopology (cart R N') (@euclidean N') (@GSPEC (cart R N') (fun GEN_PVAR_4989 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_4989 (P (@vector_norm N' x)) x)))) f g) = ((@orthogonal_transformation N' f) /\ ((@orthogonal_transformation N' g) /\ ((@det N' (@matrix N' N' f)) = (@det N' (@matrix N' N' g))))). +Axiom thm_HOMOTOPIC_WITH_ORTHOGONAL_TRANSFORMATIONS_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (@orthogonal_transformation N') (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N)))) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N))))) f g) = ((@orthogonal_transformation N' f) /\ ((@orthogonal_transformation N' g) /\ ((@det N' (@matrix N' N' f)) = (@det N' (@matrix N' N' g))))). +Axiom thm_HOMOTOPIC_WITH_LINEAR_POSITIVE_DEFINITE_MAPS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun f' : (cart R N') -> cart R N' => (@linear N' N' f') /\ (@positive_definite N' (@matrix N' N' f'))) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N)))) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N))))) f g) = ((@linear N' N' f) /\ ((@linear N' N' g) /\ ((@positive_definite N' (@matrix N' N' f)) /\ (@positive_definite N' (@matrix N' N' g))))). +Axiom thm_HOMOTOPIC_WITH_LINEAR_MAPS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (@linear N' N') (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N)))) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N))))) f g) = ((@linear N' N' f) /\ ((@linear N' N' g) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Rmult (@det N' (@matrix N' N' f)) (@det N' (@matrix N' N' g)))))). +Axiom thm_homotopic_paths : forall {_1101971 : Type'}, forall s : (cart R _1101971) -> Prop, forall p : (cart R unit) -> cart R _1101971, forall q : (cart R unit) -> cart R _1101971, (@homotopic_paths _1101971 s p q) = (@homotopic_with (cart R _1101971) (cart R unit) (fun r : (cart R unit) -> cart R _1101971 => ((@pathstart _1101971 r) = (@pathstart _1101971 p)) /\ ((@pathfinish _1101971 r) = (@pathfinish _1101971 p))) (@pair (Topology (cart R unit)) (Topology (cart R _1101971)) (@subtopology (cart R unit) (@euclidean unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) (@subtopology (cart R _1101971) (@euclidean _1101971) s)) p q). +Axiom thm_HOMOTOPIC_PATHS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', (@homotopic_paths N' s p q) = (exists h : (cart R (finite_sum unit unit)) -> cart R N', (@continuous_on (finite_sum unit unit) N' h (@PCROSS R unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum unit unit)) (cart R N') h (@PCROSS R unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) s) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (h (@pastecart R unit unit (@vec unit (NUMERAL 0%N)) x)) = (p x)) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (h (@pastecart R unit unit (@vec unit (NUMERAL (BIT1 0%N))) x)) = (q x)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> ((@pathstart N' (@o (cart R unit) (cart R (finite_sum unit unit)) (cart R N') h (@pastecart R unit unit t))) = (@pathstart N' p)) /\ ((@pathfinish N' (@o (cart R unit) (cart R (finite_sum unit unit)) (cart R N') h (@pastecart R unit unit t))) = (@pathfinish N' p))))))). +Axiom thm_HOMOTOPIC_PATHS_IMP_PATHSTART : forall {_1102248 : Type'}, forall s : (cart R _1102248) -> Prop, forall p : (cart R unit) -> cart R _1102248, forall q : (cart R unit) -> cart R _1102248, (@homotopic_paths _1102248 s p q) -> (@pathstart _1102248 p) = (@pathstart _1102248 q). +Axiom thm_HOMOTOPIC_PATHS_IMP_PATHFINISH : forall {_1102274 : Type'}, forall s : (cart R _1102274) -> Prop, forall p : (cart R unit) -> cart R _1102274, forall q : (cart R unit) -> cart R _1102274, (@homotopic_paths _1102274 s p q) -> (@pathfinish _1102274 p) = (@pathfinish _1102274 q). +Axiom thm_HOMOTOPIC_PATHS_IMP_PATH : forall {_1102293 : Type'}, forall s : (cart R _1102293) -> Prop, forall p : (cart R unit) -> cart R _1102293, forall q : (cart R unit) -> cart R _1102293, (@homotopic_paths _1102293 s p q) -> (@path _1102293 p) /\ (@path _1102293 q). +Axiom thm_HOMOTOPIC_PATHS_IMP_SUBSET : forall {_1102318 : Type'}, forall s : (cart R _1102318) -> Prop, forall p : (cart R unit) -> cart R _1102318, forall q : (cart R unit) -> cart R _1102318, (@homotopic_paths _1102318 s p q) -> (@SUBSET (cart R _1102318) (@path_image _1102318 p) s) /\ (@SUBSET (cart R _1102318) (@path_image _1102318 q) s). +Axiom thm_HOMOTOPIC_PATHS_REFL : forall {_1102345 : Type'}, forall s : (cart R _1102345) -> Prop, forall p : (cart R unit) -> cart R _1102345, (@homotopic_paths _1102345 s p p) = ((@path _1102345 p) /\ (@SUBSET (cart R _1102345) (@path_image _1102345 p) s)). +Axiom thm_HOMOTOPIC_PATHS_SYM : forall {_1102373 : Type'}, forall s : (cart R _1102373) -> Prop, forall p : (cart R unit) -> cart R _1102373, forall q : (cart R unit) -> cart R _1102373, (@homotopic_paths _1102373 s p q) = (@homotopic_paths _1102373 s q p). +Axiom thm_HOMOTOPIC_PATHS_TRANS : forall {_1102402 : Type'}, forall s : (cart R _1102402) -> Prop, forall p : (cart R unit) -> cart R _1102402, forall q : (cart R unit) -> cart R _1102402, forall r : (cart R unit) -> cart R _1102402, ((@homotopic_paths _1102402 s p q) /\ (@homotopic_paths _1102402 s q r)) -> @homotopic_paths _1102402 s p r. +Axiom thm_HOMOTOPIC_PATHS_EQ : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p t) = (q t)))) -> @homotopic_paths N' s p q. +Axiom thm_HOMOTOPIC_PATHS_REPARAMETRIZE : forall {N' : Type'} (s : (cart R N') -> Prop), forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ (exists f : (cart R unit) -> cart R unit, (@continuous_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@SUBSET (cart R unit) (@IMAGE (cart R unit) (cart R unit) f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (((f (@vec unit (NUMERAL 0%N))) = (@vec unit (NUMERAL 0%N))) /\ (((f (@vec unit (NUMERAL (BIT1 0%N)))) = (@vec unit (NUMERAL (BIT1 0%N)))) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (q t) = (p (f t))))))))) -> @homotopic_paths N' s p q. +Axiom thm_HOMOTOPIC_PATHS_SUBSET : forall {_1102756 : Type'} (t : (cart R _1102756) -> Prop), forall s : (cart R _1102756) -> Prop, forall p : (cart R unit) -> cart R _1102756, forall q : (cart R unit) -> cart R _1102756, ((@homotopic_paths _1102756 s p q) /\ (@SUBSET (cart R _1102756) s t)) -> @homotopic_paths _1102756 t p q. +Axiom thm_HOMOTOPIC_JOIN_LEMMA : forall {N' : Type'}, forall p : (cart R unit) -> (cart R unit) -> cart R N', forall q : (cart R unit) -> (cart R unit) -> cart R N', ((@continuous_on (finite_sum unit unit) N' (fun y : cart R (finite_sum unit unit) => p (@fstcart R unit unit y) (@sndcart R unit unit y)) (@PCROSS R unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) /\ ((@continuous_on (finite_sum unit unit) N' (fun y : cart R (finite_sum unit unit) => q (@fstcart R unit unit y) (@sndcart R unit unit y)) (@PCROSS R unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (@pathfinish N' (p t)) = (@pathstart N' (q t))))) -> @continuous_on (finite_sum unit unit) N' (fun y : cart R (finite_sum unit unit) => @addadd (cart R N') (p (@fstcart R unit unit y)) (q (@fstcart R unit unit y)) (@sndcart R unit unit y)) (@PCROSS R unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_HOMOTOPIC_PATHS_REVERSEPATH : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', (@homotopic_paths N' s (@reversepath N' p) (@reversepath N' q)) = (@homotopic_paths N' s p q). +Axiom thm_HOMOTOPIC_PATHS_JOIN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall p' : (cart R unit) -> cart R N', forall q' : (cart R unit) -> cart R N', ((@homotopic_paths N' s p p') /\ ((@homotopic_paths N' s q q') /\ ((@pathfinish N' p) = (@pathstart N' q)))) -> @homotopic_paths N' s (@addadd (cart R N') p q) (@addadd (cart R N') p' q'). +Axiom thm_HOMOTOPIC_PATHS_CONTINUOUS_IMAGE : forall {M N' : Type'}, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R M, forall h : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@homotopic_paths M s f g) /\ ((@continuous_on M N' h s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') h s) t))) -> @homotopic_paths N' t (@o (cart R unit) (cart R M) (cart R N') h f) (@o (cart R unit) (cart R M) (cart R N') h g). +Axiom thm_HOMOTOPIC_PATHS_RID : forall {_1103589 : Type'}, forall s : (cart R _1103589) -> Prop, forall p : (cart R unit) -> cart R _1103589, ((@path _1103589 p) /\ (@SUBSET (cart R _1103589) (@path_image _1103589 p) s)) -> @homotopic_paths _1103589 s (@addadd (cart R _1103589) p (@linepath _1103589 (@pair (cart R _1103589) (cart R _1103589) (@pathfinish _1103589 p) (@pathfinish _1103589 p)))) p. +Axiom thm_HOMOTOPIC_PATHS_LID : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R unit) -> cart R N', ((@path N' p) /\ (@SUBSET (cart R N') (@path_image N' p) s)) -> @homotopic_paths N' s (@addadd (cart R N') (@linepath N' (@pair (cart R N') (cart R N') (@pathstart N' p) (@pathstart N' p))) p) p. +Axiom thm_HOMOTOPIC_PATHS_ASSOC : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall r : (cart R unit) -> cart R N', ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ ((@path N' q) /\ ((@SUBSET (cart R N') (@path_image N' q) s) /\ ((@path N' r) /\ ((@SUBSET (cart R N') (@path_image N' r) s) /\ (((@pathfinish N' p) = (@pathstart N' q)) /\ ((@pathfinish N' q) = (@pathstart N' r))))))))) -> @homotopic_paths N' s (@addadd (cart R N') p (@addadd (cart R N') q r)) (@addadd (cart R N') (@addadd (cart R N') p q) r). +Axiom thm_HOMOTOPIC_PATHS_RINV : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R unit) -> cart R N', ((@path N' p) /\ (@SUBSET (cart R N') (@path_image N' p) s)) -> @homotopic_paths N' s (@addadd (cart R N') p (@reversepath N' p)) (@linepath N' (@pair (cart R N') (cart R N') (@pathstart N' p) (@pathstart N' p))). +Axiom thm_HOMOTOPIC_PATHS_LINV : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R unit) -> cart R N', ((@path N' p) /\ (@SUBSET (cart R N') (@path_image N' p) s)) -> @homotopic_paths N' s (@addadd (cart R N') (@reversepath N' p) p) (@linepath N' (@pair (cart R N') (cart R N') (@pathfinish N' p) (@pathfinish N' p))). +Axiom thm_HOMOTOPIC_PATHS_LCANCEL : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall r : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@homotopic_paths N' s (@addadd (cart R N') p q) (@addadd (cart R N') p r)) /\ (((@pathstart N' q) = (@pathfinish N' p)) /\ ((@pathstart N' r) = (@pathfinish N' p)))) -> @homotopic_paths N' s q r. +Axiom thm_HOMOTOPIC_PATHS_LCANCEL_EQ : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall r : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, (((@pathstart N' q) = (@pathfinish N' p)) /\ ((@pathstart N' r) = (@pathfinish N' p))) -> (@homotopic_paths N' s (@addadd (cart R N') p q) (@addadd (cart R N') p r)) = ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ (@homotopic_paths N' s q r))). +Axiom thm_HOMOTOPIC_PATHS_RCANCEL : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall r : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@homotopic_paths N' s (@addadd (cart R N') p r) (@addadd (cart R N') q r)) /\ (((@pathfinish N' p) = (@pathstart N' r)) /\ ((@pathfinish N' q) = (@pathstart N' r)))) -> @homotopic_paths N' s p q. +Axiom thm_HOMOTOPIC_PATHS_RCANCEL_EQ : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall r : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, (((@pathfinish N' p) = (@pathstart N' r)) /\ ((@pathfinish N' q) = (@pathstart N' r))) -> (@homotopic_paths N' s (@addadd (cart R N') p r) (@addadd (cart R N') q r)) = ((@homotopic_paths N' s p q) /\ ((@path N' r) /\ (@SUBSET (cart R N') (@path_image N' r) s))). +Axiom thm_homotopic_loops : forall {_1104574 : Type'}, forall s : (cart R _1104574) -> Prop, forall p : (cart R unit) -> cart R _1104574, forall q : (cart R unit) -> cart R _1104574, (@homotopic_loops _1104574 s p q) = (@homotopic_with (cart R _1104574) (cart R unit) (fun r : (cart R unit) -> cart R _1104574 => (@pathfinish _1104574 r) = (@pathstart _1104574 r)) (@pair (Topology (cart R unit)) (Topology (cart R _1104574)) (@subtopology (cart R unit) (@euclidean unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) (@subtopology (cart R _1104574) (@euclidean _1104574) s)) p q). +Axiom thm_HOMOTOPIC_LOOPS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', (@homotopic_loops N' s p q) = (exists h : (cart R (finite_sum unit unit)) -> cart R N', (@continuous_on (finite_sum unit unit) N' h (@PCROSS R unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum unit unit)) (cart R N') h (@PCROSS R unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) s) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (h (@pastecart R unit unit (@vec unit (NUMERAL 0%N)) x)) = (p x)) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (h (@pastecart R unit unit (@vec unit (NUMERAL (BIT1 0%N))) x)) = (q x)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (@pathfinish N' (@o (cart R unit) (cart R (finite_sum unit unit)) (cart R N') h (@pastecart R unit unit t))) = (@pathstart N' (@o (cart R unit) (cart R (finite_sum unit unit)) (cart R N') h (@pastecart R unit unit t)))))))). +Axiom thm_HOMOTOPIC_LOOPS_IMP_LOOP : forall {_1104851 : Type'}, forall s : (cart R _1104851) -> Prop, forall p : (cart R unit) -> cart R _1104851, forall q : (cart R unit) -> cart R _1104851, (@homotopic_loops _1104851 s p q) -> ((@pathfinish _1104851 p) = (@pathstart _1104851 p)) /\ ((@pathfinish _1104851 q) = (@pathstart _1104851 q)). +Axiom thm_HOMOTOPIC_LOOPS_IMP_PATH : forall {_1104870 : Type'}, forall s : (cart R _1104870) -> Prop, forall p : (cart R unit) -> cart R _1104870, forall q : (cart R unit) -> cart R _1104870, (@homotopic_loops _1104870 s p q) -> (@path _1104870 p) /\ (@path _1104870 q). +Axiom thm_HOMOTOPIC_LOOPS_IMP_SUBSET : forall {_1104895 : Type'}, forall s : (cart R _1104895) -> Prop, forall p : (cart R unit) -> cart R _1104895, forall q : (cart R unit) -> cart R _1104895, (@homotopic_loops _1104895 s p q) -> (@SUBSET (cart R _1104895) (@path_image _1104895 p) s) /\ (@SUBSET (cart R _1104895) (@path_image _1104895 q) s). +Axiom thm_HOMOTOPIC_LOOPS_REFL : forall {_1104940 : Type'}, forall s : (cart R _1104940) -> Prop, forall p : (cart R unit) -> cart R _1104940, (@homotopic_loops _1104940 s p p) = ((@path _1104940 p) /\ ((@SUBSET (cart R _1104940) (@path_image _1104940 p) s) /\ ((@pathfinish _1104940 p) = (@pathstart _1104940 p)))). +Axiom thm_HOMOTOPIC_LOOPS_SYM : forall {_1104959 : Type'}, forall s : (cart R _1104959) -> Prop, forall p : (cart R unit) -> cart R _1104959, forall q : (cart R unit) -> cart R _1104959, (@homotopic_loops _1104959 s p q) = (@homotopic_loops _1104959 s q p). +Axiom thm_HOMOTOPIC_LOOPS_TRANS : forall {_1104988 : Type'}, forall s : (cart R _1104988) -> Prop, forall p : (cart R unit) -> cart R _1104988, forall q : (cart R unit) -> cart R _1104988, forall r : (cart R unit) -> cart R _1104988, ((@homotopic_loops _1104988 s p q) /\ (@homotopic_loops _1104988 s q r)) -> @homotopic_loops _1104988 s p r. +Axiom thm_HOMOTOPIC_LOOPS_SUBSET : forall {_1105024 : Type'} (t : (cart R _1105024) -> Prop), forall s : (cart R _1105024) -> Prop, forall p : (cart R unit) -> cart R _1105024, forall q : (cart R unit) -> cart R _1105024, ((@homotopic_loops _1105024 s p q) /\ (@SUBSET (cart R _1105024) s t)) -> @homotopic_loops _1105024 t p q. +Axiom thm_HOMOTOPIC_LOOPS_EQ : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ (((@pathfinish N' p) = (@pathstart N' p)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p t) = (q t))))) -> @homotopic_loops N' s p q. +Axiom thm_HOMOTOPIC_LOOPS_CONTINUOUS_IMAGE : forall {M N' : Type'}, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R M, forall h : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@homotopic_loops M s f g) /\ ((@continuous_on M N' h s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') h s) t))) -> @homotopic_loops N' t (@o (cart R unit) (cart R M) (cart R N') h f) (@o (cart R unit) (cart R M) (cart R N') h g). +Axiom thm_HOMOTOPIC_LOOPS_SHIFTPATH_SELF : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall t : cart R unit, forall s : (cart R N') -> Prop, ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ (((@pathfinish N' p) = (@pathstart N' p)) /\ (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))))) -> @homotopic_loops N' s p (@shiftpath N' t p). +Axiom thm_HOMOTOPIC_PATHS_IMP_HOMOTOPIC_LOOPS : forall {_1105434 : Type'}, forall s : (cart R _1105434) -> Prop, forall p : (cart R unit) -> cart R _1105434, forall q : (cart R unit) -> cart R _1105434, ((@homotopic_paths _1105434 s p q) /\ (((@pathfinish _1105434 p) = (@pathstart _1105434 p)) /\ ((@pathfinish _1105434 q) = (@pathstart _1105434 p)))) -> @homotopic_loops _1105434 s p q. +Axiom thm_HOMOTOPIC_LOOPS_IMP_HOMOTOPIC_PATHS_NULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R unit) -> cart R N', forall a : cart R N', (@homotopic_loops N' s p (@linepath N' (@pair (cart R N') (cart R N') a a))) -> @homotopic_paths N' s p (@linepath N' (@pair (cart R N') (cart R N') (@pathstart N' p) (@pathstart N' p))). +Axiom thm_HOMOTOPIC_LOOPS_CONJUGATE : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ ((@path N' q) /\ ((@SUBSET (cart R N') (@path_image N' q) s) /\ (((@pathfinish N' p) = (@pathstart N' q)) /\ ((@pathfinish N' q) = (@pathstart N' q))))))) -> @homotopic_loops N' s (@addadd (cart R N') p (@addadd (cart R N') q (@reversepath N' p))) q. +Axiom thm_PATH_COMPONENT_IMP_HOMOTOPIC_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@path_component N' s a b) -> @homotopic_loops N' s (@linepath N' (@pair (cart R N') (cart R N') a a)) (@linepath N' (@pair (cart R N') (cart R N') b b)). +Axiom thm_HOMOTOPIC_LOOPS_IMP_PATH_COMPONENT_VALUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall t : cart R unit, ((@homotopic_loops N' s p q) /\ (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> @path_component N' s (p t) (q t). +Axiom thm_HOMOTOPIC_POINTS_EQ_PATH_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@homotopic_loops N' s (@linepath N' (@pair (cart R N') (cart R N') a a)) (@linepath N' (@pair (cart R N') (cart R N') b b))) = (@path_component N' s a b). +Axiom thm_PATH_CONNECTED_EQ_HOMOTOPIC_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@path_connected N' s) = (forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a s) /\ (@IN (cart R N') b s)) -> @homotopic_loops N' s (@linepath N' (@pair (cart R N') (cart R N') a a)) (@linepath N' (@pair (cart R N') (cart R N') b b))). +Axiom thm_HOMOTOPIC_WITH_LINEAR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@continuous_on M N' g s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (f x) (g x)) (@nil (prod (cart R N') (cart R N'))))) t))) -> @homotopic_with (cart R N') (cart R M) (fun z : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f g. +Axiom thm_HOMOTOPIC_LOOPS_LINEAR : forall {_1106704 N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, forall h : (cart R unit) -> cart R N', ((@path N' g) /\ ((@path N' h) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ (((@pathfinish N' h) = (@pathstart N' h)) /\ (forall t : cart R unit, forall x : _1106704, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> @SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (g t) (h t)) (@nil (prod (cart R N') (cart R N'))))) s))))) -> @homotopic_loops N' s g h. +Axiom thm_HOMOTOPIC_PATHS_LINEAR : forall {_1106618 N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, forall h : (cart R unit) -> cart R N', ((@path N' g) /\ ((@path N' h) /\ (((@pathstart N' h) = (@pathstart N' g)) /\ (((@pathfinish N' h) = (@pathfinish N' g)) /\ (forall t : cart R unit, forall x : _1106618, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> @SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (g t) (h t)) (@nil (prod (cart R N') (cart R N'))))) s))))) -> @homotopic_paths N' s g h. +Axiom thm_HOMOTOPIC_LOOPS_NEARBY_EXPLICIT : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, forall h : (cart R unit) -> cart R N', ((@path N' g) /\ ((@path N' h) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ (((@pathfinish N' h) = (@pathstart N' h)) /\ (forall t : cart R unit, forall x : cart R N', ((@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (~ (@IN (cart R N') x s))) -> Rlt (@vector_norm N' (@vector_sub N' (h t) (g t))) (@vector_norm N' (@vector_sub N' (g t) x))))))) -> @homotopic_loops N' s g h. +Axiom thm_HOMOTOPIC_PATHS_NEARBY_EXPLICIT : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, forall h : (cart R unit) -> cart R N', ((@path N' g) /\ ((@path N' h) /\ (((@pathstart N' h) = (@pathstart N' g)) /\ (((@pathfinish N' h) = (@pathfinish N' g)) /\ (forall t : cart R unit, forall x : cart R N', ((@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (~ (@IN (cart R N') x s))) -> Rlt (@vector_norm N' (@vector_sub N' (h t) (g t))) (@vector_norm N' (@vector_sub N' (g t) x))))))) -> @homotopic_paths N' s g h. +Axiom thm_HOMOTOPIC_NEARBY_LOOPS : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@path N' g) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ ((@_open N' s) /\ (@SUBSET (cart R N') (@path_image N' g) s)))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall h : (cart R unit) -> cart R N', ((@path N' h) /\ (((@pathfinish N' h) = (@pathstart N' h)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rlt (@vector_norm N' (@vector_sub N' (h t) (g t))) e))) -> @homotopic_loops N' s g h). +Axiom thm_HOMOTOPIC_NEARBY_PATHS : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@path N' g) /\ ((@_open N' s) /\ (@SUBSET (cart R N') (@path_image N' g) s))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall h : (cart R unit) -> cart R N', ((@path N' h) /\ (((@pathstart N' h) = (@pathstart N' g)) /\ (((@pathfinish N' h) = (@pathfinish N' g)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rlt (@vector_norm N' (@vector_sub N' (h t) (g t))) e)))) -> @homotopic_paths N' s g h). +Axiom thm_HOMOTOPIC_NON_MIDPOINT_SPHEREMAPS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R N', forall r : R, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@sphere N' (@pair (cart R N') R a r))) /\ ((@continuous_on M N' g s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) (@sphere N' (@pair (cart R N') R a r))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> ~ ((@midpoint N' (@pair (cart R N') (cart R N') (f x) (g x))) = a)))))) -> @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R a r)))) f g. +Axiom thm_HOMOTOPIC_NON_ANTIPODAL_SPHEREMAPS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall r : R, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) /\ ((@continuous_on M N' g s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> ~ ((f x) = (@vector_neg N' (g x)))))))) -> @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r)))) f g. +Axiom thm_HOMOTOPICALLY_TRIVIAL_RETRACTION_GEN : forall {M N' P : Type'}, forall P' : ((cart R P) -> cart R M) -> Prop, forall Q : ((cart R P) -> cart R N') -> Prop, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, forall h : (cart R M) -> cart R N', forall k : (cart R N') -> cart R M, (((@continuous_on M N' h s) /\ (((@IMAGE (cart R M) (cart R N') h s) = t) /\ ((@continuous_on N' M k t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) k t) s) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> (h (k y)) = y) /\ ((forall f : (cart R P) -> cart R N', ((@continuous_on P N' f u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') f u) t) /\ (Q f))) -> P' (@o (cart R P) (cart R N') (cart R M) k f)) /\ ((forall f : (cart R P) -> cart R M, ((@continuous_on P M f u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) f u) s) /\ (P' f))) -> Q (@o (cart R P) (cart R M) (cart R N') h f)) /\ (forall h' : (cart R P) -> cart R N', forall k' : (cart R P) -> cart R N', (forall x : cart R P, (@IN (cart R P) x u) -> (h' x) = (k' x)) -> (Q h') = (Q k'))))))))) /\ (forall f : (cart R P) -> cart R M, forall g : (cart R P) -> cart R M, ((@continuous_on P M f u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) f u) s) /\ ((P' f) /\ ((@continuous_on P M g u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g u) s) /\ (P' g)))))) -> @homotopic_with (cart R M) (cart R P) P' (@pair (Topology (cart R P)) (Topology (cart R M)) (@subtopology (cart R P) (@euclidean P) u) (@subtopology (cart R M) (@euclidean M) s)) f g)) -> forall f : (cart R P) -> cart R N', forall g : (cart R P) -> cart R N', ((@continuous_on P N' f u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') f u) t) /\ ((Q f) /\ ((@continuous_on P N' g u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') g u) t) /\ (Q g)))))) -> @homotopic_with (cart R N') (cart R P) Q (@pair (Topology (cart R P)) (Topology (cart R N')) (@subtopology (cart R P) (@euclidean P) u) (@subtopology (cart R N') (@euclidean N') t)) f g. +Axiom thm_HOMOTOPICALLY_TRIVIAL_RETRACTION_NULL_GEN : forall {M N' P : Type'}, forall P' : ((cart R P) -> cart R M) -> Prop, forall Q : ((cart R P) -> cart R N') -> Prop, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, forall h : (cart R M) -> cart R N', forall k : (cart R N') -> cart R M, (((@continuous_on M N' h s) /\ (((@IMAGE (cart R M) (cart R N') h s) = t) /\ ((@continuous_on N' M k t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) k t) s) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> (h (k y)) = y) /\ ((forall f : (cart R P) -> cart R N', ((@continuous_on P N' f u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') f u) t) /\ (Q f))) -> P' (@o (cart R P) (cart R N') (cart R M) k f)) /\ ((forall f : (cart R P) -> cart R M, ((@continuous_on P M f u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) f u) s) /\ (P' f))) -> Q (@o (cart R P) (cart R M) (cart R N') h f)) /\ (forall h' : (cart R P) -> cart R N', forall k' : (cart R P) -> cart R N', (forall x : cart R P, (@IN (cart R P) x u) -> (h' x) = (k' x)) -> (Q h') = (Q k'))))))))) /\ (forall f : (cart R P) -> cart R M, ((@continuous_on P M f u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) f u) s) /\ (P' f))) -> exists c : cart R M, @homotopic_with (cart R M) (cart R P) P' (@pair (Topology (cart R P)) (Topology (cart R M)) (@subtopology (cart R P) (@euclidean P) u) (@subtopology (cart R M) (@euclidean M) s)) f (fun x : cart R P => c))) -> forall f : (cart R P) -> cart R N', ((@continuous_on P N' f u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') f u) t) /\ (Q f))) -> exists c : cart R N', @homotopic_with (cart R N') (cart R P) Q (@pair (Topology (cart R P)) (Topology (cart R N')) (@subtopology (cart R P) (@euclidean P) u) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R P => c). +Axiom thm_COHOMOTOPICALLY_TRIVIAL_RETRACTION_GEN : forall {M N' P : Type'}, forall P' : ((cart R M) -> cart R P) -> Prop, forall Q : ((cart R N') -> cart R P) -> Prop, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, forall h : (cart R M) -> cart R N', forall k : (cart R N') -> cart R M, (((@continuous_on M N' h s) /\ (((@IMAGE (cart R M) (cart R N') h s) = t) /\ ((@continuous_on N' M k t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) k t) s) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> (h (k y)) = y) /\ ((forall f : (cart R N') -> cart R P, ((@continuous_on N' P f t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) f t) u) /\ (Q f))) -> P' (@o (cart R M) (cart R N') (cart R P) f h)) /\ ((forall f : (cart R M) -> cart R P, ((@continuous_on M P f s) /\ ((@SUBSET (cart R P) (@IMAGE (cart R M) (cart R P) f s) u) /\ (P' f))) -> Q (@o (cart R N') (cart R M) (cart R P) f k)) /\ (forall h' : (cart R N') -> cart R P, forall k' : (cart R N') -> cart R P, (forall x : cart R N', (@IN (cart R N') x t) -> (h' x) = (k' x)) -> (Q h') = (Q k'))))))))) /\ (forall f : (cart R M) -> cart R P, forall g : (cart R M) -> cart R P, ((@continuous_on M P f s) /\ ((@SUBSET (cart R P) (@IMAGE (cart R M) (cart R P) f s) u) /\ ((P' f) /\ ((@continuous_on M P g s) /\ ((@SUBSET (cart R P) (@IMAGE (cart R M) (cart R P) g s) u) /\ (P' g)))))) -> @homotopic_with (cart R P) (cart R M) P' (@pair (Topology (cart R M)) (Topology (cart R P)) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R P) (@euclidean P) u)) f g)) -> forall f : (cart R N') -> cart R P, forall g : (cart R N') -> cart R P, ((@continuous_on N' P f t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) f t) u) /\ ((Q f) /\ ((@continuous_on N' P g t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u) /\ (Q g)))))) -> @homotopic_with (cart R P) (cart R N') Q (@pair (Topology (cart R N')) (Topology (cart R P)) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R P) (@euclidean P) u)) f g. +Axiom thm_COHOMOTOPICALLY_TRIVIAL_RETRACTION_NULL_GEN : forall {M N' P : Type'}, forall P' : ((cart R M) -> cart R P) -> Prop, forall Q : ((cart R N') -> cart R P) -> Prop, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, forall h : (cart R M) -> cart R N', forall k : (cart R N') -> cart R M, (((@continuous_on M N' h s) /\ (((@IMAGE (cart R M) (cart R N') h s) = t) /\ ((@continuous_on N' M k t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) k t) s) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> (h (k y)) = y) /\ ((forall f : (cart R N') -> cart R P, ((@continuous_on N' P f t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) f t) u) /\ (Q f))) -> P' (@o (cart R M) (cart R N') (cart R P) f h)) /\ ((forall f : (cart R M) -> cart R P, ((@continuous_on M P f s) /\ ((@SUBSET (cart R P) (@IMAGE (cart R M) (cart R P) f s) u) /\ (P' f))) -> Q (@o (cart R N') (cart R M) (cart R P) f k)) /\ (forall h' : (cart R N') -> cart R P, forall k' : (cart R N') -> cart R P, (forall x : cart R N', (@IN (cart R N') x t) -> (h' x) = (k' x)) -> (Q h') = (Q k'))))))))) /\ (forall f : (cart R M) -> cart R P, ((@continuous_on M P f s) /\ ((@SUBSET (cart R P) (@IMAGE (cart R M) (cart R P) f s) u) /\ (P' f))) -> exists c : cart R P, @homotopic_with (cart R P) (cart R M) P' (@pair (Topology (cart R M)) (Topology (cart R P)) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R P) (@euclidean P) u)) f (fun x : cart R M => c))) -> forall f : (cart R N') -> cart R P, ((@continuous_on N' P f t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) f t) u) /\ (Q f))) -> exists c : cart R P, @homotopic_with (cart R P) (cart R N') Q (@pair (Topology (cart R N')) (Topology (cart R P)) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R P) (@euclidean P) u)) f (fun x : cart R N' => c). +Axiom thm_HOMOTOPIC_JOIN_SUBPATHS : forall {N' : Type'} (v : cart R unit) (u : cart R unit) (w : cart R unit), forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@path N' g) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) w (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))))) -> @homotopic_paths N' s (@addadd (cart R N') (@subpath (cart R N') u v g) (@subpath (cart R N') v w g)) (@subpath (cart R N') u w g). +Axiom thm_HOMOTOPIC_LOOPS_SHIFTPATH : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall u : cart R unit, ((@homotopic_loops N' s p q) /\ (@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> @homotopic_loops N' s (@shiftpath N' u p) (@shiftpath N' u q). +Axiom thm_HOMOTOPIC_PATHS_LOOP_PARTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall a : cart R N', ((@homotopic_loops N' s (@addadd (cart R N') p (@reversepath N' q)) (@linepath N' (@pair (cart R N') (cart R N') a a))) /\ (@path N' q)) -> @homotopic_paths N' s p q. +Axiom thm_HOMOTOPIC_LOOPS_ADD_SYM : forall {N' : Type'} (s : (cart R N') -> Prop), forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ (((@pathfinish N' p) = (@pathstart N' p)) /\ ((@path N' q) /\ ((@SUBSET (cart R N') (@path_image N' q) s) /\ (((@pathfinish N' q) = (@pathstart N' q)) /\ ((@pathstart N' q) = (@pathstart N' p)))))))) -> @homotopic_loops N' s (@addadd (cart R N') p q) (@addadd (cart R N') q p). +Axiom thm_simply_connected : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@simply_connected N' s) = (forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', ((@path N' p) /\ (((@pathfinish N' p) = (@pathstart N' p)) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ ((@path N' q) /\ (((@pathfinish N' q) = (@pathstart N' q)) /\ (@SUBSET (cart R N') (@path_image N' q) s)))))) -> @homotopic_loops N' s p q). +Axiom thm_SIMPLY_CONNECTED_EMPTY : forall {_1110731 : Type'}, @simply_connected _1110731 (@EMPTY (cart R _1110731)). +Axiom thm_SIMPLY_CONNECTED_IMP_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@simply_connected N' s) -> @path_connected N' s. +Axiom thm_SIMPLY_CONNECTED_IMP_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@simply_connected N' s) -> @connected N' s. +Axiom thm_SIMPLY_CONNECTED_EQ_CONTRACTIBLE_LOOP_ANY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@simply_connected N' s) = (forall p : (cart R unit) -> cart R N', forall a : cart R N', ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ (((@pathfinish N' p) = (@pathstart N' p)) /\ (@IN (cart R N') a s)))) -> @homotopic_loops N' s p (@linepath N' (@pair (cart R N') (cart R N') a a))). +Axiom thm_SIMPLY_CONNECTED_EQ_CONTRACTIBLE_LOOP_SOME : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@simply_connected N' s) = ((@path_connected N' s) /\ (forall p : (cart R unit) -> cart R N', ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ ((@pathfinish N' p) = (@pathstart N' p)))) -> exists a : cart R N', (@IN (cart R N') a s) /\ (@homotopic_loops N' s p (@linepath N' (@pair (cart R N') (cart R N') a a))))). +Axiom thm_SIMPLY_CONNECTED_EQ_CONTRACTIBLE_LOOP_ALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@simply_connected N' s) = ((s = (@EMPTY (cart R N'))) \/ (exists a : cart R N', (@IN (cart R N') a s) /\ (forall p : (cart R unit) -> cart R N', ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ ((@pathfinish N' p) = (@pathstart N' p)))) -> @homotopic_loops N' s p (@linepath N' (@pair (cart R N') (cart R N') a a))))). +Axiom thm_SIMPLY_CONNECTED_EQ_CONTRACTIBLE_PATH : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@simply_connected N' s) = ((@path_connected N' s) /\ (forall p : (cart R unit) -> cart R N', ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ ((@pathfinish N' p) = (@pathstart N' p)))) -> @homotopic_paths N' s p (@linepath N' (@pair (cart R N') (cart R N') (@pathstart N' p) (@pathstart N' p))))). +Axiom thm_SIMPLY_CONNECTED_EQ_HOMOTOPIC_PATHS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@simply_connected N' s) = ((@path_connected N' s) /\ (forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ ((@path N' q) /\ ((@SUBSET (cart R N') (@path_image N' q) s) /\ (((@pathstart N' q) = (@pathstart N' p)) /\ ((@pathfinish N' q) = (@pathfinish N' p))))))) -> @homotopic_paths N' s p q)). +Axiom thm_SIMPLY_CONNECTED_RETRACTION_GEN : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall h : (cart R M) -> cart R N', forall k : (cart R N') -> cart R M, ((@continuous_on M N' h s) /\ (((@IMAGE (cart R M) (cart R N') h s) = t) /\ ((@continuous_on N' M k t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) k t) s) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> (h (k y)) = y) /\ (@simply_connected M s)))))) -> @simply_connected N' t. +Axiom thm_HOMEOMORPHIC_SIMPLY_CONNECTED : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@homeomorphic N' M s t) /\ (@simply_connected M s)) -> @simply_connected N' t. +Axiom thm_HOMEOMORPHIC_SIMPLY_CONNECTED_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@simply_connected M s) = (@simply_connected N' t). +Axiom thm_SIMPLY_CONNECTED_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@simply_connected N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@simply_connected N' s). +Axiom thm_SIMPLY_CONNECTED_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@simply_connected N' (@IMAGE (cart R M) (cart R N') f s)) = (@simply_connected M s). +Axiom thm_HOMEOMORPHISM_SIMPLE_CONNECTEDNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@simply_connected N' (@IMAGE (cart R M) (cart R N') f k)) = (@simply_connected M k). +Axiom thm_SIMPLY_CONNECTED_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@simply_connected M s) /\ (@simply_connected N' t)) -> @simply_connected (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_SIMPLY_CONNECTED_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@simply_connected (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@simply_connected M s) /\ (@simply_connected N' t)))). +Axiom thm_SIMPLY_CONNECTED_NESTED_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@_open N' s) /\ (@simply_connected N' s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ (@IN ((cart R N') -> Prop) t f)) -> (@SUBSET (cart R N') s t) \/ (@SUBSET (cart R N') t s))) -> @simply_connected N' (@UNIONS (cart R N') f). +Axiom thm_fundamental_group : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@fundamental_group N' (@pair ((cart R N') -> Prop) (cart R N') s a)) = (@GSPEC (((cart R unit) -> cart R N') -> Prop) (fun GEN_PVAR_4998 : ((cart R unit) -> cart R N') -> Prop => exists p : (cart R unit) -> cart R N', @SETSPEC (((cart R unit) -> cart R N') -> Prop) GEN_PVAR_4998 ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ (((@pathstart N' p) = a) /\ ((@pathfinish N' p) = a)))) (@homotopic_paths N' s p))). +Axiom thm_FUNDAMENTAL_GROUP_EQ_EMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@fundamental_group N' (@pair ((cart R N') -> Prop) (cart R N') s a)) = (@EMPTY (((cart R unit) -> cart R N') -> Prop))) = (~ (@IN (cart R N') a s)). +Axiom thm_CARD_EQ_FUNDAMENTAL_GROUPS_BASEPOINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@path_connected N' s) /\ ((@IN (cart R N') a s) /\ (@IN (cart R N') b s))) -> @eq_c (((cart R unit) -> cart R N') -> Prop) (((cart R unit) -> cart R N') -> Prop) (@fundamental_group N' (@pair ((cart R N') -> Prop) (cart R N') s a)) (@fundamental_group N' (@pair ((cart R N') -> Prop) (cart R N') s b)). +Axiom thm_SIMPLY_CONNECTED_FUNDAMENTAL_GROUP : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@simply_connected N' s) = ((@path_connected N' s) /\ (forall a : cart R N', (@IN (cart R N') a s) -> (@fundamental_group N' (@pair ((cart R N') -> Prop) (cart R N') s a)) = (@INSERT (((cart R unit) -> cart R N') -> Prop) (@homotopic_paths N' s (@linepath N' (@pair (cart R N') (cart R N') a a))) (@EMPTY (((cart R unit) -> cart R N') -> Prop))))). +Axiom thm_FUNDAMENTAL_GROUP_SIMPLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@simply_connected N' s) /\ (@IN (cart R N') a s)) -> (@fundamental_group N' (@pair ((cart R N') -> Prop) (cart R N') s a)) = (@INSERT (((cart R unit) -> cart R N') -> Prop) (@homotopic_paths N' s (@linepath N' (@pair (cart R N') (cart R N') a a))) (@EMPTY (((cart R unit) -> cart R N') -> Prop))). +Axiom thm_NULLHOMOTOPIC_FROM_SPHERE_EXTENSION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, forall a : cart R M, forall r : R, (exists c : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) (@sphere M (@pair (cart R M) R a r))) (@subtopology (cart R N') (@euclidean N') s)) f (fun x : cart R M => c)) = (exists g : (cart R M) -> cart R N', (@continuous_on M N' g (@cball M (@pair (cart R M) R a r))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@cball M (@pair (cart R M) R a r))) s) /\ (forall x : cart R M, (@IN (cart R M) x (@sphere M (@pair (cart R M) R a r))) -> (g x) = (f x)))). +Axiom thm_homotopy_equivalent : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homotopy_equivalent M N' s t) = (exists f : (cart R M) -> cart R N', exists g : (cart R N') -> cart R M, (@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' M g t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g t) s) /\ ((@homotopic_with (cart R M) (cart R M) (fun x : (cart R M) -> cart R M => True) (@pair (Topology (cart R M)) (Topology (cart R M)) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R M) (@euclidean M) s)) (@o (cart R M) (cart R N') (cart R M) g f) (@I (cart R M))) /\ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R N') (@euclidean N') t)) (@o (cart R N') (cart R M) (cart R N') f g) (@I (cart R N')))))))). +Axiom thm_HOMOTOPY_EQUIVALENT_SPACE_EUCLIDEAN : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homotopy_equivalent_space (cart R M) (cart R N') (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) = (@homotopy_equivalent M N' s t). +Axiom thm_HOMOTOPY_EQUIVALENT : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homotopy_equivalent M N' s t) = (exists f : (cart R M) -> cart R N', exists g : (cart R N') -> cart R M, exists h : (cart R N') -> cart R M, (@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' M g t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g t) s) /\ ((@continuous_on N' M h t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) h t) s) /\ ((@homotopic_with (cart R M) (cart R M) (fun x : (cart R M) -> cart R M => True) (@pair (Topology (cart R M)) (Topology (cart R M)) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R M) (@euclidean M) s)) (@o (cart R M) (cart R N') (cart R M) g f) (@I (cart R M))) /\ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R N') (@euclidean N') t)) (@o (cart R N') (cart R M) (cart R N') f h) (@I (cart R N')))))))))). +Axiom thm_HOMEOMORPHIC_IMP_HOMOTOPY_EQUIVALENT : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> @homotopy_equivalent M N' s t. +Axiom thm_HOMOTOPY_EQUIVALENT_REFL : forall {N' : Type'}, forall s : (cart R N') -> Prop, @homotopy_equivalent N' N' s s. +Axiom thm_HOMOTOPY_EQUIVALENT_SYM : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homotopy_equivalent M N' s t) = (@homotopy_equivalent N' M t s). +Axiom thm_HOMOTOPY_EQUIVALENT_TRANS : forall {M N' P : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@homotopy_equivalent M N' s t) /\ (@homotopy_equivalent N' P t u)) -> @homotopy_equivalent M P s u. +Axiom thm_HOMOTOPY_EQUIVALENT_PCROSS : forall {M N' P Q : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall s' : (cart R P) -> Prop, forall t' : (cart R Q) -> Prop, ((@homotopy_equivalent M P s s') /\ (@homotopy_equivalent N' Q t t')) -> @homotopy_equivalent (finite_sum M N') (finite_sum P Q) (@PCROSS R M N' s t) (@PCROSS R P Q s' t'). +Axiom thm_HOMOTOPY_EQUIVALENT_INJECTIVE_LINEAR_IMAGE_SELF : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> @homotopy_equivalent N' M (@IMAGE (cart R M) (cart R N') f s) s. +Axiom thm_HOMOTOPY_EQUIVALENT_INJECTIVE_LINEAR_IMAGE_LEFT_EQ : forall {_1113981 M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R _1113981) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@homotopy_equivalent N' _1113981 (@IMAGE (cart R M) (cart R N') f s) t) = (@homotopy_equivalent M _1113981 s t). +Axiom thm_HOMOTOPY_EQUIVALENT_INJECTIVE_LINEAR_IMAGE_RIGHT_EQ : forall {_1114032 M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R _1114032) -> Prop, forall t : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@homotopy_equivalent _1114032 N' s (@IMAGE (cart R M) (cart R N') f t)) = (@homotopy_equivalent _1114032 M s t). +Axiom thm_HOMOTOPY_EQUIVALENT_TRANSLATION_SELF : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, @homotopy_equivalent N' N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) s. +Axiom thm_HOMOTOPY_EQUIVALENT_TRANSLATION_LEFT_EQ : forall {_1114088 N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, forall t : (cart R _1114088) -> Prop, (@homotopy_equivalent N' _1114088 (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) t) = (@homotopy_equivalent N' _1114088 s t). +Axiom thm_HOMOTOPY_EQUIVALENT_TRANSLATION_RIGHT_EQ : forall {_1114125 N' : Type'}, forall a : cart R N', forall s : (cart R _1114125) -> Prop, forall t : (cart R N') -> Prop, (@homotopy_equivalent _1114125 N' s (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) t)) = (@homotopy_equivalent _1114125 N' s t). +Axiom thm_HOMOTOPY_EQUIVALENT_HOMOTOPIC_TRIVIALITY : forall {M N' P : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, (@homotopy_equivalent M N' s t) -> (forall f : (cart R P) -> cart R M, forall g : (cart R P) -> cart R M, ((@continuous_on P M f u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) f u) s) /\ ((@continuous_on P M g u) /\ (@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g u) s)))) -> @homotopic_with (cart R M) (cart R P) (fun x : (cart R P) -> cart R M => True) (@pair (Topology (cart R P)) (Topology (cart R M)) (@subtopology (cart R P) (@euclidean P) u) (@subtopology (cart R M) (@euclidean M) s)) f g) = (forall f : (cart R P) -> cart R N', forall g : (cart R P) -> cart R N', ((@continuous_on P N' f u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') f u) t) /\ ((@continuous_on P N' g u) /\ (@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') g u) t)))) -> @homotopic_with (cart R N') (cart R P) (fun x : (cart R P) -> cart R N' => True) (@pair (Topology (cart R P)) (Topology (cart R N')) (@subtopology (cart R P) (@euclidean P) u) (@subtopology (cart R N') (@euclidean N') t)) f g). +Axiom thm_HOMOTOPY_EQUIVALENT_COHOMOTOPIC_TRIVIALITY : forall {M N' P : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, (@homotopy_equivalent M N' s t) -> (forall f : (cart R M) -> cart R P, forall g : (cart R M) -> cart R P, ((@continuous_on M P f s) /\ ((@SUBSET (cart R P) (@IMAGE (cart R M) (cart R P) f s) u) /\ ((@continuous_on M P g s) /\ (@SUBSET (cart R P) (@IMAGE (cart R M) (cart R P) g s) u)))) -> @homotopic_with (cart R P) (cart R M) (fun x : (cart R M) -> cart R P => True) (@pair (Topology (cart R M)) (Topology (cart R P)) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R P) (@euclidean P) u)) f g) = (forall f : (cart R N') -> cart R P, forall g : (cart R N') -> cart R P, ((@continuous_on N' P f t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) f t) u) /\ ((@continuous_on N' P g t) /\ (@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u)))) -> @homotopic_with (cart R P) (cart R N') (fun x : (cart R N') -> cart R P => True) (@pair (Topology (cart R N')) (Topology (cart R P)) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R P) (@euclidean P) u)) f g). +Axiom thm_HOMOTOPY_EQUIVALENT_HOMOTOPIC_TRIVIALITY_NULL : forall {M N' P : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, (@homotopy_equivalent M N' s t) -> (forall f : (cart R P) -> cart R M, ((@continuous_on P M f u) /\ (@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) f u) s)) -> exists c : cart R M, @homotopic_with (cart R M) (cart R P) (fun x : (cart R P) -> cart R M => True) (@pair (Topology (cart R P)) (Topology (cart R M)) (@subtopology (cart R P) (@euclidean P) u) (@subtopology (cart R M) (@euclidean M) s)) f (fun x : cart R P => c)) = (forall f : (cart R P) -> cart R N', ((@continuous_on P N' f u) /\ (@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') f u) t)) -> exists c : cart R N', @homotopic_with (cart R N') (cart R P) (fun x : (cart R P) -> cart R N' => True) (@pair (Topology (cart R P)) (Topology (cart R N')) (@subtopology (cart R P) (@euclidean P) u) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R P => c)). +Axiom thm_HOMOTOPY_EQUIVALENT_COHOMOTOPIC_TRIVIALITY_NULL : forall {M N' P : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, (@homotopy_equivalent M N' s t) -> (forall f : (cart R M) -> cart R P, ((@continuous_on M P f s) /\ (@SUBSET (cart R P) (@IMAGE (cart R M) (cart R P) f s) u)) -> exists c : cart R P, @homotopic_with (cart R P) (cart R M) (fun x : (cart R M) -> cart R P => True) (@pair (Topology (cart R M)) (Topology (cart R P)) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R P) (@euclidean P) u)) f (fun x : cart R M => c)) = (forall f : (cart R N') -> cart R P, ((@continuous_on N' P f t) /\ (@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) f t) u)) -> exists c : cart R P, @homotopic_with (cart R P) (cart R N') (fun x : (cart R N') -> cart R P => True) (@pair (Topology (cart R N')) (Topology (cart R P)) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R P) (@euclidean P) u)) f (fun x : cart R N' => c)). +Axiom thm_HOMOTOPIC_WITH_IMP_PATH_COMPONENT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall a : cart R M, ((@homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f g) /\ (@IN (cart R M) a s)) -> @path_component N' t (f a) (g a). +Axiom thm_HOMOTOPY_INVARIANT_CARD_COMPONENTS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' M g t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g t) s) /\ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R N') (@euclidean N') t)) (@o (cart R N') (cart R M) (cart R N') f g) (@I (cart R N'))))))) -> @le_c ((cart R N') -> Prop) ((cart R M) -> Prop) (@components N' t) (@components M s). +Axiom thm_HOMOTOPY_INVARIANT_CONNECTEDNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' M g t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g t) s) /\ ((@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R N') (@euclidean N') t)) (@o (cart R N') (cart R M) (cart R N') f g) (@I (cart R N'))) /\ (@connected M s)))))) -> @connected N' t. +Axiom thm_HOMOTOPY_EQUIVALENT_CONNECTEDNESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homotopy_equivalent M N' s t) -> (@connected M s) = (@connected N' t). +Axiom thm_HOMOTOPY_EQUIVALENT_CARD_EQ_COMPONENTS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homotopy_equivalent M N' s t) -> @eq_c ((cart R M) -> Prop) ((cart R N') -> Prop) (@components M s) (@components N' t). +Axiom thm_HOMEOMORPHIC_CARD_EQ_COMPONENTS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> @eq_c ((cart R M) -> Prop) ((cart R N') -> Prop) (@components M s) (@components N' t). +Axiom thm_HOMOTOPY_INVARIANT_CARD_PATH_COMPONENTS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' M g t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g t) s) /\ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R N') (@euclidean N') t)) (@o (cart R N') (cart R M) (cart R N') f g) (@I (cart R N'))))))) -> @le_c ((cart R N') -> Prop) ((cart R M) -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5004 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5004 (@IN (cart R N') x t) (@path_component N' t x))) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_5005 : (cart R M) -> Prop => exists x : cart R M, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_5005 (@IN (cart R M) x s) (@path_component M s x))). +Axiom thm_HOMOTOPY_INVARIANT_PATH_CONNECTEDNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' M g t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g t) s) /\ ((@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R N') (@euclidean N') t)) (@o (cart R N') (cart R M) (cart R N') f g) (@I (cart R N'))) /\ (@path_connected M s)))))) -> @path_connected N' t. +Axiom thm_HOMOTOPY_EQUIVALENT_PATH_CONNECTEDNESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homotopy_equivalent M N' s t) -> (@path_connected M s) = (@path_connected N' t). +Axiom thm_HOMOTOPY_EQUIVALENT_CARD_EQ_PATH_COMPONENTS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homotopy_equivalent M N' s t) -> @eq_c ((cart R M) -> Prop) ((cart R N') -> Prop) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_5009 : (cart R M) -> Prop => exists x : cart R M, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_5009 (@IN (cart R M) x s) (@path_component M s x))) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5010 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5010 (@IN (cart R N') x t) (@path_component N' t x))). +Axiom thm_HOMEOMORPHIC_CARD_EQ_PATH_COMPONENTS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> @eq_c ((cart R M) -> Prop) ((cart R N') -> Prop) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_5011 : (cart R M) -> Prop => exists x : cart R M, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_5011 (@IN (cart R M) x s) (@path_component M s x))) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5012 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5012 (@IN (cart R N') x t) (@path_component N' t x))). +Axiom thm_FINITE_COMPONENTS_PUNCTURED_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@convex N' s) -> @FINITE ((cart R N') -> Prop) (@components N' (@DELETE (cart R N') s a)). +Axiom thm_contractible : forall {_1116691 : Type'}, forall s : (cart R _1116691) -> Prop, (@contractible _1116691 s) = (exists a : cart R _1116691, @homotopic_with (cart R _1116691) (cart R _1116691) (fun x : (cart R _1116691) -> cart R _1116691 => True) (@pair (Topology (cart R _1116691)) (Topology (cart R _1116691)) (@subtopology (cart R _1116691) (@euclidean _1116691) s) (@subtopology (cart R _1116691) (@euclidean _1116691) s)) (fun x : cart R _1116691 => x) (fun x : cart R _1116691 => a)). +Axiom thm_CONTRACTIBLE_SPACE_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@contractible_space (cart R N') (@subtopology (cart R N') (@euclidean N') s)) = (@contractible N' s). +Axiom thm_CONTRACTIBLE_IMP_SIMPLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@contractible N' s) -> @simply_connected N' s. +Axiom thm_CONTRACTIBLE_IMP_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@contractible N' s) -> @connected N' s. +Axiom thm_CONTRACTIBLE_IMP_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@contractible N' s) -> @path_connected N' s. +Axiom thm_NULLHOMOTOPIC_THROUGH_CONTRACTIBLE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' P g t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g t) u) /\ (@contractible N' t))))) -> exists c : cart R P, @homotopic_with (cart R P) (cart R M) (fun h : (cart R M) -> cart R P => True) (@pair (Topology (cart R M)) (Topology (cart R P)) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R P) (@euclidean P) u)) (@o (cart R M) (cart R N') (cart R P) g f) (fun x : cart R M => c). +Axiom thm_NULLHOMOTOPIC_INTO_CONTRACTIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (@contractible N' t))) -> exists c : cart R N', @homotopic_with (cart R N') (cart R M) (fun h : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => c). +Axiom thm_NULLHOMOTOPIC_FROM_CONTRACTIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (@contractible M s))) -> exists c : cart R N', @homotopic_with (cart R N') (cart R M) (fun h : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => c). +Axiom thm_HOMOTOPIC_THROUGH_CONTRACTIBLE : forall {M N' P : Type'}, forall f1 : (cart R M) -> cart R N', forall g1 : (cart R N') -> cart R P, forall f2 : (cart R M) -> cart R N', forall g2 : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R P) -> Prop, ((@continuous_on M N' f1 s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f1 s) t) /\ ((@continuous_on N' P g1 t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g1 t) u) /\ ((@continuous_on M N' f2 s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f2 s) t) /\ ((@continuous_on N' P g2 t) /\ ((@SUBSET (cart R P) (@IMAGE (cart R N') (cart R P) g2 t) u) /\ ((@contractible N' t) /\ (@path_connected P u)))))))))) -> @homotopic_with (cart R P) (cart R M) (fun h : (cart R M) -> cart R P => True) (@pair (Topology (cart R M)) (Topology (cart R P)) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R P) (@euclidean P) u)) (@o (cart R M) (cart R N') (cart R P) g1 f1) (@o (cart R M) (cart R N') (cart R P) g2 f2). +Axiom thm_HOMOTOPIC_INTO_CONTRACTIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on M N' g s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) t) /\ (@contractible N' t))))) -> @homotopic_with (cart R N') (cart R M) (fun h : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f g. +Axiom thm_HOMOTOPIC_FROM_CONTRACTIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on M N' g s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) t) /\ ((@contractible M s) /\ (@path_connected N' t)))))) -> @homotopic_with (cart R N') (cart R M) (fun h : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f g. +Axiom thm_HOMOTOPY_EQUIVALENT_CONTRACTIBLE_SETS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@contractible M s) /\ ((@contractible N' t) /\ ((s = (@EMPTY (cart R M))) = (t = (@EMPTY (cart R N')))))) -> @homotopy_equivalent M N' s t. +Axiom thm_STARLIKE_IMP_CONTRACTIBLE_GEN : forall {N' : Type'}, forall P : ((cart R N') -> cart R N') -> Prop, forall s : (cart R N') -> Prop, ((forall a : cart R N', forall t : R, ((@IN (cart R N') a s) /\ ((Rle (R_of_N (NUMERAL 0%N)) t) /\ (Rle t (R_of_N (NUMERAL (BIT1 0%N)))))) -> P (fun x : cart R N' => @vector_add N' (@percent N' (Rminus (R_of_N (NUMERAL (BIT1 0%N))) t) x) (@percent N' t a))) /\ (@starlike N' s)) -> exists a : cart R N', @homotopic_with (cart R N') (cart R N') P (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) (fun x : cart R N' => a). +Axiom thm_STARLIKE_IMP_CONTRACTIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@starlike N' s) -> @contractible N' s. +Axiom thm_CONTRACTIBLE_UNIV : forall {N' : Type'}, @contractible N' (@UNIV (cart R N')). +Axiom thm_STARLIKE_IMP_SIMPLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@starlike N' s) -> @simply_connected N' s. +Axiom thm_CONVEX_IMP_SIMPLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @simply_connected N' s. +Axiom thm_STARLIKE_IMP_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@starlike N' s) -> @path_connected N' s. +Axiom thm_STARLIKE_IMP_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@starlike N' s) -> @connected N' s. +Axiom thm_CONIC_IMP_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@conic N' s) -> @path_connected N' s. +Axiom thm_CONIC_IMP_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@conic N' s) -> @connected N' s. +Axiom thm_IS_INTERVAL_SIMPLY_CONNECTED_1 : forall s : (cart R unit) -> Prop, (@is_interval unit s) = (@simply_connected unit s). +Axiom thm_CONTRACTIBLE_EMPTY : forall {_1117561 : Type'}, @contractible _1117561 (@EMPTY (cart R _1117561)). +Axiom thm_CONIC_IMP_CONTRACTIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@conic N' s) -> @contractible N' s. +Axiom thm_CONIC_IMP_SIMPLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@conic N' s) -> @simply_connected N' s. +Axiom thm_CONTRACTIBLE_CONVEX_TWEAK_BOUNDARY_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@SUBSET (cart R N') (@relative_interior N' s) t) /\ (@SUBSET (cart R N') t (@closure N' s)))) -> @contractible N' t. +Axiom thm_CONVEX_IMP_CONTRACTIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @contractible N' s. +Axiom thm_CONTRACTIBLE_SING : forall {N' : Type'}, forall a : cart R N', @contractible N' (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_SIMPLY_CONNECTED_SING : forall {N' : Type'}, forall a : cart R N', @simply_connected N' (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_IS_INTERVAL_CONTRACTIBLE_1 : forall s : (cart R unit) -> Prop, (@is_interval unit s) = (@contractible unit s). +Axiom thm_CONTRACTIBLE_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@contractible M s) /\ (@contractible N' t)) -> @contractible (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_CONTRACTIBLE_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@contractible (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@contractible M s) /\ (@contractible N' t)))). +Axiom thm_HOMOTOPY_EQUIVALENT_EMPTY : forall {M N' : Type'}, (forall s : (cart R M) -> Prop, (@homotopy_equivalent M N' s (@EMPTY (cart R N'))) = (s = (@EMPTY (cart R M)))) /\ (forall t : (cart R N') -> Prop, (@homotopy_equivalent M N' (@EMPTY (cart R M)) t) = (t = (@EMPTY (cart R N')))). +Axiom thm_HOMOTOPY_EQUIVALENT_CONTRACTIBILITY : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homotopy_equivalent M N' s t) -> (@contractible M s) = (@contractible N' t). +Axiom thm_HOMOTOPY_EQUIVALENT_SING : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall a : cart R N', (@homotopy_equivalent M N' s (@INSERT (cart R N') a (@EMPTY (cart R N')))) = ((~ (s = (@EMPTY (cart R M)))) /\ (@contractible M s)). +Axiom thm_HOMEOMORPHIC_CONTRACTIBLE_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@contractible M s) = (@contractible N' t). +Axiom thm_HOMEOMORPHIC_CONTRACTIBLE : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@homeomorphic N' M s t) /\ (@contractible M s)) -> @contractible N' t. +Axiom thm_CONTRACTIBLE_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@contractible N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@contractible N' s). +Axiom thm_CONTRACTIBLE_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@contractible N' (@IMAGE (cart R M) (cart R N') f s)) = (@contractible M s). +Axiom thm_HOMEOMORPHISM_CONTRACTIBILITY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@contractible N' (@IMAGE (cart R M) (cart R N') f k)) = (@contractible M k). +Axiom thm_HOMEOMORPHIC_PUNCTURED_AFFINE_SPHERE_AFFINE : forall {M N' : Type'}, forall a : cart R N', forall r : R, forall b : cart R N', forall t : (cart R N') -> Prop, forall p : (cart R M) -> Prop, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@IN (cart R N') b (@sphere N' (@pair (cart R N') R a r))) /\ ((@affine N' t) /\ ((@IN (cart R N') a t) /\ ((@IN (cart R N') b t) /\ ((@affine M p) /\ ((@aff_dim N' t) = (int_add (@aff_dim M p) (Z_of_N (NUMERAL (BIT1 0%N))))))))))) -> @homeomorphic M N' (@DELETE (cart R N') (@INTER (cart R N') (@sphere N' (@pair (cart R N') R a r)) t) b) p. +Axiom thm_HOMEOMORPHIC_PUNCTURED_SPHERE_AFFINE_GEN : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, forall a : cart R N', ((@convex N' s) /\ ((@bounded N' s) /\ ((@IN (cart R N') a (@relative_frontier N' s)) /\ ((@affine M t) /\ ((@aff_dim N' s) = (int_add (@aff_dim M t) (Z_of_N (NUMERAL (BIT1 0%N))))))))) -> @homeomorphic M N' (@DELETE (cart R N') (@relative_frontier N' s) a) t. +Axiom thm_HOMEOMORPHIC_PUNCTURED_SPHERE_AFFINE : forall {M N' : Type'}, forall a : cart R N', forall r : R, forall b : cart R N', forall t : (cart R M) -> Prop, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@IN (cart R N') b (@sphere N' (@pair (cart R N') R a r))) /\ ((@affine M t) /\ ((int_add (@aff_dim M t) (Z_of_N (NUMERAL (BIT1 0%N)))) = (Z_of_N (@dimindex N' (@UNIV N'))))))) -> @homeomorphic M N' (@DELETE (cart R N') (@sphere N' (@pair (cart R N') R a r)) b) t. +Axiom thm_HOMEOMORPHIC_PUNCTURED_SPHERE_HYPERPLANE : forall {N' : Type'}, forall a : cart R N', forall r : R, forall b : cart R N', forall c : cart R N', forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@IN (cart R N') b (@sphere N' (@pair (cart R N') R a r))) /\ (~ (c = (@vec N' (NUMERAL 0%N)))))) -> @homeomorphic N' N' (@DELETE (cart R N') (@sphere N' (@pair (cart R N') R a r)) b) (@GSPEC (cart R N') (fun GEN_PVAR_5024 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5024 ((@dot N' c x) = d) x)). +Axiom thm_HOMEOMORPHIC_PUNCTURED_SPHERE_UNIV : forall {M N' : Type'}, forall a : cart R N', forall r : R, forall b : cart R N', ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@IN (cart R N') b (@sphere N' (@pair (cart R N') R a r))) /\ ((@dimindex N' (@UNIV N')) = (N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N)))))) -> @homeomorphic M N' (@DELETE (cart R N') (@sphere N' (@pair (cart R N') R a r)) b) (@UNIV (cart R M)). +Axiom thm_CONTRACTIBLE_PUNCTURED_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, forall b : cart R N', ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@IN (cart R N') b (@sphere N' (@pair (cart R N') R a r)))) -> @contractible N' (@DELETE (cart R N') (@sphere N' (@pair (cart R N') R a r)) b). +Axiom thm_CONTRACTIBLE_PUNCTURED_SPHERE_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ ((@bounded N' s) /\ (@IN (cart R N') a (@relative_frontier N' s)))) -> @contractible N' (@DELETE (cart R N') (@relative_frontier N' s) a). +Axiom thm_NULLHOMOTOPIC_NONSURJECTIVE_SPHERE_MAP_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@bounded N' s) /\ ((@continuous_on N' N' f (@relative_frontier N' s)) /\ (@PSUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@relative_frontier N' s)) (@relative_frontier N' s))))) -> exists a : cart R N', @homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@relative_frontier N' s)) (@subtopology (cart R N') (@euclidean N') (@relative_frontier N' s))) f (fun x : cart R N' => a). +Axiom thm_CONNECTED_PUNCTURED_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, forall b : cart R N', (@connected N' (@DELETE (cart R N') (@sphere N' (@pair (cart R N') R a r)) b)) = ((((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) /\ (Rlt (R_of_N (NUMERAL 0%N)) r)) -> @IN (cart R N') b (@sphere N' (@pair (cart R N') R a r))). +Axiom thm_CONNECTED_IN_SPHERE_DELETE_INTERIOR_POINT_EQ : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall r : R, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT1 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R a r))) u) /\ ((@IN (cart R N') b u) /\ ((@SUBSET (cart R N') u s) /\ (@SUBSET (cart R N') s (@sphere N' (@pair (cart R N') R a r))))))) -> (@connected N' (@DELETE (cart R N') s b)) = (@connected N' s). +Axiom thm_CONNECTED_OPEN_IN_SPHERE_DELETE_EQ : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall r : R, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT1 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R a r))) s)) -> (@connected N' (@DELETE (cart R N') s b)) = (@connected N' s). +Axiom thm_FINITE_COMPONENTS_PUNCTURED_CONNECTED_SUBSET_SPHERE : forall {N' : Type'}, forall r : R, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@connected N' s) /\ ((@SUBSET (cart R N') s (@sphere N' (@pair (cart R N') R a r))) /\ (@IN (cart R N') b (@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R a r))) s)))) -> @FINITE ((cart R N') -> Prop) (@components N' (@DELETE (cart R N') s b)). +Axiom thm_CARD_EQ_COMPONENTS_IN_COMPACTIFICATION : forall {M N' : Type'}, forall f : (cart R N') -> cart R M, forall g : (cart R M) -> cart R N', forall a : cart R N', forall r : R, forall s : (cart R N') -> Prop, forall z : cart R N', ((@homeomorphism N' M (@pair ((cart R N') -> Prop) ((cart R M) -> Prop) (@DELETE (cart R N') (@sphere N' (@pair (cart R N') R a r)) z) (@UNIV (cart R M))) (@pair ((cart R N') -> cart R M) ((cart R M) -> cart R N') f g)) /\ ((@SUBSET (cart R N') s (@sphere N' (@pair (cart R N') R a r))) /\ ((@IN (cart R N') z (@sphere N' (@pair (cart R N') R a r))) /\ (~ (@IN (cart R N') z (@closure N' s)))))) -> @eq_c ((cart R N') -> Prop) (Datatypes.sum N ((cart R M) -> Prop)) (@components N' (@DIFF (cart R N') (@sphere N' (@pair (cart R N') R a r)) s)) (@add_c ((cart R M) -> Prop) N (@INSERT N (NUMERAL (BIT1 0%N)) (@EMPTY N)) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_5027 : (cart R M) -> Prop => exists c : (cart R M) -> Prop, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_5027 ((@IN ((cart R M) -> Prop) c (@components M (@DIFF (cart R M) (@UNIV (cart R M)) (@IMAGE (cart R N') (cart R M) f s)))) /\ (@bounded M c)) c))). +Axiom thm_CONNECTED_COMPLEMENT_SUBSET_SIMPLE_PATH_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@simple_path N' g) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ (@SUBSET (cart R N') s (@path_image N' g)))) -> (@connected N' (@DIFF (cart R N') (@path_image N' g) s)) = (@connected N' s). +Axiom thm_CONNECTED_COMPLEMENT_SUBSET_CIRCLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall r : R, (((@dimindex N' (@UNIV N')) = (NUMERAL (BIT0 (BIT1 0%N)))) /\ (@SUBSET (cart R N') s (@sphere N' (@pair (cart R N') R a r)))) -> (@connected N' (@DIFF (cart R N') (@sphere N' (@pair (cart R N') R a r)) s)) = (@connected N' s). +Axiom thm_HOMEOMORPHIC_CLOSED_IN_CONVEX : forall {M N' : Type'}, forall s : (cart R M) -> Prop, (int_lt (@aff_dim M s) (Z_of_N (@dimindex N' (@UNIV N')))) -> exists u : (cart R N') -> Prop, exists t : (cart R N') -> Prop, (@convex N' u) /\ ((~ (u = (@EMPTY (cart R N')))) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ (@homeomorphic N' M s t))). +Axiom thm_LOCALLY_COMPACT_HOMEOMORPHIC_CLOSED : forall {M N' : Type'}, forall s : (cart R M) -> Prop, ((@locally M (@compact M) s) /\ (N.lt (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N')))) -> exists t : (cart R N') -> Prop, (@closed N' t) /\ (@homeomorphic N' M s t). +Axiom thm_SIMPLY_CONNECTED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t) /\ ((@simply_connected N' s) /\ ((@simply_connected N' t) /\ ((@path_connected N' (@INTER (cart R N') s t)) /\ (~ ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))))))))) -> @simply_connected N' (@UNION (cart R N') s t). +Axiom thm_dimension : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@dimension N' s) = (@COND Z (s = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (minimal (fun n : N => @dimension_le (cart R N') (@subtopology (cart R N') (@euclidean N') s) (Z_of_N n))))). +Axiom thm_DIMENSION_GE : forall {N' : Type'}, forall s : (cart R N') -> Prop, int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (@dimension N' s). +Axiom thm_DIMENSION_LE_IMP_GE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (int_le (@dimension N' s) n) -> int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n. +Axiom thm_DIMENSION_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@dimension N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@dimension N' s). +Axiom thm_DIMENSION_LINEAR_IMAGE : forall {M N' : Type'} (s : (cart R M) -> Prop), forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@dimension N' (@IMAGE (cart R M) (cart R N') f s)) = (@dimension M s). +Axiom thm_DIMENSION_LE_DIMINDEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, int_le (@dimension N' s) (Z_of_N (@dimindex N' (@UNIV N'))). +Axiom thm_DIMENSION_LE_MINUS1 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (int_le (@dimension N' s) (int_neg (Z_of_N (NUMERAL (BIT1 0%N))))) = (s = (@EMPTY (cart R N'))). +Axiom thm_DIMENSION_EQ_MINUS1 : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@dimension N' s) = (int_neg (Z_of_N (NUMERAL (BIT1 0%N))))) = (s = (@EMPTY (cart R N'))). +Axiom thm_DIMENSION_POS_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (int_le (Z_of_N (NUMERAL 0%N)) (@dimension N' s)) = (~ (s = (@EMPTY (cart R N')))). +Axiom thm_DIMENSION_EMPTY : forall {_1124559 : Type'}, (@dimension _1124559 (@EMPTY (cart R _1124559))) = (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_DIMENSION_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) -> int_le (@dimension N' s) (@dimension N' t). +Axiom thm_DIMENSION_LE_DISCRETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@GSPEC (cart R N') (fun GEN_PVAR_5030 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5030 (@limit_point_of N' x s) x)) = (@EMPTY (cart R N'))) -> int_le (@dimension N' s) (Z_of_N (NUMERAL 0%N)). +Axiom thm_DIMENSION_EQ_ZERO_DISCRETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((~ (s = (@EMPTY (cart R N')))) /\ ((@GSPEC (cart R N') (fun GEN_PVAR_5031 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5031 (@limit_point_of N' x s) x)) = (@EMPTY (cart R N')))) -> (@dimension N' s) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_DIMENSION_EQ_DISCRETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@GSPEC (cart R N') (fun GEN_PVAR_5032 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5032 (@limit_point_of N' x s) x)) = (@EMPTY (cart R N'))) -> (@dimension N' s) = (@COND Z (s = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (NUMERAL 0%N))). +Axiom thm_DIMENSION_LE_EQ_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (int_le (@dimension N' s) n) = ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (forall v : (cart R N') -> Prop, forall a : cart R N', ((@_open N' v) /\ ((@IN (cart R N') a v) /\ (@IN (cart R N') a s))) -> exists u : (cart R N') -> Prop, (@IN (cart R N') a u) /\ ((@SUBSET (cart R N') u v) /\ ((@_open N' u) /\ (int_le (@dimension N' (@frontier_of (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@INTER (cart R N') s u))) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N))))))))). +Axiom thm_DIMENSION_LE_EQ_LOCAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (int_le (@dimension N' s) n) = ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (forall v : (cart R N') -> Prop, forall a : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@IN (cart R N') a v)) -> exists u : (cart R N') -> Prop, (@IN (cart R N') a u) /\ ((@SUBSET (cart R N') u v) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (int_le (@dimension N' (@frontier_of (cart R N') (@subtopology (cart R N') (@euclidean N') s) u)) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N))))))))). +Axiom thm_DIMENSION_LE_EQ_GENERAL : forall {N' : Type'}, forall t : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall n : Z, (@SUBSET (cart R N') s t) -> (int_le (@dimension N' s) n) = ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (forall v : (cart R N') -> Prop, forall a : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ ((@IN (cart R N') a v) /\ (@IN (cart R N') a s))) -> exists u : (cart R N') -> Prop, (@IN (cart R N') a u) /\ ((@SUBSET (cart R N') u v) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) /\ (int_le (@dimension N' (@INTER (cart R N') s (@frontier_of (cart R N') (@subtopology (cart R N') (@euclidean N') t) u))) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N))))))))). +Axiom thm_DIMENSION_LE_EQ_LOCALLY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (int_le (@dimension N' s) n) = ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (@locally N' (fun u : (cart R N') -> Prop => (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (int_le (@dimension N' (@frontier_of (cart R N') (@subtopology (cart R N') (@euclidean N') s) u)) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N)))))) s)). +Axiom thm_LOCALLY_OPEN_AND_DIMENSION_LE : forall {_1125237 : Type'}, forall s : (cart R _1125237) -> Prop, forall n : Z, (int_le (@dimension _1125237 s) n) = ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (@locally _1125237 (fun u : (cart R _1125237) -> Prop => (@open_in (cart R _1125237) (@subtopology (cart R _1125237) (@euclidean _1125237) s) u) /\ (int_le (@dimension _1125237 u) n)) s)). +Axiom thm_DIMENSION_EQ_ON_NBDS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, ((~ (s = (@EMPTY (cart R N')))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@IN (cart R N') x u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@SUBSET (cart R N') u v) /\ ((@SUBSET (cart R N') v s) /\ ((@dimension N' v) = n)))))) -> (@dimension N' s) = n. +Axiom thm_LOCALLY_DIMENSION_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, ((~ (s = (@EMPTY (cart R N')))) /\ (@locally N' (fun u : (cart R N') -> Prop => (@dimension N' u) = n) s)) -> (@dimension N' s) = n. +Axiom thm_DIMENSION_EQ_ON_OPEN_SUBSETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, ((~ (s = (@EMPTY (cart R N')))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists u : (cart R N') -> Prop, (@IN (cart R N') x u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@dimension N' u) = n)))) -> (@dimension N' s) = n. +Axiom thm_DIMENSION_EQ_LOCALLY_CLOPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (int_le (@dimension N' s) (Z_of_N (NUMERAL 0%N))) = (@locally N' (fun u : (cart R N') -> Prop => (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u)) s). +Axiom thm_SMALL_INDUCTIVE_DIMENSION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (int_le (@dimension N' s) n) = ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (forall c : (cart R N') -> Prop, forall a : cart R N', ((@IN (cart R N') a s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c) /\ (~ (@IN (cart R N') a c)))) -> exists b : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) b) /\ ((int_le (@dimension N' b) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ ((@DISJOINT (cart R N') u v) /\ (((@UNION (cart R N') u v) = (@DIFF (cart R N') s b)) /\ ((@IN (cart R N') a u) /\ (@SUBSET (cart R N') c v))))))))). +Axiom thm_SMALL_IMP_DIMENSION_LE_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lt_c (cart R N') R s (@UNIV R)) -> int_le (@dimension N' s) (Z_of_N (NUMERAL 0%N)). +Axiom thm_COUNTABLE_IMP_DIMENSION_LE_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@COUNTABLE (cart R N') s) -> int_le (@dimension N' s) (Z_of_N (NUMERAL 0%N)). +Axiom thm_FINITE_IMP_DIMENSION_LE_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> int_le (@dimension N' s) (Z_of_N (NUMERAL 0%N)). +Axiom thm_DIMENSION_SING : forall {N' : Type'}, forall a : cart R N', (@dimension N' (@INSERT (cart R N') a (@EMPTY (cart R N')))) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_CONNECTED_DIMENSION_EQ_SING : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@connected N' s) -> ((@dimension N' s) = (Z_of_N (NUMERAL 0%N))) = (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N')))). +Axiom thm_DIMENSION_SUBSET_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (int_le n (@dimension N' s))) -> exists t : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ ((@SUBSET (cart R N') t s) /\ ((@dimension N' t) = n)). +Axiom thm_DIMENSION_UNION_LE_BASIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, int_le (@dimension N' (@UNION (cart R N') s t)) (int_add (@dimension N' s) (int_add (@dimension N' t) (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_DIMENSION_ZERO_REDUCTION_THEOREM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall v : N -> (cart R N') -> Prop, ((int_le (@dimension N' s) (Z_of_N (NUMERAL 0%N))) /\ (forall n : N, @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (v n))) -> exists u : N -> (cart R N') -> Prop, (forall n : N, @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (u n)) /\ ((forall n : N, @SUBSET (cart R N') (u n) (v n)) /\ ((@pairwise N (fun m : N => fun n : N => @DISJOINT (cart R N') (u m) (u n)) (@UNIV N)) /\ ((@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5033 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5033 (@IN N n (@UNIV N)) (u n)))) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5034 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5034 (@IN N n (@UNIV N)) (v n))))))). +Axiom thm_DIMENSION_ZERO_REDUCTION_THEOREM_2 : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((int_le (@dimension N' u) (Z_of_N (NUMERAL 0%N))) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t))) -> exists s' : (cart R N') -> Prop, exists t' : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s') /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t') /\ ((@SUBSET (cart R N') s' s) /\ ((@SUBSET (cart R N') t' t) /\ ((@DISJOINT (cart R N') s' t') /\ ((@UNION (cart R N') s' t') = (@UNION (cart R N') s t)))))). +Axiom thm_DIMENSION_ZERO_SEPARATION_THEOREM : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((int_le (@dimension N' u) (Z_of_N (NUMERAL 0%N))) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ (@DISJOINT (cart R N') s t)))) -> exists s' : (cart R N') -> Prop, exists t' : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s') /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s') /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t') /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t') /\ ((@SUBSET (cart R N') s s') /\ ((@SUBSET (cart R N') t t') /\ ((@DISJOINT (cart R N') s' t') /\ ((@UNION (cart R N') s' t') = u))))))). +Axiom thm_DIMENSION_LE_UNIONS_RELATIVE : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall c : ((cart R N') -> Prop) -> Prop, forall n : Z, ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ ((@COUNTABLE ((cart R N') -> Prop) c) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s c) -> (@relative_to (cart R N') (@fsigma N') u s) /\ (int_le (@dimension N' s) n)))) -> int_le (@dimension N' (@UNIONS (cart R N') c)) n. +Axiom thm_DIMENSION_LE_UNIONS : forall {N' : Type'}, forall c : ((cart R N') -> Prop) -> Prop, forall n : Z, ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ ((@COUNTABLE ((cart R N') -> Prop) c) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s c) -> (@fsigma N' s) /\ (int_le (@dimension N' s) n)))) -> int_le (@dimension N' (@UNIONS (cart R N') c)) n. +Axiom thm_DIMENSION_LE_UNION_RELATIVE : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall n : Z, ((@relative_to (cart R N') (@fsigma N') u s) /\ ((@relative_to (cart R N') (@fsigma N') u t) /\ ((int_le (@dimension N' s) n) /\ (int_le (@dimension N' t) n)))) -> int_le (@dimension N' (@UNION (cart R N') s t)) n. +Axiom thm_DIMENSION_LE_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall n : Z, ((@fsigma N' s) /\ ((@fsigma N' t) /\ ((int_le (@dimension N' s) n) /\ (int_le (@dimension N' t) n)))) -> int_le (@dimension N' (@UNION (cart R N') s t)) n. +Axiom thm_DIMENSION_LE_UNION_RELATIVE_GEN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall n : Z, ((((@relative_to (cart R N') (@fsigma N') u s) /\ ((@relative_to (cart R N') (@gdelta N') u s) /\ (@SUBSET (cart R N') t u))) \/ ((@relative_to (cart R N') (@fsigma N') u t) /\ ((@relative_to (cart R N') (@gdelta N') u t) /\ (@SUBSET (cart R N') s u)))) /\ ((int_le (@dimension N' s) n) /\ (int_le (@dimension N' t) n))) -> int_le (@dimension N' (@UNION (cart R N') s t)) n. +Axiom thm_DIMENSION_LE_UNION_GEN : forall {N' : Type'} (n : Z), forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((((@fsigma N' s) /\ (@gdelta N' s)) \/ ((@fsigma N' t) /\ (@gdelta N' t))) /\ ((int_le (@dimension N' s) n) /\ (int_le (@dimension N' t) n))) -> int_le (@dimension N' (@UNION (cart R N') s t)) n. +Axiom thm_DIMENSION_LE_UNION_CLOSED_IN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall n : Z, ((((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@SUBSET (cart R N') t u)) \/ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ (@SUBSET (cart R N') s u))) /\ ((int_le (@dimension N' s) n) /\ (int_le (@dimension N' t) n))) -> int_le (@dimension N' (@UNION (cart R N') s t)) n. +Axiom thm_DIMENSION_LE_UNIONS_ZERODIMENSIONAL : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> int_le (@dimension N' s) (Z_of_N (NUMERAL 0%N)))) -> int_le (@dimension N' (@UNIONS (cart R N') f)) (int_sub (Z_of_N (@CARD ((cart R N') -> Prop) f)) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_DIMENSION_LE_UNIONS_ZERODIMENSIONAL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (int_le (@dimension N' s) n) = (exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ ((int_le (Z_of_N (@CARD ((cart R N') -> Prop) f)) (int_add n (Z_of_N (NUMERAL (BIT1 0%N))))) /\ ((forall d : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) d f) -> int_le (@dimension N' d) (Z_of_N (NUMERAL 0%N))) /\ ((@UNIONS (cart R N') f) = s)))). +Axiom thm_DIMENSION_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@dimension N' (@INSERT (cart R N') a s)) = (@COND Z (s = (@EMPTY (cart R N'))) (Z_of_N (NUMERAL 0%N)) (@dimension N' s)). +Axiom thm_DIMENSION_DELETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@dimension N' (@DELETE (cart R N') s a)) = (@COND Z ((@DELETE (cart R N') s a) = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (@dimension N' s)). +Axiom thm_DIMENSION_LE_EQ_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (int_le (@dimension N' s) n) = (@COND Prop (s = (@EMPTY (cart R N'))) (int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) (forall v : (cart R N') -> Prop, forall a : cart R N', ((@_open N' v) /\ (@IN (cart R N') a v)) -> exists u : (cart R N') -> Prop, (@IN (cart R N') a u) /\ ((@SUBSET (cart R N') u v) /\ ((@_open N' u) /\ (int_le (@dimension N' (@INTER (cart R N') s (@frontier N' u))) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N))))))))). +Axiom thm_DIMENSION_PCROSS_LE : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (~ ((s = (@EMPTY (cart R M))) /\ (t = (@EMPTY (cart R N'))))) -> int_le (@dimension (finite_sum M N') (@PCROSS R M N' s t)) (int_add (@dimension M s) (@dimension N' t)). +Axiom thm_DIMENSION_PCROSS_EQ_0 : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@dimension (finite_sum M N') (@PCROSS R M N' s t)) = (Z_of_N (NUMERAL 0%N))) = (((@dimension M s) = (Z_of_N (NUMERAL 0%N))) /\ ((@dimension N' t) = (Z_of_N (NUMERAL 0%N)))). +Axiom thm_DIMENSION_SEPARATION_THEOREM : forall {N' : Type'}, forall t : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall n : Z, forall c : (cart R N') -> Prop, forall d : (cart R N') -> Prop, ((int_le (Z_of_N (NUMERAL 0%N)) n) /\ ((@SUBSET (cart R N') s t) /\ ((int_le (@dimension N' s) n) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) c) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) d) /\ (@DISJOINT (cart R N') c d)))))) -> exists b : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) b) /\ ((int_le (@dimension N' (@INTER (cart R N') b s)) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ ((@DISJOINT (cart R N') u v) /\ (((@UNION (cart R N') u v) = (@DIFF (cart R N') t b)) /\ ((@SUBSET (cart R N') c u) /\ (@SUBSET (cart R N') d v))))))). +Axiom thm_LARGE_INDUCTIVE_DIMENSION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (int_le (@dimension N' s) n) = (@COND Prop (s = (@EMPTY (cart R N'))) (int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) (forall c : (cart R N') -> Prop, forall d : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) d) /\ (@DISJOINT (cart R N') c d))) -> exists b : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) b) /\ ((int_le (@dimension N' b) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ ((@DISJOINT (cart R N') u v) /\ (((@UNION (cart R N') u v) = (@DIFF (cart R N') s b)) /\ ((@SUBSET (cart R N') c u) /\ (@SUBSET (cart R N') d v))))))))). +Axiom thm_TINY_INDUCTIVE_DIMENSION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (@locally N' (@compact N') s) -> (int_le (@dimension N' s) n) = (@COND Prop (s = (@EMPTY (cart R N'))) (int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) ((int_le (Z_of_N (NUMERAL 0%N)) n) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (~ (x = y)))) -> exists b : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) b) /\ ((int_le (@dimension N' b) (int_sub n (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (exists u : (cart R N') -> Prop, exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ ((@DISJOINT (cart R N') u v) /\ (((@UNION (cart R N') u v) = (@DIFF (cart R N') s b)) /\ ((@IN (cart R N') x u) /\ (@IN (cart R N') y v)))))))))). +Axiom thm_DIMENSION_LE_RATIONAL_COORDINATES : forall {N' : Type'}, forall n : N, int_le (@dimension N' (@GSPEC (cart R N') (fun GEN_PVAR_5057 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5057 (@HAS_SIZE N (@GSPEC N (fun GEN_PVAR_5056 : N => exists i : N, @SETSPEC N GEN_PVAR_5056 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (rational (@dollar R N' x i))) i)) n) x))) (Z_of_N (NUMERAL 0%N)). +Axiom thm_DIMENSION_EXACTLY_RATIONAL_COORDINATES : forall {N' : Type'}, forall n : N, ((N.le (NUMERAL (BIT1 0%N)) n) /\ (N.le n (@dimindex N' (@UNIV N')))) -> (@dimension N' (@GSPEC (cart R N') (fun GEN_PVAR_5059 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5059 (@HAS_SIZE N (@GSPEC N (fun GEN_PVAR_5058 : N => exists i : N, @SETSPEC N GEN_PVAR_5058 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (rational (@dollar R N' x i))) i)) n) x))) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_covering_space : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R M) -> Prop, forall p : (cart R M) -> cart R N', (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) = ((@continuous_on M N' p c) /\ (((@IMAGE (cart R M) (cart R N') p c) = s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> exists t : (cart R N') -> Prop, (@IN (cart R N') x t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (exists v : ((cart R M) -> Prop) -> Prop, ((@UNIONS (cart R M) v) = (@GSPEC (cart R M) (fun GEN_PVAR_5060 : cart R M => exists x' : cart R M, @SETSPEC (cart R M) GEN_PVAR_5060 ((@IN (cart R M) x' c) /\ (@IN (cart R N') (p x') t)) x'))) /\ ((forall u : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) u v) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) u) /\ ((@pairwise ((cart R M) -> Prop) (@DISJOINT (cart R M)) v) /\ (forall u : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) u v) -> exists q : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) u t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) p q))))))))). +Axiom thm_COVERING_SPACE_IMP_CONTINUOUS : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> @continuous_on M N' p c. +Axiom thm_COVERING_SPACE_IMP_SURJECTIVE : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> (@IMAGE (cart R M) (cart R N') p c) = s. +Axiom thm_HOMEOMORPHISM_IMP_COVERING_SPACE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) -> @covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') s f) t. +Axiom thm_COVERING_SPACE_LOCAL_HOMEOMORPHISM : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> forall x : cart R M, (@IN (cart R M) x c) -> exists t : (cart R M) -> Prop, exists u : (cart R N') -> Prop, (@IN (cart R M) x t) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) t) /\ ((@IN (cart R N') (p x) u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (exists q : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) t u) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) p q))))). +Axiom thm_COVERING_SPACE_LOCAL_HOMEOMORPHISM_ALT : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> forall y : cart R N', (@IN (cart R N') y s) -> exists x : cart R M, exists t : (cart R M) -> Prop, exists u : (cart R N') -> Prop, ((p x) = y) /\ ((@IN (cart R M) x t) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) t) /\ ((@IN (cart R N') y u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (exists q : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) t u) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) p q)))))). +Axiom thm_COVERING_SPACE_OPEN_MAP : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) t)) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@IMAGE (cart R M) (cart R N') p t). +Axiom thm_COVERING_SPACE_QUOTIENT_MAP : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u s) -> (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) (@GSPEC (cart R M) (fun GEN_PVAR_5063 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5063 ((@IN (cart R M) x c) /\ (@IN (cart R N') (p x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u). +Axiom thm_COVERING_SPACE_LOCALIZED_HOMEOMORPHISM : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> forall w : (cart R M) -> Prop, forall x : cart R M, ((@IN (cart R M) x w) /\ (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) w)) -> exists t : (cart R M) -> Prop, exists u : (cart R N') -> Prop, (@IN (cart R M) x t) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) t) /\ ((@IN (cart R N') (p x) u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@SUBSET (cart R M) t w) /\ (exists q : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) t u) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) p q)))))). +Axiom thm_COVERING_SPACE_LOCALIZED_HOMEOMORPHISM_ALT : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> forall w : (cart R N') -> Prop, forall y : cart R N', ((@IN (cart R N') y w) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) w)) -> exists x : cart R M, exists t : (cart R M) -> Prop, exists u : (cart R N') -> Prop, ((p x) = y) /\ ((@IN (cart R M) x t) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) t) /\ ((@IN (cart R N') y u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@SUBSET (cart R N') u w) /\ (exists q : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) t u) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) p q))))))). +Axiom thm_COVERING_SPACE_LOCALLY_HOMEOMORPHIC : forall {M N' : Type'}, forall P : ((cart R M) -> Prop) -> Prop, forall Q : ((cart R N') -> Prop) -> Prop, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((forall q : (cart R N') -> cart R M, forall u : (cart R M) -> Prop, forall v : (cart R N') -> Prop, ((~ (u = (@EMPTY (cart R M)))) /\ ((@SUBSET (cart R M) u c) /\ ((@SUBSET (cart R N') v s) /\ ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) u v) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) p q)) /\ (P u))))) -> Q v) /\ (@locally M P c))) -> @locally N' Q s. +Axiom thm_COVERING_SPACE_LOCALLY_HOMEOMORPHIC_EQ : forall {M N' : Type'}, forall P : ((cart R M) -> Prop) -> Prop, forall Q : ((cart R N') -> Prop) -> Prop, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ (forall q : (cart R N') -> cart R M, forall u : (cart R M) -> Prop, forall v : (cart R N') -> Prop, ((~ (u = (@EMPTY (cart R M)))) /\ ((@SUBSET (cart R M) u c) /\ ((@SUBSET (cart R N') v s) /\ (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) u v) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) p q))))) -> (P u) = (Q v))) -> (@locally M P c) = (@locally N' Q s). +Axiom thm_COVERING_SPACE_LOCALLY : forall {M N' : Type'}, forall P : ((cart R M) -> Prop) -> Prop, forall Q : ((cart R N') -> Prop) -> Prop, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t c) /\ (P t)) -> Q (@IMAGE (cart R M) (cart R N') p t)) /\ (@locally M P c))) -> @locally N' Q s. +Axiom thm_COVERING_SPACE_LOCALLY_EQ : forall {M N' : Type'}, forall P : ((cart R M) -> Prop) -> Prop, forall Q : ((cart R N') -> Prop) -> Prop, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t c) /\ (P t)) -> Q (@IMAGE (cart R M) (cart R N') p t)) /\ (forall q : (cart R N') -> cart R M, forall u : (cart R N') -> Prop, ((@SUBSET (cart R N') u s) /\ ((@continuous_on N' M q u) /\ (Q u))) -> P (@IMAGE (cart R N') (cart R M) q u)))) -> (@locally N' Q s) = (@locally M P c). +Axiom thm_COVERING_SPACE_LOCALLY_COMPACT_EQ : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> (@locally N' (@compact N') s) = (@locally M (@compact M) c). +Axiom thm_COVERING_SPACE_LOCALLY_CONNECTED_EQ : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> (@locally N' (@connected N') s) = (@locally M (@connected M) c). +Axiom thm_COVERING_SPACE_LOCALLY_PATH_CONNECTED_EQ : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> (@locally N' (@path_connected N') s) = (@locally M (@path_connected M) c). +Axiom thm_COVERING_SPACE_LOCALLY_COMPACT : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ (@locally M (@compact M) c)) -> @locally N' (@compact N') s. +Axiom thm_COVERING_SPACE_LOCALLY_CONNECTED : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ (@locally M (@connected M) c)) -> @locally N' (@connected N') s. +Axiom thm_COVERING_SPACE_LOCALLY_PATH_CONNECTED : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ (@locally M (@path_connected M) c)) -> @locally N' (@path_connected N') s. +Axiom thm_COVERING_SPACE_LIFT_UNIQUE_GEN : forall {M N' P : Type'}, forall p : (cart R M) -> cart R N', forall f : (cart R P) -> cart R N', forall g1 : (cart R P) -> cart R M, forall g2 : (cart R P) -> cart R M, forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R P) -> Prop, forall u : (cart R P) -> Prop, forall a : cart R P, forall x : cart R P, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@continuous_on P N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') f t) s) /\ ((@continuous_on P M g1 t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g1 t) c) /\ ((forall x' : cart R P, (@IN (cart R P) x' t) -> (f x') = (p (g1 x'))) /\ ((@continuous_on P M g2 t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g2 t) c) /\ ((forall x' : cart R P, (@IN (cart R P) x' t) -> (f x') = (p (g2 x'))) /\ ((@IN ((cart R P) -> Prop) u (@components P t)) /\ ((@IN (cart R P) a u) /\ (((g1 a) = (g2 a)) /\ (@IN (cart R P) x u))))))))))))) -> (g1 x) = (g2 x). +Axiom thm_COVERING_SPACE_LIFT_UNIQUE : forall {M N' P : Type'}, forall p : (cart R M) -> cart R N', forall f : (cart R P) -> cart R N', forall g1 : (cart R P) -> cart R M, forall g2 : (cart R P) -> cart R M, forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R P) -> Prop, forall a : cart R P, forall x : cart R P, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@continuous_on P N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') f t) s) /\ ((@continuous_on P M g1 t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g1 t) c) /\ ((forall x' : cart R P, (@IN (cart R P) x' t) -> (f x') = (p (g1 x'))) /\ ((@continuous_on P M g2 t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g2 t) c) /\ ((forall x' : cart R P, (@IN (cart R P) x' t) -> (f x') = (p (g2 x'))) /\ ((@connected P t) /\ ((@IN (cart R P) a t) /\ (((g1 a) = (g2 a)) /\ (@IN (cart R P) x t))))))))))))) -> (g1 x) = (g2 x). +Axiom thm_COVERING_SPACE_LIFT_UNIQUE_IDENTITY : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall f : (cart R M) -> cart R M, forall s : (cart R N') -> Prop, forall a : cart R M, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path_connected M c) /\ ((@continuous_on M M f c) /\ ((@SUBSET (cart R M) (@IMAGE (cart R M) (cart R M) f c) c) /\ ((forall x : cart R M, (@IN (cart R M) x c) -> (p (f x)) = (p x)) /\ ((@IN (cart R M) a c) /\ ((f a) = a))))))) -> forall x : cart R M, (@IN (cart R M) x c) -> (f x) = x. +Axiom thm_COVERING_SPACE_LIFT_HOMOTOPY : forall {M N' P : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall h : (cart R (finite_sum unit P)) -> cart R N', forall f : (cart R P) -> cart R M, forall u : (cart R P) -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@continuous_on (finite_sum unit P) N' h (@PCROSS R unit P (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) u)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum unit P)) (cart R N') h (@PCROSS R unit P (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) u)) s) /\ ((forall y : cart R P, (@IN (cart R P) y u) -> (h (@pastecart R unit P (@vec unit (NUMERAL 0%N)) y)) = (p (f y))) /\ ((@continuous_on P M f u) /\ (@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) f u) c)))))) -> exists k : (cart R (finite_sum unit P)) -> cart R M, (@continuous_on (finite_sum unit P) M k (@PCROSS R unit P (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) u)) /\ ((@SUBSET (cart R M) (@IMAGE (cart R (finite_sum unit P)) (cart R M) k (@PCROSS R unit P (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) u)) c) /\ ((forall y : cart R P, (@IN (cart R P) y u) -> (k (@pastecart R unit P (@vec unit (NUMERAL 0%N)) y)) = (f y)) /\ (forall z : cart R (finite_sum unit P), (@IN (cart R (finite_sum unit P)) z (@PCROSS R unit P (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) u)) -> (h z) = (p (k z))))). +Axiom thm_COVERING_SPACE_LIFT_HOMOTOPIC_FUNCTION : forall {M N' P : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall f : (cart R P) -> cart R N', forall f' : (cart R P) -> cart R N', forall g : (cart R P) -> cart R M, forall u : (cart R P) -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@continuous_on P M g u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g u) c) /\ ((forall y : cart R P, (@IN (cart R P) y u) -> (p (g y)) = (f y)) /\ (@homotopic_with (cart R N') (cart R P) (fun x : (cart R P) -> cart R N' => True) (@pair (Topology (cart R P)) (Topology (cart R N')) (@subtopology (cart R P) (@euclidean P) u) (@subtopology (cart R N') (@euclidean N') s)) f f'))))) -> exists g' : (cart R P) -> cart R M, (@continuous_on P M g' u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g' u) c) /\ (forall y : cart R P, (@IN (cart R P) y u) -> (p (g' y)) = (f' y))). +Axiom thm_COVERING_SPACE_LIFT_INESSENTIAL_FUNCTION : forall {M N' P : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall f : (cart R P) -> cart R N', forall a : cart R N', forall u : (cart R P) -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ (@homotopic_with (cart R N') (cart R P) (fun x : (cart R P) -> cart R N' => True) (@pair (Topology (cart R P)) (Topology (cart R N')) (@subtopology (cart R P) (@euclidean P) u) (@subtopology (cart R N') (@euclidean N') s)) f (fun x : cart R P => a))) -> exists g : (cart R P) -> cart R M, (@continuous_on P M g u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g u) c) /\ (forall y : cart R P, (@IN (cart R P) y u) -> (p (g y)) = (f y))). +Axiom thm_COVERING_SPACE_LIFT_HOMOTOPY_ALT : forall {M N' P : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall h : (cart R (finite_sum P unit)) -> cart R N', forall f : (cart R P) -> cart R M, forall u : (cart R P) -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@continuous_on (finite_sum P unit) N' h (@PCROSS R P unit u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum P unit)) (cart R N') h (@PCROSS R P unit u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) s) /\ ((forall y : cart R P, (@IN (cart R P) y u) -> (h (@pastecart R P unit y (@vec unit (NUMERAL 0%N)))) = (p (f y))) /\ ((@continuous_on P M f u) /\ (@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) f u) c)))))) -> exists k : (cart R (finite_sum P unit)) -> cart R M, (@continuous_on (finite_sum P unit) M k (@PCROSS R P unit u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) /\ ((@SUBSET (cart R M) (@IMAGE (cart R (finite_sum P unit)) (cart R M) k (@PCROSS R P unit u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) c) /\ ((forall y : cart R P, (@IN (cart R P) y u) -> (k (@pastecart R P unit y (@vec unit (NUMERAL 0%N)))) = (f y)) /\ (forall z : cart R (finite_sum P unit), (@IN (cart R (finite_sum P unit)) z (@PCROSS R P unit u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> (h z) = (p (k z))))). +Axiom thm_COVERING_SPACE_LIFT_PATH_STRONG : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall g : (cart R unit) -> cart R N', forall a : cart R M, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path N' g) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ (((@pathstart N' g) = (p a)) /\ (@IN (cart R M) a c))))) -> exists h : (cart R unit) -> cart R M, (@path M h) /\ ((@SUBSET (cart R M) (@path_image M h) c) /\ (((@pathstart M h) = a) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p (h t)) = (g t)))). +Axiom thm_COVERING_SPACE_LIFT_PATH : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall g : (cart R unit) -> cart R N', ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path N' g) /\ (@SUBSET (cart R N') (@path_image N' g) s))) -> exists h : (cart R unit) -> cart R M, (@path M h) /\ ((@SUBSET (cart R M) (@path_image M h) c) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p (h t)) = (g t))). +Axiom thm_COVERING_SPACE_LIFT_HOMOTOPIC_PATHS : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', forall h1' : (cart R unit) -> cart R M, forall h2' : (cart R unit) -> cart R M, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path N' g1) /\ ((@SUBSET (cart R N') (@path_image N' g1) s) /\ ((@path N' g2) /\ ((@SUBSET (cart R N') (@path_image N' g2) s) /\ ((@homotopic_paths N' s g1 g2) /\ ((@path M h1') /\ ((@SUBSET (cart R M) (@path_image M h1') c) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p (h1' t)) = (g1 t)) /\ ((@path M h2') /\ ((@SUBSET (cart R M) (@path_image M h2') c) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p (h2' t)) = (g2 t)) /\ ((@pathstart M h1') = (@pathstart M h2')))))))))))))) -> @homotopic_paths M c h1' h2'. +Axiom thm_COVERING_SPACE_MONODROMY : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', forall h1' : (cart R unit) -> cart R M, forall h2' : (cart R unit) -> cart R M, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path N' g1) /\ ((@SUBSET (cart R N') (@path_image N' g1) s) /\ ((@path N' g2) /\ ((@SUBSET (cart R N') (@path_image N' g2) s) /\ ((@homotopic_paths N' s g1 g2) /\ ((@path M h1') /\ ((@SUBSET (cart R M) (@path_image M h1') c) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p (h1' t)) = (g1 t)) /\ ((@path M h2') /\ ((@SUBSET (cart R M) (@path_image M h2') c) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p (h2' t)) = (g2 t)) /\ ((@pathstart M h1') = (@pathstart M h2')))))))))))))) -> (@pathfinish M h1') = (@pathfinish M h2'). +Axiom thm_COVERING_SPACE_LIFT_HOMOTOPIC_PATH : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R M, forall a : cart R M, forall b : cart R M, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@homotopic_paths N' s f f') /\ ((@path M g) /\ ((@SUBSET (cart R M) (@path_image M g) c) /\ (((@pathstart M g) = a) /\ (((@pathfinish M g) = b) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p (g t)) = (f t)))))))) -> exists g' : (cart R unit) -> cart R M, (@path M g') /\ ((@SUBSET (cart R M) (@path_image M g') c) /\ (((@pathstart M g') = a) /\ (((@pathfinish M g') = b) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p (g' t)) = (f' t))))). +Axiom thm_COVERING_SPACE_INESSENTIAL_LOOP_LIFT_IS_LOOP : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R M, forall a : cart R N', ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path N' g) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ ((@homotopic_paths N' s g (@linepath N' (@pair (cart R N') (cart R N') a a))) /\ ((@path M h) /\ ((@SUBSET (cart R M) (@path_image M h) c) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p (h t)) = (g t))))))))) -> (@pathfinish M h) = (@pathstart M h). +Axiom thm_COVERING_SPACE_SIMPLY_CONNECTED_LOOP_LIFT_IS_LOOP : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R M, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@simply_connected N' s) /\ ((@path N' g) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ ((@path M h) /\ ((@SUBSET (cart R M) (@path_image M h) c) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p (h t)) = (g t))))))))) -> (@pathfinish M h) = (@pathstart M h). +Axiom thm_COVERING_SPACE_HOMOTOPIC_PATHS_CANCEL : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall g : (cart R unit) -> cart R M, forall h : (cart R unit) -> cart R M, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path M g) /\ ((@SUBSET (cart R M) (@path_image M g) c) /\ ((@path M h) /\ ((@SUBSET (cart R M) (@path_image M h) c) /\ (((@pathstart M g) = (@pathstart M h)) /\ (@homotopic_paths N' s (@o (cart R unit) (cart R M) (cart R N') p g) (@o (cart R unit) (cart R M) (cart R N') p h)))))))) -> @homotopic_paths M c g h. +Axiom thm_COVERING_SPACE_HOMOTOPIC_PATHS_CANCEL_EQ : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall g : (cart R unit) -> cart R M, forall h : (cart R unit) -> cart R M, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path M g) /\ ((@SUBSET (cart R M) (@path_image M g) c) /\ ((@path M h) /\ ((@SUBSET (cart R M) (@path_image M h) c) /\ ((@pathstart M g) = (@pathstart M h))))))) -> (@homotopic_paths N' s (@o (cart R unit) (cart R M) (cart R N') p g) (@o (cart R unit) (cart R M) (cart R N') p h)) = (@homotopic_paths M c g h). +Axiom thm_COVERING_SPACE_LIFT_GENERAL : forall {M N' P : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall f : (cart R P) -> cart R N', forall u : (cart R P) -> Prop, forall a : cart R M, forall z : cart R P, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@IN (cart R M) a c) /\ ((@IN (cart R P) z u) /\ ((@path_connected P u) /\ ((@locally P (@path_connected P) u) /\ ((@continuous_on P N' f u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') f u) s) /\ (((f z) = (p a)) /\ (forall r : (cart R unit) -> cart R P, ((@path P r) /\ ((@SUBSET (cart R P) (@path_image P r) u) /\ (((@pathstart P r) = z) /\ ((@pathfinish P r) = z)))) -> exists q : (cart R unit) -> cart R M, (@path M q) /\ ((@SUBSET (cart R M) (@path_image M q) c) /\ (((@pathstart M q) = a) /\ (((@pathfinish M q) = a) /\ (@homotopic_paths N' s (@o (cart R unit) (cart R P) (cart R N') f r) (@o (cart R unit) (cart R M) (cart R N') p q)))))))))))))) -> exists g : (cart R P) -> cart R M, (@continuous_on P M g u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g u) c) /\ (((g z) = a) /\ (forall y : cart R P, (@IN (cart R P) y u) -> (p (g y)) = (f y)))). +Axiom thm_COVERING_SPACE_LIFT_STRONGER : forall {M N' P : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall f : (cart R P) -> cart R N', forall u : (cart R P) -> Prop, forall a : cart R M, forall z : cart R P, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@IN (cart R M) a c) /\ ((@IN (cart R P) z u) /\ ((@path_connected P u) /\ ((@locally P (@path_connected P) u) /\ ((@continuous_on P N' f u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') f u) s) /\ (((f z) = (p a)) /\ (forall r : (cart R unit) -> cart R P, ((@path P r) /\ ((@SUBSET (cart R P) (@path_image P r) u) /\ (((@pathstart P r) = z) /\ ((@pathfinish P r) = z)))) -> exists b : cart R N', @homotopic_paths N' s (@o (cart R unit) (cart R P) (cart R N') f r) (@linepath N' (@pair (cart R N') (cart R N') b b))))))))))) -> exists g : (cart R P) -> cart R M, (@continuous_on P M g u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g u) c) /\ (((g z) = a) /\ (forall y : cart R P, (@IN (cart R P) y u) -> (p (g y)) = (f y)))). +Axiom thm_COVERING_SPACE_LIFT_STRONG : forall {M N' P : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall f : (cart R P) -> cart R N', forall u : (cart R P) -> Prop, forall a : cart R M, forall z : cart R P, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@IN (cart R M) a c) /\ ((@IN (cart R P) z u) /\ ((@simply_connected P u) /\ ((@locally P (@path_connected P) u) /\ ((@continuous_on P N' f u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') f u) s) /\ ((f z) = (p a))))))))) -> exists g : (cart R P) -> cart R M, (@continuous_on P M g u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g u) c) /\ (((g z) = a) /\ (forall y : cart R P, (@IN (cart R P) y u) -> (p (g y)) = (f y)))). +Axiom thm_COVERING_SPACE_LIFT : forall {M N' P : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall f : (cart R P) -> cart R N', forall u : (cart R P) -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@simply_connected P u) /\ ((@locally P (@path_connected P) u) /\ ((@continuous_on P N' f u) /\ (@SUBSET (cart R N') (@IMAGE (cart R P) (cart R N') f u) s))))) -> exists g : (cart R P) -> cart R M, (@continuous_on P M g u) /\ ((@SUBSET (cart R M) (@IMAGE (cart R P) (cart R M) g u) c) /\ (forall y : cart R P, (@IN (cart R P) y u) -> (p (g y)) = (f y))). +Axiom thm_CARD_EQ_COVERING_MAP_FIBRES : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path_connected N' s) /\ ((@IN (cart R N') a s) /\ (@IN (cart R N') b s)))) -> @eq_c (cart R M) (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_5080 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5080 ((@IN (cart R M) x c) /\ ((p x) = a)) x)) (@GSPEC (cart R M) (fun GEN_PVAR_5081 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5081 ((@IN (cart R M) x c) /\ ((p x) = b)) x)). +Axiom thm_COVERING_SPACE_INJECTIVE : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path_connected M c) /\ (@simply_connected N' s))) -> forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x c) /\ ((@IN (cart R M) y c) /\ ((p x) = (p y)))) -> x = y. +Axiom thm_COVERING_SPACE_HOMEOMORPHISM : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path_connected M c) /\ (@simply_connected N' s))) -> exists q : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) c s) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) p q). +Axiom thm_COVERING_SPACE_FIBRE_NO_LIMPT : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall a : cart R M, forall b : cart R N', ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ (@IN (cart R M) a c)) -> ~ (@limit_point_of M a (@GSPEC (cart R M) (fun GEN_PVAR_5082 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5082 ((@IN (cart R M) x c) /\ ((p x) = b)) x))). +Axiom thm_COVERING_SPACE_COUNTABLE_SHEETS : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall b : cart R N', (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> @COUNTABLE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_5083 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5083 ((@IN (cart R M) x c) /\ ((p x) = b)) x)). +Axiom thm_COVERING_SPACE_FINITE_EQ_COMPACT_FIBRE : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall b : cart R N', (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> (@FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_5086 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5086 ((@IN (cart R M) x c) /\ ((p x) = b)) x))) = (@compact M (@GSPEC (cart R M) (fun GEN_PVAR_5087 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5087 ((@IN (cart R M) x c) /\ ((p x) = b)) x))). +Axiom thm_COVERING_SPACE_CLOSED_MAP : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((forall b : cart R N', (@IN (cart R N') b s) -> @FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_5089 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5089 ((@IN (cart R M) x c) /\ ((p x) = b)) x))) /\ (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) t))) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@IMAGE (cart R M) (cart R N') p t). +Axiom thm_COVERING_SPACE_FINITE_SHEETS_EQ_CLOSED_MAP_STRONG : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ (forall b : cart R N', (@IN (cart R N') b s) -> @limit_point_of N' b s)) -> (forall b : cart R N', (@IN (cart R N') b s) -> @FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_5090 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5090 ((@IN (cart R M) x c) /\ ((p x) = b)) x))) = (forall t : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) t) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@IMAGE (cart R M) (cart R N') p t)). +Axiom thm_COVERING_SPACE_FINITE_SHEETS_EQ_CLOSED_MAP : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@connected N' s) /\ (~ (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N'))))))) -> (forall b : cart R N', (@IN (cart R N') b s) -> @FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_5091 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5091 ((@IN (cart R M) x c) /\ ((p x) = b)) x))) = (forall t : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) t) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@IMAGE (cart R M) (cart R N') p t)). +Axiom thm_COVERING_SPACE_FINITE_SHEETS_EQ_PROPER_MAP : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> (forall b : cart R N', (@IN (cart R N') b s) -> @FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_5092 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5092 ((@IN (cart R M) x c) /\ ((p x) = b)) x))) = (forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k s) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_5093 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5093 ((@IN (cart R M) x c) /\ (@IN (cart R N') (p x) k)) x))). +Axiom thm_COVERING_SPACE_FINITE_SHEETS : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall b : cart R N', ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ (@compact M c)) -> @FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_5094 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5094 ((@IN (cart R M) x c) /\ ((p x) = b)) x)). +Axiom thm_COVERING_SPACE_COMPACT : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> (@compact M c) = ((@compact N' s) /\ (forall b : cart R N', (@IN (cart R N') b s) -> @FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_5095 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5095 ((@IN (cart R M) x c) /\ ((p x) = b)) x)))). +Axiom thm_PROPER_LOCAL_HOMEOMORPHISM_IMP_COVERING_MAP : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, (((@IMAGE (cart R M) (cart R N') p c) = s) /\ ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k s) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_5110 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5110 ((@IN (cart R M) x c) /\ (@IN (cart R N') (p x) k)) x))) /\ (forall x : cart R M, (@IN (cart R M) x c) -> exists t : (cart R M) -> Prop, exists u : (cart R N') -> Prop, exists q : (cart R N') -> cart R M, (@IN (cart R M) x t) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) t u) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) p q))))))) -> @covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s. +Axiom thm_CLOSED_LOCAL_HOMEOMORPHISM_IMP_COVERING_MAP : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((forall x : cart R M, ((@connected_component M c x) = (@INSERT (cart R M) x (@EMPTY (cart R M)))) -> c = (@INSERT (cart R M) x (@EMPTY (cart R M)))) /\ (((@IMAGE (cart R M) (cart R N') p c) = s) /\ ((forall k : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) k) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@IMAGE (cart R M) (cart R N') p k)) /\ (forall x : cart R M, (@IN (cart R M) x c) -> exists t : (cart R M) -> Prop, exists u : (cart R N') -> Prop, exists q : (cart R N') -> cart R M, (@IN (cart R M) x t) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) t u) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) p q)))))))) -> @covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s. +Axiom thm_PROPER_LOCAL_HOMEOMORPHISM_GLOBAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@path_connected M s) /\ ((@simply_connected N' t) /\ (((s = (@EMPTY (cart R M))) -> t = (@EMPTY (cart R N'))) /\ ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_5111 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5111 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists u : (cart R M) -> Prop, exists v : (cart R N') -> Prop, exists q : (cart R N') -> cart R M, (@IN (cart R M) x u) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) u v) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f q))))))))) -> exists g : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g). +Axiom thm_CLOSED_LOCAL_HOMEOMORPHISM_GLOBAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@path_connected M s) /\ ((@simply_connected N' t) /\ (((s = (@EMPTY (cart R M))) -> t = (@EMPTY (cart R N'))) /\ ((forall c : (cart R M) -> Prop, (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) c) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f c)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists u : (cart R M) -> Prop, exists v : (cart R N') -> Prop, exists g : (cart R N') -> cart R M, (@IN (cart R M) x u) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) v) /\ (@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) u v) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g))))))))) -> exists g : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g). +Axiom thm_PROPER_LOCALLY_INJECTIVE_OPEN_IMP_COVERING_MAP : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@continuous_on M N' p c) /\ (((@IMAGE (cart R M) (cart R N') p c) = s) /\ ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k s) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_5112 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5112 ((@IN (cart R M) x c) /\ (@IN (cart R N') (p x) k)) x))) /\ ((forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@IMAGE (cart R M) (cart R N') p u)) /\ (forall x : cart R M, (@IN (cart R M) x c) -> exists t : (cart R M) -> Prop, (@IN (cart R M) x t) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) t) /\ (forall y : cart R M, forall z : cart R M, ((@IN (cart R M) y t) /\ ((@IN (cart R M) z t) /\ ((p y) = (p z)))) -> y = z))))))) -> @covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s. +Axiom thm_PROPER_LOCALLY_INJECTIVE_OPEN_IMP_COVERING_MAP_GEN : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@continuous_on M N' p c) /\ (((@IMAGE (cart R M) (cart R N') p c) = s) /\ ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k s) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_5113 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5113 ((@IN (cart R M) x c) /\ (@IN (cart R N') (p x) k)) x))) /\ ((forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) u) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) (@GSPEC (cart R M) (fun GEN_PVAR_5114 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5114 ((@IN (cart R M) x c) /\ (@IN (cart R N') (p x) (@IMAGE (cart R M) (cart R N') p u))) x))) /\ (forall x : cart R M, (@IN (cart R M) x c) -> exists t : (cart R M) -> Prop, (@IN (cart R M) x t) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) c) t) /\ (forall y : cart R M, forall z : cart R M, ((@IN (cart R M) y t) /\ ((@IN (cart R M) z t) /\ ((p y) = (p z)))) -> y = z))))))) -> @covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s. +Axiom thm_PROPER_LOCALLY_INJECTIVE_OPEN_IMP_HOMEOMORPHISM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@path_connected M s) /\ ((@simply_connected N' t) /\ ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_5115 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5115 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x))) /\ ((forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists u : (cart R M) -> Prop, (@IN (cart R M) x u) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ (forall y : cart R M, forall z : cart R M, ((@IN (cart R M) y u) /\ ((@IN (cart R M) z u) /\ ((f y) = (f z)))) -> y = z))))))))) -> exists g : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g). +Axiom thm_PROPER_LOCALLY_INJECTIVE_OPEN_IMP_HOMEOMORPHISM_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@path_connected M s) /\ ((@simply_connected N' t) /\ ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((forall k : (cart R N') -> Prop, ((@SUBSET (cart R N') k t) /\ (@compact N' k)) -> @compact M (@GSPEC (cart R M) (fun GEN_PVAR_5116 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5116 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) k)) x))) /\ ((forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) (@GSPEC (cart R M) (fun GEN_PVAR_5117 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5117 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) (@IMAGE (cart R M) (cart R N') f u))) x))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists u : (cart R M) -> Prop, (@IN (cart R M) x u) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ (forall y : cart R M, forall z : cart R M, ((@IN (cart R M) y u) /\ ((@IN (cart R M) z u) /\ ((f y) = (f z)))) -> y = z))))))))) -> exists g : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g). +Axiom thm_UNIVERSAL_COVERING_SPACE : forall {M N' P : Type'}, forall c : (cart R M) -> Prop, forall p : (cart R M) -> cart R P, forall c' : (cart R N') -> Prop, forall p' : (cart R N') -> cart R P, forall s : (cart R P) -> Prop, ((@covering_space M P (@pair ((cart R M) -> Prop) ((cart R M) -> cart R P) c p) s) /\ ((@covering_space N' P (@pair ((cart R N') -> Prop) ((cart R N') -> cart R P) c' p') s) /\ ((@locally M (@path_connected M) c) /\ ((@simply_connected M c) /\ (@connected N' c'))))) -> exists q : (cart R M) -> cart R N', (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c q) c') /\ (forall x : cart R M, (@IN (cart R M) x c) -> (p' (q x)) = (p x)). +Axiom thm_CARD_EQ_FUNDAMENTAL_GROUP_COVERING_SPACE_ALT : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall a : cart R M, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path_connected M c) /\ (@IN (cart R M) a c))) -> @eq_c (((cart R unit) -> cart R N') -> Prop) (((cart R unit) -> cart R M) -> Prop) (@fundamental_group N' (@pair ((cart R N') -> Prop) (cart R N') s (p a))) (@GSPEC (((cart R unit) -> cart R M) -> Prop) (fun GEN_PVAR_5133 : ((cart R unit) -> cart R M) -> Prop => exists g : (cart R unit) -> cart R M, @SETSPEC (((cart R unit) -> cart R M) -> Prop) GEN_PVAR_5133 ((@path M g) /\ ((@SUBSET (cart R M) (@path_image M g) c) /\ (((@pathstart M g) = a) /\ ((p (@pathfinish M g)) = (p a))))) (@homotopic_paths M c g))). +Axiom thm_CARD_EQ_FUNDAMENTAL_GROUP_COVERING_SPACE : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R N') -> Prop, forall a : cart R M, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ ((@path_connected M c) /\ (@IN (cart R M) a c))) -> @eq_c (((cart R unit) -> cart R N') -> Prop) (prod (((cart R unit) -> cart R M) -> Prop) (cart R M)) (@fundamental_group N' (@pair ((cart R N') -> Prop) (cart R N') s (p a))) (@mul_c (cart R M) (((cart R unit) -> cart R M) -> Prop) (@fundamental_group M (@pair ((cart R M) -> Prop) (cart R M) c a)) (@GSPEC (cart R M) (fun GEN_PVAR_5135 : cart R M => exists a' : cart R M, @SETSPEC (cart R M) GEN_PVAR_5135 ((@IN (cart R M) a' c) /\ ((p a') = (p a))) a'))). +Axiom thm_COVERING_SPACE_SELF_FINITE_FUNDAMENTAL_GROUP : forall {N' : Type'}, forall p : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall a : cart R N', ((@covering_space N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> cart R N') s p) s) /\ ((@path_connected N' s) /\ ((@IN (cart R N') a s) /\ (@FINITE (((cart R unit) -> cart R N') -> Prop) (@fundamental_group N' (@pair ((cart R N') -> Prop) (cart R N') s a)))))) -> exists q : (cart R N') -> cart R N', @homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s s) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') p q). +Axiom thm_HOMEOMORPHIC_SUBSPACE_EUCLIDEAN_SPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : N, (@subspace N' s) -> (@homeomorphic_space (cart R N') (N -> R) (@subtopology (cart R N') (@euclidean N') s) (euclidean_space n)) = ((@dim N' s) = n). +Axiom thm_HOMEOMORPHIC_SUBSPACE_EUCLIDEAN_SPACE_DIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> @homeomorphic_space (cart R N') (N -> R) (@subtopology (cart R N') (@euclidean N') s) (euclidean_space (@dim N' s)). +Axiom thm_HOMEOMORPHIC_SUBSPACES_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@subspace M s) /\ (@subspace N' t)) -> (@homeomorphic N' M s t) = ((@dim M s) = (@dim N' t)). +Axiom thm_HOMEOMORPHIC_AFFINE_EUCLIDEAN_SPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : N, (@affine N' s) -> (@homeomorphic_space (cart R N') (N -> R) (@subtopology (cart R N') (@euclidean N') s) (euclidean_space n)) = ((@aff_dim N' s) = (Z_of_N n)). +Axiom thm_HOMEOMORPHIC_AFFINE_SETS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@affine M s) /\ (@affine N' t)) -> (@homeomorphic N' M s t) = ((@aff_dim M s) = (@aff_dim N' t)). +Axiom thm_INVARIANCE_OF_DOMAIN_SUBSPACES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall v : (cart R N') -> Prop, forall s : (cart R M) -> Prop, ((@subspace M u) /\ ((@subspace N' v) /\ ((N.le (@dim N' v) (@dim M u)) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) v) /\ ((forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y) /\ (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s))))))) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') v) (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_INVARIANCE_OF_DOMAIN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@continuous_on N' N' f s) /\ ((@_open N' s) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((f x) = (f y)))) -> x = y))) -> @_open N' (@IMAGE (cart R N') (cart R N') f s). +Axiom thm_INVARIANCE_OF_DIMENSION_SUBSPACES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall v : (cart R N') -> Prop, forall s : (cart R M) -> Prop, ((@subspace M u) /\ ((@subspace N' v) /\ ((~ (s = (@EMPTY (cart R M)))) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) v) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y))))))) -> N.le (@dim M u) (@dim N' v). +Axiom thm_INVARIANCE_OF_DOMAIN_AFFINE_SETS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall v : (cart R N') -> Prop, forall s : (cart R M) -> Prop, ((@affine M u) /\ ((@affine N' v) /\ ((int_le (@aff_dim N' v) (@aff_dim M u)) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) v) /\ ((forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y) /\ (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s))))))) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') v) (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_INVARIANCE_OF_DIMENSION_AFFINE_SETS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall v : (cart R N') -> Prop, forall s : (cart R M) -> Prop, ((@affine M u) /\ ((@affine N' v) /\ ((~ (s = (@EMPTY (cart R M)))) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) v) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y))))))) -> int_le (@aff_dim M u) (@aff_dim N' v). +Axiom thm_INVARIANCE_OF_DIMENSION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ ((@_open M s) /\ ((~ (s = (@EMPTY (cart R M)))) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y)))) -> N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N')). +Axiom thm_CONTINUOUS_INJECTIVE_IMAGE_SUBSPACE_DIM_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@subspace M s) /\ ((@subspace N' t) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y))))) -> N.le (@dim M s) (@dim N' t). +Axiom thm_INVARIANCE_OF_DIMENSION_CONVEX_DOMAIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@convex M s) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@hull (cart R N') (@affine N') t)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y)))) -> int_le (@aff_dim M s) (@aff_dim N' t). +Axiom thm_HOMEOMORPHIC_CONVEX_SETS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@convex M s) /\ ((@convex N' t) /\ (@homeomorphic N' M s t))) -> (@aff_dim M s) = (@aff_dim N' t). +Axiom thm_HOMEOMORPHIC_CONVEX_COMPACT_SETS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@convex M s) /\ ((@compact M s) /\ ((@convex N' t) /\ (@compact N' t)))) -> (@homeomorphic N' M s t) = ((@aff_dim M s) = (@aff_dim N' t)). +Axiom thm_INVARIANCE_OF_DOMAIN_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((N.le (@dimindex N' (@UNIV N')) (@dimindex M (@UNIV M))) /\ ((@continuous_on M N' f s) /\ ((@_open M s) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y)))) -> @_open N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_INJECTIVE_INTO_1D_IMP_OPEN_MAP_UNIV : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on N' unit f s) /\ ((forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((f x) = (f y)))) -> x = y) /\ ((@_open N' t) /\ (@SUBSET (cart R N') t s)))) -> @_open unit (@IMAGE (cart R N') (cart R unit) f t). +Axiom thm_CONTINUOUS_ON_INVERSE_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, ((N.le (@dimindex N' (@UNIV N')) (@dimindex M (@UNIV M))) /\ ((@continuous_on M N' f s) /\ ((@_open M s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x)))) -> @continuous_on N' M g (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_CONTINUOUS_ON_INVERSE_INTO_1D : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R unit) -> Prop, ((@continuous_on N' unit f s) /\ (((@path_connected N' s) \/ (((@connected N' s) /\ ((@locally N' (@compact N') s) \/ (@locally N' (@connected N') s))) \/ ((@compact N' s) \/ (@_open N' s)))) /\ (((@IMAGE (cart R N') (cart R unit) f s) = t) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (g (f x)) = x)))) -> @continuous_on unit N' g t. +Axiom thm_INVARIANCE_OF_DOMAIN_HOMEOMORPHISM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((N.le (@dimindex N' (@UNIV N')) (@dimindex M (@UNIV M))) /\ ((@continuous_on M N' f s) /\ ((@_open M s) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y)))) -> exists g : (cart R N') -> cart R M, @homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s (@IMAGE (cart R M) (cart R N') f s)) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g). +Axiom thm_INVARIANCE_OF_DOMAIN_HOMEOMORPHIC : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((N.le (@dimindex N' (@UNIV N')) (@dimindex M (@UNIV M))) /\ ((@continuous_on M N' f s) /\ ((@_open M s) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y)))) -> @homeomorphic N' M s (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_HOMEOMORPHIC_INTERVALS_EQ : forall {M N' : Type'}, (forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', (@homeomorphic N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) = ((@aff_dim M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (@aff_dim N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))))) /\ ((forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', (@homeomorphic N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@open_interval N' (@pair (cart R N') (cart R N') c d))) = (((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M))) /\ ((@open_interval N' (@pair (cart R N') (cart R N') c d)) = (@EMPTY (cart R N'))))) /\ ((forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', (@homeomorphic N' M (@open_interval M (@pair (cart R M) (cart R M) a b)) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) = (((@open_interval M (@pair (cart R M) (cart R M) a b)) = (@EMPTY (cart R M))) /\ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))))) /\ (forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', (@homeomorphic N' M (@open_interval M (@pair (cart R M) (cart R M) a b)) (@open_interval N' (@pair (cart R N') (cart R N') c d))) = ((((@open_interval M (@pair (cart R M) (cart R M) a b)) = (@EMPTY (cart R M))) /\ ((@open_interval N' (@pair (cart R N') (cart R N') c d)) = (@EMPTY (cart R N')))) \/ ((~ ((@open_interval M (@pair (cart R M) (cart R M) a b)) = (@EMPTY (cart R M)))) /\ ((~ ((@open_interval N' (@pair (cart R N') (cart R N') c d)) = (@EMPTY (cart R N')))) /\ ((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))))))))). +Axiom thm_CONTINUOUS_IMAGE_SUBSET_INTERIOR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ ((N.le (@dimindex N' (@UNIV N')) (@dimindex M (@UNIV M))) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y))) -> @SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@interior M s)) (@interior N' (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_HOMEOMORPHIC_INTERIORS_SAME_DIMENSION : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ (@homeomorphic N' M s t)) -> @homeomorphic N' M (@interior M s) (@interior N' t). +Axiom thm_HOMEOMORPHIC_INTERIORS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@homeomorphic N' M s t) /\ (((@interior M s) = (@EMPTY (cart R M))) = ((@interior N' t) = (@EMPTY (cart R N'))))) -> @homeomorphic N' M (@interior M s) (@interior N' t). +Axiom thm_HOMEOMORPHIC_FRONTIERS_SAME_DIMENSION : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ ((@homeomorphic N' M s t) /\ ((@closed M s) /\ (@closed N' t)))) -> @homeomorphic N' M (@frontier M s) (@frontier N' t). +Axiom thm_HOMEOMORPHIC_FRONTIERS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@homeomorphic N' M s t) /\ ((@closed M s) /\ ((@closed N' t) /\ (((@interior M s) = (@EMPTY (cart R M))) = ((@interior N' t) = (@EMPTY (cart R N'))))))) -> @homeomorphic N' M (@frontier M s) (@frontier N' t). +Axiom thm_CONTINUOUS_IMAGE_SUBSET_RELATIVE_INTERIOR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((int_le (@aff_dim N' t) (@aff_dim M s)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y)))) -> @SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@relative_interior M s)) (@relative_interior N' (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_HOMEOMORPHIC_RELATIVE_INTERIORS_SAME_DIMENSION : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (((@aff_dim M s) = (@aff_dim N' t)) /\ (@homeomorphic N' M s t)) -> @homeomorphic N' M (@relative_interior M s) (@relative_interior N' t). +Axiom thm_HOMEOMORPHIC_RELATIVE_INTERIORS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@homeomorphic N' M s t) /\ (((@relative_interior M s) = (@EMPTY (cart R M))) = ((@relative_interior N' t) = (@EMPTY (cart R N'))))) -> @homeomorphic N' M (@relative_interior M s) (@relative_interior N' t). +Axiom thm_HOMEOMORPHIC_RELATIVE_BOUNDARIES_SAME_DIMENSION : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (((@aff_dim M s) = (@aff_dim N' t)) /\ (@homeomorphic N' M s t)) -> @homeomorphic N' M (@DIFF (cart R M) s (@relative_interior M s)) (@DIFF (cart R N') t (@relative_interior N' t)). +Axiom thm_HOMEOMORPHIC_RELATIVE_BOUNDARIES : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@homeomorphic N' M s t) /\ (((@relative_interior M s) = (@EMPTY (cart R M))) = ((@relative_interior N' t) = (@EMPTY (cart R N'))))) -> @homeomorphic N' M (@DIFF (cart R M) s (@relative_interior M s)) (@DIFF (cart R N') t (@relative_interior N' t)). +Axiom thm_UNIFORMLY_CONTINUOUS_HOMEOMORPHISM_UNIV_TRIVIAL : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s (@UNIV (cart R N'))) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ (@uniformly_continuous_on N' N' f s)) -> s = (@UNIV (cart R N')). +Axiom thm_INVARIANCE_OF_DOMAIN_SPHERE_AFFINE_SET_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y) /\ ((@bounded M u) /\ ((@convex M u) /\ ((@affine N' t) /\ ((int_lt (@aff_dim N' t) (@aff_dim M u)) /\ (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@relative_frontier M u)) s)))))))) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_INVARIANCE_OF_DOMAIN_SPHERE_AFFINE_SET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall r : R, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y) /\ ((~ (r = (R_of_N (NUMERAL 0%N)))) /\ ((@affine N' t) /\ ((int_lt (@aff_dim N' t) (Z_of_N (@dimindex M (@UNIV M)))) /\ (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) (@sphere M (@pair (cart R M) R a r))) s))))))) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_NO_EMBEDDING_SPHERE_LOWDIM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall r : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@continuous_on M N' f (@sphere M (@pair (cart R M) R a r))) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x (@sphere M (@pair (cart R M) R a r))) /\ ((@IN (cart R M) y (@sphere M (@pair (cart R M) R a r))) /\ ((f x) = (f y)))) -> x = y))) -> N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N')). +Axiom thm_EMPTY_INTERIOR_LOWDIM_GEN : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, ((N.lt (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ (@homeomorphic M N' s t)) -> (@interior N' s) = (@EMPTY (cart R N')). +Axiom thm_EMPTY_INTERIOR_LOWDIM_GEN_LE : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ (((@interior M t) = (@EMPTY (cart R M))) /\ (@homeomorphic M N' s t))) -> (@interior N' s) = (@EMPTY (cart R N')). +Axiom thm_HOMEOMORPHIC_HYPERPLANES_EQ : forall {M N' : Type'}, forall a : cart R M, forall b : R, forall c : cart R N', forall d : R, ((~ (a = (@vec M (NUMERAL 0%N)))) /\ (~ (c = (@vec N' (NUMERAL 0%N))))) -> (@homeomorphic N' M (@GSPEC (cart R M) (fun GEN_PVAR_5152 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5152 ((@dot M a x) = b) x)) (@GSPEC (cart R N') (fun GEN_PVAR_5153 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5153 ((@dot N' c x) = d) x))) = ((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))). +Axiom thm_HOMEOMORPHIC_UNIV_UNIV : forall {M N' : Type'}, (@homeomorphic N' M (@UNIV (cart R M)) (@UNIV (cart R N'))) = ((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))). +Axiom thm_HOMEOMORPHIC_CBALLS_EQ : forall {M N' : Type'}, forall a : cart R M, forall b : cart R N', forall r : R, forall s : R, (@homeomorphic N' M (@cball M (@pair (cart R M) R a r)) (@cball N' (@pair (cart R N') R b s))) = (((Rlt r (R_of_N (NUMERAL 0%N))) /\ (Rlt s (R_of_N (NUMERAL 0%N)))) \/ (((r = (R_of_N (NUMERAL 0%N))) /\ (s = (R_of_N (NUMERAL 0%N)))) \/ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((Rlt (R_of_N (NUMERAL 0%N)) s) /\ ((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))))))). +Axiom thm_HOMEOMORPHIC_BALLS_EQ : forall {M N' : Type'}, forall a : cart R M, forall b : cart R N', forall r : R, forall s : R, (@homeomorphic N' M (@ball M (@pair (cart R M) R a r)) (@ball N' (@pair (cart R N') R b s))) = (((Rle r (R_of_N (NUMERAL 0%N))) /\ (Rle s (R_of_N (NUMERAL 0%N)))) \/ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((Rlt (R_of_N (NUMERAL 0%N)) s) /\ ((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N')))))). +Axiom thm_CARD_EQ_COMPONENTS_COMPLEMENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ (@homeomorphic N' N' s t))) -> @eq_c ((cart R N') -> Prop) ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) t)). +Axiom thm_JORDAN_CURVE_THEOREM_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@homeomorphic N' N' s (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) -> exists ins : (cart R N') -> Prop, exists out : (cart R N') -> Prop, (~ (ins = (@EMPTY (cart R N')))) /\ ((@_open N' ins) /\ ((@connected N' ins) /\ ((~ (out = (@EMPTY (cart R N')))) /\ ((@_open N' out) /\ ((@connected N' out) /\ ((@bounded N' ins) /\ ((~ (@bounded N' out)) /\ (((@INTER (cart R N') ins out) = (@EMPTY (cart R N'))) /\ (((@UNION (cart R N') ins out) = (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (((@frontier N' ins) = s) /\ ((@frontier N' out) = s))))))))))). +Axiom thm_JORDAN_INSIDE_OUTSIDE_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@homeomorphic N' N' s (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) -> (~ ((@inside N' s) = (@EMPTY (cart R N')))) /\ ((@_open N' (@inside N' s)) /\ ((@connected N' (@inside N' s)) /\ ((~ ((@outside N' s) = (@EMPTY (cart R N')))) /\ ((@_open N' (@outside N' s)) /\ ((@connected N' (@outside N' s)) /\ ((@bounded N' (@inside N' s)) /\ ((~ (@bounded N' (@outside N' s))) /\ (((@INTER (cart R N') (@inside N' s) (@outside N' s)) = (@EMPTY (cart R N'))) /\ (((@UNION (cart R N') (@inside N' s) (@outside N' s)) = (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (((@frontier N' (@inside N' s)) = s) /\ ((@frontier N' (@outside N' s)) = s))))))))))). +Axiom thm_JORDAN_BROUWER_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall r : R, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@homeomorphic N' N' s (@sphere N' (@pair (cart R N') R a r))) /\ (@IN ((cart R N') -> Prop) t (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))))) -> (@frontier N' t) = s. +Axiom thm_JORDAN_BROUWER_NONSEPARATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall r : R, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@homeomorphic N' N' s (@sphere N' (@pair (cart R N') R a r))) /\ (@PSUBSET (cart R N') t s))) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) t). +Axiom thm_JORDAN_BROUWER_SEPARATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall r : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@homeomorphic N' N' s (@sphere N' (@pair (cart R N') R a r)))) -> ~ (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s)). +Axiom thm_JORDAN_CURVE_THEOREM : forall c : (cart R unit) -> cart R (tybit0 unit), ((@simple_path (tybit0 unit) c) /\ ((@pathfinish (tybit0 unit) c) = (@pathstart (tybit0 unit) c))) -> exists ins : (cart R (tybit0 unit)) -> Prop, exists out : (cart R (tybit0 unit)) -> Prop, (~ (ins = (@EMPTY (cart R (tybit0 unit))))) /\ ((@_open (tybit0 unit) ins) /\ ((@connected (tybit0 unit) ins) /\ ((~ (out = (@EMPTY (cart R (tybit0 unit))))) /\ ((@_open (tybit0 unit) out) /\ ((@connected (tybit0 unit) out) /\ ((@bounded (tybit0 unit) ins) /\ ((~ (@bounded (tybit0 unit) out)) /\ (((@INTER (cart R (tybit0 unit)) ins out) = (@EMPTY (cart R (tybit0 unit)))) /\ (((@UNION (cart R (tybit0 unit)) ins out) = (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@path_image (tybit0 unit) c))) /\ (((@frontier (tybit0 unit) ins) = (@path_image (tybit0 unit) c)) /\ ((@frontier (tybit0 unit) out) = (@path_image (tybit0 unit) c)))))))))))). +Axiom thm_JORDAN_DISCONNECTED : forall c : (cart R unit) -> cart R (tybit0 unit), ((@simple_path (tybit0 unit) c) /\ ((@pathfinish (tybit0 unit) c) = (@pathstart (tybit0 unit) c))) -> ~ (@connected (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@path_image (tybit0 unit) c))). +Axiom thm_JORDAN_INSIDE_OUTSIDE : forall c : (cart R unit) -> cart R (tybit0 unit), ((@simple_path (tybit0 unit) c) /\ ((@pathfinish (tybit0 unit) c) = (@pathstart (tybit0 unit) c))) -> (~ ((@inside (tybit0 unit) (@path_image (tybit0 unit) c)) = (@EMPTY (cart R (tybit0 unit))))) /\ ((@_open (tybit0 unit) (@inside (tybit0 unit) (@path_image (tybit0 unit) c))) /\ ((@connected (tybit0 unit) (@inside (tybit0 unit) (@path_image (tybit0 unit) c))) /\ ((~ ((@outside (tybit0 unit) (@path_image (tybit0 unit) c)) = (@EMPTY (cart R (tybit0 unit))))) /\ ((@_open (tybit0 unit) (@outside (tybit0 unit) (@path_image (tybit0 unit) c))) /\ ((@connected (tybit0 unit) (@outside (tybit0 unit) (@path_image (tybit0 unit) c))) /\ ((@bounded (tybit0 unit) (@inside (tybit0 unit) (@path_image (tybit0 unit) c))) /\ ((~ (@bounded (tybit0 unit) (@outside (tybit0 unit) (@path_image (tybit0 unit) c)))) /\ (((@INTER (cart R (tybit0 unit)) (@inside (tybit0 unit) (@path_image (tybit0 unit) c)) (@outside (tybit0 unit) (@path_image (tybit0 unit) c))) = (@EMPTY (cart R (tybit0 unit)))) /\ (((@UNION (cart R (tybit0 unit)) (@inside (tybit0 unit) (@path_image (tybit0 unit) c)) (@outside (tybit0 unit) (@path_image (tybit0 unit) c))) = (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@path_image (tybit0 unit) c))) /\ (((@frontier (tybit0 unit) (@inside (tybit0 unit) (@path_image (tybit0 unit) c))) = (@path_image (tybit0 unit) c)) /\ ((@frontier (tybit0 unit) (@outside (tybit0 unit) (@path_image (tybit0 unit) c))) = (@path_image (tybit0 unit) c)))))))))))). +Axiom thm_JORDAN_COMPONENTS : forall g : (cart R unit) -> cart R (tybit0 unit), ((@simple_path (tybit0 unit) g) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g))) -> (@components (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@path_image (tybit0 unit) g))) = (@INSERT ((cart R (tybit0 unit)) -> Prop) (@inside (tybit0 unit) (@path_image (tybit0 unit) g)) (@INSERT ((cart R (tybit0 unit)) -> Prop) (@outside (tybit0 unit) (@path_image (tybit0 unit) g)) (@EMPTY ((cart R (tybit0 unit)) -> Prop)))). +Axiom thm_HOMEOMORPHIC_SEPARATION_SPHERE_CARD_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall r : R, ((@SUBSET (cart R N') s (@sphere N' (@pair (cart R N') R a r))) /\ ((@SUBSET (cart R N') t (@sphere N' (@pair (cart R N') R a r))) /\ ((@closed N' s) /\ ((@closed N' t) /\ (@homeomorphic N' N' s t))))) -> @eq_c ((cart R N') -> Prop) ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') (@sphere N' (@pair (cart R N') R a r)) s)) (@components N' (@DIFF (cart R N') (@sphere N' (@pair (cart R N') R a r)) t)). +Axiom thm_HOMEOMORPHIC_SEPARATION_SPHERE_HAS_SIZE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall r : R, forall n : N, ((@SUBSET (cart R N') s (@sphere N' (@pair (cart R N') R a r))) /\ ((@SUBSET (cart R N') t (@sphere N' (@pair (cart R N') R a r))) /\ (@homeomorphic N' N' s t))) -> (@HAS_SIZE ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') (@sphere N' (@pair (cart R N') R a r)) s)) n) = (@HAS_SIZE ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') (@sphere N' (@pair (cart R N') R a r)) t)) n). +Axiom thm_HOMEOMORPHIC_SEPARATION_SPHERE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall r : R, ((@SUBSET (cart R N') s (@sphere N' (@pair (cart R N') R a r))) /\ ((@SUBSET (cart R N') t (@sphere N' (@pair (cart R N') R a r))) /\ (@homeomorphic N' N' s t))) -> (@connected N' (@DIFF (cart R N') (@sphere N' (@pair (cart R N') R a r)) s)) = (@connected N' (@DIFF (cart R N') (@sphere N' (@pair (cart R N') R a r)) t)). +Axiom thm_HAS_SIZE_EQ_COMPONENTS_COMPLEMENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall n : N, ((((@closed N' s) /\ (@closed N' t)) \/ ((@bounded N' s) /\ (@bounded N' t))) /\ (@homeomorphic N' N' s t)) -> (@HAS_SIZE ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) n) = (@HAS_SIZE ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) t)) n). +Axiom thm_HOMEOMORPHIC_SEPARATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@bounded N' s) /\ ((@bounded N' t) /\ (@homeomorphic N' N' s t))) -> (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) = (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) t)). +Axiom thm_face_of : forall {_1154071 : Type'}, forall s : (cart R _1154071) -> Prop, forall t : (cart R _1154071) -> Prop, (@face_of _1154071 t s) = ((@SUBSET (cart R _1154071) t s) /\ ((@convex _1154071 t) /\ (forall a : cart R _1154071, forall b : cart R _1154071, forall x : cart R _1154071, ((@IN (cart R _1154071) a s) /\ ((@IN (cart R _1154071) b s) /\ ((@IN (cart R _1154071) x t) /\ (@IN (cart R _1154071) x (@open_segment _1154071 (@pair (cart R _1154071) (cart R _1154071) a b)))))) -> (@IN (cart R _1154071) a t) /\ (@IN (cart R _1154071) b t)))). +Axiom thm_FACE_OF_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@face_of N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) f) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@face_of N' f s). +Axiom thm_FACE_OF_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@face_of N' (@IMAGE (cart R M) (cart R N') f c) (@IMAGE (cart R M) (cart R N') f s)) = (@face_of M c s). +Axiom thm_FACE_OF_REFL : forall {_1154188 : Type'}, forall s : (cart R _1154188) -> Prop, (@convex _1154188 s) -> @face_of _1154188 s s. +Axiom thm_FACE_OF_REFL_EQ : forall {_1154201 : Type'}, forall s : (cart R _1154201) -> Prop, (@face_of _1154201 s s) = (@convex _1154201 s). +Axiom thm_EMPTY_FACE_OF : forall {_1154211 : Type'}, forall s : (cart R _1154211) -> Prop, @face_of _1154211 (@EMPTY (cart R _1154211)) s. +Axiom thm_FACE_OF_EMPTY : forall {_1154222 : Type'}, forall s : (cart R _1154222) -> Prop, (@face_of _1154222 s (@EMPTY (cart R _1154222))) = (s = (@EMPTY (cart R _1154222))). +Axiom thm_FACE_OF_TRANS : forall {_1154247 : Type'}, forall s : (cart R _1154247) -> Prop, forall t : (cart R _1154247) -> Prop, forall u : (cart R _1154247) -> Prop, ((@face_of _1154247 s t) /\ (@face_of _1154247 t u)) -> @face_of _1154247 s u. +Axiom thm_FACE_OF_FACE : forall {_1154271 : Type'}, forall f : (cart R _1154271) -> Prop, forall s : (cart R _1154271) -> Prop, forall t : (cart R _1154271) -> Prop, (@face_of _1154271 t s) -> (@face_of _1154271 f t) = ((@face_of _1154271 f s) /\ (@SUBSET (cart R _1154271) f t)). +Axiom thm_FACE_OF_SUBSET : forall {_1154304 : Type'}, forall f : (cart R _1154304) -> Prop, forall s : (cart R _1154304) -> Prop, forall t : (cart R _1154304) -> Prop, ((@face_of _1154304 f s) /\ ((@SUBSET (cart R _1154304) f t) /\ (@SUBSET (cart R _1154304) t s))) -> @face_of _1154304 f t. +Axiom thm_FACE_OF_SLICE : forall {_1154337 : Type'}, forall f : (cart R _1154337) -> Prop, forall s : (cart R _1154337) -> Prop, forall t : (cart R _1154337) -> Prop, ((@face_of _1154337 f s) /\ (@convex _1154337 t)) -> @face_of _1154337 (@INTER (cart R _1154337) f t) (@INTER (cart R _1154337) s t). +Axiom thm_FACE_OF_INTER : forall {_1154366 : Type'}, forall s : (cart R _1154366) -> Prop, forall t1 : (cart R _1154366) -> Prop, forall t2 : (cart R _1154366) -> Prop, ((@face_of _1154366 t1 s) /\ (@face_of _1154366 t2 s)) -> @face_of _1154366 (@INTER (cart R _1154366) t1 t2) s. +Axiom thm_FACE_OF_INTERS : forall {_1154405 : Type'}, forall P : ((cart R _1154405) -> Prop) -> Prop, forall s : (cart R _1154405) -> Prop, ((~ (P = (@EMPTY ((cart R _1154405) -> Prop)))) /\ (forall t : (cart R _1154405) -> Prop, (@IN ((cart R _1154405) -> Prop) t P) -> @face_of _1154405 t s)) -> @face_of _1154405 (@INTERS (cart R _1154405) P) s. +Axiom thm_FACE_OF_INTER_INTER : forall {_1154437 : Type'}, forall f : (cart R _1154437) -> Prop, forall t : (cart R _1154437) -> Prop, forall f' : (cart R _1154437) -> Prop, forall t' : (cart R _1154437) -> Prop, ((@face_of _1154437 f t) /\ (@face_of _1154437 f' t')) -> @face_of _1154437 (@INTER (cart R _1154437) f f') (@INTER (cart R _1154437) t t'). +Axiom thm_FACE_OF_STILLCONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@convex N' s) -> (@face_of N' t s) = ((@SUBSET (cart R N') t s) /\ ((@convex N' (@DIFF (cart R N') s t)) /\ (t = (@INTER (cart R N') (@hull (cart R N') (@affine N') t) s)))). +Axiom thm_FACE_OF_INTER_SUPPORTING_HYPERPLANE_LE_STRONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : R, ((@convex N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5162 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5162 ((@dot N' a x) = b) x)))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rle (@dot N' a x) b)) -> @face_of N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5163 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5163 ((@dot N' a x) = b) x))) s. +Axiom thm_FACE_OF_INTER_SUPPORTING_HYPERPLANE_GE_STRONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : R, ((@convex N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5164 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5164 ((@dot N' a x) = b) x)))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rge (@dot N' a x) b)) -> @face_of N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5165 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5165 ((@dot N' a x) = b) x))) s. +Axiom thm_FACE_OF_INTER_SUPPORTING_HYPERPLANE_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : R, ((@convex N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rle (@dot N' a x) b)) -> @face_of N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5166 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5166 ((@dot N' a x) = b) x))) s. +Axiom thm_FACE_OF_INTER_SUPPORTING_HYPERPLANE_GE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : R, ((@convex N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rge (@dot N' a x) b)) -> @face_of N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5167 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5167 ((@dot N' a x) = b) x))) s. +Axiom thm_FACE_OF_IMP_SUBSET : forall {_1155194 : Type'}, forall s : (cart R _1155194) -> Prop, forall t : (cart R _1155194) -> Prop, (@face_of _1155194 t s) -> @SUBSET (cart R _1155194) t s. +Axiom thm_FACE_OF_IMP_CONVEX : forall {_1155211 : Type'}, forall s : (cart R _1155211) -> Prop, forall t : (cart R _1155211) -> Prop, (@face_of _1155211 t s) -> @convex _1155211 t. +Axiom thm_FACE_OF_IMP_CLOSED : forall {_1155228 : Type'}, forall s : (cart R _1155228) -> Prop, forall t : (cart R _1155228) -> Prop, ((@convex _1155228 s) /\ ((@closed _1155228 s) /\ (@face_of _1155228 t s))) -> @closed _1155228 t. +Axiom thm_FACE_OF_IMP_COMPACT : forall {_1155252 : Type'}, forall s : (cart R _1155252) -> Prop, forall t : (cart R _1155252) -> Prop, ((@convex _1155252 s) /\ ((@compact _1155252 s) /\ (@face_of _1155252 t s))) -> @compact _1155252 t. +Axiom thm_FACE_OF_INTER_SUBFACE : forall {N' : Type'}, forall c1 : (cart R N') -> Prop, forall c2 : (cart R N') -> Prop, forall d1 : (cart R N') -> Prop, forall d2 : (cart R N') -> Prop, ((@face_of N' (@INTER (cart R N') c1 c2) c1) /\ ((@face_of N' (@INTER (cart R N') c1 c2) c2) /\ ((@face_of N' d1 c1) /\ (@face_of N' d2 c2)))) -> (@face_of N' (@INTER (cart R N') d1 d2) d1) /\ (@face_of N' (@INTER (cart R N') d1 d2) d2). +Axiom thm_SUBSET_OF_FACE_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@face_of N' t s) /\ ((@SUBSET (cart R N') u s) /\ (~ (@DISJOINT (cart R N') t (@relative_interior N' u))))) -> @SUBSET (cart R N') u t. +Axiom thm_FACE_OF_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@face_of N' t s) /\ ((@face_of N' u s) /\ (~ (@DISJOINT (cart R N') (@relative_interior N' t) (@relative_interior N' u))))) -> t = u. +Axiom thm_FACE_OF_DISJOINT_RELATIVE_INTERIOR : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@face_of N' f s) /\ (~ (f = s))) -> (@INTER (cart R N') f (@relative_interior N' s)) = (@EMPTY (cart R N')). +Axiom thm_FACE_OF_DISJOINT_INTERIOR : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@face_of N' f s) /\ (~ (f = s))) -> (@INTER (cart R N') f (@interior N' s)) = (@EMPTY (cart R N')). +Axiom thm_SUBSET_OF_FACE_OF_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@face_of N' t s) /\ ((@convex N' s) /\ ((@SUBSET (cart R N') u s) /\ (~ (@DISJOINT (cart R N') (@hull (cart R N') (@affine N') t) (@relative_interior N' u)))))) -> @SUBSET (cart R N') u t. +Axiom thm_AFFINE_HULL_FACE_OF_DISJOINT_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@convex N' s) /\ ((@face_of N' f s) /\ (~ (f = s)))) -> (@INTER (cart R N') (@hull (cart R N') (@affine N') f) (@relative_interior N' s)) = (@EMPTY (cart R N')). +Axiom thm_FACE_OF_SUBSET_RELATIVE_BOUNDARY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@face_of N' f s) /\ (~ (f = s))) -> @SUBSET (cart R N') f (@DIFF (cart R N') s (@relative_interior N' s)). +Axiom thm_FACE_OF_SUBSET_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@face_of N' f s) /\ (~ (f = s))) -> @SUBSET (cart R N') f (@relative_frontier N' s). +Axiom thm_FACE_OF_SUBSET_RELATIVE_FRONTIER_AFF_DIM : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@face_of N' f s) /\ (int_lt (@aff_dim N' f) (@aff_dim N' s))) -> @SUBSET (cart R N') f (@relative_frontier N' s). +Axiom thm_FACE_OF_SUBSET_FRONTIER_AFF_DIM : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@face_of N' f s) /\ (int_lt (@aff_dim N' f) (Z_of_N (@dimindex N' (@UNIV N'))))) -> @SUBSET (cart R N') f (@frontier N' s). +Axiom thm_FACE_OF_AFF_DIM_LT : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@face_of N' f s) /\ (~ (f = s)))) -> int_lt (@aff_dim N' f) (@aff_dim N' s). +Axiom thm_FACE_OF_CONVEX_HULLS : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ ((@SUBSET (cart R N') f s) /\ (@DISJOINT (cart R N') (@hull (cart R N') (@affine N') f) (@hull (cart R N') (@convex N') (@DIFF (cart R N') s f))))) -> @face_of N' (@hull (cart R N') (@convex N') f) (@hull (cart R N') (@convex N') s). +Axiom thm_FACE_OF_CONVEX_HULL_INSERT : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall a : cart R N', ((@FINITE (cart R N') s) /\ ((~ (@IN (cart R N') a (@hull (cart R N') (@affine N') s))) /\ (@face_of N' f (@hull (cart R N') (@convex N') s)))) -> @face_of N' f (@hull (cart R N') (@convex N') (@INSERT (cart R N') a s)). +Axiom thm_FACE_OF_AFFINE_TRIVIAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@affine N' s) /\ (@face_of N' f s)) -> (f = (@EMPTY (cart R N'))) \/ (f = s). +Axiom thm_FACE_OF_AFFINE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, (@affine N' s) -> (@face_of N' f s) = ((f = (@EMPTY (cart R N'))) \/ (f = s)). +Axiom thm_INTERS_FACES_FINITE_BOUND : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : ((cart R N') -> Prop) -> Prop, ((@convex N' s) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c f) -> @face_of N' c s)) -> exists f' : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f') /\ ((@SUBSET ((cart R N') -> Prop) f' f) /\ ((N.le (@CARD ((cart R N') -> Prop) f') (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) /\ ((@INTERS (cart R N') f') = (@INTERS (cart R N') f)))). +Axiom thm_INTERS_FACES_FINITE_ALTBOUND : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : ((cart R N') -> Prop) -> Prop, (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c f) -> @face_of N' c s) -> exists f' : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f') /\ ((@SUBSET ((cart R N') -> Prop) f' f) /\ ((N.le (@CARD ((cart R N') -> Prop) f') (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((@INTERS (cart R N') f') = (@INTERS (cart R N') f)))). +Axiom thm_FACES_OF_TRANSLATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5168 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5168 (@face_of N' f (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) f)) = (@IMAGE ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x)) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5169 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5169 (@face_of N' f s) f))). +Axiom thm_FACES_OF_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5174 : (cart R N') -> Prop => exists t : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5174 (@face_of N' t (@IMAGE (cart R M) (cart R N') f s)) t)) = (@IMAGE ((cart R M) -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R M) (cart R N') f) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_5175 : (cart R M) -> Prop => exists t : (cart R M) -> Prop, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_5175 (@face_of M t s) t))). +Axiom thm_FACE_OF_CONIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@conic N' s) /\ (@face_of N' f s)) -> @conic N' f. +Axiom thm_FACE_OF_PCROSS : forall {M N' : Type'}, forall f : (cart R M) -> Prop, forall s : (cart R M) -> Prop, forall f' : (cart R N') -> Prop, forall s' : (cart R N') -> Prop, ((@face_of M f s) /\ (@face_of N' f' s')) -> @face_of (finite_sum M N') (@PCROSS R M N' f f') (@PCROSS R M N' s s'). +Axiom thm_FACE_OF_PCROSS_DECOMP : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R N') -> Prop, forall c : (cart R (finite_sum M N')) -> Prop, (@face_of (finite_sum M N') c (@PCROSS R M N' s s')) = (exists f : (cart R M) -> Prop, exists f' : (cart R N') -> Prop, (@face_of M f s) /\ ((@face_of N' f' s') /\ (c = (@PCROSS R M N' f f')))). +Axiom thm_FACE_OF_PCROSS_EQ : forall {M N' : Type'}, forall f : (cart R M) -> Prop, forall s : (cart R M) -> Prop, forall f' : (cart R N') -> Prop, forall s' : (cart R N') -> Prop, (@face_of (finite_sum M N') (@PCROSS R M N' f f') (@PCROSS R M N' s s')) = ((f = (@EMPTY (cart R M))) \/ ((f' = (@EMPTY (cart R N'))) \/ ((@face_of M f s) /\ (@face_of N' f' s')))). +Axiom thm_HYPERPLANE_FACE_OF_HALFSPACE_LE : forall {N' : Type'}, forall a : cart R N', forall b : R, @face_of N' (@GSPEC (cart R N') (fun GEN_PVAR_5179 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5179 ((@dot N' a x) = b) x)) (@GSPEC (cart R N') (fun GEN_PVAR_5180 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5180 (Rle (@dot N' a x) b) x)). +Axiom thm_HYPERPLANE_FACE_OF_HALFSPACE_GE : forall {N' : Type'}, forall a : cart R N', forall b : R, @face_of N' (@GSPEC (cart R N') (fun GEN_PVAR_5184 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5184 ((@dot N' a x) = b) x)) (@GSPEC (cart R N') (fun GEN_PVAR_5185 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5185 (Rge (@dot N' a x) b) x)). +Axiom thm_FACE_OF_HALFSPACE_LE : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall a : cart R N', forall b : R, (@face_of N' f (@GSPEC (cart R N') (fun GEN_PVAR_5189 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5189 (Rle (@dot N' a x) b) x))) = ((f = (@EMPTY (cart R N'))) \/ ((f = (@GSPEC (cart R N') (fun GEN_PVAR_5190 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5190 ((@dot N' a x) = b) x))) \/ (f = (@GSPEC (cart R N') (fun GEN_PVAR_5191 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5191 (Rle (@dot N' a x) b) x))))). +Axiom thm_FACE_OF_HALFSPACE_GE : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall a : cart R N', forall b : R, (@face_of N' f (@GSPEC (cart R N') (fun GEN_PVAR_5192 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5192 (Rge (@dot N' a x) b) x))) = ((f = (@EMPTY (cart R N'))) \/ ((f = (@GSPEC (cart R N') (fun GEN_PVAR_5193 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5193 ((@dot N' a x) = b) x))) \/ (f = (@GSPEC (cart R N') (fun GEN_PVAR_5194 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5194 (Rge (@dot N' a x) b) x))))). +Axiom thm_RELATIVE_BOUNDARY_POINT_IN_PROPER_FACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex N' s) /\ ((@IN (cart R N') x s) /\ (~ (@IN (cart R N') x (@relative_interior N' s))))) -> exists f : (cart R N') -> Prop, (@face_of N' f s) /\ ((~ (f = s)) /\ (@IN (cart R N') x f)). +Axiom thm_RELATIVE_FRONTIER_OF_CONVEX_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (@closed N' s)) -> (@relative_frontier N' s) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5196 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5196 ((@face_of N' f s) /\ (~ (f = s))) f))). +Axiom thm_IN_RELATIVE_INTERIOR_OF_FACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex N' s) /\ (@IN (cart R N') x s)) -> exists f : (cart R N') -> Prop, (@face_of N' f s) /\ (@IN (cart R N') x (@relative_interior N' f)). +Axiom thm_CONVEX_FACIAL_PARTITION : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5198 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5198 (@face_of N' f s) (@relative_interior N' f)))) = s. +Axiom thm_IN_RELATIVE_INTERIOR_OF_UNIQUE_FACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex N' s) /\ (@IN (cart R N') x s)) -> @ex1 ((cart R N') -> Prop) (fun f : (cart R N') -> Prop => (@face_of N' f s) /\ (@IN (cart R N') x (@relative_interior N' f))). +Axiom thm_RELATIVE_INTERIOR_SUBSET_OF_PROPER_FACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@SUBSET (cart R N') t s) /\ (~ ((@DIFF (cart R N') (@relative_interior N' t) (@relative_interior N' s)) = (@EMPTY (cart R N')))))) -> exists f : (cart R N') -> Prop, (@face_of N' f s) /\ ((~ (f = s)) /\ (@SUBSET (cart R N') t f)). +Axiom thm_CONVEX_RELATIVE_BOUNDARY_SUBSET_OF_PROPER_FACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@convex N' t) /\ (@SUBSET (cart R N') t (@DIFF (cart R N') s (@relative_interior N' s)))))) -> exists f : (cart R N') -> Prop, (@face_of N' f s) /\ ((~ (f = s)) /\ (@SUBSET (cart R N') t f)). +Axiom thm_RELATIVE_FRONTIER_FACIAL_PARTITION_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (@closed N' s)) -> (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5201 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5201 ((@face_of N' f s) /\ (~ (f = s))) (@relative_interior N' f)))) = (@relative_frontier N' s). +Axiom thm_RELATIVE_FRONTIER_FACIAL_PARTITION : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (@closed N' s)) -> (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5204 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5204 ((@face_of N' f s) /\ (int_lt (@aff_dim N' f) (@aff_dim N' s))) (@relative_interior N' f)))) = (@relative_frontier N' s). +Axiom thm_FRONTIER_OF_CONVEX_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (@closed N' s)) -> (@frontier N' s) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5205 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5205 ((@face_of N' f s) /\ (int_lt (@aff_dim N' f) (Z_of_N (@dimindex N' (@UNIV N'))))) f))). +Axiom thm_FACE_OF_INTER_AS_INTER_OF_FACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@convex N' s) /\ ((@convex N' t) /\ (@face_of N' f (@INTER (cart R N') s t)))) -> exists k : (cart R N') -> Prop, exists l : (cart R N') -> Prop, (@face_of N' k s) /\ ((@face_of N' l t) /\ ((@INTER (cart R N') k l) = f)). +Axiom thm_exposed_face_of : forall {_1160486 : Type'}, forall t : (cart R _1160486) -> Prop, forall s : (cart R _1160486) -> Prop, (@exposed_face_of _1160486 t s) = ((@face_of _1160486 t s) /\ (exists a : cart R _1160486, exists b : R, (@SUBSET (cart R _1160486) s (@GSPEC (cart R _1160486) (fun GEN_PVAR_5206 : cart R _1160486 => exists x : cart R _1160486, @SETSPEC (cart R _1160486) GEN_PVAR_5206 (Rle (@dot _1160486 a x) b) x))) /\ (t = (@INTER (cart R _1160486) s (@GSPEC (cart R _1160486) (fun GEN_PVAR_5207 : cart R _1160486 => exists x : cart R _1160486, @SETSPEC (cart R _1160486) GEN_PVAR_5207 ((@dot _1160486 a x) = b) x)))))). +Axiom thm_EXPOSED_FACE_OF_IMP_FACE_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@exposed_face_of N' t s) -> @face_of N' t s. +Axiom thm_EMPTY_EXPOSED_FACE_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, @exposed_face_of N' (@EMPTY (cart R N')) s. +Axiom thm_EXPOSED_FACE_OF_REFL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@exposed_face_of N' s s) = (@convex N' s). +Axiom thm_EXPOSED_FACE_OF_REFL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @exposed_face_of N' s s. +Axiom thm_EXPOSED_FACE_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@exposed_face_of N' t s) = ((@face_of N' t s) /\ ((t = (@EMPTY (cart R N'))) \/ ((t = s) \/ (exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((@SUBSET (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5208 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5208 (Rle (@dot N' a x) b) x))) /\ (t = (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5209 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5209 ((@dot N' a x) = b) x))))))))). +Axiom thm_EXPOSED_FACE_OF_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@exposed_face_of N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) f) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@exposed_face_of N' f s). +Axiom thm_EXPOSED_FACE_OF_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@exposed_face_of N' (@IMAGE (cart R M) (cart R N') f c) (@IMAGE (cart R M) (cart R N') f s)) = (@exposed_face_of M c s). +Axiom thm_EXPOSED_FACE_OF_INTER_SUPPORTING_HYPERPLANE_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : R, ((@convex N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rle (@dot N' a x) b)) -> @exposed_face_of N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5210 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5210 ((@dot N' a x) = b) x))) s. +Axiom thm_EXPOSED_FACE_OF_INTER_SUPPORTING_HYPERPLANE_GE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : R, ((@convex N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rge (@dot N' a x) b)) -> @exposed_face_of N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5211 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5211 ((@dot N' a x) = b) x))) s. +Axiom thm_EXPOSED_FACE_OF_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@exposed_face_of N' t s) /\ (@exposed_face_of N' u s)) -> @exposed_face_of N' (@INTER (cart R N') t u) s. +Axiom thm_EXPOSED_FACE_OF_INTERS : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((~ (P = (@EMPTY ((cart R N') -> Prop)))) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t P) -> @exposed_face_of N' t s)) -> @exposed_face_of N' (@INTERS (cart R N') P) s. +Axiom thm_EXPOSED_FACE_OF_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@convex N' s) /\ ((@convex N' t) /\ (@exposed_face_of N' f (@GSPEC (cart R N') (fun GEN_PVAR_5215 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_5215 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))))) -> exists k : (cart R N') -> Prop, exists l : (cart R N') -> Prop, (@exposed_face_of N' k s) /\ ((@exposed_face_of N' l t) /\ (f = (@GSPEC (cart R N') (fun GEN_PVAR_5216 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_5216 ((@IN (cart R N') x k) /\ (@IN (cart R N') y l)) (@vector_add N' x y))))). +Axiom thm_EXPOSED_FACE_OF_PARALLEL : forall {N' : Type'}, forall t : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@exposed_face_of N' t s) = ((@face_of N' t s) /\ (exists a : cart R N', exists b : R, (@SUBSET (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5227 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5227 (Rle (@dot N' a x) b) x))) /\ ((t = (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5228 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5228 ((@dot N' a x) = b) x)))) /\ ((((~ (t = (@EMPTY (cart R N')))) /\ (~ (t = s))) -> ~ (a = (@vec N' (NUMERAL 0%N)))) /\ (forall w : cart R N', ((@IN (cart R N') w (@hull (cart R N') (@affine N') s)) /\ (~ (t = s))) -> @IN (cart R N') (@vector_add N' w a) (@hull (cart R N') (@affine N') s)))))). +Axiom thm_RELATIVE_BOUNDARY_POINT_IN_EXPOSED_FACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex N' s) /\ ((@IN (cart R N') x s) /\ (~ (@IN (cart R N') x (@relative_interior N' s))))) -> exists f : (cart R N') -> Prop, (@exposed_face_of N' f s) /\ ((~ (f = s)) /\ (@IN (cart R N') x f)). +Axiom thm_extreme_point_of : forall {_1162084 : Type'}, forall s : (cart R _1162084) -> Prop, forall x : cart R _1162084, (@extreme_point_of _1162084 x s) = ((@IN (cart R _1162084) x s) /\ (forall a : cart R _1162084, forall b : cart R _1162084, ((@IN (cart R _1162084) a s) /\ (@IN (cart R _1162084) b s)) -> ~ (@IN (cart R _1162084) x (@open_segment _1162084 (@pair (cart R _1162084) (cart R _1162084) a b))))). +Axiom thm_EXTREME_POINT_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex N' s) /\ ((@IN (cart R N') x (@DIFF (cart R N') s (@relative_interior N' s))) /\ (forall a : cart R N', forall b : cart R N', (@SUBSET (cart R N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@EMPTY (cart R N')))) (@DIFF (cart R N') s (@relative_interior N' s))) -> ~ (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b)))))) -> @extreme_point_of N' x s. +Axiom thm_EXTREME_POINT_OF_STILLCONVEX_IMP : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@IN (cart R N') x s) /\ (@convex N' (@DELETE (cart R N') s x))) -> @extreme_point_of N' x s. +Axiom thm_EXTREME_POINTS_OF_STILLCONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ (@SUBSET (cart R N') t (@GSPEC (cart R N') (fun GEN_PVAR_5230 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5230 (@extreme_point_of N' x s) x)))) -> @convex N' (@DIFF (cart R N') s t). +Axiom thm_EXTREME_POINT_OF_STILLCONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@convex N' s) -> (@extreme_point_of N' x s) = ((@IN (cart R N') x s) /\ (@convex N' (@DELETE (cart R N') s x))). +Axiom thm_FACE_OF_SING : forall {_1162261 : Type'}, forall x : cart R _1162261, forall s : (cart R _1162261) -> Prop, (@face_of _1162261 (@INSERT (cart R _1162261) x (@EMPTY (cart R _1162261))) s) = (@extreme_point_of _1162261 x s). +Axiom thm_FACE_OF_AFF_DIM_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@face_of N' f s) /\ ((@aff_dim N' f) = (Z_of_N (NUMERAL 0%N)))) = (exists a : cart R N', (@extreme_point_of N' a s) /\ (f = (@INSERT (cart R N') a (@EMPTY (cart R N'))))). +Axiom thm_EXTREME_POINT_NOT_IN_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@extreme_point_of N' x s) /\ (~ (s = (@INSERT (cart R N') x (@EMPTY (cart R N')))))) -> ~ (@IN (cart R N') x (@relative_interior N' s)). +Axiom thm_EXTREME_POINT_NOT_IN_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@extreme_point_of N' x s) -> ~ (@IN (cart R N') x (@interior N' s)). +Axiom thm_EXTREME_POINT_IN_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@extreme_point_of N' x s) /\ (~ (s = (@INSERT (cart R N') x (@EMPTY (cart R N')))))) -> @IN (cart R N') x (@relative_frontier N' s). +Axiom thm_EXTREME_POINT_IN_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@extreme_point_of N' x s) -> @IN (cart R N') x (@frontier N' s). +Axiom thm_EXTREME_POINT_OF_FACE : forall {_1162431 : Type'}, forall f : (cart R _1162431) -> Prop, forall s : (cart R _1162431) -> Prop, forall v : cart R _1162431, (@face_of _1162431 f s) -> (@extreme_point_of _1162431 v f) = ((@extreme_point_of _1162431 v s) /\ (@IN (cart R _1162431) v f)). +Axiom thm_EXTREME_POINT_OF_MIDPOINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@convex N' s) -> (@extreme_point_of N' x s) = ((@IN (cart R N') x s) /\ (forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a s) /\ ((@IN (cart R N') b s) /\ (x = (@midpoint N' (@pair (cart R N') (cart R N') a b))))) -> (x = a) /\ (x = b))). +Axiom thm_EXTREME_POINT_OF_CONVEX_HULL : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@extreme_point_of N' x (@hull (cart R N') (@convex N') s)) -> @IN (cart R N') x s. +Axiom thm_EXTREME_POINTS_OF_CONVEX_HULL : forall {_1162841 : Type'}, forall s : (cart R _1162841) -> Prop, @SUBSET (cart R _1162841) (@GSPEC (cart R _1162841) (fun GEN_PVAR_5231 : cart R _1162841 => exists x : cart R _1162841, @SETSPEC (cart R _1162841) GEN_PVAR_5231 (@extreme_point_of _1162841 x (@hull (cart R _1162841) (@convex _1162841) s)) x)) s. +Axiom thm_EXTREME_POINT_OF_EMPTY : forall {_1162850 : Type'}, forall x : cart R _1162850, ~ (@extreme_point_of _1162850 x (@EMPTY (cart R _1162850))). +Axiom thm_EXTREME_POINT_OF_SING : forall {_1162865 : Type'}, forall a : cart R _1162865, forall x : cart R _1162865, (@extreme_point_of _1162865 x (@INSERT (cart R _1162865) a (@EMPTY (cart R _1162865)))) = (x = a). +Axiom thm_EXTREME_POINT_OF_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall x : cart R N', forall s : (cart R N') -> Prop, (@extreme_point_of N' (@vector_add N' a x) (@IMAGE (cart R N') (cart R N') (fun x' : cart R N' => @vector_add N' a x') s)) = (@extreme_point_of N' x s). +Axiom thm_EXTREME_POINT_OF_LINEAR_IMAGE : forall {M N' : Type'} (x : cart R M) (s : (cart R M) -> Prop), forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall x' : cart R M, forall y : cart R M, ((f x') = (f y)) -> x' = y)) -> (@extreme_point_of N' (f x) (@IMAGE (cart R M) (cart R N') f s)) = (@extreme_point_of M x s). +Axiom thm_EXTREME_POINTS_OF_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@GSPEC (cart R N') (fun GEN_PVAR_5232 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5232 (@extreme_point_of N' x (@IMAGE (cart R N') (cart R N') (fun x' : cart R N' => @vector_add N' a x') s)) x)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) (@GSPEC (cart R N') (fun GEN_PVAR_5233 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5233 (@extreme_point_of N' x s) x))). +Axiom thm_EXTREME_POINT_OF_INTER : forall {_1163079 : Type'}, forall x : cart R _1163079, forall s : (cart R _1163079) -> Prop, forall t : (cart R _1163079) -> Prop, ((@extreme_point_of _1163079 x s) /\ (@extreme_point_of _1163079 x t)) -> @extreme_point_of _1163079 x (@INTER (cart R _1163079) s t). +Axiom thm_EXTREME_POINT_OF_INTER_GEN : forall {_1163110 : Type'}, forall x : cart R _1163110, forall s : (cart R _1163110) -> Prop, forall t : (cart R _1163110) -> Prop, (((@extreme_point_of _1163110 x s) \/ (@extreme_point_of _1163110 x t)) /\ (@IN (cart R _1163110) x (@INTER (cart R _1163110) s t))) -> @extreme_point_of _1163110 x (@INTER (cart R _1163110) s t). +Axiom thm_EXTREME_POINTS_OF_LINEAR_IMAGE : forall {M N' : Type'} (s : (cart R M) -> Prop), forall f : (cart R M) -> cart R N', ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@GSPEC (cart R N') (fun GEN_PVAR_5234 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_5234 (@extreme_point_of N' y (@IMAGE (cart R M) (cart R N') f s)) y)) = (@IMAGE (cart R M) (cart R N') f (@GSPEC (cart R M) (fun GEN_PVAR_5235 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5235 (@extreme_point_of M x s) x))). +Axiom thm_EXTREME_POINT_OF_INTER_SUPPORTING_HYPERPLANE_LE : forall {_1163232 : Type'}, forall s : (cart R _1163232) -> Prop, forall a : cart R _1163232, forall b : R, forall c : cart R _1163232, ((forall x : cart R _1163232, (@IN (cart R _1163232) x s) -> Rle (@dot _1163232 a x) b) /\ ((@INTER (cart R _1163232) s (@GSPEC (cart R _1163232) (fun GEN_PVAR_5236 : cart R _1163232 => exists x : cart R _1163232, @SETSPEC (cart R _1163232) GEN_PVAR_5236 ((@dot _1163232 a x) = b) x))) = (@INSERT (cart R _1163232) c (@EMPTY (cart R _1163232))))) -> @extreme_point_of _1163232 c s. +Axiom thm_EXTREME_POINT_OF_INTER_SUPPORTING_HYPERPLANE_GE : forall {_1163299 : Type'}, forall s : (cart R _1163299) -> Prop, forall a : cart R _1163299, forall b : R, forall c : cart R _1163299, ((forall x : cart R _1163299, (@IN (cart R _1163299) x s) -> Rge (@dot _1163299 a x) b) /\ ((@INTER (cart R _1163299) s (@GSPEC (cart R _1163299) (fun GEN_PVAR_5237 : cart R _1163299 => exists x : cart R _1163299, @SETSPEC (cart R _1163299) GEN_PVAR_5237 ((@dot _1163299 a x) = b) x))) = (@INSERT (cart R _1163299) c (@EMPTY (cart R _1163299))))) -> @extreme_point_of _1163299 c s. +Axiom thm_EXPOSED_POINT_OF_INTER_SUPPORTING_HYPERPLANE_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : R, forall c : cart R N', ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (@dot N' a x) b) /\ ((@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5238 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5238 ((@dot N' a x) = b) x))) = (@INSERT (cart R N') c (@EMPTY (cart R N'))))) -> @exposed_face_of N' (@INSERT (cart R N') c (@EMPTY (cart R N'))) s. +Axiom thm_EXPOSED_POINT_OF_INTER_SUPPORTING_HYPERPLANE_GE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : R, forall c : cart R N', ((forall x : cart R N', (@IN (cart R N') x s) -> Rge (@dot N' a x) b) /\ ((@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5239 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5239 ((@dot N' a x) = b) x))) = (@INSERT (cart R N') c (@EMPTY (cart R N'))))) -> @exposed_face_of N' (@INSERT (cart R N') c (@EMPTY (cart R N'))) s. +Axiom thm_EXPOSED_POINT_OF_FURTHEST_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@IN (cart R N') b s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rle (@distance N' (@pair (cart R N') (cart R N') a x)) (@distance N' (@pair (cart R N') (cart R N') a b)))) -> @exposed_face_of N' (@INSERT (cart R N') b (@EMPTY (cart R N'))) s. +Axiom thm_COLLINEAR_EXTREME_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@collinear N' s) -> (@FINITE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5240 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5240 (@extreme_point_of N' x s) x))) /\ (N.le (@CARD (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5241 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5241 (@extreme_point_of N' x s) x))) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_EXTREME_POINT_OF_CONIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@conic N' s) /\ (@extreme_point_of N' x s)) -> x = (@vec N' (NUMERAL 0%N)). +Axiom thm_EXTREME_POINT_OF_CONVEX_HULL_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@FINITE (cart R N') s) /\ (~ (@IN (cart R N') a (@hull (cart R N') (@convex N') s)))) -> @extreme_point_of N' a (@hull (cart R N') (@convex N') (@INSERT (cart R N') a s)). +Axiom thm_FACE_OF_CONIC_HULL : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@face_of N' f s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s)))) -> @face_of N' (@hull (cart R N') (@conic N') f) (@hull (cart R N') (@conic N') s). +Axiom thm_FACE_OF_CONIC_HULL_REV : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@face_of N' f (@hull (cart R N') (@conic N') s)) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s)))) -> (f = (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))) \/ (exists f' : (cart R N') -> Prop, (@face_of N' f' s) /\ ((@hull (cart R N') (@conic N') f') = f)). +Axiom thm_EXTREME_POINT_OF_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s))) -> (@extreme_point_of N' x (@hull (cart R N') (@conic N') s)) = ((x = (@vec N' (NUMERAL 0%N))) /\ (~ (s = (@EMPTY (cart R N'))))). +Axiom thm_FACE_OF_CONIC_HULL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s))) -> (@face_of N' f (@hull (cart R N') (@conic N') s)) = (((f = (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N')))) /\ (~ (s = (@EMPTY (cart R N'))))) \/ (exists f' : (cart R N') -> Prop, (@face_of N' f' s) /\ ((@hull (cart R N') (@conic N') f') = f))). +Axiom thm_EXTREME_POINT_OF_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, forall x : cart R N', (@extreme_point_of N' x (@cball N' (@pair (cart R N') R a r))) = (@IN (cart R N') x (@sphere N' (@pair (cart R N') R a r))). +Axiom thm_CLOSED_IN_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' t) /\ ((~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) t)) /\ (@SUBSET (cart R N') t s))) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@conic N') s)) (@hull (cart R N') (@conic N') t). +Axiom thm_CLOSED_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)) \/ ((@compact N' s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s)))) -> @closed N' (@hull (cart R N') (@conic N') s). +Axiom thm_CONIC_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@conic N' s) -> @conic N' (@closure N' s). +Axiom thm_CLOSURE_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)) \/ ((@bounded N' s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@closure N' s))))) -> (@closure N' (@hull (cart R N') (@conic N') s)) = (@hull (cart R N') (@conic N') (@closure N' s)). +Axiom thm_OPEN_IN_SAME_CONIC_HULL : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@conic N' u) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s)) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) (@DELETE (cart R N') (@hull (cart R N') (@conic N') s) (@vec N' (NUMERAL 0%N))). +Axiom thm_OPEN_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @_open N' (@DELETE (cart R N') (@hull (cart R N') (@conic N') s) (@vec N' (NUMERAL 0%N))). +Axiom thm_OPEN_IN_CONIC_HULL : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') u)) s) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') (@hull (cart R N') (@conic N') u))) (@DELETE (cart R N') (@hull (cart R N') (@conic N') s) (@vec N' (NUMERAL 0%N))). +Axiom thm_CONIC_INTERIOR_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@conic N' s) -> @conic N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@interior N' s)). +Axiom thm_CONIC_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@conic N' s) /\ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@interior N' s))) -> @conic N' (@interior N' s). +Axiom thm_CONIC_RELATIVE_INTERIOR_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@conic N' s) -> @conic N' (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)). +Axiom thm_CONIC_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@conic N' s) /\ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s))) -> @conic N' (@relative_interior N' s). +Axiom thm_CONIC_HULL_RELATIVE_INTERIOR_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, @SUBSET (cart R N') (@DELETE (cart R N') (@hull (cart R N') (@conic N') (@relative_interior N' s)) (@vec N' (NUMERAL 0%N))) (@relative_interior N' (@hull (cart R N') (@conic N') s)). +Axiom thm_CONIC_SUBSET_AS_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@conic N' c) /\ ((~ (c = (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N'))))) /\ (@SUBSET (cart R N') c (@hull (cart R N') (@conic N') s)))) -> (@hull (cart R N') (@conic N') (@INTER (cart R N') s c)) = c. +Axiom thm_RELATIVE_INTERIOR_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s))) -> (@relative_interior N' (@hull (cart R N') (@conic N') s)) = (@DELETE (cart R N') (@hull (cart R N') (@conic N') (@relative_interior N' s)) (@vec N' (NUMERAL 0%N))). +Axiom thm_CONIC_HULL_RELATIVE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s))) -> (@hull (cart R N') (@conic N') (@relative_interior N' s)) = (@COND ((cart R N') -> Prop) ((@relative_interior N' s) = (@EMPTY (cart R N'))) (@EMPTY (cart R N')) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' (@hull (cart R N') (@conic N') s)))). +Axiom thm_CONIC_HULL_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s))) /\ (@SUBSET (cart R N') t s)) -> (@hull (cart R N') (@conic N') (@DIFF (cart R N') s t)) = (@COND ((cart R N') -> Prop) (t = s) (@EMPTY (cart R N')) (@DIFF (cart R N') (@hull (cart R N') (@conic N') s) (@DELETE (cart R N') (@hull (cart R N') (@conic N') t) (@vec N' (NUMERAL 0%N))))). +Axiom thm_CONIC_HULL_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') (@UNION (cart R N') s t)))) -> (@hull (cart R N') (@conic N') (@INTER (cart R N') s t)) = (@COND ((cart R N') -> Prop) ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))) (@EMPTY (cart R N')) (@INTER (cart R N') (@hull (cart R N') (@conic N') s) (@hull (cart R N') (@conic N') t))). +Axiom thm_INTER_CONIC_HULL_SUBSETS_CONVEX_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@convex N' u) /\ ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' u)) /\ (@SUBSET (cart R N') (@UNION (cart R N') s t) (@relative_frontier N' u)))) -> (@INTER (cart R N') (@hull (cart R N') (@conic N') s) (@hull (cart R N') (@conic N') t)) = (@COND ((cart R N') -> Prop) ((s = (@EMPTY (cart R N'))) \/ (t = (@EMPTY (cart R N')))) (@EMPTY (cart R N')) (@COND ((cart R N') -> Prop) ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N'))) (@hull (cart R N') (@conic N') (@INTER (cart R N') s t)))). +Axiom thm_RELATIVE_FRONTIER_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s)))) -> (@relative_frontier N' (@hull (cart R N') (@conic N') s)) = (@COND ((cart R N') -> Prop) (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N')))) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N'))) (@hull (cart R N') (@conic N') (@relative_frontier N' s))). +Axiom thm_CONIC_HULL_RELATIVE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s)))) -> (@hull (cart R N') (@conic N') (@relative_frontier N' s)) = (@COND ((cart R N') -> Prop) (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N')))) (@EMPTY (cart R N')) (@relative_frontier N' (@hull (cart R N') (@conic N') s))). +Axiom thm_INTER_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') (@UNION (cart R N') s t)))) -> (@INTER (cart R N') (@hull (cart R N') (@conic N') s) (@hull (cart R N') (@conic N') t)) = (@COND ((cart R N') -> Prop) ((s = (@EMPTY (cart R N'))) \/ (t = (@EMPTY (cart R N')))) (@EMPTY (cart R N')) (@COND ((cart R N') -> Prop) ((@INTER (cart R N') s t) = (@EMPTY (cart R N'))) (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@EMPTY (cart R N'))) (@hull (cart R N') (@conic N') (@INTER (cart R N') s t)))). +Axiom thm_RELATIVE_INTERIOR_CONIC_HULL_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' (@hull (cart R N') (@conic N') s))) = (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)). +Axiom thm_facet_of : forall {_1167038 : Type'}, forall f : (cart R _1167038) -> Prop, forall s : (cart R _1167038) -> Prop, (@facet_of _1167038 f s) = ((@face_of _1167038 f s) /\ ((~ (f = (@EMPTY (cart R _1167038)))) /\ ((@aff_dim _1167038 f) = (int_sub (@aff_dim _1167038 s) (Z_of_N (NUMERAL (BIT1 0%N))))))). +Axiom thm_FACET_OF_EMPTY : forall {_1167072 : Type'}, forall s : (cart R _1167072) -> Prop, ~ (@facet_of _1167072 s (@EMPTY (cart R _1167072))). +Axiom thm_FACET_OF_REFL : forall {_1167098 : Type'}, forall s : (cart R _1167098) -> Prop, ~ (@facet_of _1167098 s s). +Axiom thm_FACET_OF_IMP_FACE_OF : forall {_1167112 : Type'}, forall f : (cart R _1167112) -> Prop, forall s : (cart R _1167112) -> Prop, (@facet_of _1167112 f s) -> @face_of _1167112 f s. +Axiom thm_FACET_OF_IMP_SUBSET : forall {_1167129 : Type'}, forall f : (cart R _1167129) -> Prop, forall s : (cart R _1167129) -> Prop, (@facet_of _1167129 f s) -> @SUBSET (cart R _1167129) f s. +Axiom thm_FACET_OF_IMP_PROPER : forall {_1167162 : Type'}, forall f : (cart R _1167162) -> Prop, forall s : (cart R _1167162) -> Prop, (@facet_of _1167162 f s) -> (~ (f = (@EMPTY (cart R _1167162)))) /\ (~ (f = s)). +Axiom thm_FACET_OF_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@facet_of N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) f) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@facet_of N' f s). +Axiom thm_FACET_OF_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@facet_of N' (@IMAGE (cart R M) (cart R N') f c) (@IMAGE (cart R M) (cart R N') f s)) = (@facet_of M c s). +Axiom thm_HYPERPLANE_FACET_OF_HALFSPACE_LE : forall {N' : Type'}, forall a : cart R N', forall b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) -> @facet_of N' (@GSPEC (cart R N') (fun GEN_PVAR_5247 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5247 ((@dot N' a x) = b) x)) (@GSPEC (cart R N') (fun GEN_PVAR_5248 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5248 (Rle (@dot N' a x) b) x)). +Axiom thm_HYPERPLANE_FACET_OF_HALFSPACE_GE : forall {N' : Type'}, forall a : cart R N', forall b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) -> @facet_of N' (@GSPEC (cart R N') (fun GEN_PVAR_5249 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5249 ((@dot N' a x) = b) x)) (@GSPEC (cart R N') (fun GEN_PVAR_5250 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5250 (Rge (@dot N' a x) b) x)). +Axiom thm_FACET_OF_HALFSPACE_LE : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall a : cart R N', forall b : R, (@facet_of N' f (@GSPEC (cart R N') (fun GEN_PVAR_5252 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5252 (Rle (@dot N' a x) b) x))) = ((~ (a = (@vec N' (NUMERAL 0%N)))) /\ (f = (@GSPEC (cart R N') (fun GEN_PVAR_5253 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5253 ((@dot N' a x) = b) x)))). +Axiom thm_FACET_OF_HALFSPACE_GE : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall a : cart R N', forall b : R, (@facet_of N' f (@GSPEC (cart R N') (fun GEN_PVAR_5254 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5254 (Rge (@dot N' a x) b) x))) = ((~ (a = (@vec N' (NUMERAL 0%N)))) /\ (f = (@GSPEC (cart R N') (fun GEN_PVAR_5255 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5255 ((@dot N' a x) = b) x)))). +Axiom thm_EXPOSED_FACET_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ (@facet_of N' t s)) -> @exposed_face_of N' t s. +Axiom thm_OPEN_IN_RELATIVE_FRONTIER_INTERIOR_FACET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@convex N' s) /\ (@facet_of N' f s)) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@relative_frontier N' s)) (@relative_interior N' f). +Axiom thm_CLOSED_EXTREME_POINTS_2D : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closed N' s) /\ ((@convex N' s) /\ (int_le (@aff_dim N' s) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> @closed N' (@GSPEC (cart R N') (fun GEN_PVAR_5264 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5264 (@extreme_point_of N' x s) x)). +Axiom thm_edge_of : forall {_1168282 : Type'}, forall s : (cart R _1168282) -> Prop, forall e : (cart R _1168282) -> Prop, (@edge_of _1168282 e s) = ((@face_of _1168282 e s) /\ ((@aff_dim _1168282 e) = (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_EDGE_OF_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@edge_of N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) f) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@edge_of N' f s). +Axiom thm_EDGE_OF_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@edge_of N' (@IMAGE (cart R M) (cart R N') f c) (@IMAGE (cart R M) (cart R N') f s)) = (@edge_of M c s). +Axiom thm_EDGE_OF_IMP_SUBSET : forall {_1168408 : Type'}, forall s : (cart R _1168408) -> Prop, forall t : (cart R _1168408) -> Prop, (@edge_of _1168408 s t) -> @SUBSET (cart R _1168408) s t. +Axiom thm_EXTREME_POINT_EXISTS_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((@convex N' s) /\ (~ (s = (@EMPTY (cart R N')))))) -> exists x : cart R N', @extreme_point_of N' x s. +Axiom thm_KREIN_MILMAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (@compact N' s)) -> s = (@closure N' (@hull (cart R N') (@convex N') (@GSPEC (cart R N') (fun GEN_PVAR_5271 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5271 (@extreme_point_of N' x s) x)))). +Axiom thm_KREIN_MILMAN_MINKOWSKI : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (@compact N' s)) -> s = (@hull (cart R N') (@convex N') (@GSPEC (cart R N') (fun GEN_PVAR_5277 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5277 (@extreme_point_of N' x s) x))). +Axiom thm_KREIN_MILMAN_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : (cart R N') -> Prop, ((@compact N' s) /\ (@convex N' s)) -> ((@hull (cart R N') (@convex N') e) = s) = ((@SUBSET (cart R N') e s) /\ (@SUBSET (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5279 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5279 (@extreme_point_of N' x s) x)) e)). +Axiom thm_KREIN_MILMAN_POLYTOPE : forall {_1169249 : Type'}, forall s : (cart R _1169249) -> Prop, (@FINITE (cart R _1169249) s) -> (@hull (cart R _1169249) (@convex _1169249) s) = (@hull (cart R _1169249) (@convex _1169249) (@GSPEC (cart R _1169249) (fun GEN_PVAR_5280 : cart R _1169249 => exists x : cart R _1169249, @SETSPEC (cart R _1169249) GEN_PVAR_5280 (@extreme_point_of _1169249 x (@hull (cart R _1169249) (@convex _1169249) s)) x))). +Axiom thm_EXTREME_POINTS_OF_CONVEX_HULL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (forall t : (cart R N') -> Prop, (@PSUBSET (cart R N') t s) -> ~ ((@hull (cart R N') (@convex N') t) = (@hull (cart R N') (@convex N') s)))) -> (@GSPEC (cart R N') (fun GEN_PVAR_5282 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5282 (@extreme_point_of N' x (@hull (cart R N') (@convex N') s)) x)) = s. +Axiom thm_EXTREME_POINT_OF_CONVEX_HULL_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@compact N' s) /\ (forall t : (cart R N') -> Prop, (@PSUBSET (cart R N') t s) -> ~ ((@hull (cart R N') (@convex N') t) = (@hull (cart R N') (@convex N') s)))) -> (@extreme_point_of N' x (@hull (cart R N') (@convex N') s)) = (@IN (cart R N') x s). +Axiom thm_EXTREME_POINT_OF_CONVEX_HULL_CONVEX_INDEPENDENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@compact N' s) /\ (forall a : cart R N', (@IN (cart R N') a s) -> ~ (@IN (cart R N') a (@hull (cart R N') (@convex N') (@DELETE (cart R N') s a))))) -> (@extreme_point_of N' x (@hull (cart R N') (@convex N') s)) = (@IN (cart R N') x s). +Axiom thm_EXTREME_POINT_OF_CONVEX_HULL_AFFINE_INDEPENDENT : forall {_1169470 : Type'}, forall s : (cart R _1169470) -> Prop, forall x : cart R _1169470, (~ (@affine_dependent _1169470 s)) -> (@extreme_point_of _1169470 x (@hull (cart R _1169470) (@convex _1169470) s)) = (@IN (cart R _1169470) x s). +Axiom thm_EXTREME_POINTS_OF_CONVEX_HULL_AFFINE_INDEPENDENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> (@GSPEC (cart R N') (fun GEN_PVAR_5283 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5283 (@extreme_point_of N' x (@hull (cart R N') (@convex N') s)) x)) = s. +Axiom thm_SIMPLEX_VERTICES_UNIQUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((~ (@affine_dependent N' s)) /\ ((~ (@affine_dependent N' t)) /\ ((@hull (cart R N') (@convex N') s) = (@hull (cart R N') (@convex N') t)))) -> s = t. +Axiom thm_EXTREME_POINT_OF_CONVEX_HULL_2 : forall {_1169592 : Type'}, forall a : cart R _1169592, forall b : cart R _1169592, forall x : cart R _1169592, (@extreme_point_of _1169592 x (@hull (cart R _1169592) (@convex _1169592) (@INSERT (cart R _1169592) a (@INSERT (cart R _1169592) b (@EMPTY (cart R _1169592)))))) = ((x = a) \/ (x = b)). +Axiom thm_EXTREME_POINT_OF_SEGMENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall x : cart R N', (@extreme_point_of N' x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = ((x = a) \/ (x = b)). +Axiom thm_FACE_OF_CONVEX_HULL_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ (@face_of N' t (@hull (cart R N') (@convex N') s))) -> exists s' : (cart R N') -> Prop, (@SUBSET (cart R N') s' s) /\ (t = (@hull (cart R N') (@convex N') s')). +Axiom thm_FACE_OF_CONVEX_HULL_AFFINE_INDEPENDENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> (@face_of N' t (@hull (cart R N') (@convex N') s)) = (exists c : (cart R N') -> Prop, (@SUBSET (cart R N') c s) /\ (t = (@hull (cart R N') (@convex N') c))). +Axiom thm_FACET_OF_CONVEX_HULL_AFFINE_INDEPENDENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> (@facet_of N' t (@hull (cart R N') (@convex N') s)) = ((~ (t = (@EMPTY (cart R N')))) /\ (exists u : cart R N', (@IN (cart R N') u s) /\ (t = (@hull (cart R N') (@convex N') (@DELETE (cart R N') s u))))). +Axiom thm_FACET_OF_CONVEX_HULL_AFFINE_INDEPENDENT_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> (@facet_of N' t (@hull (cart R N') (@convex N') s)) = ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@CARD (cart R N') s)) /\ (exists u : cart R N', (@IN (cart R N') u s) /\ (t = (@hull (cart R N') (@convex N') (@DELETE (cart R N') s u))))). +Axiom thm_SEGMENT_FACE_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@face_of N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) s) -> (@extreme_point_of N' a s) /\ (@extreme_point_of N' b s). +Axiom thm_SEGMENT_EDGE_OF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@edge_of N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) s) -> (~ (a = b)) /\ ((@extreme_point_of N' a s) /\ (@extreme_point_of N' b s)). +Axiom thm_EXTREME_POINT_OF_CONVEX_HULL_INSERT_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall x : cart R N', ((@FINITE (cart R N') s) /\ (~ (@IN (cart R N') a (@hull (cart R N') (@affine N') s)))) -> (@extreme_point_of N' x (@hull (cart R N') (@convex N') (@INSERT (cart R N') a s))) = ((x = a) \/ (@extreme_point_of N' x (@hull (cart R N') (@convex N') s))). +Axiom thm_FACE_OF_CONVEX_HULL_INSERT_EQ : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall a : cart R N', ((@FINITE (cart R N') s) /\ (~ (@IN (cart R N') a (@hull (cart R N') (@affine N') s)))) -> (@face_of N' f (@hull (cart R N') (@convex N') (@INSERT (cart R N') a s))) = ((@face_of N' f (@hull (cart R N') (@convex N') s)) \/ (exists f' : (cart R N') -> Prop, (@face_of N' f' (@hull (cart R N') (@convex N') s)) /\ (f = (@hull (cart R N') (@convex N') (@INSERT (cart R N') a f'))))). +Axiom thm_CONVEX_HULL_REDUNDANT_SUBSET_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@SUBSET (cart R N') t s) /\ (@DISJOINT (cart R N') (@DIFF (cart R N') s t) (@GSPEC (cart R N') (fun GEN_PVAR_5288 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5288 (@extreme_point_of N' x (@hull (cart R N') (@convex N') s)) x))))) -> (@hull (cart R N') (@convex N') s) = (@hull (cart R N') (@convex N') t). +Axiom thm_CONVEX_HULL_REDUNDANT_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@SUBSET (cart R N') t s) /\ (@SUBSET (cart R N') (@DIFF (cart R N') s t) (@interior N' (@hull (cart R N') (@convex N') s))))) -> (@hull (cart R N') (@convex N') s) = (@hull (cart R N') (@convex N') t). +Axiom thm_CONVEX_HULL_REDUNDANT_SUBSET_REV : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@hull (cart R N') (@convex N') s) = (@hull (cart R N') (@convex N') t)) -> @DISJOINT (cart R N') (@DIFF (cart R N') s t) (@GSPEC (cart R N') (fun GEN_PVAR_5289 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5289 (@extreme_point_of N' x (@hull (cart R N') (@convex N') s)) x)). +Axiom thm_CONVEX_HULL_INSERT_REDUNDANT_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall c : cart R N', ((@IN (cart R N') a (@hull (cart R N') (@convex N') (@INSERT (cart R N') c s))) /\ ((@IN (cart R N') b (@hull (cart R N') (@convex N') (@INSERT (cart R N') c s))) /\ (@IN (cart R N') c (@open_segment N' (@pair (cart R N') (cart R N') a b))))) -> (@hull (cart R N') (@convex N') (@INSERT (cart R N') c s)) = (@hull (cart R N') (@convex N') s). +Axiom thm_CONVEX_HULL_REDUNDANT_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@hull (cart R N') (@convex N') (@DELETE (cart R N') s a)) = (@hull (cart R N') (@convex N') s)) = (~ (@extreme_point_of N' a (@hull (cart R N') (@convex N') s))). +Axiom thm_HAUSDIST_FRONTIERS_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@convex N' t) /\ ((@bounded N' s) /\ (@bounded N' t)))) -> (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@frontier N' s) (@frontier N' t))) = (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)). +Axiom thm_HAUSDIST_STILL_OUTSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', ((@bounded N' s) /\ ((@bounded N' t) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) s))))) -> ~ (@IN (cart R N') x t). +Axiom thm_HAUSDIST_STILL_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', ((@bounded N' s) /\ ((@bounded N' t) /\ ((@convex N' s) /\ ((@convex N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) (@DIFF (cart R N') (@UNIV (cart R N')) s))))))))) -> @IN (cart R N') x t. +Axiom thm_HAUSDIST_STILL_INSIDE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', ((@bounded N' s) /\ ((@bounded N' t) /\ ((@convex N' s) /\ ((@convex N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) (@DIFF (cart R N') (@UNIV (cart R N')) s))))))))) -> @IN (cart R N') x (@interior N' t). +Axiom thm_HAUSDIST_STILL_NONEMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ ((@convex N' s) /\ (~ ((@interior N' s) = (@EMPTY (cart R N')))))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall s' : (cart R N') -> Prop, ((@bounded N' s') /\ ((@convex N' s') /\ ((~ (s' = (@EMPTY (cart R N')))) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s s')) e)))) -> ~ ((@interior N' s') = (@EMPTY (cart R N')))). +Axiom thm_HAUSDIST_STILL_SAME_PLACE_STRONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', ((@bounded N' s) /\ ((@bounded N' t) /\ ((@convex N' s) /\ ((@convex N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) (@frontier N' s))))))))) -> (~ (@IN (cart R N') x (@frontier N' s))) /\ ((~ (@IN (cart R N') x (@frontier N' t))) /\ ((@IN (cart R N') x t) = (@IN (cart R N') x s))). +Axiom thm_HAUSDIST_STILL_SAME_PLACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall x : cart R N', ((@bounded N' s) /\ ((@bounded N' t) /\ ((@convex N' s) /\ ((@convex N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) (@setdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@INSERT (cart R N') x (@EMPTY (cart R N'))) (@frontier N' s))))))))) -> (@IN (cart R N') x t) = (@IN (cart R N') x s). +Axiom thm_HAUSDIST_STILL_SAME_PLACE_CONIC_HULL_STRONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex N' s) /\ ((@bounded N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@closure N' s))) /\ ((~ (x = (@vec N' (NUMERAL 0%N)))) /\ (~ (@IN (cart R N') x (@frontier N' (@hull (cart R N') (@conic N') s))))))))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall s' : (cart R N') -> Prop, ((@convex N' s') /\ ((@bounded N' s') /\ ((~ (s' = (@EMPTY (cart R N')))) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s s')) e)))) -> (~ (@IN (cart R N') x (@frontier N' (@hull (cart R N') (@conic N') s')))) /\ ((@IN (cart R N') x (@hull (cart R N') (@conic N') s')) = (@IN (cart R N') x (@hull (cart R N') (@conic N') s)))). +Axiom thm_HAUSDIST_STILL_SAME_PLACE_CONIC_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', ((@convex N' s) /\ ((@bounded N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@closure N' s))) /\ (~ (@IN (cart R N') x (@frontier N' (@hull (cart R N') (@conic N') s)))))))) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall s' : (cart R N') -> Prop, ((@convex N' s') /\ ((@bounded N' s') /\ ((~ (s' = (@EMPTY (cart R N')))) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s s')) e)))) -> (@IN (cart R N') x (@hull (cart R N') (@conic N') s')) = (@IN (cart R N') x (@hull (cart R N') (@conic N') s))). +Axiom thm_CONVEX_SYMDIFF_CLOSE_TO_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall e : R, ((@bounded N' s) /\ ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@bounded N' t) /\ ((@convex N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) e))))))) -> @SUBSET (cart R N') (@UNION (cart R N') (@DIFF (cart R N') s t) (@DIFF (cart R N') t s)) (@GSPEC (cart R N') (fun GEN_PVAR_5292 : cart R N' => exists u : cart R N', exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5292 ((@IN (cart R N') u (@frontier N' s)) /\ (@IN (cart R N') v (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) e)))) (@vector_add N' u v))). +Axiom thm_polytope : forall {_1174600 : Type'}, forall s : (cart R _1174600) -> Prop, (@polytope _1174600 s) = (exists v : (cart R _1174600) -> Prop, (@FINITE (cart R _1174600) v) /\ (s = (@hull (cart R _1174600) (@convex _1174600) v))). +Axiom thm_POLYTOPE_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@polytope N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@polytope N' s). +Axiom thm_POLYTOPE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall p : (cart R M) -> Prop, ((@linear M N' f) /\ (@polytope M p)) -> @polytope N' (@IMAGE (cart R M) (cart R N') f p). +Axiom thm_POLYTOPE_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@polytope N' (@IMAGE (cart R M) (cart R N') f s)) = (@polytope M s). +Axiom thm_POLYTOPE_EMPTY : forall {_1174723 : Type'}, @polytope _1174723 (@EMPTY (cart R _1174723)). +Axiom thm_POLYTOPE_NEGATIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polytope N' s) -> @polytope N' (@IMAGE (cart R N') (cart R N') (@vector_neg N') s). +Axiom thm_POLYTOPE_CONVEX_HULL : forall {_1174761 : Type'}, forall s : (cart R _1174761) -> Prop, (@FINITE (cart R _1174761) s) -> @polytope _1174761 (@hull (cart R _1174761) (@convex _1174761) s). +Axiom thm_POLYTOPE_SEGMENT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', @polytope N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_POLYTOPE_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@polytope M s) /\ (@polytope N' t)) -> @polytope (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_POLYTOPE_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@polytope (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@polytope M s) /\ (@polytope N' t)))). +Axiom thm_FACE_OF_POLYTOPE_POLYTOPE : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@polytope N' s) /\ (@face_of N' f s)) -> @polytope N' f. +Axiom thm_FINITE_POLYTOPE_FACES : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polytope N' s) -> @FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5294 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5294 (@face_of N' f s) f)). +Axiom thm_FINITE_POLYTOPE_FACETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polytope N' s) -> @FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5298 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5298 (@facet_of N' f s) f)). +Axiom thm_POLYTOPE_INTERVAL : forall {_1175051 : Type'}, forall a : cart R _1175051, forall b : cart R _1175051, @polytope _1175051 (@closed_interval _1175051 (@cons (prod (cart R _1175051) (cart R _1175051)) (@pair (cart R _1175051) (cart R _1175051) a b) (@nil (prod (cart R _1175051) (cart R _1175051))))). +Axiom thm_POLYTOPE_SING : forall {_1175059 : Type'}, forall a : cart R _1175059, @polytope _1175059 (@INSERT (cart R _1175059) a (@EMPTY (cart R _1175059))). +Axiom thm_POLYTOPE_SCALING : forall {N' : Type'}, forall c : R, forall s : (cart R N') -> Prop, (@polytope N' s) -> @polytope N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s). +Axiom thm_POLYTOPE_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@polytope N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@polytope N' s)). +Axiom thm_POLYTOPE_AFFINITY_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@polytope N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = ((m = (R_of_N (NUMERAL 0%N))) \/ (@polytope N' s)). +Axiom thm_POLYTOPE_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@polytope N' s) -> @polytope N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s). +Axiom thm_POLYTOPE_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@polytope N' s) /\ (@polytope N' t)) -> @polytope N' (@GSPEC (cart R N') (fun GEN_PVAR_5300 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_5300 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_POLYTOPE_IMP_COMPACT : forall {_1175315 : Type'}, forall s : (cart R _1175315) -> Prop, (@polytope _1175315 s) -> @compact _1175315 s. +Axiom thm_POLYTOPE_IMP_CONVEX : forall {_1175326 : Type'}, forall s : (cart R _1175326) -> Prop, (@polytope _1175326 s) -> @convex _1175326 s. +Axiom thm_POLYTOPE_IMP_CLOSED : forall {_1175337 : Type'}, forall s : (cart R _1175337) -> Prop, (@polytope _1175337 s) -> @closed _1175337 s. +Axiom thm_POLYTOPE_IMP_BOUNDED : forall {_1175348 : Type'}, forall s : (cart R _1175348) -> Prop, (@polytope _1175348 s) -> @bounded _1175348 s. +Axiom thm_POLYTOPE_1 : forall s : (cart R unit) -> Prop, (@polytope unit s) = (exists a : cart R unit, exists b : cart R unit, s = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_POLYTOPE_AFF_DIM_1 : forall {N' : Type'}, forall p : (cart R N') -> Prop, ((@polytope N' p) /\ ((@aff_dim N' p) = (Z_of_N (NUMERAL (BIT1 0%N))))) = (exists a : cart R N', exists b : cart R N', (~ (a = b)) /\ (p = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_FACE_OF_POLYTOPE_INSERT_EQ : forall {N' : Type'}, forall f : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall a : cart R N', ((@polytope N' s) /\ (~ (@IN (cart R N') a (@hull (cart R N') (@affine N') s)))) -> (@face_of N' f (@hull (cart R N') (@convex N') (@INSERT (cart R N') a s))) = ((@face_of N' f s) \/ (exists f' : (cart R N') -> Prop, (@face_of N' f' s) /\ (f = (@hull (cart R N') (@convex N') (@INSERT (cart R N') a f'))))). +Axiom thm_CONVEX_INNER_APPROXIMATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@bounded N' s) /\ ((@convex N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists k : (cart R N') -> Prop, (@FINITE (cart R N') k) /\ ((@SUBSET (cart R N') (@hull (cart R N') (@convex N') k) s) /\ ((Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@hull (cart R N') (@convex N') k) s)) e) /\ ((k = (@EMPTY (cart R N'))) -> s = (@EMPTY (cart R N'))))). +Axiom thm_CONVEX_OUTER_APPROXIMATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@bounded N' s) /\ ((@convex N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists k : (cart R N') -> Prop, (@FINITE (cart R N') k) /\ ((@SUBSET (cart R N') s (@hull (cart R N') (@convex N') k)) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@hull (cart R N') (@convex N') k) s)) e)). +Axiom thm_CONVEX_INNER_POLYTOPE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@bounded N' s) /\ ((@convex N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists p : (cart R N') -> Prop, (@polytope N' p) /\ ((@SUBSET (cart R N') p s) /\ ((Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) p s)) e) /\ ((p = (@EMPTY (cart R N'))) -> s = (@EMPTY (cart R N'))))). +Axiom thm_CONVEX_OUTER_POLYTOPE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@bounded N' s) /\ ((@convex N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists p : (cart R N') -> Prop, (@polytope N' p) /\ ((@SUBSET (cart R N') s p) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) p s)) e)). +Axiom thm_polyhedron : forall {_1176324 : Type'}, forall s : (cart R _1176324) -> Prop, (@polyhedron _1176324 s) = (exists f : ((cart R _1176324) -> Prop) -> Prop, (@FINITE ((cart R _1176324) -> Prop) f) /\ ((s = (@INTERS (cart R _1176324) f)) /\ (forall h : (cart R _1176324) -> Prop, (@IN ((cart R _1176324) -> Prop) h f) -> exists a : cart R _1176324, exists b : R, (~ (a = (@vec _1176324 (NUMERAL 0%N)))) /\ (h = (@GSPEC (cart R _1176324) (fun GEN_PVAR_5307 : cart R _1176324 => exists x : cart R _1176324, @SETSPEC (cart R _1176324) GEN_PVAR_5307 (Rle (@dot _1176324 a x) b) x)))))). +Axiom thm_POLYHEDRON_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@polyhedron N' s) /\ (@polyhedron N' t)) -> @polyhedron N' (@INTER (cart R N') s t). +Axiom thm_POLYHEDRON_UNIV : forall {N' : Type'}, @polyhedron N' (@UNIV (cart R N')). +Axiom thm_POLYHEDRON_POSITIVE_ORTHANT : forall {N' : Type'}, @polyhedron N' (@GSPEC (cart R N') (fun GEN_PVAR_5309 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5309 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' x i)) x)). +Axiom thm_POLYHEDRON_INTERS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @polyhedron N' s)) -> @polyhedron N' (@INTERS (cart R N') f). +Axiom thm_POLYHEDRON_EMPTY : forall {N' : Type'}, @polyhedron N' (@EMPTY (cart R N')). +Axiom thm_POLYHEDRON_HALFSPACE_LE : forall {N' : Type'}, forall a : cart R N', forall b : R, @polyhedron N' (@GSPEC (cart R N') (fun GEN_PVAR_5314 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5314 (Rle (@dot N' a x) b) x)). +Axiom thm_POLYHEDRON_HALFSPACE_GE : forall {N' : Type'}, forall a : cart R N', forall b : R, @polyhedron N' (@GSPEC (cart R N') (fun GEN_PVAR_5315 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5315 (Rge (@dot N' a x) b) x)). +Axiom thm_POLYHEDRON_HYPERPLANE : forall {N' : Type'}, forall a : cart R N', forall b : R, @polyhedron N' (@GSPEC (cart R N') (fun GEN_PVAR_5319 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5319 ((@dot N' a x) = b) x)). +Axiom thm_AFFINE_IMP_POLYHEDRON : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@affine N' s) -> @polyhedron N' s. +Axiom thm_POLYHEDRON_IMP_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) -> @closed N' s. +Axiom thm_POLYHEDRON_IMP_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) -> @convex N' s. +Axiom thm_POLYHEDRON_AFFINE_HULL : forall {_1176904 : Type'}, forall s : (cart R _1176904) -> Prop, @polyhedron _1176904 (@hull (cart R _1176904) (@affine _1176904) s). +Axiom thm_POLYHEDRON_INTER_AFFINE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) = (exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ ((s = (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f))) /\ (forall h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (h = (@GSPEC (cart R N') (fun GEN_PVAR_5320 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5320 (Rle (@dot N' a x) b) x)))))). +Axiom thm_POLYHEDRON_INTER_AFFINE_PARALLEL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) = (exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ ((s = (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f))) /\ (forall h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((h = (@GSPEC (cart R N') (fun GEN_PVAR_5324 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5324 (Rle (@dot N' a x) b) x))) /\ (forall x : cart R N', (@IN (cart R N') x (@hull (cart R N') (@affine N') s)) -> @IN (cart R N') (@vector_add N' x a) (@hull (cart R N') (@affine N') s)))))). +Axiom thm_POLYHEDRON_INTER_AFFINE_PARALLEL_MINIMAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) = (exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ ((s = (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f))) /\ ((forall h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((h = (@GSPEC (cart R N') (fun GEN_PVAR_5325 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5325 (Rle (@dot N' a x) b) x))) /\ (forall x : cart R N', (@IN (cart R N') x (@hull (cart R N') (@affine N') s)) -> @IN (cart R N') (@vector_add N' x a) (@hull (cart R N') (@affine N') s)))) /\ (forall f' : ((cart R N') -> Prop) -> Prop, (@PSUBSET ((cart R N') -> Prop) f' f) -> @PSUBSET (cart R N') s (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f')))))). +Axiom thm_POLYHEDRON_INTER_AFFINE_MINIMAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) = (exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ ((s = (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f))) /\ ((forall h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (h = (@GSPEC (cart R N') (fun GEN_PVAR_5326 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5326 (Rle (@dot N' a x) b) x)))) /\ (forall f' : ((cart R N') -> Prop) -> Prop, (@PSUBSET ((cart R N') -> Prop) f' f) -> @PSUBSET (cart R N') s (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f')))))). +Axiom thm_RELATIVE_INTERIOR_POLYHEDRON_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : ((cart R N') -> Prop) -> Prop, forall a : ((cart R N') -> Prop) -> cart R N', forall b : ((cart R N') -> Prop) -> R, ((@FINITE ((cart R N') -> Prop) f) /\ ((s = (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f))) /\ ((forall h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) -> (~ ((a h) = (@vec N' (NUMERAL 0%N)))) /\ (h = (@GSPEC (cart R N') (fun GEN_PVAR_5328 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5328 (Rle (@dot N' (a h) x) (b h)) x)))) /\ (forall f' : ((cart R N') -> Prop) -> Prop, (@PSUBSET ((cart R N') -> Prop) f' f) -> @PSUBSET (cart R N') s (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f')))))) -> (@relative_interior N' s) = (@GSPEC (cart R N') (fun GEN_PVAR_5329 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5329 ((@IN (cart R N') x s) /\ (forall h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) -> Rlt (@dot N' (a h) x) (b h))) x)). +Axiom thm_FACET_OF_POLYHEDRON_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : ((cart R N') -> Prop) -> Prop, forall a : ((cart R N') -> Prop) -> cart R N', forall b : ((cart R N') -> Prop) -> R, ((@FINITE ((cart R N') -> Prop) f) /\ ((s = (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f))) /\ ((forall h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) -> (~ ((a h) = (@vec N' (NUMERAL 0%N)))) /\ (h = (@GSPEC (cart R N') (fun GEN_PVAR_5337 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5337 (Rle (@dot N' (a h) x) (b h)) x)))) /\ (forall f' : ((cart R N') -> Prop) -> Prop, (@PSUBSET ((cart R N') -> Prop) f' f) -> @PSUBSET (cart R N') s (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f')))))) -> forall c : (cart R N') -> Prop, (@facet_of N' c s) = (exists h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) /\ (c = (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5338 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5338 ((@dot N' (a h) x) = (b h)) x))))). +Axiom thm_FACE_OF_POLYHEDRON_SUBSET_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : ((cart R N') -> Prop) -> Prop, forall a : ((cart R N') -> Prop) -> cart R N', forall b : ((cart R N') -> Prop) -> R, ((@FINITE ((cart R N') -> Prop) f) /\ ((s = (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f))) /\ ((forall h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) -> (~ ((a h) = (@vec N' (NUMERAL 0%N)))) /\ (h = (@GSPEC (cart R N') (fun GEN_PVAR_5340 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5340 (Rle (@dot N' (a h) x) (b h)) x)))) /\ (forall f' : ((cart R N') -> Prop) -> Prop, (@PSUBSET ((cart R N') -> Prop) f' f) -> @PSUBSET (cart R N') s (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f')))))) -> forall c : (cart R N') -> Prop, ((@face_of N' c s) /\ ((~ (c = (@EMPTY (cart R N')))) /\ (~ (c = s)))) -> exists h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) /\ (@SUBSET (cart R N') c (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5341 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5341 ((@dot N' (a h) x) = (b h)) x)))). +Axiom thm_FACE_OF_POLYHEDRON_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : ((cart R N') -> Prop) -> Prop, forall a : ((cart R N') -> Prop) -> cart R N', forall b : ((cart R N') -> Prop) -> R, ((@FINITE ((cart R N') -> Prop) f) /\ ((s = (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f))) /\ ((forall h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) -> (~ ((a h) = (@vec N' (NUMERAL 0%N)))) /\ (h = (@GSPEC (cart R N') (fun GEN_PVAR_5359 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5359 (Rle (@dot N' (a h) x) (b h)) x)))) /\ (forall f' : ((cart R N') -> Prop) -> Prop, (@PSUBSET ((cart R N') -> Prop) f' f) -> @PSUBSET (cart R N') s (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f')))))) -> forall c : (cart R N') -> Prop, ((@face_of N' c s) /\ ((~ (c = (@EMPTY (cart R N')))) /\ (~ (c = s)))) -> c = (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5364 : (cart R N') -> Prop => exists h : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5364 ((@IN ((cart R N') -> Prop) h f) /\ (@SUBSET (cart R N') c (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5363 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5363 ((@dot N' (a h) x) = (b h)) x))))) (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5362 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5362 ((@dot N' (a h) x) = (b h)) x)))))). +Axiom thm_FACET_OF_POLYHEDRON : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@polyhedron N' s) /\ (@facet_of N' c s)) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((@SUBSET (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5365 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5365 (Rle (@dot N' a x) b) x))) /\ (c = (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5366 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5366 ((@dot N' a x) = b) x))))). +Axiom thm_FACE_OF_POLYHEDRON : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@polyhedron N' s) /\ ((@face_of N' c s) /\ ((~ (c = (@EMPTY (cart R N')))) /\ (~ (c = s))))) -> c = (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5367 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5367 ((@facet_of N' f s) /\ (@SUBSET (cart R N') c f)) f))). +Axiom thm_FACE_OF_POLYHEDRON_SUBSET_FACET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@polyhedron N' s) /\ ((@face_of N' c s) /\ ((~ (c = (@EMPTY (cart R N')))) /\ (~ (c = s))))) -> exists f : (cart R N') -> Prop, (@facet_of N' f s) /\ (@SUBSET (cart R N') c f). +Axiom thm_FACE_OF_POLYHEDRON_FACE_OF_FACET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@polyhedron N' s) /\ ((@face_of N' c s) /\ ((~ (c = (@EMPTY (cart R N')))) /\ (~ (c = s))))) -> exists f : (cart R N') -> Prop, (@face_of N' c f) /\ (@facet_of N' f s). +Axiom thm_EXPOSED_FACE_OF_POLYHEDRON : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, (@polyhedron N' s) -> (@exposed_face_of N' f s) = (@face_of N' f s). +Axiom thm_FACE_OF_POLYHEDRON_POLYHEDRON : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@polyhedron N' s) /\ (@face_of N' c s)) -> @polyhedron N' c. +Axiom thm_FINITE_POLYHEDRON_FACES : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) -> @FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5384 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5384 (@face_of N' f s) f)). +Axiom thm_FINITE_POLYHEDRON_EXPOSED_FACES : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) -> @FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5385 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5385 (@exposed_face_of N' f s) f)). +Axiom thm_FINITE_POLYHEDRON_EXTREME_POINTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) -> @FINITE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5388 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5388 (@extreme_point_of N' v s) v)). +Axiom thm_FINITE_POLYHEDRON_FACETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) -> @FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5392 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5392 (@facet_of N' f s) f)). +Axiom thm_RELATIVE_INTERIOR_OF_POLYHEDRON : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) -> (@relative_interior N' s) = (@DIFF (cart R N') s (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5395 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5395 (@facet_of N' f s) f)))). +Axiom thm_RELATIVE_BOUNDARY_OF_POLYHEDRON : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) -> (@DIFF (cart R N') s (@relative_interior N' s)) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5396 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5396 (@facet_of N' f s) f))). +Axiom thm_RELATIVE_FRONTIER_OF_POLYHEDRON : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) -> (@relative_frontier N' s) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5397 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5397 (@facet_of N' f s) f))). +Axiom thm_RELATIVE_FRONTIER_OF_POLYHEDRON_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) -> (@relative_frontier N' s) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5398 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5398 ((@face_of N' f s) /\ (~ (f = s))) f))). +Axiom thm_FACETS_OF_POLYHEDRON_EXPLICIT_DISTINCT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : ((cart R N') -> Prop) -> Prop, forall a : ((cart R N') -> Prop) -> cart R N', forall b : ((cart R N') -> Prop) -> R, ((@FINITE ((cart R N') -> Prop) f) /\ ((s = (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f))) /\ ((forall h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) -> (~ ((a h) = (@vec N' (NUMERAL 0%N)))) /\ (h = (@GSPEC (cart R N') (fun GEN_PVAR_5402 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5402 (Rle (@dot N' (a h) x) (b h)) x)))) /\ (forall f' : ((cart R N') -> Prop) -> Prop, (@PSUBSET ((cart R N') -> Prop) f' f) -> @PSUBSET (cart R N') s (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f')))))) -> forall h1' : (cart R N') -> Prop, forall h2' : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) h1' f) /\ ((@IN ((cart R N') -> Prop) h2' f) /\ ((@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5403 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5403 ((@dot N' (a h1') x) = (b h1')) x))) = (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5404 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5404 ((@dot N' (a h2') x) = (b h2')) x)))))) -> h1' = h2'. +Axiom thm_POLYHEDRON_MINIMAL_LEMMA : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ ((@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f)) = s)) -> exists f' : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f') /\ ((@SUBSET ((cart R N') -> Prop) f' f) /\ (((@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f')) = s) /\ (forall f'' : ((cart R N') -> Prop) -> Prop, (@PSUBSET ((cart R N') -> Prop) f'' f') -> @PSUBSET (cart R N') s (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f''))))). +Axiom thm_POLYHEDRON : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) = (exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ (((@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f)) = s) /\ ((forall f' : ((cart R N') -> Prop) -> Prop, (@PSUBSET ((cart R N') -> Prop) f' f) -> @PSUBSET (cart R N') s (@INTER (cart R N') (@hull (cart R N') (@affine N') s) (@INTERS (cart R N') f'))) /\ (forall h : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) h f) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ (h = (@GSPEC (cart R N') (fun GEN_PVAR_5405 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5405 (Rle (@dot N' a x) b) x))))))). +Axiom thm_POLYHEDRON_EQ_FINITE_EXPOSED_FACES : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) = ((@closed N' s) /\ ((@convex N' s) /\ (@FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5418 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5418 (@exposed_face_of N' f s) f))))). +Axiom thm_POLYHEDRON_EQ_FINITE_FACES : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) = ((@closed N' s) /\ ((@convex N' s) /\ (@FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5420 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5420 (@face_of N' f s) f))))). +Axiom thm_POLYHEDRON_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@polyhedron N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@polyhedron N' s). +Axiom thm_POLYHEDRON_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@polyhedron N' (@IMAGE (cart R M) (cart R N') f s)) = (@polyhedron M s). +Axiom thm_POLYHEDRON_NEGATIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) -> @polyhedron N' (@IMAGE (cart R N') (cart R N') (@vector_neg N') s). +Axiom thm_POLYHEDRON_LINEAR_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, ((@linear M N' f) /\ (@polyhedron N' s)) -> @polyhedron M (@GSPEC (cart R M) (fun GEN_PVAR_5425 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5425 (@IN (cart R N') (f x) s) x)). +Axiom thm_POLYTOPE_EQ_BOUNDED_POLYHEDRON : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polytope N' s) = ((@polyhedron N' s) /\ (@bounded N' s)). +Axiom thm_POLYTOPE_INTER : forall {_1182914 : Type'}, forall s : (cart R _1182914) -> Prop, forall t : (cart R _1182914) -> Prop, ((@polytope _1182914 s) /\ (@polytope _1182914 t)) -> @polytope _1182914 (@INTER (cart R _1182914) s t). +Axiom thm_POLYTOPE_INTER_POLYHEDRON : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@polytope N' s) /\ (@polyhedron N' t)) -> @polytope N' (@INTER (cart R N') s t). +Axiom thm_POLYHEDRON_INTER_POLYTOPE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@polyhedron N' s) /\ (@polytope N' t)) -> @polytope N' (@INTER (cart R N') s t). +Axiom thm_POLYTOPE_IMP_POLYHEDRON : forall {_1182972 : Type'}, forall p : (cart R _1182972) -> Prop, (@polytope _1182972 p) -> @polyhedron _1182972 p. +Axiom thm_POLYTOPE_FACET_EXISTS : forall {N' : Type'}, forall p : (cart R N') -> Prop, ((@polytope N' p) /\ (int_lt (Z_of_N (NUMERAL 0%N)) (@aff_dim N' p))) -> exists f : (cart R N') -> Prop, @facet_of N' f p. +Axiom thm_POLYHEDRON_INTERVAL : forall {_1183034 : Type'}, forall a : cart R _1183034, forall b : cart R _1183034, @polyhedron _1183034 (@closed_interval _1183034 (@cons (prod (cart R _1183034) (cart R _1183034)) (@pair (cart R _1183034) (cart R _1183034) a b) (@nil (prod (cart R _1183034) (cart R _1183034))))). +Axiom thm_POLYHEDRON_CONVEX_HULL : forall {_1183050 : Type'}, forall s : (cart R _1183050) -> Prop, (@FINITE (cart R _1183050) s) -> @polyhedron _1183050 (@hull (cart R _1183050) (@convex _1183050) s). +Axiom thm_POLYTOPE_UNION_CONVEX_HULL_FACETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : (cart R N') -> Prop, ((@polytope N' p) /\ ((int_lt (Z_of_N (NUMERAL 0%N)) (@aff_dim N' p)) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') s p)))) -> p = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5429 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5429 (@facet_of N' f p) (@hull (cart R N') (@convex N') (@UNION (cart R N') s f))))). +Axiom thm_POLYHEDRON_CONVEX_CONE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> @polyhedron N' (@hull (cart R N') (@convex_cone N') s). +Axiom thm_CLOSED_CONVEX_CONE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> @closed N' (@hull (cart R N') (@convex_cone N') s). +Axiom thm_POLYHEDRON_CONVEX_CONE_HULL_POLYTOPE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polytope N' s) -> @polyhedron N' (@hull (cart R N') (@convex_cone N') s). +Axiom thm_POLYHEDRON_CONIC_HULL_POLYTOPE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polytope N' s) -> @polyhedron N' (@hull (cart R N') (@conic N') s). +Axiom thm_CLOSED_CONIC_HULL_STRONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' s)) \/ ((@polytope N' s) \/ ((@compact N' s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s))))) -> @closed N' (@hull (cart R N') (@conic N') s). +Axiom thm_CLOSED_CONVEX_CONE_HULL_STRONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) \/ ((@polytope N' s) \/ ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@relative_interior N' (@hull (cart R N') (@convex N') s))) \/ ((@compact N' s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@convex N') s))))))) -> @closed N' (@hull (cart R N') (@convex_cone N') s). +Axiom thm_FINITELY_GENERATED_CONIC_POLYHEDRON : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@polyhedron N' s) /\ ((@conic N' s) /\ (~ (s = (@EMPTY (cart R N')))))) -> exists c : (cart R N') -> Prop, (@FINITE (cart R N') c) /\ (s = (@hull (cart R N') (@convex_cone N') c)). +Axiom thm_POLYHEDRON_POLYTOPE_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@polyhedron N' s) /\ (@polytope N' t)) -> @polyhedron N' (@GSPEC (cart R N') (fun GEN_PVAR_5438 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_5438 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_POLYHEDRON_AS_CONE_PLUS_CONV : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@polyhedron N' s) = (exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, (@FINITE (cart R N') t) /\ ((@FINITE (cart R N') u) /\ (s = (@GSPEC (cart R N') (fun GEN_PVAR_5449 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_5449 ((@IN (cart R N') x (@hull (cart R N') (@convex_cone N') t)) /\ (@IN (cart R N') y (@hull (cart R N') (@convex N') u))) (@vector_add N' x y)))))). +Axiom thm_POLYHEDRON_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (@polyhedron M s)) -> @polyhedron N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_POLYHEDRON_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@polyhedron N' s) /\ (@polyhedron N' t)) -> @polyhedron N' (@GSPEC (cart R N') (fun GEN_PVAR_5455 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_5455 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y))). +Axiom thm_POLYHEDRAL_CONVEX_CONE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@polyhedron N' s) /\ (@convex_cone N' s)) = (exists k : (cart R N') -> Prop, (@FINITE (cart R N') k) /\ (s = (@hull (cart R N') (@convex_cone N') k))). +Axiom thm_FARKAS_LEMMA : forall {M N' : Type'}, forall A : cart (cart R N') M, forall b : cart R M, (exists x : cart R N', ((@matrix_vector_mul M N' A x) = b) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' x i))) = (~ (exists y : cart R M, (Rlt (@dot M b y) (R_of_N (NUMERAL 0%N))) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (@matrix_vector_mul N' M (@transp M N' A) y) i)))). +Axiom thm_FARKAS_LEMMA_ALT : forall {M N' : Type'}, forall A : cart (cart R N') M, forall b : cart R M, (exists x : cart R N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> Rle (@dollar R M (@matrix_vector_mul M N' A x) i) (@dollar R M b i)) = (~ (exists y : cart R M, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R M y i)) /\ (((@vector_matrix_mul M N' y A) = (@vec N' (NUMERAL 0%N))) /\ (Rlt (@dot M b y) (R_of_N (NUMERAL 0%N)))))). +Axiom thm_SEPARATING_HYPERPLANE_POLYHEDRA : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@polyhedron N' s) /\ ((@polyhedron N' t) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (@DISJOINT (cart R N') s t))))) -> exists a : cart R N', exists b : R, (~ (a = (@vec N' (NUMERAL 0%N)))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rlt (@dot N' a x) b) /\ (forall x : cart R N', (@IN (cart R N') x t) -> Rgt (@dot N' a x) b)). +Axiom thm_RELATIVE_BOUNDARY_OF_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@affine_dependent N' s)) -> (@DIFF (cart R N') (@hull (cart R N') (@convex N') s) (@relative_interior N' (@hull (cart R N') (@convex N') s))) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5463 : (cart R N') -> Prop => exists a : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5463 (@IN (cart R N') a s) (@hull (cart R N') (@convex N') (@DELETE (cart R N') s a))))). +Axiom thm_FRONTIER_OF_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@HAS_SIZE (cart R N') s (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) -> (@frontier N' (@hull (cart R N') (@convex N') s)) = (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5464 : (cart R N') -> Prop => exists a : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5464 (@IN (cart R N') a s) (@hull (cart R N') (@convex N') (@DELETE (cart R N') s a))))). +Axiom thm_RELATIVE_BOUNDARY_OF_TRIANGLE : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', (~ (@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N'))))))) -> (@DIFF (cart R N') (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) (@relative_interior N' (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))))) = (@UNION (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@UNION (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') b c) (@nil (prod (cart R N') (cart R N'))))) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c a) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_RELATIVE_FRONTIER_OF_TRIANGLE : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', (~ (@collinear N' (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N'))))))) -> (@relative_frontier N' (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N'))))))) = (@UNION (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@UNION (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') b c) (@nil (prod (cart R N') (cart R N'))))) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c a) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_FRONTIER_OF_TRIANGLE : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@frontier (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) = (@UNION (cart R (tybit0 unit)) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))) (@UNION (cart R (tybit0 unit)) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))))). +Axiom thm_INSIDE_OF_TRIANGLE : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))) (@UNION (cart R (tybit0 unit)) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))))) = (@interior (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))). +Axiom thm_INTERIOR_OF_TRIANGLE : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@interior (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) = (@DIFF (cart R (tybit0 unit)) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit))))))) (@UNION (cart R (tybit0 unit)) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))) (@UNION (cart R (tybit0 unit)) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))))). +Axiom thm_POLYHEDRON_RIDGE_TWO_FACETS : forall {N' : Type'}, forall p : (cart R N') -> Prop, forall r : (cart R N') -> Prop, ((@polyhedron N' p) /\ ((@face_of N' r p) /\ ((~ (r = (@EMPTY (cart R N')))) /\ ((@aff_dim N' r) = (int_sub (@aff_dim N' p) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))) -> exists f1 : (cart R N') -> Prop, exists f2 : (cart R N') -> Prop, (@face_of N' f1 p) /\ (((@aff_dim N' f1) = (int_sub (@aff_dim N' p) (Z_of_N (NUMERAL (BIT1 0%N))))) /\ ((@face_of N' f2 p) /\ (((@aff_dim N' f2) = (int_sub (@aff_dim N' p) (Z_of_N (NUMERAL (BIT1 0%N))))) /\ ((~ (f1 = f2)) /\ ((@SUBSET (cart R N') r f1) /\ ((@SUBSET (cart R N') r f2) /\ (((@INTER (cart R N') f1 f2) = r) /\ (forall f : (cart R N') -> Prop, ((@face_of N' f p) /\ (((@aff_dim N' f) = (int_sub (@aff_dim N' p) (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (@SUBSET (cart R N') r f))) -> (f = f1) \/ (f = f2))))))))). +Axiom thm_POLYTOPE_VERTEX_LOWER_BOUND : forall {N' : Type'}, forall p : (cart R N') -> Prop, (@polytope N' p) -> int_le (int_add (@aff_dim N' p) (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (@CARD (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5489 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5489 (@extreme_point_of N' v p) v)))). +Axiom thm_POLYTOPE_FACET_LOWER_BOUND : forall {N' : Type'}, forall p : (cart R N') -> Prop, ((@polytope N' p) /\ (~ ((@aff_dim N' p) = (Z_of_N (NUMERAL 0%N))))) -> int_le (int_add (@aff_dim N' p) (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (@CARD ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5494 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5494 (@facet_of N' f p) f)))). +Axiom thm_simplex : forall {_1190765 : Type'}, forall n : Z, forall s : (cart R _1190765) -> Prop, (@simplex _1190765 n s) = (exists c : (cart R _1190765) -> Prop, (~ (@affine_dependent _1190765 c)) /\ (((Z_of_N (@CARD (cart R _1190765) c)) = (int_add n (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (s = (@hull (cart R _1190765) (@convex _1190765) c)))). +Axiom thm_SIMPLEX_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, forall n : Z, (@simplex N' n (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@simplex N' n s). +Axiom thm_SIMPLEX_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : Z, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@simplex N' n (@IMAGE (cart R M) (cart R N') f s)) = (@simplex M n s). +Axiom thm_SIMPLEX : forall {_1191048 : Type'} (n : Z) (s : (cart R _1191048) -> Prop), (@simplex _1191048 n s) = (exists c : (cart R _1191048) -> Prop, (@FINITE (cart R _1191048) c) /\ ((~ (@affine_dependent _1191048 c)) /\ (((Z_of_N (@CARD (cart R _1191048) c)) = (int_add n (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (s = (@hull (cart R _1191048) (@convex _1191048) c))))). +Axiom thm_SIMPLEX_CONVEX_HULL : forall {N' : Type'}, forall c : (cart R N') -> Prop, forall n : Z, ((~ (@affine_dependent N' c)) /\ ((Z_of_N (@CARD (cart R N') c)) = (int_add n (Z_of_N (NUMERAL (BIT1 0%N)))))) -> @simplex N' n (@hull (cart R N') (@convex N') c). +Axiom thm_SIMPLEX_IMP_POLYTOPE : forall {_1191109 : Type'}, forall n : Z, forall s : (cart R _1191109) -> Prop, (@simplex _1191109 n s) -> @polytope _1191109 s. +Axiom thm_SIMPLEX_IMP_POLYHEDRON : forall {_1191125 : Type'}, forall s : (cart R _1191125) -> Prop, forall n : Z, (@simplex _1191125 n s) -> @polyhedron _1191125 s. +Axiom thm_SIMPLEX_IMP_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (@simplex N' n s) -> @convex N' s. +Axiom thm_SIMPLEX_IMP_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (@simplex N' n s) -> @compact N' s. +Axiom thm_SIMPLEX_IMP_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (@simplex N' n s) -> @closed N' s. +Axiom thm_SIMPLEX_DIM_GE : forall {_1191189 : Type'}, forall n : Z, forall s : (cart R _1191189) -> Prop, (@simplex _1191189 n s) -> int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n. +Axiom thm_SIMPLEX_EMPTY : forall {_1191212 : Type'}, forall n : Z, (@simplex _1191212 n (@EMPTY (cart R _1191212))) = (n = (int_neg (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_SIMPLEX_MINUS_1 : forall {_1191260 : Type'}, forall s : (cart R _1191260) -> Prop, (@simplex _1191260 (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) s) = (s = (@EMPTY (cart R _1191260))). +Axiom thm_AFF_DIM_SIMPLEX : forall {_1191319 : Type'}, forall s : (cart R _1191319) -> Prop, forall n : Z, (@simplex _1191319 n s) -> (@aff_dim _1191319 s) = n. +Axiom thm_SIMPLEX_EXTREME_POINTS : forall {N' : Type'}, forall n : Z, forall s : (cart R N') -> Prop, (@simplex N' n s) -> (@FINITE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5498 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5498 (@extreme_point_of N' v s) v))) /\ ((~ (@affine_dependent N' (@GSPEC (cart R N') (fun GEN_PVAR_5499 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5499 (@extreme_point_of N' v s) v)))) /\ (((Z_of_N (@CARD (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5500 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5500 (@extreme_point_of N' v s) v)))) = (int_add n (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (s = (@hull (cart R N') (@convex N') (@GSPEC (cart R N') (fun GEN_PVAR_5501 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5501 (@extreme_point_of N' v s) v)))))). +Axiom thm_SIMPLEX_FACE_OF_SIMPLEX : forall {N' : Type'}, forall n : Z, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@simplex N' n s) /\ (@face_of N' f s)) -> exists m : Z, (int_le m n) /\ (@simplex N' m f). +Axiom thm_FACE_OF_SIMPLEX_SUBSET : forall {N' : Type'}, forall n : Z, forall s : (cart R N') -> Prop, forall f : (cart R N') -> Prop, ((@simplex N' n s) /\ (@face_of N' f s)) -> exists c : (cart R N') -> Prop, (@SUBSET (cart R N') c (@GSPEC (cart R N') (fun GEN_PVAR_5503 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5503 (@extreme_point_of N' x s) x))) /\ (f = (@hull (cart R N') (@convex N') c)). +Axiom thm_SUBSET_FACE_OF_SIMPLEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, forall c : (cart R N') -> Prop, ((@simplex N' n s) /\ (@SUBSET (cart R N') c (@GSPEC (cart R N') (fun GEN_PVAR_5506 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5506 (@extreme_point_of N' x s) x)))) -> @face_of N' (@hull (cart R N') (@convex N') c) s. +Axiom thm_FACES_OF_SIMPLEX : forall {_1191858 : Type'}, forall n : Z, forall s : (cart R _1191858) -> Prop, (@simplex _1191858 n s) -> (@GSPEC ((cart R _1191858) -> Prop) (fun GEN_PVAR_5507 : (cart R _1191858) -> Prop => exists f : (cart R _1191858) -> Prop, @SETSPEC ((cart R _1191858) -> Prop) GEN_PVAR_5507 (@face_of _1191858 f s) f)) = (@GSPEC ((cart R _1191858) -> Prop) (fun GEN_PVAR_5509 : (cart R _1191858) -> Prop => exists c : (cart R _1191858) -> Prop, @SETSPEC ((cart R _1191858) -> Prop) GEN_PVAR_5509 (@SUBSET (cart R _1191858) c (@GSPEC (cart R _1191858) (fun GEN_PVAR_5508 : cart R _1191858 => exists v : cart R _1191858, @SETSPEC (cart R _1191858) GEN_PVAR_5508 (@extreme_point_of _1191858 v s) v))) (@hull (cart R _1191858) (@convex _1191858) c))). +Axiom thm_HAS_SIZE_FACES_OF_SIMPLEX : forall {N' : Type'}, forall n : Z, forall s : (cart R N') -> Prop, (@simplex N' n s) -> @HAS_SIZE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5512 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5512 (@face_of N' f s) f)) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) (num_of_int (int_add n (Z_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_FINITE_FACES_OF_SIMPLEX : forall {_1192036 : Type'}, forall n : Z, forall s : (cart R _1192036) -> Prop, (@simplex _1192036 n s) -> @FINITE ((cart R _1192036) -> Prop) (@GSPEC ((cart R _1192036) -> Prop) (fun GEN_PVAR_5513 : (cart R _1192036) -> Prop => exists f : (cart R _1192036) -> Prop, @SETSPEC ((cart R _1192036) -> Prop) GEN_PVAR_5513 (@face_of _1192036 f s) f)). +Axiom thm_CARD_FACES_OF_SIMPLEX : forall {_1192067 : Type'}, forall n : Z, forall s : (cart R _1192067) -> Prop, (@simplex _1192067 n s) -> (@CARD ((cart R _1192067) -> Prop) (@GSPEC ((cart R _1192067) -> Prop) (fun GEN_PVAR_5514 : (cart R _1192067) -> Prop => exists f : (cart R _1192067) -> Prop, @SETSPEC ((cart R _1192067) -> Prop) GEN_PVAR_5514 (@face_of _1192067 f s) f))) = (N.pow (NUMERAL (BIT0 (BIT1 0%N))) (num_of_int (int_add n (Z_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_CHOOSE_SIMPLEX : forall {N' : Type'}, forall n : Z, ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (int_le n (Z_of_N (@dimindex N' (@UNIV N'))))) -> exists s : (cart R N') -> Prop, @simplex N' n s. +Axiom thm_CHOOSE_SURROUNDING_SIMPLEX : forall {N' : Type'}, forall a : cart R N', forall n : Z, ((int_le (Z_of_N (NUMERAL 0%N)) n) /\ (int_le n (Z_of_N (@dimindex N' (@UNIV N'))))) -> exists s : (cart R N') -> Prop, (@simplex N' n s) /\ (@IN (cart R N') a (@relative_interior N' s)). +Axiom thm_CHOOSE_SURROUNDING_SIMPLEX_FULL : forall {N' : Type'}, forall a : cart R N', exists s : (cart R N') -> Prop, (@simplex N' (Z_of_N (@dimindex N' (@UNIV N'))) s) /\ (@IN (cart R N') a (@interior N' s)). +Axiom thm_CHOOSE_POLYTOPE : forall {N' : Type'}, forall n : Z, ((int_le (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) n) /\ (int_le n (Z_of_N (@dimindex N' (@UNIV N'))))) -> exists s : (cart R N') -> Prop, (@polytope N' s) /\ ((@aff_dim N' s) = n). +Axiom thm_SIMPLEX_SING : forall {N' : Type'}, forall n : Z, forall a : cart R N', (@simplex N' n (@INSERT (cart R N') a (@EMPTY (cart R N')))) = (n = (Z_of_N (NUMERAL 0%N))). +Axiom thm_SIMPLEX_ZERO : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@simplex N' (Z_of_N (NUMERAL 0%N)) s) = (exists a : cart R N', s = (@INSERT (cart R N') a (@EMPTY (cart R N')))). +Axiom thm_SIMPLEX_SEGMENT_CASES : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', @simplex N' (@COND Z (a = b) (Z_of_N (NUMERAL 0%N)) (Z_of_N (NUMERAL (BIT1 0%N)))) (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_SIMPLEX_SEGMENT : forall {_1192472 : Type'}, forall a : cart R _1192472, forall b : cart R _1192472, exists n : Z, @simplex _1192472 n (@closed_segment _1192472 (@cons (prod (cart R _1192472) (cart R _1192472)) (@pair (cart R _1192472) (cart R _1192472) a b) (@nil (prod (cart R _1192472) (cart R _1192472))))). +Axiom thm_POLYTOPE_LOWDIM_IMP_SIMPLEX : forall {N' : Type'}, forall p : (cart R N') -> Prop, ((@polytope N' p) /\ (int_le (@aff_dim N' p) (Z_of_N (NUMERAL (BIT1 0%N))))) -> exists n : Z, @simplex N' n p. +Axiom thm_SIMPLEX_INSERT_DIMPLUS1 : forall {N' : Type'}, forall n : Z, forall s : (cart R N') -> Prop, forall a : cart R N', ((@simplex N' n s) /\ (~ (@IN (cart R N') a (@hull (cart R N') (@affine N') s)))) -> @simplex N' (int_add n (Z_of_N (NUMERAL (BIT1 0%N)))) (@hull (cart R N') (@convex N') (@INSERT (cart R N') a s)). +Axiom thm_SIMPLEX_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((exists n : Z, @simplex N' n s) /\ (~ (@IN (cart R N') a (@hull (cart R N') (@affine N') s)))) -> exists n : Z, @simplex N' n (@hull (cart R N') (@convex N') (@INSERT (cart R N') a s)). +Axiom thm_SIMPLEX_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall i : Z, (@simplex N' i s) = ((@convex N' s) /\ ((@compact N' s) /\ ((@FINITE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5516 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5516 (@extreme_point_of N' v s) v))) /\ (((Z_of_N (@CARD (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5517 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5517 (@extreme_point_of N' v s) v)))) = (int_add i (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (~ (@affine_dependent N' (@GSPEC (cart R N') (fun GEN_PVAR_5518 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5518 (@extreme_point_of N' v s) v)))))))). +Axiom thm_SIMPLEX_ALT1 : forall {N' : Type'} (n : N), forall s : (cart R N') -> Prop, (@simplex N' (int_sub (Z_of_N n) (Z_of_N (NUMERAL (BIT1 0%N)))) s) = ((@convex N' s) /\ ((@compact N' s) /\ ((@HAS_SIZE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5519 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5519 (@extreme_point_of N' v s) v)) n) /\ (~ (@affine_dependent N' (@GSPEC (cart R N') (fun GEN_PVAR_5520 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5520 (@extreme_point_of N' v s) v))))))). +Axiom thm_SIMPLEX_0_NOT_IN_AFFINE_HULL : forall {N' : Type'} (n : N), forall s : (cart R N') -> Prop, ((@simplex N' (int_sub (Z_of_N n) (Z_of_N (NUMERAL (BIT1 0%N)))) s) /\ (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) (@hull (cart R N') (@affine N') s)))) = ((@convex N' s) /\ ((@compact N' s) /\ ((@HAS_SIZE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5521 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5521 (@extreme_point_of N' v s) v)) n) /\ (@independent N' (@GSPEC (cart R N') (fun GEN_PVAR_5522 : cart R N' => exists v : cart R N', @SETSPEC (cart R N') GEN_PVAR_5522 (@extreme_point_of N' v s) v)))))). +Axiom thm_SIMPLEX_EXTREME_POINTS_NONEMPTY : forall {_1192931 N' : Type'}, forall c : (cart R _1192931) -> Prop, (@simplex _1192931 (int_sub (Z_of_N (@dimindex N' (@UNIV N'))) (Z_of_N (NUMERAL (BIT1 0%N)))) c) -> ~ ((@GSPEC (cart R _1192931) (fun GEN_PVAR_5523 : cart R _1192931 => exists v : cart R _1192931, @SETSPEC (cart R _1192931) GEN_PVAR_5523 (@extreme_point_of _1192931 v c) v)) = (@EMPTY (cart R _1192931))). +Axiom thm_simplicial_complex : forall {_1192993 : Type'}, forall c : ((cart R _1192993) -> Prop) -> Prop, (@simplicial_complex _1192993 c) = ((@FINITE ((cart R _1192993) -> Prop) c) /\ ((forall s : (cart R _1192993) -> Prop, (@IN ((cart R _1192993) -> Prop) s c) -> exists n : Z, @simplex _1192993 n s) /\ ((forall f : (cart R _1192993) -> Prop, forall s : (cart R _1192993) -> Prop, ((@IN ((cart R _1192993) -> Prop) s c) /\ (@face_of _1192993 f s)) -> @IN ((cart R _1192993) -> Prop) f c) /\ (forall s : (cart R _1192993) -> Prop, forall s' : (cart R _1192993) -> Prop, ((@IN ((cart R _1192993) -> Prop) s c) /\ (@IN ((cart R _1192993) -> Prop) s' c)) -> (@face_of _1192993 (@INTER (cart R _1192993) s s') s) /\ (@face_of _1192993 (@INTER (cart R _1192993) s s') s'))))). +Axiom thm_triangulation : forall {N' : Type'}, forall tr : ((cart R N') -> Prop) -> Prop, (@triangulation N' tr) = ((@FINITE ((cart R N') -> Prop) tr) /\ ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t tr) -> exists n : Z, @simplex N' n t) /\ (forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) t tr) /\ (@IN ((cart R N') -> Prop) t' tr)) -> (@face_of N' (@INTER (cart R N') t t') t) /\ (@face_of N' (@INTER (cart R N') t t') t')))). +Axiom thm_SIMPLICIAL_COMPLEX_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall tr : ((cart R N') -> Prop) -> Prop, (@simplicial_complex N' (@IMAGE ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x)) tr)) = (@simplicial_complex N' tr). +Axiom thm_SIMPLICIAL_COMPLEX_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall tr : ((cart R M) -> Prop) -> Prop, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@simplicial_complex N' (@IMAGE ((cart R M) -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R M) (cart R N') f) tr)) = (@simplicial_complex M tr). +Axiom thm_TRIANGULATION_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall tr : ((cart R N') -> Prop) -> Prop, (@triangulation N' (@IMAGE ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x)) tr)) = (@triangulation N' tr). +Axiom thm_TRIANGULATION_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall tr : ((cart R M) -> Prop) -> Prop, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@triangulation N' (@IMAGE ((cart R M) -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R M) (cart R N') f) tr)) = (@triangulation M tr). +Axiom thm_SIMPLICIAL_COMPLEX_IMP_TRIANGULATION : forall {_1193303 : Type'}, forall tr : ((cart R _1193303) -> Prop) -> Prop, (@simplicial_complex _1193303 tr) -> @triangulation _1193303 tr. +Axiom thm_TRIANGULATION_SUBSET : forall {N' : Type'}, forall tr : ((cart R N') -> Prop) -> Prop, forall tr' : ((cart R N') -> Prop) -> Prop, ((@triangulation N' tr) /\ (@SUBSET ((cart R N') -> Prop) tr' tr)) -> @triangulation N' tr'. +Axiom thm_TRIANGULATION_UNION : forall {_1193349 : Type'}, forall tr1 : ((cart R _1193349) -> Prop) -> Prop, forall tr2 : ((cart R _1193349) -> Prop) -> Prop, (@triangulation _1193349 (@UNION ((cart R _1193349) -> Prop) tr1 tr2)) = ((@triangulation _1193349 tr1) /\ ((@triangulation _1193349 tr2) /\ (forall s : (cart R _1193349) -> Prop, forall t : (cart R _1193349) -> Prop, ((@IN ((cart R _1193349) -> Prop) s tr1) /\ (@IN ((cart R _1193349) -> Prop) t tr2)) -> (@face_of _1193349 (@INTER (cart R _1193349) s t) s) /\ (@face_of _1193349 (@INTER (cart R _1193349) s t) t)))). +Axiom thm_TRIANGULATION_INTER_SIMPLEX : forall {N' : Type'}, forall tr : ((cart R N') -> Prop) -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((@triangulation N' tr) /\ ((@IN ((cart R N') -> Prop) t tr) /\ (@IN ((cart R N') -> Prop) t' tr))) -> (@INTER (cart R N') t t') = (@hull (cart R N') (@convex N') (@INTER (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5525 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5525 (@extreme_point_of N' x t) x)) (@GSPEC (cart R N') (fun GEN_PVAR_5526 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5526 (@extreme_point_of N' x t') x)))). +Axiom thm_TRIANGULATION_SIMPLICIAL_COMPLEX : forall {N' : Type'}, forall tr : ((cart R N') -> Prop) -> Prop, (@triangulation N' tr) -> @simplicial_complex N' (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5529 : (cart R N') -> Prop => exists f : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5529 (exists t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t tr) /\ (@face_of N' f t)) f)). +Axiom thm_TRIANGULATION_SIMPLEX_FACES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, forall d : Z, (@simplex N' n s) -> @triangulation N' (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5533 : (cart R N') -> Prop => exists c : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5533 ((@face_of N' c s) /\ ((@aff_dim N' c) = d)) c)). +Axiom thm_TRIANGULATION_SIMPLEX_FACETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : Z, (@simplex N' n s) -> @triangulation N' (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5535 : (cart R N') -> Prop => exists c : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5535 (@facet_of N' c s) c)). +Axiom thm_CELL_COMPLEX_DISJOINT_RELATIVE_INTERIORS : forall {N' : Type'}, forall c : (cart R N') -> Prop, forall d : (cart R N') -> Prop, ((@face_of N' (@INTER (cart R N') c d) c) /\ ((@face_of N' (@INTER (cart R N') c d) d) /\ (~ (c = d)))) -> (@INTER (cart R N') (@relative_interior N' c) (@relative_interior N' d)) = (@EMPTY (cart R N')). +Axiom thm_TRIANGULATION_DISJOINT_RELATIVE_INTERIORS : forall {N' : Type'}, forall t : ((cart R N') -> Prop) -> Prop, forall c : (cart R N') -> Prop, forall d : (cart R N') -> Prop, ((@triangulation N' t) /\ ((@IN ((cart R N') -> Prop) c t) /\ ((@IN ((cart R N') -> Prop) d t) /\ (~ (c = d))))) -> (@INTER (cart R N') (@relative_interior N' c) (@relative_interior N' d)) = (@EMPTY (cart R N')). +Axiom thm_SIMPLICIAL_COMPLEX_DISJOINT_RELATIVE_INTERIORS : forall {N' : Type'}, forall t : ((cart R N') -> Prop) -> Prop, forall c : (cart R N') -> Prop, forall d : (cart R N') -> Prop, ((@simplicial_complex N' t) /\ ((@IN ((cart R N') -> Prop) c t) /\ ((@IN ((cart R N') -> Prop) d t) /\ (~ (c = d))))) -> (@INTER (cart R N') (@relative_interior N' c) (@relative_interior N' d)) = (@EMPTY (cart R N')). +Axiom thm_NOT_IN_AFFINE_HULL_SURFACE_TRIANGULATION : forall {N' : Type'}, forall t : ((cart R N') -> Prop) -> Prop, forall u : (cart R N') -> Prop, forall z : cart R N', ((@convex N' u) /\ ((@bounded N' u) /\ ((@IN (cart R N') z (@interior N' u)) /\ ((@triangulation N' t) /\ (@SUBSET (cart R N') (@UNIONS (cart R N') t) (@frontier N' u)))))) -> forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c t) -> ~ (@IN (cart R N') z (@hull (cart R N') (@affine N') c)). +Axiom thm_TRIANGULATION_SUBFACES : forall {N' : Type'}, forall tr : ((cart R N') -> Prop) -> Prop, forall tr' : ((cart R N') -> Prop) -> Prop, ((@triangulation N' tr) /\ (forall c' : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c' tr') -> exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c tr) /\ (@face_of N' c' c))) -> @triangulation N' tr'. +Axiom thm_CELL_COMPLEX_SUBDIVISION_EXISTS : forall {N' : Type'}, forall m : ((cart R N') -> Prop) -> Prop, forall d : Z, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@FINITE ((cart R N') -> Prop) m) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> @polytope N' c) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> int_le (@aff_dim N' c) d) /\ (forall c1 : (cart R N') -> Prop, forall c2 : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) c1 m) /\ (@IN ((cart R N') -> Prop) c2 m)) -> (@face_of N' (@INTER (cart R N') c1 c2) c1) /\ (@face_of N' (@INTER (cart R N') c1 c2) c2)))))) -> exists m' : ((cart R N') -> Prop) -> Prop, (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m') -> Rlt (@diameter N' c) e) /\ (((@UNIONS (cart R N') m') = (@UNIONS (cart R N') m)) /\ ((@FINITE ((cart R N') -> Prop) m') /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m') -> exists d' : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) d' m) /\ (@SUBSET (cart R N') c d')) /\ ((forall c : (cart R N') -> Prop, forall x : cart R N', ((@IN ((cart R N') -> Prop) c m) /\ (@IN (cart R N') x c)) -> exists d' : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) d' m') /\ ((@IN (cart R N') x d') /\ (@SUBSET (cart R N') d' c))) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m') -> @polytope N' c) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m') -> int_le (@aff_dim N' c) d) /\ (forall c1 : (cart R N') -> Prop, forall c2 : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) c1 m') /\ (@IN ((cart R N') -> Prop) c2 m')) -> (@face_of N' (@INTER (cart R N') c1 c2) c1) /\ (@face_of N' (@INTER (cart R N') c1 c2) c2)))))))). +Axiom thm_SIMPLICIAL_SUBDIVISION_OF_CELL_COMPLEX_LOWDIM : forall {N' : Type'}, forall m : ((cart R N') -> Prop) -> Prop, forall d : Z, ((@FINITE ((cart R N') -> Prop) m) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> @polytope N' c) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> int_le (@aff_dim N' c) d) /\ (forall c1 : (cart R N') -> Prop, forall c2 : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) c1 m) /\ (@IN ((cart R N') -> Prop) c2 m)) -> (@face_of N' (@INTER (cart R N') c1 c2) c1) /\ (@face_of N' (@INTER (cart R N') c1 c2) c2))))) -> exists t : ((cart R N') -> Prop) -> Prop, (@simplicial_complex N' t) /\ ((forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k t) -> int_le (@aff_dim N' k) d) /\ (((@UNIONS (cart R N') t) = (@UNIONS (cart R N') m)) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ ((@SUBSET ((cart R N') -> Prop) f t) /\ (c = (@UNIONS (cart R N') f)))) /\ (forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k t) -> exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) /\ (@SUBSET (cart R N') k c))))). +Axiom thm_SIMPLICIAL_SUBDIVISION_OF_CELL_COMPLEX : forall {N' : Type'}, forall m : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) m) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> @polytope N' c) /\ (forall c1 : (cart R N') -> Prop, forall c2 : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) c1 m) /\ (@IN ((cart R N') -> Prop) c2 m)) -> (@face_of N' (@INTER (cart R N') c1 c2) c1) /\ (@face_of N' (@INTER (cart R N') c1 c2) c2)))) -> exists t : ((cart R N') -> Prop) -> Prop, (@simplicial_complex N' t) /\ (((@UNIONS (cart R N') t) = (@UNIONS (cart R N') m)) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ ((@SUBSET ((cart R N') -> Prop) f t) /\ (c = (@UNIONS (cart R N') f)))) /\ (forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k t) -> exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) /\ (@SUBSET (cart R N') k c)))). +Axiom thm_FINE_SIMPLICIAL_SUBDIVISION_OF_CELL_COMPLEX : forall {N' : Type'}, forall m : ((cart R N') -> Prop) -> Prop, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@FINITE ((cart R N') -> Prop) m) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> @polytope N' c) /\ (forall c1 : (cart R N') -> Prop, forall c2 : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) c1 m) /\ (@IN ((cart R N') -> Prop) c2 m)) -> (@face_of N' (@INTER (cart R N') c1 c2) c1) /\ (@face_of N' (@INTER (cart R N') c1 c2) c2))))) -> exists t : ((cart R N') -> Prop) -> Prop, (@simplicial_complex N' t) /\ ((forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k t) -> Rlt (@diameter N' k) e) /\ (((@UNIONS (cart R N') t) = (@UNIONS (cart R N') m)) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ ((@SUBSET ((cart R N') -> Prop) f t) /\ (c = (@UNIONS (cart R N') f)))) /\ (forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k t) -> exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) /\ (@SUBSET (cart R N') k c))))). +Axiom thm_REGULAR_CLOSED_UNIONS_FAT_CELLS_UNIV : forall {N' : Type'}, forall s : ((cart R N') -> Prop) -> Prop, forall u : (cart R N') -> Prop, (((@closure N' (@interior N' u)) = u) /\ ((@FINITE ((cart R N') -> Prop) s) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c s) -> (@closed N' c) /\ (@convex N' c)) /\ ((@UNIONS (cart R N') s) = u)))) -> (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5560 : (cart R N') -> Prop => exists c : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5560 ((@IN ((cart R N') -> Prop) c s) /\ (~ ((@interior N' c) = (@EMPTY (cart R N'))))) c))) = u. +Axiom thm_CONVEX_UNIONS_FULLDIM_CELLS : forall {N' : Type'}, forall s : ((cart R N') -> Prop) -> Prop, forall u : (cart R N') -> Prop, ((@FINITE ((cart R N') -> Prop) s) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c s) -> (@closed N' c) /\ (@convex N' c)) /\ (((@UNIONS (cart R N') s) = u) /\ (@convex N' u)))) -> (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5562 : (cart R N') -> Prop => exists c : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5562 ((@IN ((cart R N') -> Prop) c s) /\ ((@aff_dim N' c) = (@aff_dim N' u))) c))) = u. +Axiom thm_TRIANGULAR_SUBDIVISION_OF_CELL_COMPLEX : forall {N' : Type'}, forall m : ((cart R N') -> Prop) -> Prop, forall d : Z, ((@FINITE ((cart R N') -> Prop) m) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> @polytope N' c) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> (@aff_dim N' c) = d) /\ (forall c1 : (cart R N') -> Prop, forall c2 : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) c1 m) /\ (@IN ((cart R N') -> Prop) c2 m)) -> (@face_of N' (@INTER (cart R N') c1 c2) c1) /\ (@face_of N' (@INTER (cart R N') c1 c2) c2))))) -> exists t : ((cart R N') -> Prop) -> Prop, (@triangulation N' t) /\ ((forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k t) -> (@aff_dim N' k) = d) /\ (((@UNIONS (cart R N') t) = (@UNIONS (cart R N') m)) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ ((@SUBSET ((cart R N') -> Prop) f t) /\ (c = (@UNIONS (cart R N') f)))) /\ (forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k t) -> exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) /\ (@SUBSET (cart R N') k c))))). +Axiom thm_FINE_TRIANGULAR_SUBDIVISION_OF_CELL_COMPLEX : forall {N' : Type'}, forall m : ((cart R N') -> Prop) -> Prop, forall d : Z, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@FINITE ((cart R N') -> Prop) m) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> @polytope N' c) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> (@aff_dim N' c) = d) /\ (forall c1 : (cart R N') -> Prop, forall c2 : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) c1 m) /\ (@IN ((cart R N') -> Prop) c2 m)) -> (@face_of N' (@INTER (cart R N') c1 c2) c1) /\ (@face_of N' (@INTER (cart R N') c1 c2) c2)))))) -> exists t : ((cart R N') -> Prop) -> Prop, (@triangulation N' t) /\ ((forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k t) -> Rlt (@diameter N' k) e) /\ ((forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k t) -> (@aff_dim N' k) = d) /\ (((@UNIONS (cart R N') t) = (@UNIONS (cart R N') m)) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) -> exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ ((@SUBSET ((cart R N') -> Prop) f t) /\ (c = (@UNIONS (cart R N') f)))) /\ (forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k t) -> exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c m) /\ (@SUBSET (cart R N') k c)))))). +Axiom thm_brouwer_degree1 : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall n : N, (@brouwer_degree1 N' n f) = (@COND Z ((N.le (NUMERAL (BIT1 0%N)) n) /\ (N.le n (@dimindex N' (@UNIV N')))) (brouwer_degree2 (N.sub n (NUMERAL (BIT1 0%N))) (@o (N -> R) (cart R N') (N -> R) (fun x : cart R N' => fun i : N => @COND R ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i n)) (@dollar R N' x i) (R_of_N (NUMERAL 0%N))) (@o (N -> R) (cart R N') (cart R N') f (fun x : N -> R => @lambda R N' (fun i : N => @COND R ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i n)) (x i) (R_of_N (NUMERAL 0%N))))))) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_brouwer_degree : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@brouwer_degree N' f) = (@brouwer_degree1 N' (@dimindex N' (@UNIV N')) f). +Axiom thm_BROUWER_DEGREE1_EQ : forall {N' : Type'}, forall n : N, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (forall x : cart R N', (@IN (cart R N') x (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) -> (f x) = (g x)) -> (@brouwer_degree1 N' n f) = (@brouwer_degree1 N' n g). +Axiom thm_BROUWER_DEGREE1_ID : forall {N' : Type'}, forall n : N, (@brouwer_degree1 N' n (fun x : cart R N' => x)) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_BROUWER_DEGREE1_COMPOSE : forall {N' : Type'}, forall n : N, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@continuous_on N' N' f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) /\ ((@continuous_on N' N' g (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') g (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n)))))))) -> (@brouwer_degree1 N' n (@o (cart R N') (cart R N') (cart R N') g f)) = (int_mul (@brouwer_degree1 N' n g) (@brouwer_degree1 N' n f)). +Axiom thm_BROUWER_DEGREE1_HOMOTOPIC : forall {N' : Type'}, forall n : N, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) (@subtopology (cart R N') (@euclidean N') (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n)))))) f g) -> (@brouwer_degree1 N' n f) = (@brouwer_degree1 N' n g). +Axiom thm_BROUWER_DEGREE1_CONST : forall {N' : Type'}, forall n : N, forall a : cart R N', ((N.le (NUMERAL (BIT1 0%N)) n) /\ (N.le n (@dimindex N' (@UNIV N')))) -> (@brouwer_degree1 N' n (fun x : cart R N' => a)) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_BROUWER_DEGREE1_REFLECT_ALONG : forall {N' : Type'}, forall n : N, forall a : cart R N', ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ (@IN (cart R N') a (@DELETE (cart R N') (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))) (@vec N' (NUMERAL 0%N)))))) -> (@brouwer_degree1 N' n (@reflect_along N' a)) = (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_BROUWER_DEGREE1_NONSURJECTIVE : forall {N' : Type'}, forall n : N, forall f : (cart R N') -> cart R N', ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ ((@continuous_on N' N' f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) /\ (@PSUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n)))))))) -> (@brouwer_degree1 N' n f) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_BROUWER_DEGREE_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (forall x : cart R N', (@IN (cart R N') x (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (f x) = (g x)) -> (@brouwer_degree N' f) = (@brouwer_degree N' g). +Axiom thm_BROUWER_DEGREE_ID : forall {N' : Type'}, (@brouwer_degree N' (fun x : cart R N' => x)) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_BROUWER_DEGREE_COMPOSE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@continuous_on N' N' f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@continuous_on N' N' g (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') g (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))))) -> (@brouwer_degree N' (@o (cart R N') (cart R N') (cart R N') g f)) = (int_mul (@brouwer_degree N' g) (@brouwer_degree N' f)). +Axiom thm_BROUWER_DEGREE_HOMOTOPIC : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) f g) -> (@brouwer_degree N' f) = (@brouwer_degree N' g). +Axiom thm_BROUWER_DEGREE_CONST : forall {N' : Type'}, forall a : cart R N', (@brouwer_degree N' (fun x : cart R N' => a)) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_BROUWER_DEGREE_REFLECT_ALONG : forall {N' : Type'}, forall a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) -> (@brouwer_degree N' (@reflect_along N' a)) = (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_BROUWER_DEGREE_NONSURJECTIVE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@continuous_on N' N' f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (@PSUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) -> (@brouwer_degree N' f) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_BROUWER_DEGREE_ORTHOGONAL_TRANSFORMATION : forall {N' : Type'}, forall f : (cart R N') -> cart R N', (@orthogonal_transformation N' f) -> (IZR (@brouwer_degree N' f)) = (@det N' (@matrix N' N' f)). +Axiom thm_HOMOTOPIC_ORTHOGONAL_TRANSFORMATIONS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@orthogonal_transformation N' f) /\ (@orthogonal_transformation N' g)) -> (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) f g) = ((@det N' (@matrix N' N' f)) = (@det N' (@matrix N' N' g))). +Axiom thm_HOMOTOPIC_ORTHOGONAL_TRANSFORMATIONS_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@orthogonal_transformation N' f) /\ (@orthogonal_transformation N' g)) -> (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N)))) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N))))) f g) = ((@det N' (@matrix N' N' f)) = (@det N' (@matrix N' N' g))). +Axiom thm_HOMOTOPIC_ORTHOGONAL_TRANSFORMATIONS_IMP : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@orthogonal_transformation N' f) /\ ((@orthogonal_transformation N' g) /\ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) f g))) -> (@det N' (@matrix N' N' f)) = (@det N' (@matrix N' N' g)). +Axiom thm_HOMOTOPIC_LINEAR_MAPS_IMP : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@linear N' N' f) /\ ((@linear N' N' g) /\ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N)))) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N))))) f g))) -> (real_sgn (@det N' (@matrix N' N' f))) = (real_sgn (@det N' (@matrix N' N' g))). +Axiom thm_HOMOTOPIC_LINEAR_MAPS_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@linear N' N' f) /\ ((@linear N' N' g) /\ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N)))) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N))))) f g))) -> Rlt (R_of_N (NUMERAL 0%N)) (Rmult (@det N' (@matrix N' N' f)) (@det N' (@matrix N' N' g))). +Axiom thm_FIXPOINT_HOMOTOPIC_IDENTITY_SPHERE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((ODD (@dimindex N' (@UNIV N'))) /\ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) (fun x : cart R N' => x) f)) -> exists x : cart R N', (@IN (cart R N') x (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((f x) = x). +Axiom thm_FIXPOINT_OR_NEG_MAPPING_SPHERE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((ODD (@dimindex N' (@UNIV N'))) /\ ((@continuous_on N' N' f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))))) -> exists x : cart R N', (@IN (cart R N') x (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (((f x) = (@vector_neg N' x)) \/ ((f x) = x)). +Axiom thm_HAIRY_BALL_THEOREM : forall {N' : Type'}, forall r : R, (exists f : (cart R N') -> cart R N', (@continuous_on N' N' f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) /\ (forall x : cart R N', (@IN (cart R N') x (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) -> (~ ((f x) = (@vec N' (NUMERAL 0%N)))) /\ (@orthogonal N' x (f x))))) = ((Rlt r (R_of_N (NUMERAL 0%N))) \/ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (EVEN (@dimindex N' (@UNIV N'))))). +Axiom thm_HAIRY_BALL_THEOREM_ALT : forall {N' : Type'}, forall r : R, (exists f : (cart R N') -> cart R N', (@continuous_on N' N' f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) /\ (forall x : cart R N', (@IN (cart R N') x (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) -> (~ ((f x) = (@vec N' (NUMERAL 0%N)))) /\ (@orthogonal N' x (f x)))) = ((Rle r (R_of_N (NUMERAL 0%N))) \/ (EVEN (@dimindex N' (@UNIV N')))). +Axiom thm_CONTINUOUS_FUNCTION_HAS_EIGENVALUES_ODD_DIM : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((ODD (@dimindex N' (@UNIV N'))) /\ (@continuous_on N' N' f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) -> exists v : cart R N', exists c : R, (@IN (cart R N') v (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((f v) = (@percent N' c v)). +Axiom thm_EULER_ROTATION_THEOREM_GEN : forall {N' : Type'}, forall A : cart (cart R N') N', ((ODD (@dimindex N' (@UNIV N'))) /\ (@rotation_matrix N' A)) -> exists v : cart R N', ((@vector_norm N' v) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@matrix_vector_mul N' N' A v) = v). +Axiom thm_retraction : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall r : (cart R N') -> cart R N', (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r) = ((@SUBSET (cart R N') t s) /\ ((@continuous_on N' N' r s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') r s) t) /\ (forall x : cart R N', (@IN (cart R N') x t) -> (r x) = x)))). +Axiom thm_retract_of : forall {_1201478 : Type'}, forall s : (cart R _1201478) -> Prop, forall t : (cart R _1201478) -> Prop, (@retract_of _1201478 t s) = (exists r : (cart R _1201478) -> cart R _1201478, @retraction _1201478 (@pair ((cart R _1201478) -> Prop) ((cart R _1201478) -> Prop) s t) r). +Axiom thm_RETRACTION_MAPS_EUCLIDEAN : forall {N' : Type'}, forall r : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@retraction_maps (cart R N') (cart R N') (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') t)) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') r (@I (cart R N')))) = (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r). +Axiom thm_RETRACT_OF_SPACE_EUCLIDEAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@retract_of_space (cart R N') t (@subtopology (cart R N') (@euclidean N') s)) = (@retract_of N' t s). +Axiom thm_RETRACTION : forall {_1201564 : Type'}, forall s : (cart R _1201564) -> Prop, forall t : (cart R _1201564) -> Prop, forall r : (cart R _1201564) -> cart R _1201564, (@retraction _1201564 (@pair ((cart R _1201564) -> Prop) ((cart R _1201564) -> Prop) s t) r) = ((@SUBSET (cart R _1201564) t s) /\ ((@continuous_on _1201564 _1201564 r s) /\ (((@IMAGE (cart R _1201564) (cart R _1201564) r s) = t) /\ (forall x : cart R _1201564, (@IN (cart R _1201564) x t) -> (r x) = x)))). +Axiom thm_RETRACT_OF_IMP_EXTENSIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R N') -> Prop, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@retract_of M s t) /\ ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) u))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g t) u) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))). +Axiom thm_RETRACTION_IDEMPOTENT : forall {_1201696 : Type'}, forall r : (cart R _1201696) -> cart R _1201696, forall s : (cart R _1201696) -> Prop, forall t : (cart R _1201696) -> Prop, (@retraction _1201696 (@pair ((cart R _1201696) -> Prop) ((cart R _1201696) -> Prop) s t) r) -> forall x : cart R _1201696, (@IN (cart R _1201696) x s) -> (r (r x)) = (r x). +Axiom thm_IDEMPOTENT_IMP_RETRACTION : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@continuous_on N' N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f (f x)) = (f x)))) -> @retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s (@IMAGE (cart R N') (cart R N') f s)) f. +Axiom thm_RETRACTION_SUBSET : forall {_1201806 : Type'}, forall r : (cart R _1201806) -> cart R _1201806, forall s : (cart R _1201806) -> Prop, forall s' : (cart R _1201806) -> Prop, forall t : (cart R _1201806) -> Prop, ((@retraction _1201806 (@pair ((cart R _1201806) -> Prop) ((cart R _1201806) -> Prop) s t) r) /\ ((@SUBSET (cart R _1201806) t s') /\ (@SUBSET (cart R _1201806) s' s))) -> @retraction _1201806 (@pair ((cart R _1201806) -> Prop) ((cart R _1201806) -> Prop) s' t) r. +Axiom thm_RETRACT_OF_SUBSET : forall {_1201830 : Type'}, forall s : (cart R _1201830) -> Prop, forall s' : (cart R _1201830) -> Prop, forall t : (cart R _1201830) -> Prop, ((@retract_of _1201830 t s) /\ ((@SUBSET (cart R _1201830) t s') /\ (@SUBSET (cart R _1201830) s' s))) -> @retract_of _1201830 t s'. +Axiom thm_RETRACT_OF_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall t : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@retract_of N' t s) -> @retract_of N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) t) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_RETRACT_OF_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall t : (cart R N') -> Prop, forall s : (cart R N') -> Prop, (@retract_of N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) t) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@retract_of N' t s). +Axiom thm_RETRACT_OF_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (@retract_of M t s))) -> @retract_of N' (@IMAGE (cart R M) (cart R N') f t) (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_RETRACT_OF_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@linear M N' f) /\ ((forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y) /\ (forall y : cart R N', exists x : cart R M, (f x) = y))) -> (@retract_of N' (@IMAGE (cart R M) (cart R N') f t) (@IMAGE (cart R M) (cart R N') f s)) = (@retract_of M t s). +Axiom thm_RETRACTION_REFL : forall {_1202294 : Type'}, forall s : (cart R _1202294) -> Prop, @retraction _1202294 (@pair ((cart R _1202294) -> Prop) ((cart R _1202294) -> Prop) s s) (fun x : cart R _1202294 => x). +Axiom thm_RETRACT_OF_REFL : forall {_1202308 : Type'}, forall s : (cart R _1202308) -> Prop, @retract_of _1202308 s s. +Axiom thm_RETRACTION_CLOSEST_POINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' t) /\ ((@closed N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') t s)))) -> @retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) (@closest_point N' t). +Axiom thm_RETRACT_OF_IMP_SUBSET : forall {_1202360 : Type'}, forall s : (cart R _1202360) -> Prop, forall t : (cart R _1202360) -> Prop, (@retract_of _1202360 s t) -> @SUBSET (cart R _1202360) s t. +Axiom thm_RETRACT_OF_EMPTY : forall {N' : Type'}, (forall s : (cart R N') -> Prop, (@retract_of N' (@EMPTY (cart R N')) s) = (s = (@EMPTY (cart R N')))) /\ (forall s : (cart R N') -> Prop, (@retract_of N' s (@EMPTY (cart R N'))) = (s = (@EMPTY (cart R N')))). +Axiom thm_RETRACT_OF_SING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@retract_of N' (@INSERT (cart R N') x (@EMPTY (cart R N'))) s) = (@IN (cart R N') x s). +Axiom thm_RETRACT_OF_OPEN_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t) /\ ((@DISJOINT (cart R N') s t) /\ ((s = (@EMPTY (cart R N'))) -> t = (@EMPTY (cart R N')))))) -> @retract_of N' s (@UNION (cart R N') s t). +Axiom thm_RETRACT_OF_SEPARATED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (((@INTER (cart R N') s (@closure N' t)) = (@EMPTY (cart R N'))) /\ (((@INTER (cart R N') t (@closure N' s)) = (@EMPTY (cart R N'))) /\ ((s = (@EMPTY (cart R N'))) -> t = (@EMPTY (cart R N'))))) -> @retract_of N' s (@UNION (cart R N') s t). +Axiom thm_RETRACT_OF_CLOSED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t) /\ ((@DISJOINT (cart R N') s t) /\ ((s = (@EMPTY (cart R N'))) -> t = (@EMPTY (cart R N')))))) -> @retract_of N' s (@UNION (cart R N') s t). +Axiom thm_RETRACTION_o : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) f) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u) g)) -> @retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s u) (@o (cart R N') (cart R N') (cart R N') g f). +Axiom thm_RETRACT_OF_TRANS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@retract_of N' s t) /\ (@retract_of N' t u)) -> @retract_of N' s u. +Axiom thm_CLOSED_IN_RETRACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@retract_of N' s t) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s. +Axiom thm_RETRACT_OF_CONTRACTIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@contractible N' t) /\ (@retract_of N' s t)) -> @contractible N' s. +Axiom thm_RETRACT_OF_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' t) /\ (@retract_of N' s t)) -> @compact N' s. +Axiom thm_RETRACT_OF_CLOSED : forall {_1202828 : Type'}, forall s : (cart R _1202828) -> Prop, forall t : (cart R _1202828) -> Prop, ((@closed _1202828 t) /\ (@retract_of _1202828 s t)) -> @closed _1202828 s. +Axiom thm_RETRACT_OF_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' t) /\ (@retract_of N' s t)) -> @connected N' s. +Axiom thm_RETRACT_OF_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@path_connected N' t) /\ (@retract_of N' s t)) -> @path_connected N' s. +Axiom thm_RETRACT_OF_SIMPLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@simply_connected N' t) /\ (@retract_of N' s t)) -> @simply_connected N' s. +Axiom thm_RETRACT_OF_HOMOTOPICALLY_TRIVIAL : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@retract_of N' t s) /\ (forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@continuous_on M N' f u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f u) s) /\ ((@continuous_on M N' g u) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g u) s)))) -> @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) u) (@subtopology (cart R N') (@euclidean N') s)) f g)) -> forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@continuous_on M N' f u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f u) t) /\ ((@continuous_on M N' g u) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g u) t)))) -> @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) u) (@subtopology (cart R N') (@euclidean N') t)) f g. +Axiom thm_RETRACT_OF_HOMOTOPICALLY_TRIVIAL_NULL : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@retract_of N' t s) /\ (forall f : (cart R M) -> cart R N', ((@continuous_on M N' f u) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f u) s)) -> exists c : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) u) (@subtopology (cart R N') (@euclidean N') s)) f (fun x : cart R M => c))) -> forall f : (cart R M) -> cart R N', ((@continuous_on M N' f u) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f u) t)) -> exists c : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) u) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => c). +Axiom thm_RETRACT_OF_COHOMOTOPICALLY_TRIVIAL : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@retract_of N' t s) /\ (forall f : (cart R N') -> cart R M, forall g : (cart R N') -> cart R M, ((@continuous_on N' M f s) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) f s) u) /\ ((@continuous_on N' M g s) /\ (@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g s) u)))) -> @homotopic_with (cart R M) (cart R N') (fun x : (cart R N') -> cart R M => True) (@pair (Topology (cart R N')) (Topology (cart R M)) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R M) (@euclidean M) u)) f g)) -> forall f : (cart R N') -> cart R M, forall g : (cart R N') -> cart R M, ((@continuous_on N' M f t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) f t) u) /\ ((@continuous_on N' M g t) /\ (@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g t) u)))) -> @homotopic_with (cart R M) (cart R N') (fun x : (cart R N') -> cart R M => True) (@pair (Topology (cart R N')) (Topology (cart R M)) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R M) (@euclidean M) u)) f g. +Axiom thm_RETRACT_OF_COHOMOTOPICALLY_TRIVIAL_NULL : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@retract_of N' t s) /\ (forall f : (cart R N') -> cart R M, ((@continuous_on N' M f s) /\ (@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) f s) u)) -> exists c : cart R M, @homotopic_with (cart R M) (cart R N') (fun x : (cart R N') -> cart R M => True) (@pair (Topology (cart R N')) (Topology (cart R M)) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R M) (@euclidean M) u)) f (fun x : cart R N' => c))) -> forall f : (cart R N') -> cart R M, ((@continuous_on N' M f t) /\ (@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) f t) u)) -> exists c : cart R M, @homotopic_with (cart R M) (cart R N') (fun x : (cart R N') -> cart R M => True) (@pair (Topology (cart R N')) (Topology (cart R M)) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R M) (@euclidean M) u)) f (fun x : cart R N' => c). +Axiom thm_RETRACTION_IMP_QUOTIENT_MAP_EXPLICIT : forall {N' : Type'}, forall r : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r) -> forall u : (cart R N') -> Prop, (@SUBSET (cart R N') u t) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) (@GSPEC (cart R N') (fun GEN_PVAR_5568 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5568 ((@IN (cart R N') x s) /\ (@IN (cart R N') (r x) u)) x))) = (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) u). +Axiom thm_RETRACT_OF_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@retract_of N' s t) /\ (@locally N' (@connected N') t)) -> @locally N' (@connected N') s. +Axiom thm_RETRACT_OF_LOCALLY_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@retract_of N' s t) /\ (@locally N' (@path_connected N') t)) -> @locally N' (@path_connected N') s. +Axiom thm_RETRACT_OF_LOCALLY_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@locally N' (@compact N') s) /\ (@retract_of N' t s)) -> @locally N' (@compact N') t. +Axiom thm_RETRACT_OF_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((@retract_of M s s') /\ (@retract_of N' t t')) -> @retract_of (finite_sum M N') (@PCROSS R M N' s t) (@PCROSS R M N' s' t'). +Axiom thm_RETRACT_OF_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, (@retract_of (finite_sum M N') (@PCROSS R M N' s t) (@PCROSS R M N' s' t')) = ((((s = (@EMPTY (cart R M))) \/ (t = (@EMPTY (cart R N')))) /\ ((s' = (@EMPTY (cart R M))) \/ (t' = (@EMPTY (cart R N'))))) \/ ((@retract_of M s s') /\ (@retract_of N' t t'))). +Axiom thm_HOMOTOPIC_INTO_RETRACT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) t) /\ ((@retract_of N' t u) /\ (@homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') u)) f g)))) -> @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f g. +Axiom thm_CONTRACTIBLE_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (@contractible N' (@sphere N' (@pair (cart R N') R a r))) = (Rle r (R_of_N (NUMERAL 0%N))). +Axiom thm_NO_RETRACTION_CBALL : forall {N' : Type'}, forall a : cart R N', forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> ~ (@retract_of N' (@sphere N' (@pair (cart R N') R a e)) (@cball N' (@pair (cart R N') R a e))). +Axiom thm_BROUWER_BALL : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall a : cart R N', forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@continuous_on N' N' f (@cball N' (@pair (cart R N') R a e))) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@cball N' (@pair (cart R N') R a e))) (@cball N' (@pair (cart R N') R a e))))) -> exists x : cart R N', (@IN (cart R N') x (@cball N' (@pair (cart R N') R a e))) /\ ((f x) = x). +Axiom thm_BROUWER : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@continuous_on N' N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s))))) -> exists x : cart R N', (@IN (cart R N') x s) /\ ((f x) = x). +Axiom thm_BROUWER_WEAK : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((@convex N' s) /\ ((~ ((@interior N' s) = (@EMPTY (cart R N')))) /\ ((@continuous_on N' N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s))))) -> exists x : cart R N', (@IN (cart R N') x s) /\ ((f x) = x). +Axiom thm_BROUWER_CUBE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@continuous_on N' N' f (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vec N' (NUMERAL 0%N)) (@vec N' (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R N') (cart R N')))))) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vec N' (NUMERAL 0%N)) (@vec N' (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R N') (cart R N')))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vec N' (NUMERAL 0%N)) (@vec N' (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R N') (cart R N'))))))) -> exists x : cart R N', (@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vec N' (NUMERAL 0%N)) (@vec N' (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R N') (cart R N')))))) /\ ((f x) = x). +Axiom thm_DIMENSION_EQ_AFF_DIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@dimension N' s) = (@aff_dim N' s). +Axiom thm_AFF_DIM_DIMENSION : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@aff_dim N' s) = (@dimension N' (@hull (cart R N') (@affine N') s)). +Axiom thm_AFF_DIM_DIMENSION_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@aff_dim N' s) = (@dimension N' (@hull (cart R N') (@convex N') s)). +Axiom thm_DIMENSION_SUBSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@subspace N' s) -> (@dimension N' s) = (Z_of_N (@dim N' s)). +Axiom thm_DIM_DIMENSION : forall {N' : Type'}, forall s : (cart R N') -> Prop, (Z_of_N (@dim N' s)) = (@dimension N' (@span N' s)). +Axiom thm_DIMENSION_OPEN_IN_CONVEX : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@convex N' u) /\ (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s)) -> (@dimension N' s) = (@COND Z (s = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (@aff_dim N' u)). +Axiom thm_DIMENSION_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> (@dimension N' s) = (@COND Z (s = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (@dimindex N' (@UNIV N')))). +Axiom thm_DIMENSION_UNIV : forall {N' : Type'}, (@dimension N' (@UNIV (cart R N'))) = (Z_of_N (@dimindex N' (@UNIV N'))). +Axiom thm_DIMENSION_NONEMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ ((@interior N' s) = (@EMPTY (cart R N')))) -> (@dimension N' s) = (Z_of_N (@dimindex N' (@UNIV N'))). +Axiom thm_DIMENSION_ATMOST_RATIONAL_COORDINATES : forall {N' : Type'}, forall n : N, (N.le n (@dimindex N' (@UNIV N'))) -> (@dimension N' (@GSPEC (cart R N') (fun GEN_PVAR_5581 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5581 (N.le (@CARD N (@GSPEC N (fun GEN_PVAR_5580 : N => exists i : N, @SETSPEC N GEN_PVAR_5580 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (rational (@dollar R N' x i))) i))) n) x))) = (Z_of_N n). +Axiom thm_DIMENSION_COMPLEMENT_RATIONAL_COORDINATES : forall {N' : Type'}, (@dimension N' (@DIFF (cart R N') (@UNIV (cart R N')) (@GSPEC (cart R N') (fun GEN_PVAR_5585 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5585 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> rational (@dollar R N' x i)) x)))) = (int_sub (Z_of_N (@dimindex N' (@UNIV N'))) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_DIMENSION_EQ_FULL_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@dimension N' s) = (@aff_dim N' s)) = ((s = (@EMPTY (cart R N'))) \/ (~ ((@relative_interior N' s) = (@EMPTY (cart R N'))))). +Axiom thm_DIMENSION_LT_FULL_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (int_lt (@dimension N' s) (@aff_dim N' s)) = ((~ (s = (@EMPTY (cart R N')))) /\ ((@relative_interior N' s) = (@EMPTY (cart R N')))). +Axiom thm_DIMENSION_EQ_FULL_ALT : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@convex N' u) /\ (@SUBSET (cart R N') s u)) -> ((@dimension N' s) = (@aff_dim N' u)) = (((s = (@EMPTY (cart R N'))) /\ (u = (@EMPTY (cart R N')))) \/ (~ ((@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) = (@EMPTY (cart R N'))))). +Axiom thm_DIMENSION_LT_FULL_ALT : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@convex N' u) /\ (@SUBSET (cart R N') s u)) -> (int_lt (@dimension N' s) (@aff_dim N' u)) = ((~ (u = (@EMPTY (cart R N')))) /\ ((@interior_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) = (@EMPTY (cart R N')))). +Axiom thm_DIMENSION_EQ_FULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@dimension N' s) = (Z_of_N (@dimindex N' (@UNIV N')))) = (~ ((@interior N' s) = (@EMPTY (cart R N')))). +Axiom thm_DIMENSION_LT_FULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (int_lt (@dimension N' s) (Z_of_N (@dimindex N' (@UNIV N')))) = ((@interior N' s) = (@EMPTY (cart R N'))). +Axiom thm_DIMENSION_RELATIVE_FRONTIER_BOUNDED_OPEN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@affine N' u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@bounded N' s))) -> (@dimension N' (@relative_frontier N' s)) = (@COND Z (s = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (int_sub (@aff_dim N' u) (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_DIMENSION_FRONTIER_BOUNDED_OPEN : forall {N' : Type'}, forall u : (cart R N') -> Prop, ((@_open N' u) /\ (@bounded N' u)) -> (@dimension N' (@frontier N' u)) = (@COND Z (u = (@EMPTY (cart R N'))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (int_sub (Z_of_N (@dimindex N' (@UNIV N'))) (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_DIMENSION_RELATIVE_FRONTIER_NONDENSE_OPEN : forall {N' : Type'}, forall u : (cart R N') -> Prop, forall s : (cart R N') -> Prop, ((@affine N' u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (~ ((@closure_of (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) = u))))) -> (@dimension N' (@relative_frontier N' s)) = (int_sub (@aff_dim N' u) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_DIMENSION_FRONTIER_NONDENSE_OPEN : forall {N' : Type'}, forall u : (cart R N') -> Prop, ((@_open N' u) /\ ((~ (u = (@EMPTY (cart R N')))) /\ (~ ((@closure N' u) = (@UNIV (cart R N')))))) -> (@dimension N' (@frontier N' u)) = (int_sub (Z_of_N (@dimindex N' (@UNIV N'))) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_DIMENSION_RELATIVE_FRONTIER_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@bounded N' s) /\ (~ (s = (@EMPTY (cart R N')))))) -> (@dimension N' (@relative_frontier N' s)) = (int_sub (@aff_dim N' s) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_DIMENSION_SPHERE_INTER_AFFINE : forall {N' : Type'}, forall a : cart R N', forall r : R, forall t : (cart R N') -> Prop, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@affine N' t) /\ (@IN (cart R N') a t))) -> (@dimension N' (@INTER (cart R N') (@sphere N' (@pair (cart R N') R a r)) t)) = (int_sub (@aff_dim N' t) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_DIMENSION_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (@dimension N' (@sphere N' (@pair (cart R N') R a r))) = (@COND Z (Rlt (R_of_N (NUMERAL 0%N)) r) (int_sub (Z_of_N (@dimindex N' (@UNIV N'))) (Z_of_N (NUMERAL (BIT1 0%N)))) (@COND Z (r = (R_of_N (NUMERAL 0%N))) (Z_of_N (NUMERAL 0%N)) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_CONNECTED_OPEN_IN_CONVEX_DIFF_LOWDIM : forall {N' : Type'}, forall c : (cart R N') -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' c) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') c) s) /\ ((@connected N' s) /\ (int_le (@dimension N' t) (int_sub (@aff_dim N' c) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))) -> @connected N' (@DIFF (cart R N') s t). +Axiom thm_CONNECTED_CONVEX_DIFF_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ (int_le (@dimension N' t) (int_sub (@aff_dim N' s) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> @connected N' (@DIFF (cart R N') s t). +Axiom thm_CONNECTED_OPEN_IN_DIFF_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@hull (cart R N') (@affine N') s)) s) /\ ((@connected N' s) /\ (int_le (@dimension N' t) (int_sub (@aff_dim N' s) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> @connected N' (@DIFF (cart R N') s t). +Axiom thm_CONNECTED_OPEN_DIFF_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@_open N' s) /\ ((@connected N' s) /\ (int_le (@dimension N' t) (int_sub (Z_of_N (@dimindex N' (@UNIV N'))) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> @connected N' (@DIFF (cart R N') s t). +Axiom thm_CONNECTED_FULL_CONVEX_DIFF_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((~ ((@interior N' s) = (@EMPTY (cart R N')))) /\ (int_le (@dimension N' t) (int_sub (Z_of_N (@dimindex N' (@UNIV N'))) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> @connected N' (@DIFF (cart R N') s t). +Axiom thm_CONNECTED_UNIV_DIFF_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (int_le (@dimension N' s) (int_sub (Z_of_N (@dimindex N' (@UNIV N'))) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s). +Axiom thm_CONNECTED_FULL_REGULAR_DIFF_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') s (@closure N' (@interior N' s))) /\ ((@connected N' (@interior N' s)) /\ (int_le (@dimension N' t) (int_sub (Z_of_N (@dimindex N' (@UNIV N'))) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> @connected N' (@DIFF (cart R N') s t). +Axiom thm_AR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@AR N' s) = (forall u : (cart R (finite_sum N' unit)) -> Prop, forall s' : (cart R (finite_sum N' unit)) -> Prop, ((@homeomorphic (finite_sum N' unit) N' s s') /\ (@closed_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) s')) -> @retract_of (finite_sum N' unit) s' u). +Axiom thm_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ANR N' s) = (forall u : (cart R (finite_sum N' unit)) -> Prop, forall s' : (cart R (finite_sum N' unit)) -> Prop, ((@homeomorphic (finite_sum N' unit) N' s s') /\ (@closed_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) s')) -> exists t : (cart R (finite_sum N' unit)) -> Prop, (@open_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) t) /\ (@retract_of (finite_sum N' unit) s' t)). +Axiom thm_ENR : forall {_1210526 : Type'}, forall s : (cart R _1210526) -> Prop, (@ENR _1210526 s) = (exists u : (cart R _1210526) -> Prop, (@_open _1210526 u) /\ (@retract_of _1210526 s u)). +Axiom thm_AR_IMP_ABSOLUTE_EXTENSOR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@AR N' s) /\ ((@continuous_on M N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f t) s) /\ (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) t)))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g u) s) /\ (forall x : cart R M, (@IN (cart R M) x t) -> (g x) = (f x))). +Axiom thm_AR_IMP_ABSOLUTE_RETRACT : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, ((@AR N' s) /\ ((@homeomorphic M N' s s') /\ (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s'))) -> @retract_of M s' u. +Axiom thm_AR_IMP_ABSOLUTE_RETRACT_UNIV : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall s' : (cart R M) -> Prop, ((@AR N' s) /\ ((@homeomorphic M N' s s') /\ (@closed M s'))) -> @retract_of M s' (@UNIV (cart R M)). +Axiom thm_ABSOLUTE_EXTENSOR_IMP_AR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (forall f : (cart R (finite_sum N' unit)) -> cart R N', forall u : (cart R (finite_sum N' unit)) -> Prop, forall t : (cart R (finite_sum N' unit)) -> Prop, ((@continuous_on (finite_sum N' unit) N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum N' unit)) (cart R N') f t) s) /\ (@closed_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) t))) -> exists g : (cart R (finite_sum N' unit)) -> cart R N', (@continuous_on (finite_sum N' unit) N' g u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum N' unit)) (cart R N') g u) s) /\ (forall x : cart R (finite_sum N' unit), (@IN (cart R (finite_sum N' unit)) x t) -> (g x) = (f x)))) -> @AR N' s. +Axiom thm_AR_EQ_ABSOLUTE_EXTENSOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@AR N' s) = (forall f : (cart R (finite_sum N' unit)) -> cart R N', forall u : (cart R (finite_sum N' unit)) -> Prop, forall t : (cart R (finite_sum N' unit)) -> Prop, ((@continuous_on (finite_sum N' unit) N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum N' unit)) (cart R N') f t) s) /\ (@closed_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) t))) -> exists g : (cart R (finite_sum N' unit)) -> cart R N', (@continuous_on (finite_sum N' unit) N' g u) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum N' unit)) (cart R N') g u) s) /\ (forall x : cart R (finite_sum N' unit), (@IN (cart R (finite_sum N' unit)) x t) -> (g x) = (f x)))). +Axiom thm_AR_IMP_RETRACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@AR N' s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s)) -> @retract_of N' s u. +Axiom thm_HOMEOMORPHIC_ARNESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@AR M s) = (@AR N' t). +Axiom thm_AR_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@AR N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@AR N' s). +Axiom thm_AR_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@AR N' (@IMAGE (cart R M) (cart R N') f s)) = (@AR M s). +Axiom thm_HOMEOMORPHISM_ARNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@AR N' (@IMAGE (cart R M) (cart R N') f k)) = (@AR M k). +Axiom thm_ANR_IMP_ABSOLUTE_NEIGHBOURHOOD_EXTENSOR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@ANR N' s) /\ ((@continuous_on M N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f t) s) /\ (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) t)))) -> exists v : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@SUBSET (cart R M) t v) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) v) /\ ((@continuous_on M N' g v) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g v) s) /\ (forall x : cart R M, (@IN (cart R M) x t) -> (g x) = (f x))))). +Axiom thm_ANR_IMP_ABSOLUTE_NEIGHBOURHOOD_RETRACT : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, ((@ANR N' s) /\ ((@homeomorphic M N' s s') /\ (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s'))) -> exists v : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) v) /\ (@retract_of M s' v). +Axiom thm_ANR_IMP_ABSOLUTE_NEIGHBOURHOOD_RETRACT_UNIV : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall s' : (cart R M) -> Prop, ((@ANR N' s) /\ ((@homeomorphic M N' s s') /\ (@closed M s'))) -> exists v : (cart R M) -> Prop, (@_open M v) /\ (@retract_of M s' v). +Axiom thm_ABSOLUTE_NEIGHBOURHOOD_EXTENSOR_IMP_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (forall f : (cart R (finite_sum N' unit)) -> cart R N', forall u : (cart R (finite_sum N' unit)) -> Prop, forall t : (cart R (finite_sum N' unit)) -> Prop, ((@continuous_on (finite_sum N' unit) N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum N' unit)) (cart R N') f t) s) /\ (@closed_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) t))) -> exists v : (cart R (finite_sum N' unit)) -> Prop, exists g : (cart R (finite_sum N' unit)) -> cart R N', (@SUBSET (cart R (finite_sum N' unit)) t v) /\ ((@open_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) v) /\ ((@continuous_on (finite_sum N' unit) N' g v) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum N' unit)) (cart R N') g v) s) /\ (forall x : cart R (finite_sum N' unit), (@IN (cart R (finite_sum N' unit)) x t) -> (g x) = (f x)))))) -> @ANR N' s. +Axiom thm_ANR_EQ_ABSOLUTE_NEIGHBOURHOOD_EXTENSOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ANR N' s) = (forall f : (cart R (finite_sum N' unit)) -> cart R N', forall u : (cart R (finite_sum N' unit)) -> Prop, forall t : (cart R (finite_sum N' unit)) -> Prop, ((@continuous_on (finite_sum N' unit) N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum N' unit)) (cart R N') f t) s) /\ (@closed_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) t))) -> exists v : (cart R (finite_sum N' unit)) -> Prop, exists g : (cart R (finite_sum N' unit)) -> cart R N', (@SUBSET (cart R (finite_sum N' unit)) t v) /\ ((@open_in (cart R (finite_sum N' unit)) (@subtopology (cart R (finite_sum N' unit)) (@euclidean (finite_sum N' unit)) u) v) /\ ((@continuous_on (finite_sum N' unit) N' g v) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (finite_sum N' unit)) (cart R N') g v) s) /\ (forall x : cart R (finite_sum N' unit), (@IN (cart R (finite_sum N' unit)) x t) -> (g x) = (f x)))))). +Axiom thm_ANR_IMP_ABSOLUTE_CLOSED_NEIGHBOURHOOD_RETRACT : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, ((@ANR N' s) /\ ((@homeomorphic M N' s s') /\ (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s'))) -> exists v : (cart R M) -> Prop, exists w : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) v) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) w) /\ ((@SUBSET (cart R M) s' v) /\ ((@SUBSET (cart R M) v w) /\ (@retract_of M s' w)))). +Axiom thm_ANR_IMP_ABSOLUTE_CLOSED_NEIGHBOURHOOD_EXTENSOR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall s : (cart R N') -> Prop, ((@ANR N' s) /\ ((@continuous_on M N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f t) s) /\ (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) t)))) -> exists v : (cart R M) -> Prop, exists w : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) v) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) w) /\ ((@SUBSET (cart R M) t v) /\ ((@SUBSET (cart R M) v w) /\ ((@continuous_on M N' g w) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g w) s) /\ (forall x : cart R M, (@IN (cart R M) x t) -> (g x) = (f x))))))). +Axiom thm_ANR_IMP_NEIGHBOURHOOD_RETRACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@ANR N' s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s)) -> exists v : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) v) /\ (@retract_of N' s v). +Axiom thm_ANR_IMP_CLOSED_NEIGHBOURHOOD_RETRACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@ANR N' s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s)) -> exists v : (cart R N') -> Prop, exists w : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) v) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) w) /\ ((@SUBSET (cart R N') s v) /\ ((@SUBSET (cart R N') v w) /\ (@retract_of N' s w)))). +Axiom thm_HOMEOMORPHIC_ANRNESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@ANR M s) = (@ANR N' t). +Axiom thm_ANR_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@ANR N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@ANR N' s). +Axiom thm_ANR_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@ANR N' (@IMAGE (cart R M) (cart R N') f s)) = (@ANR M s). +Axiom thm_HOMEOMORPHISM_ANRNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@ANR N' (@IMAGE (cart R M) (cart R N') f k)) = (@ANR M k). +Axiom thm_HOMOTOPIC_ON_NEIGHBOURHOOD_INTO_ANR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall v : (cart R N') -> Prop, ((@ANR N' v) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) v) /\ ((@continuous_on M N' g s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) v) /\ ((@SUBSET (cart R M) t s) /\ (forall x : cart R M, (@IN (cart R M) x t) -> (f x) = (g x)))))))) -> exists u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) /\ ((@SUBSET (cart R M) t u) /\ (@homotopic_with (cart R N') (cart R M) (fun h : (cart R M) -> cart R N' => forall x : cart R M, (@IN (cart R M) x t) -> (h x) = (f x)) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) u) (@subtopology (cart R N') (@euclidean N') v)) f g)). +Axiom thm_ENR_IMP_ABSOLUTE_NEIGHBOURHOOD_RETRACT : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@ENR M s) /\ ((@homeomorphic N' M s s') /\ (@SUBSET (cart R N') s' u))) -> exists t' : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t') /\ (@retract_of N' s' t'). +Axiom thm_ENR_IMP_ABSOLUTE_NEIGHBOURHOOD_RETRACT_UNIV : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R N') -> Prop, ((@ENR M s) /\ (@homeomorphic N' M s s')) -> exists t' : (cart R N') -> Prop, (@_open N' t') /\ (@retract_of N' s' t'). +Axiom thm_HOMEOMORPHIC_ENRNESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@ENR M s) = (@ENR N' t). +Axiom thm_ENR_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@ENR N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@ENR N' s). +Axiom thm_ENR_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@ENR N' (@IMAGE (cart R M) (cart R N') f s)) = (@ENR M s). +Axiom thm_HOMEOMORPHISM_ENRNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@ENR N' (@IMAGE (cart R M) (cart R N') f k)) = (@ENR M k). +Axiom thm_AR_IMP_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@AR N' s) -> @ANR N' s. +Axiom thm_ENR_IMP_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ENR N' s) -> @ANR N' s. +Axiom thm_ENR_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ENR N' s) = ((@ANR N' s) /\ (@locally N' (@compact N') s)). +Axiom thm_AR_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@AR N' s) = ((@ANR N' s) /\ ((@contractible N' s) /\ (~ (s = (@EMPTY (cart R N')))))). +Axiom thm_ANR_RETRACT_OF_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@ANR N' t) /\ (@retract_of N' s t)) -> @ANR N' s. +Axiom thm_AR_RETRACT_OF_AR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@AR N' t) /\ (@retract_of N' s t)) -> @AR N' s. +Axiom thm_ENR_RETRACT_OF_ENR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@ENR N' t) /\ (@retract_of N' s t)) -> @ENR N' s. +Axiom thm_RETRACT_OF_UNIV : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@retract_of N' s (@UNIV (cart R N'))) = ((@AR N' s) /\ (@closed N' s)). +Axiom thm_COMPACT_AR : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@AR N' s)) = ((@compact N' s) /\ (@retract_of N' s (@UNIV (cart R N')))). +Axiom thm_NOT_AR_EMPTY : forall {N' : Type'}, ~ (@AR N' (@EMPTY (cart R N'))). +Axiom thm_AR_IMP_NONEMPTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@AR N' s) -> ~ (s = (@EMPTY (cart R N'))). +Axiom thm_ENR_EMPTY : forall {_1213191 : Type'}, @ENR _1213191 (@EMPTY (cart R _1213191)). +Axiom thm_ANR_EMPTY : forall {_1213195 : Type'}, @ANR _1213195 (@EMPTY (cart R _1213195)). +Axiom thm_CONVEX_IMP_AR : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> @AR N' s. +Axiom thm_CONVEX_IMP_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @ANR N' s. +Axiom thm_IS_INTERVAL_IMP_ENR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' s) -> @ENR N' s. +Axiom thm_ENR_CONVEX_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closed N' s) /\ (@convex N' s)) -> @ENR N' s. +Axiom thm_AR_UNIV : forall {N' : Type'}, @AR N' (@UNIV (cart R N')). +Axiom thm_ANR_UNIV : forall {N' : Type'}, @ANR N' (@UNIV (cart R N')). +Axiom thm_ENR_UNIV : forall {N' : Type'}, @ENR N' (@UNIV (cart R N')). +Axiom thm_AR_SING : forall {N' : Type'}, forall a : cart R N', @AR N' (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_ANR_SING : forall {N' : Type'}, forall a : cart R N', @ANR N' (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_ENR_SING : forall {N' : Type'}, forall a : cart R N', @ENR N' (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_ANR_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) /\ (@ANR N' t)) -> @ANR N' s. +Axiom thm_ENR_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) s) /\ (@ENR N' t)) -> @ENR N' s. +Axiom thm_ANR_NEIGHBORHOOD_RETRACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@retract_of N' s t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ (@ANR N' u))) -> @ANR N' s. +Axiom thm_ENR_NEIGHBORHOOD_RETRACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@retract_of N' s t) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ (@ENR N' u))) -> @ENR N' s. +Axiom thm_ANR_RELATIVE_INTERIOR : forall {_1213444 : Type'}, forall s : (cart R _1213444) -> Prop, (@ANR _1213444 s) -> @ANR _1213444 (@relative_interior _1213444 s). +Axiom thm_ANR_DELETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@ANR N' s) -> @ANR N' (@DELETE (cart R N') s a). +Axiom thm_ENR_RELATIVE_INTERIOR : forall {_1213475 : Type'}, forall s : (cart R _1213475) -> Prop, (@ENR _1213475 s) -> @ENR _1213475 (@relative_interior _1213475 s). +Axiom thm_ENR_DELETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@ENR N' s) -> @ENR N' (@DELETE (cart R N') s a). +Axiom thm_OPEN_IMP_ENR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @ENR N' s. +Axiom thm_OPEN_IMP_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @ANR N' s. +Axiom thm_ANR_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, @ANR N' (@ball N' (@pair (cart R N') R a r)). +Axiom thm_ENR_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, @ENR N' (@ball N' (@pair (cart R N') R a r)). +Axiom thm_AR_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (@AR N' (@ball N' (@pair (cart R N') R a r))) = (Rlt (R_of_N (NUMERAL 0%N)) r). +Axiom thm_ANR_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, @ANR N' (@cball N' (@pair (cart R N') R a r)). +Axiom thm_ENR_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, @ENR N' (@cball N' (@pair (cart R N') R a r)). +Axiom thm_AR_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, (@AR N' (@cball N' (@pair (cart R N') R a r))) = (Rle (R_of_N (NUMERAL 0%N)) r). +Axiom thm_ANR_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @ANR N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', @ANR N' (@open_interval N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_ENR_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @ENR N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', @ENR N' (@open_interval N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_AR_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@AR N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))))) /\ (forall a : cart R N', forall b : cart R N', (@AR N' (@open_interval N' (@pair (cart R N') (cart R N') a b))) = (~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N'))))). +Axiom thm_ANR_INTERIOR : forall {_1213815 : Type'}, forall s : (cart R _1213815) -> Prop, @ANR _1213815 (@interior _1213815 s). +Axiom thm_ENR_INTERIOR : forall {_1213824 : Type'}, forall s : (cart R _1213824) -> Prop, @ENR _1213824 (@interior _1213824 s). +Axiom thm_AR_IMP_CONTRACTIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@AR N' s) -> @contractible N' s. +Axiom thm_AR_IMP_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@AR N' s) -> @path_connected N' s. +Axiom thm_AR_IMP_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@AR N' s) -> @connected N' s. +Axiom thm_ENR_IMP_LOCALLY_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ENR N' s) -> @locally N' (@compact N') s. +Axiom thm_ANR_IMP_LOCALLY_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ANR N' s) -> @locally N' (@path_connected N') s. +Axiom thm_ANR_IMP_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ANR N' s) -> @locally N' (@connected N') s. +Axiom thm_AR_IMP_LOCALLY_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@AR N' s) -> @locally N' (@path_connected N') s. +Axiom thm_AR_IMP_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@AR N' s) -> @locally N' (@connected N') s. +Axiom thm_ENR_IMP_LOCALLY_PATH_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ENR N' s) -> @locally N' (@path_connected N') s. +Axiom thm_ENR_IMP_LOCALLY_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ENR N' s) -> @locally N' (@connected N') s. +Axiom thm_COUNTABLE_ANR_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ANR N' s) -> @COUNTABLE ((cart R N') -> Prop) (@components N' s). +Axiom thm_COUNTABLE_ANR_CONNECTED_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@ANR N' s) -> @COUNTABLE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5598 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5598 (@IN (cart R N') x t) (@connected_component N' s x))). +Axiom thm_COUNTABLE_ANR_PATH_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@ANR N' s) -> @COUNTABLE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5599 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5599 (@IN (cart R N') x t) (@path_component N' s x))). +Axiom thm_FINITE_ANR_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@ANR N' s) /\ (@compact N' s)) -> @FINITE ((cart R N') -> Prop) (@components N' s). +Axiom thm_FINITE_ENR_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@ENR N' s) /\ (@compact N' s)) -> @FINITE ((cart R N') -> Prop) (@components N' s). +Axiom thm_ANR_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@ANR M s) /\ (@ANR N' t)) -> @ANR (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_ANR_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@ANR (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@ANR M s) /\ (@ANR N' t)))). +Axiom thm_AR_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@AR M s) /\ (@AR N' t)) -> @AR (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_ENR_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@ENR M s) /\ (@ENR N' t)) -> @ENR (finite_sum M N') (@PCROSS R M N' s t). +Axiom thm_ENR_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@ENR (finite_sum M N') (@PCROSS R M N' s t)) = ((s = (@EMPTY (cart R M))) \/ ((t = (@EMPTY (cart R N'))) \/ ((@ENR M s) /\ (@ENR N' t)))). +Axiom thm_AR_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@AR (finite_sum M N') (@PCROSS R M N' s t)) = ((@AR M s) /\ ((@AR N' t) /\ ((~ (s = (@EMPTY (cart R M)))) /\ (~ (t = (@EMPTY (cart R N'))))))). +Axiom thm_AR_CLOSED_UNION_LOCAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t) /\ ((@AR N' s) /\ ((@AR N' t) /\ (@AR N' (@INTER (cart R N') s t)))))) -> @AR N' (@UNION (cart R N') s t). +Axiom thm_ANR_UNION_EXTENSION_LEMMA : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R N') -> Prop, forall s1 : (cart R M) -> Prop, forall s2 : (cart R M) -> Prop, forall u1 : (cart R N') -> Prop, forall u2 : (cart R N') -> Prop, ((@continuous_on M N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f t) u) /\ ((@ANR N' u1) /\ ((@ANR N' u2) /\ ((@ANR N' (@INTER (cart R N') u1 u2)) /\ (((@UNION (cart R N') u1 u2) = u) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) t) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) s1) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) s2) /\ (((@UNION (cart R M) s1 s2) = s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@INTER (cart R M) t s1)) u1) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@INTER (cart R M) t s2)) u2)))))))))))) -> exists v : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@SUBSET (cart R M) t v) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) v) /\ ((@continuous_on M N' g v) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g v) u) /\ (forall x : cart R M, (@IN (cart R M) x t) -> (g x) = (f x))))). +Axiom thm_ANR_CLOSED_UNION_LOCAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@ANR N' s) /\ ((@ANR N' t) /\ (@ANR N' (@INTER (cart R N') s t)))))) -> @ANR N' (@UNION (cart R N') s t). +Axiom thm_ENR_CLOSED_UNION_LOCAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@ENR N' s) /\ ((@ENR N' t) /\ (@ENR N' (@INTER (cart R N') s t)))))) -> @ENR N' (@UNION (cart R N') s t). +Axiom thm_AR_CLOSED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ ((@AR N' s) /\ ((@AR N' t) /\ (@AR N' (@INTER (cart R N') s t)))))) -> @AR N' (@UNION (cart R N') s t). +Axiom thm_ANR_CLOSED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ ((@ANR N' s) /\ ((@ANR N' t) /\ (@ANR N' (@INTER (cart R N') s t)))))) -> @ANR N' (@UNION (cart R N') s t). +Axiom thm_ENR_CLOSED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ ((@ENR N' s) /\ ((@ENR N' t) /\ (@ENR N' (@INTER (cart R N') s t)))))) -> @ENR N' (@UNION (cart R N') s t). +Axiom thm_ABSOLUTE_RETRACT_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@retract_of N' s (@UNIV (cart R N'))) /\ ((@retract_of N' t (@UNIV (cart R N'))) /\ (@retract_of N' (@INTER (cart R N') s t) (@UNIV (cart R N'))))) -> @retract_of N' (@UNION (cart R N') s t) (@UNIV (cart R N')). +Axiom thm_RETRACT_FROM_UNION_AND_INTER : forall {N' : Type'} (u : (cart R N') -> Prop), forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t) /\ ((@retract_of N' (@UNION (cart R N') s t) u) /\ (@retract_of N' (@INTER (cart R N') s t) t)))) -> @retract_of N' s u. +Axiom thm_AR_FROM_UNION_AND_INTER_LOCAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t) /\ ((@AR N' (@UNION (cart R N') s t)) /\ (@AR N' (@INTER (cart R N') s t))))) -> (@AR N' s) /\ (@AR N' t). +Axiom thm_AR_FROM_UNION_AND_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ ((@AR N' (@UNION (cart R N') s t)) /\ (@AR N' (@INTER (cart R N') s t))))) -> (@AR N' s) /\ (@AR N' t). +Axiom thm_ANR_FROM_UNION_AND_INTER_LOCAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t) /\ ((@ANR N' (@UNION (cart R N') s t)) /\ (@ANR N' (@INTER (cart R N') s t))))) -> (@ANR N' s) /\ (@ANR N' t). +Axiom thm_ANR_FROM_UNION_AND_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ ((@ANR N' (@UNION (cart R N') s t)) /\ (@ANR N' (@INTER (cart R N') s t))))) -> (@ANR N' s) /\ (@ANR N' t). +Axiom thm_ANR_FINITE_UNIONS_CONVEX_CLOSED : forall {N' : Type'}, forall t : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) t) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c t) -> (@closed N' c) /\ (@convex N' c))) -> @ANR N' (@UNIONS (cart R N') t). +Axiom thm_FINITE_IMP_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> @ANR N' s. +Axiom thm_ANR_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@closed N' s) /\ (@ANR N' s)) -> @ANR N' (@INSERT (cart R N') a s). +Axiom thm_ANR_TRIANGULATION : forall {_1217222 : Type'}, forall tr : ((cart R _1217222) -> Prop) -> Prop, (@triangulation _1217222 tr) -> @ANR _1217222 (@UNIONS (cart R _1217222) tr). +Axiom thm_ANR_SIMPLICIAL_COMPLEX : forall {_1217235 : Type'}, forall c : ((cart R _1217235) -> Prop) -> Prop, (@simplicial_complex _1217235 c) -> @ANR _1217235 (@UNIONS (cart R _1217235) c). +Axiom thm_ANR_PATH_COMPONENT_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@ANR N' s) -> @ANR N' (@path_component N' s x). +Axiom thm_ANR_CONNECTED_COMPONENT_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@ANR N' s) -> @ANR N' (@connected_component N' s x). +Axiom thm_ANR_COMPONENT_ANR : forall {N' : Type'} (c : (cart R N') -> Prop), forall s : (cart R N') -> Prop, ((@ANR N' s) /\ (@IN ((cart R N') -> Prop) c (@components N' s))) -> @ANR N' c. +Axiom thm_ANR_OPEN_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@ANR N' s) /\ (@ANR N' t)))) -> @ANR N' (@UNION (cart R N') s t). +Axiom thm_ENR_OPEN_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t) /\ ((@ENR N' s) /\ (@ENR N' t)))) -> @ENR N' (@UNION (cart R N') s t). +Axiom thm_ANR_OPEN_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall u : (cart R N') -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @ANR N' s) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s)) -> @ANR N' (@UNIONS (cart R N') f). +Axiom thm_ENR_OPEN_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, forall u : (cart R N') -> Prop, ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @ENR N' s) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s)) -> @ENR N' (@UNIONS (cart R N') f). +Axiom thm_LOCALLY_ANR_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@ANR N') s) = (forall v : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@IN (cart R N') x v)) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@ANR N' u) /\ ((@IN (cart R N') x u) /\ (@SUBSET (cart R N') u v)))). +Axiom thm_LOCALLY_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@ANR N') s) = (forall x : cart R N', (@IN (cart R N') x s) -> exists v : (cart R N') -> Prop, (@IN (cart R N') x v) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@ANR N' v))). +Axiom thm_ANR_LOCALLY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@ANR N') s) = (@ANR N' s). +Axiom thm_LOCALLY_ENR_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@ENR N') s) = (forall v : (cart R N') -> Prop, forall x : cart R N', ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@IN (cart R N') x v)) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@ENR N' u) /\ ((@IN (cart R N') x u) /\ (@SUBSET (cart R N') u v)))). +Axiom thm_LOCALLY_ENR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@ENR N') s) = (forall x : cart R N', (@IN (cart R N') x s) -> exists v : (cart R N') -> Prop, (@IN (cart R N') x v) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) v) /\ (@ENR N' v))). +Axiom thm_ENR_LOCALLY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@ENR N') s) = (@ENR N' s). +Axiom thm_ANR_COVERING_SPACE_EQ : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, forall c : (cart R M) -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> (@ANR N' s) = (@ANR M c). +Axiom thm_ANR_COVERING_SPACE : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, forall c : (cart R M) -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ (@ANR M c)) -> @ANR N' s. +Axiom thm_ENR_COVERING_SPACE_EQ : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, forall c : (cart R M) -> Prop, (@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) -> (@ENR N' s) = (@ENR M c). +Axiom thm_ENR_COVERING_SPACE : forall {M N' : Type'}, forall p : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, forall c : (cart R M) -> Prop, ((@covering_space M N' (@pair ((cart R M) -> Prop) ((cart R M) -> cart R N') c p) s) /\ (@ENR M c)) -> @ENR N' s. +Axiom thm_ENR_BOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> (@ENR N' s) = (exists u : (cart R N') -> Prop, (@_open N' u) /\ ((@bounded N' u) /\ (@retract_of N' s u))). +Axiom thm_ABSOLUTE_RETRACT_IMP_AR_GEN : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R N') -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R N') -> Prop, ((@retract_of M s t) /\ ((@convex M t) /\ ((~ (t = (@EMPTY (cart R M)))) /\ ((@homeomorphic N' M s s') /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s'))))) -> @retract_of N' s' u. +Axiom thm_ABSOLUTE_RETRACT_IMP_AR : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R N') -> Prop, ((@retract_of M s (@UNIV (cart R M))) /\ ((@homeomorphic N' M s s') /\ (@closed N' s'))) -> @retract_of N' s' (@UNIV (cart R N')). +Axiom thm_HOMEOMORPHIC_COMPACT_ARNESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R N') -> Prop, (@homeomorphic N' M s s') -> ((@compact M s) /\ (@retract_of M s (@UNIV (cart R M)))) = ((@compact N' s') /\ (@retract_of N' s' (@UNIV (cart R N')))). +Axiom thm_EXTENSION_INTO_AR_LOCAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f c) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f c) t) /\ ((@retract_of N' t (@UNIV (cart R N'))) /\ (@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) c)))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@UNIV (cart R M))) t) /\ (forall x : cart R M, (@IN (cart R M) x c) -> (g x) = (f x))). +Axiom thm_EXTENSION_INTO_AR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@retract_of N' t (@UNIV (cart R N'))) /\ (@closed M s)))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g (@UNIV (cart R M))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@UNIV (cart R M))) t) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))). +Axiom thm_NEIGHBOURHOOD_EXTENSION_INTO_ANR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@ANR N' t) /\ (@closed M s)))) -> exists v : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@SUBSET (cart R M) s v) /\ ((@_open M v) /\ ((@continuous_on M N' g v) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g v) t) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))))). +Axiom thm_EXTENSION_FROM_COMPONENT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall c : (cart R M) -> Prop, forall u : (cart R N') -> Prop, (((@locally M (@connected M) s) \/ ((@compact M s) /\ (@ANR N' u))) /\ ((@IN ((cart R M) -> Prop) c (@components M s)) /\ ((@continuous_on M N' f c) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f c) u)))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) u) /\ (forall x : cart R M, (@IN (cart R M) x c) -> (g x) = (f x))). +Axiom thm_ABSOLUTE_RETRACT_FROM_UNION_AND_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@retract_of N' (@UNION (cart R N') s t) (@UNIV (cart R N'))) /\ ((@retract_of N' (@INTER (cart R N') s t) (@UNIV (cart R N'))) /\ ((@closed N' s) /\ (@closed N' t)))) -> @retract_of N' s (@UNIV (cart R N')). +Axiom thm_COUNTABLE_ENR_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ENR N' s) -> @COUNTABLE ((cart R N') -> Prop) (@components N' s). +Axiom thm_COUNTABLE_ENR_CONNECTED_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@ENR N' s) -> @COUNTABLE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5646 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5646 (@IN (cart R N') x t) (@connected_component N' s x))). +Axiom thm_COUNTABLE_ENR_PATH_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ENR N' s) -> @COUNTABLE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5647 : (cart R N') -> Prop => exists x : cart R N', @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5647 (@IN (cart R N') x s) (@path_component N' s x))). +Axiom thm_ENR_FROM_UNION_AND_INTER_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t) /\ ((@ENR N' (@UNION (cart R N') s t)) /\ (@ENR N' (@INTER (cart R N') s t))))) -> @ENR N' s. +Axiom thm_ENR_FROM_UNION_AND_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ ((@ENR N' (@UNION (cart R N') s t)) /\ (@ENR N' (@INTER (cart R N') s t))))) -> @ENR N' s. +Axiom thm_ENR_CLOSURE_FROM_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ENR N' (@frontier N' s)) -> @ENR N' (@closure N' s). +Axiom thm_ANR_CLOSURE_FROM_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ANR N' (@frontier N' s)) -> @ANR N' (@closure N' s). +Axiom thm_ENR_FINITE_UNIONS_CONVEX_CLOSED : forall {N' : Type'}, forall t : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) t) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c t) -> (@closed N' c) /\ (@convex N' c))) -> @ENR N' (@UNIONS (cart R N') t). +Axiom thm_FINITE_IMP_ENR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@FINITE (cart R N') s) -> @ENR N' s. +Axiom thm_ENR_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@closed N' s) /\ (@ENR N' s)) -> @ENR N' (@INSERT (cart R N') a s). +Axiom thm_ENR_TRIANGULATION : forall {_1221362 : Type'}, forall tr : ((cart R _1221362) -> Prop) -> Prop, (@triangulation _1221362 tr) -> @ENR _1221362 (@UNIONS (cart R _1221362) tr). +Axiom thm_ENR_SIMPLICIAL_COMPLEX : forall {_1221375 : Type'}, forall c : ((cart R _1221375) -> Prop) -> Prop, (@simplicial_complex _1221375 c) -> @ENR _1221375 (@UNIONS (cart R _1221375) c). +Axiom thm_ENR_PATH_COMPONENT_ENR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@ENR N' s) -> @ENR N' (@path_component N' s x). +Axiom thm_ENR_CONNECTED_COMPONENT_ENR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall x : cart R N', (@ENR N' s) -> @ENR N' (@connected_component N' s x). +Axiom thm_ENR_COMPONENT_ENR : forall {N' : Type'} (c : (cart R N') -> Prop), forall s : (cart R N') -> Prop, ((@ENR N' s) /\ (@IN ((cart R N') -> Prop) c (@components N' s))) -> @ENR N' c. +Axiom thm_ENR_INTER_CLOSED_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ENR N' s) -> exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, (@closed N' t) /\ ((@_open N' u) /\ (s = (@INTER (cart R N') t u))). +Axiom thm_ENR_IMP_FSGIMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ENR N' s) -> @fsigma N' s. +Axiom thm_ENR_IMP_GDELTA : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ENR N' s) -> @gdelta N' s. +Axiom thm_IS_INTERVAL_IMP_FSIGMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' s) -> @fsigma N' s. +Axiom thm_IS_INTERVAL_IMP_GDELTA : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' s) -> @gdelta N' s. +Axiom thm_IS_INTERVAL_IMP_BAIRE1_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@is_interval N' s) -> @baire N' unit (NUMERAL (BIT1 0%N)) (@UNIV (cart R N')) (@indicator N' s). +Axiom thm_ANR_COMPONENTWISE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ANR N' s) = ((@COUNTABLE ((cart R N') -> Prop) (@components N' s)) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c) /\ (@ANR N' c))). +Axiom thm_ENR_COMPONENTWISE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@ENR N' s) = ((@COUNTABLE ((cart R N') -> Prop) (@components N' s)) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) -> (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c) /\ (@ENR N' c))). +Axiom thm_ABSOLUTE_RETRACT_HOMEOMORPHIC_CONVEX_COMPACT : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R M) -> Prop, ((@homeomorphic M N' s u) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') s t) /\ ((@convex M u) /\ (@compact M u))))) -> @retract_of N' s t. +Axiom thm_ABSOLUTE_RETRACT_PATH_IMAGE_ARC : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((@arc N' g) /\ (@SUBSET (cart R N') (@path_image N' g) s)) -> @retract_of N' (@path_image N' g) s. +Axiom thm_AR_ARC_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@arc N' g) -> @AR N' (@path_image N' g). +Axiom thm_RELATIVE_FRONTIER_DEFORMATION_RETRACT_OF_PUNCTURED_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ ((@convex N' t) /\ ((@bounded N' s) /\ ((@IN (cart R N') a (@relative_interior N' s)) /\ ((@SUBSET (cart R N') (@relative_frontier N' s) t) /\ (@SUBSET (cart R N') t (@hull (cart R N') (@affine N') s))))))) -> exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') t a)) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') t a))) (fun x : cart R N' => x) r) /\ ((@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) (@DELETE (cart R N') t a) (@relative_frontier N' s)) r) /\ (forall x : cart R N', exists c : R, (Rlt (R_of_N (NUMERAL 0%N)) c) /\ ((@vector_sub N' (r x) a) = (@percent N' c (@vector_sub N' x a))))). +Axiom thm_RELATIVE_FRONTIER_RETRACT_OF_PUNCTURED_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ ((@bounded N' s) /\ (@IN (cart R N') a (@relative_interior N' s)))) -> @retract_of N' (@relative_frontier N' s) (@DELETE (cart R N') (@hull (cart R N') (@affine N') s) a). +Axiom thm_RELATIVE_BOUNDARY_RETRACT_OF_PUNCTURED_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ ((@compact N' s) /\ (@IN (cart R N') a (@relative_interior N' s)))) -> @retract_of N' (@DIFF (cart R N') s (@relative_interior N' s)) (@DELETE (cart R N') (@hull (cart R N') (@affine N') s) a). +Axiom thm_PATH_CONNECTED_SPHERE_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@bounded N' s) /\ (~ ((@aff_dim N' s) = (Z_of_N (NUMERAL (BIT1 0%N))))))) -> @path_connected N' (@relative_frontier N' s). +Axiom thm_CONNECTED_SPHERE_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((@bounded N' s) /\ (~ ((@aff_dim N' s) = (Z_of_N (NUMERAL (BIT1 0%N))))))) -> @connected N' (@relative_frontier N' s). +Axiom thm_ENR_RELATIVE_FRONTIER_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@convex N' s)) -> @ENR N' (@relative_frontier N' s). +Axiom thm_ANR_RELATIVE_FRONTIER_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@convex N' s)) -> @ANR N' (@relative_frontier N' s). +Axiom thm_FRONTIER_RETRACT_OF_PUNCTURED_UNIVERSE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ ((@bounded N' s) /\ (@IN (cart R N') a (@interior N' s)))) -> @retract_of N' (@frontier N' s) (@DELETE (cart R N') (@UNIV (cart R N')) a). +Axiom thm_SPHERE_RETRACT_OF_PUNCTURED_UNIVERSE_GEN : forall {N' : Type'}, forall a : cart R N', forall r : R, forall b : cart R N', (@IN (cart R N') b (@ball N' (@pair (cart R N') R a r))) -> @retract_of N' (@sphere N' (@pair (cart R N') R a r)) (@DELETE (cart R N') (@UNIV (cart R N')) b). +Axiom thm_SPHERE_RETRACT_OF_PUNCTURED_UNIVERSE : forall {N' : Type'}, forall a : cart R N', forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> @retract_of N' (@sphere N' (@pair (cart R N') R a r)) (@DELETE (cart R N') (@UNIV (cart R N')) a). +Axiom thm_ENR_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, @ENR N' (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_ANR_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, @ANR N' (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_LOCALLY_PATH_CONNECTED_SPHERE_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@convex N' s)) -> @locally N' (@path_connected N') (@relative_frontier N' s). +Axiom thm_LOCALLY_CONNECTED_SPHERE_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@convex N' s)) -> @locally N' (@connected N') (@relative_frontier N' s). +Axiom thm_ABSOLUTE_RETRACTION_CONVEX_CLOSED_RELATIVE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@closed N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') s t)))) -> exists r : (cart R N') -> cart R N', (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t s) r) /\ (forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') (@hull (cart R N') (@affine N') s) (@relative_interior N' s))) -> @IN (cart R N') (r x) (@relative_frontier N' s)). +Axiom thm_ABSOLUTE_RETRACTION_CONVEX_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@closed N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') s t)))) -> exists r : (cart R N') -> cart R N', (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t s) r) /\ (forall x : cart R N', (~ (@IN (cart R N') x s)) -> @IN (cart R N') (r x) (@frontier N' s)). +Axiom thm_ABSOLUTE_RETRACT_CONVEX_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((@closed N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@SUBSET (cart R N') s t)))) -> @retract_of N' s t. +Axiom thm_ABSOLUTE_RETRACT_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s))) -> @retract_of N' s u. +Axiom thm_ENR_PATH_IMAGE_SIMPLE_PATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@simple_path N' g) -> @ENR N' (@path_image N' g). +Axiom thm_ANR_PATH_IMAGE_SIMPLE_PATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@simple_path N' g) -> @ANR N' (@path_image N' g). +Axiom thm_BORSUK_HOMOTOPY_EXTENSION_HOMOTOPIC : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R N') -> Prop, ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) t) s) /\ ((((@ANR M s) /\ (@ANR M t)) \/ (@ANR N' u)) /\ ((@continuous_on M N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f t) u) /\ (@homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') u)) f g))))) -> exists g' : (cart R M) -> cart R N', (@homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) t) (@subtopology (cart R N') (@euclidean N') u)) f g') /\ ((@continuous_on M N' g' t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g' t) u) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g' x) = (g x)))). +Axiom thm_BORSUK_HOMOTOPY_EXTENSION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R N') -> Prop, ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) t) s) /\ ((((@ANR M s) /\ (@ANR M t)) \/ (@ANR N' u)) /\ ((@continuous_on M N' f t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f t) u) /\ (@homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') u)) f g))))) -> exists g' : (cart R M) -> cart R N', (@continuous_on M N' g' t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g' t) u) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g' x) = (g x))). +Axiom thm_NULLHOMOTOPIC_INTO_ANR_EXTENSION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@closed M s) /\ ((@continuous_on M N' f s) /\ ((~ (s = (@EMPTY (cart R M)))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (@ANR N' t))))) -> (exists c : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => c)) = (exists g : (cart R M) -> cart R N', (@continuous_on M N' g (@UNIV (cart R M))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@UNIV (cart R M))) t) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)))). +Axiom thm_NULLHOMOTOPIC_INTO_RELATIVE_FRONTIER_EXTENSION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@closed M s) /\ ((@continuous_on M N' f s) /\ ((~ (s = (@EMPTY (cart R M)))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@relative_frontier N' t)) /\ ((@convex N' t) /\ (@bounded N' t)))))) -> (exists c : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') (@relative_frontier N' t))) f (fun x : cart R M => c)) = (exists g : (cart R M) -> cart R N', (@continuous_on M N' g (@UNIV (cart R M))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@UNIV (cart R M))) (@relative_frontier N' t)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)))). +Axiom thm_NULLHOMOTOPIC_INTO_SPHERE_EXTENSION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R N', forall r : R, ((@closed M s) /\ ((@continuous_on M N' f s) /\ ((~ (s = (@EMPTY (cart R M)))) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@sphere N' (@pair (cart R N') R a r)))))) -> (exists c : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R a r)))) f (fun x : cart R M => c)) = (exists g : (cart R M) -> cart R N', (@continuous_on M N' g (@UNIV (cart R M))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@UNIV (cart R M))) (@sphere N' (@pair (cart R N') R a r))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)))). +Axiom thm_ABSOLUTE_RETRACT_CONTRACTIBLE_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ ((@contractible N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (@ANR N' s)))) -> @retract_of N' s u. +Axiom thm_HOMOTOPIC_ON_COMPONENTS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@locally M (@connected M) s) /\ (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M s)) -> @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) c) (@subtopology (cart R N') (@euclidean N') t)) f g)) -> @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f g. +Axiom thm_INESSENTIAL_ON_COMPONENTS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@locally M (@connected M) s) /\ ((@path_connected N' t) /\ (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M s)) -> exists a : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) c) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => a)))) -> exists a : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => a). +Axiom thm_HOMOTOPIC_NEIGHBOURHOOD_EXTENSION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) u) /\ ((@continuous_on M N' g s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) u) /\ ((@closed_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) t) /\ ((@ANR N' u) /\ (@homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) t) (@subtopology (cart R N') (@euclidean N') u)) f g))))))) -> exists v : (cart R M) -> Prop, (@SUBSET (cart R M) t v) /\ ((@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) v) /\ (@homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) v) (@subtopology (cart R N') (@euclidean N') u)) f g)). +Axiom thm_HOMOTOPIC_ON_COMPONENTS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@locally M (@connected M) s) \/ ((@compact M s) /\ (@ANR N' t))) -> (@homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f g) = ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on M N' g s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) t) /\ (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M s)) -> @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) c) (@subtopology (cart R N') (@euclidean N') t)) f g))))). +Axiom thm_INESSENTIAL_ON_COMPONENTS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall f : (cart R M) -> cart R N', (((@locally M (@connected M) s) \/ ((@compact M s) /\ (@ANR N' t))) /\ (@path_connected N' t)) -> (exists a : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => a)) = ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M s)) -> exists a : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) c) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => a)))). +Axiom thm_COHOMOTOPICALLY_TRIVIAL_ON_COMPONENTS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@locally M (@connected M) s) \/ ((@compact M s) /\ (@ANR N' t))) -> (forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on M N' g s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) t)))) -> @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f g) = (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M s)) -> forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@continuous_on M N' f c) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f c) t) /\ ((@continuous_on M N' g c) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g c) t)))) -> @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) c) (@subtopology (cart R N') (@euclidean N') t)) f g). +Axiom thm_COHOMOTOPICALLY_TRIVIAL_ON_COMPONENTS_NULL : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (((@locally M (@connected M) s) \/ ((@compact M s) /\ (@ANR N' t))) /\ (@path_connected N' t)) -> (forall f : (cart R M) -> cart R N', ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t)) -> exists a : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => a)) = (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M s)) -> forall f : (cart R M) -> cart R N', ((@continuous_on M N' f c) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f c) t)) -> exists a : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) c) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => a)). +Axiom thm_COHOMOTOPICALLY_TRIVIAL_1D : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@ANR N' t) /\ ((@connected N' t) /\ (((@dimindex M (@UNIV M)) = (NUMERAL (BIT1 0%N))) \/ (exists r : (cart R unit) -> Prop, @homeomorphic unit M s r)))))) -> exists a : cart R N', @homotopic_with (cart R N') (cart R M) (fun x : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) s) (@subtopology (cart R N') (@euclidean N') t)) f (fun x : cart R M => a). +Axiom thm_DEFORMATION_RETRACTION_COMPOSE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, forall r1 : (cart R N') -> cart R N', forall r2 : (cart R N') -> cart R N', ((@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r1) /\ ((@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r1) /\ ((@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R N') (@euclidean N') t)) (fun x : cart R N' => x) r2) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u) r2)))) -> (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) (@o (cart R N') (cart R N') (cart R N') r2 r1)) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s u) (@o (cart R N') (cart R N') (cart R N') r2 r1)). +Axiom thm_DEFORMATION_RETRACT_TRANS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r)) /\ (exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') t) (@subtopology (cart R N') (@euclidean N') t)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u) r))) -> exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s u) r). +Axiom thm_DEFORMATION_RETRACT_IMP_HOMOTOPY_EQUIVALENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r)) -> @homotopy_equivalent N' N' s t. +Axiom thm_DEFORMATION_RETRACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r)) = ((@retract_of N' t s) /\ (exists f : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) f) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) t))). +Axiom thm_ANR_STRONG_DEFORMATION_RETRACTION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@ANR N' s) /\ (exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r))) -> exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun h : (cart R N') -> cart R N' => forall x : cart R N', (@IN (cart R N') x t) -> (h x) = x) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r). +Axiom thm_DEFORMATION_RETRACT_OF_CONTRACTIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@contractible N' s) /\ (@retract_of N' t s)) -> exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r). +Axiom thm_AR_DEFORMATION_RETRACT_OF_CONTRACTIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@contractible N' s) /\ ((@AR N' t) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t))) -> exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r). +Axiom thm_DEFORMATION_RETRACT_OF_CONTRACTIBLE_SING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@contractible N' s) /\ (@IN (cart R N') a s)) -> exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s (@INSERT (cart R N') a (@EMPTY (cart R N')))) r). +Axiom thm_STRONG_DEFORMATION_RETRACT_OF_AR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@AR N' s) /\ (@retract_of N' t s)) -> exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun h : (cart R N') -> cart R N' => forall x : cart R N', (@IN (cart R N') x t) -> (h x) = x) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r). +Axiom thm_AR_STRONG_DEFORMATION_RETRACT_OF_AR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@AR N' s) /\ ((@AR N' t) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t))) -> exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun h : (cart R N') -> cart R N' => forall x : cart R N', (@IN (cart R N') x t) -> (h x) = x) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) r). +Axiom thm_SING_STRONG_DEFORMATION_RETRACT_OF_AR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@AR N' s) /\ (@IN (cart R N') a s)) -> exists r : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun h : (cart R N') -> cart R N' => (h a) = a) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) (fun x : cart R N' => x) r) /\ (@retraction N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s (@INSERT (cart R N') a (@EMPTY (cart R N')))) r). +Axiom thm_HOMOTOPY_EQUIVALENT_RELATIVE_FRONTIER_PUNCTURED_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ ((@bounded N' s) /\ ((@IN (cart R N') a (@relative_interior N' s)) /\ ((@convex N' t) /\ ((@SUBSET (cart R N') (@relative_frontier N' s) t) /\ (@SUBSET (cart R N') t (@hull (cart R N') (@affine N') s))))))) -> @homotopy_equivalent N' N' (@relative_frontier N' s) (@DELETE (cart R N') t a). +Axiom thm_HOMOTOPY_EQUIVALENT_RELATIVE_FRONTIER_PUNCTURED_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ ((@bounded N' s) /\ (@IN (cart R N') a (@relative_interior N' s)))) -> @homotopy_equivalent N' N' (@relative_frontier N' s) (@DELETE (cart R N') (@hull (cart R N') (@affine N') s) a). +Axiom thm_HOMOTOPY_EQUIVALENT_PUNCTURED_UNIV_SPHERE : forall {N' : Type'}, forall c : cart R N', forall a : cart R N', forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> @homotopy_equivalent N' N' (@DELETE (cart R N') (@UNIV (cart R N')) c) (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_INVERTIBLE_FIXPOINT_PROPERTY : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall i : (cart R N') -> cart R M, forall r : (cart R M) -> cart R N', ((@continuous_on N' M i t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) i t) s) /\ ((@continuous_on M N' r s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') r s) t) /\ (forall y : cart R N', (@IN (cart R N') y t) -> (r (i y)) = y))))) -> (forall f : (cart R M) -> cart R M, ((@continuous_on M M f s) /\ (@SUBSET (cart R M) (@IMAGE (cart R M) (cart R M) f s) s)) -> exists x : cart R M, (@IN (cart R M) x s) /\ ((f x) = x)) -> forall g : (cart R N') -> cart R N', ((@continuous_on N' N' g t) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') g t) t)) -> exists y : cart R N', (@IN (cart R N') y t) /\ ((g y) = y). +Axiom thm_HOMEOMORPHIC_FIXPOINT_PROPERTY : forall {_1228469 _1228470 : Type'}, forall s : (cart R _1228469) -> Prop, forall t : (cart R _1228470) -> Prop, (@homeomorphic _1228470 _1228469 s t) -> (forall f : (cart R _1228469) -> cart R _1228469, ((@continuous_on _1228469 _1228469 f s) /\ (@SUBSET (cart R _1228469) (@IMAGE (cart R _1228469) (cart R _1228469) f s) s)) -> exists x : cart R _1228469, (@IN (cart R _1228469) x s) /\ ((f x) = x)) = (forall g : (cart R _1228470) -> cart R _1228470, ((@continuous_on _1228470 _1228470 g t) /\ (@SUBSET (cart R _1228470) (@IMAGE (cart R _1228470) (cart R _1228470) g t) t)) -> exists y : cart R _1228470, (@IN (cart R _1228470) y t) /\ ((g y) = y)). +Axiom thm_RETRACT_FIXPOINT_PROPERTY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@retract_of N' t s) /\ (forall f : (cart R N') -> cart R N', ((@continuous_on N' N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s)) -> exists x : cart R N', (@IN (cart R N') x s) /\ ((f x) = x))) -> forall g : (cart R N') -> cart R N', ((@continuous_on N' N' g t) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') g t) t)) -> exists y : cart R N', (@IN (cart R N') y t) /\ ((g y) = y). +Axiom thm_FRONTIER_SUBSET_RETRACTION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall r : (cart R N') -> cart R N', ((@bounded N' s) /\ ((@SUBSET (cart R N') (@frontier N' s) t) /\ ((@continuous_on N' N' r (@closure N' s)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') r s) t) /\ (forall x : cart R N', (@IN (cart R N') x t) -> (r x) = x))))) -> @SUBSET (cart R N') s t. +Axiom thm_NO_RETRACTION_FRONTIER_BOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (~ ((@interior N' s) = (@EMPTY (cart R N'))))) -> ~ (@retract_of N' (@frontier N' s) s). +Axiom thm_COMPACT_SUBSET_FRONTIER_RETRACTION : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((@continuous_on N' N' f s) /\ (forall x : cart R N', (@IN (cart R N') x (@frontier N' s)) -> (f x) = x))) -> @SUBSET (cart R N') s (@IMAGE (cart R N') (cart R N') f s). +Axiom thm_NOT_ABSOLUTE_RETRACT_COBOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@retract_of N' (@DIFF (cart R N') (@UNIV (cart R N')) s) (@UNIV (cart R N')))) -> s = (@EMPTY (cart R N')). +Axiom thm_BOHL : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall a : cart R N', ((@continuous_on N' N' f s) /\ ((@convex N' s) /\ ((@compact N' s) /\ (@IN (cart R N') a (@interior N' s))))) -> (exists x : cart R N', (@IN (cart R N') x s) /\ ((f x) = x)) \/ (exists x : cart R N', (@IN (cart R N') x (@frontier N' s)) /\ (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a (f x))))). +Axiom thm_BOHL_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall a : cart R N', ((@continuous_on N' N' f s) /\ ((@convex N' s) /\ ((@compact N' s) /\ ((@IN (cart R N') a (@interior N' s)) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) (@DELETE (cart R N') (@UNIV (cart R N')) a)))))) -> exists x : cart R N', (@IN (cart R N') x (@frontier N' s)) /\ (@IN (cart R N') a (@open_segment N' (@pair (cart R N') (cart R N') x (f x)))). +Axiom thm_BOHL_SIMPLE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall a : cart R N', ((@compact N' s) /\ ((@IN (cart R N') a s) /\ ((@continuous_on N' N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) (@DELETE (cart R N') (@UNIV (cart R N')) a))))) -> exists x : cart R N', (@IN (cart R N') x (@frontier N' s)) /\ (~ ((f x) = x)). +Axiom thm_BOUNDED_COMPONENT_RETRACT_COMPLEMENT_MEETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@closed N' s) /\ ((@retract_of N' s t) /\ ((@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ (@bounded N' c)))) -> ~ (@SUBSET (cart R N') c t). +Axiom thm_COMPONENT_RETRACT_COMPLEMENT_MEETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@closed N' s) /\ ((@retract_of N' s t) /\ ((@bounded N' t) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)))))) -> ~ (@SUBSET (cart R N') c t). +Axiom thm_FINITE_COMPLEMENT_ENR_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@ENR N' s)) -> @FINITE ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)). +Axiom thm_FINITE_COMPLEMENT_ANR_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@ANR N' s)) -> @FINITE ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)). +Axiom thm_CARD_LE_RETRACT_COMPLEMENT_COMPONENTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@retract_of N' s t) /\ (@bounded N' t))) -> @le_c ((cart R N') -> Prop) ((cart R N') -> Prop) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) t)). +Axiom thm_CONNECTED_RETRACT_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@retract_of N' s t) /\ ((@bounded N' t) /\ (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) t))))) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s). +Axiom thm_BROUWER_INESSENTIAL_ANR : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@ANR N' s) /\ ((@continuous_on N' N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s) /\ (exists a : cart R N', @homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') s)) f (fun x : cart R N' => a))))))) -> exists x : cart R N', (@IN (cart R N') x s) /\ ((f x) = x). +Axiom thm_BROUWER_CONTRACTIBLE_ANR : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((@contractible N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@ANR N' s) /\ ((@continuous_on N' N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s)))))) -> exists x : cart R N', (@IN (cart R N') x s) /\ ((f x) = x). +Axiom thm_FIXED_POINT_INESSENTIAL_SPHERE_MAP : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall a : cart R N', forall r : R, forall c : cart R N', ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R a r))) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R a r)))) f (fun x : cart R N' => c))) -> exists x : cart R N', (@IN (cart R N') x (@sphere N' (@pair (cart R N') R a r))) /\ ((f x) = x). +Axiom thm_BROUWER_AR : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((@AR N' s) /\ ((@continuous_on N' N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s)))) -> exists x : cart R N', (@IN (cart R N') x s) /\ ((f x) = x). +Axiom thm_BROUWER_ABSOLUTE_RETRACT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((@retract_of N' s (@UNIV (cart R N'))) /\ ((@continuous_on N' N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s)))) -> exists x : cart R N', (@IN (cart R N') x s) /\ ((f x) = x). +Axiom thm_SCHAUDER_PROJECTION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@compact N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists t : (cart R N') -> Prop, exists f : (cart R N') -> cart R N', (@FINITE (cart R N') t) /\ ((@SUBSET (cart R N') t s) /\ ((@continuous_on N' N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) (@hull (cart R N') (@convex N') t)) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (@vector_norm N' (@vector_sub N' (f x) x)) e)))). +Axiom thm_BROUWER_FACTOR_THROUGH_AR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t) /\ ((@continuous_on N' M g t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) g t) s) /\ ((@compact M s) /\ (@AR N' t)))))) -> exists x : cart R M, (@IN (cart R M) x s) /\ ((g (f x)) = x). +Axiom thm_BROUWER_ABSOLUTE_RETRACT_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@retract_of N' s (@UNIV (cart R N'))) /\ ((@continuous_on N' N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) s) /\ (@bounded N' (@IMAGE (cart R N') (cart R N') f s))))) -> exists x : cart R N', (@IN (cart R N') x s) /\ ((f x) = x). +Axiom thm_SCHAUDER_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@AR N' s) /\ ((@continuous_on N' N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) t) /\ ((@SUBSET (cart R N') t s) /\ (@compact N' t))))) -> exists x : cart R N', (@IN (cart R N') x t) /\ ((f x) = x). +Axiom thm_SCHAUDER : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') t s) /\ ((@compact N' t) /\ ((@continuous_on N' N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) t)))))) -> exists x : cart R N', (@IN (cart R N') x s) /\ ((f x) = x). +Axiom thm_SCHAUDER_UNIV : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@continuous_on N' N' f (@UNIV (cart R N'))) /\ (@bounded N' (@IMAGE (cart R N') (cart R N') f (@UNIV (cart R N'))))) -> exists x : cart R N', (f x) = x. +Axiom thm_ROTHE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@closed N' s) /\ ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ ((@continuous_on N' N' f s) /\ ((@bounded N' (@IMAGE (cart R N') (cart R N') f s)) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@frontier N' s)) s)))))) -> exists x : cart R N', (@IN (cart R N') x s) /\ ((f x) = x). +Axiom thm_PERRON_FROBENIUS : forall {N' : Type'}, forall A : cart (cart R N') N', (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex N' (@UNIV N')))))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (@dollar (cart R N') N' A i) j)) -> exists v : cart R N', exists c : R, ((@vector_norm N' v) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((Rle (R_of_N (NUMERAL 0%N)) c) /\ ((@matrix_vector_mul N' N' A v) = (@percent N' c v))). +Axiom thm_interval_bij : forall {N' : Type'}, forall x : cart R N', forall b : cart R N', forall a : cart R N', forall v : cart R N', forall u : cart R N', (@interval_bij N' (@pair (cart R N') (cart R N') a b) (@pair (cart R N') (cart R N') u v) x) = (@lambda R N' (fun i : N => Rplus (@dollar R N' u i) (Rmult (Rdiv (Rminus (@dollar R N' x i) (@dollar R N' a i)) (Rminus (@dollar R N' b i) (@dollar R N' a i))) (Rminus (@dollar R N' v i) (@dollar R N' u i))))). +Axiom thm_INTERVAL_BIJ_AFFINE : forall {_1232087 : Type'} (v : cart R _1232087) (u : cart R _1232087) (b : cart R _1232087) (a : cart R _1232087), (@interval_bij _1232087 (@pair (cart R _1232087) (cart R _1232087) a b) (@pair (cart R _1232087) (cart R _1232087) u v)) = (fun x : cart R _1232087 => @vector_add _1232087 (@lambda R _1232087 (fun i : N => Rmult (Rdiv (Rminus (@dollar R _1232087 v i) (@dollar R _1232087 u i)) (Rminus (@dollar R _1232087 b i) (@dollar R _1232087 a i))) (@dollar R _1232087 x i))) (@lambda R _1232087 (fun i : N => Rminus (@dollar R _1232087 u i) (Rmult (Rdiv (Rminus (@dollar R _1232087 v i) (@dollar R _1232087 u i)) (Rminus (@dollar R _1232087 b i) (@dollar R _1232087 a i))) (@dollar R _1232087 a i))))). +Axiom thm_CONTINUOUS_INTERVAL_BIJ : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall u : cart R N', forall v : cart R N', forall x : cart R N', @continuous N' (cart R N') (@interval_bij N' (@pair (cart R N') (cart R N') a b) (@pair (cart R N') (cart R N') u v)) (@_at N' x). +Axiom thm_CONTINUOUS_ON_INTERVAL_BIJ : forall {_1232156 : Type'}, forall a : cart R _1232156, forall b : cart R _1232156, forall u : cart R _1232156, forall v : cart R _1232156, forall s : (cart R _1232156) -> Prop, @continuous_on _1232156 _1232156 (@interval_bij _1232156 (@pair (cart R _1232156) (cart R _1232156) a b) (@pair (cart R _1232156) (cart R _1232156) u v)) s. +Axiom thm_IN_INTERVAL_INTERVAL_BIJ : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall u : cart R N', forall v : cart R N', forall x : cart R N', ((@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))))) -> @IN (cart R N') (@interval_bij N' (@pair (cart R N') (cart R N') a b) (@pair (cart R N') (cart R N') u v) x) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_INTERVAL_BIJ_BIJ : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall u : cart R N', forall v : cart R N', forall x : cart R N', (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rlt (@dollar R N' a i) (@dollar R N' b i)) /\ (Rlt (@dollar R N' u i) (@dollar R N' v i))) -> (@interval_bij N' (@pair (cart R N') (cart R N') a b) (@pair (cart R N') (cart R N') u v) (@interval_bij N' (@pair (cart R N') (cart R N') u v) (@pair (cart R N') (cart R N') a b) x)) = x. +Axiom thm_INFNORM_2 : forall (x : cart R (tybit0 unit)), (@infnorm (tybit0 unit) x) = (Rmax (Rabs (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N)))) (Rabs (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_INFNORM_EQ_1_2 : forall (x : cart R (tybit0 unit)), ((@infnorm (tybit0 unit) x) = (R_of_N (NUMERAL (BIT1 0%N)))) = ((Rle (Rabs (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((Rle (Rabs (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N))) = (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) \/ (((@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N))) = (R_of_N (NUMERAL (BIT1 0%N)))) \/ (((@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N)))) = (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) \/ ((@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N)))) = (R_of_N (NUMERAL (BIT1 0%N))))))))). +Axiom thm_INFNORM_EQ_1_IMP : forall (x : cart R (tybit0 unit)), ((@infnorm (tybit0 unit) x) = (R_of_N (NUMERAL (BIT1 0%N)))) -> (Rle (Rabs (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (Rle (Rabs (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_FASHODA_UNIT : forall f : (cart R unit) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R unit) (cart R (tybit0 unit)) f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_neg unit (@vec unit (NUMERAL (BIT1 0%N)))) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) (@closed_interval (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (@vector_neg (tybit0 unit) (@vec (tybit0 unit) (NUMERAL (BIT1 0%N)))) (@vec (tybit0 unit) (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ ((@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R unit) (cart R (tybit0 unit)) g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_neg unit (@vec unit (NUMERAL (BIT1 0%N)))) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) (@closed_interval (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (@vector_neg (tybit0 unit) (@vec (tybit0 unit) (NUMERAL (BIT1 0%N)))) (@vec (tybit0 unit) (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ ((@continuous_on unit (tybit0 unit) f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_neg unit (@vec unit (NUMERAL (BIT1 0%N)))) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@continuous_on unit (tybit0 unit) g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_neg unit (@vec unit (NUMERAL (BIT1 0%N)))) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (((@dollar R (tybit0 unit) (f (@vector_neg unit (@vec unit (NUMERAL (BIT1 0%N))))) (NUMERAL (BIT1 0%N))) = (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) /\ (((@dollar R (tybit0 unit) (f (@vec unit (NUMERAL (BIT1 0%N)))) (NUMERAL (BIT1 0%N))) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((@dollar R (tybit0 unit) (g (@vector_neg unit (@vec unit (NUMERAL (BIT1 0%N))))) (NUMERAL (BIT0 (BIT1 0%N)))) = (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) /\ ((@dollar R (tybit0 unit) (g (@vec unit (NUMERAL (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) = (R_of_N (NUMERAL (BIT1 0%N))))))))))) -> exists s : cart R unit, exists t : cart R unit, (@IN (cart R unit) s (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_neg unit (@vec unit (NUMERAL (BIT1 0%N)))) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_neg unit (@vec unit (NUMERAL (BIT1 0%N)))) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((f s) = (g t))). +Axiom thm_FASHODA_UNIT_PATH : forall f : (cart R unit) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((@path (tybit0 unit) f) /\ ((@path (tybit0 unit) g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) f) (@closed_interval (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (@vector_neg (tybit0 unit) (@vec (tybit0 unit) (NUMERAL (BIT1 0%N)))) (@vec (tybit0 unit) (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) (@closed_interval (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (@vector_neg (tybit0 unit) (@vec (tybit0 unit) (NUMERAL (BIT1 0%N)))) (@vec (tybit0 unit) (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ (((@dollar R (tybit0 unit) (@pathstart (tybit0 unit) f) (NUMERAL (BIT1 0%N))) = (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) /\ (((@dollar R (tybit0 unit) (@pathfinish (tybit0 unit) f) (NUMERAL (BIT1 0%N))) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((@dollar R (tybit0 unit) (@pathstart (tybit0 unit) g) (NUMERAL (BIT0 (BIT1 0%N)))) = (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) /\ ((@dollar R (tybit0 unit) (@pathfinish (tybit0 unit) g) (NUMERAL (BIT0 (BIT1 0%N)))) = (R_of_N (NUMERAL (BIT1 0%N))))))))))) -> exists z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) f)) /\ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)). +Axiom thm_FASHODA : forall f : (cart R unit) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), ((@path (tybit0 unit) f) /\ ((@path (tybit0 unit) g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) f) (@closed_interval (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) (@closed_interval (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ (((@dollar R (tybit0 unit) (@pathstart (tybit0 unit) f) (NUMERAL (BIT1 0%N))) = (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N)))) /\ (((@dollar R (tybit0 unit) (@pathfinish (tybit0 unit) f) (NUMERAL (BIT1 0%N))) = (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N)))) /\ (((@dollar R (tybit0 unit) (@pathstart (tybit0 unit) g) (NUMERAL (BIT0 (BIT1 0%N)))) = (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((@dollar R (tybit0 unit) (@pathfinish (tybit0 unit) g) (NUMERAL (BIT0 (BIT1 0%N)))) = (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))))))))))) -> exists z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) f)) /\ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)). +Axiom thm_SEGMENT_VERTICAL : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall x : cart R (tybit0 unit), ((@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N))) = (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N)))) -> (@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) = (((@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N))) = (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N)))) /\ (((@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N))) = (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N)))) /\ (((Rle (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N))))) /\ (Rle (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))))) \/ ((Rle (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N))))) /\ (Rle (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_SEGMENT_HORIZONTAL : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall x : cart R (tybit0 unit), ((@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N)))) = (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N))))) -> (@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) = (((@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N)))) = (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) /\ (((@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N)))) = (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N))))) /\ (((Rle (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N)))) /\ (Rle (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N))))) \/ ((Rle (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N)))) /\ (Rle (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N)))))))). +Axiom thm_FASHODA_INTERLACE : forall f : (cart R unit) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), ((@path (tybit0 unit) f) /\ ((@path (tybit0 unit) g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) f) (@closed_interval (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) (@closed_interval (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ (((@dollar R (tybit0 unit) (@pathstart (tybit0 unit) f) (NUMERAL (BIT0 (BIT1 0%N)))) = (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) /\ (((@dollar R (tybit0 unit) (@pathfinish (tybit0 unit) f) (NUMERAL (BIT0 (BIT1 0%N)))) = (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) /\ (((@dollar R (tybit0 unit) (@pathstart (tybit0 unit) g) (NUMERAL (BIT0 (BIT1 0%N)))) = (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) /\ (((@dollar R (tybit0 unit) (@pathfinish (tybit0 unit) g) (NUMERAL (BIT0 (BIT1 0%N)))) = (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((Rlt (@dollar R (tybit0 unit) (@pathstart (tybit0 unit) f) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) (@pathstart (tybit0 unit) g) (NUMERAL (BIT1 0%N)))) /\ ((Rlt (@dollar R (tybit0 unit) (@pathstart (tybit0 unit) g) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) (@pathfinish (tybit0 unit) f) (NUMERAL (BIT1 0%N)))) /\ (Rlt (@dollar R (tybit0 unit) (@pathfinish (tybit0 unit) f) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) (@pathfinish (tybit0 unit) g) (NUMERAL (BIT1 0%N)))))))))))))) -> exists z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) f)) /\ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)). +Axiom thm_UNBOUNDED_COMPONENTS_COMPLEMENT_ABSOLUTE_RETRACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@compact N' s) /\ ((@AR N' s) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))))) -> ~ (@bounded N' c). +Axiom thm_CONNECTED_COMPLEMENT_ABSOLUTE_RETRACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@compact N' s) /\ (@AR N' s))) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s). +Axiom thm_PATH_CONNECTED_COMPLEMENT_ABSOLUTE_RETRACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@compact N' s) /\ (@AR N' s))) -> @path_connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s). +Axiom thm_CONNECTED_COMPLEMENT_HOMEOMORPHIC_CONVEX_COMPACT : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@homeomorphic M N' s t) /\ ((@convex M t) /\ (@compact M t)))) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s). +Axiom thm_PATH_CONNECTED_COMPLEMENT_HOMEOMORPHIC_CONVEX_COMPACT : forall {M N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@homeomorphic M N' s t) /\ ((@convex M t) /\ (@compact M t)))) -> @path_connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s). +Axiom thm_RETRACTION_ARC : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', (@arc N' p) -> exists f : (cart R N') -> cart R N', (@continuous_on N' N' f (@UNIV (cart R N'))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@UNIV (cart R N'))) (@path_image N' p)) /\ (forall x : cart R N', (@IN (cart R N') x (@path_image N' p)) -> (f x) = x)). +Axiom thm_PATH_CONNECTED_ARC_COMPLEMENT : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@arc N' p)) -> @path_connected N' (@DIFF (cart R N') (@UNIV (cart R N')) (@path_image N' p)). +Axiom thm_CONNECTED_ARC_COMPLEMENT : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@arc N' p)) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) (@path_image N' p)). +Axiom thm_INSIDE_ARC_EMPTY : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', (@arc N' p) -> (@inside N' (@path_image N' p)) = (@EMPTY (cart R N')). +Axiom thm_INSIDE_SIMPLE_CURVE_IMP_CLOSED : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall x : cart R N', ((@simple_path N' g) /\ (@IN (cart R N') x (@inside N' (@path_image N' g)))) -> (@pathfinish N' g) = (@pathstart N' g). +Axiom thm_FINITE_ANR_COMPLEMENT_COMPONENTS_CONCENTRIC : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall p : cart R N', forall a : R, forall b : R, ((@compact N' s) /\ ((@ANR N' s) /\ (Rlt a b))) -> @FINITE ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5662 : (cart R N') -> Prop => exists c : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5662 ((@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@cball N' (@pair (cart R N') R p b)) s))) /\ (~ ((@INTER (cart R N') (@closure N' c) (@cball N' (@pair (cart R N') R p a))) = (@EMPTY (cart R N'))))) c)). +Axiom thm_ACCESSIBLE_FRONTIER_ANR_INTER_COMPLEMENT_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall p : cart R N', forall b : (cart R N') -> Prop, ((@compact N' s) /\ ((@ANR N' s) /\ ((@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') b s))) /\ ((@IN (cart R N') p (@frontier N' c)) /\ (@IN (cart R N') p (@interior N' b)))))) -> exists g : (cart R unit) -> cart R N', (@arc N' g) /\ (((@pathfinish N' g) = p) /\ (forall t : cart R unit, (@IN (cart R unit) t (@DELETE (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@vec unit (NUMERAL (BIT1 0%N))))) -> @IN (cart R N') (g t) c)). +Axiom thm_ACCESSIBLE_FRONTIER_ANR_COMPLEMENT_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@compact N' s) /\ ((@ANR N' s) /\ ((@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ ((@IN (cart R N') x c) /\ (@IN (cart R N') y (@frontier N' c)))))) -> exists g : (cart R unit) -> cart R N', (@arc N' g) /\ (((@pathstart N' g) = x) /\ (((@pathfinish N' g) = y) /\ (forall t : cart R unit, (@IN (cart R unit) t (@DELETE (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@vec unit (NUMERAL (BIT1 0%N))))) -> @IN (cart R N') (g t) c))). +Axiom thm_LPC_INTERMEDIATE_CLOSURE_ANR_COMPLEMENT_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@ANR N' s) /\ ((@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ ((@SUBSET (cart R N') c t) /\ (@SUBSET (cart R N') t (@closure N' c)))))) -> @locally N' (@path_connected N') t. +Axiom thm_LPC_INTERMEDIATE_CLOSURE_ANR_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@ANR N' s) /\ ((@SUBSET (cart R N') (@DIFF (cart R N') (@UNIV (cart R N')) s) t) /\ (@DISJOINT (cart R N') t (@interior N' s))))) -> @locally N' (@path_connected N') t. +Axiom thm_LPC_SUPERSET_COMPLEMENT_SIMPLE_PATH_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@simple_path N' g) /\ (@SUBSET (cart R N') (@DIFF (cart R N') (@UNIV (cart R N')) (@path_image N' g)) s))) -> @locally N' (@path_connected N') s. +Axiom thm_LPC_OPEN_SIMPLE_PATH_COMPLEMENT : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@simple_path N' g) -> @locally N' (@path_connected N') (@DIFF (cart R N') (@UNIV (cart R N')) (@DIFF (cart R N') (@path_image N' g) (@INSERT (cart R N') (@pathstart N' g) (@INSERT (cart R N') (@pathfinish N' g) (@EMPTY (cart R N')))))). +Axiom thm_PATH_CONNECTED_INTERMEDIATE_CLOSURE_ANR_COMPLEMENT_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@ANR N' s) /\ ((@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ ((@SUBSET (cart R N') c t) /\ (@SUBSET (cart R N') t (@closure N' c)))))) -> @path_connected N' t. +Axiom thm_PATH_CONNECTED_SUPERSET_COMPLEMENT_ARC_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@arc N' g) /\ (@SUBSET (cart R N') (@DIFF (cart R N') (@UNIV (cart R N')) (@path_image N' g)) s))) -> @path_connected N' s. +Axiom thm_PATH_CONNECTED_OPEN_ARC_COMPLEMENT : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@arc N' g)) -> @path_connected N' (@DIFF (cart R N') (@UNIV (cart R N')) (@DIFF (cart R N') (@path_image N' g) (@INSERT (cart R N') (@pathstart N' g) (@INSERT (cart R N') (@pathfinish N' g) (@EMPTY (cart R N')))))). +Axiom thm_has_derivative : forall {_1241185 _1241188 : Type'}, forall f : (cart R _1241188) -> cart R _1241185, forall f' : (cart R _1241188) -> cart R _1241185, forall net' : net (cart R _1241188), (@has_derivative _1241185 _1241188 f f' net') = ((@linear _1241188 _1241185 f') /\ (@FImp _1241185 (cart R _1241188) (fun y : cart R _1241188 => @percent _1241185 (Rinv (@vector_norm _1241188 (@vector_sub _1241188 y (@netlimit (cart R _1241188) net')))) (@vector_sub _1241185 (f y) (@vector_add _1241185 (f (@netlimit (cart R _1241188) net')) (f' (@vector_sub _1241188 y (@netlimit (cart R _1241188) net')))))) (@vec _1241185 (NUMERAL 0%N)) net')). +Axiom thm_has_derivative_within : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall x : cart R M, forall s : (cart R M) -> Prop, (@has_derivative N' M f f' (@within (cart R M) (@_at M x) s)) = ((@linear M N' f') /\ (@FImp N' (cart R M) (fun y : cart R M => @percent N' (Rinv (@vector_norm M (@vector_sub M y x))) (@vector_sub N' (f y) (@vector_add N' (f x) (f' (@vector_sub M y x))))) (@vec N' (NUMERAL 0%N)) (@within (cart R M) (@_at M x) s))). +Axiom thm_has_derivative_at : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall x : cart R M, (@has_derivative N' M f f' (@_at M x)) = ((@linear M N' f') /\ (@FImp N' (cart R M) (fun y : cart R M => @percent N' (Rinv (@vector_norm M (@vector_sub M y x))) (@vector_sub N' (f y) (@vector_add N' (f x) (f' (@vector_sub M y x))))) (@vec N' (NUMERAL 0%N)) (@_at M x))). +Axiom thm_HAS_DERIVATIVE_WITHIN : forall {_1241539 _1241546 : Type'} (s : (cart R _1241546) -> Prop) (f : (cart R _1241546) -> cart R _1241539) (f' : (cart R _1241546) -> cart R _1241539) (x : cart R _1241546), (@has_derivative _1241539 _1241546 f f' (@within (cart R _1241546) (@_at _1241546 x) s)) = ((@linear _1241546 _1241539 f') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R _1241546, ((@IN (cart R _1241546) x' s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@vector_norm _1241546 (@vector_sub _1241546 x' x))) /\ (Rlt (@vector_norm _1241546 (@vector_sub _1241546 x' x)) d))) -> Rlt (Rdiv (@vector_norm _1241539 (@vector_sub _1241539 (@vector_sub _1241539 (f x') (f x)) (f' (@vector_sub _1241546 x' x)))) (@vector_norm _1241546 (@vector_sub _1241546 x' x))) e))). +Axiom thm_HAS_DERIVATIVE_AT : forall {_1241670 _1241677 : Type'} (f : (cart R _1241677) -> cart R _1241670) (f' : (cart R _1241677) -> cart R _1241670) (x : cart R _1241677), (@has_derivative _1241670 _1241677 f f' (@_at _1241677 x)) = ((@linear _1241677 _1241670 f') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R _1241677, ((Rlt (R_of_N (NUMERAL 0%N)) (@vector_norm _1241677 (@vector_sub _1241677 x' x))) /\ (Rlt (@vector_norm _1241677 (@vector_sub _1241677 x' x)) d)) -> Rlt (Rdiv (@vector_norm _1241670 (@vector_sub _1241670 (@vector_sub _1241670 (f x') (f x)) (f' (@vector_sub _1241677 x' x)))) (@vector_norm _1241677 (@vector_sub _1241677 x' x))) e))). +Axiom thm_HAS_DERIVATIVE_AT_WITHIN : forall {_1241718 _1241731 : Type'} (f' : (cart R _1241731) -> cart R _1241718), forall f : (cart R _1241731) -> cart R _1241718, forall x : cart R _1241731, forall s : (cart R _1241731) -> Prop, (@has_derivative _1241718 _1241731 f f' (@_at _1241731 x)) -> @has_derivative _1241718 _1241731 f f' (@within (cart R _1241731) (@_at _1241731 x) s). +Axiom thm_HAS_DERIVATIVE_WITHIN_OPEN : forall {_1241763 _1241776 : Type'}, forall f : (cart R _1241776) -> cart R _1241763, forall f' : (cart R _1241776) -> cart R _1241763, forall a : cart R _1241776, forall s : (cart R _1241776) -> Prop, ((@IN (cart R _1241776) a s) /\ (@_open _1241776 s)) -> (@has_derivative _1241763 _1241776 f f' (@within (cart R _1241776) (@_at _1241776 a) s)) = (@has_derivative _1241763 _1241776 f f' (@_at _1241776 a)). +Axiom thm_HAS_DERIVATIVE_WITHIN_OPEN_IN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall a : cart R M, forall s : (cart R M) -> Prop, forall u : (cart R M) -> Prop, ((@IN (cart R M) a s) /\ (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) u) s)) -> (@has_derivative N' M f f' (@within (cart R M) (@_at M a) s)) = (@has_derivative N' M f f' (@within (cart R M) (@_at M a) u)). +Axiom thm_HAS_DERIVATIVE_LINEAR : forall {_1241922 _1241923 : Type'}, forall f : (cart R _1241922) -> cart R _1241923, forall net' : net (cart R _1241922), (@linear _1241922 _1241923 f) -> @has_derivative _1241923 _1241922 f f net'. +Axiom thm_HAS_DERIVATIVE_ID : forall {_1241938 : Type'}, forall net' : net (cart R _1241938), @has_derivative _1241938 _1241938 (fun x : cart R _1241938 => x) (fun h : cart R _1241938 => h) net'. +Axiom thm_HAS_DERIVATIVE_CONST : forall {_1241956 _1241962 : Type'}, forall c : cart R _1241962, forall net' : net (cart R _1241956), @has_derivative _1241962 _1241956 (fun x : cart R _1241956 => c) (fun h : cart R _1241956 => @vec _1241962 (NUMERAL 0%N)) net'. +Axiom thm_HAS_DERIVATIVE_LIFT_COMPONENT : forall {N' : Type'} (i : N), forall net' : net (cart R N'), @has_derivative unit N' (fun x : cart R N' => lift (@dollar R N' x i)) (fun x : cart R N' => lift (@dollar R N' x i)) net'. +Axiom thm_HAS_DERIVATIVE_CMUL : forall {_1242016 _1242027 : Type'}, forall f : (cart R _1242016) -> cart R _1242027, forall f' : (cart R _1242016) -> cart R _1242027, forall net' : net (cart R _1242016), forall c : R, (@has_derivative _1242027 _1242016 f f' net') -> @has_derivative _1242027 _1242016 (fun x : cart R _1242016 => @percent _1242027 c (f x)) (fun h : cart R _1242016 => @percent _1242027 c (f' h)) net'. +Axiom thm_HAS_DERIVATIVE_CMUL_EQ : forall {_1242079 _1242080 : Type'}, forall f : (cart R _1242080) -> cart R _1242079, forall f' : (cart R _1242080) -> cart R _1242079, forall net' : net (cart R _1242080), forall c : R, (~ (c = (R_of_N (NUMERAL 0%N)))) -> (@has_derivative _1242079 _1242080 (fun x : cart R _1242080 => @percent _1242079 c (f x)) (fun h : cart R _1242080 => @percent _1242079 c (f' h)) net') = (@has_derivative _1242079 _1242080 f f' net'). +Axiom thm_HAS_DERIVATIVE_NEG : forall {_1242105 _1242121 : Type'}, forall f : (cart R _1242105) -> cart R _1242121, forall f' : (cart R _1242105) -> cart R _1242121, forall net' : net (cart R _1242105), (@has_derivative _1242121 _1242105 f f' net') -> @has_derivative _1242121 _1242105 (fun x : cart R _1242105 => @vector_neg _1242121 (f x)) (fun h : cart R _1242105 => @vector_neg _1242121 (f' h)) net'. +Axiom thm_HAS_DERIVATIVE_NEG_EQ : forall {_1242162 _1242168 : Type'}, forall f : (cart R _1242162) -> cart R _1242168, forall f' : (cart R _1242162) -> cart R _1242168, forall net' : net (cart R _1242162), (@has_derivative _1242168 _1242162 (fun x : cart R _1242162 => @vector_neg _1242168 (f x)) (fun h : cart R _1242162 => @vector_neg _1242168 (f' h)) net') = (@has_derivative _1242168 _1242162 f f' net'). +Axiom thm_HAS_DERIVATIVE_ADD : forall {_1242225 _1242245 : Type'}, forall f : (cart R _1242225) -> cart R _1242245, forall f' : (cart R _1242225) -> cart R _1242245, forall g : (cart R _1242225) -> cart R _1242245, forall g' : (cart R _1242225) -> cart R _1242245, forall net' : net (cart R _1242225), ((@has_derivative _1242245 _1242225 f f' net') /\ (@has_derivative _1242245 _1242225 g g' net')) -> @has_derivative _1242245 _1242225 (fun x : cart R _1242225 => @vector_add _1242245 (f x) (g x)) (fun h : cart R _1242225 => @vector_add _1242245 (f' h) (g' h)) net'. +Axiom thm_HAS_DERIVATIVE_SUB : forall {_1242291 _1242311 : Type'}, forall f : (cart R _1242291) -> cart R _1242311, forall f' : (cart R _1242291) -> cart R _1242311, forall g : (cart R _1242291) -> cart R _1242311, forall g' : (cart R _1242291) -> cart R _1242311, forall net' : net (cart R _1242291), ((@has_derivative _1242311 _1242291 f f' net') /\ (@has_derivative _1242311 _1242291 g g' net')) -> @has_derivative _1242311 _1242291 (fun x : cart R _1242291 => @vector_sub _1242311 (f x) (g x)) (fun h : cart R _1242291 => @vector_sub _1242311 (f' h) (g' h)) net'. +Axiom thm_HAS_DERIVATIVE_VSUM : forall {_1242357 _1242373 _1242377 : Type'} (f' : _1242377 -> (cart R _1242357) -> cart R _1242373), forall f : _1242377 -> (cart R _1242357) -> cart R _1242373, forall net' : net (cart R _1242357), forall s : _1242377 -> Prop, ((@FINITE _1242377 s) /\ (forall a : _1242377, (@IN _1242377 a s) -> @has_derivative _1242373 _1242357 (f a) (f' a) net')) -> @has_derivative _1242373 _1242357 (fun x : cart R _1242357 => @vsum _1242377 _1242373 s (fun a : _1242377 => f a x)) (fun h : cart R _1242357 => @vsum _1242377 _1242373 s (fun a : _1242377 => f' a h)) net'. +Axiom thm_HAS_DERIVATIVE_VSUM_NUMSEG : forall {_1242422 _1242440 : Type'} (f' : N -> (cart R _1242422) -> cart R _1242440), forall f : N -> (cart R _1242422) -> cart R _1242440, forall net' : net (cart R _1242422), forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> @has_derivative _1242440 _1242422 (f i) (f' i) net') -> @has_derivative _1242440 _1242422 (fun x : cart R _1242422 => @vsum N _1242440 (dotdot m n) (fun i : N => f i x)) (fun h : cart R _1242422 => @vsum N _1242440 (dotdot m n) (fun i : N => f' i h)) net'. +Axiom thm_HAS_DERIVATIVE_COMPONENTWISE_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall a : cart R M, forall s : (cart R M) -> Prop, (@has_derivative N' M f f' (@within (cart R M) (@_at M a) s)) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @has_derivative unit M (fun x : cart R M => lift (@dollar R N' (f x) i)) (fun x : cart R M => lift (@dollar R N' (f' x) i)) (@within (cart R M) (@_at M a) s)). +Axiom thm_HAS_DERIVATIVE_COMPONENTWISE_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall a : cart R M, (@has_derivative N' M f f' (@_at M a)) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @has_derivative unit M (fun x : cart R M => lift (@dollar R N' (f x) i)) (fun x : cart R M => lift (@dollar R N' (f' x) i)) (@_at M a)). +Axiom thm_HAS_DERIVATIVE_PASTECART_EQ : forall {M N' P : Type'}, forall net' : net (cart R M), forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall f' : (cart R M) -> cart R N', forall g' : (cart R M) -> cart R P, (@has_derivative (finite_sum N' P) M (fun x : cart R M => @pastecart R N' P (f x) (g x)) (fun x : cart R M => @pastecart R N' P (f' x) (g' x)) net') = ((@has_derivative N' M f f' net') /\ (@has_derivative P M g g' net')). +Axiom thm_HAS_DERIVATIVE_PASTECART : forall {M N' P : Type'}, forall net' : net (cart R M), forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall f' : (cart R M) -> cart R N', forall g' : (cart R M) -> cart R P, ((@has_derivative N' M f f' net') /\ (@has_derivative P M g g' net')) -> @has_derivative (finite_sum N' P) M (fun x : cart R M => @pastecart R N' P (f x) (g x)) (fun x : cart R M => @pastecart R N' P (f' x) (g' x)) net'. +Axiom thm_HAS_DERIVATIVE_VMUL_COMPONENT : forall {M N' P : Type'} (net' : net (cart R M)), forall c : (cart R M) -> cart R N', forall c' : (cart R M) -> cart R N', forall k : N, forall v : cart R P, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (@has_derivative N' M c c' net'))) -> @has_derivative P M (fun x : cart R M => @percent P (@dollar R N' (c x) k) v) (fun x : cart R M => @percent P (@dollar R N' (c' x) k) v) net'. +Axiom thm_HAS_DERIVATIVE_VMUL_DROP : forall {_1242807 _1242819 : Type'} (net' : net (cart R _1242807)), forall c : (cart R _1242807) -> cart R unit, forall c' : (cart R _1242807) -> cart R unit, forall v : cart R _1242819, (@has_derivative unit _1242807 c c' net') -> @has_derivative _1242819 _1242807 (fun x : cart R _1242807 => @percent _1242819 (drop (c x)) v) (fun x : cart R _1242807 => @percent _1242819 (drop (c' x)) v) net'. +Axiom thm_HAS_DERIVATIVE_LIFT_DOT : forall {M N' : Type'} (v : cart R N') (net' : net (cart R M)), forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', (@has_derivative N' M f f' net') -> @has_derivative unit M (fun x : cart R M => lift (@dot N' v (f x))) (fun t : cart R M => lift (@dot N' v (f' t))) net'. +Axiom thm_HAS_DERIVATIVE_TRANSFORM_WITHIN : forall {_1242974 _1242980 : Type'}, forall f : (cart R _1242980) -> cart R _1242974, forall f' : (cart R _1242980) -> cart R _1242974, forall g : (cart R _1242980) -> cart R _1242974, forall x : cart R _1242980, forall s : (cart R _1242980) -> Prop, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN (cart R _1242980) x s) /\ ((forall x' : cart R _1242980, ((@IN (cart R _1242980) x' s) /\ (Rlt (@distance _1242980 (@pair (cart R _1242980) (cart R _1242980) x' x)) d)) -> (f x') = (g x')) /\ (@has_derivative _1242974 _1242980 f f' (@within (cart R _1242980) (@_at _1242980 x) s))))) -> @has_derivative _1242974 _1242980 g f' (@within (cart R _1242980) (@_at _1242980 x) s). +Axiom thm_HAS_DERIVATIVE_TRANSFORM_AT : forall {_1243045 _1243048 : Type'}, forall f : (cart R _1243048) -> cart R _1243045, forall f' : (cart R _1243048) -> cart R _1243045, forall g : (cart R _1243048) -> cart R _1243045, forall x : cart R _1243048, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x' : cart R _1243048, (Rlt (@distance _1243048 (@pair (cart R _1243048) (cart R _1243048) x' x)) d) -> (f x') = (g x')) /\ (@has_derivative _1243045 _1243048 f f' (@_at _1243048 x)))) -> @has_derivative _1243045 _1243048 g f' (@_at _1243048 x). +Axiom thm_HAS_DERIVATIVE_TRANSFORM_WITHIN_OPEN : forall {M N' : Type'} (f' : (cart R M) -> cart R N'), forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall x : cart R M, ((@_open M s) /\ ((@IN (cart R M) x s) /\ ((forall y : cart R M, (@IN (cart R M) y s) -> (f y) = (g y)) /\ (@has_derivative N' M f f' (@_at M x))))) -> @has_derivative N' M g f' (@_at M x). +Axiom thm_differentiable : forall {_1243141 _1243142 : Type'}, forall f : (cart R _1243142) -> cart R _1243141, forall net' : net (cart R _1243142), (@differentiable _1243141 _1243142 f net') = (exists f' : (cart R _1243142) -> cart R _1243141, @has_derivative _1243141 _1243142 f f' net'). +Axiom thm_differentiable_on : forall {_1243159 _1243165 : Type'}, forall f : (cart R _1243165) -> cart R _1243159, forall s : (cart R _1243165) -> Prop, (@differentiable_on _1243159 _1243165 f s) = (forall x : cart R _1243165, (@IN (cart R _1243165) x s) -> @differentiable _1243159 _1243165 f (@within (cart R _1243165) (@_at _1243165 x) s)). +Axiom thm_HAS_DERIVATIVE_IMP_DIFFERENTIABLE : forall {_1243184 _1243185 : Type'}, forall f : (cart R _1243185) -> cart R _1243184, forall f' : (cart R _1243185) -> cart R _1243184, forall net' : net (cart R _1243185), (@has_derivative _1243184 _1243185 f f' net') -> @differentiable _1243184 _1243185 f net'. +Axiom thm_DIFFERENTIABLE_AT_WITHIN : forall {_1243207 _1243219 : Type'}, forall f : (cart R _1243219) -> cart R _1243207, forall s : (cart R _1243219) -> Prop, forall x : cart R _1243219, (@differentiable _1243207 _1243219 f (@_at _1243219 x)) -> @differentiable _1243207 _1243219 f (@within (cart R _1243219) (@_at _1243219 x) s). +Axiom thm_DIFFERENTIABLE_WITHIN_OPEN : forall {_1243246 _1243258 : Type'}, forall f : (cart R _1243258) -> cart R _1243246, forall a : cart R _1243258, forall s : (cart R _1243258) -> Prop, ((@IN (cart R _1243258) a s) /\ (@_open _1243258 s)) -> (@differentiable _1243246 _1243258 f (@within (cart R _1243258) (@_at _1243258 a) s)) = (@differentiable _1243246 _1243258 f (@_at _1243258 a)). +Axiom thm_DIFFERENTIABLE_AT_IMP_DIFFERENTIABLE_ON : forall {_1243281 _1243284 : Type'}, forall f : (cart R _1243284) -> cart R _1243281, forall s : (cart R _1243284) -> Prop, (forall x : cart R _1243284, (@IN (cart R _1243284) x s) -> @differentiable _1243281 _1243284 f (@_at _1243284 x)) -> @differentiable_on _1243281 _1243284 f s. +Axiom thm_DIFFERENTIABLE_ON_EQ_DIFFERENTIABLE_AT : forall {_1243306 _1243322 : Type'}, forall f : (cart R _1243322) -> cart R _1243306, forall s : (cart R _1243322) -> Prop, (@_open _1243322 s) -> (@differentiable_on _1243306 _1243322 f s) = (forall x : cart R _1243322, (@IN (cart R _1243322) x s) -> @differentiable _1243306 _1243322 f (@_at _1243322 x)). +Axiom thm_DIFFERENTIABLE_TRANSFORM_WITHIN : forall {_1243396 _1243402 : Type'}, forall f : (cart R _1243402) -> cart R _1243396, forall g : (cart R _1243402) -> cart R _1243396, forall x : cart R _1243402, forall s : (cart R _1243402) -> Prop, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN (cart R _1243402) x s) /\ ((forall x' : cart R _1243402, ((@IN (cart R _1243402) x' s) /\ (Rlt (@distance _1243402 (@pair (cart R _1243402) (cart R _1243402) x' x)) d)) -> (f x') = (g x')) /\ (@differentiable _1243396 _1243402 f (@within (cart R _1243402) (@_at _1243402 x) s))))) -> @differentiable _1243396 _1243402 g (@within (cart R _1243402) (@_at _1243402 x) s). +Axiom thm_DIFFERENTIABLE_TRANSFORM_AT : forall {_1243461 _1243464 : Type'}, forall f : (cart R _1243464) -> cart R _1243461, forall g : (cart R _1243464) -> cart R _1243461, forall x : cart R _1243464, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x' : cart R _1243464, (Rlt (@distance _1243464 (@pair (cart R _1243464) (cart R _1243464) x' x)) d) -> (f x') = (g x')) /\ (@differentiable _1243461 _1243464 f (@_at _1243464 x)))) -> @differentiable _1243461 _1243464 g (@_at _1243464 x). +Axiom thm_DIFFERENTIABLE_ON_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (g x)) /\ (@differentiable_on N' M f s)) -> @differentiable_on N' M g s. +Axiom thm_frechet_derivative : forall {_1243519 _1243520 : Type'}, forall f : (cart R _1243520) -> cart R _1243519, forall net' : net (cart R _1243520), (@frechet_derivative _1243519 _1243520 f net') = (@ε ((cart R _1243520) -> cart R _1243519) (fun f' : (cart R _1243520) -> cart R _1243519 => @has_derivative _1243519 _1243520 f f' net')). +Axiom thm_FRECHET_DERIVATIVE_WORKS : forall {_1243543 _1243544 : Type'}, forall f : (cart R _1243543) -> cart R _1243544, forall net' : net (cart R _1243543), (@differentiable _1243544 _1243543 f net') = (@has_derivative _1243544 _1243543 f (@frechet_derivative _1243544 _1243543 f net') net'). +Axiom thm_LINEAR_FRECHET_DERIVATIVE : forall {_1243558 _1243559 : Type'}, forall f : (cart R _1243559) -> cart R _1243558, forall net' : net (cart R _1243559), (@differentiable _1243558 _1243559 f net') -> @linear _1243559 _1243558 (@frechet_derivative _1243558 _1243559 f net'). +Axiom thm_jacobian : forall {_1243578 _1243579 : Type'}, forall f : (cart R _1243578) -> cart R _1243579, forall net' : net (cart R _1243578), (@jacobian _1243578 _1243579 f net') = (@matrix _1243578 _1243579 (@frechet_derivative _1243579 _1243578 f net')). +Axiom thm_JACOBIAN_WORKS : forall {_1243611 _1243612 : Type'}, forall f : (cart R _1243611) -> cart R _1243612, forall net' : net (cart R _1243611), (@differentiable _1243612 _1243611 f net') = (@has_derivative _1243612 _1243611 f (fun h : cart R _1243611 => @matrix_vector_mul _1243612 _1243611 (@jacobian _1243611 _1243612 f net') h) net'). +Axiom thm_LIM_MUL_NORM_WITHIN : forall {_1243673 _1243682 : Type'}, forall f : (cart R _1243682) -> cart R _1243673, forall a : cart R _1243682, forall s : (cart R _1243682) -> Prop, (@FImp _1243673 (cart R _1243682) f (@vec _1243673 (NUMERAL 0%N)) (@within (cart R _1243682) (@_at _1243682 a) s)) -> @FImp _1243673 (cart R _1243682) (fun x : cart R _1243682 => @percent _1243673 (@vector_norm _1243682 (@vector_sub _1243682 x a)) (f x)) (@vec _1243673 (NUMERAL 0%N)) (@within (cart R _1243682) (@_at _1243682 a) s). +Axiom thm_DIFFERENTIABLE_IMP_CONTINUOUS_WITHIN : forall {M N' : Type'} (x : cart R M), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@differentiable N' M f (@within (cart R M) (@_at M x) s)) -> @continuous N' (cart R M) f (@within (cart R M) (@_at M x) s). +Axiom thm_DIFFERENTIABLE_IMP_CONTINUOUS_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, (@differentiable N' M f (@_at M x)) -> @continuous N' (cart R M) f (@_at M x). +Axiom thm_DIFFERENTIABLE_IMP_CONTINUOUS_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@differentiable_on N' M f s) -> @continuous_on M N' f s. +Axiom thm_HAS_DERIVATIVE_WITHIN_SUBSET : forall {_1243891 _1243910 : Type'} (f' : (cart R _1243910) -> cart R _1243891), forall f : (cart R _1243910) -> cart R _1243891, forall s : (cart R _1243910) -> Prop, forall t : (cart R _1243910) -> Prop, forall x : cart R _1243910, ((@has_derivative _1243891 _1243910 f f' (@within (cart R _1243910) (@_at _1243910 x) s)) /\ (@SUBSET (cart R _1243910) t s)) -> @has_derivative _1243891 _1243910 f f' (@within (cart R _1243910) (@_at _1243910 x) t). +Axiom thm_DIFFERENTIABLE_WITHIN_SUBSET : forall {M N' : Type'} (x : cart R M), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@differentiable N' M f (@within (cart R M) (@_at M x) t)) /\ (@SUBSET (cart R M) s t)) -> @differentiable N' M f (@within (cart R M) (@_at M x) s). +Axiom thm_DIFFERENTIABLE_ON_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@differentiable_on N' M f t) /\ (@SUBSET (cart R M) s t)) -> @differentiable_on N' M f s. +Axiom thm_DIFFERENTIABLE_ON_EMPTY : forall {_1243984 _1243985 : Type'}, forall f : (cart R _1243985) -> cart R _1243984, @differentiable_on _1243984 _1243985 f (@EMPTY (cart R _1243985)). +Axiom thm_HAS_DERIVATIVE_WITHIN_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall x : cart R M, (@has_derivative N' M f f' (@within (cart R M) (@_at M x) s)) = ((@linear M N' f') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall y : cart R M, ((@IN (cart R M) y s) /\ (Rlt (@vector_norm M (@vector_sub M y x)) d)) -> Rle (@vector_norm N' (@vector_sub N' (@vector_sub N' (f y) (f x)) (f' (@vector_sub M y x)))) (Rmult e (@vector_norm M (@vector_sub M y x)))))). +Axiom thm_HAS_DERIVATIVE_AT_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall x : cart R M, (@has_derivative N' M f f' (@_at M x)) = ((@linear M N' f') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall y : cart R M, (Rlt (@vector_norm M (@vector_sub M y x)) d) -> Rle (@vector_norm N' (@vector_sub N' (@vector_sub N' (f y) (f x)) (f' (@vector_sub M y x)))) (Rmult e (@vector_norm M (@vector_sub M y x)))))). +Axiom thm_DIFF_CHAIN_WITHIN : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall f' : (cart R M) -> cart R N', forall g' : (cart R N') -> cart R P, forall x : cart R M, forall s : (cart R M) -> Prop, ((@has_derivative N' M f f' (@within (cart R M) (@_at M x) s)) /\ (@has_derivative P N' g g' (@within (cart R N') (@_at N' (f x)) (@IMAGE (cart R M) (cart R N') f s)))) -> @has_derivative P M (@o (cart R M) (cart R N') (cart R P) g f) (@o (cart R M) (cart R N') (cart R P) g' f') (@within (cart R M) (@_at M x) s). +Axiom thm_DIFF_CHAIN_AT : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall f' : (cart R M) -> cart R N', forall g' : (cart R N') -> cart R P, forall x : cart R M, ((@has_derivative N' M f f' (@_at M x)) /\ (@has_derivative P N' g g' (@_at N' (f x)))) -> @has_derivative P M (@o (cart R M) (cart R N') (cart R P) g f) (@o (cart R M) (cart R N') (cart R P) g' f') (@_at M x). +Axiom thm_HAS_DERIVATIVE_WITHIN_REFLECT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@has_derivative N' M (fun x : cart R M => f (@vector_neg M x)) (fun x : cart R M => f' (@vector_neg M x)) (@within (cart R M) (@_at M (@vector_neg M a)) (@IMAGE (cart R M) (cart R M) (@vector_neg M) s))) = (@has_derivative N' M f f' (@within (cart R M) (@_at M a) s)). +Axiom thm_HAS_DERIVATIVE_AT_REFLECT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall a : cart R M, (@has_derivative N' M (fun x : cart R M => f (@vector_neg M x)) (fun x : cart R M => f' (@vector_neg M x)) (@_at M (@vector_neg M a))) = (@has_derivative N' M f f' (@_at M a)). +Axiom thm_DIFFERENTIABLE_ON_REFLECT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@differentiable_on N' M (fun x : cart R M => f (@vector_neg M x)) (@IMAGE (cart R M) (cart R M) (@vector_neg M) s)) = (@differentiable_on N' M f s). +Axiom thm_DIFFERENTIABLE_LINEAR : forall {M N' : Type'}, forall net' : net (cart R M), forall f : (cart R M) -> cart R N', (@linear M N' f) -> @differentiable N' M f net'. +Axiom thm_DIFFERENTIABLE_CONST : forall {_1245383 _1245384 : Type'}, forall c : cart R _1245383, forall net' : net (cart R _1245384), @differentiable _1245383 _1245384 (fun z : cart R _1245384 => c) net'. +Axiom thm_DIFFERENTIABLE_ID : forall {_1245395 : Type'}, forall net' : net (cart R _1245395), @differentiable _1245395 _1245395 (fun z : cart R _1245395 => z) net'. +Axiom thm_DIFFERENTIABLE_LIFT_COMPONENT : forall {N' : Type'} (i : N), forall net' : net (cart R N'), @differentiable unit N' (fun x : cart R N' => lift (@dollar R N' x i)) net'. +Axiom thm_DIFFERENTIABLE_CMUL : forall {_1245431 _1245436 : Type'}, forall net' : net (cart R _1245436), forall f : (cart R _1245436) -> cart R _1245431, forall c : R, (@differentiable _1245431 _1245436 f net') -> @differentiable _1245431 _1245436 (fun x : cart R _1245436 => @percent _1245431 c (f x)) net'. +Axiom thm_DIFFERENTIABLE_NEG : forall {_1245461 _1245469 : Type'}, forall f : (cart R _1245461) -> cart R _1245469, forall net' : net (cart R _1245461), (@differentiable _1245469 _1245461 f net') -> @differentiable _1245469 _1245461 (fun z : cart R _1245461 => @vector_neg _1245469 (f z)) net'. +Axiom thm_DIFFERENTIABLE_ADD : forall {_1245501 _1245511 : Type'}, forall f : (cart R _1245501) -> cart R _1245511, forall g : (cart R _1245501) -> cart R _1245511, forall net' : net (cart R _1245501), ((@differentiable _1245511 _1245501 f net') /\ (@differentiable _1245511 _1245501 g net')) -> @differentiable _1245511 _1245501 (fun z : cart R _1245501 => @vector_add _1245511 (f z) (g z)) net'. +Axiom thm_DIFFERENTIABLE_SUB : forall {_1245543 _1245553 : Type'}, forall f : (cart R _1245543) -> cart R _1245553, forall g : (cart R _1245543) -> cart R _1245553, forall net' : net (cart R _1245543), ((@differentiable _1245553 _1245543 f net') /\ (@differentiable _1245553 _1245543 g net')) -> @differentiable _1245553 _1245543 (fun z : cart R _1245543 => @vector_sub _1245553 (f z) (g z)) net'. +Axiom thm_DIFFERENTIABLE_VSUM : forall {_1245587 _1245593 _1245603 : Type'}, forall f : _1245603 -> (cart R _1245593) -> cart R _1245587, forall net' : net (cart R _1245593), forall s : _1245603 -> Prop, ((@FINITE _1245603 s) /\ (forall a : _1245603, (@IN _1245603 a s) -> @differentiable _1245587 _1245593 (f a) net')) -> @differentiable _1245587 _1245593 (fun x : cart R _1245593 => @vsum _1245603 _1245587 s (fun a : _1245603 => f a x)) net'. +Axiom thm_DIFFERENTIABLE_VSUM_NUMSEG : forall {_1245626 _1245643 _1245649 : Type'} (s : _1245626 -> Prop), forall f : N -> (cart R _1245649) -> cart R _1245643, forall net' : net (cart R _1245649), forall m : N, forall n : N, ((@FINITE _1245626 s) /\ (forall i : N, ((N.le m i) /\ (N.le i n)) -> @differentiable _1245643 _1245649 (f i) net')) -> @differentiable _1245643 _1245649 (fun x : cart R _1245649 => @vsum N _1245643 (dotdot m n) (fun a : N => f a x)) net'. +Axiom thm_DIFFERENTIABLE_CHAIN_AT : forall {_1245681 _1245687 _1245702 : Type'}, forall f : (cart R _1245702) -> cart R _1245681, forall g : (cart R _1245681) -> cart R _1245687, forall x : cart R _1245702, ((@differentiable _1245681 _1245702 f (@_at _1245702 x)) /\ (@differentiable _1245687 _1245681 g (@_at _1245681 (f x)))) -> @differentiable _1245687 _1245702 (@o (cart R _1245702) (cart R _1245681) (cart R _1245687) g f) (@_at _1245702 x). +Axiom thm_DIFFERENTIABLE_CHAIN_WITHIN : forall {_1245726 _1245735 _1245760 : Type'}, forall f : (cart R _1245760) -> cart R _1245726, forall g : (cart R _1245726) -> cart R _1245735, forall x : cart R _1245760, forall s : (cart R _1245760) -> Prop, ((@differentiable _1245726 _1245760 f (@within (cart R _1245760) (@_at _1245760 x) s)) /\ (@differentiable _1245735 _1245726 g (@within (cart R _1245726) (@_at _1245726 (f x)) (@IMAGE (cart R _1245760) (cart R _1245726) f s)))) -> @differentiable _1245735 _1245760 (@o (cart R _1245760) (cart R _1245726) (cart R _1245735) g f) (@within (cart R _1245760) (@_at _1245760 x) s). +Axiom thm_DIFFERENTIABLE_COMPONENTWISE_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall s : (cart R M) -> Prop, (@differentiable N' M f (@within (cart R M) (@_at M a) s)) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @differentiable unit M (fun x : cart R M => lift (@dollar R N' (f x) i)) (@within (cart R M) (@_at M a) s)). +Axiom thm_DIFFERENTIABLE_COMPONENTWISE_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, (@differentiable N' M f (@_at M a)) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @differentiable unit M (fun x : cart R M => lift (@dollar R N' (f x) i)) (@_at M a)). +Axiom thm_DIFFERENTIABLE_ON_LINEAR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@linear M N' f) -> @differentiable_on N' M f s. +Axiom thm_DIFFERENTIABLE_ON_CONST : forall {_1245920 _1245921 : Type'}, forall s : (cart R _1245921) -> Prop, forall c : cart R _1245920, @differentiable_on _1245920 _1245921 (fun z : cart R _1245921 => c) s. +Axiom thm_DIFFERENTIABLE_ON_ID : forall {_1245932 : Type'}, forall s : (cart R _1245932) -> Prop, @differentiable_on _1245932 _1245932 (fun z : cart R _1245932 => z) s. +Axiom thm_DIFFERENTIABLE_ON_COMPOSE : forall {_1245954 _1245955 _1245958 : Type'}, forall f : (cart R _1245955) -> cart R _1245954, forall g : (cart R _1245954) -> cart R _1245958, forall s : (cart R _1245955) -> Prop, ((@differentiable_on _1245954 _1245955 f s) /\ (@differentiable_on _1245958 _1245954 g (@IMAGE (cart R _1245955) (cart R _1245954) f s))) -> @differentiable_on _1245958 _1245955 (@o (cart R _1245955) (cart R _1245954) (cart R _1245958) g f) s. +Axiom thm_DIFFERENTIABLE_ON_NEG : forall {_1245991 _1245999 : Type'}, forall f : (cart R _1245991) -> cart R _1245999, forall s : (cart R _1245991) -> Prop, (@differentiable_on _1245999 _1245991 f s) -> @differentiable_on _1245999 _1245991 (fun z : cart R _1245991 => @vector_neg _1245999 (f z)) s. +Axiom thm_DIFFERENTIABLE_ON_ADD : forall {_1246031 _1246041 : Type'}, forall f : (cart R _1246031) -> cart R _1246041, forall g : (cart R _1246031) -> cart R _1246041, forall s : (cart R _1246031) -> Prop, ((@differentiable_on _1246041 _1246031 f s) /\ (@differentiable_on _1246041 _1246031 g s)) -> @differentiable_on _1246041 _1246031 (fun z : cart R _1246031 => @vector_add _1246041 (f z) (g z)) s. +Axiom thm_DIFFERENTIABLE_ON_SUB : forall {_1246073 _1246083 : Type'}, forall f : (cart R _1246073) -> cart R _1246083, forall g : (cart R _1246073) -> cart R _1246083, forall s : (cart R _1246073) -> Prop, ((@differentiable_on _1246083 _1246073 f s) /\ (@differentiable_on _1246083 _1246073 g s)) -> @differentiable_on _1246083 _1246073 (fun z : cart R _1246073 => @vector_sub _1246083 (f z) (g z)) s. +Axiom thm_FRECHET_DERIVATIVE_UNIQUE_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall f'' : (cart R M) -> cart R N', forall x : cart R M, forall s : (cart R M) -> Prop, ((@has_derivative N' M f f' (@within (cart R M) (@_at M x) s)) /\ ((@has_derivative N' M f f'' (@within (cart R M) (@_at M x) s)) /\ (forall i : N, forall e : R, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) (Rabs d)) /\ ((Rlt (Rabs d) e) /\ (@IN (cart R M) (@vector_add M x (@percent M d (@basis M i))) s))))) -> f' = f''. +Axiom thm_FRECHET_DERIVATIVE_UNIQUE_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall f'' : (cart R M) -> cart R N', forall x : cart R M, ((@has_derivative N' M f f' (@_at M x)) /\ (@has_derivative N' M f f'' (@_at M x))) -> f' = f''. +Axiom thm_HAS_FRECHET_DERIVATIVE_UNIQUE_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall x : cart R M, (@has_derivative N' M f f' (@_at M x)) -> (@frechet_derivative N' M f (@_at M x)) = f'. +Axiom thm_FRECHET_DERIVATIVE_CONST_AT : forall {M N' : Type'}, forall c : cart R N', forall a : cart R M, (@frechet_derivative N' M (fun x : cart R M => c) (@_at M a)) = (fun h : cart R M => @vec N' (NUMERAL 0%N)). +Axiom thm_FRECHET_DERIVATIVE_UNIQUE_WITHIN_CLOSED_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall f'' : (cart R M) -> cart R N', forall x : cart R M, forall a : cart R M, forall b : cart R M, ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> Rlt (@dollar R M a i) (@dollar R M b i)) /\ ((@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@has_derivative N' M f f' (@within (cart R M) (@_at M x) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) /\ (@has_derivative N' M f f'' (@within (cart R M) (@_at M x) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))))))) -> f' = f''. +Axiom thm_FRECHET_DERIVATIVE_UNIQUE_WITHIN_OPEN_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall f'' : (cart R M) -> cart R N', forall x : cart R M, forall a : cart R M, forall b : cart R M, ((@IN (cart R M) x (@open_interval M (@pair (cart R M) (cart R M) a b))) /\ ((@has_derivative N' M f f' (@within (cart R M) (@_at M x) (@open_interval M (@pair (cart R M) (cart R M) a b)))) /\ (@has_derivative N' M f f'' (@within (cart R M) (@_at M x) (@open_interval M (@pair (cart R M) (cart R M) a b)))))) -> f' = f''. +Axiom thm_FRECHET_DERIVATIVE_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall x : cart R M, (@has_derivative N' M f f' (@_at M x)) -> f' = (@frechet_derivative N' M f (@_at M x)). +Axiom thm_FRECHET_DERIVATIVE_WITHIN_CLOSED_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall x : cart R M, forall a : cart R M, forall b : cart R M, ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> Rlt (@dollar R M a i) (@dollar R M b i)) /\ ((@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@has_derivative N' M f f' (@within (cart R M) (@_at M x) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))))) -> (@frechet_derivative N' M f (@within (cart R M) (@_at M x) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) = f'. +Axiom thm_DIFFERENTIAL_COMPONENT_POS_AT_MINIMUM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall x : cart R M, forall s : (cart R M) -> Prop, forall k : N, forall e : R, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@IN (cart R M) x s) /\ ((@convex M s) /\ ((@has_derivative N' M f f' (@within (cart R M) (@_at M x) s)) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall w : cart R M, (@IN (cart R M) w (@INTER (cart R M) s (@ball M (@pair (cart R M) R x e)))) -> Rle (@dollar R N' (f x) k) (@dollar R N' (f w) k)))))))) -> forall y : cart R M, (@IN (cart R M) y s) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (f' (@vector_sub M y x)) k). +Axiom thm_DIFFERENTIAL_COMPONENT_NEG_AT_MAXIMUM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall x : cart R M, forall s : (cart R M) -> Prop, forall k : N, forall e : R, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@IN (cart R M) x s) /\ ((@convex M s) /\ ((@has_derivative N' M f f' (@within (cart R M) (@_at M x) s)) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall w : cart R M, (@IN (cart R M) w (@INTER (cart R M) s (@ball M (@pair (cart R M) R x e)))) -> Rle (@dollar R N' (f w) k) (@dollar R N' (f x) k)))))))) -> forall y : cart R M, (@IN (cart R M) y s) -> Rle (@dollar R N' (f' (@vector_sub M y x)) k) (R_of_N (NUMERAL 0%N)). +Axiom thm_DROP_DIFFERENTIAL_POS_AT_MINIMUM : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall f' : (cart R N') -> cart R unit, forall x : cart R N', forall s : (cart R N') -> Prop, forall e : R, ((@IN (cart R N') x s) /\ ((@convex N' s) /\ ((@has_derivative unit N' f f' (@within (cart R N') (@_at N' x) s)) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall w : cart R N', (@IN (cart R N') w (@INTER (cart R N') s (@ball N' (@pair (cart R N') R x e)))) -> Rle (drop (f x)) (drop (f w))))))) -> forall y : cart R N', (@IN (cart R N') y s) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f' (@vector_sub N' y x))). +Axiom thm_DROP_DIFFERENTIAL_NEG_AT_MAXIMUM : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall f' : (cart R N') -> cart R unit, forall x : cart R N', forall s : (cart R N') -> Prop, forall e : R, ((@IN (cart R N') x s) /\ ((@convex N' s) /\ ((@has_derivative unit N' f f' (@within (cart R N') (@_at N' x) s)) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall w : cart R N', (@IN (cart R N') w (@INTER (cart R N') s (@ball N' (@pair (cart R N') R x e)))) -> Rle (drop (f w)) (drop (f x))))))) -> forall y : cart R N', (@IN (cart R N') y s) -> Rle (drop (f' (@vector_sub N' y x))) (R_of_N (NUMERAL 0%N)). +Axiom thm_DIFFERENTIAL_COMPONENT_ZERO_AT_MAXMIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall x : cart R M, forall s : (cart R M) -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@IN (cart R M) x s) /\ ((@_open M s) /\ ((@has_derivative N' M f f' (@_at M x)) /\ ((forall w : cart R M, (@IN (cart R M) w s) -> Rle (@dollar R N' (f w) k) (@dollar R N' (f x) k)) \/ (forall w : cart R M, (@IN (cart R M) w s) -> Rle (@dollar R N' (f x) k) (@dollar R N' (f w) k)))))))) -> forall h : cart R M, (@dollar R N' (f' h) k) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DIFFERENTIAL_ZERO_MAXMIN_COMPONENT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, forall e : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (((forall y : cart R M, (@IN (cart R M) y (@ball M (@pair (cart R M) R x e))) -> Rle (@dollar R N' (f y) k) (@dollar R N' (f x) k)) \/ (forall y : cart R M, (@IN (cart R M) y (@ball M (@pair (cart R M) R x e))) -> Rle (@dollar R N' (f x) k) (@dollar R N' (f y) k))) /\ (@differentiable N' M f (@_at M x)))))) -> (@dollar (cart R M) N' (@jacobian M N' f (@_at M x)) k) = (@vec M (NUMERAL 0%N)). +Axiom thm_DIFFERENTIAL_ZERO_MAXMIN : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall f' : (cart R N') -> cart R unit, forall x : cart R N', forall s : (cart R N') -> Prop, ((@IN (cart R N') x s) /\ ((@_open N' s) /\ ((@has_derivative unit N' f f' (@_at N' x)) /\ ((forall y : cart R N', (@IN (cart R N') y s) -> Rle (drop (f y)) (drop (f x))) \/ (forall y : cart R N', (@IN (cart R N') y s) -> Rle (drop (f x)) (drop (f y))))))) -> f' = (fun v : cart R N' => @vec unit (NUMERAL 0%N)). +Axiom thm_ROLLE : forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, ((Rlt (drop a) (drop b)) /\ (((f a) = (f b)) /\ ((@continuous_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) -> @has_derivative unit unit f (f' x) (@_at unit x))))) -> exists x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) /\ ((f' x) = (fun v : cart R unit => @vec unit (NUMERAL 0%N))). +Axiom thm_MVT : forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, ((Rlt (drop a) (drop b)) /\ ((@continuous_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) -> @has_derivative unit unit f (f' x) (@_at unit x)))) -> exists x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) /\ ((@vector_sub unit (f b) (f a)) = (f' x (@vector_sub unit b a))). +Axiom thm_MVT_SIMPLE : forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, ((Rlt (drop a) (drop b)) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_derivative unit unit f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) -> exists x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) /\ ((@vector_sub unit (f b) (f a)) = (f' x (@vector_sub unit b a))). +Axiom thm_MVT_VERY_SIMPLE : forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, ((Rle (drop a) (drop b)) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_derivative unit unit f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) -> exists x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@vector_sub unit (f b) (f a)) = (f' x (@vector_sub unit b a))). +Axiom thm_MVT_SEGMENT : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall f' : (cart R N') -> (cart R N') -> cart R unit, forall a : cart R N', forall b : cart R N', ((~ (a = b)) /\ ((@continuous_on N' unit f (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall x : cart R N', (@IN (cart R N') x (@open_segment N' (@pair (cart R N') (cart R N') a b))) -> @has_derivative unit N' f (f' x) (@within (cart R N') (@_at N' x) (@open_segment N' (@pair (cart R N') (cart R N') a b)))))) -> exists c : cart R N', (@IN (cart R N') c (@open_segment N' (@pair (cart R N') (cart R N') a b))) /\ ((@vector_sub unit (f b) (f a)) = (f' c (@vector_sub N' b a))). +Axiom thm_MVT_SEGMENT_SIMPLE : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall f' : (cart R N') -> (cart R N') -> cart R unit, forall a : cart R N', forall b : cart R N', ((~ (a = b)) /\ (forall x : cart R N', (@IN (cart R N') x (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> @has_derivative unit N' f (f' x) (@within (cart R N') (@_at N' x) (@open_segment N' (@pair (cart R N') (cart R N') a b))))) -> exists c : cart R N', (@IN (cart R N') c (@open_segment N' (@pair (cart R N') (cart R N') a b))) /\ ((@vector_sub unit (f b) (f a)) = (f' c (@vector_sub N' b a))). +Axiom thm_MVT_GENERAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((Rlt (drop a) (drop b)) /\ ((@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) -> @has_derivative N' unit f (f' x) (@_at unit x)))) -> exists x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) /\ (Rle (@vector_norm N' (@vector_sub N' (f b) (f a))) (@vector_norm N' (f' x (@vector_sub unit b a)))). +Axiom thm_DIFFERENTIABLE_BOUND : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall B : R, ((@convex M s) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M f (f' x) (@within (cart R M) (@_at M x) s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (@onorm M N' (f' x)) B))) -> forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y))). +Axiom thm_ONORM_DERIVATIVES_LE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall f' : (cart R M) -> cart R N', forall g' : (cart R M) -> cart R P, forall x : cart R M, ((@has_derivative N' M f f' (@_at M x)) /\ ((@has_derivative P M g g' (@_at M x)) /\ (@eventually (cart R M) (fun y : cart R M => Rle (@vector_norm N' (@vector_sub N' (f y) (f x))) (@vector_norm P (@vector_sub P (g y) (g x)))) (@_at M x)))) -> Rle (@onorm M N' f') (@onorm M P g'). +Axiom thm_HAS_DERIVATIVE_ZERO_CONSTANT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@convex M s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M f (fun h : cart R M => @vec N' (NUMERAL 0%N)) (@within (cart R M) (@_at M x) s))) -> exists c : cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (f x) = c. +Axiom thm_HAS_DERIVATIVE_ZERO_UNIQUE : forall {_1250678 _1250683 : Type'}, forall f : (cart R _1250683) -> cart R _1250678, forall s : (cart R _1250683) -> Prop, forall a : cart R _1250683, forall c : cart R _1250678, ((@convex _1250683 s) /\ ((@IN (cart R _1250683) a s) /\ (((f a) = c) /\ (forall x : cart R _1250683, (@IN (cart R _1250683) x s) -> @has_derivative _1250678 _1250683 f (fun h : cart R _1250683 => @vec _1250678 (NUMERAL 0%N)) (@within (cart R _1250683) (@_at _1250683 x) s))))) -> forall x : cart R _1250683, (@IN (cart R _1250683) x s) -> (f x) = c. +Axiom thm_HAS_DERIVATIVE_ZERO_CONNECTED_CONSTANT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@_open M s) /\ ((@connected M s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M f (fun h : cart R M => @vec N' (NUMERAL 0%N)) (@_at M x)))) -> exists c : cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (f x) = c. +Axiom thm_HAS_DERIVATIVE_ZERO_CONNECTED_UNIQUE : forall {_1250848 _1250850 : Type'}, forall f : (cart R _1250850) -> cart R _1250848, forall s : (cart R _1250850) -> Prop, forall a : cart R _1250850, forall c : cart R _1250848, ((@_open _1250850 s) /\ ((@connected _1250850 s) /\ ((@IN (cart R _1250850) a s) /\ (((f a) = c) /\ (forall x : cart R _1250850, (@IN (cart R _1250850) x s) -> @has_derivative _1250848 _1250850 f (fun h : cart R _1250850 => @vec _1250848 (NUMERAL 0%N)) (@_at _1250850 x)))))) -> forall x : cart R _1250850, (@IN (cart R _1250850) x s) -> (f x) = c. +Axiom thm_DIFFERENTIABLE_DISCRETE_PREIMAGES : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall y : cart R N', ((forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ (forall x : cart R N', ((@IN (cart R N') x s) /\ ((f x) = y)) -> ~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N))))) -> (@GSPEC (cart R N') (fun GEN_PVAR_5679 : cart R N' => exists l : cart R N', @SETSPEC (cart R N') GEN_PVAR_5679 ((@IN (cart R N') l s) /\ (@limit_point_of N' l (@GSPEC (cart R N') (fun GEN_PVAR_5678 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5678 ((@IN (cart R N') x s) /\ ((f x) = y)) x)))) l)) = (@EMPTY (cart R N')). +Axiom thm_DIFFERENTIABLE_DISCRETE_PREIMAGES_CLOSED : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall y : cart R N', ((@closed N' s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ (forall x : cart R N', ((@IN (cart R N') x s) /\ ((f x) = y)) -> ~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N)))))) -> (@GSPEC (cart R N') (fun GEN_PVAR_5683 : cart R N' => exists l : cart R N', @SETSPEC (cart R N') GEN_PVAR_5683 (@limit_point_of N' l (@GSPEC (cart R N') (fun GEN_PVAR_5682 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5682 ((@IN (cart R N') x s) /\ ((f x) = y)) x))) l)) = (@EMPTY (cart R N')). +Axiom thm_DIFFERENTIABLE_COUNTABLE_PREIMAGES : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall y : cart R N', ((forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ (forall x : cart R N', ((@IN (cart R N') x s) /\ ((f x) = y)) -> ~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N))))) -> @COUNTABLE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5686 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5686 ((@IN (cart R N') x s) /\ ((f x) = y)) x)). +Axiom thm_DIFFERENTIABLE_FINITE_PREIMAGES : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall y : cart R N', ((@compact N' s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ (forall x : cart R N', ((@IN (cart R N') x s) /\ ((f x) = y)) -> ~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N)))))) -> @FINITE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5687 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5687 ((@IN (cart R N') x s) /\ ((f x) = y)) x)). +Axiom thm_DIFFERENTIABLE_FINITE_PREIMAGES_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall y : cart R N', ((@compact N' (@GSPEC (cart R N') (fun GEN_PVAR_5691 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5691 ((@IN (cart R N') x s) /\ ((f x) = y)) x))) /\ ((forall x : cart R N', ((@IN (cart R N') x s) /\ ((f x) = y)) -> @has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ (forall x : cart R N', ((@IN (cart R N') x s) /\ ((f x) = y)) -> ~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N)))))) -> @FINITE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_5692 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5692 ((@IN (cart R N') x s) /\ ((f x) = y)) x)). +Axiom thm_HAS_DERIVATIVE_INVERSE_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall g' : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall a : cart R M, ((@IN (cart R M) a s) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x) /\ ((@has_derivative N' M f f' (@within (cart R M) (@_at M a) s)) /\ ((@linear N' M g') /\ (((@o (cart R M) (cart R N') (cart R M) g' f') = (@I (cart R M))) /\ (@continuous M (cart R N') g (@within (cart R N') (@_at N' (f a)) (@IMAGE (cart R M) (cart R N') f s)))))))) -> @has_derivative M N' g g' (@within (cart R N') (@_at N' (f a)) (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_HAS_DERIVATIVE_INVERSE_BASIC : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall f' : (cart R M) -> cart R N', forall g' : (cart R N') -> cart R M, forall t : (cart R N') -> Prop, forall y : cart R N', ((@has_derivative N' M f f' (@_at M (g y))) /\ ((@linear N' M g') /\ (((@o (cart R M) (cart R N') (cart R M) g' f') = (@I (cart R M))) /\ ((@continuous M (cart R N') g (@_at N' y)) /\ ((@_open N' t) /\ ((@IN (cart R N') y t) /\ (forall z : cart R N', (@IN (cart R N') z t) -> (f (g z)) = z))))))) -> @has_derivative M N' g g' (@_at N' y). +Axiom thm_HAS_DERIVATIVE_INVERSE_BASIC_X : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall f' : (cart R M) -> cart R N', forall g' : (cart R N') -> cart R M, forall t : (cart R N') -> Prop, forall x : cart R M, ((@has_derivative N' M f f' (@_at M x)) /\ ((@linear N' M g') /\ (((@o (cart R M) (cart R N') (cart R M) g' f') = (@I (cart R M))) /\ ((@continuous M (cart R N') g (@_at N' (f x))) /\ (((g (f x)) = x) /\ ((@_open N' t) /\ ((@IN (cart R N') (f x) t) /\ (forall y : cart R N', (@IN (cart R N') y t) -> (f (g y)) = y)))))))) -> @has_derivative M N' g g' (@_at N' (f x)). +Axiom thm_HAS_DERIVATIVE_INVERSE_DIEUDONNE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, ((@_open M s) /\ ((@_open N' (@IMAGE (cart R M) (cart R N') f s)) /\ ((@continuous_on M N' f s) /\ ((@continuous_on N' M g (@IMAGE (cart R M) (cart R N') f s)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x))))) -> forall f' : (cart R M) -> cart R N', forall g' : (cart R N') -> cart R M, forall x : cart R M, ((@IN (cart R M) x s) /\ ((@has_derivative N' M f f' (@_at M x)) /\ ((@linear N' M g') /\ ((@o (cart R M) (cart R N') (cart R M) g' f') = (@I (cart R M)))))) -> @has_derivative M N' g g' (@_at N' (f x)). +Axiom thm_HAS_DERIVATIVE_INVERSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall f' : (cart R M) -> cart R N', forall g' : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall x : cart R M, ((@compact M s) /\ ((@IN (cart R M) x s) /\ ((@IN (cart R N') (f x) (@interior N' (@IMAGE (cart R M) (cart R N') f s))) /\ ((@continuous_on M N' f s) /\ ((forall x' : cart R M, (@IN (cart R M) x' s) -> (g (f x')) = x') /\ ((@has_derivative N' M f f' (@_at M x)) /\ ((@linear N' M g') /\ ((@o (cart R M) (cart R N') (cart R M) g' f') = (@I (cart R M)))))))))) -> @has_derivative M N' g g' (@_at N' (f x)). +Axiom thm_BROUWER_SURJECTIVE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' t) /\ ((@convex N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ ((@continuous_on N' N' f t) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) -> @IN (cart R N') (@vector_add N' x (@vector_sub N' y (f y))) t))))) -> forall x : cart R N', (@IN (cart R N') x s) -> exists y : cart R N', (@IN (cart R N') y t) /\ ((f y) = x). +Axiom thm_BROUWER_SURJECTIVE_CBALL : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall a : cart R N', forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@continuous_on N' N' f (@cball N' (@pair (cart R N') R a e))) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y (@cball N' (@pair (cart R N') R a e)))) -> @IN (cart R N') (@vector_add N' x (@vector_sub N' y (f y))) (@cball N' (@pair (cart R N') R a e))))) -> forall x : cart R N', (@IN (cart R N') x s) -> exists y : cart R N', (@IN (cart R N') y (@cball N' (@pair (cart R N') R a e))) /\ ((f y) = x). +Axiom thm_SUSSMANN_OPEN_MAPPING : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall g' : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall x : cart R M, ((@_open M s) /\ ((@continuous_on M N' f s) /\ ((@IN (cart R M) x s) /\ ((@has_derivative N' M f f' (@_at M x)) /\ ((@linear N' M g') /\ ((@o (cart R N') (cart R M) (cart R N') f' g') = (@I (cart R N')))))))) -> forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@IN (cart R M) x (@interior M t))) -> @IN (cart R N') (f x) (@interior N' (@IMAGE (cart R M) (cart R N') f t)). +Axiom thm_DIFFERENTIABLE_IMP_OPEN_MAP_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> (cart R M) -> cart R N', forall g' : (cart R M) -> (cart R N') -> cart R M, forall s : (cart R M) -> Prop, ((@_open M s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (@has_derivative N' M f (f' x) (@_at M x)) /\ ((@linear N' M (g' x)) /\ ((@o (cart R N') (cart R M) (cart R N') (f' x) (g' x)) = (@I (cart R N')))))) -> @_open N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_DIFFERENTIABLE_IMP_OPEN_MAP : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@_open N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N)))))) -> @_open N' (@IMAGE (cart R N') (cart R N') f s). +Axiom thm_DIFFERENTIABLE_IMP_OPEN_MAP_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ (~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N))))) /\ ((@_open N' t) /\ (@SUBSET (cart R N') t s))) -> @_open N' (@IMAGE (cart R N') (cart R N') f t). +Axiom thm_HAS_DERIVATIVE_INVERSE_STRONG : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', forall f' : (cart R N') -> cart R N', forall g' : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall x : cart R N', ((@_open N' s) /\ ((@IN (cart R N') x s) /\ ((@continuous_on N' N' f s) /\ ((forall x' : cart R N', (@IN (cart R N') x' s) -> (g (f x')) = x') /\ ((@has_derivative N' N' f f' (@_at N' x)) /\ ((@o (cart R N') (cart R N') (cart R N') f' g') = (@I (cart R N')))))))) -> @has_derivative N' N' g g' (@_at N' (f x)). +Axiom thm_HAS_DERIVATIVE_INVERSE_STRONG_X : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', forall f' : (cart R N') -> cart R N', forall g' : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall y : cart R N', ((@_open N' s) /\ ((@IN (cart R N') (g y) s) /\ ((@continuous_on N' N' f s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (g (f x)) = x) /\ ((@has_derivative N' N' f f' (@_at N' (g y))) /\ (((@o (cart R N') (cart R N') (cart R N') f' g') = (@I (cart R N'))) /\ ((f (g y)) = y))))))) -> @has_derivative N' N' g g' (@_at N' y). +Axiom thm_HAS_DERIVATIVE_INVERSE_ON : forall {N' : Type'} (f' : (cart R N') -> (cart R N') -> cart R N') (g : (cart R N') -> cart R N') (g' : (cart R N') -> (cart R N') -> cart R N'), forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@_open N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (((g (f x)) = x) /\ ((@o (cart R N') (cart R N') (cart R N') (f' x) (g' x)) = (@I (cart R N')))))) -> forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' g (g' x) (@_at N' (f x)). +Axiom thm_HAS_DERIVATIVE_SEQUENCE_LIPSCHITZ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall f : N -> (cart R M) -> cart R N', forall f' : N -> (cart R M) -> (cart R M) -> cart R N', forall g' : (cart R M) -> (cart R M) -> cart R N', ((@convex M s) /\ ((forall n : N, forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M (f n) (f' n x) (@within (cart R M) (@_at M x) s)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : cart R M, forall h : cart R M, ((N.ge n N'') /\ (@IN (cart R M) x s)) -> Rle (@vector_norm N' (@vector_sub N' (f' n x h) (g' x h))) (Rmult e (@vector_norm M h))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall m : N, forall n : N, forall x : cart R M, forall y : cart R M, ((N.ge m N'') /\ ((N.ge n N'') /\ ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)))) -> Rle (@vector_norm N' (@vector_sub N' (@vector_sub N' (f m x) (f n x)) (@vector_sub N' (f m y) (f n y)))) (Rmult e (@vector_norm M (@vector_sub M x y))). +Axiom thm_HAS_DERIVATIVE_SEQUENCE : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall f : N -> (cart R M) -> cart R N', forall f' : N -> (cart R M) -> (cart R M) -> cart R N', forall g' : (cart R M) -> (cart R M) -> cart R N', ((@convex M s) /\ ((forall n : N, forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M (f n) (f' n x) (@within (cart R M) (@_at M x) s)) /\ ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : cart R M, forall h : cart R M, ((N.ge n N'') /\ (@IN (cart R M) x s)) -> Rle (@vector_norm N' (@vector_sub N' (f' n x h) (g' x h))) (Rmult e (@vector_norm M h))) /\ (exists x : cart R M, exists l : cart R N', (@IN (cart R M) x s) /\ (@FImp N' N (fun n : N => f n x) l sequentially))))) -> exists g : (cart R M) -> cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (@FImp N' N (fun n : N => f n x) (g x) sequentially) /\ (@has_derivative N' M g (g' x) (@within (cart R M) (@_at M x) s)). +Axiom thm_HAS_ANTIDERIVATIVE_SEQUENCE : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall f : N -> (cart R M) -> cart R N', forall f' : N -> (cart R M) -> (cart R M) -> cart R N', forall g' : (cart R M) -> (cart R M) -> cart R N', ((@convex M s) /\ ((forall n : N, forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M (f n) (f' n x) (@within (cart R M) (@_at M x) s)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : cart R M, forall h : cart R M, ((N.ge n N'') /\ (@IN (cart R M) x s)) -> Rle (@vector_norm N' (@vector_sub N' (f' n x h) (g' x h))) (Rmult e (@vector_norm M h))))) -> exists g : (cart R M) -> cart R N', forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M g (g' x) (@within (cart R M) (@_at M x) s). +Axiom thm_HAS_ANTIDERIVATIVE_LIMIT : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall g' : (cart R M) -> (cart R M) -> cart R N', ((@convex M s) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists f : (cart R M) -> cart R N', exists f' : (cart R M) -> (cart R M) -> cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (@has_derivative N' M f (f' x) (@within (cart R M) (@_at M x) s)) /\ (forall h : cart R M, Rle (@vector_norm N' (@vector_sub N' (f' x h) (g' x h))) (Rmult e (@vector_norm M h))))) -> exists g : (cart R M) -> cart R N', forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M g (g' x) (@within (cart R M) (@_at M x) s). +Axiom thm_HAS_DERIVATIVE_SERIES : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall f : N -> (cart R M) -> cart R N', forall f' : N -> (cart R M) -> (cart R M) -> cart R N', forall g' : (cart R M) -> (cart R M) -> cart R N', forall k : N -> Prop, ((@convex M s) /\ ((forall n : N, forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M (f n) (f' n x) (@within (cart R M) (@_at M x) s)) /\ ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : cart R M, forall h : cart R M, ((N.ge n N'') /\ (@IN (cart R M) x s)) -> Rle (@vector_norm N' (@vector_sub N' (@vsum N N' (@INTER N k (dotdot (NUMERAL 0%N) n)) (fun i : N => f' i x h)) (g' x h))) (Rmult e (@vector_norm M h))) /\ (exists x : cart R M, exists l : cart R N', (@IN (cart R M) x s) /\ (@sums N' (fun n : N => f n x) l k))))) -> exists g : (cart R M) -> cart R N', forall x : cart R M, (@IN (cart R M) x s) -> (@sums N' (fun n : N => f n x) (g x) k) /\ (@has_derivative N' M g (g' x) (@within (cart R M) (@_at M x) s)). +Axiom thm_HAS_DERIVATIVE_BILINEAR_WITHIN : forall {M N' P Q : Type'}, forall h : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R Q) -> cart R M, forall g : (cart R Q) -> cart R N', forall f' : (cart R Q) -> cart R M, forall g' : (cart R Q) -> cart R N', forall x : cart R Q, forall s : (cart R Q) -> Prop, ((@has_derivative M Q f f' (@within (cart R Q) (@_at Q x) s)) /\ ((@has_derivative N' Q g g' (@within (cart R Q) (@_at Q x) s)) /\ (@bilinear N' P M h))) -> @has_derivative P Q (fun x' : cart R Q => h (f x') (g x')) (fun d : cart R Q => @vector_add P (h (f x) (g' d)) (h (f' d) (g x))) (@within (cart R Q) (@_at Q x) s). +Axiom thm_HAS_DERIVATIVE_BILINEAR_AT : forall {M N' P Q : Type'}, forall h : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R Q) -> cart R M, forall g : (cart R Q) -> cart R N', forall f' : (cart R Q) -> cart R M, forall g' : (cart R Q) -> cart R N', forall x : cart R Q, ((@has_derivative M Q f f' (@_at Q x)) /\ ((@has_derivative N' Q g g' (@_at Q x)) /\ (@bilinear N' P M h))) -> @has_derivative P Q (fun x' : cart R Q => h (f x') (g x')) (fun d : cart R Q => @vector_add P (h (f x) (g' d)) (h (f' d) (g x))) (@_at Q x). +Axiom thm_BILINEAR_DIFFERENTIABLE_AT_COMPOSE : forall {M N' P Q : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall h : (cart R N') -> (cart R P) -> cart R Q, forall a : cart R M, ((@differentiable N' M f (@_at M a)) /\ ((@differentiable P M g (@_at M a)) /\ (@bilinear P Q N' h))) -> @differentiable Q M (fun x : cart R M => h (f x) (g x)) (@_at M a). +Axiom thm_BILINEAR_DIFFERENTIABLE_WITHIN_COMPOSE : forall {M N' P Q : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall h : (cart R N') -> (cart R P) -> cart R Q, forall x : cart R M, forall s : (cart R M) -> Prop, ((@differentiable N' M f (@within (cart R M) (@_at M x) s)) /\ ((@differentiable P M g (@within (cart R M) (@_at M x) s)) /\ (@bilinear P Q N' h))) -> @differentiable Q M (fun x' : cart R M => h (f x') (g x')) (@within (cart R M) (@_at M x) s). +Axiom thm_BILINEAR_DIFFERENTIABLE_ON_COMPOSE : forall {M N' P Q : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall h : (cart R N') -> (cart R P) -> cart R Q, forall s : (cart R M) -> Prop, ((@differentiable_on N' M f s) /\ ((@differentiable_on P M g s) /\ (@bilinear P Q N' h))) -> @differentiable_on Q M (fun x : cart R M => h (f x) (g x)) s. +Axiom thm_DIFFERENTIABLE_AT_LIFT_DOT2 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall x : cart R M, ((@differentiable N' M f (@_at M x)) /\ (@differentiable N' M g (@_at M x))) -> @differentiable unit M (fun x' : cart R M => lift (@dot N' (f x') (g x'))) (@_at M x). +Axiom thm_DIFFERENTIABLE_WITHIN_LIFT_DOT2 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall x : cart R M, forall s : (cart R M) -> Prop, ((@differentiable N' M f (@within (cart R M) (@_at M x) s)) /\ (@differentiable N' M g (@within (cart R M) (@_at M x) s))) -> @differentiable unit M (fun x' : cart R M => lift (@dot N' (f x') (g x'))) (@within (cart R M) (@_at M x) s). +Axiom thm_DIFFERENTIABLE_ON_LIFT_DOT2 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@differentiable_on N' M f s) /\ (@differentiable_on N' M g s)) -> @differentiable_on unit M (fun x : cart R M => lift (@dot N' (f x) (g x))) s. +Axiom thm_HAS_DERIVATIVE_MUL_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> R, forall f' : (cart R M) -> R, forall g : (cart R M) -> cart R N', forall g' : (cart R M) -> cart R N', forall a : cart R M, forall s : (cart R M) -> Prop, ((@has_derivative unit M (@o (cart R M) R (cart R unit) lift f) (@o (cart R M) R (cart R unit) lift f') (@within (cart R M) (@_at M a) s)) /\ (@has_derivative N' M g g' (@within (cart R M) (@_at M a) s))) -> @has_derivative N' M (fun x : cart R M => @percent N' (f x) (g x)) (fun h : cart R M => @vector_add N' (@percent N' (f a) (g' h)) (@percent N' (f' h) (g a))) (@within (cart R M) (@_at M a) s). +Axiom thm_HAS_DERIVATIVE_MUL_AT : forall {M N' : Type'}, forall f : (cart R M) -> R, forall f' : (cart R M) -> R, forall g : (cart R M) -> cart R N', forall g' : (cart R M) -> cart R N', forall a : cart R M, ((@has_derivative unit M (@o (cart R M) R (cart R unit) lift f) (@o (cart R M) R (cart R unit) lift f') (@_at M a)) /\ (@has_derivative N' M g g' (@_at M a))) -> @has_derivative N' M (fun x : cart R M => @percent N' (f x) (g x)) (fun h : cart R M => @vector_add N' (@percent N' (f a) (g' h)) (@percent N' (f' h) (g a))) (@_at M a). +Axiom thm_HAS_DERIVATIVE_SQNORM_AT : forall {N' : Type'}, forall a : cart R N', @has_derivative unit N' (fun x : cart R N' => lift (real_pow (@vector_norm N' x) (NUMERAL (BIT0 (BIT1 0%N))))) (fun x : cart R N' => @percent unit (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (lift (@dot N' a x))) (@_at N' a). +Axiom thm_DIFFERENTIABLE_MUL_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> R, forall g : (cart R M) -> cart R N', forall a : cart R M, forall s : (cart R M) -> Prop, ((@differentiable unit M (@o (cart R M) R (cart R unit) lift f) (@within (cart R M) (@_at M a) s)) /\ (@differentiable N' M g (@within (cart R M) (@_at M a) s))) -> @differentiable N' M (fun x : cart R M => @percent N' (f x) (g x)) (@within (cart R M) (@_at M a) s). +Axiom thm_DIFFERENTIABLE_MUL_AT : forall {M N' : Type'}, forall f : (cart R M) -> R, forall g : (cart R M) -> cart R N', forall a : cart R M, ((@differentiable unit M (@o (cart R M) R (cart R unit) lift f) (@_at M a)) /\ (@differentiable N' M g (@_at M a))) -> @differentiable N' M (fun x : cart R M => @percent N' (f x) (g x)) (@_at M a). +Axiom thm_DIFFERENTIABLE_SQNORM_AT : forall {N' : Type'}, forall a : cart R N', @differentiable unit N' (fun x : cart R N' => lift (real_pow (@vector_norm N' x) (NUMERAL (BIT0 (BIT1 0%N))))) (@_at N' a). +Axiom thm_DIFFERENTIABLE_ON_MUL : forall {M N' : Type'}, forall f : (cart R M) -> R, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@differentiable_on unit M (@o (cart R M) R (cart R unit) lift f) s) /\ (@differentiable_on N' M g s)) -> @differentiable_on N' M (fun x : cart R M => @percent N' (f x) (g x)) s. +Axiom thm_DIFFERENTIABLE_ON_SQNORM : forall {N' : Type'}, forall s : (cart R N') -> Prop, @differentiable_on unit N' (fun x : cart R N' => lift (real_pow (@vector_norm N' x) (NUMERAL (BIT0 (BIT1 0%N))))) s. +Axiom thm_BAIRE1_PARTIAL_DERIVATIVES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall i : N, forall j : N, ((forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M f (f' x) (@_at M x)) /\ ((@_open M s) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex M (@UNIV M)))))))) -> @baire M unit (NUMERAL (BIT1 0%N)) s (fun x : cart R M => lift (@dollar R M (@dollar (cart R M) N' (@matrix M N' (f' x)) i) j)). +Axiom thm_BAIRE1_DET_JACOBIAN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@_at N' x)) /\ (@_open N' s)) -> @baire N' unit (NUMERAL (BIT1 0%N)) s (fun x : cart R N' => lift (@det N' (@matrix N' N' (f' x)))). +Axiom thm_GATEAUX_DERIVATIVE_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall x : cart R M, forall y : cart R M, (@has_derivative N' M f f' (@within (cart R M) (@_at M x) s)) -> @FImp N' (cart R unit) (fun t : cart R unit => @percent N' (Rinv (drop t)) (@vector_sub N' (f (@vector_add M x (@percent M (drop t) y))) (f x))) (f' y) (@within (cart R unit) (@_at unit (@vec unit (NUMERAL 0%N))) (@GSPEC (cart R unit) (fun GEN_PVAR_5694 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_5694 (@IN (cart R M) (@vector_add M x (@percent M (drop t) y)) s) t))). +Axiom thm_GATEAUX_DERIVATIVE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall x : cart R M, forall y : cart R M, (@has_derivative N' M f f' (@_at M x)) -> @FImp N' (cart R unit) (fun t : cart R unit => @percent N' (Rinv (drop t)) (@vector_sub N' (f (@vector_add M x (@percent M (drop t) y))) (f x))) (f' y) (@_at unit (@vec unit (NUMERAL 0%N))). +Axiom thm_GATEAUX_DERIVATIVE_LIPSCHITZ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall x : cart R M, forall s : (cart R M) -> Prop, ((@IN (cart R M) x s) /\ ((@_open M s) /\ ((exists B : R, forall u : cart R M, forall v : cart R M, ((@IN (cart R M) u s) /\ (@IN (cart R M) v s)) -> Rle (@vector_norm N' (@vector_sub N' (f u) (f v))) (Rmult B (@vector_norm M (@vector_sub M u v)))) /\ ((@linear M N' f') /\ (forall y : cart R M, @FImp N' (cart R unit) (fun t : cart R unit => @percent N' (Rinv (drop t)) (@vector_sub N' (f (@vector_add M x (@percent M (drop t) y))) (f x))) (f' y) (@_at unit (@vec unit (NUMERAL 0%N)))))))) -> @has_derivative N' M f f' (@_at M x). +Axiom thm_INVERSE_FUNCTION_THEOREM : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall a : cart R N', forall s : (cart R N') -> Prop, ((@_open N' s) /\ ((@IN (cart R N') a s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N))))))) -> exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, exists g : (cart R N') -> cart R N', exists g' : (cart R N') -> (cart R N') -> cart R N', (@_open N' t) /\ ((@IN (cart R N') a t) /\ ((@SUBSET (cart R N') t s) /\ ((@_open N' u) /\ ((@IN (cart R N') (f a) u) /\ ((@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ ((forall x : cart R N', (@IN (cart R N') x t) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (((@o (cart R N') (cart R N') (cart R N') (f' x) (g' (f x))) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') (g' (f x)) (f' x)) = (@I (cart R N'))))) /\ (forall y : cart R N', (@IN (cart R N') y u) -> (@has_derivative N' N' g (g' y) (@_at N' y)) /\ (((@o (cart R N') (cart R N') (cart R N') (f' (g y)) (g' y)) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') (g' y) (f' (g y))) = (@I (cart R N'))))))))))). +Axiom thm_JACOBIAN_SIGN_INVARIANCE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@_open N' s) /\ ((@connected N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N))))))) -> (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (R_of_N (NUMERAL 0%N)) (@det N' (@matrix N' N' (f' x)))) \/ (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (@det N' (@matrix N' N' (f' x))) (R_of_N (NUMERAL 0%N))). +Axiom thm_HAS_DERIVATIVE_LOCALLY_INJECTIVE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> (cart R M) -> cart R N', forall g' : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall a : cart R M, ((@IN (cart R M) a s) /\ ((@_open M s) /\ ((@linear N' M g') /\ (((@o (cart R M) (cart R N') (cart R M) g' (f' a)) = (@I (cart R M))) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M f (f' x) (@_at M x)) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R M, (Rlt (@distance M (@pair (cart R M) (cart R M) a x)) d) -> Rlt (@onorm M N' (fun v : cart R M => @vector_sub N' (f' x v) (f' a v))) e))))))) -> exists t : (cart R M) -> Prop, (@IN (cart R M) a t) /\ ((@_open M t) /\ (forall x : cart R M, forall x' : cart R M, ((@IN (cart R M) x t) /\ ((@IN (cart R M) x' t) /\ ((f x') = (f x)))) -> x' = x)). +Axiom thm_INVERSE_FUNCTION_THEOREM_C1_POINTWISE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall a : cart R N', ((@_open N' s) /\ ((@IN (cart R N') a s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@_at N' x)) /\ ((~ ((@det N' (@matrix N' N' (f' a))) = (R_of_N (NUMERAL 0%N)))) /\ (forall h : cart R N', @continuous N' (cart R N') (fun x : cart R N' => f' x h) (@_at N' a)))))) -> exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, exists g : (cart R N') -> cart R N', exists g' : (cart R N') -> (cart R N') -> cart R N', (@_open N' t) /\ ((@IN (cart R N') a t) /\ ((@SUBSET (cart R N') t s) /\ ((@_open N' u) /\ ((@IN (cart R N') (f a) u) /\ ((@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ ((forall x : cart R N', (@IN (cart R N') x t) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (((@o (cart R N') (cart R N') (cart R N') (f' x) (g' (f x))) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') (g' (f x)) (f' x)) = (@I (cart R N'))))) /\ ((forall y : cart R N', (@IN (cart R N') y u) -> (@has_derivative N' N' g (g' y) (@_at N' y)) /\ (((@o (cart R N') (cart R N') (cart R N') (f' (g y)) (g' y)) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') (g' y) (f' (g y))) = (@I (cart R N'))))) /\ (forall x : cart R N', ((@IN (cart R N') x t) /\ (forall h : cart R N', @continuous N' (cart R N') (fun y : cart R N' => f' y h) (@_at N' x))) -> forall h : cart R N', @continuous N' (cart R N') (fun z : cart R N' => g' z h) (@_at N' (f x)))))))))). +Axiom thm_INVERSE_FUNCTION_C1 : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall a : cart R N', ((@_open N' s) /\ ((@IN (cart R N') a s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (forall h : cart R N', @continuous N' (cart R N') (fun y : cart R N' => f' y h) (@_at N' x))) /\ (~ ((@det N' (@matrix N' N' (f' a))) = (R_of_N (NUMERAL 0%N))))))) -> exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, exists g : (cart R N') -> cart R N', exists g' : (cart R N') -> (cart R N') -> cart R N', (@_open N' t) /\ ((@IN (cart R N') a t) /\ ((@SUBSET (cart R N') t s) /\ ((@_open N' u) /\ ((@IN (cart R N') (f a) u) /\ ((@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ ((forall x : cart R N', (@IN (cart R N') x t) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (((@o (cart R N') (cart R N') (cart R N') (f' x) (g' (f x))) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') (g' (f x)) (f' x)) = (@I (cart R N'))))) /\ ((forall y : cart R N', (@IN (cart R N') y u) -> (@has_derivative N' N' g (g' y) (@_at N' y)) /\ (((@o (cart R N') (cart R N') (cart R N') (f' (g y)) (g' y)) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') (g' y) (f' (g y))) = (@I (cart R N'))))) /\ (forall x : cart R N', (@IN (cart R N') x t) -> forall h : cart R N', @continuous N' (cart R N') (fun z : cart R N' => g' z h) (@_at N' (f x)))))))))). +Axiom thm_INVERSE_FUNCTION_THEOREM_GLOBAL : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@_open N' s) /\ ((@connected N' s) /\ ((@simply_connected N' t) /\ (((s = (@EMPTY (cart R N'))) -> t = (@EMPTY (cart R N'))) /\ ((forall c : (cart R N') -> Prop, (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) c) -> @closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R N') (cart R N') f c)) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N)))))))))) -> exists g : (cart R N') -> cart R N', exists g' : (cart R N') -> (cart R N') -> cart R N', (@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> (@has_derivative N' N' g (g' y) (@_at N' y)) /\ (((@o (cart R N') (cart R N') (cart R N') (f' (g y)) (g' y)) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') (g' y) (f' (g y))) = (@I (cart R N'))))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> ((@o (cart R N') (cart R N') (cart R N') (f' x) (g' (f x))) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') (g' (f x)) (f' x)) = (@I (cart R N'))))). +Axiom thm_INVERSE_FUNCTION_THEOREM_SUBSPACE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall p : (cart R N') -> Prop, forall a : cart R N', ((@subspace N' p) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') p) s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) p) /\ ((@IN (cart R N') a s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) p)) /\ ((@IMAGE (cart R N') (cart R N') (f' x) p) = p)))))) -> exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, exists g : (cart R N') -> cart R N', exists g' : (cart R N') -> (cart R N') -> cart R N', (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') p) t) /\ ((@IN (cart R N') a t) /\ ((@SUBSET (cart R N') t s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') p) u) /\ ((@IN (cart R N') (f a) u) /\ ((@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ ((forall x : cart R N', (@IN (cart R N') x t) -> (@has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) p)) /\ (forall h : cart R N', (@IN (cart R N') h p) -> ((f' x (g' (f x) h)) = h) /\ ((g' (f x) (f' x h)) = h))) /\ (forall y : cart R N', (@IN (cart R N') y u) -> (@has_derivative N' N' g (g' y) (@within (cart R N') (@_at N' y) p)) /\ (forall h : cart R N', (@IN (cart R N') h p) -> ((f' (g y) (g' y h)) = h) /\ ((g' y (f' (g y) h)) = h))))))))). +Axiom thm_INVERSE_FUNCTION_THEOREM_AFFINE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall p : (cart R N') -> Prop, forall a : cart R N', ((@affine N' p) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') p) s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) p) /\ ((@IN (cart R N') a s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) p)) /\ (~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N))))))))) -> exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, exists g : (cart R N') -> cart R N', exists g' : (cart R N') -> (cart R N') -> cart R N', (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') p) t) /\ ((@IN (cart R N') a t) /\ ((@SUBSET (cart R N') t s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') p) u) /\ ((@IN (cart R N') (f a) u) /\ ((@homeomorphism N' N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) t u) (@pair ((cart R N') -> cart R N') ((cart R N') -> cart R N') f g)) /\ ((forall x : cart R N', (@IN (cart R N') x t) -> (@has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) p)) /\ (((@o (cart R N') (cart R N') (cart R N') (f' x) (g' (f x))) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') (g' (f x)) (f' x)) = (@I (cart R N'))))) /\ (forall y : cart R N', (@IN (cart R N') y u) -> (@has_derivative N' N' g (g' y) (@within (cart R N') (@_at N' y) p)) /\ (((@o (cart R N') (cart R N') (cart R N') (f' (g y)) (g' y)) = (@I (cart R N'))) /\ ((@o (cart R N') (cart R N') (cart R N') (g' y) (f' (g y))) = (@I (cart R N'))))))))))). +Axiom thm_has_vector_derivative : forall {_1272665 : Type'}, forall f : (cart R unit) -> cart R _1272665, forall f' : cart R _1272665, forall net' : net (cart R unit), (@has_vector_derivative _1272665 f f' net') = (@has_derivative _1272665 unit f (fun x : cart R unit => @percent _1272665 (drop x) f') net'). +Axiom thm_vector_derivative : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall net' : net (cart R unit), (@vector_derivative N' f net') = (@ε (cart R N') (fun f' : cart R N' => @has_vector_derivative N' f f' net')). +Axiom thm_VECTOR_DERIVATIVE_WORKS : forall {N' : Type'}, forall net' : net (cart R unit), forall f : (cart R unit) -> cart R N', (@differentiable N' unit f net') = (@has_vector_derivative N' f (@vector_derivative N' f net') net'). +Axiom thm_VECTOR_DIFFERENTIABLE : forall {_1272725 : Type'}, forall f : (cart R unit) -> cart R _1272725, forall net' : net (cart R unit), (@differentiable _1272725 unit f net') = (exists f' : cart R _1272725, @has_vector_derivative _1272725 f f' net'). +Axiom thm_HAS_VECTOR_DERIVATIVE_IMP_DIFFERENTIABLE : forall {_1272753 : Type'}, forall f : (cart R unit) -> cart R _1272753, forall f' : cart R _1272753, forall net' : net (cart R unit), (@has_vector_derivative _1272753 f f' net') -> @differentiable _1272753 unit f net'. +Axiom thm_VECTOR_DERIVATIVE_UNIQUE_AT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall x : cart R unit, forall f' : cart R N', forall f'' : cart R N', ((@has_vector_derivative N' f f' (@_at unit x)) /\ (@has_vector_derivative N' f f'' (@_at unit x))) -> f' = f''. +Axiom thm_VECTOR_DERIVATIVE_AT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : cart R N', forall x : cart R unit, (@has_vector_derivative N' f f' (@_at unit x)) -> (@vector_derivative N' f (@_at unit x)) = f'. +Axiom thm_HAS_VECTOR_DERIVATIVE_COMPONENTWISE_WITHIN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : cart R N', forall a : cart R unit, forall s : (cart R unit) -> Prop, (@has_vector_derivative N' f f' (@within (cart R unit) (@_at unit a) s)) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @has_vector_derivative unit (fun x : cart R unit => lift (@dollar R N' (f x) i)) (lift (@dollar R N' f' i)) (@within (cart R unit) (@_at unit a) s)). +Axiom thm_HAS_VECTOR_DERIVATIVE_COMPONENTWISE_AT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : cart R N', forall a : cart R unit, (@has_vector_derivative N' f f' (@_at unit a)) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @has_vector_derivative unit (fun x : cart R unit => lift (@dollar R N' (f x) i)) (lift (@dollar R N' f' i)) (@_at unit a)). +Axiom thm_HAS_VECTOR_DERIVATIVE_LIFT_COMPONENT_WITHIN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : cart R N', forall a : cart R unit, forall s : (cart R unit) -> Prop, forall i : N, ((@has_vector_derivative N' f f' (@within (cart R unit) (@_at unit a) s)) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> @has_vector_derivative unit (fun x : cart R unit => lift (@dollar R N' (f x) i)) (lift (@dollar R N' f' i)) (@within (cart R unit) (@_at unit a) s). +Axiom thm_HAS_VECTOR_DERIVATIVE_LIFT_COMPONENT_AT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : cart R N', forall a : cart R unit, forall i : N, ((@has_vector_derivative N' f f' (@_at unit a)) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> @has_vector_derivative unit (fun x : cart R unit => lift (@dollar R N' (f x) i)) (lift (@dollar R N' f' i)) (@_at unit a). +Axiom thm_HAS_VECTOR_DERIVATIVE_WITHIN_1D : forall {N' : Type'} (f' : cart R N'), forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall x : cart R unit, (@has_vector_derivative N' f f' (@within (cart R unit) (@_at unit x) s)) = (@FImp N' (cart R unit) (fun y : cart R unit => @percent N' (Rinv (drop (@vector_sub unit y x))) (@vector_sub N' (f y) (f x))) f' (@within (cart R unit) (@_at unit x) s)). +Axiom thm_HAS_VECTOR_DERIVATIVE_AT_1D : forall {N' : Type'} (f' : cart R N'), forall f : (cart R unit) -> cart R N', forall x : cart R unit, (@has_vector_derivative N' f f' (@_at unit x)) = (@FImp N' (cart R unit) (fun y : cart R unit => @percent N' (Rinv (drop (@vector_sub unit y x))) (@vector_sub N' (f y) (f x))) f' (@_at unit x)). +Axiom thm_VECTOR_DERIVATIVE_UNIQUE_WITHIN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall x : cart R unit, forall s : (cart R unit) -> Prop, forall f' : cart R N', forall f'' : cart R N', ((~ (@trivial_limit (cart R unit) (@within (cart R unit) (@_at unit x) s))) /\ ((@has_vector_derivative N' f f' (@within (cart R unit) (@_at unit x) s)) /\ (@has_vector_derivative N' f f'' (@within (cart R unit) (@_at unit x) s)))) -> f' = f''. +Axiom thm_VECTOR_DERIVATIVE_UNIQUE_WITHIN_CLOSED_INTERVAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall x : cart R unit, forall f' : cart R N', forall f'' : cart R N', ((Rlt (drop a) (drop b)) /\ ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@has_vector_derivative N' f f' (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) /\ (@has_vector_derivative N' f f'' (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))))) -> f' = f''. +Axiom thm_VECTOR_DERIVATIVE_WITHIN_CLOSED_INTERVAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : cart R N', forall x : cart R unit, forall a : cart R unit, forall b : cart R unit, ((Rlt (drop a) (drop b)) /\ ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_vector_derivative N' f f' (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))))) -> (@vector_derivative N' f (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) = f'. +Axiom thm_HAS_VECTOR_DERIVATIVE_WITHIN_SUBSET : forall {_1273491 : Type'} (f' : cart R _1273491), forall f : (cart R unit) -> cart R _1273491, forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, forall x : cart R unit, ((@has_vector_derivative _1273491 f f' (@within (cart R unit) (@_at unit x) s)) /\ (@SUBSET (cart R unit) t s)) -> @has_vector_derivative _1273491 f f' (@within (cart R unit) (@_at unit x) t). +Axiom thm_HAS_VECTOR_DERIVATIVE_CONST : forall {_1273525 : Type'}, forall c : cart R _1273525, forall net' : net (cart R unit), @has_vector_derivative _1273525 (fun x : cart R unit => c) (@vec _1273525 (NUMERAL 0%N)) net'. +Axiom thm_VECTOR_DERIVATIVE_CONST_AT : forall {N' : Type'}, forall c : cart R N', forall a : cart R unit, (@vector_derivative N' (fun x : cart R unit => c) (@_at unit a)) = (@vec N' (NUMERAL 0%N)). +Axiom thm_HAS_VECTOR_DERIVATIVE_ID : forall net' : net (cart R unit), @has_vector_derivative unit (fun x : cart R unit => x) (@vec unit (NUMERAL (BIT1 0%N))) net'. +Axiom thm_HAS_VECTOR_DERIVATIVE_CMUL : forall {_1273625 : Type'}, forall f : (cart R unit) -> cart R _1273625, forall f' : cart R _1273625, forall net' : net (cart R unit), forall c : R, (@has_vector_derivative _1273625 f f' net') -> @has_vector_derivative _1273625 (fun x : cart R unit => @percent _1273625 c (f x)) (@percent _1273625 c f') net'. +Axiom thm_HAS_VECTOR_DERIVATIVE_CMUL_EQ : forall {_1273672 : Type'}, forall f : (cart R unit) -> cart R _1273672, forall f' : cart R _1273672, forall net' : net (cart R unit), forall c : R, (~ (c = (R_of_N (NUMERAL 0%N)))) -> (@has_vector_derivative _1273672 (fun x : cart R unit => @percent _1273672 c (f x)) (@percent _1273672 c f') net') = (@has_vector_derivative _1273672 f f' net'). +Axiom thm_HAS_VECTOR_DERIVATIVE_NEG : forall {_1273708 : Type'}, forall f : (cart R unit) -> cart R _1273708, forall f' : cart R _1273708, forall net' : net (cart R unit), (@has_vector_derivative _1273708 f f' net') -> @has_vector_derivative _1273708 (fun x : cart R unit => @vector_neg _1273708 (f x)) (@vector_neg _1273708 f') net'. +Axiom thm_HAS_VECTOR_DERIVATIVE_NEG_EQ : forall {_1273750 : Type'}, forall f : (cart R unit) -> cart R _1273750, forall f' : cart R _1273750, forall net' : net (cart R unit), (@has_vector_derivative _1273750 (fun x : cart R unit => @vector_neg _1273750 (f x)) (@vector_neg _1273750 f') net') = (@has_vector_derivative _1273750 f f' net'). +Axiom thm_HAS_VECTOR_DERIVATIVE_ADD : forall {_1273809 : Type'}, forall f : (cart R unit) -> cart R _1273809, forall f' : cart R _1273809, forall g : (cart R unit) -> cart R _1273809, forall g' : cart R _1273809, forall net' : net (cart R unit), ((@has_vector_derivative _1273809 f f' net') /\ (@has_vector_derivative _1273809 g g' net')) -> @has_vector_derivative _1273809 (fun x : cart R unit => @vector_add _1273809 (f x) (g x)) (@vector_add _1273809 f' g') net'. +Axiom thm_HAS_VECTOR_DERIVATIVE_SUB : forall {_1273868 : Type'}, forall f : (cart R unit) -> cart R _1273868, forall f' : cart R _1273868, forall g : (cart R unit) -> cart R _1273868, forall g' : cart R _1273868, forall net' : net (cart R unit), ((@has_vector_derivative _1273868 f f' net') /\ (@has_vector_derivative _1273868 g g' net')) -> @has_vector_derivative _1273868 (fun x : cart R unit => @vector_sub _1273868 (f x) (g x)) (@vector_sub _1273868 f' g') net'. +Axiom thm_HAS_VECTOR_DERIVATIVE_BILINEAR_WITHIN : forall {M N' P : Type'}, forall h : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall f' : cart R M, forall g' : cart R N', forall x : cart R unit, forall s : (cart R unit) -> Prop, ((@has_vector_derivative M f f' (@within (cart R unit) (@_at unit x) s)) /\ ((@has_vector_derivative N' g g' (@within (cart R unit) (@_at unit x) s)) /\ (@bilinear N' P M h))) -> @has_vector_derivative P (fun x' : cart R unit => h (f x') (g x')) (@vector_add P (h (f x) g') (h f' (g x))) (@within (cart R unit) (@_at unit x) s). +Axiom thm_HAS_VECTOR_DERIVATIVE_BILINEAR_AT : forall {M N' P : Type'}, forall h : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall f' : cart R M, forall g' : cart R N', forall x : cart R unit, ((@has_vector_derivative M f f' (@_at unit x)) /\ ((@has_vector_derivative N' g g' (@_at unit x)) /\ (@bilinear N' P M h))) -> @has_vector_derivative P (fun x' : cart R unit => h (f x') (g x')) (@vector_add P (h (f x) g') (h f' (g x))) (@_at unit x). +Axiom thm_HAS_VECTOR_DERIVATIVE_AT_WITHIN : forall {_1274054 : Type'} (f' : cart R _1274054), forall f : (cart R unit) -> cart R _1274054, forall x : cart R unit, forall s : (cart R unit) -> Prop, (@has_vector_derivative _1274054 f f' (@_at unit x)) -> @has_vector_derivative _1274054 f f' (@within (cart R unit) (@_at unit x) s). +Axiom thm_HAS_VECTOR_DERIVATIVE_TRANSFORM_WITHIN : forall {_1274144 : Type'}, forall f : (cart R unit) -> cart R _1274144, forall f' : cart R _1274144, forall g : (cart R unit) -> cart R _1274144, forall x : cart R unit, forall s : (cart R unit) -> Prop, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN (cart R unit) x s) /\ ((forall x' : cart R unit, ((@IN (cart R unit) x' s) /\ (Rlt (@distance unit (@pair (cart R unit) (cart R unit) x' x)) d)) -> (f x') = (g x')) /\ (@has_vector_derivative _1274144 f f' (@within (cart R unit) (@_at unit x) s))))) -> @has_vector_derivative _1274144 g f' (@within (cart R unit) (@_at unit x) s). +Axiom thm_HAS_VECTOR_DERIVATIVE_TRANSFORM_AT : forall {_1274213 : Type'}, forall f : (cart R unit) -> cart R _1274213, forall f' : cart R _1274213, forall g : (cart R unit) -> cart R _1274213, forall x : cart R unit, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x' : cart R unit, (Rlt (@distance unit (@pair (cart R unit) (cart R unit) x' x)) d) -> (f x') = (g x')) /\ (@has_vector_derivative _1274213 f f' (@_at unit x)))) -> @has_vector_derivative _1274213 g f' (@_at unit x). +Axiom thm_HAS_VECTOR_DERIVATIVE_TRANSFORM_WITHIN_OPEN : forall {_1274271 : Type'} (f' : cart R _1274271), forall f : (cart R unit) -> cart R _1274271, forall g : (cart R unit) -> cart R _1274271, forall s : (cart R unit) -> Prop, forall x : cart R unit, ((@_open unit s) /\ ((@IN (cart R unit) x s) /\ ((forall y : cart R unit, (@IN (cart R unit) y s) -> (f y) = (g y)) /\ (@has_vector_derivative _1274271 f f' (@_at unit x))))) -> @has_vector_derivative _1274271 g f' (@_at unit x). +Axiom thm_VECTOR_DIFF_CHAIN_AT : forall {_1274323 : Type'}, forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R _1274323, forall f' : cart R unit, forall g' : cart R _1274323, forall x : cart R unit, ((@has_vector_derivative unit f f' (@_at unit x)) /\ (@has_vector_derivative _1274323 g g' (@_at unit (f x)))) -> @has_vector_derivative _1274323 (@o (cart R unit) (cart R unit) (cart R _1274323) g f) (@percent _1274323 (drop f') g') (@_at unit x). +Axiom thm_VECTOR_DIFF_CHAIN_WITHIN : forall {_1274390 : Type'}, forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R _1274390, forall f' : cart R unit, forall g' : cart R _1274390, forall s : (cart R unit) -> Prop, forall x : cart R unit, ((@has_vector_derivative unit f f' (@within (cart R unit) (@_at unit x) s)) /\ (@has_vector_derivative _1274390 g g' (@within (cart R unit) (@_at unit (f x)) (@IMAGE (cart R unit) (cart R unit) f s)))) -> @has_vector_derivative _1274390 (@o (cart R unit) (cart R unit) (cart R _1274390) g f) (@percent _1274390 (drop f') g') (@within (cart R unit) (@_at unit x) s). +Axiom thm_VECTOR_DIFFERENTIABLE_BOUND : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall B : R, ((@convex unit s) /\ ((forall x : cart R unit, (@IN (cart R unit) x s) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) s)) /\ (forall x : cart R unit, (@IN (cart R unit) x s) -> Rle (@vector_norm N' (f' x)) B))) -> forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ (@IN (cart R unit) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm unit (@vector_sub unit x y))). +Axiom thm_HAS_BOUNDED_VECTOR_DERIVATIVE_IMP_LIPSCHITZ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((forall x : cart R unit, (@IN (cart R unit) x s) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) s)) /\ ((@convex unit s) /\ (@bounded N' (@IMAGE (cart R unit) (cart R N') f' s)))) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ (@IN (cart R unit) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm unit (@vector_sub unit x y)))). +Axiom thm_RESTRICTION_HAS_DERIVATIVE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : cart R N', forall s : (cart R unit) -> Prop, forall x : cart R unit, (@IN (cart R unit) x s) -> (@has_vector_derivative N' (@RESTRICTION (cart R unit) (cart R N') s f) f' (@within (cart R unit) (@_at unit x) s)) = (@has_vector_derivative N' f f' (@within (cart R unit) (@_at unit x) s)). +Axiom thm_BAIRE1_VECTOR_DERIVATIVE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((forall x : cart R unit, (@IN (cart R unit) x s) -> @has_vector_derivative N' f (f' x) (@_at unit x)) /\ (@_open unit s)) -> @baire unit N' (NUMERAL (BIT1 0%N)) s f'. +Axiom thm_VECTOR_DERIVATIVE_INCREASING_WITHIN : forall f : (cart R unit) -> cart R unit, forall f' : cart R unit, forall s : (cart R unit) -> Prop, forall a : cart R unit, ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) /\ ((@IN (cart R unit) a s) /\ ((@limit_point_of unit a s) /\ (@has_vector_derivative unit f f' (@within (cart R unit) (@_at unit a) s))))) -> Rle (R_of_N (NUMERAL 0%N)) (drop f'). +Axiom thm_NORM_VECTOR_DERIVATIVES_LE_WITHIN : forall {M N' : Type'}, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall f' : cart R M, forall g' : cart R N', forall x : cart R unit, forall s : (cart R unit) -> Prop, ((@limit_point_of unit x s) /\ ((@has_vector_derivative M f f' (@within (cart R unit) (@_at unit x) s)) /\ ((@has_vector_derivative N' g g' (@within (cart R unit) (@_at unit x) s)) /\ (@eventually (cart R unit) (fun y : cart R unit => Rle (@vector_norm M (@vector_sub M (f y) (f x))) (@vector_norm N' (@vector_sub N' (g y) (g x)))) (@within (cart R unit) (@_at unit x) s))))) -> Rle (@vector_norm M f') (@vector_norm N' g'). +Axiom thm_NORM_VECTOR_DERIVATIVES_LE_AT : forall {M N' : Type'}, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall f' : cart R M, forall g' : cart R N', forall x : cart R unit, ((@has_vector_derivative M f f' (@_at unit x)) /\ ((@has_vector_derivative N' g g' (@_at unit x)) /\ (@eventually (cart R unit) (fun y : cart R unit => Rle (@vector_norm M (@vector_sub M (f y) (f x))) (@vector_norm N' (@vector_sub N' (g y) (g x)))) (@_at unit x)))) -> Rle (@vector_norm M f') (@vector_norm N' g'). +Axiom thm_CONVEX_ON_DERIVATIVE_SECANT_IMP : forall {N' : Type'}, forall f : (cart R N') -> R, forall f' : (cart R N') -> R, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@convex_on N' f s) /\ ((@SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') x y) (@nil (prod (cart R N') (cart R N'))))) s) /\ (@has_derivative unit N' (@o (cart R N') R (cart R unit) lift f) (@o (cart R N') R (cart R unit) lift f') (@within (cart R N') (@_at N' x) s)))) -> Rle (f' (@vector_sub N' y x)) (Rminus (f y) (f x)). +Axiom thm_CONVEX_ON_SECANT_DERIVATIVE_IMP : forall {N' : Type'}, forall f : (cart R N') -> R, forall f' : (cart R N') -> R, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@convex_on N' f s) /\ ((@SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') x y) (@nil (prod (cart R N') (cart R N'))))) s) /\ (@has_derivative unit N' (@o (cart R N') R (cart R unit) lift f) (@o (cart R N') R (cart R unit) lift f') (@within (cart R N') (@_at N' y) s)))) -> Rle (Rminus (f y) (f x)) (f' (@vector_sub N' y x)). +Axiom thm_CONVEX_ON_DERIVATIVES_IMP : forall {N' : Type'}, forall f : (cart R N') -> R, forall f'x : (cart R N') -> R, forall f'y : (cart R N') -> R, forall s : (cart R N') -> Prop, forall x : cart R N', forall y : cart R N', ((@convex_on N' f s) /\ ((@SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') x y) (@nil (prod (cart R N') (cart R N'))))) s) /\ ((@has_derivative unit N' (@o (cart R N') R (cart R unit) lift f) (@o (cart R N') R (cart R unit) lift f'x) (@within (cart R N') (@_at N' x) s)) /\ (@has_derivative unit N' (@o (cart R N') R (cart R unit) lift f) (@o (cart R N') R (cart R unit) lift f'y) (@within (cart R N') (@_at N' y) s))))) -> Rle (f'x (@vector_sub N' y x)) (f'y (@vector_sub N' y x)). +Axiom thm_CONVEX_ON_DERIVATIVES : forall {N' : Type'}, forall f : (cart R N') -> R, forall f' : (cart R N') -> (cart R N') -> R, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative unit N' (@o (cart R N') R (cart R unit) lift f) (@o (cart R N') R (cart R unit) lift (f' x)) (@within (cart R N') (@_at N' x) s))) -> (@convex_on N' f s) = (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (f' x (@vector_sub N' y x)) (f' y (@vector_sub N' y x))). +Axiom thm_CONVEX_ON_DERIVATIVE_SECANT : forall {N' : Type'}, forall f : (cart R N') -> R, forall f' : (cart R N') -> (cart R N') -> R, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative unit N' (@o (cart R N') R (cart R unit) lift f) (@o (cart R N') R (cart R unit) lift (f' x)) (@within (cart R N') (@_at N' x) s))) -> (@convex_on N' f s) = (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (f' x (@vector_sub N' y x)) (Rminus (f y) (f x))). +Axiom thm_CONVEX_ON_SECANT_DERIVATIVE : forall {N' : Type'}, forall f : (cart R N') -> R, forall f' : (cart R N') -> (cart R N') -> R, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative unit N' (@o (cart R N') R (cart R unit) lift f) (@o (cart R N') R (cart R unit) lift (f' x)) (@within (cart R N') (@_at N' x) s))) -> (@convex_on N' f s) = (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (Rminus (f y) (f x)) (f' y (@vector_sub N' y x))). +Axiom thm_BOUNDED_FINITE : forall (n : N), forall s : N -> Prop, (forall x : N, (@IN N x s) -> N.le x n) -> @FINITE N s. +Axiom thm_EVEN_NSUM : forall {_1276844 : Type'} (f : _1276844 -> N), forall s : _1276844 -> Prop, ((@FINITE _1276844 s) /\ (forall i : _1276844, (@IN _1276844 i s) -> EVEN (f i))) -> EVEN (@nsum _1276844 s f). +Axiom thm_bitset : forall n : N, (bitset n) = (@GSPEC N (fun GEN_PVAR_5739 : N => exists i : N, @SETSPEC N GEN_PVAR_5739 (ODD (N.div n (N.pow (NUMERAL (BIT0 (BIT1 0%N))) i))) i)). +Axiom thm_binarysum : forall s : N -> Prop, (binarysum s) = (@nsum N s (fun i : N => N.pow (NUMERAL (BIT0 (BIT1 0%N))) i)). +Axiom thm_BITSET_BOUND_LEMMA : forall n : N, forall i : N, (@IN N i (bitset n)) -> N.le (N.pow (NUMERAL (BIT0 (BIT1 0%N))) i) n. +Axiom thm_BITSET_BOUND_WEAK : forall n : N, forall i : N, (@IN N i (bitset n)) -> N.lt i n. +Axiom thm_FINITE_BITSET : forall n : N, @FINITE N (bitset n). +Axiom thm_BITSET_0 : (bitset (NUMERAL 0%N)) = (@EMPTY N). +Axiom thm_BITSET_STEP : (forall n : N, (bitset (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n)) = (@IMAGE N N N.succ (bitset n))) /\ (forall n : N, (bitset (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) = (@INSERT N (NUMERAL 0%N) (@IMAGE N N N.succ (bitset n)))). +Axiom thm_BINARYSUM_BITSET : forall n : N, (binarysum (bitset n)) = n. +Axiom thm_BITSET_EQ : forall m : N, forall n : N, ((bitset m) = (bitset n)) = (m = n). +Axiom thm_BITSET_EQ_EMPTY : forall n : N, ((bitset n) = (@EMPTY N)) = (n = (NUMERAL 0%N)). +Axiom thm_BINARYSUM_BOUND_LEMMA : forall k : N, forall s : N -> Prop, (forall i : N, (@IN N i s) -> N.lt i k) -> N.lt (@nsum N s (fun i : N => N.pow (NUMERAL (BIT0 (BIT1 0%N))) i)) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) k). +Axiom thm_BINARYSUM_DIV_DIVISIBLE : forall s : N -> Prop, forall k : N, ((@FINITE N s) /\ (forall i : N, (@IN N i s) -> N.le k i)) -> (@nsum N s (fun i : N => N.pow (NUMERAL (BIT0 (BIT1 0%N))) i)) = (N.mul (N.pow (NUMERAL (BIT0 (BIT1 0%N))) k) (@nsum N s (fun i : N => N.pow (NUMERAL (BIT0 (BIT1 0%N))) (N.sub i k)))). +Axiom thm_BINARYSUM_DIV : forall k : N, forall s : N -> Prop, (@FINITE N s) -> (N.div (@nsum N s (fun j : N => N.pow (NUMERAL (BIT0 (BIT1 0%N))) j)) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) k)) = (@nsum N s (fun j : N => @COND N (N.lt j k) (NUMERAL 0%N) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) (N.sub j k)))). +Axiom thm_BITSET_BINARYSUM : forall s : N -> Prop, (@FINITE N s) -> (bitset (binarysum s)) = s. +Axiom thm_BINARYSUM_BOUND : forall k : N, forall s : N -> Prop, (forall i : N, (@IN N i s) -> N.lt i k) -> N.lt (binarysum s) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) k). +Axiom thm_BITSET_BOUND : forall n : N, forall i : N, forall k : N, ((N.lt n (N.pow (NUMERAL (BIT0 (BIT1 0%N))) k)) /\ (@IN N i (bitset n))) -> N.lt i k. +Axiom thm_BITSET_BOUND_EQ : forall n : N, forall k : N, (N.lt n (N.pow (NUMERAL (BIT0 (BIT1 0%N))) k)) = (forall i : N, (@IN N i (bitset n)) -> N.lt i k). +Axiom thm_BINARYSUM_BOUND_EQ : forall s : N -> Prop, forall k : N, (@FINITE N s) -> (N.lt (binarysum s) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) k)) = (forall i : N, (@IN N i s) -> N.lt i k). +Axiom thm_CARD_UNION_LEMMA : forall {_1277707 : Type'} (s : _1277707 -> Prop) (t : _1277707 -> Prop) (u : _1277707 -> Prop) (v : _1277707 -> Prop), ((@FINITE _1277707 s) /\ ((@FINITE _1277707 t) /\ ((@FINITE _1277707 u) /\ ((@FINITE _1277707 v) /\ (((@INTER _1277707 s t) = (@EMPTY _1277707)) /\ (((@INTER _1277707 u v) = (@EMPTY _1277707)) /\ ((@UNION _1277707 s t) = (@UNION _1277707 u v)))))))) -> (N.add (@CARD _1277707 s) (@CARD _1277707 t)) = (N.add (@CARD _1277707 u) (@CARD _1277707 v)). +Axiom thm_CARD_DIFF_INTER : forall {_1277758 : Type'}, forall s : _1277758 -> Prop, forall t : _1277758 -> Prop, (@FINITE _1277758 s) -> (@CARD _1277758 s) = (N.add (@CARD _1277758 (@DIFF _1277758 s t)) (@CARD _1277758 (@INTER _1277758 s t))). +Axiom thm_CARD_ADD_SYMDIFF_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@FINITE A t)) -> (N.add (@CARD A s) (@CARD A t)) = (N.add (@CARD A (@UNION A (@DIFF A s t) (@DIFF A t s))) (N.mul (NUMERAL (BIT0 (BIT1 0%N))) (@CARD A (@INTER A s t)))). +Axiom thm_SYMDIFF_PARITY_LEMMA : forall {_1277943 : Type'}, forall s : _1277943 -> Prop, forall t : _1277943 -> Prop, forall u : _1277943 -> Prop, ((@FINITE _1277943 s) /\ ((@FINITE _1277943 t) /\ ((@UNION _1277943 (@DIFF _1277943 s t) (@DIFF _1277943 t s)) = u))) -> (EVEN (@CARD _1277943 u)) = ((EVEN (@CARD _1277943 s)) = (EVEN (@CARD _1277943 t))). +Axiom thm_FINITE_CART_SUBSET_LEMMA : forall P : N -> N -> Prop, forall m : N, forall n : N, @FINITE (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5745 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5745 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) m)) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) n)) /\ (P i j))) (@pair N N i j))). +Axiom thm_multivector_tybij_th : forall {N' : Type'}, exists s : N -> Prop, @SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))). +Axiom thm_MULTIVECTOR_IMAGE : forall {N' : Type'}, (@UNIV (Multivector N')) = (@IMAGE (N -> Prop) (Multivector N') (@mk_multivector N') (@GSPEC (N -> Prop) (fun GEN_PVAR_5746 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5746 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) s))). +Axiom thm_HAS_SIZE_MULTIVECTOR : forall {N' : Type'}, @HAS_SIZE (Multivector N') (@UNIV (Multivector N')) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))). +Axiom thm_FINITE_MULTIVECTOR : forall {N' : Type'}, @FINITE (Multivector N') (@UNIV (Multivector N')). +Axiom thm_DIMINDEX_MULTIVECTOR : forall {N' : Type'}, (@dimindex (Multivector N') (@UNIV (Multivector N'))) = (N.pow (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))). +Axiom thm_DEST_MK_MULTIVECTOR : forall {N' : Type'}, forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> (@dest_multivector N' (@mk_multivector N' s)) = s. +Axiom thm_FORALL_MULTIVECTOR : forall {N' : Type'} (P : (Multivector N') -> Prop), (forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> P (@mk_multivector N' s)) = (forall m : Multivector N', P m). +Axiom thm_setcode : forall s : N -> Prop, (setcode s) = (N.add (NUMERAL (BIT1 0%N)) (binarysum (@IMAGE N N N.pred s))). +Axiom thm_codeset : forall n : N, (codeset n) = (@IMAGE N N N.succ (bitset (N.sub n (NUMERAL (BIT1 0%N))))). +Axiom thm_CODESET_SETCODE_BIJECTIONS : forall (n : N), (forall i : N, (@IN N i (dotdot (NUMERAL (BIT1 0%N)) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) n))) -> (@SUBSET N (codeset i) (dotdot (NUMERAL (BIT1 0%N)) n)) /\ ((setcode (codeset i)) = i)) /\ (forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) n)) -> (@IN N (setcode s) (dotdot (NUMERAL (BIT1 0%N)) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) n))) /\ ((codeset (setcode s)) = s)). +Axiom thm_FORALL_SETCODE : forall (n : N) (P : N -> Prop), (forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) n)) -> P (setcode s)) = (forall i : N, (@IN N i (dotdot (NUMERAL (BIT1 0%N)) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) n))) -> P i). +Axiom thm_SETCODE_BOUNDS : forall s : N -> Prop, forall n : N, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) n)) -> @IN N (setcode s) (dotdot (NUMERAL (BIT1 0%N)) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) n)). +Axiom thm_sindex : forall {N' : Type'}, forall x : cart R (Multivector N'), forall s : N -> Prop, (@dollardollar N' x s) = (@dollar R (Multivector N') x (setcode s)). +Axiom thm_lambdas : forall {N' : Type'}, forall g : (N -> Prop) -> R, (@lambdas N' g) = (@lambda R (Multivector N') (fun i : N => g (codeset i))). +Axiom thm_MULTIVECTOR_EQ : forall {N' : Type'}, forall x : cart R (Multivector N'), forall y : cart R (Multivector N'), (x = y) = (forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> (@dollardollar N' x s) = (@dollardollar N' y s)). +Axiom thm_MULTIVECTOR_BETA : forall {N' : Type'} (g : (N -> Prop) -> R), forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> (@dollardollar N' (@lambdas N' g) s) = (g s). +Axiom thm_MULTIVECTOR_UNIQUE : forall {N' : Type'}, forall m : cart R (Multivector N'), forall g : (N -> Prop) -> R, (forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> (@dollardollar N' m s) = (g s)) -> (@lambdas N' g) = m. +Axiom thm_MULTIVECTOR_ETA : forall {_1278579 : Type'} (m : cart R (Multivector _1278579)), (@lambdas _1278579 (fun s : N -> Prop => @dollardollar _1278579 m s)) = m. +Axiom thm_MULTIVECTOR_ADD_COMPONENT : forall {N' : Type'}, forall x : cart R (Multivector N'), forall y : cart R (Multivector N'), forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> (@dollardollar N' (@vector_add (Multivector N') x y) s) = (Rplus (@dollardollar N' x s) (@dollardollar N' y s)). +Axiom thm_MULTIVECTOR_MUL_COMPONENT : forall {N' : Type'}, forall c : R, forall x : cart R (Multivector N'), forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> (@dollardollar N' (@percent (Multivector N') c x) s) = (Rmult c (@dollardollar N' x s)). +Axiom thm_MULTIVECTOR_VEC_COMPONENT : forall {N' : Type'}, forall k : N, forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> (@dollardollar N' (@vec (Multivector N') k) s) = (R_of_N k). +Axiom thm_MULTIVECTOR_VSUM_COMPONENT : forall {A N' : Type'}, forall f : A -> cart R (Multivector N'), forall t : A -> Prop, forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> (@dollardollar N' (@vsum A (Multivector N') t f) s) = (@sum A t (fun x : A => @dollardollar N' (f x) s)). +Axiom thm_MULTIVECTOR_VSUM : forall {_1278763 _1278764 : Type'}, forall t : _1278764 -> Prop, forall f : _1278764 -> cart R (Multivector _1278763), (@vsum _1278764 (Multivector _1278763) t f) = (@lambdas _1278763 (fun s : N -> Prop => @sum _1278764 t (fun x : _1278764 => @dollardollar _1278763 (f x) s))). +Axiom thm_mbasis : forall {_1278771 : Type'}, forall i : N -> Prop, (@mbasis _1278771 i) = (@lambdas _1278771 (fun s : N -> Prop => @COND R (i = s) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_MBASIS_COMPONENT : forall {N' : Type'}, forall s : N -> Prop, forall t : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> (@dollardollar N' (@mbasis N' t) s) = (@COND R (s = t) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Axiom thm_MBASIS_EQ_0 : forall {N' : Type'}, forall s : N -> Prop, ((@mbasis N' s) = (@vec (Multivector N') (NUMERAL 0%N))) = (~ (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))). +Axiom thm_MBASIS_NONZERO : forall {N' : Type'}, forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> ~ ((@mbasis N' s) = (@vec (Multivector N') (NUMERAL 0%N))). +Axiom thm_MBASIS_EXPANSION : forall {N' : Type'}, forall x : cart R (Multivector N'), (@vsum (N -> Prop) (Multivector N') (@GSPEC (N -> Prop) (fun GEN_PVAR_5747 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5747 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) s)) (fun s : N -> Prop => @percent (Multivector N') (@dollardollar N' x s) (@mbasis N' s))) = x. +Axiom thm_SPAN_MBASIS : forall {N' : Type'}, (@span (Multivector N') (@GSPEC (cart R (Multivector N')) (fun GEN_PVAR_5748 : cart R (Multivector N') => exists s : N -> Prop, @SETSPEC (cart R (Multivector N')) GEN_PVAR_5748 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) (@mbasis N' s)))) = (@UNIV (cart R (Multivector N'))). +Axiom thm_LINEAR_EQ_MBASIS : forall {_1279022 M N' : Type'}, forall f : (cart R (Multivector M)) -> cart R N', forall g : (cart R (Multivector M)) -> cart R N', forall s : _1279022, ((@linear (Multivector M) N' f) /\ ((@linear (Multivector M) N' g) /\ (forall s' : N -> Prop, (@SUBSET N s' (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M)))) -> (f (@mbasis M s')) = (g (@mbasis M s'))))) -> f = g. +Axiom thm_BILINEAR_EQ_MBASIS : forall {_1279147 M N' P : Type'}, forall f : (cart R (Multivector M)) -> (cart R (Multivector N')) -> cart R P, forall g : (cart R (Multivector M)) -> (cart R (Multivector N')) -> cart R P, forall s : _1279147, ((@bilinear (Multivector N') P (Multivector M) f) /\ ((@bilinear (Multivector N') P (Multivector M) g) /\ (forall s' : N -> Prop, forall t : N -> Prop, ((@SUBSET N s' (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M)))) /\ (@SUBSET N t (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))) -> (f (@mbasis M s') (@mbasis N' t)) = (g (@mbasis M s') (@mbasis N' t))))) -> f = g. +Axiom thm_LINEAR_PROPERTY : forall {_1279262 _1279270 : Type'}, forall P : (cart R _1279270) -> Prop, ((P (@vec _1279270 (NUMERAL 0%N))) /\ (forall x : cart R _1279270, forall y : cart R _1279270, ((P x) /\ (P y)) -> P (@vector_add _1279270 x y))) -> forall f : _1279262 -> cart R _1279270, forall s : _1279262 -> Prop, ((@FINITE _1279262 s) /\ (forall i : _1279262, (@IN _1279262 i s) -> P (f i))) -> P (@vsum _1279262 _1279270 s f). +Axiom thm_MBASIS_EXTENSION : forall {N' : Type'}, forall P : (cart R (Multivector N')) -> Prop, ((forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> P (@mbasis N' s)) /\ ((forall c : R, forall x : cart R (Multivector N'), (P x) -> P (@percent (Multivector N') c x)) /\ (forall x : cart R (Multivector N'), forall y : cart R (Multivector N'), ((P x) /\ (P y)) -> P (@vector_add (Multivector N') x y)))) -> forall x : cart R (Multivector N'), P x. +Axiom thm_multivec : forall {N' : Type'}, forall x : cart R N', (@multivec N' x) = (@vsum N (Multivector N') (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @percent (Multivector N') (@dollar R N' x i) (@mbasis N' (@INSERT N i (@EMPTY N))))). +Axiom thm_multivector : forall {N' : Type'}, forall p : cart R (Multivector N'), forall k : N, (@multivector N' k p) = (forall s : N -> Prop, ((@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (~ ((@dollardollar N' p s) = (R_of_N (NUMERAL 0%N))))) -> @HAS_SIZE N s k). +Axiom thm_grade : forall {N' : Type'}, forall k : N, forall p : cart R (Multivector N'), (@grade N' k p) = (@lambdas N' (fun s : N -> Prop => @COND R (@HAS_SIZE N s k) (@dollardollar N' p s) (R_of_N (NUMERAL 0%N)))). +Axiom thm_MULTIVECTOR_GRADE : forall {_1279444 : Type'}, forall k : N, forall x : cart R (Multivector _1279444), @multivector _1279444 k (@grade _1279444 k x). +Axiom thm_GRADE_ADD : forall {_1279475 : Type'}, forall x : cart R (Multivector _1279475), forall y : cart R (Multivector _1279475), forall k : N, (@grade _1279475 k (@vector_add (Multivector _1279475) x y)) = (@vector_add (Multivector _1279475) (@grade _1279475 k x) (@grade _1279475 k y)). +Axiom thm_GRADE_CMUL : forall {_1279515 : Type'}, forall c : R, forall x : cart R (Multivector _1279515), forall k : N, (@grade _1279515 k (@percent (Multivector _1279515) c x)) = (@percent (Multivector _1279515) c (@grade _1279515 k x)). +Axiom thm_Product_DEF : forall {N' : Type'}, forall x : cart R (Multivector N'), forall y : cart R (Multivector N'), forall mult : (N -> Prop) -> (N -> Prop) -> R, forall op : (N -> Prop) -> (N -> Prop) -> N -> Prop, (@Product N' mult op x y) = (@vsum (N -> Prop) (Multivector N') (@GSPEC (N -> Prop) (fun GEN_PVAR_5752 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5752 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) s)) (fun s : N -> Prop => @vsum (N -> Prop) (Multivector N') (@GSPEC (N -> Prop) (fun GEN_PVAR_5753 : N -> Prop => exists s' : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5753 (@SUBSET N s' (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) s')) (fun t : N -> Prop => @percent (Multivector N') (Rmult (@dollardollar N' x s) (Rmult (@dollardollar N' y t) (mult s t))) (@mbasis N' (op s t))))). +Axiom thm_BILINEAR_PRODUCT : forall {_1279612 : Type'}, forall mult : (N -> Prop) -> (N -> Prop) -> R, forall op : (N -> Prop) -> (N -> Prop) -> N -> Prop, @bilinear (Multivector _1279612) (Multivector _1279612) (Multivector _1279612) (@Product _1279612 mult op). +Axiom thm_PRODUCT_ASSOCIATIVE : forall {N' : Type'}, forall op : (N -> Prop) -> (N -> Prop) -> N -> Prop, forall mult : (N -> Prop) -> (N -> Prop) -> R, ((forall s : N -> Prop, forall t : N -> Prop, ((@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (@SUBSET N t (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))) -> @SUBSET N (op s t) (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((forall s : N -> Prop, forall t : N -> Prop, forall u : N -> Prop, (op s (op t u)) = (op (op s t) u)) /\ (forall s : N -> Prop, forall t : N -> Prop, forall u : N -> Prop, (Rmult (mult t u) (mult s (op t u))) = (Rmult (mult s t) (mult (op s t) u))))) -> forall x : cart R (Multivector N'), forall y : cart R (Multivector N'), forall z : cart R (Multivector N'), (@Product N' mult op x (@Product N' mult op y z)) = (@Product N' mult op (@Product N' mult op x y) z). +Axiom thm_geom_mul : forall {N' : Type'}, forall x : cart R (Multivector N'), forall y : cart R (Multivector N'), (@geom_mul N' x y) = (@Product N' (fun s : N -> Prop => fun t : N -> Prop => real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5755 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5755 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N i s) /\ ((@IN N j t) /\ (N.gt i j))))) (@pair N N i j))))) (fun s : N -> Prop => fun t : N -> Prop => @UNION N (@DIFF N s t) (@DIFF N t s)) x y). +Axiom thm_BILINEAR_GEOM : forall {_1279926 : Type'}, @bilinear (Multivector _1279926) (Multivector _1279926) (Multivector _1279926) (@geom_mul _1279926). +Axiom thm_GEOM_ASSOC : forall {N' : Type'}, forall x : cart R (Multivector N'), forall y : cart R (Multivector N'), forall z : cart R (Multivector N'), (@geom_mul N' x (@geom_mul N' y z)) = (@geom_mul N' (@geom_mul N' x y) z). +Axiom thm_outer : forall {N' : Type'}, forall x : cart R (Multivector N'), forall y : cart R (Multivector N'), (@outer N' x y) = (@Product N' (fun s : N -> Prop => fun t : N -> Prop => @COND R (~ ((@INTER N s t) = (@EMPTY N))) (R_of_N (NUMERAL 0%N)) (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5756 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5756 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N i s) /\ ((@IN N j t) /\ (N.gt i j))))) (@pair N N i j)))))) (fun s : N -> Prop => fun t : N -> Prop => @UNION N (@DIFF N s t) (@DIFF N t s)) x y). +Axiom thm_OUTER : forall {N' : Type'}, forall x : cart R (Multivector N'), forall y : cart R (Multivector N'), (@outer N' x y) = (@Product N' (fun s : N -> Prop => fun t : N -> Prop => @COND R (~ ((@INTER N s t) = (@EMPTY N))) (R_of_N (NUMERAL 0%N)) (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5757 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5757 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N i s) /\ ((@IN N j t) /\ (N.gt i j))))) (@pair N N i j)))))) (@UNION N) x y). +Axiom thm_BILINEAR_OUTER : forall {_1280233 : Type'}, @bilinear (Multivector _1280233) (Multivector _1280233) (Multivector _1280233) (@outer _1280233). +Axiom thm_OUTER_ASSOC : forall {N' : Type'}, forall x : cart R (Multivector N'), forall y : cart R (Multivector N'), forall z : cart R (Multivector N'), (@outer N' x (@outer N' y z)) = (@outer N' (@outer N' x y) z). +Axiom thm_inner : forall {N' : Type'}, forall x : cart R (Multivector N'), forall y : cart R (Multivector N'), (@inner N' x y) = (@Product N' (fun s : N -> Prop => fun t : N -> Prop => @COND R ((s = (@EMPTY N)) \/ ((t = (@EMPTY N)) \/ (~ (((@DIFF N s t) = (@EMPTY N)) /\ (~ ((@DIFF N t s) = (@EMPTY N))))))) (R_of_N (NUMERAL 0%N)) (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5758 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5758 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N i s) /\ ((@IN N j t) /\ (N.gt i j))))) (@pair N N i j)))))) (fun s : N -> Prop => fun t : N -> Prop => @UNION N (@DIFF N s t) (@DIFF N t s)) x y). +Axiom thm_BILINEAR_INNER : forall {_1280463 : Type'}, @bilinear (Multivector _1280463) (Multivector _1280463) (Multivector _1280463) (@inner _1280463). +Axiom thm_PRODUCT_MBASIS : forall {N' : Type'} (mult : (N -> Prop) -> (N -> Prop) -> R) (op : (N -> Prop) -> (N -> Prop) -> N -> Prop), forall s : N -> Prop, forall t : N -> Prop, (@Product N' mult op (@mbasis N' s) (@mbasis N' t)) = (@COND (cart R (Multivector N')) ((@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (@SUBSET N t (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))) (@percent (Multivector N') (mult s t) (@mbasis N' (op s t))) (@vec (Multivector N') (NUMERAL 0%N))). +Axiom thm_PRODUCT_MBASIS_SING : forall {N' : Type'} (mult : (N -> Prop) -> (N -> Prop) -> R) (op : (N -> Prop) -> (N -> Prop) -> N -> Prop), forall i : N, forall j : N, (@Product N' mult op (@mbasis N' (@INSERT N i (@EMPTY N))) (@mbasis N' (@INSERT N j (@EMPTY N)))) = (@COND (cart R (Multivector N')) ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))) (@percent (Multivector N') (mult (@INSERT N i (@EMPTY N)) (@INSERT N j (@EMPTY N))) (@mbasis N' (op (@INSERT N i (@EMPTY N)) (@INSERT N j (@EMPTY N))))) (@vec (Multivector N') (NUMERAL 0%N))). +Axiom thm_GEOM_MBASIS : forall {N' : Type'}, forall s : N -> Prop, forall t : N -> Prop, (@geom_mul N' (@mbasis N' s) (@mbasis N' t)) = (@COND (cart R (Multivector N')) ((@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (@SUBSET N t (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))) (@percent (Multivector N') (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5759 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5759 ((@IN N i s) /\ ((@IN N j t) /\ (N.gt i j))) (@pair N N i j))))) (@mbasis N' (@UNION N (@DIFF N s t) (@DIFF N t s)))) (@vec (Multivector N') (NUMERAL 0%N))). +Axiom thm_GEOM_MBASIS_SING : forall {N' : Type'}, forall i : N, forall j : N, (@geom_mul N' (@mbasis N' (@INSERT N i (@EMPTY N))) (@mbasis N' (@INSERT N j (@EMPTY N)))) = (@COND (cart R (Multivector N')) ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))) (@COND (cart R (Multivector N')) (i = j) (@mbasis N' (@EMPTY N)) (@COND (cart R (Multivector N')) (N.lt i j) (@mbasis N' (@INSERT N i (@INSERT N j (@EMPTY N)))) (@vector_neg (Multivector N') (@mbasis N' (@INSERT N i (@INSERT N j (@EMPTY N))))))) (@vec (Multivector N') (NUMERAL 0%N))). +Axiom thm_OUTER_MBASIS : forall {N' : Type'}, forall s : N -> Prop, forall t : N -> Prop, (@outer N' (@mbasis N' s) (@mbasis N' t)) = (@COND (cart R (Multivector N')) ((@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@SUBSET N t (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@INTER N s t) = (@EMPTY N)))) (@percent (Multivector N') (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD (prod N N) (@GSPEC (prod N N) (fun GEN_PVAR_5761 : prod N N => exists i : N, exists j : N, @SETSPEC (prod N N) GEN_PVAR_5761 ((@IN N i s) /\ ((@IN N j t) /\ (N.gt i j))) (@pair N N i j))))) (@mbasis N' (@UNION N s t))) (@vec (Multivector N') (NUMERAL 0%N))). +Axiom thm_OUTER_MBASIS_SING : forall {N' : Type'}, forall i : N, forall j : N, (@outer N' (@mbasis N' (@INSERT N i (@EMPTY N))) (@mbasis N' (@INSERT N j (@EMPTY N)))) = (@COND (cart R (Multivector N')) ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (~ (i = j)))) (@COND (cart R (Multivector N')) (N.lt i j) (@mbasis N' (@INSERT N i (@INSERT N j (@EMPTY N)))) (@vector_neg (Multivector N') (@mbasis N' (@INSERT N i (@INSERT N j (@EMPTY N)))))) (@vec (Multivector N') (NUMERAL 0%N))). +Axiom thm_OUTER_MBASIS_SKEWSYM : forall {_1281407 : Type'}, forall i : N, forall j : N, (@outer _1281407 (@mbasis _1281407 (@INSERT N i (@EMPTY N))) (@mbasis _1281407 (@INSERT N j (@EMPTY N)))) = (@vector_neg (Multivector _1281407) (@outer _1281407 (@mbasis _1281407 (@INSERT N j (@EMPTY N))) (@mbasis _1281407 (@INSERT N i (@EMPTY N))))). +Axiom thm_OUTER_MBASIS_REFL : forall {_1281459 : Type'}, forall i : N, (@outer _1281459 (@mbasis _1281459 (@INSERT N i (@EMPTY N))) (@mbasis _1281459 (@INSERT N i (@EMPTY N)))) = (@vec (Multivector _1281459) (NUMERAL 0%N)). +Axiom thm_OUTER_MBASIS_LSCALAR : forall {_1281517 : Type'}, forall x : cart R (Multivector _1281517), (@outer _1281517 (@mbasis _1281517 (@EMPTY N)) x) = x. +Axiom thm_OUTER_MBASIS_RSCALAR : forall {_1281570 : Type'}, forall x : cart R (Multivector _1281570), (@outer _1281570 x (@mbasis _1281570 (@EMPTY N))) = x. +Axiom thm_MBASIS_SPLIT : forall {_1281712 : Type'}, forall a : N, forall s : N -> Prop, (forall x : N, (@IN N x s) -> N.lt a x) -> (@mbasis _1281712 (@INSERT N a s)) = (@outer _1281712 (@mbasis _1281712 (@INSERT N a (@EMPTY N))) (@mbasis _1281712 s)). +Axiom thm_OUTER_ACI : forall {_1281824 _1281875 _1281940 _1281964 _1281997 _1282017 _1282030 : Type'}, (forall x : cart R (Multivector _1281824), forall y : cart R (Multivector _1281824), forall z : cart R (Multivector _1281824), (@outer _1281824 (@outer _1281824 x y) z) = (@outer _1281824 x (@outer _1281824 y z))) /\ ((forall i : N, forall j : N, (N.gt i j) -> (@outer _1281875 (@mbasis _1281875 (@INSERT N i (@EMPTY N))) (@mbasis _1281875 (@INSERT N j (@EMPTY N)))) = (@percent (Multivector _1281875) (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@outer _1281875 (@mbasis _1281875 (@INSERT N j (@EMPTY N))) (@mbasis _1281875 (@INSERT N i (@EMPTY N)))))) /\ ((forall i : N, forall j : N, forall x : cart R (Multivector _1281940), (N.gt i j) -> (@outer _1281940 (@mbasis _1281940 (@INSERT N i (@EMPTY N))) (@outer _1281940 (@mbasis _1281940 (@INSERT N j (@EMPTY N))) x)) = (@percent (Multivector _1281940) (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@outer _1281940 (@mbasis _1281940 (@INSERT N j (@EMPTY N))) (@outer _1281940 (@mbasis _1281940 (@INSERT N i (@EMPTY N))) x)))) /\ ((forall i : N, (@outer _1281964 (@mbasis _1281964 (@INSERT N i (@EMPTY N))) (@mbasis _1281964 (@INSERT N i (@EMPTY N)))) = (@vec (Multivector _1281964) (NUMERAL 0%N))) /\ ((forall i : N, forall x : cart R (Multivector _1281997), (@outer _1281997 (@mbasis _1281997 (@INSERT N i (@EMPTY N))) (@outer _1281997 (@mbasis _1281997 (@INSERT N i (@EMPTY N))) x)) = (@vec (Multivector _1281997) (NUMERAL 0%N))) /\ ((forall x : cart R (Multivector _1282017), (@outer _1282017 (@mbasis _1282017 (@EMPTY N)) x) = x) /\ (forall x : cart R (Multivector _1282030), (@outer _1282030 x (@mbasis _1282030 (@EMPTY N))) = x)))))). +Axiom thm_seqiterate_EXISTS : forall {_1282116 : Type'}, forall op : _1282116 -> _1282116 -> _1282116, forall f : N -> _1282116, exists h : (N -> Prop) -> _1282116, forall s : N -> Prop, (h s) = (@COND _1282116 ((@INFINITE N s) \/ (s = (@EMPTY N))) (@neutral _1282116 op) (@LET N _1282116 (fun i : N => @LET_END _1282116 (@COND _1282116 (s = (@INSERT N i (@EMPTY N))) (f i) (op (f i) (h (@DELETE N s i))))) (minimal (fun x : N => @IN N x s)))). +Axiom thm_EXISTS_SWAP : forall {A B C : Type'}, forall P : (B -> A -> C) -> Prop, (exists f : B -> A -> C, P f) = (exists f : A -> B -> C, P (fun b : B => fun a : A => f a b)). +Axiom thm_MINIMAL_IN_INSERT : forall s : N -> Prop, forall i : N, (forall j : N, (@IN N j s) -> N.lt i j) -> (minimal (fun j : N => @IN N j (@INSERT N i s))) = i. +Axiom thm_SEQITERATE_CLAUSES : forall {_1282243 _1282267 _1282330 : Type'}, (forall op : _1282243 -> _1282243 -> _1282243, forall f : N -> _1282243, (@seqiterate _1282243 op (@EMPTY N) f) = (@neutral _1282243 op)) /\ ((forall op : _1282267 -> _1282267 -> _1282267, forall f : N -> _1282267, forall i : N, (@seqiterate _1282267 op (@INSERT N i (@EMPTY N)) f) = (f i)) /\ (forall op : _1282330 -> _1282330 -> _1282330, forall f : N -> _1282330, forall i : N, forall s : N -> Prop, ((@FINITE N s) /\ ((~ (s = (@EMPTY N))) /\ (forall j : N, (@IN N j s) -> N.lt i j))) -> (@seqiterate _1282330 op (@INSERT N i s) f) = (op (f i) (@seqiterate _1282330 op s f)))). +Axiom thm_SEQITERATE_ITERATE : forall {_1282379 : Type'}, forall op : _1282379 -> _1282379 -> _1282379, forall f : N -> _1282379, forall s : N -> Prop, ((@monoidal _1282379 op) /\ (@FINITE N s)) -> (@seqiterate _1282379 op s f) = (@iterate N _1282379 op s f). +Axiom thm_outermorphism : forall {N' P : Type'}, forall x : cart R (Multivector N'), forall f : (cart R N') -> cart R P, (@outermorphism N' P f x) = (@vsum (N -> Prop) (Multivector P) (@GSPEC (N -> Prop) (fun GEN_PVAR_5766 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5766 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) s)) (fun s : N -> Prop => @percent (Multivector P) (@dollardollar N' x s) (@seqiterate (cart R (Multivector P)) (@outer P) s (@o N (cart R P) (cart R (Multivector P)) (@multivec P) (@o N (cart R N') (cart R P) f (@basis N')))))). +Axiom thm_NEUTRAL_OUTER : forall {_1282457 : Type'}, (@neutral (cart R (Multivector _1282457)) (@outer _1282457)) = (@mbasis _1282457 (@EMPTY N)). +Axiom thm_OUTERMORPHISM_MBASIS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : N -> Prop, (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M)))) -> (@outermorphism M N' f (@mbasis M s)) = (@seqiterate (cart R (Multivector N')) (@outer N') s (@o N (cart R N') (cart R (Multivector N')) (@multivec N') (@o N (cart R M) (cart R N') f (@basis M)))). +Axiom thm_OUTERMORPHISM_MBASIS_EMPTY : forall {_1282517 _1282520 : Type'}, forall f : (cart R _1282517) -> cart R _1282520, (@outermorphism _1282517 _1282520 f (@mbasis _1282517 (@EMPTY N))) = (@mbasis _1282520 (@EMPTY N)). +Axiom thm_reversion : forall {N' : Type'}, forall x : cart R (Multivector N'), (@reversion N' x) = (@lambdas N' (fun s : N -> Prop => Rmult (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (N.div (N.mul (@CARD N s) (N.sub (@CARD N s) (NUMERAL (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) (@dollardollar N' x s))). +Axiom thm_INTERIOR_SUBSET_UNION_INTERVALS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall i : (cart R N') -> Prop, forall j : (cart R N') -> Prop, ((exists a : cart R N', exists b : cart R N', i = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((exists c : cart R N', exists d : cart R N', j = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) /\ ((~ ((@interior N' j) = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') i (@UNION (cart R N') j s)) /\ ((@INTER (cart R N') (@interior N' i) (@interior N' j)) = (@EMPTY (cart R N'))))))) -> @SUBSET (cart R N') (@interior N' i) (@interior N' s). +Axiom thm_INTER_INTERIOR_UNIONS_INTERVALS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ ((@_open N' s) /\ ((forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> exists a : cart R N', exists b : cart R N', t = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> (@INTER (cart R N') s (@interior N' t)) = (@EMPTY (cart R N')))))) -> (@INTER (cart R N') s (@interior N' (@UNIONS (cart R N') f))) = (@EMPTY (cart R N')). +Axiom thm_ITERATE_NONZERO_IMAGE_LEMMA : forall {_1283256 _1283279 _1283280 : Type'}, forall op : _1283280 -> _1283280 -> _1283280, forall s : _1283279 -> Prop, forall f : _1283279 -> _1283256, forall g : _1283256 -> _1283280, forall a : _1283256, ((@monoidal _1283280 op) /\ ((@FINITE _1283279 s) /\ (((g a) = (@neutral _1283280 op)) /\ (forall x : _1283279, forall y : _1283279, ((@IN _1283279 x s) /\ ((@IN _1283279 y s) /\ (((f x) = (f y)) /\ (~ (x = y))))) -> (g (f x)) = (@neutral _1283280 op))))) -> (@iterate _1283256 _1283280 op (@GSPEC _1283256 (fun GEN_PVAR_5769 : _1283256 => exists x : _1283279, @SETSPEC _1283256 GEN_PVAR_5769 ((@IN _1283279 x s) /\ (~ ((f x) = a))) (f x))) g) = (@iterate _1283279 _1283280 op s (@o _1283279 _1283256 _1283280 g f)). +Axiom thm_interval_upperbound : forall {M : Type'}, forall s : (cart R M) -> Prop, (@interval_upperbound M s) = (@lambda R M (fun i : N => sup (@GSPEC R (fun GEN_PVAR_5770 : R => exists a : R, @SETSPEC R GEN_PVAR_5770 (exists x : cart R M, (@IN (cart R M) x s) /\ ((@dollar R M x i) = a)) a)))). +Axiom thm_interval_lowerbound : forall {M : Type'}, forall s : (cart R M) -> Prop, (@interval_lowerbound M s) = (@lambda R M (fun i : N => inf (@GSPEC R (fun GEN_PVAR_5771 : R => exists a : R, @SETSPEC R GEN_PVAR_5771 (exists x : cart R M, (@IN (cart R M) x s) /\ ((@dollar R M x i) = a)) a)))). +Axiom thm_INTERVAL_UPPERBOUND : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' a i) (@dollar R N' b i)) -> (@interval_upperbound N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = b. +Axiom thm_INTERVAL_LOWERBOUND : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' a i) (@dollar R N' b i)) -> (@interval_lowerbound N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = a. +Axiom thm_INTERVAL_UPPERBOUND_1 : forall a : cart R unit, forall b : cart R unit, (Rle (drop a) (drop b)) -> (@interval_upperbound unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = b. +Axiom thm_INTERVAL_LOWERBOUND_1 : forall a : cart R unit, forall b : cart R unit, (Rle (drop a) (drop b)) -> (@interval_lowerbound unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = a. +Axiom thm_INTERVAL_LOWERBOUND_NONEMPTY : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) -> (@interval_lowerbound N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = a. +Axiom thm_INTERVAL_UPPERBOUND_NONEMPTY : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) -> (@interval_upperbound N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = b. +Axiom thm_content : forall {M : Type'}, forall s : (cart R M) -> Prop, (@content M s) = (@COND R (s = (@EMPTY (cart R M))) (R_of_N (NUMERAL 0%N)) (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M))) (fun i : N => Rminus (@dollar R M (@interval_upperbound M s) i) (@dollar R M (@interval_lowerbound M s) i)))). +Axiom thm_CONTENT_CLOSED_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' a i) (@dollar R N' b i)) -> (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => Rminus (@dollar R N' b i) (@dollar R N' a i))). +Axiom thm_CONTENT_1 : forall a : cart R unit, forall b : cart R unit, (Rle (drop a) (drop b)) -> (@content unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (Rminus (drop b) (drop a)). +Axiom thm_CONTENT_UNIT : forall {N' : Type'}, (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vec N' (NUMERAL 0%N)) (@vec N' (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_CONTENT_UNIT_1 : (@content unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_CONTENT_POS_LE : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', Rle (R_of_N (NUMERAL 0%N)) (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_CONTENT_POS_LT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (@dollar R N' a i) (@dollar R N' b i)) -> Rlt (R_of_N (NUMERAL 0%N)) (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_CONTENT_POS_LT_1 : forall a : cart R unit, forall b : cart R unit, (Rlt (drop a) (drop b)) -> Rlt (R_of_N (NUMERAL 0%N)) (@content unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_CONTENT_EQ_0_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> ((@content N' s) = (R_of_N (NUMERAL 0%N))) = (exists i : N, exists a : R, (N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@dollar R N' x i) = a))). +Axiom thm_CONTENT_EQ_0 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', ((@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N))) = (exists i : N, (N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ (Rle (@dollar R N' b i) (@dollar R N' a i)))). +Axiom thm_CONTENT_0_SUBSET_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') s t) /\ ((@bounded N' t) /\ ((@content N' t) = (R_of_N (NUMERAL 0%N))))) -> (@content N' s) = (R_of_N (NUMERAL 0%N)). +Axiom thm_CONTENT_0_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@SUBSET (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N)))) -> (@content N' s) = (R_of_N (NUMERAL 0%N)). +Axiom thm_CONTENT_CLOSED_INTERVAL_CASES : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@COND R (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' a i) (@dollar R N' b i)) (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => Rminus (@dollar R N' b i) (@dollar R N' a i))) (R_of_N (NUMERAL 0%N))). +Axiom thm_CONTENT_EQ_0_INTERIOR : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', ((@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N))) = ((@interior N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@EMPTY (cart R N'))). +Axiom thm_CONTENT_EQ_0_1 : forall a : cart R unit, forall b : cart R unit, ((@content unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (R_of_N (NUMERAL 0%N))) = (Rle (drop b) (drop a)). +Axiom thm_CONTENT_POS_LT_EQ : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (Rlt (R_of_N (NUMERAL 0%N)) (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (@dollar R N' a i) (@dollar R N' b i)). +Axiom thm_CONTENT_EMPTY : forall {_1284432 : Type'}, (@content _1284432 (@EMPTY (cart R _1284432))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_CONTENT_SUBSET : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', (@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) -> Rle (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_CONTENT_LT_NZ : forall {_1284575 : Type'}, forall a : cart R _1284575, forall b : cart R _1284575, (Rlt (R_of_N (NUMERAL 0%N)) (@content _1284575 (@closed_interval _1284575 (@cons (prod (cart R _1284575) (cart R _1284575)) (@pair (cart R _1284575) (cart R _1284575) a b) (@nil (prod (cart R _1284575) (cart R _1284575))))))) = (~ ((@content _1284575 (@closed_interval _1284575 (@cons (prod (cart R _1284575) (cart R _1284575)) (@pair (cart R _1284575) (cart R _1284575) a b) (@nil (prod (cart R _1284575) (cart R _1284575)))))) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_INTERVAL_BOUNDS_NULL_1 : forall a : cart R unit, forall b : cart R unit, ((@content unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (R_of_N (NUMERAL 0%N))) -> (@interval_upperbound unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@interval_lowerbound unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_INTERVAL_BOUNDS_EMPTY_1 : (@interval_upperbound unit (@EMPTY (cart R unit))) = (@interval_lowerbound unit (@EMPTY (cart R unit))). +Axiom thm_CONTENT_PASTECART : forall {M N' : Type'}, forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', (@content (finite_sum M N') (@closed_interval (finite_sum M N') (@cons (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))) (@pair (cart R (finite_sum M N')) (cart R (finite_sum M N')) (@pastecart R M N' a c) (@pastecart R M N' b d)) (@nil (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))))))) = (Rmult (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_gauge : forall {_1284928 : Type'}, forall d : (cart R _1284928) -> (cart R _1284928) -> Prop, (@gauge _1284928 d) = (forall x : cart R _1284928, (@IN (cart R _1284928) x (d x)) /\ (@_open _1284928 (d x))). +Axiom thm_GAUGE_BALL_DEPENDENT : forall {_1284952 : Type'}, forall e : (cart R _1284952) -> R, (forall x : cart R _1284952, Rlt (R_of_N (NUMERAL 0%N)) (e x)) -> @gauge _1284952 (fun x : cart R _1284952 => @ball _1284952 (@pair (cart R _1284952) R x (e x))). +Axiom thm_GAUGE_BALL : forall {_1284975 : Type'}, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @gauge _1284975 (fun x : cart R _1284975 => @ball _1284975 (@pair (cart R _1284975) R x e)). +Axiom thm_GAUGE_TRIVIAL : forall {_1284986 : Type'}, @gauge _1284986 (fun x : cart R _1284986 => @ball _1284986 (@pair (cart R _1284986) R x (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_GAUGE_INTER : forall {_1285009 : Type'}, forall d1 : (cart R _1285009) -> (cart R _1285009) -> Prop, forall d2 : (cart R _1285009) -> (cart R _1285009) -> Prop, ((@gauge _1285009 d1) /\ (@gauge _1285009 d2)) -> @gauge _1285009 (fun x : cart R _1285009 => @INTER (cart R _1285009) (d1 x) (d2 x)). +Axiom thm_GAUGE_INTERS : forall {_1285069 _1285093 : Type'} (f : _1285093 -> (cart R _1285069) -> (cart R _1285069) -> Prop), forall s : _1285093 -> Prop, ((@FINITE _1285093 s) /\ (forall d : _1285093, (@IN _1285093 d s) -> @gauge _1285069 (f d))) -> @gauge _1285069 (fun x : cart R _1285069 => @INTERS (cart R _1285069) (@GSPEC ((cart R _1285069) -> Prop) (fun GEN_PVAR_5773 : (cart R _1285069) -> Prop => exists d : _1285093, @SETSPEC ((cart R _1285069) -> Prop) GEN_PVAR_5773 (@IN _1285093 d s) (f d x)))). +Axiom thm_GAUGE_EXISTENCE_LEMMA : forall {_1285135 : Type'} (p : _1285135 -> Prop) (q : R -> _1285135 -> Prop), (forall x : _1285135, exists d : R, (p x) -> (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (q d x)) = (forall x : _1285135, exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((p x) -> q d x)). +Axiom thm_division_of : forall {_1285232 : Type'}, forall s : ((cart R _1285232) -> Prop) -> Prop, forall i : (cart R _1285232) -> Prop, (@division_of _1285232 s i) = ((@FINITE ((cart R _1285232) -> Prop) s) /\ ((forall k : (cart R _1285232) -> Prop, (@IN ((cart R _1285232) -> Prop) k s) -> (@SUBSET (cart R _1285232) k i) /\ ((~ (k = (@EMPTY (cart R _1285232)))) /\ (exists a : cart R _1285232, exists b : cart R _1285232, k = (@closed_interval _1285232 (@cons (prod (cart R _1285232) (cart R _1285232)) (@pair (cart R _1285232) (cart R _1285232) a b) (@nil (prod (cart R _1285232) (cart R _1285232)))))))) /\ ((forall k1 : (cart R _1285232) -> Prop, forall k2 : (cart R _1285232) -> Prop, ((@IN ((cart R _1285232) -> Prop) k1 s) /\ ((@IN ((cart R _1285232) -> Prop) k2 s) /\ (~ (k1 = k2)))) -> (@INTER (cart R _1285232) (@interior _1285232 k1) (@interior _1285232 k2)) = (@EMPTY (cart R _1285232))) /\ ((@UNIONS (cart R _1285232) s) = i)))). +Axiom thm_DIVISION_OF : forall {_1285325 : Type'} (s : ((cart R _1285325) -> Prop) -> Prop) (i : (cart R _1285325) -> Prop), (@division_of _1285325 s i) = ((@FINITE ((cart R _1285325) -> Prop) s) /\ ((forall k : (cart R _1285325) -> Prop, (@IN ((cart R _1285325) -> Prop) k s) -> (~ (k = (@EMPTY (cart R _1285325)))) /\ (exists a : cart R _1285325, exists b : cart R _1285325, k = (@closed_interval _1285325 (@cons (prod (cart R _1285325) (cart R _1285325)) (@pair (cart R _1285325) (cart R _1285325) a b) (@nil (prod (cart R _1285325) (cart R _1285325))))))) /\ ((forall k1 : (cart R _1285325) -> Prop, forall k2 : (cart R _1285325) -> Prop, ((@IN ((cart R _1285325) -> Prop) k1 s) /\ ((@IN ((cart R _1285325) -> Prop) k2 s) /\ (~ (k1 = k2)))) -> (@INTER (cart R _1285325) (@interior _1285325 k1) (@interior _1285325 k2)) = (@EMPTY (cart R _1285325))) /\ ((@UNIONS (cart R _1285325) s) = i)))). +Axiom thm_DIVISION_OF_FINITE : forall {_1285340 : Type'}, forall s : ((cart R _1285340) -> Prop) -> Prop, forall i : (cart R _1285340) -> Prop, (@division_of _1285340 s i) -> @FINITE ((cart R _1285340) -> Prop) s. +Axiom thm_DIVISION_OF_SELF : forall {_1285398 : Type'}, forall a : cart R _1285398, forall b : cart R _1285398, (~ ((@closed_interval _1285398 (@cons (prod (cart R _1285398) (cart R _1285398)) (@pair (cart R _1285398) (cart R _1285398) a b) (@nil (prod (cart R _1285398) (cart R _1285398))))) = (@EMPTY (cart R _1285398)))) -> @division_of _1285398 (@INSERT ((cart R _1285398) -> Prop) (@closed_interval _1285398 (@cons (prod (cart R _1285398) (cart R _1285398)) (@pair (cart R _1285398) (cart R _1285398) a b) (@nil (prod (cart R _1285398) (cart R _1285398))))) (@EMPTY ((cart R _1285398) -> Prop))) (@closed_interval _1285398 (@cons (prod (cart R _1285398) (cart R _1285398)) (@pair (cart R _1285398) (cart R _1285398) a b) (@nil (prod (cart R _1285398) (cart R _1285398))))). +Axiom thm_DIVISION_OF_TRIVIAL : forall {_1285440 : Type'}, forall s : ((cart R _1285440) -> Prop) -> Prop, (@division_of _1285440 s (@EMPTY (cart R _1285440))) = (s = (@EMPTY ((cart R _1285440) -> Prop))). +Axiom thm_EMPTY_DIVISION_OF : forall {_1285455 : Type'}, forall s : (cart R _1285455) -> Prop, (@division_of _1285455 (@EMPTY ((cart R _1285455) -> Prop)) s) = (s = (@EMPTY (cart R _1285455))). +Axiom thm_DIVISION_OF_SING : forall {_1285661 : Type'}, forall s : ((cart R _1285661) -> Prop) -> Prop, forall a : cart R _1285661, (@division_of _1285661 s (@closed_interval _1285661 (@cons (prod (cart R _1285661) (cart R _1285661)) (@pair (cart R _1285661) (cart R _1285661) a a) (@nil (prod (cart R _1285661) (cart R _1285661)))))) = (s = (@INSERT ((cart R _1285661) -> Prop) (@closed_interval _1285661 (@cons (prod (cart R _1285661) (cart R _1285661)) (@pair (cart R _1285661) (cart R _1285661) a a) (@nil (prod (cart R _1285661) (cart R _1285661))))) (@EMPTY ((cart R _1285661) -> Prop)))). +Axiom thm_ELEMENTARY_EMPTY : forall {_1285671 : Type'}, exists p : ((cart R _1285671) -> Prop) -> Prop, @division_of _1285671 p (@EMPTY (cart R _1285671)). +Axiom thm_ELEMENTARY_INTERVAL : forall {_1285699 : Type'}, forall a : cart R _1285699, forall b : cart R _1285699, exists p : ((cart R _1285699) -> Prop) -> Prop, @division_of _1285699 p (@closed_interval _1285699 (@cons (prod (cart R _1285699) (cart R _1285699)) (@pair (cart R _1285699) (cart R _1285699) a b) (@nil (prod (cart R _1285699) (cart R _1285699))))). +Axiom thm_DIVISION_CONTAINS : forall {_1285714 : Type'}, forall s : ((cart R _1285714) -> Prop) -> Prop, forall i : (cart R _1285714) -> Prop, (@division_of _1285714 s i) -> forall x : cart R _1285714, (@IN (cart R _1285714) x i) -> exists k : (cart R _1285714) -> Prop, (@IN (cart R _1285714) x k) /\ (@IN ((cart R _1285714) -> Prop) k s). +Axiom thm_FORALL_IN_DIVISION : forall {_1285801 : Type'}, forall P : ((cart R _1285801) -> Prop) -> Prop, forall d : ((cart R _1285801) -> Prop) -> Prop, forall i : (cart R _1285801) -> Prop, (@division_of _1285801 d i) -> (forall x : (cart R _1285801) -> Prop, (@IN ((cart R _1285801) -> Prop) x d) -> P x) = (forall a : cart R _1285801, forall b : cart R _1285801, (@IN ((cart R _1285801) -> Prop) (@closed_interval _1285801 (@cons (prod (cart R _1285801) (cart R _1285801)) (@pair (cart R _1285801) (cart R _1285801) a b) (@nil (prod (cart R _1285801) (cart R _1285801))))) d) -> P (@closed_interval _1285801 (@cons (prod (cart R _1285801) (cart R _1285801)) (@pair (cart R _1285801) (cart R _1285801) a b) (@nil (prod (cart R _1285801) (cart R _1285801)))))). +Axiom thm_FORALL_IN_DIVISION_NONEMPTY : forall {_1285887 : Type'}, forall P : ((cart R _1285887) -> Prop) -> Prop, forall d : ((cart R _1285887) -> Prop) -> Prop, forall i : (cart R _1285887) -> Prop, (@division_of _1285887 d i) -> (forall x : (cart R _1285887) -> Prop, (@IN ((cart R _1285887) -> Prop) x d) -> P x) = (forall a : cart R _1285887, forall b : cart R _1285887, ((@IN ((cart R _1285887) -> Prop) (@closed_interval _1285887 (@cons (prod (cart R _1285887) (cart R _1285887)) (@pair (cart R _1285887) (cart R _1285887) a b) (@nil (prod (cart R _1285887) (cart R _1285887))))) d) /\ (~ ((@closed_interval _1285887 (@cons (prod (cart R _1285887) (cart R _1285887)) (@pair (cart R _1285887) (cart R _1285887) a b) (@nil (prod (cart R _1285887) (cart R _1285887))))) = (@EMPTY (cart R _1285887))))) -> P (@closed_interval _1285887 (@cons (prod (cart R _1285887) (cart R _1285887)) (@pair (cart R _1285887) (cart R _1285887) a b) (@nil (prod (cart R _1285887) (cart R _1285887)))))). +Axiom thm_DIVISION_OF_SUBSET : forall {N' : Type'}, forall p : ((cart R N') -> Prop) -> Prop, forall q : ((cart R N') -> Prop) -> Prop, ((@division_of N' p (@UNIONS (cart R N') p)) /\ (@SUBSET ((cart R N') -> Prop) q p)) -> @division_of N' q (@UNIONS (cart R N') q). +Axiom thm_DIVISION_OF_UNION_SELF : forall {_1285930 : Type'}, forall p : ((cart R _1285930) -> Prop) -> Prop, forall s : (cart R _1285930) -> Prop, (@division_of _1285930 p s) -> @division_of _1285930 p (@UNIONS (cart R _1285930) p). +Axiom thm_DIVISION_OF_CONTENT_0 : forall {_1286000 : Type'}, forall a : cart R _1286000, forall b : cart R _1286000, forall d : ((cart R _1286000) -> Prop) -> Prop, (((@content _1286000 (@closed_interval _1286000 (@cons (prod (cart R _1286000) (cart R _1286000)) (@pair (cart R _1286000) (cart R _1286000) a b) (@nil (prod (cart R _1286000) (cart R _1286000)))))) = (R_of_N (NUMERAL 0%N))) /\ (@division_of _1286000 d (@closed_interval _1286000 (@cons (prod (cart R _1286000) (cart R _1286000)) (@pair (cart R _1286000) (cart R _1286000) a b) (@nil (prod (cart R _1286000) (cart R _1286000))))))) -> forall k : (cart R _1286000) -> Prop, (@IN ((cart R _1286000) -> Prop) k d) -> (@content _1286000 k) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DIVISION_INTER : forall {N' : Type'}, forall s1 : (cart R N') -> Prop, forall s2 : (cart R N') -> Prop, forall p1 : ((cart R N') -> Prop) -> Prop, forall p2 : ((cart R N') -> Prop) -> Prop, ((@division_of N' p1 s1) /\ (@division_of N' p2 s2)) -> @division_of N' (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5777 : (cart R N') -> Prop => exists k1 : (cart R N') -> Prop, exists k2 : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5777 ((@IN ((cart R N') -> Prop) k1 p1) /\ ((@IN ((cart R N') -> Prop) k2 p2) /\ (~ ((@INTER (cart R N') k1 k2) = (@EMPTY (cart R N')))))) (@INTER (cart R N') k1 k2))) (@INTER (cart R N') s1 s2). +Axiom thm_DIVISION_INTER_1 : forall {N' : Type'}, forall d : ((cart R N') -> Prop) -> Prop, forall i : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@division_of N' d i) /\ (@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) i)) -> @division_of N' (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5779 : (cart R N') -> Prop => exists k : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5779 ((@IN ((cart R N') -> Prop) k d) /\ (~ ((@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) k) = (@EMPTY (cart R N'))))) (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) k))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_ELEMENTARY_INTER : forall {_1286482 : Type'}, forall s : (cart R _1286482) -> Prop, forall t : (cart R _1286482) -> Prop, ((exists p : ((cart R _1286482) -> Prop) -> Prop, @division_of _1286482 p s) /\ (exists p : ((cart R _1286482) -> Prop) -> Prop, @division_of _1286482 p t)) -> exists p : ((cart R _1286482) -> Prop) -> Prop, @division_of _1286482 p (@INTER (cart R _1286482) s t). +Axiom thm_ELEMENTARY_INTERS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ ((~ (f = (@EMPTY ((cart R N') -> Prop)))) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> exists p : ((cart R N') -> Prop) -> Prop, @division_of N' p s))) -> exists p : ((cart R N') -> Prop) -> Prop, @division_of N' p (@INTERS (cart R N') f). +Axiom thm_DIVISION_DISJOINT_UNION : forall {N' : Type'}, forall s1 : (cart R N') -> Prop, forall s2 : (cart R N') -> Prop, forall p1 : ((cart R N') -> Prop) -> Prop, forall p2 : ((cart R N') -> Prop) -> Prop, ((@division_of N' p1 s1) /\ ((@division_of N' p2 s2) /\ ((@INTER (cart R N') (@interior N' s1) (@interior N' s2)) = (@EMPTY (cart R N'))))) -> @division_of N' (@UNION ((cart R N') -> Prop) p1 p2) (@UNION (cart R N') s1 s2). +Axiom thm_PARTIAL_DIVISION_EXTEND_1 : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', ((@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N'))))) -> exists p : ((cart R N') -> Prop) -> Prop, (@division_of N' p (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (@IN ((cart R N') -> Prop) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) p). +Axiom thm_PARTIAL_DIVISION_EXTEND_INTERVAL : forall {N' : Type'}, forall p : ((cart R N') -> Prop) -> Prop, forall a : cart R N', forall b : cart R N', ((@division_of N' p (@UNIONS (cart R N') p)) /\ (@SUBSET (cart R N') (@UNIONS (cart R N') p) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) -> exists q : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) p q) /\ (@division_of N' q (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_ELEMENTARY_BOUNDED : forall {_1287606 : Type'}, forall s : (cart R _1287606) -> Prop, (exists p : ((cart R _1287606) -> Prop) -> Prop, @division_of _1287606 p s) -> @bounded _1287606 s. +Axiom thm_ELEMENTARY_SUBSET_INTERVAL : forall {_1287644 : Type'}, forall s : (cart R _1287644) -> Prop, (exists p : ((cart R _1287644) -> Prop) -> Prop, @division_of _1287644 p s) -> exists a : cart R _1287644, exists b : cart R _1287644, @SUBSET (cart R _1287644) s (@closed_interval _1287644 (@cons (prod (cart R _1287644) (cart R _1287644)) (@pair (cart R _1287644) (cart R _1287644) a b) (@nil (prod (cart R _1287644) (cart R _1287644))))). +Axiom thm_DIVISION_UNION_INTERVALS_EXISTS : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', (~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) -> exists p : ((cart R N') -> Prop) -> Prop, @division_of N' (@INSERT ((cart R N') -> Prop) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) p) (@UNION (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_DIVISION_OF_UNIONS : forall {_1288143 : Type'}, forall f : (((cart R _1288143) -> Prop) -> Prop) -> Prop, ((@FINITE (((cart R _1288143) -> Prop) -> Prop) f) /\ ((forall p : ((cart R _1288143) -> Prop) -> Prop, (@IN (((cart R _1288143) -> Prop) -> Prop) p f) -> @division_of _1288143 p (@UNIONS (cart R _1288143) p)) /\ (forall k1 : (cart R _1288143) -> Prop, forall k2 : (cart R _1288143) -> Prop, ((@IN ((cart R _1288143) -> Prop) k1 (@UNIONS ((cart R _1288143) -> Prop) f)) /\ ((@IN ((cart R _1288143) -> Prop) k2 (@UNIONS ((cart R _1288143) -> Prop) f)) /\ (~ (k1 = k2)))) -> (@INTER (cart R _1288143) (@interior _1288143 k1) (@interior _1288143 k2)) = (@EMPTY (cart R _1288143))))) -> @division_of _1288143 (@UNIONS ((cart R _1288143) -> Prop) f) (@UNIONS (cart R _1288143) (@UNIONS ((cart R _1288143) -> Prop) f)). +Axiom thm_ELEMENTARY_UNION_INTERVAL_STRONG : forall {N' : Type'}, forall p : ((cart R N') -> Prop) -> Prop, forall a : cart R N', forall b : cart R N', (@division_of N' p (@UNIONS (cart R N') p)) -> exists q : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) p q) /\ (@division_of N' q (@UNION (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@UNIONS (cart R N') p))). +Axiom thm_ELEMENTARY_UNION_INTERVAL : forall {N' : Type'}, forall p : ((cart R N') -> Prop) -> Prop, forall a : cart R N', forall b : cart R N', (@division_of N' p (@UNIONS (cart R N') p)) -> exists q : ((cart R N') -> Prop) -> Prop, @division_of N' q (@UNION (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@UNIONS (cart R N') p)). +Axiom thm_ELEMENTARY_UNIONS_INTERVALS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> exists a : cart R N', exists b : cart R N', s = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) -> exists p : ((cart R N') -> Prop) -> Prop, @division_of N' p (@UNIONS (cart R N') f). +Axiom thm_ELEMENTARY_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((exists p : ((cart R N') -> Prop) -> Prop, @division_of N' p s) /\ (exists p : ((cart R N') -> Prop) -> Prop, @division_of N' p t)) -> exists p : ((cart R N') -> Prop) -> Prop, @division_of N' p (@UNION (cart R N') s t). +Axiom thm_PARTIAL_DIVISION_EXTEND : forall {N' : Type'}, forall p : ((cart R N') -> Prop) -> Prop, forall q : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@division_of N' p s) /\ ((@division_of N' q t) /\ (@SUBSET (cart R N') s t))) -> exists r : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) p r) /\ (@division_of N' r t). +Axiom thm_INTERVAL_SUBDIVISION : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', (@IN (cart R N') c (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> @division_of N' (@IMAGE (N -> Prop) ((cart R N') -> Prop) (fun s : N -> Prop => @closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@lambda R N' (fun i : N => @COND R (@IN N i s) (@dollar R N' c i) (@dollar R N' a i))) (@lambda R N' (fun i : N => @COND R (@IN N i s) (@dollar R N' b i) (@dollar R N' c i)))) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (N -> Prop) (fun GEN_PVAR_5790 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5790 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) s))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_DIVISION_OF_NONTRIVIAL : forall {N' : Type'}, forall s : ((cart R N') -> Prop) -> Prop, forall a : cart R N', forall b : cart R N', ((@division_of N' s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (~ ((@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N))))) -> @division_of N' (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5792 : (cart R N') -> Prop => exists k : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5792 ((@IN ((cart R N') -> Prop) k s) /\ (~ ((@content N' k) = (R_of_N (NUMERAL 0%N))))) k)) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_DIVISION_OF_AFFINITY : forall {N' : Type'}, forall d : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@division_of N' (@IMAGE ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c)) d) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = (@COND Prop (m = (R_of_N (NUMERAL 0%N))) (@COND Prop (s = (@EMPTY (cart R N'))) (d = (@EMPTY ((cart R N') -> Prop))) ((~ (d = (@EMPTY ((cart R N') -> Prop)))) /\ (forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k d) -> ~ (k = (@EMPTY (cart R N')))))) (@division_of N' d s)). +Axiom thm_DIVISION_OF_TRANSLATION : forall {N' : Type'} (a : cart R N'), forall d : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, (@division_of N' (@IMAGE ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x)) d) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@division_of N' d s). +Axiom thm_DIVISION_OF_REFLECT : forall {N' : Type'}, forall d : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, (@division_of N' (@IMAGE ((cart R N') -> Prop) ((cart R N') -> Prop) (@IMAGE (cart R N') (cart R N') (@vector_neg N')) d) (@IMAGE (cart R N') (cart R N') (@vector_neg N') s)) = (@division_of N' d s). +Axiom thm_ELEMENTARY_COMPACT : forall {_1290293 : Type'}, forall s : (cart R _1290293) -> Prop, (exists d : ((cart R _1290293) -> Prop) -> Prop, @division_of _1290293 d s) -> @compact _1290293 s. +Axiom thm_OPEN_COUNTABLE_LIMIT_ELEMENTARY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> exists f : N -> (cart R N') -> Prop, (forall n : N, exists d : ((cart R N') -> Prop) -> Prop, @division_of N' d (f n)) /\ ((forall n : N, @SUBSET (cart R N') (f n) (f (N.succ n))) /\ ((@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5794 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5794 (@IN N n (@UNIV N)) (f n)))) = s)). +Axiom thm_DIVISION_1_SORT : forall d : ((cart R unit) -> Prop) -> Prop, forall s : (cart R unit) -> Prop, ((@division_of unit d s) /\ (forall k : (cart R unit) -> Prop, (@IN ((cart R unit) -> Prop) k d) -> ~ ((@interior unit k) = (@EMPTY (cart R unit))))) -> exists n : N, exists t : N -> (cart R unit) -> Prop, ((@IMAGE N ((cart R unit) -> Prop) t (dotdot (NUMERAL (BIT1 0%N)) n)) = d) /\ (forall i : N, forall j : N, ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) n)) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) n)) /\ (N.lt i j))) -> (~ ((t i) = (t j))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (t i)) /\ (@IN (cart R unit) y (t j))) -> Rle (drop x) (drop y))). +Axiom thm_tagged_partial_division_of : forall {_1290787 : Type'}, forall i : (cart R _1290787) -> Prop, forall s : (prod (cart R _1290787) ((cart R _1290787) -> Prop)) -> Prop, (@tagged_partial_division_of _1290787 s i) = ((@FINITE (prod (cart R _1290787) ((cart R _1290787) -> Prop)) s) /\ ((forall x : cart R _1290787, forall k : (cart R _1290787) -> Prop, (@IN (prod (cart R _1290787) ((cart R _1290787) -> Prop)) (@pair (cart R _1290787) ((cart R _1290787) -> Prop) x k) s) -> (@IN (cart R _1290787) x k) /\ ((@SUBSET (cart R _1290787) k i) /\ (exists a : cart R _1290787, exists b : cart R _1290787, k = (@closed_interval _1290787 (@cons (prod (cart R _1290787) (cart R _1290787)) (@pair (cart R _1290787) (cart R _1290787) a b) (@nil (prod (cart R _1290787) (cart R _1290787)))))))) /\ (forall x1 : cart R _1290787, forall k1 : (cart R _1290787) -> Prop, forall x2 : cart R _1290787, forall k2 : (cart R _1290787) -> Prop, ((@IN (prod (cart R _1290787) ((cart R _1290787) -> Prop)) (@pair (cart R _1290787) ((cart R _1290787) -> Prop) x1 k1) s) /\ ((@IN (prod (cart R _1290787) ((cart R _1290787) -> Prop)) (@pair (cart R _1290787) ((cart R _1290787) -> Prop) x2 k2) s) /\ (~ ((@pair (cart R _1290787) ((cart R _1290787) -> Prop) x1 k1) = (@pair (cart R _1290787) ((cart R _1290787) -> Prop) x2 k2))))) -> (@INTER (cart R _1290787) (@interior _1290787 k1) (@interior _1290787 k2)) = (@EMPTY (cart R _1290787))))). +Axiom thm_tagged_division_of : forall {_1290798 : Type'}, forall s : (prod (cart R _1290798) ((cart R _1290798) -> Prop)) -> Prop, forall i : (cart R _1290798) -> Prop, (@tagged_division_of _1290798 s i) = ((@tagged_partial_division_of _1290798 s i) /\ ((@UNIONS (cart R _1290798) (@GSPEC ((cart R _1290798) -> Prop) (fun GEN_PVAR_5795 : (cart R _1290798) -> Prop => exists k : (cart R _1290798) -> Prop, @SETSPEC ((cart R _1290798) -> Prop) GEN_PVAR_5795 (exists x : cart R _1290798, @IN (prod (cart R _1290798) ((cart R _1290798) -> Prop)) (@pair (cart R _1290798) ((cart R _1290798) -> Prop) x k) s) k))) = i)). +Axiom thm_TAGGED_DIVISION_OF_FINITE : forall {_1290840 : Type'}, forall s : (prod (cart R _1290840) ((cart R _1290840) -> Prop)) -> Prop, forall i : (cart R _1290840) -> Prop, (@tagged_division_of _1290840 s i) -> @FINITE (prod (cart R _1290840) ((cart R _1290840) -> Prop)) s. +Axiom thm_TAGGED_DIVISION_OF : forall {_1290992 : Type'} (s : (prod (cart R _1290992) ((cart R _1290992) -> Prop)) -> Prop) (i : (cart R _1290992) -> Prop), (@tagged_division_of _1290992 s i) = ((@FINITE (prod (cart R _1290992) ((cart R _1290992) -> Prop)) s) /\ ((forall x : cart R _1290992, forall k : (cart R _1290992) -> Prop, (@IN (prod (cart R _1290992) ((cart R _1290992) -> Prop)) (@pair (cart R _1290992) ((cart R _1290992) -> Prop) x k) s) -> (@IN (cart R _1290992) x k) /\ ((@SUBSET (cart R _1290992) k i) /\ (exists a : cart R _1290992, exists b : cart R _1290992, k = (@closed_interval _1290992 (@cons (prod (cart R _1290992) (cart R _1290992)) (@pair (cart R _1290992) (cart R _1290992) a b) (@nil (prod (cart R _1290992) (cart R _1290992)))))))) /\ ((forall x1 : cart R _1290992, forall k1 : (cart R _1290992) -> Prop, forall x2 : cart R _1290992, forall k2 : (cart R _1290992) -> Prop, ((@IN (prod (cart R _1290992) ((cart R _1290992) -> Prop)) (@pair (cart R _1290992) ((cart R _1290992) -> Prop) x1 k1) s) /\ ((@IN (prod (cart R _1290992) ((cart R _1290992) -> Prop)) (@pair (cart R _1290992) ((cart R _1290992) -> Prop) x2 k2) s) /\ (~ ((@pair (cart R _1290992) ((cart R _1290992) -> Prop) x1 k1) = (@pair (cart R _1290992) ((cart R _1290992) -> Prop) x2 k2))))) -> (@INTER (cart R _1290992) (@interior _1290992 k1) (@interior _1290992 k2)) = (@EMPTY (cart R _1290992))) /\ ((@UNIONS (cart R _1290992) (@GSPEC ((cart R _1290992) -> Prop) (fun GEN_PVAR_5796 : (cart R _1290992) -> Prop => exists k : (cart R _1290992) -> Prop, @SETSPEC ((cart R _1290992) -> Prop) GEN_PVAR_5796 (exists x : cart R _1290992, @IN (prod (cart R _1290992) ((cart R _1290992) -> Prop)) (@pair (cart R _1290992) ((cart R _1290992) -> Prop) x k) s) k))) = i)))). +Axiom thm_DIVISION_OF_TAGGED_DIVISION : forall {_1291007 : Type'}, forall s : (prod (cart R _1291007) ((cart R _1291007) -> Prop)) -> Prop, forall i : (cart R _1291007) -> Prop, (@tagged_division_of _1291007 s i) -> @division_of _1291007 (@IMAGE (prod (cart R _1291007) ((cart R _1291007) -> Prop)) ((cart R _1291007) -> Prop) (@snd (cart R _1291007) ((cart R _1291007) -> Prop)) s) i. +Axiom thm_PARTIAL_DIVISION_OF_TAGGED_DIVISION : forall {_1291030 : Type'}, forall s : (prod (cart R _1291030) ((cart R _1291030) -> Prop)) -> Prop, forall i : (cart R _1291030) -> Prop, (@tagged_partial_division_of _1291030 s i) -> @division_of _1291030 (@IMAGE (prod (cart R _1291030) ((cart R _1291030) -> Prop)) ((cart R _1291030) -> Prop) (@snd (cart R _1291030) ((cart R _1291030) -> Prop)) s) (@UNIONS (cart R _1291030) (@IMAGE (prod (cart R _1291030) ((cart R _1291030) -> Prop)) ((cart R _1291030) -> Prop) (@snd (cart R _1291030) ((cart R _1291030) -> Prop)) s)). +Axiom thm_TAGGED_PARTIAL_DIVISION_SUBSET : forall {_1291073 : Type'}, forall s : (prod (cart R _1291073) ((cart R _1291073) -> Prop)) -> Prop, forall t : (prod (cart R _1291073) ((cart R _1291073) -> Prop)) -> Prop, forall i : (cart R _1291073) -> Prop, ((@tagged_partial_division_of _1291073 s i) /\ (@SUBSET (prod (cart R _1291073) ((cart R _1291073) -> Prop)) t s)) -> @tagged_partial_division_of _1291073 t i. +Axiom thm_VSUM_OVER_TAGGED_PARTIAL_DIVISION_LEMMA : forall {M N' : Type'}, forall d : ((cart R M) -> Prop) -> cart R N', forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, forall i : (cart R M) -> Prop, ((@tagged_partial_division_of M p i) /\ (forall u : cart R M, forall v : cart R M, ((~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))) /\ ((@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M)))))) = (R_of_N (NUMERAL 0%N)))) -> (d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M)))))) = (@vec N' (NUMERAL 0%N)))) -> (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f (@pair (cart R M) ((cart R M) -> Prop) x k)) (d k)))) = (@vsum ((cart R M) -> Prop) N' (@IMAGE (prod (cart R M) ((cart R M) -> Prop)) ((cart R M) -> Prop) (@snd (cart R M) ((cart R M) -> Prop)) p) d). +Axiom thm_VSUM_OVER_TAGGED_DIVISION_LEMMA : forall {M N' : Type'}, forall d : ((cart R M) -> Prop) -> cart R N', forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, forall i : (cart R M) -> Prop, ((@tagged_division_of M p i) /\ (forall u : cart R M, forall v : cart R M, ((~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))) /\ ((@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M)))))) = (R_of_N (NUMERAL 0%N)))) -> (d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M)))))) = (@vec N' (NUMERAL 0%N)))) -> (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f (@pair (cart R M) ((cart R M) -> Prop) x k)) (d k)))) = (@vsum ((cart R M) -> Prop) N' (@IMAGE (prod (cart R M) ((cart R M) -> Prop)) ((cart R M) -> Prop) (@snd (cart R M) ((cart R M) -> Prop)) p) d). +Axiom thm_SUM_OVER_TAGGED_PARTIAL_DIVISION_LEMMA : forall {N' : Type'}, forall d : ((cart R N') -> Prop) -> R, forall p : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall i : (cart R N') -> Prop, ((@tagged_partial_division_of N' p i) /\ (forall u : cart R N', forall v : cart R N', ((~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) /\ ((@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N)))) -> (d (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N)))) -> (@sum (prod (cart R N') ((cart R N') -> Prop)) p (@GABS ((prod (cart R N') ((cart R N') -> Prop)) -> R) (fun f : (prod (cart R N') ((cart R N') -> Prop)) -> R => forall x : cart R N', forall k : (cart R N') -> Prop, @GEQ R (f (@pair (cart R N') ((cart R N') -> Prop) x k)) (d k)))) = (@sum ((cart R N') -> Prop) (@IMAGE (prod (cart R N') ((cart R N') -> Prop)) ((cart R N') -> Prop) (@snd (cart R N') ((cart R N') -> Prop)) p) d). +Axiom thm_SUM_OVER_TAGGED_DIVISION_LEMMA : forall {N' : Type'}, forall d : ((cart R N') -> Prop) -> R, forall p : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall i : (cart R N') -> Prop, ((@tagged_division_of N' p i) /\ (forall u : cart R N', forall v : cart R N', ((~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) /\ ((@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N)))) -> (d (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N)))) -> (@sum (prod (cart R N') ((cart R N') -> Prop)) p (@GABS ((prod (cart R N') ((cart R N') -> Prop)) -> R) (fun f : (prod (cart R N') ((cart R N') -> Prop)) -> R => forall x : cart R N', forall k : (cart R N') -> Prop, @GEQ R (f (@pair (cart R N') ((cart R N') -> Prop) x k)) (d k)))) = (@sum ((cart R N') -> Prop) (@IMAGE (prod (cart R N') ((cart R N') -> Prop)) ((cart R N') -> Prop) (@snd (cart R N') ((cart R N') -> Prop)) p) d). +Axiom thm_TAG_IN_INTERVAL : forall {_1291557 : Type'} (x : cart R _1291557), forall p : (prod (cart R _1291557) ((cart R _1291557) -> Prop)) -> Prop, forall i : (cart R _1291557) -> Prop, forall k : (cart R _1291557) -> Prop, ((@tagged_division_of _1291557 p i) /\ (@IN (prod (cart R _1291557) ((cart R _1291557) -> Prop)) (@pair (cart R _1291557) ((cart R _1291557) -> Prop) x k) p)) -> @IN (cart R _1291557) x i. +Axiom thm_TAGGED_DIVISION_OF_EMPTY : forall {_1291571 : Type'}, @tagged_division_of _1291571 (@EMPTY (prod (cart R _1291571) ((cart R _1291571) -> Prop))) (@EMPTY (cart R _1291571)). +Axiom thm_TAGGED_PARTIAL_DIVISION_OF_TRIVIAL : forall {_1291615 : Type'}, forall p : (prod (cart R _1291615) ((cart R _1291615) -> Prop)) -> Prop, (@tagged_partial_division_of _1291615 p (@EMPTY (cart R _1291615))) = (p = (@EMPTY (prod (cart R _1291615) ((cart R _1291615) -> Prop)))). +Axiom thm_TAGGED_DIVISION_OF_TRIVIAL : forall {_1291639 : Type'}, forall p : (prod (cart R _1291639) ((cart R _1291639) -> Prop)) -> Prop, (@tagged_division_of _1291639 p (@EMPTY (cart R _1291639))) = (p = (@EMPTY (prod (cart R _1291639) ((cart R _1291639) -> Prop)))). +Axiom thm_TAGGED_DIVISION_OF_SELF : forall {_1291729 : Type'}, forall x : cart R _1291729, forall a : cart R _1291729, forall b : cart R _1291729, (@IN (cart R _1291729) x (@closed_interval _1291729 (@cons (prod (cart R _1291729) (cart R _1291729)) (@pair (cart R _1291729) (cart R _1291729) a b) (@nil (prod (cart R _1291729) (cart R _1291729)))))) -> @tagged_division_of _1291729 (@INSERT (prod (cart R _1291729) ((cart R _1291729) -> Prop)) (@pair (cart R _1291729) ((cart R _1291729) -> Prop) x (@closed_interval _1291729 (@cons (prod (cart R _1291729) (cart R _1291729)) (@pair (cart R _1291729) (cart R _1291729) a b) (@nil (prod (cart R _1291729) (cart R _1291729)))))) (@EMPTY (prod (cart R _1291729) ((cart R _1291729) -> Prop)))) (@closed_interval _1291729 (@cons (prod (cart R _1291729) (cart R _1291729)) (@pair (cart R _1291729) (cart R _1291729) a b) (@nil (prod (cart R _1291729) (cart R _1291729))))). +Axiom thm_TAGGED_DIVISION_UNION : forall {N' : Type'}, forall s1 : (cart R N') -> Prop, forall s2 : (cart R N') -> Prop, forall p1 : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall p2 : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, ((@tagged_division_of N' p1 s1) /\ ((@tagged_division_of N' p2 s2) /\ ((@INTER (cart R N') (@interior N' s1) (@interior N' s2)) = (@EMPTY (cart R N'))))) -> @tagged_division_of N' (@UNION (prod (cart R N') ((cart R N') -> Prop)) p1 p2) (@UNION (cart R N') s1 s2). +Axiom thm_TAGGED_DIVISION_UNIONS : forall {M : Type'}, forall iset : ((cart R M) -> Prop) -> Prop, forall pfn : ((cart R M) -> Prop) -> (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@FINITE ((cart R M) -> Prop) iset) /\ ((forall i : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) i iset) -> @tagged_division_of M (pfn i) i) /\ (forall i1 : (cart R M) -> Prop, forall i2 : (cart R M) -> Prop, ((@IN ((cart R M) -> Prop) i1 iset) /\ ((@IN ((cart R M) -> Prop) i2 iset) /\ (~ (i1 = i2)))) -> (@INTER (cart R M) (@interior M i1) (@interior M i2)) = (@EMPTY (cart R M))))) -> @tagged_division_of M (@UNIONS (prod (cart R M) ((cart R M) -> Prop)) (@IMAGE ((cart R M) -> Prop) ((prod (cart R M) ((cart R M) -> Prop)) -> Prop) pfn iset)) (@UNIONS (cart R M) iset). +Axiom thm_TAGGED_PARTIAL_DIVISION_OF_UNION_SELF : forall {_1292052 : Type'}, forall p : (prod (cart R _1292052) ((cart R _1292052) -> Prop)) -> Prop, forall s : (cart R _1292052) -> Prop, (@tagged_partial_division_of _1292052 p s) -> @tagged_division_of _1292052 p (@UNIONS (cart R _1292052) (@IMAGE (prod (cart R _1292052) ((cart R _1292052) -> Prop)) ((cart R _1292052) -> Prop) (@snd (cart R _1292052) ((cart R _1292052) -> Prop)) p)). +Axiom thm_TAGGED_DIVISION_OF_UNION_SELF : forall {_1292090 : Type'}, forall p : (prod (cart R _1292090) ((cart R _1292090) -> Prop)) -> Prop, forall s : (cart R _1292090) -> Prop, (@tagged_division_of _1292090 p s) -> @tagged_division_of _1292090 p (@UNIONS (cart R _1292090) (@IMAGE (prod (cart R _1292090) ((cart R _1292090) -> Prop)) ((cart R _1292090) -> Prop) (@snd (cart R _1292090) ((cart R _1292090) -> Prop)) p)). +Axiom thm_TAGGED_DIVISION_UNION_IMAGE_SND : forall {_1292115 : Type'}, forall p : (prod (cart R _1292115) ((cart R _1292115) -> Prop)) -> Prop, forall s : (cart R _1292115) -> Prop, (@tagged_division_of _1292115 p s) -> s = (@UNIONS (cart R _1292115) (@IMAGE (prod (cart R _1292115) ((cart R _1292115) -> Prop)) ((cart R _1292115) -> Prop) (@snd (cart R _1292115) ((cart R _1292115) -> Prop)) p)). +Axiom thm_TAGGED_DIVISION_OF_ALT : forall {_1292140 : Type'}, forall p : (prod (cart R _1292140) ((cart R _1292140) -> Prop)) -> Prop, forall s : (cart R _1292140) -> Prop, (@tagged_division_of _1292140 p s) = ((@tagged_partial_division_of _1292140 p s) /\ (forall x : cart R _1292140, (@IN (cart R _1292140) x s) -> exists t : cart R _1292140, exists k : (cart R _1292140) -> Prop, (@IN (prod (cart R _1292140) ((cart R _1292140) -> Prop)) (@pair (cart R _1292140) ((cart R _1292140) -> Prop) t k) p) /\ (@IN (cart R _1292140) x k))). +Axiom thm_TAGGED_DIVISION_OF_ANOTHER : forall {_1292194 : Type'}, forall p : (prod (cart R _1292194) ((cart R _1292194) -> Prop)) -> Prop, forall s : (cart R _1292194) -> Prop, forall s' : (cart R _1292194) -> Prop, ((@tagged_partial_division_of _1292194 p s') /\ ((forall t : cart R _1292194, forall k : (cart R _1292194) -> Prop, (@IN (prod (cart R _1292194) ((cart R _1292194) -> Prop)) (@pair (cart R _1292194) ((cart R _1292194) -> Prop) t k) p) -> @SUBSET (cart R _1292194) k s) /\ (forall x : cart R _1292194, (@IN (cart R _1292194) x s) -> exists t : cart R _1292194, exists k : (cart R _1292194) -> Prop, (@IN (prod (cart R _1292194) ((cart R _1292194) -> Prop)) (@pair (cart R _1292194) ((cart R _1292194) -> Prop) t k) p) /\ (@IN (cart R _1292194) x k)))) -> @tagged_division_of _1292194 p s. +Axiom thm_TAGGED_PARTIAL_DIVISION_OF_SUBSET : forall {_1292268 : Type'}, forall p : (prod (cart R _1292268) ((cart R _1292268) -> Prop)) -> Prop, forall s : (cart R _1292268) -> Prop, forall t : (cart R _1292268) -> Prop, ((@tagged_partial_division_of _1292268 p s) /\ (@SUBSET (cart R _1292268) s t)) -> @tagged_partial_division_of _1292268 p t. +Axiom thm_TAGGED_DIVISION_OF_NONTRIVIAL : forall {N' : Type'}, forall s : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall a : cart R N', forall b : cart R N', ((@tagged_division_of N' s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (~ ((@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N))))) -> @tagged_division_of N' (@GSPEC (prod (cart R N') ((cart R N') -> Prop)) (fun GEN_PVAR_5801 : prod (cart R N') ((cart R N') -> Prop) => exists x : cart R N', exists k : (cart R N') -> Prop, @SETSPEC (prod (cart R N') ((cart R N') -> Prop)) GEN_PVAR_5801 ((@IN (prod (cart R N') ((cart R N') -> Prop)) (@pair (cart R N') ((cart R N') -> Prop) x k) s) /\ (~ ((@content N' k) = (R_of_N (NUMERAL 0%N))))) (@pair (cart R N') ((cart R N') -> Prop) x k))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_fine : forall {_1292404 _1292405 : Type'}, forall s : (prod _1292405 (_1292404 -> Prop)) -> Prop, forall d : _1292405 -> _1292404 -> Prop, (@fine _1292404 _1292405 d s) = (forall x : _1292405, forall k : _1292404 -> Prop, (@IN (prod _1292405 (_1292404 -> Prop)) (@pair _1292405 (_1292404 -> Prop) x k) s) -> @SUBSET _1292404 k (d x)). +Axiom thm_FINE_INTER : forall {_1292448 _1292458 : Type'}, forall p : (prod _1292448 (_1292458 -> Prop)) -> Prop, forall d1 : _1292448 -> _1292458 -> Prop, forall d2 : _1292448 -> _1292458 -> Prop, (@fine _1292458 _1292448 (fun x : _1292448 => @INTER _1292458 (d1 x) (d2 x)) p) = ((@fine _1292458 _1292448 d1 p) /\ (@fine _1292458 _1292448 d2 p)). +Axiom thm_FINE_INTERS : forall {_1292517 _1292531 _1292532 : Type'}, forall f : _1292532 -> _1292517 -> _1292531 -> Prop, forall s : _1292532 -> Prop, forall p : (prod _1292517 (_1292531 -> Prop)) -> Prop, (@fine _1292531 _1292517 (fun x : _1292517 => @INTERS _1292531 (@GSPEC (_1292531 -> Prop) (fun GEN_PVAR_5802 : _1292531 -> Prop => exists d : _1292532, @SETSPEC (_1292531 -> Prop) GEN_PVAR_5802 (@IN _1292532 d s) (f d x)))) p) = (forall d : _1292532, (@IN _1292532 d s) -> @fine _1292531 _1292517 (f d) p). +Axiom thm_FINE_UNION : forall {_1292552 _1292553 : Type'}, forall d : _1292552 -> _1292553 -> Prop, forall p1 : (prod _1292552 (_1292553 -> Prop)) -> Prop, forall p2 : (prod _1292552 (_1292553 -> Prop)) -> Prop, ((@fine _1292553 _1292552 d p1) /\ (@fine _1292553 _1292552 d p2)) -> @fine _1292553 _1292552 d (@UNION (prod _1292552 (_1292553 -> Prop)) p1 p2). +Axiom thm_FINE_UNIONS : forall {_1292587 _1292588 : Type'}, forall d : _1292587 -> _1292588 -> Prop, forall ps : ((prod _1292587 (_1292588 -> Prop)) -> Prop) -> Prop, (forall p : (prod _1292587 (_1292588 -> Prop)) -> Prop, (@IN ((prod _1292587 (_1292588 -> Prop)) -> Prop) p ps) -> @fine _1292588 _1292587 d p) -> @fine _1292588 _1292587 d (@UNIONS (prod _1292587 (_1292588 -> Prop)) ps). +Axiom thm_FINE_SUBSET : forall {_1292617 _1292618 : Type'}, forall d : _1292617 -> _1292618 -> Prop, forall p : (prod _1292617 (_1292618 -> Prop)) -> Prop, forall q : (prod _1292617 (_1292618 -> Prop)) -> Prop, ((@SUBSET (prod _1292617 (_1292618 -> Prop)) p q) /\ (@fine _1292618 _1292617 d q)) -> @fine _1292618 _1292617 d p. +Axiom thm_has_integral_compact_interval : forall {_1292658 _1292690 : Type'}, forall i : (cart R _1292658) -> Prop, forall f : (cart R _1292658) -> cart R _1292690, forall y : cart R _1292690, (@has_integral_compact_interval _1292658 _1292690 f y i) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : (cart R _1292658) -> (cart R _1292658) -> Prop, (@gauge _1292658 d) /\ (forall p : (prod (cart R _1292658) ((cart R _1292658) -> Prop)) -> Prop, ((@tagged_division_of _1292658 p i) /\ (@fine (cart R _1292658) (cart R _1292658) d p)) -> Rlt (@vector_norm _1292690 (@vector_sub _1292690 (@vsum (prod (cart R _1292658) ((cart R _1292658) -> Prop)) _1292690 p (@GABS ((prod (cart R _1292658) ((cart R _1292658) -> Prop)) -> cart R _1292690) (fun f' : (prod (cart R _1292658) ((cart R _1292658) -> Prop)) -> cart R _1292690 => forall x : cart R _1292658, forall k : (cart R _1292658) -> Prop, @GEQ (cart R _1292690) (f' (@pair (cart R _1292658) ((cart R _1292658) -> Prop) x k)) (@percent _1292690 (@content _1292658 k) (f x))))) y)) e)). +Axiom thm_has_integral_def : forall {_1292827 _1292831 : Type'}, forall i : (cart R _1292827) -> Prop, forall f : (cart R _1292827) -> cart R _1292831, forall y : cart R _1292831, (@has_integral _1292827 _1292831 f y i) = (@COND Prop (exists a : cart R _1292827, exists b : cart R _1292827, i = (@closed_interval _1292827 (@cons (prod (cart R _1292827) (cart R _1292827)) (@pair (cart R _1292827) (cart R _1292827) a b) (@nil (prod (cart R _1292827) (cart R _1292827)))))) (@has_integral_compact_interval _1292827 _1292831 f y i) (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall a : cart R _1292827, forall b : cart R _1292827, (@SUBSET (cart R _1292827) (@ball _1292827 (@pair (cart R _1292827) R (@vec _1292827 (NUMERAL 0%N)) B)) (@closed_interval _1292827 (@cons (prod (cart R _1292827) (cart R _1292827)) (@pair (cart R _1292827) (cart R _1292827) a b) (@nil (prod (cart R _1292827) (cart R _1292827)))))) -> exists z : cart R _1292831, (@has_integral_compact_interval _1292827 _1292831 (fun x : cart R _1292827 => @COND (cart R _1292831) (@IN (cart R _1292827) x i) (f x) (@vec _1292831 (NUMERAL 0%N))) z (@closed_interval _1292827 (@cons (prod (cart R _1292827) (cart R _1292827)) (@pair (cart R _1292827) (cart R _1292827) a b) (@nil (prod (cart R _1292827) (cart R _1292827)))))) /\ (Rlt (@vector_norm _1292831 (@vector_sub _1292831 z y)) e)))). +Axiom thm_has_integral : forall {_1292926 _1292930 : Type'} (a : cart R _1292926) (b : cart R _1292926) (f : (cart R _1292926) -> cart R _1292930) (y : cart R _1292930), (@has_integral _1292926 _1292930 f y (@closed_interval _1292926 (@cons (prod (cart R _1292926) (cart R _1292926)) (@pair (cart R _1292926) (cart R _1292926) a b) (@nil (prod (cart R _1292926) (cart R _1292926)))))) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : (cart R _1292926) -> (cart R _1292926) -> Prop, (@gauge _1292926 d) /\ (forall p : (prod (cart R _1292926) ((cart R _1292926) -> Prop)) -> Prop, ((@tagged_division_of _1292926 p (@closed_interval _1292926 (@cons (prod (cart R _1292926) (cart R _1292926)) (@pair (cart R _1292926) (cart R _1292926) a b) (@nil (prod (cart R _1292926) (cart R _1292926)))))) /\ (@fine (cart R _1292926) (cart R _1292926) d p)) -> Rlt (@vector_norm _1292930 (@vector_sub _1292930 (@vsum (prod (cart R _1292926) ((cart R _1292926) -> Prop)) _1292930 p (@GABS ((prod (cart R _1292926) ((cart R _1292926) -> Prop)) -> cart R _1292930) (fun f' : (prod (cart R _1292926) ((cart R _1292926) -> Prop)) -> cart R _1292930 => forall x : cart R _1292926, forall k : (cart R _1292926) -> Prop, @GEQ (cart R _1292930) (f' (@pair (cart R _1292926) ((cart R _1292926) -> Prop) x k)) (@percent _1292930 (@content _1292926 k) (f x))))) y)) e)). +Axiom thm_has_integral_alt : forall {_1293071 _1293075 : Type'} (i : (cart R _1293071) -> Prop) (f : (cart R _1293071) -> cart R _1293075) (y : cart R _1293075), (@has_integral _1293071 _1293075 f y i) = (@COND Prop (exists a : cart R _1293071, exists b : cart R _1293071, i = (@closed_interval _1293071 (@cons (prod (cart R _1293071) (cart R _1293071)) (@pair (cart R _1293071) (cart R _1293071) a b) (@nil (prod (cart R _1293071) (cart R _1293071)))))) (@has_integral _1293071 _1293075 f y i) (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall a : cart R _1293071, forall b : cart R _1293071, (@SUBSET (cart R _1293071) (@ball _1293071 (@pair (cart R _1293071) R (@vec _1293071 (NUMERAL 0%N)) B)) (@closed_interval _1293071 (@cons (prod (cart R _1293071) (cart R _1293071)) (@pair (cart R _1293071) (cart R _1293071) a b) (@nil (prod (cart R _1293071) (cart R _1293071)))))) -> exists z : cart R _1293075, (@has_integral _1293071 _1293075 (fun x : cart R _1293071 => @COND (cart R _1293075) (@IN (cart R _1293071) x i) (f x) (@vec _1293075 (NUMERAL 0%N))) z (@closed_interval _1293071 (@cons (prod (cart R _1293071) (cart R _1293071)) (@pair (cart R _1293071) (cart R _1293071) a b) (@nil (prod (cart R _1293071) (cart R _1293071)))))) /\ (Rlt (@vector_norm _1293075 (@vector_sub _1293075 z y)) e)))). +Axiom thm_integrable_on : forall {_1293095 _1293096 : Type'}, forall f : (cart R _1293096) -> cart R _1293095, forall i : (cart R _1293096) -> Prop, (@integrable_on _1293095 _1293096 f i) = (exists y : cart R _1293095, @has_integral _1293096 _1293095 f y i). +Axiom thm_integral : forall {_1293110 _1293111 : Type'}, forall f : (cart R _1293111) -> cart R _1293110, forall i : (cart R _1293111) -> Prop, (@integral _1293110 _1293111 i f) = (@ε (cart R _1293110) (fun y : cart R _1293110 => @has_integral _1293111 _1293110 f y i)). +Axiom thm_INTEGRABLE_INTEGRAL : forall {_1293126 _1293135 : Type'}, forall f : (cart R _1293126) -> cart R _1293135, forall i : (cart R _1293126) -> Prop, (@integrable_on _1293135 _1293126 f i) -> @has_integral _1293126 _1293135 f (@integral _1293135 _1293126 i f) i. +Axiom thm_HAS_INTEGRAL_INTEGRABLE : forall {_1293154 _1293155 : Type'}, forall f : (cart R _1293155) -> cart R _1293154, forall i : cart R _1293154, forall s : (cart R _1293155) -> Prop, (@has_integral _1293155 _1293154 f i s) -> @integrable_on _1293154 _1293155 f s. +Axiom thm_HAS_INTEGRAL_INTEGRAL : forall {_1293174 _1293183 : Type'}, forall f : (cart R _1293174) -> cart R _1293183, forall s : (cart R _1293174) -> Prop, (@integrable_on _1293183 _1293174 f s) = (@has_integral _1293174 _1293183 f (@integral _1293183 _1293174 s f) s). +Axiom thm_VSUM_CONTENT_NULL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, (((@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (R_of_N (NUMERAL 0%N))) /\ (@tagged_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (f x))))) = (@vec N' (NUMERAL 0%N)). +Axiom thm_TAGGED_DIVISION_UNIONS_EXISTS : forall {M : Type'}, forall d : (cart R M) -> (cart R M) -> Prop, forall iset : ((cart R M) -> Prop) -> Prop, forall i : (cart R M) -> Prop, ((@FINITE ((cart R M) -> Prop) iset) /\ ((forall i' : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) i' iset) -> exists p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, (@tagged_division_of M p i') /\ (@fine (cart R M) (cart R M) d p)) /\ ((forall i1 : (cart R M) -> Prop, forall i2 : (cart R M) -> Prop, ((@IN ((cart R M) -> Prop) i1 iset) /\ ((@IN ((cart R M) -> Prop) i2 iset) /\ (~ (i1 = i2)))) -> (@INTER (cart R M) (@interior M i1) (@interior M i2)) = (@EMPTY (cart R M))) /\ ((@UNIONS (cart R M) iset) = i)))) -> exists p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, (@tagged_division_of M p i) /\ (@fine (cart R M) (cart R M) d p). +Axiom thm_DIVISION_OF_CLOSED : forall {_1293407 : Type'}, forall s : ((cart R _1293407) -> Prop) -> Prop, forall i : (cart R _1293407) -> Prop, (@division_of _1293407 s i) -> @closed _1293407 i. +Axiom thm_INTERVAL_BISECTION_STEP : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, ((P (@EMPTY (cart R N'))) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((P s) /\ ((P t) /\ ((@INTER (cart R N') (@interior N' s) (@interior N' t)) = (@EMPTY (cart R N'))))) -> P (@UNION (cart R N') s t))) -> forall a : cart R N', forall b : cart R N', (~ (P (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) -> exists c : cart R N', exists d : cart R N', (~ (P (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))))) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rle (@dollar R N' a i) (@dollar R N' c i)) /\ ((Rle (@dollar R N' c i) (@dollar R N' d i)) /\ ((Rle (@dollar R N' d i) (@dollar R N' b i)) /\ (Rle (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rminus (@dollar R N' d i) (@dollar R N' c i))) (Rminus (@dollar R N' b i) (@dollar R N' a i)))))). +Axiom thm_INTERVAL_BISECTION : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, ((P (@EMPTY (cart R N'))) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((P s) /\ ((P t) /\ ((@INTER (cart R N') (@interior N' s) (@interior N' t)) = (@EMPTY (cart R N'))))) -> P (@UNION (cart R N') s t))) -> forall a : cart R N', forall b : cart R N', (~ (P (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) -> exists x : cart R N', (@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : cart R N', exists d : cart R N', (@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) /\ ((@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (@ball N' (@pair (cart R N') R x e))) /\ ((@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (~ (P (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))))))). +Axiom thm_FINE_DIVISION_EXISTS : forall {M : Type'}, forall g : (cart R M) -> (cart R M) -> Prop, forall a : cart R M, forall b : cart R M, (@gauge M g) -> exists p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, (@tagged_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@fine (cart R M) (cart R M) g p). +Axiom thm_HAS_INTEGRAL_UNIQUE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : (cart R M) -> Prop, forall k1 : cart R N', forall k2 : cart R N', ((@has_integral M N' f k1 i) /\ (@has_integral M N' f k2 i)) -> k1 = k2. +Axiom thm_INTEGRAL_UNIQUE : forall {_1295443 _1295444 : Type'}, forall f : (cart R _1295444) -> cart R _1295443, forall y : cart R _1295443, forall k : (cart R _1295444) -> Prop, (@has_integral _1295444 _1295443 f y k) -> (@integral _1295443 _1295444 k f) = y. +Axiom thm_HAS_INTEGRAL_INTEGRABLE_INTEGRAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : cart R N', forall s : (cart R M) -> Prop, (@has_integral M N' f i s) = ((@integrable_on N' M f s) /\ ((@integral N' M s f) = i)). +Axiom thm_INTEGRAL_EQ_HAS_INTEGRAL : forall {_1295502 _1295503 : Type'}, forall s : (cart R _1295503) -> Prop, forall f : (cart R _1295503) -> cart R _1295502, forall y : cart R _1295502, (@integrable_on _1295502 _1295503 f s) -> ((@integral _1295502 _1295503 s f) = y) = (@has_integral _1295503 _1295502 f y s). +Axiom thm_HAS_INTEGRAL_IS_0 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (@vec N' (NUMERAL 0%N))) -> @has_integral M N' f (@vec N' (NUMERAL 0%N)) s. +Axiom thm_HAS_INTEGRAL_0 : forall {_1295668 _1295674 : Type'}, forall s : (cart R _1295668) -> Prop, @has_integral _1295668 _1295674 (fun x : cart R _1295668 => @vec _1295674 (NUMERAL 0%N)) (@vec _1295674 (NUMERAL 0%N)) s. +Axiom thm_HAS_INTEGRAL_0_EQ : forall {_1295690 _1295699 : Type'}, forall i : cart R _1295699, forall s : (cart R _1295690) -> Prop, (@has_integral _1295690 _1295699 (fun x : cart R _1295690 => @vec _1295699 (NUMERAL 0%N)) i s) = (i = (@vec _1295699 (NUMERAL 0%N))). +Axiom thm_HAS_INTEGRAL_LINEAR : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall y : cart R N', forall s : (cart R M) -> Prop, forall h : (cart R N') -> cart R P, ((@has_integral M N' f y s) /\ (@linear N' P h)) -> @has_integral M P (@o (cart R M) (cart R N') (cart R P) h f) (h y) s. +Axiom thm_HAS_INTEGRAL_CMUL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall k : cart R N', forall s : (cart R M) -> Prop, forall c : R, (@has_integral M N' f k s) -> @has_integral M N' (fun x : cart R M => @percent N' c (f x)) (@percent N' c k) s. +Axiom thm_HAS_INTEGRAL_NEG : forall {_1295969 _1295982 : Type'}, forall f : (cart R _1295969) -> cart R _1295982, forall k : cart R _1295982, forall s : (cart R _1295969) -> Prop, (@has_integral _1295969 _1295982 f k s) -> @has_integral _1295969 _1295982 (fun x : cart R _1295969 => @vector_neg _1295982 (f x)) (@vector_neg _1295982 k) s. +Axiom thm_HAS_INTEGRAL_ADD : forall {M N' : Type'} (k : cart R N') (l : cart R N'), forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@has_integral M N' f k s) /\ (@has_integral M N' g l s)) -> @has_integral M N' (fun x : cart R M => @vector_add N' (f x) (g x)) (@vector_add N' k l) s. +Axiom thm_HAS_INTEGRAL_SUB : forall {M N' : Type'} (k : cart R N') (l : cart R N'), forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@has_integral M N' f k s) /\ (@has_integral M N' g l s)) -> @has_integral M N' (fun x : cart R M => @vector_sub N' (f x) (g x)) (@vector_sub N' k l) s. +Axiom thm_INTEGRAL_0 : forall {_1296391 _1296398 : Type'}, forall s : (cart R _1296391) -> Prop, (@integral _1296398 _1296391 s (fun x : cart R _1296391 => @vec _1296398 (NUMERAL 0%N))) = (@vec _1296398 (NUMERAL 0%N)). +Axiom thm_INTEGRAL_ADD : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ (@integrable_on N' M g s)) -> (@integral N' M s (fun x : cart R M => @vector_add N' (f x) (g x))) = (@vector_add N' (@integral N' M s f) (@integral N' M s g)). +Axiom thm_INTEGRAL_CMUL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : R, forall s : (cart R M) -> Prop, (@integrable_on N' M f s) -> (@integral N' M s (fun x : cart R M => @percent N' c (f x))) = (@percent N' c (@integral N' M s f)). +Axiom thm_INTEGRAL_NEG : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@integrable_on N' M f s) -> (@integral N' M s (fun x : cart R M => @vector_neg N' (f x))) = (@vector_neg N' (@integral N' M s f)). +Axiom thm_INTEGRAL_SUB : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ (@integrable_on N' M g s)) -> (@integral N' M s (fun x : cart R M => @vector_sub N' (f x) (g x))) = (@vector_sub N' (@integral N' M s f) (@integral N' M s g)). +Axiom thm_INTEGRABLE_0 : forall {_1296615 _1296619 : Type'}, forall s : (cart R _1296615) -> Prop, @integrable_on _1296619 _1296615 (fun x : cart R _1296615 => @vec _1296619 (NUMERAL 0%N)) s. +Axiom thm_INTEGRABLE_ADD : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ (@integrable_on N' M g s)) -> @integrable_on N' M (fun x : cart R M => @vector_add N' (f x) (g x)) s. +Axiom thm_INTEGRABLE_CMUL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : R, forall s : (cart R M) -> Prop, (@integrable_on N' M f s) -> @integrable_on N' M (fun x : cart R M => @percent N' c (f x)) s. +Axiom thm_INTEGRABLE_CMUL_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall c : R, (@integrable_on N' M (fun x : cart R M => @percent N' c (f x)) s) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@integrable_on N' M f s)). +Axiom thm_INTEGRABLE_NEG : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@integrable_on N' M f s) -> @integrable_on N' M (fun x : cart R M => @vector_neg N' (f x)) s. +Axiom thm_INTEGRABLE_NEG_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@integrable_on N' M (fun x : cart R M => @vector_neg N' (f x)) s) = (@integrable_on N' M f s). +Axiom thm_INTEGRABLE_SUB : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ (@integrable_on N' M g s)) -> @integrable_on N' M (fun x : cart R M => @vector_sub N' (f x) (g x)) s. +Axiom thm_INTEGRABLE_LINEAR : forall {_1296856 _1296857 _1296860 : Type'}, forall f : (cart R _1296857) -> cart R _1296856, forall h : (cart R _1296856) -> cart R _1296860, forall s : (cart R _1296857) -> Prop, ((@integrable_on _1296856 _1296857 f s) /\ (@linear _1296856 _1296860 h)) -> @integrable_on _1296860 _1296857 (@o (cart R _1296857) (cart R _1296856) (cart R _1296860) h f) s. +Axiom thm_INTEGRAL_LINEAR : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall h : (cart R N') -> cart R P, ((@integrable_on N' M f s) /\ (@linear N' P h)) -> (@integral P M s (@o (cart R M) (cart R N') (cart R P) h f)) = (h (@integral N' M s f)). +Axiom thm_HAS_INTEGRAL_VSUM : forall {A M N' : Type'} (i : A -> cart R N'), forall f : A -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (forall a : A, (@IN A a t) -> @has_integral M N' (f a) (i a) s)) -> @has_integral M N' (fun x : cart R M => @vsum A N' t (fun a : A => f a x)) (@vsum A N' t i) s. +Axiom thm_INTEGRAL_VSUM : forall {A M N' : Type'}, forall f : A -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (forall a : A, (@IN A a t) -> @integrable_on N' M (f a) s)) -> (@integral N' M s (fun x : cart R M => @vsum A N' t (fun a : A => f a x))) = (@vsum A N' t (fun a : A => @integral N' M s (f a))). +Axiom thm_INTEGRABLE_VSUM : forall {A M N' : Type'}, forall f : A -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (forall a : A, (@IN A a t) -> @integrable_on N' M (f a) s)) -> @integrable_on N' M (fun x : cart R M => @vsum A N' t (fun a : A => f a x)) s. +Axiom thm_HAS_INTEGRAL_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall k : cart R N', forall s : (cart R M) -> Prop, ((forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (g x)) /\ (@has_integral M N' f k s)) -> @has_integral M N' g k s. +Axiom thm_INTEGRABLE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (g x)) /\ (@integrable_on N' M f s)) -> @integrable_on N' M g s. +Axiom thm_HAS_INTEGRAL_EQ_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall k : cart R N', forall s : (cart R M) -> Prop, (forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (g x)) -> (@has_integral M N' f k s) = (@has_integral M N' g k s). +Axiom thm_HAS_INTEGRAL_NULL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, ((@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (R_of_N (NUMERAL 0%N))) -> @has_integral M N' f (@vec N' (NUMERAL 0%N)) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_HAS_INTEGRAL_NULL_EQ : forall {_1297371 _1297373 : Type'}, forall f : (cart R _1297373) -> cart R _1297371, forall a : cart R _1297373, forall b : cart R _1297373, forall i : cart R _1297371, ((@content _1297373 (@closed_interval _1297373 (@cons (prod (cart R _1297373) (cart R _1297373)) (@pair (cart R _1297373) (cart R _1297373) a b) (@nil (prod (cart R _1297373) (cart R _1297373)))))) = (R_of_N (NUMERAL 0%N))) -> (@has_integral _1297373 _1297371 f i (@closed_interval _1297373 (@cons (prod (cart R _1297373) (cart R _1297373)) (@pair (cart R _1297373) (cart R _1297373) a b) (@nil (prod (cart R _1297373) (cart R _1297373)))))) = (i = (@vec _1297371 (NUMERAL 0%N))). +Axiom thm_INTEGRAL_NULL : forall {_1297426 _1297428 : Type'}, forall f : (cart R _1297428) -> cart R _1297426, forall a : cart R _1297428, forall b : cart R _1297428, ((@content _1297428 (@closed_interval _1297428 (@cons (prod (cart R _1297428) (cart R _1297428)) (@pair (cart R _1297428) (cart R _1297428) a b) (@nil (prod (cart R _1297428) (cart R _1297428)))))) = (R_of_N (NUMERAL 0%N))) -> (@integral _1297426 _1297428 (@closed_interval _1297428 (@cons (prod (cart R _1297428) (cart R _1297428)) (@pair (cart R _1297428) (cart R _1297428) a b) (@nil (prod (cart R _1297428) (cart R _1297428))))) f) = (@vec _1297426 (NUMERAL 0%N)). +Axiom thm_INTEGRABLE_ON_NULL : forall {_1297465 _1297478 : Type'}, forall f : (cart R _1297478) -> cart R _1297465, forall a : cart R _1297478, forall b : cart R _1297478, ((@content _1297478 (@closed_interval _1297478 (@cons (prod (cart R _1297478) (cart R _1297478)) (@pair (cart R _1297478) (cart R _1297478) a b) (@nil (prod (cart R _1297478) (cart R _1297478)))))) = (R_of_N (NUMERAL 0%N))) -> @integrable_on _1297465 _1297478 f (@closed_interval _1297478 (@cons (prod (cart R _1297478) (cart R _1297478)) (@pair (cart R _1297478) (cart R _1297478) a b) (@nil (prod (cart R _1297478) (cart R _1297478))))). +Axiom thm_HAS_INTEGRAL_EMPTY : forall {_1297490 _1297492 : Type'}, forall f : (cart R _1297490) -> cart R _1297492, @has_integral _1297490 _1297492 f (@vec _1297492 (NUMERAL 0%N)) (@EMPTY (cart R _1297490)). +Axiom thm_HAS_INTEGRAL_EMPTY_EQ : forall {_1297509 _1297515 : Type'}, forall f : (cart R _1297509) -> cart R _1297515, forall i : cart R _1297515, (@has_integral _1297509 _1297515 f i (@EMPTY (cart R _1297509))) = (i = (@vec _1297515 (NUMERAL 0%N))). +Axiom thm_INTEGRABLE_ON_EMPTY : forall {_1297523 _1297524 : Type'}, forall f : (cart R _1297524) -> cart R _1297523, @integrable_on _1297523 _1297524 f (@EMPTY (cart R _1297524)). +Axiom thm_INTEGRAL_EMPTY : forall {_1297536 _1297540 : Type'}, forall f : (cart R _1297536) -> cart R _1297540, (@integral _1297540 _1297536 (@EMPTY (cart R _1297536)) f) = (@vec _1297540 (NUMERAL 0%N)). +Axiom thm_HAS_INTEGRAL_REFL : forall {_1297556 _1297567 : Type'}, forall f : (cart R _1297567) -> cart R _1297556, forall a : cart R _1297567, @has_integral _1297567 _1297556 f (@vec _1297556 (NUMERAL 0%N)) (@closed_interval _1297567 (@cons (prod (cart R _1297567) (cart R _1297567)) (@pair (cart R _1297567) (cart R _1297567) a a) (@nil (prod (cart R _1297567) (cart R _1297567))))). +Axiom thm_INTEGRABLE_ON_REFL : forall {_1297580 _1297592 : Type'}, forall f : (cart R _1297592) -> cart R _1297580, forall a : cart R _1297592, @integrable_on _1297580 _1297592 f (@closed_interval _1297592 (@cons (prod (cart R _1297592) (cart R _1297592)) (@pair (cart R _1297592) (cart R _1297592) a a) (@nil (prod (cart R _1297592) (cart R _1297592))))). +Axiom thm_INTEGRAL_REFL : forall {_1297621 _1297622 : Type'}, forall f : (cart R _1297622) -> cart R _1297621, forall a : cart R _1297622, (@integral _1297621 _1297622 (@closed_interval _1297622 (@cons (prod (cart R _1297622) (cart R _1297622)) (@pair (cart R _1297622) (cart R _1297622) a a) (@nil (prod (cart R _1297622) (cart R _1297622))))) f) = (@vec _1297621 (NUMERAL 0%N)). +Axiom thm_INTEGRABLE_CAUCHY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : (cart R M) -> (cart R M) -> Prop, (@gauge M d) /\ (forall p1 : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, forall p2 : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@tagged_division_of M p1 (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@fine (cart R M) (cart R M) d p1) /\ ((@tagged_division_of M p2 (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@fine (cart R M) (cart R M) d p2)))) -> Rlt (@vector_norm N' (@vector_sub N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p1 (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (f x))))) (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p2 (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (f x))))))) e)). +Axiom thm_INTERVAL_SPLIT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> ((@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5807 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5807 (Rle (@dollar R N' x k) c) x))) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a (@lambda R N' (fun i : N => @COND R (i = k) (Rmin (@dollar R N' b k) c) (@dollar R N' b i)))) (@nil (prod (cart R N') (cart R N')))))) /\ ((@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5808 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5808 (Rge (@dollar R N' x k) c) x))) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@lambda R N' (fun i : N => @COND R (i = k) (Rmax (@dollar R N' a k) c) (@dollar R N' a i))) b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_CONTENT_SPLIT : forall {N' : Type'} (c : R), forall a : cart R N', forall b : cart R N', forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (Rplus (@content N' (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5809 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5809 (Rle (@dollar R N' x k) c) x)))) (@content N' (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5810 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5810 (Rge (@dollar R N' x k) c) x))))). +Axiom thm_DIVISION_SPLIT_RIGHT_INJ : forall {N' : Type'}, forall d : ((cart R N') -> Prop) -> Prop, forall i : (cart R N') -> Prop, forall k1 : (cart R N') -> Prop, forall k2 : (cart R N') -> Prop, forall k : N, forall c : R, ((@division_of N' d i) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@IN ((cart R N') -> Prop) k1 d) /\ ((@IN ((cart R N') -> Prop) k2 d) /\ ((~ (k1 = k2)) /\ ((@INTER (cart R N') k1 (@GSPEC (cart R N') (fun GEN_PVAR_5818 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5818 (Rge (@dollar R N' x k) c) x))) = (@INTER (cart R N') k2 (@GSPEC (cart R N') (fun GEN_PVAR_5819 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5819 (Rge (@dollar R N' x k) c) x)))))))))) -> (@content N' (@INTER (cart R N') k1 (@GSPEC (cart R N') (fun GEN_PVAR_5820 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5820 (Rge (@dollar R N' x k) c) x)))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DIVISION_SPLIT_LEFT_INJ : forall {N' : Type'}, forall d : ((cart R N') -> Prop) -> Prop, forall i : (cart R N') -> Prop, forall k1 : (cart R N') -> Prop, forall k2 : (cart R N') -> Prop, forall k : N, forall c : R, ((@division_of N' d i) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@IN ((cart R N') -> Prop) k1 d) /\ ((@IN ((cart R N') -> Prop) k2 d) /\ ((~ (k1 = k2)) /\ ((@INTER (cart R N') k1 (@GSPEC (cart R N') (fun GEN_PVAR_5815 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5815 (Rle (@dollar R N' x k) c) x))) = (@INTER (cart R N') k2 (@GSPEC (cart R N') (fun GEN_PVAR_5816 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5816 (Rle (@dollar R N' x k) c) x)))))))))) -> (@content N' (@INTER (cart R N') k1 (@GSPEC (cart R N') (fun GEN_PVAR_5817 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5817 (Rle (@dollar R N' x k) c) x)))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_TAGGED_DIVISION_SPLIT_LEFT_INJ : forall {N' : Type'}, forall d : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall i : (cart R N') -> Prop, forall x1 : cart R N', forall k1 : (cart R N') -> Prop, forall x2 : cart R N', forall k2 : (cart R N') -> Prop, forall k : N, forall c : R, ((@tagged_division_of N' d i) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@IN (prod (cart R N') ((cart R N') -> Prop)) (@pair (cart R N') ((cart R N') -> Prop) x1 k1) d) /\ ((@IN (prod (cart R N') ((cart R N') -> Prop)) (@pair (cart R N') ((cart R N') -> Prop) x2 k2) d) /\ ((~ (k1 = k2)) /\ ((@INTER (cart R N') k1 (@GSPEC (cart R N') (fun GEN_PVAR_5821 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5821 (Rle (@dollar R N' x k) c) x))) = (@INTER (cart R N') k2 (@GSPEC (cart R N') (fun GEN_PVAR_5822 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5822 (Rle (@dollar R N' x k) c) x)))))))))) -> (@content N' (@INTER (cart R N') k1 (@GSPEC (cart R N') (fun GEN_PVAR_5823 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5823 (Rle (@dollar R N' x k) c) x)))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_TAGGED_DIVISION_SPLIT_RIGHT_INJ : forall {N' : Type'}, forall d : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall i : (cart R N') -> Prop, forall x1 : cart R N', forall k1 : (cart R N') -> Prop, forall x2 : cart R N', forall k2 : (cart R N') -> Prop, forall k : N, forall c : R, ((@tagged_division_of N' d i) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@IN (prod (cart R N') ((cart R N') -> Prop)) (@pair (cart R N') ((cart R N') -> Prop) x1 k1) d) /\ ((@IN (prod (cart R N') ((cart R N') -> Prop)) (@pair (cart R N') ((cart R N') -> Prop) x2 k2) d) /\ ((~ (k1 = k2)) /\ ((@INTER (cart R N') k1 (@GSPEC (cart R N') (fun GEN_PVAR_5824 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5824 (Rge (@dollar R N' x k) c) x))) = (@INTER (cart R N') k2 (@GSPEC (cart R N') (fun GEN_PVAR_5825 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5825 (Rge (@dollar R N' x k) c) x)))))))))) -> (@content N' (@INTER (cart R N') k1 (@GSPEC (cart R N') (fun GEN_PVAR_5826 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5826 (Rge (@dollar R N' x k) c) x)))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_DIVISION_SPLIT : forall {N' : Type'}, forall p : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, forall k : N, forall c : R, ((@division_of N' p s) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@division_of N' (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5834 : (cart R N') -> Prop => exists l : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5834 ((@IN ((cart R N') -> Prop) l p) /\ (~ ((@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5833 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5833 (Rle (@dollar R N' x k) c) x))) = (@EMPTY (cart R N'))))) (@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5832 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5832 (Rle (@dollar R N' x k) c) x))))) (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5835 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5835 (Rle (@dollar R N' x k) c) x)))) /\ (@division_of N' (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5840 : (cart R N') -> Prop => exists l : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5840 ((@IN ((cart R N') -> Prop) l p) /\ (~ ((@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5839 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5839 (Rge (@dollar R N' x k) c) x))) = (@EMPTY (cart R N'))))) (@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5838 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5838 (Rge (@dollar R N' x k) c) x))))) (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_5841 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5841 (Rge (@dollar R N' x k) c) x)))). +Axiom thm_HAS_INTEGRAL_SPLIT : forall {M N' : Type'} (i : cart R N') (j : cart R N'), forall f : (cart R M) -> cart R N', forall k : N, forall a : cart R M, forall b : cart R M, forall c : R, ((@has_integral M N' f i (@INTER (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@GSPEC (cart R M) (fun GEN_PVAR_5859 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5859 (Rle (@dollar R M x k) c) x)))) /\ ((@has_integral M N' f j (@INTER (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@GSPEC (cart R M) (fun GEN_PVAR_5860 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5860 (Rge (@dollar R M x k) c) x)))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex M (@UNIV M)))))) -> @has_integral M N' f (@vector_add N' i j) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_TAGGED_DIVISION_UNION_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall p1 : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall p2 : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall c : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@tagged_division_of N' p1 (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5863 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5863 (Rle (@dollar R N' x k) c) x)))) /\ (@tagged_division_of N' p2 (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5864 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5864 (Rge (@dollar R N' x k) c) x))))))) -> @tagged_division_of N' (@UNION (prod (cart R N') ((cart R N') -> Prop)) p1 p2) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_HAS_INTEGRAL_SEPARATE_SIDES : forall {M N' : Type'} (c : R), forall f : (cart R M) -> cart R N', forall i : cart R N', forall a : cart R M, forall b : cart R M, forall k : N, ((@has_integral M N' f i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex M (@UNIV M))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : (cart R M) -> (cart R M) -> Prop, (@gauge M d) /\ (forall p1 : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, forall p2 : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@tagged_division_of M p1 (@INTER (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@GSPEC (cart R M) (fun GEN_PVAR_5867 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5867 (Rle (@dollar R M x k) c) x)))) /\ ((@fine (cart R M) (cart R M) d p1) /\ ((@tagged_division_of M p2 (@INTER (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@GSPEC (cart R M) (fun GEN_PVAR_5868 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5868 (Rge (@dollar R M x k) c) x)))) /\ (@fine (cart R M) (cart R M) d p2)))) -> Rlt (@vector_norm N' (@vector_sub N' (@vector_add N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p1 (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k' : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k')) (@percent N' (@content M k') (f x))))) (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p2 (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k' : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k')) (@percent N' (@content M k') (f x)))))) i)) e). +Axiom thm_INTEGRABLE_SPLIT : forall {M N' : Type'} (k : N) (c : R), forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex M (@UNIV M))))) -> (@integrable_on N' M f (@INTER (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@GSPEC (cart R M) (fun GEN_PVAR_5869 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5869 (Rle (@dollar R M x k) c) x)))) /\ (@integrable_on N' M f (@INTER (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@GSPEC (cart R M) (fun GEN_PVAR_5870 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5870 (Rge (@dollar R M x k) c) x)))). +Axiom thm_operative : forall {A N' : Type'}, forall op : A -> A -> A, forall f : ((cart R N') -> Prop) -> A, (@operative A N' op f) = ((forall a : cart R N', forall b : cart R N', ((@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N))) -> (f (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@neutral A op)) /\ (forall a : cart R N', forall b : cart R N', forall c : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (f (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (op (f (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5871 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5871 (Rle (@dollar R N' x k) c) x)))) (f (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5872 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5872 (Rge (@dollar R N' x k) c) x))))))). +Axiom thm_OPERATIVE_TRIVIAL : forall {_1301960 _1301977 : Type'}, forall op : _1301960 -> _1301960 -> _1301960, forall f : ((cart R _1301977) -> Prop) -> _1301960, forall a : cart R _1301977, forall b : cart R _1301977, ((@operative _1301960 _1301977 op f) /\ ((@content _1301977 (@closed_interval _1301977 (@cons (prod (cart R _1301977) (cart R _1301977)) (@pair (cart R _1301977) (cart R _1301977) a b) (@nil (prod (cart R _1301977) (cart R _1301977)))))) = (R_of_N (NUMERAL 0%N)))) -> (f (@closed_interval _1301977 (@cons (prod (cart R _1301977) (cart R _1301977)) (@pair (cart R _1301977) (cart R _1301977) a b) (@nil (prod (cart R _1301977) (cart R _1301977)))))) = (@neutral _1301960 op). +Axiom thm_PROPERTY_EMPTY_INTERVAL : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> Prop, (forall a : cart R N', forall b : cart R N', ((@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (R_of_N (NUMERAL 0%N))) -> P (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> P (@EMPTY (cart R N')). +Axiom thm_OPERATIVE_EMPTY : forall {A N' : Type'}, forall op : A -> A -> A, forall f : ((cart R N') -> Prop) -> A, (@operative A N' op f) -> (f (@EMPTY (cart R N'))) = (@neutral A op). +Axiom thm_FORALL_OPTION : forall {_1302070 : Type'} (P : (option _1302070) -> Prop), (forall x : option _1302070, P x) = ((P (@None _1302070)) /\ (forall x : _1302070, P (@Some _1302070 x))). +Axiom thm_EXISTS_OPTION : forall {_1302089 : Type'} (P : (option _1302089) -> Prop), (exists x : option _1302089, P x) = ((P (@None _1302089)) \/ (exists x : _1302089, P (@Some _1302089 x))). +Axiom thm_NEUTRAL_LIFTED : forall {_1302143 : Type'}, forall op : _1302143 -> _1302143 -> _1302143, (@monoidal _1302143 op) -> (@neutral (option _1302143) (@lifted _1302143 _1302143 op)) = (@Some _1302143 (@neutral _1302143 op)). +Axiom thm_MONOIDAL_LIFTED : forall {_1302155 : Type'}, forall op : _1302155 -> _1302155 -> _1302155, (@monoidal _1302155 op) -> @monoidal (option _1302155) (@lifted _1302155 _1302155 op). +Axiom thm_ITERATE_SOME : forall {_1302197 _1302198 : Type'}, forall op : _1302198 -> _1302198 -> _1302198, (@monoidal _1302198 op) -> forall f : _1302197 -> _1302198, forall s : _1302197 -> Prop, (@FINITE _1302197 s) -> (@iterate _1302197 (option _1302198) (@lifted _1302198 _1302198 op) s (fun x : _1302197 => @Some _1302198 (f x))) = (@Some _1302198 (@iterate _1302197 _1302198 op s f)). +Axiom thm_OPERATIVE_CONTENT : forall {_1302211 : Type'}, @operative R _1302211 Rplus (@content _1302211). +Axiom thm_OPERATIVE_INTEGRAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', @operative (option (cart R N')) M (@lifted (cart R N') (cart R N') (@vector_add N')) (fun i : (cart R M) -> Prop => @COND (option (cart R N')) (@integrable_on N' M f i) (@Some (cart R N') (@integral N' M i f)) (@None (cart R N'))). +Axiom thm_division_points : forall {N' : Type'}, forall k : (cart R N') -> Prop, forall d : ((cart R N') -> Prop) -> Prop, (@division_points N' k d) = (@GSPEC (prod N R) (fun GEN_PVAR_5873 : prod N R => exists j : N, exists x : R, @SETSPEC (prod N R) GEN_PVAR_5873 ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ ((Rlt (@dollar R N' (@interval_lowerbound N' k) j) x) /\ ((Rlt x (@dollar R N' (@interval_upperbound N' k) j)) /\ (exists i : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) i d) /\ (((@dollar R N' (@interval_lowerbound N' i) j) = x) \/ ((@dollar R N' (@interval_upperbound N' i) j) = x))))))) (@pair N R j x))). +Axiom thm_DIVISION_POINTS_FINITE : forall {N' : Type'}, forall d : ((cart R N') -> Prop) -> Prop, forall i : (cart R N') -> Prop, (@division_of N' d i) -> @FINITE (prod N R) (@division_points N' i d). +Axiom thm_DIVISION_POINTS_SUBSET : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : R, forall d : ((cart R N') -> Prop) -> Prop, forall k : N, ((@division_of N' d (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (@dollar R N' a i) (@dollar R N' b i)) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((Rlt (@dollar R N' a k) c) /\ (Rlt c (@dollar R N' b k))))))) -> (@SUBSET (prod N R) (@division_points N' (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5874 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5874 (Rle (@dollar R N' x k) c) x))) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5879 : (cart R N') -> Prop => exists l : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5879 ((@IN ((cart R N') -> Prop) l d) /\ (~ ((@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5878 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5878 (Rle (@dollar R N' x k) c) x))) = (@EMPTY (cart R N'))))) (@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5877 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5877 (Rle (@dollar R N' x k) c) x)))))) (@division_points N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) d)) /\ (@SUBSET (prod N R) (@division_points N' (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5880 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5880 (Rge (@dollar R N' x k) c) x))) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5885 : (cart R N') -> Prop => exists l : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5885 ((@IN ((cart R N') -> Prop) l d) /\ (~ ((@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5884 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5884 (Rge (@dollar R N' x k) c) x))) = (@EMPTY (cart R N'))))) (@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5883 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5883 (Rge (@dollar R N' x k) c) x)))))) (@division_points N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) d)). +Axiom thm_DIVISION_POINTS_PSUBSET : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : R, forall d : ((cart R N') -> Prop) -> Prop, forall k : N, ((@division_of N' d (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rlt (@dollar R N' a i) (@dollar R N' b i)) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((Rlt (@dollar R N' a k) c) /\ ((Rlt c (@dollar R N' b k)) /\ (exists l : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) l d) /\ (((@dollar R N' (@interval_lowerbound N' l) k) = c) \/ ((@dollar R N' (@interval_upperbound N' l) k) = c))))))))) -> (@PSUBSET (prod N R) (@division_points N' (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5886 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5886 (Rle (@dollar R N' x k) c) x))) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5891 : (cart R N') -> Prop => exists l : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5891 ((@IN ((cart R N') -> Prop) l d) /\ (~ ((@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5890 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5890 (Rle (@dollar R N' x k) c) x))) = (@EMPTY (cart R N'))))) (@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5889 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5889 (Rle (@dollar R N' x k) c) x)))))) (@division_points N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) d)) /\ (@PSUBSET (prod N R) (@division_points N' (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5892 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5892 (Rge (@dollar R N' x k) c) x))) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5897 : (cart R N') -> Prop => exists l : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5897 ((@IN ((cart R N') -> Prop) l d) /\ (~ ((@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5896 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5896 (Rge (@dollar R N' x k) c) x))) = (@EMPTY (cart R N'))))) (@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5895 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5895 (Rge (@dollar R N' x k) c) x)))))) (@division_points N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) d)). +Axiom thm_OPERATIVE_DIVISION : forall {A N' : Type'}, forall op : A -> A -> A, forall d : ((cart R N') -> Prop) -> Prop, forall a : cart R N', forall b : cart R N', forall f : ((cart R N') -> Prop) -> A, ((@monoidal A op) /\ ((@operative A N' op f) /\ (@division_of N' d (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))))) -> (@iterate ((cart R N') -> Prop) A op d f) = (f (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_OPERATIVE_TAGGED_DIVISION : forall {A N' : Type'}, forall op : A -> A -> A, forall d : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall a : cart R N', forall b : cart R N', forall f : ((cart R N') -> Prop) -> A, ((@monoidal A op) /\ ((@operative A N' op f) /\ (@tagged_division_of N' d (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))))) -> (@iterate (prod (cart R N') ((cart R N') -> Prop)) A op d (@GABS ((prod (cart R N') ((cart R N') -> Prop)) -> A) (fun f' : (prod (cart R N') ((cart R N') -> Prop)) -> A => forall x : cart R N', forall l : (cart R N') -> Prop, @GEQ A (f' (@pair (cart R N') ((cart R N') -> Prop) x l)) (f l)))) = (f (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_ADDITIVE_CONTENT_DIVISION : forall {N' : Type'}, forall d : ((cart R N') -> Prop) -> Prop, forall a : cart R N', forall b : cart R N', (@division_of N' d (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> (@sum ((cart R N') -> Prop) d (@content N')) = (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_ADDITIVE_CONTENT_TAGGED_DIVISION : forall {N' : Type'}, forall d : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall a : cart R N', forall b : cart R N', (@tagged_division_of N' d (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> (@sum (prod (cart R N') ((cart R N') -> Prop)) d (@GABS ((prod (cart R N') ((cart R N') -> Prop)) -> R) (fun f : (prod (cart R N') ((cart R N') -> Prop)) -> R => forall x : cart R N', forall l : (cart R N') -> Prop, @GEQ R (f (@pair (cart R N') ((cart R N') -> Prop) x l)) (@content N' l)))) = (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_SUBADDITIVE_CONTENT_DIVISION : forall {M : Type'}, forall d : ((cart R M) -> Prop) -> Prop, forall s : (cart R M) -> Prop, forall a : cart R M, forall b : cart R M, ((@division_of M d s) /\ (@SUBSET (cart R M) s (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> Rle (@sum ((cart R M) -> Prop) d (@content M)) (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_HAS_INTEGRAL_CONST : forall {M N' : Type'}, forall a : cart R M, forall b : cart R M, forall c : cart R N', @has_integral M N' (fun x : cart R M => c) (@percent N' (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) c) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_INTEGRABLE_CONST : forall {M N' : Type'}, forall a : cart R M, forall b : cart R M, forall c : cart R N', @integrable_on N' M (fun x : cart R M => c) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_INTEGRAL_CONST : forall {_1304813 _1304827 : Type'}, forall a : cart R _1304827, forall b : cart R _1304827, forall c : cart R _1304813, (@integral _1304813 _1304827 (@closed_interval _1304827 (@cons (prod (cart R _1304827) (cart R _1304827)) (@pair (cart R _1304827) (cart R _1304827) a b) (@nil (prod (cart R _1304827) (cart R _1304827))))) (fun x : cart R _1304827 => c)) = (@percent _1304813 (@content _1304827 (@closed_interval _1304827 (@cons (prod (cart R _1304827) (cart R _1304827)) (@pair (cart R _1304827) (cart R _1304827) a b) (@nil (prod (cart R _1304827) (cart R _1304827)))))) c). +Axiom thm_INTEGRAL_PASTECART_CONST : forall {M N' P : Type'}, forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', forall k : cart R P, (@integral P (finite_sum M N') (@closed_interval (finite_sum M N') (@cons (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))) (@pair (cart R (finite_sum M N')) (cart R (finite_sum M N')) (@pastecart R M N' a c) (@pastecart R M N' b d)) (@nil (prod (cart R (finite_sum M N')) (cart R (finite_sum M N')))))) (fun x : cart R (finite_sum M N') => k)) = (@integral P M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => @integral P N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (fun y : cart R N' => k))). +Axiom thm_DSUM_BOUND : forall {M N' : Type'}, forall p : ((cart R M) -> Prop) -> Prop, forall a : cart R M, forall b : cart R M, forall c : cart R N', forall e : R, ((@division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (Rle (@vector_norm N' c) e)) -> Rle (@vector_norm N' (@vsum ((cart R M) -> Prop) N' p (fun l : (cart R M) -> Prop => @percent N' (@content M l) c))) (Rmult e (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))). +Axiom thm_RSUM_BOUND : forall {M N' : Type'}, forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, forall a : cart R M, forall b : cart R M, forall f : (cart R M) -> cart R N', forall e : R, ((@tagged_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@vector_norm N' (f x)) e)) -> Rle (@vector_norm N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (f x)))))) (Rmult e (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))). +Axiom thm_RSUM_DIFF_BOUND : forall {M N' : Type'} (e : R), forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, forall a : cart R M, forall b : cart R M, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@tagged_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (g x))) e)) -> Rle (@vector_norm N' (@vector_sub N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (f x))))) (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (g x))))))) (Rmult e (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))). +Axiom thm_HAS_INTEGRAL_BOUND : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall i : cart R N', forall B : R, ((Rle (R_of_N (NUMERAL 0%N)) B) /\ ((@has_integral M N' f i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@vector_norm N' (f x)) B))) -> Rle (@vector_norm N' i) (Rmult B (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))). +Axiom thm_RSUM_COMPONENT_LE : forall {M N' : Type'} (i : N), forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, forall a : cart R M, forall b : cart R M, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@tagged_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@dollar R N' (f x) i) (@dollar R N' (g x) i))))) -> Rle (@dollar R N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (f x))))) i) (@dollar R N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (g x))))) i). +Axiom thm_HAS_INTEGRAL_COMPONENT_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall i : cart R N', forall j : cart R N', forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@has_integral M N' f i s) /\ ((@has_integral M N' g j s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (@dollar R N' (f x) k) (@dollar R N' (g x) k)))))) -> Rle (@dollar R N' i k) (@dollar R N' j k). +Axiom thm_INTEGRAL_COMPONENT_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@integrable_on N' M f s) /\ ((@integrable_on N' M g s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (@dollar R N' (f x) k) (@dollar R N' (g x) k)))))) -> Rle (@dollar R N' (@integral N' M s f) k) (@dollar R N' (@integral N' M s g) k). +Axiom thm_HAS_INTEGRAL_DROP_LE : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall i : cart R unit, forall j : cart R unit, ((@has_integral M unit f i s) /\ ((@has_integral M unit g j s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (drop (f x)) (drop (g x))))) -> Rle (drop i) (drop j). +Axiom thm_INTEGRAL_DROP_LE : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, ((@integrable_on unit M f s) /\ ((@integrable_on unit M g s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (drop (f x)) (drop (g x))))) -> Rle (drop (@integral unit M s f)) (drop (@integral unit M s g)). +Axiom thm_HAS_INTEGRAL_COMPONENT_POS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall i : cart R N', forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@has_integral M N' f i s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (f x) k))))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' i k). +Axiom thm_INTEGRAL_COMPONENT_POS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@integrable_on N' M f s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (f x) k))))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (@integral N' M s f) k). +Axiom thm_HAS_INTEGRAL_DROP_POS : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall i : cart R unit, ((@has_integral M unit f i s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f x)))) -> Rle (R_of_N (NUMERAL 0%N)) (drop i). +Axiom thm_INTEGRAL_DROP_POS : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, ((@integrable_on unit M f s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f x)))) -> Rle (R_of_N (NUMERAL 0%N)) (drop (@integral unit M s f)). +Axiom thm_HAS_INTEGRAL_COMPONENT_NEG : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall i : cart R N', forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@has_integral M N' f i s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (@dollar R N' (f x) k) (R_of_N (NUMERAL 0%N)))))) -> Rle (@dollar R N' i k) (R_of_N (NUMERAL 0%N)). +Axiom thm_HAS_INTEGRAL_DROP_NEG : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall i : cart R unit, ((@has_integral M unit f i s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (drop (f x)) (R_of_N (NUMERAL 0%N)))) -> Rle (drop i) (R_of_N (NUMERAL 0%N)). +Axiom thm_HAS_INTEGRAL_COMPONENT_LBOUND : forall {M N' : Type'} (B : R), forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall i : cart R N', forall k : N, ((@has_integral M N' f i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle B (@dollar R N' (f x) k))))) -> Rle (Rmult B (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) (@dollar R N' i k). +Axiom thm_HAS_INTEGRAL_COMPONENT_UBOUND : forall {M N' : Type'} (B : R), forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall i : cart R N', forall k : N, ((@has_integral M N' f i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@dollar R N' (f x) k) B)))) -> Rle (@dollar R N' i k) (Rmult B (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))). +Axiom thm_INTEGRAL_COMPONENT_LBOUND : forall {M N' : Type'} (B : R), forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall k : N, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle B (@dollar R N' (f x) k))))) -> Rle (Rmult B (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) (@dollar R N' (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f) k). +Axiom thm_INTEGRAL_COMPONENT_UBOUND : forall {M N' : Type'} (B : R), forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall k : N, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@dollar R N' (f x) k) B)))) -> Rle (@dollar R N' (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f) k) (Rmult B (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))). +Axiom thm_INTEGRABLE_UNIFORM_LIMIT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists g : (cart R M) -> cart R N', (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (g x))) e) /\ (@integrable_on N' M g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> @integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_negligible : forall {_1308079 : Type'}, forall s : (cart R _1308079) -> Prop, (@negligible _1308079 s) = (forall a : cart R _1308079, forall b : cart R _1308079, @has_integral _1308079 unit (@indicator _1308079 s) (@vec unit (NUMERAL 0%N)) (@closed_interval _1308079 (@cons (prod (cart R _1308079) (cart R _1308079)) (@pair (cart R _1308079) (cart R _1308079) a b) (@nil (prod (cart R _1308079) (cart R _1308079)))))). +Axiom thm_VSUM_NONZERO_IMAGE_LEMMA : forall {A B N' : Type'}, forall s : A -> Prop, forall f : A -> B, forall g : B -> cart R N', forall a : B, ((@FINITE A s) /\ (((g a) = (@vec N' (NUMERAL 0%N))) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (((f x) = (f y)) /\ (~ (x = y))))) -> (g (f x)) = (@vec N' (NUMERAL 0%N))))) -> (@vsum B N' (@GSPEC B (fun GEN_PVAR_5911 : B => exists x : A, @SETSPEC B GEN_PVAR_5911 ((@IN A x s) /\ (~ ((f x) = a))) (f x))) g) = (@vsum A N' s (@o A B (cart R N') g f)). +Axiom thm_INTERVAL_DOUBLESPLIT : forall {N' : Type'} (a : cart R N') (k : N) (c : R) (e : R) (b : cart R N'), ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5915 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5915 (Rle (Rabs (Rminus (@dollar R N' x k) c)) e) x))) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@lambda R N' (fun i : N => @COND R (i = k) (Rmax (@dollar R N' a k) (Rminus c e)) (@dollar R N' a i))) (@lambda R N' (fun i : N => @COND R (i = k) (Rmin (@dollar R N' b k) (Rplus c e)) (@dollar R N' b i)))) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_DIVISION_DOUBLESPLIT : forall {N' : Type'}, forall p : ((cart R N') -> Prop) -> Prop, forall a : cart R N', forall b : cart R N', forall k : N, forall c : R, forall e : R, ((@division_of N' p (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> @division_of N' (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5920 : (cart R N') -> Prop => exists l : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5920 ((@IN ((cart R N') -> Prop) l p) /\ (~ ((@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5919 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5919 (Rle (Rabs (Rminus (@dollar R N' x k) c)) e) x))) = (@EMPTY (cart R N'))))) (@INTER (cart R N') l (@GSPEC (cart R N') (fun GEN_PVAR_5918 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5918 (Rle (Rabs (Rminus (@dollar R N' x k) c)) e) x))))) (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5921 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5921 (Rle (Rabs (Rminus (@dollar R N' x k) c)) e) x))). +Axiom thm_CONTENT_DOUBLESPLIT : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall k : N, forall c : R, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (Rlt (@content N' (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_5922 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5922 (Rle (Rabs (Rminus (@dollar R N' x k) c)) d) x)))) e). +Axiom thm_NEGLIGIBLE_STANDARD_HYPERPLANE : forall {N' : Type'}, forall c : R, forall k : N, @negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_5929 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_5929 ((@dollar R N' x k) = c) x)). +Axiom thm_TAGGED_DIVISION_FINER : forall {N' : Type'}, forall p : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall a : cart R N', forall b : cart R N', forall d : (cart R N') -> (cart R N') -> Prop, ((@tagged_division_of N' p (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (@gauge N' d)) -> exists q : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, (@tagged_division_of N' q (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((@fine (cart R N') (cart R N') d q) /\ (forall x : cart R N', forall k : (cart R N') -> Prop, ((@IN (prod (cart R N') ((cart R N') -> Prop)) (@pair (cart R N') ((cart R N') -> Prop) x k) p) /\ (@SUBSET (cart R N') k (d x))) -> @IN (prod (cart R N') ((cart R N') -> Prop)) (@pair (cart R N') ((cart R N') -> Prop) x k) q)). +Axiom thm_HAS_INTEGRAL_NEGLIGIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@negligible M s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> (f x) = (@vec N' (NUMERAL 0%N)))) -> @has_integral M N' f (@vec N' (NUMERAL 0%N)) t. +Axiom thm_HAS_INTEGRAL_ON_NEGLIGIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@negligible M s) -> @has_integral M N' f (@vec N' (NUMERAL 0%N)) s. +Axiom thm_INTEGRABLE_ON_NEGLIGIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@negligible M s) -> @integrable_on N' M f s. +Axiom thm_INTEGRAL_ON_NEGLIGIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@negligible M s) -> (@integral N' M s f) = (@vec N' (NUMERAL 0%N)). +Axiom thm_HAS_INTEGRAL_SPIKE : forall {M N' : Type'} (y : cart R N'), forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@negligible M s) /\ ((forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> (g x) = (f x)) /\ (@has_integral M N' f y t))) -> @has_integral M N' g y t. +Axiom thm_HAS_INTEGRAL_SPIKE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall y : cart R N', ((@negligible M s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> (g x) = (f x))) -> (@has_integral M N' f y t) = (@has_integral M N' g y t). +Axiom thm_INTEGRABLE_SPIKE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@negligible M s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> (g x) = (f x))) -> (@integrable_on N' M f t) -> @integrable_on N' M g t. +Axiom thm_INTEGRABLE_SPIKE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@negligible M s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> (g x) = (f x))) -> (@integrable_on N' M f t) = (@integrable_on N' M g t). +Axiom thm_INTEGRAL_SPIKE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@negligible M s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> (g x) = (f x))) -> (@integral N' M t f) = (@integral N' M t g). +Axiom thm_NEGLIGIBLE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@negligible N' s) /\ (@SUBSET (cart R N') t s)) -> @negligible N' t. +Axiom thm_NEGLIGIBLE_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@negligible N' s) -> @negligible N' (@DIFF (cart R N') s t). +Axiom thm_NEGLIGIBLE_INTER : forall {_1311129 : Type'}, forall s : (cart R _1311129) -> Prop, forall t : (cart R _1311129) -> Prop, ((@negligible _1311129 s) \/ (@negligible _1311129 t)) -> @negligible _1311129 (@INTER (cart R _1311129) s t). +Axiom thm_NEGLIGIBLE_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@negligible N' s) /\ (@negligible N' t)) -> @negligible N' (@UNION (cart R N') s t). +Axiom thm_NEGLIGIBLE_UNION_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@negligible N' (@UNION (cart R N') s t)) = ((@negligible N' s) /\ (@negligible N' t)). +Axiom thm_NEGLIGIBLE_SING : forall {N' : Type'}, forall a : cart R N', @negligible N' (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_NEGLIGIBLE_INSERT : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@negligible N' (@INSERT (cart R N') a s)) = (@negligible N' s). +Axiom thm_NEGLIGIBLE_EMPTY : forall {_1311251 : Type'}, @negligible _1311251 (@EMPTY (cart R _1311251)). +Axiom thm_NEGLIGIBLE_FINITE : forall {_1311263 : Type'}, forall s : (cart R _1311263) -> Prop, (@FINITE (cart R _1311263) s) -> @negligible _1311263 s. +Axiom thm_NEGLIGIBLE_UNIONS : forall {_1311285 : Type'}, forall s : ((cart R _1311285) -> Prop) -> Prop, ((@FINITE ((cart R _1311285) -> Prop) s) /\ (forall t : (cart R _1311285) -> Prop, (@IN ((cart R _1311285) -> Prop) t s) -> @negligible _1311285 t)) -> @negligible _1311285 (@UNIONS (cart R _1311285) s). +Axiom thm_NEGLIGIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = (forall t : (cart R N') -> Prop, @has_integral N' unit (@indicator N' s) (@vec unit (NUMERAL 0%N)) t). +Axiom thm_HAS_INTEGRAL_SPIKE_FINITE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall y : cart R N', ((@FINITE (cart R M) s) /\ ((forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> (g x) = (f x)) /\ (@has_integral M N' f y t))) -> @has_integral M N' g y t. +Axiom thm_HAS_INTEGRAL_SPIKE_FINITE_EQ : forall {M N' : Type'} (t : (cart R M) -> Prop), forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall y : cart R N', ((@FINITE (cart R M) s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> (g x) = (f x))) -> (@has_integral M N' f y t) = (@has_integral M N' g y t). +Axiom thm_INTEGRABLE_SPIKE_FINITE : forall {M N' : Type'} (t : (cart R M) -> Prop), forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@FINITE (cart R M) s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> (g x) = (f x))) -> (@integrable_on N' M f t) -> @integrable_on N' M g t. +Axiom thm_INTEGRAL_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (g x)) -> (@integral N' M s f) = (@integral N' M s g). +Axiom thm_INTEGRAL_EQ_0 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (@vec N' (NUMERAL 0%N))) -> (@integral N' M s f) = (@vec N' (NUMERAL 0%N)). +Axiom thm_NEGLIGIBLE_FRONTIER_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', @negligible N' (@DIFF (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@open_interval N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_HAS_INTEGRAL_SPIKE_INTERIOR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall y : cart R N', ((forall x : cart R M, (@IN (cart R M) x (@open_interval M (@pair (cart R M) (cart R M) a b))) -> (g x) = (f x)) /\ (@has_integral M N' f y (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> @has_integral M N' g y (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_HAS_INTEGRAL_SPIKE_INTERIOR_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall y : cart R N', (forall x : cart R M, (@IN (cart R M) x (@open_interval M (@pair (cart R M) (cart R M) a b))) -> (g x) = (f x)) -> (@has_integral M N' f y (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (@has_integral M N' g y (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_INTEGRABLE_SPIKE_INTERIOR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (forall x : cart R M, (@IN (cart R M) x (@open_interval M (@pair (cart R M) (cart R M) a b))) -> (g x) = (f x)) -> (@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @integrable_on N' M g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_NEUTRAL_AND : (@neutral Prop and) = True. +Axiom thm_MONOIDAL_AND : @monoidal Prop and. +Axiom thm_ITERATE_AND : forall {_1312002 : Type'}, forall p : _1312002 -> Prop, forall s : _1312002 -> Prop, (@FINITE _1312002 s) -> (@iterate _1312002 Prop and s p) = (forall x : _1312002, (@IN _1312002 x s) -> p x). +Axiom thm_OPERATIVE_DIVISION_AND : forall {_1312065 : Type'}, forall P : ((cart R _1312065) -> Prop) -> Prop, forall d : ((cart R _1312065) -> Prop) -> Prop, forall a : cart R _1312065, forall b : cart R _1312065, ((@operative Prop _1312065 and P) /\ (@division_of _1312065 d (@closed_interval _1312065 (@cons (prod (cart R _1312065) (cart R _1312065)) (@pair (cart R _1312065) (cart R _1312065) a b) (@nil (prod (cart R _1312065) (cart R _1312065))))))) -> (forall i : (cart R _1312065) -> Prop, (@IN ((cart R _1312065) -> Prop) i d) -> P i) = (P (@closed_interval _1312065 (@cons (prod (cart R _1312065) (cart R _1312065)) (@pair (cart R _1312065) (cart R _1312065) a b) (@nil (prod (cart R _1312065) (cart R _1312065)))))). +Axiom thm_OPERATIVE_APPROXIMABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall e : R, (Rle (R_of_N (NUMERAL 0%N)) e) -> @operative Prop M and (fun i : (cart R M) -> Prop => exists g : (cart R M) -> cart R N', (forall x : cart R M, (@IN (cart R M) x i) -> Rle (@vector_norm N' (@vector_sub N' (f x) (g x))) e) /\ (@integrable_on N' M g i)). +Axiom thm_APPROXIMABLE_ON_DIVISION : forall {M N' : Type'} (e : R), forall f : (cart R M) -> cart R N', forall d : ((cart R M) -> Prop) -> Prop, forall a : cart R M, forall b : cart R M, ((Rle (R_of_N (NUMERAL 0%N)) e) /\ ((@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (forall i : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) i d) -> exists g : (cart R M) -> cart R N', (forall x : cart R M, (@IN (cart R M) x i) -> Rle (@vector_norm N' (@vector_sub N' (f x) (g x))) e) /\ (@integrable_on N' M g i)))) -> exists g : (cart R M) -> cart R N', (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (g x))) e) /\ (@integrable_on N' M g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_INTEGRABLE_CONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@continuous_on M N' f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_OPERATIVE_1_LT : forall {_1313109 : Type'}, forall op : _1313109 -> _1313109 -> _1313109, (@monoidal _1313109 op) -> forall f : ((cart R unit) -> Prop) -> _1313109, (@operative _1313109 unit op f) = ((forall a : cart R unit, forall b : cart R unit, (Rle (drop b) (drop a)) -> (f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@neutral _1313109 op)) /\ (forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((Rlt (drop a) (drop c)) /\ (Rlt (drop c) (drop b))) -> (op (f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit)))))) (f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))))) = (f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))). +Axiom thm_OPERATIVE_1_LE : forall {_1313238 : Type'}, forall op : _1313238 -> _1313238 -> _1313238, (@monoidal _1313238 op) -> forall f : ((cart R unit) -> Prop) -> _1313238, (@operative _1313238 unit op f) = ((forall a : cart R unit, forall b : cart R unit, (Rle (drop b) (drop a)) -> (f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@neutral _1313238 op)) /\ (forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((Rle (drop a) (drop c)) /\ (Rle (drop c) (drop b))) -> (op (f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit)))))) (f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))))) = (f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))). +Axiom thm_ADDITIVE_DIVISION_1 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall d : ((cart R unit) -> Prop) -> Prop, forall a : cart R unit, forall b : cart R unit, ((Rle (drop a) (drop b)) /\ (@division_of unit d (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> (@vsum ((cart R unit) -> Prop) N' d (fun k : (cart R unit) -> Prop => @vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k)))) = (@vector_sub N' (f b) (f a)). +Axiom thm_ADDITIVE_TAGGED_DIVISION_1 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall p : (prod (cart R unit) ((cart R unit) -> Prop)) -> Prop, forall a : cart R unit, forall b : cart R unit, ((Rle (drop a) (drop b)) /\ (@tagged_division_of unit p (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> (@vsum (prod (cart R unit) ((cart R unit) -> Prop)) N' p (@GABS ((prod (cart R unit) ((cart R unit) -> Prop)) -> cart R N') (fun f' : (prod (cart R unit) ((cart R unit) -> Prop)) -> cart R N' => forall x : cart R unit, forall k : (cart R unit) -> Prop, @GEQ (cart R N') (f' (@pair (cart R unit) ((cart R unit) -> Prop) x k)) (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k)))))) = (@vector_sub N' (f b) (f a)). +Axiom thm_HAS_INTEGRAL_FACTOR_CONTENT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : cart R N', forall a : cart R M, forall b : cart R M, (@has_integral M N' f i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : (cart R M) -> (cart R M) -> Prop, (@gauge M d) /\ (forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@tagged_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@fine (cart R M) (cart R M) d p)) -> Rle (@vector_norm N' (@vector_sub N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (f x))))) i)) (Rmult e (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))))). +Axiom thm_GAUGE_MODIFY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall s : (cart R N') -> Prop, (@_open N' s) -> @_open M (@GSPEC (cart R M) (fun GEN_PVAR_5943 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5943 (@IN (cart R N') (f x) s) x))) -> forall d : (cart R N') -> (cart R N') -> Prop, (@gauge N' d) -> @gauge M (fun x : cart R M => fun y : cart R M => d (f x) (f y)). +Axiom thm_OPERATIVE_INTEGRABLE : forall {_1313943 _1313949 : Type'}, forall f : (cart R _1313943) -> cart R _1313949, @operative Prop _1313943 and (fun i : (cart R _1313943) -> Prop => @integrable_on _1313949 _1313943 f i). +Axiom thm_INTEGRABLE_SUBINTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall c : cart R M, forall d : cart R M, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> @integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_HAS_INTEGRAL_COMBINE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall i : cart R N', forall j : cart R N', forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((Rle (drop a) (drop c)) /\ ((Rle (drop c) (drop b)) /\ ((@has_integral unit N' f i (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_integral unit N' f j (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))))))) -> @has_integral unit N' f (@vector_add N' i j) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRAL_COMBINE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((Rle (drop a) (drop c)) /\ ((Rle (drop c) (drop b)) /\ (@integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) -> (@vector_add N' (@integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) f) (@integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))) f)) = (@integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f). +Axiom thm_INTEGRABLE_COMBINE : forall {_1314308 : Type'}, forall f : (cart R unit) -> cart R _1314308, forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((Rle (drop a) (drop c)) /\ ((Rle (drop c) (drop b)) /\ ((@integrable_on _1314308 unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@integrable_on _1314308 unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))))))) -> @integrable_on _1314308 unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_ON_LITTLE_SUBINTERVALS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall u : cart R M, forall v : cart R M, ((@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M)))))) /\ ((@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M))))) (@ball M (@pair (cart R M) R x d))) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))))) -> @integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M))))))) -> @integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_INTEGRAL_HAS_VECTOR_DERIVATIVE_POINTWISE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall x : cart R unit, ((@integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@continuous N' (cart R unit) f (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))))) -> @has_vector_derivative N' (fun u : cart R unit => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a u) (@nil (prod (cart R unit) (cart R unit))))) f) (f x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_INTEGRAL_HAS_VECTOR_DERIVATIVE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_vector_derivative N' (fun u : cart R unit => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a u) (@nil (prod (cart R unit) (cart R unit))))) f) (f x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_ANTIDERIVATIVE_CONTINUOUS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> exists g : (cart R unit) -> cart R N', forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_vector_derivative N' g (f x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_HAS_INTEGRAL_RESTRICT_OPEN_SUBINTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall c : cart R M, forall d : cart R M, forall i : cart R N', ((@has_integral M N' f i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M)))))) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> @has_integral M N' (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x (@open_interval M (@pair (cart R M) (cart R M) c d))) (f x) (@vec N' (NUMERAL 0%N))) i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_HAS_INTEGRAL_RESTRICT_CLOSED_SUBINTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall c : cart R M, forall d : cart R M, forall i : cart R N', ((@has_integral M N' f i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M)))))) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> @has_integral M N' (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M)))))) (f x) (@vec N' (NUMERAL 0%N))) i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_HAS_INTEGRAL_RESTRICT_CLOSED_SUBINTERVALS_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall c : cart R M, forall d : cart R M, forall i : cart R N', (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> (@has_integral M N' (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M)))))) (f x) (@vec N' (NUMERAL 0%N))) i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (@has_integral M N' f i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_HAS_INTEGRAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : cart R N', forall s : (cart R M) -> Prop, (@has_integral M N' f i s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall a : cart R M, forall b : cart R M, (@SUBSET (cart R M) (@ball M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) B)) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> exists z : cart R N', (@has_integral M N' (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) z (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (Rlt (@vector_norm N' (@vector_sub N' z i)) e))). +Axiom thm_HAS_INTEGRAL_RESTRICT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall i : cart R N', (@SUBSET (cart R M) s t) -> (@has_integral M N' (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) i t) = (@has_integral M N' f i s). +Axiom thm_INTEGRAL_RESTRICT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@SUBSET (cart R M) s t) -> (@integral N' M t (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N)))) = (@integral N' M s f). +Axiom thm_INTEGRABLE_RESTRICT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@SUBSET (cart R M) s t) -> (@integrable_on N' M (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) t) = (@integrable_on N' M f s). +Axiom thm_HAS_INTEGRAL_RESTRICT_UNIV : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall i : cart R N', (@has_integral M N' (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) i (@UNIV (cart R M))) = (@has_integral M N' f i s). +Axiom thm_INTEGRAL_RESTRICT_UNIV : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@integral N' M (@UNIV (cart R M)) (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N)))) = (@integral N' M s f). +Axiom thm_INTEGRABLE_RESTRICT_UNIV : forall {_1316711 M : Type'}, forall f : (cart R M) -> cart R _1316711, forall s : (cart R M) -> Prop, (@integrable_on _1316711 M (fun x : cart R M => @COND (cart R _1316711) (@IN (cart R M) x s) (f x) (@vec _1316711 (NUMERAL 0%N))) (@UNIV (cart R M))) = (@integrable_on _1316711 M f s). +Axiom thm_HAS_INTEGRAL_RESTRICT_INTER : forall {M N' : Type'} (i : cart R N'), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@has_integral M N' (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) i t) = (@has_integral M N' f i (@INTER (cart R M) s t)). +Axiom thm_INTEGRAL_RESTRICT_INTER : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@integral N' M t (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N)))) = (@integral N' M (@INTER (cart R M) s t) f). +Axiom thm_INTEGRABLE_RESTRICT_INTER : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@integrable_on N' M (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) t) = (@integrable_on N' M f (@INTER (cart R M) s t)). +Axiom thm_HAS_INTEGRAL_ON_SUPERSET : forall {_1316876 _1316877 : Type'} (i : cart R _1316876), forall f : (cart R _1316877) -> cart R _1316876, forall s : (cart R _1316877) -> Prop, forall t : (cart R _1316877) -> Prop, ((forall x : cart R _1316877, (~ (@IN (cart R _1316877) x s)) -> (f x) = (@vec _1316876 (NUMERAL 0%N))) /\ ((@SUBSET (cart R _1316877) s t) /\ (@has_integral _1316877 _1316876 f i s))) -> @has_integral _1316877 _1316876 f i t. +Axiom thm_INTEGRABLE_ON_SUPERSET : forall {_1316922 _1316923 : Type'}, forall f : (cart R _1316923) -> cart R _1316922, forall s : (cart R _1316923) -> Prop, forall t : (cart R _1316923) -> Prop, ((forall x : cart R _1316923, (~ (@IN (cart R _1316923) x s)) -> (f x) = (@vec _1316922 (NUMERAL 0%N))) /\ ((@SUBSET (cart R _1316923) s t) /\ (@integrable_on _1316922 _1316923 f s))) -> @integrable_on _1316922 _1316923 f t. +Axiom thm_NEGLIGIBLE_ON_INTERVALS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = (forall a : cart R N', forall b : cart R N', @negligible N' (@INTER (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_NEGLIGIBLE_BOUNDED_SUBSETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = (forall t : (cart R N') -> Prop, ((@bounded N' t) /\ (@SUBSET (cart R N') t s)) -> @negligible N' t). +Axiom thm_NEGLIGIBLE_ON_COUNTABLE_INTERVALS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = (forall n : N, @negligible N' (@INTER (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vector_neg N' (@vec N' n)) (@vec N' n)) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_HAS_INTEGRAL_SPIKE_SET_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall y : cart R N', (@negligible M (@UNION (cart R M) (@DIFF (cart R M) s t) (@DIFF (cart R M) t s))) -> (@has_integral M N' f y s) = (@has_integral M N' f y t). +Axiom thm_HAS_INTEGRAL_SPIKE_SET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall y : cart R N', ((@negligible M (@UNION (cart R M) (@DIFF (cart R M) s t) (@DIFF (cart R M) t s))) /\ (@has_integral M N' f y s)) -> @has_integral M N' f y t. +Axiom thm_INTEGRABLE_SPIKE_SET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@negligible M (@UNION (cart R M) (@DIFF (cart R M) s t) (@DIFF (cart R M) t s))) -> (@integrable_on N' M f s) -> @integrable_on N' M f t. +Axiom thm_INTEGRABLE_SPIKE_SET_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@negligible M (@UNION (cart R M) (@DIFF (cart R M) s t) (@DIFF (cart R M) t s))) -> (@integrable_on N' M f s) = (@integrable_on N' M f t). +Axiom thm_INTEGRAL_SPIKE_SET : forall {_1317334 M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : _1317334, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@negligible M (@UNION (cart R M) (@DIFF (cart R M) s t) (@DIFF (cart R M) t s))) -> (@integral N' M s f) = (@integral N' M t f). +Axiom thm_HAS_INTEGRAL_INTERIOR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall y : cart R N', forall s : (cart R M) -> Prop, (@negligible M (@frontier M s)) -> (@has_integral M N' f y (@interior M s)) = (@has_integral M N' f y s). +Axiom thm_HAS_INTEGRAL_CLOSURE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall y : cart R N', forall s : (cart R M) -> Prop, (@negligible M (@frontier M s)) -> (@has_integral M N' f y (@closure M s)) = (@has_integral M N' f y s). +Axiom thm_INTEGRABLE_CASES : forall {M N' : Type'} (P : (cart R M) -> Prop), forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@integrable_on N' M f (@GSPEC (cart R M) (fun GEN_PVAR_5944 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5944 ((@IN (cart R M) x s) /\ (P x)) x))) /\ (@integrable_on N' M g (@GSPEC (cart R M) (fun GEN_PVAR_5945 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_5945 ((@IN (cart R M) x s) /\ (~ (P x))) x)))) -> @integrable_on N' M (fun x : cart R M => @COND (cart R N') (P x) (f x) (g x)) s. +Axiom thm_HAS_INTEGRAL_TWIDDLE : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall g : (cart R M) -> cart R N', forall h : (cart R N') -> cart R M, forall r : R, forall i : cart R P, forall a : cart R N', forall b : cart R N', ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((forall x : cart R M, (h (g x)) = x) /\ ((forall x : cart R N', (g (h x)) = x) /\ ((forall x : cart R M, @continuous N' (cart R M) g (@_at M x)) /\ ((forall u : cart R M, forall v : cart R M, exists w : cart R N', exists z : cart R N', (@IMAGE (cart R M) (cart R N') g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M)))))) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') w z) (@nil (prod (cart R N') (cart R N')))))) /\ ((forall u : cart R N', forall v : cart R N', exists w : cart R M, exists z : cart R M, (@IMAGE (cart R N') (cart R M) h (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N')))))) = (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) w z) (@nil (prod (cart R M) (cart R M)))))) /\ ((forall u : cart R M, forall v : cart R M, (@content N' (@IMAGE (cart R M) (cart R N') g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M))))))) = (Rmult r (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M)))))))) /\ (@has_integral N' P f i (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))))))))) -> @has_integral M P (fun x : cart R M => f (g x)) (@percent P (Rinv r) i) (@IMAGE (cart R N') (cart R M) h (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_HAS_INTEGRAL_TWIDDLE_GEN : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall g : (cart R M) -> cart R N', forall h : (cart R N') -> cart R M, forall r : R, forall i : cart R P, forall s : (cart R N') -> Prop, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((forall x : cart R M, (h (g x)) = x) /\ ((forall x : cart R N', (g (h x)) = x) /\ ((forall x : cart R M, @continuous N' (cart R M) g (@_at M x)) /\ ((forall b : R, (Rlt (R_of_N (NUMERAL 0%N)) b) -> exists b' : R, (Rlt (R_of_N (NUMERAL 0%N)) b') /\ (@SUBSET (cart R N') (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) b)) (@IMAGE (cart R M) (cart R N') g (@ball M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) b'))))) /\ ((forall u : cart R M, forall v : cart R M, exists w : cart R N', exists z : cart R N', (@IMAGE (cart R M) (cart R N') g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M)))))) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') w z) (@nil (prod (cart R N') (cart R N')))))) /\ ((forall u : cart R N', forall v : cart R N', exists w : cart R M, exists z : cart R M, (@IMAGE (cart R N') (cart R M) h (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N')))))) = (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) w z) (@nil (prod (cart R M) (cart R M)))))) /\ ((forall u : cart R M, forall v : cart R M, (@content N' (@IMAGE (cart R M) (cart R N') g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M))))))) = (Rmult r (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) u v) (@nil (prod (cart R M) (cart R M)))))))) /\ (@has_integral N' P f i s))))))))) -> @has_integral M P (fun x : cart R M => f (g x)) (@percent P (Rinv r) i) (@IMAGE (cart R N') (cart R M) h s). +Axiom thm_HAS_INTEGRAL_TWIZZLE : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall y : cart R P, forall p : N -> N, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ ((@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) /\ (@has_integral N' P f y (@IMAGE (cart R M) (cart R N') (fun x : cart R M => @lambda R N' (fun i : N => @dollar R M x (p i))) s)))) -> @has_integral M P (fun x : cart R M => f (@lambda R N' (fun i : N => @dollar R M x (p i)))) y s. +Axiom thm_HAS_INTEGRAL_TWIZZLE_EQ : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall y : cart R P, forall p : N -> N, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ (@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))) -> (@has_integral N' P f y (@IMAGE (cart R M) (cart R N') (fun x : cart R M => @lambda R N' (fun i : N => @dollar R M x (p i))) s)) = (@has_integral M P (fun x : cart R M => f (@lambda R N' (fun i : N => @dollar R M x (p i)))) y s). +Axiom thm_INTEGRABLE_TWIZZLE_EQ : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall p : N -> N, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ (@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))) -> (@integrable_on P N' f (@IMAGE (cart R M) (cart R N') (fun x : cart R M => @lambda R N' (fun i : N => @dollar R M x (p i))) s)) = (@integrable_on P M (fun x : cart R M => f (@lambda R N' (fun i : N => @dollar R M x (p i)))) s). +Axiom thm_INTEGRAL_TWIZZLE_EQ : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall p : N -> N, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ (@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))) -> (@integral P N' (@IMAGE (cart R M) (cart R N') (fun x : cart R M => @lambda R N' (fun i : N => @dollar R M x (p i))) s) f) = (@integral P M s (fun x : cart R M => f (@lambda R N' (fun i : N => @dollar R M x (p i))))). +Axiom thm_HAS_INTEGRAL_PASTECART_SYM_ALT : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, forall s : (cart R (finite_sum N' M)) -> Prop, forall y : cart R P, (@has_integral (finite_sum N' M) P (fun z : cart R (finite_sum N' M) => f (@pastecart R M N' (@sndcart R N' M z) (@fstcart R N' M z))) y s) = (@has_integral (finite_sum M N') P f y (@IMAGE (cart R (finite_sum N' M)) (cart R (finite_sum M N')) (fun z : cart R (finite_sum N' M) => @pastecart R M N' (@sndcart R N' M z) (@fstcart R N' M z)) s)). +Axiom thm_HAS_INTEGRAL_PASTECART_SYM : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, forall s : (cart R (finite_sum M N')) -> Prop, forall y : cart R P, (@has_integral (finite_sum N' M) P (fun z : cart R (finite_sum N' M) => f (@pastecart R M N' (@sndcart R N' M z) (@fstcart R N' M z))) y (@IMAGE (cart R (finite_sum M N')) (cart R (finite_sum N' M)) (fun z : cart R (finite_sum M N') => @pastecart R N' M (@sndcart R M N' z) (@fstcart R M N' z)) s)) = (@has_integral (finite_sum M N') P f y s). +Axiom thm_INTEGRAL_PASTECART_SYM : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, forall s : (cart R (finite_sum M N')) -> Prop, (@integral P (finite_sum N' M) (@IMAGE (cart R (finite_sum M N')) (cart R (finite_sum N' M)) (fun z : cart R (finite_sum M N') => @pastecart R N' M (@sndcart R M N' z) (@fstcart R M N' z)) s) (fun z : cart R (finite_sum N' M) => f (@pastecart R M N' (@sndcart R N' M z) (@fstcart R N' M z)))) = (@integral P (finite_sum M N') s f). +Axiom thm_INTEGRABLE_PASTECART_SYM : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, forall s : (cart R (finite_sum M N')) -> Prop, (@integrable_on P (finite_sum N' M) (fun z : cart R (finite_sum N' M) => f (@pastecart R M N' (@sndcart R N' M z) (@fstcart R N' M z))) (@IMAGE (cart R (finite_sum M N')) (cart R (finite_sum N' M)) (fun z : cart R (finite_sum M N') => @pastecart R N' M (@sndcart R M N' z) (@fstcart R M N' z)) s)) = (@integrable_on P (finite_sum M N') f s). +Axiom thm_INTERVAL_IMAGE_AFFINITY_INTERVAL : forall {_1319846 : Type'}, forall a : cart R _1319846, forall b : cart R _1319846, forall m : R, forall c : cart R _1319846, exists u : cart R _1319846, exists v : cart R _1319846, (@IMAGE (cart R _1319846) (cart R _1319846) (fun x : cart R _1319846 => @vector_add _1319846 (@percent _1319846 m x) c) (@closed_interval _1319846 (@cons (prod (cart R _1319846) (cart R _1319846)) (@pair (cart R _1319846) (cart R _1319846) a b) (@nil (prod (cart R _1319846) (cart R _1319846)))))) = (@closed_interval _1319846 (@cons (prod (cart R _1319846) (cart R _1319846)) (@pair (cart R _1319846) (cart R _1319846) u v) (@nil (prod (cart R _1319846) (cart R _1319846))))). +Axiom thm_CONTENT_IMAGE_AFFINITY_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall m : R, forall c : cart R N', (@content N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) = (Rmult (real_pow (Rabs m) (@dimindex N' (@UNIV N'))) (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_HAS_INTEGRAL_AFFINITY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : cart R N', forall s : (cart R M) -> Prop, forall m : R, forall c : cart R M, ((@has_integral M N' f i s) /\ (~ (m = (R_of_N (NUMERAL 0%N))))) -> @has_integral M N' (fun x : cart R M => f (@vector_add M (@percent M m x) c)) (@percent N' (Rinv (real_pow (Rabs m) (@dimindex M (@UNIV M)))) i) (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M (@percent M (Rinv m) x) (@vector_neg M (@percent M (Rinv m) c))) s). +Axiom thm_INTEGRABLE_AFFINITY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall m : R, forall c : cart R M, ((@integrable_on N' M f s) /\ (~ (m = (R_of_N (NUMERAL 0%N))))) -> @integrable_on N' M (fun x : cart R M => f (@vector_add M (@percent M m x) c)) (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M (@percent M (Rinv m) x) (@vector_neg M (@percent M (Rinv m) c))) s). +Axiom thm_CONTENT_IMAGE_STRETCH_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall m : N -> R, (@content N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @lambda R N' (fun k : N => Rmult (m k) (@dollar R N' x k))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) = (Rmult (Rabs (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) m)) (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_HAS_INTEGRAL_STRETCH : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : cart R N', forall m : N -> R, forall a : cart R M, forall b : cart R M, ((@has_integral M N' f i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex M (@UNIV M)))) -> ~ ((m k) = (R_of_N (NUMERAL 0%N))))) -> @has_integral M N' (fun x : cart R M => f (@lambda R M (fun k : N => Rmult (m k) (@dollar R M x k)))) (@percent N' (Rinv (Rabs (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M))) m))) i) (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @lambda R M (fun k : N => Rmult (Rinv (m k)) (@dollar R M x k))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_INTEGRABLE_STRETCH : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall m : N -> R, forall a : cart R M, forall b : cart R M, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex M (@UNIV M)))) -> ~ ((m k) = (R_of_N (NUMERAL 0%N))))) -> @integrable_on N' M (fun x : cart R M => f (@lambda R M (fun k : N => Rmult (m k) (@dollar R M x k)))) (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @lambda R M (fun k : N => Rmult (Rinv (m k)) (@dollar R M x k))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_HAS_INTEGRAL_REFLECT_LEMMA : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : cart R N', forall a : cart R M, forall b : cart R M, (@has_integral M N' f i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @has_integral M N' (fun x : cart R M => f (@vector_neg M x)) i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@vector_neg M b) (@vector_neg M a)) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_HAS_INTEGRAL_REFLECT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : cart R N', forall a : cart R M, forall b : cart R M, (@has_integral M N' (fun x : cart R M => f (@vector_neg M x)) i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@vector_neg M b) (@vector_neg M a)) (@nil (prod (cart R M) (cart R M)))))) = (@has_integral M N' f i (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_INTEGRABLE_REFLECT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@integrable_on N' M (fun x : cart R M => f (@vector_neg M x)) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@vector_neg M b) (@vector_neg M a)) (@nil (prod (cart R M) (cart R M)))))) = (@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_INTEGRAL_REFLECT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@vector_neg M b) (@vector_neg M a)) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => f (@vector_neg M x))) = (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f). +Axiom thm_HAS_INTEGRAL_TRANSLATION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@has_integral M N' (fun x : cart R M => f (@vector_add M a x)) i s) = (@has_integral M N' f i (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M a x) s)). +Axiom thm_INTEGRAL_TRANSLATION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@integral N' M s (fun x : cart R M => f (@vector_add M a x))) = (@integral N' M (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M a x) s) f). +Axiom thm_INTEGRABLE_TRANSLATION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@integrable_on N' M (fun x : cart R M => f (@vector_add M a x)) s) = (@integrable_on N' M f (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M a x) s)). +Axiom thm_DIVISION_COMMON_POINT_BOUND : forall {N' : Type'}, forall d : ((cart R N') -> Prop) -> Prop, forall s : (cart R N') -> Prop, forall x : cart R N', (@division_of N' d s) -> N.le (@CARD ((cart R N') -> Prop) (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_5948 : (cart R N') -> Prop => exists k : (cart R N') -> Prop, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_5948 ((@IN ((cart R N') -> Prop) k d) /\ ((~ ((@content N' k) = (R_of_N (NUMERAL 0%N)))) /\ (@IN (cart R N') x k))) k))) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))). +Axiom thm_TAGGED_PARTIAL_DIVISION_COMMON_POINT_BOUND : forall {N' : Type'}, forall p : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall s : (cart R N') -> Prop, forall y : cart R N', (@tagged_partial_division_of N' p s) -> N.le (@CARD (prod (cart R N') ((cart R N') -> Prop)) (@GSPEC (prod (cart R N') ((cart R N') -> Prop)) (fun GEN_PVAR_5949 : prod (cart R N') ((cart R N') -> Prop) => exists x : cart R N', exists k : (cart R N') -> Prop, @SETSPEC (prod (cart R N') ((cart R N') -> Prop)) GEN_PVAR_5949 ((@IN (prod (cart R N') ((cart R N') -> Prop)) (@pair (cart R N') ((cart R N') -> Prop) x k) p) /\ ((@IN (cart R N') y k) /\ (~ ((@content N' k) = (R_of_N (NUMERAL 0%N)))))) (@pair (cart R N') ((cart R N') -> Prop) x k)))) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))). +Axiom thm_TAGGED_PARTIAL_DIVISION_COMMON_TAGS : forall {N' : Type'}, forall p : (prod (cart R N') ((cart R N') -> Prop)) -> Prop, forall s : (cart R N') -> Prop, forall x : cart R N', (@tagged_partial_division_of N' p s) -> N.le (@CARD (prod (cart R N') ((cart R N') -> Prop)) (@GSPEC (prod (cart R N') ((cart R N') -> Prop)) (fun GEN_PVAR_5950 : prod (cart R N') ((cart R N') -> Prop) => exists k : (cart R N') -> Prop, @SETSPEC (prod (cart R N') ((cart R N') -> Prop)) GEN_PVAR_5950 ((@IN (prod (cart R N') ((cart R N') -> Prop)) (@pair (cart R N') ((cart R N') -> Prop) x k) p) /\ (~ ((@content N' k) = (R_of_N (NUMERAL 0%N))))) (@pair (cart R N') ((cart R N') -> Prop) x k)))) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))). +Axiom thm_HAS_INTEGRAL_DROP_POS_AE : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall i : cart R unit, ((@has_integral M unit f i s) /\ ((@negligible M t) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f x))))) -> Rle (R_of_N (NUMERAL 0%N)) (drop i). +Axiom thm_INTEGRAL_DROP_POS_AE : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@integrable_on unit M f s) /\ ((@negligible M t) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f x))))) -> Rle (R_of_N (NUMERAL 0%N)) (drop (@integral unit M s f)). +Axiom thm_HAS_INTEGRAL_SUBSET_COMPONENT_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall i : cart R N', forall j : cart R N', forall k : N, ((@SUBSET (cart R M) s t) /\ ((@has_integral M N' f i s) /\ ((@has_integral M N' f j t) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (forall x : cart R M, (@IN (cart R M) x t) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (f x) k))))))) -> Rle (@dollar R N' i k) (@dollar R N' j k). +Axiom thm_INTEGRAL_SUBSET_COMPONENT_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall k : N, ((@SUBSET (cart R M) s t) /\ ((@integrable_on N' M f s) /\ ((@integrable_on N' M f t) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (forall x : cart R M, (@IN (cart R M) x t) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (f x) k))))))) -> Rle (@dollar R N' (@integral N' M s f) k) (@dollar R N' (@integral N' M t f) k). +Axiom thm_HAS_INTEGRAL_SUBSET_DROP_LE : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall i : cart R unit, forall j : cart R unit, ((@SUBSET (cart R M) s t) /\ ((@has_integral M unit f i s) /\ ((@has_integral M unit f j t) /\ (forall x : cart R M, (@IN (cart R M) x t) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f x)))))) -> Rle (drop i) (drop j). +Axiom thm_INTEGRAL_SUBSET_DROP_LE : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) s t) /\ ((@integrable_on unit M f s) /\ ((@integrable_on unit M f t) /\ (forall x : cart R M, (@IN (cart R M) x t) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f x)))))) -> Rle (drop (@integral unit M s f)) (drop (@integral unit M t f)). +Axiom thm_INTEGRAL_SUBSET_DROP_LE_AE : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R M) -> Prop, ((@SUBSET (cart R M) s t) /\ ((@integrable_on unit M f s) /\ ((@integrable_on unit M f t) /\ ((@negligible M u) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t u)) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f x))))))) -> Rle (drop (@integral unit M s f)) (drop (@integral unit M t f)). +Axiom thm_HAS_INTEGRAL_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall i : cart R N', (@has_integral M N' f i s) = ((forall a : cart R M, forall b : cart R M, @integrable_on N' M (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall a : cart R M, forall b : cart R M, (@SUBSET (cart R M) (@ball M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) B)) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rlt (@vector_norm N' (@vector_sub N' (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N)))) i)) e))). +Axiom thm_INTEGRABLE_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@integrable_on N' M f s) = ((forall a : cart R M, forall b : cart R M, @integrable_on N' M (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall a : cart R M, forall b : cart R M, forall c : cart R M, forall d : cart R M, ((@SUBSET (cart R M) (@ball M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) B)) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@SUBSET (cart R M) (@ball M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) B)) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))))) -> Rlt (@vector_norm N' (@vector_sub N' (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N)))) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N)))))) e))). +Axiom thm_INTEGRABLE_ALT_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@integrable_on N' M f s) = ((forall a : cart R M, forall b : cart R M, @integrable_on N' M (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall a : cart R M, forall b : cart R M, forall c : cart R M, forall d : cart R M, ((@SUBSET (cart R M) (@ball M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) B)) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))))) -> Rlt (@vector_norm N' (@vector_sub N' (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N)))) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N)))))) e))). +Axiom thm_INTEGRABLE_ON_SUBINTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, forall b : cart R M, ((@integrable_on N' M f s) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s)) -> @integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_INTEGRAL_SPLIT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall t : R, forall k : N, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex M (@UNIV M))))) -> (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f) = (@vector_add N' (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a (@lambda R M (fun i : N => @COND R (i = k) (Rmin (@dollar R M b k) t) (@dollar R M b i)))) (@nil (prod (cart R M) (cart R M))))) f) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@lambda R M (fun i : N => @COND R (i = k) (Rmax (@dollar R M a k) t) (@dollar R M a i))) b) (@nil (prod (cart R M) (cart R M))))) f)). +Axiom thm_INTEGRAL_SPLIT_SIGNED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall t : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex M (@UNIV M))) /\ ((Rle (@dollar R M a k) t) /\ ((Rle (@dollar R M a k) (@dollar R M b k)) /\ (@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a (@lambda R M (fun i : N => @COND R (i = k) (Rmax (@dollar R M b k) t) (@dollar R M b i)))) (@nil (prod (cart R M) (cart R M)))))))))) -> (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f) = (@vector_add N' (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a (@lambda R M (fun i : N => @COND R (i = k) t (@dollar R M b i)))) (@nil (prod (cart R M) (cart R M))))) f) (@percent N' (@COND R (Rlt (@dollar R M b k) t) (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL (BIT1 0%N)))) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@lambda R M (fun i : N => @COND R (i = k) (Rmin (@dollar R M b k) t) (@dollar R M a i))) (@lambda R M (fun i : N => @COND R (i = k) (Rmax (@dollar R M b k) t) (@dollar R M b i)))) (@nil (prod (cart R M) (cart R M))))) f))). +Axiom thm_INTEGRAL_INTERVALS_INCLUSION_EXCLUSION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall c : cart R M, forall d : cart R M, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN (cart R M) c (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@IN (cart R M) d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))))) -> (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a d) (@nil (prod (cart R M) (cart R M))))) f) = (@vsum (N -> Prop) N' (@GSPEC (N -> Prop) (fun GEN_PVAR_5962 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5962 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M)))) s)) (fun s : N -> Prop => @percent N' (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD N (@GSPEC N (fun GEN_PVAR_5963 : N => exists i : N, @SETSPEC N GEN_PVAR_5963 ((@IN N i s) /\ (Rlt (@dollar R M d i) (@dollar R M c i))) i)))) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@lambda R M (fun i : N => @COND R (@IN N i s) (Rmin (@dollar R M c i) (@dollar R M d i)) (@dollar R M a i))) (@lambda R M (fun i : N => @COND R (@IN N i s) (Rmax (@dollar R M c i) (@dollar R M d i)) (@dollar R M c i)))) (@nil (prod (cart R M) (cart R M))))) f))). +Axiom thm_INTEGRAL_INTERVALS_DIFF_INCLUSION_EXCLUSION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall c : cart R M, forall d : cart R M, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN (cart R M) c (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@IN (cart R M) d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))))) -> (@vector_sub N' (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a d) (@nil (prod (cart R M) (cart R M))))) f) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a c) (@nil (prod (cart R M) (cart R M))))) f)) = (@vsum (N -> Prop) N' (@GSPEC (N -> Prop) (fun GEN_PVAR_5966 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5966 ((~ (s = (@EMPTY N))) /\ (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M))))) s)) (fun s : N -> Prop => @percent N' (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD N (@GSPEC N (fun GEN_PVAR_5967 : N => exists i : N, @SETSPEC N GEN_PVAR_5967 ((@IN N i s) /\ (Rlt (@dollar R M d i) (@dollar R M c i))) i)))) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@lambda R M (fun i : N => @COND R (@IN N i s) (Rmin (@dollar R M c i) (@dollar R M d i)) (@dollar R M a i))) (@lambda R M (fun i : N => @COND R (@IN N i s) (Rmax (@dollar R M c i) (@dollar R M d i)) (@dollar R M c i)))) (@nil (prod (cart R M) (cart R M))))) f))). +Axiom thm_INTEGRAL_INTERVALS_INCLUSION_EXCLUSION_RIGHT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall c : cart R M, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@IN (cart R M) c (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a c) (@nil (prod (cart R M) (cart R M))))) f) = (@vsum (N -> Prop) N' (@GSPEC (N -> Prop) (fun GEN_PVAR_5968 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5968 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M)))) s)) (fun s : N -> Prop => @percent N' (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD N s)) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@lambda R M (fun i : N => @COND R (@IN N i s) (@dollar R M c i) (@dollar R M a i))) b) (@nil (prod (cart R M) (cart R M))))) f))). +Axiom thm_INTEGRAL_INTERVALS_INCLUSION_EXCLUSION_LEFT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall c : cart R M, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@IN (cart R M) c (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c b) (@nil (prod (cart R M) (cart R M))))) f) = (@vsum (N -> Prop) N' (@GSPEC (N -> Prop) (fun GEN_PVAR_5969 : N -> Prop => exists s : N -> Prop, @SETSPEC (N -> Prop) GEN_PVAR_5969 (@SUBSET N s (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M)))) s)) (fun s : N -> Prop => @percent N' (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (@CARD N s)) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a (@lambda R M (fun i : N => @COND R (@IN N i s) (@dollar R M c i) (@dollar R M b i)))) (@nil (prod (cart R M) (cart R M))))) f))). +Axiom thm_HAS_INTEGRAL_REFLECT_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : cart R N', forall s : (cart R M) -> Prop, (@has_integral M N' (fun x : cart R M => f (@vector_neg M x)) i s) = (@has_integral M N' f i (@IMAGE (cart R M) (cart R M) (@vector_neg M) s)). +Axiom thm_INTEGRABLE_REFLECT_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@integrable_on N' M (fun x : cart R M => f (@vector_neg M x)) s) = (@integrable_on N' M f (@IMAGE (cart R M) (cart R M) (@vector_neg M) s)). +Axiom thm_INTEGRAL_REFLECT_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@integral N' M s (fun x : cart R M => f (@vector_neg M x))) = (@integral N' M (@IMAGE (cart R M) (cart R M) (@vector_neg M) s) f). +Axiom thm_INTEGRABLE_STRADDLE_INTERVAL : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall a : cart R N', forall b : cart R N', (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists g : (cart R N') -> cart R unit, exists h : (cart R N') -> cart R unit, exists i : cart R unit, exists j : cart R unit, (@has_integral N' unit g i (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((@has_integral N' unit h j (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((Rlt (@vector_norm unit (@vector_sub unit i j)) e) /\ (forall x : cart R N', (@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> (Rle (drop (g x)) (drop (f x))) /\ (Rle (drop (f x)) (drop (h x))))))) -> @integrable_on unit N' f (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_INTEGRABLE_STRADDLE : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists g : (cart R N') -> cart R unit, exists h : (cart R N') -> cart R unit, exists i : cart R unit, exists j : cart R unit, (@has_integral N' unit g i s) /\ ((@has_integral N' unit h j s) /\ ((Rlt (@vector_norm unit (@vector_sub unit i j)) e) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (Rle (drop (g x)) (drop (f x))) /\ (Rle (drop (f x)) (drop (h x))))))) -> @integrable_on unit N' f s. +Axiom thm_HAS_INTEGRAL_STRADDLE_NULL : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall g : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((forall x : cart R N', (@IN (cart R N') x s) -> (Rle (R_of_N (NUMERAL 0%N)) (drop (f x))) /\ (Rle (drop (f x)) (drop (g x)))) /\ (@has_integral N' unit g (@vec unit (NUMERAL 0%N)) s)) -> @has_integral N' unit f (@vec unit (NUMERAL 0%N)) s. +Axiom thm_HAS_INTEGRAL_UNION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : cart R N', forall j : cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@has_integral M N' f i s) /\ ((@has_integral M N' f j t) /\ (@negligible M (@INTER (cart R M) s t)))) -> @has_integral M N' f (@vector_add N' i j) (@UNION (cart R M) s t). +Axiom thm_INTEGRAL_UNION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ ((@integrable_on N' M f t) /\ (@negligible M (@INTER (cart R M) s t)))) -> (@integral N' M (@UNION (cart R M) s t) f) = (@vector_add N' (@integral N' M s f) (@integral N' M t f)). +Axiom thm_INTEGRABLE_UNION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ ((@integrable_on N' M f t) /\ (@negligible M (@INTER (cart R M) s t)))) -> @integrable_on N' M f (@UNION (cart R M) s t). +Axiom thm_INTEGRABLE_UNION_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ (@integrable_on N' M f t)) -> (@integrable_on N' M f (@UNION (cart R M) s t)) = (@integrable_on N' M f (@INTER (cart R M) s t)). +Axiom thm_HAS_INTEGRAL_UNIONS_IMAGE : forall {A M N' : Type'}, forall f : (cart R M) -> cart R N', forall k : A -> (cart R M) -> Prop, forall i : A -> cart R N', forall t : A -> Prop, ((@FINITE A t) /\ ((forall s : A, (@IN A s t) -> @has_integral M N' f (i s) (k s)) /\ (@pairwise A (fun i' : A => fun j : A => @negligible M (@INTER (cart R M) (k i') (k j))) t))) -> @has_integral M N' f (@vsum A N' t i) (@UNIONS (cart R M) (@IMAGE A ((cart R M) -> Prop) k t)). +Axiom thm_HAS_INTEGRAL_UNIONS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : ((cart R M) -> Prop) -> cart R N', forall t : ((cart R M) -> Prop) -> Prop, ((@FINITE ((cart R M) -> Prop) t) /\ ((forall s : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) s t) -> @has_integral M N' f (i s) s) /\ (forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, ((@IN ((cart R M) -> Prop) s t) /\ ((@IN ((cart R M) -> Prop) s' t) /\ (~ (s = s')))) -> @negligible M (@INTER (cart R M) s s')))) -> @has_integral M N' f (@vsum ((cart R M) -> Prop) N' t i) (@UNIONS (cart R M) t). +Axiom thm_INTEGRABLE_UNIONS_IMAGE : forall {A M N' : Type'}, forall f : (cart R M) -> cart R N', forall k : A -> (cart R M) -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ ((forall s : A, (@IN A s t) -> @integrable_on N' M f (k s)) /\ (@pairwise A (fun i : A => fun j : A => @negligible M (@INTER (cart R M) (k i) (k j))) t))) -> @integrable_on N' M f (@UNIONS (cart R M) (@IMAGE A ((cart R M) -> Prop) k t)). +Axiom thm_INTEGRABLE_UNIONS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall u : ((cart R M) -> Prop) -> Prop, ((@FINITE ((cart R M) -> Prop) u) /\ ((forall s : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) s u) -> @integrable_on N' M f s) /\ (@pairwise ((cart R M) -> Prop) (fun s : (cart R M) -> Prop => fun t : (cart R M) -> Prop => @negligible M (@INTER (cart R M) s t)) u))) -> @integrable_on N' M f (@UNIONS (cart R M) u). +Axiom thm_HAS_INTEGRAL_DIFF : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : cart R N', forall j : cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@has_integral M N' f i s) /\ ((@has_integral M N' f j t) /\ (@negligible M (@DIFF (cart R M) t s)))) -> @has_integral M N' f (@vector_sub N' i j) (@DIFF (cart R M) s t). +Axiom thm_INTEGRAL_DIFF : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ ((@integrable_on N' M f t) /\ (@negligible M (@DIFF (cart R M) t s)))) -> (@integral N' M (@DIFF (cart R M) s t) f) = (@vector_sub N' (@integral N' M s f) (@integral N' M t f)). +Axiom thm_INTEGRABLE_DIFF : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ ((@integrable_on N' M f t) /\ (@SUBSET (cart R M) t s))) -> @integrable_on N' M f (@DIFF (cart R M) s t). +Axiom thm_INTEGRABLE_ON_SUBINTERVAL_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@integrable_on N' unit f s) /\ ((@SUBSET (cart R unit) t s) /\ (@is_interval unit t))) -> @integrable_on N' unit f t. +Axiom thm_INTEGRABLE_ON_SUBSET : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@integrable_on N' unit f s) /\ ((@SUBSET (cart R unit) t s) /\ (@FINITE ((cart R unit) -> Prop) (@components unit t)))) -> @integrable_on N' unit f t. +Axiom thm_HAS_INTEGRAL_COMBINE_DIVISION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall d : ((cart R M) -> Prop) -> Prop, forall i : ((cart R M) -> Prop) -> cart R N', ((@division_of M d s) /\ (forall k : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) k d) -> @has_integral M N' f (i k) k)) -> @has_integral M N' f (@vsum ((cart R M) -> Prop) N' d i) s. +Axiom thm_INTEGRAL_COMBINE_DIVISION_BOTTOMUP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall d : ((cart R M) -> Prop) -> Prop, forall s : (cart R M) -> Prop, ((@division_of M d s) /\ (forall k : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) k d) -> @integrable_on N' M f k)) -> (@integral N' M s f) = (@vsum ((cart R M) -> Prop) N' d (fun i : (cart R M) -> Prop => @integral N' M i f)). +Axiom thm_HAS_INTEGRAL_COMBINE_DIVISION_TOPDOWN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall d : ((cart R M) -> Prop) -> Prop, forall k : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ ((@division_of M d k) /\ (@SUBSET (cart R M) k s))) -> @has_integral M N' f (@vsum ((cart R M) -> Prop) N' d (fun i : (cart R M) -> Prop => @integral N' M i f)) k. +Axiom thm_INTEGRAL_COMBINE_DIVISION_TOPDOWN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall d : ((cart R M) -> Prop) -> Prop, forall s : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ (@division_of M d s)) -> (@integral N' M s f) = (@vsum ((cart R M) -> Prop) N' d (fun i : (cart R M) -> Prop => @integral N' M i f)). +Axiom thm_INTEGRABLE_COMBINE_DIVISION : forall {_1328871 _1328883 : Type'}, forall f : (cart R _1328871) -> cart R _1328883, forall d : ((cart R _1328871) -> Prop) -> Prop, forall s : (cart R _1328871) -> Prop, ((@division_of _1328871 d s) /\ (forall i : (cart R _1328871) -> Prop, (@IN ((cart R _1328871) -> Prop) i d) -> @integrable_on _1328883 _1328871 f i)) -> @integrable_on _1328883 _1328871 f s. +Axiom thm_INTEGRABLE_ON_SUBDIVISION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall d : ((cart R M) -> Prop) -> Prop, forall i : (cart R M) -> Prop, ((@division_of M d i) /\ ((@integrable_on N' M f s) /\ (@SUBSET (cart R M) i s))) -> @integrable_on N' M f i. +Axiom thm_HAS_INTEGRAL_COMBINE_TAGGED_DIVISION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, forall i : ((cart R M) -> Prop) -> cart R N', ((@tagged_division_of M p s) /\ (forall x : cart R M, forall k : (cart R M) -> Prop, (@IN (prod (cart R M) ((cart R M) -> Prop)) (@pair (cart R M) ((cart R M) -> Prop) x k) p) -> @has_integral M N' f (i k) k)) -> @has_integral M N' f (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (i k)))) s. +Axiom thm_INTEGRAL_COMBINE_TAGGED_DIVISION_BOTTOMUP : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, forall a : cart R M, forall b : cart R M, ((@tagged_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (forall x : cart R M, forall k : (cart R M) -> Prop, (@IN (prod (cart R M) ((cart R M) -> Prop)) (@pair (cart R M) ((cart R M) -> Prop) x k) p) -> @integrable_on N' M f k)) -> (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f) = (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@integral N' M k f)))). +Axiom thm_HAS_INTEGRAL_COMBINE_TAGGED_DIVISION_TOPDOWN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@tagged_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> @has_integral M N' f (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@integral N' M k f)))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_INTEGRAL_COMBINE_TAGGED_DIVISION_TOPDOWN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@tagged_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f) = (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@integral N' M k f)))). +Axiom thm_HENSTOCK_LEMMA_PART1 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall d : (cart R M) -> (cart R M) -> Prop, forall e : R, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@gauge M d) /\ (forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@tagged_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@fine (cart R M) (cart R M) d p)) -> Rlt (@vector_norm N' (@vector_sub N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (f x))))) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f))) e)))) -> forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@tagged_partial_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@fine (cart R M) (cart R M) d p)) -> Rle (@vector_norm N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@vector_sub N' (@percent N' (@content M k) (f x)) (@integral N' M k f)))))) e. +Axiom thm_HENSTOCK_LEMMA_PART2 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall d : (cart R M) -> (cart R M) -> Prop, forall e : R, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@gauge M d) /\ (forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@tagged_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@fine (cart R M) (cart R M) d p)) -> Rlt (@vector_norm N' (@vector_sub N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (f x))))) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f))) e)))) -> forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@tagged_partial_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@fine (cart R M) (cart R M) d p)) -> Rle (@sum (prod (cart R M) ((cart R M) -> Prop)) p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> R) (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> R => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ R (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@vector_norm N' (@vector_sub N' (@percent N' (@content M k) (f x)) (@integral N' M k f)))))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (R_of_N (@dimindex N' (@UNIV N'))) e)). +Axiom thm_HENSTOCK_LEMMA : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : (cart R M) -> (cart R M) -> Prop, (@gauge M d) /\ (forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@tagged_partial_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@fine (cart R M) (cart R M) d p)) -> Rlt (@sum (prod (cart R M) ((cart R M) -> Prop)) p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> R) (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> R => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ R (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@vector_norm N' (@vector_sub N' (@percent N' (@content M k) (f x)) (@integral N' M k f)))))) e). +Axiom thm_MONOTONE_CONVERGENCE_INTERVAL : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall g : (cart R N') -> cart R unit, forall a : cart R N', forall b : cart R N', ((forall k : N, @integrable_on unit N' (f k) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((forall k : N, forall x : cart R N', (@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> Rle (drop (f k x)) (drop (f (N.succ k) x))) /\ ((forall x : cart R N', (@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> @FImp unit N (fun k : N => f k x) (g x) sequentially) /\ (@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_5980 : cart R unit => exists k : N, @SETSPEC (cart R unit) GEN_PVAR_5980 (@IN N k (@UNIV N)) (@integral unit N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (f k)))))))) -> (@integrable_on unit N' g (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (@FImp unit N (fun k : N => @integral unit N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (f k)) (@integral unit N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) g) sequentially). +Axiom thm_MONOTONE_CONVERGENCE_INCREASING : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall g : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((forall k : N, @integrable_on unit N' (f k) s) /\ ((forall k : N, forall x : cart R N', (@IN (cart R N') x s) -> Rle (drop (f k x)) (drop (f (N.succ k) x))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @FImp unit N (fun k : N => f k x) (g x) sequentially) /\ (@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_5982 : cart R unit => exists k : N, @SETSPEC (cart R unit) GEN_PVAR_5982 (@IN N k (@UNIV N)) (@integral unit N' s (f k)))))))) -> (@integrable_on unit N' g s) /\ (@FImp unit N (fun k : N => @integral unit N' s (f k)) (@integral unit N' s g) sequentially). +Axiom thm_MONOTONE_CONVERGENCE_DECREASING : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall g : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((forall k : N, @integrable_on unit N' (f k) s) /\ ((forall k : N, forall x : cart R N', (@IN (cart R N') x s) -> Rle (drop (f (N.succ k) x)) (drop (f k x))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @FImp unit N (fun k : N => f k x) (g x) sequentially) /\ (@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_5984 : cart R unit => exists k : N, @SETSPEC (cart R unit) GEN_PVAR_5984 (@IN N k (@UNIV N)) (@integral unit N' s (f k)))))))) -> (@integrable_on unit N' g s) /\ (@FImp unit N (fun k : N => @integral unit N' s (f k)) (@integral unit N' s g) sequentially). +Axiom thm_MONOTONE_CONVERGENCE_INCREASING_AE : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall g : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((forall k : N, @integrable_on unit N' (f k) s) /\ ((@negligible N' t) /\ ((forall k : N, forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s t)) -> Rle (drop (f k x)) (drop (f (N.succ k) x))) /\ ((forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s t)) -> @FImp unit N (fun k : N => f k x) (g x) sequentially) /\ (@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_5987 : cart R unit => exists k : N, @SETSPEC (cart R unit) GEN_PVAR_5987 (@IN N k (@UNIV N)) (@integral unit N' s (f k))))))))) -> (@integrable_on unit N' g s) /\ (@FImp unit N (fun k : N => @integral unit N' s (f k)) (@integral unit N' s g) sequentially). +Axiom thm_MONOTONE_CONVERGENCE_DECREASING_AE : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall g : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((forall k : N, @integrable_on unit N' (f k) s) /\ ((@negligible N' t) /\ ((forall k : N, forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s t)) -> Rle (drop (f (N.succ k) x)) (drop (f k x))) /\ ((forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s t)) -> @FImp unit N (fun k : N => f k x) (g x) sequentially) /\ (@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_5990 : cart R unit => exists k : N, @SETSPEC (cart R unit) GEN_PVAR_5990 (@IN N k (@UNIV N)) (@integral unit N' s (f k))))))))) -> (@integrable_on unit N' g s) /\ (@FImp unit N (fun k : N => @integral unit N' s (f k)) (@integral unit N' s g) sequentially). +Axiom thm_INTEGRAL_NORM_BOUND_INTEGRAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ ((@integrable_on unit M g s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f x)) (drop (g x))))) -> Rle (@vector_norm N' (@integral N' M s f)) (drop (@integral unit M s g)). +Axiom thm_INTEGRAL_NORM_BOUND_INTEGRAL_COMPONENT : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex P (@UNIV P))) /\ ((@integrable_on N' M f s) /\ ((@integrable_on P M g s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f x)) (@dollar R P (g x) k)))))) -> Rle (@vector_norm N' (@integral N' M s f)) (@dollar R P (@integral P M s g) k). +Axiom thm_HAS_INTEGRAL_NORM_BOUND_INTEGRAL_COMPONENT : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, forall i : cart R N', forall j : cart R P, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex P (@UNIV P))) /\ ((@has_integral M N' f i s) /\ ((@has_integral M P g j s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f x)) (@dollar R P (g x) k)))))) -> Rle (@vector_norm N' i) (@dollar R P j k). +Axiom thm_INTEGRABLE_ON_ALL_INTERVALS_INTEGRABLE_BOUND : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, ((forall a : cart R M, forall b : cart R M, @integrable_on N' M (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f x)) (drop (g x))) /\ (@integrable_on unit M g s))) -> @integrable_on N' M f s. +Axiom thm_HAS_INTEGRAL_LIM_AT_POSINFINITY : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall l : cart R N', (@has_integral unit N' f l (@GSPEC (cart R unit) (fun GEN_PVAR_5992 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_5992 (Rle (R_of_N (NUMERAL 0%N)) (drop t)) t))) = ((forall a : cart R unit, @integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) a) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@FImp N' R (fun a : R => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (lift a)) (@nil (prod (cart R unit) (cart R unit))))) f) l at_posinfinity)). +Axiom thm_HAS_INTEGRAL_LIM_AT_POSINFINITY_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : R, forall l : cart R N', (@has_integral unit N' f l (@GSPEC (cart R unit) (fun GEN_PVAR_5995 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_5995 (Rle a (drop t)) t))) = ((forall b : R, @integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (lift a) (lift b)) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@FImp N' R (fun b : R => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (lift a) (lift b)) (@nil (prod (cart R unit) (cart R unit))))) f) l at_posinfinity)). +Axiom thm_HAS_INTEGRAL_LIM_SEQUENTIALLY : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall l : cart R N', ((@FImp N' R (@o R (cart R unit) (cart R N') f lift) (@vec N' (NUMERAL 0%N)) at_posinfinity) /\ ((forall n : N, @integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit n)) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@FImp N' N (fun n : N => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit n)) (@nil (prod (cart R unit) (cart R unit))))) f) l sequentially))) -> @has_integral unit N' f l (@GSPEC (cart R unit) (fun GEN_PVAR_5996 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_5996 (Rle (R_of_N (NUMERAL 0%N)) (drop t)) t)). +Axiom thm_set_variation : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall f : ((cart R M) -> Prop) -> cart R N', (@set_variation M N' s f) = (sup (@GSPEC R (fun GEN_PVAR_5997 : R => exists d : ((cart R M) -> Prop) -> Prop, @SETSPEC R GEN_PVAR_5997 (exists t : (cart R M) -> Prop, (@division_of M d t) /\ (@SUBSET (cart R M) t s)) (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k)))))). +Axiom thm_has_bounded_setvariation_on : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall f : ((cart R M) -> Prop) -> cart R N', (@has_bounded_setvariation_on M N' f s) = (exists B : R, forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ (@SUBSET (cart R M) t s)) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) B). +Axiom thm_SET_VARIATION_DEGENERATES : forall {_1335200 M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R _1335200, forall s : (cart R M) -> Prop, ((~ (@has_bounded_setvariation_on M N' f s)) /\ (~ (@has_bounded_setvariation_on M _1335200 g s))) -> (@set_variation M N' s f) = (@set_variation M _1335200 s g). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M N' f s) = (exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ (@SUBSET (cart R M) t s)) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) B)). +Axiom thm_HAS_BOUNDED_SET_VARIATION : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall c : R, ((@has_bounded_setvariation_on M N' f s) /\ (Rle (@set_variation M N' s f) c)) = (forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ (@SUBSET (cart R M) t s)) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) c). +Axiom thm_HAS_BOUNDED_SETVARIATION_COMPARISON : forall {M N' P : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R P, forall s : (cart R M) -> Prop, ((@has_bounded_setvariation_on M N' f s) /\ (forall a : cart R M, forall b : cart R M, ((~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s)) -> Rle (@vector_norm P (g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) (@vector_norm N' (f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))))) -> @has_bounded_setvariation_on M P g s. +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_EQ : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((forall a : cart R M, forall b : cart R M, ((~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s)) -> (f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) /\ (@has_bounded_setvariation_on M N' f s)) -> @has_bounded_setvariation_on M N' g s. +Axiom thm_SET_VARIATION_EQ : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (forall a : cart R M, forall b : cart R M, ((~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s)) -> (f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> (@set_variation M N' s f) = (@set_variation M N' s g). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_COMPONENTWISE : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M N' f s) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @has_bounded_setvariation_on M unit (fun k : (cart R M) -> Prop => lift (@dollar R N' (f k) i)) s). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_LIFT_ABS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> R, forall s : (cart R N') -> Prop, (@has_bounded_setvariation_on N' unit (fun x : (cart R N') -> Prop => lift (Rabs (f x))) s) = (@has_bounded_setvariation_on N' unit (fun x : (cart R N') -> Prop => lift (f x)) s). +Axiom thm_SETVARIATION_EQUAL_LEMMA : forall {M N' : Type'}, forall mf : (((cart R M) -> Prop) -> cart R N') -> ((cart R M) -> Prop) -> cart R N', forall ms : ((cart R M) -> Prop) -> (cart R M) -> Prop, forall ms' : ((cart R M) -> Prop) -> (cart R M) -> Prop, ((forall s : (cart R M) -> Prop, ((ms' (ms s)) = s) /\ ((ms (ms' s)) = s)) /\ ((forall f : ((cart R M) -> Prop) -> cart R N', forall a : cart R M, forall b : cart R M, (~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))) -> ((mf f (ms (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) = (f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) /\ (exists a' : cart R M, exists b' : cart R M, (~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a' b') (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))) /\ ((ms' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a' b') (@nil (prod (cart R M) (cart R M)))))))) /\ ((forall t : (cart R M) -> Prop, forall u : (cart R M) -> Prop, (@SUBSET (cart R M) t u) -> (@SUBSET (cart R M) (ms t) (ms u)) /\ (@SUBSET (cart R M) (ms' t) (ms' u))) /\ (forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, (@division_of M d t) -> (@division_of M (@IMAGE ((cart R M) -> Prop) ((cart R M) -> Prop) ms d) (ms t)) /\ (@division_of M (@IMAGE ((cart R M) -> Prop) ((cart R M) -> Prop) ms' d) (ms' t)))))) -> (forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M N' (mf f) (ms s)) = (@has_bounded_setvariation_on M N' f s)) /\ (forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@set_variation M N' (ms s) (mf f)) = (@set_variation M N' s f)). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_ELEMENTARY : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (exists d : ((cart R M) -> Prop) -> Prop, @division_of M d s) -> (@has_bounded_setvariation_on M N' f s) = (exists B : R, forall d : ((cart R M) -> Prop) -> Prop, (@division_of M d s) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) B). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_INTERVAL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall a : cart R M, forall b : cart R M, (@has_bounded_setvariation_on M N' f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (exists B : R, forall d : ((cart R M) -> Prop) -> Prop, (@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) B). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_UNIV : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', (@has_bounded_setvariation_on M N' f (@UNIV (cart R M))) = (exists B : R, forall d : ((cart R M) -> Prop) -> Prop, (@division_of M d (@UNIONS (cart R M) d)) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) B). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_SUBSET : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@has_bounded_setvariation_on M N' f s) /\ (@SUBSET (cart R M) t s)) -> @has_bounded_setvariation_on M N' f t. +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_IMP_BOUNDED_ON_SUBINTERVALS : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M N' f s) -> @bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_6000 : cart R N' => exists c : cart R M, exists d : cart R M, @SETSPEC (cart R N') GEN_PVAR_6000 (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) s) (f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M)))))))). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_NORM : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M unit (fun x : (cart R M) -> Prop => lift (@vector_norm N' (f x))) s) = (@has_bounded_setvariation_on M N' f s). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_COMPOSE_LINEAR : forall {M N' P : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, ((@has_bounded_setvariation_on M N' f s) /\ (@linear N' P g)) -> @has_bounded_setvariation_on M P (@o ((cart R M) -> Prop) (cart R N') (cart R P) g f) s. +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_0 : forall {_1336649 N' : Type'}, forall s : (cart R N') -> Prop, @has_bounded_setvariation_on N' _1336649 (fun x : (cart R N') -> Prop => @vec _1336649 (NUMERAL 0%N)) s. +Axiom thm_SET_VARIATION_0 : forall {_1336665 N' : Type'}, forall s : (cart R N') -> Prop, (@set_variation N' _1336665 s (fun x : (cart R N') -> Prop => @vec _1336665 (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_CMUL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall c : R, forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M N' f s) -> @has_bounded_setvariation_on M N' (fun x : (cart R M) -> Prop => @percent N' c (f x)) s. +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_NEG : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M N' (fun x : (cart R M) -> Prop => @vector_neg N' (f x)) s) = (@has_bounded_setvariation_on M N' f s). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_ADD : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((@has_bounded_setvariation_on M N' f s) /\ (@has_bounded_setvariation_on M N' g s)) -> @has_bounded_setvariation_on M N' (fun x : (cart R M) -> Prop => @vector_add N' (f x) (g x)) s. +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_SUB : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((@has_bounded_setvariation_on M N' f s) /\ (@has_bounded_setvariation_on M N' g s)) -> @has_bounded_setvariation_on M N' (fun x : (cart R M) -> Prop => @vector_sub N' (f x) (g x)) s. +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_MUL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R unit, forall g : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((@has_bounded_setvariation_on M unit f s) /\ (@has_bounded_setvariation_on M N' g s)) -> @has_bounded_setvariation_on M N' (fun x : (cart R M) -> Prop => @percent N' (drop (f x)) (g x)) s. +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_NULL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((forall a : cart R M, forall b : cart R M, ((~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))) /\ ((@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s) /\ ((@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (R_of_N (NUMERAL 0%N))))) -> (f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (@vec N' (NUMERAL 0%N))) /\ (((@content M s) = (R_of_N (NUMERAL 0%N))) /\ (@bounded M s))) -> @has_bounded_setvariation_on M N' f s. +Axiom thm_SET_VARIATION_ON_EMPTY : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', (@set_variation M N' (@EMPTY (cart R M)) f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SET_VARIATION_ELEMENTARY_LEMMA : forall {M N' : Type'} (b : R), forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (exists d : ((cart R M) -> Prop) -> Prop, @division_of M d s) -> (forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ (@SUBSET (cart R M) t s)) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) b) = (forall d : ((cart R M) -> Prop) -> Prop, (@division_of M d s) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) b). +Axiom thm_SET_VARIATION_ON_ELEMENTARY : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (exists d : ((cart R M) -> Prop) -> Prop, @division_of M d s) -> (@set_variation M N' s f) = (sup (@GSPEC R (fun GEN_PVAR_6002 : R => exists d : ((cart R M) -> Prop) -> Prop, @SETSPEC R GEN_PVAR_6002 (@division_of M d s) (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k)))))). +Axiom thm_SET_VARIATION_ON_INTERVAL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall a : cart R M, forall b : cart R M, (@set_variation M N' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f) = (sup (@GSPEC R (fun GEN_PVAR_6003 : R => exists d : ((cart R M) -> Prop) -> Prop, @SETSPEC R GEN_PVAR_6003 (@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k)))))). +Axiom thm_SET_VARIATION_INTERVAL_LEMMA : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall c : R, (@is_interval M s) -> (forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ (@SUBSET (cart R M) t s)) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) c) = (forall d : ((cart R M) -> Prop) -> Prop, forall a : cart R M, forall b : cart R M, ((@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s)) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) c). +Axiom thm_HAS_BOUNDED_SETVARIATION_WORKS : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M N' f s) -> (forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ (@SUBSET (cart R M) t s)) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) (@set_variation M N' s f)) /\ (forall B : R, (forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ (@SUBSET (cart R M) t s)) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) B) -> Rle (@set_variation M N' s f) B). +Axiom thm_HAS_BOUNDED_SETVARIATION_WORKS_ON_ELEMENTARY : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((@has_bounded_setvariation_on M N' f s) /\ (exists d : ((cart R M) -> Prop) -> Prop, @division_of M d s)) -> (forall d : ((cart R M) -> Prop) -> Prop, (@division_of M d s) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) (@set_variation M N' s f)) /\ (forall B : R, (forall d : ((cart R M) -> Prop) -> Prop, (@division_of M d s) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) B) -> Rle (@set_variation M N' s f) B). +Axiom thm_HAS_BOUNDED_SETVARIATION_WORKS_ON_INTERVAL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall a : cart R M, forall b : cart R M, (@has_bounded_setvariation_on M N' f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> (forall d : ((cart R M) -> Prop) -> Prop, (@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) (@set_variation M N' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f)) /\ (forall B : R, (forall d : ((cart R M) -> Prop) -> Prop, (@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) B) -> Rle (@set_variation M N' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f) B). +Axiom thm_SET_VARIATION_UBOUND : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall B : R, ((@has_bounded_setvariation_on M N' f s) /\ (forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ (@SUBSET (cart R M) t s)) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) B)) -> Rle (@set_variation M N' s f) B. +Axiom thm_SET_VARIATION_UBOUND_ON_INTERVAL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall a : cart R M, forall b : cart R M, forall B : R, ((@has_bounded_setvariation_on M N' f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (forall d : ((cart R M) -> Prop) -> Prop, (@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) B)) -> Rle (@set_variation M N' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f) B. +Axiom thm_SET_VARIATION_LBOUND : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall B : R, ((@has_bounded_setvariation_on M N' f s) /\ (exists d : ((cart R M) -> Prop) -> Prop, exists t : (cart R M) -> Prop, (@division_of M d t) /\ ((@SUBSET (cart R M) t s) /\ (Rle B (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))))))) -> Rle B (@set_variation M N' s f). +Axiom thm_SET_VARIATION_LBOUND_ON_INTERVAL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall a : cart R M, forall b : cart R M, forall B : R, ((@has_bounded_setvariation_on M N' f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (exists d : ((cart R M) -> Prop) -> Prop, (@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (Rle B (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k)))))) -> Rle B (@set_variation M N' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f). +Axiom thm_SET_VARIATION : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@has_bounded_setvariation_on M N' f s) /\ ((@division_of M d t) /\ (@SUBSET (cart R M) t s))) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) (@set_variation M N' s f). +Axiom thm_SET_VARIATION_WORKS_ON_INTERVAL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall a : cart R M, forall b : cart R M, forall d : ((cart R M) -> Prop) -> Prop, ((@has_bounded_setvariation_on M N' f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> Rle (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) (@set_variation M N' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f). +Axiom thm_SET_VARIATION_POS_LE : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M N' f s) -> Rle (R_of_N (NUMERAL 0%N)) (@set_variation M N' s f). +Axiom thm_SET_VARIATION_CMUL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall c : R, (@has_bounded_setvariation_on M N' f s) -> (@set_variation M N' s (fun x : (cart R M) -> Prop => @percent N' c (f x))) = (Rmult (Rabs c) (@set_variation M N' s f)). +Axiom thm_SET_VARIATION_COMPARISON : forall {M N' P : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R P, forall s : (cart R M) -> Prop, ((@has_bounded_setvariation_on M N' f s) /\ (forall a : cart R M, forall b : cart R M, ((~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s)) -> Rle (@vector_norm P (g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) (@vector_norm N' (f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))))) -> Rle (@set_variation M P s g) (@set_variation M N' s f). +Axiom thm_SET_VARIATION_GE_FUNCTION : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, forall b : cart R M, ((@has_bounded_setvariation_on M N' f s) /\ ((@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s) /\ (~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))))) -> Rle (@vector_norm N' (f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) (@set_variation M N' s f). +Axiom thm_SET_VARIATION_ON_NULL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((forall a : cart R M, forall b : cart R M, ((@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (R_of_N (NUMERAL 0%N))) -> (f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (@vec N' (NUMERAL 0%N))) /\ (((@content M s) = (R_of_N (NUMERAL 0%N))) /\ (@bounded M s))) -> (@set_variation M N' s f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SET_VARIATION_TRIANGLE : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((@has_bounded_setvariation_on M N' f s) /\ (@has_bounded_setvariation_on M N' g s)) -> Rle (@set_variation M N' s (fun x : (cart R M) -> Prop => @vector_add N' (f x) (g x))) (Rplus (@set_variation M N' s f) (@set_variation M N' s g)). +Axiom thm_SET_VARIATION_SUM_LE : forall {A M N' : Type'}, forall f : A -> ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall k : A -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> @has_bounded_setvariation_on M N' (f i) s)) -> Rle (@set_variation M N' s (fun x : (cart R M) -> Prop => @vsum A N' k (fun i : A => f i x))) (@sum A k (fun i : A => @set_variation M N' s (f i))). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_VSUM : forall {A M N' : Type'}, forall f : A -> ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall k : A -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> @has_bounded_setvariation_on M N' (f i) s)) -> @has_bounded_setvariation_on M N' (fun x : (cart R M) -> Prop => @vsum A N' k (fun i : A => f i x)) s. +Axiom thm_BOUNDED_SET_VARIATION_ON_PASTECART : forall {M N' P : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R P, forall s : (cart R M) -> Prop, ((@has_bounded_setvariation_on M N' f s) /\ (@has_bounded_setvariation_on M P g s)) -> (@has_bounded_setvariation_on M (finite_sum N' P) (fun x : (cart R M) -> Prop => @pastecart R N' P (f x) (g x)) s) /\ (Rle (@set_variation M (finite_sum N' P) s (fun x : (cart R M) -> Prop => @pastecart R N' P (f x) (g x))) (Rplus (@set_variation M N' s f) (@set_variation M P s g))). +Axiom thm_BOUNDED_SET_VARIATION_FROM_PASTECART : forall {M N' P : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R P, forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M (finite_sum N' P) (fun x : (cart R M) -> Prop => @pastecart R N' P (f x) (g x)) s) -> ((@has_bounded_setvariation_on M N' f s) /\ (Rle (@set_variation M N' s f) (@set_variation M (finite_sum N' P) s (fun x : (cart R M) -> Prop => @pastecart R N' P (f x) (g x))))) /\ ((@has_bounded_setvariation_on M P g s) /\ (Rle (@set_variation M P s g) (@set_variation M (finite_sum N' P) s (fun x : (cart R M) -> Prop => @pastecart R N' P (f x) (g x))))). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_PASTECART : forall {M N' P : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R P, forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M (finite_sum N' P) (fun x : (cart R M) -> Prop => @pastecart R N' P (f x) (g x)) s) = ((@has_bounded_setvariation_on M N' f s) /\ (@has_bounded_setvariation_on M P g s)). +Axiom thm_OPERATIVE_LIFTED_SETVARIATION : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', (@operative (cart R N') M (@vector_add N') f) -> @operative (option R) M (@lifted R R Rplus) (fun i : (cart R M) -> Prop => @COND (option R) (@has_bounded_setvariation_on M N' f i) (@Some R (@set_variation M N' i f)) (@None R)). +Axiom thm_OPERATIVE_HAS_BOUNDED_SETVARIATION_ON : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', (@operative (cart R N') M (@vector_add N') f) -> @operative Prop M and (@has_bounded_setvariation_on M N' f). +Axiom thm_HAS_BOUNDED_SETVARIATION_ON_DIVISION : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall a : cart R M, forall b : cart R M, forall d : ((cart R M) -> Prop) -> Prop, ((@operative (cart R N') M (@vector_add N') f) /\ (@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> (forall k : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) k d) -> @has_bounded_setvariation_on M N' f k) = (@has_bounded_setvariation_on M N' f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_SET_VARIATION_ON_DIVISION : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall a : cart R M, forall b : cart R M, forall d : ((cart R M) -> Prop) -> Prop, ((@operative (cart R N') M (@vector_add N') f) /\ ((@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@has_bounded_setvariation_on M N' f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))))) -> (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @set_variation M N' k f)) = (@set_variation M N' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) f). +Axiom thm_SET_VARIATION_MONOTONE : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@has_bounded_setvariation_on M N' f s) /\ (@SUBSET (cart R M) t s)) -> Rle (@set_variation M N' t f) (@set_variation M N' s f). +Axiom thm_SET_VARIATION_REFLECT2 : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@set_variation M N' (@IMAGE (cart R M) (cart R M) (@vector_neg M) s) (fun k : (cart R M) -> Prop => f (@IMAGE (cart R M) (cart R M) (@vector_neg M) k))) = (@set_variation M N' s f). +Axiom thm_HAS_BOUNDED_SETVARIATION_REFLECT2_EQ : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M N' (fun k : (cart R M) -> Prop => f (@IMAGE (cart R M) (cart R M) (@vector_neg M) k)) (@IMAGE (cart R M) (cart R M) (@vector_neg M) s)) = (@has_bounded_setvariation_on M N' f s). +Axiom thm_SET_VARIATION_TRANSLATION2 : forall {M N' : Type'}, forall a : cart R M, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@set_variation M N' (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M (@vector_neg M a) x) s) (fun k : (cart R M) -> Prop => f (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M a x) k))) = (@set_variation M N' s f). +Axiom thm_HAS_BOUNDED_SETVARIATION_TRANSLATION2_EQ : forall {M N' : Type'}, forall a : cart R M, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@has_bounded_setvariation_on M N' (fun k : (cart R M) -> Prop => f (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M a x) k)) (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M (@vector_neg M a) x) s)) = (@has_bounded_setvariation_on M N' f s). +Axiom thm_HAS_BOUNDED_SETVARIATION_TRANSLATION : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@has_bounded_setvariation_on M N' f s) -> @has_bounded_setvariation_on M N' (fun k : (cart R M) -> Prop => f (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M a x) k)) (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M (@vector_neg M a) x) s). +Axiom thm_absolutely_integrable_on : forall {_1341718 _1341723 : Type'}, forall f : (cart R _1341723) -> cart R _1341718, forall s : (cart R _1341723) -> Prop, (@absolutely_integrable_on _1341718 _1341723 f s) = ((@integrable_on _1341718 _1341723 f s) /\ (@integrable_on unit _1341723 (fun x : cart R _1341723 => lift (@vector_norm _1341718 (f x))) s)). +Axiom thm_ABSOLUTELY_INTEGRABLE_IMP_INTEGRABLE : forall {_1341745 _1341746 : Type'}, forall f : (cart R _1341746) -> cart R _1341745, forall s : (cart R _1341746) -> Prop, (@absolutely_integrable_on _1341745 _1341746 f s) -> @integrable_on _1341745 _1341746 f s. +Axiom thm_ABSOLUTELY_INTEGRABLE_IMP_LIFT_NORM_INTEGRABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_integrable_on N' M f s) -> @integrable_on unit M (fun x : cart R M => lift (@vector_norm N' (f x))) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_RESTRICT_UNIV : forall {_1341808 M : Type'}, forall f : (cart R M) -> cart R _1341808, forall s : (cart R M) -> Prop, (@absolutely_integrable_on _1341808 M (fun x : cart R M => @COND (cart R _1341808) (@IN (cart R M) x s) (f x) (@vec _1341808 (NUMERAL 0%N))) (@UNIV (cart R M))) = (@absolutely_integrable_on _1341808 M f s). +Axiom thm_ABSOLUTELY_INTEGRABLE_RESTRICT_INTER : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@absolutely_integrable_on N' M (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) t) = (@absolutely_integrable_on N' M f (@INTER (cart R M) s t)). +Axiom thm_HAS_ABSOLUTE_INTEGRAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall y : cart R N', ((@absolutely_integrable_on N' M f s) /\ ((@integral N' M s f) = y)) = ((@absolutely_integrable_on N' M f s) /\ (@has_integral M N' f y s)). +Axiom thm_ABSOLUTELY_INTEGRABLE_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_integrable_on N' M f s) -> Rle (@vector_norm N' (@integral N' M s f)) (drop (@integral unit M s (fun x : cart R M => lift (@vector_norm N' (f x))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_NULL : forall {_1341960 _1341973 : Type'}, forall f : (cart R _1341973) -> cart R _1341960, forall a : cart R _1341973, forall b : cart R _1341973, ((@content _1341973 (@closed_interval _1341973 (@cons (prod (cart R _1341973) (cart R _1341973)) (@pair (cart R _1341973) (cart R _1341973) a b) (@nil (prod (cart R _1341973) (cart R _1341973)))))) = (R_of_N (NUMERAL 0%N))) -> @absolutely_integrable_on _1341960 _1341973 f (@closed_interval _1341973 (@cons (prod (cart R _1341973) (cart R _1341973)) (@pair (cart R _1341973) (cart R _1341973) a b) (@nil (prod (cart R _1341973) (cart R _1341973))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_EMPTY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', @absolutely_integrable_on N' M f (@EMPTY (cart R M)). +Axiom thm_ABSOLUTELY_INTEGRABLE_0 : forall {_1341994 _1341998 : Type'}, forall s : (cart R _1341994) -> Prop, @absolutely_integrable_on _1341998 _1341994 (fun x : cart R _1341994 => @vec _1341998 (NUMERAL 0%N)) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_CMUL : forall {_1342016 _1342021 : Type'}, forall f : (cart R _1342021) -> cart R _1342016, forall s : (cart R _1342021) -> Prop, forall c : R, (@absolutely_integrable_on _1342016 _1342021 f s) -> @absolutely_integrable_on _1342016 _1342021 (fun x : cart R _1342021 => @percent _1342016 c (f x)) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_CMUL_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall c : R, (@absolutely_integrable_on N' M (fun x : cart R M => @percent N' c (f x)) s) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@absolutely_integrable_on N' M f s)). +Axiom thm_ABSOLUTELY_INTEGRABLE_NEG : forall {_1342082 _1342090 : Type'}, forall f : (cart R _1342082) -> cart R _1342090, forall s : (cart R _1342082) -> Prop, (@absolutely_integrable_on _1342090 _1342082 f s) -> @absolutely_integrable_on _1342090 _1342082 (fun x : cart R _1342082 => @vector_neg _1342090 (f x)) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_NEG_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_integrable_on N' M (fun x : cart R M => @vector_neg N' (f x)) s) = (@absolutely_integrable_on N' M f s). +Axiom thm_ABSOLUTELY_INTEGRABLE_NORM : forall {_1342137 _1342142 : Type'}, forall f : (cart R _1342142) -> cart R _1342137, forall s : (cart R _1342142) -> Prop, (@absolutely_integrable_on _1342137 _1342142 f s) -> @absolutely_integrable_on unit _1342142 (fun x : cart R _1342142 => lift (@vector_norm _1342137 (f x))) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_ABS_1 : forall {_1342169 : Type'}, forall f : (cart R _1342169) -> cart R unit, forall s : (cart R _1342169) -> Prop, (@absolutely_integrable_on unit _1342169 f s) -> @absolutely_integrable_on unit _1342169 (fun x : cart R _1342169 => lift (Rabs (drop (f x)))) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_SUBINTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, forall b : cart R M, ((@absolutely_integrable_on N' M f s) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s)) -> @absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_COMBINE : forall {_1342270 : Type'}, forall f : (cart R unit) -> cart R _1342270, forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((Rle (drop a) (drop c)) /\ ((Rle (drop c) (drop b)) /\ ((@absolutely_integrable_on _1342270 unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@absolutely_integrable_on _1342270 unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))))))) -> @absolutely_integrable_on _1342270 unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_NEGLIGIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@negligible M s) -> @absolutely_integrable_on N' M f s. +Axiom thm_ABSOLUTELY_INTEGRABLE_SPIKE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@negligible M s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> (g x) = (f x))) -> (@absolutely_integrable_on N' M f t) -> @absolutely_integrable_on N' M g t. +Axiom thm_ABSOLUTELY_INTEGRABLE_SPIKE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@negligible M s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> (g x) = (f x))) -> (@absolutely_integrable_on N' M f t) = (@absolutely_integrable_on N' M g t). +Axiom thm_ABSOLUTELY_INTEGRABLE_SPIKE_SET_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@negligible M (@UNION (cart R M) (@DIFF (cart R M) s t) (@DIFF (cart R M) t s))) -> (@absolutely_integrable_on N' M f s) = (@absolutely_integrable_on N' M f t). +Axiom thm_ABSOLUTELY_INTEGRABLE_SPIKE_SET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@negligible M (@UNION (cart R M) (@DIFF (cart R M) s t) (@DIFF (cart R M) t s))) -> (@absolutely_integrable_on N' M f s) -> @absolutely_integrable_on N' M f t. +Axiom thm_ABSOLUTELY_INTEGRABLE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (g x)) /\ (@absolutely_integrable_on N' M f s)) -> @absolutely_integrable_on N' M g s. +Axiom thm_ABSOLUTELY_INTEGRABLE_TWIZZLE_EQ : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, forall p : N -> N, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ (@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))))) -> (@absolutely_integrable_on P N' f (@IMAGE (cart R M) (cart R N') (fun x : cart R M => @lambda R N' (fun i : N => @dollar R M x (p i))) s)) = (@absolutely_integrable_on P M (fun x : cart R M => f (@lambda R N' (fun i : N => @dollar R M x (p i)))) s). +Axiom thm_ABSOLUTELY_INTEGRABLE_AFFINITY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall m : R, forall c : cart R M, ((@absolutely_integrable_on N' M f s) /\ (~ (m = (R_of_N (NUMERAL 0%N))))) -> @absolutely_integrable_on N' M (fun x : cart R M => f (@vector_add M (@percent M m x) c)) (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M (@percent M (Rinv m) x) (@vector_neg M (@percent M (Rinv m) c))) s). +Axiom thm_ABSOLUTELY_INTEGRABLE_TRANSLATION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@absolutely_integrable_on N' M (fun x : cart R M => f (@vector_add M a x)) s) = (@absolutely_integrable_on N' M f (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M a x) s)). +Axiom thm_ABSOLUTELY_INTEGRABLE_REFLECT_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_integrable_on N' M (fun x : cart R M => f (@vector_neg M x)) s) = (@absolutely_integrable_on N' M f (@IMAGE (cart R M) (cart R M) (@vector_neg M) s)). +Axiom thm_ABSOLUTELY_INTEGRABLE_REFLECT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@absolutely_integrable_on N' M (fun x : cart R M => f (@vector_neg M x)) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@vector_neg M b) (@vector_neg M a)) (@nil (prod (cart R M) (cart R M)))))) = (@absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_BOUNDED_SETVARIATION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_integrable_on N' M f s) -> @has_bounded_setvariation_on M N' (fun k : (cart R M) -> Prop => @integral N' M k f) s. +Axiom thm_lemma : forall {A N' : Type'}, forall f : A -> cart R N', forall g : A -> cart R N', forall s : A -> Prop, forall e : R, (Rlt (@sum A s (fun x : A => @vector_norm N' (@vector_sub N' (f x) (g x)))) e) -> (@FINITE A s) -> Rlt (Rabs (Rminus (@sum A s (fun x : A => @vector_norm N' (f x))) (@sum A s (fun x : A => @vector_norm N' (g x))))) e. +Axiom thm_BOUNDED_SETVARIATION_ABSOLUTELY_INTEGRABLE_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@has_bounded_setvariation_on M N' (fun k : (cart R M) -> Prop => @integral N' M k f) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> @absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_BOUNDED_SETVARIATION_ABSOLUTELY_INTEGRABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@integrable_on N' M f (@UNIV (cart R M))) /\ (@has_bounded_setvariation_on M N' (fun k : (cart R M) -> Prop => @integral N' M k f) (@UNIV (cart R M)))) -> @absolutely_integrable_on N' M f (@UNIV (cart R M)). +Axiom thm_ABSOLUTELY_INTEGRABLE_BOUNDED_SETVARIATION_UNIV_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@absolutely_integrable_on N' M f (@UNIV (cart R M))) = ((@integrable_on N' M f (@UNIV (cart R M))) /\ (@has_bounded_setvariation_on M N' (fun k : (cart R M) -> Prop => @integral N' M k f) (@UNIV (cart R M)))). +Axiom thm_ABSOLUTELY_INTEGRABLE_BOUNDED_SETVARIATION_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@has_bounded_setvariation_on M N' (fun k : (cart R M) -> Prop => @integral N' M k f) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_SET_VARIATION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> (@set_variation M N' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (fun k : (cart R M) -> Prop => @integral N' M k f)) = (drop (@integral unit M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => lift (@vector_norm N' (f x))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_CONST : forall {_1346323 _1346337 : Type'}, forall a : cart R _1346337, forall b : cart R _1346337, forall c : cart R _1346323, @absolutely_integrable_on _1346323 _1346337 (fun x : cart R _1346337 => c) (@closed_interval _1346337 (@cons (prod (cart R _1346337) (cart R _1346337)) (@pair (cart R _1346337) (cart R _1346337) a b) (@nil (prod (cart R _1346337) (cart R _1346337))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_ADD : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ (@absolutely_integrable_on N' M g s)) -> @absolutely_integrable_on N' M (fun x : cart R M => @vector_add N' (f x) (g x)) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_SUB : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ (@absolutely_integrable_on N' M g s)) -> @absolutely_integrable_on N' M (fun x : cart R M => @vector_sub N' (f x) (g x)) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_LINEAR : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall h : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ (@linear N' P h)) -> @absolutely_integrable_on P M (@o (cart R M) (cart R N') (cart R P) h f) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_VSUM : forall {A M N' : Type'}, forall f : A -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (forall a : A, (@IN A a t) -> @absolutely_integrable_on N' M (f a) s)) -> @absolutely_integrable_on N' M (fun x : cart R M => @vsum A N' t (fun a : A => f a x)) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_ABS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_integrable_on N' M f s) -> @absolutely_integrable_on N' M (fun x : cart R M => @lambda R N' (fun i : N => Rabs (@dollar R N' (f x) i))) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_MAX : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ (@absolutely_integrable_on N' M g s)) -> @absolutely_integrable_on N' M (fun x : cart R M => @lambda R N' (fun i : N => Rmax (@dollar R N' (f x) i) (@dollar R N' (g x) i))) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_MAX_1 : forall {M : Type'}, forall f : (cart R M) -> R, forall g : (cart R M) -> R, forall s : (cart R M) -> Prop, ((@absolutely_integrable_on unit M (fun x : cart R M => lift (f x)) s) /\ (@absolutely_integrable_on unit M (fun x : cart R M => lift (g x)) s)) -> @absolutely_integrable_on unit M (fun x : cart R M => lift (Rmax (f x) (g x))) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_MIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ (@absolutely_integrable_on N' M g s)) -> @absolutely_integrable_on N' M (fun x : cart R M => @lambda R N' (fun i : N => Rmin (@dollar R N' (f x) i) (@dollar R N' (g x) i))) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_MIN_1 : forall {M : Type'}, forall f : (cart R M) -> R, forall g : (cart R M) -> R, forall s : (cart R M) -> Prop, ((@absolutely_integrable_on unit M (fun x : cart R M => lift (f x)) s) /\ (@absolutely_integrable_on unit M (fun x : cart R M => lift (g x)) s)) -> @absolutely_integrable_on unit M (fun x : cart R M => lift (Rmin (f x) (g x))) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_ABS_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_integrable_on N' M f s) = ((@integrable_on N' M f s) /\ (@integrable_on N' M (fun x : cart R M => @lambda R N' (fun i : N => Rabs (@dollar R N' (f x) i))) s)). +Axiom thm_NONNEGATIVE_ABSOLUTELY_INTEGRABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall x : cart R M, forall i : N, ((@IN (cart R M) x s) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (f x) i)) /\ (@integrable_on N' M f s)) -> @absolutely_integrable_on N' M f s. +Axiom thm_ABSOLUTELY_INTEGRABLE_INTEGRABLE_BOUND : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, ((forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f x)) (drop (g x))) /\ ((@integrable_on N' M f s) /\ (@integrable_on unit M g s))) -> @absolutely_integrable_on N' M f s. +Axiom thm_ABSOLUTELY_INTEGRABLE_ABSOLUTELY_INTEGRABLE_BOUND : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, ((forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f x)) (@vector_norm P (g x))) /\ ((@integrable_on N' M f s) /\ (@absolutely_integrable_on P M g s))) -> @absolutely_integrable_on N' M f s. +Axiom thm_ABSOLUTELY_INTEGRABLE_INF_1 : forall {A N' : Type'}, forall fs : (cart R N') -> A -> R, forall s : (cart R N') -> Prop, forall k : A -> Prop, ((@FINITE A k) /\ ((~ (k = (@EMPTY A))) /\ (forall i : A, (@IN A i k) -> @absolutely_integrable_on unit N' (fun x : cart R N' => lift (fs x i)) s))) -> @absolutely_integrable_on unit N' (fun x : cart R N' => lift (inf (@IMAGE A R (fs x) k))) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_SUP_1 : forall {A N' : Type'}, forall fs : (cart R N') -> A -> R, forall s : (cart R N') -> Prop, forall k : A -> Prop, ((@FINITE A k) /\ ((~ (k = (@EMPTY A))) /\ (forall i : A, (@IN A i k) -> @absolutely_integrable_on unit N' (fun x : cart R N' => lift (fs x i)) s))) -> @absolutely_integrable_on unit N' (fun x : cart R N' => lift (sup (@IMAGE A R (fs x) k))) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_CONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@continuous_on M N' f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_INTEGRABLE_MIN_CONST_1 : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall t : R, ((Rle (R_of_N (NUMERAL 0%N)) t) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x)) /\ (@integrable_on unit N' (fun x : cart R N' => lift (f x)) s))) -> @integrable_on unit N' (fun x : cart R N' => lift (Rmin (f x) t)) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_ABSOLUTELY_INTEGRABLE_COMPONENT_UBOUND : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall x : cart R M, forall i : N, ((@IN (cart R M) x s) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> Rle (@dollar R N' (f x) i) (@dollar R N' (g x) i)) /\ ((@integrable_on N' M f s) /\ (@absolutely_integrable_on N' M g s))) -> @absolutely_integrable_on N' M f s. +Axiom thm_ABSOLUTELY_INTEGRABLE_ABSOLUTELY_INTEGRABLE_COMPONENT_LBOUND : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall x : cart R M, forall i : N, ((@IN (cart R M) x s) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> Rle (@dollar R N' (f x) i) (@dollar R N' (g x) i)) /\ ((@absolutely_integrable_on N' M f s) /\ (@integrable_on N' M g s))) -> @absolutely_integrable_on N' M g s. +Axiom thm_ABSOLUTELY_INTEGRABLE_ABSOLUTELY_INTEGRABLE_DROP_UBOUND : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, ((forall x : cart R M, (@IN (cart R M) x s) -> Rle (drop (f x)) (drop (g x))) /\ ((@integrable_on unit M f s) /\ (@absolutely_integrable_on unit M g s))) -> @absolutely_integrable_on unit M f s. +Axiom thm_ABSOLUTELY_INTEGRABLE_ABSOLUTELY_INTEGRABLE_DROP_LBOUND : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, ((forall x : cart R M, (@IN (cart R M) x s) -> Rle (drop (f x)) (drop (g x))) /\ ((@absolutely_integrable_on unit M f s) /\ (@integrable_on unit M g s))) -> @absolutely_integrable_on unit M g s. +Axiom thm_ABSOLUTELY_INTEGRABLE_EQ_INTEGRABLE_POS : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, (forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f x))) -> (@absolutely_integrable_on unit N' f s) = (@integrable_on unit N' f s). +Axiom thm_ABSOLUTELY_INTEGRABLE_PASTECART_SYM : forall {_1348435 M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, forall s : (cart R (finite_sum M N')) -> Prop, forall y : _1348435, (@absolutely_integrable_on P (finite_sum N' M) (fun z : cart R (finite_sum N' M) => f (@pastecart R M N' (@sndcart R N' M z) (@fstcart R N' M z))) (@IMAGE (cart R (finite_sum M N')) (cart R (finite_sum N' M)) (fun z : cart R (finite_sum M N') => @pastecart R N' M (@sndcart R M N' z) (@fstcart R M N' z)) s)) = (@absolutely_integrable_on P (finite_sum M N') f s). +Axiom thm_HAS_INTEGRAL_PASTECART_SYM_UNIV : forall {_1348491 M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, forall s : _1348491, forall y : cart R P, (@has_integral (finite_sum N' M) P (fun z : cart R (finite_sum N' M) => f (@pastecart R M N' (@sndcart R N' M z) (@fstcart R N' M z))) y (@UNIV (cart R (finite_sum N' M)))) = (@has_integral (finite_sum M N') P f y (@UNIV (cart R (finite_sum M N')))). +Axiom thm_INTEGRAL_PASTECART_SYM_UNIV : forall {_1348535 _1348539 M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, forall s : _1348535, forall y : _1348539, (@integral P (finite_sum N' M) (@UNIV (cart R (finite_sum N' M))) (fun z : cart R (finite_sum N' M) => f (@pastecart R M N' (@sndcart R N' M z) (@fstcart R N' M z)))) = (@integral P (finite_sum M N') (@UNIV (cart R (finite_sum M N'))) f). +Axiom thm_ABSOLUTELY_INTEGRABLE_PASTECART_SYM_UNIV : forall {_1348618 _1348622 M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, forall s : _1348618, forall y : _1348622, (@absolutely_integrable_on P (finite_sum N' M) (fun z : cart R (finite_sum N' M) => f (@pastecart R M N' (@sndcart R N' M z) (@fstcart R N' M z))) (@UNIV (cart R (finite_sum N' M)))) = (@absolutely_integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))). +Axiom thm_INTEGRABLE_PASTECART_SYM_UNIV : forall {_1348578 _1348582 M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, forall s : _1348578, forall y : _1348582, (@integrable_on P (finite_sum N' M) (fun z : cart R (finite_sum N' M) => f (@pastecart R M N' (@sndcart R N' M z) (@fstcart R N' M z))) (@UNIV (cart R (finite_sum N' M)))) = (@integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))). +Axiom thm_HAS_INTEGRAL_COMPONENTWISE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall y : cart R N', (@has_integral M N' f y s) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @has_integral M unit (fun x : cart R M => lift (@dollar R N' (f x) i)) (lift (@dollar R N' y i)) s). +Axiom thm_INTEGRABLE_COMPONENTWISE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@integrable_on N' M f s) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @integrable_on unit M (fun x : cart R M => lift (@dollar R N' (f x) i)) s). +Axiom thm_INTEGRABLE_LIFT_COMPONENT : forall {M N' : Type'} (i : N), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> @integrable_on unit M (fun x : cart R M => lift (@dollar R N' (f x) i)) s. +Axiom thm_LIFT_INTEGRAL_COMPONENT : forall {M N' : Type'} (s : (cart R M) -> Prop) (k : N), forall f : (cart R M) -> cart R N', (@integrable_on N' M f s) -> (lift (@dollar R N' (@integral N' M s f) k)) = (@integral unit M s (fun x : cart R M => lift (@dollar R N' (f x) k))). +Axiom thm_INTEGRAL_COMPONENT : forall {M N' : Type'} (s : (cart R M) -> Prop) (k : N), forall f : (cart R M) -> cart R N', (@integrable_on N' M f s) -> (@dollar R N' (@integral N' M s f) k) = (drop (@integral unit M s (fun x : cart R M => lift (@dollar R N' (f x) k)))). +Axiom thm_ABSOLUTELY_INTEGRABLE_COMPONENTWISE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_integrable_on N' M f s) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @absolutely_integrable_on unit M (fun x : cart R M => lift (@dollar R N' (f x) i)) s). +Axiom thm_ABSOLUTELY_INTEGRABLE_LIFT_COMPONENT : forall {M N' : Type'} (i : N), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> @absolutely_integrable_on unit M (fun x : cart R M => lift (@dollar R N' (f x) i)) s. +Axiom thm_DOMINATED_CONVERGENCE : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall h : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, ((forall k : N, @integrable_on N' M (f k) s) /\ ((@integrable_on unit M h s) /\ ((forall k : N, forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f k x)) (drop (h x))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @FImp N' N (fun k : N => f k x) (g x) sequentially)))) -> (@integrable_on N' M g s) /\ (@FImp N' N (fun k : N => @integral N' M s (f k)) (@integral N' M s g) sequentially). +Axiom thm_DOMINATED_CONVERGENCE_INTEGRABLE : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall h : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, ((forall k : N, @absolutely_integrable_on N' M (f k) s) /\ ((@integrable_on unit M h s) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (g x)) (drop (h x))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @FImp N' N (fun k : N => f k x) (g x) sequentially)))) -> @integrable_on N' M g s. +Axiom thm_DOMINATED_CONVERGENCE_ABSOLUTELY_INTEGRABLE : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall h : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, ((forall k : N, @absolutely_integrable_on N' M (f k) s) /\ ((@integrable_on unit M h s) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (g x)) (drop (h x))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> @FImp N' N (fun k : N => f k x) (g x) sequentially)))) -> @absolutely_integrable_on N' M g s. +Axiom thm_DOMINATED_CONVERGENCE_AE : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall h : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((forall k : N, @integrable_on N' M (f k) s) /\ ((@integrable_on unit M h s) /\ ((@negligible M t) /\ ((forall k : N, forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> Rle (@vector_norm N' (f k x)) (drop (h x))) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> @FImp N' N (fun k : N => f k x) (g x) sequentially))))) -> (@integrable_on N' M g s) /\ (@FImp N' N (fun k : N => @integral N' M s (f k)) (@integral N' M s g) sequentially). +Axiom thm_INTEGRAL_COUNTABLE_UNIONS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : N -> (cart R M) -> Prop, ((forall n : N, @integrable_on N' M f (s n)) /\ ((@pairwise N (fun i : N => fun j : N => @negligible M (@INTER (cart R M) (s i) (s j))) (@UNIV N)) /\ (@absolutely_integrable_on N' M f (@UNIONS (cart R M) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_6082 : (cart R M) -> Prop => exists n : N, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_6082 (@IN N n (@UNIV N)) (s n))))))) -> @FImp N' N (fun n : N => @vsum N N' (dotdot (NUMERAL 0%N) n) (fun i : N => @integral N' M (s i) f)) (@integral N' M (@UNIONS (cart R M) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_6083 : (cart R M) -> Prop => exists n : N, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_6083 (@IN N n (@UNIV N)) (s n)))) f) sequentially. +Axiom thm_NEGLIGIBLE_ON_UNIV : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = (@has_integral N' unit (@indicator N' s) (@vec unit (NUMERAL 0%N)) (@UNIV (cart R N'))). +Axiom thm_NEGLIGIBLE_COUNTABLE_UNIONS : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, (forall n : N, @negligible N' (s n)) -> @negligible N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6093 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6093 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_HAS_INTEGRAL_NEGLIGIBLE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall x : cart R M, forall i : N, ((@IN (cart R M) x s) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (f x) i)) -> (@has_integral M N' f (@vec N' (NUMERAL 0%N)) s) = (@negligible M (@GSPEC (cart R M) (fun GEN_PVAR_6102 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6102 ((@IN (cart R M) x s) /\ (~ ((f x) = (@vec N' (NUMERAL 0%N))))) x))). +Axiom thm_INTEGRAL_ZERO_ON_SUBINTERVALS_IMP_ZERO_AE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @has_integral M N' f (@vec N' (NUMERAL 0%N)) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a x) (@nil (prod (cart R M) (cart R M)))))) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_6103 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6103 ((@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (~ ((f x) = (@vec N' (NUMERAL 0%N))))) x)). +Axiom thm_NEGLIGIBLE_COUNTABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@COUNTABLE (cart R N') s) -> @negligible N' s. +Axiom thm_HAS_INTEGRAL_COMPONENT_LE_AE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall i : cart R N', forall j : cart R N', forall k : N, forall t : (cart R M) -> Prop, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@negligible M t) /\ ((@has_integral M N' f i s) /\ ((@has_integral M N' g j s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> Rle (@dollar R N' (f x) k) (@dollar R N' (g x) k))))))) -> Rle (@dollar R N' i k) (@dollar R N' j k). +Axiom thm_INTEGRAL_COMPONENT_LE_AE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : N, forall t : (cart R M) -> Prop, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@negligible M t) /\ ((@integrable_on N' M f s) /\ ((@integrable_on N' M g s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> Rle (@dollar R N' (f x) k) (@dollar R N' (g x) k))))))) -> Rle (@dollar R N' (@integral N' M s f) k) (@dollar R N' (@integral N' M s g) k). +Axiom thm_HAS_INTEGRAL_DROP_LE_AE : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall i : cart R unit, forall j : cart R unit, forall t : (cart R M) -> Prop, ((@has_integral M unit f i s) /\ ((@has_integral M unit g j s) /\ ((@negligible M t) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> Rle (drop (f x)) (drop (g x)))))) -> Rle (drop i) (drop j). +Axiom thm_INTEGRAL_DROP_LE_AE : forall {M : Type'}, forall f : (cart R M) -> cart R unit, forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@integrable_on unit M f s) /\ ((@integrable_on unit M g s) /\ ((@negligible M t) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> Rle (drop (f x)) (drop (g x)))))) -> Rle (drop (@integral unit M s f)) (drop (@integral unit M s g)). +Axiom thm_NONNEGATIVE_ABSOLUTELY_INTEGRABLE_AE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@negligible M t) /\ ((forall x : cart R M, forall i : N, ((@IN (cart R M) x (@DIFF (cart R M) s t)) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (f x) i)) /\ (@integrable_on N' M f s))) -> @absolutely_integrable_on N' M f s. +Axiom thm_INTEGRAL_NORM_BOUND_INTEGRAL_AE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@integrable_on N' M f s) /\ ((@integrable_on unit M g s) /\ ((@negligible M t) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> Rle (@vector_norm N' (f x)) (drop (g x)))))) -> Rle (@vector_norm N' (@integral N' M s f)) (drop (@integral unit M s g)). +Axiom thm_BEPPO_LEVI_INCREASING : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((forall k : N, @integrable_on unit N' (f k) s) /\ ((forall k : N, forall x : cart R N', (@IN (cart R N') x s) -> Rle (drop (f k x)) (drop (f (N.succ k) x))) /\ (@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_6107 : cart R unit => exists k : N, @SETSPEC (cart R unit) GEN_PVAR_6107 (@IN N k (@UNIV N)) (@integral unit N' s (f k))))))) -> exists g : (cart R N') -> cart R unit, exists k : (cart R N') -> Prop, (@negligible N' k) /\ (forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s k)) -> @FImp unit N (fun k' : N => f k' x) (g x) sequentially). +Axiom thm_BEPPO_LEVI_DECREASING : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((forall k : N, @integrable_on unit N' (f k) s) /\ ((forall k : N, forall x : cart R N', (@IN (cart R N') x s) -> Rle (drop (f (N.succ k) x)) (drop (f k x))) /\ (@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_6108 : cart R unit => exists k : N, @SETSPEC (cart R unit) GEN_PVAR_6108 (@IN N k (@UNIV N)) (@integral unit N' s (f k))))))) -> exists g : (cart R N') -> cart R unit, exists k : (cart R N') -> Prop, (@negligible N' k) /\ (forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s k)) -> @FImp unit N (fun k' : N => f k' x) (g x) sequentially). +Axiom thm_BEPPO_LEVI_MONOTONE_CONVERGENCE_INCREASING : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((forall k : N, @integrable_on unit N' (f k) s) /\ ((forall k : N, forall x : cart R N', (@IN (cart R N') x s) -> Rle (drop (f k x)) (drop (f (N.succ k) x))) /\ (@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_6109 : cart R unit => exists k : N, @SETSPEC (cart R unit) GEN_PVAR_6109 (@IN N k (@UNIV N)) (@integral unit N' s (f k))))))) -> exists g : (cart R N') -> cart R unit, exists k : (cart R N') -> Prop, (@negligible N' k) /\ ((forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s k)) -> @FImp unit N (fun k' : N => f k' x) (g x) sequentially) /\ ((@integrable_on unit N' g s) /\ (@FImp unit N (fun k' : N => @integral unit N' s (f k')) (@integral unit N' s g) sequentially))). +Axiom thm_BEPPO_LEVI_MONOTONE_CONVERGENCE_DECREASING : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((forall k : N, @integrable_on unit N' (f k) s) /\ ((forall k : N, forall x : cart R N', (@IN (cart R N') x s) -> Rle (drop (f (N.succ k) x)) (drop (f k x))) /\ (@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_6110 : cart R unit => exists k : N, @SETSPEC (cart R unit) GEN_PVAR_6110 (@IN N k (@UNIV N)) (@integral unit N' s (f k))))))) -> exists g : (cart R N') -> cart R unit, exists k : (cart R N') -> Prop, (@negligible N' k) /\ ((forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s k)) -> @FImp unit N (fun k' : N => f k' x) (g x) sequentially) /\ ((@integrable_on unit N' g s) /\ (@FImp unit N (fun k' : N => @integral unit N' s (f k')) (@integral unit N' s g) sequentially))). +Axiom thm_BEPPO_LEVI_MONOTONE_CONVERGENCE_INCREASING_AE : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((forall k : N, @integrable_on unit N' (f k) s) /\ ((forall k : N, exists t : (cart R N') -> Prop, (@negligible N' t) /\ (forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s t)) -> Rle (drop (f k x)) (drop (f (N.succ k) x)))) /\ (@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_6119 : cart R unit => exists k : N, @SETSPEC (cart R unit) GEN_PVAR_6119 (@IN N k (@UNIV N)) (@integral unit N' s (f k))))))) -> exists g : (cart R N') -> cart R unit, exists k : (cart R N') -> Prop, (@negligible N' k) /\ ((forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s k)) -> @FImp unit N (fun k' : N => f k' x) (g x) sequentially) /\ ((@integrable_on unit N' g s) /\ (@FImp unit N (fun k' : N => @integral unit N' s (f k')) (@integral unit N' s g) sequentially))). +Axiom thm_BEPPO_LEVI_MONOTONE_CONVERGENCE_DECREASING_AE : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((forall k : N, @integrable_on unit N' (f k) s) /\ ((forall k : N, exists t : (cart R N') -> Prop, (@negligible N' t) /\ (forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s t)) -> Rle (drop (f (N.succ k) x)) (drop (f k x)))) /\ (@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_6128 : cart R unit => exists k : N, @SETSPEC (cart R unit) GEN_PVAR_6128 (@IN N k (@UNIV N)) (@integral unit N' s (f k))))))) -> exists g : (cart R N') -> cart R unit, exists k : (cart R N') -> Prop, (@negligible N' k) /\ ((forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s k)) -> @FImp unit N (fun k' : N => f k' x) (g x) sequentially) /\ ((@integrable_on unit N' g s) /\ (@FImp unit N (fun k' : N => @integral unit N' s (f k')) (@integral unit N' s g) sequentially))). +Axiom thm_FATOU : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall g : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall B : R, ((@negligible N' t) /\ ((forall n : N, @integrable_on unit N' (f n) s) /\ ((forall n : N, forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s t)) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f n x))) /\ ((forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s t)) -> @FImp unit N (fun n : N => f n x) (g x) sequentially) /\ (forall n : N, Rle (drop (@integral unit N' s (f n))) B))))) -> (@integrable_on unit N' g s) /\ ((Rle (R_of_N (NUMERAL 0%N)) (drop (@integral unit N' s g))) /\ (Rle (drop (@integral unit N' s g)) B)). +Axiom thm_LIEB : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((forall n : N, @absolutely_integrable_on N' M (f n) s) /\ ((@absolutely_integrable_on N' M g s) /\ ((@negligible M t) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> @FImp N' N (fun n : N => f n x) (g x) sequentially)))) -> @FImp unit N (fun n : N => @vector_sub unit (@integral unit M s (fun x : cart R M => lift (@vector_norm N' (@vector_sub N' (f n x) (g x))))) (@vector_sub unit (@integral unit M s (fun x : cart R M => lift (@vector_norm N' (f n x)))) (@integral unit M s (fun x : cart R M => lift (@vector_norm N' (g x)))))) (@vec unit (NUMERAL 0%N)) sequentially. +Axiom thm_FATOU_STRONG : forall {N' : Type'}, forall f : N -> (cart R N') -> cart R unit, forall g : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall B : R, ((@negligible N' t) /\ ((forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s t)) -> @FImp unit N (fun n : N => f n x) (g x) sequentially) /\ ((@eventually N (fun n : N => @integrable_on unit N' (f n) s) sequentially) /\ ((@eventually N (fun n : N => forall x : cart R N', (@IN (cart R N') x (@DIFF (cart R N') s t)) -> Rle (R_of_N (NUMERAL 0%N)) (drop (f n x))) sequentially) /\ (@eventually N (fun n : N => Rle (drop (@integral unit N' s (f n))) B) sequentially))))) -> (@absolutely_integrable_on unit N' g s) /\ ((Rle (R_of_N (NUMERAL 0%N)) (drop (@integral unit N' s g))) /\ (Rle (drop (@integral unit N' s g)) B)). +Axiom thm_FUNDAMENTAL_THEOREM_OF_CALCULUS_BARTLE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@negligible unit s) /\ ((Rle (drop a) (drop b)) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists g : (cart R unit) -> (cart R unit) -> Prop, (@gauge unit g) /\ (forall p : (prod (cart R unit) ((cart R unit) -> Prop)) -> Prop, ((@tagged_partial_division_of unit p (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@fine (cart R unit) (cart R unit) g p) /\ (@SUBSET (cart R unit) (@IMAGE (prod (cart R unit) ((cart R unit) -> Prop)) (cart R unit) (@fst (cart R unit) ((cart R unit) -> Prop)) p) s))) -> Rlt (@vector_norm N' (@vsum (prod (cart R unit) ((cart R unit) -> Prop)) N' p (@GABS ((prod (cart R unit) ((cart R unit) -> Prop)) -> cart R N') (fun f'' : (prod (cart R unit) ((cart R unit) -> Prop)) -> cart R N' => forall x : cart R unit, forall k : (cart R unit) -> Prop, @GEQ (cart R N') (f'' (@pair (cart R unit) ((cart R unit) -> Prop) x k)) (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))))))) e))))) -> @has_integral unit N' f' (@vector_sub N' (f b) (f a)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_FUNDAMENTAL_THEOREM_OF_CALCULUS_STRONG : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@COUNTABLE (cart R unit) s) /\ ((Rle (drop a) (drop b)) /\ ((@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))))) -> @has_integral unit N' f' (@vector_sub N' (f b) (f a)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_FUNDAMENTAL_THEOREM_OF_CALCULUS_INTERIOR_STRONG : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@COUNTABLE (cart R unit) s) /\ ((Rle (drop a) (drop b)) /\ ((@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) s)) -> @has_vector_derivative N' f (f' x) (@_at unit x))))) -> @has_integral unit N' f' (@vector_sub N' (f b) (f a)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_FUNDAMENTAL_THEOREM_OF_CALCULUS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((Rle (drop a) (drop b)) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) -> @has_integral unit N' f' (@vector_sub N' (f b) (f a)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_FUNDAMENTAL_THEOREM_OF_CALCULUS_INTERIOR : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((Rle (drop a) (drop b)) /\ ((@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) -> @has_vector_derivative N' f (f' x) (@_at unit x)))) -> @has_integral unit N' f' (@vector_sub N' (f b) (f a)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_ANTIDERIVATIVE_INTEGRAL_CONTINUOUS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> exists g : (cart R unit) -> cart R N', forall u : cart R unit, forall v : cart R unit, ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop u) (drop v)))) -> @has_integral unit N' f (@vector_sub N' (g v) (g u)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_HAS_DERIVATIVE_ZERO_UNIQUE_STRONG_INTERVAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall k : (cart R unit) -> Prop, forall y : cart R N', ((@COUNTABLE (cart R unit) k) /\ ((@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (((f a) = y) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) k)) -> @has_derivative N' unit f (fun h : cart R unit => @vec N' (NUMERAL 0%N)) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))))) -> forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (f x) = y. +Axiom thm_HAS_DERIVATIVE_ZERO_UNIQUE_STRONG_CONVEX : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : (cart R M) -> Prop, forall c : cart R M, forall y : cart R N', ((@convex M s) /\ ((@COUNTABLE (cart R M) k) /\ ((@continuous_on M N' f s) /\ ((@IN (cart R M) c s) /\ (((f c) = y) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s k)) -> @has_derivative N' M f (fun h : cart R M => @vec N' (NUMERAL 0%N)) (@within (cart R M) (@_at M x) s))))))) -> forall x : cart R M, (@IN (cart R M) x s) -> (f x) = y. +Axiom thm_HAS_DERIVATIVE_ZERO_UNIQUE_STRONG_CONNECTED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : (cart R M) -> Prop, forall c : cart R M, forall y : cart R N', ((@connected M s) /\ ((@_open M s) /\ ((@COUNTABLE (cart R M) k) /\ ((@continuous_on M N' f s) /\ ((@IN (cart R M) c s) /\ (((f c) = y) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s k)) -> @has_derivative N' M f (fun h : cart R M => @vec N' (NUMERAL 0%N)) (@within (cart R M) (@_at M x) s)))))))) -> forall x : cart R M, (@IN (cart R M) x s) -> (f x) = y. +Axiom thm_INTEGRATION_BY_PARTS : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R M, forall g' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : (cart R unit) -> Prop, forall y : cart R P, ((@bilinear N' P M bop) /\ ((Rle (drop a) (drop b)) /\ ((@COUNTABLE (cart R unit) c) /\ ((@continuous_on unit P (fun x : cart R unit => bop (f x) (g x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) c)) -> (@has_vector_derivative M f (f' x) (@_at unit x)) /\ (@has_vector_derivative N' g (g' x) (@_at unit x))) /\ (@has_integral unit P (fun x : cart R unit => bop (f x) (g' x)) (@vector_sub P (@vector_sub P (bop (f b) (g b)) (bop (f a) (g a))) y) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))))))) -> @has_integral unit P (fun x : cart R unit => bop (f' x) (g x)) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRATION_BY_PARTS_SIMPLE : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R M, forall g' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall y : cart R P, ((@bilinear N' P M bop) /\ ((Rle (drop a) (drop b)) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (@has_vector_derivative M f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) /\ (@has_vector_derivative N' g (g' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) /\ (@has_integral unit P (fun x : cart R unit => bop (f x) (g' x)) (@vector_sub P (@vector_sub P (bop (f b) (g b)) (bop (f a) (g a))) y) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))))) -> @has_integral unit P (fun x : cart R unit => bop (f' x) (g x)) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_BY_PARTS : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R M, forall g' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : (cart R unit) -> Prop, ((@bilinear N' P M bop) /\ ((@COUNTABLE (cart R unit) c) /\ ((@continuous_on unit P (fun x : cart R unit => bop (f x) (g x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) c)) -> (@has_vector_derivative M f (f' x) (@_at unit x)) /\ (@has_vector_derivative N' g (g' x) (@_at unit x))) /\ (@integrable_on P unit (fun x : cart R unit => bop (f x) (g' x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))))) -> @integrable_on P unit (fun x : cart R unit => bop (f' x) (g x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_BY_PARTS_EQ : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R M, forall g' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : (cart R unit) -> Prop, ((@bilinear N' P M bop) /\ ((@COUNTABLE (cart R unit) c) /\ ((@continuous_on unit P (fun x : cart R unit => bop (f x) (g x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@open_interval unit (@pair (cart R unit) (cart R unit) a b)) c)) -> (@has_vector_derivative M f (f' x) (@_at unit x)) /\ (@has_vector_derivative N' g (g' x) (@_at unit x)))))) -> (@integrable_on P unit (fun x : cart R unit => bop (f x) (g' x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@integrable_on P unit (fun x : cart R unit => bop (f' x) (g x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_equiintegrable_on : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall i : (cart R M) -> Prop, (@equiintegrable_on M N' fs i) = ((forall f : (cart R M) -> cart R N', (@IN ((cart R M) -> cart R N') f fs) -> @integrable_on N' M f i) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : (cart R M) -> (cart R M) -> Prop, (@gauge M d) /\ (forall f : (cart R M) -> cart R N', forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, ((@IN ((cart R M) -> cart R N') f fs) /\ ((@tagged_division_of M p i) /\ (@fine (cart R M) (cart R M) d p))) -> Rlt (@vector_norm N' (@vector_sub N' (@vsum (prod (cart R M) ((cart R M) -> Prop)) N' p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> cart R N') (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> cart R N' => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ (cart R N') (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@percent N' (@content M k) (f x))))) (@integral N' M i f))) e))). +Axiom thm_EQUIINTEGRABLE_ON_SING : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@equiintegrable_on M N' (@INSERT ((cart R M) -> cart R N') f (@EMPTY ((cart R M) -> cart R N'))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_EQUIINTEGRABLE_ON_NULL : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall a : cart R M, forall b : cart R M, ((@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (R_of_N (NUMERAL 0%N))) -> @equiintegrable_on M N' fs (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_EQUIINTEGRABLE_ON_SPLIT : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall k : N, forall a : cart R M, forall b : cart R M, forall c : R, ((@equiintegrable_on M N' fs (@INTER (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@GSPEC (cart R M) (fun GEN_PVAR_6170 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6170 (Rle (@dollar R M x k) c) x)))) /\ ((@equiintegrable_on M N' fs (@INTER (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (@GSPEC (cart R M) (fun GEN_PVAR_6171 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6171 (Rge (@dollar R M x k) c) x)))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex M (@UNIV M)))))) -> @equiintegrable_on M N' fs (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_EQUIINTEGRABLE_DIVISION : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall d : ((cart R M) -> Prop) -> Prop, forall a : cart R M, forall b : cart R M, (@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> (@equiintegrable_on M N' fs (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (forall i : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) i d) -> @equiintegrable_on M N' fs i). +Axiom thm_EQUIINTEGRABLE_LIMIT : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, ((@equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6172 : (cart R M) -> cart R N' => exists n : N, @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6172 (@IN N n (@UNIV N)) (f n))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @FImp N' N (fun n : N => f n x) (g x) sequentially)) -> (@integrable_on N' M g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (@FImp N' N (fun n : N => @integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (f n)) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) g) sequentially). +Axiom thm_EQUIINTEGRABLE_SUBSET : forall {_1362152 _1362153 : Type'}, forall fs : ((cart R _1362153) -> cart R _1362152) -> Prop, forall gs : ((cart R _1362153) -> cart R _1362152) -> Prop, forall s : (cart R _1362153) -> Prop, ((@equiintegrable_on _1362153 _1362152 fs s) /\ (@SUBSET ((cart R _1362153) -> cart R _1362152) gs fs)) -> @equiintegrable_on _1362153 _1362152 gs s. +Axiom thm_EQUIINTEGRABLE_UNION : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall gs : ((cart R M) -> cart R N') -> Prop, forall s : (cart R M) -> Prop, ((@equiintegrable_on M N' fs s) /\ (@equiintegrable_on M N' gs s)) -> @equiintegrable_on M N' (@UNION ((cart R M) -> cart R N') fs gs) s. +Axiom thm_EQUIINTEGRABLE_EQ : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall gs : ((cart R M) -> cart R N') -> Prop, forall s : (cart R M) -> Prop, ((@equiintegrable_on M N' fs s) /\ (forall g : (cart R M) -> cart R N', (@IN ((cart R M) -> cart R N') g gs) -> exists f : (cart R M) -> cart R N', (@IN ((cart R M) -> cart R N') f fs) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (g x)))) -> @equiintegrable_on M N' gs s. +Axiom thm_EQUIINTEGRABLE_CMUL : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall s : (cart R M) -> Prop, forall k : R, (@equiintegrable_on M N' fs s) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6173 : (cart R M) -> cart R N' => exists c : R, exists f : (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6173 ((Rle (Rabs c) k) /\ (@IN ((cart R M) -> cart R N') f fs)) (fun x : cart R M => @percent N' c (f x)))) s. +Axiom thm_EQUIINTEGRABLE_ADD : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall gs : ((cart R M) -> cart R N') -> Prop, forall s : (cart R M) -> Prop, ((@equiintegrable_on M N' fs s) /\ (@equiintegrable_on M N' gs s)) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6174 : (cart R M) -> cart R N' => exists f : (cart R M) -> cart R N', exists g : (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6174 ((@IN ((cart R M) -> cart R N') f fs) /\ (@IN ((cart R M) -> cart R N') g gs)) (fun x : cart R M => @vector_add N' (f x) (g x)))) s. +Axiom thm_EQUIINTEGRABLE_NEG : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall s : (cart R M) -> Prop, (@equiintegrable_on M N' fs s) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6175 : (cart R M) -> cart R N' => exists f : (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6175 (@IN ((cart R M) -> cart R N') f fs) (fun x : cart R M => @vector_neg N' (f x)))) s. +Axiom thm_EQUIINTEGRABLE_SUB : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall gs : ((cart R M) -> cart R N') -> Prop, forall s : (cart R M) -> Prop, ((@equiintegrable_on M N' fs s) /\ (@equiintegrable_on M N' gs s)) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6176 : (cart R M) -> cart R N' => exists f : (cart R M) -> cart R N', exists g : (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6176 ((@IN ((cart R M) -> cart R N') f fs) /\ (@IN ((cart R M) -> cart R N') g gs)) (fun x : cart R M => @vector_sub N' (f x) (g x)))) s. +Axiom thm_EQUIINTEGRABLE_SUM : forall {A M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall a : cart R M, forall b : cart R M, (@equiintegrable_on M N' fs (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6177 : (cart R M) -> cart R N' => exists t : A -> Prop, exists c : A -> R, exists f : A -> (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6177 ((@FINITE A t) /\ ((forall i : A, (@IN A i t) -> (Rle (R_of_N (NUMERAL 0%N)) (c i)) /\ (@IN ((cart R M) -> cart R N') (f i) fs)) /\ ((@sum A t c) = (R_of_N (NUMERAL (BIT1 0%N)))))) (fun x : cart R M => @vsum A N' t (fun i : A => @percent N' (c i) (f i x))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_EQUIINTEGRABLE_UNIFORM_LIMIT : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall a : cart R M, forall b : cart R M, (@equiintegrable_on M N' fs (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6178 : (cart R M) -> cart R N' => exists g : (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6178 (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists f : (cart R M) -> cart R N', (@IN ((cart R M) -> cart R N') f fs) /\ (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rlt (@vector_norm N' (@vector_sub N' (g x) (f x))) e)) g)) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_EQUIINTEGRABLE_REFLECT : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall a : cart R M, forall b : cart R M, (@equiintegrable_on M N' fs (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6179 : (cart R M) -> cart R N' => exists f : (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6179 (@IN ((cart R M) -> cart R N') f fs) (fun x : cart R M => f (@vector_neg M x)))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@vector_neg M b) (@vector_neg M a)) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_SUM_CONTENT_AREA_OVER_THIN_DIVISION : forall {M : Type'}, forall d : ((cart R M) -> Prop) -> Prop, forall a : cart R M, forall b : cart R M, forall s : (cart R M) -> Prop, forall i : N, forall c : R, ((@division_of M d s) /\ ((@SUBSET (cart R M) s (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((Rle (@dollar R M a i) c) /\ ((Rle c (@dollar R M b i)) /\ (forall k : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) k d) -> ~ ((@INTER (cart R M) k (@GSPEC (cart R M) (fun GEN_PVAR_6224 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6224 ((@dollar R M x i) = c) x))) = (@EMPTY (cart R M)))))))))) -> Rle (Rmult (Rminus (@dollar R M b i) (@dollar R M a i)) (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => Rdiv (@content M k) (Rminus (@dollar R M (@interval_upperbound M k) i) (@dollar R M (@interval_lowerbound M k) i))))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))). +Axiom thm_BOUNDED_EQUIINTEGRAL_OVER_THIN_TAGGED_PARTIAL_DIVISION : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall e : R, ((@equiintegrable_on M N' fs (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN ((cart R M) -> cart R N') f fs) /\ ((forall h : (cart R M) -> cart R N', forall x : cart R M, ((@IN ((cart R M) -> cart R N') h fs) /\ (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> Rle (@vector_norm N' (h x)) (@vector_norm N' (f x))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)))) -> exists d : (cart R M) -> (cart R M) -> Prop, (@gauge M d) /\ (forall c : cart R M, forall i : N, forall p : (prod (cart R M) ((cart R M) -> Prop)) -> Prop, forall h : (cart R M) -> cart R N', ((@IN (cart R M) c (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex M (@UNIV M))) /\ ((@tagged_partial_division_of M p (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@fine (cart R M) (cart R M) d p) /\ ((@IN ((cart R M) -> cart R N') h fs) /\ (forall x : cart R M, forall k : (cart R M) -> Prop, (@IN (prod (cart R M) ((cart R M) -> Prop)) (@pair (cart R M) ((cart R M) -> Prop) x k) p) -> ~ ((@INTER (cart R M) k (@GSPEC (cart R M) (fun GEN_PVAR_6225 : cart R M => exists x' : cart R M, @SETSPEC (cart R M) GEN_PVAR_6225 ((@dollar R M x' i) = (@dollar R M c i)) x'))) = (@EMPTY (cart R M)))))))))) -> Rlt (@sum (prod (cart R M) ((cart R M) -> Prop)) p (@GABS ((prod (cart R M) ((cart R M) -> Prop)) -> R) (fun f' : (prod (cart R M) ((cart R M) -> Prop)) -> R => forall x : cart R M, forall k : (cart R M) -> Prop, @GEQ R (f' (@pair (cart R M) ((cart R M) -> Prop) x k)) (@vector_norm N' (@integral N' M k h))))) e). +Axiom thm_EQUIINTEGRABLE_HALFSPACE_RESTRICTIONS_LE : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, ((@equiintegrable_on M N' fs (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN ((cart R M) -> cart R N') f fs) /\ (forall h : (cart R M) -> cart R N', forall x : cart R M, ((@IN ((cart R M) -> cart R N') h fs) /\ (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> Rle (@vector_norm N' (h x)) (@vector_norm N' (f x))))) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6242 : (cart R M) -> cart R N' => exists i : N, exists c : R, exists h : (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6242 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M)))) /\ ((@IN R c (@UNIV R)) /\ (@IN ((cart R M) -> cart R N') h fs))) (fun x : cart R M => @COND (cart R N') (Rle (@dollar R M x i) c) (h x) (@vec N' (NUMERAL 0%N))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_EQUIINTEGRABLE_HALFSPACE_RESTRICTIONS_GE : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, ((@equiintegrable_on M N' fs (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN ((cart R M) -> cart R N') f fs) /\ (forall h : (cart R M) -> cart R N', forall x : cart R M, ((@IN ((cart R M) -> cart R N') h fs) /\ (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> Rle (@vector_norm N' (h x)) (@vector_norm N' (f x))))) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6244 : (cart R M) -> cart R N' => exists i : N, exists c : R, exists h : (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6244 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M)))) /\ ((@IN R c (@UNIV R)) /\ (@IN ((cart R M) -> cart R N') h fs))) (fun x : cart R M => @COND (cart R N') (Rge (@dollar R M x i) c) (h x) (@vec N' (NUMERAL 0%N))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_EQUIINTEGRABLE_HALFSPACE_RESTRICTIONS_LT : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, ((@equiintegrable_on M N' fs (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN ((cart R M) -> cart R N') f fs) /\ (forall h : (cart R M) -> cart R N', forall x : cart R M, ((@IN ((cart R M) -> cart R N') h fs) /\ (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> Rle (@vector_norm N' (h x)) (@vector_norm N' (f x))))) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6245 : (cart R M) -> cart R N' => exists i : N, exists c : R, exists h : (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6245 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M)))) /\ ((@IN R c (@UNIV R)) /\ (@IN ((cart R M) -> cart R N') h fs))) (fun x : cart R M => @COND (cart R N') (Rlt (@dollar R M x i) c) (h x) (@vec N' (NUMERAL 0%N))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_EQUIINTEGRABLE_HALFSPACE_RESTRICTIONS_GT : forall {M N' : Type'}, forall fs : ((cart R M) -> cart R N') -> Prop, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, ((@equiintegrable_on M N' fs (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN ((cart R M) -> cart R N') f fs) /\ (forall h : (cart R M) -> cart R N', forall x : cart R M, ((@IN ((cart R M) -> cart R N') h fs) /\ (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> Rle (@vector_norm N' (h x)) (@vector_norm N' (f x))))) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6246 : (cart R M) -> cart R N' => exists i : N, exists c : R, exists h : (cart R M) -> cart R N', @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6246 ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@dimindex M (@UNIV M)))) /\ ((@IN R c (@UNIV R)) /\ (@IN ((cart R M) -> cart R N') h fs))) (fun x : cart R M => @COND (cart R N') (Rgt (@dollar R M x i) c) (h x) (@vec N' (NUMERAL 0%N))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_EQUIINTEGRABLE_OPEN_INTERVAL_RESTRICTIONS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6249 : (cart R M) -> cart R N' => exists c : cart R M, exists d : cart R M, @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6249 ((@IN (cart R M) c (@UNIV (cart R M))) /\ (@IN (cart R M) d (@UNIV (cart R M)))) (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x (@open_interval M (@pair (cart R M) (cart R M) c d))) (f x) (@vec N' (NUMERAL 0%N))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_EQUIINTEGRABLE_CLOSED_INTERVAL_RESTRICTIONS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @equiintegrable_on M N' (@GSPEC ((cart R M) -> cart R N') (fun GEN_PVAR_6252 : (cart R M) -> cart R N' => exists c : cart R M, exists d : cart R M, @SETSPEC ((cart R M) -> cart R N') GEN_PVAR_6252 ((@IN (cart R M) c (@UNIV (cart R M))) /\ (@IN (cart R M) d (@UNIV (cart R M)))) (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M)))))) (f x) (@vec N' (NUMERAL 0%N))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_INDEFINITE_INTEGRAL_CONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall c : cart R M, forall d : cart R M, forall e : R, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN (cart R M) c (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN (cart R M) d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)))) -> exists k : R, (Rlt (R_of_N (NUMERAL 0%N)) k) /\ (forall c' : cart R M, forall d' : cart R M, ((@IN (cart R M) c' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN (cart R M) d' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((Rle (@vector_norm M (@vector_sub M c' c)) k) /\ (Rle (@vector_norm M (@vector_sub M d' d)) k)))) -> Rlt (@vector_norm N' (@vector_sub N' (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c' d') (@nil (prod (cart R M) (cart R M))))) f) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) f))) e). +Axiom thm_INDEFINITE_INTEGRAL_CONTINUOUS_RIGHT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @continuous_on M N' (fun x : cart R M => @integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a x) (@nil (prod (cart R M) (cart R M))))) f) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_INDEFINITE_INTEGRAL_CONTINUOUS_LEFT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @continuous_on M N' (fun x : cart R M => @integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) x b) (@nil (prod (cart R M) (cart R M))))) f) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_INDEFINITE_INTEGRAL_UNIFORMLY_CONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @uniformly_continuous_on (finite_sum M M) N' (fun y : cart R (finite_sum M M) => @integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@fstcart R M M y) (@sndcart R M M y)) (@nil (prod (cart R M) (cart R M))))) f) (@closed_interval (finite_sum M M) (@cons (prod (cart R (finite_sum M M)) (cart R (finite_sum M M))) (@pair (cart R (finite_sum M M)) (cart R (finite_sum M M)) (@pastecart R M M a a) (@pastecart R M M b b)) (@nil (prod (cart R (finite_sum M M)) (cart R (finite_sum M M)))))). +Axiom thm_INDEFINITE_INTEGRAL_UNIFORMLY_CONTINUOUS_EXPLICIT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, forall e : R, ((@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists k : R, (Rlt (R_of_N (NUMERAL 0%N)) k) /\ (forall c : cart R M, forall d : cart R M, forall c' : cart R M, forall d' : cart R M, ((@IN (cart R M) c (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN (cart R M) d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN (cart R M) c' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((@IN (cart R M) d' (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((Rle (@vector_norm M (@vector_sub M c' c)) k) /\ (Rle (@vector_norm M (@vector_sub M d' d)) k)))))) -> Rlt (@vector_norm N' (@vector_sub N' (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c' d') (@nil (prod (cart R M) (cart R M))))) f) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) f))) e). +Axiom thm_BOUNDED_INTEGRALS_OVER_SUBINTERVALS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_6255 : cart R N' => exists c : cart R M, exists d : cart R M, @SETSPEC (cart R N') GEN_PVAR_6255 (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) f))). +Axiom thm_HAS_INTEGRAL_SUBSTITUTION_STRONG : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R unit, forall g' : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, forall d : cart R unit, forall k : (cart R unit) -> Prop, ((@COUNTABLE (cart R unit) k) /\ ((@integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@continuous_on unit unit g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@SUBSET (cart R unit) (@IMAGE (cart R unit) (cart R unit) g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) k)) -> (@has_vector_derivative unit g (g' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) /\ (@continuous N' (cart R unit) f (@within (cart R unit) (@_at unit (g x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit)))))))) /\ ((Rle (drop a) (drop b)) /\ ((Rle (drop c) (drop d)) /\ (Rle (drop (g a)) (drop (g b)))))))))) -> @has_integral unit N' (fun x : cart R unit => @percent N' (drop (g' x)) (f (g x))) (@integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (g a) (g b)) (@nil (prod (cart R unit) (cart R unit))))) f) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_SECOND_MEAN_VALUE_THEOREM_FULL : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> R, forall a : cart R unit, forall b : cart R unit, ((~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) /\ ((@integrable_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (g x) (g y)))) -> exists c : cart R unit, (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_integral unit unit (fun x : cart R unit => @percent unit (g x) (f x)) (@vector_add unit (@percent unit (g a) (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) f)) (@percent unit (g b) (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))) f))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_SECOND_MEAN_VALUE_THEOREM : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> R, forall a : cart R unit, forall b : cart R unit, ((~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) /\ ((@integrable_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (g x) (g y)))) -> exists c : cart R unit, (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => @percent unit (g x) (f x))) = (@vector_add unit (@percent unit (g a) (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) f)) (@percent unit (g b) (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))) f)))). +Axiom thm_SECOND_MEAN_VALUE_THEOREM_GEN_FULL : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> R, forall a : cart R unit, forall b : cart R unit, forall u : R, forall v : R, ((~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) /\ ((@integrable_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) -> (Rle u (g x)) /\ (Rle (g x) v)) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (g x) (g y))))) -> exists c : cart R unit, (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_integral unit unit (fun x : cart R unit => @percent unit (g x) (f x)) (@vector_add unit (@percent unit u (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) f)) (@percent unit v (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))) f))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_SECOND_MEAN_VALUE_THEOREM_GEN : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> R, forall a : cart R unit, forall b : cart R unit, forall u : R, forall v : R, ((~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) /\ ((@integrable_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) -> (Rle u (g x)) /\ (Rle (g x) v)) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (g x) (g y))))) -> exists c : cart R unit, (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => @percent unit (g x) (f x))) = (@vector_add unit (@percent unit u (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) f)) (@percent unit v (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))) f)))). +Axiom thm_SECOND_MEAN_VALUE_THEOREM_BONNET_FULL : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> R, forall a : cart R unit, forall b : cart R unit, ((~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) /\ ((@integrable_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (R_of_N (NUMERAL 0%N)) (g x)) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (g x) (g y))))) -> exists c : cart R unit, (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_integral unit unit (fun x : cart R unit => @percent unit (g x) (f x)) (@percent unit (g b) (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))) f)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_SECOND_MEAN_VALUE_THEOREM_BONNET : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> R, forall a : cart R unit, forall b : cart R unit, ((~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) /\ ((@integrable_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (R_of_N (NUMERAL 0%N)) (g x)) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (g x) (g y))))) -> exists c : cart R unit, (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => @percent unit (g x) (f x))) = (@percent unit (g b) (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))) f))). +Axiom thm_INTEGRABLE_INCREASING_PRODUCT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> R, forall a : cart R unit, forall b : cart R unit, ((@integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (g x) (g y))) -> @integrable_on N' unit (fun x : cart R unit => @percent N' (g x) (f x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_INCREASING_PRODUCT_UNIV : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> R, forall B : R, ((@integrable_on N' unit f (@UNIV (cart R unit))) /\ ((forall x : cart R unit, forall y : cart R unit, (Rle (drop x) (drop y)) -> Rle (g x) (g y)) /\ (forall x : cart R unit, Rle (Rabs (g x)) B))) -> @integrable_on N' unit (fun x : cart R unit => @percent N' (g x) (f x)) (@UNIV (cart R unit)). +Axiom thm_INTEGRABLE_INCREASING : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (forall x : cart R unit, forall y : cart R unit, forall i : N, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((Rle (drop x) (drop y)) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))))) -> Rle (@dollar R N' (f x) i) (@dollar R N' (f y) i)) -> @integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_INCREASING_1 : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) -> @integrable_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_DECREASING_PRODUCT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> R, forall a : cart R unit, forall b : cart R unit, ((@integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (g y) (g x))) -> @integrable_on N' unit (fun x : cart R unit => @percent N' (g x) (f x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_DECREASING_PRODUCT_UNIV : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> R, forall B : R, ((@integrable_on N' unit f (@UNIV (cart R unit))) /\ ((forall x : cart R unit, forall y : cart R unit, (Rle (drop x) (drop y)) -> Rle (g y) (g x)) /\ (forall x : cart R unit, Rle (Rabs (g x)) B))) -> @integrable_on N' unit (fun x : cart R unit => @percent N' (g x) (f x)) (@UNIV (cart R unit)). +Axiom thm_INTEGRABLE_DECREASING : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (forall x : cart R unit, forall y : cart R unit, forall i : N, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((Rle (drop x) (drop y)) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))))) -> Rle (@dollar R N' (f y) i) (@dollar R N' (f x) i)) -> @integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_DECREASING_1 : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x))) -> @integrable_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_has_bounded_variation_on : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' f s) = (@has_bounded_setvariation_on unit N' (fun k : (cart R unit) -> Prop => @vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))) s). +Axiom thm_vector_variation : forall {N' : Type'}, forall s : (cart R unit) -> Prop, forall f : (cart R unit) -> cart R N', (@vector_variation N' s f) = (@set_variation unit N' s (fun k : (cart R unit) -> Prop => @vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k)))). +Axiom thm_VECTOR_VARIATION_DEGENERATES : forall {_1379107 N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R _1379107, forall s : (cart R unit) -> Prop, ((~ (@has_bounded_variation_on N' f s)) /\ (~ (@has_bounded_variation_on _1379107 g s))) -> (@vector_variation N' s f) = (@vector_variation _1379107 s g). +Axiom thm_HAS_BOUNDED_VARIATION_ON_INTERVAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (exists B : R, forall d : ((cart R unit) -> Prop) -> Prop, (@division_of unit d (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_norm N' (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))))) B). +Axiom thm_VECTOR_VARIATION_ON_INTERVAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) = (sup (@GSPEC R (fun GEN_PVAR_6274 : R => exists d : ((cart R unit) -> Prop) -> Prop, @SETSPEC R GEN_PVAR_6274 (@division_of unit d (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_norm N' (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k)))))))). +Axiom thm_HAS_BOUNDED_VECTOR_VARIATION_ON_INTERVAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : R, ((@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) c)) = (forall d : ((cart R unit) -> Prop) -> Prop, (@division_of unit d (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_norm N' (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))))) c). +Axiom thm_HAS_BOUNDED_VECTOR_VARIATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall c : R, ((@has_bounded_variation_on N' f s) /\ (Rle (@vector_variation N' s f) c)) = (forall d : ((cart R unit) -> Prop) -> Prop, forall t : (cart R unit) -> Prop, ((@division_of unit d t) /\ (@SUBSET (cart R unit) t s)) -> Rle (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_norm N' (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))))) c). +Axiom thm_HAS_BOUNDED_VARIATION_WORKS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' f s) -> (forall d : ((cart R unit) -> Prop) -> Prop, forall t : (cart R unit) -> Prop, ((@division_of unit d t) /\ (@SUBSET (cart R unit) t s)) -> Rle (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_norm N' (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))))) (@vector_variation N' s f)) /\ (forall B : R, (forall d : ((cart R unit) -> Prop) -> Prop, forall t : (cart R unit) -> Prop, ((@division_of unit d t) /\ (@SUBSET (cart R unit) t s)) -> Rle (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_norm N' (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))))) B) -> Rle (@vector_variation N' s f) B). +Axiom thm_HAS_BOUNDED_VARIATION_WORKS_ON_ELEMENTARY : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f s) /\ (exists d : ((cart R unit) -> Prop) -> Prop, @division_of unit d s)) -> (forall d : ((cart R unit) -> Prop) -> Prop, (@division_of unit d s) -> Rle (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_norm N' (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))))) (@vector_variation N' s f)) /\ (forall B : R, (forall d : ((cart R unit) -> Prop) -> Prop, (@division_of unit d s) -> Rle (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_norm N' (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))))) B) -> Rle (@vector_variation N' s f) B). +Axiom thm_HAS_BOUNDED_VARIATION_WORKS_ON_INTERVAL : forall {N' : Type'} (a : cart R unit) (b : cart R unit), forall f : (cart R unit) -> cart R N', (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (forall d : ((cart R unit) -> Prop) -> Prop, (@division_of unit d (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_norm N' (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))))) (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f)) /\ (forall B : R, (forall d : ((cart R unit) -> Prop) -> Prop, (@division_of unit d (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_norm N' (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))))) B) -> Rle (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) B). +Axiom thm_HAS_BOUNDED_VECTOR_VARIATION_ON_INTERVAL_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall c : R, (@is_interval unit s) -> ((@has_bounded_variation_on N' f s) /\ (Rle (@vector_variation N' s f) c)) = (forall d : ((cart R unit) -> Prop) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@division_of unit d (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@SUBSET (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> Rle (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_norm N' (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))))) c). +Axiom thm_HAS_BOUNDED_VECTOR_VARIATION_ON_SUBINTERVALS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall c : R, (@is_interval unit s) -> ((@has_bounded_variation_on N' f s) /\ (Rle (@vector_variation N' s f) c)) = (forall a : cart R unit, forall b : cart R unit, (@SUBSET (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s) -> (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) c)). +Axiom thm_HAS_BOUNDED_VARIATION_ON_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((forall x : cart R unit, (@IN (cart R unit) x s) -> (f x) = (g x)) /\ (@has_bounded_variation_on N' f s)) -> @has_bounded_variation_on N' g s. +Axiom thm_VECTOR_VARIATION_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (forall x : cart R unit, (@IN (cart R unit) x s) -> (f x) = (g x)) -> (@vector_variation N' s f) = (@vector_variation N' s g). +Axiom thm_HAS_BOUNDED_VARIATION_ISOMETRIC : forall {_1380176 N' : Type'}, forall f : (cart R unit) -> cart R _1380176, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (forall x : cart R unit, forall y : cart R unit, (@distance _1380176 (@pair (cart R _1380176) (cart R _1380176) (f x) (f y))) = (@distance N' (@pair (cart R N') (cart R N') (g x) (g y)))) -> (@has_bounded_variation_on _1380176 f s) = (@has_bounded_variation_on N' g s). +Axiom thm_HAS_BOUNDED_VARIATION_ISOMETRIC_COMPOSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, forall s : (cart R unit) -> Prop, (forall x : cart R M, forall y : cart R M, (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance M (@pair (cart R M) (cart R M) x y))) -> (@has_bounded_variation_on N' (@o (cart R unit) (cart R M) (cart R N') f g) s) = (@has_bounded_variation_on M g s). +Axiom thm_VECTOR_VARIATION_ISOMETRIC : forall {_1380288 N' : Type'}, forall f : (cart R unit) -> cart R _1380288, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (forall x : cart R unit, forall y : cart R unit, (@distance _1380288 (@pair (cart R _1380288) (cart R _1380288) (f x) (f y))) = (@distance N' (@pair (cart R N') (cart R N') (g x) (g y)))) -> (@vector_variation _1380288 s f) = (@vector_variation N' s g). +Axiom thm_VECTOR_VARIATION_ISOMETRIC_COMPOSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, forall s : (cart R unit) -> Prop, (forall x : cart R M, forall y : cart R M, (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance M (@pair (cart R M) (cart R M) x y))) -> (@vector_variation N' s (@o (cart R unit) (cart R M) (cart R N') f g)) = (@vector_variation M s g). +Axiom thm_HAS_BOUNDED_VARIATION_ON_TRANSLATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R N', (@has_bounded_variation_on N' (fun x : cart R unit => @vector_add N' a (f x)) s) = (@has_bounded_variation_on N' f s). +Axiom thm_VECTOR_VARIATION_TRANSLATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R N', (@vector_variation N' s (fun x : cart R unit => @vector_add N' a (f x))) = (@vector_variation N' s f). +Axiom thm_HAS_BOUNDED_VARIATION_ON_COMPONENTWISE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' f s) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @has_bounded_variation_on unit (fun x : cart R unit => lift (@dollar R N' (f x) i)) s). +Axiom thm_VARIATION_EQUAL_LEMMA : forall {N' : Type'}, forall ms : (cart R unit) -> cart R unit, forall ms' : (cart R unit) -> cart R unit, ((forall s : cart R unit, ((ms' (ms s)) = s) /\ ((ms (ms' s)) = s)) /\ ((forall d : ((cart R unit) -> Prop) -> Prop, forall t : (cart R unit) -> Prop, (@division_of unit d t) -> (@division_of unit (@IMAGE ((cart R unit) -> Prop) ((cart R unit) -> Prop) (@IMAGE (cart R unit) (cart R unit) ms) d) (@IMAGE (cart R unit) (cart R unit) ms t)) /\ (@division_of unit (@IMAGE ((cart R unit) -> Prop) ((cart R unit) -> Prop) (@IMAGE (cart R unit) (cart R unit) ms') d) (@IMAGE (cart R unit) (cart R unit) ms' t))) /\ (forall a : cart R unit, forall b : cart R unit, (~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) -> ((@IMAGE (cart R unit) (cart R unit) ms' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (ms' a) (ms' b)) (@nil (prod (cart R unit) (cart R unit)))))) \/ ((@IMAGE (cart R unit) (cart R unit) ms' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (ms' b) (ms' a)) (@nil (prod (cart R unit) (cart R unit))))))))) -> (forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' (fun x : cart R unit => f (ms' x)) (@IMAGE (cart R unit) (cart R unit) ms s)) = (@has_bounded_variation_on N' f s)) /\ (forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@vector_variation N' (@IMAGE (cart R unit) (cart R unit) ms s) (fun x : cart R unit => f (ms' x))) = (@vector_variation N' s f)). +Axiom thm_HAS_BOUNDED_VARIATION_COMPARISON : forall {M N' : Type'}, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on M f s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rlt (drop x) (drop y)))) -> Rle (@distance N' (@pair (cart R N') (cart R N') (g x) (g y))) (@distance M (@pair (cart R M) (cart R M) (f x) (f y))))) -> @has_bounded_variation_on N' g s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_LIFT_ABS : forall (s : (cart R unit) -> Prop), forall f : (cart R unit) -> R, (@has_bounded_variation_on unit (fun x : cart R unit => lift (f x)) s) -> @has_bounded_variation_on unit (fun x : cart R unit => lift (Rabs (f x))) s. +Axiom thm_VECTOR_VARIATION_COMPARISON : forall {M N' : Type'}, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on M f s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rlt (drop x) (drop y)))) -> Rle (@distance N' (@pair (cart R N') (cart R N') (g x) (g y))) (@distance M (@pair (cart R M) (cart R M) (f x) (f y))))) -> Rle (@vector_variation N' s g) (@vector_variation M s f). +Axiom thm_VECTOR_VARIATION_COMPONENT_LE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall i : N, (@has_bounded_variation_on N' f s) -> Rle (@vector_variation unit s (fun x : cart R unit => lift (@dollar R N' (f x) i))) (@vector_variation N' s f). +Axiom thm_VECTOR_VARIATION_LIFT_ABS : forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, (@has_bounded_variation_on unit (fun x : cart R unit => lift (f x)) s) -> Rle (@vector_variation unit s (fun x : cart R unit => lift (Rabs (f x)))) (@vector_variation unit s (fun x : cart R unit => lift (f x))). +Axiom thm_HAS_BOUNDED_VARIATION_ON_SUBSET : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f s) /\ (@SUBSET (cart R unit) t s)) -> @has_bounded_variation_on N' f t. +Axiom thm_HAS_BOUNDED_VARIATION_ON_CONST : forall {N' : Type'}, forall s : (cart R unit) -> Prop, forall c : cart R N', @has_bounded_variation_on N' (fun x : cart R unit => c) s. +Axiom thm_VECTOR_VARIATION_CONST : forall {N' : Type'}, forall s : (cart R unit) -> Prop, forall c : cart R N', (@vector_variation N' s (fun x : cart R unit => c)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_HAS_BOUNDED_VARIATION_ON_CMUL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall c : R, forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' f s) -> @has_bounded_variation_on N' (fun x : cart R unit => @percent N' c (f x)) s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_CMUL_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall c : R, forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' (fun x : cart R unit => @percent N' c (f x)) s) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@has_bounded_variation_on N' f s)). +Axiom thm_HAS_BOUNDED_VARIATION_ON_VMUL_EQ : forall {N' : Type'}, forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, forall v : cart R N', (@has_bounded_variation_on N' (fun x : cart R unit => @percent N' (f x) v) s) = ((v = (@vec N' (NUMERAL 0%N))) \/ (@has_bounded_variation_on unit (fun x : cart R unit => lift (f x)) s)). +Axiom thm_HAS_BOUNDED_VARIATION_ON_VMUL : forall {N' : Type'}, forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, forall v : cart R N', (@has_bounded_variation_on unit (fun x : cart R unit => lift (f x)) s) -> @has_bounded_variation_on N' (fun x : cart R unit => @percent N' (f x) v) s. +Axiom thm_VECTOR_VARIATION_CMUL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall c : R, (@has_bounded_variation_on N' f s) -> (@vector_variation N' s (fun x : cart R unit => @percent N' c (f x))) = (Rmult (Rabs c) (@vector_variation N' s f)). +Axiom thm_VECTOR_VARIATION_VMUL : forall {N' : Type'}, forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, forall v : cart R N', (@has_bounded_variation_on unit (fun x : cart R unit => lift (f x)) s) -> (@vector_variation N' s (fun x : cart R unit => @percent N' (f x) v)) = (Rmult (@vector_norm N' v) (@vector_variation unit s (fun x : cart R unit => lift (f x)))). +Axiom thm_HAS_BOUNDED_VARIATION_ON_NEG : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' f s) -> @has_bounded_variation_on N' (fun x : cart R unit => @vector_neg N' (f x)) s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_ADD : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f s) /\ (@has_bounded_variation_on N' g s)) -> @has_bounded_variation_on N' (fun x : cart R unit => @vector_add N' (f x) (g x)) s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_SUB : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f s) /\ (@has_bounded_variation_on N' g s)) -> @has_bounded_variation_on N' (fun x : cart R unit => @vector_sub N' (f x) (g x)) s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_COMPOSE_LINEAR : forall {M N' : Type'}, forall f : (cart R unit) -> cart R M, forall g : (cart R M) -> cart R N', forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on M f s) /\ (@linear M N' g)) -> @has_bounded_variation_on N' (@o (cart R unit) (cart R M) (cart R N') g f) s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_NULL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (((@content unit s) = (R_of_N (NUMERAL 0%N))) /\ (@bounded unit s)) -> @has_bounded_variation_on N' f s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_EMPTY : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', @has_bounded_variation_on N' f (@EMPTY (cart R unit)). +Axiom thm_VECTOR_VARIATION_ON_NULL : forall {_1381884 : Type'}, forall f : (cart R unit) -> cart R _1381884, forall s : (cart R unit) -> Prop, (((@content unit s) = (R_of_N (NUMERAL 0%N))) /\ (@bounded unit s)) -> (@vector_variation _1381884 s f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_VECTOR_VARIATION_ON_EMPTY : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', (@vector_variation N' (@EMPTY (cart R unit)) f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_VECTOR_VARIATION_SING : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, (@vector_variation N' (@INSERT (cart R unit) a (@EMPTY (cart R unit))) f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_HAS_BOUNDED_VARIATION_ON_NORM : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' f s) -> @has_bounded_variation_on unit (fun x : cart R unit => lift (@vector_norm N' (f x))) s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_MAX : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on unit f s) /\ (@has_bounded_variation_on unit g s)) -> @has_bounded_variation_on unit (fun x : cart R unit => lift (Rmax (drop (f x)) (drop (g x)))) s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_MIN : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on unit f s) /\ (@has_bounded_variation_on unit g s)) -> @has_bounded_variation_on unit (fun x : cart R unit => lift (Rmin (drop (f x)) (drop (g x)))) s. +Axiom thm_BOUNDED_VECTOR_VARIATION_ON_PASTECART : forall {N' P : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R P, forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f s) /\ (@has_bounded_variation_on P g s)) -> (@has_bounded_variation_on (finite_sum N' P) (fun x : cart R unit => @pastecart R N' P (f x) (g x)) s) /\ (Rle (@vector_variation (finite_sum N' P) s (fun x : cart R unit => @pastecart R N' P (f x) (g x))) (Rplus (@vector_variation N' s f) (@vector_variation P s g))). +Axiom thm_BOUNDED_VARIATION_FROM_PASTECART : forall {N' P : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R P, forall s : (cart R unit) -> Prop, (@has_bounded_variation_on (finite_sum N' P) (fun x : cart R unit => @pastecart R N' P (f x) (g x)) s) -> ((@has_bounded_variation_on N' f s) /\ (Rle (@vector_variation N' s f) (@vector_variation (finite_sum N' P) s (fun x : cart R unit => @pastecart R N' P (f x) (g x))))) /\ ((@has_bounded_variation_on P g s) /\ (Rle (@vector_variation P s g) (@vector_variation (finite_sum N' P) s (fun x : cart R unit => @pastecart R N' P (f x) (g x))))). +Axiom thm_HAS_BOUNDED_VARIATION_ON_PASTECART : forall {N' P : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R P, forall s : (cart R unit) -> Prop, (@has_bounded_variation_on (finite_sum N' P) (fun x : cart R unit => @pastecart R N' P (f x) (g x)) s) = ((@has_bounded_variation_on N' f s) /\ (@has_bounded_variation_on P g s)). +Axiom thm_HAS_BOUNDED_VARIATION_ON_IMP_BOUNDED_ON_SUBINTERVALS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' f s) -> @bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_6277 : cart R N' => exists d : cart R unit, exists c : cart R unit, @SETSPEC (cart R N') GEN_PVAR_6277 ((@SUBSET (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit))))) s) /\ (~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit))))) (@vector_sub N' (f d) (f c)))). +Axiom thm_HAS_BOUNDED_VARIATION_ON_IMP_BOUNDED : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f s) /\ (@is_interval unit s)) -> @bounded N' (@IMAGE (cart R unit) (cart R N') f s). +Axiom thm_HAS_BOUNDED_VARIATION_ON_IMP_BOUNDED_ON_INTERVAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @bounded N' (@IMAGE (cart R unit) (cart R N') f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_HAS_BOUNDED_VARIATION_ON_BILINEAR : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@bilinear N' P M bop) /\ ((@has_bounded_variation_on M f s) /\ ((@has_bounded_variation_on N' g s) /\ (@is_interval unit s)))) -> @has_bounded_variation_on P (fun x : cart R unit => bop (f x) (g x)) s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_MUL : forall {N' : Type'}, forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on unit f s) /\ ((@has_bounded_variation_on N' g s) /\ (@is_interval unit s))) -> @has_bounded_variation_on N' (fun x : cart R unit => @percent N' (drop (f x)) (g x)) s. +Axiom thm_VECTOR_VARIATION_POS_LE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' f s) -> Rle (R_of_N (NUMERAL 0%N)) (@vector_variation N' s f). +Axiom thm_VECTOR_VARIATION_GE_NORM_FUNCTION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@has_bounded_variation_on N' f s) /\ (@SUBSET (cart R unit) (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> Rle (@vector_norm N' (@vector_sub N' (f b) (f a))) (@vector_variation N' s f). +Axiom thm_VECTOR_VARIATION_GE_DROP_FUNCTION : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@has_bounded_variation_on unit f s) /\ (@SUBSET (cart R unit) (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> Rle (Rminus (drop (f b)) (drop (f a))) (@vector_variation unit s f). +Axiom thm_VECTOR_VARIATION_CONST_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (@has_bounded_variation_on N' f s)) -> ((@vector_variation N' s f) = (R_of_N (NUMERAL 0%N))) = (exists c : cart R N', forall x : cart R unit, (@IN (cart R unit) x s) -> (f x) = c). +Axiom thm_VECTOR_VARIATION_MONOTONE : forall {_1383079 : Type'}, forall f : (cart R unit) -> cart R _1383079, forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@has_bounded_variation_on _1383079 f s) /\ (@SUBSET (cart R unit) t s)) -> Rle (@vector_variation _1383079 t f) (@vector_variation _1383079 s f). +Axiom thm_VECTOR_VARIATION_NEG : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@vector_variation N' s (fun x : cart R unit => @vector_neg N' (f x))) = (@vector_variation N' s f). +Axiom thm_VECTOR_VARIATION_TRIANGLE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f s) /\ (@has_bounded_variation_on N' g s)) -> Rle (@vector_variation N' s (fun x : cart R unit => @vector_add N' (f x) (g x))) (Rplus (@vector_variation N' s f) (@vector_variation N' s g)). +Axiom thm_VECTOR_VARIATION_SUM_LE : forall {A N' : Type'}, forall f : A -> (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall k : A -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> @has_bounded_variation_on N' (f i) s)) -> Rle (@vector_variation N' s (fun x : cart R unit => @vsum A N' k (fun i : A => f i x))) (@sum A k (fun i : A => @vector_variation N' s (f i))). +Axiom thm_HAS_BOUNDED_VARIATION_ON_VSUM : forall {A N' : Type'}, forall f : A -> (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall k : A -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> @has_bounded_variation_on N' (f i) s)) -> @has_bounded_variation_on N' (fun x : cart R unit => @vsum A N' k (fun i : A => f i x)) s. +Axiom thm_OPERATIVE_FUNCTION_ENDPOINT_DIFF : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', @operative (cart R N') unit (@vector_add N') (fun k : (cart R unit) -> Prop => @vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))). +Axiom thm_OPERATIVE_REAL_FUNCTION_ENDPOINT_DIFF : forall f : (cart R unit) -> R, @operative R unit Rplus (fun k : (cart R unit) -> Prop => Rminus (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))). +Axiom thm_OPERATIVE_HAS_BOUNDED_VARIATION_ON : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', @operative Prop unit and (@has_bounded_variation_on N' f). +Axiom thm_OPERATIVE_LIFTED_VECTOR_VARIATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', @operative (option R) unit (@lifted R R Rplus) (fun i : (cart R unit) -> Prop => @COND (option R) (@has_bounded_variation_on N' f i) (@Some R (@vector_variation N' i f)) (@None R)). +Axiom thm_HAS_BOUNDED_VARIATION_ON_DIVISION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall d : ((cart R unit) -> Prop) -> Prop, (@division_of unit d (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (forall k : (cart R unit) -> Prop, (@IN ((cart R unit) -> Prop) k d) -> @has_bounded_variation_on N' f k) = (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_VECTOR_VARIATION_ON_DIVISION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall d : ((cart R unit) -> Prop) -> Prop, ((@division_of unit d (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_variation N' k f)) = (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f). +Axiom thm_HAS_BOUNDED_VARIATION_ON_CLOSURE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (@has_bounded_variation_on N' f s)) -> @has_bounded_variation_on N' f (@closure unit s). +Axiom thm_HAS_BOUNDED_VARIATION_ON_CLOSURE_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@is_interval unit s) -> (@has_bounded_variation_on N' f (@closure unit s)) = (@has_bounded_variation_on N' f s). +Axiom thm_HAS_BOUNDED_VARIATION_ON_SING : forall {_1384339 : Type'}, forall f : (cart R unit) -> cart R _1384339, forall a : cart R unit, @has_bounded_variation_on _1384339 f (@INSERT (cart R unit) a (@EMPTY (cart R unit))). +Axiom thm_VECTOR_VARIATION_LE_UNION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f (@UNION (cart R unit) s t)) /\ ((@INTER (cart R unit) (@interior unit s) (@interior unit t)) = (@EMPTY (cart R unit)))) -> Rle (Rplus (@vector_variation N' s f) (@vector_variation N' t f)) (@vector_variation N' (@UNION (cart R unit) s t) f). +Axiom thm_VECTOR_VARIATION_UNION_LE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@is_interval unit t) /\ ((((@INTER (cart R unit) s t) = (@EMPTY (cart R unit))) -> ((@INTER (cart R unit) s (@closure unit t)) = (@EMPTY (cart R unit))) /\ ((@INTER (cart R unit) t (@closure unit s)) = (@EMPTY (cart R unit)))) /\ ((@has_bounded_variation_on N' f s) /\ (@has_bounded_variation_on N' f t))))) -> Rle (@vector_variation N' (@UNION (cart R unit) s t) f) (Rplus (@vector_variation N' s f) (@vector_variation N' t f)). +Axiom thm_HAS_BOUNDED_VARIATION_ON_UNION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@is_interval unit t) /\ ((@has_bounded_variation_on N' f s) /\ (@has_bounded_variation_on N' f t)))) -> @has_bounded_variation_on N' f (@UNION (cart R unit) s t). +Axiom thm_HAS_BOUNDED_VARIATION_ON_SPLIT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : R, (@is_interval unit s) -> (@has_bounded_variation_on N' f s) = ((@has_bounded_variation_on N' f (@GSPEC (cart R unit) (fun GEN_PVAR_6291 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6291 ((@IN (cart R unit) x s) /\ (Rle (drop x) a)) x))) /\ (@has_bounded_variation_on N' f (@GSPEC (cart R unit) (fun GEN_PVAR_6292 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6292 ((@IN (cart R unit) x s) /\ (Rle a (drop x))) x)))). +Axiom thm_VECTOR_VARIATION_SPLIT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : R, ((@is_interval unit s) /\ (@has_bounded_variation_on N' f s)) -> (Rplus (@vector_variation N' (@GSPEC (cart R unit) (fun GEN_PVAR_6303 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6303 ((@IN (cart R unit) x s) /\ (Rle (drop x) a)) x)) f) (@vector_variation N' (@GSPEC (cart R unit) (fun GEN_PVAR_6304 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6304 ((@IN (cart R unit) x s) /\ (Rle a (drop x))) x)) f)) = (@vector_variation N' s f). +Axiom thm_HAS_BOUNDED_VARIATION_ON_COMBINE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((Rle (drop a) (drop c)) /\ (Rle (drop c) (drop b))) -> (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = ((@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))))). +Axiom thm_VECTOR_VARIATION_COMBINE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((Rle (drop a) (drop c)) /\ ((Rle (drop c) (drop b)) /\ (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) -> (Rplus (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) f) (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))) f)) = (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f). +Axiom thm_VECTOR_VARIATION_MINUS_FUNCTION_MONOTONE_LEFT : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@has_bounded_variation_on unit f s) /\ ((@is_interval unit s) /\ ((@IN (cart R unit) a s) /\ ((@IN (cart R unit) b s) /\ (Rle (drop a) (drop b)))))) -> Rle (Rminus (@vector_variation unit (@GSPEC (cart R unit) (fun GEN_PVAR_6310 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6310 ((@IN (cart R unit) x s) /\ (Rle (drop x) (drop a))) x)) f) (drop (f a))) (Rminus (@vector_variation unit (@GSPEC (cart R unit) (fun GEN_PVAR_6311 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6311 ((@IN (cart R unit) x s) /\ (Rle (drop x) (drop b))) x)) f) (drop (f b))). +Axiom thm_VECTOR_VARIATION_MINUS_FUNCTION_MONOTONE_RIGHT : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@has_bounded_variation_on unit f s) /\ ((@is_interval unit s) /\ ((@IN (cart R unit) a s) /\ ((@IN (cart R unit) b s) /\ (Rle (drop a) (drop b)))))) -> Rle (Rminus (@vector_variation unit (@GSPEC (cart R unit) (fun GEN_PVAR_6317 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6317 ((@IN (cart R unit) x s) /\ (Rle (drop b) (drop x))) x)) f) (drop (f b))) (Rminus (@vector_variation unit (@GSPEC (cart R unit) (fun GEN_PVAR_6318 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6318 ((@IN (cart R unit) x s) /\ (Rle (drop a) (drop x))) x)) f) (drop (f a))). +Axiom thm_VECTOR_VARIATION_SEGMENT_TRIANGLE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((@has_bounded_variation_on N' f s) /\ ((@is_interval unit s) /\ ((@IN (cart R unit) a s) /\ ((@IN (cart R unit) b s) /\ (@IN (cart R unit) c s))))) -> Rle (@vector_variation N' (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) f) (Rplus (@vector_variation N' (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) (@vector_variation N' (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) b c) (@nil (prod (cart R unit) (cart R unit))))) f)). +Axiom thm_VECTOR_VARIATION_VECTOR_VARIATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (@vector_variation unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f))) = (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f). +Axiom thm_HAS_BOUNDED_VARIATION_ON_VECTOR_VARIATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_bounded_variation_on unit (fun x : cart R unit => lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_VECTOR_VARIATION_MINUS_FUNCTION_MONOTONE : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, forall d : cart R unit, ((@has_bounded_variation_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@SUBSET (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))))) -> Rle (Rminus (@vector_variation unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c d) (@nil (prod (cart R unit) (cart R unit))))) f) (drop (@vector_sub unit (f d) (f c)))) (Rminus (@vector_variation unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) (drop (@vector_sub unit (f b) (f a)))). +Axiom thm_HAS_BOUNDED_VARIATION_NONTRIVIAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' f s) = (exists B : R, forall d : ((cart R unit) -> Prop) -> Prop, forall t : (cart R unit) -> Prop, ((@division_of unit d t) /\ ((@SUBSET (cart R unit) t s) /\ (forall k : (cart R unit) -> Prop, (@IN ((cart R unit) -> Prop) k d) -> ~ ((@interior unit k) = (@EMPTY (cart R unit)))))) -> Rle (@sum ((cart R unit) -> Prop) d (fun k : (cart R unit) -> Prop => @vector_norm N' (@vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))))) B). +Axiom thm_INCREASING_BOUNDED_VARIATION_GEN : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@bounded unit (@IMAGE (cart R unit) (cart R unit) f s)) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y)))) -> @has_bounded_variation_on unit f s. +Axiom thm_DECREASING_BOUNDED_VARIATION_GEN : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@bounded unit (@IMAGE (cart R unit) (cart R unit) f s)) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x)))) -> @has_bounded_variation_on unit f s. +Axiom thm_INCREASING_BOUNDED_VARIATION : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) -> @has_bounded_variation_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_DECREASING_BOUNDED_VARIATION : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x))) -> @has_bounded_variation_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INCREASING_VECTOR_VARIATION : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, ((~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y)))) -> (@vector_variation unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) = (Rminus (drop (f b)) (drop (f a))). +Axiom thm_DECREASING_VECTOR_VARIATION : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, ((~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x)))) -> (@vector_variation unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) = (Rminus (drop (f a)) (drop (f b))). +Axiom thm_VECTOR_VARIATION_ID : forall a : cart R unit, forall b : cart R unit, (@vector_variation unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => x)) = (@COND R ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit))) (R_of_N (NUMERAL 0%N)) (Rminus (drop b) (drop a))). +Axiom thm_VECTOR_VARIATION_TRANSLATION2 : forall {N' : Type'}, forall a : cart R unit, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@vector_variation N' (@IMAGE (cart R unit) (cart R unit) (fun x : cart R unit => @vector_add unit (@vector_neg unit a) x) s) (fun x : cart R unit => f (@vector_add unit a x))) = (@vector_variation N' s f). +Axiom thm_HAS_BOUNDED_VARIATION_TRANSLATION2_EQ : forall {N' : Type'}, forall a : cart R unit, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' (fun x : cart R unit => f (@vector_add unit a x)) (@IMAGE (cart R unit) (cart R unit) (fun x : cart R unit => @vector_add unit (@vector_neg unit a) x) s)) = (@has_bounded_variation_on N' f s). +Axiom thm_VECTOR_VARIATION_AFFINITY2 : forall {N' : Type'}, forall m : R, forall c : cart R unit, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@vector_variation N' (@IMAGE (cart R unit) (cart R unit) (fun x : cart R unit => @vector_add unit (@percent unit (Rinv m) x) (@vector_neg unit (@percent unit (Rinv m) c))) s) (fun x : cart R unit => f (@vector_add unit (@percent unit m x) c))) = (@COND R (m = (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL 0%N)) (@vector_variation N' s f)). +Axiom thm_HAS_BOUNDED_VARIATION_AFFINITY2_EQ : forall {N' : Type'}, forall m : R, forall c : cart R unit, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' (fun x : cart R unit => f (@vector_add unit (@percent unit m x) c)) (@IMAGE (cart R unit) (cart R unit) (fun x : cart R unit => @vector_add unit (@percent unit (Rinv m) x) (@vector_neg unit (@percent unit (Rinv m) c))) s)) = ((m = (R_of_N (NUMERAL 0%N))) \/ (@has_bounded_variation_on N' f s)). +Axiom thm_VECTOR_VARIATION_AFFINITY : forall {N' : Type'}, forall m : R, forall c : cart R unit, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@vector_variation N' s (fun x : cart R unit => f (@vector_add unit (@percent unit m x) c))) = (@COND R (m = (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL 0%N)) (@vector_variation N' (@IMAGE (cart R unit) (cart R unit) (fun x : cart R unit => @vector_add unit (@percent unit m x) c) s) f)). +Axiom thm_HAS_BOUNDED_VARIATION_AFFINITY_EQ : forall {N' : Type'}, forall m : R, forall c : cart R unit, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' (fun x : cart R unit => f (@vector_add unit (@percent unit m x) c)) s) = ((m = (R_of_N (NUMERAL 0%N))) \/ (@has_bounded_variation_on N' f (@IMAGE (cart R unit) (cart R unit) (fun x : cart R unit => @vector_add unit (@percent unit m x) c) s))). +Axiom thm_VECTOR_VARIATION_TRANSLATION_ALT : forall {N' : Type'}, forall a : cart R unit, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@vector_variation N' s (fun x : cart R unit => f (@vector_add unit a x))) = (@vector_variation N' (@IMAGE (cart R unit) (cart R unit) (fun x : cart R unit => @vector_add unit a x) s) f). +Axiom thm_HAS_BOUNDED_VARIATION_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R unit, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' (fun x : cart R unit => f (@vector_add unit a x)) s) = (@has_bounded_variation_on N' f (@IMAGE (cart R unit) (cart R unit) (fun x : cart R unit => @vector_add unit a x) s)). +Axiom thm_VECTOR_VARIATION_TRANSLATION_INTERVAL : forall {N' : Type'}, forall a : cart R unit, forall f : (cart R unit) -> cart R N', forall u : cart R unit, forall v : cart R unit, (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => f (@vector_add unit a x))) = (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_add unit a u) (@vector_add unit a v)) (@nil (prod (cart R unit) (cart R unit))))) f). +Axiom thm_HAS_BOUNDED_VARIATION_TRANSLATION_EQ_INTERVAL : forall {N' : Type'}, forall a : cart R unit, forall f : (cart R unit) -> cart R N', forall u : cart R unit, forall v : cart R unit, (@has_bounded_variation_on N' (fun x : cart R unit => f (@vector_add unit a x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit)))))) = (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_add unit a u) (@vector_add unit a v)) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_HAS_BOUNDED_VARIATION_TRANSLATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, (@has_bounded_variation_on N' f s) -> @has_bounded_variation_on N' (fun x : cart R unit => f (@vector_add unit a x)) (@IMAGE (cart R unit) (cart R unit) (fun x : cart R unit => @vector_add unit (@vector_neg unit a) x) s). +Axiom thm_VECTOR_VARIATION_REFLECT2 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@vector_variation N' (@IMAGE (cart R unit) (cart R unit) (@vector_neg unit) s) (fun x : cart R unit => f (@vector_neg unit x))) = (@vector_variation N' s f). +Axiom thm_HAS_BOUNDED_VARIATION_REFLECT2_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' (fun x : cart R unit => f (@vector_neg unit x)) (@IMAGE (cart R unit) (cart R unit) (@vector_neg unit) s)) = (@has_bounded_variation_on N' f s). +Axiom thm_VECTOR_VARIATION_REFLECT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@vector_variation N' s (fun x : cart R unit => f (@vector_neg unit x))) = (@vector_variation N' (@IMAGE (cart R unit) (cart R unit) (@vector_neg unit) s) f). +Axiom thm_HAS_BOUNDED_VARIATION_REFLECT_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' (fun x : cart R unit => f (@vector_neg unit x)) s) = (@has_bounded_variation_on N' f (@IMAGE (cart R unit) (cart R unit) (@vector_neg unit) s)). +Axiom thm_VECTOR_VARIATION_REFLECT_INTERVAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall u : cart R unit, forall v : cart R unit, (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => f (@vector_neg unit x))) = (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_neg unit v) (@vector_neg unit u)) (@nil (prod (cart R unit) (cart R unit))))) f). +Axiom thm_HAS_BOUNDED_VARIATION_REFLECT_EQ_INTERVAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall u : cart R unit, forall v : cart R unit, (@has_bounded_variation_on N' (fun x : cart R unit => f (@vector_neg unit x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit)))))) = (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_neg unit v) (@vector_neg unit u)) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_HAS_BOUNDED_VARIATION_DARBOUX_GEN : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (@has_bounded_variation_on unit f s)) -> exists g : (cart R unit) -> cart R unit, exists h : (cart R unit) -> cart R unit, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (g x)) (drop (g y))) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (h x)) (drop (h y))) /\ (forall x : cart R unit, (f x) = (@vector_sub unit (g x) (h x)))). +Axiom thm_HAS_BOUNDED_VARIATION_DARBOUX : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (exists g : (cart R unit) -> cart R unit, exists h : (cart R unit) -> cart R unit, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (g x)) (drop (g y))) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (h x)) (drop (h y))) /\ (forall x : cart R unit, (f x) = (@vector_sub unit (g x) (h x))))). +Axiom thm_HAS_BOUNDED_VARIATION_DARBOUX_STRICT : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (exists g : (cart R unit) -> cart R unit, exists h : (cart R unit) -> cart R unit, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rlt (drop x) (drop y)))) -> Rlt (drop (g x)) (drop (g y))) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rlt (drop x) (drop y)))) -> Rlt (drop (h x)) (drop (h y))) /\ (forall x : cart R unit, (f x) = (@vector_sub unit (g x) (h x))))). +Axiom thm_HAS_BOUNDED_VARIATION_ON_REFLECT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@has_bounded_variation_on N' f (@IMAGE (cart R unit) (cart R unit) (@vector_neg unit) s)) -> @has_bounded_variation_on N' (fun x : cart R unit => f (@vector_neg unit x)) s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_REFLECT_INTERVAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vector_neg unit b) (@vector_neg unit a)) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_bounded_variation_on N' (fun x : cart R unit => f (@vector_neg unit x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_VECTOR_VARIATION_COMPOSE_INCREASING : forall {N' : Type'}, forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) /\ (@has_bounded_variation_on N' g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (f a) (f b)) (@nil (prod (cart R unit) (cart R unit))))))) -> Rle (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (@o (cart R unit) (cart R unit) (cart R N') g f)) (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (f a) (f b)) (@nil (prod (cart R unit) (cart R unit))))) g). +Axiom thm_HAS_BOUNDED_VARIATION_COMPOSE_INCREASING : forall {N' : Type'}, forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) /\ (@has_bounded_variation_on N' g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (f a) (f b)) (@nil (prod (cart R unit) (cart R unit))))))) -> @has_bounded_variation_on N' (@o (cart R unit) (cart R unit) (cart R N') g f) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_HAS_BOUNDED_VARIATION_COMPOSE_DECREASING : forall {N' : Type'}, forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x))) /\ (@has_bounded_variation_on N' g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (f b) (f a)) (@nil (prod (cart R unit) (cart R unit))))))) -> @has_bounded_variation_on N' (@o (cart R unit) (cart R unit) (cart R N') g f) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_VECTOR_VARIATION_COMPOSE_DECREASING : forall {N' : Type'}, forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x))) /\ (@has_bounded_variation_on N' g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (f b) (f a)) (@nil (prod (cart R unit) (cart R unit))))))) -> Rle (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (@o (cart R unit) (cart R unit) (cart R N') g f)) (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (f b) (f a)) (@nil (prod (cart R unit) (cart R unit))))) g). +Axiom thm_VECTOR_VARIATION_COMPOSE_INCREASING_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@is_interval unit t) /\ ((@SUBSET (cart R unit) (@IMAGE (cart R unit) (cart R unit) f s) t) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) /\ (@has_bounded_variation_on N' g t))))) -> Rle (@vector_variation N' s (@o (cart R unit) (cart R unit) (cart R N') g f)) (@vector_variation N' t g). +Axiom thm_HAS_BOUNDED_VARIATION_COMPOSE_INCREASING_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@is_interval unit t) /\ ((@SUBSET (cart R unit) (@IMAGE (cart R unit) (cart R unit) f s) t) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) /\ (@has_bounded_variation_on N' g t))))) -> @has_bounded_variation_on N' (@o (cart R unit) (cart R unit) (cart R N') g f) s. +Axiom thm_HAS_BOUNDED_VARIATION_COMPOSE_HOMEOMORPHISM : forall {N' : Type'}, forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@homeomorphism unit unit (@pair ((cart R unit) -> Prop) ((cart R unit) -> Prop) s t) (@pair ((cart R unit) -> cart R unit) ((cart R unit) -> cart R unit) f f')) /\ (@has_bounded_variation_on N' g t))) -> @has_bounded_variation_on N' (@o (cart R unit) (cart R unit) (cart R N') g f) s. +Axiom thm_HAS_BOUNDED_VARIATION_COMPOSE_INJECTIVE : forall {N' : Type'}, forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@continuous_on unit unit f s) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ ((f x) = (f y)))) -> x = y) /\ (@has_bounded_variation_on N' g (@IMAGE (cart R unit) (cart R unit) f s))))) -> @has_bounded_variation_on N' (@o (cart R unit) (cart R unit) (cart R N') g f) s. +Axiom thm_VECTOR_VARIATION_COMPOSE_HOMEOMORPHISM : forall {N' : Type'}, forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@homeomorphism unit unit (@pair ((cart R unit) -> Prop) ((cart R unit) -> Prop) s t) (@pair ((cart R unit) -> cart R unit) ((cart R unit) -> cart R unit) f f')) /\ (@has_bounded_variation_on N' g t))) -> (@vector_variation N' s (@o (cart R unit) (cart R unit) (cart R N') g f)) = (@vector_variation N' t g). +Axiom thm_HAS_BOUNDED_VARIATION_ON_ID : forall s : (cart R unit) -> Prop, (@bounded unit s) -> @has_bounded_variation_on unit (fun x : cart R unit => x) s. +Axiom thm_LINEAR_IMP_HAS_BOUNDED_VARIATION : forall {N' : Type'} (s : (cart R unit) -> Prop), forall f : (cart R unit) -> cart R N', ((@linear unit N' f) /\ (@bounded unit s)) -> @has_bounded_variation_on N' f s. +Axiom thm_VECTOR_VARIATION_LINEAR : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@linear unit N' f) /\ (Rle (drop a) (drop b))) -> (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) = (@distance N' (@pair (cart R N') (cart R N') (f a) (f b))). +Axiom thm_HAS_BOUNDED_VARIATION_LIPSCHITZ_COMPOSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, forall s : (cart R unit) -> Prop, forall B : R, ((@has_bounded_variation_on M g s) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x (@IMAGE (cart R unit) (cart R M) g s)) /\ (@IN (cart R M) y (@IMAGE (cart R unit) (cart R M) g s))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y))))) -> @has_bounded_variation_on N' (@o (cart R unit) (cart R M) (cart R N') f g) s. +Axiom thm_LIPSCHITZ_IMP_HAS_BOUNDED_VARIATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall B : R, ((@bounded unit s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ (@IN (cart R unit) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm unit (@vector_sub unit x y))))) -> @has_bounded_variation_on N' f s. +Axiom thm_VECTOR_VARIATION_LIPSCHITZ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall l : R, ((Rle (drop a) (drop b)) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult l (@vector_norm unit (@vector_sub unit x y))))) -> Rle (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) (Rmult l (Rminus (drop b) (drop a))). +Axiom thm_LIPSCHITZ_VECTOR_VARIATION : forall {N' : Type'} (B : R), forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> Rle (Rabs (Rminus (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f) (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a y) (@nil (prod (cart R unit) (cart R unit))))) f))) (Rmult B (@vector_norm unit (@vector_sub unit x y)))) = (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm unit (@vector_sub unit x y)))). +Axiom thm_HAS_BOUNDED_VECTOR_DERIVATIVE_IMP_HAS_BOUNDED_VARIATION_ON : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((forall x : cart R unit, (@IN (cart R unit) x s) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) s)) /\ ((@convex unit s) /\ ((@bounded unit s) /\ (@bounded N' (@IMAGE (cart R unit) (cart R N') f' s))))) -> @has_bounded_variation_on N' f s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@linear unit unit f) /\ (@has_bounded_variation_on N' g (@IMAGE (cart R unit) (cart R unit) f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) -> @has_bounded_variation_on N' (@o (cart R unit) (cart R unit) (cart R N') g f) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_HAS_BOUNDED_VARIATION_ON_COMBINE_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : R, (@is_interval unit s) -> (@has_bounded_variation_on N' f s) = ((@has_bounded_variation_on N' f (@GSPEC (cart R unit) (fun GEN_PVAR_6339 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6339 ((@IN (cart R unit) x s) /\ (Rle (drop x) a)) x))) /\ (@has_bounded_variation_on N' f (@GSPEC (cart R unit) (fun GEN_PVAR_6340 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6340 ((@IN (cart R unit) x s) /\ (Rge (drop x) a)) x)))). +Axiom thm_HAS_BOUNDED_VARIATION_ON_INTERIOR : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f (@interior unit s)) /\ ((@is_interval unit s) \/ (@continuous_on unit N' f s))) -> @has_bounded_variation_on N' f s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_INTERIOR_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) \/ (@continuous_on unit N' f s)) -> (@has_bounded_variation_on N' f (@interior unit s)) = (@has_bounded_variation_on N' f s). +Axiom thm_CONVEX_HAS_BOUNDED_VARIATION_EQ : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@convex_on unit (@o (cart R unit) (cart R unit) R drop f) s) /\ (@is_interval unit s)) -> (@has_bounded_variation_on unit f s) = (@bounded unit (@IMAGE (cart R unit) (cart R unit) f s)). +Axiom thm_CONVEX_HAS_BOUNDED_VARIATION : forall f : (cart R unit) -> R, forall a : cart R unit, forall b : cart R unit, (@convex_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_bounded_variation_on unit (@o (cart R unit) R (cart R unit) lift f) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_HAS_BOUNDED_VECTOR_VARIATION_UNIFORM_LIM : forall {N' : Type'}, forall f : N -> (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall b : R, ((forall n : N, @has_bounded_variation_on N' (f n) s) /\ ((forall n : N, Rle (@vector_variation N' s (f n)) b) /\ (forall x : cart R unit, (@IN (cart R unit) x s) -> @FImp N' N (fun n : N => f n x) (g x) sequentially))) -> (@has_bounded_variation_on N' g s) /\ (Rle (@vector_variation N' s g) b). +Axiom thm_INCREASING_LEFT_LIMIT_1 : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) /\ (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> exists l : cart R unit, @FImp unit (cart R unit) f l (@within (cart R unit) (@_at unit c) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_DECREASING_LEFT_LIMIT_1 : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x))) /\ (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> exists l : cart R unit, @FImp unit (cart R unit) f l (@within (cart R unit) (@_at unit c) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_INCREASING_RIGHT_LIMIT_1 : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) /\ (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> exists l : cart R unit, @FImp unit (cart R unit) f l (@within (cart R unit) (@_at unit c) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_DECREASING_RIGHT_LIMIT_1 : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x))) /\ (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> exists l : cart R unit, @FImp unit (cart R unit) f l (@within (cart R unit) (@_at unit c) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_HAS_BOUNDED_VECTOR_VARIATION_LEFT_LIMIT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit c) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_HAS_BOUNDED_VECTOR_VARIATION_RIGHT_LIMIT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit c) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_HAS_BOUNDED_VARIATION_RIGHT_LIMIT_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, ((@has_bounded_variation_on N' f s) /\ (@is_interval unit s)) -> exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_6351 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6351 ((@IN (cart R unit) x s) /\ (Rle (drop a) (drop x))) x))). +Axiom thm_HAS_BOUNDED_VARIATION_LEFT_LIMIT_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, ((@has_bounded_variation_on N' f s) /\ (@is_interval unit s)) -> exists l : cart R N', @FImp N' (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_6352 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6352 ((@IN (cart R unit) x s) /\ (Rle (drop x) (drop a))) x))). +Axiom thm_INCREASING_LEFT_LIMIT_1_GEN : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall a : cart R unit, forall B : R, ((@is_interval unit s) /\ ((forall x : cart R unit, (@IN (cart R unit) x s) -> Rle (drop (f x)) B) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))))) -> exists l : cart R unit, @FImp unit (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_6355 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6355 ((@IN (cart R unit) x s) /\ (Rle (drop x) (drop a))) x))). +Axiom thm_DECREASING_LEFT_LIMIT_1_GEN : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall a : cart R unit, forall B : R, ((@is_interval unit s) /\ ((forall x : cart R unit, (@IN (cart R unit) x s) -> Rle B (drop (f x))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x))))) -> exists l : cart R unit, @FImp unit (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_6356 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6356 ((@IN (cart R unit) x s) /\ (Rle (drop x) (drop a))) x))). +Axiom thm_INCREASING_RIGHT_LIMIT_1_GEN : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall a : cart R unit, forall B : R, ((@is_interval unit s) /\ ((forall x : cart R unit, (@IN (cart R unit) x s) -> Rle B (drop (f x))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))))) -> exists l : cart R unit, @FImp unit (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_6357 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6357 ((@IN (cart R unit) x s) /\ (Rle (drop a) (drop x))) x))). +Axiom thm_DECREASING_RIGHT_LIMIT_1_GEN : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall a : cart R unit, forall B : R, ((@is_interval unit s) /\ ((forall x : cart R unit, (@IN (cart R unit) x s) -> Rle (drop (f x)) B) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x))))) -> exists l : cart R unit, @FImp unit (cart R unit) f l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_6358 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6358 ((@IN (cart R unit) x s) /\ (Rle (drop a) (drop x))) x))). +Axiom thm_VECTOR_VARIATION_CONTINUOUS_LEFT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> (@continuous unit (cart R unit) (fun x : cart R unit => lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f)) (@within (cart R unit) (@_at unit c) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))))) = (@continuous N' (cart R unit) f (@within (cart R unit) (@_at unit c) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))))). +Axiom thm_VECTOR_VARIATION_CONTINUOUS_RIGHT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> (@continuous unit (cart R unit) (fun x : cart R unit => lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f)) (@within (cart R unit) (@_at unit c) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))))) = (@continuous N' (cart R unit) f (@within (cart R unit) (@_at unit c) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))))). +Axiom thm_VECTOR_VARIATION_CONTINUOUS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> (@continuous unit (cart R unit) (fun x : cart R unit => lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f)) (@within (cart R unit) (@_at unit c) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) = (@continuous N' (cart R unit) f (@within (cart R unit) (@_at unit c) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))). +Axiom thm_CONTINUOUS_ON_VECTOR_VARIATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> @continuous_on unit unit (fun x : cart R unit => lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_HAS_BOUNDED_VARIATION_DARBOUX_STRONG : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> exists g : (cart R unit) -> cart R unit, exists h : (cart R unit) -> cart R unit, (forall x : cart R unit, (f x) = (@vector_sub unit (g x) (h x))) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (g x)) (drop (g y))) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (h x)) (drop (h y))) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rlt (drop x) (drop y)))) -> Rlt (drop (g x)) (drop (g y))) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rlt (drop x) (drop y)))) -> Rlt (drop (h x)) (drop (h y))) /\ ((forall x : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@continuous unit (cart R unit) f (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit)))))))) -> (@continuous unit (cart R unit) g (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))))) /\ (@continuous unit (cart R unit) h (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit)))))))) /\ ((forall x : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@continuous unit (cart R unit) f (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) x b) (@nil (prod (cart R unit) (cart R unit)))))))) -> (@continuous unit (cart R unit) g (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) x b) (@nil (prod (cart R unit) (cart R unit))))))) /\ (@continuous unit (cart R unit) h (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) x b) (@nil (prod (cart R unit) (cart R unit)))))))) /\ (forall x : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@continuous unit (cart R unit) f (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) -> (@continuous unit (cart R unit) g (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) /\ (@continuous unit (cart R unit) h (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))))))))). +Axiom thm_INCREASING_COUNTABLE_DISCONTINUITIES : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y)))) -> @COUNTABLE (cart R unit) (@GSPEC (cart R unit) (fun GEN_PVAR_6366 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6366 ((@IN (cart R unit) x s) /\ (~ (@continuous unit (cart R unit) f (@_at unit x)))) x)). +Axiom thm_DECREASING_COUNTABLE_DISCONTINUITIES : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x)))) -> @COUNTABLE (cart R unit) (@GSPEC (cart R unit) (fun GEN_PVAR_6367 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6367 ((@IN (cart R unit) x s) /\ (~ (@continuous unit (cart R unit) f (@_at unit x)))) x)). +Axiom thm_HAS_BOUNDED_VARIATION_COUNTABLE_DISCONTINUITIES : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f s) /\ (@is_interval unit s)) -> @COUNTABLE (cart R unit) (@GSPEC (cart R unit) (fun GEN_PVAR_6371 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6371 ((@IN (cart R unit) x s) /\ (~ (@continuous N' (cart R unit) f (@_at unit x)))) x)). +Axiom thm_HAS_BOUNDED_VARIATION_ABSOLUTELY_INTEGRABLE_DERIVATIVE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@COUNTABLE (cart R unit) s) /\ ((@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @differentiable N' unit f (@_at unit x)))) -> (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@absolutely_integrable_on N' unit (fun x : cart R unit => @vector_derivative N' f (@_at unit x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_HAS_BOUNDED_VARIATION_INTEGRABLE_NORM_DERIVATIVE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@COUNTABLE (cart R unit) s) /\ ((@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @differentiable N' unit f (@_at unit x)))) -> (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@integrable_on unit unit (fun x : cart R unit => lift (@vector_norm N' (@vector_derivative N' f (@_at unit x)))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_VECTOR_VARIATION_INTEGRAL_NORM_DERIVATIVE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@COUNTABLE (cart R unit) s) /\ ((@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @differentiable N' unit f (@_at unit x)) /\ (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))))) -> (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) = (drop (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => lift (@vector_norm N' (@vector_derivative N' f (@_at unit x)))))). +Axiom thm_INTEGRABLE_BOUNDED_VARIATION_PRODUCT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, ((@integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_bounded_variation_on unit g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> @integrable_on N' unit (fun x : cart R unit => @percent N' (drop (g x)) (f x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_BOUNDED_VARIATION_PRODUCT_ALT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> R, forall a : cart R unit, forall b : cart R unit, ((@integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_bounded_variation_on unit (@o (cart R unit) R (cart R unit) lift g) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> @integrable_on N' unit (fun x : cart R unit => @percent N' (g x) (f x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_BOUNDED_VARIATION_BILINEAR_LMUL : forall {M N' P : Type'}, forall op : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R M, forall a : cart R unit, forall b : cart R unit, ((@bilinear N' P M op) /\ ((@integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_bounded_variation_on M g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) -> @integrable_on P unit (fun x : cart R unit => op (g x) (f x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_BOUNDED_VARIATION_BILINEAR_RMUL : forall {M N' P : Type'}, forall op : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@bilinear N' P M op) /\ ((@integrable_on M unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_bounded_variation_on N' g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) -> @integrable_on P unit (fun x : cart R unit => op (f x) (g x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_BOUNDED_VARIATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_HAS_BOUNDED_VARIATION_ON_INDEFINITE_INTEGRAL_RIGHT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@absolutely_integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_bounded_variation_on N' (fun c : cart R unit => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) f) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_HAS_BOUNDED_VARIATION_ON_INDEFINITE_INTEGRAL_LEFT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@absolutely_integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_bounded_variation_on N' (fun c : cart R unit => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))) f) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_CONTINUOUS_BV_IMP_UNIFORMLY_CONTINUOUS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@continuous_on unit N' f s) /\ (@has_bounded_variation_on N' f s))) -> @uniformly_continuous_on unit N' f s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_DARBOUX_IMP_CONTINUOUS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@has_bounded_variation_on N' f s) /\ (forall c : (cart R unit) -> Prop, ((@SUBSET (cart R unit) c s) /\ (@connected unit c)) -> @connected N' (@IMAGE (cart R unit) (cart R N') f c)))) -> @continuous_on unit N' f s. +Axiom thm_VECTOR_VARIATION_ON_INTERIOR : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@has_bounded_variation_on N' f (@interior unit s)) /\ (@continuous_on unit N' f s))) -> (@vector_variation N' (@interior unit s) f) = (@vector_variation N' s f). +Axiom thm_VECTOR_VARIATION_ON_CLOSURE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@has_bounded_variation_on N' f s) /\ (@continuous_on unit N' f (@closure unit s)))) -> (@vector_variation N' (@closure unit s) f) = (@vector_variation N' s f). +Axiom thm_HAS_BOUNDED_VARIATION_IMP_BAIRE1 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f s) /\ (@is_interval unit s)) -> @baire unit N' (NUMERAL (BIT1 0%N)) s f. +Axiom thm_INCREASING_IMP_BAIRE1 : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y)))) -> @baire unit unit (NUMERAL (BIT1 0%N)) s f. +Axiom thm_DECREASING_IMP_BAIRE1 : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x)))) -> @baire unit unit (NUMERAL (BIT1 0%N)) s f. +Axiom thm_FACTOR_THROUGH_VARIATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> exists g : (cart R unit) -> cart R N', (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (f x) = (g (lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f)))) /\ ((@continuous_on unit N' g (@GSPEC (cart R unit) (fun GEN_PVAR_6381 : cart R unit => exists u : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6381 (@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) (lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a u) (@nil (prod (cart R unit) (cart R unit))))) f))))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@GSPEC (cart R unit) (fun GEN_PVAR_6382 : cart R unit => exists u : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6382 (@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) (lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a u) (@nil (prod (cart R unit) (cart R unit))))) f))))) /\ (@IN (cart R unit) y (@GSPEC (cart R unit) (fun GEN_PVAR_6383 : cart R unit => exists u : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6383 (@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) (lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a u) (@nil (prod (cart R unit) (cart R unit))))) f)))))) -> Rle (@distance N' (@pair (cart R N') (cart R N') (g x) (g y))) (@distance unit (@pair (cart R unit) (cart R unit) x y)))). +Axiom thm_FACTOR_CONTINUOUS_THROUGH_VARIATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall l : cart R unit, ((Rle (drop a) (drop b)) /\ ((@continuous_on unit N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) = (drop l))))) -> exists g : (cart R unit) -> cart R N', (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (f x) = (g (lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f)))) /\ ((@continuous_on unit N' g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) l) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((forall u : cart R unit, forall v : cart R unit, ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) l) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) l) (@nil (prod (cart R unit) (cart R unit))))))) -> Rle (@distance N' (@pair (cart R N') (cart R N') (g u) (g v))) (@distance unit (@pair (cart R unit) (cart R unit) u v))) /\ ((@has_bounded_variation_on N' g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) l) (@nil (prod (cart R unit) (cart R unit)))))) /\ (((@IMAGE (cart R unit) (cart R unit) (fun x : cart R unit => lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) l) (@nil (prod (cart R unit) (cart R unit)))))) /\ (((@IMAGE (cart R unit) (cart R N') g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) l) (@nil (prod (cart R unit) (cart R unit)))))) = (@IMAGE (cart R unit) (cart R N') f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) l) (@nil (prod (cart R unit) (cart R unit)))))) -> (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) x) (@nil (prod (cart R unit) (cart R unit))))) g) = (drop x))))))). +Axiom thm_HELLY_SELECTION_INCREASING : forall f : N -> (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall k : R, ((@is_interval unit s) /\ ((forall n : N, forall x : cart R unit, (@IN (cart R unit) x s) -> Rle (@vector_norm unit (f n x)) k) /\ (forall n : N, forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f n x)) (drop (f n y))))) -> exists r : N -> N, exists g : (cart R unit) -> cart R unit, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ ((forall x : cart R unit, (@IN (cart R unit) x s) -> @FImp unit N (fun n : N => f (r n) x) (g x) sequentially) /\ ((forall x : cart R unit, (@IN (cart R unit) x s) -> Rle (@vector_norm unit (g x)) k) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (g x)) (drop (g y))))). +Axiom thm_HELLY_SELECTION_THEOREM : forall {N' : Type'}, forall f : N -> (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall c : R, forall d : R, ((@is_interval unit s) /\ ((forall n : N, @has_bounded_variation_on N' (f n) s) /\ ((forall n : N, Rle (@vector_variation N' s (f n)) c) /\ (forall n : N, forall x : cart R unit, (@IN (cart R unit) x s) -> Rle (@vector_norm N' (f n x)) d)))) -> exists r : N -> N, exists g : (cart R unit) -> cart R N', (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ ((forall x : cart R unit, (@IN (cart R unit) x s) -> @FImp N' N (fun n : N => f (r n) x) (g x) sequentially) /\ ((@has_bounded_variation_on N' g s) /\ (Rle (@vector_variation N' s g) c))). +Axiom thm_CONVEX_ON_RIGHT_DIFFERENTIABLE : forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, forall a : cart R unit, ((@convex_on unit f s) /\ (@IN (cart R unit) a (@interior unit s))) -> @differentiable unit unit (@o (cart R unit) R (cart R unit) lift f) (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_6394 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6394 (Rle (drop a) (drop x)) x))). +Axiom thm_CONVEX_ON_LEFT_DIFFERENTIABLE : forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, forall a : cart R unit, ((@convex_on unit f s) /\ (@IN (cart R unit) a (@interior unit s))) -> @differentiable unit unit (@o (cart R unit) R (cart R unit) lift f) (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_6398 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6398 (Rle (drop x) (drop a)) x))). +Axiom thm_CONVEX_ON_DIRECTIONAL_DERIVATIVES : forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, forall a : cart R unit, ((@convex_on unit f s) /\ (@IN (cart R unit) a (@interior unit s))) -> exists l : cart R unit, exists r : cart R unit, (@has_vector_derivative unit (@o (cart R unit) R (cart R unit) lift f) l (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_6399 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6399 (Rle (drop x) (drop a)) x)))) /\ ((@has_vector_derivative unit (@o (cart R unit) R (cart R unit) lift f) r (@within (cart R unit) (@_at unit a) (@GSPEC (cart R unit) (fun GEN_PVAR_6400 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6400 (Rle (drop a) (drop x)) x)))) /\ (Rle (drop l) (drop r))). +Axiom thm_CONVEX_ON_DIRECTIONAL_DERIVATIVE_FUNCTIONS : forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, ((@convex_on unit f s) /\ ((@is_interval unit s) /\ (@_open unit s))) -> exists l : (cart R unit) -> cart R unit, exists r : (cart R unit) -> cart R unit, (forall x : cart R unit, (@IN (cart R unit) x s) -> @has_vector_derivative unit (@o (cart R unit) R (cart R unit) lift f) (l x) (@within (cart R unit) (@_at unit x) (@GSPEC (cart R unit) (fun GEN_PVAR_6401 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6401 (Rle (drop t) (drop x)) t)))) /\ ((forall x : cart R unit, (@IN (cart R unit) x s) -> @has_vector_derivative unit (@o (cart R unit) R (cart R unit) lift f) (r x) (@within (cart R unit) (@_at unit x) (@GSPEC (cart R unit) (fun GEN_PVAR_6402 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6402 (Rle (drop x) (drop t)) t)))) /\ ((forall x : cart R unit, (@IN (cart R unit) x s) -> Rle (drop (l x)) (drop (r x))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rlt (drop x) (drop y)))) -> Rle (drop (r x)) (drop (l y))))). +Axiom thm_CONVEX_ON_COUNTABLE_NONDIFFERENTIABLE : forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, ((@convex_on unit f s) /\ (@COUNTABLE ((cart R unit) -> Prop) (@components unit s))) -> @COUNTABLE (cart R unit) (@GSPEC (cart R unit) (fun GEN_PVAR_6409 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6409 ((@IN (cart R unit) x s) /\ (~ (@differentiable unit unit (@o (cart R unit) R (cart R unit) lift f) (@_at unit x)))) x)). +Axiom thm_CONVEX_ON_INDEFINITE_INTEGRAL_INCREASING : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) -> @convex_on unit (fun x : cart R unit => drop (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_CONVEX_ON_IS_INDEFINITE_INTEGRAL : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@convex_on unit (@o (cart R unit) (cart R unit) R drop f) s) /\ ((@is_interval unit s) /\ (@_open unit s))) -> exists f' : (cart R unit) -> cart R unit, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f' x)) (drop (f' y))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> @has_integral unit unit f' (@vector_sub unit (f y) (f x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) x y) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_absolutely_setcontinuous_on : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall f : ((cart R M) -> Prop) -> cart R N', (@absolutely_setcontinuous_on M N' f s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ ((@SUBSET (cart R M) t s) /\ (Rlt (@sum ((cart R M) -> Prop) d (@content M)) r))) -> Rlt (@sum ((cart R M) -> Prop) d (fun k : (cart R M) -> Prop => @vector_norm N' (f k))) e)). +Axiom thm_ABSOLUTELY_SETCONTINUOUS_COMPARISON : forall {M N' P : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R P, forall s : (cart R M) -> Prop, ((@absolutely_setcontinuous_on M N' f s) /\ (forall a : cart R M, forall b : cart R M, ((~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s)) -> Rle (@vector_norm P (g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) (@vector_norm N' (f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))))) -> @absolutely_setcontinuous_on M P g s. +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_EQ : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((forall a : cart R M, forall b : cart R M, ((~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))) /\ (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s)) -> (f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) /\ (@absolutely_setcontinuous_on M N' f s)) -> @absolutely_setcontinuous_on M N' g s. +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_COMPONENTWISE : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_setcontinuous_on M N' f s) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @absolutely_setcontinuous_on M unit (fun k : (cart R M) -> Prop => lift (@dollar R N' (f k) i)) s). +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_ALT : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_setcontinuous_on M N' f s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall d : ((cart R M) -> Prop) -> Prop, forall t : (cart R M) -> Prop, ((@division_of M d t) /\ ((@SUBSET (cart R M) t s) /\ (Rlt (@sum ((cart R M) -> Prop) d (@content M)) r))) -> Rlt (@vector_norm N' (@vsum ((cart R M) -> Prop) N' d f)) e)). +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_LIFT_ABS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> R, forall s : (cart R N') -> Prop, (@absolutely_setcontinuous_on N' unit (fun x : (cart R N') -> Prop => lift (Rabs (f x))) s) = (@absolutely_setcontinuous_on N' unit (fun x : (cart R N') -> Prop => lift (f x)) s). +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_SUBSET : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@absolutely_setcontinuous_on M N' f s) /\ (@SUBSET (cart R M) t s)) -> @absolutely_setcontinuous_on M N' f t. +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_NORM : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_setcontinuous_on M unit (fun x : (cart R M) -> Prop => lift (@vector_norm N' (f x))) s) = (@absolutely_setcontinuous_on M N' f s). +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_COMPOSE_LINEAR : forall {M N' P : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, ((@absolutely_setcontinuous_on M N' f s) /\ (@linear N' P g)) -> @absolutely_setcontinuous_on M P (@o ((cart R M) -> Prop) (cart R N') (cart R P) g f) s. +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_0 : forall {_1410873 N' : Type'}, forall s : (cart R N') -> Prop, @absolutely_setcontinuous_on N' _1410873 (fun x : (cart R N') -> Prop => @vec _1410873 (NUMERAL 0%N)) s. +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_CMUL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall c : R, forall s : (cart R M) -> Prop, (@absolutely_setcontinuous_on M N' f s) -> @absolutely_setcontinuous_on M N' (fun x : (cart R M) -> Prop => @percent N' c (f x)) s. +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_NEG : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_setcontinuous_on M N' (fun x : (cart R M) -> Prop => @vector_neg N' (f x)) s) = (@absolutely_setcontinuous_on M N' f s). +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_ADD : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((@absolutely_setcontinuous_on M N' f s) /\ (@absolutely_setcontinuous_on M N' g s)) -> @absolutely_setcontinuous_on M N' (fun x : (cart R M) -> Prop => @vector_add N' (f x) (g x)) s. +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_SUB : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall g : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((@absolutely_setcontinuous_on M N' f s) /\ (@absolutely_setcontinuous_on M N' g s)) -> @absolutely_setcontinuous_on M N' (fun x : (cart R M) -> Prop => @vector_sub N' (f x) (g x)) s. +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_NULL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((forall a : cart R M, forall b : cart R M, ((~ ((@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) = (@EMPTY (cart R M)))) /\ ((@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) s) /\ ((@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (R_of_N (NUMERAL 0%N))))) -> (f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) = (@vec N' (NUMERAL 0%N))) /\ (((@content M s) = (R_of_N (NUMERAL 0%N))) /\ (@bounded M s))) -> @absolutely_setcontinuous_on M N' f s. +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_VSUM : forall {A M N' : Type'}, forall f : A -> ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, forall k : A -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> @absolutely_setcontinuous_on M N' (f i) s)) -> @absolutely_setcontinuous_on M N' (fun x : (cart R M) -> Prop => @vsum A N' k (fun i : A => f i x)) s. +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_MUL : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R unit, forall g : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((@absolutely_setcontinuous_on M unit f s) /\ (@absolutely_setcontinuous_on M N' g s)) -> @absolutely_setcontinuous_on M N' (fun x : (cart R M) -> Prop => @percent N' (drop (f x)) (g x)) s. +Axiom thm_OPERATIVE_ABSOLUTELY_SETCONTINUOUS_ON : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', (@operative (cart R N') M (@vector_add N') f) -> @operative Prop M and (@absolutely_setcontinuous_on M N' f). +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_DIVISION : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall a : cart R M, forall b : cart R M, forall d : ((cart R M) -> Prop) -> Prop, ((@operative (cart R N') M (@vector_add N') f) /\ (@division_of M d (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> (forall k : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) k d) -> @absolutely_setcontinuous_on M N' f k) = (@absolutely_setcontinuous_on M N' f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_ABSOLUTELY_SETCONTINUOUS_ON_IMP_HAS_BOUNDED_SETVARIATION_ON : forall {M N' : Type'}, forall f : ((cart R M) -> Prop) -> cart R N', forall s : (cart R M) -> Prop, ((@operative (cart R N') M (@vector_add N') f) /\ ((@absolutely_setcontinuous_on M N' f s) /\ (@bounded M s))) -> @has_bounded_setvariation_on M N' f s. +Axiom thm_absolutely_continuous_on : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@absolutely_continuous_on N' f s) = (@absolutely_setcontinuous_on unit N' (fun k : (cart R unit) -> Prop => @vector_sub N' (f (@interval_upperbound unit k)) (f (@interval_lowerbound unit k))) s). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((forall x : cart R unit, (@IN (cart R unit) x s) -> (f x) = (g x)) /\ (@absolutely_continuous_on N' f s)) -> @absolutely_continuous_on N' g s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ISOMETRIC : forall {_1413039 N' : Type'}, forall f : (cart R unit) -> cart R _1413039, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (forall x : cart R unit, forall y : cart R unit, (@distance _1413039 (@pair (cart R _1413039) (cart R _1413039) (f x) (f y))) = (@distance N' (@pair (cart R N') (cart R N') (g x) (g y)))) -> (@absolutely_continuous_on _1413039 f s) = (@absolutely_continuous_on N' g s). +Axiom thm_ABSOLUTELY_CONTINUOUS_ISOMETRIC_COMPOSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, forall s : (cart R unit) -> Prop, (forall x : cart R M, forall y : cart R M, (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance M (@pair (cart R M) (cart R M) x y))) -> (@absolutely_continuous_on N' (@o (cart R unit) (cart R M) (cart R N') f g) s) = (@absolutely_continuous_on M g s). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_TRANSLATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R N', (@absolutely_continuous_on N' (fun x : cart R unit => @vector_add N' a (f x)) s) = (@absolutely_continuous_on N' f s). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_COMPONENTWISE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@absolutely_continuous_on N' f s) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @absolutely_continuous_on unit (fun x : cart R unit => lift (@dollar R N' (f x) i)) s). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_LIFT_COMPONENT : forall {N' : Type'} (i : N), forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on N' f s) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> @absolutely_continuous_on unit (fun x : cart R unit => lift (@dollar R N' (f x) i)) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_COMPARISON : forall {M N' : Type'}, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on M f s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rlt (drop x) (drop y)))) -> Rle (@distance N' (@pair (cart R N') (cart R N') (g x) (g y))) (@distance M (@pair (cart R M) (cart R M) (f x) (f y))))) -> @absolutely_continuous_on N' g s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_LIFT_ABS : forall (s : (cart R unit) -> Prop), forall f : (cart R unit) -> R, (@absolutely_continuous_on unit (fun x : cart R unit => lift (f x)) s) -> @absolutely_continuous_on unit (fun x : cart R unit => lift (Rabs (f x))) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_SUBSET : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@absolutely_continuous_on N' f s) /\ (@SUBSET (cart R unit) t s)) -> @absolutely_continuous_on N' f t. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_CONST : forall {N' : Type'}, forall s : (cart R unit) -> Prop, forall c : cart R N', @absolutely_continuous_on N' (fun x : cart R unit => c) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_CMUL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall c : R, forall s : (cart R unit) -> Prop, (@absolutely_continuous_on N' f s) -> @absolutely_continuous_on N' (fun x : cart R unit => @percent N' c (f x)) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_CMUL_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall c : R, forall s : (cart R unit) -> Prop, (@absolutely_continuous_on N' (fun x : cart R unit => @percent N' c (f x)) s) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@absolutely_continuous_on N' f s)). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_VMUL_EQ : forall {N' : Type'}, forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, forall v : cart R N', (@absolutely_continuous_on N' (fun x : cart R unit => @percent N' (f x) v) s) = ((v = (@vec N' (NUMERAL 0%N))) \/ (@absolutely_continuous_on unit (fun x : cart R unit => lift (f x)) s)). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_VMUL : forall {N' : Type'}, forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, forall v : cart R N', (@absolutely_continuous_on unit (fun x : cart R unit => lift (f x)) s) -> @absolutely_continuous_on N' (fun x : cart R unit => @percent N' (f x) v) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_NEG : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@absolutely_continuous_on N' f s) -> @absolutely_continuous_on N' (fun x : cart R unit => @vector_neg N' (f x)) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_ADD : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on N' f s) /\ (@absolutely_continuous_on N' g s)) -> @absolutely_continuous_on N' (fun x : cart R unit => @vector_add N' (f x) (g x)) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_SUB : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on N' f s) /\ (@absolutely_continuous_on N' g s)) -> @absolutely_continuous_on N' (fun x : cart R unit => @vector_sub N' (f x) (g x)) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_COMPOSE_LINEAR : forall {M N' : Type'}, forall f : (cart R unit) -> cart R M, forall g : (cart R M) -> cart R N', forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on M f s) /\ (@linear M N' g)) -> @absolutely_continuous_on N' (@o (cart R unit) (cart R M) (cart R N') g f) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_NULL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (((@content unit s) = (R_of_N (NUMERAL 0%N))) /\ (@bounded unit s)) -> @absolutely_continuous_on N' f s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_EMPTY : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', @absolutely_continuous_on N' f (@EMPTY (cart R unit)). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_NORM : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@absolutely_continuous_on N' f s) -> @absolutely_continuous_on unit (fun x : cart R unit => lift (@vector_norm N' (f x))) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_MAX : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on unit f s) /\ (@absolutely_continuous_on unit g s)) -> @absolutely_continuous_on unit (fun x : cart R unit => lift (Rmax (drop (f x)) (drop (g x)))) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_MIN : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on unit f s) /\ (@absolutely_continuous_on unit g s)) -> @absolutely_continuous_on unit (fun x : cart R unit => lift (Rmin (drop (f x)) (drop (g x)))) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_LIPSCHITZ_COMPOSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, forall s : (cart R unit) -> Prop, forall B : R, ((@absolutely_continuous_on M g s) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x (@IMAGE (cart R unit) (cart R M) g s)) /\ (@IN (cart R M) y (@IMAGE (cart R unit) (cart R M) g s))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y))))) -> @absolutely_continuous_on N' (@o (cart R unit) (cart R M) (cart R N') f g) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_ID : forall s : (cart R unit) -> Prop, @absolutely_continuous_on unit (fun x : cart R unit => x) s. +Axiom thm_LIPSCHITZ_IMP_ABSOLUTELY_CONTINUOUS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall B : R, ((@bounded unit s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ (@IN (cart R unit) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm unit (@vector_sub unit x y))))) -> @absolutely_continuous_on N' f s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_IMP_UNIFORMLY_CONTINUOUS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on N' f s) /\ (@is_interval unit s)) -> @uniformly_continuous_on unit N' f s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_IMP_CONTINUOUS : forall {_1414331 : Type'}, forall f : (cart R unit) -> cart R _1414331, forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on _1414331 f s) /\ (@is_interval unit s)) -> @continuous_on unit _1414331 f s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_IMP_HAS_BOUNDED_VARIATION_ON : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on N' f s) /\ (@bounded unit s)) -> @has_bounded_variation_on N' f s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_BILINEAR : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@bilinear N' P M bop) /\ ((@absolutely_continuous_on M f s) /\ ((@absolutely_continuous_on N' g s) /\ ((@is_interval unit s) /\ (@bounded unit s))))) -> @absolutely_continuous_on P (fun x : cart R unit => bop (f x) (g x)) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_MUL : forall {N' : Type'}, forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on unit f s) /\ ((@absolutely_continuous_on N' g s) /\ ((@is_interval unit s) /\ (@bounded unit s)))) -> @absolutely_continuous_on N' (fun x : cart R unit => @percent N' (drop (f x)) (g x)) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_VSUM : forall {A N' : Type'}, forall f : A -> (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall k : A -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> @absolutely_continuous_on N' (f i) s)) -> @absolutely_continuous_on N' (fun x : cart R unit => @vsum A N' k (fun i : A => f i x)) s. +Axiom thm_OPERATIVE_ABSOLUTELY_CONTINUOUS_ON : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', @operative Prop unit and (@absolutely_continuous_on N' f). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_DIVISION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall d : ((cart R unit) -> Prop) -> Prop, (@division_of unit d (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (forall k : (cart R unit) -> Prop, (@IN ((cart R unit) -> Prop) k d) -> @absolutely_continuous_on N' f k) = (@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_COMBINE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((Rle (drop a) (drop c)) /\ (Rle (drop c) (drop b))) -> (@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = ((@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit))))))). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_SING : forall {_1414872 : Type'}, forall f : (cart R unit) -> cart R _1414872, forall a : cart R unit, @absolutely_continuous_on _1414872 f (@INSERT (cart R unit) a (@EMPTY (cart R unit))). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_INTERIOR : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on N' f (@interior unit s)) /\ (@continuous_on unit N' f s)) -> @absolutely_continuous_on N' f s. +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_INTERIOR_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, (@continuous_on unit N' f s) -> (@absolutely_continuous_on N' f (@interior unit s)) = (@absolutely_continuous_on N' f s). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_CLOSURE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@continuous_on unit N' f (@closure unit s)) /\ (@absolutely_continuous_on N' f (@interior unit s)))) -> @absolutely_continuous_on N' f (@closure unit s). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_CLOSURE_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (@continuous_on unit N' f (@closure unit s))) -> (@absolutely_continuous_on N' f (@closure unit s)) = (@absolutely_continuous_on N' f s). +Axiom thm_ABSOLUTELY_CONTINUOUS_EXTENDS_TO_CLOSURE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on N' f s) /\ (@is_interval unit s)) -> exists g : (cart R unit) -> cart R N', (@absolutely_continuous_on N' g (@closure unit s)) /\ (forall x : cart R unit, (@IN (cart R unit) x s) -> (g x) = (f x)). +Axiom thm_rectifiable_path : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@rectifiable_path N' g) = ((@path N' g) /\ (@has_bounded_variation_on N' g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))). +Axiom thm_path_length : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@path_length N' g) = (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) g). +Axiom thm_RECTIFIABLE_PATH_LIPSCHITZ_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, ((@rectifiable_path M g) /\ (exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x (@path_image M g)) /\ (@IN (cart R M) y (@path_image M g))) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y))))) -> @rectifiable_path N' (@o (cart R unit) (cart R M) (cart R N') f g). +Axiom thm_RECTIFIABLE_PATH_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall g : (cart R unit) -> cart R N', (@rectifiable_path N' (@o (cart R unit) (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) g)) = (@rectifiable_path N' g). +Axiom thm_RECTIFIABLE_PATH_LINEAR_IMAGE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@rectifiable_path N' (@o (cart R unit) (cart R M) (cart R N') f g)) = (@rectifiable_path M g). +Axiom thm_PATH_LENGTH_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall g : (cart R unit) -> cart R N', (@path_length N' (@o (cart R unit) (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) g)) = (@path_length N' g). +Axiom thm_PATH_LENGTH_ISOMETRIC_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, (forall x : cart R M, forall y : cart R M, (@distance N' (@pair (cart R N') (cart R N') (f x) (f y))) = (@distance M (@pair (cart R M) (cart R M) x y))) -> (@path_length N' (@o (cart R unit) (cart R M) (cart R N') f g)) = (@path_length M g). +Axiom thm_PATH_LENGTH_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R unit) -> cart R M, ((@linear M N' f) /\ (forall x : cart R M, (@vector_norm N' (f x)) = (@vector_norm M x))) -> (@path_length N' (@o (cart R unit) (cart R M) (cart R N') f g)) = (@path_length M g). +Axiom thm_RECTIFIABLE_PATH_EQ : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p t) = (q t)) /\ (@rectifiable_path N' p)) -> @rectifiable_path N' q. +Axiom thm_PATH_LENGTH_EQ : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p t) = (q t)) -> (@path_length N' p) = (@path_length N' q). +Axiom thm_PATH_LENGTH_SCALING : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall c : R, (@rectifiable_path N' g) -> (@path_length N' (@o (cart R unit) (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) g)) = (Rmult (Rabs c) (@path_length N' g)). +Axiom thm_BOUNDED_RECTIFIABLE_PATH_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@rectifiable_path N' g) -> @bounded N' (@path_image N' g). +Axiom thm_RECTIFIABLE_PATH_IMP_PATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@rectifiable_path N' g) -> @path N' g. +Axiom thm_RECTIFIABLE_PATH_LINEPATH : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', @rectifiable_path N' (@linepath N' (@pair (cart R N') (cart R N') a b)). +Axiom thm_RECTIFIABLE_PATH_REVERSEPATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@rectifiable_path N' (@reversepath N' g)) = (@rectifiable_path N' g). +Axiom thm_PATH_LENGTH_REVERSEPATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@path_length N' (@reversepath N' g)) = (@path_length N' g). +Axiom thm_RECTIFIABLE_PATH_SUBPATH_EQ : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : cart R unit, forall t : cart R unit, (@rectifiable_path N' (@subpath (cart R N') s t g)) = ((@path N' (@subpath (cart R N') s t g)) /\ (@has_bounded_variation_on N' g (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) s t) (@nil (prod (cart R unit) (cart R unit))))))). +Axiom thm_PATH_LENGTH_SUBPATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : cart R unit, forall t : cart R unit, (@path_length N' (@subpath (cart R N') s t g)) = (@vector_variation N' (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) s t) (@nil (prod (cart R unit) (cart R unit))))) g). +Axiom thm_RECTIFIABLE_PATH_SUBPATH : forall {N' : Type'}, forall u : cart R unit, forall v : cart R unit, forall g : (cart R unit) -> cart R N', ((@rectifiable_path N' g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> @rectifiable_path N' (@subpath (cart R N') u v g). +Axiom thm_RECTIFIABLE_PATH_JOIN : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@pathfinish N' g1) = (@pathstart N' g2)) -> (@rectifiable_path N' (@addadd (cart R N') g1 g2)) = ((@rectifiable_path N' g1) /\ (@rectifiable_path N' g2)). +Axiom thm_RECTIFIABLE_PATH_JOIN_IMP : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@rectifiable_path N' g1) /\ ((@rectifiable_path N' g2) /\ ((@pathfinish N' g1) = (@pathstart N' g2)))) -> @rectifiable_path N' (@addadd (cart R N') g1 g2). +Axiom thm_RECTIFIABLE_PATH_JOIN_EQ : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@rectifiable_path N' g1) /\ (@rectifiable_path N' g2)) -> (@rectifiable_path N' (@addadd (cart R N') g1 g2)) = ((@pathfinish N' g1) = (@pathstart N' g2)). +Axiom thm_RECTIFIABLE_PATH_SYM : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', (((@pathfinish N' p) = (@pathstart N' q)) /\ ((@pathfinish N' q) = (@pathstart N' p))) -> (@rectifiable_path N' (@addadd (cart R N') p q)) = (@rectifiable_path N' (@addadd (cart R N') q p)). +Axiom thm_RECTIFIABLE_PATH_SHIFTPATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R unit, ((@rectifiable_path N' g) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> @rectifiable_path N' (@shiftpath N' a g). +Axiom thm_PATH_LENGTH_SHIFTPATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R unit, ((@rectifiable_path N' g) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> (@path_length N' (@shiftpath N' a g)) = (@path_length N' g). +Axiom thm_PATH_LENGTH_POS_LE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@rectifiable_path N' g) -> Rle (R_of_N (NUMERAL 0%N)) (@path_length N' g). +Axiom thm_PATH_LENGTH_EQ_0 : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@rectifiable_path N' g) -> ((@path_length N' g) = (R_of_N (NUMERAL 0%N))) = (exists c : cart R N', forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (g t) = c). +Axiom thm_SIMPLE_PATH_LENGTH_POS_LT : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', ((@rectifiable_path N' g) /\ (@simple_path N' g)) -> Rlt (R_of_N (NUMERAL 0%N)) (@path_length N' g). +Axiom thm_PATH_LENGTH_JOIN : forall {N' : Type'}, forall g1 : (cart R unit) -> cart R N', forall g2 : (cart R unit) -> cart R N', ((@rectifiable_path N' g1) /\ ((@rectifiable_path N' g2) /\ ((@pathfinish N' g1) = (@pathstart N' g2)))) -> (@path_length N' (@addadd (cart R N') g1 g2)) = (Rplus (@path_length N' g1) (@path_length N' g2)). +Axiom thm_PATH_LENGTH_COMBINE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall t : cart R unit, ((@rectifiable_path N' g) /\ (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> (Rplus (@path_length N' (@subpath (cart R N') (@vec unit (NUMERAL 0%N)) t g)) (@path_length N' (@subpath (cart R N') t (@vec unit (NUMERAL (BIT1 0%N))) g))) = (@path_length N' g). +Axiom thm_RECTIFIABLE_PATH_COMBINE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (@rectifiable_path N' g) = ((@rectifiable_path N' (@subpath (cart R N') (@vec unit (NUMERAL 0%N)) t g)) /\ (@rectifiable_path N' (@subpath (cart R N') t (@vec unit (NUMERAL (BIT1 0%N))) g))). +Axiom thm_LIPSCHITZ_IMP_RECTIFIABLE_PATH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall b : R, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> Rle (@vector_norm N' (@vector_sub N' (g x) (g y))) (Rmult b (@vector_norm unit (@vector_sub unit x y)))) -> @rectifiable_path N' g. +Axiom thm_PATH_LENGTH_LIPSCHITZ : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall b : R, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> Rle (@vector_norm N' (@vector_sub N' (g x) (g y))) (Rmult b (@vector_norm unit (@vector_sub unit x y)))) -> Rle (@path_length N' g) b. +Axiom thm_DIST_POINTS_LE_PATH_LENGTH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@rectifiable_path N' g) /\ ((@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) b (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> Rle (@distance N' (@pair (cart R N') (cart R N') (g a) (g b))) (@path_length N' g). +Axiom thm_DIST_ENDPOINTS_LE_PATH_LENGTH : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@rectifiable_path N' g) -> Rle (@distance N' (@pair (cart R N') (cart R N') (@pathstart N' g) (@pathfinish N' g))) (@path_length N' g). +Axiom thm_PATH_LENGTH_EQ_LINE_SEGMENT : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', ((@rectifiable_path N' g) /\ ((@path_length N' g) = (@distance N' (@pair (cart R N') (cart R N') (@pathstart N' g) (@pathfinish N' g))))) -> (@path_image N' g) = (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@pathstart N' g) (@pathfinish N' g)) (@nil (prod (cart R N') (cart R N'))))). +Axiom thm_PATH_LENGTH_SUBPATH_LE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : cart R unit, forall t : cart R unit, ((@rectifiable_path N' g) /\ ((@IN (cart R unit) s (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> Rle (@path_length N' (@subpath (cart R N') s t g)) (@path_length N' g). +Axiom thm_RECTIFIABLE_PATH_IMAGE_SUBSET_CBALL : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@rectifiable_path N' g) -> @SUBSET (cart R N') (@path_image N' g) (@cball N' (@pair (cart R N') R (@pathstart N' g) (@path_length N' g))). +Axiom thm_PATH_LENGTH_LINEPATH : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', (@path_length N' (@linepath N' (@pair (cart R N') (cart R N') a b))) = (@distance N' (@pair (cart R N') (cart R N') a b)). +Axiom thm_RECTIFIABLE_PATH_REPARAMETRIZATION : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R unit, forall h' : (cart R unit) -> cart R unit, ((@rectifiable_path N' g) /\ (@homeomorphism unit unit (@pair ((cart R unit) -> Prop) ((cart R unit) -> Prop) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) (@pair ((cart R unit) -> cart R unit) ((cart R unit) -> cart R unit) h h'))) -> @rectifiable_path N' (@o (cart R unit) (cart R unit) (cart R N') g h). +Axiom thm_PATH_LENGTH_REPARAMETRIZATION : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R unit, forall h' : (cart R unit) -> cart R unit, ((@rectifiable_path N' g) /\ (@homeomorphism unit unit (@pair ((cart R unit) -> Prop) ((cart R unit) -> Prop) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) (@pair ((cart R unit) -> cart R unit) ((cart R unit) -> cart R unit) h h'))) -> (@path_length N' (@o (cart R unit) (cart R unit) (cart R N') g h)) = (@path_length N' g). +Axiom thm_ARC_LENGTH_UNIQUE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R N', ((@rectifiable_path N' g) /\ ((@arc N' g) /\ ((@rectifiable_path N' h) /\ ((@arc N' h) /\ ((@path_image N' g) = (@path_image N' h)))))) -> (@path_length N' g) = (@path_length N' h). +Axiom thm_CONTINUOUS_ON_PATH_LENGTH_SUBPATH_RIGHT : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R unit, ((@rectifiable_path N' g) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> @continuous_on unit unit (fun x : cart R unit => lift (@path_length N' (@subpath (cart R N') a x g))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_CONTINUOUS_ON_PATH_LENGTH_SUBPATH_LEFT : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall a : cart R unit, ((@rectifiable_path N' g) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> @continuous_on unit unit (fun x : cart R unit => lift (@path_length N' (@subpath (cart R N') x a g))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_ARC_LENGTH_REPARAMETRIZATION : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@rectifiable_path N' g) -> exists h : (cart R unit) -> cart R N', (@rectifiable_path N' h) /\ (((@path_image N' h) = (@path_image N' g)) /\ (((@pathstart N' h) = (@pathstart N' g)) /\ (((@pathfinish N' h) = (@pathfinish N' g)) /\ (((@path_length N' h) = (@path_length N' g)) /\ (((@arc N' g) -> @arc N' h) /\ (((@simple_path N' g) -> @simple_path N' h) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (@path_length N' (@subpath (cart R N') (@vec unit (NUMERAL 0%N)) t h)) = (Rmult (@path_length N' g) (drop t))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> Rle (@distance N' (@pair (cart R N') (cart R N') (h x) (h y))) (Rmult (@path_length N' g) (@distance unit (@pair (cart R unit) (cart R unit) x y))))))))))). +Axiom thm_SHORTEST_PATH_EXISTS_GEN : forall {N' : Type'}, forall P : ((cart R N') -> Prop) -> (cart R N') -> (cart R N') -> Prop, ((forall h : N -> (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R N', ((forall n : N, (@rectifiable_path N' (h n)) /\ (P (@path_image N' (h n)) (@pathstart N' (h n)) (@pathfinish N' (h n)))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : cart R unit, ((N.ge n N'') /\ (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) -> Rlt (@vector_norm N' (@vector_sub N' (h n x) (g x))) e)) -> P (@path_image N' g) (@pathstart N' g) (@pathfinish N' g)) /\ ((exists t : (cart R N') -> Prop, (@bounded N' t) /\ (forall g : (cart R unit) -> cart R N', ((@rectifiable_path N' g) /\ (P (@path_image N' g) (@pathstart N' g) (@pathfinish N' g))) -> ~ (@DISJOINT (cart R N') t (@hull (cart R N') (@convex N') (@path_image N' g))))) /\ (exists g : (cart R unit) -> cart R N', (@rectifiable_path N' g) /\ (P (@path_image N' g) (@pathstart N' g) (@pathfinish N' g))))) -> exists g : (cart R unit) -> cart R N', (@rectifiable_path N' g) /\ ((P (@path_image N' g) (@pathstart N' g) (@pathfinish N' g)) /\ (forall h : (cart R unit) -> cart R N', ((@rectifiable_path N' h) /\ (P (@path_image N' h) (@pathstart N' h) (@pathfinish N' h))) -> Rle (@path_length N' g) (@path_length N' h))). +Axiom thm_SHORTEST_PATH_EXISTS_STRADDLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : (cart R N') -> Prop, forall b : (cart R N') -> Prop, ((@closed N' s) /\ ((@compact N' a) /\ ((@compact N' b) /\ (exists g : (cart R unit) -> cart R N', (@rectifiable_path N' g) /\ ((@SUBSET (cart R N') t (@path_image N' g)) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ ((@IN (cart R N') (@pathstart N' g) a) /\ (@IN (cart R N') (@pathfinish N' g) b)))))))) -> exists g : (cart R unit) -> cart R N', (@rectifiable_path N' g) /\ ((@SUBSET (cart R N') t (@path_image N' g)) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ ((@IN (cart R N') (@pathstart N' g) a) /\ ((@IN (cart R N') (@pathfinish N' g) b) /\ (forall h : (cart R unit) -> cart R N', ((@rectifiable_path N' h) /\ ((@SUBSET (cart R N') t (@path_image N' h)) /\ ((@SUBSET (cart R N') (@path_image N' h) s) /\ ((@IN (cart R N') (@pathstart N' h) a) /\ (@IN (cart R N') (@pathfinish N' h) b))))) -> Rle (@path_length N' g) (@path_length N' h)))))). +Axiom thm_SHORTEST_PATH_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : (cart R N') -> Prop, forall b : (cart R N') -> Prop, ((@closed N' s) /\ ((@compact N' a) /\ ((@compact N' b) /\ (exists g : (cart R unit) -> cart R N', (@rectifiable_path N' g) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ ((@IN (cart R N') (@pathstart N' g) a) /\ (@IN (cart R N') (@pathfinish N' g) b))))))) -> exists g : (cart R unit) -> cart R N', (@rectifiable_path N' g) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ ((@IN (cart R N') (@pathstart N' g) a) /\ ((@IN (cart R N') (@pathfinish N' g) b) /\ (forall h : (cart R unit) -> cart R N', ((@rectifiable_path N' h) /\ ((@SUBSET (cart R N') (@path_image N' h) s) /\ ((@IN (cart R N') (@pathstart N' h) a) /\ (@IN (cart R N') (@pathfinish N' h) b)))) -> Rle (@path_length N' g) (@path_length N' h))))). +Axiom thm_SHORTEST_ARC_EXISTS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@closed N' s) /\ ((~ (a = b)) /\ (exists g : (cart R unit) -> cart R N', (@rectifiable_path N' g) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ (((@pathstart N' g) = a) /\ ((@pathfinish N' g) = b)))))) -> exists g : (cart R unit) -> cart R N', (@rectifiable_path N' g) /\ ((@arc N' g) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ (((@pathstart N' g) = a) /\ (((@pathfinish N' g) = b) /\ (forall h : (cart R unit) -> cart R N', ((@rectifiable_path N' h) /\ ((@SUBSET (cart R N') (@path_image N' h) s) /\ (((@pathstart N' h) = a) /\ ((@pathfinish N' h) = b)))) -> Rle (@path_length N' g) (@path_length N' h)))))). +Axiom thm_ARC_LENGTH_MINIMAL : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R N', ((@rectifiable_path N' g) /\ ((@arc N' g) /\ ((@rectifiable_path N' h) /\ ((@path_image N' g) = (@path_image N' h))))) -> Rle (@path_length N' g) (@path_length N' h). +Axiom thm_SIMPLE_PATH_LENGTH_MINIMAL : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R N', ((@rectifiable_path N' g) /\ ((@simple_path N' g) /\ ((@rectifiable_path N' h) /\ ((@path_image N' g) = (@path_image N' h))))) -> Rle (@path_length N' g) (@path_length N' h). +Axiom thm_SIMPLE_PATH_LENGTH_UNIQUE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall h : (cart R unit) -> cart R N', ((@rectifiable_path N' g) /\ ((@simple_path N' g) /\ ((@rectifiable_path N' h) /\ ((@simple_path N' h) /\ ((@path_image N' g) = (@path_image N' h)))))) -> (@path_length N' g) = (@path_length N' h). +Axiom thm_RECTIFIABLE_PATH_DIFFERENTIABLE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@COUNTABLE (cart R unit) s) /\ ((@path N' g) /\ (forall t : cart R unit, (@IN (cart R unit) t (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @differentiable N' unit g (@_at unit t)))) -> (@rectifiable_path N' g) = (@absolutely_integrable_on N' unit (fun t : cart R unit => @vector_derivative N' g (@_at unit t)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_PATH_LENGTH_DIFFERENTIABLE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@COUNTABLE (cart R unit) s) /\ ((@rectifiable_path N' g) /\ (forall t : cart R unit, (@IN (cart R unit) t (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @differentiable N' unit g (@_at unit t)))) -> (@path_length N' g) = (drop (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (fun t : cart R unit => lift (@vector_norm N' (@vector_derivative N' g (@_at unit t)))))). +Axiom thm_PICARD_LINDELOF_RIGHT : forall {N' : Type'}, forall s : (cart R (finite_sum unit N')) -> Prop, forall f : (cart R (finite_sum unit N')) -> cart R N', forall t0 : cart R unit, forall u0 : cart R N', forall r0 : R, forall r1 : R, forall B : R, forall c : R, ((@_open (finite_sum unit N') s) /\ ((@continuous_on (finite_sum unit N') N' f s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r0) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r1) /\ ((Rlt (Rmult B r0) r1) /\ ((Rlt (Rmult c r0) (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@SUBSET (cart R (finite_sum unit N')) (@PCROSS R unit N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) t0 (@vector_add unit t0 (lift r0))) (@nil (prod (cart R unit) (cart R unit))))) (@cball N' (@pair (cart R N') R u0 r1))) s) /\ ((forall x : cart R (finite_sum unit N'), (@IN (cart R (finite_sum unit N')) x s) -> Rle (@vector_norm N' (f x)) B) /\ (forall t : cart R unit, forall v : cart R N', forall w : cart R N', ((@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) t0 (@vector_add unit t0 (lift r0))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R N') v (@cball N' (@pair (cart R N') R u0 r1))) /\ (@IN (cart R N') w (@cball N' (@pair (cart R N') R u0 r1))))) -> Rle (@vector_norm N' (@vector_sub N' (f (@pastecart R unit N' t v)) (f (@pastecart R unit N' t w)))) (Rmult c (@vector_norm N' (@vector_sub N' v w)))))))))))) -> exists u : (cart R unit) -> cart R N', ((u t0) = u0) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) t0 (@vector_add unit t0 (lift r0))) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_vector_derivative N' u (f (@pastecart R unit N' t (u t))) (@within (cart R unit) (@_at unit t) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) t0 (@vector_add unit t0 (lift r0))) (@nil (prod (cart R unit) (cart R unit))))))) /\ (forall v : (cart R unit) -> cart R N', ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) t0 (@vector_add unit t0 (lift r0))) (@nil (prod (cart R unit) (cart R unit)))))) -> @IN (cart R (finite_sum unit N')) (@pastecart R unit N' t (v t)) s) /\ (((v t0) = u0) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) t0 (@vector_add unit t0 (lift r0))) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_vector_derivative N' v (f (@pastecart R unit N' t (v t))) (@within (cart R unit) (@_at unit t) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) t0 (@vector_add unit t0 (lift r0))) (@nil (prod (cart R unit) (cart R unit))))))))) -> forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) t0 (@vector_add unit t0 (lift r0))) (@nil (prod (cart R unit) (cart R unit)))))) -> (v t) = (u t))). +Axiom thm_has_measure : forall {_1428019 : Type'}, forall m : R, forall s : (cart R _1428019) -> Prop, (@has_measure _1428019 s m) = (@has_integral _1428019 unit (fun x : cart R _1428019 => @vec unit (NUMERAL (BIT1 0%N))) (lift m) s). +Axiom thm_measurable : forall {_1428035 : Type'}, forall s : (cart R _1428035) -> Prop, (@measurable _1428035 s) = (exists m : R, @has_measure _1428035 s m). +Axiom thm_measure : forall {_1428047 : Type'}, forall s : (cart R _1428047) -> Prop, (@measure _1428047 s) = (@ε R (fun m : R => @has_measure _1428047 s m)). +Axiom thm_HAS_MEASURE_MEASURE : forall {_1428056 : Type'}, forall s : (cart R _1428056) -> Prop, (@measurable _1428056 s) = (@has_measure _1428056 s (@measure _1428056 s)). +Axiom thm_HAS_MEASURE_UNIQUE : forall {_1428081 : Type'}, forall s : (cart R _1428081) -> Prop, forall m1 : R, forall m2 : R, ((@has_measure _1428081 s m1) /\ (@has_measure _1428081 s m2)) -> m1 = m2. +Axiom thm_MEASURE_UNIQUE : forall {_1428101 : Type'}, forall s : (cart R _1428101) -> Prop, forall m : R, (@has_measure _1428101 s m) -> (@measure _1428101 s) = m. +Axiom thm_HAS_MEASURE_MEASURABLE_MEASURE : forall {_1428120 : Type'}, forall s : (cart R _1428120) -> Prop, forall m : R, (@has_measure _1428120 s m) = ((@measurable _1428120 s) /\ ((@measure _1428120 s) = m)). +Axiom thm_HAS_MEASURE_IMP_MEASURABLE : forall {_1428143 : Type'}, forall s : (cart R _1428143) -> Prop, forall m : R, (@has_measure _1428143 s m) -> @measurable _1428143 s. +Axiom thm_HAS_MEASURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, (@has_measure N' s m) = (@has_integral N' unit (fun x : cart R N' => @COND (cart R unit) (@IN (cart R N') x s) (@vec unit (NUMERAL (BIT1 0%N))) (@vec unit (NUMERAL 0%N))) (lift m) (@UNIV (cart R N'))). +Axiom thm_MEASURABLE : forall {_1428188 : Type'}, forall s : (cart R _1428188) -> Prop, (@measurable _1428188 s) = (@integrable_on unit _1428188 (fun x : cart R _1428188 => @vec unit (NUMERAL (BIT1 0%N))) s). +Axiom thm_MEASURABLE_INTEGRABLE : forall {_1428201 : Type'} (s : (cart R _1428201) -> Prop), (@measurable _1428201 s) = (@integrable_on unit _1428201 (fun x : cart R _1428201 => @COND (cart R unit) (@IN (cart R _1428201) x s) (@vec unit (NUMERAL (BIT1 0%N))) (@vec unit (NUMERAL 0%N))) (@UNIV (cart R _1428201))). +Axiom thm_MEASURE_INTEGRAL : forall {_1428228 : Type'}, forall s : (cart R _1428228) -> Prop, (@measurable _1428228 s) -> (@measure _1428228 s) = (drop (@integral unit _1428228 s (fun x : cart R _1428228 => @vec unit (NUMERAL (BIT1 0%N))))). +Axiom thm_MEASURE_INTEGRAL_UNIV : forall {_1428251 : Type'}, forall s : (cart R _1428251) -> Prop, (@measurable _1428251 s) -> (@measure _1428251 s) = (drop (@integral unit _1428251 (@UNIV (cart R _1428251)) (fun x : cart R _1428251 => @COND (cart R unit) (@IN (cart R _1428251) x s) (@vec unit (NUMERAL (BIT1 0%N))) (@vec unit (NUMERAL 0%N))))). +Axiom thm_INTEGRAL_MEASURE : forall {_1428284 : Type'}, forall s : (cart R _1428284) -> Prop, (@measurable _1428284 s) -> (@integral unit _1428284 s (fun x : cart R _1428284 => @vec unit (NUMERAL (BIT1 0%N)))) = (lift (@measure _1428284 s)). +Axiom thm_INTEGRAL_MEASURE_UNIV : forall {_1428307 : Type'}, forall s : (cart R _1428307) -> Prop, (@measurable _1428307 s) -> (@integral unit _1428307 (@UNIV (cart R _1428307)) (fun x : cart R _1428307 => @COND (cart R unit) (@IN (cart R _1428307) x s) (@vec unit (NUMERAL (BIT1 0%N))) (@vec unit (NUMERAL 0%N)))) = (lift (@measure _1428307 s)). +Axiom thm_INTEGRABLE_ON_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@integrable_on unit N' (@indicator N' s) t) = (@measurable N' (@INTER (cart R N') s t)). +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_INDICATOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@absolutely_integrable_on unit N' (@indicator N' s) t) = (@measurable N' (@INTER (cart R N') s t)). +Axiom thm_INTEGRAL_INDICATOR : forall {M : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@measurable M (@INTER (cart R M) s t)) -> (@integral unit M t (@indicator M s)) = (lift (@measure M (@INTER (cart R M) s t))). +Axiom thm_HAS_MEASURE_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @has_measure N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) /\ (forall a : cart R N', forall b : cart R N', @has_measure N' (@open_interval N' (@pair (cart R N') (cart R N') a b)) (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_MEASURABLE_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @measurable N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', @measurable N' (@open_interval N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_MEASURE_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@measure N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) /\ (forall a : cart R N', forall b : cart R N', (@measure N' (@open_interval N' (@pair (cart R N') (cart R N') a b))) = (@content N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_MEASURE_INTERVAL_1 : (forall a : cart R unit, forall b : cart R unit, (@measure unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@COND R (Rle (drop a) (drop b)) (Rminus (drop b) (drop a)) (R_of_N (NUMERAL 0%N)))) /\ (forall a : cart R unit, forall b : cart R unit, (@measure unit (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) = (@COND R (Rle (drop a) (drop b)) (Rminus (drop b) (drop a)) (R_of_N (NUMERAL 0%N)))). +Axiom thm_MEASURE_INTERVAL_1_ALT : (forall a : cart R unit, forall b : cart R unit, (@measure unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@COND R (Rlt (drop a) (drop b)) (Rminus (drop b) (drop a)) (R_of_N (NUMERAL 0%N)))) /\ (forall a : cart R unit, forall b : cart R unit, (@measure unit (@open_interval unit (@pair (cart R unit) (cart R unit) a b))) = (@COND R (Rlt (drop a) (drop b)) (Rminus (drop b) (drop a)) (R_of_N (NUMERAL 0%N)))). +Axiom thm_MEASURE_INTERVAL_2 : (forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (@measure (tybit0 unit) (@closed_interval (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) = (@COND R ((Rle (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N)))) /\ (Rle (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))))) (Rmult (Rminus (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N)))) (Rminus (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N)))))) (R_of_N (NUMERAL 0%N)))) /\ (forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (@measure (tybit0 unit) (@open_interval (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b))) = (@COND R ((Rle (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N)))) /\ (Rle (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))))) (Rmult (Rminus (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N)))) (Rminus (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N)))))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_MEASURE_INTERVAL_2_ALT : (forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (@measure (tybit0 unit) (@closed_interval (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) = (@COND R ((Rlt (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N)))) /\ (Rlt (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))))) (Rmult (Rminus (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N)))) (Rminus (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N)))))) (R_of_N (NUMERAL 0%N)))) /\ (forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (@measure (tybit0 unit) (@open_interval (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b))) = (@COND R ((Rlt (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N)))) /\ (Rlt (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))))) (Rmult (Rminus (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N)))) (Rminus (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N)))))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_MEASURE_INTERVAL_3 : (forall a : cart R (tybit1 unit), forall b : cart R (tybit1 unit), (@measure (tybit1 unit) (@closed_interval (tybit1 unit) (@cons (prod (cart R (tybit1 unit)) (cart R (tybit1 unit))) (@pair (cart R (tybit1 unit)) (cart R (tybit1 unit)) a b) (@nil (prod (cart R (tybit1 unit)) (cart R (tybit1 unit))))))) = (@COND R ((Rle (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) b (NUMERAL (BIT1 0%N)))) /\ ((Rle (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) b (NUMERAL (BIT0 (BIT1 0%N))))) /\ (Rle (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) b (NUMERAL (BIT1 (BIT1 0%N))))))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))))) (R_of_N (NUMERAL 0%N)))) /\ (forall a : cart R (tybit1 unit), forall b : cart R (tybit1 unit), (@measure (tybit1 unit) (@open_interval (tybit1 unit) (@pair (cart R (tybit1 unit)) (cart R (tybit1 unit)) a b))) = (@COND R ((Rle (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) b (NUMERAL (BIT1 0%N)))) /\ ((Rle (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) b (NUMERAL (BIT0 (BIT1 0%N))))) /\ (Rle (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) b (NUMERAL (BIT1 (BIT1 0%N))))))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_MEASURE_INTERVAL_3_ALT : (forall a : cart R (tybit1 unit), forall b : cart R (tybit1 unit), (@measure (tybit1 unit) (@closed_interval (tybit1 unit) (@cons (prod (cart R (tybit1 unit)) (cart R (tybit1 unit))) (@pair (cart R (tybit1 unit)) (cart R (tybit1 unit)) a b) (@nil (prod (cart R (tybit1 unit)) (cart R (tybit1 unit))))))) = (@COND R ((Rlt (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) b (NUMERAL (BIT1 0%N)))) /\ ((Rlt (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) b (NUMERAL (BIT0 (BIT1 0%N))))) /\ (Rlt (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) b (NUMERAL (BIT1 (BIT1 0%N))))))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))))) (R_of_N (NUMERAL 0%N)))) /\ (forall a : cart R (tybit1 unit), forall b : cart R (tybit1 unit), (@measure (tybit1 unit) (@open_interval (tybit1 unit) (@pair (cart R (tybit1 unit)) (cart R (tybit1 unit)) a b))) = (@COND R ((Rlt (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) b (NUMERAL (BIT1 0%N)))) /\ ((Rlt (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) b (NUMERAL (BIT0 (BIT1 0%N))))) /\ (Rlt (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) b (NUMERAL (BIT1 (BIT1 0%N))))))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_MEASURE_INTERVAL_4 : (forall a : cart R (tybit0 (tybit0 unit)), forall b : cart R (tybit0 (tybit0 unit)), (@measure (tybit0 (tybit0 unit)) (@closed_interval (tybit0 (tybit0 unit)) (@cons (prod (cart R (tybit0 (tybit0 unit))) (cart R (tybit0 (tybit0 unit)))) (@pair (cart R (tybit0 (tybit0 unit))) (cart R (tybit0 (tybit0 unit))) a b) (@nil (prod (cart R (tybit0 (tybit0 unit))) (cart R (tybit0 (tybit0 unit)))))))) = (@COND R ((Rle (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 0%N)))) /\ ((Rle (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((Rle (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 (BIT1 0%N))))) /\ (Rle (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))) (Rmult (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 0%N)))) (Rmult (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rmult (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 (BIT1 0%N))))) (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))) (R_of_N (NUMERAL 0%N)))) /\ (forall a : cart R (tybit0 (tybit0 unit)), forall b : cart R (tybit0 (tybit0 unit)), (@measure (tybit0 (tybit0 unit)) (@open_interval (tybit0 (tybit0 unit)) (@pair (cart R (tybit0 (tybit0 unit))) (cart R (tybit0 (tybit0 unit))) a b))) = (@COND R ((Rle (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 0%N)))) /\ ((Rle (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((Rle (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 (BIT1 0%N))))) /\ (Rle (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))) (Rmult (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 0%N)))) (Rmult (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rmult (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 (BIT1 0%N))))) (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_MEASURE_INTERVAL_4_ALT : (forall a : cart R (tybit0 (tybit0 unit)), forall b : cart R (tybit0 (tybit0 unit)), (@measure (tybit0 (tybit0 unit)) (@closed_interval (tybit0 (tybit0 unit)) (@cons (prod (cart R (tybit0 (tybit0 unit))) (cart R (tybit0 (tybit0 unit)))) (@pair (cart R (tybit0 (tybit0 unit))) (cart R (tybit0 (tybit0 unit))) a b) (@nil (prod (cart R (tybit0 (tybit0 unit))) (cart R (tybit0 (tybit0 unit)))))))) = (@COND R ((Rlt (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 0%N)))) /\ ((Rlt (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((Rlt (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 (BIT1 0%N))))) /\ (Rlt (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))) (Rmult (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 0%N)))) (Rmult (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rmult (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 (BIT1 0%N))))) (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))) (R_of_N (NUMERAL 0%N)))) /\ (forall a : cart R (tybit0 (tybit0 unit)), forall b : cart R (tybit0 (tybit0 unit)), (@measure (tybit0 (tybit0 unit)) (@open_interval (tybit0 (tybit0 unit)) (@pair (cart R (tybit0 (tybit0 unit))) (cart R (tybit0 (tybit0 unit))) a b))) = (@COND R ((Rlt (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 0%N)))) /\ ((Rlt (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((Rlt (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 (BIT1 0%N))))) /\ (Rlt (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))) (Rmult (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 0%N)))) (Rmult (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rmult (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT1 (BIT1 0%N))))) (Rminus (@dollar R (tybit0 (tybit0 unit)) b (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (@dollar R (tybit0 (tybit0 unit)) a (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_MEASURABLE_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@measurable N' s) /\ (@measurable N' t)) -> @measurable N' (@INTER (cart R N') s t). +Axiom thm_MEASURABLE_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@measurable N' s) /\ (@measurable N' t)) -> @measurable N' (@UNION (cart R N') s t). +Axiom thm_HAS_MEASURE_DISJOINT_UNION : forall {_1430432 : Type'}, forall s1 : (cart R _1430432) -> Prop, forall s2 : (cart R _1430432) -> Prop, forall m1 : R, forall m2 : R, ((@has_measure _1430432 s1 m1) /\ ((@has_measure _1430432 s2 m2) /\ (@DISJOINT (cart R _1430432) s1 s2))) -> @has_measure _1430432 (@UNION (cart R _1430432) s1 s2) (Rplus m1 m2). +Axiom thm_MEASURE_DISJOINT_UNION : forall {_1430463 : Type'}, forall s : (cart R _1430463) -> Prop, forall t : (cart R _1430463) -> Prop, ((@measurable _1430463 s) /\ ((@measurable _1430463 t) /\ (@DISJOINT (cart R _1430463) s t))) -> (@measure _1430463 (@UNION (cart R _1430463) s t)) = (Rplus (@measure _1430463 s) (@measure _1430463 t)). +Axiom thm_MEASURE_DISJOINT_UNION_EQ : forall {_1430527 : Type'}, forall s : (cart R _1430527) -> Prop, forall t : (cart R _1430527) -> Prop, forall u : (cart R _1430527) -> Prop, ((@measurable _1430527 s) /\ ((@measurable _1430527 t) /\ (((@UNION (cart R _1430527) s t) = u) /\ (@DISJOINT (cart R _1430527) s t)))) -> (Rplus (@measure _1430527 s) (@measure _1430527 t)) = (@measure _1430527 u). +Axiom thm_HAS_MEASURE_POS_LE : forall {N' : Type'}, forall m : R, forall s : (cart R N') -> Prop, (@has_measure N' s m) -> Rle (R_of_N (NUMERAL 0%N)) m. +Axiom thm_MEASURE_POS_LE : forall {_1430571 : Type'}, forall s : (cart R _1430571) -> Prop, (@measurable _1430571 s) -> Rle (R_of_N (NUMERAL 0%N)) (@measure _1430571 s). +Axiom thm_HAS_MEASURE_SUBSET : forall {N' : Type'}, forall s1 : (cart R N') -> Prop, forall s2 : (cart R N') -> Prop, forall m1 : R, forall m2 : R, ((@has_measure N' s1 m1) /\ ((@has_measure N' s2 m2) /\ (@SUBSET (cart R N') s1 s2))) -> Rle m1 m2. +Axiom thm_MEASURE_SUBSET : forall {_1430639 : Type'}, forall s : (cart R _1430639) -> Prop, forall t : (cart R _1430639) -> Prop, ((@measurable _1430639 s) /\ ((@measurable _1430639 t) /\ (@SUBSET (cart R _1430639) s t))) -> Rle (@measure _1430639 s) (@measure _1430639 t). +Axiom thm_HAS_MEASURE_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@has_measure N' s (R_of_N (NUMERAL 0%N))) = (@negligible N' s). +Axiom thm_MEASURE_EQ_0 : forall {_1430767 : Type'}, forall s : (cart R _1430767) -> Prop, (@negligible _1430767 s) -> (@measure _1430767 s) = (R_of_N (NUMERAL 0%N)). +Axiom thm_NEGLIGIBLE_IMP_MEASURABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) -> @measurable N' s. +Axiom thm_HAS_MEASURE_EMPTY : forall {_1430789 : Type'}, @has_measure _1430789 (@EMPTY (cart R _1430789)) (R_of_N (NUMERAL 0%N)). +Axiom thm_MEASURE_EMPTY : forall {_1430798 : Type'}, (@measure _1430798 (@EMPTY (cart R _1430798))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_MEASURABLE_EMPTY : forall {_1430804 : Type'}, @measurable _1430804 (@EMPTY (cart R _1430804)). +Axiom thm_MEASURABLE_SING : forall {N' : Type'}, forall a : cart R N', @measurable N' (@INSERT (cart R N') a (@EMPTY (cart R N'))). +Axiom thm_MEASURABLE_MEASURE_EQ_0 : forall {_1430825 : Type'}, forall s : (cart R _1430825) -> Prop, (@measurable _1430825 s) -> ((@measure _1430825 s) = (R_of_N (NUMERAL 0%N))) = (@negligible _1430825 s). +Axiom thm_NEGLIGIBLE_EQ_MEASURE_0 : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = ((@measurable N' s) /\ ((@measure N' s) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_MEASURE_SING : forall {N' : Type'}, forall a : cart R N', (@measure N' (@INSERT (cart R N') a (@EMPTY (cart R N')))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_MEASURABLE_MEASURE_POS_LT : forall {_1430881 : Type'}, forall s : (cart R _1430881) -> Prop, (@measurable _1430881 s) -> (Rlt (R_of_N (NUMERAL 0%N)) (@measure _1430881 s)) = (~ (@negligible _1430881 s)). +Axiom thm_NEGLIGIBLE_INTERVAL : forall {_1430959 _1430963 : Type'}, (forall a : cart R _1430959, forall b : cart R _1430959, (@negligible _1430959 (@closed_interval _1430959 (@cons (prod (cart R _1430959) (cart R _1430959)) (@pair (cart R _1430959) (cart R _1430959) a b) (@nil (prod (cart R _1430959) (cart R _1430959)))))) = ((@open_interval _1430959 (@pair (cart R _1430959) (cart R _1430959) a b)) = (@EMPTY (cart R _1430959)))) /\ (forall a : cart R _1430963, forall b : cart R _1430963, (@negligible _1430963 (@open_interval _1430963 (@pair (cart R _1430963) (cart R _1430963) a b))) = ((@open_interval _1430963 (@pair (cart R _1430963) (cart R _1430963) a b)) = (@EMPTY (cart R _1430963)))). +Axiom thm_MEASURABLE_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @measurable N' s)) -> @measurable N' (@UNIONS (cart R N') f). +Axiom thm_HAS_MEASURE_DIFF_SUBSET : forall {_1431020 : Type'}, forall s1 : (cart R _1431020) -> Prop, forall s2 : (cart R _1431020) -> Prop, forall m1 : R, forall m2 : R, ((@has_measure _1431020 s1 m1) /\ ((@has_measure _1431020 s2 m2) /\ (@SUBSET (cart R _1431020) s2 s1))) -> @has_measure _1431020 (@DIFF (cart R _1431020) s1 s2) (Rminus m1 m2). +Axiom thm_MEASURABLE_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@measurable N' s) /\ (@measurable N' t)) -> @measurable N' (@DIFF (cart R N') s t). +Axiom thm_MEASURE_DIFF_SUBSET : forall {_1431114 : Type'}, forall s : (cart R _1431114) -> Prop, forall t : (cart R _1431114) -> Prop, ((@measurable _1431114 s) /\ ((@measurable _1431114 t) /\ (@SUBSET (cart R _1431114) t s))) -> (@measure _1431114 (@DIFF (cart R _1431114) s t)) = (Rminus (@measure _1431114 s) (@measure _1431114 t)). +Axiom thm_HAS_MEASURE_UNION_NEGLIGIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall m : R, ((@has_measure N' s m) /\ (@negligible N' t)) -> @has_measure N' (@UNION (cart R N') s t) m. +Axiom thm_HAS_MEASURE_DIFF_NEGLIGIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall m : R, ((@has_measure N' s m) /\ (@negligible N' t)) -> @has_measure N' (@DIFF (cart R N') s t) m. +Axiom thm_HAS_MEASURE_UNION_NEGLIGIBLE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall m : R, (@negligible N' t) -> (@has_measure N' (@UNION (cart R N') s t) m) = (@has_measure N' s m). +Axiom thm_HAS_MEASURE_DIFF_NEGLIGIBLE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall m : R, (@negligible N' t) -> (@has_measure N' (@DIFF (cart R N') s t) m) = (@has_measure N' s m). +Axiom thm_HAS_MEASURE_ALMOST : forall {_1431368 : Type'}, forall s : (cart R _1431368) -> Prop, forall s' : (cart R _1431368) -> Prop, forall t : (cart R _1431368) -> Prop, forall m : R, ((@has_measure _1431368 s m) /\ ((@negligible _1431368 t) /\ ((@UNION (cart R _1431368) s t) = (@UNION (cart R _1431368) s' t)))) -> @has_measure _1431368 s' m. +Axiom thm_HAS_MEASURE_ALMOST_EQ : forall {_1431404 : Type'} (m : R), forall s : (cart R _1431404) -> Prop, forall s' : (cart R _1431404) -> Prop, forall t : (cart R _1431404) -> Prop, ((@negligible _1431404 t) /\ ((@UNION (cart R _1431404) s t) = (@UNION (cart R _1431404) s' t))) -> (@has_measure _1431404 s m) = (@has_measure _1431404 s' m). +Axiom thm_MEASURABLE_ALMOST : forall {_1431438 : Type'}, forall s : (cart R _1431438) -> Prop, forall s' : (cart R _1431438) -> Prop, forall t : (cart R _1431438) -> Prop, ((@measurable _1431438 s) /\ ((@negligible _1431438 t) /\ ((@UNION (cart R _1431438) s t) = (@UNION (cart R _1431438) s' t)))) -> @measurable _1431438 s'. +Axiom thm_HAS_MEASURE_NEGLIGIBLE_UNION : forall {N' : Type'}, forall s1 : (cart R N') -> Prop, forall s2 : (cart R N') -> Prop, forall m1 : R, forall m2 : R, ((@has_measure N' s1 m1) /\ ((@has_measure N' s2 m2) /\ (@negligible N' (@INTER (cart R N') s1 s2)))) -> @has_measure N' (@UNION (cart R N') s1 s2) (Rplus m1 m2). +Axiom thm_MEASURE_NEGLIGIBLE_UNION : forall {_1431526 : Type'}, forall s : (cart R _1431526) -> Prop, forall t : (cart R _1431526) -> Prop, ((@measurable _1431526 s) /\ ((@measurable _1431526 t) /\ (@negligible _1431526 (@INTER (cart R _1431526) s t)))) -> (@measure _1431526 (@UNION (cart R _1431526) s t)) = (Rplus (@measure _1431526 s) (@measure _1431526 t)). +Axiom thm_MEASURE_NEGLIGIBLE_UNION_EQ : forall {_1431594 : Type'}, forall s : (cart R _1431594) -> Prop, forall t : (cart R _1431594) -> Prop, forall u : (cart R _1431594) -> Prop, ((@measurable _1431594 s) /\ ((@measurable _1431594 t) /\ (((@UNION (cart R _1431594) s t) = u) /\ (@negligible _1431594 (@INTER (cart R _1431594) s t))))) -> (Rplus (@measure _1431594 s) (@measure _1431594 t)) = (@measure _1431594 u). +Axiom thm_HAS_MEASURE_NEGLIGIBLE_SYMDIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall m : R, ((@has_measure N' s m) /\ (@negligible N' (@UNION (cart R N') (@DIFF (cart R N') s t) (@DIFF (cart R N') t s)))) -> @has_measure N' t m. +Axiom thm_MEASURABLE_NEGLIGIBLE_SYMDIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@measurable N' s) /\ (@negligible N' (@UNION (cart R N') (@DIFF (cart R N') s t) (@DIFF (cart R N') t s)))) -> @measurable N' t. +Axiom thm_MEASURABLE_NEGLIGIBLE_SYMDIFF_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@negligible N' (@UNION (cart R N') (@DIFF (cart R N') s t) (@DIFF (cart R N') t s))) -> (@measurable N' s) = (@measurable N' t). +Axiom thm_MEASURE_NEGLIGIBLE_SYMDIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@negligible N' (@UNION (cart R N') (@DIFF (cart R N') s t) (@DIFF (cart R N') t s))) -> (@measure N' s) = (@measure N' t). +Axiom thm_NEGLIGIBLE_SYMDIFF_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@negligible N' (@UNION (cart R N') (@DIFF (cart R N') s t) (@DIFF (cart R N') t s))) -> (@negligible N' s) = (@negligible N' t). +Axiom thm_NEGLIGIBLE_DELETE : forall {N' : Type'} (s : (cart R N') -> Prop), forall a : cart R N', (@negligible N' (@DELETE (cart R N') s a)) = (@negligible N' s). +Axiom thm_HAS_MEASURE_NEGLIGIBLE_UNIONS : forall {N' : Type'}, forall m : ((cart R N') -> Prop) -> R, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @has_measure N' s (m s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ ((@IN ((cart R N') -> Prop) t f) /\ (~ (s = t)))) -> @negligible N' (@INTER (cart R N') s t)))) -> @has_measure N' (@UNIONS (cart R N') f) (@sum ((cart R N') -> Prop) f m). +Axiom thm_MEASURE_NEGLIGIBLE_UNIONS : forall {N' : Type'}, forall m : ((cart R N') -> Prop) -> R, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @has_measure N' s (m s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ ((@IN ((cart R N') -> Prop) t f) /\ (~ (s = t)))) -> @negligible N' (@INTER (cart R N') s t)))) -> (@measure N' (@UNIONS (cart R N') f)) = (@sum ((cart R N') -> Prop) f m). +Axiom thm_HAS_MEASURE_DISJOINT_UNIONS : forall {N' : Type'}, forall m : ((cart R N') -> Prop) -> R, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @has_measure N' s (m s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ ((@IN ((cart R N') -> Prop) t f) /\ (~ (s = t)))) -> @DISJOINT (cart R N') s t))) -> @has_measure N' (@UNIONS (cart R N') f) (@sum ((cart R N') -> Prop) f m). +Axiom thm_MEASURE_DISJOINT_UNIONS : forall {N' : Type'}, forall m : ((cart R N') -> Prop) -> R, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ ((forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @has_measure N' s (m s)) /\ (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) s f) /\ ((@IN ((cart R N') -> Prop) t f) /\ (~ (s = t)))) -> @DISJOINT (cart R N') s t))) -> (@measure N' (@UNIONS (cart R N') f)) = (@sum ((cart R N') -> Prop) f m). +Axiom thm_HAS_MEASURE_NEGLIGIBLE_UNIONS_IMAGE : forall {A N' : Type'}, forall f : A -> (cart R N') -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> @measurable N' (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @negligible N' (@INTER (cart R N') (f x) (f y))))) -> @has_measure N' (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) f s)) (@sum A s (fun x : A => @measure N' (f x))). +Axiom thm_MEASURE_NEGLIGIBLE_UNIONS_IMAGE : forall {A N' : Type'}, forall f : A -> (cart R N') -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> @measurable N' (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @negligible N' (@INTER (cart R N') (f x) (f y))))) -> (@measure N' (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) f s))) = (@sum A s (fun x : A => @measure N' (f x))). +Axiom thm_HAS_MEASURE_DISJOINT_UNIONS_IMAGE : forall {A N' : Type'}, forall f : A -> (cart R N') -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> @measurable N' (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @DISJOINT (cart R N') (f x) (f y)))) -> @has_measure N' (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) f s)) (@sum A s (fun x : A => @measure N' (f x))). +Axiom thm_MEASURE_DISJOINT_UNIONS_IMAGE : forall {A N' : Type'}, forall f : A -> (cart R N') -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> @measurable N' (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @DISJOINT (cart R N') (f x) (f y)))) -> (@measure N' (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) f s))) = (@sum A s (fun x : A => @measure N' (f x))). +Axiom thm_HAS_MEASURE_NEGLIGIBLE_UNIONS_IMAGE_STRONG : forall {A N' : Type'}, forall f : A -> (cart R N') -> Prop, forall s : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_6447 : A => exists x : A, @SETSPEC A GEN_PVAR_6447 ((@IN A x s) /\ (~ ((f x) = (@EMPTY (cart R N'))))) x))) /\ ((forall x : A, (@IN A x s) -> @measurable N' (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @negligible N' (@INTER (cart R N') (f x) (f y))))) -> @has_measure N' (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) f s)) (@sum A s (fun x : A => @measure N' (f x))). +Axiom thm_MEASURE_NEGLIGIBLE_UNIONS_IMAGE_STRONG : forall {A N' : Type'}, forall f : A -> (cart R N') -> Prop, forall s : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_6448 : A => exists x : A, @SETSPEC A GEN_PVAR_6448 ((@IN A x s) /\ (~ ((f x) = (@EMPTY (cart R N'))))) x))) /\ ((forall x : A, (@IN A x s) -> @measurable N' (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @negligible N' (@INTER (cart R N') (f x) (f y))))) -> (@measure N' (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) f s))) = (@sum A s (fun x : A => @measure N' (f x))). +Axiom thm_HAS_MEASURE_DISJOINT_UNIONS_IMAGE_STRONG : forall {A N' : Type'}, forall f : A -> (cart R N') -> Prop, forall s : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_6449 : A => exists x : A, @SETSPEC A GEN_PVAR_6449 ((@IN A x s) /\ (~ ((f x) = (@EMPTY (cart R N'))))) x))) /\ ((forall x : A, (@IN A x s) -> @measurable N' (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @DISJOINT (cart R N') (f x) (f y)))) -> @has_measure N' (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) f s)) (@sum A s (fun x : A => @measure N' (f x))). +Axiom thm_MEASURE_DISJOINT_UNIONS_IMAGE_STRONG : forall {A N' : Type'}, forall f : A -> (cart R N') -> Prop, forall s : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_6450 : A => exists x : A, @SETSPEC A GEN_PVAR_6450 ((@IN A x s) /\ (~ ((f x) = (@EMPTY (cart R N'))))) x))) /\ ((forall x : A, (@IN A x s) -> @measurable N' (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @DISJOINT (cart R N') (f x) (f y)))) -> (@measure N' (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) f s))) = (@sum A s (fun x : A => @measure N' (f x))). +Axiom thm_MEASURE_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@measurable N' s) /\ (@measurable N' t)) -> (@measure N' (@UNION (cart R N') s t)) = (Rplus (@measure N' s) (Rminus (@measure N' t) (@measure N' (@INTER (cart R N') s t)))). +Axiom thm_MEASURE_UNION_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@measurable N' s) /\ (@measurable N' t)) -> Rle (@measure N' (@UNION (cart R N') s t)) (Rplus (@measure N' s) (@measure N' t)). +Axiom thm_MEASURE_UNIONS_LE : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @measurable N' s)) -> Rle (@measure N' (@UNIONS (cart R N') f)) (@sum ((cart R N') -> Prop) f (fun s : (cart R N') -> Prop => @measure N' s)). +Axiom thm_MEASURABLE_INSERT : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@measurable N' (@INSERT (cart R N') x s)) = (@measurable N' s). +Axiom thm_MEASURABLE_DELETE : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@measurable N' (@DELETE (cart R N') s x)) = (@measurable N' s). +Axiom thm_MEASURE_INSERT : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@measure N' (@INSERT (cart R N') x s)) = (@measure N' s). +Axiom thm_MEASURE_DELETE : forall {N' : Type'}, forall x : cart R N', forall s : (cart R N') -> Prop, (@measure N' (@DELETE (cart R N') s x)) = (@measure N' s). +Axiom thm_MEASURE_UNIONS_LE_IMAGE : forall {A N' : Type'}, forall f : A -> Prop, forall s : A -> (cart R N') -> Prop, ((@FINITE A f) /\ (forall a : A, (@IN A a f) -> @measurable N' (s a))) -> Rle (@measure N' (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) s f))) (@sum A f (fun a : A => @measure N' (s a))). +Axiom thm_MEASURE_SUB_LE_MEASURE_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@measurable N' s) /\ (@measurable N' t)) -> Rle (Rminus (@measure N' s) (@measure N' t)) (@measure N' (@DIFF (cart R N') s t)). +Axiom thm_MEASURE_SUB_LE_MEASURE_SYMDIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@measurable N' s) /\ (@measurable N' t)) -> Rle (Rabs (Rminus (@measure N' s) (@measure N' t))) (@measure N' (@UNION (cart R N') (@DIFF (cart R N') s t) (@DIFF (cart R N') t s))). +Axiom thm_MEASURABLE_INNER_OUTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@measurable N' s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, (@SUBSET (cart R N') t s) /\ ((@SUBSET (cart R N') s u) /\ ((@measurable N' t) /\ ((@measurable N' u) /\ (Rlt (Rabs (Rminus (@measure N' t) (@measure N' u))) e))))). +Axiom thm_HAS_MEASURE_INNER_OUTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, (@has_measure N' s m) = ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists t : (cart R N') -> Prop, (@SUBSET (cart R N') t s) /\ ((@measurable N' t) /\ (Rlt (Rminus m e) (@measure N' t)))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists u : (cart R N') -> Prop, (@SUBSET (cart R N') s u) /\ ((@measurable N' u) /\ (Rlt (@measure N' u) (Rplus m e))))). +Axiom thm_HAS_MEASURE_INNER_OUTER_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, (@has_measure N' s m) = ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists t : (cart R N') -> Prop, (@SUBSET (cart R N') t s) /\ ((@measurable N' t) /\ (Rle (Rminus m e) (@measure N' t)))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists u : (cart R N') -> Prop, (@SUBSET (cart R N') s u) /\ ((@measurable N' u) /\ (Rle (@measure N' u) (Rplus m e))))). +Axiom thm_NEGLIGIBLE_OUTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) /\ ((@measurable N' t) /\ (Rlt (@measure N' t) e))). +Axiom thm_NEGLIGIBLE_OUTER_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) /\ ((@measurable N' t) /\ (Rle (@measure N' t) e))). +Axiom thm_HAS_MEASURE_LIMIT : forall {_1433975 : Type'} (m : R), forall s : (cart R _1433975) -> Prop, (@has_measure _1433975 s m) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall a : cart R _1433975, forall b : cart R _1433975, (@SUBSET (cart R _1433975) (@ball _1433975 (@pair (cart R _1433975) R (@vec _1433975 (NUMERAL 0%N)) B)) (@closed_interval _1433975 (@cons (prod (cart R _1433975) (cart R _1433975)) (@pair (cart R _1433975) (cart R _1433975) a b) (@nil (prod (cart R _1433975) (cart R _1433975)))))) -> exists z : R, (@has_measure _1433975 (@INTER (cart R _1433975) s (@closed_interval _1433975 (@cons (prod (cart R _1433975) (cart R _1433975)) (@pair (cart R _1433975) (cart R _1433975) a b) (@nil (prod (cart R _1433975) (cart R _1433975)))))) z) /\ (Rlt (Rabs (Rminus z m)) e))). +Axiom thm_MEASURE_LIMIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@measurable N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall a : cart R N', forall b : cart R N', (@SUBSET (cart R N') (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) B)) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) -> Rlt (Rabs (Rminus (@measure N' (@INTER (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) (@measure N' s))) e). +Axiom thm_INTEGRABLE_ON_CONST : forall {M N' : Type'} (s : (cart R M) -> Prop), forall c : cart R N', (@integrable_on N' M (fun x : cart R M => c) s) = ((c = (@vec N' (NUMERAL 0%N))) \/ (@measurable M s)). +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_CONST : forall {_1434146 _1434155 : Type'} (s : (cart R _1434146) -> Prop), forall c : cart R _1434155, (@absolutely_integrable_on _1434155 _1434146 (fun x : cart R _1434146 => c) s) = ((c = (@vec _1434155 (NUMERAL 0%N))) \/ (@measurable _1434146 s)). +Axiom thm_HAS_INTEGRAL_CONST_GEN : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall c : cart R N', (@measurable M s) -> @has_integral M N' (fun x : cart R M => c) (@percent N' (@measure M s) c) s. +Axiom thm_INTEGRAL_CONST_GEN : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall c : cart R N', (@measurable M s) -> (@integral N' M s (fun x : cart R M => c)) = (@percent N' (@measure M s) c). +Axiom thm_OPEN_NOT_NEGLIGIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (~ (s = (@EMPTY (cart R N'))))) -> ~ (@negligible N' s). +Axiom thm_NOT_NEGLIGIBLE_UNIV : forall {N' : Type'}, ~ (@negligible N' (@UNIV (cart R N'))). +Axiom thm_NEGLIGIBLE_EMPTY_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) -> (@interior N' s) = (@EMPTY (cart R N')). +Axiom thm_HAS_INTEGRAL_NEGLIGIBLE_EQ_AE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@negligible M t) /\ (forall x : cart R M, forall i : N, ((@IN (cart R M) x (@DIFF (cart R M) s t)) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' (f x) i))) -> (@has_integral M N' f (@vec N' (NUMERAL 0%N)) s) = (@negligible M (@GSPEC (cart R M) (fun GEN_PVAR_6451 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6451 ((@IN (cart R M) x s) /\ (~ ((f x) = (@vec N' (NUMERAL 0%N))))) x))). +Axiom thm_HAS_MEASURE_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', forall y : R, (@has_measure N' s y) -> @has_measure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s) (Rmult (real_pow (Rabs m) (@dimindex N' (@UNIV N'))) y). +Axiom thm_STRETCH_GALOIS : forall {N' : Type'}, forall x : cart R N', forall y : cart R N', forall m : N -> R, (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> ~ ((m k) = (R_of_N (NUMERAL 0%N)))) -> (y = (@lambda R N' (fun k : N => Rmult (m k) (@dollar R N' x k)))) = ((@lambda R N' (fun k : N => Rmult (Rinv (m k)) (@dollar R N' y k))) = x). +Axiom thm_HAS_MEASURE_STRETCH : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : N -> R, forall y : R, (@has_measure N' s y) -> @has_measure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @lambda R N' (fun k : N => Rmult (m k) (@dollar R N' x k))) s) (Rmult (Rabs (@product N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) m)) y). +Axiom thm_HAS_MEASURE_TRANSLATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall a : cart R N', (@has_measure N' s m) -> @has_measure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) m. +Axiom thm_NEGLIGIBLE_TRANSLATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@negligible N' s) -> @negligible N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_HAS_MEASURE_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, forall m : R, (@has_measure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) m) = (@has_measure N' s m). +Axiom thm_MEASURE_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@measure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@measure N' s). +Axiom thm_NEGLIGIBLE_TRANSLATION_REV : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@negligible N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) -> @negligible N' s. +Axiom thm_NEGLIGIBLE_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@negligible N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@negligible N' s). +Axiom thm_MEASURABLE_TRANSLATION_EQ : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@measurable N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@measurable N' s). +Axiom thm_MEASURABLE_TRANSLATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@measurable N' s) -> @measurable N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s). +Axiom thm_HAS_MEASURE_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : R, (@has_measure N' s m) -> @has_measure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s) (Rmult (real_pow (Rabs c) (@dimindex N' (@UNIV N'))) m). +Axiom thm_HAS_MEASURE_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : R, (~ (c = (R_of_N (NUMERAL 0%N)))) -> (@has_measure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s) (Rmult (real_pow (Rabs c) (@dimindex N' (@UNIV N'))) m)) = (@has_measure N' s m). +Axiom thm_MEASURABLE_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@measurable N' s) -> @measurable N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s). +Axiom thm_MEASURABLE_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@measurable N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@measurable N' s)). +Axiom thm_MEASURABLE_AFFINITY_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@measurable N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = ((m = (R_of_N (NUMERAL 0%N))) \/ (@measurable N' s)). +Axiom thm_MEASURABLE_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@measurable N' s) -> @measurable N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s). +Axiom thm_MEASURE_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@measurable N' s) -> (@measure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = (Rmult (real_pow (Rabs c) (@dimindex N' (@UNIV N'))) (@measure N' s)). +Axiom thm_MEASURE_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@measurable N' s) -> (@measure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = (Rmult (real_pow (Rabs m) (@dimindex N' (@UNIV N'))) (@measure N' s)). +Axiom thm_NEGLIGIBLE_SCALING : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@negligible N' s) -> @negligible N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s). +Axiom thm_NEGLIGIBLE_SCALING_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : R, (@negligible N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' c x) s)) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@negligible N' s)). +Axiom thm_NEGLIGIBLE_AFFINITY_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@negligible N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s)) = ((m = (R_of_N (NUMERAL 0%N))) \/ (@negligible N' s)). +Axiom thm_NEGLIGIBLE_AFFINITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, forall c : cart R N', (@negligible N' s) -> @negligible N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' m x) c) s). +Axiom thm_NOT_MEASURABLE_UNIV : forall {N' : Type'}, ~ (@measurable N' (@UNIV (cart R N'))). +Axiom thm_HAS_MEASURE_NESTED_UNIONS : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, forall B : R, ((forall n : N, @measurable N' (s n)) /\ ((forall n : N, Rle (@measure N' (s n)) B) /\ (forall n : N, @SUBSET (cart R N') (s n) (s (N.succ n))))) -> (@measurable N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6453 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6453 (@IN N n (@UNIV N)) (s n))))) /\ (@FImp unit N (fun n : N => lift (@measure N' (s n))) (lift (@measure N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6454 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6454 (@IN N n (@UNIV N)) (s n)))))) sequentially). +Axiom thm_MEASURABLE_NESTED_UNIONS : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, forall B : R, ((forall n : N, @measurable N' (s n)) /\ ((forall n : N, Rle (@measure N' (s n)) B) /\ (forall n : N, @SUBSET (cart R N') (s n) (s (N.succ n))))) -> @measurable N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6455 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6455 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_HAS_MEASURE_COUNTABLE_NEGLIGIBLE_UNIONS : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, forall B : R, ((forall n : N, @measurable N' (s n)) /\ ((forall m : N, forall n : N, (~ (m = n)) -> @negligible N' (@INTER (cart R N') (s m) (s n))) /\ (forall n : N, Rle (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => @measure N' (s k))) B))) -> (@measurable N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6457 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6457 (@IN N n (@UNIV N)) (s n))))) /\ (@sums unit (fun n : N => lift (@measure N' (s n))) (lift (@measure N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6458 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6458 (@IN N n (@UNIV N)) (s n)))))) (from (NUMERAL 0%N))). +Axiom thm_NEGLIGIBLE_COUNTABLE_UNIONS_GEN : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) f) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @negligible N' s)) -> @negligible N' (@UNIONS (cart R N') f). +Axiom thm_HAS_MEASURE_COUNTABLE_NEGLIGIBLE_UNIONS_BOUNDED : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, ((forall n : N, @measurable N' (s n)) /\ ((forall m : N, forall n : N, (~ (m = n)) -> @negligible N' (@INTER (cart R N') (s m) (s n))) /\ (@bounded N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6459 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6459 (@IN N n (@UNIV N)) (s n))))))) -> (@measurable N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6460 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6460 (@IN N n (@UNIV N)) (s n))))) /\ (@sums unit (fun n : N => lift (@measure N' (s n))) (lift (@measure N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6461 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6461 (@IN N n (@UNIV N)) (s n)))))) (from (NUMERAL 0%N))). +Axiom thm_MEASURABLE_COUNTABLE_UNIONS_BOUNDED : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, ((forall n : N, @measurable N' (s n)) /\ (@bounded N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6466 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6466 (@IN N n (@UNIV N)) (s n)))))) -> @measurable N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6467 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6467 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_MEASURE_COUNTABLE_UNIONS_LE_STRONG : forall {N' : Type'}, forall d : N -> (cart R N') -> Prop, forall B : R, ((forall n : N, @measurable N' (d n)) /\ (forall n : N, Rle (@measure N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6474 : (cart R N') -> Prop => exists k : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6474 (N.le k n) (d k))))) B)) -> (@measurable N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6475 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6475 (@IN N n (@UNIV N)) (d n))))) /\ (Rle (@measure N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6476 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6476 (@IN N n (@UNIV N)) (d n))))) B). +Axiom thm_MEASURE_COUNTABLE_UNIONS_LE : forall {N' : Type'}, forall d : N -> (cart R N') -> Prop, forall B : R, ((forall n : N, @measurable N' (d n)) /\ (forall n : N, Rle (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => @measure N' (d k))) B)) -> (@measurable N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6477 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6477 (@IN N n (@UNIV N)) (d n))))) /\ (Rle (@measure N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6478 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6478 (@IN N n (@UNIV N)) (d n))))) B). +Axiom thm_MEASURABLE_COUNTABLE_UNIONS_STRONG : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, forall B : R, ((forall n : N, @measurable N' (s n)) /\ (forall n : N, Rle (@measure N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6479 : (cart R N') -> Prop => exists k : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6479 (N.le k n) (s k))))) B)) -> @measurable N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6480 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6480 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_MEASURABLE_COUNTABLE_UNIONS : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, forall B : R, ((forall n : N, @measurable N' (s n)) /\ (forall n : N, Rle (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => @measure N' (s k))) B)) -> @measurable N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6481 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6481 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_MEASURE_COUNTABLE_UNIONS_LE_STRONG_GEN : forall {N' : Type'}, forall D : ((cart R N') -> Prop) -> Prop, forall B : R, ((@COUNTABLE ((cart R N') -> Prop) D) /\ ((forall d : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) d D) -> @measurable N' d) /\ (forall D' : ((cart R N') -> Prop) -> Prop, ((@SUBSET ((cart R N') -> Prop) D' D) /\ (@FINITE ((cart R N') -> Prop) D')) -> Rle (@measure N' (@UNIONS (cart R N') D')) B))) -> (@measurable N' (@UNIONS (cart R N') D)) /\ (Rle (@measure N' (@UNIONS (cart R N') D)) B). +Axiom thm_MEASURE_COUNTABLE_UNIONS_LE_GEN : forall {N' : Type'}, forall D : ((cart R N') -> Prop) -> Prop, forall B : R, ((@COUNTABLE ((cart R N') -> Prop) D) /\ ((forall d : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) d D) -> @measurable N' d) /\ (forall D' : ((cart R N') -> Prop) -> Prop, ((@SUBSET ((cart R N') -> Prop) D' D) /\ (@FINITE ((cart R N') -> Prop) D')) -> Rle (@sum ((cart R N') -> Prop) D' (fun d : (cart R N') -> Prop => @measure N' d)) B))) -> (@measurable N' (@UNIONS (cart R N') D)) /\ (Rle (@measure N' (@UNIONS (cart R N') D)) B). +Axiom thm_MEASURABLE_COUNTABLE_INTERS : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, (forall n : N, @measurable N' (s n)) -> @measurable N' (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6485 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6485 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_MEASURABLE_COUNTABLE_INTERS_GEN : forall {N' : Type'}, forall D : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) D) /\ ((~ (D = (@EMPTY ((cart R N') -> Prop)))) /\ (forall d : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) d D) -> @measurable N' d))) -> @measurable N' (@INTERS (cart R N') D). +Axiom thm_MEASURE_COUNTABLE_UNIONS_APPROACHABLE : forall {N' : Type'}, forall D : ((cart R N') -> Prop) -> Prop, forall B : R, forall e : R, ((@COUNTABLE ((cart R N') -> Prop) D) /\ ((forall d : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) d D) -> @measurable N' d) /\ ((forall D' : ((cart R N') -> Prop) -> Prop, ((@SUBSET ((cart R N') -> Prop) D' D) /\ (@FINITE ((cart R N') -> Prop) D')) -> Rle (@measure N' (@UNIONS (cart R N') D')) B) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)))) -> exists D' : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) D' D) /\ ((@FINITE ((cart R N') -> Prop) D') /\ (Rlt (Rminus (@measure N' (@UNIONS (cart R N') D)) e) (@measure N' (@UNIONS (cart R N') D')))). +Axiom thm_HAS_MEASURE_NESTED_INTERS : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, ((forall n : N, @measurable N' (s n)) /\ (forall n : N, @SUBSET (cart R N') (s (N.succ n)) (s n))) -> (@measurable N' (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6494 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6494 (@IN N n (@UNIV N)) (s n))))) /\ (@FImp unit N (fun n : N => lift (@measure N' (s n))) (lift (@measure N' (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6495 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6495 (@IN N n (@UNIV N)) (s n)))))) sequentially). +Axiom thm_INTEGRAL_ZERO_ON_SUBINTERVALS_IMP_ZERO_AE_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall a : cart R M, forall b : cart R M, @has_integral M N' f (@vec N' (NUMERAL 0%N)) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_6499 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6499 (~ ((f x) = (@vec N' (NUMERAL 0%N)))) x)). +Axiom thm_MEASURABLE_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> @measurable N' s. +Axiom thm_MEASURABLE_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@_open N' s)) -> @measurable N' s. +Axiom thm_MEASURE_OPEN_POS_LT : forall {_1439223 : Type'}, forall s : (cart R _1439223) -> Prop, ((@_open _1439223 s) /\ ((@bounded _1439223 s) /\ (~ (s = (@EMPTY (cart R _1439223)))))) -> Rlt (R_of_N (NUMERAL 0%N)) (@measure _1439223 s). +Axiom thm_MEASURE_OPEN_POS_LT_EQ : forall {_1439250 : Type'}, forall s : (cart R _1439250) -> Prop, ((@_open _1439250 s) /\ (@bounded _1439250 s)) -> (Rlt (R_of_N (NUMERAL 0%N)) (@measure _1439250 s)) = (~ (s = (@EMPTY (cart R _1439250)))). +Axiom thm_MEASURABLE_CLOSURE : forall {_1439275 : Type'}, forall s : (cart R _1439275) -> Prop, (@bounded _1439275 s) -> @measurable _1439275 (@closure _1439275 s). +Axiom thm_MEASURABLE_INTERIOR : forall {_1439288 : Type'}, forall s : (cart R _1439288) -> Prop, (@bounded _1439288 s) -> @measurable _1439288 (@interior _1439288 s). +Axiom thm_MEASURABLE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> @measurable N' (@frontier N' s). +Axiom thm_MEASURE_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> (@measure N' (@frontier N' s)) = (Rminus (@measure N' (@closure N' s)) (@measure N' (@interior N' s))). +Axiom thm_MEASURE_CLOSURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@negligible N' (@frontier N' s))) -> (@measure N' (@closure N' s)) = (@measure N' s). +Axiom thm_MEASURE_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@negligible N' (@frontier N' s))) -> (@measure N' (@interior N' s)) = (@measure N' s). +Axiom thm_MEASURABLE_JORDAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ (@negligible N' (@frontier N' s))) -> @measurable N' s. +Axiom thm_HAS_MEASURE_ELEMENTARY : forall {_1439430 : Type'}, forall d : ((cart R _1439430) -> Prop) -> Prop, forall s : (cart R _1439430) -> Prop, (@division_of _1439430 d s) -> @has_measure _1439430 s (@sum ((cart R _1439430) -> Prop) d (@content _1439430)). +Axiom thm_MEASURABLE_ELEMENTARY : forall {_1439444 : Type'}, forall d : ((cart R _1439444) -> Prop) -> Prop, forall s : (cart R _1439444) -> Prop, (@division_of _1439444 d s) -> @measurable _1439444 s. +Axiom thm_MEASURE_ELEMENTARY : forall {_1439469 : Type'}, forall d : ((cart R _1439469) -> Prop) -> Prop, forall s : (cart R _1439469) -> Prop, (@division_of _1439469 d s) -> (@measure _1439469 s) = (@sum ((cart R _1439469) -> Prop) d (@content _1439469)). +Axiom thm_MEASURABLE_INTER_INTERVAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@measurable N' s) -> @measurable N' (@INTER (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_MEASURABLE_INSIDE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> @measurable N' (@inside N' s). +Axiom thm_PART_MEASURES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall m : R, ((@measurable N' s) /\ ((Rle (R_of_N (NUMERAL 0%N)) m) /\ (Rle m (@measure N' s)))) -> exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, (@DISJOINT (cart R N') t u) /\ (((@UNION (cart R N') t u) = s) /\ ((@measurable N' t) /\ (((@measure N' t) = m) /\ ((@measurable N' u) /\ ((@measure N' u) = (Rminus (@measure N' s) m)))))). +Axiom thm_HALF_MEASURES : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@measurable N' s) -> exists t : (cart R N') -> Prop, exists u : (cart R N') -> Prop, (@DISJOINT (cart R N') t u) /\ (((@UNION (cart R N') t u) = s) /\ ((@measurable N' t) /\ (((@measure N' t) = (Rdiv (@measure N' s) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((@measurable N' u) /\ ((@measure N' u) = (Rdiv (@measure N' s) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))))). +Axiom thm_MULTIPART_MEASURES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall n : N, ((@measurable N' s) /\ (~ (n = (NUMERAL 0%N)))) -> exists f : ((cart R N') -> Prop) -> Prop, (@FINITE ((cart R N') -> Prop) f) /\ ((N.le (@CARD ((cart R N') -> Prop) f) n) /\ ((@pairwise ((cart R N') -> Prop) (@DISJOINT (cart R N')) f) /\ (((@UNIONS (cart R N') f) = s) /\ (forall t : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) t f) -> (@SUBSET (cart R N') t s) /\ ((@measurable N' t) /\ ((@measure N' t) = (Rdiv (@measure N' s) (R_of_N n)))))))). +Axiom thm_STARLIKE_NEGLIGIBLE_BOUNDED_MEASURABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@measurable N' s) /\ ((@bounded N' s) /\ (forall c : R, forall x : cart R N', ((Rle (R_of_N (NUMERAL 0%N)) c) /\ ((@IN (cart R N') x s) /\ (@IN (cart R N') (@percent N' c x) s))) -> c = (R_of_N (NUMERAL (BIT1 0%N)))))) -> @negligible N' s. +Axiom thm_STARLIKE_NEGLIGIBLE_LEMMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (forall c : R, forall x : cart R N', ((Rle (R_of_N (NUMERAL 0%N)) c) /\ ((@IN (cart R N') x s) /\ (@IN (cart R N') (@percent N' c x) s))) -> c = (R_of_N (NUMERAL (BIT1 0%N))))) -> @negligible N' s. +Axiom thm_STARLIKE_NEGLIGIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@closed N' s) /\ (forall c : R, forall x : cart R N', ((Rle (R_of_N (NUMERAL 0%N)) c) /\ ((@IN (cart R N') (@vector_add N' a x) s) /\ (@IN (cart R N') (@vector_add N' a (@percent N' c x)) s))) -> c = (R_of_N (NUMERAL (BIT1 0%N))))) -> @negligible N' s. +Axiom thm_STARLIKE_NEGLIGIBLE_STRONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@closed N' s) /\ (forall c : R, forall x : cart R N', ((Rle (R_of_N (NUMERAL 0%N)) c) /\ ((Rlt c (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@IN (cart R N') (@vector_add N' a x) s))) -> ~ (@IN (cart R N') (@vector_add N' a (@percent N' c x)) s))) -> @negligible N' s. +Axiom thm_NEGLIGIBLE_HYPERPLANE : forall {N' : Type'}, forall a : cart R N', forall b : R, (~ ((a = (@vec N' (NUMERAL 0%N))) /\ (b = (R_of_N (NUMERAL 0%N))))) -> @negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_6511 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6511 ((@dot N' a x) = b) x)). +Axiom thm_NEGLIGIBLE_LOWDIM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (N.lt (@dim N' s) (@dimindex N' (@UNIV N'))) -> @negligible N' s. +Axiom thm_NEGLIGIBLE_AFFINE_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ (N.le (@CARD (cart R N') s) (@dimindex N' (@UNIV N')))) -> @negligible N' (@hull (cart R N') (@affine N') s). +Axiom thm_NEGLIGIBLE_AFFINE_HULL_1 : forall a : cart R unit, @negligible unit (@hull (cart R unit) (@affine unit) (@INSERT (cart R unit) a (@EMPTY (cart R unit)))). +Axiom thm_NEGLIGIBLE_AFFINE_HULL_2 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), @negligible (tybit0 unit) (@hull (cart R (tybit0 unit)) (@affine (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))). +Axiom thm_NEGLIGIBLE_AFFINE_HULL_3 : forall a : cart R (tybit1 unit), forall b : cart R (tybit1 unit), forall c : cart R (tybit1 unit), @negligible (tybit1 unit) (@hull (cart R (tybit1 unit)) (@affine (tybit1 unit)) (@INSERT (cart R (tybit1 unit)) a (@INSERT (cart R (tybit1 unit)) b (@INSERT (cart R (tybit1 unit)) c (@EMPTY (cart R (tybit1 unit))))))). +Axiom thm_NEGLIGIBLE_CONVEX_HULL : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@FINITE (cart R N') s) /\ (N.le (@CARD (cart R N') s) (@dimindex N' (@UNIV N')))) -> @negligible N' (@hull (cart R N') (@convex N') s). +Axiom thm_NEGLIGIBLE_CONVEX_HULL_1 : forall a : cart R unit, @negligible unit (@hull (cart R unit) (@convex unit) (@INSERT (cart R unit) a (@EMPTY (cart R unit)))). +Axiom thm_NEGLIGIBLE_CONVEX_HULL_2 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), @negligible (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))). +Axiom thm_NEGLIGIBLE_CONVEX_HULL_3 : forall a : cart R (tybit1 unit), forall b : cart R (tybit1 unit), forall c : cart R (tybit1 unit), @negligible (tybit1 unit) (@hull (cart R (tybit1 unit)) (@convex (tybit1 unit)) (@INSERT (cart R (tybit1 unit)) a (@INSERT (cart R (tybit1 unit)) b (@INSERT (cart R (tybit1 unit)) c (@EMPTY (cart R (tybit1 unit))))))). +Axiom thm_NEGLIGIBLE_CONVEX_FRONTIER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @negligible N' (@frontier N' s). +Axiom thm_MEASURABLE_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (@bounded N' s)) -> @measurable N' s. +Axiom thm_NEGLIGIBLE_CONVEX_INTERIOR : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@negligible N' s) = ((@interior N' s) = (@EMPTY (cart R N'))). +Axiom thm_NEGLIGIBLE_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, @negligible N' (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_MEASURABLE_BALL : forall {_1442168 : Type'}, forall a : cart R _1442168, forall r : R, @measurable _1442168 (@ball _1442168 (@pair (cart R _1442168) R a r)). +Axiom thm_MEASURABLE_CBALL : forall {_1442185 : Type'}, forall a : cart R _1442185, forall r : R, @measurable _1442185 (@cball _1442185 (@pair (cart R _1442185) R a r)). +Axiom thm_MEASURE_BALL_POS : forall {N' : Type'}, forall x : cart R N', forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) (@measure N' (@ball N' (@pair (cart R N') R x e)))) = (Rlt (R_of_N (NUMERAL 0%N)) e). +Axiom thm_MEASURE_CBALL_POS : forall {N' : Type'}, forall x : cart R N', forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) (@measure N' (@cball N' (@pair (cart R N') R x e)))) = (Rlt (R_of_N (NUMERAL 0%N)) e). +Axiom thm_HAS_INTEGRAL_OPEN_INTERVAL : forall {_1442277 _1442302 : Type'}, forall f : (cart R _1442302) -> cart R _1442277, forall a : cart R _1442302, forall b : cart R _1442302, forall y : cart R _1442277, (@has_integral _1442302 _1442277 f y (@open_interval _1442302 (@pair (cart R _1442302) (cart R _1442302) a b))) = (@has_integral _1442302 _1442277 f y (@closed_interval _1442302 (@cons (prod (cart R _1442302) (cart R _1442302)) (@pair (cart R _1442302) (cart R _1442302) a b) (@nil (prod (cart R _1442302) (cart R _1442302)))))). +Axiom thm_INTEGRABLE_ON_OPEN_INTERVAL : forall {_1442323 _1442347 : Type'}, forall f : (cart R _1442347) -> cart R _1442323, forall a : cart R _1442347, forall b : cart R _1442347, (@integrable_on _1442323 _1442347 f (@open_interval _1442347 (@pair (cart R _1442347) (cart R _1442347) a b))) = (@integrable_on _1442323 _1442347 f (@closed_interval _1442347 (@cons (prod (cart R _1442347) (cart R _1442347)) (@pair (cart R _1442347) (cart R _1442347) a b) (@nil (prod (cart R _1442347) (cart R _1442347)))))). +Axiom thm_INTEGRAL_OPEN_INTERVAL : forall {_1442380 _1442393 : Type'}, forall f : (cart R _1442393) -> cart R _1442380, forall a : cart R _1442393, forall b : cart R _1442393, (@integral _1442380 _1442393 (@open_interval _1442393 (@pair (cart R _1442393) (cart R _1442393) a b)) f) = (@integral _1442380 _1442393 (@closed_interval _1442393 (@cons (prod (cart R _1442393) (cart R _1442393)) (@pair (cart R _1442393) (cart R _1442393) a b) (@nil (prod (cart R _1442393) (cart R _1442393))))) f). +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_OPEN_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@absolutely_integrable_on N' M f (@open_interval M (@pair (cart R M) (cart R M) a b))) = (@absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_MEASURABLE_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @measurable N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', @measurable N' (@open_segment N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_MEASURE_SEGMENT_1 : (forall a : cart R unit, forall b : cart R unit, (@measure unit (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@vector_norm unit (@vector_sub unit b a))) /\ (forall a : cart R unit, forall b : cart R unit, (@measure unit (@open_segment unit (@pair (cart R unit) (cart R unit) a b))) = (@vector_norm unit (@vector_sub unit b a))). +Axiom thm_NEGLIGIBLE_SEGMENT : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', (@negligible N' (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) \/ (a = b))) /\ (forall a : cart R N', forall b : cart R N', (@negligible N' (@open_segment N' (@pair (cart R N') (cart R N') a b))) = ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) \/ (a = b))). +Axiom thm_MEASURE_BALL_SCALING : forall {N' : Type'}, forall a : cart R N', forall c : R, forall r : R, (Rle (R_of_N (NUMERAL 0%N)) c) -> (@measure N' (@ball N' (@pair (cart R N') R a (Rmult c r)))) = (Rmult (real_pow c (@dimindex N' (@UNIV N'))) (@measure N' (@ball N' (@pair (cart R N') R a r)))). +Axiom thm_MEASURE_CBALL_SCALING : forall {N' : Type'}, forall a : cart R N', forall c : R, forall r : R, (Rle (R_of_N (NUMERAL 0%N)) c) -> (@measure N' (@cball N' (@pair (cart R N') R a (Rmult c r)))) = (Rmult (real_pow c (@dimindex N' (@UNIV N'))) (@measure N' (@cball N' (@pair (cart R N') R a r)))). +Axiom thm_MEASURE_CBALL_BOUND : forall {N' : Type'}, forall x : cart R N', forall d : R, (Rle (R_of_N (NUMERAL 0%N)) d) -> Rle (@measure N' (@cball N' (@pair (cart R N') R x d))) (real_pow (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) d) (@dimindex N' (@UNIV N'))). +Axiom thm_MEASURE_BALL_BOUND : forall {N' : Type'}, forall x : cart R N', forall d : R, (Rle (R_of_N (NUMERAL 0%N)) d) -> Rle (@measure N' (@ball N' (@pair (cart R N') R x d))) (real_pow (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) d) (@dimindex N' (@UNIV N'))). +Axiom thm_NEGLIGIBLE_LINEAR_SINGULAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (~ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y))) -> @negligible N' (@IMAGE (cart R N') (cart R N') f s). +Axiom thm_COVERING_LEMMA : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall s : (cart R N') -> Prop, forall g : (cart R N') -> (cart R N') -> Prop, ((@SUBSET (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))) /\ (@gauge N' g))) -> exists d : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) d) /\ ((forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k d) -> (@SUBSET (cart R N') k (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((~ ((@interior N' k) = (@EMPTY (cart R N')))) /\ (exists c : cart R N', exists d' : cart R N', k = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d') (@nil (prod (cart R N') (cart R N')))))))) /\ ((forall k1 : (cart R N') -> Prop, forall k2 : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) k1 d) /\ ((@IN ((cart R N') -> Prop) k2 d) /\ (~ (k1 = k2)))) -> (@INTER (cart R N') (@interior N' k1) (@interior N' k2)) = (@EMPTY (cart R N'))) /\ ((forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k d) -> exists x : cart R N', (@IN (cart R N') x (@INTER (cart R N') s k)) /\ (@SUBSET (cart R N') k (g x))) /\ ((forall u : cart R N', forall v : cart R N', (@IN ((cart R N') -> Prop) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N'))))) d) -> exists n : N, forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rminus (@dollar R N' v i) (@dollar R N' u i)) = (Rdiv (Rminus (@dollar R N' b i) (@dollar R N' a i)) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n))) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') d)))))). +Axiom thm_COUNTABLE_ELEMENTARY_DIVISION : forall {N' : Type'}, forall d : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) d) /\ (forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k d) -> exists a : cart R N', exists b : cart R N', k = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) -> exists d' : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) d') /\ ((forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k d') -> (~ (k = (@EMPTY (cart R N')))) /\ (exists a : cart R N', exists b : cart R N', k = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) /\ ((forall k : (cart R N') -> Prop, forall l : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) k d') /\ ((@IN ((cart R N') -> Prop) l d') /\ (~ (k = l)))) -> (@INTER (cart R N') (@interior N' k) (@interior N' l)) = (@EMPTY (cart R N'))) /\ ((@UNIONS (cart R N') d') = (@UNIONS (cart R N') d)))). +Axiom thm_EXPAND_CLOSED_OPEN_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : cart R N', exists d : cart R N', (@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@open_interval N' (@pair (cart R N') (cart R N') c d))) /\ (Rle (@measure N' (@open_interval N' (@pair (cart R N') (cart R N') c d))) (Rplus (@measure N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) e)). +Axiom thm_MEASURABLE_OUTER_INTERVALS_BOUNDED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall e : R, ((@measurable N' s) /\ ((@SUBSET (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists d : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) d) /\ ((forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k d) -> (@SUBSET (cart R N') k (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((~ (k = (@EMPTY (cart R N')))) /\ (exists c : cart R N', exists d' : cart R N', k = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d') (@nil (prod (cart R N') (cart R N')))))))) /\ ((forall k1 : (cart R N') -> Prop, forall k2 : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) k1 d) /\ ((@IN ((cart R N') -> Prop) k2 d) /\ (~ (k1 = k2)))) -> (@INTER (cart R N') (@interior N' k1) (@interior N' k2)) = (@EMPTY (cart R N'))) /\ ((forall u : cart R N', forall v : cart R N', (@IN ((cart R N') -> Prop) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') u v) (@nil (prod (cart R N') (cart R N'))))) d) -> exists n : N, forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rminus (@dollar R N' v i) (@dollar R N' u i)) = (Rdiv (Rminus (@dollar R N' b i) (@dollar R N' a i)) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n))) /\ ((forall k : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) k d) /\ (~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N'))))) -> ~ ((@interior N' k) = (@EMPTY (cart R N')))) /\ ((@SUBSET (cart R N') s (@UNIONS (cart R N') d)) /\ ((@measurable N' (@UNIONS (cart R N') d)) /\ (Rle (@measure N' (@UNIONS (cart R N') d)) (Rplus (@measure N' s) e)))))))). +Axiom thm_MEASURABLE_OUTER_CLOSED_INTERVALS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@measurable N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists d : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) d) /\ ((forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k d) -> (~ (k = (@EMPTY (cart R N')))) /\ (exists a : cart R N', exists b : cart R N', k = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) /\ ((forall k : (cart R N') -> Prop, forall l : (cart R N') -> Prop, ((@IN ((cart R N') -> Prop) k d) /\ ((@IN ((cart R N') -> Prop) l d) /\ (~ (k = l)))) -> (@INTER (cart R N') (@interior N' k) (@interior N' l)) = (@EMPTY (cart R N'))) /\ ((@SUBSET (cart R N') s (@UNIONS (cart R N') d)) /\ ((@measurable N' (@UNIONS (cart R N') d)) /\ (Rle (@measure N' (@UNIONS (cart R N') d)) (Rplus (@measure N' s) e)))))). +Axiom thm_MEASURABLE_OUTER_OPEN_INTERVALS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@measurable N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists d : ((cart R N') -> Prop) -> Prop, (@COUNTABLE ((cart R N') -> Prop) d) /\ ((forall k : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) k d) -> (~ (k = (@EMPTY (cart R N')))) /\ (exists a : cart R N', exists b : cart R N', k = (@open_interval N' (@pair (cart R N') (cart R N') a b)))) /\ ((@SUBSET (cart R N') s (@UNIONS (cart R N') d)) /\ ((@measurable N' (@UNIONS (cart R N') d)) /\ (Rle (@measure N' (@UNIONS (cart R N') d)) (Rplus (@measure N' s) e))))). +Axiom thm_MEASURABLE_OUTER_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@measurable N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists t : (cart R N') -> Prop, (@_open N' t) /\ ((@SUBSET (cart R N') s t) /\ ((@measurable N' t) /\ (Rlt (@measure N' t) (Rplus (@measure N' s) e)))). +Axiom thm_MEASURABLE_INNER_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@measurable N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists t : (cart R N') -> Prop, (@compact N' t) /\ ((@SUBSET (cart R N') t s) /\ ((@measurable N' t) /\ (Rlt (@measure N' s) (Rplus (@measure N' t) e)))). +Axiom thm_OPEN_MEASURABLE_INNER_DIVISION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@_open N' s) /\ ((@measurable N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists D : ((cart R N') -> Prop) -> Prop, (@division_of N' D (@UNIONS (cart R N') D)) /\ ((@SUBSET (cart R N') (@UNIONS (cart R N') D) s) /\ (Rlt (@measure N' s) (Rplus (@measure N' (@UNIONS (cart R N') D)) e))). +Axiom thm_OUTER_MEASURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> exists t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) /\ ((@measurable N' t) /\ (forall t' : (cart R N') -> Prop, ((@SUBSET (cart R N') s t') /\ (@measurable N' t')) -> @negligible N' (@DIFF (cart R N') t t'))). +Axiom thm_MEASURABLE_LINEAR_IMAGE_INTERVAL : forall {_1449039 _1449056 : Type'}, forall f : (cart R _1449056) -> cart R _1449039, forall a : cart R _1449056, forall b : cart R _1449056, (@linear _1449056 _1449039 f) -> @measurable _1449039 (@IMAGE (cart R _1449056) (cart R _1449039) f (@closed_interval _1449056 (@cons (prod (cart R _1449056) (cart R _1449056)) (@pair (cart R _1449056) (cart R _1449056) a b) (@nil (prod (cart R _1449056) (cart R _1449056)))))). +Axiom thm_HAS_MEASURE_LINEAR_SUFFICIENT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall m : R, ((@linear N' N' f) /\ (forall a : cart R N', forall b : cart R N', @has_measure N' (@IMAGE (cart R N') (cart R N') f (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) (Rmult m (@measure N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))))) -> forall s : (cart R N') -> Prop, (@measurable N' s) -> @has_measure N' (@IMAGE (cart R N') (cart R N') f s) (Rmult m (@measure N' s)). +Axiom thm_INDUCT_MATRIX_ROW_OPERATIONS : forall {N' : Type'}, forall P : (cart (cart R N') N') -> Prop, ((forall A : cart (cart R N') N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((@row N' N' i A) = (@vec N' (NUMERAL 0%N))))) -> P A) /\ ((forall A : cart (cart R N') N', (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (~ (i = j)))))) -> (@dollar R N' (@dollar (cart R N') N' A i) j) = (R_of_N (NUMERAL 0%N))) -> P A) /\ ((forall A : cart (cart R N') N', forall m : N, forall n : N, ((P A) /\ ((N.le (NUMERAL (BIT1 0%N)) m) /\ ((N.le m (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ (~ (m = n))))))) -> P (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @dollar R N' (@dollar (cart R N') N' A i) (@swap N (@pair N N m n) j))))) /\ (forall A : cart (cart R N') N', forall m : N, forall n : N, forall c : R, ((P A) /\ ((N.le (NUMERAL (BIT1 0%N)) m) /\ ((N.le m (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ (~ (m = n))))))) -> P (@lambda (cart R N') N' (fun i : N => @COND (cart R N') (i = m) (@vector_add N' (@row N' N' m A) (@percent N' c (@row N' N' n A))) (@row N' N' i A))))))) -> forall A : cart (cart R N') N', P A. +Axiom thm_INDUCT_MATRIX_ELEMENTARY : forall {N' : Type'}, forall P : (cart (cart R N') N') -> Prop, ((forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((P A) /\ (P B)) -> P (@matrix_mul N' N' N' A B)) /\ ((forall A : cart (cart R N') N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((@row N' N' i A) = (@vec N' (NUMERAL 0%N))))) -> P A) /\ ((forall A : cart (cart R N') N', (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (~ (i = j)))))) -> (@dollar R N' (@dollar (cart R N') N' A i) j) = (R_of_N (NUMERAL 0%N))) -> P A) /\ ((forall m : N, forall n : N, ((N.le (NUMERAL (BIT1 0%N)) m) /\ ((N.le m (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ (~ (m = n)))))) -> P (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @dollar R N' (@dollar (cart R N') N' (@mat N' N' (NUMERAL (BIT1 0%N))) i) (@swap N (@pair N N m n) j))))) /\ (forall m : N, forall n : N, forall c : R, ((N.le (NUMERAL (BIT1 0%N)) m) /\ ((N.le m (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ (~ (m = n)))))) -> P (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @COND R ((i = m) /\ (j = n)) c (@COND R (i = j) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))))))))))) -> forall A : cart (cart R N') N', P A. +Axiom thm_INDUCT_MATRIX_ELEMENTARY_ALT : forall {N' : Type'}, forall P : (cart (cart R N') N') -> Prop, ((forall A : cart (cart R N') N', forall B : cart (cart R N') N', ((P A) /\ (P B)) -> P (@matrix_mul N' N' N' A B)) /\ ((forall A : cart (cart R N') N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((@row N' N' i A) = (@vec N' (NUMERAL 0%N))))) -> P A) /\ ((forall A : cart (cart R N') N', (forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ ((N.le j (@dimindex N' (@UNIV N'))) /\ (~ (i = j)))))) -> (@dollar R N' (@dollar (cart R N') N' A i) j) = (R_of_N (NUMERAL 0%N))) -> P A) /\ ((forall m : N, forall n : N, ((N.le (NUMERAL (BIT1 0%N)) m) /\ ((N.le m (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ (~ (m = n)))))) -> P (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @dollar R N' (@dollar (cart R N') N' (@mat N' N' (NUMERAL (BIT1 0%N))) i) (@swap N (@pair N N m n) j))))) /\ (forall m : N, forall n : N, ((N.le (NUMERAL (BIT1 0%N)) m) /\ ((N.le m (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ (~ (m = n)))))) -> P (@lambda (cart R N') N' (fun i : N => @lambda R N' (fun j : N => @COND R (((i = m) /\ (j = n)) \/ (i = j)) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N)))))))))) -> forall A : cart (cart R N') N', P A. +Axiom thm_INDUCT_LINEAR_ELEMENTARY : forall {N' : Type'}, forall P : ((cart R N') -> cart R N') -> Prop, ((forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@linear N' N' f) /\ ((@linear N' N' g) /\ ((P f) /\ (P g)))) -> P (@o (cart R N') (cart R N') (cart R N') f g)) /\ ((forall f : (cart R N') -> cart R N', forall i : N, ((@linear N' N' f) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ (forall x : cart R N', (@dollar R N' (f x) i) = (R_of_N (NUMERAL 0%N)))))) -> P f) /\ ((forall c : N -> R, P (fun x : cart R N' => @lambda R N' (fun i : N => Rmult (c i) (@dollar R N' x i)))) /\ ((forall m : N, forall n : N, ((N.le (NUMERAL (BIT1 0%N)) m) /\ ((N.le m (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ (~ (m = n)))))) -> P (fun x : cart R N' => @lambda R N' (fun i : N => @dollar R N' x (@swap N (@pair N N m n) i)))) /\ (forall m : N, forall n : N, ((N.le (NUMERAL (BIT1 0%N)) m) /\ ((N.le m (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ (~ (m = n)))))) -> P (fun x : cart R N' => @lambda R N' (fun i : N => @COND R (i = m) (Rplus (@dollar R N' x m) (@dollar R N' x n)) (@dollar R N' x i)))))))) -> forall f : (cart R N') -> cart R N', (@linear N' N' f) -> P f. +Axiom thm_LAMBDA_SWAP_GALOIS : forall {N' : Type'} (m : N) (n : N), forall x : cart R N', forall y : cart R N', ((N.le (NUMERAL (BIT1 0%N)) m) /\ ((N.le m (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) n) /\ (N.le n (@dimindex N' (@UNIV N')))))) -> (x = (@lambda R N' (fun i : N => @dollar R N' y (@swap N (@pair N N m n) i)))) = ((@lambda R N' (fun i : N => @dollar R N' x (@swap N (@pair N N m n) i))) = y). +Axiom thm_LAMBDA_ADD_GALOIS : forall {N' : Type'} (m : N) (n : N), forall x : cart R N', forall y : cart R N', ((N.le (NUMERAL (BIT1 0%N)) m) /\ ((N.le m (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ (~ (m = n)))))) -> (x = (@lambda R N' (fun i : N => @COND R (i = m) (Rplus (@dollar R N' y m) (@dollar R N' y n)) (@dollar R N' y i)))) = ((@lambda R N' (fun i : N => @COND R (i = m) (Rminus (@dollar R N' x m) (@dollar R N' x n)) (@dollar R N' x i))) = y). +Axiom thm_HAS_MEASURE_SHEAR_INTERVAL : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall m : N, forall n : N, ((N.le (NUMERAL (BIT1 0%N)) m) /\ ((N.le m (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex N' (@UNIV N'))) /\ ((~ (m = n)) /\ ((~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) /\ (Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' a n)))))))) -> @has_measure N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @lambda R N' (fun i : N => @COND R (i = m) (Rplus (@dollar R N' x m) (@dollar R N' x n)) (@dollar R N' x i))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) (@measure N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))). +Axiom thm_HAS_MEASURE_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (@measurable N' s)) -> @has_measure N' (@IMAGE (cart R N') (cart R N') f s) (Rmult (Rabs (@det N' (@matrix N' N' f))) (@measure N' s)). +Axiom thm_MEASURABLE_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (@measurable N' s)) -> @measurable N' (@IMAGE (cart R N') (cart R N') f s). +Axiom thm_MEASURE_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (@measurable N' s)) -> (@measure N' (@IMAGE (cart R N') (cart R N') f s)) = (Rmult (Rabs (@det N' (@matrix N' N' f))) (@measure N' s)). +Axiom thm_HAS_MEASURE_LINEAR_IMAGE_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall m : R, ((@linear N' N' f) /\ (@has_measure N' s m)) -> @has_measure N' (@IMAGE (cart R N') (cart R N') f s) (Rmult (Rabs (@det N' (@matrix N' N' f))) m). +Axiom thm_HAS_MEASURE_LINEAR_IMAGE_SAME : forall {_1455010 : Type'}, forall f : (cart R _1455010) -> cart R _1455010, forall s : (cart R _1455010) -> Prop, ((@linear _1455010 _1455010 f) /\ ((@measurable _1455010 s) /\ ((Rabs (@det _1455010 (@matrix _1455010 _1455010 f))) = (R_of_N (NUMERAL (BIT1 0%N)))))) -> @has_measure _1455010 (@IMAGE (cart R _1455010) (cart R _1455010) f s) (@measure _1455010 s). +Axiom thm_MEASURE_LINEAR_IMAGE_SAME : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ ((@measurable N' s) /\ ((Rabs (@det N' (@matrix N' N' f))) = (R_of_N (NUMERAL (BIT1 0%N)))))) -> (@measure N' (@IMAGE (cart R N') (cart R N') f s)) = (@measure N' s). +Axiom thm_MEASURABLE_LINEAR_IMAGE_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> (@measurable N' (@IMAGE (cart R N') (cart R N') f s)) = (@measurable N' s). +Axiom thm_NEGLIGIBLE_LINEAR_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (@negligible N' s)) -> @negligible N' (@IMAGE (cart R N') (cart R N') f s). +Axiom thm_NEGLIGIBLE_LINEAR_IMAGE_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> (@negligible N' (@IMAGE (cart R N') (cart R N') f s)) = (@negligible N' s). +Axiom thm_MEASURABLE_NEGATIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@measurable N' (@IMAGE (cart R N') (cart R N') (@vector_neg N') s)) = (@measurable N' s). +Axiom thm_HAS_MEASURE_ORTHOGONAL_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall m : R, ((@orthogonal_transformation N' f) /\ (@has_measure N' s m)) -> @has_measure N' (@IMAGE (cart R N') (cart R N') f s) m. +Axiom thm_HAS_MEASURE_ORTHOGONAL_IMAGE_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall m : R, (@orthogonal_transformation N' f) -> (@has_measure N' (@IMAGE (cart R N') (cart R N') f s) m) = (@has_measure N' s m). +Axiom thm_MEASURE_ORTHOGONAL_IMAGE_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, (@orthogonal_transformation N' f) -> (@measure N' (@IMAGE (cart R N') (cart R N') f s)) = (@measure N' s). +Axiom thm_MEASURE_NEGATIONS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@measure N' (@IMAGE (cart R N') (cart R N') (@vector_neg N') s)) = (@measure N' s). +Axiom thm_HAS_MEASURE_ISOMETRY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall m : R, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ ((@linear M N' f) /\ (forall x : cart R M, (@vector_norm N' (f x)) = (@vector_norm M x)))) -> (@has_measure N' (@IMAGE (cart R M) (cart R N') f s) m) = (@has_measure M s m). +Axiom thm_MEASURABLE_LINEAR_IMAGE_EQ_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y))) -> (@measurable N' (@IMAGE (cart R M) (cart R N') f s)) = (@measurable M s). +Axiom thm_MEASURE_ISOMETRY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ ((@linear M N' f) /\ (forall x : cart R M, (@vector_norm N' (f x)) = (@vector_norm M x)))) -> (@measure N' (@IMAGE (cart R M) (cart R N') f s)) = (@measure M s). +Axiom thm_MEASURABLE_CONVEX_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> (@measurable N' s) = ((@bounded N' s) \/ ((@interior N' s) = (@EMPTY (cart R N')))). +Axiom thm_CONGRUENT_IMAGE_STD_SIMPLEX : forall {N' : Type'}, forall p : N -> N, (@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> (@GSPEC (cart R N') (fun GEN_PVAR_6551 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6551 ((Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' x (p (NUMERAL (BIT1 0%N))))) /\ ((Rle (@dollar R N' x (p (@dimindex N' (@UNIV N')))) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.lt i (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' x (p i)) (@dollar R N' x (p (N.add i (NUMERAL (BIT1 0%N)))))))) x)) = (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @lambda R N' (fun i : N => @sum N (dotdot (NUMERAL (BIT1 0%N)) (@inverse N N p i)) (fun j : N => @dollar R N' x j))) (@GSPEC (cart R N') (fun GEN_PVAR_6552 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6552 ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' x i)) /\ (Rle (@sum N (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N'))) (fun i : N => @dollar R N' x i)) (R_of_N (NUMERAL (BIT1 0%N))))) x))). +Axiom thm_HAS_MEASURE_IMAGE_STD_SIMPLEX : forall {N' : Type'}, forall p : N -> N, (@permutes N p (dotdot (NUMERAL (BIT1 0%N)) (@dimindex N' (@UNIV N')))) -> @has_measure N' (@GSPEC (cart R N') (fun GEN_PVAR_6553 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6553 ((Rle (R_of_N (NUMERAL 0%N)) (@dollar R N' x (p (NUMERAL (BIT1 0%N))))) /\ ((Rle (@dollar R N' x (p (@dimindex N' (@UNIV N')))) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.lt i (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' x (p i)) (@dollar R N' x (p (N.add i (NUMERAL (BIT1 0%N)))))))) x)) (@measure N' (@hull (cart R N') (@convex N') (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@GSPEC (cart R N') (fun GEN_PVAR_6554 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_6554 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@basis N' i)))))). +Axiom thm_HAS_MEASURE_STD_SIMPLEX : forall {N' : Type'}, @has_measure N' (@hull (cart R N') (@convex N') (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@GSPEC (cart R N') (fun GEN_PVAR_6558 : cart R N' => exists i : N, @SETSPEC (cart R N') GEN_PVAR_6558 ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) (@basis N' i))))) (Rinv (R_of_N (FACT (@dimindex N' (@UNIV N'))))). +Axiom thm_HAS_MEASURE_SIMPLEX_0 : forall {N' : Type'}, forall l : list (cart R N'), ((@LENGTH (cart R N') l) = (@dimindex N' (@UNIV N'))) -> @has_measure N' (@hull (cart R N') (@convex N') (@INSERT (cart R N') (@vec N' (NUMERAL 0%N)) (@set_of_list (cart R N') l))) (Rdiv (Rabs (@det N' (@vector (cart R N') N' l))) (R_of_N (FACT (@dimindex N' (@UNIV N'))))). +Axiom thm_HAS_MEASURE_SIMPLEX : forall {N' : Type'}, forall a : cart R N', forall l : list (cart R N'), ((@LENGTH (cart R N') l) = (@dimindex N' (@UNIV N'))) -> @has_measure N' (@hull (cart R N') (@convex N') (@set_of_list (cart R N') (@cons (cart R N') a l))) (Rdiv (Rabs (@det N' (@vector (cart R N') N' (@List.map (cart R N') (cart R N') (fun x : cart R N' => @vector_sub N' x a) l)))) (R_of_N (FACT (@dimindex N' (@UNIV N'))))). +Axiom thm_MEASURABLE_CONVEX_HULL : forall {_1457302 : Type'}, forall s : (cart R _1457302) -> Prop, (@bounded _1457302 s) -> @measurable _1457302 (@hull (cart R _1457302) (@convex _1457302) s). +Axiom thm_MEASURABLE_SIMPLEX : forall {_1457319 : Type'}, forall l : list (cart R _1457319), @measurable _1457319 (@hull (cart R _1457319) (@convex _1457319) (@set_of_list (cart R _1457319) l)). +Axiom thm_MEASURE_SIMPLEX : forall {N' : Type'}, forall a : cart R N', forall l : list (cart R N'), ((@LENGTH (cart R N') l) = (@dimindex N' (@UNIV N'))) -> (@measure N' (@hull (cart R N') (@convex N') (@set_of_list (cart R N') (@cons (cart R N') a l)))) = (Rdiv (Rabs (@det N' (@vector (cart R N') N' (@List.map (cart R N') (cart R N') (fun x : cart R N' => @vector_sub N' x a) l)))) (R_of_N (FACT (@dimindex N' (@UNIV N'))))). +Axiom thm_HAS_MEASURE_TRIANGLE : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), @has_measure (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit))))))) (Rdiv (Rabs (Rminus (Rmult (Rminus (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N)))) (Rminus (@dollar R (tybit0 unit) c (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N)))))) (Rmult (Rminus (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rminus (@dollar R (tybit0 unit) c (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N))))))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_MEASURABLE_TRIANGLE : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', @measurable N' (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))). +Axiom thm_MEASURE_TRIANGLE : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@measure (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) = (Rdiv (Rabs (Rminus (Rmult (Rminus (@dollar R (tybit0 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N)))) (Rminus (@dollar R (tybit0 unit) c (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N)))))) (Rmult (Rminus (@dollar R (tybit0 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rminus (@dollar R (tybit0 unit) c (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) a (NUMERAL (BIT1 0%N))))))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_HAS_MEASURE_TETRAHEDRON : forall a : cart R (tybit1 unit), forall b : cart R (tybit1 unit), forall c : cart R (tybit1 unit), forall d : cart R (tybit1 unit), @has_measure (tybit1 unit) (@hull (cart R (tybit1 unit)) (@convex (tybit1 unit)) (@INSERT (cart R (tybit1 unit)) a (@INSERT (cart R (tybit1 unit)) b (@INSERT (cart R (tybit1 unit)) c (@INSERT (cart R (tybit1 unit)) d (@EMPTY (cart R (tybit1 unit)))))))) (Rdiv (Rabs (Rplus (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))) (Rmult (Rminus (@dollar R (tybit1 unit) c (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rminus (@dollar R (tybit1 unit) d (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))))) (Rplus (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rmult (Rminus (@dollar R (tybit1 unit) c (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))) (Rminus (@dollar R (tybit1 unit) d (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))))) (Rminus (Rminus (Rminus (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))) (Rmult (Rminus (@dollar R (tybit1 unit) c (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))) (Rminus (@dollar R (tybit1 unit) d (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))) (Rmult (Rminus (@dollar R (tybit1 unit) c (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))) (Rminus (@dollar R (tybit1 unit) d (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N)))))))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rmult (Rminus (@dollar R (tybit1 unit) c (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))) (Rminus (@dollar R (tybit1 unit) d (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N)))))))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))) (Rmult (Rminus (@dollar R (tybit1 unit) c (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rminus (@dollar R (tybit1 unit) d (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))))))))) (R_of_N (NUMERAL (BIT0 (BIT1 (BIT1 0%N)))))). +Axiom thm_MEASURABLE_TETRAHEDRON : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall d : cart R N', @measurable N' (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@INSERT (cart R N') d (@EMPTY (cart R N'))))))). +Axiom thm_MEASURE_TETRAHEDRON : forall a : cart R (tybit1 unit), forall b : cart R (tybit1 unit), forall c : cart R (tybit1 unit), forall d : cart R (tybit1 unit), (@measure (tybit1 unit) (@hull (cart R (tybit1 unit)) (@convex (tybit1 unit)) (@INSERT (cart R (tybit1 unit)) a (@INSERT (cart R (tybit1 unit)) b (@INSERT (cart R (tybit1 unit)) c (@INSERT (cart R (tybit1 unit)) d (@EMPTY (cart R (tybit1 unit))))))))) = (Rdiv (Rabs (Rplus (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))) (Rmult (Rminus (@dollar R (tybit1 unit) c (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rminus (@dollar R (tybit1 unit) d (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))))) (Rplus (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rmult (Rminus (@dollar R (tybit1 unit) c (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))) (Rminus (@dollar R (tybit1 unit) d (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))))) (Rminus (Rminus (Rminus (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))) (Rmult (Rminus (@dollar R (tybit1 unit) c (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))) (Rminus (@dollar R (tybit1 unit) d (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))) (Rmult (Rminus (@dollar R (tybit1 unit) c (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))) (Rminus (@dollar R (tybit1 unit) d (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N)))))))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rmult (Rminus (@dollar R (tybit1 unit) c (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))) (Rminus (@dollar R (tybit1 unit) d (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N)))))))) (Rmult (Rminus (@dollar R (tybit1 unit) b (NUMERAL (BIT1 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 (BIT1 0%N))))) (Rmult (Rminus (@dollar R (tybit1 unit) c (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit1 unit) a (NUMERAL (BIT0 (BIT1 0%N))))) (Rminus (@dollar R (tybit1 unit) d (NUMERAL (BIT1 0%N))) (@dollar R (tybit1 unit) a (NUMERAL (BIT1 0%N)))))))))) (R_of_N (NUMERAL (BIT0 (BIT1 (BIT1 0%N)))))). +Axiom thm_MEASURE_CONTINUOUS_WITH_HAUSDIST : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@bounded N' s) /\ ((@convex N' s) /\ ((~ (s = (@EMPTY (cart R N')))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R N') -> Prop, ((@bounded N' t) /\ ((@convex N' t) /\ ((~ (t = (@EMPTY (cart R N')))) /\ (Rlt (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s t)) d)))) -> Rlt (Rabs (Rminus (@measure N' t) (@measure N' s))) e). +Axiom thm_MEASURE_CONTINUOUS_WITH_HAUSDIST_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@bounded N' s) /\ ((@convex N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R N') -> Prop, ((@convex N' t) /\ ((forall y : cart R N', (@IN (cart R N') y s) -> exists x : cart R N', (@IN (cart R N') x t) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) d)) /\ (forall y : cart R N', (@IN (cart R N') y t) -> exists x : cart R N', (@IN (cart R N') x s) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) d)))) -> Rlt (Rabs (Rminus (@measure N' t) (@measure N' s))) e). +Axiom thm_MEASURE_SEMICONTINUOUS_WITH_HAUSDIST_EXPLICIT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@bounded N' s) /\ ((@negligible N' (@frontier N' s)) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall s' : (cart R N') -> Prop, ((@measurable N' s') /\ (forall y : cart R N', (@IN (cart R N') y s') -> exists x : cart R N', (@IN (cart R N') x s) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x y)) d))) -> Rlt (@measure N' s') (Rplus (@measure N' s) e)). +Axiom thm_MEASURE_SEMICONTINUOUS_WITH_HAUSDIST_BOUND : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall s' : (cart R N') -> Prop, forall r : R, forall e : R, forall a : cart R N', ((@bounded N' s) /\ ((@convex N' s) /\ ((@SUBSET (cart R N') (@ball N' (@pair (cart R N') R a r)) s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@bounded N' s') /\ ((@measurable N' s') /\ ((Rle (@hausdist N' (@pair ((cart R N') -> Prop) ((cart R N') -> Prop) s s')) (Rmult e r)) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)))))))) -> Rle (@measure N' s') (Rmult (@measure N' s) (real_pow (Rplus (R_of_N (NUMERAL (BIT1 0%N))) e) (@dimindex N' (@UNIV N')))). +Axiom thm_STEINHAUS : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@measurable N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) (@measure N' s))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (@SUBSET (cart R N') (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) d)) (@GSPEC (cart R N') (fun GEN_PVAR_6566 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_6566 ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) (@vector_sub N' x y)))). +Axiom thm_MEASURABLE_NONNEGLIGIBLE_IMP_LARGE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@measurable N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) (@measure N' s))) -> @eq_c (cart R N') R s (@UNIV R). +Axiom thm_MEASURABLE_SMALL_IMP_NEGLIGIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@measurable N' s) /\ (@lt_c (cart R N') R s (@UNIV R))) -> @negligible N' s. +Axiom thm_AUSTIN_LEMMA : forall {N' : Type'}, forall D : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) D) /\ (forall d : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) d D) -> exists k : R, exists a : cart R N', exists b : cart R N', (d = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (Rminus (@dollar R N' b i) (@dollar R N' a i)) = k))) -> exists D' : ((cart R N') -> Prop) -> Prop, (@SUBSET ((cart R N') -> Prop) D' D) /\ ((@pairwise ((cart R N') -> Prop) (@DISJOINT (cart R N')) D') /\ (Rge (@measure N' (@UNIONS (cart R N') D')) (Rdiv (@measure N' (@UNIONS (cart R N') D)) (real_pow (R_of_N (NUMERAL (BIT1 (BIT1 0%N)))) (@dimindex N' (@UNIV N')))))). +Axiom thm_INTEGRABLE_CCONTINUOUS_EXPLICIT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall a : cart R M, forall b : cart R M, @integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> exists k : (cart R M) -> Prop, (@negligible M k) /\ (forall x : cart R M, forall e : R, ((~ (@IN (cart R M) x k)) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall h : R, ((Rlt (R_of_N (NUMERAL 0%N)) h) /\ (Rlt h d)) -> Rlt (@vector_norm N' (@vector_sub N' (@percent N' (Rinv (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) x (@vector_add M x (@percent M h (@vec M (NUMERAL (BIT1 0%N)))))) (@nil (prod (cart R M) (cart R M))))))) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) x (@vector_add M x (@percent M h (@vec M (NUMERAL (BIT1 0%N)))))) (@nil (prod (cart R M) (cart R M))))) f)) (f x))) e)). +Axiom thm_INTEGRABLE_CCONTINUOUS_EXPLICIT_SYMMETRIC : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall a : cart R M, forall b : cart R M, @integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> exists k : (cart R M) -> Prop, (@negligible M k) /\ (forall x : cart R M, forall e : R, ((~ (@IN (cart R M) x k)) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall h : R, ((Rlt (R_of_N (NUMERAL 0%N)) h) /\ (Rlt h d)) -> Rlt (@vector_norm N' (@vector_sub N' (@percent N' (Rinv (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@vector_sub M x (@percent M h (@vec M (NUMERAL (BIT1 0%N))))) (@vector_add M x (@percent M h (@vec M (NUMERAL (BIT1 0%N)))))) (@nil (prod (cart R M) (cart R M))))))) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@vector_sub M x (@percent M h (@vec M (NUMERAL (BIT1 0%N))))) (@vector_add M x (@percent M h (@vec M (NUMERAL (BIT1 0%N)))))) (@nil (prod (cart R M) (cart R M))))) f)) (f x))) e)). +Axiom thm_HAS_VECTOR_DERIVATIVE_INDEFINITE_INTEGRAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> exists k : (cart R unit) -> Prop, (@negligible unit k) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) k)) -> @has_vector_derivative N' (fun x' : cart R unit => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x') (@nil (prod (cart R unit) (cart R unit))))) f) (f x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_LEBESGUE_POINTS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall a : cart R M, forall b : cart R M, @absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> exists k : (cart R M) -> Prop, (@negligible M k) /\ (forall x : cart R M, forall e : R, ((~ (@IN (cart R M) x k)) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall h : R, ((Rlt (R_of_N (NUMERAL 0%N)) h) /\ (Rlt h d)) -> Rlt (@vector_norm unit (@percent unit (Rinv (@content M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@vector_sub M x (@percent M h (@vec M (NUMERAL (BIT1 0%N))))) (@vector_add M x (@percent M h (@vec M (NUMERAL (BIT1 0%N)))))) (@nil (prod (cart R M) (cart R M))))))) (@integral unit M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@vector_sub M x (@percent M h (@vec M (NUMERAL (BIT1 0%N))))) (@vector_add M x (@percent M h (@vec M (NUMERAL (BIT1 0%N)))))) (@nil (prod (cart R M) (cart R M))))) (fun t : cart R M => lift (@vector_norm N' (@vector_sub N' (f t) (f x))))))) e)). +Axiom thm_measurable_on : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall f : (cart R M) -> cart R N', (@measurable_on M N' f s) = (exists k : (cart R M) -> Prop, exists g : N -> (cart R M) -> cart R N', (@negligible M k) /\ ((forall n : N, @continuous_on M N' (g n) (@UNIV (cart R M))) /\ (forall x : cart R M, (~ (@IN (cart R M) x k)) -> @FImp N' N (fun n : N => g n x) (@COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) sequentially))). +Axiom thm_MEASURABLE_ON_UNIV : forall {_1465003 M : Type'} (f : (cart R M) -> cart R _1465003) (s : (cart R M) -> Prop), (@measurable_on M _1465003 (fun x : cart R M => @COND (cart R _1465003) (@IN (cart R M) x s) (f x) (@vec _1465003 (NUMERAL 0%N))) (@UNIV (cart R M))) = (@measurable_on M _1465003 f s). +Axiom thm_lebesgue_measurable : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) = (@measurable_on N' unit (@indicator N' s) (@UNIV (cart R N'))). +Axiom thm_MEASURABLE_BOUNDED_BY_INTEGRABLE_IMP_INTEGRABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((@integrable_on unit M g s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f x)) (drop (g x))))) -> @integrable_on N' M f s. +Axiom thm_MEASURABLE_BOUNDED_AE_BY_INTEGRABLE_IMP_INTEGRABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall k : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((@integrable_on unit M g s) /\ ((@negligible M k) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s k)) -> Rle (@vector_norm N' (f x)) (drop (g x)))))) -> @integrable_on N' M f s. +Axiom thm_MEASURABLE_BOUNDED_BY_INTEGRABLE_IMP_ABSOLUTELY_INTEGRABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((@integrable_on unit M g s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f x)) (drop (g x))))) -> @absolutely_integrable_on N' M f s. +Axiom thm_INTEGRAL_DROP_LE_MEASURABLE : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall g : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, ((@measurable_on N' unit f s) /\ ((@integrable_on unit N' g s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (Rle (R_of_N (NUMERAL 0%N)) (drop (f x))) /\ (Rle (drop (f x)) (drop (g x)))))) -> Rle (drop (@integral unit N' s f)) (drop (@integral unit N' s g)). +Axiom thm_INTEGRABLE_SUBINTERVALS_IMP_MEASURABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall a : cart R M, forall b : cart R M, @integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> @measurable_on M N' f (@UNIV (cart R M)). +Axiom thm_INTEGRABLE_IMP_MEASURABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@integrable_on N' M f s) -> @measurable_on M N' f s. +Axiom thm_ABSOLUTELY_INTEGRABLE_MEASURABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_integrable_on N' M f s) = ((@measurable_on M N' f s) /\ (@integrable_on unit M (fun x : cart R M => lift (@vector_norm N' (f x))) s)). +Axiom thm_MEASURABLE_ON_COMPOSE_CONTINUOUS : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, ((@measurable_on M N' f (@UNIV (cart R M))) /\ (@continuous_on N' P g (@UNIV (cart R N')))) -> @measurable_on M P (@o (cart R M) (cart R N') (cart R P) g f) (@UNIV (cart R M)). +Axiom thm_MEASURABLE_ON_COMPOSE_CONTINUOUS_0 : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((@continuous_on N' P g (@UNIV (cart R N'))) /\ ((g (@vec N' (NUMERAL 0%N))) = (@vec P (NUMERAL 0%N))))) -> @measurable_on M P (@o (cart R M) (cart R N') (cart R P) g f) s. +Axiom thm_MEASURABLE_ON_COMPOSE_CONTINUOUS_OPEN_INTERVAL : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall a : cart R N', forall b : cart R N', ((@measurable_on M N' f (@UNIV (cart R M))) /\ ((forall x : cart R M, @IN (cart R N') (f x) (@open_interval N' (@pair (cart R N') (cart R N') a b))) /\ (@continuous_on N' P g (@open_interval N' (@pair (cart R N') (cart R N') a b))))) -> @measurable_on M P (@o (cart R M) (cart R N') (cart R P) g f) (@UNIV (cart R M)). +Axiom thm_MEASURABLE_ON_COMPOSE_CONTINUOUS_CLOSED_SET : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R N') -> Prop, ((@closed N' s) /\ ((@measurable_on M N' f (@UNIV (cart R M))) /\ ((forall x : cart R M, @IN (cart R N') (f x) s) /\ (@continuous_on N' P g s)))) -> @measurable_on M P (@o (cart R M) (cart R N') (cart R P) g f) (@UNIV (cart R M)). +Axiom thm_MEASURABLE_ON_COMPOSE_CONTINUOUS_CLOSED_SET_0 : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, ((@closed N' s) /\ ((@measurable_on M N' f t) /\ ((forall x : cart R M, @IN (cart R N') (f x) s) /\ ((@continuous_on N' P g s) /\ ((@IN (cart R N') (@vec N' (NUMERAL 0%N)) s) /\ ((g (@vec N' (NUMERAL 0%N))) = (@vec P (NUMERAL 0%N)))))))) -> @measurable_on M P (@o (cart R M) (cart R N') (cart R P) g f) t. +Axiom thm_CONTINUOUS_IMP_MEASURABLE_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@continuous_on M N' f (@UNIV (cart R M))) -> @measurable_on M N' f (@UNIV (cart R M)). +Axiom thm_MEASURABLE_ON_CONST : forall {M N' : Type'}, forall k : cart R N', @measurable_on M N' (fun x : cart R M => k) (@UNIV (cart R M)). +Axiom thm_MEASURABLE_ON_0 : forall {_1466852 _1466856 : Type'}, forall s : (cart R _1466852) -> Prop, @measurable_on _1466852 _1466856 (fun x : cart R _1466852 => @vec _1466856 (NUMERAL 0%N)) s. +Axiom thm_MEASURABLE_ON_CMUL : forall {M N' : Type'}, forall c : R, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable_on M N' f s) -> @measurable_on M N' (fun x : cart R M => @percent N' c (f x)) s. +Axiom thm_MEASURABLE_ON_CMUL_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall c : R, (@measurable_on M N' (fun x : cart R M => @percent N' c (f x)) s) = ((c = (R_of_N (NUMERAL 0%N))) \/ (@measurable_on M N' f s)). +Axiom thm_MEASURABLE_ON_NEG : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable_on M N' f s) -> @measurable_on M N' (fun x : cart R M => @vector_neg N' (f x)) s. +Axiom thm_MEASURABLE_ON_NEG_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable_on M N' (fun x : cart R M => @vector_neg N' (f x)) s) = (@measurable_on M N' f s). +Axiom thm_MEASURABLE_ON_NORM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable_on M N' f s) -> @measurable_on M unit (fun x : cart R M => lift (@vector_norm N' (f x))) s. +Axiom thm_MEASURABLE_ON_LIFT_ABS : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@measurable_on N' unit (fun x : cart R N' => lift (f x)) s) -> @measurable_on N' unit (fun x : cart R N' => lift (Rabs (f x))) s. +Axiom thm_MEASURABLE_ON_PASTECART : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@measurable_on M P g s)) -> @measurable_on M (finite_sum N' P) (fun x : cart R M => @pastecart R N' P (f x) (g x)) s. +Axiom thm_MEASURABLE_ON_COMBINE : forall {M N' P Q : Type'}, forall h : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((@measurable_on M P g s) /\ ((@continuous_on (finite_sum N' P) Q (fun x : cart R (finite_sum N' P) => h (@fstcart R N' P x) (@sndcart R N' P x)) (@UNIV (cart R (finite_sum N' P)))) /\ ((h (@vec N' (NUMERAL 0%N)) (@vec P (NUMERAL 0%N))) = (@vec Q (NUMERAL 0%N)))))) -> @measurable_on M Q (fun x : cart R M => h (f x) (g x)) s. +Axiom thm_MEASURABLE_ON_ADD : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@measurable_on M N' g s)) -> @measurable_on M N' (fun x : cart R M => @vector_add N' (f x) (g x)) s. +Axiom thm_MEASURABLE_ON_SUB : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@measurable_on M N' g s)) -> @measurable_on M N' (fun x : cart R M => @vector_sub N' (f x) (g x)) s. +Axiom thm_MEASURABLE_ON_MAX : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@measurable_on M N' g s)) -> @measurable_on M N' (fun x : cart R M => @lambda R N' (fun i : N => Rmax (@dollar R N' (f x) i) (@dollar R N' (g x) i))) s. +Axiom thm_MEASURABLE_ON_MIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@measurable_on M N' g s)) -> @measurable_on M N' (fun x : cart R M => @lambda R N' (fun i : N => Rmin (@dollar R N' (f x) i) (@dollar R N' (g x) i))) s. +Axiom thm_MEASURABLE_ON_DROP_MUL : forall {M N' : Type'}, forall f : (cart R M) -> cart R unit, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M unit f s) /\ (@measurable_on M N' g s)) -> @measurable_on M N' (fun x : cart R M => @percent N' (drop (f x)) (g x)) s. +Axiom thm_MEASURABLE_ON_LIFT_MUL : forall {_1467613 : Type'}, forall f : (cart R _1467613) -> R, forall g : (cart R _1467613) -> R, forall s : (cart R _1467613) -> Prop, ((@measurable_on _1467613 unit (fun x : cart R _1467613 => lift (f x)) s) /\ (@measurable_on _1467613 unit (fun x : cart R _1467613 => lift (g x)) s)) -> @measurable_on _1467613 unit (fun x : cart R _1467613 => lift (Rmult (f x) (g x))) s. +Axiom thm_MEASURABLE_ON_MUL : forall {_1467649 _1467654 : Type'}, forall f : (cart R _1467654) -> R, forall g : (cart R _1467654) -> cart R _1467649, forall s : (cart R _1467654) -> Prop, ((@measurable_on _1467654 unit (fun x : cart R _1467654 => lift (f x)) s) /\ (@measurable_on _1467654 _1467649 g s)) -> @measurable_on _1467654 _1467649 (fun x : cart R _1467654 => @percent _1467649 (f x) (g x)) s. +Axiom thm_MEASURABLE_ON_VSUM : forall {A M N' : Type'}, forall f : A -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (forall i : A, (@IN A i t) -> @measurable_on M N' (f i) s)) -> @measurable_on M N' (fun x : cart R M => @vsum A N' t (fun i : A => f i x)) s. +Axiom thm_MEASURABLE_ON_COMPONENTWISE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable_on M N' f s) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @measurable_on M unit (fun x : cart R M => lift (@dollar R N' (f x) i)) s). +Axiom thm_MEASURABLE_ON_CONST_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall c : cart R N', (@measurable_on M N' (fun x : cart R M => c) s) = ((c = (@vec N' (NUMERAL 0%N))) \/ (@lebesgue_measurable M s)). +Axiom thm_MEASURABLE_ON_LIFT_POW : forall {M : Type'}, forall f : (cart R M) -> R, forall s : (cart R M) -> Prop, forall n : N, ((@measurable_on M unit (fun x : cart R M => lift (f x)) s) /\ ((n = (NUMERAL 0%N)) -> @lebesgue_measurable M s)) -> @measurable_on M unit (fun x : cart R M => lift (real_pow (f x) n)) s. +Axiom thm_MEASURABLE_ON_LIFT_PRODUCT : forall {A N' : Type'}, forall f : A -> (cart R N') -> R, forall s : (cart R N') -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (((t = (@EMPTY A)) -> @lebesgue_measurable N' s) /\ (forall i : A, (@IN A i t) -> @measurable_on N' unit (fun x : cart R N' => lift (f i x)) s))) -> @measurable_on N' unit (fun x : cart R N' => lift (@product A t (fun i : A => f i x))) s. +Axiom thm_MEASURABLE_ON_SPIKE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@negligible M s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) t s)) -> (g x) = (f x))) -> (@measurable_on M N' f t) -> @measurable_on M N' g t. +Axiom thm_MEASURABLE_ON_SPIKE_SET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@negligible M (@UNION (cart R M) (@DIFF (cart R M) s t) (@DIFF (cart R M) t s))) -> (@measurable_on M N' f s) -> @measurable_on M N' f t. +Axiom thm_MEASURABLE_ON_SPIKE_SET_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, (@negligible M (@UNION (cart R M) (@DIFF (cart R M) s t) (@DIFF (cart R M) t s))) -> (@measurable_on M N' f s) = (@measurable_on M N' f t). +Axiom thm_MEASURABLE_ON_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall x : cart R M, (@IN (cart R M) x s) -> (f x) = (g x)) /\ (@measurable_on M N' f s)) -> @measurable_on M N' g s. +Axiom thm_MEASURABLE_ON_RESTRICT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f (@UNIV (cart R M))) /\ (@lebesgue_measurable M s)) -> @measurable_on M N' (fun x : cart R M => @COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) (@UNIV (cart R M)). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_SUBSET : forall {_1468260 _1468263 : Type'}, forall f : (cart R _1468263) -> cart R _1468260, forall s : (cart R _1468263) -> Prop, forall t : (cart R _1468263) -> Prop, ((@SUBSET (cart R _1468263) s t) /\ ((@measurable_on _1468263 _1468260 f t) /\ (@lebesgue_measurable _1468263 s))) -> @measurable_on _1468263 _1468260 f s. +Axiom thm_MEASURABLE_ON_OPEN_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, (@measurable_on M N' f (@open_interval M (@pair (cart R M) (cart R M) a b))) = (@measurable_on M N' f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))). +Axiom thm_MEASURABLE_ON_CASES : forall {M N' : Type'}, forall P : (cart R M) -> Prop, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6587 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6587 (P x) x))) /\ ((@measurable_on M N' f s) /\ (@measurable_on M N' g s))) -> @measurable_on M N' (fun x : cart R M => @COND (cart R N') (P x) (f x) (g x)) s. +Axiom thm_MEASURABLE_ON_LIMIT : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall k : (cart R M) -> Prop, ((forall n : N, @measurable_on M N' (f n) s) /\ ((@negligible M k) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s k)) -> @FImp N' N (fun n : N => f n x) (g x) sequentially))) -> @measurable_on M N' g s. +Axiom thm_MEASURABLE_ON_BILINEAR : forall {M N' P Q : Type'}, forall op : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, ((@bilinear P Q N' op) /\ ((@measurable_on M N' f s) /\ (@measurable_on M P g s))) -> @measurable_on M Q (fun x : cart R M => op (f x) (g x)) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_BOUNDED_MEASURABLE_PRODUCT : forall {M N' P Q : Type'}, forall op : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, ((@bilinear P Q N' op) /\ ((@measurable_on M N' f s) /\ ((@bounded N' (@IMAGE (cart R M) (cart R N') f s)) /\ (@absolutely_integrable_on P M g s)))) -> @absolutely_integrable_on Q M (fun x : cart R M => op (f x) (g x)) s. +Axiom thm_MEASURABLE_BOUNDED_BY_INTEGRABLE_IMP_ABSOLUTELY_INTEGRABLE_AE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R unit, forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((@integrable_on unit M g s) /\ ((@negligible M t) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> Rle (@vector_norm N' (f x)) (drop (g x)))))) -> @absolutely_integrable_on N' M f s. +Axiom thm_ABSOLUTELY_INTEGRABLE_SQUARE_INTEGRABLE_PRODUCT : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, ((@bilinear P Q N' bop) /\ ((@measurable_on M N' f s) /\ ((@integrable_on unit M (fun x : cart R M => lift (real_pow (@vector_norm N' (f x)) (NUMERAL (BIT0 (BIT1 0%N))))) s) /\ ((@measurable_on M P g s) /\ (@integrable_on unit M (fun x : cart R M => lift (real_pow (@vector_norm P (g x)) (NUMERAL (BIT0 (BIT1 0%N))))) s))))) -> @absolutely_integrable_on Q M (fun x : cart R M => bop (f x) (g x)) s. +Axiom thm_SQUARE_INTEGRAL_SQUARE_INTEGRABLE_PRODUCT_LE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((@integrable_on unit M (fun x : cart R M => lift (real_pow (@vector_norm N' (f x)) (NUMERAL (BIT0 (BIT1 0%N))))) s) /\ ((@measurable_on M P g s) /\ (@integrable_on unit M (fun x : cart R M => lift (real_pow (@vector_norm P (g x)) (NUMERAL (BIT0 (BIT1 0%N))))) s)))) -> Rle (real_pow (drop (@integral unit M s (fun x : cart R M => lift (Rmult (@vector_norm N' (f x)) (@vector_norm P (g x)))))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (drop (@integral unit M s (fun x : cart R M => lift (real_pow (@vector_norm N' (f x)) (NUMERAL (BIT0 (BIT1 0%N))))))) (drop (@integral unit M s (fun x : cart R M => lift (real_pow (@vector_norm P (g x)) (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_MEASURABLE_ON_EMPTY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', @measurable_on M N' f (@EMPTY (cart R M)). +Axiom thm_MEASURABLE_ON_INTER : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@measurable_on M N' f t)) -> @measurable_on M N' f (@INTER (cart R M) s t). +Axiom thm_MEASURABLE_ON_DIFF : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@measurable_on M N' f t)) -> @measurable_on M N' f (@DIFF (cart R M) s t). +Axiom thm_MEASURABLE_ON_UNION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@measurable_on M N' f t)) -> @measurable_on M N' f (@UNION (cart R M) s t). +Axiom thm_MEASURABLE_ON_UNIONS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall k : ((cart R M) -> Prop) -> Prop, ((@FINITE ((cart R M) -> Prop) k) /\ (forall s : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) s k) -> @measurable_on M N' f s)) -> @measurable_on M N' f (@UNIONS (cart R M) k). +Axiom thm_MEASURABLE_ON_COUNTABLE_UNIONS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall k : ((cart R M) -> Prop) -> Prop, ((@COUNTABLE ((cart R M) -> Prop) k) /\ (forall s : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) s k) -> @measurable_on M N' f s)) -> @measurable_on M N' f (@UNIONS (cart R M) k). +Axiom thm_ABSOLUTELY_INTEGRABLE_IMPROPER_SIMPLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, ((forall c : cart R M, forall d : cart R M, (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) (@open_interval M (@pair (cart R M) (cart R M) a b))) -> @absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M)))))) /\ (@bounded unit (@GSPEC (cart R unit) (fun GEN_PVAR_6595 : cart R unit => exists c : cart R M, exists d : cart R M, @SETSPEC (cart R unit) GEN_PVAR_6595 (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) (@open_interval M (@pair (cart R M) (cart R M) a b))) (@integral unit M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => lift (@vector_norm N' (f x)))))))) -> @absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_IMPROPER : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall b : cart R M, ((forall c : cart R M, forall d : cart R M, (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) (@open_interval M (@pair (cart R M) (cart R M) a b))) -> @integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M)))))) /\ ((@bounded N' (@GSPEC (cart R N') (fun GEN_PVAR_6598 : cart R N' => exists c : cart R M, exists d : cart R M, @SETSPEC (cart R N') GEN_PVAR_6598 (@SUBSET (cart R M) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) (@open_interval M (@pair (cart R M) (cart R M) a b))) (@integral N' M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) c d) (@nil (prod (cart R M) (cart R M))))) f)))) /\ (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> exists g : (cart R M) -> cart R unit, (@absolutely_integrable_on unit M g (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) /\ ((forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rle (@dollar R N' (f x) i) (drop (g x))) \/ (forall x : cart R M, (@IN (cart R M) x (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> Rge (@dollar R N' (f x) i) (drop (g x))))))) -> @absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))). +Axiom thm_NEGLIGIBLE_LOCALLY_LIPSCHITZ_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((@negligible M s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists t : (cart R M) -> Prop, exists b : R, (@_open M t) /\ ((@IN (cart R M) x t) /\ (forall y : cart R M, (@IN (cart R M) y (@INTER (cart R M) s t)) -> Rle (@vector_norm N' (@vector_sub N' (f y) (f x))) (Rmult b (@vector_norm M (@vector_sub M y x)))))))) -> @negligible N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_NEGLIGIBLE_LOCALLY_LIPSCHITZ_IMAGE_LOWDIM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((N.lt (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists t : (cart R M) -> Prop, exists b : R, (@_open M t) /\ ((@IN (cart R M) x t) /\ (forall y : cart R M, (@IN (cart R M) y (@INTER (cart R M) s t)) -> Rle (@vector_norm N' (@vector_sub N' (f y) (f x))) (Rmult b (@vector_norm M (@vector_sub M y x))))))) -> @negligible N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_NEGLIGIBLE_LIPSCHITZ_IMAGE_UNIV : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall B : R, ((@negligible N' s) /\ (forall x : cart R N', forall y : cart R N', Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm N' (@vector_sub N' x y))))) -> @negligible N' (@IMAGE (cart R N') (cart R N') f s). +Axiom thm_NEGLIGIBLE_DIFFERENTIABLE_IMAGE_NEGLIGIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((@negligible M s) /\ (@differentiable_on N' M f s))) -> @negligible N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_NEGLIGIBLE_DIFFERENTIABLE_IMAGE_LOWDIM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((N.lt (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ (@differentiable_on N' M f s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_BABY_SARD : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (@has_derivative N' M f (f' x) (@within (cart R M) (@_at M x) s)) /\ (N.lt (@rank M N' (@matrix M N' (f' x))) (@dimindex N' (@UNIV N'))))) -> @negligible N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_BABY_SARD_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists f' : (cart R M) -> cart R N', (@has_derivative N' M f f' (@within (cart R M) (@_at M x) s)) /\ (N.lt (@rank M N' (@matrix M N' f')) (@dimindex N' (@UNIV N'))))) -> @negligible N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_NEGLIGIBLE_INFINITE_PREIMAGES_MOSTLY_DIFFERENTIABLE_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((forall y : cart R N', @compact N' (@GSPEC (cart R N') (fun GEN_PVAR_6609 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6609 ((@IN (cart R N') x s) /\ ((f x) = y)) x))) /\ (@negligible N' (@IMAGE (cart R N') (cart R N') f (@GSPEC (cart R N') (fun GEN_PVAR_6610 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6610 ((@IN (cart R N') x s) /\ (~ (@differentiable N' N' f (@within (cart R N') (@_at N' x) s)))) x))))) -> @negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_6612 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_6612 (@INFINITE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_6611 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6611 ((@IN (cart R N') x s) /\ ((f x) = y)) x))) y)). +Axiom thm_NEGLIGIBLE_INFINITE_PREIMAGES_MOSTLY_DIFFERENTIABLE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@continuous_on N' N' f s) /\ ((@compact N' s) /\ (@negligible N' (@IMAGE (cart R N') (cart R N') f (@GSPEC (cart R N') (fun GEN_PVAR_6613 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6613 ((@IN (cart R N') x s) /\ (~ (@differentiable N' N' f (@within (cart R N') (@_at N' x) s)))) x)))))) -> @negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_6615 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_6615 (@INFINITE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_6614 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6614 ((@IN (cart R N') x s) /\ ((f x) = y)) x))) y)). +Axiom thm_NEGLIGIBLE_INFINITE_PREIMAGES_DIFFERENTIABLE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@differentiable_on N' N' f s)) -> @negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_6617 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_6617 (@INFINITE (cart R N') (@GSPEC (cart R N') (fun GEN_PVAR_6616 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6616 ((@IN (cart R N') x s) /\ ((f x) = y)) x))) y)). +Axiom thm_NEGLIGIBLE_IMAGE_BOUNDED_VARIATION_INTERVAL : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@has_bounded_variation_on N' f s) /\ (@is_interval unit s))) -> @negligible N' (@IMAGE (cart R unit) (cart R N') f s). +Axiom thm_NEGLIGIBLE_ABSOLUTELY_CONTINUOUS_IMAGE_LOWDIM : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@absolutely_continuous_on N' f s) /\ (@is_interval unit s))) -> @negligible N' (@IMAGE (cart R unit) (cart R N') f s). +Axiom thm_NEGLIGIBLE_RECTIFIABLE_PATH_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@rectifiable_path N' g)) -> @negligible N' (@path_image N' g). +Axiom thm_INTERIOR_RECTIFIABLE_PATH_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@rectifiable_path N' g)) -> (@interior N' (@path_image N' g)) = (@EMPTY (cart R N')). +Axiom thm_MEASURABLE_ON_INDICATOR : forall {_1477036 : Type'}, forall s : (cart R _1477036) -> Prop, forall t : (cart R _1477036) -> Prop, (@measurable_on _1477036 unit (@indicator _1477036 t) s) = (@lebesgue_measurable _1477036 (@INTER (cart R _1477036) s t)). +Axiom thm_MEASURABLE_ON_INDICATOR_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@SUBSET (cart R N') t s) -> (@measurable_on N' unit (@indicator N' t) s) = (@lebesgue_measurable N' t). +Axiom thm_MEASURABLE_IMP_LEBESGUE_MEASURABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@measurable N' s) -> @lebesgue_measurable N' s. +Axiom thm_NEGLIGIBLE_IMP_LEBESGUE_MEASURABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) -> @lebesgue_measurable N' s. +Axiom thm_LEBESGUE_MEASURABLE_EMPTY : forall {_1477102 : Type'}, @lebesgue_measurable _1477102 (@EMPTY (cart R _1477102)). +Axiom thm_LEBESGUE_MEASURABLE_UNIV : forall {N' : Type'}, @lebesgue_measurable N' (@UNIV (cart R N')). +Axiom thm_LEBESGUE_MEASURABLE_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> @lebesgue_measurable N' s. +Axiom thm_LEBESGUE_MEASURABLE_BALL : forall {N' : Type'}, forall a : cart R N', forall r : R, @lebesgue_measurable N' (@ball N' (@pair (cart R N') R a r)). +Axiom thm_LEBESGUE_MEASURABLE_CBALL : forall {N' : Type'}, forall a : cart R N', forall r : R, @lebesgue_measurable N' (@cball N' (@pair (cart R N') R a r)). +Axiom thm_LEBESGUE_MEASURABLE_INTERVAL : forall {N' : Type'}, (forall a : cart R N', forall b : cart R N', @lebesgue_measurable N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall a : cart R N', forall b : cart R N', @lebesgue_measurable N' (@open_interval N' (@pair (cart R N') (cart R N') a b))). +Axiom thm_LEBESGUE_MEASURABLE_INTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ (@lebesgue_measurable N' t)) -> @lebesgue_measurable N' (@INTER (cart R N') s t). +Axiom thm_LEBESGUE_MEASURABLE_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ (@lebesgue_measurable N' t)) -> @lebesgue_measurable N' (@UNION (cart R N') s t). +Axiom thm_LEBESGUE_MEASURABLE_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ (@lebesgue_measurable N' t)) -> @lebesgue_measurable N' (@DIFF (cart R N') s t). +Axiom thm_LEBESGUE_MEASURABLE_COMPL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) = (@lebesgue_measurable N' s). +Axiom thm_LEBESGUE_MEASURABLE_ON_SUBINTERVALS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) = (forall a : cart R N', forall b : cart R N', @lebesgue_measurable N' (@INTER (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_LEBESGUE_MEASURABLE_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@closed N' s) -> @lebesgue_measurable N' s. +Axiom thm_LEBESGUE_MEASURABLE_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@_open N' s) -> @lebesgue_measurable N' s. +Axiom thm_LEBESGUE_MEASURABLE_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@lebesgue_measurable N' s)) -> @lebesgue_measurable N' t. +Axiom thm_LEBESGUE_MEASURABLE_CLOSED_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@lebesgue_measurable N' s)) -> @lebesgue_measurable N' t. +Axiom thm_LEBESGUE_MEASURABLE_UNIONS : forall {_1477413 : Type'}, forall f : ((cart R _1477413) -> Prop) -> Prop, ((@FINITE ((cart R _1477413) -> Prop) f) /\ (forall s : (cart R _1477413) -> Prop, (@IN ((cart R _1477413) -> Prop) s f) -> @lebesgue_measurable _1477413 s)) -> @lebesgue_measurable _1477413 (@UNIONS (cart R _1477413) f). +Axiom thm_LEBESGUE_MEASURABLE_COUNTABLE_UNIONS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) f) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @lebesgue_measurable N' s)) -> @lebesgue_measurable N' (@UNIONS (cart R N') f). +Axiom thm_LEBESGUE_MEASURABLE_COUNTABLE_UNIONS_EXPLICIT : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, (forall n : N, @lebesgue_measurable N' (s n)) -> @lebesgue_measurable N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6622 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6622 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_LEBESGUE_MEASURABLE_COUNTABLE_INTERS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@COUNTABLE ((cart R N') -> Prop) f) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @lebesgue_measurable N' s)) -> @lebesgue_measurable N' (@INTERS (cart R N') f). +Axiom thm_LEBESGUE_MEASURABLE_COUNTABLE_INTERS_EXPLICIT : forall {N' : Type'}, forall s : N -> (cart R N') -> Prop, (forall n : N, @lebesgue_measurable N' (s n)) -> @lebesgue_measurable N' (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6623 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6623 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_LEBESGUE_MEASURABLE_INTERS : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) f) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> @lebesgue_measurable N' s)) -> @lebesgue_measurable N' (@INTERS (cart R N') f). +Axiom thm_GDELTA_IMP_LEBESGUE_MEASURABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@gdelta N' s) -> @lebesgue_measurable N' s. +Axiom thm_FSIGMA_IMP_LEBESGUE_MEASURABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@fsigma N' s) -> @lebesgue_measurable N' s. +Axiom thm_BOREL_IMP_LEBESGUE_MEASURABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@borel N' s) -> @lebesgue_measurable N' s. +Axiom thm_LEBESGUE_MEASURABLE_IFF_MEASURABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@bounded N' s) -> (@lebesgue_measurable N' s) = (@measurable N' s). +Axiom thm_LEBESGUE_MEASURABLE_MEASURABLE_ON_SUBINTERVALS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) = (forall a : cart R N', forall b : cart R N', @measurable N' (@INTER (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_LEBESGUE_MEASURABLE_MEASURABLE_ON_COUNTABLE_SUBINTERVALS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) = (forall n : N, @measurable N' (@INTER (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@vector_neg N' (@vec N' n)) (@vec N' n)) (@nil (prod (cart R N') (cart R N'))))))). +Axiom thm_MEASURABLE_ON_MEASURABLE_SUBSET : forall {_1477895 _1477898 : Type'}, forall f : (cart R _1477898) -> cart R _1477895, forall s : (cart R _1477898) -> Prop, forall t : (cart R _1477898) -> Prop, ((@SUBSET (cart R _1477898) s t) /\ ((@measurable_on _1477898 _1477895 f t) /\ (@measurable _1477898 s))) -> @measurable_on _1477898 _1477895 f s. +Axiom thm_LEBESGUE_MEASURABLE_JORDAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' (@frontier N' s)) -> @lebesgue_measurable N' s. +Axiom thm_LEBESGUE_MEASURABLE_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @lebesgue_measurable N' s. +Axiom thm_LEBESGUE_MEASURABLE_NEGLIGIBLE_SYMDIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ (@negligible N' (@UNION (cart R N') (@DIFF (cart R N') s t) (@DIFF (cart R N') t s)))) -> @lebesgue_measurable N' t. +Axiom thm_LEBESGUE_MEASURABLE_NEGLIGIBLE_SYMDIFF_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (@negligible N' (@UNION (cart R N') (@DIFF (cart R N') s t) (@DIFF (cart R N') t s))) -> (@lebesgue_measurable N' s) = (@lebesgue_measurable N' t). +Axiom thm_LEBESGUE_MEASURABLE_INSERT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@lebesgue_measurable N' (@INSERT (cart R N') a s)) = (@lebesgue_measurable N' s). +Axiom thm_LEBESGUE_MEASURABLE_DELETE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@lebesgue_measurable N' (@DELETE (cart R N') s a)) = (@lebesgue_measurable N' s). +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_LEBESGUE_MEASURABLE_INTER : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ (@lebesgue_measurable M t)) -> @absolutely_integrable_on N' M f (@INTER (cart R M) s t). +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_LEBESGUE_MEASURABLE_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ ((@SUBSET (cart R M) t s) /\ (@lebesgue_measurable M t))) -> @absolutely_integrable_on N' M f t. +Axiom thm_MEASURABLE_ON_TRANSLATION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@measurable_on M N' f (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M a x) s)) -> @measurable_on M N' (fun x : cart R M => f (@vector_add M a x)) s. +Axiom thm_MEASURABLE_ON_TRANSLATION_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, (@measurable_on M N' (fun x : cart R M => f (@vector_add M a x)) s) = (@measurable_on M N' f (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M a x) s)). +Axiom thm_NEGLIGIBLE_LINEAR_IMAGE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((@negligible M s) /\ (N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))))) -> @negligible N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_MEASURABLE_ON_LINEAR_IMAGE_EQ_GEN : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall h : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y))) -> (@measurable_on M P (@o (cart R M) (cart R N') (cart R P) h f) s) = (@measurable_on N' P h (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_MEASURABLE_ON_LINEAR_IMAGE_EQ : forall {N' P : Type'}, forall f : (cart R N') -> cart R N', forall h : (cart R N') -> cart R P, forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> (@measurable_on N' P (@o (cart R N') (cart R N') (cart R P) h f) s) = (@measurable_on N' P h (@IMAGE (cart R N') (cart R N') f s)). +Axiom thm_LEBESGUE_MEASURABLE_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@lebesgue_measurable N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@lebesgue_measurable N' s). +Axiom thm_LEBESGUE_MEASURABLE_LINEAR_IMAGE_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@linear N' N' f) /\ (forall x : cart R N', forall y : cart R N', ((f x) = (f y)) -> x = y)) -> (@lebesgue_measurable N' (@IMAGE (cart R N') (cart R N') f s)) = (@lebesgue_measurable N' s). +Axiom thm_MEASURABLE_ON_REFLECT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable_on M N' (fun x : cart R M => f (@vector_neg M x)) s) = (@measurable_on M N' f (@IMAGE (cart R M) (cart R M) (@vector_neg M) s)). +Axiom thm_MEASURABLE_ON_PREIMAGE_HALFSPACE_COMPONENT_GE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6640 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6640 (Rge (@dollar R N' (f x) k) a) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_HALFSPACE_COMPONENT_GT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6641 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6641 (Rgt (@dollar R N' (f x) k) a) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_HALFSPACE_COMPONENT_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6644 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6644 (Rle (@dollar R N' (f x) k) a) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall t : (cart R N') -> Prop, (@closed N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6663 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6663 (@IN (cart R N') (f x) t) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_CLOSED_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : cart R N', forall b : cart R N', @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6668 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6668 (@IN (cart R N') (f x) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_BOREL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall t : (cart R N') -> Prop, (@borel N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6675 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6675 (@IN (cart R N') (f x) t) x))). +Axiom thm_LEBESGUE_MEASURABLE_PREIMAGE_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, ((@measurable_on M N' f (@UNIV (cart R M))) /\ (@_open N' t)) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6676 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6676 (@IN (cart R N') (f x) t) x)). +Axiom thm_LEBESGUE_MEASURABLE_PREIMAGE_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, ((@measurable_on M N' f (@UNIV (cart R M))) /\ (@closed N' t)) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6677 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6677 (@IN (cart R N') (f x) t) x)). +Axiom thm_LEBESGUE_MEASURABLE_PREIMAGE_BOREL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, ((@measurable_on M N' f (@UNIV (cart R M))) /\ (@borel N' t)) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6678 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6678 (@IN (cart R N') (f x) t) x)). +Axiom thm_MEASURABLE_ON_PREIMAGE_ORTHANT_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : cart R N', @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6687 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6687 (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' (f x) k) (@dollar R N' a k)) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_ORTHANT_GE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : cart R N', @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6688 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6688 (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> Rge (@dollar R N' (f x) k) (@dollar R N' a k)) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_ORTHANT_LT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : cart R N', @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6697 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6697 (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> Rlt (@dollar R N' (f x) k) (@dollar R N' a k)) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_ORTHANT_GT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : cart R N', @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6698 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6698 (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> Rgt (@dollar R N' (f x) k) (@dollar R N' a k)) x))). +Axiom thm_MEASURABLE_ON_SIMPLE_FUNCTION_LIMIT_INCREASING : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, ((@measurable_on N' unit f (@UNIV (cart R N'))) /\ (forall x : cart R N', Rle (R_of_N (NUMERAL 0%N)) (drop (f x)))) = (exists g : N -> (cart R N') -> cart R unit, (forall n : N, forall x : cart R N', (Rle (R_of_N (NUMERAL 0%N)) (drop (g n x))) /\ (Rle (drop (g n x)) (drop (f x)))) /\ ((forall n : N, forall x : cart R N', Rle (drop (g n x)) (drop (g (N.succ n) x))) /\ ((forall n : N, @measurable_on N' unit (g n) (@UNIV (cart R N'))) /\ ((forall n : N, @FINITE (cart R unit) (@IMAGE (cart R N') (cart R unit) (g n) (@UNIV (cart R N')))) /\ (forall x : cart R N', @FImp unit N (fun n : N => g n x) (f x) sequentially))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_BOUNDED_MEASURABLE_PRODUCT_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_integrable_on N' M f s) = ((@measurable_on M N' f s) /\ (forall g : (cart R M) -> cart R unit, ((@measurable_on M unit g s) /\ (@bounded unit (@IMAGE (cart R M) (cart R unit) g s))) -> @integrable_on N' M (fun x : cart R M => @percent N' (drop (g x)) (f x)) s)). +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_LEBESGUE_MEASURABLE_SUBSET_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@absolutely_integrable_on N' M f s) = ((@measurable_on M N' f s) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@lebesgue_measurable M t)) -> @integrable_on N' M f t)). +Axiom thm_ABSOLUTELY_INTEGRABLE_BOUNDED_MEASURABLE_PRODUCT_EQ_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> (@absolutely_integrable_on N' M f s) = (forall g : (cart R M) -> cart R unit, ((@measurable_on M unit g s) /\ (@bounded unit (@IMAGE (cart R M) (cart R unit) g s))) -> @integrable_on N' M (fun x : cart R M => @percent N' (drop (g x)) (f x)) s). +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_LEBESGUE_MEASURABLE_SUBSET_EQ_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> (@absolutely_integrable_on N' M f s) = (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@lebesgue_measurable M t)) -> @integrable_on N' M f t). +Axiom thm_MEASURABLE_LEBESGUE_MEASURABLE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ ((@measurable N' t) /\ (@SUBSET (cart R N') s t))) -> @measurable N' s. +Axiom thm_MEASURABLE_LEBESGUE_MEASURABLE_INTER_MEASURABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ (@measurable N' t)) -> @measurable N' (@INTER (cart R N') s t). +Axiom thm_MEASURABLE_MEASURABLE_INTER_LEBESGUE_MEASURABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@measurable N' s) /\ (@lebesgue_measurable N' t)) -> @measurable N' (@INTER (cart R N') s t). +Axiom thm_LEBESGUE_MEASURABLE_MEASURABLE_INTER_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) = (forall t : (cart R N') -> Prop, (@measurable N' t) -> @measurable N' (@INTER (cart R N') s t)). +Axiom thm_MEASURABLE_INTER_HALFSPACE_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : R, forall i : N, (@measurable N' s) -> @measurable N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_6718 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6718 (Rle (@dollar R N' x i) a) x))). +Axiom thm_MEASURABLE_INTER_HALFSPACE_GE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : R, forall i : N, (@measurable N' s) -> @measurable N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_6719 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6719 (Rge (@dollar R N' x i) a) x))). +Axiom thm_MEASURABLE_MEASURABLE_DIFF_LEBESGUE_MEASURABLE : forall {_1484499 : Type'}, forall s : (cart R _1484499) -> Prop, forall t : (cart R _1484499) -> Prop, ((@measurable _1484499 s) /\ (@lebesgue_measurable _1484499 t)) -> @measurable _1484499 (@DIFF (cart R _1484499) s t). +Axiom thm_MEASURABLE_OPEN_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@measurable N' s)) -> @measurable N' t. +Axiom thm_MEASURABLE_CLOSED_IN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) t) /\ (@measurable N' s)) -> @measurable N' t. +Axiom thm_MEASURABLE_ON_REAL_SGN : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@measurable_on N' unit (fun x : cart R N' => lift (f x)) s) -> @measurable_on N' unit (fun x : cart R N' => lift (real_sgn (f x))) s. +Axiom thm_LEBESGUE_MEASURABLE_INNER_COMPACT : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ (~ (@negligible N' s))) -> exists k : (cart R N') -> Prop, (@SUBSET (cart R N') k s) /\ ((@compact N' k) /\ (Rlt (R_of_N (NUMERAL 0%N)) (@measure N' k))). +Axiom thm_CHOOSE_LARGE_MEASURABLE_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall B : R, ((@lebesgue_measurable N' s) /\ (~ (@measurable N' s))) -> exists t : (cart R N') -> Prop, (@SUBSET (cart R N') t s) /\ ((@measurable N' t) /\ (Rle B (@measure N' t))). +Axiom thm_CHOOSE_LARGE_COMPACT_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall B : R, ((@lebesgue_measurable N' s) /\ (~ (@measurable N' s))) -> exists t : (cart R N') -> Prop, (@SUBSET (cart R N') t s) /\ ((@compact N' t) /\ (Rle B (@measure N' t))). +Axiom thm_CHOOSE_LARGE_COMPACT_SUBSET_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall B : R, ((@lebesgue_measurable N' s) /\ (Rlt B (@measure N' s))) -> exists t : (cart R N') -> Prop, (@compact N' t) /\ ((@SUBSET (cart R N') t s) /\ (Rlt B (@measure N' t))). +Axiom thm_OUTER_LEBESGUE_MEASURE : forall {N' : Type'}, forall s : (cart R N') -> Prop, exists t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) /\ ((@lebesgue_measurable N' t) /\ (forall t' : (cart R N') -> Prop, ((@SUBSET (cart R N') s t') /\ (@lebesgue_measurable N' t')) -> @negligible N' (@DIFF (cart R N') t t'))). +Axiom thm_OUTER_MEASURE_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall u : (cart R N') -> Prop, ((@SUBSET (cart R N') s u) /\ (@measurable N' u)) -> exists t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) /\ ((@measurable N' t) /\ (forall t' : (cart R N') -> Prop, ((@SUBSET (cart R N') s t') /\ (@lebesgue_measurable N' t')) -> @negligible N' (@DIFF (cart R N') t t'))). +Axiom thm_OUTER_MEASURE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, (exists t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) /\ (@measurable N' t)) = (exists t : (cart R N') -> Prop, (@SUBSET (cart R N') s t) /\ ((@measurable N' t) /\ (forall t' : (cart R N') -> Prop, ((@SUBSET (cart R N') s t') /\ (@lebesgue_measurable N' t')) -> @negligible N' (@DIFF (cart R N') t t')))). +Axiom thm_CONTINUOUS_ON_MEASURE_IN_PORTION : forall {M N' : Type'}, forall f : (cart R M) -> (cart R N') -> R, forall s : (cart R N') -> Prop, forall t : (cart R M) -> Prop, ((@measurable N' s) /\ ((forall a : cart R M, (@IN (cart R M) a t) -> @lebesgue_measurable N' (@GSPEC (cart R N') (fun GEN_PVAR_6729 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6729 (Rle (f a x) (R_of_N (NUMERAL 0%N))) x))) /\ ((forall a : cart R M, (@IN (cart R M) a t) -> @negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_6730 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6730 ((f a x) = (R_of_N (NUMERAL 0%N))) x))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @continuous_on M unit (fun a : cart R M => lift (f a x)) t)))) -> @continuous_on M unit (fun a : cart R M => lift (@measure N' (@GSPEC (cart R N') (fun GEN_PVAR_6731 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6731 ((@IN (cart R N') x s) /\ (Rle (f a x) (R_of_N (NUMERAL 0%N)))) x)))) t. +Axiom thm_CONTINUOUS_ON_MEASURE_IN_HALFSPACE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall b : R, (@measurable N' s) -> @continuous_on N' unit (fun a : cart R N' => lift (@measure N' (@GSPEC (cart R N') (fun GEN_PVAR_6732 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6732 ((@IN (cart R N') x s) /\ (Rle (@dot N' a x) b)) x)))) (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N))). +Axiom thm_NEGLIGIBLE_DISJOINT_TRANSLATES : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall k : (cart R N') -> Prop, forall z : cart R N', ((@lebesgue_measurable N' s) /\ ((@limit_point_of N' z k) /\ (@pairwise (cart R N') (fun a : cart R N' => fun b : cart R N' => @DISJOINT (cart R N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' b x) s)) k))) -> @negligible N' s. +Axiom thm_MEASURABLE_ON_PREIMAGE_HALFSPACE_COMPONENT_LE_DENSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall r : R -> Prop, ((@closure unit (@IMAGE R (cart R unit) lift r)) = (@UNIV (cart R unit))) -> (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (@IN R a r))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6737 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6737 (Rle (@dollar R N' (f x) k) a) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_HALFSPACE_COMPONENT_GE_DENSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall r : R -> Prop, ((@closure unit (@IMAGE R (cart R unit) lift r)) = (@UNIV (cart R unit))) -> (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (@IN R a r))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6738 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6738 (Rge (@dollar R N' (f x) k) a) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_HALFSPACE_COMPONENT_LT_DENSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall r : R -> Prop, ((@closure unit (@IMAGE R (cart R unit) lift r)) = (@UNIV (cart R unit))) -> (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (@IN R a r))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6741 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6741 (Rlt (@dollar R N' (f x) k) a) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_HALFSPACE_COMPONENT_GT_DENSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall r : R -> Prop, ((@closure unit (@IMAGE R (cart R unit) lift r)) = (@UNIV (cart R unit))) -> (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (@IN R a r))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6744 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6744 (Rgt (@dollar R N' (f x) k) a) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_CLOSED_INTERVAL_DENSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, ((@closure N' t) = (@UNIV (cart R N'))) -> (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a t) /\ (@IN (cart R N') b t)) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6749 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6749 (@IN (cart R N') (f x) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_OPEN_INTERVAL_DENSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, ((@closure N' t) = (@UNIV (cart R N'))) -> (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : cart R N', forall b : cart R N', ((@IN (cart R N') a t) /\ (@IN (cart R N') b t)) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6755 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6755 (@IN (cart R N') (f x) (@open_interval N' (@pair (cart R N') (cart R N') a b))) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_ORTHANT_LE_DENSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, ((@closure N' t) = (@UNIV (cart R N'))) -> (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : cart R N', (@IN (cart R N') a t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6760 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6760 (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' (f x) k) (@dollar R N' a k)) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_ORTHANT_GE_DENSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, ((@closure N' t) = (@UNIV (cart R N'))) -> (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : cart R N', (@IN (cart R N') a t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6761 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6761 (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> Rge (@dollar R N' (f x) k) (@dollar R N' a k)) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_ORTHANT_LT_DENSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, ((@closure N' t) = (@UNIV (cart R N'))) -> (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : cart R N', (@IN (cart R N') a t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6767 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6767 (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> Rlt (@dollar R N' (f x) k) (@dollar R N' a k)) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_ORTHANT_GT_DENSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, ((@closure N' t) = (@UNIV (cart R N'))) -> (@measurable_on M N' f (@UNIV (cart R M))) = (forall a : cart R N', (@IN (cart R N') a t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6768 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6768 (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> Rgt (@dollar R N' (f x) k) (@dollar R N' a k)) x))). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> (@measurable_on M N' f s) = (forall t : (cart R N') -> Prop, (@closed N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6774 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6774 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_CLOSED_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> (@measurable_on M N' f s) = (forall a : cart R N', forall b : cart R N', @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6775 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6775 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) x))). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> (@measurable_on M N' f s) = (forall t : (cart R N') -> Prop, (@_open N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6776 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6776 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_HALFSPACE_COMPONENT_GE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> (@measurable_on M N' f s) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6777 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6777 ((@IN (cart R M) x s) /\ (Rge (@dollar R N' (f x) k) a)) x))). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_HALFSPACE_COMPONENT_GT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> (@measurable_on M N' f s) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6778 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6778 ((@IN (cart R M) x s) /\ (Rgt (@dollar R N' (f x) k) a)) x))). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_HALFSPACE_COMPONENT_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> (@measurable_on M N' f s) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6779 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6779 ((@IN (cart R M) x s) /\ (Rle (@dollar R N' (f x) k) a)) x))). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_HALFSPACE_COMPONENT_LT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> (@measurable_on M N' f s) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6780 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6780 ((@IN (cart R M) x s) /\ (Rlt (@dollar R N' (f x) k) a)) x))). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_BOREL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> (@measurable_on M N' f s) = (forall t : (cart R N') -> Prop, (@borel N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6782 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6782 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_OPEN_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> (@measurable_on M N' f s) = (forall a : cart R N', forall b : cart R N', @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6781 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6781 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) (@open_interval N' (@pair (cart R N') (cart R N') a b)))) x))). +Axiom thm_LEBESGUE_MEASURABLE_LEBESGUE_MEASURABLE_PREIMAGE_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@measurable_on M N' f s) /\ ((@lebesgue_measurable M s) /\ (@_open N' t))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6783 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6783 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_LEBESGUE_MEASURABLE_LEBESGUE_MEASURABLE_PREIMAGE_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@measurable_on M N' f s) /\ ((@lebesgue_measurable M s) /\ (@closed N' t))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6784 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6784 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_OPEN_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@lebesgue_measurable M s)) = (forall t : (cart R N') -> Prop, (@_open N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6786 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6786 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_CLOSED_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@lebesgue_measurable M s)) = (forall t : (cart R N') -> Prop, (@closed N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6788 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6788 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_MEASURABLE_ON_MEASURABLE_PREIMAGE_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable M s) -> (@measurable_on M N' f s) = (forall t : (cart R N') -> Prop, (@closed N' t) -> @measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6789 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6789 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_MEASURABLE_ON_MEASURABLE_PREIMAGE_CLOSED_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable M s) -> (@measurable_on M N' f s) = (forall a : cart R N', forall b : cart R N', @measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6790 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6790 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) x))). +Axiom thm_MEASURABLE_ON_MEASURABLE_PREIMAGE_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable M s) -> (@measurable_on M N' f s) = (forall t : (cart R N') -> Prop, (@_open N' t) -> @measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6791 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6791 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_MEASURABLE_ON_MEASURABLE_PREIMAGE_HALFSPACE_COMPONENT_GE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable M s) -> (@measurable_on M N' f s) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6792 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6792 ((@IN (cart R M) x s) /\ (Rge (@dollar R N' (f x) k) a)) x))). +Axiom thm_MEASURABLE_ON_MEASURABLE_PREIMAGE_HALFSPACE_COMPONENT_GT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable M s) -> (@measurable_on M N' f s) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6793 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6793 ((@IN (cart R M) x s) /\ (Rgt (@dollar R N' (f x) k) a)) x))). +Axiom thm_MEASURABLE_ON_MEASURABLE_PREIMAGE_HALFSPACE_COMPONENT_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable M s) -> (@measurable_on M N' f s) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6794 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6794 ((@IN (cart R M) x s) /\ (Rle (@dollar R N' (f x) k) a)) x))). +Axiom thm_MEASURABLE_ON_MEASURABLE_PREIMAGE_OPEN_INTERVAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable M s) -> (@measurable_on M N' f s) = (forall a : cart R N', forall b : cart R N', @measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6796 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6796 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) (@open_interval N' (@pair (cart R N') (cart R N') a b)))) x))). +Axiom thm_MEASURABLE_ON_MEASURABLE_PREIMAGE_HALFSPACE_COMPONENT_LT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable M s) -> (@measurable_on M N' f s) = (forall a : R, forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6795 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6795 ((@IN (cart R M) x s) /\ (Rlt (@dollar R N' (f x) k) a)) x))). +Axiom thm_MEASURABLE_MEASURABLE_PREIMAGE_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@measurable_on M N' f s) /\ ((@measurable M s) /\ (@_open N' t))) -> @measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6797 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6797 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_MEASURABLE_MEASURABLE_PREIMAGE_CLOSED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@measurable_on M N' f s) /\ ((@measurable M s) /\ (@closed N' t))) -> @measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6798 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6798 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_MEASURABLE_ON_MEASURABLE_PREIMAGE_OPEN_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@measurable M s)) = (forall t : (cart R N') -> Prop, (@_open N' t) -> @measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6800 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6800 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_MEASURABLE_ON_MEASURABLE_PREIMAGE_CLOSED_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@measurable M s)) = (forall t : (cart R N') -> Prop, (@closed N' t) -> @measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6802 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6802 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_LEBESGUE_MEASURABLE_LEBESGUE_MEASURABLE_PREIMAGE_BOREL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@measurable_on M N' f s) /\ ((@lebesgue_measurable M s) /\ (@borel N' t))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6803 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6803 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_BOREL_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@lebesgue_measurable M s)) = (forall t : (cart R N') -> Prop, (@borel N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6805 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6805 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_SUSLIN_LEBESGUE_MEASURABLE : forall {N' : Type'}, (@suslin (cart R N') (@lebesgue_measurable N')) = (@lebesgue_measurable N'). +Axiom thm_ANALYTIC_IMP_LEBESGUE_MEASURABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@analytic N' s) -> @lebesgue_measurable N' s. +Axiom thm_LEBESGUE_MEASURABLE_LEBESGUE_MEASURABLE_PREIMAGE_ANALYTIC : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@measurable_on M N' f s) /\ ((@lebesgue_measurable M s) /\ (@analytic N' t))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6815 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6815 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_LEBESGUE_MEASURABLE_PREIMAGE_ANALYTIC : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall t : (cart R N') -> Prop, ((@measurable_on M N' f (@UNIV (cart R M))) /\ (@analytic N' t)) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6818 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6818 (@IN (cart R N') (f x) t) x)). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_ANALYTIC_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (@lebesgue_measurable M s)) = (forall t : (cart R N') -> Prop, (@analytic N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6819 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6819 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_MEASURABLE_ON_LEBESGUE_MEASURABLE_PREIMAGE_ANALYTIC : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> (@measurable_on M N' f s) = (forall t : (cart R N') -> Prop, (@analytic N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6820 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6820 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x))). +Axiom thm_MEASURABLE_ON_PREIMAGE_ANALYTIC : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall t : (cart R N') -> Prop, (@analytic N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6821 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6821 (@IN (cart R N') (f x) t) x))). +Axiom thm_MEASURABLE_ON_LIFT_INV : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@measurable_on N' unit (fun x : cart R N' => lift (f x)) s) /\ (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_6824 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6824 ((@IN (cart R N') x s) /\ ((f x) = (R_of_N (NUMERAL 0%N)))) x)))) -> @measurable_on N' unit (fun x : cart R N' => lift (Rinv (f x))) s. +Axiom thm_MEASURABLE_ON_LIFT_DIV : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@measurable_on N' unit (fun x : cart R N' => lift (f x)) s) /\ ((@measurable_on N' unit (fun x : cart R N' => lift (g x)) s) /\ (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_6825 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_6825 ((@IN (cart R N') x s) /\ ((g x) = (R_of_N (NUMERAL 0%N)))) x))))) -> @measurable_on N' unit (fun x : cart R N' => lift (Rdiv (f x) (g x))) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_UNION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ (@absolutely_integrable_on N' M f t)) -> @absolutely_integrable_on N' M f (@UNION (cart R M) s t). +Axiom thm_ABSOLUTELY_INTEGRABLE_DIFF : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ (@absolutely_integrable_on N' M f t)) -> @absolutely_integrable_on N' M f (@DIFF (cart R M) s t). +Axiom thm_ABSOLUTELY_INTEGRABLE_INTER : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ (@absolutely_integrable_on N' M f t)) -> @absolutely_integrable_on N' M f (@INTER (cart R M) s t). +Axiom thm_INTEGRAL_COUNTABLE_UNIONS_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : N -> (cart R M) -> Prop, ((@absolutely_integrable_on N' M f (@UNIONS (cart R M) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_6829 : (cart R M) -> Prop => exists m : N, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_6829 (@IN N m (@UNIV N)) (s m))))) /\ (forall m : N, @lebesgue_measurable M (s m))) -> (forall n : N, @absolutely_integrable_on N' M f (@UNIONS (cart R M) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_6830 : (cart R M) -> Prop => exists m : N, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_6830 (@IN N m (dotdot (NUMERAL 0%N) n)) (s m))))) /\ (@FImp N' N (fun n : N => @integral N' M (@UNIONS (cart R M) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_6831 : (cart R M) -> Prop => exists m : N, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_6831 (@IN N m (dotdot (NUMERAL 0%N) n)) (s m)))) f) (@integral N' M (@UNIONS (cart R M) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_6832 : (cart R M) -> Prop => exists m : N, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_6832 (@IN N m (@UNIV N)) (s m)))) f) sequentially). +Axiom thm_LEBESGUE_MEASURABLE_OUTER_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@lebesgue_measurable N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists t : (cart R N') -> Prop, (@_open N' t) /\ ((@SUBSET (cart R N') s t) /\ ((@measurable N' (@DIFF (cart R N') t s)) /\ (Rlt (@measure N' (@DIFF (cart R N') t s)) e))). +Axiom thm_LEBESGUE_MEASURABLE_INNER_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((@lebesgue_measurable N' s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists t : (cart R N') -> Prop, (@closed N' t) /\ ((@SUBSET (cart R N') t s) /\ ((@measurable N' (@DIFF (cart R N') s t)) /\ (Rlt (@measure N' (@DIFF (cart R N') s t)) e))). +Axiom thm_STEINHAUS_LEBESGUE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ (~ (@negligible N' s))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (@SUBSET (cart R N') (@ball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) d)) (@GSPEC (cart R N') (fun GEN_PVAR_6835 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_6835 ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) (@vector_sub N' x y)))). +Axiom thm_LEBESGUE_MEASURABLE_REGULAR_OUTER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) -> exists k : (cart R N') -> Prop, exists c : N -> (cart R N') -> Prop, (@negligible N' k) /\ ((forall n : N, @_open N' (c n)) /\ (s = (@DIFF (cart R N') (@INTERS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6837 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6837 (@IN N n (@UNIV N)) (c n)))) k))). +Axiom thm_LEBESGUE_MEASURABLE_REGULAR_INNER : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) -> exists k : (cart R N') -> Prop, exists c : N -> (cart R N') -> Prop, (@negligible N' k) /\ ((forall n : N, @compact N' (c n)) /\ (s = (@UNION (cart R N') (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6842 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6842 (@IN N n (@UNIV N)) (c n)))) k))). +Axiom thm_LEBESGUE_MEASURABLE_SMALL_IMP_NEGLIGIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ (@lt_c (cart R N') R s (@UNIV R))) -> @negligible N' s. +Axiom thm_LEBESGUE_MEASURABLE_ALMOST_FSIGMA : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) -> exists c : (cart R N') -> Prop, exists t : (cart R N') -> Prop, (@fsigma N' c) /\ ((@negligible N' t) /\ (((@UNION (cart R N') c t) = s) /\ (@DISJOINT (cart R N') c t))). +Axiom thm_LEBESGUE_MEASURABLE_ALMOST_GDELTA : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) -> exists c : (cart R N') -> Prop, exists t : (cart R N') -> Prop, (@gdelta N' c) /\ ((@negligible N' t) /\ (((@UNION (cart R N') s t) = c) /\ (@DISJOINT (cart R N') t s))). +Axiom thm_NEGLIGIBLE_IFF_LEBESGUE_MEASURABLE_SUBSETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = (forall t : (cart R N') -> Prop, (@SUBSET (cart R N') t s) -> @lebesgue_measurable N' t). +Axiom thm_NEGLIGIBLE_IFF_MEASURABLE_SUBSETS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = (forall t : (cart R N') -> Prop, (@SUBSET (cart R N') t s) -> @measurable N' t). +Axiom thm_NON_MEASURABLE_SET : forall {N' : Type'}, exists s : (cart R N') -> Prop, ~ (@lebesgue_measurable N' s). +Axiom thm_PRESERVES_LEBESGUE_MEASURABLE_IMP_PRESERVES_NEGLIGIBLE : forall {_1493470 N' : Type'}, forall f : (cart R N') -> cart R _1493470, forall s : (cart R N') -> Prop, (forall t : (cart R N') -> Prop, ((@negligible N' t) /\ (@SUBSET (cart R N') t s)) -> @lebesgue_measurable _1493470 (@IMAGE (cart R N') (cart R _1493470) f t)) -> forall t : (cart R N') -> Prop, ((@negligible N' t) /\ (@SUBSET (cart R N') t s)) -> @negligible _1493470 (@IMAGE (cart R N') (cart R _1493470) f t). +Axiom thm_PRESERVES_NEGLIGIBLE_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)) = (forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f t)). +Axiom thm_PRESERVES_NEGLIGIBLE_IMAGE_UNIV : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall t : (cart R M) -> Prop, (@negligible M t) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)) = (forall t : (cart R M) -> Prop, (@negligible M t) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f t)). +Axiom thm_LEBESGUE_MEASURABLE_CONTINUOUS_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t))) -> forall t : (cart R M) -> Prop, ((@lebesgue_measurable M t) /\ (@SUBSET (cart R M) t s)) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f t). +Axiom thm_PRESERVES_LEBESGUE_MEASURABLE_IFF_PRESERVES_NEGLIGIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@continuous_on M N' f s) -> (forall t : (cart R M) -> Prop, ((@lebesgue_measurable M t) /\ (@SUBSET (cart R M) t s)) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f t)) = (forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)). +Axiom thm_PRESERVES_LEBESGUE_MEASURABLE_IFF_PRESERVES_NEGLIGIBLE_ALT : forall {M N' : Type'} (s : (cart R M) -> Prop), forall f : (cart R M) -> cart R N', (@continuous_on M N' f s) -> (forall t : (cart R M) -> Prop, ((@lebesgue_measurable M t) /\ (@SUBSET (cart R M) t s)) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f t)) = (forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f t)). +Axiom thm_LEBESGUE_MEASURABLE_DIFFERENTIABLE_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((@differentiable_on N' M f s) /\ (@lebesgue_measurable M s))) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LEBESGUE_MEASURABLE_LINEAR_IMAGE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((@lebesgue_measurable M s) /\ (N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))))) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_MEASURABLE_LINEAR_IMAGE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ ((@measurable M s) /\ (N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))))) -> @measurable N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LEBESGUE_MEASURABLE_LINEAR_IMAGE_EQ_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y))) -> (@lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f s)) = (@lebesgue_measurable M s). +Axiom thm_DOUBLE_LEBESGUE_MEASURABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall t : (cart R N') -> Prop, (@lebesgue_measurable N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6849 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6849 (@IN (cart R N') (f x) t) x))) = ((@measurable_on M N' f (@UNIV (cart R M))) /\ (forall t : (cart R N') -> Prop, (@negligible N' t) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6850 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6850 (@IN (cart R N') (f x) t) x)))). +Axiom thm_DOUBLE_LEBESGUE_MEASURABLE_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable M s) /\ ((@lebesgue_measurable N' t) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t))) -> (forall u : (cart R N') -> Prop, ((@lebesgue_measurable N' u) /\ (@SUBSET (cart R N') u t)) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6854 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6854 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x))) = ((@measurable_on M N' f s) /\ (forall u : (cart R N') -> Prop, ((@negligible N' u) /\ (@SUBSET (cart R N') u t)) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6855 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6855 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) u)) x)))). +Axiom thm_CONTINUOUS_IMP_MEASURABLE_ON_LEBESGUE_MEASURABLE_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@lebesgue_measurable M s)) -> @measurable_on M N' f s. +Axiom thm_CONTINUOUS_IMP_MEASURABLE_ON_CLOSED_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@continuous_on M N' f s) /\ (@closed M s)) -> @measurable_on M N' f s. +Axiom thm_CONTINUOUS_AE_IMP_MEASURABLE_ON_LEBESGUE_MEASURABLE_SUBSET : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall m : (cart R M) -> Prop, ((@continuous_on M N' f (@DIFF (cart R M) s m)) /\ ((@lebesgue_measurable M s) /\ (@negligible M m))) -> @measurable_on M N' f s. +Axiom thm_MEASURABLE_CONTINUOUS_COMPOSE : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall g : (cart R M) -> cart R N', ((@measurable_on N' P f (@UNIV (cart R N'))) /\ ((@continuous_on M N' g (@UNIV (cart R M))) /\ (forall k : (cart R N') -> Prop, (@negligible N' k) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_6861 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6861 (@IN (cart R N') (g x) k) x))))) -> @measurable_on M P (@o (cart R M) (cart R N') (cart R P) f g) (@UNIV (cart R M)). +Axiom thm_MEASURABLE_ON_COMPOSE_REV : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable M s) /\ (((@IMAGE (cart R M) (cart R N') g s) = t) /\ ((forall k : (cart R M) -> Prop, ((@lebesgue_measurable M k) /\ (@SUBSET (cart R M) k s)) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') g k)) /\ (@measurable_on M P (@o (cart R M) (cart R N') (cart R P) f g) s)))) -> @measurable_on N' P f t. +Axiom thm_MEASURABLE_ON_CONTINUOUS_COMPOSE_REV : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable M s) /\ (((@IMAGE (cart R M) (cart R N') g s) = t) /\ ((forall k : (cart R M) -> Prop, ((@negligible M k) /\ (@SUBSET (cart R M) k s)) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') g k)) /\ ((@continuous_on M N' g s) /\ (@measurable_on M P (@o (cart R M) (cart R N') (cart R P) f g) s))))) -> @measurable_on N' P f t. +Axiom thm_MEASURABLE_ON_COMPOSE_GEN : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable N' t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) t) /\ ((forall k : (cart R N') -> Prop, ((@lebesgue_measurable N' k) /\ (@SUBSET (cart R N') k t)) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6864 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6864 ((@IN (cart R M) x s) /\ (@IN (cart R N') (g x) k)) x))) /\ (@measurable_on N' P f t)))) -> @measurable_on M P (@o (cart R M) (cart R N') (cart R P) f g) s. +Axiom thm_MEASURABLE_ON_COMPOSE_ALT : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable M s) /\ ((@lebesgue_measurable N' t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) t) /\ ((forall k : (cart R N') -> Prop, ((@negligible N' k) /\ (@SUBSET (cart R N') k t)) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6865 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6865 ((@IN (cart R M) x s) /\ (@IN (cart R N') (g x) k)) x))) /\ ((@measurable_on M N' g s) /\ (@measurable_on N' P f t)))))) -> @measurable_on M P (@o (cart R M) (cart R N') (cart R P) f g) s. +Axiom thm_MEASURABLE_ON_CONTINUOUS_COMPOSE : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable M s) /\ ((@lebesgue_measurable N' t) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) t) /\ ((@measurable_on N' P f t) /\ ((@continuous_on M N' g s) /\ (forall k : (cart R N') -> Prop, ((@negligible N' k) /\ (@SUBSET (cart R N') k t)) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6866 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6866 ((@IN (cart R M) x s) /\ (@IN (cart R N') (g x) k)) x)))))))) -> @measurable_on M P (@o (cart R M) (cart R N') (cart R P) f g) s. +Axiom thm_MEASURABLE_ON_DIFFERENTIABLE_IMAGE : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((@lebesgue_measurable M s) /\ ((@differentiable_on N' M g s) /\ (@measurable_on M P (@o (cart R M) (cart R N') (cart R P) f g) s)))) -> @measurable_on N' P f (@IMAGE (cart R M) (cart R N') g s). +Axiom thm_BOREL_MEASURABLE_IMP_MEASURABLE_ON : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@borel_measurable_on M N' f s) /\ (@lebesgue_measurable M s)) -> @measurable_on M N' f s. +Axiom thm_BAIRE_IMP_MEASURABLE_ON : forall {M N' : Type'} (n : N), forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@baire M N' n s f) /\ (@lebesgue_measurable M s)) -> @measurable_on M N' f s. +Axiom thm_BAIRE_IMP_MEASURABLE_ON_UNIV : forall {_1495495 M N' : Type'} (n : N), forall f : (cart R M) -> cart R N', forall s : _1495495, (@baire M N' n (@UNIV (cart R M)) f) -> @measurable_on M N' f (@UNIV (cart R M)). +Axiom thm_MEASURABLE_EQ_ALMOST_BAIRE1 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (exists s : (cart R M) -> Prop, (@negligible M (@DIFF (cart R M) (@UNIV (cart R M)) s)) /\ (@baire M N' (NUMERAL (BIT1 0%N)) s f)). +Axiom thm_MEASURABLE_EQ_ALMOST_BAIRE2 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (exists g : (cart R M) -> cart R N', (@baire M N' (NUMERAL (BIT0 (BIT1 0%N))) (@UNIV (cart R M)) g) /\ (@negligible M (@GSPEC (cart R M) (fun GEN_PVAR_6893 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6893 (~ ((g x) = (f x))) x)))). +Axiom thm_LEBESGUE_DENSITY_THEOREM_INTEGRAL_NORM_CBALL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall a : cart R M, forall b : cart R M, @absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> exists k : (cart R M) -> Prop, (@negligible M k) /\ (forall x : cart R M, (~ (@IN (cart R M) x k)) -> @FImp unit (cart R unit) (fun e : cart R unit => @percent unit (Rinv (@measure M (@cball M (@pair (cart R M) R x (drop e))))) (@integral unit M (@cball M (@pair (cart R M) R x (drop e))) (fun y : cart R M => lift (@vector_norm N' (@vector_sub N' (f y) (f x)))))) (@vec unit (NUMERAL 0%N)) (@within (cart R unit) (@_at unit (@vec unit (NUMERAL 0%N))) (@GSPEC (cart R unit) (fun GEN_PVAR_6894 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6894 (Rlt (R_of_N (NUMERAL 0%N)) (drop t)) t)))). +Axiom thm_LEBESGUE_DENSITY_THEOREM_INTEGRAL_NORM_BALL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (forall a : cart R M, forall b : cart R M, @absolutely_integrable_on N' M f (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M)))))) -> exists k : (cart R M) -> Prop, (@negligible M k) /\ (forall x : cart R M, (~ (@IN (cart R M) x k)) -> @FImp unit (cart R unit) (fun e : cart R unit => @percent unit (Rinv (@measure M (@ball M (@pair (cart R M) R x (drop e))))) (@integral unit M (@ball M (@pair (cart R M) R x (drop e))) (fun y : cart R M => lift (@vector_norm N' (@vector_sub N' (f y) (f x)))))) (@vec unit (NUMERAL 0%N)) (@within (cart R unit) (@_at unit (@vec unit (NUMERAL 0%N))) (@GSPEC (cart R unit) (fun GEN_PVAR_6895 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6895 (Rlt (R_of_N (NUMERAL 0%N)) (drop t)) t)))). +Axiom thm_LEBESGUE_DENSITY_THEOREM_INTEGRAL_CBALL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall a : cart R M, forall b : cart R M, @absolutely_integrable_on N' M f (@INTER (cart R M) s (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> exists k : (cart R M) -> Prop, (@negligible M k) /\ (forall x : cart R M, (~ (@IN (cart R M) x k)) -> @FImp N' (cart R unit) (fun e : cart R unit => @percent N' (Rinv (@measure M (@cball M (@pair (cart R M) R x (drop e))))) (@integral N' M (@INTER (cart R M) s (@cball M (@pair (cart R M) R x (drop e)))) f)) (@COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) (@within (cart R unit) (@_at unit (@vec unit (NUMERAL 0%N))) (@GSPEC (cart R unit) (fun GEN_PVAR_6896 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6896 (Rlt (R_of_N (NUMERAL 0%N)) (drop t)) t)))). +Axiom thm_LEBESGUE_DENSITY_THEOREM_INTEGRAL_BALL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall a : cart R M, forall b : cart R M, @absolutely_integrable_on N' M f (@INTER (cart R M) s (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))))) -> exists k : (cart R M) -> Prop, (@negligible M k) /\ (forall x : cart R M, (~ (@IN (cart R M) x k)) -> @FImp N' (cart R unit) (fun e : cart R unit => @percent N' (Rinv (@measure M (@ball M (@pair (cart R M) R x (drop e))))) (@integral N' M (@INTER (cart R M) s (@ball M (@pair (cart R M) R x (drop e)))) f)) (@COND (cart R N') (@IN (cart R M) x s) (f x) (@vec N' (NUMERAL 0%N))) (@within (cart R unit) (@_at unit (@vec unit (NUMERAL 0%N))) (@GSPEC (cart R unit) (fun GEN_PVAR_6897 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6897 (Rlt (R_of_N (NUMERAL 0%N)) (drop t)) t)))). +Axiom thm_LEBESGUE_DENSITY_THEOREM_LIFT_CBALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) -> exists k : (cart R N') -> Prop, (@negligible N' k) /\ (forall x : cart R N', (~ (@IN (cart R N') x k)) -> @FImp unit (cart R unit) (fun e : cart R unit => lift (Rdiv (@measure N' (@INTER (cart R N') s (@cball N' (@pair (cart R N') R x (drop e))))) (@measure N' (@cball N' (@pair (cart R N') R x (drop e)))))) (@COND (cart R unit) (@IN (cart R N') x s) (@vec unit (NUMERAL (BIT1 0%N))) (@vec unit (NUMERAL 0%N))) (@within (cart R unit) (@_at unit (@vec unit (NUMERAL 0%N))) (@GSPEC (cart R unit) (fun GEN_PVAR_6898 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6898 (Rlt (R_of_N (NUMERAL 0%N)) (drop t)) t)))). +Axiom thm_LEBESGUE_DENSITY_THEOREM_LIFT_BALL : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) -> exists k : (cart R N') -> Prop, (@negligible N' k) /\ (forall x : cart R N', (~ (@IN (cart R N') x k)) -> @FImp unit (cart R unit) (fun e : cart R unit => lift (Rdiv (@measure N' (@INTER (cart R N') s (@ball N' (@pair (cart R N') R x (drop e))))) (@measure N' (@ball N' (@pair (cart R N') R x (drop e)))))) (@COND (cart R unit) (@IN (cart R N') x s) (@vec unit (NUMERAL (BIT1 0%N))) (@vec unit (NUMERAL 0%N))) (@within (cart R unit) (@_at unit (@vec unit (NUMERAL 0%N))) (@GSPEC (cart R unit) (fun GEN_PVAR_6899 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6899 (Rlt (R_of_N (NUMERAL 0%N)) (drop t)) t)))). +Axiom thm_DIFFERENTIAL_ZERO_MAXMIN_DENSITY : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall f' : (cart R N') -> cart R unit, forall s : (cart R N') -> Prop, forall a : cart R N', ((@has_derivative unit N' f f' (@within (cart R N') (@_at N' a) s)) /\ (((@eventually (cart R N') (fun x : cart R N' => Rle (drop (f a)) (drop (f x))) (@within (cart R N') (@_at N' a) s)) \/ (@eventually (cart R N') (fun x : cart R N' => Rle (drop (f x)) (drop (f a))) (@within (cart R N') (@_at N' a) s))) /\ ((@lebesgue_measurable N' s) /\ (@FImp unit (cart R unit) (fun e : cart R unit => lift (Rdiv (@measure N' (@INTER (cart R N') s (@ball N' (@pair (cart R N') R a (drop e))))) (@measure N' (@ball N' (@pair (cart R N') R a (drop e)))))) (@vec unit (NUMERAL (BIT1 0%N))) (@within (cart R unit) (@_at unit (@vec unit (NUMERAL 0%N))) (@GSPEC (cart R unit) (fun GEN_PVAR_6910 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6910 (Rlt (R_of_N (NUMERAL 0%N)) (drop t)) t))))))) -> f' = (fun v : cart R N' => @vec unit (NUMERAL 0%N)). +Axiom thm_DIFFERENTIAL_ZERO_LEVELSET_DENSITY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, forall c : cart R N', ((@has_derivative N' M f f' (@within (cart R M) (@_at M a) s)) /\ ((@eventually (cart R M) (fun x : cart R M => (f x) = c) (@within (cart R M) (@_at M a) s)) /\ ((@lebesgue_measurable M s) /\ (@FImp unit (cart R unit) (fun e : cart R unit => lift (Rdiv (@measure M (@INTER (cart R M) s (@ball M (@pair (cart R M) R a (drop e))))) (@measure M (@ball M (@pair (cart R M) R a (drop e)))))) (@vec unit (NUMERAL (BIT1 0%N))) (@within (cart R unit) (@_at unit (@vec unit (NUMERAL 0%N))) (@GSPEC (cart R unit) (fun GEN_PVAR_6911 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_6911 (Rlt (R_of_N (NUMERAL 0%N)) (drop t)) t))))))) -> f' = (fun h : cart R M => @vec N' (NUMERAL 0%N)). +Axiom thm_NEGLIGIBLE_POINTS_OF_AMBIGUOUS_DERIVATIVE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_6914 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6914 ((@IN (cart R M) x s) /\ (exists y : (cart R M) -> cart R N', exists z : (cart R M) -> cart R N', (@has_derivative N' M f y (@within (cart R M) (@_at M x) s)) /\ ((@has_derivative N' M f z (@within (cart R M) (@_at M x) s)) /\ (~ (y = z))))) x)). +Axiom thm_PAIRWISE_DISJOINT_LEBESGUE_MEASURABLE_IMP_COUNTABLE : forall {N' : Type'}, forall f : ((cart R N') -> Prop) -> Prop, ((@pairwise ((cart R N') -> Prop) (fun s : (cart R N') -> Prop => fun t : (cart R N') -> Prop => @negligible N' (@INTER (cart R N') s t)) f) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s f) -> (@lebesgue_measurable N' s) /\ (~ (@negligible N' s)))) -> @COUNTABLE ((cart R N') -> Prop) f. +Axiom thm_WIENER_COVERING_LEMMA_BALLS : forall {A N' : Type'}, forall k : A -> Prop, forall a : A -> cart R N', forall r : A -> R, forall s : (cart R N') -> Prop, ((@FINITE A k) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) (fun i : A => @ball N' (@pair (cart R N') R (a i) (r i))) k)))) -> exists c : A -> Prop, (@SUBSET A c k) /\ ((@pairwise A (fun i : A => fun j : A => @DISJOINT (cart R N') (@ball N' (@pair (cart R N') R (a i) (r i))) (@ball N' (@pair (cart R N') R (a j) (r j)))) c) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) (fun i : A => @ball N' (@pair (cart R N') R (a i) (Rmult (R_of_N (NUMERAL (BIT1 (BIT1 0%N)))) (r i)))) c)))). +Axiom thm_WIENER_COVERING_LEMMA_CBALLS : forall {A N' : Type'}, forall k : A -> Prop, forall a : A -> cart R N', forall r : A -> R, forall s : (cart R N') -> Prop, ((@FINITE A k) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) (fun i : A => @cball N' (@pair (cart R N') R (a i) (r i))) k)))) -> exists c : A -> Prop, (@SUBSET A c k) /\ ((@pairwise A (fun i : A => fun j : A => @DISJOINT (cart R N') (@cball N' (@pair (cart R N') R (a i) (r i))) (@cball N' (@pair (cart R N') R (a j) (r j)))) c) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) (fun i : A => @cball N' (@pair (cart R N') R (a i) (Rmult (R_of_N (NUMERAL (BIT1 (BIT1 0%N)))) (r i)))) c)))). +Axiom thm_VITALI_COVERING_LEMMA_CBALLS_BALLS : forall {A N' : Type'}, forall a : A -> cart R N', forall r : A -> R, forall k : A -> Prop, forall B : R, (forall i : A, (@IN A i k) -> (Rlt (R_of_N (NUMERAL 0%N)) (r i)) /\ (Rle (r i) B)) -> exists c : A -> Prop, (@COUNTABLE A c) /\ ((@SUBSET A c k) /\ ((@pairwise A (fun i : A => fun j : A => @DISJOINT (cart R N') (@cball N' (@pair (cart R N') R (a i) (r i))) (@cball N' (@pair (cart R N') R (a j) (r j)))) c) /\ (forall i : A, (@IN A i k) -> exists j : A, (@IN A j c) /\ ((~ (@DISJOINT (cart R N') (@cball N' (@pair (cart R N') R (a i) (r i))) (@cball N' (@pair (cart R N') R (a j) (r j))))) /\ (@SUBSET (cart R N') (@cball N' (@pair (cart R N') R (a i) (r i))) (@ball N' (@pair (cart R N') R (a j) (Rmult (R_of_N (NUMERAL (BIT1 (BIT0 (BIT1 0%N))))) (r j))))))))). +Axiom thm_VITALI_COVERING_LEMMA_CBALLS : forall {A N' : Type'}, forall s : (cart R N') -> Prop, forall a : A -> cart R N', forall r : A -> R, forall k : A -> Prop, forall B : R, ((@SUBSET (cart R N') s (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) (fun i : A => @cball N' (@pair (cart R N') R (a i) (r i))) k))) /\ (forall i : A, (@IN A i k) -> (Rlt (R_of_N (NUMERAL 0%N)) (r i)) /\ (Rle (r i) B))) -> exists c : A -> Prop, (@COUNTABLE A c) /\ ((@SUBSET A c k) /\ ((@pairwise A (fun i : A => fun j : A => @DISJOINT (cart R N') (@cball N' (@pair (cart R N') R (a i) (r i))) (@cball N' (@pair (cart R N') R (a j) (r j)))) c) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) (fun i : A => @cball N' (@pair (cart R N') R (a i) (Rmult (R_of_N (NUMERAL (BIT1 (BIT0 (BIT1 0%N))))) (r i)))) c))))). +Axiom thm_VITALI_COVERING_LEMMA_BALLS : forall {A N' : Type'}, forall s : (cart R N') -> Prop, forall a : A -> cart R N', forall r : A -> R, forall k : A -> Prop, forall B : R, ((@SUBSET (cart R N') s (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) (fun i : A => @ball N' (@pair (cart R N') R (a i) (r i))) k))) /\ (forall i : A, (@IN A i k) -> (Rlt (R_of_N (NUMERAL 0%N)) (r i)) /\ (Rle (r i) B))) -> exists c : A -> Prop, (@COUNTABLE A c) /\ ((@SUBSET A c k) /\ ((@pairwise A (fun i : A => fun j : A => @DISJOINT (cart R N') (@ball N' (@pair (cart R N') R (a i) (r i))) (@ball N' (@pair (cart R N') R (a j) (r j)))) c) /\ (@SUBSET (cart R N') s (@UNIONS (cart R N') (@IMAGE A ((cart R N') -> Prop) (fun i : A => @ball N' (@pair (cart R N') R (a i) (Rmult (R_of_N (NUMERAL (BIT1 (BIT0 (BIT1 0%N))))) (r i)))) c))))). +Axiom thm_VITALI_COVERING_THEOREM_CBALLS : forall {A N' : Type'}, forall k : A -> Prop, forall a : A -> cart R N', forall r : A -> R, forall s : (cart R N') -> Prop, ((forall i : A, (@IN A i k) -> Rlt (R_of_N (NUMERAL 0%N)) (r i)) /\ (forall x : cart R N', forall d : R, ((@IN (cart R N') x s) /\ (Rlt (R_of_N (NUMERAL 0%N)) d)) -> exists i : A, (@IN A i k) /\ ((@IN (cart R N') x (@cball N' (@pair (cart R N') R (a i) (r i)))) /\ (Rlt (r i) d)))) -> exists c : A -> Prop, (@COUNTABLE A c) /\ ((@SUBSET A c k) /\ ((@pairwise A (fun i : A => fun j : A => @DISJOINT (cart R N') (@cball N' (@pair (cart R N') R (a i) (r i))) (@cball N' (@pair (cart R N') R (a j) (r j)))) c) /\ (@negligible N' (@DIFF (cart R N') s (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6926 : (cart R N') -> Prop => exists i : A, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6926 (@IN A i c) (@cball N' (@pair (cart R N') R (a i) (r i)))))))))). +Axiom thm_VITALI_COVERING_THEOREM_BALLS : forall {A N' : Type'}, forall k : A -> Prop, forall a : A -> cart R N', forall r : A -> R, forall s : (cart R N') -> Prop, (forall x : cart R N', forall d : R, ((@IN (cart R N') x s) /\ (Rlt (R_of_N (NUMERAL 0%N)) d)) -> exists i : A, (@IN A i k) /\ ((@IN (cart R N') x (@ball N' (@pair (cart R N') R (a i) (r i)))) /\ (Rlt (r i) d))) -> exists c : A -> Prop, (@COUNTABLE A c) /\ ((@SUBSET A c k) /\ ((@pairwise A (fun i : A => fun j : A => @DISJOINT (cart R N') (@ball N' (@pair (cart R N') R (a i) (r i))) (@ball N' (@pair (cart R N') R (a j) (r j)))) c) /\ (@negligible N' (@DIFF (cart R N') s (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_6930 : (cart R N') -> Prop => exists i : A, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_6930 (@IN A i c) (@ball N' (@pair (cart R N') R (a i) (r i)))))))))). +Axiom thm_LOCALLY_NEGLIGIBLE_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = (forall x : cart R N', (@IN (cart R N') x s) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@IN (cart R N') x u) /\ (@negligible N' u))). +Axiom thm_LOCALLY_NEGLIGIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@negligible N') s) = (@negligible N' s). +Axiom thm_LOCALLY_LEBESGUE_MEASURABLE_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) = (forall x : cart R N', (@IN (cart R N') x s) -> exists u : (cart R N') -> Prop, (@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ ((@IN (cart R N') x u) /\ (@lebesgue_measurable N' u))). +Axiom thm_LOCALLY_LEBESGUE_MEASURABLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@locally N' (@lebesgue_measurable N') s) = (@lebesgue_measurable N' s). +Axiom thm_NEGLIGIBLE_EQ_ZERO_DENSITY_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = (forall x : cart R N', forall e : R, ((@IN (cart R N') x s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists d : R, exists u : (cart R N') -> Prop, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((Rle d e) /\ ((@SUBSET (cart R N') (@INTER (cart R N') s (@ball N' (@pair (cart R N') R x d))) u) /\ ((@measurable N' u) /\ (Rlt (@measure N' u) (Rmult e (@measure N' (@ball N' (@pair (cart R N') R x d))))))))). +Axiom thm_NEGLIGIBLE_EQ_ZERO_DENSITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@negligible N' s) = (forall x : cart R N', forall r : R, forall e : R, ((@IN (cart R N') x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (Rlt (R_of_N (NUMERAL 0%N)) r))) -> exists d : R, exists u : (cart R N') -> Prop, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((Rle d r) /\ ((@SUBSET (cart R N') (@INTER (cart R N') s (@ball N' (@pair (cart R N') R x d))) u) /\ ((@measurable N' u) /\ (Rlt (@measure N' u) (Rmult e (@measure N' (@ball N' (@pair (cart R N') R x d))))))))). +Axiom thm_LEBESGUE_MEASURABLE_POINTS_OF_CONVERGENCE : forall {M N' P : Type'}, forall f : (cart R M) -> (cart R N') -> cart R P, forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@lebesgue_measurable M s) /\ ((forall y : cart R N', @continuous_on M P (fun x : cart R M => f x y) s) /\ (@continuous_on M N' g s))) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_6960 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_6960 ((@IN (cart R M) x s) /\ (exists l : cart R P, @FImp P (cart R N') (f x) l (@_at N' (g x)))) x)). +Axiom thm_BOREL_POINTS_OF_DIFFERENTIABILITY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', @borel M (@GSPEC (cart R M) (fun GEN_PVAR_7134 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7134 (@differentiable N' M f (@_at M x)) x)). +Axiom thm_LEBESGUE_MEASURABLE_POINTS_OF_DIFFERENTIABILITY_WITHIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_7311 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7311 ((@IN (cart R M) x s) /\ (@differentiable N' M f (@within (cart R M) (@_at M x) s))) x)). +Axiom thm_LEBESGUE_MEASURABLE_POINTS_OF_DIFFERENTIABILITY_AT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', @lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_7312 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7312 (@differentiable N' M f (@_at M x)) x)). +Axiom thm_MEASURABLE_ON_PARTIAL_DERIVATIVES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall i : N, forall j : N, ((@lebesgue_measurable M s) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M f (f' x) (@within (cart R M) (@_at M x) s)) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex M (@UNIV M)))))))) -> @measurable_on M unit (fun x : cart R M => lift (@dollar R M (@dollar (cart R M) N' (@matrix M N' (f' x)) i) j)) s. +Axiom thm_MEASURABLE_ON_VECTOR_DERIVATIVE_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@lebesgue_measurable unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x s) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) s))) -> @measurable_on unit N' f' s. +Axiom thm_MEASURABLE_ON_VECTOR_DERIVATIVE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall k : (cart R unit) -> Prop, ((@negligible unit k) /\ ((@lebesgue_measurable unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) s k)) -> @has_vector_derivative N' f (f' x) (@_at unit x)))) -> @measurable_on unit N' f' s. +Axiom thm_MEASURABLE_ON_DET_JACOBIAN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s))) -> @measurable_on N' unit (fun x : cart R N' => lift (@det N' (@matrix N' N' (f' x)))) s. +Axiom thm_LUZIN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall e : R, ((@measurable M s) /\ ((@measurable_on M N' f s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists k : (cart R M) -> Prop, (@compact M k) /\ ((@SUBSET (cart R M) k s) /\ ((Rlt (@measure M (@DIFF (cart R M) s k)) e) /\ (@continuous_on M N' f k))). +Axiom thm_LUZIN_EQ_ALT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable M s) -> (@measurable_on M N' f s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists k : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@compact M k) /\ ((@SUBSET (cart R M) k s) /\ ((Rlt (@measure M (@DIFF (cart R M) s k)) e) /\ ((@continuous_on M N' g (@UNIV (cart R M))) /\ (forall x : cart R M, (@IN (cart R M) x k) -> (g x) = (f x)))))). +Axiom thm_LUZIN_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable M s) -> (@measurable_on M N' f s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists k : (cart R M) -> Prop, (@compact M k) /\ ((@SUBSET (cart R M) k s) /\ ((Rlt (@measure M (@DIFF (cart R M) s k)) e) /\ (@continuous_on M N' f k)))). +Axiom thm_LUZIN_SIGMA : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@lebesgue_measurable M s) /\ (@measurable_on M N' f s)) -> exists u : ((cart R M) -> Prop) -> Prop, (@COUNTABLE ((cart R M) -> Prop) u) /\ ((@pairwise ((cart R M) -> Prop) (@DISJOINT (cart R M)) u) /\ ((forall k : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) k u) -> (@compact M k) /\ ((@SUBSET (cart R M) k s) /\ (@continuous_on M N' f k))) /\ (@negligible M (@DIFF (cart R M) s (@UNIONS (cart R M) u))))). +Axiom thm_LUZIN_SIGMA_EXPLICIT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@lebesgue_measurable M s) /\ (@measurable_on M N' f s)) -> exists k : N -> (cart R M) -> Prop, (forall n : N, @compact M (k n)) /\ ((forall n : N, @SUBSET (cart R M) (k n) s) /\ ((forall n : N, @continuous_on M N' f (k n)) /\ ((@pairwise N (fun m : N => fun n : N => @DISJOINT (cart R M) (k m) (k n)) (@UNIV N)) /\ (@negligible M (@DIFF (cart R M) s (@UNIONS (cart R M) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_7489 : (cart R M) -> Prop => exists n : N, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_7489 (@IN N n (@UNIV N)) (k n))))))))). +Axiom thm_LUZIN_SIGMA_NESTED : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@lebesgue_measurable M s) /\ (@measurable_on M N' f s)) -> exists k : N -> (cart R M) -> Prop, (forall n : N, @compact M (k n)) /\ ((forall n : N, @SUBSET (cart R M) (k n) s) /\ ((forall n : N, @continuous_on M N' f (k n)) /\ ((forall n : N, @SUBSET (cart R M) (k n) (k (N.succ n))) /\ (@negligible M (@DIFF (cart R M) s (@UNIONS (cart R M) (@GSPEC ((cart R M) -> Prop) (fun GEN_PVAR_7493 : (cart R M) -> Prop => exists n : N, @SETSPEC ((cart R M) -> Prop) GEN_PVAR_7493 (@IN N n (@UNIV N)) (k n))))))))). +Axiom thm_PRESERVES_LEBESGUE_MEASURABLE_IFF_PRESERVES_NEGLIGIBLE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable_on M N' f s) -> (forall t : (cart R M) -> Prop, ((@lebesgue_measurable M t) /\ (@SUBSET (cart R M) t s)) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f t)) = (forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)). +Axiom thm_LEBESGUE_MEASURABLE_PREIMAGE_CARD_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, ((@measurable_on M N' f s) /\ ((@lebesgue_measurable M s) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@negligible M t)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)))) -> @lebesgue_measurable N' (@GSPEC (cart R N') (fun GEN_PVAR_7515 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7515 ((@FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7513 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7513 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) /\ (N.le (@CARD (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7514 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7514 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) n)) y)). +Axiom thm_LEBESGUE_MEASURABLE_PREIMAGE_HAS_SIZE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall n : N, ((@measurable_on M N' f s) /\ ((@lebesgue_measurable M s) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@negligible M t)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)))) -> @lebesgue_measurable N' (@GSPEC (cart R N') (fun GEN_PVAR_7518 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7518 (@HAS_SIZE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7517 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7517 ((@IN (cart R M) x s) /\ ((f x) = y)) x)) n) y)). +Axiom thm_LEBESGUE_MEASURABLE_PREIMAGE_FINITE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((@lebesgue_measurable M s) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@negligible M t)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)))) -> @lebesgue_measurable N' (@GSPEC (cart R N') (fun GEN_PVAR_7520 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7520 (@FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7519 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7519 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) y)). +Axiom thm_LEBESGUE_MEASURABLE_PREIMAGE_INFINITE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((@lebesgue_measurable M s) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@negligible M t)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)))) -> @lebesgue_measurable N' (@GSPEC (cart R N') (fun GEN_PVAR_7524 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7524 (@INFINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7523 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7523 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) y)). +Axiom thm_MEASURABLE_ON_BANACH_INDICATRIX : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall c : cart R unit, ((@measurable_on M N' f s) /\ ((@lebesgue_measurable M s) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@negligible M t)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)))) -> @measurable_on N' unit (fun y : cart R N' => @COND (cart R unit) (@FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7528 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7528 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) (lift (R_of_N (@CARD (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7529 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7529 ((@IN (cart R M) x s) /\ ((f x) = y)) x))))) c) (@UNIV (cart R N')). +Axiom thm_LEBESGUE_MEASURABLE_DOMAIN_OF_INJECTIVITY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@measurable_on M N' f s) -> exists t : (cart R M) -> Prop, (@lebesgue_measurable M t) /\ ((@SUBSET (cart R M) t s) /\ (((@IMAGE (cart R M) (cart R N') f t) = (@IMAGE (cart R M) (cart R N') f s)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x t) /\ ((@IN (cart R M) y t) /\ ((f x) = (f y)))) -> x = y))). +Axiom thm_BOREL_DOMAIN_OF_INJECTIVITY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((@lebesgue_measurable M s) /\ (forall n : (cart R M) -> Prop, ((@SUBSET (cart R M) n s) /\ (@negligible M n)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f n)))) -> exists t : (cart R M) -> Prop, (@borel M t) /\ ((@SUBSET (cart R M) t s) /\ ((@negligible N' (@DIFF (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@IMAGE (cart R M) (cart R N') f t))) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x t) /\ ((@IN (cart R M) y t) /\ ((f x) = (f y)))) -> x = y))). +Axiom thm_GDELTA_DOMAIN_OF_INJECTIVITY_MEASURABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall u : (cart R N') -> Prop, forall e : R, ((@measurable_on M N' f s) /\ ((@lebesgue_measurable M s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) u) /\ ((@measurable N' u) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@negligible M t)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t))))))) -> exists t : (cart R M) -> Prop, (@SUBSET (cart R M) t s) /\ ((@gdelta M t) /\ ((@bounded M t) /\ ((@measurable M t) /\ ((@measurable N' (@IMAGE (cart R M) (cart R N') f t)) /\ ((Rlt (@measure N' (@DIFF (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@IMAGE (cart R M) (cart R N') f t))) e) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x t) /\ ((@IN (cart R M) y t) /\ ((f x) = (f y)))) -> x = y)))))). +Axiom thm_LUZIN_NPROPERTY_IMP_COUNTABLE_PREIMAGES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@lebesgue_measurable M s) /\ ((@measurable_on M N' f s) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@negligible M t)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)))) -> @negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_7566 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7566 (~ (@COUNTABLE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7565 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7565 ((@IN (cart R M) x s) /\ ((f x) = y)) x)))) y)). +Axiom thm_BANACH_SPROPERTY_IMP_LUZIN_NPROPERTY_OUTER : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ ((@measurable M t) /\ (Rlt (@measure M t) d))) -> exists u : (cart R N') -> Prop, (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f t) u) /\ ((@measurable N' u) /\ (Rlt (@measure N' u) e)))) -> forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@negligible M t)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t). +Axiom thm_BANACH_SPROPERTY_IMP_LUZIN_NPROPERTY : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ ((@measurable M t) /\ (Rlt (@measure M t) d))) -> (@measurable N' (@IMAGE (cart R M) (cart R N') f t)) /\ (Rlt (@measure N' (@IMAGE (cart R M) (cart R N') f t)) e))) -> forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@negligible M t)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t). +Axiom thm_BANACH_SPROPERTY_OUTER : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ ((@measurable M t) /\ (Rlt (@measure M t) d))) -> exists u : (cart R N') -> Prop, (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f t) u) /\ ((@measurable N' u) /\ (Rlt (@measure N' u) e))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ ((@measurable M t) /\ (Rlt (@measure M t) d))) -> (@measurable N' (@IMAGE (cart R M) (cart R N') f t)) /\ (Rlt (@measure N' (@IMAGE (cart R M) (cart R N') f t)) e)). +Axiom thm_BANACH_SPROPERTY_IMP_PRESERVES_MEASURABLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ ((@measurable M t) /\ (Rlt (@measure M t) d))) -> (@measurable N' (@IMAGE (cart R M) (cart R N') f t)) /\ (Rlt (@measure N' (@IMAGE (cart R M) (cart R N') f t)) e))) -> forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@measurable M t)) -> @measurable N' (@IMAGE (cart R M) (cart R N') f t). +Axiom thm_BANACH_SPROPERTY_IMP_FINITE_PREIMAGES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((@measurable M s) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ ((@measurable M t) /\ (Rlt (@measure M t) d))) -> (@measurable N' (@IMAGE (cart R M) (cart R N') f t)) /\ (Rlt (@measure N' (@IMAGE (cart R M) (cart R N') f t)) e))))) -> @negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_7579 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7579 (@INFINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7578 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7578 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) y)). +Axiom thm_ABSOLUTELY_CONTINUOUS_MEASURE_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall u : (cart R N') -> Prop, ((@measurable_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) u) /\ ((@measurable N' u) /\ ((forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ (@negligible M t)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)) /\ (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_7591 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7591 (@INFINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7590 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7590 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) y))))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ ((@measurable M t) /\ (Rlt (@measure M t) d))) -> (@measurable N' (@IMAGE (cart R M) (cart R N') f t)) /\ (Rlt (@measure N' (@IMAGE (cart R M) (cart R N') f t)) e)). +Axiom thm_ABSOLUTELY_CONTINUOUS_MEASURE_DIFFERENTIABLE_IMAGE_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((@continuous_on N' N' f s) /\ (@negligible N' (@IMAGE (cart R N') (cart R N') f (@GSPEC (cart R N') (fun GEN_PVAR_7594 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_7594 ((@IN (cart R N') x s) /\ (~ (@differentiable N' N' f (@within (cart R N') (@_at N' x) s)))) x)))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') t s) /\ ((@measurable N' t) /\ (Rlt (@measure N' t) d))) -> (@measurable N' (@IMAGE (cart R N') (cart R N') f t)) /\ (Rlt (@measure N' (@IMAGE (cart R N') (cart R N') f t)) e)). +Axiom thm_ABSOLUTELY_CONTINUOUS_MEASURE_DIFFERENTIABLE_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@differentiable_on N' N' f s)) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R N') -> Prop, ((@SUBSET (cart R N') t s) /\ ((@measurable N' t) /\ (Rlt (@measure N' t) d))) -> (@measurable N' (@IMAGE (cart R N') (cart R N') f t)) /\ (Rlt (@measure N' (@IMAGE (cart R N') (cart R N') f t)) e)). +Axiom thm_LEBESGUE_MEASURABLE_LOCALLY_LIPSCHITZ_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((@lebesgue_measurable M s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists t : (cart R M) -> Prop, exists b : R, (@_open M t) /\ ((@IN (cart R M) x t) /\ (forall y : cart R M, (@IN (cart R M) y (@INTER (cart R M) s t)) -> Rle (@vector_norm N' (@vector_sub N' (f y) (f x))) (Rmult b (@vector_norm M (@vector_sub M y x)))))))) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_MEASURE_LOCALLY_LIPSCHITZ_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall B : R, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((@measurable M s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists t : (cart R M) -> Prop, (@_open M t) /\ ((@IN (cart R M) x t) /\ (forall y : cart R M, (@IN (cart R M) y (@INTER (cart R M) s t)) -> Rle (@vector_norm N' (@vector_sub N' (f y) (f x))) (Rmult B (@vector_norm M (@vector_sub M y x)))))))) -> Rle (@measure N' (@IMAGE (cart R M) (cart R N') f s)) (Rmult (real_pow B (@dimindex N' (@UNIV N'))) (@measure M s)). +Axiom thm_MEASURABLE_LOCALLY_LIPSCHITZ_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall B : R, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((@measurable M s) /\ (forall x : cart R M, (@IN (cart R M) x s) -> exists t : (cart R M) -> Prop, (@_open M t) /\ ((@IN (cart R M) x t) /\ (forall y : cart R M, (@IN (cart R M) y (@INTER (cart R M) s t)) -> Rle (@vector_norm N' (@vector_sub N' (f y) (f x))) (Rmult B (@vector_norm M (@vector_sub M y x)))))))) -> @measurable N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LEBESGUE_MEASURABLE_LIPSCHITZ_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall B : R, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((@lebesgue_measurable M s) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))))) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_MEASURABLE_LIPSCHITZ_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall B : R, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((@measurable M s) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))))) -> @measurable N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_MEASURE_LIPSCHITZ_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall B : R, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((@measurable M s) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))))) -> Rle (@measure N' (@IMAGE (cart R M) (cart R N') f s)) (Rmult (real_pow B (@dimindex N' (@UNIV N'))) (@measure M s)). +Axiom thm_MEASURE_BOUNDED_DIFFERENTIABLE_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall B : R, ((@measurable N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ (Rle (Rabs (@det N' (@matrix N' N' (f' x)))) B))) -> Rle (@measure N' (@IMAGE (cart R N') (cart R N') f s)) (Rmult B (@measure N' s)). +Axiom thm_MEASURABLE_BOUNDED_DIFFERENTIABLE_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall B : R, ((@measurable N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ (Rle (Rabs (@det N' (@matrix N' N' (f' x)))) B))) -> @measurable N' (@IMAGE (cart R N') (cart R N') f s). +Axiom thm_MEASURE_DIFFERENTIABLE_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall b : R, ((@lebesgue_measurable N' s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ ((@integrable_on unit N' (fun x : cart R N' => lift (Rabs (@det N' (@matrix N' N' (f' x))))) s) /\ (Rle (drop (@integral unit N' s (fun x : cart R N' => lift (Rabs (@det N' (@matrix N' N' (f' x))))))) b)))) -> Rle (@measure N' (@IMAGE (cart R N') (cart R N') f s)) b. +Axiom thm_MEASURABLE_DIFFERENTIABLE_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ (@integrable_on unit N' (fun x : cart R N' => lift (Rabs (@det N' (@matrix N' N' (f' x))))) s))) -> @measurable N' (@IMAGE (cart R N') (cart R N') f s). +Axiom thm_NEGLIGIBLE_DIFFERENTIABLE_PREIMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (@has_derivative N' M f (f' x) (@within (cart R M) (@_at M x) s)) /\ ((@rank M N' (@matrix M N' (f' x))) = (@dimindex N' (@UNIV N')))) /\ (@negligible N' t))) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_7628 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7628 ((@IN (cart R M) x s) /\ (@IN (cart R N') (f x) t)) x)). +Axiom thm_HAS_ABSOLUTE_INTEGRAL_CHANGE_OF_VARIABLES_INVERTIBLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R M, forall h : (cart R M) -> cart R M, forall g' : (cart R M) -> (cart R M) -> cart R M, forall s : (cart R M) -> Prop, forall b : cart R N', ((forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative M M g (g' x) (@within (cart R M) (@_at M x) s)) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> (h (g x)) = x) /\ (@continuous_on M M h (@IMAGE (cart R M) (cart R M) g s)))) -> ((@absolutely_integrable_on N' M (fun x : cart R M => @percent N' (Rabs (@det M (@matrix M M (g' x)))) (f (g x))) s) /\ ((@integral N' M s (fun x : cart R M => @percent N' (Rabs (@det M (@matrix M M (g' x)))) (f (g x)))) = b)) = ((@absolutely_integrable_on N' M f (@IMAGE (cart R M) (cart R M) g s)) /\ ((@integral N' M (@IMAGE (cart R M) (cart R M) g s) f) = b)). +Axiom thm_HAS_ABSOLUTE_INTEGRAL_CHANGE_OF_VARIABLES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R M, forall g' : (cart R M) -> (cart R M) -> cart R M, forall s : (cart R M) -> Prop, forall b : cart R N', ((@lebesgue_measurable M s) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative M M g (g' x) (@within (cart R M) (@_at M x) s)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((g x) = (g y)))) -> x = y))) -> ((@absolutely_integrable_on N' M (fun x : cart R M => @percent N' (Rabs (@det M (@matrix M M (g' x)))) (f (g x))) s) /\ ((@integral N' M s (fun x : cart R M => @percent N' (Rabs (@det M (@matrix M M (g' x)))) (f (g x)))) = b)) = ((@absolutely_integrable_on N' M f (@IMAGE (cart R M) (cart R M) g s)) /\ ((@integral N' M (@IMAGE (cart R M) (cart R M) g s) f) = b)). +Axiom thm_ABSOLUTELY_INTEGRABLE_CHANGE_OF_VARIABLES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R M, forall g' : (cart R M) -> (cart R M) -> cart R M, forall s : (cart R M) -> Prop, ((@lebesgue_measurable M s) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative M M g (g' x) (@within (cart R M) (@_at M x) s)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((g x) = (g y)))) -> x = y))) -> (@absolutely_integrable_on N' M f (@IMAGE (cart R M) (cart R M) g s)) = (@absolutely_integrable_on N' M (fun x : cart R M => @percent N' (Rabs (@det M (@matrix M M (g' x)))) (f (g x))) s). +Axiom thm_INTEGRAL_CHANGE_OF_VARIABLES : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R M, forall g' : (cart R M) -> (cart R M) -> cart R M, forall s : (cart R M) -> Prop, ((@lebesgue_measurable M s) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative M M g (g' x) (@within (cart R M) (@_at M x) s)) /\ ((forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((g x) = (g y)))) -> x = y) /\ ((@absolutely_integrable_on N' M f (@IMAGE (cart R M) (cart R M) g s)) \/ (@absolutely_integrable_on N' M (fun x : cart R M => @percent N' (Rabs (@det M (@matrix M M (g' x)))) (f (g x))) s))))) -> (@integral N' M (@IMAGE (cart R M) (cart R M) g s) f) = (@integral N' M s (fun x : cart R M => @percent N' (Rabs (@det M (@matrix M M (g' x)))) (f (g x)))). +Axiom thm_HAS_ABSOLUTE_INTEGRAL_CHANGE_OF_VARIABLES_1 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R unit, forall g' : R -> R, forall s : (cart R unit) -> Prop, forall b : cart R N', ((@lebesgue_measurable unit s) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ ((g x) = (g y)))) -> x = y) /\ (forall x : cart R unit, (@IN (cart R unit) x s) -> @has_vector_derivative unit g (lift (g' (drop x))) (@within (cart R unit) (@_at unit x) s)))) -> ((@absolutely_integrable_on N' unit (fun x : cart R unit => @percent N' (Rabs (g' (drop x))) (f (g x))) s) /\ ((@integral N' unit s (fun x : cart R unit => @percent N' (Rabs (g' (drop x))) (f (g x)))) = b)) = ((@absolutely_integrable_on N' unit f (@IMAGE (cart R unit) (cart R unit) g s)) /\ ((@integral N' unit (@IMAGE (cart R unit) (cart R unit) g s) f) = b)). +Axiom thm_ABSOLUTELY_INTEGRABLE_CHANGE_OF_VARIABLES_1 : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R unit, forall g' : R -> R, forall s : (cart R unit) -> Prop, ((@lebesgue_measurable unit s) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ ((g x) = (g y)))) -> x = y) /\ (forall x : cart R unit, (@IN (cart R unit) x s) -> @has_vector_derivative unit g (lift (g' (drop x))) (@within (cart R unit) (@_at unit x) s)))) -> (@absolutely_integrable_on N' unit f (@IMAGE (cart R unit) (cart R unit) g s)) = (@absolutely_integrable_on N' unit (fun x : cart R unit => @percent N' (Rabs (g' (drop x))) (f (g x))) s). +Axiom thm_HAS_MEASURE_DIFFERENTIABLE_IMAGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall m : R, ((@lebesgue_measurable N' s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((f x) = (f y)))) -> x = y))) -> (@has_measure N' (@IMAGE (cart R N') (cart R N') f s) m) = (@has_integral N' unit (fun x : cart R N' => lift (Rabs (@det N' (@matrix N' N' (f' x))))) (lift m) s). +Axiom thm_MEASURABLE_DIFFERENTIABLE_IMAGE_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((f x) = (f y)))) -> x = y))) -> (@measurable N' (@IMAGE (cart R N') (cart R N') f s)) = (@integrable_on unit N' (fun x : cart R N' => lift (Rabs (@det N' (@matrix N' N' (f' x))))) s). +Axiom thm_MEASURABLE_DIFFERENTIABLE_IMAGE_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((f x) = (f y)))) -> x = y))) -> (@measurable N' (@IMAGE (cart R N') (cart R N') f s)) = (@absolutely_integrable_on unit N' (fun x : cart R N' => lift (Rabs (@det N' (@matrix N' N' (f' x))))) s). +Axiom thm_MEASURE_DIFFERENTIABLE_IMAGE_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @has_derivative N' N' f (f' x) (@within (cart R N') (@_at N' x) s)) /\ ((forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((f x) = (f y)))) -> x = y) /\ (@integrable_on unit N' (fun x : cart R N' => lift (Rabs (@det N' (@matrix N' N' (f' x))))) s)))) -> (@measure N' (@IMAGE (cart R N') (cart R N') f s)) = (drop (@integral unit N' s (fun x : cart R N' => lift (Rabs (@det N' (@matrix N' N' (f' x))))))). +Axiom thm_HAS_ABSOLUTE_INTEGRAL_CHANGE_OF_VARIABLES_LINEAR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R M, forall s : (cart R M) -> Prop, forall b : cart R N', (@linear M M g) -> ((@absolutely_integrable_on N' M (fun x : cart R M => @percent N' (Rabs (@det M (@matrix M M g))) (f (g x))) s) /\ ((@integral N' M s (fun x : cart R M => @percent N' (Rabs (@det M (@matrix M M g))) (f (g x)))) = b)) = ((@absolutely_integrable_on N' M f (@IMAGE (cart R M) (cart R M) g s)) /\ ((@integral N' M (@IMAGE (cart R M) (cart R M) g s) f) = b)). +Axiom thm_ABSOLUTELY_INTEGRABLE_CHANGE_OF_VARIABLES_LINEAR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R M, forall s : (cart R M) -> Prop, (@linear M M g) -> (@absolutely_integrable_on N' M (fun x : cart R M => @percent N' (Rabs (@det M (@matrix M M g))) (f (g x))) s) = (@absolutely_integrable_on N' M f (@IMAGE (cart R M) (cart R M) g s)). +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R M, forall s : (cart R M) -> Prop, (@linear M M g) -> (@absolutely_integrable_on N' M f (@IMAGE (cart R M) (cart R M) g s)) = ((@absolutely_integrable_on N' M (@o (cart R M) (cart R M) (cart R N') f g) s) \/ ((@det M (@matrix M M g)) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_INTEGRAL_CHANGE_OF_VARIABLES_LINEAR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R M, forall s : (cart R M) -> Prop, ((@linear M M g) /\ ((@absolutely_integrable_on N' M f (@IMAGE (cart R M) (cart R M) g s)) \/ (@absolutely_integrable_on N' M (@o (cart R M) (cart R M) (cart R N') f g) s))) -> (@integral N' M (@IMAGE (cart R M) (cart R M) g s) f) = (@percent N' (Rabs (@det M (@matrix M M g))) (@integral N' M s (@o (cart R M) (cart R M) (cart R N') f g))). +Axiom thm_ABSOLUTELY_INTEGRABLE_APPROXIMATE_CONTINUOUS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall e : R, ((@lebesgue_measurable M s) /\ ((@absolutely_integrable_on N' M f s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists g : (cart R M) -> cart R N', (@absolutely_integrable_on N' M g s) /\ ((@continuous_on M N' g (@UNIV (cart R M))) /\ ((@bounded N' (@IMAGE (cart R M) (cart R N') g (@UNIV (cart R M)))) /\ (Rlt (@vector_norm unit (@integral unit M s (fun x : cart R M => lift (@vector_norm N' (@vector_sub N' (f x) (g x)))))) e))). +Axiom thm_CONTINUOUS_ON_ABSOLUTELY_INTEGRABLE_TRANSLATION_NORM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@absolutely_integrable_on N' M f (@UNIV (cart R M))) -> @FImp unit (cart R M) (fun a : cart R M => @integral unit M (@UNIV (cart R M)) (fun x : cart R M => lift (@vector_norm N' (@vector_sub N' (f (@vector_add M a x)) (f x))))) (@vec unit (NUMERAL 0%N)) (@_at M (@vec M (NUMERAL 0%N))). +Axiom thm_CONTINUOUS_ON_ABSOLUTELY_INTEGRABLE_TRANSLATION_NORM_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ ((@lebesgue_measurable M t) /\ (@SUBSET (cart R M) t s))) -> @FImp unit (cart R M) (fun a : cart R M => @integral unit M t (fun x : cart R M => lift (@vector_norm N' (@vector_sub N' (f (@vector_add M a x)) (f x))))) (@vec unit (NUMERAL 0%N)) (@within (cart R M) (@_at M (@vec M (NUMERAL 0%N))) (@GSPEC (cart R M) (fun GEN_PVAR_7732 : cart R M => exists a : cart R M, @SETSPEC (cart R M) GEN_PVAR_7732 (@SUBSET (cart R M) (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M a x) t) s) a))). +Axiom thm_CONTINUOUS_ON_ABSOLUTELY_INTEGRABLE_TRANSLATION_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ (@lebesgue_measurable M t)) -> @continuous_on M N' (fun a : cart R M => @integral N' M t (fun x : cart R M => f (@vector_add M a x))) (@GSPEC (cart R M) (fun GEN_PVAR_7733 : cart R M => exists a : cart R M, @SETSPEC (cart R M) GEN_PVAR_7733 (@SUBSET (cart R M) (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M a x) t) s) a)). +Axiom thm_CONTINUOUS_ON_ABSOLUTELY_INTEGRABLE_TRANSLATION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@absolutely_integrable_on N' M f (@UNIV (cart R M))) -> @continuous_on M N' (fun a : cart R M => @integral N' M (@UNIV (cart R M)) (fun x : cart R M => f (@vector_add M a x))) (@UNIV (cart R M)). +Axiom thm_CONTINUOUS_MEASURE_TRANSLATION_SYMDIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@measurable N' s) -> @FImp unit (cart R N') (fun a : cart R N' => lift (@measure N' (@UNION (cart R N') (@DIFF (cart R N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) s) (@DIFF (cart R N') s (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s))))) (@vec unit (NUMERAL 0%N)) (@_at N' (@vec N' (NUMERAL 0%N))). +Axiom thm_CONTINUOUS_MEASURE_TRANSLATION_DIFF : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@measurable N' s) -> @FImp unit (cart R N') (fun a : cart R N' => lift (@measure N' (@DIFF (cart R N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s) s))) (@vec unit (NUMERAL 0%N)) (@_at N' (@vec N' (NUMERAL 0%N))). +Axiom thm_CONTINUOUS_MEASURE_DIFFERENTIABLE_IMAGE_TRANSLATION : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall k : (cart R N') -> Prop, ((@_open N' s) /\ ((@differentiable_on N' N' f s) /\ (@compact N' k))) -> @continuous_on N' unit (fun a : cart R N' => lift (@measure N' (@IMAGE (cart R N') (cart R N') f (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) k)))) (@GSPEC (cart R N') (fun GEN_PVAR_7741 : cart R N' => exists a : cart R N', @SETSPEC (cart R N') GEN_PVAR_7741 (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) k) s) a)). +Axiom thm_SUBINTERVAL_MEAN_VALUE_THEOREM : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall a : cart R N', forall b : cart R N', forall n : N, ((~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) /\ ((~ (n = (NUMERAL 0%N))) /\ (@absolutely_integrable_on unit N' f (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))))) -> exists c : cart R N', exists d : cart R N', ((@vector_add N' c (@percent N' (Rinv (R_of_N n)) (@vector_sub N' b a))) = d) /\ ((@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((@percent unit (@measure N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) (@integral unit N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) f)) = (@percent unit (@measure N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) (@integral unit N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) f)))). +Axiom thm_SUBINTERVAL_MEAN_VALUE_THEOREM_SEQ : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall a : cart R N', forall b : cart R N', ((~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) /\ (@absolutely_integrable_on unit N' f (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) -> exists c : N -> cart R N', exists d : N -> cart R N', (forall n : N, exists m : N, (~ (m = (NUMERAL 0%N))) /\ ((@vector_add N' (c n) (@percent N' (Rinv (R_of_N m)) (@vector_sub N' b a))) = (d n))) /\ ((forall n : N, ~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (c n) (d n)) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) /\ ((@FImp N' N (fun n : N => @vector_sub N' (d n) (c n)) (@vec N' (NUMERAL 0%N)) sequentially) /\ ((forall n : N, @SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (c n) (d n)) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((forall n : N, @SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (c (N.succ n)) (d (N.succ n))) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (c n) (d n)) (@nil (prod (cart R N') (cart R N')))))) /\ (forall n : N, (@percent unit (@measure N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) (@integral unit N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (c n) (d n)) (@nil (prod (cart R N') (cart R N'))))) f)) = (@percent unit (@measure N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (c n) (d n)) (@nil (prod (cart R N') (cart R N')))))) (@integral unit N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) f))))))). +Axiom thm_SUBINTERVAL_MEAN_VALUE_THEOREM_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall a : cart R N', forall b : cart R N', ((~ ((@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) = (@EMPTY (cart R N')))) /\ (@absolutely_integrable_on unit N' f (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) -> exists x : cart R N', (@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists c : cart R N', exists d : cart R N', exists n : N, (~ (n = (NUMERAL 0%N))) /\ (((@vector_add N' c (@percent N' (Rinv (R_of_N n)) (@vector_sub N' b a))) = d) /\ ((@IN (cart R N') x (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) /\ ((@SUBSET (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ ((Rlt (@diameter N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) e) /\ ((@percent unit (@measure N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) (@integral unit N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) f)) = (@percent unit (@measure N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))) (@integral unit N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) f)))))))). +Axiom thm_WEAK_LEBESGUE_POINTS_IMP_IVT : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall a : cart R N', forall b : cart R N', forall s : (cart R N') -> Prop, ((@_open N' s) /\ ((@connected N' s) /\ ((~ ((@open_interval N' (@pair (cart R N') (cart R N') a b)) = (@EMPTY (cart R N')))) /\ ((@locally N' (@absolutely_integrable_on unit N' f) s) /\ (forall c : N -> (cart R N') -> Prop, forall x : cart R N', ((@IN (cart R N') x s) /\ ((forall n : N, exists u : R, exists v : cart R N', (Rlt (R_of_N (NUMERAL 0%N)) u) /\ ((c n) = (@IMAGE (cart R N') (cart R N') (fun x' : cart R N' => @vector_add N' (@percent N' u x') v) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))))) /\ ((@eventually N (fun n : N => @IN (cart R N') x (c n)) sequentially) /\ (@FImp unit N (fun n : N => lift (@diameter N' (c n))) (@vec unit (NUMERAL 0%N)) sequentially)))) -> @FImp unit N (fun n : N => @percent unit (Rinv (@measure N' (c n))) (@integral unit N' (c n) f)) (f x) sequentially))))) -> @connected unit (@IMAGE (cart R N') (cart R unit) f s). +Axiom thm_MEASURE_DIFFERENTIABLE_IMAGE_APPROX_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall c : N -> (cart R N') -> Prop, forall a : cart R N', ((@_open N' s) /\ ((@differentiable_on N' N' f s) /\ ((forall v : (cart R N') -> Prop, ((@SUBSET (cart R N') v s) /\ (@_open N' v)) -> @_open N' (@IMAGE (cart R N') (cart R N') f v)) /\ ((@IN (cart R N') a s) /\ ((~ ((@det N' (@jacobian N' N' f (@_at N' a))) = (R_of_N (NUMERAL 0%N)))) /\ ((@FImp unit N (fun n : N => lift (@diameter N' (c n))) (@vec unit (NUMERAL 0%N)) sequentially) /\ ((forall n : N, @IN (cart R N') a (@closure N' (c n))) /\ (exists A : (cart R N') -> Prop, (@convex N' A) /\ ((@bounded N' A) /\ ((~ ((@interior N' A) = (@EMPTY (cart R N')))) /\ (forall n : N, exists t : R, exists z : cart R N', (Rlt (R_of_N (NUMERAL 0%N)) t) /\ ((@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' t x) z) A) = (c n))))))))))))) -> (@eventually N (fun n : N => @measurable N' (@IMAGE (cart R N') (cart R N') f (c n))) sequentially) /\ (@FImp unit N (fun n : N => lift (Rdiv (@measure N' (@IMAGE (cart R N') (cart R N') f (c n))) (@measure N' (c n)))) (lift (Rabs (@det N' (@jacobian N' N' f (@_at N' a))))) sequentially). +Axiom thm_MEASURE_DIFFERENTIABLE_IMAGE_APPROX : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall c : N -> (cart R N') -> Prop, forall a : cart R N', ((@_open N' s) /\ ((@IN (cart R N') a s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N))))) /\ ((@FImp unit N (fun n : N => lift (@diameter N' (c n))) (@vec unit (NUMERAL 0%N)) sequentially) /\ ((forall n : N, @IN (cart R N') a (@closure N' (c n))) /\ (exists A : (cart R N') -> Prop, (@convex N' A) /\ ((@bounded N' A) /\ ((~ ((@interior N' A) = (@EMPTY (cart R N')))) /\ (forall n : N, exists t : R, exists z : cart R N', (Rlt (R_of_N (NUMERAL 0%N)) t) /\ ((@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' (@percent N' t x) z) A) = (c n))))))))))) -> (@eventually N (fun n : N => @measurable N' (@IMAGE (cart R N') (cart R N') f (c n))) sequentially) /\ (@FImp unit N (fun n : N => lift (Rdiv (@measure N' (@IMAGE (cart R N') (cart R N') f (c n))) (@measure N' (c n)))) (lift (Rabs (@det N' (@matrix N' N' (f' a))))) sequentially). +Axiom thm_CONNECTED_JACOBIAN_RANGE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@_open N' s) /\ ((@connected N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N))))))) -> @connected unit (@IMAGE (cart R N') (cart R unit) (fun x : cart R N' => lift (@det N' (@matrix N' N' (f' x)))) s). +Axiom thm_CONNECTED_JACOBIAN_RANGE_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@_open N' s) /\ ((@connected N' s) /\ ((@convex N' t) /\ ((@SUBSET (cart R N') t s) /\ ((~ ((@interior N' t) = (@EMPTY (cart R N')))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N))))) /\ ((@IN (cart R N') a t) /\ (@IN (cart R N') b t)))))))) -> @SUBSET (cart R unit) (@open_segment unit (@pair (cart R unit) (cart R unit) (lift (@det N' (@matrix N' N' (f' a)))) (lift (@det N' (@matrix N' N' (f' b)))))) (@IMAGE (cart R N') (cart R unit) (fun x : cart R N' => lift (@det N' (@matrix N' N' (f' x)))) (@interior N' t)). +Axiom thm_CONNECTED_JACOBIAN_RANGE_SUBSET : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@_open N' s) /\ ((@connected N' s) /\ ((@convex N' t) /\ ((@SUBSET (cart R N') t s) /\ ((~ ((@interior N' t) = (@EMPTY (cart R N')))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N)))))))))) -> @connected unit (@IMAGE (cart R N') (cart R unit) (fun x : cart R N' => lift (@det N' (@matrix N' N' (f' x)))) t). +Axiom thm_CONNECTED_JACOBIAN_GRAPH : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall f' : (cart R N') -> (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@_open N' s) /\ ((@connected N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (@has_derivative N' N' f (f' x) (@_at N' x)) /\ (~ ((@det N' (@matrix N' N' (f' x))) = (R_of_N (NUMERAL 0%N))))))) -> @connected (finite_sum N' unit) (@GSPEC (cart R (finite_sum N' unit)) (fun GEN_PVAR_7762 : cart R (finite_sum N' unit) => exists x : cart R N', @SETSPEC (cart R (finite_sum N' unit)) GEN_PVAR_7762 (@IN (cart R N') x s) (@pastecart R N' unit x (lift (@det N' (@matrix N' N' (f' x))))))). +Axiom thm_ABSOLUTE_INTEGRATION_BY_PARTS : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R M, forall g' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@bilinear N' P M bop) /\ ((Rle (drop a) (drop b)) /\ ((@absolutely_integrable_on M unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@absolutely_integrable_on N' unit g' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_integral unit M f' (f x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_integral unit N' g' (g x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))))))))) -> (@absolutely_integrable_on P unit (fun x : cart R unit => bop (f x) (g' x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@absolutely_integrable_on P unit (fun x : cart R unit => bop (f' x) (g x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@vector_add P (@integral P unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => bop (f x) (g' x))) (@integral P unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => bop (f' x) (g x)))) = (@vector_sub P (bop (f b) (g b)) (bop (f a) (g a))))). +Axiom thm_DOUBLE_LEBESGUE_MEASURABLE_INVERSE_FUNCTION_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t))) -> forall t : (cart R M) -> Prop, (@lebesgue_measurable M t) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f (@INTER (cart R M) s t)). +Axiom thm_DOUBLE_LEBESGUE_MEASURABLE_INVERSE_FUNCTION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x))) -> forall t : (cart R M) -> Prop, (@lebesgue_measurable M t) -> @lebesgue_measurable N' (@GSPEC (cart R N') (fun GEN_PVAR_7764 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7764 ((@IN (cart R N') y (@IMAGE (cart R M) (cart R N') f s)) /\ (@IN (cart R M) (g y) t)) y)). +Axiom thm_MEASURABLE_ON_INVERSE_FUNCTION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x))) -> @measurable_on N' M g (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_LEBESGUE_MEASURABLE_MEASURABLE_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y))) -> @lebesgue_measurable N' (@IMAGE (cart R M) (cart R N') f s). +Axiom thm_DOUBLE_LEBESGUE_MEASURABLE_LEFT_INVERSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y))) -> exists g : (cart R N') -> cart R M, (forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x) /\ (forall t : (cart R M) -> Prop, (@lebesgue_measurable M t) -> @lebesgue_measurable N' (@GSPEC (cart R N') (fun GEN_PVAR_7765 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7765 ((@IN (cart R N') y (@IMAGE (cart R M) (cart R N') f s)) /\ (@IN (cart R M) (g y) t)) y))). +Axiom thm_MEASURABLE_ON_LEFT_INVERSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ ((forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t)) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ ((@IN (cart R M) y s) /\ ((f x) = (f y)))) -> x = y))) -> exists g : (cart R N') -> cart R M, (forall x : cart R M, (@IN (cart R M) x s) -> (g (f x)) = x) /\ (@measurable_on N' M g (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_DOUBLE_LEBESGUE_MEASURABLE_RIGHT_INVERSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t))) -> exists g : (cart R N') -> cart R M, (forall y : cart R N', (@IN (cart R N') y (@IMAGE (cart R M) (cart R N') f s)) -> (@IN (cart R M) (g y) s) /\ ((f (g y)) = y)) /\ (forall t : (cart R M) -> Prop, (@lebesgue_measurable M t) -> @lebesgue_measurable N' (@GSPEC (cart R N') (fun GEN_PVAR_7766 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7766 ((@IN (cart R N') y (@IMAGE (cart R M) (cart R N') f s)) /\ (@IN (cart R M) (g y) t)) y))). +Axiom thm_MEASURABLE_ON_RIGHT_INVERSE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@measurable_on M N' f s) /\ (forall t : (cart R M) -> Prop, ((@negligible M t) /\ (@SUBSET (cart R M) t s)) -> @negligible N' (@IMAGE (cart R M) (cart R N') f t))) -> exists g : (cart R N') -> cart R M, (forall y : cart R N', (@IN (cart R N') y (@IMAGE (cart R M) (cart R N') f s)) -> (@IN (cart R M) (g y) s) /\ ((f (g y)) = y)) /\ (@measurable_on N' M g (@IMAGE (cart R M) (cart R N') f s)). +Axiom thm_EGOROV : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, ((@measurable M s) /\ ((@negligible M t) /\ ((forall n : N, @measurable_on M N' (f n) s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> @FImp N' N (fun n : N => f n x) (g x) sequentially)))) -> forall d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) -> exists k : (cart R M) -> Prop, (@SUBSET (cart R M) k s) /\ ((@measurable M k) /\ ((Rlt (@measure M k) d) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : cart R M, ((N.le N'' n) /\ (@IN (cart R M) x (@DIFF (cart R M) s k))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f n x) (g x))) e))). +Axiom thm_LEBESGUE_DIFFERENTIATION_THEOREM_COMPACT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_7809 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_7809 ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (~ (@differentiable N' unit f (@_at unit x)))) x)). +Axiom thm_LEBESGUE_DIFFERENTIATION_THEOREM : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (@has_bounded_variation_on N' f s)) -> @negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_7816 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_7816 ((@IN (cart R unit) x s) /\ (~ (@differentiable N' unit f (@_at unit x)))) x)). +Axiom thm_LEBESGUE_DIFFERENTIATION_THEOREM_ALT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (@has_bounded_variation_on N' f s)) -> exists t : (cart R unit) -> Prop, (@SUBSET (cart R unit) t s) /\ ((@negligible unit t) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) s t)) -> @differentiable N' unit f (@_at unit x))). +Axiom thm_LEBESGUE_DIFFERENTIATION_THEOREM_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, ((@COUNTABLE ((cart R unit) -> Prop) (@components unit s)) /\ (@has_bounded_variation_on N' f s)) -> @negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_7822 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_7822 ((@IN (cart R unit) x s) /\ (~ (@differentiable N' unit f (@_at unit x)))) x)). +Axiom thm_LEBESGUE_DIFFERENTIATION_THEOREM_INCREASING : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y)))) -> @negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_7824 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_7824 ((@IN (cart R unit) x s) /\ (~ (@differentiable unit unit f (@_at unit x)))) x)). +Axiom thm_LEBESGUE_DIFFERENTIATION_THEOREM_DECREASING : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f y)) (drop (f x)))) -> @negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_7825 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_7825 ((@IN (cart R unit) x s) /\ (~ (@differentiable unit unit f (@_at unit x)))) x)). +Axiom thm_ABSOLUTELY_CONTINUOUS_INTEGRAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall e : R, ((@absolutely_integrable_on N' M f s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall t : (cart R M) -> Prop, ((@SUBSET (cart R M) t s) /\ ((@measurable M t) /\ (Rlt (@measure M t) d))) -> Rlt (@vector_norm N' (@integral N' M t f)) e). +Axiom thm_ABSOLUTELY_SETCONTINUOUS_INDEFINITE_INTEGRAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@absolutely_integrable_on N' M f s) /\ (@lebesgue_measurable M s)) -> @absolutely_setcontinuous_on M N' (fun k : (cart R M) -> Prop => @integral N' M k f) s. +Axiom thm_ABSOLUTELY_CONTINUOUS_INDEFINITE_INTEGRAL_RIGHT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@absolutely_integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @absolutely_continuous_on N' (fun x : cart R unit => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_ABSOLUTELY_CONTINUOUS_INDEFINITE_INTEGRAL_LEFT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@absolutely_integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @absolutely_continuous_on N' (fun x : cart R unit => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) x b) (@nil (prod (cart R unit) (cart R unit))))) f) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_FUNDAMENTAL_THEOREM_OF_CALCULUS_ABSOLUTELY_CONTINUOUS : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@negligible unit s) /\ ((Rle (drop a) (drop b)) /\ ((@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))))) -> @has_integral unit N' f' (@vector_sub N' (f b) (f a)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_BOUNDED_VARIATION_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@absolutely_integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = ((@integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_bounded_variation_on N' (fun t : cart R unit => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a t) (@nil (prod (cart R unit) (cart R unit))))) f) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_ABSOLUTELY_CONTINUOUS_DERIVATIVE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))))) -> @absolutely_integrable_on N' unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_ABSOLUTE_INTEGRAL_ABSOLUTELY_CONTINUOUS_DERIVATIVE_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@absolutely_integrable_on N' unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_integral unit N' f' (@vector_sub N' (f x) (f a)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))))) = ((@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (exists s : (cart R unit) -> Prop, (@negligible unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))))). +Axiom thm_ABSOLUTE_INTEGRAL_ABSOLUTELY_CONTINUOUS_DERIVATIVE_EQ_ALT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@absolutely_integrable_on N' unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_integral unit N' f' (@vector_sub N' (f x) (f a)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))))) = ((@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (exists s : (cart R unit) -> Prop, (@negligible unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@_at unit x)))). +Axiom thm_ABSOLUTELY_INTEGRABLE_ABSOLUTELY_CONTINUOUS_DERIVATIVE_EQ : forall {N' : Type'}, forall f' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@absolutely_integrable_on N' unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (exists f : (cart R unit) -> cart R N', exists s : (cart R unit) -> Prop, (@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_ABSOLUTELY_CONTINUOUS_DERIVATIVE_EQ_ALT : forall {N' : Type'}, forall f' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@absolutely_integrable_on N' unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (exists f : (cart R unit) -> cart R N', exists s : (cart R unit) -> Prop, (@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@_at unit x)))). +Axiom thm_ABSOLUTE_INTEGRATION_BY_PARTS_SUM : forall {M N' P : Type'}, forall bop : (cart R M) -> (cart R N') -> cart R P, forall f : (cart R unit) -> cart R M, forall g : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R M, forall g' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@bilinear N' P M bop) /\ ((Rle (drop a) (drop b)) /\ (((@absolutely_integrable_on M unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_integral unit M f' (@vector_sub M (f x) (f a)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))))) /\ ((@absolutely_integrable_on N' unit g' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_integral unit N' g' (@vector_sub N' (g x) (g a)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit)))))))))) -> (@absolutely_integrable_on P unit (fun x : cart R unit => @vector_add P (bop (f x) (g' x)) (bop (f' x) (g x))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_integral unit P (fun x' : cart R unit => @vector_add P (bop (f x') (g' x')) (bop (f' x') (g x'))) (@vector_sub P (bop (f x) (g x)) (bop (f a) (g a))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_INCREASING_DERIVATIVE : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) -> exists s : (cart R unit) -> Prop, exists f' : (cart R unit) -> cart R unit, (@negligible unit s) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative unit f (f' x) (@_at unit x)) /\ ((@absolutely_integrable_on unit unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (drop (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f')) (Rminus (drop (f x)) (drop (f a)))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_INCREASING_DERIVATIVE_ALT : forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) /\ ((@negligible unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative unit f (f' x) (@_at unit x)))) -> (@absolutely_integrable_on unit unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (drop (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f')) (Rminus (drop (f x)) (drop (f a)))). +Axiom thm_ABSOLUTELY_INTEGRABLE_BOUNDED_VARIATION_DERIVATIVE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> exists f' : (cart R unit) -> cart R N', exists s : (cart R unit) -> Prop, (@negligible unit s) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@_at unit x)) /\ (@absolutely_integrable_on N' unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))). +Axiom thm_ABSOLUTELY_CONTINUOUS_INDEFINITE_INTEGRAL_EQ : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (exists f' : (cart R unit) -> cart R N', (@absolutely_integrable_on N' unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @has_integral unit N' f' (@vector_sub N' (f x) (f a)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))))). +Axiom thm_ABSOLUTE_INTEGRAL_NORM_DERIVATIVE_LE_VARIATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> exists s : (cart R unit) -> Prop, exists f' : (cart R unit) -> cart R N', (@negligible unit s) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@_at unit x)) /\ ((@absolutely_integrable_on N' unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall c : cart R unit, (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (drop (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => lift (@vector_norm N' (f' x))))) (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) f)))). +Axiom thm_ABSOLUTE_INTEGRAL_NORM_DERIVATIVE_LE_VARIATION_ALT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))))) -> (@absolutely_integrable_on N' unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall c : cart R unit, (@IN (cart R unit) c (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (drop (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => lift (@vector_norm N' (f' x))))) (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) f)). +Axiom thm_VECTOR_VARIATION_INTEGRAL_NORM_DERIVATIVE_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))))) -> (@absolutely_integrable_on N' unit f' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) = (drop (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => lift (@vector_norm N' (f' x)))))). +Axiom thm_ABSOLUTELY_CONTINUOUS_VECTOR_VARIATION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@absolutely_continuous_on unit (fun x : cart R unit => lift (@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a x) (@nil (prod (cart R unit) (cart R unit))))) f)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) = (@absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_INCREASING_FTC_AE_IMP_ABSOLUTELY_CONTINUOUS : forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y))) /\ ((@negligible unit s) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative unit f (f' x) (@_at unit x)) /\ ((@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f') = (@vector_sub unit (f b) (f a)))))) -> @absolutely_continuous_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_VECTOR_VARIATION_INTEGRAL_NORM_DERIVATIVE_REV : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall f' : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit s) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative N' f (f' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) /\ ((@vector_variation N' (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) f) = (drop (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => lift (@vector_norm N' (f' x))))))))) -> @absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_MEASURABLE_ABSOLUTELY_CONTINUOUS_IMAGE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@absolutely_continuous_on N' f s) /\ ((@is_interval unit s) /\ ((@measurable unit t) /\ (@SUBSET (cart R unit) t s)))) -> @measurable N' (@IMAGE (cart R unit) (cart R N') f t). +Axiom thm_BANACH_ZARECKI : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, (@absolutely_continuous_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = ((@continuous_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@has_bounded_variation_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall t : (cart R unit) -> Prop, ((@SUBSET (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@negligible unit t)) -> @negligible unit (@IMAGE (cart R unit) (cart R unit) f t)))). +Axiom thm_BANACH_ZARECKI_GEN : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@is_interval unit s) /\ (@bounded unit s)) -> (@absolutely_continuous_on unit f s) = ((@continuous_on unit unit f s) /\ ((@has_bounded_variation_on unit f s) /\ (forall t : (cart R unit) -> Prop, ((@SUBSET (cart R unit) t s) /\ (@negligible unit t)) -> @negligible unit (@IMAGE (cart R unit) (cart R unit) f t)))). +Axiom thm_ABSOLUTELY_CONTINUOUS_DIFFERENTIABLE_BV_GEN : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@bounded unit s) /\ ((@continuous_on unit N' f s) /\ ((@has_bounded_variation_on N' f s) /\ ((@COUNTABLE (cart R unit) t) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) s t)) -> @differentiable N' unit f (@within (cart R unit) (@_at unit x) s))))))) -> @absolutely_continuous_on N' f s. +Axiom thm_ABSOLUTELY_CONTINUOUS_DIFFERENTIABLE_BV : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, ((@differentiable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_bounded_variation_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> @absolutely_continuous_on N' f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_ABSOLUTELY_CONTINUOUS_ON_COMPOSE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, ((@is_interval unit s) /\ ((@bounded unit s) /\ ((@is_interval unit t) /\ ((@bounded unit t) /\ ((@absolutely_continuous_on N' f t) /\ ((@absolutely_continuous_on unit g s) /\ (@SUBSET (cart R unit) (@IMAGE (cart R unit) (cart R unit) g s) t))))))) -> (@absolutely_continuous_on N' (@o (cart R unit) (cart R unit) (cart R N') f g) s) = (@has_bounded_variation_on N' (@o (cart R unit) (cart R unit) (cart R N') f g) s). +Axiom thm_CONVERSE_SARD : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall f' : (cart R M) -> (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> @has_derivative N' M f (f' x) (@within (cart R M) (@_at M x) s)) /\ (@negligible N' (@IMAGE (cart R M) (cart R N') f s)))) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_7829 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7829 ((@IN (cart R M) x s) /\ ((@rank M N' (@matrix M N' (f' x))) = (@dimindex N' (@UNIV N')))) x)). +Axiom thm_CONVERSE_SARD_1 : forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((forall x : cart R unit, (@IN (cart R unit) x s) -> @has_vector_derivative unit f (f' x) (@within (cart R unit) (@_at unit x) s)) /\ (@negligible unit (@IMAGE (cart R unit) (cart R unit) f s))) -> @negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_7830 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_7830 ((@IN (cart R unit) x s) /\ (~ ((f' x) = (@vec unit (NUMERAL 0%N))))) x)). +Axiom thm_DIFF_CHAIN_WITHIN_EQUAL_AE : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall g' : (cart R unit) -> cart R unit, forall h' : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, forall u : (cart R unit) -> Prop, forall v : (cart R unit) -> Prop, forall w : (cart R unit) -> Prop, ((@SUBSET (cart R unit) (@IMAGE (cart R unit) (cart R unit) f s) t) /\ ((@negligible unit u) /\ ((@negligible unit v) /\ ((@negligible unit w) /\ ((forall n : (cart R unit) -> Prop, ((@SUBSET (cart R unit) n t) /\ (@negligible unit n)) -> @negligible unit (@IMAGE (cart R unit) (cart R unit) g n)) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) s u)) -> @has_vector_derivative unit f (f' x) (@within (cart R unit) (@_at unit x) s)) /\ ((forall y : cart R unit, (@IN (cart R unit) y (@DIFF (cart R unit) t v)) -> @has_vector_derivative unit g (g' y) (@within (cart R unit) (@_at unit y) t)) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) s w)) -> @has_vector_derivative unit (@o (cart R unit) (cart R unit) (cart R unit) g f) (h' x) (@within (cart R unit) (@_at unit x) s))))))))) -> @negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_7836 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_7836 ((@IN (cart R unit) x s) /\ (~ ((h' x) = (@percent unit (drop (f' x)) (g' (f x)))))) x)). +Axiom thm_DIFF_CHAIN_AT_EQUAL_AE : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall g' : (cart R unit) -> cart R unit, forall h' : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, forall u : (cart R unit) -> Prop, forall v : (cart R unit) -> Prop, forall w : (cart R unit) -> Prop, ((@SUBSET (cart R unit) (@IMAGE (cart R unit) (cart R unit) f s) t) /\ ((@negligible unit u) /\ ((@negligible unit v) /\ ((@negligible unit w) /\ ((forall n : (cart R unit) -> Prop, ((@SUBSET (cart R unit) n t) /\ (@negligible unit n)) -> @negligible unit (@IMAGE (cart R unit) (cart R unit) g n)) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) s u)) -> @has_vector_derivative unit f (f' x) (@_at unit x)) /\ ((forall y : cart R unit, (@IN (cart R unit) y (@DIFF (cart R unit) t v)) -> @has_vector_derivative unit g (g' y) (@_at unit y)) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) s w)) -> @has_vector_derivative unit (@o (cart R unit) (cart R unit) (cart R unit) g f) (h' x) (@_at unit x))))))))) -> @negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_7837 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_7837 ((@IN (cart R unit) x s) /\ (~ ((h' x) = (@percent unit (drop (f' x)) (g' (f x)))))) x)). +Axiom thm_DIFF_CHAIN_WITHIN_AE : forall f : (cart R unit) -> cart R unit, forall g : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall g' : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall t : (cart R unit) -> Prop, forall u : (cart R unit) -> Prop, forall v : (cart R unit) -> Prop, ((@SUBSET (cart R unit) (@IMAGE (cart R unit) (cart R unit) f s) t) /\ ((@negligible unit u) /\ ((@negligible unit v) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) s u)) -> @has_vector_derivative unit f (f' x) (@within (cart R unit) (@_at unit x) s)) /\ ((forall y : cart R unit, (@IN (cart R unit) y (@DIFF (cart R unit) t v)) -> @has_vector_derivative unit g (g' y) (@within (cart R unit) (@_at unit y) t)) /\ (@negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_7842 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_7842 ((@IN (cart R unit) x s) /\ ((f' x) = (@vec unit (NUMERAL 0%N)))) x)))))))) -> @negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_7843 : cart R unit => exists x : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_7843 ((@IN (cart R unit) x s) /\ (~ (@has_vector_derivative unit (@o (cart R unit) (cart R unit) (cart R unit) g f) (@percent unit (drop (f' x)) (g' (f x))) (@within (cart R unit) (@_at unit x) s)))) x)). +Axiom thm_ABSOLUTE_INTEGRAL_SUBSTITUTION : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R unit, forall g' : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((Rle (drop a) (drop b)) /\ ((@absolutely_integrable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (g a) (g b)) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@absolutely_continuous_on unit g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit s) /\ ((forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative unit g (g' x) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (g x)) (drop (g y)))))))) -> (@absolutely_integrable_on N' unit (fun x : cart R unit => @percent N' (drop (g' x)) (f (g x))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => @percent N' (drop (g' x)) (f (g x)))) = (@integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (g a) (g b)) (@nil (prod (cart R unit) (cart R unit))))) f)). +Axiom thm_NEGLIGIBLE_IMAGE_INDEFINITE_INTEGRAL : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, forall a : cart R unit, forall b : cart R unit, ((@integrable_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit s) /\ (@SUBSET (cart R unit) s (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) -> @negligible unit (@IMAGE (cart R unit) (cart R unit) (fun c : cart R unit => @integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit))))) f) s). +Axiom thm_POSITIVE_AE_DERIVATIVE_IMP_NONDECREASING : forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((@continuous_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (((@interior unit (@IMAGE (cart R unit) (cart R unit) f s)) = (@EMPTY (cart R unit))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> (@has_vector_derivative unit f (f' x) (@_at unit x)) /\ (Rlt (R_of_N (NUMERAL 0%N)) (drop (f' x)))))) -> forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y)). +Axiom thm_POSITIVE_AE_DERIVATIVE_IMP_INCREASING_LT_GEN : forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((@continuous_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (((@interior unit s) = (@EMPTY (cart R unit))) /\ (((@interior unit (@IMAGE (cart R unit) (cart R unit) f s)) = (@EMPTY (cart R unit))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> (@has_vector_derivative unit f (f' x) (@_at unit x)) /\ (Rlt (R_of_N (NUMERAL 0%N)) (drop (f' x))))))) -> forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rlt (drop x) (drop y)))) -> Rlt (drop (f x)) (drop (f y)). +Axiom thm_POSITIVE_AE_DERIVATIVE_IMP_INCREASING_LT : forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> (@has_vector_derivative unit f (f' x) (@_at unit x)) /\ (Rlt (R_of_N (NUMERAL 0%N)) (drop (f' x)))))) -> forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rlt (drop x) (drop y)))) -> Rlt (drop (f x)) (drop (f y)). +Axiom thm_POSITIVE_AE_DERIVATIVE_IMP_INCREASING_LE_GEN : forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((@continuous_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit (@IMAGE (cart R unit) (cart R unit) f s)) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> (@has_vector_derivative unit f (f' x) (@_at unit x)) /\ (Rle (R_of_N (NUMERAL 0%N)) (drop (f' x)))))) -> forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y)). +Axiom thm_POSITIVE_AE_DERIVATIVE_IMP_INCREASING_LE : forall f : (cart R unit) -> cart R unit, forall f' : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> (@has_vector_derivative unit f (f' x) (@_at unit x)) /\ (Rle (R_of_N (NUMERAL 0%N)) (drop (f' x)))))) -> forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop x) (drop y)))) -> Rle (drop (f x)) (drop (f y)). +Axiom thm_ZERO_AE_DERIVATIVE_IMP_CONSTANT_GEN : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((@continuous_on unit unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit (@IMAGE (cart R unit) (cart R unit) f s)) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative unit f (@vec unit (NUMERAL 0%N)) (@_at unit x)))) -> forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (f x) = (f a). +Axiom thm_ZERO_AE_DERIVATIVE_IMP_CONSTANT : forall f : (cart R unit) -> cart R unit, forall a : cart R unit, forall b : cart R unit, forall s : (cart R unit) -> Prop, ((@absolutely_continuous_on unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@negligible unit s) /\ (forall x : cart R unit, (@IN (cart R unit) x (@DIFF (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) s)) -> @has_vector_derivative unit f (@vec unit (NUMERAL 0%N)) (@_at unit x)))) -> forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> (f x) = (f a). +Axiom thm_CONVERGENCE_IN_MEASURE : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall n : N, @measurable_on M N' (f n) s) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually N (fun n : N => exists t : (cart R M) -> Prop, (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7872 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7872 ((@IN (cart R M) x s) /\ (Rge (@distance N' (@pair (cart R N') (cart R N') (f n x) (g x))) e)) x)) t) /\ ((@measurable M t) /\ (Rlt (@measure M t) e))) sequentially)) -> exists r : N -> N, exists t : (cart R M) -> Prop, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ ((@negligible M t) /\ ((@SUBSET (cart R M) t s) /\ (forall x : cart R M, (@IN (cart R M) x (@DIFF (cart R M) s t)) -> @FImp N' N (fun n : N => f (r n) x) (g x) sequentially))). +Axiom thm_CONVERGENCE_IN_MEASURE_UNIQUE : forall {M N' : Type'}, forall f : N -> (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall h : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((forall n : N, @measurable_on M N' (f n) s) /\ ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually N (fun n : N => exists t : (cart R M) -> Prop, (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7874 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7874 ((@IN (cart R M) x s) /\ (Rge (@distance N' (@pair (cart R N') (cart R N') (f n x) (g x))) e)) x)) t) /\ ((@measurable M t) /\ (Rlt (@measure M t) e))) sequentially) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually N (fun n : N => exists t : (cart R M) -> Prop, (@SUBSET (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_7875 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7875 ((@IN (cart R M) x s) /\ (Rge (@distance N' (@pair (cart R N') (cart R N') (f n x) (h x))) e)) x)) t) /\ ((@measurable M t) /\ (Rlt (@measure M t) e))) sequentially))) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_7876 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7876 ((@IN (cart R M) x s) /\ (~ ((g x) = (h x)))) x)). +Axiom thm_FUBINI_MEASURE : forall {M N' : Type'}, forall s : (cart R (finite_sum M N')) -> Prop, (@measurable (finite_sum M N') s) -> (@negligible M (@GSPEC (cart R M) (fun GEN_PVAR_7962 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7962 (~ (@measurable N' (@GSPEC (cart R N') (fun GEN_PVAR_7961 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7961 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) y)))) x))) /\ (@has_integral M unit (fun x : cart R M => lift (@measure N' (@GSPEC (cart R N') (fun GEN_PVAR_7963 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7963 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) y)))) (lift (@measure (finite_sum M N') s)) (@UNIV (cart R M))). +Axiom thm_FUBINI_MEASURE_ALT : forall {M N' : Type'}, forall s : (cart R (finite_sum M N')) -> Prop, (@measurable (finite_sum M N') s) -> (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_7965 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7965 (~ (@measurable M (@GSPEC (cart R M) (fun GEN_PVAR_7964 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7964 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) x)))) y))) /\ (@has_integral N' unit (fun y : cart R N' => lift (@measure M (@GSPEC (cart R M) (fun GEN_PVAR_7966 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7966 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) x)))) (lift (@measure (finite_sum M N') s)) (@UNIV (cart R N'))). +Axiom thm_FUBINI_LEBESGUE_MEASURABLE : forall {M N' : Type'}, forall s : (cart R (finite_sum M N')) -> Prop, (@lebesgue_measurable (finite_sum M N') s) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_7972 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7972 (~ (@lebesgue_measurable N' (@GSPEC (cart R N') (fun GEN_PVAR_7971 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7971 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) y)))) x)). +Axiom thm_FUBINI_LEBESGUE_MEASURABLE_ALT : forall {M N' : Type'}, forall s : (cart R (finite_sum M N')) -> Prop, (@lebesgue_measurable (finite_sum M N') s) -> @negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_7978 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7978 (~ (@lebesgue_measurable M (@GSPEC (cart R M) (fun GEN_PVAR_7977 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7977 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) x)))) y)). +Axiom thm_FUBINI_NEGLIGIBLE : forall {M N' : Type'}, forall s : (cart R (finite_sum M N')) -> Prop, (@negligible (finite_sum M N') s) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_7985 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7985 (~ (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_7984 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7984 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) y)))) x)). +Axiom thm_FUBINI_NEGLIGIBLE_ALT : forall {M N' : Type'}, forall s : (cart R (finite_sum M N')) -> Prop, (@negligible (finite_sum M N') s) -> @negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_7987 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7987 (~ (@negligible M (@GSPEC (cart R M) (fun GEN_PVAR_7986 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7986 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) x)))) y)). +Axiom thm_NEGLIGIBLE_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@negligible (finite_sum M N') (@PCROSS R M N' s t)) = ((@negligible M s) \/ (@negligible N' t)). +Axiom thm_FUBINI_TONELLI_MEASURE : forall {M N' : Type'}, forall s : (cart R (finite_sum M N')) -> Prop, (@lebesgue_measurable (finite_sum M N') s) -> (@measurable (finite_sum M N') s) = ((@negligible M (@GSPEC (cart R M) (fun GEN_PVAR_7999 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_7999 (~ (@measurable N' (@GSPEC (cart R N') (fun GEN_PVAR_7998 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_7998 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) y)))) x))) /\ (@integrable_on unit M (fun x : cart R M => lift (@measure N' (@GSPEC (cart R N') (fun GEN_PVAR_8000 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_8000 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) y)))) (@UNIV (cart R M)))). +Axiom thm_FUBINI_TONELLI_MEASURE_ALT : forall {M N' : Type'}, forall s : (cart R (finite_sum M N')) -> Prop, (@lebesgue_measurable (finite_sum M N') s) -> (@measurable (finite_sum M N') s) = ((@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_8002 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_8002 (~ (@measurable M (@GSPEC (cart R M) (fun GEN_PVAR_8001 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8001 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) x)))) y))) /\ (@integrable_on unit N' (fun y : cart R N' => lift (@measure M (@GSPEC (cart R M) (fun GEN_PVAR_8003 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8003 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) x)))) (@UNIV (cart R N')))). +Axiom thm_FUBINI_TONELLI_NEGLIGIBLE : forall {M N' : Type'}, forall s : (cart R (finite_sum M N')) -> Prop, (@lebesgue_measurable (finite_sum M N') s) -> (@negligible (finite_sum M N') s) = (@negligible M (@GSPEC (cart R M) (fun GEN_PVAR_8007 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8007 (~ (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_8006 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_8006 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) y)))) x))). +Axiom thm_FUBINI_TONELLI_NEGLIGIBLE_ALT : forall {M N' : Type'}, forall s : (cart R (finite_sum M N')) -> Prop, (@lebesgue_measurable (finite_sum M N') s) -> (@negligible (finite_sum M N') s) = (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_8009 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_8009 (~ (@negligible M (@GSPEC (cart R M) (fun GEN_PVAR_8008 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8008 (@IN (cart R (finite_sum M N')) (@pastecart R M N' x y) s) x)))) y))). +Axiom thm_LEBESGUE_MEASURABLE_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@lebesgue_measurable (finite_sum M N') (@PCROSS R M N' s t)) = ((@negligible M s) \/ ((@negligible N' t) \/ ((@lebesgue_measurable M s) /\ (@lebesgue_measurable N' t)))). +Axiom thm_MEASURABLE_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@measurable (finite_sum M N') (@PCROSS R M N' s t)) = ((@negligible M s) \/ ((@negligible N' t) \/ ((@measurable M s) /\ (@measurable N' t)))). +Axiom thm_HAS_MEASURE_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall a : R, forall b : R, ((@has_measure M s a) /\ (@has_measure N' t b)) -> @has_measure (finite_sum M N') (@PCROSS R M N' s t) (Rmult a b). +Axiom thm_MEASURE_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@measurable M s) /\ (@measurable N' t)) -> (@measure (finite_sum M N') (@PCROSS R M N' s t)) = (Rmult (@measure M s) (@measure N' t)). +Axiom thm_LEBESGUE_MEASURABLE_FUNCTION_ORDINATE_SET_LE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall k : N, (@measurable_on M N' f (@UNIV (cart R M))) -> @lebesgue_measurable (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_8036 : cart R (finite_sum M N') => exists x : cart R M, exists y : cart R N', @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_8036 (Rle (@dollar R N' y k) (@dollar R N' (f x) k)) (@pastecart R M N' x y))). +Axiom thm_LEBESGUE_MEASURABLE_FUNCTION_ORDINATE_SET_LT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall k : N, (@measurable_on M N' f (@UNIV (cart R M))) -> @lebesgue_measurable (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_8037 : cart R (finite_sum M N') => exists x : cart R M, exists y : cart R N', @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_8037 (Rlt (@dollar R N' y k) (@dollar R N' (f x) k)) (@pastecart R M N' x y))). +Axiom thm_LEBESGUE_MEASURABLE_FUNCTION_ORTHANT_SET_LE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (@lebesgue_measurable (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_8047 : cart R (finite_sum M N') => exists x : cart R M, exists y : cart R N', @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_8047 (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> Rle (@dollar R N' y k) (@dollar R N' (f x) k)) (@pastecart R M N' x y)))). +Axiom thm_LEBESGUE_MEASURABLE_FUNCTION_ORDINATE_SET_LE_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @lebesgue_measurable (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_8046 : cart R (finite_sum M N') => exists x : cart R M, exists y : cart R N', @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_8046 (Rle (@dollar R N' y k) (@dollar R N' (f x) k)) (@pastecart R M N' x y)))). +Axiom thm_LEBESGUE_MEASURABLE_FUNCTION_ORTHANT_SET_LT_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (@lebesgue_measurable (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_8057 : cart R (finite_sum M N') => exists x : cart R M, exists y : cart R N', @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_8057 (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> Rlt (@dollar R N' y k) (@dollar R N' (f x) k)) (@pastecart R M N' x y)))). +Axiom thm_LEBESGUE_MEASURABLE_FUNCTION_ORDINATE_SET_LT_EQ : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) = (forall k : N, ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> @lebesgue_measurable (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_8056 : cart R (finite_sum M N') => exists x : cart R M, exists y : cart R N', @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_8056 (Rlt (@dollar R N' y k) (@dollar R N' (f x) k)) (@pastecart R M N' x y)))). +Axiom thm_NEGLIGIBLE_MEASURABLE_FUNCTION_GRAPH : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) -> @negligible (finite_sum M N') (@GSPEC (cart R (finite_sum M N')) (fun GEN_PVAR_8067 : cart R (finite_sum M N') => exists x : cart R M, exists y : cart R N', @SETSPEC (cart R (finite_sum M N')) GEN_PVAR_8067 ((f x) = y) (@pastecart R M N' x y))). +Axiom thm_MEASURABLE_IFF_LEBESGUE_MEASURABLE_UNDER_CURVE : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, (forall x : cart R N', Rle (R_of_N (NUMERAL 0%N)) (drop (f x))) -> (@measurable_on N' unit f (@UNIV (cart R N'))) = (@lebesgue_measurable (finite_sum N' unit) (@GSPEC (cart R (finite_sum N' unit)) (fun GEN_PVAR_8074 : cart R (finite_sum N' unit) => exists x : cart R N', exists y : cart R unit, @SETSPEC (cart R (finite_sum N' unit)) GEN_PVAR_8074 (@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (f x)) (@nil (prod (cart R unit) (cart R unit)))))) (@pastecart R N' unit x y)))). +Axiom thm_INTEGRABLE_IFF_MEASURABLE_UNDER_CURVE : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, (forall x : cart R N', Rle (R_of_N (NUMERAL 0%N)) (drop (f x))) -> (@integrable_on unit N' f (@UNIV (cart R N'))) = (@measurable (finite_sum N' unit) (@GSPEC (cart R (finite_sum N' unit)) (fun GEN_PVAR_8080 : cart R (finite_sum N' unit) => exists x : cart R N', exists y : cart R unit, @SETSPEC (cart R (finite_sum N' unit)) GEN_PVAR_8080 (@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (f x)) (@nil (prod (cart R unit) (cart R unit)))))) (@pastecart R N' unit x y)))). +Axiom thm_HAS_INTEGRAL_MEASURE_UNDER_CURVE : forall {N' : Type'}, forall f : (cart R N') -> cart R unit, forall m : R, (forall x : cart R N', Rle (R_of_N (NUMERAL 0%N)) (drop (f x))) -> (@has_integral N' unit f (lift m) (@UNIV (cart R N'))) = (@has_measure (finite_sum N' unit) (@GSPEC (cart R (finite_sum N' unit)) (fun GEN_PVAR_8082 : cart R (finite_sum N' unit) => exists x : cart R N', exists y : cart R unit, @SETSPEC (cart R (finite_sum N' unit)) GEN_PVAR_8082 (@IN (cart R unit) y (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (f x)) (@nil (prod (cart R unit) (cart R unit)))))) (@pastecart R N' unit x y))) m). +Axiom thm_MEASURABLE_ON_COMPOSE_FSTCART : forall {M N' P : Type'}, forall f : (cart R M) -> cart R P, (@measurable_on M P f (@UNIV (cart R M))) -> @measurable_on (finite_sum M N') P (fun z : cart R (finite_sum M N') => f (@fstcart R M N' z)) (@UNIV (cart R (finite_sum M N'))). +Axiom thm_MEASURABLE_ON_COMPOSE_SNDCART : forall {M N' P : Type'}, forall f : (cart R N') -> cart R P, (@measurable_on N' P f (@UNIV (cart R N'))) -> @measurable_on (finite_sum M N') P (fun z : cart R (finite_sum M N') => f (@sndcart R M N' z)) (@UNIV (cart R (finite_sum M N'))). +Axiom thm_MEASURABLE_ON_COMPOSE_SUB : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@measurable_on M N' f (@UNIV (cart R M))) -> @measurable_on (finite_sum M M) N' (fun z : cart R (finite_sum M M) => f (@vector_sub M (@fstcart R M M z) (@sndcart R M M z))) (@UNIV (cart R (finite_sum M M))). +Axiom thm_FUBINI_ABSOLUTELY_INTEGRABLE : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, (@absolutely_integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))) -> (@negligible M (@GSPEC (cart R M) (fun GEN_PVAR_8096 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8096 (~ (@absolutely_integrable_on P N' (fun y : cart R N' => f (@pastecart R M N' x y)) (@UNIV (cart R N')))) x))) /\ (@has_integral M P (fun x : cart R M => @integral P N' (@UNIV (cart R N')) (fun y : cart R N' => f (@pastecart R M N' x y))) (@integral P (finite_sum M N') (@UNIV (cart R (finite_sum M N'))) f) (@UNIV (cart R M))). +Axiom thm_FUBINI_ABSOLUTELY_INTEGRABLE_ALT : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, (@absolutely_integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))) -> (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_8097 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_8097 (~ (@absolutely_integrable_on P M (fun x : cart R M => f (@pastecart R M N' x y)) (@UNIV (cart R M)))) y))) /\ (@has_integral N' P (fun y : cart R N' => @integral P M (@UNIV (cart R M)) (fun x : cart R M => f (@pastecart R M N' x y))) (@integral P (finite_sum M N') (@UNIV (cart R (finite_sum M N'))) f) (@UNIV (cart R N'))). +Axiom thm_FUBINI_INTEGRAL : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, (@absolutely_integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))) -> (@integral P (finite_sum M N') (@UNIV (cart R (finite_sum M N'))) f) = (@integral P M (@UNIV (cart R M)) (fun x : cart R M => @integral P N' (@UNIV (cart R N')) (fun y : cart R N' => f (@pastecart R M N' x y)))). +Axiom thm_FUBINI_INTEGRAL_ALT : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, (@absolutely_integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))) -> (@integral P (finite_sum M N') (@UNIV (cart R (finite_sum M N'))) f) = (@integral P N' (@UNIV (cart R N')) (fun y : cart R N' => @integral P M (@UNIV (cart R M)) (fun x : cart R M => f (@pastecart R M N' x y)))). +Axiom thm_FUBINI_HAS_ABSOLUTE_INTEGRAL : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, (@absolutely_integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))) -> (@negligible M (@GSPEC (cart R M) (fun GEN_PVAR_8100 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8100 (~ (@absolutely_integrable_on P N' (fun y : cart R N' => f (@pastecart R M N' x y)) (@UNIV (cart R N')))) x))) /\ ((@absolutely_integrable_on P M (fun x : cart R M => @integral P N' (@UNIV (cart R N')) (fun y : cart R N' => f (@pastecart R M N' x y))) (@UNIV (cart R M))) /\ ((@integral P M (@UNIV (cart R M)) (fun x : cart R M => @integral P N' (@UNIV (cart R N')) (fun y : cart R N' => f (@pastecart R M N' x y)))) = (@integral P (finite_sum M N') (@UNIV (cart R (finite_sum M N'))) f))). +Axiom thm_FUBINI_HAS_ABSOLUTE_INTEGRAL_ALT : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, (@absolutely_integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))) -> (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_8103 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_8103 (~ (@absolutely_integrable_on P M (fun x : cart R M => f (@pastecart R M N' x y)) (@UNIV (cart R M)))) y))) /\ ((@absolutely_integrable_on P N' (fun y : cart R N' => @integral P M (@UNIV (cart R M)) (fun x : cart R M => f (@pastecart R M N' x y))) (@UNIV (cart R N'))) /\ ((@integral P N' (@UNIV (cart R N')) (fun y : cart R N' => @integral P M (@UNIV (cart R M)) (fun x : cart R M => f (@pastecart R M N' x y)))) = (@integral P (finite_sum M N') (@UNIV (cart R (finite_sum M N'))) f))). +Axiom thm_FUBINI_INTEGRAL_SWAP : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, (@absolutely_integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))) -> (@integral P M (@UNIV (cart R M)) (fun x : cart R M => @integral P N' (@UNIV (cart R N')) (fun y : cart R N' => f (@pastecart R M N' x y)))) = (@integral P N' (@UNIV (cart R N')) (fun y : cart R N' => @integral P M (@UNIV (cart R M)) (fun x : cart R M => f (@pastecart R M N' x y)))). +Axiom thm_FUBINI_HAS_INTEGRAL_SWAP : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, (@absolutely_integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))) -> @has_integral M P (fun x : cart R M => @integral P N' (@UNIV (cart R N')) (fun y : cart R N' => f (@pastecart R M N' x y))) (@integral P N' (@UNIV (cart R N')) (fun y : cart R N' => @integral P M (@UNIV (cart R M)) (fun x : cart R M => f (@pastecart R M N' x y)))) (@UNIV (cart R M)). +Axiom thm_FUBINI_HAS_INTEGRAL_SWAP_ALT : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, (@absolutely_integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))) -> @has_integral N' P (fun y : cart R N' => @integral P M (@UNIV (cart R M)) (fun x : cart R M => f (@pastecart R M N' x y))) (@integral P M (@UNIV (cart R M)) (fun x : cart R M => @integral P N' (@UNIV (cart R N')) (fun y : cart R N' => f (@pastecart R M N' x y)))) (@UNIV (cart R N')). +Axiom thm_FUBINI_INTEGRAL_INTERVAL : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', (@absolutely_integrable_on P (finite_sum M N') f (@closed_interval (finite_sum M N') (@cons (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))) (@pair (cart R (finite_sum M N')) (cart R (finite_sum M N')) (@pastecart R M N' a c) (@pastecart R M N' b d)) (@nil (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))))))) -> (@integral P (finite_sum M N') (@closed_interval (finite_sum M N') (@cons (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))) (@pair (cart R (finite_sum M N')) (cart R (finite_sum M N')) (@pastecart R M N' a c) (@pastecart R M N' b d)) (@nil (prod (cart R (finite_sum M N')) (cart R (finite_sum M N')))))) f) = (@integral P M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => @integral P N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (fun y : cart R N' => f (@pastecart R M N' x y)))). +Axiom thm_FUBINI_INTEGRAL_INTERVAL_ALT : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', (@absolutely_integrable_on P (finite_sum M N') f (@closed_interval (finite_sum M N') (@cons (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))) (@pair (cart R (finite_sum M N')) (cart R (finite_sum M N')) (@pastecart R M N' a c) (@pastecart R M N' b d)) (@nil (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))))))) -> (@integral P (finite_sum M N') (@closed_interval (finite_sum M N') (@cons (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))) (@pair (cart R (finite_sum M N')) (cart R (finite_sum M N')) (@pastecart R M N' a c) (@pastecart R M N' b d)) (@nil (prod (cart R (finite_sum M N')) (cart R (finite_sum M N')))))) f) = (@integral P N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (fun y : cart R N' => @integral P M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => f (@pastecart R M N' x y)))). +Axiom thm_INTEGRAL_PASTECART_CONTINUOUS : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', (@continuous_on (finite_sum M N') P f (@closed_interval (finite_sum M N') (@cons (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))) (@pair (cart R (finite_sum M N')) (cart R (finite_sum M N')) (@pastecart R M N' a c) (@pastecart R M N' b d)) (@nil (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))))))) -> (@integral P (finite_sum M N') (@closed_interval (finite_sum M N') (@cons (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))) (@pair (cart R (finite_sum M N')) (cart R (finite_sum M N')) (@pastecart R M N' a c) (@pastecart R M N' b d)) (@nil (prod (cart R (finite_sum M N')) (cart R (finite_sum M N')))))) f) = (@integral P M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => @integral P N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (fun y : cart R N' => f (@pastecart R M N' x y)))). +Axiom thm_INTEGRAL_SWAP_CONTINUOUS : forall {M N' P : Type'}, forall f : (cart R M) -> (cart R N') -> cart R P, forall a : cart R M, forall b : cart R M, forall c : cart R N', forall d : cart R N', (@continuous_on (finite_sum M N') P (fun z : cart R (finite_sum M N') => f (@fstcart R M N' z) (@sndcart R M N' z)) (@closed_interval (finite_sum M N') (@cons (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))) (@pair (cart R (finite_sum M N')) (cart R (finite_sum M N')) (@pastecart R M N' a c) (@pastecart R M N' b d)) (@nil (prod (cart R (finite_sum M N')) (cart R (finite_sum M N'))))))) -> (@integral P M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => @integral P N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (f x))) = (@integral P N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N'))))) (fun y : cart R N' => @integral P M (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) a b) (@nil (prod (cart R M) (cart R M))))) (fun x : cart R M => f x y))). +Axiom thm_FUBINI_TONELLI : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, (@measurable_on (finite_sum M N') P f (@UNIV (cart R (finite_sum M N')))) -> (@absolutely_integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))) = ((@negligible M (@GSPEC (cart R M) (fun GEN_PVAR_8108 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8108 (~ (@absolutely_integrable_on P N' (fun y : cart R N' => f (@pastecart R M N' x y)) (@UNIV (cart R N')))) x))) /\ (@integrable_on unit M (fun x : cart R M => @integral unit N' (@UNIV (cart R N')) (fun y : cart R N' => lift (@vector_norm P (f (@pastecart R M N' x y))))) (@UNIV (cart R M)))). +Axiom thm_FUBINI_TONELLI_ALT : forall {M N' P : Type'}, forall f : (cart R (finite_sum M N')) -> cart R P, (@measurable_on (finite_sum M N') P f (@UNIV (cart R (finite_sum M N')))) -> (@absolutely_integrable_on P (finite_sum M N') f (@UNIV (cart R (finite_sum M N')))) = ((@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_8109 : cart R N' => exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_8109 (~ (@absolutely_integrable_on P M (fun x : cart R M => f (@pastecart R M N' x y)) (@UNIV (cart R M)))) y))) /\ (@integrable_on unit N' (fun y : cart R N' => @integral unit M (@UNIV (cart R M)) (fun x : cart R M => lift (@vector_norm P (f (@pastecart R M N' x y))))) (@UNIV (cart R N')))). +Axiom thm_HAS_DOUBLE_INTEGRAL_PCROSS : forall {M N' P Q R' : Type'}, forall bop : (cart R P) -> (cart R Q) -> cart R R', forall f : (cart R M) -> cart R P, forall g : (cart R N') -> cart R Q, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@bilinear Q R' P bop) /\ ((@absolutely_integrable_on P M f s) /\ (@absolutely_integrable_on Q N' g t))) -> @has_integral (finite_sum M N') R' (fun z : cart R (finite_sum M N') => bop (f (@fstcart R M N' z)) (g (@sndcart R M N' z))) (bop (@integral P M s f) (@integral Q N' t g)) (@PCROSS R M N' s t). +Axiom thm_FUBINI_NEGLIGIBLE_REPLACEMENTS : forall {N' : Type'}, forall k : N, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) -> (@negligible N' s) = (@negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_8117 : cart R unit => exists a : R, @SETSPEC (cart R unit) GEN_PVAR_8117 (~ (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_8116 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_8116 (@IN (cart R N') (@lambda R N' (fun i : N => @COND R (i = k) a (@dollar R N' x i))) s) x)))) (lift a)))). +Axiom thm_FUBINI_NEGLIGIBLE_REPLACEMENTS_ALT : forall {N' : Type'}, forall k : N, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) -> (@negligible N' s) = (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_8124 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_8124 (~ (@negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_8123 : cart R unit => exists a : R, @SETSPEC (cart R unit) GEN_PVAR_8123 (@IN (cart R N') (@lambda R N' (fun i : N => @COND R (i = k) a (@dollar R N' x i))) s) (lift a))))) x))). +Axiom thm_FUBINI_NEGLIGIBLE_OFFSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall v : cart R N', (@lebesgue_measurable N' s) -> (@negligible N' s) = (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_8137 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_8137 (~ (@negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_8136 : cart R unit => exists t : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_8136 (@IN (cart R N') (@vector_add N' x (@percent N' (drop t) v)) s) t)))) x))). +Axiom thm_HAS_INTEGRAL_CONVOLUTION_SYM : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall i : cart R Q, forall x : cart R M, (@has_integral M Q (fun y : cart R M => bop (f (@vector_sub M x y)) (g y)) i (@UNIV (cart R M))) = (@has_integral M Q (fun y : cart R M => bop (f y) (g (@vector_sub M x y))) i (@UNIV (cart R M))). +Axiom thm_INTEGRABLE_CONVOLUTION_SYM : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall x : cart R M, (@integrable_on Q M (fun y : cart R M => bop (f (@vector_sub M x y)) (g y)) (@UNIV (cart R M))) = (@integrable_on Q M (fun y : cart R M => bop (f y) (g (@vector_sub M x y))) (@UNIV (cart R M))). +Axiom thm_INTEGRAL_CONVOLUTION_SYM : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall x : cart R M, (@integral Q M (@UNIV (cart R M)) (fun y : cart R M => bop (f (@vector_sub M x y)) (g y))) = (@integral Q M (@UNIV (cart R M)) (fun y : cart R M => bop (f y) (g (@vector_sub M x y)))). +Axiom thm_ABSOLUTELY_INTEGRABLE_CONVOLUTION_SYM : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall x : cart R M, (@absolutely_integrable_on Q M (fun y : cart R M => bop (f (@vector_sub M x y)) (g y)) (@UNIV (cart R M))) = (@absolutely_integrable_on Q M (fun y : cart R M => bop (f y) (g (@vector_sub M x y))) (@UNIV (cart R M))). +Axiom thm_MEASURABLE_ON_CONVOLUTION : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall x : cart R M, ((@bilinear P Q N' bop) /\ ((@measurable_on M N' f (@UNIV (cart R M))) /\ (@measurable_on M P g (@UNIV (cart R M))))) -> @measurable_on M Q (fun y : cart R M => bop (f (@vector_sub M x y)) (g y)) (@UNIV (cart R M)). +Axiom thm_HAS_DOUBLE_INTEGRAL_CONVOLUTION : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, ((@bilinear P Q N' bop) /\ ((@absolutely_integrable_on N' M f (@UNIV (cart R M))) /\ (@absolutely_integrable_on P M g (@UNIV (cart R M))))) -> @has_integral M Q (fun x : cart R M => @integral Q M (@UNIV (cart R M)) (fun y : cart R M => bop (f (@vector_sub M x y)) (g y))) (bop (@integral N' M (@UNIV (cart R M)) f) (@integral P M (@UNIV (cart R M)) g)) (@UNIV (cart R M)). +Axiom thm_ABSOLUTELY_INTEGRABLE_CONVOLUTION_AE : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, ((@bilinear P Q N' bop) /\ ((@absolutely_integrable_on N' M f (@UNIV (cart R M))) /\ (@absolutely_integrable_on P M g (@UNIV (cart R M))))) -> exists t : (cart R M) -> Prop, (@negligible M t) /\ (forall x : cart R M, (~ (@IN (cart R M) x t)) -> @absolutely_integrable_on Q M (fun y : cart R M => bop (f (@vector_sub M x y)) (g y)) (@UNIV (cart R M))). +Axiom thm_DOUBLE_INTEGRABLE_CONVOLUTION : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, ((@bilinear P Q N' bop) /\ ((@absolutely_integrable_on N' M f (@UNIV (cart R M))) /\ (@absolutely_integrable_on P M g (@UNIV (cart R M))))) -> @integrable_on Q M (fun x : cart R M => @integral Q M (@UNIV (cart R M)) (fun y : cart R M => bop (f (@vector_sub M x y)) (g y))) (@UNIV (cart R M)). +Axiom thm_DOUBLE_INTEGRAL_CONVOLUTION : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, ((@bilinear P Q N' bop) /\ ((@absolutely_integrable_on N' M f (@UNIV (cart R M))) /\ (@absolutely_integrable_on P M g (@UNIV (cart R M))))) -> (@integral Q M (@UNIV (cart R M)) (fun x : cart R M => @integral Q M (@UNIV (cart R M)) (fun y : cart R M => bop (f (@vector_sub M x y)) (g y)))) = (bop (@integral N' M (@UNIV (cart R M)) f) (@integral P M (@UNIV (cart R M)) g)). +Axiom thm_ABSOLUTELY_INTEGRABLE_CONVOLUTION_L2 : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall x : cart R M, ((@bilinear P Q N' bop) /\ ((@measurable_on M N' f (@UNIV (cart R M))) /\ ((@measurable_on M P g (@UNIV (cart R M))) /\ ((@absolutely_integrable_on unit M (fun x' : cart R M => lift (real_pow (@vector_norm N' (f x')) (NUMERAL (BIT0 (BIT1 0%N))))) (@UNIV (cart R M))) /\ (@absolutely_integrable_on unit M (fun x' : cart R M => lift (real_pow (@vector_norm P (g x')) (NUMERAL (BIT0 (BIT1 0%N))))) (@UNIV (cart R M))))))) -> @absolutely_integrable_on Q M (fun y : cart R M => bop (f (@vector_sub M x y)) (g y)) (@UNIV (cart R M)). +Axiom thm_ABSOLUTELY_INTEGRABLE_CONVOLUTION_L1_LINF : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall x : cart R M, ((@bilinear P Q N' bop) /\ ((@absolutely_integrable_on N' M f (@UNIV (cart R M))) /\ ((@measurable_on M P g (@UNIV (cart R M))) /\ (@bounded P (@IMAGE (cart R M) (cart R P) g (@UNIV (cart R M))))))) -> @absolutely_integrable_on Q M (fun y : cart R M => bop (f (@vector_sub M x y)) (g y)) (@UNIV (cart R M)). +Axiom thm_ABSOLUTELY_INTEGRABLE_CONVOLUTION_LINF_L1 : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, forall x : cart R M, ((@bilinear P Q N' bop) /\ ((@measurable_on M N' f (@UNIV (cart R M))) /\ ((@bounded N' (@IMAGE (cart R M) (cart R N') f (@UNIV (cart R M)))) /\ (@absolutely_integrable_on P M g (@UNIV (cart R M)))))) -> @absolutely_integrable_on Q M (fun y : cart R M => bop (f (@vector_sub M x y)) (g y)) (@UNIV (cart R M)). +Axiom thm_CONTINUOUS_ON_CONVOLUTION_L1_LINF : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, ((@bilinear P Q N' bop) /\ ((@absolutely_integrable_on N' M f (@UNIV (cart R M))) /\ ((@measurable_on M P g (@UNIV (cart R M))) /\ (@bounded P (@IMAGE (cart R M) (cart R P) g (@UNIV (cart R M))))))) -> @continuous_on M Q (fun x : cart R M => @integral Q M (@UNIV (cart R M)) (fun y : cart R M => bop (f (@vector_sub M x y)) (g y))) (@UNIV (cart R M)). +Axiom thm_CONTINUOUS_ON_CONVOLUTION_LINF_L1 : forall {M N' P Q : Type'}, forall bop : (cart R N') -> (cart R P) -> cart R Q, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R P, ((@bilinear P Q N' bop) /\ ((@measurable_on M N' f (@UNIV (cart R M))) /\ ((@bounded N' (@IMAGE (cart R M) (cart R N') f (@UNIV (cart R M)))) /\ (@absolutely_integrable_on P M g (@UNIV (cart R M)))))) -> @continuous_on M Q (fun x : cart R M => @integral Q M (@UNIV (cart R M)) (fun y : cart R M => bop (f (@vector_sub M x y)) (g y))) (@UNIV (cart R M)). +Axiom thm_STEINHAUS_SUMS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ ((~ (@negligible N' s)) /\ ((@lebesgue_measurable N' t) /\ (~ (@negligible N' t))))) -> ~ ((@interior N' (@GSPEC (cart R N') (fun GEN_PVAR_8139 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_8139 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_add N' x y)))) = (@EMPTY (cart R N'))). +Axiom thm_STEINHAUS_DIFFS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@lebesgue_measurable N' s) /\ ((~ (@negligible N' s)) /\ ((@lebesgue_measurable N' t) /\ (~ (@negligible N' t))))) -> ~ ((@interior N' (@GSPEC (cart R N') (fun GEN_PVAR_8142 : cart R N' => exists x : cart R N', exists y : cart R N', @SETSPEC (cart R N') GEN_PVAR_8142 ((@IN (cart R N') x s) /\ (@IN (cart R N') y t)) (@vector_sub N' x y)))) = (@EMPTY (cart R N'))). +Axiom thm_MIDPOINT_CONVEX_IMP_CONTINUOUS_OSTROWSKI : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall B : R, ((@convex N' s) /\ ((@_open N' s) /\ ((forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (f (@midpoint N' (@pair (cart R N') (cart R N') x y))) (Rdiv (Rplus (f x) (f y)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((@SUBSET (cart R N') t s) /\ ((@lebesgue_measurable N' t) /\ ((~ (@negligible N' t)) /\ (forall x : cart R N', (@IN (cart R N') x t) -> Rle (f x) B))))))) -> @continuous_on N' unit (@o (cart R N') R (cart R unit) lift f) s. +Axiom thm_MIDPOINT_CONVEX_IMP_CONVEX_OSTROWSKI : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall B : R, ((@convex N' s) /\ ((@_open N' s) /\ ((@SUBSET (cart R N') t s) /\ ((@lebesgue_measurable N' t) /\ ((~ (@negligible N' t)) /\ ((forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (f (@midpoint N' (@pair (cart R N') (cart R N') x y))) (Rdiv (Rplus (f x) (f y)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ (forall x : cart R N', (@IN (cart R N') x t) -> Rle (f x) B))))))) -> @convex_on N' f s. +Axiom thm_MEASURABLE_MIDPOINT_CONVEX_IMP_CONTINUOUS : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@measurable_on N' unit (@o (cart R N') R (cart R unit) lift f) s) /\ ((@_open N' s) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (f (@midpoint N' (@pair (cart R N') (cart R N') x y))) (Rdiv (Rplus (f x) (f y)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> @continuous_on N' unit (@o (cart R N') R (cart R unit) lift f) s. +Axiom thm_MEASURABLE_MIDPOINT_CONVEX_IMP_CONVEX_GEN : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@measurable_on N' unit (@o (cart R N') R (cart R unit) lift f) s) /\ ((@convex N' s) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (f (@midpoint N' (@pair (cart R N') (cart R N') x y))) (Rdiv (Rplus (f x) (f y)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> forall x : cart R N', forall y : cart R N', forall u : R, forall v : R, ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ (((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') x y) (@nil (prod (cart R N') (cart R N'))))) (@frontier N' s)) -> x = y)))))) -> Rle (f (@vector_add N' (@percent N' u x) (@percent N' v y))) (Rplus (Rmult u (f x)) (Rmult v (f y))). +Axiom thm_MEASURABLE_MIDPOINT_CONVEX_IMP_CONVEX_OPEN : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@measurable_on N' unit (@o (cart R N') R (cart R unit) lift f) s) /\ ((@convex N' s) /\ ((@_open N' s) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (f (@midpoint N' (@pair (cart R N') (cart R N') x y))) (Rdiv (Rplus (f x) (f y)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))) -> @convex_on N' f s. +Axiom thm_MEASURABLE_MIDPOINT_CONVEX_IMP_CONVEX_1D : forall f : (cart R unit) -> R, forall s : (cart R unit) -> Prop, ((@measurable_on unit unit (@o (cart R unit) R (cart R unit) lift f) s) /\ ((@convex unit s) /\ (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ (@IN (cart R unit) y s)) -> Rle (f (@midpoint unit (@pair (cart R unit) (cart R unit) x y))) (Rdiv (Rplus (f x) (f y)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> @convex_on unit f s. +Axiom thm_MEASURABLE_MIDPOINT_CONVEX_IMP_CONVEX_CBALL : forall {N' : Type'}, forall f : (cart R N') -> R, forall a : cart R N', forall r : R, ((@measurable_on N' unit (@o (cart R N') R (cart R unit) lift f) (@cball N' (@pair (cart R N') R a r))) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@cball N' (@pair (cart R N') R a r))) /\ (@IN (cart R N') y (@cball N' (@pair (cart R N') R a r)))) -> Rle (f (@midpoint N' (@pair (cart R N') (cart R N') x y))) (Rdiv (Rplus (f x) (f y)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> @convex_on N' f (@cball N' (@pair (cart R N') R a r)). +Axiom thm_OSTROWSKI_THEOREM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall B : R, forall s : (cart R M) -> Prop, ((forall x : cart R M, forall y : cart R M, (f (@vector_add M x y)) = (@vector_add N' (f x) (f y))) /\ ((forall x : cart R M, (@IN (cart R M) x s) -> Rle (@vector_norm N' (f x)) B) /\ ((@measurable M s) /\ (Rlt (R_of_N (NUMERAL 0%N)) (@measure M s))))) -> @linear M N' f. +Axiom thm_MEASURABLE_ADDITIVE_IMP_LINEAR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@measurable_on M N' f (@UNIV (cart R M))) /\ (forall x : cart R M, forall y : cart R M, (f (@vector_add M x y)) = (@vector_add N' (f x) (f y)))) -> @linear M N' f. +Axiom thm_CONTINUOUS_ADDITIVE_IMP_LINEAR : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', ((@continuous_on M N' f (@UNIV (cart R M))) /\ (forall x : cart R M, forall y : cart R M, (f (@vector_add M x y)) = (@vector_add N' (f x) (f y)))) -> @linear M N' f. +Axiom thm_RADEMACHER_UNIV : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (exists B : R, forall x : cart R M, forall y : cart R M, Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_8222 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8222 (~ (@differentiable N' M f (@_at M x))) x)). +Axiom thm_RADEMACHER : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_8223 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8223 ((@IN (cart R M) x s) /\ (~ (@differentiable N' M f (@within (cart R M) (@_at M x) s)))) x)). +Axiom thm_RADEMACHER_OPEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@_open M s) /\ (exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y))))) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_8226 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8226 ((@IN (cart R M) x s) /\ (~ (@differentiable N' M f (@_at M x)))) x)). +Axiom thm_RADEMACHER_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@negligible M (@frontier M s)) /\ (exists B : R, forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y))))) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_8228 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8228 ((@IN (cart R M) x s) /\ (~ (@differentiable N' M f (@_at M x)))) x)). +Axiom thm_STEPANOV_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@lebesgue_measurable M s) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_8260 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8260 ((@IN (cart R M) x s) /\ ((exists B : R, @eventually (cart R M) (fun y : cart R M => Rle (Rdiv (@vector_norm N' (@vector_sub N' (f x) (f y))) (@vector_norm M (@vector_sub M x y))) B) (@within (cart R M) (@_at M x) s)) /\ (~ (@differentiable N' M f (@within (cart R M) (@_at M x) s))))) x)). +Axiom thm_STEPANOV : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@_open M s) -> @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_8264 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8264 ((@IN (cart R M) x s) /\ ((exists B : R, @eventually (cart R M) (fun y : cart R M => Rle (Rdiv (@vector_norm N' (@vector_sub N' (f x) (f y))) (@vector_norm M (@vector_sub M x y))) B) (@_at M x)) /\ (~ (@differentiable N' M f (@_at M x))))) x)). +Axiom thm_STEPANOV_UNIV : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', @negligible M (@GSPEC (cart R M) (fun GEN_PVAR_8265 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8265 ((exists B : R, @eventually (cart R M) (fun y : cart R M => Rle (Rdiv (@vector_norm N' (@vector_sub N' (f x) (f y))) (@vector_norm M (@vector_sub M x y))) B) (@_at M x)) /\ (~ (@differentiable N' M f (@_at M x)))) x)). +Axiom thm_RE_DEF : forall z : cart R (tybit0 unit), (Re z) = (@dollar R (tybit0 unit) z (NUMERAL (BIT1 0%N))). +Axiom thm_IM_DEF : forall z : cart R (tybit0 unit), (Im z) = (@dollar R (tybit0 unit) z (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_complex : forall x : R, forall y : R, (complex (@pair R R x y)) = (@vector R (tybit0 unit) (@cons R x (@cons R y (@nil R)))). +Axiom thm_CX_DEF : forall a : R, (Cx a) = (complex (@pair R R a (R_of_N (NUMERAL 0%N)))). +Axiom thm_ii : ii = (complex (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_complex_mul : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul w z) = (complex (@pair R R (Rminus (Rmult (Re w) (Re z)) (Rmult (Im w) (Im z))) (Rplus (Rmult (Re w) (Im z)) (Rmult (Im w) (Re z))))). +Axiom thm_complex_inv : forall z : cart R (tybit0 unit), (complex_inv z) = (complex (@pair R R (Rdiv (Re z) (Rplus (real_pow (Re z) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (Im z) (NUMERAL (BIT0 (BIT1 0%N)))))) (Rdiv (Ropp (Im z)) (Rplus (real_pow (Re z) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (Im z) (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_complex_div : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_div w z) = (complex_mul w (complex_inv z)). +Axiom thm_RE : forall (y : R) (x : R), (Re (complex (@pair R R x y))) = x. +Axiom thm_IM : forall (x : R) (y : R), (Im (complex (@pair R R x y))) = y. +Axiom thm_COMPLEX_EQ : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (w = z) = (((Re w) = (Re z)) /\ ((Im w) = (Im z))). +Axiom thm_COMPLEX : forall z : cart R (tybit0 unit), (complex (@pair R R (Re z) (Im z))) = z. +Axiom thm_COMPLEX_EQ_0 : forall (z : cart R (tybit0 unit)), (z = (Cx (R_of_N (NUMERAL 0%N)))) = ((Rplus (real_pow (Re z) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (Im z) (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL 0%N))). +Axiom thm_FORALL_COMPLEX : forall (P : (cart R (tybit0 unit)) -> Prop), (forall z : cart R (tybit0 unit), P z) = (forall x : R, forall y : R, P (complex (@pair R R x y))). +Axiom thm_EXISTS_COMPLEX : forall (P : (cart R (tybit0 unit)) -> Prop), (exists z : cart R (tybit0 unit), P z) = (exists x : R, exists y : R, P (complex (@pair R R x y))). +Axiom thm_complex_neg : forall (z : cart R (tybit0 unit)), (@vector_neg (tybit0 unit) z) = (complex (@pair R R (Ropp (Re z)) (Ropp (Im z)))). +Axiom thm_complex_add : forall (w : cart R (tybit0 unit)) (z : cart R (tybit0 unit)), (@vector_add (tybit0 unit) w z) = (complex (@pair R R (Rplus (Re w) (Re z)) (Rplus (Im w) (Im z)))). +Axiom thm_complex_norm : forall (z : cart R (tybit0 unit)), (@vector_norm (tybit0 unit) z) = (sqrt (Rplus (real_pow (Re z) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (Im z) (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_COMPLEX_SQNORM : forall (z : cart R (tybit0 unit)), (real_pow (@vector_norm (tybit0 unit) z) (NUMERAL (BIT0 (BIT1 0%N)))) = (Rplus (real_pow (Re z) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (Im z) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_COMPLEX_ADD_SYM : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_add (tybit0 unit) x y) = (@vector_add (tybit0 unit) y x). +Axiom thm_COMPLEX_ADD_ASSOC : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@vector_add (tybit0 unit) x (@vector_add (tybit0 unit) y z)) = (@vector_add (tybit0 unit) (@vector_add (tybit0 unit) x y) z). +Axiom thm_COMPLEX_ADD_LID : forall x : cart R (tybit0 unit), (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL 0%N))) x) = x. +Axiom thm_COMPLEX_ADD_LINV : forall x : cart R (tybit0 unit), (@vector_add (tybit0 unit) (@vector_neg (tybit0 unit) x) x) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_COMPLEX_MUL_SYM : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (complex_mul x y) = (complex_mul y x). +Axiom thm_COMPLEX_MUL_ASSOC : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul x (complex_mul y z)) = (complex_mul (complex_mul x y) z). +Axiom thm_COMPLEX_MUL_LID : forall x : cart R (tybit0 unit), (complex_mul (Cx (R_of_N (NUMERAL (BIT1 0%N)))) x) = x. +Axiom thm_COMPLEX_ADD_LDISTRIB : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul x (@vector_add (tybit0 unit) y z)) = (@vector_add (tybit0 unit) (complex_mul x y) (complex_mul x z)). +Axiom thm_COMPLEX_ADD_AC : forall (n : cart R (tybit0 unit)) (m : cart R (tybit0 unit)) (p : cart R (tybit0 unit)), ((@vector_add (tybit0 unit) m n) = (@vector_add (tybit0 unit) n m)) /\ (((@vector_add (tybit0 unit) (@vector_add (tybit0 unit) m n) p) = (@vector_add (tybit0 unit) m (@vector_add (tybit0 unit) n p))) /\ ((@vector_add (tybit0 unit) m (@vector_add (tybit0 unit) n p)) = (@vector_add (tybit0 unit) n (@vector_add (tybit0 unit) m p)))). +Axiom thm_COMPLEX_MUL_AC : forall (n : cart R (tybit0 unit)) (m : cart R (tybit0 unit)) (p : cart R (tybit0 unit)), ((complex_mul m n) = (complex_mul n m)) /\ (((complex_mul (complex_mul m n) p) = (complex_mul m (complex_mul n p))) /\ ((complex_mul m (complex_mul n p)) = (complex_mul n (complex_mul m p)))). +Axiom thm_COMPLEX_ADD_RID : forall x : cart R (tybit0 unit), (@vector_add (tybit0 unit) x (Cx (R_of_N (NUMERAL 0%N)))) = x. +Axiom thm_COMPLEX_MUL_RID : forall x : cart R (tybit0 unit), (complex_mul x (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = x. +Axiom thm_COMPLEX_ADD_RINV : forall x : cart R (tybit0 unit), (@vector_add (tybit0 unit) x (@vector_neg (tybit0 unit) x)) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_COMPLEX_ADD_RDISTRIB : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul (@vector_add (tybit0 unit) x y) z) = (@vector_add (tybit0 unit) (complex_mul x z) (complex_mul y z)). +Axiom thm_COMPLEX_EQ_ADD_LCANCEL : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@vector_add (tybit0 unit) x y) = (@vector_add (tybit0 unit) x z)) = (y = z). +Axiom thm_COMPLEX_EQ_ADD_RCANCEL : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@vector_add (tybit0 unit) x z) = (@vector_add (tybit0 unit) y z)) = (x = y). +Axiom thm_COMPLEX_MUL_RZERO : forall x : cart R (tybit0 unit), (complex_mul x (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_COMPLEX_MUL_LZERO : forall x : cart R (tybit0 unit), (complex_mul (Cx (R_of_N (NUMERAL 0%N))) x) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_COMPLEX_NEG_NEG : forall x : cart R (tybit0 unit), (@vector_neg (tybit0 unit) (@vector_neg (tybit0 unit) x)) = x. +Axiom thm_COMPLEX_MUL_RNEG : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (complex_mul x (@vector_neg (tybit0 unit) y)) = (@vector_neg (tybit0 unit) (complex_mul x y)). +Axiom thm_COMPLEX_MUL_LNEG : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (complex_mul (@vector_neg (tybit0 unit) x) y) = (@vector_neg (tybit0 unit) (complex_mul x y)). +Axiom thm_COMPLEX_NEG_ADD : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_neg (tybit0 unit) (@vector_add (tybit0 unit) x y)) = (@vector_add (tybit0 unit) (@vector_neg (tybit0 unit) x) (@vector_neg (tybit0 unit) y)). +Axiom thm_COMPLEX_NEG_0 : (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_COMPLEX_EQ_ADD_LCANCEL_0 : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((@vector_add (tybit0 unit) x y) = x) = (y = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMPLEX_EQ_ADD_RCANCEL_0 : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((@vector_add (tybit0 unit) x y) = y) = (x = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMPLEX_LNEG_UNIQ : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((@vector_add (tybit0 unit) x y) = (Cx (R_of_N (NUMERAL 0%N)))) = (x = (@vector_neg (tybit0 unit) y)). +Axiom thm_COMPLEX_RNEG_UNIQ : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((@vector_add (tybit0 unit) x y) = (Cx (R_of_N (NUMERAL 0%N)))) = (y = (@vector_neg (tybit0 unit) x)). +Axiom thm_COMPLEX_NEG_LMUL : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_neg (tybit0 unit) (complex_mul x y)) = (complex_mul (@vector_neg (tybit0 unit) x) y). +Axiom thm_COMPLEX_NEG_RMUL : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_neg (tybit0 unit) (complex_mul x y)) = (complex_mul x (@vector_neg (tybit0 unit) y)). +Axiom thm_COMPLEX_NEG_MUL2 : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (complex_mul (@vector_neg (tybit0 unit) x) (@vector_neg (tybit0 unit) y)) = (complex_mul x y). +Axiom thm_COMPLEX_SUB_ADD : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_add (tybit0 unit) (@vector_sub (tybit0 unit) x y) y) = x. +Axiom thm_COMPLEX_SUB_ADD2 : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_add (tybit0 unit) y (@vector_sub (tybit0 unit) x y)) = x. +Axiom thm_COMPLEX_SUB_REFL : forall x : cart R (tybit0 unit), (@vector_sub (tybit0 unit) x x) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_COMPLEX_SUB_0 : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((@vector_sub (tybit0 unit) x y) = (Cx (R_of_N (NUMERAL 0%N)))) = (x = y). +Axiom thm_COMPLEX_NEG_EQ_0 : forall x : cart R (tybit0 unit), ((@vector_neg (tybit0 unit) x) = (Cx (R_of_N (NUMERAL 0%N)))) = (x = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMPLEX_NEG_SUB : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_neg (tybit0 unit) (@vector_sub (tybit0 unit) x y)) = (@vector_sub (tybit0 unit) y x). +Axiom thm_COMPLEX_ADD_SUB : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_sub (tybit0 unit) (@vector_add (tybit0 unit) x y) x) = y. +Axiom thm_COMPLEX_NEG_EQ : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((@vector_neg (tybit0 unit) x) = y) = (x = (@vector_neg (tybit0 unit) y)). +Axiom thm_COMPLEX_NEG_MINUS1 : forall x : cart R (tybit0 unit), (@vector_neg (tybit0 unit) x) = (complex_mul (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) x). +Axiom thm_COMPLEX_SUB_SUB : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_sub (tybit0 unit) (@vector_sub (tybit0 unit) x y) x) = (@vector_neg (tybit0 unit) y). +Axiom thm_COMPLEX_ADD2_SUB2 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall d : cart R (tybit0 unit), (@vector_sub (tybit0 unit) (@vector_add (tybit0 unit) a b) (@vector_add (tybit0 unit) c d)) = (@vector_add (tybit0 unit) (@vector_sub (tybit0 unit) a c) (@vector_sub (tybit0 unit) b d)). +Axiom thm_COMPLEX_SUB_LZERO : forall x : cart R (tybit0 unit), (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL 0%N))) x) = (@vector_neg (tybit0 unit) x). +Axiom thm_COMPLEX_SUB_RZERO : forall x : cart R (tybit0 unit), (@vector_sub (tybit0 unit) x (Cx (R_of_N (NUMERAL 0%N)))) = x. +Axiom thm_COMPLEX_SUB_LNEG : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_sub (tybit0 unit) (@vector_neg (tybit0 unit) x) y) = (@vector_neg (tybit0 unit) (@vector_add (tybit0 unit) x y)). +Axiom thm_COMPLEX_SUB_RNEG : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_sub (tybit0 unit) x (@vector_neg (tybit0 unit) y)) = (@vector_add (tybit0 unit) x y). +Axiom thm_COMPLEX_SUB_NEG2 : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_sub (tybit0 unit) (@vector_neg (tybit0 unit) x) (@vector_neg (tybit0 unit) y)) = (@vector_sub (tybit0 unit) y x). +Axiom thm_COMPLEX_SUB_TRIANGLE : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@vector_add (tybit0 unit) (@vector_sub (tybit0 unit) a b) (@vector_sub (tybit0 unit) b c)) = (@vector_sub (tybit0 unit) a c). +Axiom thm_COMPLEX_EQ_SUB_LADD : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (x = (@vector_sub (tybit0 unit) y z)) = ((@vector_add (tybit0 unit) x z) = y). +Axiom thm_COMPLEX_EQ_SUB_RADD : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@vector_sub (tybit0 unit) x y) = z) = (x = (@vector_add (tybit0 unit) z y)). +Axiom thm_COMPLEX_SUB_SUB2 : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_sub (tybit0 unit) x (@vector_sub (tybit0 unit) x y)) = y. +Axiom thm_COMPLEX_ADD_SUB2 : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_sub (tybit0 unit) x (@vector_add (tybit0 unit) x y)) = (@vector_neg (tybit0 unit) y). +Axiom thm_COMPLEX_DIFFSQ : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (complex_mul (@vector_add (tybit0 unit) x y) (@vector_sub (tybit0 unit) x y)) = (@vector_sub (tybit0 unit) (complex_mul x x) (complex_mul y y)). +Axiom thm_COMPLEX_EQ_NEG2 : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((@vector_neg (tybit0 unit) x) = (@vector_neg (tybit0 unit) y)) = (x = y). +Axiom thm_COMPLEX_SUB_LDISTRIB : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul x (@vector_sub (tybit0 unit) y z)) = (@vector_sub (tybit0 unit) (complex_mul x y) (complex_mul x z)). +Axiom thm_COMPLEX_SUB_RDISTRIB : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul (@vector_sub (tybit0 unit) x y) z) = (@vector_sub (tybit0 unit) (complex_mul x z) (complex_mul y z)). +Axiom thm_COMPLEX_MUL_2 : forall x : cart R (tybit0 unit), (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) x) = (@vector_add (tybit0 unit) x x). +Axiom thm_II_NZ : ~ (ii = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMPLEX_MUL_LINV : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> (complex_mul (complex_inv z) z) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_COMPLEX_ENTIRE : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((complex_mul x y) = (Cx (R_of_N (NUMERAL 0%N)))) = ((x = (Cx (R_of_N (NUMERAL 0%N)))) \/ (y = (Cx (R_of_N (NUMERAL 0%N))))). +Axiom thm_COMPLEX_MUL_RINV : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> (complex_mul z (complex_inv z)) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_COMPLEX_DIV_REFL : forall x : cart R (tybit0 unit), (~ (x = (Cx (R_of_N (NUMERAL 0%N))))) -> (complex_div x x) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_COMPLEX_VEC_0 : (@vec (tybit0 unit) (NUMERAL 0%N)) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_COMPLEX_CMUL : forall c : R, forall x : cart R (tybit0 unit), (@percent (tybit0 unit) c x) = (complex_mul (Cx c) x). +Axiom thm_COMPLEX_POW_ADD : forall x : cart R (tybit0 unit), forall m : N, forall n : N, (complex_pow x (N.add m n)) = (complex_mul (complex_pow x m) (complex_pow x n)). +Axiom thm_COMPLEX_POW_POW : forall x : cart R (tybit0 unit), forall m : N, forall n : N, (complex_pow (complex_pow x m) n) = (complex_pow x (N.mul m n)). +Axiom thm_COMPLEX_POW_1 : forall x : cart R (tybit0 unit), (complex_pow x (NUMERAL (BIT1 0%N))) = x. +Axiom thm_COMPLEX_POW_2 : forall x : cart R (tybit0 unit), (complex_pow x (NUMERAL (BIT0 (BIT1 0%N)))) = (complex_mul x x). +Axiom thm_COMPLEX_POW_NEG : forall x : cart R (tybit0 unit), forall n : N, (complex_pow (@vector_neg (tybit0 unit) x) n) = (@COND (cart R (tybit0 unit)) (EVEN n) (complex_pow x n) (@vector_neg (tybit0 unit) (complex_pow x n))). +Axiom thm_COMPLEX_POW_ONE : forall n : N, (complex_pow (Cx (R_of_N (NUMERAL (BIT1 0%N)))) n) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_COMPLEX_POW_MUL : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall n : N, (complex_pow (complex_mul x y) n) = (complex_mul (complex_pow x n) (complex_pow y n)). +Axiom thm_COMPLEX_POW_II_2 : (complex_pow ii (NUMERAL (BIT0 (BIT1 0%N)))) = (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_COMPLEX_POW_EQ_0 : forall x : cart R (tybit0 unit), forall n : N, ((complex_pow x n) = (Cx (R_of_N (NUMERAL 0%N)))) = ((x = (Cx (R_of_N (NUMERAL 0%N)))) /\ (~ (n = (NUMERAL 0%N)))). +Axiom thm_COMPLEX_POW_ZERO : forall n : N, (complex_pow (Cx (R_of_N (NUMERAL 0%N))) n) = (@COND (cart R (tybit0 unit)) (n = (NUMERAL 0%N)) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_CX_INJ : forall x : R, forall y : R, ((Cx x) = (Cx y)) = (x = y). +Axiom thm_CX_NEG : forall x : R, (Cx (Ropp x)) = (@vector_neg (tybit0 unit) (Cx x)). +Axiom thm_CX_ADD : forall x : R, forall y : R, (Cx (Rplus x y)) = (@vector_add (tybit0 unit) (Cx x) (Cx y)). +Axiom thm_CX_SUB : forall x : R, forall y : R, (Cx (Rminus x y)) = (@vector_sub (tybit0 unit) (Cx x) (Cx y)). +Axiom thm_CX_INV : forall x : R, (Cx (Rinv x)) = (complex_inv (Cx x)). +Axiom thm_CX_MUL : forall x : R, forall y : R, (Cx (Rmult x y)) = (complex_mul (Cx x) (Cx y)). +Axiom thm_CX_POW : forall x : R, forall n : N, (Cx (real_pow x n)) = (complex_pow (Cx x) n). +Axiom thm_CX_DIV : forall x : R, forall y : R, (Cx (Rdiv x y)) = (complex_div (Cx x) (Cx y)). +Axiom thm_CX_ABS : forall x : R, (Cx (Rabs x)) = (Cx (@vector_norm (tybit0 unit) (Cx x))). +Axiom thm_COMPLEX_NORM_CX : forall x : R, (@vector_norm (tybit0 unit) (Cx x)) = (Rabs x). +Axiom thm_DIST_CX : forall x : R, forall y : R, (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx x) (Cx y))) = (Rabs (Rminus x y)). +Axiom thm_RE_CX : forall x : R, (Re (Cx x)) = x. +Axiom thm_RE_NEG : forall x : cart R (tybit0 unit), (Re (@vector_neg (tybit0 unit) x)) = (Ropp (Re x)). +Axiom thm_RE_ADD : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (Re (@vector_add (tybit0 unit) x y)) = (Rplus (Re x) (Re y)). +Axiom thm_RE_SUB : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (Re (@vector_sub (tybit0 unit) x y)) = (Rminus (Re x) (Re y)). +Axiom thm_IM_CX : forall x : R, (Im (Cx x)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_IM_NEG : forall x : cart R (tybit0 unit), (Im (@vector_neg (tybit0 unit) x)) = (Ropp (Im x)). +Axiom thm_IM_ADD : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (Im (@vector_add (tybit0 unit) x y)) = (Rplus (Im x) (Im y)). +Axiom thm_IM_SUB : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (Im (@vector_sub (tybit0 unit) x y)) = (Rminus (Im x) (Im y)). +Axiom thm_COMPLEX_EXPAND : forall z : cart R (tybit0 unit), z = (@vector_add (tybit0 unit) (Cx (Re z)) (complex_mul ii (Cx (Im z)))). +Axiom thm_COMPLEX_TRAD : forall x : R, forall y : R, (complex (@pair R R x y)) = (@vector_add (tybit0 unit) (Cx x) (complex_mul ii (Cx y))). +Axiom thm_RE_II : (Re ii) = (R_of_N (NUMERAL 0%N)). +Axiom thm_IM_II : (Im ii) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_RE_MUL_II : forall z : cart R (tybit0 unit), ((Re (complex_mul z ii)) = (Ropp (Im z))) /\ ((Re (complex_mul ii z)) = (Ropp (Im z))). +Axiom thm_IM_MUL_II : forall z : cart R (tybit0 unit), ((Im (complex_mul z ii)) = (Re z)) /\ ((Im (complex_mul ii z)) = (Re z)). +Axiom thm_COMPLEX_NORM_II : (@vector_norm (tybit0 unit) ii) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_RE_CMUL : forall a : R, forall z : cart R (tybit0 unit), (Re (@percent (tybit0 unit) a z)) = (Rmult a (Re z)). +Axiom thm_IM_CMUL : forall a : R, forall z : cart R (tybit0 unit), (Im (@percent (tybit0 unit) a z)) = (Rmult a (Im z)). +Axiom thm_RE_MUL_CX : forall x : R, forall z : cart R (tybit0 unit), ((Re (complex_mul (Cx x) z)) = (Rmult x (Re z))) /\ ((Re (complex_mul z (Cx x))) = (Rmult (Re z) x)). +Axiom thm_IM_MUL_CX : forall x : R, forall z : cart R (tybit0 unit), ((Im (complex_mul (Cx x) z)) = (Rmult x (Im z))) /\ ((Im (complex_mul z (Cx x))) = (Rmult (Im z) x)). +Axiom thm_RE_DIV_CX : forall z : cart R (tybit0 unit), forall x : R, (Re (complex_div z (Cx x))) = (Rdiv (Re z) x). +Axiom thm_IM_DIV_CX : forall z : cart R (tybit0 unit), forall x : R, (Im (complex_div z (Cx x))) = (Rdiv (Im z) x). +Axiom thm_COMPLEX_POLY_CLAUSES : (forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@vector_add (tybit0 unit) x (@vector_add (tybit0 unit) y z)) = (@vector_add (tybit0 unit) (@vector_add (tybit0 unit) x y) z)) /\ ((forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_add (tybit0 unit) x y) = (@vector_add (tybit0 unit) y x)) /\ ((forall x : cart R (tybit0 unit), (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL 0%N))) x) = x) /\ ((forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul x (complex_mul y z)) = (complex_mul (complex_mul x y) z)) /\ ((forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (complex_mul x y) = (complex_mul y x)) /\ ((forall x : cart R (tybit0 unit), (complex_mul (Cx (R_of_N (NUMERAL (BIT1 0%N)))) x) = x) /\ ((forall x : cart R (tybit0 unit), (complex_mul (Cx (R_of_N (NUMERAL 0%N))) x) = (Cx (R_of_N (NUMERAL 0%N)))) /\ ((forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul x (@vector_add (tybit0 unit) y z)) = (@vector_add (tybit0 unit) (complex_mul x y) (complex_mul x z))) /\ ((forall x : cart R (tybit0 unit), (complex_pow x (NUMERAL 0%N)) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) /\ (forall x : cart R (tybit0 unit), forall n : N, (complex_pow x (N.succ n)) = (complex_mul x (complex_pow x n))))))))))). +Axiom thm_COMPLEX_POLY_NEG_CLAUSES : (forall x : cart R (tybit0 unit), (@vector_neg (tybit0 unit) x) = (complex_mul (Cx (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) x)) /\ (forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (@vector_sub (tybit0 unit) x y) = (@vector_add (tybit0 unit) x (complex_mul (Cx (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) y))). +Axiom thm_COMPLEX_INV_0 : (complex_inv (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_COMPLEX_INV_1 : (complex_inv (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_COMPLEX_INV_MUL : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_inv (complex_mul w z)) = (complex_mul (complex_inv w) (complex_inv z)). +Axiom thm_COMPLEX_POW_INV : forall x : cart R (tybit0 unit), forall n : N, (complex_pow (complex_inv x) n) = (complex_inv (complex_pow x n)). +Axiom thm_COMPLEX_INV_INV : forall x : cart R (tybit0 unit), (complex_inv (complex_inv x)) = x. +Axiom thm_COMPLEX_INV_DIV : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_inv (complex_div w z)) = (complex_div z w). +Axiom thm_COMPLEX_EQ_INV2 : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((complex_inv w) = (complex_inv z)) = (w = z). +Axiom thm_SGN_RE_COMPLEX_INV : forall z : cart R (tybit0 unit), (real_sgn (Re (complex_inv z))) = (real_sgn (Re z)). +Axiom thm_RE_COMPLEX_INV_GT_0 : forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Re (complex_inv z))) = (Rlt (R_of_N (NUMERAL 0%N)) (Re z)). +Axiom thm_RE_COMPLEX_INV_GE_0 : forall z : cart R (tybit0 unit), (Rle (R_of_N (NUMERAL 0%N)) (Re (complex_inv z))) = (Rle (R_of_N (NUMERAL 0%N)) (Re z)). +Axiom thm_COMPLEX_EQ_MUL_LCANCEL : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((complex_mul x y) = (complex_mul x z)) = ((x = (Cx (R_of_N (NUMERAL 0%N)))) \/ (y = z)). +Axiom thm_COMPLEX_EQ_MUL_RCANCEL : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((complex_mul x z) = (complex_mul y z)) = ((x = y) \/ (z = (Cx (R_of_N (NUMERAL 0%N))))). +Axiom thm_COMPLEX_DIV_1 : forall z : cart R (tybit0 unit), (complex_div z (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = z. +Axiom thm_COMPLEX_DIV_LMUL : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (~ (y = (Cx (R_of_N (NUMERAL 0%N))))) -> (complex_mul y (complex_div x y)) = x. +Axiom thm_COMPLEX_DIV_RMUL : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (~ (y = (Cx (R_of_N (NUMERAL 0%N))))) -> (complex_mul (complex_div x y) y) = x. +Axiom thm_COMPLEX_INV_II : (complex_inv ii) = (@vector_neg (tybit0 unit) ii). +Axiom thm_COMPLEX_INV_EQ_0 : forall x : cart R (tybit0 unit), ((complex_inv x) = (Cx (R_of_N (NUMERAL 0%N)))) = (x = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMPLEX_INV_NEG : forall x : cart R (tybit0 unit), (complex_inv (@vector_neg (tybit0 unit) x)) = (@vector_neg (tybit0 unit) (complex_inv x)). +Axiom thm_COMPLEX_NEG_INV : forall x : cart R (tybit0 unit), (@vector_neg (tybit0 unit) (complex_inv x)) = (complex_inv (@vector_neg (tybit0 unit) x)). +Axiom thm_COMPLEX_INV_EQ_1 : forall x : cart R (tybit0 unit), ((complex_inv x) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = (x = (Cx (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_COMPLEX_DIV_EQ_0 : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((complex_div w z) = (Cx (R_of_N (NUMERAL 0%N)))) = ((w = (Cx (R_of_N (NUMERAL 0%N)))) \/ (z = (Cx (R_of_N (NUMERAL 0%N))))). +Axiom thm_COMPLEX_POW_DIV : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall n : N, (complex_pow (complex_div x y) n) = (complex_div (complex_pow x n) (complex_pow y n)). +Axiom thm_COMPLEX_DIV_POW : forall x : cart R (tybit0 unit), forall n : N, forall k : N, ((~ (x = (Cx (R_of_N (NUMERAL 0%N))))) /\ ((N.le k n) /\ (~ (k = (NUMERAL 0%N))))) -> (complex_pow x (N.sub n k)) = (complex_div (complex_pow x n) (complex_pow x k)). +Axiom thm_COMPLEX_DIV_POW2 : forall z : cart R (tybit0 unit), forall m : N, forall n : N, (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> (complex_div (complex_pow z m) (complex_pow z n)) = (@COND (cart R (tybit0 unit)) (N.le n m) (complex_pow z (N.sub m n)) (complex_inv (complex_pow z (N.sub n m)))). +Axiom thm_COMPLEX_NORM_ZERO : forall z : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) z) = (R_of_N (NUMERAL 0%N))) = (z = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMPLEX_NORM_NUM : forall n : N, (@vector_norm (tybit0 unit) (Cx (R_of_N n))) = (R_of_N n). +Axiom thm_COMPLEX_NORM_0 : (@vector_norm (tybit0 unit) (Cx (R_of_N (NUMERAL 0%N)))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_COMPLEX_NORM_NZ : forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (@vector_norm (tybit0 unit) z)) = (~ (z = (Cx (R_of_N (NUMERAL 0%N))))). +Axiom thm_COMPLEX_NORM_MUL : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@vector_norm (tybit0 unit) (complex_mul w z)) = (Rmult (@vector_norm (tybit0 unit) w) (@vector_norm (tybit0 unit) z)). +Axiom thm_COMPLEX_NORM_POW : forall z : cart R (tybit0 unit), forall n : N, (@vector_norm (tybit0 unit) (complex_pow z n)) = (real_pow (@vector_norm (tybit0 unit) z) n). +Axiom thm_COMPLEX_NORM_INV : forall z : cart R (tybit0 unit), (@vector_norm (tybit0 unit) (complex_inv z)) = (Rinv (@vector_norm (tybit0 unit) z)). +Axiom thm_COMPLEX_NORM_DIV : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@vector_norm (tybit0 unit) (complex_div w z)) = (Rdiv (@vector_norm (tybit0 unit) w) (@vector_norm (tybit0 unit) z)). +Axiom thm_COMPLEX_NORM_TRIANGLE_SUB : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), Rle (@vector_norm (tybit0 unit) w) (Rplus (@vector_norm (tybit0 unit) (@vector_add (tybit0 unit) w z)) (@vector_norm (tybit0 unit) z)). +Axiom thm_COMPLEX_NORM_ABS_NORM : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), Rle (Rabs (Rminus (@vector_norm (tybit0 unit) w) (@vector_norm (tybit0 unit) z))) (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) w z)). +Axiom thm_COMPLEX_POW_EQ_1 : forall z : cart R (tybit0 unit), forall n : N, ((complex_pow z n) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) -> ((@vector_norm (tybit0 unit) z) = (R_of_N (NUMERAL (BIT1 0%N)))) \/ (n = (NUMERAL 0%N)). +Axiom thm_cnj : forall z : cart R (tybit0 unit), (cnj z) = (complex (@pair R R (Re z) (Ropp (Im z)))). +Axiom thm_CNJ_INJ : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((cnj w) = (cnj z)) = (w = z). +Axiom thm_CNJ_CNJ : forall z : cart R (tybit0 unit), (cnj (cnj z)) = z. +Axiom thm_CNJ_CX : forall x : R, (cnj (Cx x)) = (Cx x). +Axiom thm_COMPLEX_NORM_CNJ : forall z : cart R (tybit0 unit), (@vector_norm (tybit0 unit) (cnj z)) = (@vector_norm (tybit0 unit) z). +Axiom thm_CNJ_NEG : forall z : cart R (tybit0 unit), (cnj (@vector_neg (tybit0 unit) z)) = (@vector_neg (tybit0 unit) (cnj z)). +Axiom thm_CNJ_INV : forall z : cart R (tybit0 unit), (cnj (complex_inv z)) = (complex_inv (cnj z)). +Axiom thm_CNJ_ADD : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (cnj (@vector_add (tybit0 unit) w z)) = (@vector_add (tybit0 unit) (cnj w) (cnj z)). +Axiom thm_CNJ_SUB : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (cnj (@vector_sub (tybit0 unit) w z)) = (@vector_sub (tybit0 unit) (cnj w) (cnj z)). +Axiom thm_CNJ_MUL : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (cnj (complex_mul w z)) = (complex_mul (cnj w) (cnj z)). +Axiom thm_CNJ_DIV : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (cnj (complex_div w z)) = (complex_div (cnj w) (cnj z)). +Axiom thm_CNJ_POW : forall z : cart R (tybit0 unit), forall n : N, (cnj (complex_pow z n)) = (complex_pow (cnj z) n). +Axiom thm_RE_CNJ : forall z : cart R (tybit0 unit), (Re (cnj z)) = (Re z). +Axiom thm_IM_CNJ : forall z : cart R (tybit0 unit), (Im (cnj z)) = (Ropp (Im z)). +Axiom thm_CNJ_EQ_CX : forall x : R, forall z : cart R (tybit0 unit), ((cnj z) = (Cx x)) = (z = (Cx x)). +Axiom thm_CNJ_EQ_0 : forall z : cart R (tybit0 unit), ((cnj z) = (Cx (R_of_N (NUMERAL 0%N)))) = (z = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMPLEX_ADD_CNJ : (forall z : cart R (tybit0 unit), (@vector_add (tybit0 unit) z (cnj z)) = (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Re z)))) /\ (forall z : cart R (tybit0 unit), (@vector_add (tybit0 unit) (cnj z) z) = (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Re z)))). +Axiom thm_CNJ_II : (cnj ii) = (@vector_neg (tybit0 unit) ii). +Axiom thm_CX_RE_CNJ : forall z : cart R (tybit0 unit), (Cx (Re z)) = (complex_div (@vector_add (tybit0 unit) z (cnj z)) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_CX_IM_CNJ : forall z : cart R (tybit0 unit), (Cx (Im z)) = (complex_mul (@vector_neg (tybit0 unit) ii) (complex_div (@vector_sub (tybit0 unit) z (cnj z)) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_FORALL_CNJ : forall (P : (cart R (tybit0 unit)) -> Prop), (forall z : cart R (tybit0 unit), P (cnj z)) = (forall z : cart R (tybit0 unit), P z). +Axiom thm_EXISTS_CNJ : forall (P : (cart R (tybit0 unit)) -> Prop), (exists z : cart R (tybit0 unit), P (cnj z)) = (exists z : cart R (tybit0 unit), P z). +Axiom thm_COMPLEX_NORM_POW_2 : forall z : cart R (tybit0 unit), (complex_pow (Cx (@vector_norm (tybit0 unit) z)) (NUMERAL (BIT0 (BIT1 0%N)))) = (complex_mul z (cnj z)). +Axiom thm_COMPLEX_MUL_CNJ : forall z : cart R (tybit0 unit), ((complex_mul (cnj z) z) = (complex_pow (Cx (@vector_norm (tybit0 unit) z)) (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((complex_mul z (cnj z)) = (complex_pow (Cx (@vector_norm (tybit0 unit) z)) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_COMPLEX_INV_CNJ : forall z : cart R (tybit0 unit), (complex_inv z) = (complex_div (cnj z) (complex_pow (Cx (@vector_norm (tybit0 unit) z)) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_COMPLEX_DIV_CNJ : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (complex_div a b) = (complex_div (complex_mul a (cnj b)) (complex_pow (Cx (@vector_norm (tybit0 unit) b)) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_RE_COMPLEX_DIV_EQ_0 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), ((Re (complex_div a b)) = (R_of_N (NUMERAL 0%N))) = ((Re (complex_mul a (cnj b))) = (R_of_N (NUMERAL 0%N))). +Axiom thm_IM_COMPLEX_DIV_EQ_0 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), ((Im (complex_div a b)) = (R_of_N (NUMERAL 0%N))) = ((Im (complex_mul a (cnj b))) = (R_of_N (NUMERAL 0%N))). +Axiom thm_RE_COMPLEX_DIV_GT_0 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Re (complex_div a b))) = (Rlt (R_of_N (NUMERAL 0%N)) (Re (complex_mul a (cnj b)))). +Axiom thm_IM_COMPLEX_DIV_GT_0 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Im (complex_div a b))) = (Rlt (R_of_N (NUMERAL 0%N)) (Im (complex_mul a (cnj b)))). +Axiom thm_RE_COMPLEX_DIV_GE_0 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (Rle (R_of_N (NUMERAL 0%N)) (Re (complex_div a b))) = (Rle (R_of_N (NUMERAL 0%N)) (Re (complex_mul a (cnj b)))). +Axiom thm_IM_COMPLEX_DIV_GE_0 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (Rle (R_of_N (NUMERAL 0%N)) (Im (complex_div a b))) = (Rle (R_of_N (NUMERAL 0%N)) (Im (complex_mul a (cnj b)))). +Axiom thm_RE_COMPLEX_DIV_LE_0 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (Rle (Re (complex_div a b)) (R_of_N (NUMERAL 0%N))) = (Rle (Re (complex_mul a (cnj b))) (R_of_N (NUMERAL 0%N))). +Axiom thm_IM_COMPLEX_DIV_LE_0 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (Rle (Im (complex_div a b)) (R_of_N (NUMERAL 0%N))) = (Rle (Im (complex_mul a (cnj b))) (R_of_N (NUMERAL 0%N))). +Axiom thm_RE_COMPLEX_DIV_LT_0 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (Rlt (Re (complex_div a b)) (R_of_N (NUMERAL 0%N))) = (Rlt (Re (complex_mul a (cnj b))) (R_of_N (NUMERAL 0%N))). +Axiom thm_IM_COMPLEX_DIV_LT_0 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (Rlt (Im (complex_div a b)) (R_of_N (NUMERAL 0%N))) = (Rlt (Im (complex_mul a (cnj b))) (R_of_N (NUMERAL 0%N))). +Axiom thm_IM_COMPLEX_INV_GE_0 : forall z : cart R (tybit0 unit), (Rle (R_of_N (NUMERAL 0%N)) (Im (complex_inv z))) = (Rle (Im z) (R_of_N (NUMERAL 0%N))). +Axiom thm_IM_COMPLEX_INV_LE_0 : forall z : cart R (tybit0 unit), (Rle (Im (complex_inv z)) (R_of_N (NUMERAL 0%N))) = (Rle (R_of_N (NUMERAL 0%N)) (Im z)). +Axiom thm_IM_COMPLEX_INV_GT_0 : forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Im (complex_inv z))) = (Rlt (Im z) (R_of_N (NUMERAL 0%N))). +Axiom thm_IM_COMPLEX_INV_LT_0 : forall z : cart R (tybit0 unit), (Rlt (Im (complex_inv z)) (R_of_N (NUMERAL 0%N))) = (Rlt (R_of_N (NUMERAL 0%N)) (Im z)). +Axiom thm_IM_COMPLEX_INV_EQ_0 : forall z : cart R (tybit0 unit), ((Im (complex_inv z)) = (R_of_N (NUMERAL 0%N))) = ((Im z) = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_SGN_RE_COMPLEX_DIV : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (real_sgn (Re (complex_div w z))) = (real_sgn (Re (complex_mul w (cnj z)))). +Axiom thm_REAL_SGN_IM_COMPLEX_DIV : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (real_sgn (Im (complex_div w z))) = (real_sgn (Im (complex_mul w (cnj z)))). +Axiom thm_COMPLEX_NORM_GE_RE_IM : forall z : cart R (tybit0 unit), (Rle (Rabs (Re z)) (@vector_norm (tybit0 unit) z)) /\ (Rle (Rabs (Im z)) (@vector_norm (tybit0 unit) z)). +Axiom thm_COMPLEX_NORM_LE_RE_IM : forall z : cart R (tybit0 unit), Rle (@vector_norm (tybit0 unit) z) (Rplus (Rabs (Re z)) (Rabs (Im z))). +Axiom thm_COMPLEX_L1_LE_NORM : forall z : cart R (tybit0 unit), Rle (Rmult (Rdiv (sqrt (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (Rplus (Rabs (Re z)) (Rabs (Im z)))) (@vector_norm (tybit0 unit) z). +Axiom thm_csqrt : forall z : cart R (tybit0 unit), (csqrt z) = (@COND (cart R (tybit0 unit)) ((Im z) = (R_of_N (NUMERAL 0%N))) (@COND (cart R (tybit0 unit)) (Rle (R_of_N (NUMERAL 0%N)) (Re z)) (complex (@pair R R (sqrt (Re z)) (R_of_N (NUMERAL 0%N)))) (complex (@pair R R (R_of_N (NUMERAL 0%N)) (sqrt (Ropp (Re z)))))) (complex (@pair R R (sqrt (Rdiv (Rplus (@vector_norm (tybit0 unit) z) (Re z)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (Rmult (Rdiv (Im z) (Rabs (Im z))) (sqrt (Rdiv (Rminus (@vector_norm (tybit0 unit) z) (Re z)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))))). +Axiom thm_CSQRT : forall z : cart R (tybit0 unit), (complex_pow (csqrt z) (NUMERAL (BIT0 (BIT1 0%N)))) = z. +Axiom thm_CX_SQRT : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> (Cx (sqrt x)) = (csqrt (Cx x)). +Axiom thm_CSQRT_CX : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> (csqrt (Cx x)) = (Cx (sqrt x)). +Axiom thm_CSQRT_0 : (csqrt (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_CSQRT_1 : (csqrt (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_CSQRT_PRINCIPAL : forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Re (csqrt z))) \/ (((Re (csqrt z)) = (R_of_N (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) (Im (csqrt z)))). +Axiom thm_RE_CSQRT : forall z : cart R (tybit0 unit), Rle (R_of_N (NUMERAL 0%N)) (Re (csqrt z)). +Axiom thm_CSQRT_UNIQUE : forall s : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (((complex_pow s (NUMERAL (BIT0 (BIT1 0%N)))) = z) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (Re s)) \/ (((Re s) = (R_of_N (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) (Im s))))) -> (csqrt z) = s. +Axiom thm_POW_2_CSQRT : forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) (Re z)) \/ (((Re z) = (R_of_N (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) (Im z)))) -> (csqrt (complex_pow z (NUMERAL (BIT0 (BIT1 0%N))))) = z. +Axiom thm_CSQRT_EQ_0 : forall z : cart R (tybit0 unit), ((csqrt z) = (Cx (R_of_N (NUMERAL 0%N)))) = (z = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_DOT_COMPLEX_MUL_CNJ : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@dot (tybit0 unit) w z) = (Re (complex_mul w (cnj z))). +Axiom thm_DOT_CNJ : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@dot (tybit0 unit) (cnj w) (cnj z)) = (@dot (tybit0 unit) w z). +Axiom thm_LINEAR_COMPLEX_MUL : forall c : cart R (tybit0 unit), @linear (tybit0 unit) (tybit0 unit) (fun x : cart R (tybit0 unit) => complex_mul c x). +Axiom thm_BILINEAR_COMPLEX_MUL : @bilinear (tybit0 unit) (tybit0 unit) (tybit0 unit) complex_mul. +Axiom thm_LINEAR_CNJ : @linear (tybit0 unit) (tybit0 unit) cnj. +Axiom thm_ORTHOGONAL_TRANSFORMATION_CNJ : @orthogonal_transformation (tybit0 unit) cnj. +Axiom thm_LINEAR_COMPLEX_LMUL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@linear N' (tybit0 unit) f) -> @linear N' (tybit0 unit) (fun x : cart R N' => complex_mul c (f x)). +Axiom thm_LINEAR_COMPLEX_RMUL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@linear N' (tybit0 unit) f) -> @linear N' (tybit0 unit) (fun x : cart R N' => complex_mul (f x) c). +Axiom thm_COMPLEX_CAUCHY_SCHWARZ_EQ : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (Rplus (real_pow (@dot (tybit0 unit) w z) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@dot (tybit0 unit) (complex_mul ii w) z) (NUMERAL (BIT0 (BIT1 0%N))))) = (Rmult (real_pow (@vector_norm (tybit0 unit) w) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (@vector_norm (tybit0 unit) z) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_COMPLEX_BASIS : ((@basis (tybit0 unit) (NUMERAL (BIT1 0%N))) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) /\ ((@basis (tybit0 unit) (NUMERAL (BIT0 (BIT1 0%N)))) = ii). +Axiom thm_COMPLEX_LINEAR : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (exists c : cart R (tybit0 unit), f = (fun z : cart R (tybit0 unit) => complex_mul c z)) = ((@linear (tybit0 unit) (tybit0 unit) f) /\ (((@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) (@matrix (tybit0 unit) (tybit0 unit) f) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) = (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) (@matrix (tybit0 unit) (tybit0 unit) f) (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) (@matrix (tybit0 unit) (tybit0 unit) f) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) = (Ropp (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) (@matrix (tybit0 unit) (tybit0 unit) f) (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))))))). +Axiom thm_COMPLEX_LINEAR_ALT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (exists c : cart R (tybit0 unit), f = (fun z : cart R (tybit0 unit) => complex_mul c z)) = ((@linear (tybit0 unit) (tybit0 unit) f) /\ ((f ii) = (complex_mul ii (f (Cx (R_of_N (NUMERAL (BIT1 0%N)))))))). +Axiom thm_ORTHOGONAL_TRANSFORMATION_COMPLEX_MUL : forall c : cart R (tybit0 unit), (@orthogonal_transformation (tybit0 unit) (fun z : cart R (tybit0 unit) => complex_mul c z)) = ((@vector_norm (tybit0 unit) c) = (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_COMPLEX_ORTHOGONAL_ROTATION : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((@orthogonal_transformation (tybit0 unit) f) /\ ((@det (tybit0 unit) (@matrix (tybit0 unit) (tybit0 unit) f)) = (R_of_N (NUMERAL (BIT1 0%N))))) = (exists c : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) c) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (f = (fun z : cart R (tybit0 unit) => complex_mul c z))). +Axiom thm_COMPLEX_ORTHOGONAL_ROTOINVERSION : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((@orthogonal_transformation (tybit0 unit) f) /\ ((@det (tybit0 unit) (@matrix (tybit0 unit) (tybit0 unit) f)) = (Ropp (R_of_N (NUMERAL (BIT1 0%N)))))) = (exists c : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) c) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (f = (fun z : cart R (tybit0 unit) => complex_mul c (cnj z)))). +Axiom thm_COMPLEX_ORTHOGONAL_TRANSFORMATION : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (@orthogonal_transformation (tybit0 unit) f) = (exists c : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) c) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((f = (fun z : cart R (tybit0 unit) => complex_mul c z)) \/ (f = (fun z : cart R (tybit0 unit) => complex_mul c (cnj z))))). +Axiom thm_RE_VSUM : forall {_1606359 : Type'}, forall f : _1606359 -> cart R (tybit0 unit), forall s : _1606359 -> Prop, (@FINITE _1606359 s) -> (Re (@vsum _1606359 (tybit0 unit) s f)) = (@sum _1606359 s (fun x : _1606359 => Re (f x))). +Axiom thm_IM_VSUM : forall {_1606387 : Type'}, forall f : _1606387 -> cart R (tybit0 unit), forall s : _1606387 -> Prop, (@FINITE _1606387 s) -> (Im (@vsum _1606387 (tybit0 unit) s f)) = (@sum _1606387 s (fun x : _1606387 => Im (f x))). +Axiom thm_VSUM_COMPLEX_LMUL : forall {_1606417 : Type'}, forall c : cart R (tybit0 unit), forall f : _1606417 -> cart R (tybit0 unit), forall s : _1606417 -> Prop, (@FINITE _1606417 s) -> (@vsum _1606417 (tybit0 unit) s (fun x : _1606417 => complex_mul c (f x))) = (complex_mul c (@vsum _1606417 (tybit0 unit) s f)). +Axiom thm_VSUM_COMPLEX_RMUL : forall {_1606454 : Type'}, forall c : cart R (tybit0 unit), forall f : _1606454 -> cart R (tybit0 unit), forall s : _1606454 -> Prop, (@FINITE _1606454 s) -> (@vsum _1606454 (tybit0 unit) s (fun x : _1606454 => complex_mul (f x) c)) = (complex_mul (@vsum _1606454 (tybit0 unit) s f) c). +Axiom thm_VSUM_CX : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@vsum A (tybit0 unit) s (fun a : A => Cx (f a))) = (Cx (@sum A s f)). +Axiom thm_CNJ_VSUM : forall {_1606514 : Type'}, forall f : _1606514 -> cart R (tybit0 unit), forall s : _1606514 -> Prop, (@FINITE _1606514 s) -> (cnj (@vsum _1606514 (tybit0 unit) s f)) = (@vsum _1606514 (tybit0 unit) s (fun x : _1606514 => cnj (f x))). +Axiom thm_VSUM_CX_NUMSEG : forall f : N -> R, forall m : N, forall n : N, (@vsum N (tybit0 unit) (dotdot m n) (fun a : N => Cx (f a))) = (Cx (@sum N (dotdot m n) f)). +Axiom thm_COMPLEX_SUB_POW : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (@vector_sub (tybit0 unit) (complex_pow x n) (complex_pow y n)) = (complex_mul (@vector_sub (tybit0 unit) x y) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N)))) (fun i : N => complex_mul (complex_pow x i) (complex_pow y (N.sub (N.sub n (NUMERAL (BIT1 0%N))) i))))). +Axiom thm_COMPLEX_SUB_POW_R1 : forall x : cart R (tybit0 unit), forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (@vector_sub (tybit0 unit) (complex_pow x n) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = (complex_mul (@vector_sub (tybit0 unit) x (Cx (R_of_N (NUMERAL (BIT1 0%N))))) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N)))) (fun i : N => complex_pow x i))). +Axiom thm_COMPLEX_SUB_POW_L1 : forall x : cart R (tybit0 unit), forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow x n)) = (complex_mul (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) x) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N)))) (fun i : N => complex_pow x i))). +Axiom thm_real : forall z : cart R (tybit0 unit), (real z) = ((Im z) = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL : forall z : cart R (tybit0 unit), (real z) = ((Cx (Re z)) = z). +Axiom thm_REAL_CNJ : forall z : cart R (tybit0 unit), (real z) = ((cnj z) = z). +Axiom thm_REAL_IMP_CNJ : forall z : cart R (tybit0 unit), (real z) -> (cnj z) = z. +Axiom thm_REAL_EXISTS : forall z : cart R (tybit0 unit), (real z) = (exists x : R, z = (Cx x)). +Axiom thm_FORALL_REAL : forall (P : (cart R (tybit0 unit)) -> Prop), (forall z : cart R (tybit0 unit), (real z) -> P z) = (forall x : R, P (Cx x)). +Axiom thm_EXISTS_REAL : forall (P : (cart R (tybit0 unit)) -> Prop), (exists z : cart R (tybit0 unit), (real z) /\ (P z)) = (exists x : R, P (Cx x)). +Axiom thm_REAL_CX : forall x : R, real (Cx x). +Axiom thm_REAL_MUL_CX : forall x : R, forall z : cart R (tybit0 unit), (real (complex_mul (Cx x) z)) = ((x = (R_of_N (NUMERAL 0%N))) \/ (real z)). +Axiom thm_REAL_ADD : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((real w) /\ (real z)) -> real (@vector_add (tybit0 unit) w z). +Axiom thm_REAL_NEG : forall z : cart R (tybit0 unit), (real z) -> real (@vector_neg (tybit0 unit) z). +Axiom thm_REAL_SUB : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((real w) /\ (real z)) -> real (@vector_sub (tybit0 unit) w z). +Axiom thm_REAL_MUL : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((real w) /\ (real z)) -> real (complex_mul w z). +Axiom thm_REAL_POW : forall z : cart R (tybit0 unit), forall n : N, (real z) -> real (complex_pow z n). +Axiom thm_REAL_INV : forall z : cart R (tybit0 unit), (real z) -> real (complex_inv z). +Axiom thm_REAL_INV_EQ : forall z : cart R (tybit0 unit), (real (complex_inv z)) = (real z). +Axiom thm_REAL_DIV : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((real w) /\ (real z)) -> real (complex_div w z). +Axiom thm_REAL_VSUM : forall {_1607141 : Type'}, forall f : _1607141 -> cart R (tybit0 unit), forall s : _1607141 -> Prop, ((@FINITE _1607141 s) /\ (forall a : _1607141, (@IN _1607141 a s) -> real (f a))) -> real (@vsum _1607141 (tybit0 unit) s f). +Axiom thm_REAL_MUL_CNJ : (forall z : cart R (tybit0 unit), real (complex_mul z (cnj z))) /\ (forall z : cart R (tybit0 unit), real (complex_mul (cnj z) z)). +Axiom thm_REAL_SEGMENT : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall x : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ ((real a) /\ (real b))) -> real x. +Axiom thm_IN_SEGMENT_CX : forall a : R, forall b : R, forall x : R, (@IN (cart R (tybit0 unit)) (Cx x) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx a) (Cx b)) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) = (((Rle a x) /\ (Rle x b)) \/ ((Rle b x) /\ (Rle x a))). +Axiom thm_IN_SEGMENT_CX_GEN : forall a : R, forall b : R, forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx a) (Cx b)) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) = (((Im x) = (R_of_N (NUMERAL 0%N))) /\ (((Rle a (Re x)) /\ (Rle (Re x) b)) \/ ((Rle b (Re x)) /\ (Rle (Re x) a)))). +Axiom thm_RE_POS_SEGMENT : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall x : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (Re a)) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Re b)))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re x). +Axiom thm_CONVEX_REAL : @convex (tybit0 unit) real. +Axiom thm_IMAGE_CX : forall s : R -> Prop, (@IMAGE R (cart R (tybit0 unit)) Cx s) = (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8266 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8266 ((real z) /\ (@IN R (Re z) s)) z)). +Axiom thm_SUBSPACE_REAL : @subspace (tybit0 unit) real. +Axiom thm_DIM_REAL : (@dim (tybit0 unit) real) = (NUMERAL (BIT1 0%N)). +Axiom thm_INTERIOR_REAL : (@interior (tybit0 unit) real) = (@EMPTY (cart R (tybit0 unit))). +Axiom thm_REAL_NORM : forall z : cart R (tybit0 unit), (real z) -> (@vector_norm (tybit0 unit) z) = (Rabs (Re z)). +Axiom thm_REAL_NORM_POS : forall z : cart R (tybit0 unit), ((real z) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re z))) -> (@vector_norm (tybit0 unit) z) = (Re z). +Axiom thm_COMPLEX_NORM_VSUM_SUM_RE : forall {_1607789 : Type'}, forall f : _1607789 -> cart R (tybit0 unit), forall s : _1607789 -> Prop, ((@FINITE _1607789 s) /\ (forall x : _1607789, (@IN _1607789 x s) -> (real (f x)) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re (f x))))) -> (@vector_norm (tybit0 unit) (@vsum _1607789 (tybit0 unit) s f)) = (@sum _1607789 s (fun x : _1607789 => Re (f x))). +Axiom thm_COMPLEX_NORM_VSUM_BOUND : forall {A : Type'}, forall s : A -> Prop, forall f : A -> cart R (tybit0 unit), forall g : A -> cart R (tybit0 unit), ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> (real (g x)) /\ (Rle (@vector_norm (tybit0 unit) (f x)) (Re (g x))))) -> Rle (@vector_norm (tybit0 unit) (@vsum A (tybit0 unit) s f)) (@vector_norm (tybit0 unit) (@vsum A (tybit0 unit) s g)). +Axiom thm_COMPLEX_NORM_VSUM_BOUND_SUBSET : forall {A : Type'}, forall f : A -> cart R (tybit0 unit), forall g : A -> cart R (tybit0 unit), forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@SUBSET A t s) /\ (forall x : A, (@IN A x s) -> (real (g x)) /\ (Rle (@vector_norm (tybit0 unit) (f x)) (Re (g x)))))) -> Rle (@vector_norm (tybit0 unit) (@vsum A (tybit0 unit) t f)) (@vector_norm (tybit0 unit) (@vsum A (tybit0 unit) s g)). +Axiom thm_VSUM_GP_BASIC : forall x : cart R (tybit0 unit), forall n : N, (complex_mul (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) x) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_pow x i))) = (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow x (N.succ n))). +Axiom thm_VSUM_GP_MULTIPLIED : forall x : cart R (tybit0 unit), forall m : N, forall n : N, (N.le m n) -> (complex_mul (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) x) (@vsum N (tybit0 unit) (dotdot m n) (fun i : N => complex_pow x i))) = (@vector_sub (tybit0 unit) (complex_pow x m) (complex_pow x (N.succ n))). +Axiom thm_VSUM_GP : forall x : cart R (tybit0 unit), forall m : N, forall n : N, (@vsum N (tybit0 unit) (dotdot m n) (fun i : N => complex_pow x i)) = (@COND (cart R (tybit0 unit)) (N.lt n m) (Cx (R_of_N (NUMERAL 0%N))) (@COND (cart R (tybit0 unit)) (x = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) (Cx (R_of_N (N.sub (N.add n (NUMERAL (BIT1 0%N))) m))) (complex_div (@vector_sub (tybit0 unit) (complex_pow x m) (complex_pow x (N.succ n))) (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) x)))). +Axiom thm_VSUM_GP_OFFSET : forall x : cart R (tybit0 unit), forall m : N, forall n : N, (@vsum N (tybit0 unit) (dotdot m (N.add m n)) (fun i : N => complex_pow x i)) = (@COND (cart R (tybit0 unit)) (x = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) (@vector_add (tybit0 unit) (Cx (R_of_N n)) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) (complex_mul (complex_pow x m) (complex_div (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow x (N.succ n))) (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) x)))). +Axiom thm_COMPLEX_SUB_POLYFUN : forall a : N -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (@vector_sub (tybit0 unit) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (a i) (complex_pow x i))) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (a i) (complex_pow y i)))) = (complex_mul (@vector_sub (tybit0 unit) x y) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N)))) (fun j : N => complex_mul (@vsum N (tybit0 unit) (dotdot (N.add j (NUMERAL (BIT1 0%N))) n) (fun i : N => complex_mul (a i) (complex_pow y (N.sub (N.sub i j) (NUMERAL (BIT1 0%N)))))) (complex_pow x j)))). +Axiom thm_COMPLEX_SUB_POLYFUN_ALT : forall a : N -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (@vector_sub (tybit0 unit) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (a i) (complex_pow x i))) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (a i) (complex_pow y i)))) = (complex_mul (@vector_sub (tybit0 unit) x y) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N)))) (fun j : N => complex_mul (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) (N.sub (N.sub n j) (NUMERAL (BIT1 0%N)))) (fun k : N => complex_mul (a (N.add j (N.add k (NUMERAL (BIT1 0%N))))) (complex_pow y k))) (complex_pow x j)))). +Axiom thm_COMPLEX_POLYFUN_LINEAR_FACTOR : forall a : cart R (tybit0 unit), forall c : N -> cart R (tybit0 unit), forall n : N, exists b : N -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow z i))) = (@vector_add (tybit0 unit) (complex_mul (@vector_sub (tybit0 unit) z a) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N)))) (fun i : N => complex_mul (b i) (complex_pow z i)))) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow a i)))). +Axiom thm_COMPLEX_POLYFUN_LINEAR_FACTOR_ROOT : forall a : cart R (tybit0 unit), forall c : N -> cart R (tybit0 unit), forall n : N, ((@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow a i))) = (Cx (R_of_N (NUMERAL 0%N)))) -> exists b : N -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow z i))) = (complex_mul (@vector_sub (tybit0 unit) z a) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N)))) (fun i : N => complex_mul (b i) (complex_pow z i)))). +Axiom thm_COMPLEX_POLYFUN_EXTREMAL_LEMMA : forall c : N -> cart R (tybit0 unit), forall n : N, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists M : R, forall z : cart R (tybit0 unit), (Rle M (@vector_norm (tybit0 unit) z)) -> Rle (@vector_norm (tybit0 unit) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow z i)))) (Rmult e (real_pow (@vector_norm (tybit0 unit) z) (N.add n (NUMERAL (BIT1 0%N))))). +Axiom thm_COMPLEX_POLYFUN_EXTREMAL : forall c : N -> cart R (tybit0 unit), forall n : N, (forall k : N, (@IN N k (dotdot (NUMERAL (BIT1 0%N)) n)) -> (c k) = (Cx (R_of_N (NUMERAL 0%N)))) \/ (forall B : R, @eventually (cart R (tybit0 unit)) (fun z : cart R (tybit0 unit) => Rge (@vector_norm (tybit0 unit) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow z i)))) B) (@at_infinity (tybit0 unit))). +Axiom thm_COMPLEX_POLYFUN_ROOTBOUND : forall n : N, forall c : N -> cart R (tybit0 unit), (~ (forall i : N, (@IN N i (dotdot (NUMERAL 0%N) n)) -> (c i) = (Cx (R_of_N (NUMERAL 0%N))))) -> (@FINITE (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8271 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8271 ((@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow z i))) = (Cx (R_of_N (NUMERAL 0%N)))) z))) /\ (N.le (@CARD (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8272 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8272 ((@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow z i))) = (Cx (R_of_N (NUMERAL 0%N)))) z))) n). +Axiom thm_COMPLEX_POLYFUN_FINITE_ROOTS : forall n : N, forall c : N -> cart R (tybit0 unit), (@FINITE (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8274 : cart R (tybit0 unit) => exists x : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8274 ((@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow x i))) = (Cx (R_of_N (NUMERAL 0%N)))) x))) = (exists i : N, (@IN N i (dotdot (NUMERAL 0%N) n)) /\ (~ ((c i) = (Cx (R_of_N (NUMERAL 0%N)))))). +Axiom thm_COMPLEX_POLYFUN_EQ_0 : forall n : N, forall c : N -> cart R (tybit0 unit), (forall z : cart R (tybit0 unit), (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow z i))) = (Cx (R_of_N (NUMERAL 0%N)))) = (forall i : N, (@IN N i (dotdot (NUMERAL 0%N) n)) -> (c i) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMPLEX_POLYFUN_EQ_CONST : forall n : N, forall c : N -> cart R (tybit0 unit), forall k : cart R (tybit0 unit), (forall z : cart R (tybit0 unit), (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow z i))) = k) = (((c (NUMERAL 0%N)) = k) /\ (forall i : N, (@IN N i (dotdot (NUMERAL (BIT1 0%N)) n)) -> (c i) = (Cx (R_of_N (NUMERAL 0%N))))). +Axiom thm_cproduct : forall {_1609940 : Type'}, (@cproduct _1609940) = (@iterate _1609940 (cart R (tybit0 unit)) complex_mul). +Axiom thm_NEUTRAL_COMPLEX_MUL : (@neutral (cart R (tybit0 unit)) complex_mul) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_MONOIDAL_COMPLEX_MUL : @monoidal (cart R (tybit0 unit)) complex_mul. +Axiom thm_CPRODUCT_CLAUSES : forall {_1609970 _1610012 : Type'}, (forall f : _1609970 -> cart R (tybit0 unit), (@cproduct _1609970 (@EMPTY _1609970) f) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) /\ (forall x : _1610012, forall f : _1610012 -> cart R (tybit0 unit), forall s : _1610012 -> Prop, (@FINITE _1610012 s) -> (@cproduct _1610012 (@INSERT _1610012 x s) f) = (@COND (cart R (tybit0 unit)) (@IN _1610012 x s) (@cproduct _1610012 s f) (complex_mul (f x) (@cproduct _1610012 s f)))). +Axiom thm_CPRODUCT_EQ_0 : forall {_1610052 : Type'}, forall f : _1610052 -> cart R (tybit0 unit), forall s : _1610052 -> Prop, (@FINITE _1610052 s) -> ((@cproduct _1610052 s f) = (Cx (R_of_N (NUMERAL 0%N)))) = (exists x : _1610052, (@IN _1610052 x s) /\ ((f x) = (Cx (R_of_N (NUMERAL 0%N))))). +Axiom thm_CPRODUCT_INV : forall {_1610079 : Type'}, forall f : _1610079 -> cart R (tybit0 unit), forall s : _1610079 -> Prop, (@FINITE _1610079 s) -> (@cproduct _1610079 s (fun x : _1610079 => complex_inv (f x))) = (complex_inv (@cproduct _1610079 s f)). +Axiom thm_CPRODUCT_MUL : forall {_1610114 : Type'}, forall f : _1610114 -> cart R (tybit0 unit), forall g : _1610114 -> cart R (tybit0 unit), forall s : _1610114 -> Prop, (@FINITE _1610114 s) -> (@cproduct _1610114 s (fun x : _1610114 => complex_mul (f x) (g x))) = (complex_mul (@cproduct _1610114 s f) (@cproduct _1610114 s g)). +Axiom thm_CPRODUCT_EQ_1 : forall {A : Type'}, forall f : A -> cart R (tybit0 unit), forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) -> (@cproduct A s f) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_CPRODUCT_1 : forall {_1610172 : Type'}, forall s : _1610172 -> Prop, (@cproduct _1610172 s (fun n : _1610172 => Cx (R_of_N (NUMERAL (BIT1 0%N))))) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_CPRODUCT_POW : forall {_1610207 : Type'}, forall f : _1610207 -> cart R (tybit0 unit), forall s : _1610207 -> Prop, forall n : N, (@FINITE _1610207 s) -> (@cproduct _1610207 s (fun x : _1610207 => complex_pow (f x) n)) = (complex_pow (@cproduct _1610207 s f) n). +Axiom thm_NORM_CPRODUCT : forall {_1610242 : Type'}, forall f : _1610242 -> cart R (tybit0 unit), forall s : _1610242 -> Prop, (@FINITE _1610242 s) -> (@vector_norm (tybit0 unit) (@cproduct _1610242 s f)) = (@product _1610242 s (fun x : _1610242 => @vector_norm (tybit0 unit) (f x))). +Axiom thm_CPRODUCT_EQ : forall {_1610275 : Type'}, forall f : _1610275 -> cart R (tybit0 unit), forall g : _1610275 -> cart R (tybit0 unit), forall s : _1610275 -> Prop, (forall x : _1610275, (@IN _1610275 x s) -> (f x) = (g x)) -> (@cproduct _1610275 s f) = (@cproduct _1610275 s g). +Axiom thm_CPRODUCT_SING : forall {_1610304 : Type'}, forall f : _1610304 -> cart R (tybit0 unit), forall x : _1610304, (@cproduct _1610304 (@INSERT _1610304 x (@EMPTY _1610304)) f) = (f x). +Axiom thm_CPRODUCT_CLAUSES_NUMSEG : forall (f : N -> cart R (tybit0 unit)), (forall m : N, (@cproduct N (dotdot m (NUMERAL 0%N)) f) = (@COND (cart R (tybit0 unit)) (m = (NUMERAL 0%N)) (f (NUMERAL 0%N)) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (forall m : N, forall n : N, (@cproduct N (dotdot m (N.succ n)) f) = (@COND (cart R (tybit0 unit)) (N.le m (N.succ n)) (complex_mul (@cproduct N (dotdot m n) f) (f (N.succ n))) (@cproduct N (dotdot m n) f))). +Axiom thm_CPRODUCT_CLAUSES_RIGHT : forall f : N -> cart R (tybit0 unit), forall m : N, forall n : N, ((N.lt (NUMERAL 0%N) n) /\ (N.le m n)) -> (@cproduct N (dotdot m n) f) = (complex_mul (@cproduct N (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f) (f n)). +Axiom thm_CPRODUCT_CLAUSES_LEFT : forall f : N -> cart R (tybit0 unit), forall m : N, forall n : N, (N.le m n) -> (@cproduct N (dotdot m n) f) = (complex_mul (f m) (@cproduct N (dotdot (N.add m (NUMERAL (BIT1 0%N))) n) f)). +Axiom thm_CPRODUCT_IMAGE : forall {_1610505 _1610529 : Type'}, forall f : _1610529 -> _1610505, forall g : _1610505 -> cart R (tybit0 unit), forall s : _1610529 -> Prop, (forall x : _1610529, forall y : _1610529, ((@IN _1610529 x s) /\ ((@IN _1610529 y s) /\ ((f x) = (f y)))) -> x = y) -> (@cproduct _1610505 (@IMAGE _1610529 _1610505 f s) g) = (@cproduct _1610529 s (@o _1610529 _1610505 (cart R (tybit0 unit)) g f)). +Axiom thm_CPRODUCT_OFFSET : forall (n : N), forall f : N -> cart R (tybit0 unit), forall m : N, forall p : N, (@cproduct N (dotdot (N.add m p) (N.add n p)) f) = (@cproduct N (dotdot m n) (fun i : N => f (N.add i p))). +Axiom thm_CPRODUCT_CONST : forall {_1610607 : Type'}, forall c : cart R (tybit0 unit), forall s : _1610607 -> Prop, (@FINITE _1610607 s) -> (@cproduct _1610607 s (fun x : _1610607 => c)) = (complex_pow c (@CARD _1610607 s)). +Axiom thm_CPRODUCT_CONST_NUMSEG : forall c : cart R (tybit0 unit), forall m : N, forall n : N, (@cproduct N (dotdot m n) (fun x : N => c)) = (complex_pow c (N.sub (N.add n (NUMERAL (BIT1 0%N))) m)). +Axiom thm_CPRODUCT_PAIR : forall f : N -> cart R (tybit0 unit), forall m : N, forall n : N, (@cproduct N (dotdot (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) f) = (@cproduct N (dotdot m n) (fun i : N => complex_mul (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i) (NUMERAL (BIT1 0%N)))))). +Axiom thm_CPRODUCT_REFLECT : forall x : N -> cart R (tybit0 unit), forall m : N, forall n : N, (@cproduct N (dotdot m n) x) = (@COND (cart R (tybit0 unit)) (N.lt n m) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@cproduct N (dotdot (NUMERAL 0%N) (N.sub n m)) (fun i : N => x (N.sub n i)))). +Axiom thm_CNJ_CPRODUCT : forall {_1610811 : Type'}, forall f : _1610811 -> cart R (tybit0 unit), forall s : _1610811 -> Prop, (@FINITE _1610811 s) -> (cnj (@cproduct _1610811 s f)) = (@cproduct _1610811 s (fun i : _1610811 => cnj (f i))). +Axiom thm_CX_PRODUCT : forall {_1610838 : Type'}, forall f : _1610838 -> R, forall s : _1610838 -> Prop, (@FINITE _1610838 s) -> (Cx (@product _1610838 s f)) = (@cproduct _1610838 s (fun i : _1610838 => Cx (f i))). +Axiom thm_CPRODUCT_SUPERSET : forall {A : Type'}, forall f : A -> cart R (tybit0 unit), forall u : A -> Prop, forall v : A -> Prop, ((@SUBSET A u v) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) -> (@cproduct A v f) = (@cproduct A u f). +Axiom thm_CPRODUCT_UNION : forall {_1610912 : Type'}, forall f : _1610912 -> cart R (tybit0 unit), forall s : _1610912 -> Prop, forall t : _1610912 -> Prop, ((@FINITE _1610912 s) /\ ((@FINITE _1610912 t) /\ (@DISJOINT _1610912 s t))) -> (@cproduct _1610912 (@UNION _1610912 s t) f) = (complex_mul (@cproduct _1610912 s f) (@cproduct _1610912 t f)). +Axiom thm_CLOSED_HALFSPACE_RE_GE : forall b : R, @closed (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8278 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8278 (Rge (Re z) b) z)). +Axiom thm_CLOSED_HALFSPACE_RE_LE : forall b : R, @closed (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8279 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8279 (Rle (Re z) b) z)). +Axiom thm_CLOSED_HALFSPACE_RE_EQ : forall b : R, @closed (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8283 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8283 ((Re z) = b) z)). +Axiom thm_OPEN_HALFSPACE_RE_GT : forall b : R, @_open (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8286 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8286 (Rgt (Re z) b) z)). +Axiom thm_OPEN_HALFSPACE_RE_LT : forall b : R, @_open (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8289 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8289 (Rlt (Re z) b) z)). +Axiom thm_CLOSED_HALFSPACE_IM_GE : forall b : R, @closed (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8290 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8290 (Rge (Im z) b) z)). +Axiom thm_CLOSED_HALFSPACE_IM_LE : forall b : R, @closed (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8291 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8291 (Rle (Im z) b) z)). +Axiom thm_CLOSED_HALFSPACE_IM_EQ : forall b : R, @closed (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8295 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8295 ((Im z) = b) z)). +Axiom thm_OPEN_HALFSPACE_IM_GT : forall b : R, @_open (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8298 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8298 (Rgt (Im z) b) z)). +Axiom thm_OPEN_HALFSPACE_IM_LT : forall b : R, @_open (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8301 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8301 (Rlt (Im z) b) z)). +Axiom thm_CONVEX_HALFSPACE_RE_GE : forall b : R, @convex (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8302 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8302 (Rge (Re z) b) z)). +Axiom thm_CONVEX_HALFSPACE_RE_GT : forall b : R, @convex (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8303 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8303 (Rgt (Re z) b) z)). +Axiom thm_CONVEX_HALFSPACE_RE_LE : forall b : R, @convex (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8304 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8304 (Rle (Re z) b) z)). +Axiom thm_CONVEX_HALFSPACE_RE_LT : forall b : R, @convex (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8305 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8305 (Rlt (Re z) b) z)). +Axiom thm_CONVEX_HALFSPACE_IM_GE : forall b : R, @convex (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8306 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8306 (Rge (Im z) b) z)). +Axiom thm_CONVEX_HALFSPACE_IM_GT : forall b : R, @convex (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8307 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8307 (Rgt (Im z) b) z)). +Axiom thm_CONVEX_HALFSPACE_IM_LE : forall b : R, @convex (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8308 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8308 (Rle (Im z) b) z)). +Axiom thm_CONVEX_HALFSPACE_IM_LT : forall b : R, @convex (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8309 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8309 (Rlt (Im z) b) z)). +Axiom thm_CONVEX_HALFSPACE_RE_SGN : forall b : R, @convex (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8310 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8310 ((real_sgn (Re z)) = b) z)). +Axiom thm_CONVEX_HALFSPACE_IM_SGN : forall b : R, @convex (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8311 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8311 ((real_sgn (Im z)) = b) z)). +Axiom thm_COMPLEX_IN_BALL_0 : forall v : cart R (tybit0 unit), forall r : R, (@IN (cart R (tybit0 unit)) v (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) r))) = (Rlt (@vector_norm (tybit0 unit) v) r). +Axiom thm_COMPLEX_IN_CBALL_0 : forall v : cart R (tybit0 unit), forall r : R, (@IN (cart R (tybit0 unit)) v (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) r))) = (Rle (@vector_norm (tybit0 unit) v) r). +Axiom thm_COMPLEX_IN_SPHERE_0 : forall v : cart R (tybit0 unit), forall r : R, (@IN (cart R (tybit0 unit)) v (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) r))) = ((@vector_norm (tybit0 unit) v) = r). +Axiom thm_IN_BALL_RE : forall x : cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall e : R, (@IN (cart R (tybit0 unit)) x (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z e))) -> Rlt (Rabs (Rminus (Re x) (Re z))) e. +Axiom thm_IN_BALL_IM : forall x : cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall e : R, (@IN (cart R (tybit0 unit)) x (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z e))) -> Rlt (Rabs (Rminus (Im x) (Im z))) e. +Axiom thm_IN_CBALL_RE : forall x : cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall e : R, (@IN (cart R (tybit0 unit)) x (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z e))) -> Rle (Rabs (Rminus (Re x) (Re z))) e. +Axiom thm_IN_CBALL_IM : forall x : cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall e : R, (@IN (cart R (tybit0 unit)) x (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z e))) -> Rle (Rabs (Rminus (Im x) (Im z))) e. +Axiom thm_CLOSED_REAL_SET : @closed (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8312 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8312 (real z) z)). +Axiom thm_CLOSED_REAL : @closed (tybit0 unit) real. +Axiom thm_UNBOUNDED_REAL : ~ (@bounded (tybit0 unit) real). +Axiom thm_CONNECTED_REAL : @connected (tybit0 unit) real. +Axiom thm_PATH_CONNECTED_REAL : @path_connected (tybit0 unit) real. +Axiom thm_TRIVIAL_LIMIT_WITHIN_REAL : forall z : cart R (tybit0 unit), (@trivial_limit (cart R (tybit0 unit)) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) real)) = (~ (real z)). +Axiom thm_UNIFORM_LIM_COMPLEX_MUL : forall {A B : Type'}, forall net' : net A, forall P : B -> Prop, forall f : B -> A -> cart R (tybit0 unit), forall g : B -> A -> cart R (tybit0 unit), forall l : B -> cart R (tybit0 unit), forall m : B -> cart R (tybit0 unit), forall b1 : R, forall b2 : R, ((@eventually A (fun x : A => forall n : B, (P n) -> Rle (@vector_norm (tybit0 unit) (l n)) b1) net') /\ ((@eventually A (fun x : A => forall n : B, (P n) -> Rle (@vector_norm (tybit0 unit) (m n)) b2) net') /\ ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f n x) (l n))) e) net') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (g n x) (m n))) e) net')))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (complex_mul (f n x) (g n x)) (complex_mul (l n) (m n)))) e) net'. +Axiom thm_UNIFORM_LIM_COMPLEX_INV : forall {A B : Type'}, forall net' : net A, forall P : B -> Prop, forall f : B -> A -> cart R (tybit0 unit), forall l : B -> cart R (tybit0 unit), forall b : R, ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f n x) (l n))) e) net') /\ ((Rlt (R_of_N (NUMERAL 0%N)) b) /\ (@eventually A (fun x : A => forall n : B, (P n) -> Rle b (@vector_norm (tybit0 unit) (l n))) net'))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (complex_inv (f n x)) (complex_inv (l n)))) e) net'. +Axiom thm_UNIFORM_LIM_COMPLEX_DIV : forall {A B : Type'}, forall net' : net A, forall P : B -> Prop, forall f : B -> A -> cart R (tybit0 unit), forall g : B -> A -> cart R (tybit0 unit), forall l : B -> cart R (tybit0 unit), forall m : B -> cart R (tybit0 unit), forall b1 : R, forall b2 : R, ((@eventually A (fun x : A => forall n : B, (P n) -> Rle (@vector_norm (tybit0 unit) (l n)) b1) net') /\ ((Rlt (R_of_N (NUMERAL 0%N)) b2) /\ ((@eventually A (fun x : A => forall n : B, (P n) -> Rle b2 (@vector_norm (tybit0 unit) (m n))) net') /\ ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f n x) (l n))) e) net') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (g n x) (m n))) e) net'))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun x : A => forall n : B, (P n) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (complex_div (f n x) (g n x)) (complex_div (l n) (m n)))) e) net'. +Axiom thm_LIM_COMPLEX_MUL : forall {A : Type'}, forall net' : net A, forall f : A -> cart R (tybit0 unit), forall g : A -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall m : cart R (tybit0 unit), ((@FImp (tybit0 unit) A f l net') /\ (@FImp (tybit0 unit) A g m net')) -> @FImp (tybit0 unit) A (fun x : A => complex_mul (f x) (g x)) (complex_mul l m) net'. +Axiom thm_LIM_COMPLEX_INV : forall {_1613046 _1613054 A : Type'}, forall net' : net A, forall f : A -> cart R (tybit0 unit), forall g : _1613046, forall l : cart R (tybit0 unit), forall m : _1613054, ((@FImp (tybit0 unit) A f l net') /\ (~ (l = (Cx (R_of_N (NUMERAL 0%N)))))) -> @FImp (tybit0 unit) A (fun x : A => complex_inv (f x)) (complex_inv l) net'. +Axiom thm_LIM_COMPLEX_DIV : forall {A : Type'}, forall net' : net A, forall f : A -> cart R (tybit0 unit), forall g : A -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall m : cart R (tybit0 unit), ((@FImp (tybit0 unit) A f l net') /\ ((@FImp (tybit0 unit) A g m net') /\ (~ (m = (Cx (R_of_N (NUMERAL 0%N))))))) -> @FImp (tybit0 unit) A (fun x : A => complex_div (f x) (g x)) (complex_div l m) net'. +Axiom thm_LIM_COMPLEX_POW : forall {A : Type'}, forall net' : net A, forall f : A -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall n : N, (@FImp (tybit0 unit) A f l net') -> @FImp (tybit0 unit) A (fun x : A => complex_pow (f x) n) (complex_pow l n) net'. +Axiom thm_LIM_COMPLEX_LMUL : forall {_1613210 : Type'} (net' : net _1613210), forall f : _1613210 -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@FImp (tybit0 unit) _1613210 f l net') -> @FImp (tybit0 unit) _1613210 (fun x : _1613210 => complex_mul c (f x)) (complex_mul c l) net'. +Axiom thm_LIM_COMPLEX_RMUL : forall {_1613244 : Type'} (net' : net _1613244), forall f : _1613244 -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@FImp (tybit0 unit) _1613244 f l net') -> @FImp (tybit0 unit) _1613244 (fun x : _1613244 => complex_mul (f x) c) (complex_mul l c) net'. +Axiom thm_LIM_CX_LIFT : forall {_1613281 : Type'}, forall net' : net _1613281, forall f : _1613281 -> R, forall l : R, (@FImp (tybit0 unit) _1613281 (fun x : _1613281 => Cx (f x)) (Cx l) net') = (@FImp unit _1613281 (fun x : _1613281 => lift (f x)) (lift l) net'). +Axiom thm_SERIES_CX_LIFT : forall f : N -> R, forall s : N -> Prop, forall x : R, (@sums (tybit0 unit) (fun x' : N => Cx (f x')) (Cx x) s) = (@sums unit (fun x' : N => lift (f x')) (lift x) s). +Axiom thm_LIM_INFINITY_POSINFINITY_CX : forall {N' : Type'}, forall f : (cart R (tybit0 unit)) -> cart R N', forall l : cart R N', (@FImp N' (cart R (tybit0 unit)) f l (@at_infinity (tybit0 unit))) -> @FImp N' R (@o R (cart R (tybit0 unit)) (cart R N') f Cx) l at_posinfinity. +Axiom thm_LIM_NULL_COMPLEX : forall {_1613380 : Type'} (l : cart R (tybit0 unit)), forall net' : net _1613380, forall f : _1613380 -> cart R (tybit0 unit), (@FImp (tybit0 unit) _1613380 f l net') = (@FImp (tybit0 unit) _1613380 (fun x : _1613380 => @vector_sub (tybit0 unit) (f x) l) (Cx (R_of_N (NUMERAL 0%N))) net'). +Axiom thm_LIM_NULL_COMPLEX_NORM : forall {_1613413 : Type'}, forall net' : net _1613413, forall f : _1613413 -> cart R (tybit0 unit), (@FImp (tybit0 unit) _1613413 f (Cx (R_of_N (NUMERAL 0%N))) net') = (@FImp (tybit0 unit) _1613413 (fun x : _1613413 => Cx (@vector_norm (tybit0 unit) (f x))) (Cx (R_of_N (NUMERAL 0%N))) net'). +Axiom thm_LIM_NULL_COMPLEX_NEG : forall {_1613447 : Type'}, forall net' : net _1613447, forall f : _1613447 -> cart R (tybit0 unit), (@FImp (tybit0 unit) _1613447 f (Cx (R_of_N (NUMERAL 0%N))) net') -> @FImp (tybit0 unit) _1613447 (fun x : _1613447 => @vector_neg (tybit0 unit) (f x)) (Cx (R_of_N (NUMERAL 0%N))) net'. +Axiom thm_LIM_NULL_COMPLEX_ADD : forall {_1613495 : Type'}, forall net' : net _1613495, forall f : _1613495 -> cart R (tybit0 unit), forall g : _1613495 -> cart R (tybit0 unit), ((@FImp (tybit0 unit) _1613495 f (Cx (R_of_N (NUMERAL 0%N))) net') /\ (@FImp (tybit0 unit) _1613495 g (Cx (R_of_N (NUMERAL 0%N))) net')) -> @FImp (tybit0 unit) _1613495 (fun x : _1613495 => @vector_add (tybit0 unit) (f x) (g x)) (Cx (R_of_N (NUMERAL 0%N))) net'. +Axiom thm_LIM_NULL_COMPLEX_SUB : forall {_1613543 : Type'}, forall net' : net _1613543, forall f : _1613543 -> cart R (tybit0 unit), forall g : _1613543 -> cart R (tybit0 unit), ((@FImp (tybit0 unit) _1613543 f (Cx (R_of_N (NUMERAL 0%N))) net') /\ (@FImp (tybit0 unit) _1613543 g (Cx (R_of_N (NUMERAL 0%N))) net')) -> @FImp (tybit0 unit) _1613543 (fun x : _1613543 => @vector_sub (tybit0 unit) (f x) (g x)) (Cx (R_of_N (NUMERAL 0%N))) net'. +Axiom thm_LIM_NULL_COMPLEX_MUL : forall {_1613591 : Type'}, forall net' : net _1613591, forall f : _1613591 -> cart R (tybit0 unit), forall g : _1613591 -> cart R (tybit0 unit), ((@FImp (tybit0 unit) _1613591 f (Cx (R_of_N (NUMERAL 0%N))) net') /\ (@FImp (tybit0 unit) _1613591 g (Cx (R_of_N (NUMERAL 0%N))) net')) -> @FImp (tybit0 unit) _1613591 (fun x : _1613591 => complex_mul (f x) (g x)) (Cx (R_of_N (NUMERAL 0%N))) net'. +Axiom thm_LIM_NULL_COMPLEX_LMUL : forall {_1613641 : Type'}, forall net' : net _1613641, forall f : _1613641 -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@FImp (tybit0 unit) _1613641 f (Cx (R_of_N (NUMERAL 0%N))) net') -> @FImp (tybit0 unit) _1613641 (fun x : _1613641 => complex_mul c (f x)) (Cx (R_of_N (NUMERAL 0%N))) net'. +Axiom thm_LIM_NULL_COMPLEX_RMUL : forall {_1613691 : Type'}, forall net' : net _1613691, forall f : _1613691 -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@FImp (tybit0 unit) _1613691 f (Cx (R_of_N (NUMERAL 0%N))) net') -> @FImp (tybit0 unit) _1613691 (fun x : _1613691 => complex_mul (f x) c) (Cx (R_of_N (NUMERAL 0%N))) net'. +Axiom thm_LIM_NULL_COMPLEX_POW : forall {_1613735 : Type'}, forall net' : net _1613735, forall f : _1613735 -> cart R (tybit0 unit), forall n : N, ((@FImp (tybit0 unit) _1613735 f (Cx (R_of_N (NUMERAL 0%N))) net') /\ (~ (n = (NUMERAL 0%N)))) -> @FImp (tybit0 unit) _1613735 (fun x : _1613735 => complex_pow (f x) n) (Cx (R_of_N (NUMERAL 0%N))) net'. +Axiom thm_SUMS_COMPLEX_0 : forall f : N -> cart R (tybit0 unit), forall s : N -> Prop, (forall n : N, (@IN N n s) -> (f n) = (Cx (R_of_N (NUMERAL 0%N)))) -> @sums (tybit0 unit) f (Cx (R_of_N (NUMERAL 0%N))) s. +Axiom thm_LIM_NULL_COMPLEX_RMUL_BOUNDED : forall {_1613834 : Type'}, forall net' : net _1613834, forall f : _1613834 -> cart R (tybit0 unit), forall g : _1613834 -> cart R (tybit0 unit), forall B : R, ((@FImp (tybit0 unit) _1613834 f (Cx (R_of_N (NUMERAL 0%N))) net') /\ (@eventually _1613834 (fun a : _1613834 => ((f a) = (Cx (R_of_N (NUMERAL 0%N)))) \/ (Rle (@vector_norm (tybit0 unit) (g a)) B)) net')) -> @FImp (tybit0 unit) _1613834 (fun z : _1613834 => complex_mul (f z) (g z)) (Cx (R_of_N (NUMERAL 0%N))) net'. +Axiom thm_LIM_NULL_COMPLEX_LMUL_BOUNDED : forall {_1613900 : Type'}, forall net' : net _1613900, forall f : _1613900 -> cart R (tybit0 unit), forall g : _1613900 -> cart R (tybit0 unit), forall B : R, ((@eventually _1613900 (fun a : _1613900 => (Rle (@vector_norm (tybit0 unit) (f a)) B) \/ ((g a) = (Cx (R_of_N (NUMERAL 0%N))))) net') /\ (@FImp (tybit0 unit) _1613900 g (Cx (R_of_N (NUMERAL 0%N))) net')) -> @FImp (tybit0 unit) _1613900 (fun z : _1613900 => complex_mul (f z) (g z)) (Cx (R_of_N (NUMERAL 0%N))) net'. +Axiom thm_LIM_RE_UBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall b : R, ((~ (@trivial_limit A net')) /\ ((@FImp (tybit0 unit) A f l net') /\ (@eventually A (fun x : A => Rle (Re (f x)) b) net'))) -> Rle (Re l) b. +Axiom thm_LIM_RE_LBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall b : R, ((~ (@trivial_limit A net')) /\ ((@FImp (tybit0 unit) A f l net') /\ (@eventually A (fun x : A => Rle b (Re (f x))) net'))) -> Rle b (Re l). +Axiom thm_LIM_IM_UBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall b : R, ((~ (@trivial_limit A net')) /\ ((@FImp (tybit0 unit) A f l net') /\ (@eventually A (fun x : A => Rle (Im (f x)) b) net'))) -> Rle (Im l) b. +Axiom thm_LIM_IM_LBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall b : R, ((~ (@trivial_limit A net')) /\ ((@FImp (tybit0 unit) A f l net') /\ (@eventually A (fun x : A => Rle b (Im (f x))) net'))) -> Rle b (Im l). +Axiom thm_LIM_COMPLEX_INV_NONDEGENERATE : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, forall a : cart R N', forall l : cart R (tybit0 unit), ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@IN (cart R N') a s) /\ ((@_open N' s) /\ ((@continuous_on N' (tybit0 unit) f (@DELETE (cart R N') s a)) /\ (@FImp (tybit0 unit) (cart R N') (@o (cart R N') (cart R (tybit0 unit)) (cart R (tybit0 unit)) complex_inv f) l (@_at N' a)))))) -> exists t : (cart R N') -> Prop, (@_open N' t) /\ ((@SUBSET (cart R N') t s) /\ (((forall x : cart R N', (@IN (cart R N') x (@DELETE (cart R N') t a)) -> (f x) = (Cx (R_of_N (NUMERAL 0%N)))) /\ (l = (Cx (R_of_N (NUMERAL 0%N))))) \/ (forall x : cart R N', (@IN (cart R N') x (@DELETE (cart R N') t a)) -> ~ ((f x) = (Cx (R_of_N (NUMERAL 0%N))))))). +Axiom thm_SERIES_COMPLEX_LMUL : forall f : N -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall s : N -> Prop, (@sums (tybit0 unit) f l s) -> @sums (tybit0 unit) (fun x : N => complex_mul c (f x)) (complex_mul c l) s. +Axiom thm_SERIES_COMPLEX_RMUL : forall f : N -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall s : N -> Prop, (@sums (tybit0 unit) f l s) -> @sums (tybit0 unit) (fun x : N => complex_mul (f x) c) (complex_mul l c) s. +Axiom thm_SERIES_COMPLEX_DIV : forall f : N -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall s : N -> Prop, (@sums (tybit0 unit) f l s) -> @sums (tybit0 unit) (fun x : N => complex_div (f x) c) (complex_div l c) s. +Axiom thm_SUMMABLE_COMPLEX_LMUL : forall f : N -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall s : N -> Prop, (@summable (tybit0 unit) s f) -> @summable (tybit0 unit) s (fun x : N => complex_mul c (f x)). +Axiom thm_SUMMABLE_COMPLEX_RMUL : forall f : N -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall s : N -> Prop, (@summable (tybit0 unit) s f) -> @summable (tybit0 unit) s (fun x : N => complex_mul (f x) c). +Axiom thm_SUMMABLE_COMPLEX_DIV : forall f : N -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall s : N -> Prop, (@summable (tybit0 unit) s f) -> @summable (tybit0 unit) s (fun x : N => complex_div (f x) c). +Axiom thm_SERIES_COMPLEX_MUL : forall x : N -> cart R (tybit0 unit), forall y : N -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), ((@sums (tybit0 unit) x a (from (NUMERAL 0%N))) /\ ((@sums (tybit0 unit) y b (from (NUMERAL 0%N))) /\ ((@summable unit (from (NUMERAL 0%N)) (fun n : N => lift (@vector_norm (tybit0 unit) (x n)))) \/ (@summable unit (from (NUMERAL 0%N)) (fun n : N => lift (@vector_norm (tybit0 unit) (y n))))))) -> @sums (tybit0 unit) (fun n : N => @vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (x i) (y (N.sub n i)))) (complex_mul a b) (from (NUMERAL 0%N)). +Axiom thm_SERIES_COMPLEX_MUL_UNIQUE : forall x : N -> cart R (tybit0 unit), forall y : N -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), ((@sums (tybit0 unit) x a (from (NUMERAL 0%N))) /\ ((@sums (tybit0 unit) y b (from (NUMERAL 0%N))) /\ (@sums (tybit0 unit) (fun n : N => @vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (x i) (y (N.sub n i)))) c (from (NUMERAL 0%N))))) -> (complex_mul a b) = c. +Axiom thm_SUMMABLE_COMPLEX_MUL_LEFT : forall x : N -> cart R (tybit0 unit), forall y : N -> cart R (tybit0 unit), forall m : N, forall n : N, forall p : N, ((@summable unit (from m) (fun n' : N => lift (@vector_norm (tybit0 unit) (x n')))) /\ (@summable (tybit0 unit) (from n) y)) -> @summable (tybit0 unit) (from p) (fun n' : N => @vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n') (fun i : N => complex_mul (x i) (y (N.sub n' i)))). +Axiom thm_SUMMABLE_COMPLEX_MUL_RIGHT : forall x : N -> cart R (tybit0 unit), forall y : N -> cart R (tybit0 unit), forall m : N, forall n : N, forall p : N, ((@summable (tybit0 unit) (from m) x) /\ (@summable unit (from n) (fun n' : N => lift (@vector_norm (tybit0 unit) (y n'))))) -> @summable (tybit0 unit) (from p) (fun n' : N => @vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n') (fun i : N => complex_mul (x i) (y (N.sub n' i)))). +Axiom thm_CONTINUOUS_COMPLEX_MUL : forall {_1615014 : Type'}, forall net' : net _1615014, forall f : _1615014 -> cart R (tybit0 unit), forall g : _1615014 -> cart R (tybit0 unit), ((@continuous (tybit0 unit) _1615014 f net') /\ (@continuous (tybit0 unit) _1615014 g net')) -> @continuous (tybit0 unit) _1615014 (fun x : _1615014 => complex_mul (f x) (g x)) net'. +Axiom thm_CONTINUOUS_COMPLEX_LMUL : forall {_1615043 : Type'}, forall c : cart R (tybit0 unit), forall f : _1615043 -> cart R (tybit0 unit), forall net' : net _1615043, (@continuous (tybit0 unit) _1615043 f net') -> @continuous (tybit0 unit) _1615043 (fun x : _1615043 => complex_mul c (f x)) net'. +Axiom thm_CONTINUOUS_COMPLEX_RMUL : forall {_1615072 : Type'}, forall c : cart R (tybit0 unit), forall f : _1615072 -> cart R (tybit0 unit), forall net' : net _1615072, (@continuous (tybit0 unit) _1615072 f net') -> @continuous (tybit0 unit) _1615072 (fun x : _1615072 => complex_mul (f x) c) net'. +Axiom thm_CONTINUOUS_COMPLEX_INV : forall {_1615108 : Type'}, forall net' : net _1615108, forall f : _1615108 -> cart R (tybit0 unit), ((@continuous (tybit0 unit) _1615108 f net') /\ (~ ((f (@netlimit _1615108 net')) = (Cx (R_of_N (NUMERAL 0%N)))))) -> @continuous (tybit0 unit) _1615108 (fun x : _1615108 => complex_inv (f x)) net'. +Axiom thm_CONTINUOUS_COMPLEX_DIV : forall {_1615156 : Type'}, forall net' : net _1615156, forall f : _1615156 -> cart R (tybit0 unit), forall g : _1615156 -> cart R (tybit0 unit), ((@continuous (tybit0 unit) _1615156 f net') /\ ((@continuous (tybit0 unit) _1615156 g net') /\ (~ ((g (@netlimit _1615156 net')) = (Cx (R_of_N (NUMERAL 0%N))))))) -> @continuous (tybit0 unit) _1615156 (fun x : _1615156 => complex_div (f x) (g x)) net'. +Axiom thm_CONTINUOUS_COMPLEX_POW : forall {_1615185 : Type'}, forall net' : net _1615185, forall f : _1615185 -> cart R (tybit0 unit), forall n : N, (@continuous (tybit0 unit) _1615185 f net') -> @continuous (tybit0 unit) _1615185 (fun x : _1615185 => complex_pow (f x) n) net'. +Axiom thm_CONTINUOUS_CPRODUCT : forall {A N' : Type'}, forall net' : net (cart R N'), forall f : A -> (cart R N') -> cart R (tybit0 unit), forall k : A -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> @continuous (tybit0 unit) (cart R N') (f i) net')) -> @continuous (tybit0 unit) (cart R N') (fun z : cart R N' => @cproduct A k (fun i : A => f i z)) net'. +Axiom thm_CONTINUOUS_COMPLEX_INV_WITHIN : forall {_1615279 : Type'}, forall f : (cart R _1615279) -> cart R (tybit0 unit), forall s : (cart R _1615279) -> Prop, forall a : cart R _1615279, ((@continuous (tybit0 unit) (cart R _1615279) f (@within (cart R _1615279) (@_at _1615279 a) s)) /\ (~ ((f a) = (Cx (R_of_N (NUMERAL 0%N)))))) -> @continuous (tybit0 unit) (cart R _1615279) (fun x : cart R _1615279 => complex_inv (f x)) (@within (cart R _1615279) (@_at _1615279 a) s). +Axiom thm_CONTINUOUS_COMPLEX_INV_AT : forall {_1615317 : Type'}, forall f : (cart R _1615317) -> cart R (tybit0 unit), forall a : cart R _1615317, ((@continuous (tybit0 unit) (cart R _1615317) f (@_at _1615317 a)) /\ (~ ((f a) = (Cx (R_of_N (NUMERAL 0%N)))))) -> @continuous (tybit0 unit) (cart R _1615317) (fun x : cart R _1615317 => complex_inv (f x)) (@_at _1615317 a). +Axiom thm_CONTINUOUS_COMPLEX_DIV_WITHIN : forall {_1615382 : Type'}, forall f : (cart R _1615382) -> cart R (tybit0 unit), forall g : (cart R _1615382) -> cart R (tybit0 unit), forall s : (cart R _1615382) -> Prop, forall a : cart R _1615382, ((@continuous (tybit0 unit) (cart R _1615382) f (@within (cart R _1615382) (@_at _1615382 a) s)) /\ ((@continuous (tybit0 unit) (cart R _1615382) g (@within (cart R _1615382) (@_at _1615382 a) s)) /\ (~ ((g a) = (Cx (R_of_N (NUMERAL 0%N))))))) -> @continuous (tybit0 unit) (cart R _1615382) (fun x : cart R _1615382 => complex_div (f x) (g x)) (@within (cart R _1615382) (@_at _1615382 a) s). +Axiom thm_CONTINUOUS_COMPLEX_DIV_AT : forall {_1615434 : Type'}, forall f : (cart R _1615434) -> cart R (tybit0 unit), forall g : (cart R _1615434) -> cart R (tybit0 unit), forall a : cart R _1615434, ((@continuous (tybit0 unit) (cart R _1615434) f (@_at _1615434 a)) /\ ((@continuous (tybit0 unit) (cart R _1615434) g (@_at _1615434 a)) /\ (~ ((g a) = (Cx (R_of_N (NUMERAL 0%N))))))) -> @continuous (tybit0 unit) (cart R _1615434) (fun x : cart R _1615434 => complex_div (f x) (g x)) (@_at _1615434 a). +Axiom thm_CONTINUOUS_ON_COMPLEX_MUL : forall {_1615463 : Type'}, forall f : (cart R _1615463) -> cart R (tybit0 unit), forall g : (cart R _1615463) -> cart R (tybit0 unit), forall s : (cart R _1615463) -> Prop, ((@continuous_on _1615463 (tybit0 unit) f s) /\ (@continuous_on _1615463 (tybit0 unit) g s)) -> @continuous_on _1615463 (tybit0 unit) (fun x : cart R _1615463 => complex_mul (f x) (g x)) s. +Axiom thm_CONTINUOUS_ON_COMPLEX_LMUL : forall {N' : Type'} (c : cart R (tybit0 unit)), forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, (@continuous_on N' (tybit0 unit) f s) -> @continuous_on N' (tybit0 unit) (fun x : cart R N' => complex_mul c (f x)) s. +Axiom thm_CONTINUOUS_ON_COMPLEX_RMUL : forall {N' : Type'} (c : cart R (tybit0 unit)), forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, (@continuous_on N' (tybit0 unit) f s) -> @continuous_on N' (tybit0 unit) (fun x : cart R N' => complex_mul (f x) c) s. +Axiom thm_CONTINUOUS_ON_COMPLEX_INV : forall {N' : Type'} (s : (cart R N') -> Prop), forall f : (cart R N') -> cart R (tybit0 unit), ((@continuous_on N' (tybit0 unit) f s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> ~ ((f x) = (Cx (R_of_N (NUMERAL 0%N)))))) -> @continuous_on N' (tybit0 unit) (fun x : cart R N' => complex_inv (f x)) s. +Axiom thm_CONTINUOUS_ON_COMPLEX_DIV : forall {_1615607 : Type'}, forall f : (cart R _1615607) -> cart R (tybit0 unit), forall g : (cart R _1615607) -> cart R (tybit0 unit), forall s : (cart R _1615607) -> Prop, ((@continuous_on _1615607 (tybit0 unit) f s) /\ ((@continuous_on _1615607 (tybit0 unit) g s) /\ (forall x : cart R _1615607, (@IN (cart R _1615607) x s) -> ~ ((g x) = (Cx (R_of_N (NUMERAL 0%N))))))) -> @continuous_on _1615607 (tybit0 unit) (fun x : cart R _1615607 => complex_div (f x) (g x)) s. +Axiom thm_CONTINUOUS_ON_COMPLEX_POW : forall {_1615637 : Type'}, forall f : (cart R _1615637) -> cart R (tybit0 unit), forall n : N, forall s : (cart R _1615637) -> Prop, (@continuous_on _1615637 (tybit0 unit) f s) -> @continuous_on _1615637 (tybit0 unit) (fun x : cart R _1615637 => complex_pow (f x) n) s. +Axiom thm_CONTINUOUS_ON_CPRODUCT : forall {_1615680 A : Type'}, forall f : A -> (cart R _1615680) -> cart R (tybit0 unit), forall k : A -> Prop, forall s : (cart R _1615680) -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> @continuous_on _1615680 (tybit0 unit) (f i) s)) -> @continuous_on _1615680 (tybit0 unit) (fun z : cart R _1615680 => @cproduct A k (fun i : A => f i z)) s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_COMPLEX_MUL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall g : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, ((@uniformly_continuous_on N' (tybit0 unit) f s) /\ ((@uniformly_continuous_on N' (tybit0 unit) g s) /\ ((@bounded (tybit0 unit) (@IMAGE (cart R N') (cart R (tybit0 unit)) f s)) /\ (@bounded (tybit0 unit) (@IMAGE (cart R N') (cart R (tybit0 unit)) g s))))) -> @uniformly_continuous_on N' (tybit0 unit) (fun x : cart R N' => complex_mul (f x) (g x)) s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_COMPLEX_LMUL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall s : (cart R N') -> Prop, (@uniformly_continuous_on N' (tybit0 unit) f s) -> @uniformly_continuous_on N' (tybit0 unit) (fun x : cart R N' => complex_mul c (f x)) s. +Axiom thm_UNIFORMLY_CONTINUOUS_ON_COMPLEX_RMUL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall s : (cart R N') -> Prop, (@uniformly_continuous_on N' (tybit0 unit) f s) -> @uniformly_continuous_on N' (tybit0 unit) (fun x : cart R N' => complex_mul (f x) c) s. +Axiom thm_CONTINUOUS_AT_CX_NORM : forall {N' : Type'}, forall z : cart R N', @continuous (tybit0 unit) (cart R N') (fun z' : cart R N' => Cx (@vector_norm N' z')) (@_at N' z). +Axiom thm_CONTINUOUS_WITHIN_CX_NORM : forall {N' : Type'}, forall z : cart R N', forall s : (cart R N') -> Prop, @continuous (tybit0 unit) (cart R N') (fun z' : cart R N' => Cx (@vector_norm N' z')) (@within (cart R N') (@_at N' z) s). +Axiom thm_CONTINUOUS_ON_CX_NORM : forall {_1615911 : Type'}, forall s : (cart R _1615911) -> Prop, @continuous_on _1615911 (tybit0 unit) (fun z : cart R _1615911 => Cx (@vector_norm _1615911 z)) s. +Axiom thm_CONTINUOUS_AT_CX_DOT : forall {N' : Type'}, forall c : cart R N', forall z : cart R N', @continuous (tybit0 unit) (cart R N') (fun z' : cart R N' => Cx (@dot N' c z')) (@_at N' z). +Axiom thm_CONTINUOUS_WITHIN_CX_DOT : forall {N' : Type'}, forall c : cart R N', forall z : cart R N', forall s : (cart R N') -> Prop, @continuous (tybit0 unit) (cart R N') (fun z' : cart R N' => Cx (@dot N' c z')) (@within (cart R N') (@_at N' z) s). +Axiom thm_CONTINUOUS_ON_CX_DOT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : cart R N', @continuous_on N' (tybit0 unit) (fun z : cart R N' => Cx (@dot N' c z)) s. +Axiom thm_CONTINUOUS_CX_DROP : forall {_1616010 : Type'}, forall net' : net _1616010, forall f : _1616010 -> cart R unit, (@continuous unit _1616010 f net') -> @continuous (tybit0 unit) _1616010 (fun x : _1616010 => Cx (drop (f x))) net'. +Axiom thm_CONTINUOUS_ON_CX_DROP : forall {_1616029 : Type'}, forall f : (cart R _1616029) -> cart R unit, forall s : (cart R _1616029) -> Prop, (@continuous_on _1616029 unit f s) -> @continuous_on _1616029 (tybit0 unit) (fun x : cart R _1616029 => Cx (drop (f x))) s. +Axiom thm_CONTINUOUS_CX_LIFT : forall {_1616057 : Type'} (net' : net _1616057), forall f : _1616057 -> R, (@continuous (tybit0 unit) _1616057 (fun x : _1616057 => Cx (f x)) net') = (@continuous unit _1616057 (fun x : _1616057 => lift (f x)) net'). +Axiom thm_CONTINUOUS_ON_CX_LIFT : forall {_1616080 : Type'}, forall f : (cart R _1616080) -> R, forall s : (cart R _1616080) -> Prop, (@continuous_on _1616080 (tybit0 unit) (fun x : cart R _1616080 => Cx (f x)) s) = (@continuous_on _1616080 unit (fun x : cart R _1616080 => lift (f x)) s). +Axiom thm_LINEAR_CX_RE : @linear (tybit0 unit) (tybit0 unit) (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx Re). +Axiom thm_CONTINUOUS_AT_CX_RE : forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx Re) (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_ON_CX_RE : forall s : (cart R (tybit0 unit)) -> Prop, @continuous_on (tybit0 unit) (tybit0 unit) (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx Re) s. +Axiom thm_LINEAR_CX_IM : @linear (tybit0 unit) (tybit0 unit) (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx Im). +Axiom thm_CONTINUOUS_AT_CX_IM : forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx Im) (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_ON_CX_IM : forall s : (cart R (tybit0 unit)) -> Prop, @continuous_on (tybit0 unit) (tybit0 unit) (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx Im) s. +Axiom thm_has_complex_derivative : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall net' : net (cart R (tybit0 unit)), (has_complex_derivative f f' net') = (@has_derivative (tybit0 unit) (tybit0 unit) f (fun x : cart R (tybit0 unit) => complex_mul f' x) net'). +Axiom thm_complex_differentiable : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall net' : net (cart R (tybit0 unit)), (complex_differentiable f net') = (exists f' : cart R (tybit0 unit), has_complex_derivative f f' net'). +Axiom thm_complex_derivative : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (complex_derivative f x) = (@ε (cart R (tybit0 unit)) (fun f' : cart R (tybit0 unit) => has_complex_derivative f f' (@_at (tybit0 unit) x))). +Axiom thm_holomorphic_on : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (holomorphic_on f s) = (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> exists f' : cart R (tybit0 unit), has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)). +Axiom thm_HOLOMORPHIC_ON_EMPTY : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), holomorphic_on f (@EMPTY (cart R (tybit0 unit))). +Axiom thm_HOLOMORPHIC_ON_DIFFERENTIABLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (holomorphic_on f s) = (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)). +Axiom thm_HOLOMORPHIC_ON_OPEN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (holomorphic_on f s) = (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> exists f' : cart R (tybit0 unit), has_complex_derivative f f' (@_at (tybit0 unit) x)). +Axiom thm_HOLOMORPHIC_ON_IMP_DIFFERENTIABLE_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall x : cart R (tybit0 unit), ((holomorphic_on f s) /\ (@IN (cart R (tybit0 unit)) x s)) -> complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HOLOMORPHIC_ON_IMP_DIFFERENTIABLE_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall x : cart R (tybit0 unit), ((holomorphic_on f s) /\ ((@_open (tybit0 unit) s) /\ (@IN (cart R (tybit0 unit)) x s))) -> complex_differentiable f (@_at (tybit0 unit) x). +Axiom thm_HAS_COMPLEX_DERIVATIVE_IMP_CONTINUOUS_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), (has_complex_derivative f f' (@_at (tybit0 unit) x)) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) f (@_at (tybit0 unit) x). +Axiom thm_HAS_COMPLEX_DERIVATIVE_IMP_CONTINUOUS_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_COMPLEX_DIFFERENTIABLE_IMP_DIFFERENTIABLE : forall net' : net (cart R (tybit0 unit)), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (complex_differentiable f net') -> @differentiable (tybit0 unit) (tybit0 unit) f net'. +Axiom thm_COMPLEX_DIFFERENTIABLE_IMP_CONTINUOUS_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (complex_differentiable f (@_at (tybit0 unit) x)) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) f (@_at (tybit0 unit) x). +Axiom thm_COMPLEX_DIFFERENTIABLE_IMP_CONTINUOUS_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HOLOMORPHIC_ON_IMP_CONTINUOUS_ON : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (holomorphic_on f s) -> @continuous_on (tybit0 unit) (tybit0 unit) f s. +Axiom thm_HOLOMORPHIC_ON_SUBSET : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f s) /\ (@SUBSET (cart R (tybit0 unit)) t s)) -> holomorphic_on f t. +Axiom thm_HAS_COMPLEX_DERIVATIVE_WITHIN_SUBSET : forall (f' : cart R (tybit0 unit)), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, forall x : cart R (tybit0 unit), ((has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (@SUBSET (cart R (tybit0 unit)) t s)) -> has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) t). +Axiom thm_COMPLEX_DIFFERENTIABLE_WITHIN_SUBSET : forall (x : cart R (tybit0 unit)), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, ((complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (@SUBSET (cart R (tybit0 unit)) t s)) -> complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) t). +Axiom thm_HAS_COMPLEX_DERIVATIVE_AT_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (has_complex_derivative f f' (@_at (tybit0 unit) x)) -> has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HAS_COMPLEX_DERIVATIVE_WITHIN_OPEN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@IN (cart R (tybit0 unit)) a s) /\ (@_open (tybit0 unit) s)) -> (has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) a) s)) = (has_complex_derivative f f' (@_at (tybit0 unit) a)). +Axiom thm_COMPLEX_DIFFERENTIABLE_AT_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (complex_differentiable f (@_at (tybit0 unit) z)) -> complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_HAS_COMPLEX_DERIVATIVE_TRANSFORM_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN (cart R (tybit0 unit)) x s) /\ ((forall x' : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) x' s) /\ (Rlt (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) x' x)) d)) -> (f x') = (g x')) /\ (has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s))))) -> has_complex_derivative g f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HAS_COMPLEX_DERIVATIVE_TRANSFORM_WITHIN_OPEN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w s) -> (f w) = (g w)) /\ (has_complex_derivative f f' (@_at (tybit0 unit) z))))) -> has_complex_derivative g f' (@_at (tybit0 unit) z). +Axiom thm_HAS_COMPLEX_DERIVATIVE_TRANSFORM_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x' : cart R (tybit0 unit), (Rlt (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) x' x)) d) -> (f x') = (g x')) /\ (has_complex_derivative f f' (@_at (tybit0 unit) x)))) -> has_complex_derivative g f' (@_at (tybit0 unit) x). +Axiom thm_HAS_COMPLEX_DERIVATIVE_ZERO_CONSTANT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@convex (tybit0 unit) s) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative f (Cx (R_of_N (NUMERAL 0%N))) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s))) -> exists c : cart R (tybit0 unit), forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (f x) = c. +Axiom thm_HAS_COMPLEX_DERIVATIVE_ZERO_UNIQUE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall c : cart R (tybit0 unit), forall a : cart R (tybit0 unit), ((@convex (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) a s) /\ (((f a) = c) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative f (Cx (R_of_N (NUMERAL 0%N))) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s))))) -> forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (f x) = c. +Axiom thm_HAS_COMPLEX_DERIVATIVE_ZERO_CONNECTED_CONSTANT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative f (Cx (R_of_N (NUMERAL 0%N))) (@_at (tybit0 unit) x)))) -> exists c : cart R (tybit0 unit), forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (f x) = c. +Axiom thm_HAS_COMPLEX_DERIVATIVE_ZERO_CONNECTED_UNIQUE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall c : cart R (tybit0 unit), forall a : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) a s) /\ (((f a) = c) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative f (Cx (R_of_N (NUMERAL 0%N))) (@_at (tybit0 unit) x)))))) -> forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (f x) = c. +Axiom thm_COMPLEX_DIFF_CHAIN_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall g' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (has_complex_derivative g g' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (f x)) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f s)))) -> has_complex_derivative (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) g f) (complex_mul g' f') (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_COMPLEX_DIFF_CHAIN_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall g' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), ((has_complex_derivative f f' (@_at (tybit0 unit) x)) /\ (has_complex_derivative g g' (@_at (tybit0 unit) (f x)))) -> has_complex_derivative (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) g f) (complex_mul g' f') (@_at (tybit0 unit) x). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CHAIN : forall (f' : cart R (tybit0 unit)) (g' : (cart R (tybit0 unit)) -> cart R (tybit0 unit)), forall P : (cart R (tybit0 unit)) -> Prop, forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (forall x : cart R (tybit0 unit), (P x) -> has_complex_derivative g (g' x) (@_at (tybit0 unit) x)) -> (forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (P (f x))) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => g (f x')) (complex_mul f' (g' (f x))) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (forall x : cart R (tybit0 unit), ((has_complex_derivative f f' (@_at (tybit0 unit) x)) /\ (P (f x))) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => g (f x')) (complex_mul f' (g' (f x))) (@_at (tybit0 unit) x)). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CHAIN_UNIV : forall (f' : cart R (tybit0 unit)) (g' : (cart R (tybit0 unit)) -> cart R (tybit0 unit)), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (forall x : cart R (tybit0 unit), has_complex_derivative g (g' x) (@_at (tybit0 unit) x)) -> (forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => g (f x')) (complex_mul f' (g' (f x))) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (forall x : cart R (tybit0 unit), (has_complex_derivative f f' (@_at (tybit0 unit) x)) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => g (f x')) (complex_mul f' (g' (f x))) (@_at (tybit0 unit) x)). +Axiom thm_COMPLEX_DERIVATIVE_UNIQUE_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall f'' : cart R (tybit0 unit), ((has_complex_derivative f f' (@_at (tybit0 unit) z)) /\ (has_complex_derivative f f'' (@_at (tybit0 unit) z))) -> f' = f''. +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_1 : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (higher_complex_derivative (NUMERAL (BIT1 0%N)) f z) = (complex_derivative f z). +Axiom thm_HAS_COMPLEX_DERIVATIVE_WITHIN : forall (f' : cart R (tybit0 unit)), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), (has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) a) s)) = (@FImp (tybit0 unit) (cart R (tybit0 unit)) (fun x : cart R (tybit0 unit) => complex_div (@vector_sub (tybit0 unit) (f x) (f a)) (@vector_sub (tybit0 unit) x a)) f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) a) s)). +Axiom thm_HAS_COMPLEX_DERIVATIVE_AT : forall (f' : cart R (tybit0 unit)), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), (has_complex_derivative f f' (@_at (tybit0 unit) a)) = (@FImp (tybit0 unit) (cart R (tybit0 unit)) (fun x : cart R (tybit0 unit) => complex_div (@vector_sub (tybit0 unit) (f x) (f a)) (@vector_sub (tybit0 unit) x a)) f' (@_at (tybit0 unit) a)). +Axiom thm_HAS_DERIVATIVE_COMPLEX_CMUL : forall net' : net (cart R (tybit0 unit)), forall c : cart R (tybit0 unit), @has_derivative (tybit0 unit) (tybit0 unit) (fun x : cart R (tybit0 unit) => complex_mul c x) (fun x : cart R (tybit0 unit) => complex_mul c x) net'. +Axiom thm_HAS_COMPLEX_DERIVATIVE_LINEAR : forall net' : net (cart R (tybit0 unit)), forall c : cart R (tybit0 unit), has_complex_derivative (fun x : cart R (tybit0 unit) => complex_mul c x) c net'. +Axiom thm_HAS_COMPLEX_DERIVATIVE_LMUL_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_mul c (f x')) (complex_mul c f') (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HAS_COMPLEX_DERIVATIVE_LMUL_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall x : cart R (tybit0 unit), (has_complex_derivative f f' (@_at (tybit0 unit) x)) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_mul c (f x')) (complex_mul c f') (@_at (tybit0 unit) x). +Axiom thm_HAS_COMPLEX_DERIVATIVE_RMUL_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_mul (f x') c) (complex_mul f' c) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HAS_COMPLEX_DERIVATIVE_RMUL_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall x : cart R (tybit0 unit), (has_complex_derivative f f' (@_at (tybit0 unit) x)) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_mul (f x') c) (complex_mul f' c) (@_at (tybit0 unit) x). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CDIV_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_div (f x') c) (complex_div f' c) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CDIV_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall x : cart R (tybit0 unit), (has_complex_derivative f f' (@_at (tybit0 unit) x)) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_div (f x') c) (complex_div f' c) (@_at (tybit0 unit) x). +Axiom thm_HAS_COMPLEX_DERIVATIVE_ID : forall net' : net (cart R (tybit0 unit)), has_complex_derivative (fun x : cart R (tybit0 unit) => x) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) net'. +Axiom thm_HAS_COMPLEX_DERIVATIVE_CONST : forall c : cart R (tybit0 unit), forall net' : net (cart R (tybit0 unit)), has_complex_derivative (fun x : cart R (tybit0 unit) => c) (Cx (R_of_N (NUMERAL 0%N))) net'. +Axiom thm_HAS_COMPLEX_DERIVATIVE_NEG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall net' : net (cart R (tybit0 unit)), (has_complex_derivative f f' net') -> has_complex_derivative (fun x : cart R (tybit0 unit) => @vector_neg (tybit0 unit) (f x)) (@vector_neg (tybit0 unit) f') net'. +Axiom thm_HAS_COMPLEX_DERIVATIVE_ADD : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g' : cart R (tybit0 unit), forall net' : net (cart R (tybit0 unit)), ((has_complex_derivative f f' net') /\ (has_complex_derivative g g' net')) -> has_complex_derivative (fun x : cart R (tybit0 unit) => @vector_add (tybit0 unit) (f x) (g x)) (@vector_add (tybit0 unit) f' g') net'. +Axiom thm_HAS_COMPLEX_DERIVATIVE_SUB : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g' : cart R (tybit0 unit), forall net' : net (cart R (tybit0 unit)), ((has_complex_derivative f f' net') /\ (has_complex_derivative g g' net')) -> has_complex_derivative (fun x : cart R (tybit0 unit) => @vector_sub (tybit0 unit) (f x) (g x)) (@vector_sub (tybit0 unit) f' g') net'. +Axiom thm_HAS_COMPLEX_DERIVATIVE_MUL_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (has_complex_derivative g g' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s))) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_mul (f x') (g x')) (@vector_add (tybit0 unit) (complex_mul (f x) g') (complex_mul f' (g x))) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HAS_COMPLEX_DERIVATIVE_MUL_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), ((has_complex_derivative f f' (@_at (tybit0 unit) x)) /\ (has_complex_derivative g g' (@_at (tybit0 unit) x))) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_mul (f x') (g x')) (@vector_add (tybit0 unit) (complex_mul (f x) g') (complex_mul f' (g x))) (@_at (tybit0 unit) x). +Axiom thm_HAS_COMPLEX_DERIVATIVE_POW_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall n : N, (has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_pow (f x') n) (complex_mul (Cx (R_of_N n)) (complex_mul (complex_pow (f x) (N.sub n (NUMERAL (BIT1 0%N)))) f')) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HAS_COMPLEX_DERIVATIVE_POW_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall n : N, (has_complex_derivative f f' (@_at (tybit0 unit) x)) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_pow (f x') n) (complex_mul (Cx (R_of_N n)) (complex_mul (complex_pow (f x) (N.sub n (NUMERAL (BIT1 0%N)))) f')) (@_at (tybit0 unit) x). +Axiom thm_HAS_COMPLEX_DERIVATIVE_INV_BASIC : forall x : cart R (tybit0 unit), (~ (x = (Cx (R_of_N (NUMERAL 0%N))))) -> has_complex_derivative complex_inv (@vector_neg (tybit0 unit) (complex_inv (complex_pow x (NUMERAL (BIT0 (BIT1 0%N)))))) (@_at (tybit0 unit) x). +Axiom thm_HAS_COMPLEX_DERIVATIVE_INV_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (~ ((f x) = (Cx (R_of_N (NUMERAL 0%N)))))) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_inv (f x')) (complex_div (@vector_neg (tybit0 unit) f') (complex_pow (f x) (NUMERAL (BIT0 (BIT1 0%N))))) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HAS_COMPLEX_DERIVATIVE_INV_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), ((has_complex_derivative f f' (@_at (tybit0 unit) x)) /\ (~ ((f x) = (Cx (R_of_N (NUMERAL 0%N)))))) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_inv (f x')) (complex_div (@vector_neg (tybit0 unit) f') (complex_pow (f x) (NUMERAL (BIT0 (BIT1 0%N))))) (@_at (tybit0 unit) x). +Axiom thm_HAS_COMPLEX_DERIVATIVE_DIV_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ ((has_complex_derivative g g' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (~ ((g x) = (Cx (R_of_N (NUMERAL 0%N))))))) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_div (f x') (g x')) (complex_div (@vector_sub (tybit0 unit) (complex_mul f' (g x)) (complex_mul (f x) g')) (complex_pow (g x) (NUMERAL (BIT0 (BIT1 0%N))))) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HAS_COMPLEX_DERIVATIVE_DIV_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), ((has_complex_derivative f f' (@_at (tybit0 unit) x)) /\ ((has_complex_derivative g g' (@_at (tybit0 unit) x)) /\ (~ ((g x) = (Cx (R_of_N (NUMERAL 0%N))))))) -> has_complex_derivative (fun x' : cart R (tybit0 unit) => complex_div (f x') (g x')) (complex_div (@vector_sub (tybit0 unit) (complex_mul f' (g x)) (complex_mul (f x) g')) (complex_pow (g x) (NUMERAL (BIT0 (BIT1 0%N))))) (@_at (tybit0 unit) x). +Axiom thm_HAS_COMPLEX_DERIVATIVE_VSUM : forall {_1618920 : Type'} (f' : _1618920 -> cart R (tybit0 unit)), forall f : _1618920 -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall net' : net (cart R (tybit0 unit)), forall s : _1618920 -> Prop, ((@FINITE _1618920 s) /\ (forall a : _1618920, (@IN _1618920 a s) -> has_complex_derivative (f a) (f' a) net')) -> has_complex_derivative (fun x : cart R (tybit0 unit) => @vsum _1618920 (tybit0 unit) s (fun a : _1618920 => f a x)) (@vsum _1618920 (tybit0 unit) s f') net'. +Axiom thm_COMPLEX_DIFFERENTIABLE_LINEAR : forall (c : cart R (tybit0 unit)) (p : net (cart R (tybit0 unit))), complex_differentiable (fun z : cart R (tybit0 unit) => complex_mul c z) p. +Axiom thm_COMPLEX_DIFFERENTIABLE_CONST : forall c : cart R (tybit0 unit), forall net' : net (cart R (tybit0 unit)), complex_differentiable (fun z : cart R (tybit0 unit) => c) net'. +Axiom thm_COMPLEX_DIFFERENTIABLE_ID : forall net' : net (cart R (tybit0 unit)), complex_differentiable (fun z : cart R (tybit0 unit) => z) net'. +Axiom thm_COMPLEX_DIFFERENTIABLE_NEG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall net' : net (cart R (tybit0 unit)), (complex_differentiable f net') -> complex_differentiable (fun z : cart R (tybit0 unit) => @vector_neg (tybit0 unit) (f z)) net'. +Axiom thm_COMPLEX_DIFFERENTIABLE_ADD : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall net' : net (cart R (tybit0 unit)), ((complex_differentiable f net') /\ (complex_differentiable g net')) -> complex_differentiable (fun z : cart R (tybit0 unit) => @vector_add (tybit0 unit) (f z) (g z)) net'. +Axiom thm_COMPLEX_DIFFERENTIABLE_SUB : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall net' : net (cart R (tybit0 unit)), ((complex_differentiable f net') /\ (complex_differentiable g net')) -> complex_differentiable (fun z : cart R (tybit0 unit) => @vector_sub (tybit0 unit) (f z) (g z)) net'. +Axiom thm_COMPLEX_DIFFERENTIABLE_INV_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s)) /\ (~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> complex_differentiable (fun z' : cart R (tybit0 unit) => complex_inv (f z')) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_COMPLEX_DIFFERENTIABLE_MUL_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s)) /\ (complex_differentiable g (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s))) -> complex_differentiable (fun z' : cart R (tybit0 unit) => complex_mul (f z') (g z')) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_COMPLEX_DIFFERENTIABLE_DIV_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s)) /\ ((complex_differentiable g (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s)) /\ (~ ((g z) = (Cx (R_of_N (NUMERAL 0%N))))))) -> complex_differentiable (fun z' : cart R (tybit0 unit) => complex_div (f z') (g z')) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_COMPLEX_DIFFERENTIABLE_POW_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : N, forall z : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s)) -> complex_differentiable (fun z' : cart R (tybit0 unit) => complex_pow (f z') n) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_COMPLEX_DIFFERENTIABLE_CPRODUCT_WITHIN : forall {A : Type'}, forall f : A -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall k : A -> Prop, forall z : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> complex_differentiable (f i) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s))) -> complex_differentiable (fun z' : cart R (tybit0 unit) => @cproduct A k (fun i : A => f i z')) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_COMPLEX_DIFFERENTIABLE_TRANSFORM_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN (cart R (tybit0 unit)) x s) /\ ((forall x' : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) x' s) /\ (Rlt (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) x' x)) d)) -> (f x') = (g x')) /\ (complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s))))) -> complex_differentiable g (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HOLOMORPHIC_TRANSFORM : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (f x) = (g x)) /\ (holomorphic_on f s)) -> holomorphic_on g s. +Axiom thm_HOLOMORPHIC_EQ : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (f x) = (g x)) -> (holomorphic_on f s) = (holomorphic_on g s). +Axiom thm_COMPLEX_DIFFERENTIABLE_INV_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((complex_differentiable f (@_at (tybit0 unit) z)) /\ (~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> complex_differentiable (fun z' : cart R (tybit0 unit) => complex_inv (f z')) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_MUL_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((complex_differentiable f (@_at (tybit0 unit) z)) /\ (complex_differentiable g (@_at (tybit0 unit) z))) -> complex_differentiable (fun z' : cart R (tybit0 unit) => complex_mul (f z') (g z')) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_DIV_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((complex_differentiable f (@_at (tybit0 unit) z)) /\ ((complex_differentiable g (@_at (tybit0 unit) z)) /\ (~ ((g z) = (Cx (R_of_N (NUMERAL 0%N))))))) -> complex_differentiable (fun z' : cart R (tybit0 unit) => complex_div (f z') (g z')) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_POW_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : N, forall z : cart R (tybit0 unit), (complex_differentiable f (@_at (tybit0 unit) z)) -> complex_differentiable (fun z' : cart R (tybit0 unit) => complex_pow (f z') n) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_CPRODUCT_AT : forall {A : Type'}, forall f : A -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall k : A -> Prop, forall z : cart R (tybit0 unit), ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> complex_differentiable (f i) (@_at (tybit0 unit) z))) -> complex_differentiable (fun z' : cart R (tybit0 unit) => @cproduct A k (fun i : A => f i z')) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_TRANSFORM_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x' : cart R (tybit0 unit), (Rlt (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) x' x)) d) -> (f x') = (g x')) /\ (complex_differentiable f (@_at (tybit0 unit) x)))) -> complex_differentiable g (@_at (tybit0 unit) x). +Axiom thm_COMPLEX_DIFFERENTIABLE_COMPOSE_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (complex_differentiable g (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (f x)) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f s)))) -> complex_differentiable (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) g f) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_COMPLEX_DIFFERENTIABLE_COMPOSE_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), ((complex_differentiable f (@_at (tybit0 unit) x)) /\ (complex_differentiable g (@_at (tybit0 unit) (f x)))) -> complex_differentiable (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) g f) (@_at (tybit0 unit) x). +Axiom thm_COMPLEX_DIFFERENTIABLE_WITHIN_OPEN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@IN (cart R (tybit0 unit)) a s) /\ (@_open (tybit0 unit) s)) -> (complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) a) s)) = (complex_differentiable f (@_at (tybit0 unit) a)). +Axiom thm_HOLOMORPHIC_ON_LINEAR : forall s : (cart R (tybit0 unit)) -> Prop, forall c : cart R (tybit0 unit), holomorphic_on (fun w : cart R (tybit0 unit) => complex_mul c w) s. +Axiom thm_HOLOMORPHIC_ON_CONST : forall c : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, holomorphic_on (fun z : cart R (tybit0 unit) => c) s. +Axiom thm_HOLOMORPHIC_ON_ID : forall s : (cart R (tybit0 unit)) -> Prop, holomorphic_on (fun z : cart R (tybit0 unit) => z) s. +Axiom thm_HOLOMORPHIC_ON_COMPOSE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f s) /\ (holomorphic_on g (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f s))) -> holomorphic_on (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) g f) s. +Axiom thm_HOLOMORPHIC_ON_NEG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (holomorphic_on f s) -> holomorphic_on (fun z : cart R (tybit0 unit) => @vector_neg (tybit0 unit) (f z)) s. +Axiom thm_HOLOMORPHIC_ON_ADD : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f s) /\ (holomorphic_on g s)) -> holomorphic_on (fun z : cart R (tybit0 unit) => @vector_add (tybit0 unit) (f z) (g z)) s. +Axiom thm_HOLOMORPHIC_ON_SUB : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f s) /\ (holomorphic_on g s)) -> holomorphic_on (fun z : cart R (tybit0 unit) => @vector_sub (tybit0 unit) (f z) (g z)) s. +Axiom thm_HOLOMORPHIC_ON_MUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f s) /\ (holomorphic_on g s)) -> holomorphic_on (fun z : cart R (tybit0 unit) => complex_mul (f z) (g z)) s. +Axiom thm_HOLOMORPHIC_ON_LMUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (holomorphic_on f s) -> holomorphic_on (fun x : cart R (tybit0 unit) => complex_mul c (f x)) s. +Axiom thm_HOLOMORPHIC_ON_RMUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (holomorphic_on f s) -> holomorphic_on (fun x : cart R (tybit0 unit) => complex_mul (f x) c) s. +Axiom thm_HOLOMORPHIC_ON_INV : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> holomorphic_on (fun z : cart R (tybit0 unit) => complex_inv (f z)) s. +Axiom thm_HOLOMORPHIC_ON_DIV : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f s) /\ ((holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((g z) = (Cx (R_of_N (NUMERAL 0%N))))))) -> holomorphic_on (fun z : cart R (tybit0 unit) => complex_div (f z) (g z)) s. +Axiom thm_HOLOMORPHIC_ON_POW : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall n : N, (holomorphic_on f s) -> holomorphic_on (fun z : cart R (tybit0 unit) => complex_pow (f z) n) s. +Axiom thm_HOLOMORPHIC_ON_VSUM : forall {_1620190 : Type'}, forall f : _1620190 -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : _1620190 -> Prop, ((@FINITE _1620190 k) /\ (forall a : _1620190, (@IN _1620190 a k) -> holomorphic_on (f a) s)) -> holomorphic_on (fun x : cart R (tybit0 unit) => @vsum _1620190 (tybit0 unit) k (fun a : _1620190 => f a x)) s. +Axiom thm_HOLOMORPHIC_ON_CPRODUCT : forall {A : Type'}, forall f : A -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall k : A -> Prop, forall s : (cart R (tybit0 unit)) -> Prop, ((@FINITE A k) /\ (forall i : A, (@IN A i k) -> holomorphic_on (f i) s)) -> holomorphic_on (fun z : cart R (tybit0 unit) => @cproduct A k (fun i : A => f i z)) s. +Axiom thm_HOLOMORPHIC_ON_COMPOSE_GEN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f s) /\ ((holomorphic_on g t) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> @IN (cart R (tybit0 unit)) (f z) t))) -> holomorphic_on (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) g f) s. +Axiom thm_HAS_COMPLEX_DERIVATIVE_DERIVATIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall x : cart R (tybit0 unit), (has_complex_derivative f f' (@_at (tybit0 unit) x)) -> (complex_derivative f x) = f'. +Axiom thm_HAS_COMPLEX_DERIVATIVE_DIFFERENTIABLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (has_complex_derivative f (complex_derivative f x) (@_at (tybit0 unit) x)) = (complex_differentiable f (@_at (tybit0 unit) x)). +Axiom thm_COMPLEX_DERIVATIVE_CHAIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((complex_differentiable f (@_at (tybit0 unit) z)) /\ (complex_differentiable g (@_at (tybit0 unit) (f z)))) -> (complex_derivative (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) g f) z) = (complex_mul (complex_derivative g (f z)) (complex_derivative f z)). +Axiom thm_COMPLEX_DERIVATIVE_LINEAR : forall c : cart R (tybit0 unit), (complex_derivative (fun w : cart R (tybit0 unit) => complex_mul c w)) = (fun z : cart R (tybit0 unit) => c). +Axiom thm_COMPLEX_DERIVATIVE_ID : (complex_derivative (fun w : cart R (tybit0 unit) => w)) = (fun z : cart R (tybit0 unit) => Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_COMPLEX_DERIVATIVE_CONST : forall c : cart R (tybit0 unit), (complex_derivative (fun w : cart R (tybit0 unit) => c)) = (fun z : cart R (tybit0 unit) => Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_COMPLEX_DERIVATIVE_ADD : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((complex_differentiable f (@_at (tybit0 unit) z)) /\ (complex_differentiable g (@_at (tybit0 unit) z))) -> (complex_derivative (fun w : cart R (tybit0 unit) => @vector_add (tybit0 unit) (f w) (g w)) z) = (@vector_add (tybit0 unit) (complex_derivative f z) (complex_derivative g z)). +Axiom thm_COMPLEX_DERIVATIVE_SUB : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((complex_differentiable f (@_at (tybit0 unit) z)) /\ (complex_differentiable g (@_at (tybit0 unit) z))) -> (complex_derivative (fun w : cart R (tybit0 unit) => @vector_sub (tybit0 unit) (f w) (g w)) z) = (@vector_sub (tybit0 unit) (complex_derivative f z) (complex_derivative g z)). +Axiom thm_COMPLEX_DERIVATIVE_MUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((complex_differentiable f (@_at (tybit0 unit) z)) /\ (complex_differentiable g (@_at (tybit0 unit) z))) -> (complex_derivative (fun w : cart R (tybit0 unit) => complex_mul (f w) (g w)) z) = (@vector_add (tybit0 unit) (complex_mul (f z) (complex_derivative g z)) (complex_mul (complex_derivative f z) (g z))). +Axiom thm_COMPLEX_DERIVATIVE_LMUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_differentiable f (@_at (tybit0 unit) z)) -> (complex_derivative (fun w : cart R (tybit0 unit) => complex_mul c (f w)) z) = (complex_mul c (complex_derivative f z)). +Axiom thm_COMPLEX_DERIVATIVE_RMUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_differentiable f (@_at (tybit0 unit) z)) -> (complex_derivative (fun w : cart R (tybit0 unit) => complex_mul (f w) c) z) = (complex_mul (complex_derivative f z) c). +Axiom thm_COMPLEX_DERIVATIVE_TRANSFORM_WITHIN_OPEN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((holomorphic_on g s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w s) -> (f w) = (g w)))))) -> (complex_derivative f z) = (complex_derivative g z). +Axiom thm_COMPLEX_DERIVATIVE_COMPOSE_LINEAR : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_differentiable f (@_at (tybit0 unit) (complex_mul c z))) -> (complex_derivative (fun w : cart R (tybit0 unit) => f (complex_mul c w)) z) = (complex_mul c (complex_derivative f (complex_mul c z))). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CARATHEODORY_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (has_complex_derivative f f' (@_at (tybit0 unit) z)) = (exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (forall w : cart R (tybit0 unit), (@vector_sub (tybit0 unit) (f w) (f z)) = (complex_mul (g w) (@vector_sub (tybit0 unit) w z))) /\ ((@continuous (tybit0 unit) (cart R (tybit0 unit)) g (@_at (tybit0 unit) z)) /\ ((g z) = f'))). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CARATHEODORY_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (has_complex_derivative f f' (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s)) = (exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (forall w : cart R (tybit0 unit), (@vector_sub (tybit0 unit) (f w) (f z)) = (complex_mul (g w) (@vector_sub (tybit0 unit) w z))) /\ ((@continuous (tybit0 unit) (cart R (tybit0 unit)) g (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s)) /\ ((g z) = f'))). +Axiom thm_COMPLEX_DIFFERENTIABLE_CARATHEODORY_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_differentiable f (@_at (tybit0 unit) z)) = (exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (forall w : cart R (tybit0 unit), (@vector_sub (tybit0 unit) (f w) (f z)) = (complex_mul (g w) (@vector_sub (tybit0 unit) w z))) /\ (@continuous (tybit0 unit) (cart R (tybit0 unit)) g (@_at (tybit0 unit) z))). +Axiom thm_COMPLEX_DIFFERENTIABLE_CARATHEODORY_WITHIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s)) = (exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (forall w : cart R (tybit0 unit), (@vector_sub (tybit0 unit) (f w) (f z)) = (complex_mul (g w) (@vector_sub (tybit0 unit) w z))) /\ (@continuous (tybit0 unit) (cart R (tybit0 unit)) g (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s))). +Axiom thm_analytic_on : forall s : (cart R (tybit0 unit)) -> Prop, forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (analytic_on f s) = (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R x e)))). +Axiom thm_ANALYTIC_IMP_HOLOMORPHIC : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (analytic_on f s) -> holomorphic_on f s. +Axiom thm_ANALYTIC_ON_OPEN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (analytic_on f s) = (holomorphic_on f s). +Axiom thm_ANALYTIC_ON_IMP_DIFFERENTIABLE_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall x : cart R (tybit0 unit), ((analytic_on f s) /\ (@IN (cart R (tybit0 unit)) x s)) -> complex_differentiable f (@_at (tybit0 unit) x). +Axiom thm_ANALYTIC_ON_SUBSET : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, ((analytic_on f s) /\ (@SUBSET (cart R (tybit0 unit)) t s)) -> analytic_on f t. +Axiom thm_ANALYTIC_ON_UNION : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, (analytic_on f (@UNION (cart R (tybit0 unit)) s t)) = ((analytic_on f s) /\ (analytic_on f t)). +Axiom thm_ANALYTIC_ON_UNIONS : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : ((cart R (tybit0 unit)) -> Prop) -> Prop, (analytic_on f (@UNIONS (cart R (tybit0 unit)) s)) = (forall t : (cart R (tybit0 unit)) -> Prop, (@IN ((cart R (tybit0 unit)) -> Prop) t s) -> analytic_on f t). +Axiom thm_ANALYTIC_ON_HOLOMORPHIC : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (analytic_on f s) = (exists t : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) t) /\ ((@SUBSET (cart R (tybit0 unit)) s t) /\ (holomorphic_on f t))). +Axiom thm_ANALYTIC_ON_LINEAR : forall s : (cart R (tybit0 unit)) -> Prop, forall c : cart R (tybit0 unit), analytic_on (fun w : cart R (tybit0 unit) => complex_mul c w) s. +Axiom thm_ANALYTIC_ON_CONST : forall c : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, analytic_on (fun z : cart R (tybit0 unit) => c) s. +Axiom thm_ANALYTIC_ON_ID : forall s : (cart R (tybit0 unit)) -> Prop, analytic_on (fun z : cart R (tybit0 unit) => z) s. +Axiom thm_ANALYTIC_ON_COMPOSE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((analytic_on f s) /\ (analytic_on g (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f s))) -> analytic_on (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) g f) s. +Axiom thm_ANALYTIC_ON_COMPOSE_GEN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, ((analytic_on f s) /\ ((analytic_on g t) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> @IN (cart R (tybit0 unit)) (f z) t))) -> analytic_on (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) g f) s. +Axiom thm_ANALYTIC_ON_NEG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (analytic_on f s) -> analytic_on (fun z : cart R (tybit0 unit) => @vector_neg (tybit0 unit) (f z)) s. +Axiom thm_ANALYTIC_ON_ADD : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((analytic_on f s) /\ (analytic_on g s)) -> analytic_on (fun z : cart R (tybit0 unit) => @vector_add (tybit0 unit) (f z) (g z)) s. +Axiom thm_ANALYTIC_ON_SUB : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((analytic_on f s) /\ (analytic_on g s)) -> analytic_on (fun z : cart R (tybit0 unit) => @vector_sub (tybit0 unit) (f z) (g z)) s. +Axiom thm_ANALYTIC_ON_MUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((analytic_on f s) /\ (analytic_on g s)) -> analytic_on (fun z : cart R (tybit0 unit) => complex_mul (f z) (g z)) s. +Axiom thm_ANALYTIC_ON_INV : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((analytic_on f s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> analytic_on (fun z : cart R (tybit0 unit) => complex_inv (f z)) s. +Axiom thm_ANALYTIC_ON_DIV : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((analytic_on f s) /\ ((analytic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((g z) = (Cx (R_of_N (NUMERAL 0%N))))))) -> analytic_on (fun z : cart R (tybit0 unit) => complex_div (f z) (g z)) s. +Axiom thm_ANALYTIC_ON_POW : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall n : N, (analytic_on f s) -> analytic_on (fun z : cart R (tybit0 unit) => complex_pow (f z) n) s. +Axiom thm_ANALYTIC_ON_VSUM : forall {_1621838 : Type'}, forall f : _1621838 -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : _1621838 -> Prop, ((@FINITE _1621838 k) /\ (forall a : _1621838, (@IN _1621838 a k) -> analytic_on (f a) s)) -> analytic_on (fun x : cart R (tybit0 unit) => @vsum _1621838 (tybit0 unit) k (fun a : _1621838 => f a x)) s. +Axiom thm_ANALYTIC_AT_BALL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) = (exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z e)))). +Axiom thm_ANALYTIC_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) = (exists s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ (holomorphic_on f s))). +Axiom thm_ANALYTIC_ON_ANALYTIC_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (analytic_on f s) = (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))). +Axiom thm_ANALYTIC_AT_TWO : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) /\ (analytic_on g (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))))) = (exists s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((holomorphic_on f s) /\ (holomorphic_on g s)))). +Axiom thm_ANALYTIC_AT_ADD : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) /\ (analytic_on g (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))))) -> analytic_on (fun w : cart R (tybit0 unit) => @vector_add (tybit0 unit) (f w) (g w)) (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))). +Axiom thm_ANALYTIC_AT_SUB : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) /\ (analytic_on g (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))))) -> analytic_on (fun w : cart R (tybit0 unit) => @vector_sub (tybit0 unit) (f w) (g w)) (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))). +Axiom thm_ANALYTIC_AT_MUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) /\ (analytic_on g (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))))) -> analytic_on (fun w : cart R (tybit0 unit) => complex_mul (f w) (g w)) (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))). +Axiom thm_ANALYTIC_AT_POW : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : N, forall z : cart R (tybit0 unit), (analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) -> analytic_on (fun w : cart R (tybit0 unit) => complex_pow (f w) n) (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))). +Axiom thm_COMPLEX_DERIVATIVE_ADD_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) /\ (analytic_on g (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))))) -> (complex_derivative (fun w : cart R (tybit0 unit) => @vector_add (tybit0 unit) (f w) (g w)) z) = (@vector_add (tybit0 unit) (complex_derivative f z) (complex_derivative g z)). +Axiom thm_COMPLEX_DERIVATIVE_SUB_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) /\ (analytic_on g (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))))) -> (complex_derivative (fun w : cart R (tybit0 unit) => @vector_sub (tybit0 unit) (f w) (g w)) z) = (@vector_sub (tybit0 unit) (complex_derivative f z) (complex_derivative g z)). +Axiom thm_COMPLEX_DERIVATIVE_MUL_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) /\ (analytic_on g (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))))) -> (complex_derivative (fun w : cart R (tybit0 unit) => complex_mul (f w) (g w)) z) = (@vector_add (tybit0 unit) (complex_mul (f z) (complex_derivative g z)) (complex_mul (complex_derivative f z) (g z))). +Axiom thm_COMPLEX_DERIVATIVE_LMUL_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) -> (complex_derivative (fun w : cart R (tybit0 unit) => complex_mul c (f w)) z) = (complex_mul c (complex_derivative f z)). +Axiom thm_COMPLEX_DERIVATIVE_RMUL_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) -> (complex_derivative (fun w : cart R (tybit0 unit) => complex_mul (f w) c) z) = (complex_mul (complex_derivative f z) c). +Axiom thm_HAS_VECTOR_DERIVATIVE_REAL_COMPLEX : forall (f : (cart R (tybit0 unit)) -> cart R (tybit0 unit)) (f' : cart R (tybit0 unit)) (a : cart R unit), (has_complex_derivative f f' (@_at (tybit0 unit) (Cx (drop a)))) -> @has_vector_derivative (tybit0 unit) (fun x : cart R unit => f (Cx (drop x))) f' (@_at unit a). +Axiom thm_DIFFERENTIABLE_REAL_COMPLEX : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R unit, (complex_differentiable f (@_at (tybit0 unit) (Cx (drop a)))) -> @differentiable (tybit0 unit) unit (fun x : cart R unit => f (Cx (drop x))) (@_at unit a). +Axiom thm_HAS_COMPLEX_DERIVATIVE_SEQUENCE : forall s : (cart R (tybit0 unit)) -> Prop, forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((@convex (tybit0 unit) s) /\ ((forall n : N, forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative (f n) (f' n x) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall x : cart R (tybit0 unit), ((N.ge n N') /\ (@IN (cart R (tybit0 unit)) x s)) -> Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f' n x) (g' x))) e) /\ (exists x : cart R (tybit0 unit), exists l : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) /\ (@FImp (tybit0 unit) N (fun n : N => f n x) l sequentially))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (@FImp (tybit0 unit) N (fun n : N => f n x) (g x) sequentially) /\ (has_complex_derivative g (g' x) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)). +Axiom thm_HAS_COMPLEX_DERIVATIVE_SERIES : forall s : (cart R (tybit0 unit)) -> Prop, forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall k : N -> Prop, ((@convex (tybit0 unit) s) /\ ((forall n : N, forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative (f n) (f' n x) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall x : cart R (tybit0 unit), ((N.ge n N') /\ (@IN (cart R (tybit0 unit)) x s)) -> Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (@vsum N (tybit0 unit) (@INTER N k (dotdot (NUMERAL 0%N) n)) (fun i : N => f' i x)) (g' x))) e) /\ (exists x : cart R (tybit0 unit), exists l : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) /\ (@sums (tybit0 unit) (fun n : N => f n x) l k))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (@sums (tybit0 unit) (fun n : N => f n x) (g x) k) /\ (has_complex_derivative g (g' x) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)). +Axiom thm_COMPLEX_DIFFERENTIABLE_BOUND : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall B : R, ((@convex (tybit0 unit) s) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (has_complex_derivative f (f' x) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (Rle (@vector_norm (tybit0 unit) (f' x)) B))) -> forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) x s) /\ (@IN (cart R (tybit0 unit)) y s)) -> Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f x) (f y))) (Rmult B (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) x y))). +Axiom thm_HAS_COMPLEX_DERIVATIVE_INVERSE_BASIC : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall t : (cart R (tybit0 unit)) -> Prop, forall y : cart R (tybit0 unit), ((has_complex_derivative f f' (@_at (tybit0 unit) (g y))) /\ ((~ (f' = (Cx (R_of_N (NUMERAL 0%N))))) /\ ((@continuous (tybit0 unit) (cart R (tybit0 unit)) g (@_at (tybit0 unit) y)) /\ ((@_open (tybit0 unit) t) /\ ((@IN (cart R (tybit0 unit)) y t) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z t) -> (f (g z)) = z)))))) -> has_complex_derivative g (complex_inv f') (@_at (tybit0 unit) y). +Axiom thm_HAS_COMPLEX_DERIVATIVE_INVERSE_STRONG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall x : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) x s) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ ((forall x' : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x' s) -> (g (f x')) = x') /\ ((has_complex_derivative f f' (@_at (tybit0 unit) x)) /\ (~ (f' = (Cx (R_of_N (NUMERAL 0%N)))))))))) -> has_complex_derivative g (complex_inv f') (@_at (tybit0 unit) (f x)). +Axiom thm_HAS_COMPLEX_DERIVATIVE_INVERSE_STRONG_X : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall y : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) (g y) s) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (g (f x)) = x) /\ ((has_complex_derivative f f' (@_at (tybit0 unit) (g y))) /\ ((~ (f' = (Cx (R_of_N (NUMERAL 0%N))))) /\ ((f (g y)) = y))))))) -> has_complex_derivative g (complex_inv f') (@_at (tybit0 unit) y). +Axiom thm_CAUCHY_RIEMANN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_differentiable f (@_at (tybit0 unit) z)) = ((@differentiable (tybit0 unit) (tybit0 unit) f (@_at (tybit0 unit) z)) /\ (((@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) (@jacobian (tybit0 unit) (tybit0 unit) f (@_at (tybit0 unit) z)) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) = (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) (@jacobian (tybit0 unit) (tybit0 unit) f (@_at (tybit0 unit) z)) (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) (@jacobian (tybit0 unit) (tybit0 unit) f (@_at (tybit0 unit) z)) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT0 (BIT1 0%N)))) = (Ropp (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) (@jacobian (tybit0 unit) (tybit0 unit) f (@_at (tybit0 unit) z)) (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))))))). +Axiom thm_COMPLEX_DERIVATIVE_JACOBIAN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_differentiable f (@_at (tybit0 unit) z)) -> (complex_derivative f z) = (complex (@pair R R (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) (@jacobian (tybit0 unit) (tybit0 unit) f (@_at (tybit0 unit) z)) (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) (@dollar (cart R (tybit0 unit)) (tybit0 unit) (@jacobian (tybit0 unit) (tybit0 unit) f (@_at (tybit0 unit) z)) (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT1 0%N))))). +Axiom thm_JACOBIAN_COMPLEX_DERIVATIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (has_complex_derivative f f' (@_at (tybit0 unit) z)) -> (@det (tybit0 unit) (@jacobian (tybit0 unit) (tybit0 unit) f (@_at (tybit0 unit) z))) = (real_pow (@vector_norm (tybit0 unit) f') (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_COMPLEX_DIFFERENTIABLE_EQ_CONFORMAL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((complex_differentiable f (@_at (tybit0 unit) z)) /\ (~ ((complex_derivative f z) = (Cx (R_of_N (NUMERAL 0%N)))))) = ((@differentiable (tybit0 unit) (tybit0 unit) f (@_at (tybit0 unit) z)) /\ (exists a : R, (~ (a = (R_of_N (NUMERAL 0%N)))) /\ (@rotation_matrix (tybit0 unit) (@__ (tybit0 unit) (tybit0 unit) a (@jacobian (tybit0 unit) (tybit0 unit) f (@_at (tybit0 unit) z)))))). +Axiom thm_HOLOMORPHIC_CONSTANT_RE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((holomorphic_on f s) /\ (exists c : R, forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (Re (f z)) = c)))) -> exists a : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = a. +Axiom thm_HOLOMORPHIC_CONSTANT_IM : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((holomorphic_on f s) /\ (exists c : R, forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (Im (f z)) = c)))) -> exists a : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = a. +Axiom thm_COMPLEX_TAYLOR : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : N, forall s : (cart R (tybit0 unit)) -> Prop, forall B : R, ((@convex (tybit0 unit) s) /\ ((forall i : N, forall x : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) x s) /\ (N.le i n)) -> has_complex_derivative (f i) (f (N.add i (NUMERAL (BIT1 0%N))) x) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> Rle (@vector_norm (tybit0 unit) (f (N.add n (NUMERAL (BIT1 0%N))) x)) B))) -> forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w s) /\ (@IN (cart R (tybit0 unit)) z s)) -> Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f (NUMERAL 0%N) z) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (f i w) (complex_div (complex_pow (@vector_sub (tybit0 unit) z w) i) (Cx (R_of_N (FACT i)))))))) (Rmult B (Rdiv (real_pow (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) z w)) (N.add n (NUMERAL (BIT1 0%N)))) (R_of_N (FACT n)))). +Axiom thm_COMPLEX_MVT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall B : R, ((@convex (tybit0 unit) s) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> has_complex_derivative f (f' z) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s)) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> Rle (@vector_norm (tybit0 unit) (f' z)) B))) -> forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w s) /\ (@IN (cart R (tybit0 unit)) z s)) -> Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f z) (f w))) (Rmult B (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) z w))). +Axiom thm_COMPLEX_MVT_LINE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (forall u : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) u (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) w z) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) -> has_complex_derivative f (f' u) (@_at (tybit0 unit) u)) -> exists u : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) u (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) w z) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ ((Rminus (Re (f z)) (Re (f w))) = (Re (complex_mul (f' u) (@vector_sub (tybit0 unit) z w)))). +Axiom thm_COMPLEX_TAYLOR_MVT : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall n : N, (forall i : N, forall x : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) w z) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ (N.le i n)) -> has_complex_derivative (f i) (f (N.add i (NUMERAL (BIT1 0%N))) x) (@_at (tybit0 unit) x)) -> exists u : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) u (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) w z) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ ((Re (f (NUMERAL 0%N) z)) = (Re (@vector_add (tybit0 unit) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (f i w) (complex_div (complex_pow (@vector_sub (tybit0 unit) z w) i) (Cx (R_of_N (FACT i)))))) (complex_mul (complex_mul (f (N.add n (NUMERAL (BIT1 0%N))) u) (complex_div (complex_pow (@vector_sub (tybit0 unit) z u) n) (Cx (R_of_N (FACT n))))) (@vector_sub (tybit0 unit) z w))))). +Axiom thm_LIM_CNJ : forall {_1625332 : Type'}, forall net' : net _1625332, forall f : _1625332 -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), (@FImp (tybit0 unit) _1625332 (fun x : _1625332 => cnj (f x)) (cnj l) net') = (@FImp (tybit0 unit) _1625332 f l net'). +Axiom thm_SUMS_CNJ : forall net' : N -> Prop, forall f : N -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), (@sums (tybit0 unit) (fun x : N => cnj (f x)) (cnj l) net') = (@sums (tybit0 unit) f l net'). +Axiom thm_CONTINUOUS_WITHIN_CNJ : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) cnj (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_AT_CNJ : forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) cnj (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_ON_CNJ : forall s : (cart R (tybit0 unit)) -> Prop, @continuous_on (tybit0 unit) (tybit0 unit) cnj s. +Axiom thm_REAL_LIM : forall {A : Type'}, forall net' : net A, forall f : A -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), ((@FImp (tybit0 unit) A f l net') /\ ((~ (@trivial_limit A net')) /\ (@eventually A (fun a : A => real (f a)) net'))) -> real l. +Axiom thm_REAL_LIM_SEQUENTIALLY : forall f : N -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), ((@FImp (tybit0 unit) N f l sequentially) /\ (exists N' : N, forall n : N, (N.ge n N') -> real (f n))) -> real l. +Axiom thm_REAL_SERIES : forall f : N -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall s : N -> Prop, ((@sums (tybit0 unit) f l s) /\ (forall n : N, real (f n))) -> real l. +Axiom thm_LIM_NULL_COMPARISON_COMPLEX : forall {A : Type'}, forall net' : net A, forall f : A -> cart R (tybit0 unit), forall g : A -> cart R (tybit0 unit), ((@eventually A (fun x : A => Rle (@vector_norm (tybit0 unit) (f x)) (@vector_norm (tybit0 unit) (g x))) net') /\ (@FImp (tybit0 unit) A g (Cx (R_of_N (NUMERAL 0%N))) net')) -> @FImp (tybit0 unit) A f (Cx (R_of_N (NUMERAL 0%N))) net'. +Axiom thm_LIM_NULL_COMPARISON_COMPLEX_RE : forall {A : Type'}, forall net' : net A, forall f : A -> cart R (tybit0 unit), forall g : A -> cart R (tybit0 unit), ((@eventually A (fun x : A => Rle (@vector_norm (tybit0 unit) (f x)) (Re (g x))) net') /\ (@FImp (tybit0 unit) A g (Cx (R_of_N (NUMERAL 0%N))) net')) -> @FImp (tybit0 unit) A f (Cx (R_of_N (NUMERAL 0%N))) net'. +Axiom thm_SERIES_COMPARISON_COMPLEX : forall {N' : Type'}, forall f : N -> cart R N', forall g : N -> cart R (tybit0 unit), forall s : N -> Prop, ((@summable (tybit0 unit) s g) /\ ((forall n : N, (@IN N n s) -> (real (g n)) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re (g n)))) /\ (exists N'' : N, forall n : N, ((N.ge n N'') /\ (@IN N n s)) -> Rle (@vector_norm N' (f n)) (@vector_norm (tybit0 unit) (g n))))) -> @summable N' s f. +Axiom thm_SERIES_COMPARISON_UNIFORM_COMPLEX : forall {A N' : Type'}, forall f : A -> N -> cart R N', forall g : N -> cart R (tybit0 unit), forall P : A -> Prop, forall s : N -> Prop, ((@summable (tybit0 unit) s g) /\ ((forall n : N, (@IN N n s) -> (real (g n)) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re (g n)))) /\ (exists N'' : N, forall n : N, forall x : A, ((N.le N'' n) /\ ((@IN N n s) /\ (P x))) -> Rle (@vector_norm N' (f x n)) (@vector_norm (tybit0 unit) (g n))))) -> exists l : A -> cart R N', forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N'' : N, forall n : N, forall x : A, ((N.le N'' n) /\ (P x)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (@vsum N N' (@INTER N s (dotdot (NUMERAL 0%N) n)) (f x)) (l x))) e. +Axiom thm_SUMMABLE_SUBSET_COMPLEX : forall x : N -> cart R (tybit0 unit), forall s : N -> Prop, forall t : N -> Prop, ((forall n : N, (@IN N n s) -> (real (x n)) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re (x n)))) /\ ((@summable (tybit0 unit) s x) /\ (@SUBSET N t s))) -> @summable (tybit0 unit) t x. +Axiom thm_SERIES_ABSCONV_IMP_CONV : forall {N' : Type'}, forall x : N -> cart R N', forall k : N -> Prop, (@summable (tybit0 unit) k (fun n : N => Cx (@vector_norm N' (x n)))) -> @summable N' k x. +Axiom thm_SUMS_GP : forall n : N, forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> @sums (tybit0 unit) (fun k : N => complex_pow z k) (complex_div (complex_pow z n) (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) z)) (from n). +Axiom thm_SUMMABLE_GP : forall z : cart R (tybit0 unit), forall k : N -> Prop, (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> @summable (tybit0 unit) k (fun n : N => complex_pow z n). +Axiom thm_SERIES_DIRICHLET_COMPLEX_GEN : forall f : N -> cart R (tybit0 unit), forall g : N -> cart R (tybit0 unit), forall k : N, forall m : N, forall p : N, forall l : cart R (tybit0 unit), ((@bounded (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8315 : cart R (tybit0 unit) => exists n : N, @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8315 (@IN N n (@UNIV N)) (@vsum N (tybit0 unit) (dotdot m n) f)))) /\ ((@summable (tybit0 unit) (from p) (fun n : N => Cx (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (g (N.add n (NUMERAL (BIT1 0%N)))) (g n))))) /\ (@FImp (tybit0 unit) N (fun n : N => complex_mul (@vsum N (tybit0 unit) (dotdot (NUMERAL (BIT1 0%N)) n) f) (g (N.add n (NUMERAL (BIT1 0%N))))) l sequentially))) -> @summable (tybit0 unit) (from k) (fun n : N => complex_mul (f n) (g n)). +Axiom thm_SERIES_DIRICHLET_COMPLEX : forall f : N -> cart R (tybit0 unit), forall g : N -> cart R (tybit0 unit), forall N' : N, forall k : N, forall m : N, ((@bounded (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8316 : cart R (tybit0 unit) => exists n : N, @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8316 (@IN N n (@UNIV N)) (@vsum N (tybit0 unit) (dotdot m n) f)))) /\ ((forall n : N, real (g n)) /\ ((forall n : N, (N.le N' n) -> Rle (Re (g (N.add n (NUMERAL (BIT1 0%N))))) (Re (g n))) /\ (@FImp (tybit0 unit) N g (Cx (R_of_N (NUMERAL 0%N))) sequentially)))) -> @summable (tybit0 unit) (from k) (fun n : N => complex_mul (f n) (g n)). +Axiom thm_SERIES_DIRICHLET_COMPLEX_VERY_EXPLICIT : forall f : N -> cart R (tybit0 unit), forall g : N -> cart R (tybit0 unit), forall B : R, forall p : N, ((Rlt (R_of_N (NUMERAL 0%N)) B) /\ ((N.le (NUMERAL (BIT1 0%N)) p) /\ ((forall m : N, forall n : N, (N.le p m) -> Rle (@vector_norm (tybit0 unit) (@vsum N (tybit0 unit) (dotdot m n) f)) B) /\ ((forall n : N, (N.le p n) -> (real (g n)) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re (g n)))) /\ (forall n : N, (N.le p n) -> Rle (Re (g (N.add n (NUMERAL (BIT1 0%N))))) (Re (g n))))))) -> forall m : N, forall n : N, (N.le p m) -> Rle (@vector_norm (tybit0 unit) (@vsum N (tybit0 unit) (dotdot m n) (fun k : N => complex_mul (f k) (g k)))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult B (@vector_norm (tybit0 unit) (g m)))). +Axiom thm_SERIES_DIRICHLET_COMPLEX_EXPLICIT : forall f : N -> cart R (tybit0 unit), forall g : N -> cart R (tybit0 unit), forall p : N, forall q : N, ((N.le (NUMERAL (BIT1 0%N)) p) /\ ((@bounded (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8317 : cart R (tybit0 unit) => exists n : N, @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8317 (@IN N n (@UNIV N)) (@vsum N (tybit0 unit) (dotdot q n) f)))) /\ ((forall n : N, (N.le p n) -> (real (g n)) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re (g n)))) /\ (forall n : N, (N.le p n) -> Rle (Re (g (N.add n (NUMERAL (BIT1 0%N))))) (Re (g n)))))) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall m : N, forall n : N, (N.le p m) -> Rle (@vector_norm (tybit0 unit) (@vsum N (tybit0 unit) (dotdot m n) (fun k : N => complex_mul (f k) (g k)))) (Rmult B (@vector_norm (tybit0 unit) (g m)))). +Axiom thm_HAS_INTEGRAL_COMPLEX_LMUL : forall {_1627003 : Type'}, forall f : (cart R _1627003) -> cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall i : (cart R _1627003) -> Prop, forall c : cart R (tybit0 unit), (@has_integral _1627003 (tybit0 unit) f y i) -> @has_integral _1627003 (tybit0 unit) (fun x : cart R _1627003 => complex_mul c (f x)) (complex_mul c y) i. +Axiom thm_HAS_INTEGRAL_COMPLEX_RMUL : forall {_1627041 : Type'}, forall f : (cart R _1627041) -> cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall i : (cart R _1627041) -> Prop, forall c : cart R (tybit0 unit), (@has_integral _1627041 (tybit0 unit) f y i) -> @has_integral _1627041 (tybit0 unit) (fun x : cart R _1627041 => complex_mul (f x) c) (complex_mul y c) i. +Axiom thm_HAS_INTEGRAL_COMPLEX_0 : forall {_1627060 : Type'}, forall s : (cart R _1627060) -> Prop, @has_integral _1627060 (tybit0 unit) (fun x : cart R _1627060 => Cx (R_of_N (NUMERAL 0%N))) (Cx (R_of_N (NUMERAL 0%N))) s. +Axiom thm_INTEGRABLE_COMPLEX_LMUL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, forall c : cart R (tybit0 unit), (@integrable_on (tybit0 unit) N' f s) -> @integrable_on (tybit0 unit) N' (fun x : cart R N' => complex_mul c (f x)) s. +Axiom thm_INTEGRABLE_COMPLEX_RMUL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, forall c : cart R (tybit0 unit), (@integrable_on (tybit0 unit) N' f s) -> @integrable_on (tybit0 unit) N' (fun x : cart R N' => complex_mul (f x) c) s. +Axiom thm_INTEGRABLE_COMPLEX_0 : forall {_1627135 : Type'}, forall s : (cart R _1627135) -> Prop, @integrable_on (tybit0 unit) _1627135 (fun x : cart R _1627135 => Cx (R_of_N (NUMERAL 0%N))) s. +Axiom thm_INTEGRABLE_COMPLEX_LMUL_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, forall c : cart R (tybit0 unit), (@integrable_on (tybit0 unit) N' (fun x : cart R N' => complex_mul c (f x)) s) = ((c = (Cx (R_of_N (NUMERAL 0%N)))) \/ (@integrable_on (tybit0 unit) N' f s)). +Axiom thm_INTEGRABLE_COMPLEX_RMUL_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, forall c : cart R (tybit0 unit), (@integrable_on (tybit0 unit) N' (fun x : cart R N' => complex_mul (f x) c) s) = ((c = (Cx (R_of_N (NUMERAL 0%N)))) \/ (@integrable_on (tybit0 unit) N' f s)). +Axiom thm_INTEGRAL_COMPLEX_LMUL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, forall c : cart R (tybit0 unit), (@integrable_on (tybit0 unit) N' f s) -> (@integral (tybit0 unit) N' s (fun x : cart R N' => complex_mul c (f x))) = (complex_mul c (@integral (tybit0 unit) N' s f)). +Axiom thm_INTEGRAL_COMPLEX_RMUL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, forall c : cart R (tybit0 unit), (@integrable_on (tybit0 unit) N' f s) -> (@integral (tybit0 unit) N' s (fun x : cart R N' => complex_mul (f x) c)) = (complex_mul (@integral (tybit0 unit) N' s f) c). +Axiom thm_ABSOLUTELY_INTEGRABLE_COMPLEX_LMUL : forall {_1627325 : Type'}, forall f : (cart R _1627325) -> cart R (tybit0 unit), forall s : (cart R _1627325) -> Prop, forall c : cart R (tybit0 unit), (@absolutely_integrable_on (tybit0 unit) _1627325 f s) -> @absolutely_integrable_on (tybit0 unit) _1627325 (fun x : cart R _1627325 => complex_mul c (f x)) s. +Axiom thm_ABSOLUTELY_INTEGRABLE_COMPLEX_RMUL : forall {_1627354 : Type'}, forall f : (cart R _1627354) -> cart R (tybit0 unit), forall s : (cart R _1627354) -> Prop, forall c : cart R (tybit0 unit), (@absolutely_integrable_on (tybit0 unit) _1627354 f s) -> @absolutely_integrable_on (tybit0 unit) _1627354 (fun x : cart R _1627354 => complex_mul (f x) c) s. +Axiom thm_REAL_COMPLEX_INTEGRAL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, ((@integrable_on (tybit0 unit) N' f s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> real (f x))) -> real (@integral (tybit0 unit) N' s f). +Axiom thm_INTEGRABLE_BOUNDED_VARIATION_COMPLEX_LMUL : forall f : (cart R unit) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall a : cart R unit, forall b : cart R unit, ((@integrable_on (tybit0 unit) unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_bounded_variation_on (tybit0 unit) g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> @integrable_on (tybit0 unit) unit (fun x : cart R unit => complex_mul (g x) (f x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_INTEGRABLE_BOUNDED_VARIATION_COMPLEX_RMUL : forall f : (cart R unit) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall a : cart R unit, forall b : cart R unit, ((@integrable_on (tybit0 unit) unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@has_bounded_variation_on (tybit0 unit) g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> @integrable_on (tybit0 unit) unit (fun x : cart R unit => complex_mul (f x) (g x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_HAS_BOUNDED_VARIATION_ON_COMPLEX_MUL : forall f : (cart R unit) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R unit) -> Prop, ((@has_bounded_variation_on (tybit0 unit) f s) /\ ((@has_bounded_variation_on (tybit0 unit) g s) /\ (@is_interval unit s))) -> @has_bounded_variation_on (tybit0 unit) (fun x : cart R unit => complex_mul (f x) (g x)) s. +Axiom thm_HAS_BOUNDED_VARIATION_ON_COMPLEX_INV : forall f : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R unit) -> Prop, forall e : R, ((@has_bounded_variation_on (tybit0 unit) f s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x : cart R unit, (@IN (cart R unit) x s) -> Rle e (@vector_norm (tybit0 unit) (f x))))) -> @has_bounded_variation_on (tybit0 unit) (fun x : cart R unit => complex_inv (f x)) s. +Axiom thm_ABEL_LEMMA : forall {_1627820 : Type'} (k : N -> Prop), forall a : N -> cart R _1627820, forall M : R, forall r : R, forall r0 : R, ((Rle (R_of_N (NUMERAL 0%N)) r) /\ ((Rlt r r0) /\ (forall n : N, (@IN N n k) -> Rle (Rmult (@vector_norm _1627820 (a n)) (real_pow r0 n)) M))) -> @summable (tybit0 unit) k (fun n : N => Cx (Rmult (@vector_norm _1627820 (a n)) (real_pow r n))). +Axiom thm_POWER_SERIES_CONV_IMP_ABSCONV : forall a : N -> cart R (tybit0 unit), forall k : N -> Prop, forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@summable (tybit0 unit) k (fun n : N => complex_mul (a n) (complex_pow z n))) /\ (Rlt (@vector_norm (tybit0 unit) w) (@vector_norm (tybit0 unit) z))) -> @summable (tybit0 unit) k (fun n : N => Cx (@vector_norm (tybit0 unit) (complex_mul (a n) (complex_pow w n)))). +Axiom thm_POWER_SERIES_CONV_IMP_ABSCONV_WEAK : forall a : N -> cart R (tybit0 unit), forall k : N -> Prop, forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@summable (tybit0 unit) k (fun n : N => complex_mul (a n) (complex_pow z n))) /\ (Rlt (@vector_norm (tybit0 unit) w) (@vector_norm (tybit0 unit) z))) -> @summable (tybit0 unit) k (fun n : N => complex_mul (Cx (@vector_norm (tybit0 unit) (a n))) (complex_pow w n)). +Axiom thm_POWER_SERIES_RADIUS_OF_CONVERGENCE : forall a : N -> cart R (tybit0 unit), forall k : N -> Prop, forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@summable (tybit0 unit) k (fun n : N => complex_mul (a n) (complex_pow z n))) /\ (Rlt (@vector_norm (tybit0 unit) w) (@vector_norm (tybit0 unit) z))) -> @summable (tybit0 unit) k (fun n : N => complex_mul (a n) (complex_pow w n)). +Axiom thm_SUM_INTEGRAL_UBOUND_INCREASING : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall m : N, forall n : N, ((N.le m n) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx (R_of_N m)) (Cx (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))))) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) -> has_complex_derivative g (f x) (@_at (tybit0 unit) x)) /\ (forall x : R, forall y : R, ((Rle (R_of_N m) x) /\ ((Rle x y) /\ (Rle y (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))))) -> Rle (Re (f (Cx x))) (Re (f (Cx y)))))) -> Rle (@sum N (dotdot m n) (fun k : N => Re (f (Cx (R_of_N k))))) (Re (@vector_sub (tybit0 unit) (g (Cx (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))))) (g (Cx (R_of_N m))))). +Axiom thm_SUM_INTEGRAL_UBOUND_DECREASING : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall m : N, forall n : N, ((N.le m n) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N))))) (Cx (R_of_N n))) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) -> has_complex_derivative g (f x) (@_at (tybit0 unit) x)) /\ (forall x : R, forall y : R, ((Rle (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ ((Rle x y) /\ (Rle y (R_of_N n)))) -> Rle (Re (f (Cx y))) (Re (f (Cx x)))))) -> Rle (@sum N (dotdot m n) (fun k : N => Re (f (Cx (R_of_N k))))) (Re (@vector_sub (tybit0 unit) (g (Cx (R_of_N n))) (g (Cx (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))))))). +Axiom thm_SUM_INTEGRAL_LBOUND_INCREASING : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall m : N, forall n : N, ((N.le m n) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N))))) (Cx (R_of_N n))) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) -> has_complex_derivative g (f x) (@_at (tybit0 unit) x)) /\ (forall x : R, forall y : R, ((Rle (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ ((Rle x y) /\ (Rle y (R_of_N n)))) -> Rle (Re (f (Cx x))) (Re (f (Cx y)))))) -> Rle (Re (@vector_sub (tybit0 unit) (g (Cx (R_of_N n))) (g (Cx (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))))))) (@sum N (dotdot m n) (fun k : N => Re (f (Cx (R_of_N k))))). +Axiom thm_SUM_INTEGRAL_LBOUND_DECREASING : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall m : N, forall n : N, ((N.le m n) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx (R_of_N m)) (Cx (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))))) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) -> has_complex_derivative g (f x) (@_at (tybit0 unit) x)) /\ (forall x : R, forall y : R, ((Rle (R_of_N m) x) /\ ((Rle x y) /\ (Rle y (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))))) -> Rle (Re (f (Cx y))) (Re (f (Cx x)))))) -> Rle (Re (@vector_sub (tybit0 unit) (g (Cx (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))))) (g (Cx (R_of_N m))))) (@sum N (dotdot m n) (fun k : N => Re (f (Cx (R_of_N k))))). +Axiom thm_SUM_INTEGRAL_BOUNDS_INCREASING : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall m : N, forall n : N, ((N.le m n) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N))))) (Cx (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))))) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) -> has_complex_derivative g (f x) (@_at (tybit0 unit) x)) /\ (forall x : R, forall y : R, ((Rle (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ ((Rle x y) /\ (Rle y (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))))) -> Rle (Re (f (Cx x))) (Re (f (Cx y)))))) -> (Rle (Re (@vector_sub (tybit0 unit) (g (Cx (R_of_N n))) (g (Cx (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))))))) (@sum N (dotdot m n) (fun k : N => Re (f (Cx (R_of_N k)))))) /\ (Rle (@sum N (dotdot m n) (fun k : N => Re (f (Cx (R_of_N k))))) (Re (@vector_sub (tybit0 unit) (g (Cx (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))))) (g (Cx (R_of_N m)))))). +Axiom thm_SUM_INTEGRAL_BOUNDS_DECREASING : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall m : N, forall n : N, ((N.le m n) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N))))) (Cx (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))))) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) -> has_complex_derivative g (f x) (@_at (tybit0 unit) x)) /\ (forall x : R, forall y : R, ((Rle (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ ((Rle x y) /\ (Rle y (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))))) -> Rle (Re (f (Cx y))) (Re (f (Cx x)))))) -> (Rle (Re (@vector_sub (tybit0 unit) (g (Cx (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))))) (g (Cx (R_of_N m))))) (@sum N (dotdot m n) (fun k : N => Re (f (Cx (R_of_N k)))))) /\ (Rle (@sum N (dotdot m n) (fun k : N => Re (f (Cx (R_of_N k))))) (Re (@vector_sub (tybit0 unit) (g (Cx (R_of_N n))) (g (Cx (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N))))))))). +Axiom thm_LIM_INFINITY_SEQUENTIALLY_COMPLEX : forall {_1629285 : Type'}, forall f : (cart R (tybit0 unit)) -> cart R _1629285, forall l : cart R _1629285, (@FImp _1629285 (cart R (tybit0 unit)) f l (@at_infinity (tybit0 unit))) -> @FImp _1629285 N (fun n : N => f (Cx (R_of_N n))) l sequentially. +Axiom thm_LIM_AT_INFINITY_COMPLEX_0 : forall {N' : Type'}, forall f : (cart R (tybit0 unit)) -> cart R N', forall l : cart R N', (@FImp N' (cart R (tybit0 unit)) f l (@at_infinity (tybit0 unit))) = (@FImp N' (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R N') f complex_inv) l (@_at (tybit0 unit) (Cx (R_of_N (NUMERAL 0%N))))). +Axiom thm_LIM_ZERO_INFINITY_COMPLEX : forall {N' : Type'}, forall f : (cart R (tybit0 unit)) -> cart R N', forall l : cart R N', (@FImp N' (cart R (tybit0 unit)) (fun x : cart R (tybit0 unit) => f (complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) x)) l (@_at (tybit0 unit) (Cx (R_of_N (NUMERAL 0%N))))) -> @FImp N' (cart R (tybit0 unit)) f l (@at_infinity (tybit0 unit)). +Axiom thm_LIM_COMPLEX_REAL : forall f : N -> R, forall g : N -> cart R (tybit0 unit), forall l : R, forall m : cart R (tybit0 unit), ((@eventually N (fun n : N => (Re (g n)) = (f n)) sequentially) /\ (((Re m) = l) /\ (@FImp (tybit0 unit) N g m sequentially))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, (N.le N' n) -> Rlt (Rabs (Rminus (f n) l)) e. +Axiom thm_LIM_COMPLEX_REAL_0 : forall f : N -> R, forall g : N -> cart R (tybit0 unit), ((@eventually N (fun n : N => (Re (g n)) = (f n)) sequentially) /\ (@FImp (tybit0 unit) N g (Cx (R_of_N (NUMERAL 0%N))) sequentially)) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, (N.le N' n) -> Rlt (Rabs (f n)) e. +Axiom thm_POWER_SERIES_UNIFORM_CONVERGENCE_STOLZ_1 : forall M : R, forall a : N -> cart R (tybit0 unit), forall s : N -> Prop, forall e : R, ((@summable (tybit0 unit) s a) /\ ((Rlt (R_of_N (NUMERAL 0%N)) M) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> @eventually N (fun n : N => forall z : cart R (tybit0 unit), (Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) z)) (Rmult M (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (@vector_norm (tybit0 unit) z)))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (@vsum N (tybit0 unit) (@INTER N s (dotdot (NUMERAL 0%N) n)) (fun i : N => complex_mul (a i) (complex_pow z i))) (@infsum (tybit0 unit) s (fun i : N => complex_mul (a i) (complex_pow z i))))) e) sequentially. +Axiom thm_POWER_SERIES_UNIFORM_CONVERGENCE_STOLZ : forall M : R, forall a : N -> cart R (tybit0 unit), forall w : cart R (tybit0 unit), forall s : N -> Prop, forall e : R, ((@summable (tybit0 unit) s (fun i : N => complex_mul (a i) (complex_pow w i))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) M) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> @eventually N (fun n : N => forall z : cart R (tybit0 unit), (Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) w z)) (Rmult M (Rminus (@vector_norm (tybit0 unit) w) (@vector_norm (tybit0 unit) z)))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (@vsum N (tybit0 unit) (@INTER N s (dotdot (NUMERAL 0%N) n)) (fun i : N => complex_mul (a i) (complex_pow z i))) (@infsum (tybit0 unit) s (fun i : N => complex_mul (a i) (complex_pow z i))))) e) sequentially. +Axiom thm_ABEL_POWER_SERIES_CONTINUOUS : forall M : R, forall s : N -> Prop, forall a : N -> cart R (tybit0 unit), forall w : cart R (tybit0 unit), ((@summable (tybit0 unit) s (fun i : N => complex_mul (a i) (complex_pow w i))) /\ (Rlt (R_of_N (NUMERAL 0%N)) M)) -> @continuous_on (tybit0 unit) (tybit0 unit) (fun z : cart R (tybit0 unit) => @infsum (tybit0 unit) s (fun i : N => complex_mul (a i) (complex_pow z i))) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8319 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8319 (Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) w z)) (Rmult M (Rminus (@vector_norm (tybit0 unit) w) (@vector_norm (tybit0 unit) z)))) z)). +Axiom thm_ABEL_POWER_SERIES_CONTINUOUS_1 : forall M : R, forall s : N -> Prop, forall a : N -> cart R (tybit0 unit), ((@summable (tybit0 unit) s a) /\ (Rlt (R_of_N (NUMERAL 0%N)) M)) -> @continuous_on (tybit0 unit) (tybit0 unit) (fun z : cart R (tybit0 unit) => @infsum (tybit0 unit) s (fun i : N => complex_mul (a i) (complex_pow z i))) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8320 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8320 (Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) z)) (Rmult M (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (@vector_norm (tybit0 unit) z)))) z)). +Axiom thm_ABEL_LIMIT_THEOREM : forall M : R, forall s : N -> Prop, forall a : N -> cart R (tybit0 unit), forall w : cart R (tybit0 unit), ((@summable (tybit0 unit) s (fun i : N => complex_mul (a i) (complex_pow w i))) /\ (Rlt (R_of_N (NUMERAL 0%N)) M)) -> (forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (@vector_norm (tybit0 unit) w)) -> @summable (tybit0 unit) s (fun i : N => complex_mul (a i) (complex_pow z i))) /\ (@FImp (tybit0 unit) (cart R (tybit0 unit)) (fun z : cart R (tybit0 unit) => @infsum (tybit0 unit) s (fun i : N => complex_mul (a i) (complex_pow z i))) (@infsum (tybit0 unit) s (fun i : N => complex_mul (a i) (complex_pow w i))) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) w) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8321 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8321 (Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) w z)) (Rmult M (Rminus (@vector_norm (tybit0 unit) w) (@vector_norm (tybit0 unit) z)))) z)))). +Axiom thm_ABEL_LIMIT_THEOREM_1 : forall M : R, forall s : N -> Prop, forall a : N -> cart R (tybit0 unit), ((@summable (tybit0 unit) s a) /\ (Rlt (R_of_N (NUMERAL 0%N)) M)) -> (forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> @summable (tybit0 unit) s (fun i : N => complex_mul (a i) (complex_pow z i))) /\ (@FImp (tybit0 unit) (cart R (tybit0 unit)) (fun z : cart R (tybit0 unit) => @infsum (tybit0 unit) s (fun i : N => complex_mul (a i) (complex_pow z i))) (@infsum (tybit0 unit) s a) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8322 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8322 (Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) z)) (Rmult M (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (@vector_norm (tybit0 unit) z)))) z)))). +Axiom thm_POWER_SERIES_CONTINUOUS : forall a : N -> cart R (tybit0 unit), forall k : N -> Prop, forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> @sums (tybit0 unit) (fun n : N => complex_mul (a n) (complex_pow (@vector_sub (tybit0 unit) w z) n)) (f w) k) -> @continuous_on (tybit0 unit) (tybit0 unit) f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r)). +Axiom thm_POWER_SERIES_LIMIT_POINT_OF_ZEROS : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall c : N -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall k : N -> Prop, forall r : R, forall s : (cart R (tybit0 unit)) -> Prop, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((forall w : cart R (tybit0 unit), (Rlt (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) w z)) r) -> @sums (tybit0 unit) (fun i : N => complex_mul (c i) (complex_pow (@vector_sub (tybit0 unit) w z) i)) (f w) k) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w s) -> (f w) = (Cx (R_of_N (NUMERAL 0%N)))) /\ (@limit_point_of (tybit0 unit) z s)))) -> forall i : N, (@IN N i k) -> (c i) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_POWER_SERIES_UNIQUE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall c : N -> cart R (tybit0 unit), forall d : N -> cart R (tybit0 unit), forall k : N -> Prop, forall r : R, forall s : R, forall t : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((Rlt (R_of_N (NUMERAL 0%N)) s) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> @sums (tybit0 unit) (fun i : N => complex_mul (c i) (complex_pow (@vector_sub (tybit0 unit) w z) i)) (f w) k) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z s))) -> @sums (tybit0 unit) (fun i : N => complex_mul (d i) (complex_pow (@vector_sub (tybit0 unit) w z) i)) (g w) k) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w t) -> (f w) = (g w)) /\ (@limit_point_of (tybit0 unit) z t)))))) -> forall i : N, (@IN N i k) -> (c i) = (d i). +Axiom thm_MEASURABLE_COMPLEX_ENDOMORPHISM : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((@measurable_on (tybit0 unit) (tybit0 unit) f (@UNIV (cart R (tybit0 unit)))) /\ ((forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (f (@vector_add (tybit0 unit) x y)) = (@vector_add (tybit0 unit) (f x) (f y))) /\ (forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (f (complex_mul x y)) = (complex_mul (f x) (f y))))) = ((f = (fun x : cart R (tybit0 unit) => Cx (R_of_N (NUMERAL 0%N)))) \/ ((f = (@I (cart R (tybit0 unit)))) \/ (f = cnj))). +Axiom thm_REAL_COMPLEX_ENDOMORPHISM : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f real) real) /\ ((forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (f (@vector_add (tybit0 unit) x y)) = (@vector_add (tybit0 unit) (f x) (f y))) /\ (forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), (f (complex_mul x y)) = (complex_mul (f x) (f y))))) = ((f = (fun x : cart R (tybit0 unit) => Cx (R_of_N (NUMERAL 0%N)))) \/ ((f = (@I (cart R (tybit0 unit)))) \/ (f = cnj))). +Axiom thm_cexp : forall z : cart R (tybit0 unit), (cexp z) = (@infsum (tybit0 unit) (from (NUMERAL 0%N)) (fun n : N => complex_div (complex_pow z n) (Cx (R_of_N (FACT n))))). +Axiom thm_CEXP_0 : (cexp (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_CEXP_CONVERGES_UNIFORMLY_CAUCHY : forall R' : R, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (Rlt (R_of_N (NUMERAL 0%N)) R')) -> exists N' : N, forall m : N, forall n : N, forall z : cart R (tybit0 unit), ((N.ge m N') /\ (Rle (@vector_norm (tybit0 unit) z) R')) -> Rlt (@vector_norm (tybit0 unit) (@vsum N (tybit0 unit) (dotdot m n) (fun i : N => complex_div (complex_pow z i) (Cx (R_of_N (FACT i)))))) e. +Axiom thm_CEXP_CONVERGES : forall z : cart R (tybit0 unit), @sums (tybit0 unit) (fun n : N => complex_div (complex_pow z n) (Cx (R_of_N (FACT n)))) (cexp z) (from (NUMERAL 0%N)). +Axiom thm_CEXP_CONVERGES_UNIQUE : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@sums (tybit0 unit) (fun n : N => complex_div (complex_pow z n) (Cx (R_of_N (FACT n)))) w (from (NUMERAL 0%N))) = (w = (cexp z)). +Axiom thm_CEXP_CONVERGES_UNIFORMLY : forall R' : R, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) R') /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists N' : N, forall n : N, forall z : cart R (tybit0 unit), ((N.ge n N') /\ (Rlt (@vector_norm (tybit0 unit) z) R')) -> Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_div (complex_pow z i) (Cx (R_of_N (FACT i))))) (cexp z))) e. +Axiom thm_HAS_COMPLEX_DERIVATIVE_CEXP : forall z : cart R (tybit0 unit), has_complex_derivative cexp (cexp z) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_AT_CEXP : forall z : cart R (tybit0 unit), complex_differentiable cexp (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_WITHIN_CEXP : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), complex_differentiable cexp (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_AT_CEXP : forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) cexp (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_WITHIN_CEXP : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) cexp (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_ON_CEXP : forall s : (cart R (tybit0 unit)) -> Prop, @continuous_on (tybit0 unit) (tybit0 unit) cexp s. +Axiom thm_HOLOMORPHIC_ON_CEXP : forall s : (cart R (tybit0 unit)) -> Prop, holomorphic_on cexp s. +Axiom thm_CEXP_ADD_MUL : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul (cexp (@vector_add (tybit0 unit) w z)) (cexp (@vector_neg (tybit0 unit) z))) = (cexp w). +Axiom thm_CEXP_NEG_RMUL : forall z : cart R (tybit0 unit), (complex_mul (cexp z) (cexp (@vector_neg (tybit0 unit) z))) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_CEXP_NEG_LMUL : forall z : cart R (tybit0 unit), (complex_mul (cexp (@vector_neg (tybit0 unit) z)) (cexp z)) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_CEXP_NEG : forall z : cart R (tybit0 unit), (cexp (@vector_neg (tybit0 unit) z)) = (complex_inv (cexp z)). +Axiom thm_CEXP_ADD : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (cexp (@vector_add (tybit0 unit) w z)) = (complex_mul (cexp w) (cexp z)). +Axiom thm_CEXP_SUB : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (cexp (@vector_sub (tybit0 unit) w z)) = (complex_div (cexp w) (cexp z)). +Axiom thm_CEXP_NZ : forall z : cart R (tybit0 unit), ~ ((cexp z) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_CEXP_N : forall n : N, forall x : cart R (tybit0 unit), (cexp (complex_mul (Cx (R_of_N n)) x)) = (complex_pow (cexp x) n). +Axiom thm_CEXP_VSUM : forall {_1634245 : Type'}, forall f : _1634245 -> cart R (tybit0 unit), forall s : _1634245 -> Prop, (@FINITE _1634245 s) -> (cexp (@vsum _1634245 (tybit0 unit) s f)) = (@cproduct _1634245 s (fun x : _1634245 => cexp (f x))). +Axiom thm_LIM_CEXP_MINUS_1 : @FImp (tybit0 unit) (cart R (tybit0 unit)) (fun z : cart R (tybit0 unit) => complex_div (@vector_sub (tybit0 unit) (cexp z) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) z) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@_at (tybit0 unit) (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_CEXP_BOUND_BLEMMA : forall B : R, (forall z : cart R (tybit0 unit), (Rle (@vector_norm (tybit0 unit) z) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) -> Rle (@vector_norm (tybit0 unit) (cexp z)) B) -> forall z : cart R (tybit0 unit), (Rle (@vector_norm (tybit0 unit) z) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) -> Rle (@vector_norm (tybit0 unit) (cexp z)) (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rdiv B (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_CEXP_BOUND_HALF : forall z : cart R (tybit0 unit), (Rle (@vector_norm (tybit0 unit) z) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) -> Rle (@vector_norm (tybit0 unit) (cexp z)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_CEXP_BOUND_LEMMA : forall z : cart R (tybit0 unit), (Rle (@vector_norm (tybit0 unit) z) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) -> Rle (@vector_norm (tybit0 unit) (cexp z)) (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (@vector_norm (tybit0 unit) z))). +Axiom thm_ccos : forall z : cart R (tybit0 unit), (ccos z) = (complex_div (@vector_add (tybit0 unit) (cexp (complex_mul ii z)) (cexp (complex_mul (@vector_neg (tybit0 unit) ii) z))) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_csin : forall z : cart R (tybit0 unit), (csin z) = (complex_div (@vector_sub (tybit0 unit) (cexp (complex_mul ii z)) (cexp (complex_mul (@vector_neg (tybit0 unit) ii) z))) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) ii)). +Axiom thm_CSIN_0 : (csin (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_CCOS_0 : (ccos (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_CSIN_CIRCLE : forall z : cart R (tybit0 unit), (@vector_add (tybit0 unit) (complex_pow (csin z) (NUMERAL (BIT0 (BIT1 0%N)))) (complex_pow (ccos z) (NUMERAL (BIT0 (BIT1 0%N))))) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_CSIN_ADD : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (csin (@vector_add (tybit0 unit) w z)) = (@vector_add (tybit0 unit) (complex_mul (csin w) (ccos z)) (complex_mul (ccos w) (csin z))). +Axiom thm_CCOS_ADD : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (ccos (@vector_add (tybit0 unit) w z)) = (@vector_sub (tybit0 unit) (complex_mul (ccos w) (ccos z)) (complex_mul (csin w) (csin z))). +Axiom thm_CSIN_NEG : forall z : cart R (tybit0 unit), (csin (@vector_neg (tybit0 unit) z)) = (@vector_neg (tybit0 unit) (csin z)). +Axiom thm_CCOS_NEG : forall z : cart R (tybit0 unit), (ccos (@vector_neg (tybit0 unit) z)) = (ccos z). +Axiom thm_CSIN_DOUBLE : forall z : cart R (tybit0 unit), (csin (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) z)) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (csin z) (ccos z))). +Axiom thm_CCOS_DOUBLE : forall z : cart R (tybit0 unit), (ccos (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) z)) = (@vector_sub (tybit0 unit) (complex_pow (ccos z) (NUMERAL (BIT0 (BIT1 0%N)))) (complex_pow (csin z) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_CSIN_SUB : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (csin (@vector_sub (tybit0 unit) w z)) = (@vector_sub (tybit0 unit) (complex_mul (csin w) (ccos z)) (complex_mul (ccos w) (csin z))). +Axiom thm_CCOS_SUB : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (ccos (@vector_sub (tybit0 unit) w z)) = (@vector_add (tybit0 unit) (complex_mul (ccos w) (ccos z)) (complex_mul (csin w) (csin z))). +Axiom thm_COMPLEX_MUL_CSIN_CSIN : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul (csin w) (csin z)) = (complex_div (@vector_sub (tybit0 unit) (ccos (@vector_sub (tybit0 unit) w z)) (ccos (@vector_add (tybit0 unit) w z))) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_COMPLEX_MUL_CSIN_CCOS : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul (csin w) (ccos z)) = (complex_div (@vector_add (tybit0 unit) (csin (@vector_add (tybit0 unit) w z)) (csin (@vector_sub (tybit0 unit) w z))) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_COMPLEX_MUL_CCOS_CSIN : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul (ccos w) (csin z)) = (complex_div (@vector_sub (tybit0 unit) (csin (@vector_add (tybit0 unit) w z)) (csin (@vector_sub (tybit0 unit) w z))) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_COMPLEX_MUL_CCOS_CCOS : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (complex_mul (ccos w) (ccos z)) = (complex_div (@vector_add (tybit0 unit) (ccos (@vector_sub (tybit0 unit) w z)) (ccos (@vector_add (tybit0 unit) w z))) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_COMPLEX_ADD_CSIN : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@vector_add (tybit0 unit) (csin w) (csin z)) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (csin (complex_div (@vector_add (tybit0 unit) w z) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) (ccos (complex_div (@vector_sub (tybit0 unit) w z) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_COMPLEX_SUB_CSIN : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@vector_sub (tybit0 unit) (csin w) (csin z)) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (csin (complex_div (@vector_sub (tybit0 unit) w z) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) (ccos (complex_div (@vector_add (tybit0 unit) w z) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_COMPLEX_ADD_CCOS : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@vector_add (tybit0 unit) (ccos w) (ccos z)) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (ccos (complex_div (@vector_add (tybit0 unit) w z) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) (ccos (complex_div (@vector_sub (tybit0 unit) w z) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_COMPLEX_SUB_CCOS : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@vector_sub (tybit0 unit) (ccos w) (ccos z)) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (csin (complex_div (@vector_add (tybit0 unit) w z) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) (csin (complex_div (@vector_sub (tybit0 unit) z w) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_CCOS_DOUBLE_CCOS : forall z : cart R (tybit0 unit), (ccos (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) z)) = (@vector_sub (tybit0 unit) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_pow (ccos z) (NUMERAL (BIT0 (BIT1 0%N))))) (Cx (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_CCOS_DOUBLE_CSIN : forall z : cart R (tybit0 unit), (ccos (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) z)) = (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_pow (csin z) (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_CEXP_EULER : forall z : cart R (tybit0 unit), (cexp (complex_mul ii z)) = (@vector_add (tybit0 unit) (ccos z) (complex_mul ii (csin z))). +Axiom thm_DEMOIVRE : forall z : cart R (tybit0 unit), forall n : N, (complex_pow (@vector_add (tybit0 unit) (ccos z) (complex_mul ii (csin z))) n) = (@vector_add (tybit0 unit) (ccos (complex_mul (Cx (R_of_N n)) z)) (complex_mul ii (csin (complex_mul (Cx (R_of_N n)) z)))). +Axiom thm_exp : forall x : R, (exp x) = (Re (cexp (Cx x))). +Axiom thm_CNJ_CEXP : forall z : cart R (tybit0 unit), (cnj (cexp z)) = (cexp (cnj z)). +Axiom thm_REAL_EXP : forall z : cart R (tybit0 unit), (real z) -> real (cexp z). +Axiom thm_CX_EXP : forall x : R, (Cx (exp x)) = (cexp (Cx x)). +Axiom thm_REAL_EXP_ADD : forall x : R, forall y : R, (exp (Rplus x y)) = (Rmult (exp x) (exp y)). +Axiom thm_REAL_EXP_0 : (exp (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_EXP_ADD_MUL : forall x : R, forall y : R, (Rmult (exp (Rplus x y)) (exp (Ropp x))) = (exp y). +Axiom thm_REAL_EXP_NEG_MUL : forall x : R, (Rmult (exp x) (exp (Ropp x))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_EXP_NEG_MUL2 : forall x : R, (Rmult (exp (Ropp x)) (exp x)) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_EXP_NEG : forall x : R, (exp (Ropp x)) = (Rinv (exp x)). +Axiom thm_REAL_EXP_N : forall n : N, forall x : R, (exp (Rmult (R_of_N n) x)) = (real_pow (exp x) n). +Axiom thm_REAL_EXP_SUB : forall x : R, forall y : R, (exp (Rminus x y)) = (Rdiv (exp x) (exp y)). +Axiom thm_REAL_EXP_NZ : forall x : R, ~ ((exp x) = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_EXP_POS_LE : forall x : R, Rle (R_of_N (NUMERAL 0%N)) (exp x). +Axiom thm_REAL_EXP_POS_LT : forall x : R, Rlt (R_of_N (NUMERAL 0%N)) (exp x). +Axiom thm_REAL_EXP_LE_X : forall x : R, Rle (Rplus (R_of_N (NUMERAL (BIT1 0%N))) x) (exp x). +Axiom thm_REAL_EXP_LT_1 : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> Rlt (R_of_N (NUMERAL (BIT1 0%N))) (exp x). +Axiom thm_REAL_EXP_MONO_IMP : forall x : R, forall y : R, (Rlt x y) -> Rlt (exp x) (exp y). +Axiom thm_REAL_EXP_MONO_LT : forall x : R, forall y : R, (Rlt (exp x) (exp y)) = (Rlt x y). +Axiom thm_REAL_EXP_MONO_LE : forall x : R, forall y : R, (Rle (exp x) (exp y)) = (Rle x y). +Axiom thm_REAL_EXP_INJ : forall x : R, forall y : R, ((exp x) = (exp y)) = (x = y). +Axiom thm_REAL_EXP_EQ_1 : forall x : R, ((exp x) = (R_of_N (NUMERAL (BIT1 0%N)))) = (x = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_ABS_EXP : forall x : R, (Rabs (exp x)) = (exp x). +Axiom thm_REAL_EXP_SUM : forall {_1636143 : Type'}, forall f : _1636143 -> R, forall s : _1636143 -> Prop, (@FINITE _1636143 s) -> (exp (@sum _1636143 s f)) = (@product _1636143 s (fun x : _1636143 => exp (f x))). +Axiom thm_REAL_EXP_BOUND_LEMMA : forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle x (Rinv (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> Rle (exp x) (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x)). +Axiom thm_sin : forall x : R, (sin x) = (Re (csin (Cx x))). +Axiom thm_cos : forall x : R, (cos x) = (Re (ccos (Cx x))). +Axiom thm_CNJ_CSIN : forall z : cart R (tybit0 unit), (cnj (csin z)) = (csin (cnj z)). +Axiom thm_CNJ_CCOS : forall z : cart R (tybit0 unit), (cnj (ccos z)) = (ccos (cnj z)). +Axiom thm_REAL_SIN : forall z : cart R (tybit0 unit), (real z) -> real (csin z). +Axiom thm_REAL_COS : forall z : cart R (tybit0 unit), (real z) -> real (ccos z). +Axiom thm_CX_SIN : forall x : R, (Cx (sin x)) = (csin (Cx x)). +Axiom thm_CX_COS : forall x : R, (Cx (cos x)) = (ccos (Cx x)). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CSIN : forall z : cart R (tybit0 unit), has_complex_derivative csin (ccos z) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_AT_CSIN : forall z : cart R (tybit0 unit), complex_differentiable csin (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_WITHIN_CSIN : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), complex_differentiable csin (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CCOS : forall z : cart R (tybit0 unit), has_complex_derivative ccos (@vector_neg (tybit0 unit) (csin z)) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_AT_CCOS : forall z : cart R (tybit0 unit), complex_differentiable ccos (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_WITHIN_CCOS : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), complex_differentiable ccos (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_AT_CSIN : forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) csin (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_WITHIN_CSIN : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) csin (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_ON_CSIN : forall s : (cart R (tybit0 unit)) -> Prop, @continuous_on (tybit0 unit) (tybit0 unit) csin s. +Axiom thm_HOLOMORPHIC_ON_CSIN : forall s : (cart R (tybit0 unit)) -> Prop, holomorphic_on csin s. +Axiom thm_CONTINUOUS_AT_CCOS : forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) ccos (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_WITHIN_CCOS : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) ccos (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_ON_CCOS : forall s : (cart R (tybit0 unit)) -> Prop, @continuous_on (tybit0 unit) (tybit0 unit) ccos s. +Axiom thm_HOLOMORPHIC_ON_CCOS : forall s : (cart R (tybit0 unit)) -> Prop, holomorphic_on ccos s. +Axiom thm_SIN_0 : (sin (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_COS_0 : (cos (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_SIN_CIRCLE : forall x : R, (Rplus (real_pow (sin x) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (cos x) (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_SIN_ADD : forall x : R, forall y : R, (sin (Rplus x y)) = (Rplus (Rmult (sin x) (cos y)) (Rmult (cos x) (sin y))). +Axiom thm_COS_ADD : forall x : R, forall y : R, (cos (Rplus x y)) = (Rminus (Rmult (cos x) (cos y)) (Rmult (sin x) (sin y))). +Axiom thm_SIN_NEG : forall x : R, (sin (Ropp x)) = (Ropp (sin x)). +Axiom thm_COS_NEG : forall x : R, (cos (Ropp x)) = (cos x). +Axiom thm_SIN_DOUBLE : forall x : R, (sin (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x)) = (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (sin x) (cos x))). +Axiom thm_COS_DOUBLE : forall x : R, (cos (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x)) = (Rminus (real_pow (cos x) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (sin x) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_COS_DOUBLE_COS : forall x : R, (cos (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x)) = (Rminus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (cos x) (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_SIN_BOUNDS : forall x : R, (Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (sin x)) /\ (Rle (sin x) (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_COS_BOUNDS : forall x : R, (Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (cos x)) /\ (Rle (cos x) (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_COS_ABS : forall x : R, (cos (Rabs x)) = (cos x). +Axiom thm_SIN_SUB : forall w : R, forall z : R, (sin (Rminus w z)) = (Rminus (Rmult (sin w) (cos z)) (Rmult (cos w) (sin z))). +Axiom thm_COS_SUB : forall w : R, forall z : R, (cos (Rminus w z)) = (Rplus (Rmult (cos w) (cos z)) (Rmult (sin w) (sin z))). +Axiom thm_REAL_MUL_SIN_SIN : forall x : R, forall y : R, (Rmult (sin x) (sin y)) = (Rdiv (Rminus (cos (Rminus x y)) (cos (Rplus x y))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_REAL_MUL_SIN_COS : forall x : R, forall y : R, (Rmult (sin x) (cos y)) = (Rdiv (Rplus (sin (Rplus x y)) (sin (Rminus x y))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_REAL_MUL_COS_SIN : forall x : R, forall y : R, (Rmult (cos x) (sin y)) = (Rdiv (Rminus (sin (Rplus x y)) (sin (Rminus x y))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_REAL_MUL_COS_COS : forall x : R, forall y : R, (Rmult (cos x) (cos y)) = (Rdiv (Rplus (cos (Rminus x y)) (cos (Rplus x y))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_REAL_ADD_SIN : forall x : R, forall y : R, (Rplus (sin x) (sin y)) = (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (sin (Rdiv (Rplus x y) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (cos (Rdiv (Rminus x y) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_REAL_SUB_SIN : forall x : R, forall y : R, (Rminus (sin x) (sin y)) = (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (sin (Rdiv (Rminus x y) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (cos (Rdiv (Rplus x y) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_REAL_ADD_COS : forall x : R, forall y : R, (Rplus (cos x) (cos y)) = (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (cos (Rdiv (Rplus x y) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (cos (Rdiv (Rminus x y) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_REAL_SUB_COS : forall x : R, forall y : R, (Rminus (cos x) (cos y)) = (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (sin (Rdiv (Rplus x y) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (sin (Rdiv (Rminus y x) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_COS_DOUBLE_SIN : forall x : R, (cos (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x)) = (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (sin x) (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_EULER : forall z : cart R (tybit0 unit), (cexp z) = (complex_mul (Cx (exp (Re z))) (@vector_add (tybit0 unit) (Cx (cos (Im z))) (complex_mul ii (Cx (sin (Im z)))))). +Axiom thm_RE_CEXP : forall z : cart R (tybit0 unit), (Re (cexp z)) = (Rmult (exp (Re z)) (cos (Im z))). +Axiom thm_IM_CEXP : forall z : cart R (tybit0 unit), (Im (cexp z)) = (Rmult (exp (Re z)) (sin (Im z))). +Axiom thm_RE_CSIN : forall z : cart R (tybit0 unit), (Re (csin z)) = (Rmult (Rdiv (Rplus (exp (Im z)) (exp (Ropp (Im z)))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (sin (Re z))). +Axiom thm_IM_CSIN : forall z : cart R (tybit0 unit), (Im (csin z)) = (Rmult (Rdiv (Rminus (exp (Im z)) (exp (Ropp (Im z)))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (cos (Re z))). +Axiom thm_RE_CCOS : forall z : cart R (tybit0 unit), (Re (ccos z)) = (Rmult (Rdiv (Rplus (exp (Im z)) (exp (Ropp (Im z)))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (cos (Re z))). +Axiom thm_IM_CCOS : forall z : cart R (tybit0 unit), (Im (ccos z)) = (Rmult (Rdiv (Rminus (exp (Ropp (Im z))) (exp (Im z))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (sin (Re z))). +Axiom thm_IVT_INCREASING_RE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : R, forall b : R, forall y : R, ((Rle a b) /\ ((forall x : R, ((Rle a x) /\ (Rle x b)) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) f (@_at (tybit0 unit) (Cx x))) /\ ((Rle (Re (f (Cx a))) y) /\ (Rle y (Re (f (Cx b))))))) -> exists x : R, (Rle a x) /\ ((Rle x b) /\ ((Re (f (Cx x))) = y)). +Axiom thm_IVT_DECREASING_RE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : R, forall b : R, forall y : R, ((Rle a b) /\ ((forall x : R, ((Rle a x) /\ (Rle x b)) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) f (@_at (tybit0 unit) (Cx x))) /\ ((Rle (Re (f (Cx b))) y) /\ (Rle y (Re (f (Cx a))))))) -> exists x : R, (Rle a x) /\ ((Rle x b) /\ ((Re (f (Cx x))) = y)). +Axiom thm_IVT_INCREASING_IM : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : R, forall b : R, forall y : R, ((Rle a b) /\ ((forall x : R, ((Rle a x) /\ (Rle x b)) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) f (@_at (tybit0 unit) (Cx x))) /\ ((Rle (Im (f (Cx a))) y) /\ (Rle y (Im (f (Cx b))))))) -> exists x : R, (Rle a x) /\ ((Rle x b) /\ ((Im (f (Cx x))) = y)). +Axiom thm_IVT_DECREASING_IM : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : R, forall b : R, forall y : R, ((Rle a b) /\ ((forall x : R, ((Rle a x) /\ (Rle x b)) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) f (@_at (tybit0 unit) (Cx x))) /\ ((Rle (Im (f (Cx b))) y) /\ (Rle y (Im (f (Cx a))))))) -> exists x : R, (Rle a x) /\ ((Rle x b) /\ ((Im (f (Cx x))) = y)). +Axiom thm_log_def : forall y : R, (log y) = (@ε R (fun x : R => (exp x) = y)). +Axiom thm_EXP_LOG : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> (exp (log x)) = x. +Axiom thm_LOG_EXP : forall x : R, (log (exp x)) = x. +Axiom thm_REAL_EXP_LOG : forall x : R, ((exp (log x)) = x) = (Rlt (R_of_N (NUMERAL 0%N)) x). +Axiom thm_LOG_MUL : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) -> (log (Rmult x y)) = (Rplus (log x) (log y)). +Axiom thm_LOG_INJ : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) -> ((log x) = (log y)) = (x = y). +Axiom thm_LOG_1 : (log (R_of_N (NUMERAL (BIT1 0%N)))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_LOG_INV : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> (log (Rinv x)) = (Ropp (log x)). +Axiom thm_LOG_DIV : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) -> (log (Rdiv x y)) = (Rminus (log x) (log y)). +Axiom thm_LOG_MONO_LT : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) -> (Rlt (log x) (log y)) = (Rlt x y). +Axiom thm_LOG_MONO_LT_IMP : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x y)) -> Rlt (log x) (log y). +Axiom thm_LOG_MONO_LT_REV : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ ((Rlt (R_of_N (NUMERAL 0%N)) y) /\ (Rlt (log x) (log y)))) -> Rlt x y. +Axiom thm_LOG_MONO_LE : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) -> (Rle (log x) (log y)) = (Rle x y). +Axiom thm_LOG_MONO_LE_IMP : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rle x y)) -> Rle (log x) (log y). +Axiom thm_LOG_MONO_LE_REV : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ ((Rlt (R_of_N (NUMERAL 0%N)) y) /\ (Rle (log x) (log y)))) -> Rle x y. +Axiom thm_LOG_POW : forall n : N, forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> (log (real_pow x n)) = (Rmult (R_of_N n) (log x)). +Axiom thm_LOG_LE_STRONG : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) (Rplus (R_of_N (NUMERAL (BIT1 0%N))) x)) -> Rle (log (Rplus (R_of_N (NUMERAL (BIT1 0%N))) x)) x. +Axiom thm_LOG_LE : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> Rle (log (Rplus (R_of_N (NUMERAL (BIT1 0%N))) x)) x. +Axiom thm_LOG_LT_X : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> Rlt (log x) x. +Axiom thm_LOG_POS : forall x : R, (Rle (R_of_N (NUMERAL (BIT1 0%N))) x) -> Rle (R_of_N (NUMERAL 0%N)) (log x). +Axiom thm_LOG_POS_LT : forall x : R, (Rlt (R_of_N (NUMERAL (BIT1 0%N))) x) -> Rlt (R_of_N (NUMERAL 0%N)) (log x). +Axiom thm_LOG_PRODUCT : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rlt (R_of_N (NUMERAL 0%N)) (f x))) -> (log (@product A s f)) = (@sum A s (fun x : A => log (f x))). +Axiom thm_SIN_NEARZERO : exists x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) /\ (forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) y) /\ (Rle y x)) -> Rlt (R_of_N (NUMERAL 0%N)) (sin y)). +Axiom thm_SIN_NONTRIVIAL : exists x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) /\ (~ ((sin x) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_COS_NONTRIVIAL : exists x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) /\ (~ ((cos x) = (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_COS_DOUBLE_BOUND : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) (cos x)) -> Rle (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (cos x))) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (cos (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x))). +Axiom thm_COS_GOESNEGATIVE_LEMMA : forall x : R, (Rlt (cos x) (R_of_N (NUMERAL (BIT1 0%N)))) -> exists n : N, Rlt (cos (Rmult (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n) x)) (R_of_N (NUMERAL 0%N)). +Axiom thm_COS_GOESNEGATIVE : exists x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (cos x) (R_of_N (NUMERAL 0%N))). +Axiom thm_COS_HASZERO : exists x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) /\ ((cos x) = (R_of_N (NUMERAL 0%N))). +Axiom thm_SIN_HASZERO : exists x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) /\ ((sin x) = (R_of_N (NUMERAL 0%N))). +Axiom thm_SIN_HASZERO_MINIMAL : exists p : R, (Rlt (R_of_N (NUMERAL 0%N)) p) /\ (((sin p) = (R_of_N (NUMERAL 0%N))) /\ (forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x p)) -> ~ ((sin x) = (R_of_N (NUMERAL 0%N))))). +Axiom thm_pi : pi = (@ε R (fun p : R => (Rlt (R_of_N (NUMERAL 0%N)) p) /\ (((sin p) = (R_of_N (NUMERAL 0%N))) /\ (forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x p)) -> ~ ((sin x) = (R_of_N (NUMERAL 0%N))))))). +Axiom thm_PI_WORKS : (Rlt (R_of_N (NUMERAL 0%N)) pi) /\ (((sin pi) = (R_of_N (NUMERAL 0%N))) /\ (forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x pi)) -> ~ ((sin x) = (R_of_N (NUMERAL 0%N))))). +Axiom thm_PI_POS : Rlt (R_of_N (NUMERAL 0%N)) pi. +Axiom thm_PI_POS_LE : Rle (R_of_N (NUMERAL 0%N)) pi. +Axiom thm_PI_NZ : ~ (pi = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_ABS_PI : (Rabs pi) = pi. +Axiom thm_SIN_PI : (sin pi) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SIN_POS_PI : forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x pi)) -> Rlt (R_of_N (NUMERAL 0%N)) (sin x). +Axiom thm_COS_PI2 : (cos (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_COS_PI : (cos pi) = (Ropp (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_SIN_PI2 : (sin (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_SIN_COS : forall x : R, (sin x) = (cos (Rminus (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) x)). +Axiom thm_COS_SIN : forall x : R, (cos x) = (sin (Rminus (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) x)). +Axiom thm_SIN_PERIODIC_PI : forall x : R, (sin (Rplus x pi)) = (Ropp (sin x)). +Axiom thm_COS_PERIODIC_PI : forall x : R, (cos (Rplus x pi)) = (Ropp (cos x)). +Axiom thm_SIN_PERIODIC : forall x : R, (sin (Rplus x (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))) = (sin x). +Axiom thm_COS_PERIODIC : forall x : R, (cos (Rplus x (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))) = (cos x). +Axiom thm_SIN_NPI : forall n : N, (sin (Rmult (R_of_N n) pi)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_COS_NPI : forall n : N, (cos (Rmult (R_of_N n) pi)) = (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) n). +Axiom thm_COS_POS_PI2 : forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> Rlt (R_of_N (NUMERAL 0%N)) (cos x). +Axiom thm_SIN_POS_PI2 : forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> Rlt (R_of_N (NUMERAL 0%N)) (sin x). +Axiom thm_COS_POS_PI : forall x : R, ((Rlt (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ (Rlt x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> Rlt (R_of_N (NUMERAL 0%N)) (cos x). +Axiom thm_COS_POS_PI_LE : forall x : R, ((Rle (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ (Rle x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> Rle (R_of_N (NUMERAL 0%N)) (cos x). +Axiom thm_SIN_POS_PI_LE : forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle x pi)) -> Rle (R_of_N (NUMERAL 0%N)) (sin x). +Axiom thm_SIN_PIMUL_EQ_0 : forall n : R, ((sin (Rmult n pi)) = (R_of_N (NUMERAL 0%N))) = (integer n). +Axiom thm_SIN_EQ_0 : forall x : R, ((sin x) = (R_of_N (NUMERAL 0%N))) = (exists n : R, (integer n) /\ (x = (Rmult n pi))). +Axiom thm_COS_EQ_0 : forall x : R, ((cos x) = (R_of_N (NUMERAL 0%N))) = (exists n : R, (integer n) /\ (x = (Rmult (Rplus n (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) pi))). +Axiom thm_SIN_ZERO_PI : forall x : R, ((sin x) = (R_of_N (NUMERAL 0%N))) = ((exists n : N, x = (Rmult (R_of_N n) pi)) \/ (exists n : N, x = (Ropp (Rmult (R_of_N n) pi)))). +Axiom thm_COS_ZERO_PI : forall x : R, ((cos x) = (R_of_N (NUMERAL 0%N))) = ((exists n : N, x = (Rmult (Rplus (R_of_N n) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) pi)) \/ (exists n : N, x = (Ropp (Rmult (Rplus (R_of_N n) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) pi)))). +Axiom thm_SIN_ZERO : forall x : R, ((sin x) = (R_of_N (NUMERAL 0%N))) = ((exists n : N, (EVEN n) /\ (x = (Rmult (R_of_N n) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) \/ (exists n : N, (EVEN n) /\ (x = (Ropp (Rmult (R_of_N n) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))))). +Axiom thm_COS_ZERO : forall x : R, ((cos x) = (R_of_N (NUMERAL 0%N))) = ((exists n : N, (~ (EVEN n)) /\ (x = (Rmult (R_of_N n) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) \/ (exists n : N, (~ (EVEN n)) /\ (x = (Ropp (Rmult (R_of_N n) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))))). +Axiom thm_COS_ONE_2PI : forall x : R, ((cos x) = (R_of_N (NUMERAL (BIT1 0%N)))) = ((exists n : N, x = (Rmult (R_of_N n) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))) \/ (exists n : N, x = (Ropp (Rmult (R_of_N n) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))))). +Axiom thm_SIN_COS_SQRT : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) (sin x)) -> (sin x) = (sqrt (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow (cos x) (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_SIN_EQ_0_PI : forall x : R, ((Rlt (Ropp pi) x) /\ ((Rlt x pi) /\ ((sin x) = (R_of_N (NUMERAL 0%N))))) -> x = (R_of_N (NUMERAL 0%N)). +Axiom thm_COS_TREBLE_COS : forall x : R, (cos (Rmult (R_of_N (NUMERAL (BIT1 (BIT1 0%N)))) x)) = (Rminus (Rmult (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (real_pow (cos x) (NUMERAL (BIT1 (BIT1 0%N))))) (Rmult (R_of_N (NUMERAL (BIT1 (BIT1 0%N)))) (cos x))). +Axiom thm_COS_PI6 : (cos (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 (BIT1 0%N))))))) = (Rdiv (sqrt (R_of_N (NUMERAL (BIT1 (BIT1 0%N))))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_SIN_PI6 : (sin (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 (BIT1 0%N))))))) = (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_SIN_POS_PI_REV : forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle x (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) /\ (Rlt (R_of_N (NUMERAL 0%N)) (sin x)))) -> (Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x pi). +Axiom thm_SIN_PI3 : (sin (Rdiv pi (R_of_N (NUMERAL (BIT1 (BIT1 0%N)))))) = (Rdiv (sqrt (R_of_N (NUMERAL (BIT1 (BIT1 0%N))))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_COS_PI3 : (cos (Rdiv pi (R_of_N (NUMERAL (BIT1 (BIT1 0%N)))))) = (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_CEXP_II_PI : (cexp (complex_mul ii (Cx pi))) = (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_SIN_TOTAL_POS : forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rle y (R_of_N (NUMERAL (BIT1 0%N))))) -> exists x : R, (Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((sin x) = y)). +Axiom thm_SINCOS_TOTAL_PI2 : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ ((Rplus (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow y (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N)))))) -> exists t : R, (Rle (R_of_N (NUMERAL 0%N)) t) /\ ((Rle t (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((x = (cos t)) /\ (y = (sin t)))). +Axiom thm_SINCOS_TOTAL_PI : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) y) /\ ((Rplus (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow y (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N))))) -> exists t : R, (Rle (R_of_N (NUMERAL 0%N)) t) /\ ((Rle t pi) /\ ((x = (cos t)) /\ (y = (sin t)))). +Axiom thm_SINCOS_TOTAL_2PI : forall x : R, forall y : R, ((Rplus (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow y (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N)))) -> exists t : R, (Rle (R_of_N (NUMERAL 0%N)) t) /\ ((Rlt t (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) /\ ((x = (cos t)) /\ (y = (sin t)))). +Axiom thm_CIRCLE_SINCOS : forall x : R, forall y : R, ((Rplus (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow y (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N)))) -> exists t : R, (x = (cos t)) /\ (y = (sin t)). +Axiom thm_CX_PI_NZ : ~ ((Cx pi) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMPLEX_UNIMODULAR_POLAR : forall z : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) z) = (R_of_N (NUMERAL (BIT1 0%N)))) -> exists x : R, z = (complex (@pair R R (cos x) (sin x))). +Axiom thm_SIN_INTEGER_2PI : forall n : R, (integer n) -> (sin (Rmult (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi) n)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SIN_INTEGER_PI : forall n : R, (integer n) -> (sin (Rmult n pi)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_COS_INTEGER_2PI : forall n : R, (integer n) -> (cos (Rmult (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi) n)) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_SINCOS_PRINCIPAL_VALUE : forall x : R, exists y : R, ((Rlt (Ropp pi) y) /\ (Rle y pi)) /\ (((sin y) = (sin x)) /\ ((cos y) = (cos x))). +Axiom thm_CEXP_COMPLEX : forall r : R, forall t : R, (cexp (complex (@pair R R r t))) = (complex_mul (Cx (exp r)) (complex (@pair R R (cos t) (sin t)))). +Axiom thm_NORM_COSSIN : forall t : R, (@vector_norm (tybit0 unit) (complex (@pair R R (cos t) (sin t)))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_NORM_CEXP : forall z : cart R (tybit0 unit), (@vector_norm (tybit0 unit) (cexp z)) = (exp (Re z)). +Axiom thm_NORM_CEXP_II : forall t : R, (@vector_norm (tybit0 unit) (cexp (complex_mul ii (Cx t)))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_NORM_CEXP_IMAGINARY : forall z : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) (cexp z)) = (R_of_N (NUMERAL (BIT1 0%N)))) -> (Re z) = (R_of_N (NUMERAL 0%N)). +Axiom thm_CEXP_EQ_1 : forall z : cart R (tybit0 unit), ((cexp z) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = (((Re z) = (R_of_N (NUMERAL 0%N))) /\ (exists n : R, (integer n) /\ ((Im z) = (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi))))). +Axiom thm_CEXP_EQ : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((cexp w) = (cexp z)) = (exists n : R, (integer n) /\ (w = (@vector_add (tybit0 unit) z (complex_mul (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi))) ii)))). +Axiom thm_COMPLEX_EQ_CEXP : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((Rlt (Rabs (Rminus (Im w) (Im z))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) /\ ((cexp w) = (cexp z))) -> w = z. +Axiom thm_CEXP_INTEGER_2PI : forall n : R, (integer n) -> (cexp (complex_mul (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi))) ii)) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_SIN_COS_EQ : forall x : R, forall y : R, (((sin y) = (sin x)) /\ ((cos y) = (cos x))) = (exists n : R, (integer n) /\ (y = (Rplus x (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi))))). +Axiom thm_SIN_COS_INJ : forall x : R, forall y : R, (((sin x) = (sin y)) /\ (((cos x) = (cos y)) /\ (Rlt (Rabs (Rminus x y)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)))) -> x = y. +Axiom thm_CEXP_II_NE_1 : forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))) -> ~ ((cexp (complex_mul ii (Cx x))) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_CSIN_EQ_0 : forall z : cart R (tybit0 unit), ((csin z) = (Cx (R_of_N (NUMERAL 0%N)))) = (exists n : R, (integer n) /\ (z = (Cx (Rmult n pi)))). +Axiom thm_CCOS_EQ_0 : forall z : cart R (tybit0 unit), ((ccos z) = (Cx (R_of_N (NUMERAL 0%N)))) = (exists n : R, (integer n) /\ (z = (Cx (Rmult (Rplus n (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) pi)))). +Axiom thm_CCOS_EQ_1 : forall z : cart R (tybit0 unit), ((ccos z) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = (exists n : R, (integer n) /\ (z = (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi))))). +Axiom thm_CSIN_EQ_1 : forall z : cart R (tybit0 unit), ((csin z) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = (exists n : R, (integer n) /\ (z = (Cx (Rmult (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) pi)))). +Axiom thm_CSIN_EQ_MINUS1 : forall z : cart R (tybit0 unit), ((csin z) = (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) = (exists n : R, (integer n) /\ (z = (Cx (Rmult (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n) (Rdiv (R_of_N (NUMERAL (BIT1 (BIT1 0%N)))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) pi)))). +Axiom thm_CCOS_EQ_MINUS1 : forall z : cart R (tybit0 unit), ((ccos z) = (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) = (exists n : R, (integer n) /\ (z = (Cx (Rmult (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n) (R_of_N (NUMERAL (BIT1 0%N)))) pi)))). +Axiom thm_COS_EQ_1 : forall x : R, ((cos x) = (R_of_N (NUMERAL (BIT1 0%N)))) = (exists n : R, (integer n) /\ (x = (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi)))). +Axiom thm_SIN_EQ_1 : forall x : R, ((sin x) = (R_of_N (NUMERAL (BIT1 0%N)))) = (exists n : R, (integer n) /\ (x = (Rmult (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) pi))). +Axiom thm_SIN_EQ_MINUS1 : forall x : R, ((sin x) = (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) = (exists n : R, (integer n) /\ (x = (Rmult (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n) (Rdiv (R_of_N (NUMERAL (BIT1 (BIT1 0%N)))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) pi))). +Axiom thm_COS_EQ_MINUS1 : forall x : R, ((cos x) = (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) = (exists n : R, (integer n) /\ (x = (Rmult (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n) (R_of_N (NUMERAL (BIT1 0%N)))) pi))). +Axiom thm_DIST_CEXP_II_1 : forall t : R, (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (cexp (complex_mul ii (Cx t))) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) = (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rabs (sin (Rdiv t (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_CX_SINH : forall (x : R), (Cx (Rdiv (Rminus (exp x) (Rinv (exp x))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) = (complex_mul (@vector_neg (tybit0 unit) ii) (csin (complex_mul ii (Cx x)))). +Axiom thm_CX_COSH : forall (x : R), (Cx (Rdiv (Rplus (exp x) (Rinv (exp x))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) = (ccos (complex_mul ii (Cx x))). +Axiom thm_NORM_CCOS_POW_2 : forall z : cart R (tybit0 unit), (real_pow (@vector_norm (tybit0 unit) (ccos z)) (NUMERAL (BIT0 (BIT1 0%N)))) = (Rplus (real_pow (cos (Re z)) (NUMERAL (BIT0 (BIT1 0%N)))) (Rdiv (real_pow (Rminus (exp (Im z)) (Rinv (exp (Im z)))) (NUMERAL (BIT0 (BIT1 0%N)))) (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))). +Axiom thm_NORM_CSIN_POW_2 : forall z : cart R (tybit0 unit), (real_pow (@vector_norm (tybit0 unit) (csin z)) (NUMERAL (BIT0 (BIT1 0%N)))) = (Rdiv (Rplus (exp (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Im z))) (Rminus (Rinv (exp (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Im z)))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (cos (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Re z)))))) (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))). +Axiom thm_CSIN_EQ : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((csin w) = (csin z)) = (exists n : R, (integer n) /\ ((w = (@vector_add (tybit0 unit) z (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi))))) \/ (w = (@vector_add (tybit0 unit) (@vector_neg (tybit0 unit) z) (Cx (Rmult (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n) (R_of_N (NUMERAL (BIT1 0%N)))) pi)))))). +Axiom thm_CCOS_EQ : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((ccos w) = (ccos z)) = (exists n : R, (integer n) /\ ((w = (@vector_add (tybit0 unit) z (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi))))) \/ (w = (@vector_add (tybit0 unit) (@vector_neg (tybit0 unit) z) (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi))))))). +Axiom thm_SIN_EQ : forall x : R, forall y : R, ((sin x) = (sin y)) = (exists n : R, (integer n) /\ ((x = (Rplus y (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi)))) \/ (x = (Rplus (Ropp y) (Rmult (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n) (R_of_N (NUMERAL (BIT1 0%N)))) pi))))). +Axiom thm_COS_EQ : forall x : R, forall y : R, ((cos x) = (cos y)) = (exists n : R, (integer n) /\ ((x = (Rplus y (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi)))) \/ (x = (Rplus (Ropp y) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi)))))). +Axiom thm_NORM_CCOS_LE : forall z : cart R (tybit0 unit), Rle (@vector_norm (tybit0 unit) (ccos z)) (exp (@vector_norm (tybit0 unit) z)). +Axiom thm_NORM_CCOS_PLUS1_LE : forall z : cart R (tybit0 unit), Rle (@vector_norm (tybit0 unit) (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (ccos z))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (exp (@vector_norm (tybit0 unit) z))). +Axiom thm_TAYLOR_CEXP : forall n : N, forall z : cart R (tybit0 unit), Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (cexp z) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun k : N => complex_div (complex_pow z k) (Cx (R_of_N (FACT k))))))) (Rmult (exp (Rabs (Re z))) (Rdiv (real_pow (@vector_norm (tybit0 unit) z) (N.add n (NUMERAL (BIT1 0%N)))) (R_of_N (FACT n)))). +Axiom thm_E_APPROX_32 : Rle (Rabs (Rminus (exp (R_of_N (NUMERAL (BIT1 0%N)))) (Rdiv (R_of_N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 0%N))))))))))))))))))))))))))))))))))) (R_of_N (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N))))))))))))))))))))))))))))))))))))) (Rinv (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N))))))))). +Axiom thm_TAYLOR_CSIN_RAW : forall n : N, forall z : cart R (tybit0 unit), Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (csin z) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun k : N => @COND (cart R (tybit0 unit)) (ODD k) (complex_mul (@vector_neg (tybit0 unit) ii) (complex_div (complex_pow (complex_mul ii z) k) (Cx (R_of_N (FACT k))))) (Cx (R_of_N (NUMERAL 0%N))))))) (Rmult (exp (Rabs (Im z))) (Rdiv (real_pow (@vector_norm (tybit0 unit) z) (N.add n (NUMERAL (BIT1 0%N)))) (R_of_N (FACT n)))). +Axiom thm_TAYLOR_CSIN : forall n : N, forall z : cart R (tybit0 unit), Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (csin z) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun k : N => complex_mul (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) k) (complex_div (complex_pow z (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (NUMERAL (BIT1 0%N)))) (Cx (R_of_N (FACT (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (NUMERAL (BIT1 0%N))))))))))) (Rmult (exp (Rabs (Im z))) (Rdiv (real_pow (@vector_norm (tybit0 unit) z) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 (BIT1 0%N))))) (R_of_N (FACT (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_CSIN_CONVERGES : forall z : cart R (tybit0 unit), @sums (tybit0 unit) (fun n : N => complex_mul (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) n) (complex_div (complex_pow z (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) (Cx (R_of_N (FACT (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))))))) (csin z) (from (NUMERAL 0%N)). +Axiom thm_TAYLOR_CCOS_RAW : forall n : N, forall z : cart R (tybit0 unit), Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (ccos z) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun k : N => @COND (cart R (tybit0 unit)) (EVEN k) (complex_div (complex_pow (complex_mul ii z) k) (Cx (R_of_N (FACT k)))) (Cx (R_of_N (NUMERAL 0%N))))))) (Rmult (exp (Rabs (Im z))) (Rdiv (real_pow (@vector_norm (tybit0 unit) z) (N.add n (NUMERAL (BIT1 0%N)))) (R_of_N (FACT n)))). +Axiom thm_TAYLOR_CCOS : forall n : N, forall z : cart R (tybit0 unit), Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (ccos z) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun k : N => complex_mul (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) k) (complex_div (complex_pow z (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k)) (Cx (R_of_N (FACT (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k))))))))) (Rmult (exp (Rabs (Im z))) (Rdiv (real_pow (@vector_norm (tybit0 unit) z) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (FACT (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N))))))). +Axiom thm_CCOS_CONVERGES : forall z : cart R (tybit0 unit), @sums (tybit0 unit) (fun n : N => complex_mul (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) n) (complex_div (complex_pow z (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n)) (Cx (R_of_N (FACT (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n)))))) (ccos z) (from (NUMERAL 0%N)). +Axiom thm_Arg_DEF : forall z : cart R (tybit0 unit), (Arg z) = (@COND R (z = (Cx (R_of_N (NUMERAL 0%N)))) (R_of_N (NUMERAL 0%N)) (@ε R (fun t : R => (Rle (R_of_N (NUMERAL 0%N)) t) /\ ((Rlt t (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) /\ (z = (complex_mul (Cx (@vector_norm (tybit0 unit) z)) (cexp (complex_mul ii (Cx t))))))))). +Axiom thm_ARG_0 : (Arg (Cx (R_of_N (NUMERAL 0%N)))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_ARG : forall z : cart R (tybit0 unit), (Rle (R_of_N (NUMERAL 0%N)) (Arg z)) /\ ((Rlt (Arg z) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) /\ (z = (complex_mul (Cx (@vector_norm (tybit0 unit) z)) (cexp (complex_mul ii (Cx (Arg z))))))). +Axiom thm_COMPLEX_NORM_EQ_1_CEXP : forall z : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) z) = (R_of_N (NUMERAL (BIT1 0%N)))) = (exists t : R, z = (cexp (complex_mul ii (Cx t)))). +Axiom thm_ARG_UNIQUE : forall a : R, forall r : R, forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (((complex_mul (Cx r) (cexp (complex_mul ii (Cx a)))) = z) /\ ((Rle (R_of_N (NUMERAL 0%N)) a) /\ (Rlt a (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))))) -> (Arg z) = a. +Axiom thm_ARG_MUL_CX : forall r : R, forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) r) -> (Arg (complex_mul (Cx r) z)) = (Arg z). +Axiom thm_ARG_DIV_CX : forall r : R, forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) r) -> (Arg (complex_div z (Cx r))) = (Arg z). +Axiom thm_ARG_LT_NZ : forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Arg z)) = (~ ((Arg z) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_ARG_LE_PI : forall z : cart R (tybit0 unit), (Rle (Arg z) pi) = (Rle (R_of_N (NUMERAL 0%N)) (Im z)). +Axiom thm_ARG_LT_PI : forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) (Arg z)) /\ (Rlt (Arg z) pi)) = (Rlt (R_of_N (NUMERAL 0%N)) (Im z)). +Axiom thm_ARG_EQ_0 : forall z : cart R (tybit0 unit), ((Arg z) = (R_of_N (NUMERAL 0%N))) = ((real z) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re z))). +Axiom thm_ARG_NUM : forall n : N, (Arg (Cx (R_of_N n))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_ARG_EQ_PI : forall z : cart R (tybit0 unit), ((Arg z) = pi) = ((real z) /\ (Rlt (Re z) (R_of_N (NUMERAL 0%N)))). +Axiom thm_ARG_EQ_0_PI : forall z : cart R (tybit0 unit), (((Arg z) = (R_of_N (NUMERAL 0%N))) \/ ((Arg z) = pi)) = (real z). +Axiom thm_ARG_INV : forall z : cart R (tybit0 unit), (~ ((real z) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re z)))) -> (Arg (complex_inv z)) = (Rminus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi) (Arg z)). +Axiom thm_ARG_EQ : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ (w = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ (z = (Cx (R_of_N (NUMERAL 0%N)))))) -> ((Arg w) = (Arg z)) = (exists x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) /\ (w = (complex_mul (Cx x) z))). +Axiom thm_ARG_INV_EQ_0 : forall z : cart R (tybit0 unit), ((Arg (complex_inv z)) = (R_of_N (NUMERAL 0%N))) = ((Arg z) = (R_of_N (NUMERAL 0%N))). +Axiom thm_ARG_LE_DIV_SUM : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ (w = (Cx (R_of_N (NUMERAL 0%N))))) /\ ((~ (z = (Cx (R_of_N (NUMERAL 0%N))))) /\ (Rle (Arg w) (Arg z)))) -> (Arg z) = (Rplus (Arg w) (Arg (complex_div z w))). +Axiom thm_ARG_LE_DIV_SUM_EQ : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ (w = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ (z = (Cx (R_of_N (NUMERAL 0%N)))))) -> (Rle (Arg w) (Arg z)) = ((Arg z) = (Rplus (Arg w) (Arg (complex_div z w)))). +Axiom thm_REAL_SUB_ARG : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ (w = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ (z = (Cx (R_of_N (NUMERAL 0%N)))))) -> (Rminus (Arg w) (Arg z)) = (@COND R (Rle (Arg z) (Arg w)) (Arg (complex_div w z)) (Rminus (Arg (complex_div w z)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))). +Axiom thm_REAL_ADD_ARG : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ (w = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ (z = (Cx (R_of_N (NUMERAL 0%N)))))) -> (Rplus (Arg w) (Arg z)) = (@COND R (Rlt (Rplus (Arg w) (Arg z)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) (Arg (complex_mul w z)) (Rplus (Arg (complex_mul w z)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))). +Axiom thm_ARG_MUL : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ (w = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ (z = (Cx (R_of_N (NUMERAL 0%N)))))) -> (Arg (complex_mul w z)) = (@COND R (Rlt (Rplus (Arg w) (Arg z)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) (Rplus (Arg w) (Arg z)) (Rminus (Rplus (Arg w) (Arg z)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))). +Axiom thm_ARG_CNJ : forall z : cart R (tybit0 unit), (Arg (cnj z)) = (@COND R ((real z) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re z))) (Arg z) (Rminus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi) (Arg z))). +Axiom thm_ARG_REAL : forall z : cart R (tybit0 unit), (real z) -> (Arg z) = (@COND R (Rle (R_of_N (NUMERAL 0%N)) (Re z)) (R_of_N (NUMERAL 0%N)) pi). +Axiom thm_ARG_CEXP : forall z : cart R (tybit0 unit), ((Rle (R_of_N (NUMERAL 0%N)) (Im z)) /\ (Rlt (Im z) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))) -> (Arg (cexp z)) = (Im z). +Axiom thm_rotate2d : forall x : cart R (tybit0 unit), forall t : R, (rotate2d t x) = (@vector R (tybit0 unit) (@cons R (Rminus (Rmult (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N))) (cos t)) (Rmult (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N)))) (sin t))) (@cons R (Rplus (Rmult (@dollar R (tybit0 unit) x (NUMERAL (BIT1 0%N))) (sin t)) (Rmult (@dollar R (tybit0 unit) x (NUMERAL (BIT0 (BIT1 0%N)))) (cos t))) (@nil R)))). +Axiom thm_LINEAR_ROTATE2D : forall t : R, @linear (tybit0 unit) (tybit0 unit) (rotate2d t). +Axiom thm_ROTATE2D_ADD_VECTORS : forall t : R, forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (rotate2d t (@vector_add (tybit0 unit) w z)) = (@vector_add (tybit0 unit) (rotate2d t w) (rotate2d t z)). +Axiom thm_ROTATE2D_SUB : forall t : R, forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (rotate2d t (@vector_sub (tybit0 unit) w z)) = (@vector_sub (tybit0 unit) (rotate2d t w) (rotate2d t z)). +Axiom thm_NORM_ROTATE2D : forall t : R, forall z : cart R (tybit0 unit), (@vector_norm (tybit0 unit) (rotate2d t z)) = (@vector_norm (tybit0 unit) z). +Axiom thm_ROTATE2D_0 : forall t : R, (rotate2d t (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_ROTATE2D_EQ_0 : forall t : R, forall z : cart R (tybit0 unit), ((rotate2d t z) = (Cx (R_of_N (NUMERAL 0%N)))) = (z = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_ROTATE2D_ZERO : forall z : cart R (tybit0 unit), (rotate2d (R_of_N (NUMERAL 0%N)) z) = z. +Axiom thm_ORTHOGONAL_TRANSFORMATION_ROTATE2D : forall t : R, @orthogonal_transformation (tybit0 unit) (rotate2d t). +Axiom thm_ROTATE2D_POLAR : forall r : R, forall t : R, forall s : R, (rotate2d t (@vector R (tybit0 unit) (@cons R (Rmult r (cos s)) (@cons R (Rmult r (sin s)) (@nil R))))) = (@vector R (tybit0 unit) (@cons R (Rmult r (cos (Rplus t s))) (@cons R (Rmult r (sin (Rplus t s))) (@nil R)))). +Axiom thm_MATRIX_ROTATE2D : forall t : R, (@matrix (tybit0 unit) (tybit0 unit) (rotate2d t)) = (@vector (cart R (tybit0 unit)) (tybit0 unit) (@cons (cart R (tybit0 unit)) (@vector R (tybit0 unit) (@cons R (cos t) (@cons R (Ropp (sin t)) (@nil R)))) (@cons (cart R (tybit0 unit)) (@vector R (tybit0 unit) (@cons R (sin t) (@cons R (cos t) (@nil R)))) (@nil (cart R (tybit0 unit)))))). +Axiom thm_DET_MATRIX_ROTATE2D : forall t : R, (@det (tybit0 unit) (@matrix (tybit0 unit) (tybit0 unit) (rotate2d t))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_ROTATION_ROTATE2D : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((@orthogonal_transformation (tybit0 unit) f) /\ ((@det (tybit0 unit) (@matrix (tybit0 unit) (tybit0 unit) f)) = (R_of_N (NUMERAL (BIT1 0%N))))) -> exists t : R, (Rle (R_of_N (NUMERAL 0%N)) t) /\ ((Rlt t (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) /\ (f = (rotate2d t))). +Axiom thm_ROTATE2D_ADD : forall s : R, forall t : R, forall x : cart R (tybit0 unit), (rotate2d (Rplus s t) x) = (rotate2d s (rotate2d t x)). +Axiom thm_ROTATE2D_COMPLEX : forall t : R, forall z : cart R (tybit0 unit), (rotate2d t z) = (complex_mul (cexp (complex_mul ii (Cx t))) z). +Axiom thm_ROTATE2D_PI2 : forall z : cart R (tybit0 unit), (rotate2d (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) z) = (complex_mul ii z). +Axiom thm_ROTATE2D_PI : forall z : cart R (tybit0 unit), (rotate2d pi z) = (@vector_neg (tybit0 unit) z). +Axiom thm_ROTATE2D_NPI : forall n : N, forall z : cart R (tybit0 unit), (rotate2d (Rmult (R_of_N n) pi) z) = (complex_mul (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) n) z). +Axiom thm_ROTATE2D_2PI : forall z : cart R (tybit0 unit), (rotate2d (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi) z) = z. +Axiom thm_ARG_ROTATE2D : forall t : R, forall z : cart R (tybit0 unit), ((~ (z = (Cx (R_of_N (NUMERAL 0%N))))) /\ ((Rle (R_of_N (NUMERAL 0%N)) (Rplus t (Arg z))) /\ (Rlt (Rplus t (Arg z)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)))) -> (Arg (rotate2d t z)) = (Rplus t (Arg z)). +Axiom thm_ARG_ROTATE2D_UNIQUE : forall t : R, forall a : R, forall z : cart R (tybit0 unit), ((~ (z = (Cx (R_of_N (NUMERAL 0%N))))) /\ ((Arg (rotate2d t z)) = a)) -> exists n : R, (integer n) /\ (t = (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi)) (Rminus a (Arg z)))). +Axiom thm_ARG_ROTATE2D_UNIQUE_2PI : forall s : R, forall t : R, forall z : cart R (tybit0 unit), ((~ (z = (Cx (R_of_N (NUMERAL 0%N))))) /\ ((Rle (R_of_N (NUMERAL 0%N)) s) /\ ((Rlt s (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) /\ ((Rle (R_of_N (NUMERAL 0%N)) t) /\ ((Rlt t (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) /\ ((Arg (rotate2d s z)) = (Arg (rotate2d t z)))))))) -> s = t. +Axiom thm_COMPLEX_DIV_ROTATION : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@orthogonal_transformation (tybit0 unit) f) /\ ((@det (tybit0 unit) (@matrix (tybit0 unit) (tybit0 unit) f)) = (R_of_N (NUMERAL (BIT1 0%N))))) -> (complex_div (f w) (f z)) = (complex_div w z). +Axiom thm_ROTATION_ROTATE2D_EXISTS_GEN : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), exists t : R, (Rle (R_of_N (NUMERAL 0%N)) t) /\ ((Rlt t (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) /\ ((@percent (tybit0 unit) (@vector_norm (tybit0 unit) y) (rotate2d t x)) = (@percent (tybit0 unit) (@vector_norm (tybit0 unit) x) y))). +Axiom thm_ROTATION_ROTATE2D_EXISTS : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) x) = (@vector_norm (tybit0 unit) y)) -> exists t : R, (Rle (R_of_N (NUMERAL 0%N)) t) /\ ((Rlt t (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) /\ ((rotate2d t x) = y)). +Axiom thm_ROTATION_ROTATE2D_EXISTS_ORTHOGONAL : forall e1 : cart R (tybit0 unit), forall e2 : cart R (tybit0 unit), (((@vector_norm (tybit0 unit) e1) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((@vector_norm (tybit0 unit) e2) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@orthogonal (tybit0 unit) e1 e2))) -> (e1 = (rotate2d (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) e2)) \/ (e2 = (rotate2d (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) e1)). +Axiom thm_ROTATION_ROTATE2D_EXISTS_ORTHOGONAL_ORIENTED : forall e1 : cart R (tybit0 unit), forall e2 : cart R (tybit0 unit), (((@vector_norm (tybit0 unit) e1) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((@vector_norm (tybit0 unit) e2) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((@orthogonal (tybit0 unit) e1 e2) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Rminus (Rmult (@dollar R (tybit0 unit) e1 (NUMERAL (BIT1 0%N))) (@dollar R (tybit0 unit) e2 (NUMERAL (BIT0 (BIT1 0%N))))) (Rmult (@dollar R (tybit0 unit) e1 (NUMERAL (BIT0 (BIT1 0%N)))) (@dollar R (tybit0 unit) e2 (NUMERAL (BIT1 0%N))))))))) -> e2 = (rotate2d (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) e1). +Axiom thm_ROTATE2D_EQ : forall t : R, forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((rotate2d t x) = (rotate2d t y)) = (x = y). +Axiom thm_ROTATE2D_SUB_ARG : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ (w = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ (z = (Cx (R_of_N (NUMERAL 0%N)))))) -> (rotate2d (Rminus (Arg w) (Arg z))) = (rotate2d (Arg (complex_div w z))). +Axiom thm_ROTATION_MATRIX_ROTATE2D : forall t : R, @rotation_matrix (tybit0 unit) (@matrix (tybit0 unit) (tybit0 unit) (rotate2d t)). +Axiom thm_ROTATION_MATRIX_ROTATE2D_EQ : forall A : cart (cart R (tybit0 unit)) (tybit0 unit), (@rotation_matrix (tybit0 unit) A) = (exists t : R, A = (@matrix (tybit0 unit) (tybit0 unit) (rotate2d t))). +Axiom thm_NULLHOMOTOPIC_ORTHOGONAL_TRANSFORMATION : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@orthogonal_transformation N' f) /\ ((@det N' (@matrix N' N' f)) = (R_of_N (NUMERAL (BIT1 0%N))))) -> @homotopic_with (cart R N') (cart R N') (@orthogonal_transformation N') (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N'))) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N')))) f (@I (cart R N')). +Axiom thm_HOMOTOPIC_WITH_ORTHOGONAL_TRANSFORMATIONS_UNIV : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (@orthogonal_transformation N') (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N'))) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N')))) f g) = ((@orthogonal_transformation N' f) /\ ((@orthogonal_transformation N' g) /\ ((@det N' (@matrix N' N' f)) = (@det N' (@matrix N' N' g))))). +Axiom thm_HOMOTOPIC_SPECIAL_ORTHOGONAL_TRANSFORMATIONS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun h : (cart R N') -> cart R N' => (@orthogonal_transformation N' h) /\ ((@det N' (@matrix N' N' h)) = (@det N' (@matrix N' N' f)))) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N'))) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N')))) f g) = (@homotopic_with (cart R N') (cart R N') (@orthogonal_transformation N') (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N'))) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N')))) f g). +Axiom thm_HOMOTOPIC_ORTHOGONAL_TRANSFORMATIONS_SPHERE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> (@homotopic_with (cart R N') (cart R N') (@orthogonal_transformation N') (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r))) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) r)))) f g) = (@homotopic_with (cart R N') (cart R N') (@orthogonal_transformation N') (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N'))) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N')))) f g). +Axiom thm_HOMOTOPIC_LINEAR_MAPS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', (@homotopic_with (cart R N') (cart R M) (@linear M N') (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) (@UNIV (cart R M))) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N')))) f g) = ((@linear M N' f) /\ (@linear M N' g)). +Axiom thm_HOMOTOPIC_LINEAR_POSITIVE_SEMIDEFINITE_MAPS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun f' : (cart R N') -> cart R N' => (@linear N' N' f') /\ (@positive_semidefinite N' (@matrix N' N' f'))) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N'))) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N')))) f g) = ((@linear N' N' f) /\ ((@linear N' N' g) /\ ((@positive_semidefinite N' (@matrix N' N' f)) /\ (@positive_semidefinite N' (@matrix N' N' g))))). +Axiom thm_HOMOTOPIC_LINEAR_POSITIVE_DEFINITE_MAPS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun f' : (cart R N') -> cart R N' => (@linear N' N' f') /\ (@positive_definite N' (@matrix N' N' f'))) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N'))) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N')))) f g) = ((@linear N' N' f) /\ ((@linear N' N' g) /\ ((@positive_definite N' (@matrix N' N' f)) /\ (@positive_definite N' (@matrix N' N' g))))). +Axiom thm_HOMOTOPIC_RESTRICTED_LINEAR_MAPS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', forall b : R, (@homotopic_with (cart R N') (cart R N') (fun f' : (cart R N') -> cart R N' => (@linear N' N' f') /\ ((real_sgn (@det N' (@matrix N' N' f'))) = b)) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N'))) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N')))) f g) = ((@linear N' N' f) /\ ((@linear N' N' g) /\ (((real_sgn (@det N' (@matrix N' N' f))) = b) /\ ((real_sgn (@det N' (@matrix N' N' g))) = b)))). +Axiom thm_HOMOTOPIC_INVERTIBLE_LINEAR_MAPS_ALT : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun h : (cart R N') -> cart R N' => (@linear N' N' h) /\ (@invertible N' N' (@matrix N' N' h))) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N'))) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N')))) f g) = ((@linear N' N' f) /\ ((@linear N' N' g) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Rmult (real_sgn (@det N' (@matrix N' N' f))) (real_sgn (@det N' (@matrix N' N' g))))))). +Axiom thm_HOMOTOPIC_INVERTIBLE_LINEAR_MAPS : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', (@homotopic_with (cart R N') (cart R N') (fun h : (cart R N') -> cart R N' => (@linear N' N' h) /\ (@invertible N' N' (@matrix N' N' h))) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N'))) (@subtopology (cart R N') (@euclidean N') (@UNIV (cart R N')))) f g) = ((@linear N' N' f) /\ ((@linear N' N' g) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Rmult (@det N' (@matrix N' N' f)) (@det N' (@matrix N' N' g)))))). +Axiom thm_HOMOTOPIC_LINEAR_MAPS_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@linear N' N' f) /\ (@linear N' N' g)) -> (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N)))) (@subtopology (cart R N') (@euclidean N') (@DELETE (cart R N') (@UNIV (cart R N')) (@vec N' (NUMERAL 0%N))))) f g) = (Rlt (R_of_N (NUMERAL 0%N)) (Rmult (@det N' (@matrix N' N' f)) (@det N' (@matrix N' N' g)))). +Axiom thm_HOMOTOPIC_ORTHOGONAL_TRANSFORMATIONS_EQ : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall g : (cart R N') -> cart R N', ((@orthogonal_transformation N' f) /\ (@orthogonal_transformation N' g)) -> (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) f g) = ((@det N' (@matrix N' N' f)) = (@det N' (@matrix N' N' g))). +Axiom thm_HOMOTOPIC_ANTIPODAL_IDENTITY_MAP : forall {N' : Type'}, (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) (fun x : cart R N' => @vector_neg N' x) (fun x : cart R N' => x)) = (EVEN (@dimindex N' (@UNIV N'))). +Axiom thm_ctan : forall z : cart R (tybit0 unit), (ctan z) = (complex_div (csin z) (ccos z)). +Axiom thm_CTAN_0 : (ctan (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_CTAN_NEG : forall z : cart R (tybit0 unit), (ctan (@vector_neg (tybit0 unit) z)) = (@vector_neg (tybit0 unit) (ctan z)). +Axiom thm_CTAN_ADD : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ ((ccos w) = (Cx (R_of_N (NUMERAL 0%N))))) /\ ((~ ((ccos z) = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ ((ccos (@vector_add (tybit0 unit) w z)) = (Cx (R_of_N (NUMERAL 0%N))))))) -> (ctan (@vector_add (tybit0 unit) w z)) = (complex_div (@vector_add (tybit0 unit) (ctan w) (ctan z)) (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul (ctan w) (ctan z)))). +Axiom thm_CTAN_DOUBLE : forall z : cart R (tybit0 unit), (ctan (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) z)) = (complex_div (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (ctan z)) (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow (ctan z) (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_CCOT_DOUBLE : forall z : cart R (tybit0 unit), (complex_inv (ctan (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) z))) = (complex_div (@vector_sub (tybit0 unit) (complex_inv (ctan z)) (ctan z)) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_CTAN_CCOT_DOUBLE : forall z : cart R (tybit0 unit), (ctan z) = (@vector_sub (tybit0 unit) (complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (ctan z)) (complex_div (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (ctan (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) z)))). +Axiom thm_CTAN_SUB : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ ((ccos w) = (Cx (R_of_N (NUMERAL 0%N))))) /\ ((~ ((ccos z) = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ ((ccos (@vector_sub (tybit0 unit) w z)) = (Cx (R_of_N (NUMERAL 0%N))))))) -> (ctan (@vector_sub (tybit0 unit) w z)) = (complex_div (@vector_sub (tybit0 unit) (ctan w) (ctan z)) (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul (ctan w) (ctan z)))). +Axiom thm_COMPLEX_ADD_CTAN : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ ((ccos w) = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ ((ccos z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> (@vector_add (tybit0 unit) (ctan w) (ctan z)) = (complex_div (csin (@vector_add (tybit0 unit) w z)) (complex_mul (ccos w) (ccos z))). +Axiom thm_COMPLEX_SUB_CTAN : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ ((ccos w) = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ ((ccos z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> (@vector_sub (tybit0 unit) (ctan w) (ctan z)) = (complex_div (csin (@vector_sub (tybit0 unit) w z)) (complex_mul (ccos w) (ccos z))). +Axiom thm_CTAN_CEXP : forall z : cart R (tybit0 unit), (ctan z) = (complex_mul (@vector_neg (tybit0 unit) ii) (complex_div (@vector_sub (tybit0 unit) (cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul ii z))) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) (@vector_add (tybit0 unit) (cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul ii z))) (Cx (R_of_N (NUMERAL (BIT1 0%N))))))). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CTAN : forall z : cart R (tybit0 unit), (~ ((ccos z) = (Cx (R_of_N (NUMERAL 0%N))))) -> has_complex_derivative ctan (complex_inv (complex_pow (ccos z) (NUMERAL (BIT0 (BIT1 0%N))))) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_AT_CTAN : forall z : cart R (tybit0 unit), (~ ((ccos z) = (Cx (R_of_N (NUMERAL 0%N))))) -> complex_differentiable ctan (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_WITHIN_CTAN : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (~ ((ccos z) = (Cx (R_of_N (NUMERAL 0%N))))) -> complex_differentiable ctan (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_AT_CTAN : forall z : cart R (tybit0 unit), (~ ((ccos z) = (Cx (R_of_N (NUMERAL 0%N))))) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) ctan (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_WITHIN_CTAN : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (~ ((ccos z) = (Cx (R_of_N (NUMERAL 0%N))))) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) ctan (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_ON_CTAN : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((ccos z) = (Cx (R_of_N (NUMERAL 0%N))))) -> @continuous_on (tybit0 unit) (tybit0 unit) ctan s. +Axiom thm_HOLOMORPHIC_ON_CTAN : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((ccos z) = (Cx (R_of_N (NUMERAL 0%N))))) -> holomorphic_on ctan s. +Axiom thm_tan_def : forall x : R, (tan x) = (Re (ctan (Cx x))). +Axiom thm_CNJ_CTAN : forall z : cart R (tybit0 unit), (cnj (ctan z)) = (ctan (cnj z)). +Axiom thm_REAL_TAN : forall z : cart R (tybit0 unit), (real z) -> real (ctan z). +Axiom thm_CX_TAN : forall x : R, (Cx (tan x)) = (ctan (Cx x)). +Axiom thm_tan : forall x : R, (tan x) = (Rdiv (sin x) (cos x)). +Axiom thm_TAN_0 : (tan (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_TAN_PI : (tan pi) = (R_of_N (NUMERAL 0%N)). +Axiom thm_TAN_NPI : forall n : N, (tan (Rmult (R_of_N n) pi)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_TAN_NEG : forall x : R, (tan (Ropp x)) = (Ropp (tan x)). +Axiom thm_TAN_PERIODIC_PI : forall x : R, (tan (Rplus x pi)) = (tan x). +Axiom thm_TAN_PERIODIC_NPI : forall x : R, forall n : N, (tan (Rplus x (Rmult (R_of_N n) pi))) = (tan x). +Axiom thm_TAN_ADD : forall x : R, forall y : R, ((~ ((cos x) = (R_of_N (NUMERAL 0%N)))) /\ ((~ ((cos y) = (R_of_N (NUMERAL 0%N)))) /\ (~ ((cos (Rplus x y)) = (R_of_N (NUMERAL 0%N)))))) -> (tan (Rplus x y)) = (Rdiv (Rplus (tan x) (tan y)) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rmult (tan x) (tan y)))). +Axiom thm_TAN_SUB : forall x : R, forall y : R, ((~ ((cos x) = (R_of_N (NUMERAL 0%N)))) /\ ((~ ((cos y) = (R_of_N (NUMERAL 0%N)))) /\ (~ ((cos (Rminus x y)) = (R_of_N (NUMERAL 0%N)))))) -> (tan (Rminus x y)) = (Rdiv (Rminus (tan x) (tan y)) (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rmult (tan x) (tan y)))). +Axiom thm_TAN_DOUBLE : forall x : R, (tan (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x)) = (Rdiv (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (tan x)) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow (tan x) (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_COT_DOUBLE : forall z : R, (Rinv (tan (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) z))) = (Rdiv (Rminus (Rinv (tan z)) (tan z)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_TAN_COT_DOUBLE : forall z : R, (tan z) = (Rminus (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (tan z)) (Rdiv (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (tan (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) z)))). +Axiom thm_REAL_ADD_TAN : forall x : R, forall y : R, ((~ ((cos x) = (R_of_N (NUMERAL 0%N)))) /\ (~ ((cos y) = (R_of_N (NUMERAL 0%N))))) -> (Rplus (tan x) (tan y)) = (Rdiv (sin (Rplus x y)) (Rmult (cos x) (cos y))). +Axiom thm_REAL_SUB_TAN : forall x : R, forall y : R, ((~ ((cos x) = (R_of_N (NUMERAL 0%N)))) /\ (~ ((cos y) = (R_of_N (NUMERAL 0%N))))) -> (Rminus (tan x) (tan y)) = (Rdiv (sin (Rminus x y)) (Rmult (cos x) (cos y))). +Axiom thm_TAN_PI4 : (tan (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_TAN_POS_PI2 : forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> Rlt (R_of_N (NUMERAL 0%N)) (tan x). +Axiom thm_TAN_POS_PI2_LE : forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> Rle (R_of_N (NUMERAL 0%N)) (tan x). +Axiom thm_COS_TAN : forall x : R, (Rlt (Rabs x) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) -> (cos x) = (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (sqrt (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow (tan x) (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_SIN_TAN : forall x : R, (Rlt (Rabs x) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) -> (sin x) = (Rdiv (tan x) (sqrt (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow (tan x) (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_SIN_MONO_LT : forall x : R, forall y : R, ((Rle (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ ((Rlt x y) /\ (Rle y (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> Rlt (sin x) (sin y). +Axiom thm_SIN_MONO_LE : forall x : R, forall y : R, ((Rle (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ ((Rle x y) /\ (Rle y (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> Rle (sin x) (sin y). +Axiom thm_SIN_MONO_LT_EQ : forall x : R, forall y : R, ((Rle (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ ((Rle x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((Rle (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) y) /\ (Rle y (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))) -> (Rlt (sin x) (sin y)) = (Rlt x y). +Axiom thm_SIN_MONO_LE_EQ : forall x : R, forall y : R, ((Rle (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ ((Rle x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((Rle (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) y) /\ (Rle y (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))) -> (Rle (sin x) (sin y)) = (Rle x y). +Axiom thm_SIN_INJ_PI : forall x : R, forall y : R, ((Rle (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ ((Rle x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((Rle (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) y) /\ ((Rle y (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((sin x) = (sin y)))))) -> x = y. +Axiom thm_COS_MONO_LT : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rlt x y) /\ (Rle y pi))) -> Rlt (cos y) (cos x). +Axiom thm_COS_MONO_LE : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle x y) /\ (Rle y pi))) -> Rle (cos y) (cos x). +Axiom thm_COS_MONO_LT_EQ : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle x pi) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rle y pi)))) -> (Rlt (cos x) (cos y)) = (Rlt y x). +Axiom thm_COS_MONO_LE_EQ : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle x pi) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rle y pi)))) -> (Rle (cos x) (cos y)) = (Rle y x). +Axiom thm_COS_INJ_PI : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle x pi) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ ((Rle y pi) /\ ((cos x) = (cos y)))))) -> x = y. +Axiom thm_REAL_ABS_COS_MONO_LE_EQ : forall x : R, forall y : R, ((Rle (Rabs x) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ (Rle (Rabs y) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> (Rle (Rabs (cos x)) (Rabs (cos y))) = (Rle (Rabs y) (Rabs x)). +Axiom thm_TAN_MONO_LT : forall x : R, forall y : R, ((Rlt (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ ((Rlt x y) /\ (Rlt y (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> Rlt (tan x) (tan y). +Axiom thm_TAN_MONO_LE : forall x : R, forall y : R, ((Rlt (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ ((Rle x y) /\ (Rlt y (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> Rle (tan x) (tan y). +Axiom thm_TAN_MONO_LT_EQ : forall x : R, forall y : R, ((Rlt (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ ((Rlt x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((Rlt (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) y) /\ (Rlt y (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))) -> (Rlt (tan x) (tan y)) = (Rlt x y). +Axiom thm_TAN_MONO_LE_EQ : forall x : R, forall y : R, ((Rlt (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ ((Rlt x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((Rlt (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) y) /\ (Rlt y (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))) -> (Rle (tan x) (tan y)) = (Rle x y). +Axiom thm_TAN_BOUND_PI2 : forall x : R, (Rlt (Rabs x) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))) -> Rlt (Rabs (tan x)) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_TAN_COT : forall x : R, (tan (Rminus (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) x)) = (Rinv (tan x)). +Axiom thm_REAL_ABS_SIN_BOUND_LT : forall x : R, (~ (x = (R_of_N (NUMERAL 0%N)))) -> Rlt (Rabs (sin x)) (Rabs x). +Axiom thm_REAL_ABS_SIN_BOUND_LE : forall x : R, Rle (Rabs (sin x)) (Rabs x). +Axiom thm_SIN_PI6_STRADDLE : forall a : R, forall b : R, ((Rle (R_of_N (NUMERAL 0%N)) a) /\ ((Rle a b) /\ ((Rle b (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))) /\ ((Rle (sin (Rdiv a (R_of_N (NUMERAL (BIT0 (BIT1 (BIT1 0%N))))))) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ (Rle (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (sin (Rdiv b (R_of_N (NUMERAL (BIT0 (BIT1 (BIT1 0%N)))))))))))) -> (Rle a pi) /\ (Rle pi b). +Axiom thm_PI_APPROX_32 : Rle (Rabs (Rminus pi (Rdiv (R_of_N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))))))))))))))))))))))))))))) (R_of_N (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))))))))))))))))))))))))))))))))) (Rinv (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N))))))))). +Axiom thm_PI2_BOUNDS : (Rlt (R_of_N (NUMERAL 0%N)) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ (Rlt (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_clog : forall z : cart R (tybit0 unit), (clog z) = (@ε (cart R (tybit0 unit)) (fun w : cart R (tybit0 unit) => ((cexp w) = z) /\ ((Rlt (Ropp pi) (Im w)) /\ (Rle (Im w) pi)))). +Axiom thm_CLOG_WORKS : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> ((cexp (clog z)) = z) /\ ((Rlt (Ropp pi) (Im (clog z))) /\ (Rle (Im (clog z)) pi)). +Axiom thm_CEXP_CLOG : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> (cexp (clog z)) = z. +Axiom thm_CLOG_CEXP : forall z : cart R (tybit0 unit), ((Rlt (Ropp pi) (Im z)) /\ (Rle (Im z) pi)) -> (clog (cexp z)) = z. +Axiom thm_CLOG_EQ : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ (w = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ (z = (Cx (R_of_N (NUMERAL 0%N)))))) -> ((clog w) = (clog z)) = (w = z). +Axiom thm_CLOG_UNIQUE : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((Rlt (Ropp pi) (Im z)) /\ ((Rle (Im z) pi) /\ ((cexp z) = w))) -> (clog w) = z. +Axiom thm_RE_CLOG : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> (Re (clog z)) = (log (@vector_norm (tybit0 unit) z)). +Axiom thm_EXISTS_COMPLEX_ROOT : forall a : cart R (tybit0 unit), forall n : N, (~ (n = (NUMERAL 0%N))) -> exists z : cart R (tybit0 unit), (complex_pow z n) = a. +Axiom thm_HAS_COMPLEX_DERIVATIVE_CLOG : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> has_complex_derivative clog (complex_inv z) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_AT_CLOG : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> complex_differentiable clog (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_WITHIN_CLOG : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> complex_differentiable clog (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_AT_CLOG : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) clog (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_WITHIN_CLOG : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) clog (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_ON_CLOG : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> @continuous_on (tybit0 unit) (tybit0 unit) clog s. +Axiom thm_HOLOMORPHIC_ON_CLOG : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> holomorphic_on clog s. +Axiom thm_CX_LOG : forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> (Cx (log z)) = (clog (Cx z)). +Axiom thm_RE_CLOG_POS_LT : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> (Rlt (Rabs (Im (clog z))) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) = (Rlt (R_of_N (NUMERAL 0%N)) (Re z)). +Axiom thm_RE_CLOG_POS_LE : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> (Rle (Rabs (Im (clog z))) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) = (Rle (R_of_N (NUMERAL 0%N)) (Re z)). +Axiom thm_IM_CLOG_POS_LT : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> ((Rlt (R_of_N (NUMERAL 0%N)) (Im (clog z))) /\ (Rlt (Im (clog z)) pi)) = (Rlt (R_of_N (NUMERAL 0%N)) (Im z)). +Axiom thm_IM_CLOG_POS_LE : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> (Rle (R_of_N (NUMERAL 0%N)) (Im (clog z))) = (Rle (R_of_N (NUMERAL 0%N)) (Im z)). +Axiom thm_RE_CLOG_POS_LT_IMP : forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> Rlt (Rabs (Im (clog z))) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_IM_CLOG_POS_LT_IMP : forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Im z)) -> (Rlt (R_of_N (NUMERAL 0%N)) (Im (clog z))) /\ (Rlt (Im (clog z)) pi). +Axiom thm_IM_CLOG_EQ_0 : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> ((Im (clog z)) = (R_of_N (NUMERAL 0%N))) = ((Rlt (R_of_N (NUMERAL 0%N)) (Re z)) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_IM_CLOG_EQ_PI : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> ((Im (clog z)) = pi) = ((Rlt (Re z) (R_of_N (NUMERAL 0%N))) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_CNJ_CLOG : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> (cnj (clog z)) = (clog (cnj z)). +Axiom thm_CLOG_INV : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> (clog (complex_inv z)) = (@vector_neg (tybit0 unit) (clog z)). +Axiom thm_CLOG_1 : (clog (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_CLOG_NEG_1 : (clog (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) = (complex_mul ii (Cx pi)). +Axiom thm_CLOG_II : (clog ii) = (complex_mul ii (Cx (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_CLOG_NEG_II : (clog (@vector_neg (tybit0 unit) ii)) = (complex_mul (@vector_neg (tybit0 unit) ii) (Cx (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_CSQRT_CEXP_CLOG : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> (csqrt z) = (cexp (complex_div (clog z) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_CNJ_CSQRT : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rle (R_of_N (NUMERAL 0%N)) (Re z)) -> (cnj (csqrt z)) = (csqrt (cnj z)). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CSQRT : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> has_complex_derivative csqrt (complex_inv (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (csqrt z))) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_AT_CSQRT : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> complex_differentiable csqrt (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_WITHIN_CSQRT : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> complex_differentiable csqrt (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_AT_CSQRT : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) csqrt (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_WITHIN_CSQRT : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) csqrt (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_ON_CSQRT : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> @continuous_on (tybit0 unit) (tybit0 unit) csqrt s. +Axiom thm_HOLOMORPHIC_ON_CSQRT : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> holomorphic_on csqrt s. +Axiom thm_CONTINUOUS_WITHIN_CSQRT_POSREAL : forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) csqrt (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8341 : cart R (tybit0 unit) => exists w : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8341 ((real w) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re w))) w))). +Axiom thm_cpow : forall z : cart R (tybit0 unit), forall w : cart R (tybit0 unit), (cpow w z) = (@COND (cart R (tybit0 unit)) (w = (Cx (R_of_N (NUMERAL 0%N)))) (Cx (R_of_N (NUMERAL 0%N))) (cexp (complex_mul z (clog w)))). +Axiom thm_CPOW_0 : forall z : cart R (tybit0 unit), (cpow (Cx (R_of_N (NUMERAL 0%N))) z) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_CPOW_N : forall (n : N), forall z : cart R (tybit0 unit), (cpow z (Cx (R_of_N n))) = (@COND (cart R (tybit0 unit)) (z = (Cx (R_of_N (NUMERAL 0%N)))) (Cx (R_of_N (NUMERAL 0%N))) (complex_pow z n)). +Axiom thm_CPOW_1 : forall z : cart R (tybit0 unit), (cpow (Cx (R_of_N (NUMERAL (BIT1 0%N)))) z) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_CPOW_ADD : forall w : cart R (tybit0 unit), forall z1 : cart R (tybit0 unit), forall z2 : cart R (tybit0 unit), (cpow w (@vector_add (tybit0 unit) z1 z2)) = (complex_mul (cpow w z1) (cpow w z2)). +Axiom thm_CPOW_SUC : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (cpow w (@vector_add (tybit0 unit) z (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) = (complex_mul w (cpow w z)). +Axiom thm_CPOW_NEG : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (cpow w (@vector_neg (tybit0 unit) z)) = (complex_inv (cpow w z)). +Axiom thm_CPOW_SUB : forall w : cart R (tybit0 unit), forall z1 : cart R (tybit0 unit), forall z2 : cart R (tybit0 unit), (cpow w (@vector_sub (tybit0 unit) z1 z2)) = (complex_div (cpow w z1) (cpow w z2)). +Axiom thm_CEXP_MUL_CPOW : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((Rlt (Ropp pi) (Im w)) /\ (Rle (Im w) pi)) -> (cexp (complex_mul w z)) = (cpow (cexp w) z). +Axiom thm_CPOW_EQ_0 : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((cpow w z) = (Cx (R_of_N (NUMERAL 0%N)))) = (w = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_NORM_CPOW_REAL : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((real w) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Re w))) -> (@vector_norm (tybit0 unit) (cpow w z)) = (exp (Rmult (Re z) (log (Re w)))). +Axiom thm_CPOW_REAL_REAL : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((real w) /\ ((real z) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Re w)))) -> (cpow w z) = (Cx (exp (Rmult (Re z) (log (Re w))))). +Axiom thm_NORM_CPOW_REAL_MONO : forall w : cart R (tybit0 unit), forall z1 : cart R (tybit0 unit), forall z2 : cart R (tybit0 unit), ((real w) /\ (Rlt (R_of_N (NUMERAL (BIT1 0%N))) (Re w))) -> (Rle (@vector_norm (tybit0 unit) (cpow w z1)) (@vector_norm (tybit0 unit) (cpow w z2))) = (Rle (Re z1) (Re z2)). +Axiom thm_CPOW_MUL_REAL : forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((real x) /\ ((real y) /\ ((Rle (R_of_N (NUMERAL 0%N)) (Re x)) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re y))))) -> (cpow (complex_mul x y) z) = (complex_mul (cpow x z) (cpow y z)). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CPOW : forall s : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re z)) -> has_complex_derivative (fun z' : cart R (tybit0 unit) => cpow z' s) (complex_mul s (cpow z (@vector_sub (tybit0 unit) s (Cx (R_of_N (NUMERAL (BIT1 0%N))))))) (@_at (tybit0 unit) z). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CPOW_RIGHT : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (~ (w = (Cx (R_of_N (NUMERAL 0%N))))) -> has_complex_derivative (fun z' : cart R (tybit0 unit) => cpow w z') (complex_mul (clog w) (cpow w z)) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_CPOW_RIGHT : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), complex_differentiable (fun z' : cart R (tybit0 unit) => cpow w z') (@_at (tybit0 unit) z). +Axiom thm_HOLOMORPHIC_ON_CPOW_RIGHT : forall w : cart R (tybit0 unit), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (holomorphic_on f s) -> holomorphic_on (fun z : cart R (tybit0 unit) => cpow w (f z)) s. +Axiom thm_CONTINUOUS_ON_CPOW_RIGHT : forall {_1655098 : Type'}, forall w : cart R (tybit0 unit), forall f : (cart R _1655098) -> cart R (tybit0 unit), forall s : (cart R _1655098) -> Prop, (@continuous_on _1655098 (tybit0 unit) f s) -> @continuous_on _1655098 (tybit0 unit) (fun z : cart R _1655098 => cpow w (f z)) s. +Axiom thm_CLOG_MUL : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ (w = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ (z = (Cx (R_of_N (NUMERAL 0%N)))))) -> (clog (complex_mul w z)) = (@COND (cart R (tybit0 unit)) (Rle (Im (@vector_add (tybit0 unit) (clog w) (clog z))) (Ropp pi)) (@vector_add (tybit0 unit) (@vector_add (tybit0 unit) (clog w) (clog z)) (complex_mul ii (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)))) (@COND (cart R (tybit0 unit)) (Rgt (Im (@vector_add (tybit0 unit) (clog w) (clog z))) pi) (@vector_sub (tybit0 unit) (@vector_add (tybit0 unit) (clog w) (clog z)) (complex_mul ii (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)))) (@vector_add (tybit0 unit) (clog w) (clog z)))). +Axiom thm_CLOG_MUL_SIMPLE : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ (w = (Cx (R_of_N (NUMERAL 0%N))))) /\ ((~ (z = (Cx (R_of_N (NUMERAL 0%N))))) /\ ((Rlt (Ropp pi) (Rplus (Im (clog w)) (Im (clog z)))) /\ (Rle (Rplus (Im (clog w)) (Im (clog z))) pi)))) -> (clog (complex_mul w z)) = (@vector_add (tybit0 unit) (clog w) (clog z)). +Axiom thm_CLOG_MUL_CX : (forall x : R, forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (~ (z = (Cx (R_of_N (NUMERAL 0%N)))))) -> (clog (complex_mul (Cx x) z)) = (@vector_add (tybit0 unit) (Cx (log x)) (clog z))) /\ (forall x : R, forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (~ (z = (Cx (R_of_N (NUMERAL 0%N)))))) -> (clog (complex_mul z (Cx x))) = (@vector_add (tybit0 unit) (clog z) (Cx (log x)))). +Axiom thm_CLOG_MUL_POS : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) (Re w)) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Re z))) -> (clog (complex_mul w z)) = (@vector_add (tybit0 unit) (clog w) (clog z)). +Axiom thm_CLOG_DIV_POS : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) (Re w)) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Re z))) -> (clog (complex_div w z)) = (@vector_sub (tybit0 unit) (clog w) (clog z)). +Axiom thm_CLOG_NEG : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> (clog (@vector_neg (tybit0 unit) z)) = (@COND (cart R (tybit0 unit)) ((Rle (Im z) (R_of_N (NUMERAL 0%N))) /\ (~ ((Rlt (Re z) (R_of_N (NUMERAL 0%N))) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))))) (@vector_add (tybit0 unit) (clog z) (complex_mul ii (Cx pi))) (@vector_sub (tybit0 unit) (clog z) (complex_mul ii (Cx pi)))). +Axiom thm_CLOG_MUL_II : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> (clog (complex_mul ii z)) = (@COND (cart R (tybit0 unit)) ((Rle (R_of_N (NUMERAL 0%N)) (Re z)) \/ (Rlt (Im z) (R_of_N (NUMERAL 0%N)))) (@vector_add (tybit0 unit) (clog z) (complex_mul ii (Cx (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) (@vector_sub (tybit0 unit) (clog z) (complex_mul ii (Cx (Rmult (R_of_N (NUMERAL (BIT1 (BIT1 0%N)))) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))))). +Axiom thm_unwinding : forall z : cart R (tybit0 unit), (unwinding z) = (complex_div (@vector_sub (tybit0 unit) z (clog (cexp z))) (complex_mul (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) ii)). +Axiom thm_UNWINDING_2PI : forall (z : cart R (tybit0 unit)), (complex_mul (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) (complex_mul ii (unwinding z))) = (@vector_sub (tybit0 unit) z (clog (cexp z))). +Axiom thm_CLOG_MUL_UNWINDING : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((~ (w = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ (z = (Cx (R_of_N (NUMERAL 0%N)))))) -> (clog (complex_mul w z)) = (@vector_add (tybit0 unit) (clog w) (@vector_sub (tybit0 unit) (clog z) (complex_mul (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) (complex_mul ii (unwinding (@vector_add (tybit0 unit) (clog w) (clog z))))))). +Axiom thm_catn : forall z : cart R (tybit0 unit), (catn z) = (complex_mul (complex_div ii (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (clog (complex_div (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul ii z)) (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul ii z))))). +Axiom thm_CATN_0 : (catn (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_IM_COMPLEX_DIV_LEMMA : forall z : cart R (tybit0 unit), ((Im (complex_div (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul ii z)) (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul ii z)))) = (R_of_N (NUMERAL 0%N))) = ((Re z) = (R_of_N (NUMERAL 0%N))). +Axiom thm_RE_COMPLEX_DIV_LEMMA : forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Re (complex_div (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul ii z)) (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul ii z))))) = (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_CTAN_CATN : forall z : cart R (tybit0 unit), (~ ((complex_pow z (NUMERAL (BIT0 (BIT1 0%N)))) = (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))))) -> (ctan (catn z)) = z. +Axiom thm_CATN_CTAN : forall z : cart R (tybit0 unit), (Rlt (Rabs (Re z)) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) -> (catn (ctan z)) = z. +Axiom thm_RE_CATN_BOUNDS : forall z : cart R (tybit0 unit), (((Re z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Im z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> Rlt (Rabs (Re (catn z))) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CATN : forall z : cart R (tybit0 unit), (((Re z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Im z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> has_complex_derivative catn (complex_inv (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N)))))) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_AT_CATN : forall z : cart R (tybit0 unit), (((Re z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Im z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> complex_differentiable catn (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_WITHIN_CATN : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (((Re z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Im z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> complex_differentiable catn (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_AT_CATN : forall z : cart R (tybit0 unit), (((Re z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Im z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) catn (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_WITHIN_CATN : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (((Re z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Im z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) catn (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_ON_CATN : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ ((Re z) = (R_of_N (NUMERAL 0%N)))) -> Rlt (Rabs (Im z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> @continuous_on (tybit0 unit) (tybit0 unit) catn s. +Axiom thm_HOLOMORPHIC_ON_CATN : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ ((Re z) = (R_of_N (NUMERAL 0%N)))) -> Rlt (Rabs (Im z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> holomorphic_on catn s. +Axiom thm_atn : forall x : R, (atn x) = (Re (catn (Cx x))). +Axiom thm_CX_ATN : forall x : R, (Cx (atn x)) = (catn (Cx x)). +Axiom thm_ATN_TAN : forall y : R, (tan (atn y)) = y. +Axiom thm_ATN_BOUND : forall y : R, Rlt (Rabs (atn y)) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_ATN_BOUNDS : forall y : R, (Rlt (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (atn y)) /\ (Rlt (atn y) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_TAN_ATN : forall x : R, ((Rlt (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ (Rlt x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> (atn (tan x)) = x. +Axiom thm_ATN_0 : (atn (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_ATN_1 : (atn (R_of_N (NUMERAL (BIT1 0%N)))) = (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))). +Axiom thm_ATN_NEG : forall x : R, (atn (Ropp x)) = (Ropp (atn x)). +Axiom thm_ATN_MONO_LT : forall x : R, forall y : R, (Rlt x y) -> Rlt (atn x) (atn y). +Axiom thm_ATN_MONO_LT_EQ : forall x : R, forall y : R, (Rlt (atn x) (atn y)) = (Rlt x y). +Axiom thm_ATN_MONO_LE_EQ : forall x : R, forall y : R, (Rle (atn x) (atn y)) = (Rle x y). +Axiom thm_ATN_INJ : forall x : R, forall y : R, ((atn x) = (atn y)) = (x = y). +Axiom thm_ATN_POS_LT : forall (x : R), (Rlt (R_of_N (NUMERAL 0%N)) (atn x)) = (Rlt (R_of_N (NUMERAL 0%N)) x). +Axiom thm_ATN_POS_LE : forall (x : R), (Rle (R_of_N (NUMERAL 0%N)) (atn x)) = (Rle (R_of_N (NUMERAL 0%N)) x). +Axiom thm_ATN_LT_PI4_POS : forall x : R, (Rlt x (R_of_N (NUMERAL (BIT1 0%N)))) -> Rlt (atn x) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))). +Axiom thm_ATN_LT_PI4_NEG : forall x : R, (Rlt (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) -> Rlt (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))) (atn x). +Axiom thm_ATN_LT_PI4 : forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> Rlt (Rabs (atn x)) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))). +Axiom thm_ATN_LE_PI4 : forall x : R, (Rle (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> Rle (Rabs (atn x)) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))). +Axiom thm_COS_ATN_NZ : forall x : R, ~ ((cos (atn x)) = (R_of_N (NUMERAL 0%N))). +Axiom thm_TAN_SEC : forall x : R, (~ ((cos x) = (R_of_N (NUMERAL 0%N)))) -> (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow (tan x) (NUMERAL (BIT0 (BIT1 0%N))))) = (real_pow (Rinv (cos x)) (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_COS_ATN : forall x : R, (cos (atn x)) = (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (sqrt (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_SIN_ATN : forall x : R, (sin (atn x)) = (Rdiv x (sqrt (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_ATN_ABS : forall x : R, (atn (Rabs x)) = (Rabs (atn x)). +Axiom thm_ATN_ADD : forall x : R, forall y : R, (Rlt (Rabs (Rplus (atn x) (atn y))) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) -> (Rplus (atn x) (atn y)) = (atn (Rdiv (Rplus x y) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rmult x y)))). +Axiom thm_ATN_INV : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> (atn (Rinv x)) = (Rminus (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (atn x)). +Axiom thm_ATN_ADD_SMALL : forall x : R, forall y : R, (Rlt (Rabs (Rmult x y)) (R_of_N (NUMERAL (BIT1 0%N)))) -> (Rplus (atn x) (atn y)) = (atn (Rdiv (Rplus x y) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rmult x y)))). +Axiom thm_MACHIN : (Rminus (Rmult (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))) (atn (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT1 (BIT0 (BIT1 0%N)))))))) (atn (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N))))))))))))) = (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))). +Axiom thm_MACHIN_GAUSS : (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))) (atn (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 0%N)))))))))) (Rminus (Rmult (R_of_N (NUMERAL (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))) (atn (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 0%N))))))))))) (Rmult (R_of_N (NUMERAL (BIT1 (BIT0 (BIT1 0%N))))) (atn (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 0%N))))))))))))))) = (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))). +Axiom thm_MACHIN_EULER : (Rplus (Rmult (R_of_N (NUMERAL (BIT1 (BIT0 (BIT1 0%N))))) (atn (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT1 (BIT1 (BIT1 0%N)))))))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (atn (Rdiv (R_of_N (NUMERAL (BIT1 (BIT1 0%N)))) (R_of_N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT0 (BIT1 0%N))))))))))))) = (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))). +Axiom thm_ATN_ABS_LE_X : forall x : R, Rle (Rabs (atn x)) (Rabs x). +Axiom thm_ATN_LE_X : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> Rle (atn x) x. +Axiom thm_TAN_ABS_GE_X : forall x : R, (Rlt (Rabs x) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) -> Rle (Rabs x) (Rabs (tan x)). +Axiom thm_TAN_TOTAL : forall y : R, @ex1 R (fun x : R => (Rlt (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ ((Rlt x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((tan x) = y))). +Axiom thm_TAN_TOTAL_POS : forall y : R, (Rle (R_of_N (NUMERAL 0%N)) y) -> exists x : R, (Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rlt x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((tan x) = y)). +Axiom thm_TAN_TOTAL_LEMMA : forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) y) -> exists x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) /\ ((Rlt x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ (Rlt y (tan x))). +Axiom thm_RE_POW_2 : forall (z : cart R (tybit0 unit)), (Re (complex_pow z (NUMERAL (BIT0 (BIT1 0%N))))) = (Rminus (real_pow (Re z) (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (Im z) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_IM_POW_2 : forall (z : cart R (tybit0 unit)), (Im (complex_pow z (NUMERAL (BIT0 (BIT1 0%N))))) = (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (Re z) (Im z))). +Axiom thm_casn : forall z : cart R (tybit0 unit), (casn z) = (complex_mul (@vector_neg (tybit0 unit) ii) (clog (@vector_add (tybit0 unit) (complex_mul ii z) (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_CASN_BODY_LEMMA : forall z : cart R (tybit0 unit), ~ ((@vector_add (tybit0 unit) (complex_mul ii z) (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N))))))) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_CSIN_CASN : forall z : cart R (tybit0 unit), (csin (casn z)) = z. +Axiom thm_CASN_CSIN : forall z : cart R (tybit0 unit), ((Rlt (Rabs (Re z)) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) \/ (((Rabs (Re z)) = (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((Im z) = (R_of_N (NUMERAL 0%N))))) -> (casn (csin z)) = z. +Axiom thm_CASN_UNIQUE : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (((csin z) = w) /\ ((Rlt (Rabs (Re z)) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) \/ (((Rabs (Re z)) = (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))))) -> (casn w) = z. +Axiom thm_CASN_0 : (casn (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_CASN_1 : (casn (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = (Cx (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_CASN_NEG_1 : (casn (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) = (@vector_neg (tybit0 unit) (Cx (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CASN : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> has_complex_derivative casn (complex_inv (ccos (casn z))) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_AT_CASN : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> complex_differentiable casn (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_WITHIN_CASN : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> complex_differentiable casn (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_AT_CASN : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) casn (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_WITHIN_CASN : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) casn (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_ON_CASN : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> @continuous_on (tybit0 unit) (tybit0 unit) casn s. +Axiom thm_HOLOMORPHIC_ON_CASN : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> holomorphic_on casn s. +Axiom thm_cacs : forall z : cart R (tybit0 unit), (cacs z) = (complex_mul (@vector_neg (tybit0 unit) ii) (clog (@vector_add (tybit0 unit) z (complex_mul ii (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N)))))))))). +Axiom thm_CACS_BODY_LEMMA : forall z : cart R (tybit0 unit), ~ ((@vector_add (tybit0 unit) z (complex_mul ii (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N)))))))) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_CCOS_CACS : forall z : cart R (tybit0 unit), (ccos (cacs z)) = z. +Axiom thm_CACS_CCOS : forall z : cart R (tybit0 unit), (((Rlt (R_of_N (NUMERAL 0%N)) (Re z)) /\ (Rlt (Re z) pi)) \/ ((((Re z) = (R_of_N (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) (Im z))) \/ (((Re z) = pi) /\ (Rle (Im z) (R_of_N (NUMERAL 0%N)))))) -> (cacs (ccos z)) = z. +Axiom thm_CACS_UNIQUE : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (((ccos z) = w) /\ (((Rlt (R_of_N (NUMERAL 0%N)) (Re z)) /\ (Rlt (Re z) pi)) \/ ((((Re z) = (R_of_N (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) (Im z))) \/ (((Re z) = pi) /\ (Rle (Im z) (R_of_N (NUMERAL 0%N))))))) -> (cacs w) = z. +Axiom thm_CACS_0 : (cacs (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_CACS_1 : (cacs (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_CACS_NEG_1 : (cacs (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) = (Cx pi). +Axiom thm_HAS_COMPLEX_DERIVATIVE_CACS : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> has_complex_derivative cacs (@vector_neg (tybit0 unit) (complex_inv (csin (cacs z)))) (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_AT_CACS : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> complex_differentiable cacs (@_at (tybit0 unit) z). +Axiom thm_COMPLEX_DIFFERENTIABLE_WITHIN_CACS : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> complex_differentiable cacs (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_AT_CACS : forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) cacs (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_WITHIN_CACS : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (((Im z) = (R_of_N (NUMERAL 0%N))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) cacs (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_CONTINUOUS_ON_CACS : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> @continuous_on (tybit0 unit) (tybit0 unit) cacs s. +Axiom thm_HOLOMORPHIC_ON_CACS : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))) -> Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> holomorphic_on cacs s. +Axiom thm_CASN_RANGE_LEMMA : forall z : cart R (tybit0 unit), (Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re (@vector_add (tybit0 unit) (complex_mul ii z) (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_CACS_RANGE_LEMMA : forall z : cart R (tybit0 unit), (Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> Rlt (R_of_N (NUMERAL 0%N)) (Im (@vector_add (tybit0 unit) z (complex_mul ii (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_RE_CASN : forall z : cart R (tybit0 unit), (Re (casn z)) = (Im (clog (@vector_add (tybit0 unit) (complex_mul ii z) (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_RE_CACS : forall z : cart R (tybit0 unit), (Re (cacs z)) = (Im (clog (@vector_add (tybit0 unit) z (complex_mul ii (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N)))))))))). +Axiom thm_CASN_BOUNDS : forall z : cart R (tybit0 unit), (Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> Rlt (Rabs (Re (casn z))) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_CACS_BOUNDS : forall z : cart R (tybit0 unit), (Rlt (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N)))) -> (Rlt (R_of_N (NUMERAL 0%N)) (Re (cacs z))) /\ (Rlt (Re (cacs z)) pi). +Axiom thm_RE_CACS_BOUNDS : forall z : cart R (tybit0 unit), (Rlt (Ropp pi) (Re (cacs z))) /\ (Rle (Re (cacs z)) pi). +Axiom thm_RE_CACS_BOUND : forall z : cart R (tybit0 unit), Rle (Rabs (Re (cacs z))) pi. +Axiom thm_RE_CASN_BOUNDS : forall z : cart R (tybit0 unit), (Rlt (Ropp pi) (Re (casn z))) /\ (Rle (Re (casn z)) pi). +Axiom thm_RE_CASN_BOUND : forall z : cart R (tybit0 unit), Rle (Rabs (Re (casn z))) pi. +Axiom thm_CCOS_CASN_NZ : forall z : cart R (tybit0 unit), (~ ((complex_pow z (NUMERAL (BIT0 (BIT1 0%N)))) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) -> ~ ((ccos (casn z)) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_CSIN_CACS_NZ : forall z : cart R (tybit0 unit), (~ ((complex_pow z (NUMERAL (BIT0 (BIT1 0%N)))) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) -> ~ ((csin (cacs z)) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_CCOS_CSIN_CSQRT : forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) (cos (Re z))) \/ (((cos (Re z)) = (R_of_N (NUMERAL 0%N))) /\ (Rle (Rmult (Im z) (sin (Re z))) (R_of_N (NUMERAL 0%N))))) -> (ccos z) = (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow (csin z) (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_CSIN_CCOS_CSQRT : forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) (sin (Re z))) \/ (((sin (Re z)) = (R_of_N (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) (Rmult (Im z) (cos (Re z)))))) -> (csin z) = (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow (ccos z) (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_CASN_CACS_SQRT_POS : forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) (Re z)) \/ (((Re z) = (R_of_N (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) (Im z)))) -> (casn z) = (cacs (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_CACS_CASN_SQRT_POS : forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) (Re z)) \/ (((Re z) = (R_of_N (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) (Im z)))) -> (cacs z) = (casn (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_CSIN_CACS : forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) (Re z)) \/ (((Re z) = (R_of_N (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) (Im z)))) -> (csin (cacs z)) = (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_CCOS_CASN : forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) (Re z)) \/ (((Re z) = (R_of_N (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) (Im z)))) -> (ccos (casn z)) = (csqrt (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow z (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_asn : forall x : R, (asn x) = (Re (casn (Cx x))). +Axiom thm_REAL_ASN : forall z : cart R (tybit0 unit), ((real z) /\ (Rle (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N))))) -> real (casn z). +Axiom thm_CX_ASN : forall x : R, (Rle (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> (Cx (asn x)) = (casn (Cx x)). +Axiom thm_SIN_ASN : forall y : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) y) /\ (Rle y (R_of_N (NUMERAL (BIT1 0%N))))) -> (sin (asn y)) = y. +Axiom thm_ASN_SIN : forall x : R, ((Rle (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) x) /\ (Rle x (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> (asn (sin x)) = x. +Axiom thm_ASN_BOUNDS_LT : forall y : R, ((Rlt (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) y) /\ (Rlt y (R_of_N (NUMERAL (BIT1 0%N))))) -> (Rlt (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (asn y)) /\ (Rlt (asn y) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_ASN_0 : (asn (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_ASN_1 : (asn (R_of_N (NUMERAL (BIT1 0%N)))) = (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_ASN_NEG_1 : (asn (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) = (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_ASN_BOUNDS : forall y : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) y) /\ (Rle y (R_of_N (NUMERAL (BIT1 0%N))))) -> (Rle (Ropp (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (asn y)) /\ (Rle (asn y) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_ASN_BOUNDS_PI2 : forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> (Rle (R_of_N (NUMERAL 0%N)) (asn x)) /\ (Rle (asn x) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_ASN_NEG : forall x : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> (asn (Ropp x)) = (Ropp (asn x)). +Axiom thm_COS_ASN_NZ : forall x : R, ((Rlt (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rlt x (R_of_N (NUMERAL (BIT1 0%N))))) -> ~ ((cos (asn x)) = (R_of_N (NUMERAL 0%N))). +Axiom thm_ASN_MONO_LT_EQ : forall x : R, forall y : R, ((Rle (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (Rle (Rabs y) (R_of_N (NUMERAL (BIT1 0%N))))) -> (Rlt (asn x) (asn y)) = (Rlt x y). +Axiom thm_ASN_MONO_LE_EQ : forall x : R, forall y : R, ((Rle (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (Rle (Rabs y) (R_of_N (NUMERAL (BIT1 0%N))))) -> (Rle (asn x) (asn y)) = (Rle x y). +Axiom thm_ASN_MONO_LT : forall x : R, forall y : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ ((Rlt x y) /\ (Rle y (R_of_N (NUMERAL (BIT1 0%N)))))) -> Rlt (asn x) (asn y). +Axiom thm_ASN_MONO_LE : forall x : R, forall y : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ ((Rle x y) /\ (Rle y (R_of_N (NUMERAL (BIT1 0%N)))))) -> Rle (asn x) (asn y). +Axiom thm_COS_ASN : forall x : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> (cos (asn x)) = (sqrt (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_acs : forall x : R, (acs x) = (Re (cacs (Cx x))). +Axiom thm_REAL_ACS : forall z : cart R (tybit0 unit), ((real z) /\ (Rle (Rabs (Re z)) (R_of_N (NUMERAL (BIT1 0%N))))) -> real (cacs z). +Axiom thm_CX_ACS : forall x : R, (Rle (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> (Cx (acs x)) = (cacs (Cx x)). +Axiom thm_COS_ACS : forall y : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) y) /\ (Rle y (R_of_N (NUMERAL (BIT1 0%N))))) -> (cos (acs y)) = y. +Axiom thm_ACS_COS : forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle x pi)) -> (acs (cos x)) = x. +Axiom thm_ACS_BOUNDS_LT : forall y : R, ((Rlt (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) y) /\ (Rlt y (R_of_N (NUMERAL (BIT1 0%N))))) -> (Rlt (R_of_N (NUMERAL 0%N)) (acs y)) /\ (Rlt (acs y) pi). +Axiom thm_ACS_0 : (acs (R_of_N (NUMERAL 0%N))) = (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_ACS_1 : (acs (R_of_N (NUMERAL (BIT1 0%N)))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_ACS_NEG_1 : (acs (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) = pi. +Axiom thm_ACS_BOUNDS : forall y : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) y) /\ (Rle y (R_of_N (NUMERAL (BIT1 0%N))))) -> (Rle (R_of_N (NUMERAL 0%N)) (acs y)) /\ (Rle (acs y) pi). +Axiom thm_ACS_NEG : forall x : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> (acs (Ropp x)) = (Rminus pi (acs x)). +Axiom thm_SIN_ACS_NZ : forall x : R, ((Rlt (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rlt x (R_of_N (NUMERAL (BIT1 0%N))))) -> ~ ((sin (acs x)) = (R_of_N (NUMERAL 0%N))). +Axiom thm_ACS_MONO_LT_EQ : forall x : R, forall y : R, ((Rle (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (Rle (Rabs y) (R_of_N (NUMERAL (BIT1 0%N))))) -> (Rlt (acs x) (acs y)) = (Rlt y x). +Axiom thm_ACS_MONO_LE_EQ : forall x : R, forall y : R, ((Rle (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (Rle (Rabs y) (R_of_N (NUMERAL (BIT1 0%N))))) -> (Rle (acs x) (acs y)) = (Rle y x). +Axiom thm_ACS_MONO_LT : forall x : R, forall y : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ ((Rlt x y) /\ (Rle y (R_of_N (NUMERAL (BIT1 0%N)))))) -> Rlt (acs y) (acs x). +Axiom thm_ACS_MONO_LE : forall x : R, forall y : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ ((Rle x y) /\ (Rle y (R_of_N (NUMERAL (BIT1 0%N)))))) -> Rle (acs y) (acs x). +Axiom thm_SIN_ACS : forall x : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> (sin (acs x)) = (sqrt (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_ACS_INJ : forall x : R, forall y : R, ((Rle (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (Rle (Rabs y) (R_of_N (NUMERAL (BIT1 0%N))))) -> ((acs x) = (acs y)) = (x = y). +Axiom thm_ACS_ATN : forall x : R, ((Rlt (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rlt x (R_of_N (NUMERAL (BIT1 0%N))))) -> (acs x) = (Rminus (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (atn (Rdiv x (sqrt (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N))))))))). +Axiom thm_ASN_PLUS_ACS : forall x : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> (Rplus (asn x) (acs x)) = (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_ASN_ACS : forall x : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> (asn x) = (Rminus (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (acs x)). +Axiom thm_ACS_ASN : forall x : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> (acs x) = (Rminus (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (asn x)). +Axiom thm_ASN_ATN : forall x : R, ((Rlt (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rlt x (R_of_N (NUMERAL (BIT1 0%N))))) -> (asn x) = (atn (Rdiv x (sqrt (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_ASN_ACS_SQRT_POS : forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> (asn x) = (acs (sqrt (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_ASN_ACS_SQRT_NEG : forall x : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rle x (R_of_N (NUMERAL 0%N)))) -> (asn x) = (Ropp (acs (sqrt (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_ACS_ASN_SQRT_POS : forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> (acs x) = (asn (sqrt (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_ACS_ASN_SQRT_NEG : forall x : R, ((Rle (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ (Rle x (R_of_N (NUMERAL 0%N)))) -> (acs x) = (Rminus pi (asn (sqrt (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))))))). +Axiom thm_CONTINUOUS_ON_CASN_REAL : @continuous_on (tybit0 unit) (tybit0 unit) casn (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8346 : cart R (tybit0 unit) => exists w : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8346 ((real w) /\ (Rle (Rabs (Re w)) (R_of_N (NUMERAL (BIT1 0%N))))) w)). +Axiom thm_CONTINUOUS_WITHIN_CASN_REAL : forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) casn (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8351 : cart R (tybit0 unit) => exists w : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8351 ((real w) /\ (Rle (Rabs (Re w)) (R_of_N (NUMERAL (BIT1 0%N))))) w))). +Axiom thm_CONTINUOUS_ON_CACS_REAL : @continuous_on (tybit0 unit) (tybit0 unit) cacs (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8356 : cart R (tybit0 unit) => exists w : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8356 ((real w) /\ (Rle (Rabs (Re w)) (R_of_N (NUMERAL (BIT1 0%N))))) w)). +Axiom thm_CONTINUOUS_WITHIN_CACS_REAL : forall z : cart R (tybit0 unit), @continuous (tybit0 unit) (cart R (tybit0 unit)) cacs (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8361 : cart R (tybit0 unit) => exists w : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8361 ((real w) /\ (Rle (Rabs (Re w)) (R_of_N (NUMERAL (BIT1 0%N))))) w))). +Axiom thm_LIM_CX_OVER_CEXP : @FImp (tybit0 unit) R (fun x : R => complex_div (Cx x) (cexp (Cx x))) (Cx (R_of_N (NUMERAL 0%N))) at_posinfinity. +Axiom thm_LIM_Z_TIMES_CLOG : @FImp (tybit0 unit) (cart R (tybit0 unit)) (fun z : cart R (tybit0 unit) => complex_mul z (clog z)) (Cx (R_of_N (NUMERAL 0%N))) (@_at (tybit0 unit) (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_LIM_LOG_OVER_Z : @FImp (tybit0 unit) (cart R (tybit0 unit)) (fun z : cart R (tybit0 unit) => complex_div (clog z) z) (Cx (R_of_N (NUMERAL 0%N))) (@at_infinity (tybit0 unit)). +Axiom thm_LIM_LOG_OVER_POWER : forall s : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Re s)) -> @FImp (tybit0 unit) R (fun x : R => complex_div (clog (Cx x)) (cpow (Cx x) s)) (Cx (R_of_N (NUMERAL 0%N))) at_posinfinity. +Axiom thm_LIM_LOG_OVER_X : @FImp (tybit0 unit) R (fun x : R => complex_div (clog (Cx x)) (Cx x)) (Cx (R_of_N (NUMERAL 0%N))) at_posinfinity. +Axiom thm_LIM_LOG_OVER_POWER_N : forall s : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Re s)) -> @FImp (tybit0 unit) N (fun n : N => complex_div (clog (Cx (R_of_N n))) (cpow (Cx (R_of_N n)) s)) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_LIM_LOG_OVER_N : @FImp (tybit0 unit) N (fun n : N => complex_div (clog (Cx (R_of_N n))) (Cx (R_of_N n))) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_LIM_1_OVER_POWER : forall s : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Re s)) -> @FImp (tybit0 unit) N (fun n : N => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (cpow (Cx (R_of_N n)) s)) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_LIM_INV_Z_OFFSET : forall z : cart R (tybit0 unit), @FImp (tybit0 unit) (cart R (tybit0 unit)) (fun w : cart R (tybit0 unit) => complex_inv (@vector_add (tybit0 unit) w z)) (Cx (R_of_N (NUMERAL 0%N))) (@at_infinity (tybit0 unit)). +Axiom thm_LIM_INV_Z : @FImp (tybit0 unit) (cart R (tybit0 unit)) (fun z : cart R (tybit0 unit) => complex_inv z) (Cx (R_of_N (NUMERAL 0%N))) (@at_infinity (tybit0 unit)). +Axiom thm_LIM_INV_X_OFFSET : forall z : cart R (tybit0 unit), @FImp (tybit0 unit) R (fun x : R => complex_inv (@vector_add (tybit0 unit) (Cx x) z)) (Cx (R_of_N (NUMERAL 0%N))) at_posinfinity. +Axiom thm_LIM_INV_X : @FImp (tybit0 unit) R (fun x : R => complex_inv (Cx x)) (Cx (R_of_N (NUMERAL 0%N))) at_posinfinity. +Axiom thm_LIM_INV_N_OFFSET : forall z : cart R (tybit0 unit), @FImp (tybit0 unit) N (fun n : N => complex_inv (@vector_add (tybit0 unit) (Cx (R_of_N n)) z)) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_LIM_1_OVER_N : @FImp (tybit0 unit) N (fun n : N => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (Cx (R_of_N n))) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_LIM_INV_N : @FImp (tybit0 unit) N (fun n : N => complex_inv (Cx (R_of_N n))) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_LIM_INV_Z_POW_OFFSET : forall z : cart R (tybit0 unit), forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> @FImp (tybit0 unit) (cart R (tybit0 unit)) (fun w : cart R (tybit0 unit) => complex_pow (complex_inv (@vector_add (tybit0 unit) w z)) n) (Cx (R_of_N (NUMERAL 0%N))) (@at_infinity (tybit0 unit)). +Axiom thm_LIM_INV_Z_POW : forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> @FImp (tybit0 unit) (cart R (tybit0 unit)) (fun z : cart R (tybit0 unit) => complex_pow (complex_inv z) n) (Cx (R_of_N (NUMERAL 0%N))) (@at_infinity (tybit0 unit)). +Axiom thm_LIM_INV_X_POW_OFFSET : forall z : cart R (tybit0 unit), forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> @FImp (tybit0 unit) R (fun x : R => complex_pow (complex_inv (@vector_add (tybit0 unit) (Cx x) z)) n) (Cx (R_of_N (NUMERAL 0%N))) at_posinfinity. +Axiom thm_LIM_INV_X_POW : forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> @FImp (tybit0 unit) R (fun x : R => complex_pow (complex_inv (Cx x)) n) (Cx (R_of_N (NUMERAL 0%N))) at_posinfinity. +Axiom thm_LIM_INV_N_POW_OFFSET : forall z : cart R (tybit0 unit), forall m : N, (N.le (NUMERAL (BIT1 0%N)) m) -> @FImp (tybit0 unit) N (fun n : N => complex_pow (complex_inv (@vector_add (tybit0 unit) (Cx (R_of_N n)) z)) m) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_LIM_INV_N_POW : forall m : N, (N.le (NUMERAL (BIT1 0%N)) m) -> @FImp (tybit0 unit) N (fun n : N => complex_pow (complex_inv (Cx (R_of_N n))) m) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_LIM_1_OVER_LOG : @FImp (tybit0 unit) N (fun n : N => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (clog (Cx (R_of_N n)))) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_LIM_N_TIMES_POWN : forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> @FImp (tybit0 unit) N (fun n : N => complex_mul (Cx (R_of_N n)) (complex_pow z n)) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_LIM_N_OVER_POWN : forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL (BIT1 0%N))) (@vector_norm (tybit0 unit) z)) -> @FImp (tybit0 unit) N (fun n : N => complex_div (Cx (R_of_N n)) (complex_pow z n)) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_LIM_POWN : forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> @FImp (tybit0 unit) N (fun n : N => complex_pow z n) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_LIM_CSIN_OVER_X : @FImp (tybit0 unit) (cart R (tybit0 unit)) (fun z : cart R (tybit0 unit) => complex_div (csin z) z) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@_at (tybit0 unit) (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMPLEX_ROOT_POLYFUN : forall n : N, forall z : cart R (tybit0 unit), forall a : cart R (tybit0 unit), (N.le (NUMERAL (BIT1 0%N)) n) -> ((complex_pow z n) = a) = ((@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (@COND (cart R (tybit0 unit)) (i = (NUMERAL 0%N)) (@vector_neg (tybit0 unit) a) (@COND (cart R (tybit0 unit)) (i = n) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (Cx (R_of_N (NUMERAL 0%N))))) (complex_pow z i))) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMPLEX_ROOT_UNITY : forall n : N, forall j : N, (~ (n = (NUMERAL 0%N))) -> (complex_pow (cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (Cx (Rdiv (R_of_N j) (R_of_N n))))))) n) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_COMPLEX_ROOT_UNITY_EQ : forall n : N, forall j : N, forall k : N, (~ (n = (NUMERAL 0%N))) -> ((cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (Cx (Rdiv (R_of_N j) (R_of_N n))))))) = (cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (Cx (Rdiv (R_of_N k) (R_of_N n)))))))) = (@eq2 N j k (num_mod n)). +Axiom thm_COMPLEX_ROOT_UNITY_EQ_1 : forall n : N, forall j : N, (~ (n = (NUMERAL 0%N))) -> ((cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (Cx (Rdiv (R_of_N j) (R_of_N n))))))) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) = (num_divides n j). +Axiom thm_FINITE_CARD_COMPLEX_ROOTS_UNITY : forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (@FINITE (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8362 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8362 ((complex_pow z n) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) z))) /\ (N.le (@CARD (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8363 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8363 ((complex_pow z n) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) z))) n). +Axiom thm_FINITE_COMPLEX_ROOTS_UNITY : forall n : N, (~ (n = (NUMERAL 0%N))) -> @FINITE (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8364 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8364 ((complex_pow z n) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) z)). +Axiom thm_FINITE_CARD_COMPLEX_ROOTS_UNITY_EXPLICIT : forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (@FINITE (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8365 : cart R (tybit0 unit) => exists j : N, @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8365 (N.lt j n) (cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (Cx (Rdiv (R_of_N j) (R_of_N n)))))))))) /\ ((@CARD (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8366 : cart R (tybit0 unit) => exists j : N, @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8366 (N.lt j n) (cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (Cx (Rdiv (R_of_N j) (R_of_N n)))))))))) = n). +Axiom thm_COMPLEX_ROOTS_UNITY : forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8367 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8367 ((complex_pow z n) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) z)) = (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8368 : cart R (tybit0 unit) => exists j : N, @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8368 (N.lt j n) (cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (Cx (Rdiv (R_of_N j) (R_of_N n))))))))). +Axiom thm_CARD_COMPLEX_ROOTS_UNITY : forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (@CARD (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8369 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8369 ((complex_pow z n) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) z))) = n. +Axiom thm_HAS_SIZE_COMPLEX_ROOTS_UNITY : forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> @HAS_SIZE (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8370 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8370 ((complex_pow z n) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) z)) n. +Axiom thm_COMPLEX_NOT_ROOT_UNITY : forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> exists u : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) u) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (~ ((complex_pow u n) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_ARG_CLOG : forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Arg z)) -> (Arg z) = (Rplus (Im (clog (@vector_neg (tybit0 unit) z))) pi). +Axiom thm_CONTINUOUS_AT_ARG : forall z : cart R (tybit0 unit), (~ ((real z) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re z)))) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx Arg) (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_ON_ARG : forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ (real z)) -> Rlt (Re z) (R_of_N (NUMERAL 0%N))) -> @continuous_on (tybit0 unit) (tybit0 unit) (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx Arg) s. +Axiom thm_CONTINUOUS_WITHIN_UPPERHALF_ARG : forall z : cart R (tybit0 unit), (~ (z = (Cx (R_of_N (NUMERAL 0%N))))) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx Arg) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8374 : cart R (tybit0 unit) => exists z' : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8374 (Rle (R_of_N (NUMERAL 0%N)) (Im z')) z'))). +Axiom thm_CONTINUOUS_ON_UPPERHALF_ARG : @continuous_on (tybit0 unit) (tybit0 unit) (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx Arg) (@DIFF (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8375 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8375 (Rle (R_of_N (NUMERAL 0%N)) (Im z)) z)) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))). +Axiom thm_CONTINUOUS_ON_COMPOSE_ARG : forall {N' : Type'}, forall s : (cart R (tybit0 unit)) -> Prop, forall p : R -> cart R N', ((@continuous_on unit N' (@o (cart R unit) R (cart R N') p drop) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (lift (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (((p (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) = (p (R_of_N (NUMERAL 0%N)))) /\ (~ (@IN (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) s)))) -> @continuous_on (tybit0 unit) N' (fun z : cart R (tybit0 unit) => p (Arg z)) s. +Axiom thm_OPEN_ARG_LTT : forall s : R, forall t : R, ((Rle (R_of_N (NUMERAL 0%N)) s) /\ (Rle t (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))) -> @_open (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8383 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8383 ((Rlt s (Arg z)) /\ (Rlt (Arg z) t)) z)). +Axiom thm_OPEN_ARG_GT : forall t : R, @_open (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8385 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8385 (Rlt t (Arg z)) z)). +Axiom thm_CLOSED_ARG_LE : forall t : R, @closed (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8386 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8386 (Rle (Arg z) t) z)). +Axiom thm_ARG_ATAN_UPPERHALF : forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Im z)) -> (Arg z) = (Rminus (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (atn (Rdiv (Re z) (Im z)))). +Axiom thm_root : forall x : R, forall n : N, (root n x) = (Rmult (real_sgn x) (exp (Rdiv (log (Rabs x)) (R_of_N n)))). +Axiom thm_ROOT_0 : forall n : N, (root n (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_ROOT_1 : forall n : N, (root n (R_of_N (NUMERAL (BIT1 0%N)))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_ROOT_2 : forall x : R, (root (NUMERAL (BIT0 (BIT1 0%N))) x) = (sqrt x). +Axiom thm_ROOT_NEG : forall n : N, forall x : R, (root n (Ropp x)) = (Ropp (root n x)). +Axiom thm_ROOT_WORKS : forall n : N, forall x : R, ((real_sgn (root n x)) = (real_sgn x)) /\ ((real_pow (root n x) n) = (@COND R (n = (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))) (Rmult (real_pow (real_sgn x) n) (Rabs x)))). +Axiom thm_REAL_POW_ROOT : forall n : N, forall x : R, ((ODD n) \/ ((~ (n = (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) x))) -> (real_pow (root n x) n) = x. +Axiom thm_ROOT_POS_LT : forall n : N, forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> Rlt (R_of_N (NUMERAL 0%N)) (root n x). +Axiom thm_ROOT_POS_LE : forall n : N, forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> Rle (R_of_N (NUMERAL 0%N)) (root n x). +Axiom thm_ROOT_LT_0 : forall n : N, forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) (root n x)) = (Rlt (R_of_N (NUMERAL 0%N)) x). +Axiom thm_ROOT_LE_0 : forall n : N, forall x : R, (Rle (R_of_N (NUMERAL 0%N)) (root n x)) = (Rle (R_of_N (NUMERAL 0%N)) x). +Axiom thm_ROOT_EQ_0 : forall n : N, forall x : R, ((root n x) = (R_of_N (NUMERAL 0%N))) = (x = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_ROOT_MUL : forall n : N, forall x : R, forall y : R, (root n (Rmult x y)) = (Rmult (root n x) (root n y)). +Axiom thm_REAL_ROOT_POW_GEN : forall m : N, forall n : N, forall x : R, (root n (real_pow x m)) = (real_pow (root n x) m). +Axiom thm_REAL_ROOT_POW : forall n : N, forall x : R, ((ODD n) \/ ((~ (n = (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) x))) -> (root n (real_pow x n)) = x. +Axiom thm_ROOT_UNIQUE : forall n : N, forall x : R, forall y : R, (((real_pow y n) = x) /\ ((ODD n) \/ ((~ (n = (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) y)))) -> (root n x) = y. +Axiom thm_REAL_ROOT_INV : forall n : N, forall x : R, (root n (Rinv x)) = (Rinv (root n x)). +Axiom thm_REAL_ROOT_DIV : forall n : N, forall x : R, forall y : R, (root n (Rdiv x y)) = (Rdiv (root n x) (root n y)). +Axiom thm_ROOT_MONO_LT : forall n : N, forall x : R, forall y : R, ((~ (n = (NUMERAL 0%N))) /\ (Rlt x y)) -> Rlt (root n x) (root n y). +Axiom thm_ROOT_MONO_LE : forall n : N, forall x : R, forall y : R, (Rle x y) -> Rle (root n x) (root n y). +Axiom thm_ROOT_MONO_LT_EQ : forall n : N, forall x : R, forall y : R, (~ (n = (NUMERAL 0%N))) -> (Rlt (root n x) (root n y)) = (Rlt x y). +Axiom thm_ROOT_MONO_LE_EQ : forall n : N, forall x : R, forall y : R, (~ (n = (NUMERAL 0%N))) -> (Rle (root n x) (root n y)) = (Rle x y). +Axiom thm_ROOT_INJ : forall n : N, forall x : R, forall y : R, (~ (n = (NUMERAL 0%N))) -> ((root n x) = (root n y)) = (x = y). +Axiom thm_REAL_ROOT_LE : forall n : N, forall x : R, forall y : R, ((~ (n = (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) y)) -> (Rle (root n x) y) = (Rle x (real_pow y n)). +Axiom thm_REAL_LE_ROOT : forall n : N, forall x : R, forall y : R, ((~ (n = (NUMERAL 0%N))) /\ (Rle (R_of_N (NUMERAL 0%N)) x)) -> (Rle x (root n y)) = (Rle (real_pow x n) y). +Axiom thm_LOG_ROOT : forall n : N, forall x : R, ((~ (n = (NUMERAL 0%N))) /\ (Rlt (R_of_N (NUMERAL 0%N)) x)) -> (log (root n x)) = (Rdiv (log x) (R_of_N n)). +Axiom thm_ROOT_EXP_LOG : forall n : N, forall x : R, ((~ (n = (NUMERAL 0%N))) /\ (Rlt (R_of_N (NUMERAL 0%N)) x)) -> (root n x) = (exp (Rdiv (log x) (R_of_N n))). +Axiom thm_ROOT_PRODUCT : forall {_1668930 : Type'}, forall n : N, forall f : _1668930 -> R, forall s : _1668930 -> Prop, (@FINITE _1668930 s) -> (root n (@product _1668930 s f)) = (@product _1668930 s (fun i : _1668930 => root n (f i))). +Axiom thm_SQRT_PRODUCT : forall {_1668957 : Type'}, forall f : _1668957 -> R, forall s : _1668957 -> Prop, (@FINITE _1668957 s) -> (sqrt (@product _1668957 s f)) = (@product _1668957 s (fun i : _1668957 => sqrt (f i))). +Axiom thm_rpow : forall y : R, forall x : R, (rpow x y) = (@COND R (Rlt (R_of_N (NUMERAL 0%N)) x) (exp (Rmult y (log x))) (@COND R (x = (R_of_N (NUMERAL 0%N))) (@COND R (y = (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@COND R (exists m : N, exists n : N, (ODD m) /\ ((ODD n) /\ ((Rabs y) = (Rdiv (R_of_N m) (R_of_N n))))) (Ropp (exp (Rmult y (log (Ropp x))))) (exp (Rmult y (log (Ropp x))))))). +Axiom thm_RPOW_POW : forall x : R, forall n : N, (rpow x (R_of_N n)) = (real_pow x n). +Axiom thm_RPOW_0 : forall x : R, (rpow x (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_RPOW_NEG : forall x : R, forall y : R, (rpow x (Ropp y)) = (Rinv (rpow x y)). +Axiom thm_RPOW_ZERO : forall y : R, (rpow (R_of_N (NUMERAL 0%N)) y) = (@COND R (y = (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Axiom thm_RPOW_POS_LT : forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> Rlt (R_of_N (NUMERAL 0%N)) (rpow x y). +Axiom thm_RPOW_POS_LE : forall x : R, forall y : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> Rle (R_of_N (NUMERAL 0%N)) (rpow x y). +Axiom thm_RPOW_LT2 : forall x : R, forall y : R, forall z : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rlt x y) /\ (Rlt (R_of_N (NUMERAL 0%N)) z))) -> Rlt (rpow x z) (rpow y z). +Axiom thm_RPOW_LE2 : forall x : R, forall y : R, forall z : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle x y) /\ (Rle (R_of_N (NUMERAL 0%N)) z))) -> Rle (rpow x z) (rpow y z). +Axiom thm_REAL_ABS_RPOW : forall x : R, forall y : R, (Rabs (rpow x y)) = (rpow (Rabs x) y). +Axiom thm_RPOW_ONE : forall z : R, (rpow (R_of_N (NUMERAL (BIT1 0%N))) z) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_RPOW_RPOW : forall x : R, forall y : R, forall z : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> (rpow (rpow x y) z) = (rpow x (Rmult y z)). +Axiom thm_RPOW_LNEG : forall x : R, forall y : R, (rpow (Ropp x) y) = (@COND R (exists m : N, exists n : N, (ODD m) /\ ((ODD n) /\ ((Rabs y) = (Rdiv (R_of_N m) (R_of_N n))))) (Ropp (rpow x y)) (rpow x y)). +Axiom thm_RPOW_EQ_0 : forall x : R, forall y : R, ((rpow x y) = (R_of_N (NUMERAL 0%N))) = ((x = (R_of_N (NUMERAL 0%N))) /\ (~ (y = (R_of_N (NUMERAL 0%N))))). +Axiom thm_RPOW_MUL : forall x : R, forall y : R, forall z : R, (rpow (Rmult x y) z) = (Rmult (rpow x z) (rpow y z)). +Axiom thm_RPOW_INV : forall x : R, forall y : R, (rpow (Rinv x) y) = (Rinv (rpow x y)). +Axiom thm_REAL_INV_RPOW : forall x : R, forall y : R, (Rinv (rpow x y)) = (rpow (Rinv x) y). +Axiom thm_RPOW_DIV : forall x : R, forall y : R, forall z : R, (rpow (Rdiv x y) z) = (Rdiv (rpow x z) (rpow y z)). +Axiom thm_RPOW_PRODUCT : forall {A : Type'}, forall s : A -> Prop, forall x : A -> R, forall y : R, (@FINITE A s) -> (rpow (@product A s x) y) = (@product A s (fun i : A => rpow (x i) y)). +Axiom thm_RPOW_ADD : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> (rpow x (Rplus y z)) = (Rmult (rpow x y) (rpow x z)). +Axiom thm_RPOW_SUB : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> (rpow x (Rminus y z)) = (Rdiv (rpow x y) (rpow x z)). +Axiom thm_RPOW_ADD_ALT : forall x : R, forall y : R, forall z : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (((x = (R_of_N (NUMERAL 0%N))) /\ ((Rplus y z) = (R_of_N (NUMERAL 0%N)))) -> (y = (R_of_N (NUMERAL 0%N))) \/ (z = (R_of_N (NUMERAL 0%N))))) -> (rpow x (Rplus y z)) = (Rmult (rpow x y) (rpow x z)). +Axiom thm_RPOW_SUB_ALT : forall x : R, forall y : R, forall z : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (((x = (R_of_N (NUMERAL 0%N))) /\ (y = z)) -> (y = (R_of_N (NUMERAL 0%N))) \/ (z = (R_of_N (NUMERAL 0%N))))) -> (rpow x (Rminus y z)) = (Rdiv (rpow x y) (rpow x z)). +Axiom thm_RPOW_SQRT : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> (rpow x (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) = (sqrt x). +Axiom thm_RPOW_MONO_LE : forall a : R, forall b : R, forall x : R, ((Rle (R_of_N (NUMERAL (BIT1 0%N))) x) /\ (Rle a b)) -> Rle (rpow x a) (rpow x b). +Axiom thm_RPOW_MONO_LT : forall a : R, forall b : R, forall x : R, ((Rlt (R_of_N (NUMERAL (BIT1 0%N))) x) /\ (Rlt a b)) -> Rlt (rpow x a) (rpow x b). +Axiom thm_RPOW_MONO_LE_EQ : forall a : R, forall b : R, forall x : R, (Rlt (R_of_N (NUMERAL (BIT1 0%N))) x) -> (Rle (rpow x a) (rpow x b)) = (Rle a b). +Axiom thm_RPOW_MONO_LT_EQ : forall a : R, forall b : R, forall x : R, (Rlt (R_of_N (NUMERAL (BIT1 0%N))) x) -> (Rlt (rpow x a) (rpow x b)) = (Rlt a b). +Axiom thm_RPOW_INJ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> ((rpow x y) = (rpow x z)) = ((x = (R_of_N (NUMERAL (BIT1 0%N)))) \/ (y = z)). +Axiom thm_RPOW_LE_1 : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL (BIT1 0%N))) x) /\ (Rle (R_of_N (NUMERAL 0%N)) y)) -> Rle (R_of_N (NUMERAL (BIT1 0%N))) (rpow x y). +Axiom thm_RPOW_LT_1 : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL (BIT1 0%N))) x) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) -> Rlt (R_of_N (NUMERAL (BIT1 0%N))) (rpow x y). +Axiom thm_RPOW_MONO_INV : forall a : R, forall b : R, forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ ((Rle x (R_of_N (NUMERAL (BIT1 0%N)))) /\ (Rle b a))) -> Rle (rpow x a) (rpow x b). +Axiom thm_RPOW_1_LE : forall a : R, forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle x (R_of_N (NUMERAL (BIT1 0%N)))) /\ (Rle (R_of_N (NUMERAL 0%N)) a))) -> Rle (rpow x a) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_ROOT_RPOW : forall n : N, forall x : R, ((~ (n = (NUMERAL 0%N))) /\ ((Rle (R_of_N (NUMERAL 0%N)) x) \/ (ODD n))) -> (root n x) = (rpow x (Rinv (R_of_N n))). +Axiom thm_LOG_RPOW : forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> (log (rpow x y)) = (Rmult y (log x)). +Axiom thm_LOG_SQRT : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> (log (sqrt x)) = (Rdiv (log x) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_RPOW_ADD_INTEGER : forall x : R, forall m : R, forall n : R, ((integer m) /\ ((integer n) /\ (~ ((x = (R_of_N (NUMERAL 0%N))) /\ (((Rplus m n) = (R_of_N (NUMERAL 0%N))) /\ (~ (n = (R_of_N (NUMERAL 0%N))))))))) -> (rpow x (Rplus m n)) = (Rmult (rpow x m) (rpow x n)). +Axiom thm_NORM_CPOW : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((real w) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Re w))) -> (@vector_norm (tybit0 unit) (cpow w z)) = (rpow (@vector_norm (tybit0 unit) w) (Re z)). +Axiom thm_REAL_MAX_RPOW : forall x : R, forall y : R, forall z : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rle (R_of_N (NUMERAL 0%N)) z))) -> (Rmax (rpow x z) (rpow y z)) = (rpow (Rmax x y) z). +Axiom thm_REAL_MIN_RPOW : forall x : R, forall y : R, forall z : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rle (R_of_N (NUMERAL 0%N)) z))) -> (Rmin (rpow x z) (rpow y z)) = (rpow (Rmin x y) z). +Axiom thm_SUMMABLE_ZETA : forall n : N, forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL (BIT1 0%N))) (Re z)) -> @summable (tybit0 unit) (from n) (fun k : N => complex_inv (cpow (Cx (R_of_N k)) z)). +Axiom thm_SUMMABLE_ZETA_INTEGER : forall n : N, forall m : N, (N.le (NUMERAL (BIT0 (BIT1 0%N))) m) -> @summable (tybit0 unit) (from n) (fun k : N => complex_inv (complex_pow (Cx (R_of_N k)) m)). +Axiom thm_HOMOTOPIC_CIRCLEMAPS_IMP_HOMOTOPIC_LOOPS : forall {N' : Type'}, forall f : (cart R (tybit0 unit)) -> cart R N', forall g : (cart R (tybit0 unit)) -> cart R N', forall s : (cart R N') -> Prop, (@homotopic_with (cart R N') (cart R (tybit0 unit)) (fun h : (cart R (tybit0 unit)) -> cart R N' => True) (@pair (Topology (cart R (tybit0 unit))) (Topology (cart R N')) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@subtopology (cart R N') (@euclidean N') s)) f g) -> @homotopic_loops N' s (@o (cart R unit) (cart R (tybit0 unit)) (cart R N') f (@o (cart R unit) (cart R (tybit0 unit)) (cart R (tybit0 unit)) cexp (fun t : cart R unit => complex_mul (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult pi (drop t)))) ii))) (@o (cart R unit) (cart R (tybit0 unit)) (cart R N') g (@o (cart R unit) (cart R (tybit0 unit)) (cart R (tybit0 unit)) cexp (fun t : cart R unit => complex_mul (Cx (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult pi (drop t)))) ii))). +Axiom thm_HOMOTOPIC_LOOPS_IMP_HOMOTOPIC_CIRCLEMAPS : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', forall q : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, (@homotopic_loops N' s p q) -> @homotopic_with (cart R N') (cart R (tybit0 unit)) (fun h : (cart R (tybit0 unit)) -> cart R N' => True) (@pair (Topology (cart R (tybit0 unit))) (Topology (cart R N')) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@subtopology (cart R N') (@euclidean N') s)) (@o (cart R (tybit0 unit)) (cart R unit) (cart R N') p (fun z : cart R (tybit0 unit) => lift (Rdiv (Arg z) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)))) (@o (cart R (tybit0 unit)) (cart R unit) (cart R N') q (fun z : cart R (tybit0 unit) => lift (Rdiv (Arg z) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)))). +Axiom thm_SIMPLY_CONNECTED_EQ_CONTRACTIBLE_CIRCLEMAP : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@simply_connected N' s) = ((@path_connected N' s) /\ (forall f : (cart R (tybit0 unit)) -> cart R N', ((@continuous_on (tybit0 unit) N' f (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (@SUBSET (cart R N') (@IMAGE (cart R (tybit0 unit)) (cart R N') f (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) s)) -> exists a : cart R N', @homotopic_with (cart R N') (cart R (tybit0 unit)) (fun h : (cart R (tybit0 unit)) -> cart R N' => True) (@pair (Topology (cart R (tybit0 unit))) (Topology (cart R N')) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@subtopology (cart R N') (@euclidean N') s)) f (fun x : cart R (tybit0 unit) => a))). +Axiom thm_SIMPLY_CONNECTED_EQ_HOMOTOPIC_CIRCLEMAPS : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@simply_connected N' s) = (forall f : (cart R (tybit0 unit)) -> cart R N', forall g : (cart R (tybit0 unit)) -> cart R N', ((@continuous_on (tybit0 unit) N' f (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R (tybit0 unit)) (cart R N') f (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) s) /\ ((@continuous_on (tybit0 unit) N' g (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (@SUBSET (cart R N') (@IMAGE (cart R (tybit0 unit)) (cart R N') g (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) s)))) -> @homotopic_with (cart R N') (cart R (tybit0 unit)) (fun h : (cart R (tybit0 unit)) -> cart R N' => True) (@pair (Topology (cart R (tybit0 unit))) (Topology (cart R N')) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@subtopology (cart R N') (@euclidean N') s)) f g). +Axiom thm_HOMOTOPY_EQUIVALENT_SIMPLE_CONNECTEDNESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homotopy_equivalent M N' s t) -> (@simply_connected M s) = (@simply_connected N' t). +Axiom thm_HAS_DERIVATIVE_POLAR : forall z : cart R (tybit0 unit), @has_derivative (tybit0 unit) (tybit0 unit) (fun w : cart R (tybit0 unit) => complex_mul (Cx (Re w)) (cexp (complex_mul ii (Cx (Im w))))) (fun h : cart R (tybit0 unit) => @matrix_vector_mul (tybit0 unit) (tybit0 unit) (@vector (cart R (tybit0 unit)) (tybit0 unit) (@cons (cart R (tybit0 unit)) (@vector R (tybit0 unit) (@cons R (cos (Im z)) (@cons R (Rmult (Ropp (Re z)) (sin (Im z))) (@nil R)))) (@cons (cart R (tybit0 unit)) (@vector R (tybit0 unit) (@cons R (sin (Im z)) (@cons R (Rmult (Re z) (cos (Im z))) (@nil R)))) (@nil (cart R (tybit0 unit)))))) h) (@_at (tybit0 unit) z). +Axiom thm_HAS_ABSOLUTE_INTEGRAL_CHANGE_OF_VARIABLES_POLAR : forall {N' : Type'}, forall f : (cart R (tybit0 unit)) -> cart R N', forall b : cart R N', ((@absolutely_integrable_on N' (tybit0 unit) f (@UNIV (cart R (tybit0 unit)))) /\ ((@integral N' (tybit0 unit) (@UNIV (cart R (tybit0 unit))) f) = b)) = ((@absolutely_integrable_on N' (tybit0 unit) (fun z : cart R (tybit0 unit) => @percent N' (Re z) (f (complex_mul (Cx (Re z)) (cexp (complex_mul ii (Cx (Im z))))))) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8400 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8400 ((Rle (R_of_N (NUMERAL 0%N)) (Re z)) /\ ((Rle (R_of_N (NUMERAL 0%N)) (Im z)) /\ (Rle (Im z) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)))) z))) /\ ((@integral N' (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8401 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8401 ((Rle (R_of_N (NUMERAL 0%N)) (Re z)) /\ ((Rle (R_of_N (NUMERAL 0%N)) (Im z)) /\ (Rle (Im z) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)))) z)) (fun z : cart R (tybit0 unit) => @percent N' (Re z) (f (complex_mul (Cx (Re z)) (cexp (complex_mul ii (Cx (Im z)))))))) = b)). +Axiom thm_ABSOLUTELY_INTEGRABLE_CHANGE_OF_VARIABLES_POLAR : forall {N' : Type'}, forall f : (cart R (tybit0 unit)) -> cart R N', (@absolutely_integrable_on N' (tybit0 unit) f (@UNIV (cart R (tybit0 unit)))) = (@absolutely_integrable_on N' (tybit0 unit) (fun z : cart R (tybit0 unit) => @percent N' (Re z) (f (complex_mul (Cx (Re z)) (cexp (complex_mul ii (Cx (Im z))))))) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8402 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8402 ((Rle (R_of_N (NUMERAL 0%N)) (Re z)) /\ ((Rle (R_of_N (NUMERAL 0%N)) (Im z)) /\ (Rle (Im z) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)))) z))). +Axiom thm_FUBINI_POLAR : forall {N' : Type'}, forall f : (cart R (tybit0 unit)) -> cart R N', (@absolutely_integrable_on N' (tybit0 unit) f (@UNIV (cart R (tybit0 unit)))) -> (@negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_8403 : cart R unit => exists r : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_8403 ((Rle (R_of_N (NUMERAL 0%N)) (drop r)) /\ (~ (@absolutely_integrable_on N' unit (fun t : cart R unit => @percent N' (drop r) (f (complex_mul (Cx (drop r)) (cexp (complex_mul ii (Cx (drop t))))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (lift (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))) (@nil (prod (cart R unit) (cart R unit)))))))) r))) /\ ((@absolutely_integrable_on N' unit (fun r : cart R unit => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (lift (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))) (@nil (prod (cart R unit) (cart R unit))))) (fun t : cart R unit => @percent N' (drop r) (f (complex_mul (Cx (drop r)) (cexp (complex_mul ii (Cx (drop t)))))))) (@GSPEC (cart R unit) (fun GEN_PVAR_8404 : cart R unit => exists r : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_8404 (Rle (R_of_N (NUMERAL 0%N)) (drop r)) r))) /\ ((@integral N' unit (@GSPEC (cart R unit) (fun GEN_PVAR_8405 : cart R unit => exists r : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_8405 (Rle (R_of_N (NUMERAL 0%N)) (drop r)) r)) (fun r : cart R unit => @integral N' unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (lift (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))) (@nil (prod (cart R unit) (cart R unit))))) (fun t : cart R unit => @percent N' (drop r) (f (complex_mul (Cx (drop r)) (cexp (complex_mul ii (Cx (drop t))))))))) = (@integral N' (tybit0 unit) (@UNIV (cart R (tybit0 unit))) f))). +Axiom thm_FUBINI_TONELLI_POLAR : forall {N' : Type'}, forall f : (cart R (tybit0 unit)) -> cart R N', (@measurable_on (tybit0 unit) N' f (@UNIV (cart R (tybit0 unit)))) -> (@absolutely_integrable_on N' (tybit0 unit) f (@UNIV (cart R (tybit0 unit)))) = ((@negligible unit (@GSPEC (cart R unit) (fun GEN_PVAR_8415 : cart R unit => exists r : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_8415 ((Rle (R_of_N (NUMERAL 0%N)) (drop r)) /\ (~ (@absolutely_integrable_on N' unit (fun t : cart R unit => @percent N' (drop r) (f (complex_mul (Cx (drop r)) (cexp (complex_mul ii (Cx (drop t))))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (lift (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))) (@nil (prod (cart R unit) (cart R unit)))))))) r))) /\ (@integrable_on unit unit (fun r : cart R unit => @integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (lift (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))) (@nil (prod (cart R unit) (cart R unit))))) (fun t : cart R unit => @percent unit (drop r) (lift (@vector_norm N' (f (complex_mul (Cx (drop r)) (cexp (complex_mul ii (Cx (drop t)))))))))) (@GSPEC (cart R unit) (fun GEN_PVAR_8416 : cart R unit => exists r : cart R unit, @SETSPEC (cart R unit) GEN_PVAR_8416 (Rle (R_of_N (NUMERAL 0%N)) (drop r)) r)))). +Axiom thm_REAL_OPEN : forall s : R -> Prop, (real_open s) = (@_open unit (@IMAGE R (cart R unit) lift s)). +Axiom thm_REAL_CLOSED : forall s : R -> Prop, (real_closed s) = (@closed unit (@IMAGE R (cart R unit) lift s)). +Axiom thm_REAL_BOUNDED : forall (s : R -> Prop), (real_bounded s) = (@bounded unit (@IMAGE R (cart R unit) lift s)). +Axiom thm_REAL_BOUNDED_POS_LT : forall s : R -> Prop, (real_bounded s) = (exists b : R, (Rlt (R_of_N (NUMERAL 0%N)) b) /\ (forall x : R, (@IN R x s) -> Rlt (Rabs x) b)). +Axiom thm_REAL_BOUNDED_SUBSET : forall s : R -> Prop, forall t : R -> Prop, ((real_bounded t) /\ (@SUBSET R s t)) -> real_bounded s. +Axiom thm_REAL_BOUNDED_UNION : forall s : R -> Prop, forall t : R -> Prop, (real_bounded (@UNION R s t)) = ((real_bounded s) /\ (real_bounded t)). +Axiom thm_REAL_BOUNDED_SUBSET_OPEN_INTERVAL_SYMMETRIC : forall s : R -> Prop, (real_bounded s) -> exists a : R, @SUBSET R s (open_real_interval (@pair R R (Ropp a) a)). +Axiom thm_REAL_BOUNDED_SUBSET_OPEN_INTERVAL : forall s : R -> Prop, (real_bounded s) -> exists a : R, exists b : R, @SUBSET R s (open_real_interval (@pair R R a b)). +Axiom thm_REAL_BOUNDED_SUBSET_CLOSED_INTERVAL_SYMMETRIC : forall s : R -> Prop, (real_bounded s) -> exists a : R, @SUBSET R s (closed_real_interval (@cons (prod R R) (@pair R R (Ropp a) a) (@nil (prod R R)))). +Axiom thm_REAL_BOUNDED_SUBSET_CLOSED_INTERVAL : forall s : R -> Prop, (real_bounded s) -> exists a : R, exists b : R, @SUBSET R s (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_real_compact : forall s : R -> Prop, (real_compact s) = (@compact unit (@IMAGE R (cart R unit) lift s)). +Axiom thm_tendsto_real : forall {_1674736 : Type'}, forall f : _1674736 -> R, forall l : R, forall net' : net _1674736, (@longarrow _1674736 f l net') = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually _1674736 (fun x : _1674736 => Rlt (Rabs (Rminus (f x) l)) e) net'). +Axiom thm_reallim : forall {_1674750 : Type'}, forall f : _1674750 -> R, forall net' : net _1674750, (@reallim _1674750 net' f) = (@ε R (fun l : R => @longarrow _1674750 f l net')). +Axiom thm_TENDSTO_REAL : forall {_1674765 : Type'} (s : _1674765 -> R) (l : R), (@longarrow _1674765 s l) = (@FImp unit _1674765 (@o _1674765 R (cart R unit) lift s) (lift l)). +Axiom thm_REAL_TENDSTO : forall {_1674782 : Type'} (s : _1674782 -> cart R unit) (l : cart R unit), (@FImp unit _1674782 s l) = (@longarrow _1674782 (@o _1674782 (cart R unit) R drop s) (drop l)). +Axiom thm_REALLIM_COMPLEX : forall {_1674799 : Type'} (s : _1674799 -> R) (l : R), (@longarrow _1674799 s l) = (@FImp (tybit0 unit) _1674799 (@o _1674799 R (cart R (tybit0 unit)) Cx s) (Cx l)). +Axiom thm_REALLIM_TRIVIAL : forall {_1674818 : Type'}, forall net' : net _1674818, forall f : _1674818 -> R, forall l : R, (@trivial_limit _1674818 net') -> @longarrow _1674818 f l net'. +Axiom thm_REALLIM_UNIQUE : forall {_1674846 : Type'}, forall net' : net _1674846, forall f : _1674846 -> R, forall l : R, forall l' : R, ((~ (@trivial_limit _1674846 net')) /\ ((@longarrow _1674846 f l net') /\ (@longarrow _1674846 f l' net'))) -> l = l'. +Axiom thm_REALLIM_CONST : forall {_1674874 : Type'}, forall net' : net _1674874, forall a : R, @longarrow _1674874 (fun x : _1674874 => a) a net'. +Axiom thm_REALLIM_LMUL : forall {_1674903 : Type'} (net' : net _1674903), forall f : _1674903 -> R, forall l : R, forall c : R, (@longarrow _1674903 f l net') -> @longarrow _1674903 (fun x : _1674903 => Rmult c (f x)) (Rmult c l) net'. +Axiom thm_REALLIM_RMUL : forall {_1674935 : Type'} (net' : net _1674935), forall f : _1674935 -> R, forall l : R, forall c : R, (@longarrow _1674935 f l net') -> @longarrow _1674935 (fun x : _1674935 => Rmult (f x) c) (Rmult l c) net'. +Axiom thm_REALLIM_LMUL_EQ : forall {_1674978 : Type'}, forall net' : net _1674978, forall f : _1674978 -> R, forall l : R, forall c : R, (~ (c = (R_of_N (NUMERAL 0%N)))) -> (@longarrow _1674978 (fun x : _1674978 => Rmult c (f x)) (Rmult c l) net') = (@longarrow _1674978 f l net'). +Axiom thm_REALLIM_RMUL_EQ : forall {_1675022 : Type'}, forall net' : net _1675022, forall f : _1675022 -> R, forall l : R, forall c : R, (~ (c = (R_of_N (NUMERAL 0%N)))) -> (@longarrow _1675022 (fun x : _1675022 => Rmult (f x) c) (Rmult l c) net') = (@longarrow _1675022 f l net'). +Axiom thm_REALLIM_NEG : forall {_1675057 : Type'}, forall net' : net _1675057, forall f : _1675057 -> R, forall l : R, (@longarrow _1675057 f l net') -> @longarrow _1675057 (fun x : _1675057 => Ropp (f x)) (Ropp l) net'. +Axiom thm_REALLIM_NEG_EQ : forall {_1675083 : Type'}, forall net' : net _1675083, forall f : _1675083 -> R, forall l : R, (@longarrow _1675083 (fun x : _1675083 => Ropp (f x)) (Ropp l) net') = (@longarrow _1675083 f l net'). +Axiom thm_REALLIM_ADD : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@longarrow A f l net') /\ (@longarrow A g m net')) -> @longarrow A (fun x : A => Rplus (f x) (g x)) (Rplus l m) net'. +Axiom thm_REALLIM_SUB : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@longarrow A f l net') /\ (@longarrow A g m net')) -> @longarrow A (fun x : A => Rminus (f x) (g x)) (Rminus l m) net'. +Axiom thm_REALLIM_MUL : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@longarrow A f l net') /\ (@longarrow A g m net')) -> @longarrow A (fun x : A => Rmult (f x) (g x)) (Rmult l m) net'. +Axiom thm_REALLIM_INV : forall {_1675266 : Type'}, forall net' : net _1675266, forall f : _1675266 -> R, forall l : R, ((@longarrow _1675266 f l net') /\ (~ (l = (R_of_N (NUMERAL 0%N))))) -> @longarrow _1675266 (fun x : _1675266 => Rinv (f x)) (Rinv l) net'. +Axiom thm_REALLIM_DIV : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@longarrow A f l net') /\ ((@longarrow A g m net') /\ (~ (m = (R_of_N (NUMERAL 0%N)))))) -> @longarrow A (fun x : A => Rdiv (f x) (g x)) (Rdiv l m) net'. +Axiom thm_REALLIM_ABS : forall {_1675352 : Type'}, forall net' : net _1675352, forall f : _1675352 -> R, forall l : R, (@longarrow _1675352 f l net') -> @longarrow _1675352 (fun x : _1675352 => Rabs (f x)) (Rabs l) net'. +Axiom thm_REALLIM_POW : forall {_1675387 : Type'}, forall net' : net _1675387, forall f : _1675387 -> R, forall l : R, forall n : N, (@longarrow _1675387 f l net') -> @longarrow _1675387 (fun x : _1675387 => real_pow (f x) n) (real_pow l n) net'. +Axiom thm_REALLIM_MAX : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@longarrow A f l net') /\ (@longarrow A g m net')) -> @longarrow A (fun x : A => Rmax (f x) (g x)) (Rmax l m) net'. +Axiom thm_REALLIM_MIN : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@longarrow A f l net') /\ (@longarrow A g m net')) -> @longarrow A (fun x : A => Rmin (f x) (g x)) (Rmin l m) net'. +Axiom thm_REALLIM_NULL : forall {_1675563 : Type'}, forall net' : net _1675563, forall f : _1675563 -> R, forall l : R, (@longarrow _1675563 f l net') = (@longarrow _1675563 (fun x : _1675563 => Rminus (f x) l) (R_of_N (NUMERAL 0%N)) net'). +Axiom thm_REALLIM_NULL_ADD : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, ((@longarrow A f (R_of_N (NUMERAL 0%N)) net') /\ (@longarrow A g (R_of_N (NUMERAL 0%N)) net')) -> @longarrow A (fun x : A => Rplus (f x) (g x)) (R_of_N (NUMERAL 0%N)) net'. +Axiom thm_REALLIM_NULL_LMUL : forall {_1675639 : Type'}, forall net' : net _1675639, forall f : _1675639 -> R, forall c : R, (@longarrow _1675639 f (R_of_N (NUMERAL 0%N)) net') -> @longarrow _1675639 (fun x : _1675639 => Rmult c (f x)) (R_of_N (NUMERAL 0%N)) net'. +Axiom thm_REALLIM_NULL_RMUL : forall {_1675673 : Type'}, forall net' : net _1675673, forall f : _1675673 -> R, forall c : R, (@longarrow _1675673 f (R_of_N (NUMERAL 0%N)) net') -> @longarrow _1675673 (fun x : _1675673 => Rmult (f x) c) (R_of_N (NUMERAL 0%N)) net'. +Axiom thm_REALLIM_NULL_POW : forall {_1675713 : Type'}, forall net' : net _1675713, forall f : _1675713 -> R, forall n : N, ((@longarrow _1675713 f (R_of_N (NUMERAL 0%N)) net') /\ (~ (n = (NUMERAL 0%N)))) -> @longarrow _1675713 (fun x : _1675713 => real_pow (f x) n) (R_of_N (NUMERAL 0%N)) net'. +Axiom thm_REALLIM_NULL_LMUL_EQ : forall {_1675748 : Type'}, forall net' : net _1675748, forall f : _1675748 -> R, forall c : R, (~ (c = (R_of_N (NUMERAL 0%N)))) -> (@longarrow _1675748 (fun x : _1675748 => Rmult c (f x)) (R_of_N (NUMERAL 0%N)) net') = (@longarrow _1675748 f (R_of_N (NUMERAL 0%N)) net'). +Axiom thm_REALLIM_NULL_RMUL_EQ : forall {_1675789 : Type'}, forall net' : net _1675789, forall f : _1675789 -> R, forall c : R, (~ (c = (R_of_N (NUMERAL 0%N)))) -> (@longarrow _1675789 (fun x : _1675789 => Rmult (f x) c) (R_of_N (NUMERAL 0%N)) net') = (@longarrow _1675789 f (R_of_N (NUMERAL 0%N)) net'). +Axiom thm_REALLIM_NULL_NEG : forall {_1675834 : Type'}, forall net' : net _1675834, forall f : _1675834 -> R, (@longarrow _1675834 (fun x : _1675834 => Ropp (f x)) (R_of_N (NUMERAL 0%N)) net') = (@longarrow _1675834 f (R_of_N (NUMERAL 0%N)) net'). +Axiom thm_REALLIM_NULL_SUB : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, ((@longarrow A f (R_of_N (NUMERAL 0%N)) net') /\ (@longarrow A g (R_of_N (NUMERAL 0%N)) net')) -> @longarrow A (fun x : A => Rminus (f x) (g x)) (R_of_N (NUMERAL 0%N)) net'. +Axiom thm_REALLIM_RE : forall {_1675904 : Type'}, forall net' : net _1675904, forall f : _1675904 -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), (@FImp (tybit0 unit) _1675904 f l net') -> @longarrow _1675904 (@o _1675904 (cart R (tybit0 unit)) R Re f) (Re l) net'. +Axiom thm_REALLIM_IM : forall {_1675934 : Type'}, forall net' : net _1675934, forall f : _1675934 -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), (@FImp (tybit0 unit) _1675934 f l net') -> @longarrow _1675934 (@o _1675934 (cart R (tybit0 unit)) R Im f) (Im l) net'. +Axiom thm_REALLIM_TRANSFORM_EVENTUALLY : forall {_1675975 : Type'}, forall net' : net _1675975, forall f : _1675975 -> R, forall g : _1675975 -> R, forall l : R, ((@eventually _1675975 (fun x : _1675975 => (f x) = (g x)) net') /\ (@longarrow _1675975 f l net')) -> @longarrow _1675975 g l net'. +Axiom thm_REALLIM_TRANSFORM : forall {_1676015 : Type'}, forall net' : net _1676015, forall f : _1676015 -> R, forall g : _1676015 -> R, forall l : R, ((@longarrow _1676015 (fun x : _1676015 => Rminus (f x) (g x)) (R_of_N (NUMERAL 0%N)) net') /\ (@longarrow _1676015 f l net')) -> @longarrow _1676015 g l net'. +Axiom thm_REALLIM_TRANSFORM_EQ : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, (@longarrow A (fun x : A => Rminus (f x) (g x)) (R_of_N (NUMERAL 0%N)) net') -> (@longarrow A f l net') = (@longarrow A g l net'). +Axiom thm_REAL_SEQ_OFFSET : forall f : N -> R, forall l : R, forall k : N, (@longarrow N f l sequentially) -> @longarrow N (fun i : N => f (N.add i k)) l sequentially. +Axiom thm_REAL_SEQ_OFFSET_REV : forall f : N -> R, forall l : R, forall k : N, (@longarrow N (fun i : N => f (N.add i k)) l sequentially) -> @longarrow N f l sequentially. +Axiom thm_REALLIM_TRANSFORM_STRADDLE : forall {_1676194 : Type'} (net' : net _1676194), forall f : _1676194 -> R, forall g : _1676194 -> R, forall h : _1676194 -> R, forall a : R, ((@eventually _1676194 (fun n : _1676194 => Rle (f n) (g n)) net') /\ ((@longarrow _1676194 f a net') /\ ((@eventually _1676194 (fun n : _1676194 => Rle (g n) (h n)) net') /\ (@longarrow _1676194 h a net')))) -> @longarrow _1676194 g a net'. +Axiom thm_REAL_CONVERGENT_IMP_BOUNDED : forall s : N -> R, forall l : R, (@longarrow N s l sequentially) -> real_bounded (@IMAGE N R s (@UNIV N)). +Axiom thm_REALLIM_NULL_ABS : forall {_1676243 : Type'}, forall net' : net _1676243, forall f : _1676243 -> R, (@longarrow _1676243 (fun x : _1676243 => Rabs (f x)) (R_of_N (NUMERAL 0%N)) net') = (@longarrow _1676243 f (R_of_N (NUMERAL 0%N)) net'). +Axiom thm_REALLIM_WITHIN_LE : forall {N' : Type'}, forall f : (cart R N') -> R, forall l : R, forall a : cart R N', forall s : (cart R N') -> Prop, (@longarrow (cart R N') f l (@within (cart R N') (@_at N' a) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', ((@IN (cart R N') x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@distance N' (@pair (cart R N') (cart R N') x a))) /\ (Rle (@distance N' (@pair (cart R N') (cart R N') x a)) d))) -> Rlt (Rabs (Rminus (f x) l)) e)). +Axiom thm_REALLIM_WITHIN : forall {N' : Type'}, forall f : (cart R N') -> R, forall l : R, forall a : cart R N', forall s : (cart R N') -> Prop, (@longarrow (cart R N') f l (@within (cart R N') (@_at N' a) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', ((@IN (cart R N') x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (@distance N' (@pair (cart R N') (cart R N') x a))) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x a)) d))) -> Rlt (Rabs (Rminus (f x) l)) e)). +Axiom thm_REALLIM_AT : forall {N' : Type'}, forall f : (cart R N') -> R, forall l : R, forall a : cart R N', (@longarrow (cart R N') f l (@_at N' a)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : cart R N', ((Rlt (R_of_N (NUMERAL 0%N)) (@distance N' (@pair (cart R N') (cart R N') x a))) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x a)) d)) -> Rlt (Rabs (Rminus (f x) l)) e)). +Axiom thm_REALLIM_AT_INFINITY : forall {_1676569 : Type'}, forall f : (cart R _1676569) -> R, forall l : R, (@longarrow (cart R _1676569) f l (@at_infinity _1676569)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists b : R, forall x : cart R _1676569, (Rge (@vector_norm _1676569 x) b) -> Rlt (Rabs (Rminus (f x) l)) e). +Axiom thm_REALLIM_AT_INFINITY_COMPLEX_0 : forall f : (cart R (tybit0 unit)) -> R, forall l : R, (@longarrow (cart R (tybit0 unit)) f l (@at_infinity (tybit0 unit))) = (@longarrow (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) R f complex_inv) l (@_at (tybit0 unit) (Cx (R_of_N (NUMERAL 0%N))))). +Axiom thm_REALLIM_SEQUENTIALLY : forall s : N -> R, forall l : R, (@longarrow N s l sequentially) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, (N.le N' n) -> Rlt (Rabs (Rminus (s n) l)) e). +Axiom thm_REALLIM_EVENTUALLY : forall {_1676694 : Type'}, forall net' : net _1676694, forall f : _1676694 -> R, forall l : R, (@eventually _1676694 (fun x : _1676694 => (f x) = l) net') -> @longarrow _1676694 f l net'. +Axiom thm_LIM_COMPONENTWISE : forall {A N' : Type'} (l : cart R N'), forall net' : net A, forall f : A -> cart R N', (@FImp N' A f l net') = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @longarrow A (fun x : A => @dollar R N' (f x) i) (@dollar R N' l i) net'). +Axiom thm_REALLIM_UBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, forall b : R, ((@longarrow A f l net') /\ ((~ (@trivial_limit A net')) /\ (@eventually A (fun x : A => Rle (f x) b) net'))) -> Rle l b. +Axiom thm_REALLIM_LBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, forall b : R, ((@longarrow A f l net') /\ ((~ (@trivial_limit A net')) /\ (@eventually A (fun x : A => Rle b (f x)) net'))) -> Rle b l. +Axiom thm_REALLIM_LE : forall {_1676894 : Type'}, forall net' : net _1676894, forall f : _1676894 -> R, forall g : _1676894 -> R, forall l : R, forall m : R, ((@longarrow _1676894 f l net') /\ ((@longarrow _1676894 g m net') /\ ((~ (@trivial_limit _1676894 net')) /\ (@eventually _1676894 (fun x : _1676894 => Rle (f x) (g x)) net')))) -> Rle l m. +Axiom thm_REALLIM_CONST_EQ : forall {A : Type'}, forall net' : net A, forall c : R, forall d : R, (@longarrow A (fun x : A => c) d net') = ((@trivial_limit A net') \/ (c = d)). +Axiom thm_REALLIM_SUM : forall {A B : Type'}, forall net' : net B, forall f : A -> B -> R, forall l : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> @longarrow B (f i) (l i) net')) -> @longarrow B (fun x : B => @sum A s (fun i : A => f i x)) (@sum A s l) net'. +Axiom thm_REALLIM_NULL_SUM : forall {A B : Type'}, forall net' : net A, forall f : A -> B -> R, forall s : B -> Prop, ((@FINITE B s) /\ (forall a : B, (@IN B a s) -> @longarrow A (fun x : A => f x a) (R_of_N (NUMERAL 0%N)) net')) -> @longarrow A (fun x : A => @sum B s (f x)) (R_of_N (NUMERAL 0%N)) net'. +Axiom thm_REALLIM_NULL_COMPARISON : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, ((@eventually A (fun x : A => Rle (Rabs (f x)) (g x)) net') /\ (@longarrow A g (R_of_N (NUMERAL 0%N)) net')) -> @longarrow A f (R_of_N (NUMERAL 0%N)) net'. +Axiom thm_CONVERGENT_REAL_BOUNDED_MONOTONE : forall s : N -> R, ((real_bounded (@IMAGE N R s (@UNIV N))) /\ ((forall n : N, Rle (s n) (s (N.succ n))) \/ (forall n : N, Rle (s (N.succ n)) (s n)))) -> exists l : R, @longarrow N s l sequentially. +Axiom thm_REALLIM_EVENTUALLY_UBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, forall c : R, ((@longarrow A f l net') /\ (Rlt l c)) -> @eventually A (fun x : A => Rlt (f x) c) net'. +Axiom thm_REALLIM_EVENTUALLY_LBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, forall c : R, ((@longarrow A f l net') /\ (Rlt c l)) -> @eventually A (fun x : A => Rlt c (f x)) net'. +Axiom thm_REALLIM_SEQUENTIALLY_WITHIN : forall f : N -> R, forall l : R, forall s : N -> Prop, (@longarrow N f l sequentially) -> @longarrow N f l (@within N sequentially s). +Axiom thm_real_sums : forall s : N -> Prop, forall f : N -> R, forall l : R, (real_sums f l s) = (@longarrow N (fun n : N => @sum N (@INTER N s (dotdot (NUMERAL 0%N) n)) f) l sequentially). +Axiom thm_real_infsum : forall f : N -> R, forall s : N -> Prop, (real_infsum s f) = (@ε R (fun l : R => real_sums f l s)). +Axiom thm_real_summable : forall f : N -> R, forall s : N -> Prop, (real_summable s f) = (exists l : R, real_sums f l s). +Axiom thm_REAL_SUMS : forall (f : N -> R) (l : R), (real_sums f l) = (@sums unit (@o N R (cart R unit) lift f) (lift l)). +Axiom thm_REAL_SUMS_RE : forall f : N -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall s : N -> Prop, (@sums (tybit0 unit) f l s) -> real_sums (@o N (cart R (tybit0 unit)) R Re f) (Re l) s. +Axiom thm_REAL_SUMS_IM : forall f : N -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), forall s : N -> Prop, (@sums (tybit0 unit) f l s) -> real_sums (@o N (cart R (tybit0 unit)) R Im f) (Im l) s. +Axiom thm_REAL_SUMS_COMPLEX : forall f : N -> R, forall l : R, forall s : N -> Prop, (real_sums f l s) = (@sums (tybit0 unit) (@o N R (cart R (tybit0 unit)) Cx f) (Cx l) s). +Axiom thm_REAL_SUMMABLE : forall (s : N -> Prop) (f : N -> R), (real_summable s f) = (@summable unit s (@o N R (cart R unit) lift f)). +Axiom thm_REAL_SUMMABLE_COMPLEX : forall (s : N -> Prop) (f : N -> R), (real_summable s f) = (@summable (tybit0 unit) s (@o N R (cart R (tybit0 unit)) Cx f)). +Axiom thm_REAL_SERIES_CAUCHY : forall (s : N -> Prop) (f : N -> R), (exists l : R, real_sums f l s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall m : N, forall n : N, (N.ge m N') -> Rlt (Rabs (@sum N (@INTER N s (dotdot m n)) f)) e). +Axiom thm_REAL_SUMMABLE_CAUCHY : forall f : N -> R, forall s : N -> Prop, (real_summable s f) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall m : N, forall n : N, (N.ge m N') -> Rlt (Rabs (@sum N (@INTER N s (dotdot m n)) f)) e). +Axiom thm_REAL_SUMS_SUMMABLE : forall f : N -> R, forall l : R, forall s : N -> Prop, (real_sums f l s) -> real_summable s f. +Axiom thm_REAL_SUMS_INFSUM : forall f : N -> R, forall s : N -> Prop, (real_sums f (real_infsum s f) s) = (real_summable s f). +Axiom thm_REAL_INFSUM_COMPLEX : forall f : N -> R, forall s : N -> Prop, (real_summable s f) -> (real_infsum s f) = (Re (@infsum (tybit0 unit) s (@o N R (cart R (tybit0 unit)) Cx f))). +Axiom thm_REAL_SERIES_FROM : forall f : N -> R, forall l : R, forall k : N, (real_sums f l (from k)) = (@longarrow N (fun n : N => @sum N (dotdot k n) f) l sequentially). +Axiom thm_REAL_SERIES_UNIQUE : forall f : N -> R, forall l : R, forall l' : R, forall s : N -> Prop, ((real_sums f l s) /\ (real_sums f l' s)) -> l = l'. +Axiom thm_REAL_INFSUM_UNIQUE : forall f : N -> R, forall l : R, forall s : N -> Prop, (real_sums f l s) -> (real_infsum s f) = l. +Axiom thm_REAL_SERIES_FINITE : forall f : N -> R, forall s : N -> Prop, (@FINITE N s) -> real_sums f (@sum N s f) s. +Axiom thm_REAL_SUMMABLE_FINITE : forall k : N -> Prop, forall f : N -> R, (@FINITE N k) -> real_summable k f. +Axiom thm_REAL_SUMMABLE_IFF_EVENTUALLY : forall f : N -> R, forall g : N -> R, forall k : N -> Prop, (exists N' : N, forall n : N, ((N.le N' n) /\ (@IN N n k)) -> (f n) = (g n)) -> (real_summable k f) = (real_summable k g). +Axiom thm_REAL_SUMMABLE_EQ_EVENTUALLY : forall f : N -> R, forall g : N -> R, forall k : N -> Prop, ((exists N' : N, forall n : N, ((N.le N' n) /\ (@IN N n k)) -> (f n) = (g n)) /\ (real_summable k f)) -> real_summable k g. +Axiom thm_REAL_SUMMABLE_IFF_COFINITE : forall f : N -> R, forall s : N -> Prop, forall t : N -> Prop, (@FINITE N (@UNION N (@DIFF N s t) (@DIFF N t s))) -> (real_summable s f) = (real_summable t f). +Axiom thm_REAL_SUMMABLE_EQ_COFINITE : forall f : N -> R, forall s : N -> Prop, forall t : N -> Prop, ((@FINITE N (@UNION N (@DIFF N s t) (@DIFF N t s))) /\ (real_summable s f)) -> real_summable t f. +Axiom thm_REAL_SUMMABLE_FROM_ELSEWHERE : forall f : N -> R, forall m : N, forall n : N, (real_summable (from m) f) -> real_summable (from n) f. +Axiom thm_REAL_SUMMABLE_FROM_ELSEWHERE_EQ : forall n : N, forall m : N, forall f : N -> R, (real_summable (from m) f) = (real_summable (from n) f). +Axiom thm_REAL_SERIES_GOESTOZERO : forall s : N -> Prop, forall x : N -> R, (real_summable s x) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually N (fun n : N => (@IN N n s) -> Rlt (Rabs (x n)) e) sequentially. +Axiom thm_REAL_SUMMABLE_IMP_TOZERO : forall f : N -> R, forall k : N -> Prop, (real_summable k f) -> @longarrow N (fun n : N => @COND R (@IN N n k) (f n) (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL 0%N)) sequentially. +Axiom thm_REAL_SUMMABLE_IMP_BOUNDED : forall f : N -> R, forall k : N -> Prop, (real_summable k f) -> real_bounded (@IMAGE N R f k). +Axiom thm_REAL_SUMMABLE_IMP_REAL_SUMS_BOUNDED : forall f : N -> R, forall k : N, (real_summable (from k) f) -> real_bounded (@GSPEC R (fun GEN_PVAR_8417 : R => exists n : N, @SETSPEC R GEN_PVAR_8417 (@IN N n (@UNIV N)) (@sum N (dotdot k n) f))). +Axiom thm_REAL_SERIES_0 : forall s : N -> Prop, real_sums (fun n : N => R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL 0%N)) s. +Axiom thm_REAL_SERIES_ADD : forall x : N -> R, forall x0 : R, forall y : N -> R, forall y0 : R, forall s : N -> Prop, ((real_sums x x0 s) /\ (real_sums y y0 s)) -> real_sums (fun n : N => Rplus (x n) (y n)) (Rplus x0 y0) s. +Axiom thm_REAL_SERIES_SUB : forall x : N -> R, forall x0 : R, forall y : N -> R, forall y0 : R, forall s : N -> Prop, ((real_sums x x0 s) /\ (real_sums y y0 s)) -> real_sums (fun n : N => Rminus (x n) (y n)) (Rminus x0 y0) s. +Axiom thm_REAL_SERIES_LMUL : forall x : N -> R, forall x0 : R, forall c : R, forall s : N -> Prop, (real_sums x x0 s) -> real_sums (fun n : N => Rmult c (x n)) (Rmult c x0) s. +Axiom thm_REAL_SERIES_RMUL : forall x : N -> R, forall x0 : R, forall c : R, forall s : N -> Prop, (real_sums x x0 s) -> real_sums (fun n : N => Rmult (x n) c) (Rmult x0 c) s. +Axiom thm_REAL_SERIES_NEG : forall x : N -> R, forall x0 : R, forall s : N -> Prop, (real_sums x x0 s) -> real_sums (fun n : N => Ropp (x n)) (Ropp x0) s. +Axiom thm_REAL_SUMS_IFF : forall (l : R), forall f : N -> R, forall g : N -> R, forall k : N -> Prop, (forall x : N, (@IN N x k) -> (f x) = (g x)) -> (real_sums f l k) = (real_sums g l k). +Axiom thm_REAL_SUMS_EQ : forall (l : R), forall f : N -> R, forall g : N -> R, forall k : N -> Prop, ((forall x : N, (@IN N x k) -> (f x) = (g x)) /\ (real_sums f l k)) -> real_sums g l k. +Axiom thm_REAL_SERIES_FINITE_SUPPORT : forall f : N -> R, forall s : N -> Prop, forall k : N -> Prop, ((@FINITE N (@INTER N s k)) /\ (forall x : N, (~ (@IN N x (@INTER N s k))) -> (f x) = (R_of_N (NUMERAL 0%N)))) -> real_sums f (@sum N (@INTER N s k) f) k. +Axiom thm_REAL_SERIES_DIFFS : forall f : N -> R, forall k : N, (@longarrow N f (R_of_N (NUMERAL 0%N)) sequentially) -> real_sums (fun n : N => Rminus (f n) (f (N.add n (NUMERAL (BIT1 0%N))))) (f k) (from k). +Axiom thm_REAL_SERIES_TRIVIAL : forall f : N -> R, real_sums f (R_of_N (NUMERAL 0%N)) (@EMPTY N). +Axiom thm_REAL_SERIES_RESTRICT : forall f : N -> R, forall k : N -> Prop, forall l : R, (real_sums (fun n : N => @COND R (@IN N n k) (f n) (R_of_N (NUMERAL 0%N))) l (@UNIV N)) = (real_sums f l k). +Axiom thm_REAL_SERIES_SUM : forall f : N -> R, forall l : R, forall k : N -> Prop, forall s : N -> Prop, ((@FINITE N s) /\ ((@SUBSET N s k) /\ ((forall x : N, (~ (@IN N x s)) -> (f x) = (R_of_N (NUMERAL 0%N))) /\ ((@sum N s f) = l)))) -> real_sums f l k. +Axiom thm_REAL_SUMS_REINDEX : forall k : N, forall a : N -> R, forall l : R, forall n : N, (real_sums (fun x : N => a (N.add x k)) l (from n)) = (real_sums a l (from (N.add n k))). +Axiom thm_REAL_SERIES_EVEN : forall f : N -> R, forall l : R, forall n : N, (real_sums f l (from n)) = (real_sums (fun i : N => @COND R (EVEN i) (f (N.div i (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL 0%N))) l (from (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n))). +Axiom thm_REAL_SERIES_ODD : forall f : N -> R, forall l : R, forall n : N, (real_sums f l (from n)) = (real_sums (fun i : N => @COND R (ODD i) (f (N.div i (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL 0%N))) l (from (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N))))). +Axiom thm_REAL_INFSUM : forall f : N -> R, forall s : N -> Prop, (real_summable s f) -> (real_infsum s f) = (drop (@infsum unit s (@o N R (cart R unit) lift f))). +Axiom thm_REAL_PARTIAL_SUMS_LE_INFSUM : forall f : N -> R, forall s : N -> Prop, forall n : N, ((forall i : N, (@IN N i s) -> Rle (R_of_N (NUMERAL 0%N)) (f i)) /\ (real_summable s f)) -> Rle (@sum N (@INTER N s (dotdot (NUMERAL 0%N) n)) f) (real_infsum s f). +Axiom thm_REAL_PARTIAL_SUMS_LE_INFSUM_GEN : forall f : N -> R, forall s : N -> Prop, forall t : N -> Prop, ((@FINITE N t) /\ ((@SUBSET N t s) /\ ((forall i : N, (@IN N i s) -> Rle (R_of_N (NUMERAL 0%N)) (f i)) /\ (real_summable s f)))) -> Rle (@sum N t f) (real_infsum s f). +Axiom thm_REAL_SERIES_TERMS_TOZERO : forall f : N -> R, forall l : R, forall n : N, (real_sums f l (from n)) -> @longarrow N f (R_of_N (NUMERAL 0%N)) sequentially. +Axiom thm_REAL_SERIES_LE : forall f : N -> R, forall g : N -> R, forall s : N -> Prop, forall y : R, forall z : R, ((real_sums f y s) /\ ((real_sums g z s) /\ (forall i : N, (@IN N i s) -> Rle (f i) (g i)))) -> Rle y z. +Axiom thm_REAL_SERIES_POS : forall f : N -> R, forall s : N -> Prop, forall y : R, ((real_sums f y s) /\ (forall i : N, (@IN N i s) -> Rle (R_of_N (NUMERAL 0%N)) (f i))) -> Rle (R_of_N (NUMERAL 0%N)) y. +Axiom thm_REAL_SERIES_BOUND : forall f : N -> R, forall g : N -> R, forall s : N -> Prop, forall a : R, forall b : R, ((real_sums f a s) /\ ((real_sums g b s) /\ (forall i : N, (@IN N i s) -> Rle (Rabs (f i)) (g i)))) -> Rle (Rabs a) b. +Axiom thm_REAL_SERIES_COMPARISON_BOUND : forall f : N -> R, forall g : N -> R, forall s : N -> Prop, forall a : R, ((real_sums g a s) /\ (forall i : N, (@IN N i s) -> Rle (Rabs (f i)) (g i))) -> exists l : R, (real_sums f l s) /\ (Rle (Rabs l) a). +Axiom thm_REAL_SERIES_MUL : forall x : N -> R, forall y : N -> R, forall a : R, forall b : R, ((real_sums x a (from (NUMERAL 0%N))) /\ ((real_sums y b (from (NUMERAL 0%N))) /\ ((real_summable (from (NUMERAL 0%N)) (fun n : N => Rabs (x n))) \/ (real_summable (from (NUMERAL 0%N)) (fun n : N => Rabs (y n)))))) -> real_sums (fun n : N => @sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (x i) (y (N.sub n i)))) (Rmult a b) (from (NUMERAL 0%N)). +Axiom thm_REAL_SERIES_MUL_UNIQUE : forall x : N -> R, forall y : N -> R, forall a : R, forall b : R, forall c : R, ((real_sums x a (from (NUMERAL 0%N))) /\ ((real_sums y b (from (NUMERAL 0%N))) /\ (real_sums (fun n : N => @sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (x i) (y (N.sub n i)))) c (from (NUMERAL 0%N))))) -> (Rmult a b) = c. +Axiom thm_REAL_SUMMABLE_0 : forall s : N -> Prop, real_summable s (fun n : N => R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_SUMMABLE_ADD : forall x : N -> R, forall y : N -> R, forall s : N -> Prop, ((real_summable s x) /\ (real_summable s y)) -> real_summable s (fun n : N => Rplus (x n) (y n)). +Axiom thm_REAL_SUMMABLE_SUB : forall x : N -> R, forall y : N -> R, forall s : N -> Prop, ((real_summable s x) /\ (real_summable s y)) -> real_summable s (fun n : N => Rminus (x n) (y n)). +Axiom thm_REAL_SUMMABLE_LMUL : forall s : N -> Prop, forall x : N -> R, forall c : R, (real_summable s x) -> real_summable s (fun n : N => Rmult c (x n)). +Axiom thm_REAL_SUMMABLE_RMUL : forall s : N -> Prop, forall x : N -> R, forall c : R, (real_summable s x) -> real_summable s (fun n : N => Rmult (x n) c). +Axiom thm_REAL_SUMMABLE_NEG : forall x : N -> R, forall s : N -> Prop, (real_summable s x) -> real_summable s (fun n : N => Ropp (x n)). +Axiom thm_REAL_SUMMABLE_IFF : forall f : N -> R, forall g : N -> R, forall k : N -> Prop, (forall x : N, (@IN N x k) -> (f x) = (g x)) -> (real_summable k f) = (real_summable k g). +Axiom thm_REAL_SUMMABLE_EQ : forall f : N -> R, forall g : N -> R, forall k : N -> Prop, ((forall x : N, (@IN N x k) -> (f x) = (g x)) /\ (real_summable k f)) -> real_summable k g. +Axiom thm_REAL_SERIES_SUBSET : forall x : N -> R, forall s : N -> Prop, forall t : N -> Prop, forall l : R, ((@SUBSET N s t) /\ (real_sums (fun i : N => @COND R (@IN N i s) (x i) (R_of_N (NUMERAL 0%N))) l t)) -> real_sums x l s. +Axiom thm_REAL_SUMMABLE_SUBSET : forall x : N -> R, forall s : N -> Prop, forall t : N -> Prop, ((@SUBSET N s t) /\ (real_summable t (fun i : N => @COND R (@IN N i s) (x i) (R_of_N (NUMERAL 0%N))))) -> real_summable s x. +Axiom thm_REAL_SUMMABLE_TRIVIAL : forall f : N -> R, real_summable (@EMPTY N) f. +Axiom thm_REAL_SUMMABLE_RESTRICT : forall f : N -> R, forall k : N -> Prop, (real_summable (@UNIV N) (fun n : N => @COND R (@IN N n k) (f n) (R_of_N (NUMERAL 0%N)))) = (real_summable k f). +Axiom thm_REAL_SUMS_FINITE_DIFF : forall f : N -> R, forall t : N -> Prop, forall s : N -> Prop, forall l : R, ((@SUBSET N t s) /\ ((@FINITE N t) /\ (real_sums f l s))) -> real_sums f (Rminus l (@sum N t f)) (@DIFF N s t). +Axiom thm_REAL_SUMS_FINITE_UNION : forall f : N -> R, forall s : N -> Prop, forall t : N -> Prop, forall l : R, ((@FINITE N t) /\ (real_sums f l s)) -> real_sums f (Rplus l (@sum N (@DIFF N t s) f)) (@UNION N s t). +Axiom thm_REAL_SUMS_OFFSET : forall f : N -> R, forall l : R, forall m : N, forall n : N, ((real_sums f l (from m)) /\ (N.lt m n)) -> real_sums f (Rminus l (@sum N (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f)) (from n). +Axiom thm_REAL_SUMS_OFFSET_REV : forall f : N -> R, forall l : R, forall m : N, forall n : N, ((real_sums f l (from m)) /\ (N.lt n m)) -> real_sums f (Rplus l (@sum N (dotdot n (N.sub m (NUMERAL (BIT1 0%N)))) f)) (from n). +Axiom thm_REAL_SUMMABLE_EVEN : forall f : N -> R, forall n : N, (real_summable (from n) f) = (real_summable (from (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n)) (fun i : N => @COND R (EVEN i) (f (N.div i (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_SUMMABLE_ODD : forall f : N -> R, forall n : N, (real_summable (from n) f) = (real_summable (from (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) (fun i : N => @COND R (ODD i) (f (N.div i (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_INFSUM_0 : forall (s : N -> Prop), (real_infsum s (fun i : N => R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_INFSUM_ADD : forall x : N -> R, forall y : N -> R, forall s : N -> Prop, ((real_summable s x) /\ (real_summable s y)) -> (real_infsum s (fun i : N => Rplus (x i) (y i))) = (Rplus (real_infsum s x) (real_infsum s y)). +Axiom thm_REAL_INFSUM_SUB : forall x : N -> R, forall y : N -> R, forall s : N -> Prop, ((real_summable s x) /\ (real_summable s y)) -> (real_infsum s (fun i : N => Rminus (x i) (y i))) = (Rminus (real_infsum s x) (real_infsum s y)). +Axiom thm_REAL_INFSUM_LMUL : forall s : N -> Prop, forall x : N -> R, forall c : R, (real_summable s x) -> (real_infsum s (fun n : N => Rmult c (x n))) = (Rmult c (real_infsum s x)). +Axiom thm_REAL_INFSUM_RMUL : forall s : N -> Prop, forall x : N -> R, forall c : R, (real_summable s x) -> (real_infsum s (fun n : N => Rmult (x n) c)) = (Rmult (real_infsum s x) c). +Axiom thm_REAL_INFSUM_NEG : forall s : N -> Prop, forall x : N -> R, (real_summable s x) -> (real_infsum s (fun n : N => Ropp (x n))) = (Ropp (real_infsum s x)). +Axiom thm_REAL_INFSUM_EQ : forall f : N -> R, forall g : N -> R, forall k : N -> Prop, ((real_summable k f) /\ ((real_summable k g) /\ (forall x : N, (@IN N x k) -> (f x) = (g x)))) -> (real_infsum k f) = (real_infsum k g). +Axiom thm_REAL_INFSUM_RESTRICT : forall k : N -> Prop, forall a : N -> R, (real_infsum (@UNIV N) (fun n : N => @COND R (@IN N n k) (a n) (R_of_N (NUMERAL 0%N)))) = (real_infsum k a). +Axiom thm_REAL_INFSUM_EVEN : forall f : N -> R, forall n : N, (real_infsum (from n) f) = (real_infsum (from (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n)) (fun i : N => @COND R (EVEN i) (f (N.div i (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_INFSUM_ODD : forall f : N -> R, forall n : N, (real_infsum (from n) f) = (real_infsum (from (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) (fun i : N => @COND R (ODD i) (f (N.div i (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_SERIES_CAUCHY_UNIFORM : forall {A : Type'}, forall P : A -> Prop, forall f : A -> N -> R, forall k : N -> Prop, (exists l : A -> R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall x : A, ((N.le N' n) /\ (P x)) -> Rlt (Rabs (Rminus (@sum N (@INTER N k (dotdot (NUMERAL 0%N) n)) (f x)) (l x))) e) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall m : N, forall n : N, forall x : A, ((N.le N' m) /\ (P x)) -> Rlt (Rabs (@sum N (@INTER N k (dotdot m n)) (f x))) e). +Axiom thm_REAL_SERIES_COMPARISON : forall f : N -> R, forall g : N -> R, forall s : N -> Prop, ((exists l : R, real_sums g l s) /\ (exists N' : N, forall n : N, ((N.ge n N') /\ (@IN N n s)) -> Rle (Rabs (f n)) (g n))) -> exists l : R, real_sums f l s. +Axiom thm_REAL_SUMMABLE_COMPARISON : forall f : N -> R, forall g : N -> R, forall s : N -> Prop, ((real_summable s g) /\ (exists N' : N, forall n : N, ((N.ge n N') /\ (@IN N n s)) -> Rle (Rabs (f n)) (g n))) -> real_summable s f. +Axiom thm_REAL_SERIES_COMPARISON_UNIFORM : forall {A : Type'}, forall f : A -> N -> R, forall g : N -> R, forall P : A -> Prop, forall s : N -> Prop, ((exists l : R, real_sums g l s) /\ (exists N' : N, forall n : N, forall x : A, ((N.le N' n) /\ ((@IN N n s) /\ (P x))) -> Rle (Rabs (f x n)) (g n))) -> exists l : A -> R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall x : A, ((N.le N' n) /\ (P x)) -> Rlt (Rabs (Rminus (@sum N (@INTER N s (dotdot (NUMERAL 0%N) n)) (f x)) (l x))) e. +Axiom thm_REAL_SUMMABLE_POS_SUBSET : forall s : N -> Prop, forall t : N -> Prop, forall f : N -> R, ((forall x : N, (@IN N x t) -> Rle (R_of_N (NUMERAL 0%N)) (f x)) /\ ((real_summable t f) /\ (@SUBSET N s t))) -> real_summable s f. +Axiom thm_REAL_SERIES_RATIO : forall c : R, forall a : N -> R, forall s : N -> Prop, forall N' : N, ((Rlt c (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall n : N, (N.ge n N') -> Rle (Rabs (a (N.succ n))) (Rmult c (Rabs (a n))))) -> exists l : R, real_sums a l s. +Axiom thm_BOUNDED_PARTIAL_REAL_SUMS : forall f : N -> R, forall k : N, (real_bounded (@GSPEC R (fun GEN_PVAR_8422 : R => exists n : N, @SETSPEC R GEN_PVAR_8422 (@IN N n (@UNIV N)) (@sum N (dotdot k n) f)))) -> real_bounded (@GSPEC R (fun GEN_PVAR_8423 : R => exists m : N, exists n : N, @SETSPEC R GEN_PVAR_8423 ((@IN N m (@UNIV N)) /\ (@IN N n (@UNIV N))) (@sum N (dotdot m n) f))). +Axiom thm_REAL_SERIES_DIRICHLET : forall f : N -> R, forall g : N -> R, forall N' : N, forall k : N, forall m : N, ((real_bounded (@GSPEC R (fun GEN_PVAR_8426 : R => exists n : N, @SETSPEC R GEN_PVAR_8426 (@IN N n (@UNIV N)) (@sum N (dotdot m n) f)))) /\ ((forall n : N, (N.le N' n) -> Rle (g (N.add n (NUMERAL (BIT1 0%N)))) (g n)) /\ (@longarrow N g (R_of_N (NUMERAL 0%N)) sequentially))) -> real_summable (from k) (fun n : N => Rmult (g n) (f n)). +Axiom thm_REAL_SERIES_ABSCONV_IMP_CONV : forall x : N -> R, forall k : N -> Prop, (real_summable k (fun n : N => Rabs (x n))) -> real_summable k x. +Axiom thm_SERIES_NORMCONV_IMP_CONV : forall {N' : Type'}, forall s : N -> Prop, forall f : N -> cart R N', (real_summable s (fun n : N => @vector_norm N' (f n))) -> @summable N' s f. +Axiom thm_REAL_SUMS_GP : forall n : N, forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> real_sums (fun k : N => real_pow x k) (Rdiv (real_pow x n) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) x)) (from n). +Axiom thm_REAL_SUMMABLE_GP : forall x : R, forall k : N -> Prop, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> real_summable k (fun n : N => real_pow x n). +Axiom thm_REAL_SUMMABLE_ZETA : forall n : N, forall x : R, (Rlt (R_of_N (NUMERAL (BIT1 0%N))) x) -> real_summable (from n) (fun k : N => Rinv (rpow (R_of_N k) x)). +Axiom thm_REAL_SUMMABLE_ZETA_INTEGER : forall n : N, forall m : N, (N.le (NUMERAL (BIT0 (BIT1 0%N))) m) -> real_summable (from n) (fun k : N => Rinv (real_pow (R_of_N k) m)). +Axiom thm_REAL_ABEL_LEMMA : forall (k : N -> Prop), forall a : N -> R, forall M : R, forall r : R, forall r0 : R, ((Rle (R_of_N (NUMERAL 0%N)) r) /\ ((Rlt r r0) /\ (forall n : N, (@IN N n k) -> Rle (Rmult (Rabs (a n)) (real_pow r0 n)) M))) -> real_summable k (fun n : N => Rmult (Rabs (a n)) (real_pow r n)). +Axiom thm_REAL_POWER_SERIES_CONV_IMP_ABSCONV : forall a : N -> R, forall k : N -> Prop, forall w : R, forall z : R, ((real_summable k (fun n : N => Rmult (a n) (real_pow z n))) /\ (Rlt (Rabs w) (Rabs z))) -> real_summable k (fun n : N => Rabs (Rmult (a n) (real_pow w n))). +Axiom thm_POWER_REAL_SERIES_CONV_IMP_ABSCONV_WEAK : forall a : N -> R, forall k : N -> Prop, forall w : R, forall z : R, ((real_summable k (fun n : N => Rmult (a n) (real_pow z n))) /\ (Rlt (Rabs w) (Rabs z))) -> real_summable k (fun n : N => Rmult (Rabs (a n)) (real_pow w n)). +Axiom thm_REAL_SUMMABLE_MUL_LEFT : forall x : N -> R, forall y : N -> R, forall m : N, forall n : N, forall p : N, ((real_summable (from m) (fun n' : N => Rabs (x n'))) /\ (real_summable (from n) y)) -> real_summable (from p) (fun n' : N => @sum N (dotdot (NUMERAL 0%N) n') (fun i : N => Rmult (x i) (y (N.sub n' i)))). +Axiom thm_REAL_SUMMABLE_MUL_RIGHT : forall x : N -> R, forall y : N -> R, forall m : N, forall n : N, forall p : N, ((real_summable (from m) x) /\ (real_summable (from n) (fun n' : N => Rabs (y n')))) -> real_summable (from p) (fun n' : N => @sum N (dotdot (NUMERAL 0%N) n') (fun i : N => Rmult (x i) (y (N.sub n' i)))). +Axiom thm_atreal : forall a : R, (atreal a) = (@atpointof R euclideanreal a). +Axiom thm_ATREAL : forall a : R, (@netfilter R (atreal a)) = (@GSPEC (R -> Prop) (fun GEN_PVAR_8427 : R -> Prop => exists u : R -> Prop, @SETSPEC (R -> Prop) GEN_PVAR_8427 ((real_open u) /\ (@IN R a u)) u)). +Axiom thm_NETLIMIT_ATREAL : forall a : R, (@netlimit R (atreal a)) = a. +Axiom thm_NETLIMIT_WITHINREAL : forall a : R, forall s : R -> Prop, (@netlimit R (@within R (atreal a) s)) = a. +Axiom thm_WITHINREAL_UNIV : forall x : R, (@within R (atreal x) (@UNIV R)) = (atreal x). +Axiom thm_EVENTUALLY_ATREAL : forall a : R, forall p : R -> Prop, (@eventually R p (atreal a)) = (exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) (Rabs (Rminus x a))) /\ (Rlt (Rabs (Rminus x a)) d)) -> p x)). +Axiom thm_TRIVIAL_LIMIT_ATREAL : forall a : R, ~ (@trivial_limit R (atreal a)). +Axiom thm_EVENTUALLY_WITHINREAL : forall s : R -> Prop, forall a : R, forall p : R -> Prop, (@eventually R p (@within R (atreal a) s)) = (exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : R, ((@IN R x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (Rabs (Rminus x a))) /\ (Rlt (Rabs (Rminus x a)) d))) -> p x)). +Axiom thm_EVENTUALLY_WITHINREAL_LE : forall s : R -> Prop, forall a : R, forall p : R -> Prop, (@eventually R p (@within R (atreal a) s)) = (exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : R, ((@IN R x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (Rabs (Rminus x a))) /\ (Rle (Rabs (Rminus x a)) d))) -> p x)). +Axiom thm_LIM_WITHINREAL_LE : forall {N' : Type'}, forall f : R -> cart R N', forall l : cart R N', forall a : R, forall s : R -> Prop, (@FImp N' R f l (@within R (atreal a) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : R, ((@IN R x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (Rabs (Rminus x a))) /\ (Rle (Rabs (Rminus x a)) d))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) l)) e)). +Axiom thm_LIM_WITHINREAL : forall {N' : Type'}, forall f : R -> cart R N', forall l : cart R N', forall a : R, forall s : R -> Prop, (@FImp N' R f l (@within R (atreal a) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : R, ((@IN R x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (Rabs (Rminus x a))) /\ (Rlt (Rabs (Rminus x a)) d))) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) l)) e)). +Axiom thm_LIM_ATREAL : forall {N' : Type'}, forall f : R -> cart R N', forall l : cart R N', forall a : R, (@FImp N' R f l (atreal a)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) (Rabs (Rminus x a))) /\ (Rlt (Rabs (Rminus x a)) d)) -> Rlt (@distance N' (@pair (cart R N') (cart R N') (f x) l)) e)). +Axiom thm_REALLIM_WITHINREAL_LE : forall f : R -> R, forall l : R, forall a : R, forall s : R -> Prop, (@longarrow R f l (@within R (atreal a) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : R, ((@IN R x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (Rabs (Rminus x a))) /\ (Rle (Rabs (Rminus x a)) d))) -> Rlt (Rabs (Rminus (f x) l)) e)). +Axiom thm_REALLIM_WITHINREAL : forall f : R -> R, forall l : R, forall a : R, forall s : R -> Prop, (@longarrow R f l (@within R (atreal a) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : R, ((@IN R x s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (Rabs (Rminus x a))) /\ (Rlt (Rabs (Rminus x a)) d))) -> Rlt (Rabs (Rminus (f x) l)) e)). +Axiom thm_REALLIM_ATREAL : forall f : R -> R, forall l : R, forall a : R, (@longarrow R f l (atreal a)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) (Rabs (Rminus x a))) /\ (Rlt (Rabs (Rminus x a)) d)) -> Rlt (Rabs (Rminus (f x) l)) e)). +Axiom thm_REALLIM_AT_POSINFINITY : forall f : R -> R, forall l : R, (@longarrow R f l at_posinfinity) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists b : R, forall x : R, (Rge x b) -> Rlt (Rabs (Rminus (f x) l)) e). +Axiom thm_REALLIM_AT_NEGINFINITY : forall f : R -> R, forall l : R, (@longarrow R f l at_neginfinity) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists b : R, forall x : R, (Rle x b) -> Rlt (Rabs (Rminus (f x) l)) e). +Axiom thm_LIM_ATREAL_WITHINREAL : forall {_1682671 : Type'}, forall f : R -> cart R _1682671, forall l : cart R _1682671, forall a : R, forall s : R -> Prop, (@FImp _1682671 R f l (atreal a)) -> @FImp _1682671 R f l (@within R (atreal a) s). +Axiom thm_REALLIM_AT_WITHIN : forall {_1682716 : Type'}, forall f : (cart R _1682716) -> R, forall l : R, forall a : cart R _1682716, forall s : (cart R _1682716) -> Prop, (@longarrow (cart R _1682716) f l (@_at _1682716 a)) -> @longarrow (cart R _1682716) f l (@within (cart R _1682716) (@_at _1682716 a) s). +Axiom thm_REALLIM_ATREAL_WITHINREAL : forall f : R -> R, forall l : R, forall a : R, forall s : R -> Prop, (@longarrow R f l (atreal a)) -> @longarrow R f l (@within R (atreal a) s). +Axiom thm_REALLIM_WITHIN_SUBSET : forall {_1682794 : Type'}, forall f : (cart R _1682794) -> R, forall l : R, forall a : cart R _1682794, forall s : (cart R _1682794) -> Prop, forall t : (cart R _1682794) -> Prop, ((@longarrow (cart R _1682794) f l (@within (cart R _1682794) (@_at _1682794 a) s)) /\ (@SUBSET (cart R _1682794) t s)) -> @longarrow (cart R _1682794) f l (@within (cart R _1682794) (@_at _1682794 a) t). +Axiom thm_REALLIM_WITHINREAL_SUBSET : forall f : R -> R, forall l : R, forall a : R, forall s : R -> Prop, forall t : R -> Prop, ((@longarrow R f l (@within R (atreal a) s)) /\ (@SUBSET R t s)) -> @longarrow R f l (@within R (atreal a) t). +Axiom thm_LIM_WITHINREAL_SUBSET : forall {_1682867 : Type'}, forall f : R -> cart R _1682867, forall l : cart R _1682867, forall a : R, forall s : R -> Prop, forall t : R -> Prop, ((@FImp _1682867 R f l (@within R (atreal a) s)) /\ (@SUBSET R t s)) -> @FImp _1682867 R f l (@within R (atreal a) t). +Axiom thm_REALLIM_ATREAL_ID : forall (a : R), @longarrow R (fun x : R => x) a (atreal a). +Axiom thm_REALLIM_WITHINREAL_ID : forall (s : R -> Prop), forall a : R, @longarrow R (fun x : R => x) a (@within R (atreal a) s). +Axiom thm_LIM_TRANSFORM_WITHINREAL_SET : forall {_1682954 : Type'} (l : cart R _1682954), forall f : R -> cart R _1682954, forall a : R, forall s : R -> Prop, forall t : R -> Prop, (@eventually R (fun x : R => (@IN R x s) = (@IN R x t)) (atreal a)) -> (@FImp _1682954 R f l (@within R (atreal a) s)) = (@FImp _1682954 R f l (@within R (atreal a) t)). +Axiom thm_REALLIM_TRANSFORM_WITHIN_SET : forall {_1683030 : Type'} (l : R), forall f : (cart R _1683030) -> R, forall a : cart R _1683030, forall s : (cart R _1683030) -> Prop, forall t : (cart R _1683030) -> Prop, (@eventually (cart R _1683030) (fun x : cart R _1683030 => (@IN (cart R _1683030) x s) = (@IN (cart R _1683030) x t)) (@_at _1683030 a)) -> (@longarrow (cart R _1683030) f l (@within (cart R _1683030) (@_at _1683030 a) s)) = (@longarrow (cart R _1683030) f l (@within (cart R _1683030) (@_at _1683030 a) t)). +Axiom thm_REALLIM_TRANSFORM_WITHINREAL_SET : forall (l : R), forall f : R -> R, forall a : R, forall s : R -> Prop, forall t : R -> Prop, (@eventually R (fun x : R => (@IN R x s) = (@IN R x t)) (atreal a)) -> (@longarrow R f l (@within R (atreal a) s)) = (@longarrow R f l (@within R (atreal a) t)). +Axiom thm_REALLIM_TRANSFORM_WITHIN_SET_IMP : forall {_1683147 : Type'}, forall f : (cart R _1683147) -> R, forall l : R, forall a : cart R _1683147, forall s : (cart R _1683147) -> Prop, forall t : (cart R _1683147) -> Prop, ((@eventually (cart R _1683147) (fun x : cart R _1683147 => (@IN (cart R _1683147) x t) -> @IN (cart R _1683147) x s) (@_at _1683147 a)) /\ (@longarrow (cart R _1683147) f l (@within (cart R _1683147) (@_at _1683147 a) s))) -> @longarrow (cart R _1683147) f l (@within (cart R _1683147) (@_at _1683147 a) t). +Axiom thm_LIM_TRANSFORM_WITHINREAL_SET_IMP : forall {_1683198 : Type'}, forall f : R -> cart R _1683198, forall l : cart R _1683198, forall a : R, forall s : R -> Prop, forall t : R -> Prop, ((@eventually R (fun x : R => (@IN R x t) -> @IN R x s) (atreal a)) /\ (@FImp _1683198 R f l (@within R (atreal a) s))) -> @FImp _1683198 R f l (@within R (atreal a) t). +Axiom thm_REALLIM_TRANSFORM_WITHINREAL_SET_IMP : forall f : R -> R, forall l : R, forall a : R, forall s : R -> Prop, forall t : R -> Prop, ((@eventually R (fun x : R => (@IN R x t) -> @IN R x s) (atreal a)) /\ (@longarrow R f l (@within R (atreal a) s))) -> @longarrow R f l (@within R (atreal a) t). +Axiom thm_REALLIM_COMPOSE_WITHIN : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : R -> R, forall s : R -> Prop, forall y : R, forall z : R, ((@longarrow A f y net') /\ ((@eventually A (fun w : A => (@IN R (f w) s) /\ (((f w) = y) -> (g y) = z)) net') /\ (@longarrow R g z (@within R (atreal y) s)))) -> @longarrow A (@o A R R g f) z net'. +Axiom thm_REALLIM_COMPOSE_AT : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : R -> R, forall y : R, forall z : R, ((@longarrow A f y net') /\ ((@eventually A (fun w : A => ((f w) = y) -> (g y) = z) net') /\ (@longarrow R g z (atreal y)))) -> @longarrow A (@o A R R g f) z net'. +Axiom thm_ALTERNATING_SUM_BOUNDS : forall a : N -> R, ((forall n : N, Rle (Rabs (a (N.succ n))) (Rabs (a n))) /\ ((forall n : N, (EVEN n) -> Rle (R_of_N (NUMERAL 0%N)) (a n)) /\ (forall n : N, (ODD n) -> Rle (a n) (R_of_N (NUMERAL 0%N))))) -> forall m : N, forall n : N, ((EVEN m) -> (Rle (R_of_N (NUMERAL 0%N)) (@sum N (dotdot m n) a)) /\ (Rle (@sum N (dotdot m n) a) (a m))) /\ ((ODD m) -> (Rle (a m) (@sum N (dotdot m n) a)) /\ (Rle (@sum N (dotdot m n) a) (R_of_N (NUMERAL 0%N)))). +Axiom thm_ALTERNATING_SUM_BOUND : forall a : N -> R, ((forall n : N, Rle (Rabs (a (N.succ n))) (Rabs (a n))) /\ ((forall n : N, (EVEN n) -> Rle (R_of_N (NUMERAL 0%N)) (a n)) /\ (forall n : N, (ODD n) -> Rle (a n) (R_of_N (NUMERAL 0%N))))) -> forall m : N, forall n : N, Rle (Rabs (@sum N (dotdot m n) a)) (Rabs (a m)). +Axiom thm_REAL_SUMMABLE_ALTERNATING_SERIES : forall a : N -> R, forall m : N, ((forall n : N, Rle (Rabs (a (N.succ n))) (Rabs (a n))) /\ ((forall n : N, (EVEN n) -> Rle (R_of_N (NUMERAL 0%N)) (a n)) /\ ((forall n : N, (ODD n) -> Rle (a n) (R_of_N (NUMERAL 0%N))) /\ (@longarrow N a (R_of_N (NUMERAL 0%N)) sequentially)))) -> real_summable (from m) a. +Axiom thm_TRIVIAL_LIMIT_WITHINREAL_WITHIN : forall (x : R) (s : R -> Prop), (@trivial_limit R (@within R (atreal x) s)) = (@trivial_limit (cart R unit) (@within (cart R unit) (@_at unit (lift x)) (@IMAGE R (cart R unit) lift s))). +Axiom thm_TRIVIAL_LIMIT_WITHINREAL_WITHINCOMPLEX : forall (x : R) (s : R -> Prop), (@trivial_limit R (@within R (atreal x) s)) = (@trivial_limit (cart R (tybit0 unit)) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (Cx x)) (@INTER (cart R (tybit0 unit)) real (@IMAGE R (cart R (tybit0 unit)) Cx s)))). +Axiom thm_LIM_WITHINREAL_WITHINCOMPLEX : forall {_1684045 : Type'} (f : R -> cart R _1684045) (a : cart R _1684045) (x : R) (s : R -> Prop), (@FImp _1684045 R f a (@within R (atreal x) s)) = (@FImp _1684045 (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) R (cart R _1684045) f Re) a (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (Cx x)) (@INTER (cart R (tybit0 unit)) real (@IMAGE R (cart R (tybit0 unit)) Cx s)))). +Axiom thm_LIM_ATREAL_ATCOMPLEX : forall {_1684080 : Type'} (f : R -> cart R _1684080) (a : cart R _1684080) (x : R), (@FImp _1684080 R f a (atreal x)) = (@FImp _1684080 (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) R (cart R _1684080) f Re) a (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (Cx x)) real)). +Axiom thm_LIM_WITHINREAL_WITHIN : forall {_1684105 : Type'} (f : R -> cart R _1684105) (a : cart R _1684105) (x : R) (s : R -> Prop), (@FImp _1684105 R f a (@within R (atreal x) s)) = (@FImp _1684105 (cart R unit) (@o (cart R unit) R (cart R _1684105) f drop) a (@within (cart R unit) (@_at unit (lift x)) (@IMAGE R (cart R unit) lift s))). +Axiom thm_LIM_ATREAL_AT : forall {_1684137 : Type'} (f : R -> cart R _1684137) (a : cart R _1684137) (x : R), (@FImp _1684137 R f a (atreal x)) = (@FImp _1684137 (cart R unit) (@o (cart R unit) R (cart R _1684137) f drop) a (@_at unit (lift x))). +Axiom thm_REALLIM_WITHINREAL_WITHIN : forall (f : R -> R) (a : R) (x : R) (s : R -> Prop), (@longarrow R f a (@within R (atreal x) s)) = (@longarrow (cart R unit) (@o (cart R unit) R R f drop) a (@within (cart R unit) (@_at unit (lift x)) (@IMAGE R (cart R unit) lift s))). +Axiom thm_REALLIM_ATREAL_AT : forall (f : R -> R) (a : R) (x : R), (@longarrow R f a (atreal x)) = (@longarrow (cart R unit) (@o (cart R unit) R R f drop) a (@_at unit (lift x))). +Axiom thm_REALLIM_WITHIN_OPEN : forall {N' : Type'}, forall f : (cart R N') -> R, forall l : R, forall a : cart R N', forall s : (cart R N') -> Prop, ((@IN (cart R N') a s) /\ (@_open N' s)) -> (@longarrow (cart R N') f l (@within (cart R N') (@_at N' a) s)) = (@longarrow (cart R N') f l (@_at N' a)). +Axiom thm_LIM_WITHIN_REAL_OPEN : forall {N' : Type'}, forall f : R -> cart R N', forall l : cart R N', forall a : R, forall s : R -> Prop, ((@IN R a s) /\ (real_open s)) -> (@FImp N' R f l (@within R (atreal a) s)) = (@FImp N' R f l (atreal a)). +Axiom thm_REALLIM_WITHIN_REAL_OPEN : forall f : R -> R, forall l : R, forall a : R, forall s : R -> Prop, ((@IN R a s) /\ (real_open s)) -> (@longarrow R f l (@within R (atreal a) s)) = (@longarrow R f l (atreal a)). +Axiom thm_LIM_ATREAL_ZERO : forall {_1684346 : Type'}, forall f : R -> cart R _1684346, forall l : cart R _1684346, forall a : R, (@FImp _1684346 R f l (atreal a)) = (@FImp _1684346 R (fun x : R => f (Rplus a x)) l (atreal (R_of_N (NUMERAL 0%N)))). +Axiom thm_REALLIM_AT_ZERO : forall f : (cart R (tybit0 unit)) -> R, forall l : R, forall a : cart R (tybit0 unit), (@longarrow (cart R (tybit0 unit)) f l (@_at (tybit0 unit) a)) = (@longarrow (cart R (tybit0 unit)) (fun x : cart R (tybit0 unit) => f (@vector_add (tybit0 unit) a x)) l (@_at (tybit0 unit) (@vec (tybit0 unit) (NUMERAL 0%N)))). +Axiom thm_REALLIM_ATREAL_ZERO : forall f : R -> R, forall l : R, forall a : R, (@longarrow R f l (atreal a)) = (@longarrow R (fun x : R => f (Rplus a x)) l (atreal (R_of_N (NUMERAL 0%N)))). +Axiom thm_LIM_CONG_WITHINREAL : forall {_1684466 : Type'} (f : R -> cart R _1684466) (g : R -> cart R _1684466) (l : cart R _1684466) (a : R) (s : R -> Prop), (forall x : R, (~ (x = a)) -> (f x) = (g x)) -> (@FImp _1684466 R (fun x : R => f x) l (@within R (atreal a) s)) = (@FImp _1684466 R g l (@within R (atreal a) s)). +Axiom thm_LIM_CONG_ATREAL : forall {_1684504 : Type'} (f : R -> cart R _1684504) (g : R -> cart R _1684504) (l : cart R _1684504) (a : R), (forall x : R, (~ (x = a)) -> (f x) = (g x)) -> (@FImp _1684504 R (fun x : R => f x) l (atreal a)) = (@FImp _1684504 R g l (atreal a)). +Axiom thm_REALLIM_CONG_WITHIN : forall {_1684547 : Type'} (f : (cart R _1684547) -> R) (g : (cart R _1684547) -> R) (l : R) (a : cart R _1684547) (s : (cart R _1684547) -> Prop), (forall x : cart R _1684547, (~ (x = a)) -> (f x) = (g x)) -> (@longarrow (cart R _1684547) (fun x : cart R _1684547 => f x) l (@within (cart R _1684547) (@_at _1684547 a) s)) = (@longarrow (cart R _1684547) g l (@within (cart R _1684547) (@_at _1684547 a) s)). +Axiom thm_REALLIM_CONG_AT : forall {_1684582 : Type'} (f : (cart R _1684582) -> R) (g : (cart R _1684582) -> R) (l : R) (a : cart R _1684582), (forall x : cart R _1684582, (~ (x = a)) -> (f x) = (g x)) -> (@longarrow (cart R _1684582) (fun x : cart R _1684582 => f x) l (@_at _1684582 a)) = (@longarrow (cart R _1684582) g l (@_at _1684582 a)). +Axiom thm_REALLIM_CONG_WITHINREAL : forall (f : R -> R) (g : R -> R) (l : R) (a : R) (s : R -> Prop), (forall x : R, (~ (x = a)) -> (f x) = (g x)) -> (@longarrow R (fun x : R => f x) l (@within R (atreal a) s)) = (@longarrow R g l (@within R (atreal a) s)). +Axiom thm_REALLIM_CONG_ATREAL : forall (f : R -> R) (g : R -> R) (l : R) (a : R), (forall x : R, (~ (x = a)) -> (f x) = (g x)) -> (@longarrow R (fun x : R => f x) l (atreal a)) = (@longarrow R g l (atreal a)). +Axiom thm_REAL_ABEL_LIMIT_THEOREM : forall s : N -> Prop, forall a : N -> R, (real_summable s a) -> (forall r : R, (Rlt (Rabs r) (R_of_N (NUMERAL (BIT1 0%N)))) -> real_summable s (fun i : N => Rmult (a i) (real_pow r i))) /\ (@longarrow R (fun r : R => real_infsum s (fun i : N => Rmult (a i) (real_pow r i))) (real_infsum s a) (@within R (atreal (R_of_N (NUMERAL (BIT1 0%N)))) (@GSPEC R (fun GEN_PVAR_8428 : R => exists z : R, @SETSPEC R GEN_PVAR_8428 (Rle z (R_of_N (NUMERAL (BIT1 0%N)))) z)))). +Axiom thm_real_continuous : forall {_1684948 : Type'}, forall f : _1684948 -> R, forall net' : net _1684948, (@real_continuous _1684948 f net') = (@longarrow _1684948 f (f (@netlimit _1684948 net')) net'). +Axiom thm_REAL_CONTINUOUS_TRIVIAL_LIMIT : forall {_1684963 : Type'}, forall f : _1684963 -> R, forall net' : net _1684963, (@trivial_limit _1684963 net') -> @real_continuous _1684963 f net'. +Axiom thm_REAL_CONTINUOUS_WITHIN : forall {N' : Type'}, forall f : (cart R N') -> R, forall x : cart R N', forall s : (cart R N') -> Prop, (@real_continuous (cart R N') f (@within (cart R N') (@_at N' x) s)) = (@longarrow (cart R N') f (f x) (@within (cart R N') (@_at N' x) s)). +Axiom thm_REAL_CONTINUOUS_AT : forall {_1685030 : Type'}, forall f : (cart R _1685030) -> R, forall x : cart R _1685030, (@real_continuous (cart R _1685030) f (@_at _1685030 x)) = (@longarrow (cart R _1685030) f (f x) (@_at _1685030 x)). +Axiom thm_REAL_CONTINUOUS_WITHINREAL : forall f : R -> R, forall x : R, forall s : R -> Prop, (@real_continuous R f (@within R (atreal x) s)) = (@longarrow R f (f x) (@within R (atreal x) s)). +Axiom thm_REAL_CONTINUOUS_ATREAL : forall f : R -> R, forall x : R, (@real_continuous R f (atreal x)) = (@longarrow R f (f x) (atreal x)). +Axiom thm_CONTINUOUS_WITHINREAL : forall {_1685114 : Type'}, forall f : R -> cart R _1685114, forall x : R, forall s : R -> Prop, (@continuous _1685114 R f (@within R (atreal x) s)) = (@FImp _1685114 R f (f x) (@within R (atreal x) s)). +Axiom thm_CONTINUOUS_ATREAL : forall {_1685143 : Type'}, forall f : R -> cart R _1685143, forall x : R, (@continuous _1685143 R f (atreal x)) = (@FImp _1685143 R f (f x) (atreal x)). +Axiom thm_real_continuous_within : forall {_1685181 : Type'} (s : (cart R _1685181) -> Prop) (f : (cart R _1685181) -> R) (x : cart R _1685181), (@real_continuous (cart R _1685181) f (@within (cart R _1685181) (@_at _1685181 x) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R _1685181, ((@IN (cart R _1685181) x' s) /\ (Rlt (@distance _1685181 (@pair (cart R _1685181) (cart R _1685181) x' x)) d)) -> Rlt (Rabs (Rminus (f x') (f x))) e)). +Axiom thm_real_continuous_at : forall {_1685243 : Type'} (f : (cart R _1685243) -> R) (x : cart R _1685243), (@real_continuous (cart R _1685243) f (@_at _1685243 x)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : cart R _1685243, (Rlt (@distance _1685243 (@pair (cart R _1685243) (cart R _1685243) x' x)) d) -> Rlt (Rabs (Rminus (f x') (f x))) e)). +Axiom thm_real_continuous_withinreal : forall (s : R -> Prop) (f : R -> R) (x : R), (@real_continuous R f (@within R (atreal x) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : R, ((@IN R x' s) /\ (Rlt (Rabs (Rminus x' x)) d)) -> Rlt (Rabs (Rminus (f x') (f x))) e)). +Axiom thm_real_continuous_atreal : forall (f : R -> R) (x : R), (@real_continuous R f (atreal x)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : R, (Rlt (Rabs (Rminus x' x)) d) -> Rlt (Rabs (Rminus (f x') (f x))) e)). +Axiom thm_REAL_CONTINUOUS_AT_WITHIN : forall {_1685469 : Type'}, forall f : (cart R _1685469) -> R, forall s : (cart R _1685469) -> Prop, forall x : cart R _1685469, (@real_continuous (cart R _1685469) f (@_at _1685469 x)) -> @real_continuous (cart R _1685469) f (@within (cart R _1685469) (@_at _1685469 x) s). +Axiom thm_REAL_CONTINUOUS_ATREAL_WITHINREAL : forall f : R -> R, forall s : R -> Prop, forall x : R, (@real_continuous R f (atreal x)) -> @real_continuous R f (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_WITHINREAL_SUBSET : forall (x : R), forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((@real_continuous R f (@within R (atreal x) s)) /\ (@SUBSET R t s)) -> @real_continuous R f (@within R (atreal x) t). +Axiom thm_REAL_CONTINUOUS_WITHIN_SUBSET : forall {_1685565 : Type'} (x : cart R _1685565), forall f : (cart R _1685565) -> R, forall s : (cart R _1685565) -> Prop, forall t : (cart R _1685565) -> Prop, ((@real_continuous (cart R _1685565) f (@within (cart R _1685565) (@_at _1685565 x) s)) /\ (@SUBSET (cart R _1685565) t s)) -> @real_continuous (cart R _1685565) f (@within (cart R _1685565) (@_at _1685565 x) t). +Axiom thm_CONTINUOUS_WITHINREAL_SUBSET : forall {_1685585 : Type'} (x : R), forall f : R -> cart R _1685585, forall s : R -> Prop, forall t : R -> Prop, ((@continuous _1685585 R f (@within R (atreal x) s)) /\ (@SUBSET R t s)) -> @continuous _1685585 R f (@within R (atreal x) t). +Axiom thm_continuous_withinreal : forall {_1685638 : Type'} (s : R -> Prop) (f : R -> cart R _1685638) (x : R), (@continuous _1685638 R f (@within R (atreal x) s)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : R, ((@IN R x' s) /\ (Rlt (Rabs (Rminus x' x)) d)) -> Rlt (@distance _1685638 (@pair (cart R _1685638) (cart R _1685638) (f x') (f x))) e)). +Axiom thm_continuous_atreal : forall {_1685703 : Type'} (f : R -> cart R _1685703) (x : R), (@continuous _1685703 R f (atreal x)) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : R, (Rlt (Rabs (Rminus x' x)) d) -> Rlt (@distance _1685703 (@pair (cart R _1685703) (cart R _1685703) (f x') (f x))) e)). +Axiom thm_CONTINUOUS_ATREAL_WITHINREAL : forall {_1685772 : Type'}, forall f : R -> cart R _1685772, forall x : R, forall s : R -> Prop, (@continuous _1685772 R f (atreal x)) -> @continuous _1685772 R f (@within R (atreal x) s). +Axiom thm_CONTINUOUS_CX_ATREAL : forall x : R, @continuous (tybit0 unit) R Cx (atreal x). +Axiom thm_CONTINUOUS_CX_WITHINREAL : forall s : R -> Prop, forall x : R, @continuous (tybit0 unit) R Cx (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_TRANSFORM_WITHIN : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall s : (cart R N') -> Prop, forall x : cart R N', forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN (cart R N') x s) /\ ((forall x' : cart R N', ((@IN (cart R N') x' s) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x' x)) d)) -> (f x') = (g x')) /\ (@real_continuous (cart R N') f (@within (cart R N') (@_at N' x) s))))) -> @real_continuous (cart R N') g (@within (cart R N') (@_at N' x) s). +Axiom thm_REAL_CONTINUOUS_TRANSFORM_WITHINREAL : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall x : R, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN R x s) /\ ((forall x' : R, ((@IN R x' s) /\ (Rlt (Rabs (Rminus x' x)) d)) -> (f x') = (g x')) /\ (@real_continuous R f (@within R (atreal x) s))))) -> @real_continuous R g (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_TRANSFORM_AT : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall x : cart R N', forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x' : cart R N', (Rlt (@distance N' (@pair (cart R N') (cart R N') x' x)) d) -> (f x') = (g x')) /\ (@real_continuous (cart R N') f (@_at N' x)))) -> @real_continuous (cart R N') g (@_at N' x). +Axiom thm_REAL_CONTINUOUS_TRANSFORM_ATREAL : forall f : R -> R, forall g : R -> R, forall x : R, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x' : R, (Rlt (Rabs (Rminus x' x)) d) -> (f x') = (g x')) /\ (@real_continuous R f (atreal x)))) -> @real_continuous R g (atreal x). +Axiom thm_REAL_CONTINUOUS_CONST : forall {_1686122 : Type'}, forall net' : net _1686122, forall c : R, @real_continuous _1686122 (fun x : _1686122 => c) net'. +Axiom thm_REAL_CONTINUOUS_LMUL : forall {_1686149 : Type'}, forall f : _1686149 -> R, forall c : R, forall net' : net _1686149, (@real_continuous _1686149 f net') -> @real_continuous _1686149 (fun x : _1686149 => Rmult c (f x)) net'. +Axiom thm_REAL_CONTINUOUS_RMUL : forall {_1686176 : Type'}, forall f : _1686176 -> R, forall c : R, forall net' : net _1686176, (@real_continuous _1686176 f net') -> @real_continuous _1686176 (fun x : _1686176 => Rmult (f x) c) net'. +Axiom thm_REAL_CONTINUOUS_NEG : forall {_1686198 : Type'}, forall f : _1686198 -> R, forall net' : net _1686198, (@real_continuous _1686198 f net') -> @real_continuous _1686198 (fun x : _1686198 => Ropp (f x)) net'. +Axiom thm_REAL_CONTINUOUS_ADD : forall {_1686231 : Type'}, forall f : _1686231 -> R, forall g : _1686231 -> R, forall net' : net _1686231, ((@real_continuous _1686231 f net') /\ (@real_continuous _1686231 g net')) -> @real_continuous _1686231 (fun x : _1686231 => Rplus (f x) (g x)) net'. +Axiom thm_REAL_CONTINUOUS_SUB : forall {_1686264 : Type'}, forall f : _1686264 -> R, forall g : _1686264 -> R, forall net' : net _1686264, ((@real_continuous _1686264 f net') /\ (@real_continuous _1686264 g net')) -> @real_continuous _1686264 (fun x : _1686264 => Rminus (f x) (g x)) net'. +Axiom thm_REAL_CONTINUOUS_MUL : forall {_1686297 : Type'}, forall net' : net _1686297, forall f : _1686297 -> R, forall g : _1686297 -> R, ((@real_continuous _1686297 f net') /\ (@real_continuous _1686297 g net')) -> @real_continuous _1686297 (fun x : _1686297 => Rmult (f x) (g x)) net'. +Axiom thm_REAL_CONTINUOUS_INV : forall {_1686330 : Type'}, forall net' : net _1686330, forall f : _1686330 -> R, ((@real_continuous _1686330 f net') /\ (~ ((f (@netlimit _1686330 net')) = (R_of_N (NUMERAL 0%N))))) -> @real_continuous _1686330 (fun x : _1686330 => Rinv (f x)) net'. +Axiom thm_REAL_CONTINUOUS_DIV : forall {_1686374 : Type'}, forall net' : net _1686374, forall f : _1686374 -> R, forall g : _1686374 -> R, ((@real_continuous _1686374 f net') /\ ((@real_continuous _1686374 g net') /\ (~ ((g (@netlimit _1686374 net')) = (R_of_N (NUMERAL 0%N)))))) -> @real_continuous _1686374 (fun x : _1686374 => Rdiv (f x) (g x)) net'. +Axiom thm_REAL_CONTINUOUS_POW : forall {_1686401 : Type'}, forall net' : net _1686401, forall f : _1686401 -> R, forall n : N, (@real_continuous _1686401 f net') -> @real_continuous _1686401 (fun x : _1686401 => real_pow (f x) n) net'. +Axiom thm_REAL_CONTINUOUS_ABS : forall {_1686423 : Type'}, forall net' : net _1686423, forall f : _1686423 -> R, (@real_continuous _1686423 f net') -> @real_continuous _1686423 (fun x : _1686423 => Rabs (f x)) net'. +Axiom thm_REAL_CONTINUOUS_MAX : forall {_1686456 : Type'}, forall f : _1686456 -> R, forall g : _1686456 -> R, forall net' : net _1686456, ((@real_continuous _1686456 f net') /\ (@real_continuous _1686456 g net')) -> @real_continuous _1686456 (fun x : _1686456 => Rmax (f x) (g x)) net'. +Axiom thm_REAL_CONTINUOUS_MIN : forall {_1686489 : Type'}, forall f : _1686489 -> R, forall g : _1686489 -> R, forall net' : net _1686489, ((@real_continuous _1686489 f net') /\ (@real_continuous _1686489 g net')) -> @real_continuous _1686489 (fun x : _1686489 => Rmin (f x) (g x)) net'. +Axiom thm_REAL_CONTINUOUS_WITHIN_ID : forall x : R, forall s : R -> Prop, @real_continuous R (fun x' : R => x') (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_AT_ID : forall x : R, @real_continuous R (fun x' : R => x') (atreal x). +Axiom thm_REAL_CONTINUOUS_INV_WITHIN : forall {_1686563 : Type'}, forall f : (cart R _1686563) -> R, forall s : (cart R _1686563) -> Prop, forall a : cart R _1686563, ((@real_continuous (cart R _1686563) f (@within (cart R _1686563) (@_at _1686563 a) s)) /\ (~ ((f a) = (R_of_N (NUMERAL 0%N))))) -> @real_continuous (cart R _1686563) (fun x : cart R _1686563 => Rinv (f x)) (@within (cart R _1686563) (@_at _1686563 a) s). +Axiom thm_REAL_CONTINUOUS_INV_AT : forall {_1686598 : Type'}, forall f : (cart R _1686598) -> R, forall a : cart R _1686598, ((@real_continuous (cart R _1686598) f (@_at _1686598 a)) /\ (~ ((f a) = (R_of_N (NUMERAL 0%N))))) -> @real_continuous (cart R _1686598) (fun x : cart R _1686598 => Rinv (f x)) (@_at _1686598 a). +Axiom thm_REAL_CONTINUOUS_INV_WITHINREAL : forall f : R -> R, forall s : R -> Prop, forall a : R, ((@real_continuous R f (@within R (atreal a) s)) /\ (~ ((f a) = (R_of_N (NUMERAL 0%N))))) -> @real_continuous R (fun x : R => Rinv (f x)) (@within R (atreal a) s). +Axiom thm_REAL_CONTINUOUS_INV_ATREAL : forall f : R -> R, forall a : R, ((@real_continuous R f (atreal a)) /\ (~ ((f a) = (R_of_N (NUMERAL 0%N))))) -> @real_continuous R (fun x : R => Rinv (f x)) (atreal a). +Axiom thm_REAL_CONTINUOUS_DIV_WITHIN : forall {_1686731 : Type'} (g : (cart R _1686731) -> R), forall f : (cart R _1686731) -> R, forall s : (cart R _1686731) -> Prop, forall a : cart R _1686731, ((@real_continuous (cart R _1686731) f (@within (cart R _1686731) (@_at _1686731 a) s)) /\ ((@real_continuous (cart R _1686731) g (@within (cart R _1686731) (@_at _1686731 a) s)) /\ (~ ((g a) = (R_of_N (NUMERAL 0%N)))))) -> @real_continuous (cart R _1686731) (fun x : cart R _1686731 => Rdiv (f x) (g x)) (@within (cart R _1686731) (@_at _1686731 a) s). +Axiom thm_REAL_CONTINUOUS_DIV_AT : forall {_1686775 : Type'} (g : (cart R _1686775) -> R), forall f : (cart R _1686775) -> R, forall a : cart R _1686775, ((@real_continuous (cart R _1686775) f (@_at _1686775 a)) /\ ((@real_continuous (cart R _1686775) g (@_at _1686775 a)) /\ (~ ((g a) = (R_of_N (NUMERAL 0%N)))))) -> @real_continuous (cart R _1686775) (fun x : cart R _1686775 => Rdiv (f x) (g x)) (@_at _1686775 a). +Axiom thm_REAL_CONTINUOUS_DIV_WITHINREAL : forall (g : R -> R), forall f : R -> R, forall s : R -> Prop, forall a : R, ((@real_continuous R f (@within R (atreal a) s)) /\ ((@real_continuous R g (@within R (atreal a) s)) /\ (~ ((g a) = (R_of_N (NUMERAL 0%N)))))) -> @real_continuous R (fun x : R => Rdiv (f x) (g x)) (@within R (atreal a) s). +Axiom thm_REAL_CONTINUOUS_DIV_ATREAL : forall (g : R -> R), forall f : R -> R, forall a : R, ((@real_continuous R f (atreal a)) /\ ((@real_continuous R g (atreal a)) /\ (~ ((g a) = (R_of_N (NUMERAL 0%N)))))) -> @real_continuous R (fun x : R => Rdiv (f x) (g x)) (atreal a). +Axiom thm_REAL_CONTINUOUS_WITHINREAL_COMPOSE : forall f : R -> R, forall g : R -> R, forall x : R, forall s : R -> Prop, ((@real_continuous R f (@within R (atreal x) s)) /\ (@real_continuous R g (@within R (atreal (f x)) (@IMAGE R R f s)))) -> @real_continuous R (@o R R R g f) (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_ATREAL_COMPOSE : forall f : R -> R, forall g : R -> R, forall x : R, ((@real_continuous R f (atreal x)) /\ (@real_continuous R g (atreal (f x)))) -> @real_continuous R (@o R R R g f) (atreal x). +Axiom thm_REAL_CONTINUOUS_WITHIN_COMPOSE : forall {_1687014 : Type'}, forall f : (cart R _1687014) -> R, forall g : R -> R, forall x : cart R _1687014, forall s : (cart R _1687014) -> Prop, ((@real_continuous (cart R _1687014) f (@within (cart R _1687014) (@_at _1687014 x) s)) /\ (@real_continuous R g (@within R (atreal (f x)) (@IMAGE (cart R _1687014) R f s)))) -> @real_continuous (cart R _1687014) (@o (cart R _1687014) R R g f) (@within (cart R _1687014) (@_at _1687014 x) s). +Axiom thm_REAL_CONTINUOUS_AT_COMPOSE : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : R -> R, forall x : cart R N', ((@real_continuous (cart R N') f (@_at N' x)) /\ (@real_continuous R g (@within R (atreal (f x)) (@IMAGE (cart R N') R f (@UNIV (cart R N')))))) -> @real_continuous (cart R N') (@o (cart R N') R R g f) (@_at N' x). +Axiom thm_REAL_CONTINUOUS_CONTINUOUS_WITHIN_COMPOSE : forall {_1687084 _1687116 : Type'}, forall f : (cart R _1687116) -> cart R _1687084, forall g : (cart R _1687084) -> R, forall x : cart R _1687116, forall s : (cart R _1687116) -> Prop, ((@continuous _1687084 (cart R _1687116) f (@within (cart R _1687116) (@_at _1687116 x) s)) /\ (@real_continuous (cart R _1687084) g (@within (cart R _1687084) (@_at _1687084 (f x)) (@IMAGE (cart R _1687116) (cart R _1687084) f s)))) -> @real_continuous (cart R _1687116) (@o (cart R _1687116) (cart R _1687084) R g f) (@within (cart R _1687116) (@_at _1687116 x) s). +Axiom thm_REAL_CONTINUOUS_CONTINUOUS_AT_COMPOSE : forall {_1687136 N' : Type'}, forall f : (cart R N') -> cart R _1687136, forall g : (cart R _1687136) -> R, forall x : cart R N', ((@continuous _1687136 (cart R N') f (@_at N' x)) /\ (@real_continuous (cart R _1687136) g (@within (cart R _1687136) (@_at _1687136 (f x)) (@IMAGE (cart R N') (cart R _1687136) f (@UNIV (cart R N')))))) -> @real_continuous (cart R N') (@o (cart R N') (cart R _1687136) R g f) (@_at N' x). +Axiom thm_REAL_CONTINUOUS_CONTINUOUS_WITHINREAL_COMPOSE : forall {_1687188 : Type'}, forall f : R -> cart R _1687188, forall g : (cart R _1687188) -> R, forall x : R, forall s : R -> Prop, ((@continuous _1687188 R f (@within R (atreal x) s)) /\ (@real_continuous (cart R _1687188) g (@within (cart R _1687188) (@_at _1687188 (f x)) (@IMAGE R (cart R _1687188) f s)))) -> @real_continuous R (@o R (cart R _1687188) R g f) (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_CONTINUOUS_ATREAL_COMPOSE : forall {_1687238 : Type'}, forall f : R -> cart R _1687238, forall g : (cart R _1687238) -> R, forall x : R, ((@continuous _1687238 R f (atreal x)) /\ (@real_continuous (cart R _1687238) g (@within (cart R _1687238) (@_at _1687238 (f x)) (@IMAGE R (cart R _1687238) f (@UNIV R))))) -> @real_continuous R (@o R (cart R _1687238) R g f) (atreal x). +Axiom thm_CONTINUOUS_REAL_CONTINUOUS_WITHINREAL_COMPOSE : forall {_1687295 : Type'}, forall f : R -> R, forall g : R -> cart R _1687295, forall x : R, forall s : R -> Prop, ((@real_continuous R f (@within R (atreal x) s)) /\ (@continuous _1687295 R g (@within R (atreal (f x)) (@IMAGE R R f s)))) -> @continuous _1687295 R (@o R R (cart R _1687295) g f) (@within R (atreal x) s). +Axiom thm_CONTINUOUS_REAL_CONTINUOUS_ATREAL_COMPOSE : forall {_1687342 : Type'}, forall f : R -> R, forall g : R -> cart R _1687342, forall x : R, ((@real_continuous R f (atreal x)) /\ (@continuous _1687342 R g (@within R (atreal (f x)) (@IMAGE R R f (@UNIV R))))) -> @continuous _1687342 R (@o R R (cart R _1687342) g f) (atreal x). +Axiom thm_CONTINUOUS_WITHINREAL_COMPOSE : forall {_1687388 _1687396 : Type'}, forall f : R -> cart R _1687388, forall g : (cart R _1687388) -> cart R _1687396, forall x : R, forall s : R -> Prop, ((@continuous _1687388 R f (@within R (atreal x) s)) /\ (@continuous _1687396 (cart R _1687388) g (@within (cart R _1687388) (@_at _1687388 (f x)) (@IMAGE R (cart R _1687388) f s)))) -> @continuous _1687396 R (@o R (cart R _1687388) (cart R _1687396) g f) (@within R (atreal x) s). +Axiom thm_CONTINUOUS_ATREAL_COMPOSE : forall {_1687440 _1687445 : Type'}, forall f : R -> cart R _1687440, forall g : (cart R _1687440) -> cart R _1687445, forall x : R, ((@continuous _1687440 R f (atreal x)) /\ (@continuous _1687445 (cart R _1687440) g (@within (cart R _1687440) (@_at _1687440 (f x)) (@IMAGE R (cart R _1687440) f (@UNIV R))))) -> @continuous _1687445 R (@o R (cart R _1687440) (cart R _1687445) g f) (atreal x). +Axiom thm_CONTINUOUS_REAL_CONTINUOUS_WITHIN_COMPOSE : forall {_1687500 _1687524 : Type'}, forall f : (cart R _1687524) -> R, forall g : R -> cart R _1687500, forall x : cart R _1687524, forall s : (cart R _1687524) -> Prop, ((@real_continuous (cart R _1687524) f (@within (cart R _1687524) (@_at _1687524 x) s)) /\ (@continuous _1687500 R g (@within R (atreal (f x)) (@IMAGE (cart R _1687524) R f s)))) -> @continuous _1687500 (cart R _1687524) (@o (cart R _1687524) R (cart R _1687500) g f) (@within (cart R _1687524) (@_at _1687524 x) s). +Axiom thm_CONTINUOUS_REAL_CONTINUOUS_AT_COMPOSE : forall {_1687549 M : Type'}, forall f : (cart R M) -> R, forall g : R -> cart R _1687549, forall x : cart R M, ((@real_continuous (cart R M) f (@_at M x)) /\ (@continuous _1687549 R g (@within R (atreal (f x)) (@IMAGE (cart R M) R f (@UNIV (cart R M)))))) -> @continuous _1687549 (cart R M) (@o (cart R M) R (cart R _1687549) g f) (@_at M x). +Axiom thm_real_continuous_on : forall s : R -> Prop, forall f : R -> R, (real_continuous_on f s) = (forall x : R, (@IN R x s) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x' : R, ((@IN R x' s) /\ (Rlt (Rabs (Rminus x' x)) d)) -> Rlt (Rabs (Rminus (f x') (f x))) e)). +Axiom thm_REAL_CONTINUOUS_ON_EQ_CONTINUOUS_WITHIN : forall f : R -> R, forall s : R -> Prop, (real_continuous_on f s) = (forall x : R, (@IN R x s) -> @real_continuous R f (@within R (atreal x) s)). +Axiom thm_REAL_CONTINUOUS_ON_SUBSET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_continuous_on f s) /\ (@SUBSET R t s)) -> real_continuous_on f t. +Axiom thm_REAL_CONTINUOUS_ON_COMPOSE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (real_continuous_on g (@IMAGE R R f s))) -> real_continuous_on (@o R R R g f) s. +Axiom thm_REAL_CONTINUOUS_ON : forall f : R -> R, forall s : R -> Prop, (real_continuous_on f s) = (@continuous_on unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (@IMAGE R (cart R unit) lift s)). +Axiom thm_REAL_CONTINUOUS_ON_CONST : forall s : R -> Prop, forall c : R, real_continuous_on (fun x : R => c) s. +Axiom thm_REAL_CONTINUOUS_ON_ID : forall s : R -> Prop, real_continuous_on (fun x : R => x) s. +Axiom thm_REAL_CONTINUOUS_ON_LMUL : forall f : R -> R, forall c : R, forall s : R -> Prop, (real_continuous_on f s) -> real_continuous_on (fun x : R => Rmult c (f x)) s. +Axiom thm_REAL_CONTINUOUS_ON_RMUL : forall f : R -> R, forall c : R, forall s : R -> Prop, (real_continuous_on f s) -> real_continuous_on (fun x : R => Rmult (f x) c) s. +Axiom thm_REAL_CONTINUOUS_ON_NEG : forall f : R -> R, forall s : R -> Prop, (real_continuous_on f s) -> real_continuous_on (fun x : R => Ropp (f x)) s. +Axiom thm_REAL_CONTINUOUS_ON_ADD : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (real_continuous_on g s)) -> real_continuous_on (fun x : R => Rplus (f x) (g x)) s. +Axiom thm_REAL_CONTINUOUS_ON_SUB : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (real_continuous_on g s)) -> real_continuous_on (fun x : R => Rminus (f x) (g x)) s. +Axiom thm_REAL_CONTINUOUS_ON_MUL : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (real_continuous_on g s)) -> real_continuous_on (fun x : R => Rmult (f x) (g x)) s. +Axiom thm_REAL_CONTINUOUS_ON_POW : forall f : R -> R, forall n : N, forall s : R -> Prop, (real_continuous_on f s) -> real_continuous_on (fun x : R => real_pow (f x) n) s. +Axiom thm_REAL_CONTINUOUS_ON_INV : forall f : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (forall x : R, (@IN R x s) -> ~ ((f x) = (R_of_N (NUMERAL 0%N))))) -> real_continuous_on (fun x : R => Rinv (f x)) s. +Axiom thm_REAL_CONTINUOUS_ON_DIV : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ ((real_continuous_on g s) /\ (forall x : R, (@IN R x s) -> ~ ((g x) = (R_of_N (NUMERAL 0%N)))))) -> real_continuous_on (fun x : R => Rdiv (f x) (g x)) s. +Axiom thm_REAL_CONTINUOUS_ON_ABS : forall f : R -> R, forall s : R -> Prop, (real_continuous_on f s) -> real_continuous_on (fun x : R => Rabs (f x)) s. +Axiom thm_REAL_CONTINUOUS_ON_MAX : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (real_continuous_on g s)) -> real_continuous_on (fun x : R => Rmax (f x) (g x)) s. +Axiom thm_REAL_CONTINUOUS_ON_MIN : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (real_continuous_on g s)) -> real_continuous_on (fun x : R => Rmin (f x) (g x)) s. +Axiom thm_REAL_CONTINUOUS_ON_EQ : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((forall x : R, (@IN R x s) -> (f x) = (g x)) /\ (real_continuous_on f s)) -> real_continuous_on g s. +Axiom thm_REAL_CONTINUOUS_ON_UNION : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_closed s) /\ ((real_closed t) /\ ((real_continuous_on f s) /\ (real_continuous_on f t)))) -> real_continuous_on f (@UNION R s t). +Axiom thm_REAL_CONTINUOUS_ON_UNION_OPEN : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_open s) /\ ((real_open t) /\ ((real_continuous_on f s) /\ (real_continuous_on f t)))) -> real_continuous_on f (@UNION R s t). +Axiom thm_REAL_CONTINUOUS_ON_CASES : forall P : R -> Prop, forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_closed s) /\ ((real_closed t) /\ ((real_continuous_on f s) /\ ((real_continuous_on g t) /\ (forall x : R, (((@IN R x s) /\ (~ (P x))) \/ ((@IN R x t) /\ (P x))) -> (f x) = (g x)))))) -> real_continuous_on (fun x : R => @COND R (P x) (f x) (g x)) (@UNION R s t). +Axiom thm_REAL_CONTINUOUS_ON_CASES_OPEN : forall P : R -> Prop, forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_open s) /\ ((real_open t) /\ ((real_continuous_on f s) /\ ((real_continuous_on g t) /\ (forall x : R, (((@IN R x s) /\ (~ (P x))) \/ ((@IN R x t) /\ (P x))) -> (f x) = (g x)))))) -> real_continuous_on (fun x : R => @COND R (P x) (f x) (g x)) (@UNION R s t). +Axiom thm_REAL_CONTINUOUS_SUM : forall {_1688466 _1688467 : Type'}, forall net' : net _1688466, forall f : _1688467 -> _1688466 -> R, forall s : _1688467 -> Prop, ((@FINITE _1688467 s) /\ (forall a : _1688467, (@IN _1688467 a s) -> @real_continuous _1688466 (f a) net')) -> @real_continuous _1688466 (fun x : _1688466 => @sum _1688467 s (fun a : _1688467 => f a x)) net'. +Axiom thm_REAL_CONTINUOUS_PRODUCT : forall {_1688510 _1688511 : Type'}, forall net' : net _1688510, forall f : _1688511 -> _1688510 -> R, forall s : _1688511 -> Prop, ((@FINITE _1688511 s) /\ (forall a : _1688511, (@IN _1688511 a s) -> @real_continuous _1688510 (f a) net')) -> @real_continuous _1688510 (fun x : _1688510 => @product _1688511 s (fun a : _1688511 => f a x)) net'. +Axiom thm_REAL_CONTINUOUS_ON_SUM : forall {_1688553 : Type'}, forall t : R -> Prop, forall f : _1688553 -> R -> R, forall s : _1688553 -> Prop, ((@FINITE _1688553 s) /\ (forall a : _1688553, (@IN _1688553 a s) -> real_continuous_on (f a) t)) -> real_continuous_on (fun x : R => @sum _1688553 s (fun a : _1688553 => f a x)) t. +Axiom thm_REAL_CONTINUOUS_ON_PRODUCT : forall {_1688595 : Type'}, forall t : R -> Prop, forall f : _1688595 -> R -> R, forall s : _1688595 -> Prop, ((@FINITE _1688595 s) /\ (forall a : _1688595, (@IN _1688595 a s) -> real_continuous_on (f a) t)) -> real_continuous_on (fun x : R => @product _1688595 s (fun a : _1688595 => f a x)) t. +Axiom thm_REALLIM_CONTINUOUS_FUNCTION : forall {_1688619 _1688634 : Type'}, forall f : R -> cart R _1688619, forall net' : net _1688634, forall g : _1688634 -> R, forall l : R, ((@continuous _1688619 R f (atreal l)) /\ (@longarrow _1688634 g l net')) -> @FImp _1688619 _1688634 (fun x : _1688634 => f (g x)) (f l) net'. +Axiom thm_LIM_REAL_CONTINUOUS_FUNCTION : forall {_1688661 _1688674 : Type'}, forall f : (cart R _1688661) -> R, forall net' : net _1688674, forall g : _1688674 -> cart R _1688661, forall l : cart R _1688661, ((@real_continuous (cart R _1688661) f (@_at _1688661 l)) /\ (@FImp _1688661 _1688674 g l net')) -> @longarrow _1688674 (fun x : _1688674 => f (g x)) (f l) net'. +Axiom thm_REALLIM_REAL_CONTINUOUS_FUNCTION : forall {_1688712 : Type'}, forall f : R -> R, forall net' : net _1688712, forall g : _1688712 -> R, forall l : R, ((@real_continuous R f (atreal l)) /\ (@longarrow _1688712 g l net')) -> @longarrow _1688712 (fun x : _1688712 => f (g x)) (f l) net'. +Axiom thm_REAL_CONTINUOUS_ON_EQ_REAL_CONTINUOUS_AT : forall f : R -> R, forall s : R -> Prop, (real_open s) -> (real_continuous_on f s) = (forall x : R, (@IN R x s) -> @real_continuous R f (atreal x)). +Axiom thm_REAL_CONTINUOUS_ATTAINS_SUP : forall f : R -> R, forall s : R -> Prop, ((real_compact s) /\ ((~ (s = (@EMPTY R))) /\ (real_continuous_on f s))) -> exists x : R, (@IN R x s) /\ (forall y : R, (@IN R y s) -> Rle (f y) (f x)). +Axiom thm_REAL_CONTINUOUS_ATTAINS_INF : forall f : R -> R, forall s : R -> Prop, ((real_compact s) /\ ((~ (s = (@EMPTY R))) /\ (real_continuous_on f s))) -> exists x : R, (@IN R x s) /\ (forall y : R, (@IN R y s) -> Rle (f x) (f y)). +Axiom thm_REAL_CONTINUOUS_AGREE_ON_CLOSURE_INTERVAL : forall g : R -> R, forall h : R -> R, forall a : R, forall b : R, ((Rlt a b) /\ ((real_continuous_on g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((real_continuous_on h (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (open_real_interval (@pair R R a b))) -> (g x) = (h x))))) -> forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> (g x) = (h x). +Axiom thm_real_uniformly_continuous_on : forall s : R -> Prop, forall f : R -> R, (real_uniformly_continuous_on f s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall x : R, forall x' : R, ((@IN R x s) /\ ((@IN R x' s) /\ (Rlt (Rabs (Rminus x' x)) d))) -> Rlt (Rabs (Rminus (f x') (f x))) e)). +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_ON : forall f : R -> R, forall s : R -> Prop, (real_uniformly_continuous_on f s) = (@uniformly_continuous_on unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (@IMAGE R (cart R unit) lift s)). +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_IMP_REAL_CONTINUOUS : forall f : R -> R, forall s : R -> Prop, (real_uniformly_continuous_on f s) -> real_continuous_on f s. +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_ON_SEQUENTIALLY : forall f : R -> R, forall s : R -> Prop, (real_uniformly_continuous_on f s) = (forall x : N -> R, forall y : N -> R, ((forall n : N, @IN R (x n) s) /\ ((forall n : N, @IN R (y n) s) /\ (@longarrow N (fun n : N => Rminus (x n) (y n)) (R_of_N (NUMERAL 0%N)) sequentially))) -> @longarrow N (fun n : N => Rminus (f (x n)) (f (y n))) (R_of_N (NUMERAL 0%N)) sequentially). +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_ON_SUBSET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_uniformly_continuous_on f s) /\ (@SUBSET R t s)) -> real_uniformly_continuous_on f t. +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_ON_COMPOSE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_uniformly_continuous_on f s) /\ (real_uniformly_continuous_on g (@IMAGE R R f s))) -> real_uniformly_continuous_on (@o R R R g f) s. +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_ON_CONST : forall s : R -> Prop, forall c : R, real_uniformly_continuous_on (fun x : R => c) s. +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_ON_LMUL : forall f : R -> R, forall c : R, forall s : R -> Prop, (real_uniformly_continuous_on f s) -> real_uniformly_continuous_on (fun x : R => Rmult c (f x)) s. +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_ON_RMUL : forall f : R -> R, forall c : R, forall s : R -> Prop, (real_uniformly_continuous_on f s) -> real_uniformly_continuous_on (fun x : R => Rmult (f x) c) s. +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_ON_ID : forall s : R -> Prop, real_uniformly_continuous_on (fun x : R => x) s. +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_ON_NEG : forall f : R -> R, forall s : R -> Prop, (real_uniformly_continuous_on f s) -> real_uniformly_continuous_on (fun x : R => Ropp (f x)) s. +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_ON_ADD : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_uniformly_continuous_on f s) /\ (real_uniformly_continuous_on g s)) -> real_uniformly_continuous_on (fun x : R => Rplus (f x) (g x)) s. +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_ON_SUB : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_uniformly_continuous_on f s) /\ (real_uniformly_continuous_on g s)) -> real_uniformly_continuous_on (fun x : R => Rminus (f x) (g x)) s. +Axiom thm_REAL_UNIFORMLY_CONTINUOUS_ON_SUM : forall {_1689433 : Type'}, forall t : R -> Prop, forall f : _1689433 -> R -> R, forall s : _1689433 -> Prop, ((@FINITE _1689433 s) /\ (forall a : _1689433, (@IN _1689433 a s) -> real_uniformly_continuous_on (f a) t)) -> real_uniformly_continuous_on (fun x : R => @sum _1689433 s (fun a : _1689433 => f a x)) t. +Axiom thm_REAL_COMPACT_UNIFORMLY_CONTINUOUS : forall f : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (real_compact s)) -> real_uniformly_continuous_on f s. +Axiom thm_REAL_COMPACT_CONTINUOUS_IMAGE : forall f : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (real_compact s)) -> real_compact (@IMAGE R R f s). +Axiom thm_REAL_DINI : forall f : N -> R -> R, forall g : R -> R, forall s : R -> Prop, ((real_compact s) /\ ((forall n : N, real_continuous_on (f n) s) /\ ((real_continuous_on g s) /\ ((forall x : R, (@IN R x s) -> @longarrow N (fun n : N => f n x) (g x) sequentially) /\ (forall n : N, forall x : R, (@IN R x s) -> Rle (f n x) (f (N.add n (NUMERAL (BIT1 0%N))) x)))))) -> forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually N (fun n : N => forall x : R, (@IN R x s) -> Rlt (Rabs (Rminus (f n x) (g x))) e) sequentially. +Axiom thm_CONTINUOUS_COMPONENTWISE : forall {A N' : Type'}, forall net' : net A, forall f : A -> cart R N', (@continuous N' A f net') = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @real_continuous A (fun x : A => @dollar R N' (f x) i) net'). +Axiom thm_REAL_CONTINUOUS_COMPLEX_COMPONENTS_AT : forall z : cart R (tybit0 unit), (@real_continuous (cart R (tybit0 unit)) Re (@_at (tybit0 unit) z)) /\ (@real_continuous (cart R (tybit0 unit)) Im (@_at (tybit0 unit) z)). +Axiom thm_REAL_CONTINUOUS_COMPLEX_COMPONENTS_WITHIN : forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), (@real_continuous (cart R (tybit0 unit)) Re (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s)) /\ (@real_continuous (cart R (tybit0 unit)) Im (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s)). +Axiom thm_REAL_CONTINUOUS_NORM_AT : forall {_1689723 : Type'}, forall z : cart R _1689723, @real_continuous (cart R _1689723) (@vector_norm _1689723) (@_at _1689723 z). +Axiom thm_REAL_CONTINUOUS_NORM_WITHIN : forall {_1689743 : Type'}, forall s : (cart R _1689743) -> Prop, forall z : cart R _1689743, @real_continuous (cart R _1689743) (@vector_norm _1689743) (@within (cart R _1689743) (@_at _1689743 z) s). +Axiom thm_REAL_CONTINUOUS_DIST_AT : forall {_1689769 : Type'}, forall a : cart R _1689769, forall z : cart R _1689769, @real_continuous (cart R _1689769) (fun x : cart R _1689769 => @distance _1689769 (@pair (cart R _1689769) (cart R _1689769) a x)) (@_at _1689769 z). +Axiom thm_REAL_CONTINUOUS_DIST_WITHIN : forall {_1689800 : Type'}, forall a : cart R _1689800, forall s : (cart R _1689800) -> Prop, forall z : cart R _1689800, @real_continuous (cart R _1689800) (fun x : cart R _1689800 => @distance _1689800 (@pair (cart R _1689800) (cart R _1689800) a x)) (@within (cart R _1689800) (@_at _1689800 z) s). +Axiom thm_has_real_derivative : forall f : R -> R, forall f' : R, forall net' : net R, (has_real_derivative f f' net') = (@longarrow R (fun x : R => Rmult (Rinv (Rminus x (@netlimit R net'))) (Rminus (f x) (Rplus (f (@netlimit R net')) (Rmult f' (Rminus x (@netlimit R net')))))) (R_of_N (NUMERAL 0%N)) net'). +Axiom thm_real_differentiable : forall f : R -> R, forall net' : net R, (real_differentiable f net') = (exists f' : R, has_real_derivative f f' net'). +Axiom thm_real_derivative : forall f : R -> R, forall x : R, (real_derivative f x) = (@ε R (fun f' : R => has_real_derivative f f' (atreal x))). +Axiom thm_real_differentiable_on : forall f : R -> R, forall s : R -> Prop, (real_differentiable_on f s) = (forall x : R, (@IN R x s) -> exists f' : R, has_real_derivative f f' (@within R (atreal x) s)). +Axiom thm_HAS_REAL_DERIVATIVE_WITHINREAL : forall (f : R -> R) (f' : R) (a : R) (s : R -> Prop), (has_real_derivative f f' (@within R (atreal a) s)) = (@longarrow R (fun x : R => Rdiv (Rminus (f x) (f a)) (Rminus x a)) f' (@within R (atreal a) s)). +Axiom thm_HAS_REAL_DERIVATIVE_ATREAL : forall (f : R -> R) (f' : R) (a : R), (has_real_derivative f f' (atreal a)) = (@longarrow R (fun x : R => Rdiv (Rminus (f x) (f a)) (Rminus x a)) f' (atreal a)). +Axiom thm_HAS_REAL_FRECHET_DERIVATIVE_WITHIN : forall (f : R -> R) (f' : R) (x : R) (s : R -> Prop), (has_real_derivative f f' (@within R (atreal x) s)) = (@has_derivative unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (fun x' : cart R unit => @percent unit f' x') (@within (cart R unit) (@_at unit (lift x)) (@IMAGE R (cart R unit) lift s))). +Axiom thm_HAS_REAL_FRECHET_DERIVATIVE_AT : forall (f : R -> R) (f' : R) (x : R), (has_real_derivative f f' (atreal x)) = (@has_derivative unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (fun x' : cart R unit => @percent unit f' x') (@_at unit (lift x))). +Axiom thm_HAS_REAL_VECTOR_DERIVATIVE_WITHIN : forall (f : R -> R) (f' : R) (x : R) (s : R -> Prop), (has_real_derivative f f' (@within R (atreal x) s)) = (@has_vector_derivative unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (lift f') (@within (cart R unit) (@_at unit (lift x)) (@IMAGE R (cart R unit) lift s))). +Axiom thm_HAS_REAL_VECTOR_DERIVATIVE_AT : forall (f : R -> R) (f' : R) (x : R), (has_real_derivative f f' (atreal x)) = (@has_vector_derivative unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (lift f') (@_at unit (lift x))). +Axiom thm_REAL_DIFFERENTIABLE_AT : forall f : R -> R, forall x : R, (real_differentiable f (atreal x)) = (@differentiable unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (@_at unit (lift x))). +Axiom thm_REAL_DIFFERENTIABLE_WITHIN : forall f : R -> R, forall x : R, forall s : R -> Prop, (real_differentiable f (@within R (atreal x) s)) = (@differentiable unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (@within (cart R unit) (@_at unit (lift x)) (@IMAGE R (cart R unit) lift s))). +Axiom thm_REAL_DIFFERENTIABLE_ON : forall f : R -> R, forall s : R -> Prop, (real_differentiable_on f s) = (@differentiable_on unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (@IMAGE R (cart R unit) lift s)). +Axiom thm_HAS_REAL_COMPLEX_DERIVATIVE_WITHIN : forall (f : R -> R) (f' : R) (a : R) (s : R -> Prop), (has_real_derivative f f' (@within R (atreal a) s)) = (has_complex_derivative (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx (@o (cart R (tybit0 unit)) R R f Re)) (Cx f') (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (Cx a)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8429 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8429 ((real z) /\ (@IN R (Re z) s)) z)))). +Axiom thm_HAS_REAL_COMPLEX_DERIVATIVE_AT : forall (f : R -> R) (f' : R) (a : R), (has_real_derivative f f' (atreal a)) = (has_complex_derivative (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx (@o (cart R (tybit0 unit)) R R f Re)) (Cx f') (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (Cx a)) real)). +Axiom thm_REAL_DIFFERENTIABLE_ON_DIFFERENTIABLE : forall f : R -> R, forall s : R -> Prop, (real_differentiable_on f s) = (forall x : R, (@IN R x s) -> real_differentiable f (@within R (atreal x) s)). +Axiom thm_REAL_DIFFERENTIABLE_ON_REAL_OPEN : forall f : R -> R, forall s : R -> Prop, (real_open s) -> (real_differentiable_on f s) = (forall x : R, (@IN R x s) -> exists f' : R, has_real_derivative f f' (atreal x)). +Axiom thm_REAL_DIFFERENTIABLE_ON_IMP_DIFFERENTIABLE_WITHIN : forall f : R -> R, forall s : R -> Prop, forall x : R, ((real_differentiable_on f s) /\ (@IN R x s)) -> real_differentiable f (@within R (atreal x) s). +Axiom thm_REAL_DIFFERENTIABLE_ON_IMP_DIFFERENTIABLE_ATREAL : forall f : R -> R, forall s : R -> Prop, forall x : R, ((real_differentiable_on f s) /\ ((real_open s) /\ (@IN R x s))) -> real_differentiable f (atreal x). +Axiom thm_HAS_COMPLEX_REAL_DERIVATIVE_WITHIN_GEN : forall (x : R), forall f : R -> R, forall g : R, forall h : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : R -> Prop, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN R x s) /\ ((has_complex_derivative h (Cx g) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (Cx x)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8430 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8430 ((real z) /\ (@IN R (Re z) s)) z)))) /\ (forall y : R, ((@IN R y s) /\ (Rlt (Rabs (Rminus y x)) d)) -> (h (Cx y)) = (Cx (f y)))))) -> has_real_derivative f g (@within R (atreal x) s). +Axiom thm_HAS_COMPLEX_REAL_DERIVATIVE_AT_GEN : forall (x : R), forall f : R -> R, forall g : R, forall h : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((has_complex_derivative h (Cx g) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (Cx x)) real)) /\ (forall y : R, (Rlt (Rabs (Rminus y x)) d) -> (h (Cx y)) = (Cx (f y))))) -> has_real_derivative f g (atreal x). +Axiom thm_HAS_COMPLEX_REAL_DERIVATIVE_WITHIN : forall (x : R), forall f : R -> R, forall g : R, forall h : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : R -> Prop, ((@IN R x s) /\ ((has_complex_derivative h (Cx g) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (Cx x)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8432 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8432 ((real z) /\ (@IN R (Re z) s)) z)))) /\ (forall y : R, (@IN R y s) -> (h (Cx y)) = (Cx (f y))))) -> has_real_derivative f g (@within R (atreal x) s). +Axiom thm_HAS_COMPLEX_REAL_DERIVATIVE_AT : forall (x : R), forall f : R -> R, forall g : R, forall h : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((has_complex_derivative h (Cx g) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (Cx x)) real)) /\ (forall y : R, (h (Cx y)) = (Cx (f y)))) -> has_real_derivative f g (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_FROM_COMPLEX_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : cart R (tybit0 unit), forall x : R, ((has_complex_derivative f f' (@_at (tybit0 unit) (Cx x))) /\ (forall z : cart R (tybit0 unit), (real z) -> real (f z))) -> has_real_derivative (@o R (cart R (tybit0 unit)) R Re (@o R (cart R (tybit0 unit)) (cart R (tybit0 unit)) f Cx)) (Re f') (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_FROM_COMPLEX_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : R, ((complex_differentiable f (@_at (tybit0 unit) (Cx x))) /\ (forall z : cart R (tybit0 unit), (real z) -> real (f z))) -> real_differentiable (@o R (cart R (tybit0 unit)) R Re (@o R (cart R (tybit0 unit)) (cart R (tybit0 unit)) f Cx)) (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_CARATHEODORY_ATREAL : forall f : R -> R, forall f' : R, forall z : R, (has_real_derivative f f' (atreal z)) = (exists g : R -> R, (forall w : R, (Rminus (f w) (f z)) = (Rmult (g w) (Rminus w z))) /\ ((@real_continuous R g (atreal z)) /\ ((g z) = f'))). +Axiom thm_HAS_REAL_DERIVATIVE_CARATHEODORY_WITHINREAL : forall f : R -> R, forall f' : R, forall z : R, forall s : R -> Prop, (has_real_derivative f f' (@within R (atreal z) s)) = (exists g : R -> R, (forall w : R, (Rminus (f w) (f z)) = (Rmult (g w) (Rminus w z))) /\ ((@real_continuous R g (@within R (atreal z) s)) /\ ((g z) = f'))). +Axiom thm_REAL_DIFFERENTIABLE_CARATHEODORY_ATREAL : forall f : R -> R, forall z : R, (real_differentiable f (atreal z)) = (exists g : R -> R, (forall w : R, (Rminus (f w) (f z)) = (Rmult (g w) (Rminus w z))) /\ (@real_continuous R g (atreal z))). +Axiom thm_REAL_DIFFERENTIABLE_CARATHEODORY_WITHINREAL : forall f : R -> R, forall z : R, forall s : R -> Prop, (real_differentiable f (@within R (atreal z) s)) = (exists g : R -> R, (forall w : R, (Rminus (f w) (f z)) = (Rmult (g w) (Rminus w z))) /\ (@real_continuous R g (@within R (atreal z) s))). +Axiom thm_IS_REALINTERVAL_CONVEX : forall s : R -> Prop, (is_realinterval s) = (@convex unit (@IMAGE R (cart R unit) lift s)). +Axiom thm_IS_REALINTERVAL_CONNECTED : forall s : R -> Prop, (is_realinterval s) = (@connected unit (@IMAGE R (cart R unit) lift s)). +Axiom thm_TRIVIAL_LIMIT_WITHIN_REALINTERVAL : forall s : R -> Prop, forall x : R, ((is_realinterval s) /\ (@IN R x s)) -> (@trivial_limit R (@within R (atreal x) s)) = (s = (@INSERT R x (@EMPTY R))). +Axiom thm_IS_REAL_INTERVAL_CASES : forall s : R -> Prop, (is_realinterval s) = ((s = (@EMPTY R)) \/ ((s = (@UNIV R)) \/ ((exists a : R, s = (@GSPEC R (fun GEN_PVAR_8434 : R => exists x : R, @SETSPEC R GEN_PVAR_8434 (Rlt a x) x))) \/ ((exists a : R, s = (@GSPEC R (fun GEN_PVAR_8435 : R => exists x : R, @SETSPEC R GEN_PVAR_8435 (Rle a x) x))) \/ ((exists b : R, s = (@GSPEC R (fun GEN_PVAR_8436 : R => exists x : R, @SETSPEC R GEN_PVAR_8436 (Rle x b) x))) \/ ((exists b : R, s = (@GSPEC R (fun GEN_PVAR_8437 : R => exists x : R, @SETSPEC R GEN_PVAR_8437 (Rlt x b) x))) \/ ((exists a : R, exists b : R, s = (@GSPEC R (fun GEN_PVAR_8438 : R => exists x : R, @SETSPEC R GEN_PVAR_8438 ((Rlt a x) /\ (Rlt x b)) x))) \/ ((exists a : R, exists b : R, s = (@GSPEC R (fun GEN_PVAR_8439 : R => exists x : R, @SETSPEC R GEN_PVAR_8439 ((Rlt a x) /\ (Rle x b)) x))) \/ ((exists a : R, exists b : R, s = (@GSPEC R (fun GEN_PVAR_8440 : R => exists x : R, @SETSPEC R GEN_PVAR_8440 ((Rle a x) /\ (Rlt x b)) x))) \/ (exists a : R, exists b : R, s = (@GSPEC R (fun GEN_PVAR_8441 : R => exists x : R, @SETSPEC R GEN_PVAR_8441 ((Rle a x) /\ (Rle x b)) x)))))))))))). +Axiom thm_IS_REALINTERVAL_CLAUSES : (is_realinterval (@EMPTY R)) /\ ((is_realinterval (@UNIV R)) /\ ((forall a : R, is_realinterval (@GSPEC R (fun GEN_PVAR_8442 : R => exists x : R, @SETSPEC R GEN_PVAR_8442 (Rlt a x) x))) /\ ((forall a : R, is_realinterval (@GSPEC R (fun GEN_PVAR_8443 : R => exists x : R, @SETSPEC R GEN_PVAR_8443 (Rle a x) x))) /\ ((forall b : R, is_realinterval (@GSPEC R (fun GEN_PVAR_8444 : R => exists x : R, @SETSPEC R GEN_PVAR_8444 (Rlt x b) x))) /\ ((forall b : R, is_realinterval (@GSPEC R (fun GEN_PVAR_8445 : R => exists x : R, @SETSPEC R GEN_PVAR_8445 (Rle x b) x))) /\ ((forall a : R, forall b : R, is_realinterval (@GSPEC R (fun GEN_PVAR_8446 : R => exists x : R, @SETSPEC R GEN_PVAR_8446 ((Rlt a x) /\ (Rlt x b)) x))) /\ ((forall a : R, forall b : R, is_realinterval (@GSPEC R (fun GEN_PVAR_8447 : R => exists x : R, @SETSPEC R GEN_PVAR_8447 ((Rlt a x) /\ (Rle x b)) x))) /\ ((forall a : R, forall b : R, is_realinterval (@GSPEC R (fun GEN_PVAR_8448 : R => exists x : R, @SETSPEC R GEN_PVAR_8448 ((Rle a x) /\ (Rlt x b)) x))) /\ (forall a : R, forall b : R, is_realinterval (@GSPEC R (fun GEN_PVAR_8449 : R => exists x : R, @SETSPEC R GEN_PVAR_8449 ((Rle a x) /\ (Rle x b)) x))))))))))). +Axiom thm_REAL_CONVEX : forall s : R -> Prop, (is_realinterval s) = (forall x : R, forall y : R, forall u : R, forall v : R, ((@IN R x s) /\ ((@IN R y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @IN R (Rplus (Rmult u x) (Rmult v y)) s). +Axiom thm_REAL_CONVEX_ALT : forall s : R -> Prop, (is_realinterval s) = (forall x : R, forall y : R, forall u : R, ((@IN R x s) /\ ((@IN R y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N))))))) -> @IN R (Rplus (Rmult (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) x) (Rmult u y)) s). +Axiom thm_REAL_MIDPOINT_IN_CONVEX : forall s : R -> Prop, forall x : R, forall y : R, ((is_realinterval s) /\ ((@IN R x s) /\ (@IN R y s))) -> @IN R (Rdiv (Rplus x y) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) s. +Axiom thm_IS_REALINTERVAL_CONVEX_COMPLEX : forall s : R -> Prop, (is_realinterval s) = (@convex (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8450 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8450 ((real z) /\ (@IN R (Re z) s)) z))). +Axiom thm_IMAGE_AFFINITY_REAL_INTERVAL : forall a : R, forall b : R, forall m : R, forall c : R, (@IMAGE R R (fun x : R => Rplus (Rmult m x) c) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (@COND (R -> Prop) ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R)) (@EMPTY R) (@COND (R -> Prop) (Rle (R_of_N (NUMERAL 0%N)) m) (closed_real_interval (@cons (prod R R) (@pair R R (Rplus (Rmult m a) c) (Rplus (Rmult m b) c)) (@nil (prod R R)))) (closed_real_interval (@cons (prod R R) (@pair R R (Rplus (Rmult m b) c) (Rplus (Rmult m a) c)) (@nil (prod R R)))))). +Axiom thm_IMAGE_STRETCH_REAL_INTERVAL : forall a : R, forall b : R, forall m : R, (@IMAGE R R (fun x : R => Rmult m x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (@COND (R -> Prop) ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R)) (@EMPTY R) (@COND (R -> Prop) (Rle (R_of_N (NUMERAL 0%N)) m) (closed_real_interval (@cons (prod R R) (@pair R R (Rmult m a) (Rmult m b)) (@nil (prod R R)))) (closed_real_interval (@cons (prod R R) (@pair R R (Rmult m b) (Rmult m a)) (@nil (prod R R)))))). +Axiom thm_REAL_INTERVAL_TRANSLATION : (forall c : R, forall a : R, forall b : R, (closed_real_interval (@cons (prod R R) (@pair R R (Rplus c a) (Rplus c b)) (@nil (prod R R)))) = (@IMAGE R R (fun x : R => Rplus c x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ (forall c : R, forall a : R, forall b : R, (open_real_interval (@pair R R (Rplus c a) (Rplus c b))) = (@IMAGE R R (fun x : R => Rplus c x) (open_real_interval (@pair R R a b)))). +Axiom thm_REAL_CONTINUOUS_CONTINUOUS : forall {_1692522 : Type'} (f : _1692522 -> R) (net' : net _1692522), (@real_continuous _1692522 f net') = (@continuous (tybit0 unit) _1692522 (@o _1692522 R (cart R (tybit0 unit)) Cx f) net'). +Axiom thm_REAL_CONTINUOUS_CONTINUOUS1 : forall {_1692537 : Type'} (f : _1692537 -> R) (net' : net _1692537), (@real_continuous _1692537 f net') = (@continuous unit _1692537 (@o _1692537 R (cart R unit) lift f) net'). +Axiom thm_REAL_CONTINUOUS_CONTINUOUS_ATREAL : forall (f : R -> R) (x : R), (@real_continuous R f (atreal x)) = (@continuous unit (cart R unit) (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (@_at unit (lift x))). +Axiom thm_REAL_CONTINUOUS_CONTINUOUS_WITHINREAL : forall (f : R -> R) (x : R) (s : R -> Prop), (@real_continuous R f (@within R (atreal x) s)) = (@continuous unit (cart R unit) (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (@within (cart R unit) (@_at unit (lift x)) (@IMAGE R (cart R unit) lift s))). +Axiom thm_REAL_COMPLEX_CONTINUOUS_WITHINREAL : forall (f : R -> R) (x : R) (s : R -> Prop), (@real_continuous R f (@within R (atreal x) s)) = (@continuous (tybit0 unit) (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx (@o (cart R (tybit0 unit)) R R f Re)) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (Cx x)) (@INTER (cart R (tybit0 unit)) real (@IMAGE R (cart R (tybit0 unit)) Cx s)))). +Axiom thm_REAL_COMPLEX_CONTINUOUS_ATREAL : forall (f : R -> R) (x : R), (@real_continuous R f (atreal x)) = (@continuous (tybit0 unit) (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) R (cart R (tybit0 unit)) Cx (@o (cart R (tybit0 unit)) R R f Re)) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) (Cx x)) real)). +Axiom thm_CONTINUOUS_CONTINUOUS_WITHINREAL : forall {_1692711 : Type'}, forall f : R -> cart R _1692711, forall x : R, forall s : R -> Prop, (@continuous _1692711 R f (@within R (atreal x) s)) = (@continuous _1692711 (cart R unit) (@o (cart R unit) R (cart R _1692711) f drop) (@within (cart R unit) (@_at unit (lift x)) (@IMAGE R (cart R unit) lift s))). +Axiom thm_CONTINUOUS_CONTINUOUS_ATREAL : forall {_1692749 : Type'}, forall f : R -> cart R _1692749, forall x : R, (@continuous _1692749 R f (atreal x)) = (@continuous _1692749 (cart R unit) (@o (cart R unit) R (cart R _1692749) f drop) (@_at unit (lift x))). +Axiom thm_REAL_CONTINUOUS_REAL_CONTINUOUS_WITHINREAL : forall f : R -> R, forall x : R, forall s : R -> Prop, (@real_continuous R f (@within R (atreal x) s)) = (@real_continuous (cart R unit) (@o (cart R unit) R R f drop) (@within (cart R unit) (@_at unit (lift x)) (@IMAGE R (cart R unit) lift s))). +Axiom thm_REAL_CONTINUOUS_REAL_CONTINUOUS_ATREAL : forall f : R -> R, forall x : R, (@real_continuous R f (atreal x)) = (@real_continuous (cart R unit) (@o (cart R unit) R R f drop) (@_at unit (lift x))). +Axiom thm_HAS_REAL_DERIVATIVE_IMP_CONTINUOUS_WITHINREAL : forall f : R -> R, forall f' : R, forall x : R, forall s : R -> Prop, (has_real_derivative f f' (@within R (atreal x) s)) -> @real_continuous R f (@within R (atreal x) s). +Axiom thm_REAL_DIFFERENTIABLE_IMP_CONTINUOUS_WITHINREAL : forall f : R -> R, forall x : R, forall s : R -> Prop, (real_differentiable f (@within R (atreal x) s)) -> @real_continuous R f (@within R (atreal x) s). +Axiom thm_HAS_REAL_DERIVATIVE_IMP_CONTINUOUS_ATREAL : forall f : R -> R, forall f' : R, forall x : R, (has_real_derivative f f' (atreal x)) -> @real_continuous R f (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_IMP_CONTINUOUS_ATREAL : forall f : R -> R, forall x : R, (real_differentiable f (atreal x)) -> @real_continuous R f (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_ON_IMP_REAL_CONTINUOUS_ON : forall f : R -> R, forall s : R -> Prop, (real_differentiable_on f s) -> real_continuous_on f s. +Axiom thm_REAL_CONTINUOUS_AT_COMPONENT : forall {N' : Type'}, forall i : N, forall a : cart R N', ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @real_continuous (cart R N') (fun x : cart R N' => @dollar R N' x i) (@_at N' a). +Axiom thm_REAL_CONTINUOUS_AT_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall z : cart R N', forall f : (cart R N') -> R, (@real_continuous (cart R N') f (@_at N' (@vector_add N' a z))) = (@real_continuous (cart R N') (fun x : cart R N' => f (@vector_add N' a x)) (@_at N' z)). +Axiom thm_REAL_CONTINUOUS_AT_LINEAR_IMAGE : forall {N' : Type'}, forall h : (cart R N') -> cart R N', forall z : cart R N', forall f : (cart R N') -> R, ((@linear N' N' h) /\ (forall x : cart R N', (@vector_norm N' (h x)) = (@vector_norm N' x))) -> (@real_continuous (cart R N') f (@_at N' (h z))) = (@real_continuous (cart R N') (fun x : cart R N' => f (h x)) (@_at N' z)). +Axiom thm_REAL_CONTINUOUS_AT_ARG : forall z : cart R (tybit0 unit), (~ ((real z) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re z)))) -> @real_continuous (cart R (tybit0 unit)) Arg (@_at (tybit0 unit) z). +Axiom thm_REAL_CONTINUOUS_TRANSFORM_WITHIN_SET_IMP : forall {_1693152 : Type'}, forall f : (cart R _1693152) -> R, forall a : cart R _1693152, forall s : (cart R _1693152) -> Prop, forall t : (cart R _1693152) -> Prop, ((@eventually (cart R _1693152) (fun x : cart R _1693152 => (@IN (cart R _1693152) x t) -> @IN (cart R _1693152) x s) (@_at _1693152 a)) /\ (@real_continuous (cart R _1693152) f (@within (cart R _1693152) (@_at _1693152 a) s))) -> @real_continuous (cart R _1693152) f (@within (cart R _1693152) (@_at _1693152 a) t). +Axiom thm_CONTINUOUS_TRANSFORM_WITHINREAL_SET_IMP : forall {_1693190 : Type'}, forall f : R -> cart R _1693190, forall a : R, forall s : R -> Prop, forall t : R -> Prop, ((@eventually R (fun x : R => (@IN R x t) -> @IN R x s) (atreal a)) /\ (@continuous _1693190 R f (@within R (atreal a) s))) -> @continuous _1693190 R f (@within R (atreal a) t). +Axiom thm_REAL_CONTINUOUS_TRANSFORM_WITHINREAL_SET_IMP : forall f : R -> R, forall a : R, forall s : R -> Prop, forall t : R -> Prop, ((@eventually R (fun x : R => (@IN R x t) -> @IN R x s) (atreal a)) /\ (@real_continuous R f (@within R (atreal a) s))) -> @real_continuous R f (@within R (atreal a) t). +Axiom thm_HAS_REAL_DERIVATIVE_WITHIN_SUBSET : forall (f' : R), forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, forall x : R, ((has_real_derivative f f' (@within R (atreal x) s)) /\ (@SUBSET R t s)) -> has_real_derivative f f' (@within R (atreal x) t). +Axiom thm_REAL_DIFFERENTIABLE_ON_SUBSET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_differentiable_on f s) /\ (@SUBSET R t s)) -> real_differentiable_on f t. +Axiom thm_REAL_DIFFERENTIABLE_WITHIN_SUBSET : forall (x : R), forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_differentiable f (@within R (atreal x) s)) /\ (@SUBSET R t s)) -> real_differentiable f (@within R (atreal x) t). +Axiom thm_HAS_REAL_DERIVATIVE_ATREAL_WITHIN : forall f : R -> R, forall f' : R, forall x : R, forall s : R -> Prop, (has_real_derivative f f' (atreal x)) -> has_real_derivative f f' (@within R (atreal x) s). +Axiom thm_HAS_REAL_DERIVATIVE_WITHIN_REAL_OPEN : forall f : R -> R, forall f' : R, forall a : R, forall s : R -> Prop, ((@IN R a s) /\ (real_open s)) -> (has_real_derivative f f' (@within R (atreal a) s)) = (has_real_derivative f f' (atreal a)). +Axiom thm_REAL_DIFFERENTIABLE_ATREAL_WITHIN : forall f : R -> R, forall s : R -> Prop, forall z : R, (real_differentiable f (atreal z)) -> real_differentiable f (@within R (atreal z) s). +Axiom thm_HAS_REAL_DERIVATIVE_TRANSFORM_WITHIN : forall f : R -> R, forall f' : R, forall g : R -> R, forall x : R, forall s : R -> Prop, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN R x s) /\ ((forall x' : R, ((@IN R x' s) /\ (Rlt (Rabs (Rminus x' x)) d)) -> (f x') = (g x')) /\ (has_real_derivative f f' (@within R (atreal x) s))))) -> has_real_derivative g f' (@within R (atreal x) s). +Axiom thm_HAS_REAL_DERIVATIVE_TRANSFORM_ATREAL : forall f : R -> R, forall f' : R, forall g : R -> R, forall x : R, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x' : R, (Rlt (Rabs (Rminus x' x)) d) -> (f x') = (g x')) /\ (has_real_derivative f f' (atreal x)))) -> has_real_derivative g f' (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_ZERO_CONSTANT : forall f : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (forall x : R, (@IN R x s) -> has_real_derivative f (R_of_N (NUMERAL 0%N)) (@within R (atreal x) s))) -> exists c : R, forall x : R, (@IN R x s) -> (f x) = c. +Axiom thm_HAS_REAL_DERIVATIVE_ZERO_UNIQUE : forall f : R -> R, forall s : R -> Prop, forall c : R, forall a : R, ((is_realinterval s) /\ ((@IN R a s) /\ (((f a) = c) /\ (forall x : R, (@IN R x s) -> has_real_derivative f (R_of_N (NUMERAL 0%N)) (@within R (atreal x) s))))) -> forall x : R, (@IN R x s) -> (f x) = c. +Axiom thm_REAL_DIFF_CHAIN_WITHIN : forall f : R -> R, forall g : R -> R, forall f' : R, forall g' : R, forall x : R, forall s : R -> Prop, ((has_real_derivative f f' (@within R (atreal x) s)) /\ (has_real_derivative g g' (@within R (atreal (f x)) (@IMAGE R R f s)))) -> has_real_derivative (@o R R R g f) (Rmult g' f') (@within R (atreal x) s). +Axiom thm_REAL_DIFF_CHAIN_ATREAL : forall f : R -> R, forall g : R -> R, forall f' : R, forall g' : R, forall x : R, ((has_real_derivative f f' (atreal x)) /\ (has_real_derivative g g' (atreal (f x)))) -> has_real_derivative (@o R R R g f) (Rmult g' f') (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_CHAIN : forall (f' : R) (g' : R -> R), forall P : R -> Prop, forall f : R -> R, forall g : R -> R, (forall x : R, (P x) -> has_real_derivative g (g' x) (atreal x)) -> (forall x : R, forall s : R -> Prop, ((has_real_derivative f f' (@within R (atreal x) s)) /\ (P (f x))) -> has_real_derivative (fun x' : R => g (f x')) (Rmult f' (g' (f x))) (@within R (atreal x) s)) /\ (forall x : R, ((has_real_derivative f f' (atreal x)) /\ (P (f x))) -> has_real_derivative (fun x' : R => g (f x')) (Rmult f' (g' (f x))) (atreal x)). +Axiom thm_HAS_REAL_DERIVATIVE_CHAIN_UNIV : forall (f' : R) (g' : R -> R), forall f : R -> R, forall g : R -> R, (forall x : R, has_real_derivative g (g' x) (atreal x)) -> (forall x : R, forall s : R -> Prop, (has_real_derivative f f' (@within R (atreal x) s)) -> has_real_derivative (fun x' : R => g (f x')) (Rmult f' (g' (f x))) (@within R (atreal x) s)) /\ (forall x : R, (has_real_derivative f f' (atreal x)) -> has_real_derivative (fun x' : R => g (f x')) (Rmult f' (g' (f x))) (atreal x)). +Axiom thm_REAL_DERIVATIVE_UNIQUE_ATREAL : forall f : R -> R, forall z : R, forall f' : R, forall f'' : R, ((has_real_derivative f f' (atreal z)) /\ (has_real_derivative f f'' (atreal z))) -> f' = f''. +Axiom thm_HAS_REAL_DERIVATIVE_DERIVATIVE : forall f : R -> R, forall f' : R, forall x : R, (has_real_derivative f f' (atreal x)) -> (real_derivative f x) = f'. +Axiom thm_HAS_REAL_DERIVATIVE_DIFFERENTIABLE : forall f : R -> R, forall x : R, (has_real_derivative f (real_derivative f x) (atreal x)) = (real_differentiable f (atreal x)). +Axiom thm_HAS_REAL_DERIVATIVE_LMUL_WITHIN : forall f : R -> R, forall f' : R, forall c : R, forall x : R, forall s : R -> Prop, (has_real_derivative f f' (@within R (atreal x) s)) -> has_real_derivative (fun x' : R => Rmult c (f x')) (Rmult c f') (@within R (atreal x) s). +Axiom thm_HAS_REAL_DERIVATIVE_LMUL_ATREAL : forall f : R -> R, forall f' : R, forall c : R, forall x : R, (has_real_derivative f f' (atreal x)) -> has_real_derivative (fun x' : R => Rmult c (f x')) (Rmult c f') (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_RMUL_WITHIN : forall f : R -> R, forall f' : R, forall c : R, forall x : R, forall s : R -> Prop, (has_real_derivative f f' (@within R (atreal x) s)) -> has_real_derivative (fun x' : R => Rmult (f x') c) (Rmult f' c) (@within R (atreal x) s). +Axiom thm_HAS_REAL_DERIVATIVE_RMUL_ATREAL : forall f : R -> R, forall f' : R, forall c : R, forall x : R, (has_real_derivative f f' (atreal x)) -> has_real_derivative (fun x' : R => Rmult (f x') c) (Rmult f' c) (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_CDIV_WITHIN : forall f : R -> R, forall f' : R, forall c : R, forall x : R, forall s : R -> Prop, (has_real_derivative f f' (@within R (atreal x) s)) -> has_real_derivative (fun x' : R => Rdiv (f x') c) (Rdiv f' c) (@within R (atreal x) s). +Axiom thm_HAS_REAL_DERIVATIVE_CDIV_ATREAL : forall f : R -> R, forall f' : R, forall c : R, forall x : R, (has_real_derivative f f' (atreal x)) -> has_real_derivative (fun x' : R => Rdiv (f x') c) (Rdiv f' c) (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_ID : forall net' : net R, has_real_derivative (fun x : R => x) (R_of_N (NUMERAL (BIT1 0%N))) net'. +Axiom thm_HAS_REAL_DERIVATIVE_CONST : forall c : R, forall net' : net R, has_real_derivative (fun x : R => c) (R_of_N (NUMERAL 0%N)) net'. +Axiom thm_HAS_REAL_DERIVATIVE_NEG : forall f : R -> R, forall f' : R, forall net' : net R, (has_real_derivative f f' net') -> has_real_derivative (fun x : R => Ropp (f x)) (Ropp f') net'. +Axiom thm_HAS_REAL_DERIVATIVE_ADD : forall f : R -> R, forall f' : R, forall g : R -> R, forall g' : R, forall net' : net R, ((has_real_derivative f f' net') /\ (has_real_derivative g g' net')) -> has_real_derivative (fun x : R => Rplus (f x) (g x)) (Rplus f' g') net'. +Axiom thm_HAS_REAL_DERIVATIVE_SUB : forall f : R -> R, forall f' : R, forall g : R -> R, forall g' : R, forall net' : net R, ((has_real_derivative f f' net') /\ (has_real_derivative g g' net')) -> has_real_derivative (fun x : R => Rminus (f x) (g x)) (Rminus f' g') net'. +Axiom thm_HAS_REAL_DERIVATIVE_MUL_WITHIN : forall f : R -> R, forall f' : R, forall g : R -> R, forall g' : R, forall x : R, forall s : R -> Prop, ((has_real_derivative f f' (@within R (atreal x) s)) /\ (has_real_derivative g g' (@within R (atreal x) s))) -> has_real_derivative (fun x' : R => Rmult (f x') (g x')) (Rplus (Rmult (f x) g') (Rmult f' (g x))) (@within R (atreal x) s). +Axiom thm_HAS_REAL_DERIVATIVE_MUL_ATREAL : forall f : R -> R, forall f' : R, forall g : R -> R, forall g' : R, forall x : R, ((has_real_derivative f f' (atreal x)) /\ (has_real_derivative g g' (atreal x))) -> has_real_derivative (fun x' : R => Rmult (f x') (g x')) (Rplus (Rmult (f x) g') (Rmult f' (g x))) (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_POW_WITHIN : forall f : R -> R, forall f' : R, forall x : R, forall s : R -> Prop, forall n : N, (has_real_derivative f f' (@within R (atreal x) s)) -> has_real_derivative (fun x' : R => real_pow (f x') n) (Rmult (R_of_N n) (Rmult (real_pow (f x) (N.sub n (NUMERAL (BIT1 0%N)))) f')) (@within R (atreal x) s). +Axiom thm_HAS_REAL_DERIVATIVE_POW_ATREAL : forall f : R -> R, forall f' : R, forall x : R, forall n : N, (has_real_derivative f f' (atreal x)) -> has_real_derivative (fun x' : R => real_pow (f x') n) (Rmult (R_of_N n) (Rmult (real_pow (f x) (N.sub n (NUMERAL (BIT1 0%N)))) f')) (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_INV_BASIC : forall x : R, (~ (x = (R_of_N (NUMERAL 0%N)))) -> has_real_derivative Rinv (Ropp (Rinv (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))))) (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_INV_WITHIN : forall f : R -> R, forall f' : R, forall x : R, forall s : R -> Prop, ((has_real_derivative f f' (@within R (atreal x) s)) /\ (~ ((f x) = (R_of_N (NUMERAL 0%N))))) -> has_real_derivative (fun x' : R => Rinv (f x')) (Rdiv (Ropp f') (real_pow (f x) (NUMERAL (BIT0 (BIT1 0%N))))) (@within R (atreal x) s). +Axiom thm_HAS_REAL_DERIVATIVE_INV_ATREAL : forall f : R -> R, forall f' : R, forall x : R, ((has_real_derivative f f' (atreal x)) /\ (~ ((f x) = (R_of_N (NUMERAL 0%N))))) -> has_real_derivative (fun x' : R => Rinv (f x')) (Rdiv (Ropp f') (real_pow (f x) (NUMERAL (BIT0 (BIT1 0%N))))) (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_DIV_WITHIN : forall f : R -> R, forall f' : R, forall g : R -> R, forall g' : R, forall x : R, forall s : R -> Prop, ((has_real_derivative f f' (@within R (atreal x) s)) /\ ((has_real_derivative g g' (@within R (atreal x) s)) /\ (~ ((g x) = (R_of_N (NUMERAL 0%N)))))) -> has_real_derivative (fun x' : R => Rdiv (f x') (g x')) (Rdiv (Rminus (Rmult f' (g x)) (Rmult (f x) g')) (real_pow (g x) (NUMERAL (BIT0 (BIT1 0%N))))) (@within R (atreal x) s). +Axiom thm_HAS_REAL_DERIVATIVE_DIV_ATREAL : forall f : R -> R, forall f' : R, forall g : R -> R, forall g' : R, forall x : R, ((has_real_derivative f f' (atreal x)) /\ ((has_real_derivative g g' (atreal x)) /\ (~ ((g x) = (R_of_N (NUMERAL 0%N)))))) -> has_real_derivative (fun x' : R => Rdiv (f x') (g x')) (Rdiv (Rminus (Rmult f' (g x)) (Rmult (f x) g')) (real_pow (g x) (NUMERAL (BIT0 (BIT1 0%N))))) (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_SUM : forall {_1695287 : Type'} (f' : _1695287 -> R), forall f : _1695287 -> R -> R, forall net' : net R, forall s : _1695287 -> Prop, ((@FINITE _1695287 s) /\ (forall a : _1695287, (@IN _1695287 a s) -> has_real_derivative (f a) (f' a) net')) -> has_real_derivative (fun x : R => @sum _1695287 s (fun a : _1695287 => f a x)) (@sum _1695287 s f') net'. +Axiom thm_REAL_DIFFERENTIABLE_CONST : forall c : R, forall net' : net R, real_differentiable (fun z : R => c) net'. +Axiom thm_REAL_DIFFERENTIABLE_ID : forall net' : net R, real_differentiable (fun z : R => z) net'. +Axiom thm_REAL_DIFFERENTIABLE_NEG : forall f : R -> R, forall net' : net R, (real_differentiable f net') -> real_differentiable (fun z : R => Ropp (f z)) net'. +Axiom thm_REAL_DIFFERENTIABLE_ADD : forall f : R -> R, forall g : R -> R, forall net' : net R, ((real_differentiable f net') /\ (real_differentiable g net')) -> real_differentiable (fun z : R => Rplus (f z) (g z)) net'. +Axiom thm_REAL_DIFFERENTIABLE_SUB : forall f : R -> R, forall g : R -> R, forall net' : net R, ((real_differentiable f net') /\ (real_differentiable g net')) -> real_differentiable (fun z : R => Rminus (f z) (g z)) net'. +Axiom thm_REAL_DIFFERENTIABLE_INV_WITHIN : forall f : R -> R, forall z : R, forall s : R -> Prop, ((real_differentiable f (@within R (atreal z) s)) /\ (~ ((f z) = (R_of_N (NUMERAL 0%N))))) -> real_differentiable (fun z' : R => Rinv (f z')) (@within R (atreal z) s). +Axiom thm_REAL_DIFFERENTIABLE_MUL_WITHIN : forall f : R -> R, forall g : R -> R, forall z : R, forall s : R -> Prop, ((real_differentiable f (@within R (atreal z) s)) /\ (real_differentiable g (@within R (atreal z) s))) -> real_differentiable (fun z' : R => Rmult (f z') (g z')) (@within R (atreal z) s). +Axiom thm_REAL_DIFFERENTIABLE_DIV_WITHIN : forall f : R -> R, forall g : R -> R, forall z : R, forall s : R -> Prop, ((real_differentiable f (@within R (atreal z) s)) /\ ((real_differentiable g (@within R (atreal z) s)) /\ (~ ((g z) = (R_of_N (NUMERAL 0%N)))))) -> real_differentiable (fun z' : R => Rdiv (f z') (g z')) (@within R (atreal z) s). +Axiom thm_REAL_DIFFERENTIABLE_POW_WITHIN : forall f : R -> R, forall n : N, forall z : R, forall s : R -> Prop, (real_differentiable f (@within R (atreal z) s)) -> real_differentiable (fun z' : R => real_pow (f z') n) (@within R (atreal z) s). +Axiom thm_REAL_DIFFERENTIABLE_TRANSFORM_WITHIN : forall f : R -> R, forall g : R -> R, forall x : R, forall s : R -> Prop, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@IN R x s) /\ ((forall x' : R, ((@IN R x' s) /\ (Rlt (Rabs (Rminus x' x)) d)) -> (f x') = (g x')) /\ (real_differentiable f (@within R (atreal x) s))))) -> real_differentiable g (@within R (atreal x) s). +Axiom thm_REAL_DIFFERENTIABLE_TRANSFORM : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((forall x : R, (@IN R x s) -> (f x) = (g x)) /\ (real_differentiable_on f s)) -> real_differentiable_on g s. +Axiom thm_REAL_DIFFERENTIABLE_EQ : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, (forall x : R, (@IN R x s) -> (f x) = (g x)) -> (real_differentiable_on f s) = (real_differentiable_on g s). +Axiom thm_REAL_DIFFERENTIABLE_INV_ATREAL : forall f : R -> R, forall z : R, ((real_differentiable f (atreal z)) /\ (~ ((f z) = (R_of_N (NUMERAL 0%N))))) -> real_differentiable (fun z' : R => Rinv (f z')) (atreal z). +Axiom thm_REAL_DIFFERENTIABLE_MUL_ATREAL : forall f : R -> R, forall g : R -> R, forall z : R, ((real_differentiable f (atreal z)) /\ (real_differentiable g (atreal z))) -> real_differentiable (fun z' : R => Rmult (f z') (g z')) (atreal z). +Axiom thm_REAL_DIFFERENTIABLE_DIV_ATREAL : forall f : R -> R, forall g : R -> R, forall z : R, ((real_differentiable f (atreal z)) /\ ((real_differentiable g (atreal z)) /\ (~ ((g z) = (R_of_N (NUMERAL 0%N)))))) -> real_differentiable (fun z' : R => Rdiv (f z') (g z')) (atreal z). +Axiom thm_REAL_DIFFERENTIABLE_POW_ATREAL : forall f : R -> R, forall n : N, forall z : R, (real_differentiable f (atreal z)) -> real_differentiable (fun z' : R => real_pow (f z') n) (atreal z). +Axiom thm_REAL_DIFFERENTIABLE_TRANSFORM_ATREAL : forall f : R -> R, forall g : R -> R, forall x : R, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x' : R, (Rlt (Rabs (Rminus x' x)) d) -> (f x') = (g x')) /\ (real_differentiable f (atreal x)))) -> real_differentiable g (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_COMPOSE_WITHIN : forall f : R -> R, forall g : R -> R, forall x : R, forall s : R -> Prop, ((real_differentiable f (@within R (atreal x) s)) /\ (real_differentiable g (@within R (atreal (f x)) (@IMAGE R R f s)))) -> real_differentiable (@o R R R g f) (@within R (atreal x) s). +Axiom thm_REAL_DIFFERENTIABLE_COMPOSE_ATREAL : forall f : R -> R, forall g : R -> R, forall x : R, ((real_differentiable f (atreal x)) /\ (real_differentiable g (atreal (f x)))) -> real_differentiable (@o R R R g f) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_ON_CONST : forall c : R, forall s : R -> Prop, real_differentiable_on (fun z : R => c) s. +Axiom thm_REAL_DIFFERENTIABLE_ON_ID : forall s : R -> Prop, real_differentiable_on (fun z : R => z) s. +Axiom thm_REAL_DIFFERENTIABLE_ON_COMPOSE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_differentiable_on f s) /\ (real_differentiable_on g (@IMAGE R R f s))) -> real_differentiable_on (@o R R R g f) s. +Axiom thm_REAL_DIFFERENTIABLE_ON_NEG : forall f : R -> R, forall s : R -> Prop, (real_differentiable_on f s) -> real_differentiable_on (fun z : R => Ropp (f z)) s. +Axiom thm_REAL_DIFFERENTIABLE_ON_ADD : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_differentiable_on f s) /\ (real_differentiable_on g s)) -> real_differentiable_on (fun z : R => Rplus (f z) (g z)) s. +Axiom thm_REAL_DIFFERENTIABLE_ON_SUB : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_differentiable_on f s) /\ (real_differentiable_on g s)) -> real_differentiable_on (fun z : R => Rminus (f z) (g z)) s. +Axiom thm_REAL_DIFFERENTIABLE_ON_MUL : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_differentiable_on f s) /\ (real_differentiable_on g s)) -> real_differentiable_on (fun z : R => Rmult (f z) (g z)) s. +Axiom thm_REAL_DIFFERENTIABLE_ON_INV : forall f : R -> R, forall s : R -> Prop, ((real_differentiable_on f s) /\ (forall z : R, (@IN R z s) -> ~ ((f z) = (R_of_N (NUMERAL 0%N))))) -> real_differentiable_on (fun z : R => Rinv (f z)) s. +Axiom thm_REAL_DIFFERENTIABLE_ON_DIV : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_differentiable_on f s) /\ ((real_differentiable_on g s) /\ (forall z : R, (@IN R z s) -> ~ ((g z) = (R_of_N (NUMERAL 0%N)))))) -> real_differentiable_on (fun z : R => Rdiv (f z) (g z)) s. +Axiom thm_REAL_DIFFERENTIABLE_ON_POW : forall f : R -> R, forall s : R -> Prop, forall n : N, (real_differentiable_on f s) -> real_differentiable_on (fun z : R => real_pow (f z) n) s. +Axiom thm_REAL_DIFFERENTIABLE_ON_SUM : forall {_1696302 : Type'}, forall f : _1696302 -> R -> R, forall s : R -> Prop, forall k : _1696302 -> Prop, ((@FINITE _1696302 k) /\ (forall a : _1696302, (@IN _1696302 a k) -> real_differentiable_on (f a) s)) -> real_differentiable_on (fun x : R => @sum _1696302 k (fun a : _1696302 => f a x)) s. +Axiom thm_HAS_REAL_DERIVATIVE_EXP : forall x : R, has_real_derivative exp (exp x) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_AT_EXP : forall x : R, real_differentiable exp (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_WITHIN_EXP : forall s : R -> Prop, forall x : R, real_differentiable exp (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_AT_EXP : forall x : R, @real_continuous R exp (atreal x). +Axiom thm_REAL_CONTINUOUS_WITHIN_EXP : forall s : R -> Prop, forall x : R, @real_continuous R exp (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_ON_EXP : forall s : R -> Prop, real_continuous_on exp s. +Axiom thm_HAS_REAL_DERIVATIVE_SIN : forall x : R, has_real_derivative sin (cos x) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_AT_SIN : forall x : R, real_differentiable sin (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_WITHIN_SIN : forall s : R -> Prop, forall x : R, real_differentiable sin (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_AT_SIN : forall x : R, @real_continuous R sin (atreal x). +Axiom thm_REAL_CONTINUOUS_WITHIN_SIN : forall s : R -> Prop, forall x : R, @real_continuous R sin (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_ON_SIN : forall s : R -> Prop, real_continuous_on sin s. +Axiom thm_HAS_REAL_DERIVATIVE_COS : forall x : R, has_real_derivative cos (Ropp (sin x)) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_AT_COS : forall x : R, real_differentiable cos (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_WITHIN_COS : forall s : R -> Prop, forall x : R, real_differentiable cos (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_AT_COS : forall x : R, @real_continuous R cos (atreal x). +Axiom thm_REAL_CONTINUOUS_WITHIN_COS : forall s : R -> Prop, forall x : R, @real_continuous R cos (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_ON_COS : forall s : R -> Prop, real_continuous_on cos s. +Axiom thm_HAS_REAL_DERIVATIVE_TAN : forall x : R, (~ ((cos x) = (R_of_N (NUMERAL 0%N)))) -> has_real_derivative tan (Rinv (real_pow (cos x) (NUMERAL (BIT0 (BIT1 0%N))))) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_AT_TAN : forall x : R, (~ ((cos x) = (R_of_N (NUMERAL 0%N)))) -> real_differentiable tan (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_WITHIN_TAN : forall s : R -> Prop, forall x : R, (~ ((cos x) = (R_of_N (NUMERAL 0%N)))) -> real_differentiable tan (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_AT_TAN : forall x : R, (~ ((cos x) = (R_of_N (NUMERAL 0%N)))) -> @real_continuous R tan (atreal x). +Axiom thm_REAL_CONTINUOUS_WITHIN_TAN : forall s : R -> Prop, forall x : R, (~ ((cos x) = (R_of_N (NUMERAL 0%N)))) -> @real_continuous R tan (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_ON_TAN : forall s : R -> Prop, (forall x : R, (@IN R x s) -> ~ ((cos x) = (R_of_N (NUMERAL 0%N)))) -> real_continuous_on tan s. +Axiom thm_HAS_REAL_DERIVATIVE_LOG : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> has_real_derivative log (Rinv x) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_AT_LOG : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> real_differentiable log (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_WITHIN_LOG : forall s : R -> Prop, forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> real_differentiable log (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_AT_LOG : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> @real_continuous R log (atreal x). +Axiom thm_REAL_CONTINUOUS_WITHIN_LOG : forall s : R -> Prop, forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> @real_continuous R log (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_ON_LOG : forall s : R -> Prop, (forall x : R, (@IN R x s) -> Rlt (R_of_N (NUMERAL 0%N)) x) -> real_continuous_on log s. +Axiom thm_HAS_REAL_DERIVATIVE_SQRT : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> has_real_derivative sqrt (Rinv (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (sqrt x))) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_AT_SQRT : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> real_differentiable sqrt (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_WITHIN_SQRT : forall s : R -> Prop, forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> real_differentiable sqrt (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_AT_SQRT : forall x : R, @real_continuous R sqrt (atreal x). +Axiom thm_REAL_CONTINUOUS_WITHIN_SQRT : forall s : R -> Prop, forall x : R, @real_continuous R sqrt (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_WITHIN_SQRT_COMPOSE : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall a : cart R N', (@real_continuous (cart R N') f (@within (cart R N') (@_at N' a) s)) -> @real_continuous (cart R N') (fun x : cart R N' => sqrt (f x)) (@within (cart R N') (@_at N' a) s). +Axiom thm_REAL_CONTINUOUS_AT_SQRT_COMPOSE : forall {N' : Type'}, forall f : (cart R N') -> R, forall a : cart R N', (@real_continuous (cart R N') f (@_at N' a)) -> @real_continuous (cart R N') (fun x : cart R N' => sqrt (f x)) (@_at N' a). +Axiom thm_CONTINUOUS_WITHINREAL_SQRT_COMPOSE : forall f : R -> R, forall s : R -> Prop, forall a : R, (@continuous unit R (fun x : R => lift (f x)) (@within R (atreal a) s)) -> @continuous unit R (fun x : R => lift (sqrt (f x))) (@within R (atreal a) s). +Axiom thm_CONTINUOUS_ATREAL_SQRT_COMPOSE : forall f : R -> R, forall a : R, (@continuous unit R (fun x : R => lift (f x)) (atreal a)) -> @continuous unit R (fun x : R => lift (sqrt (f x))) (atreal a). +Axiom thm_REAL_CONTINUOUS_WITHINREAL_SQRT_COMPOSE : forall f : R -> R, forall s : R -> Prop, forall a : R, (@real_continuous R f (@within R (atreal a) s)) -> @real_continuous R (fun x : R => sqrt (f x)) (@within R (atreal a) s). +Axiom thm_REAL_CONTINUOUS_ATREAL_SQRT_COMPOSE : forall f : R -> R, forall a : R, (@real_continuous R f (atreal a)) -> @real_continuous R (fun x : R => sqrt (f x)) (atreal a). +Axiom thm_REAL_CONTINUOUS_ON_SQRT : forall s : R -> Prop, real_continuous_on sqrt s. +Axiom thm_HAS_REAL_DERIVATIVE_ATN : forall x : R, has_real_derivative atn (Rinv (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))))) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_AT_ATN : forall x : R, real_differentiable atn (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_WITHIN_ATN : forall s : R -> Prop, forall x : R, real_differentiable atn (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_AT_ATN : forall x : R, @real_continuous R atn (atreal x). +Axiom thm_REAL_CONTINUOUS_WITHIN_ATN : forall s : R -> Prop, forall x : R, @real_continuous R atn (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_ON_ATN : forall s : R -> Prop, real_continuous_on atn s. +Axiom thm_HAS_REAL_DERIVATIVE_ASN_COS : forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> has_real_derivative asn (Rinv (cos (asn x))) (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_ASN : forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> has_real_derivative asn (Rinv (sqrt (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N))))))) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_AT_ASN : forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> real_differentiable asn (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_WITHIN_ASN : forall s : R -> Prop, forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> real_differentiable asn (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_AT_ASN : forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> @real_continuous R asn (atreal x). +Axiom thm_REAL_CONTINUOUS_WITHIN_ASN : forall s : R -> Prop, forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> @real_continuous R asn (@within R (atreal x) s). +Axiom thm_HAS_REAL_DERIVATIVE_ACS_SIN : forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> has_real_derivative acs (Ropp (Rinv (sin (acs x)))) (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_ACS : forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> has_real_derivative acs (Ropp (Rinv (sqrt (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))))))) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_AT_ACS : forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> real_differentiable acs (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_WITHIN_ACS : forall s : R -> Prop, forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> real_differentiable acs (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_AT_ACS : forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> @real_continuous R acs (atreal x). +Axiom thm_REAL_CONTINUOUS_WITHIN_ACS : forall s : R -> Prop, forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> @real_continuous R acs (@within R (atreal x) s). +Axiom thm_DIFFERENTIABLE_NORM_AT : forall {N' : Type'}, forall a : cart R N', (~ (a = (@vec N' (NUMERAL 0%N)))) -> @differentiable unit N' (fun x : cart R N' => lift (@vector_norm N' x)) (@_at N' a). +Axiom thm_DIFFERENTIABLE_ON_NORM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (~ (@IN (cart R N') (@vec N' (NUMERAL 0%N)) s)) -> @differentiable_on unit N' (fun x : cart R N' => lift (@vector_norm N' x)) s. +Axiom thm_REAL_CONTINUOUS_WITHIN_ASN_STRONG : forall x : R, @real_continuous R asn (@within R (atreal x) (@GSPEC R (fun GEN_PVAR_8456 : R => exists t : R, @SETSPEC R GEN_PVAR_8456 (Rle (Rabs t) (R_of_N (NUMERAL (BIT1 0%N)))) t))). +Axiom thm_REAL_CONTINUOUS_ON_ASN : forall s : R -> Prop, (forall x : R, (@IN R x s) -> Rle (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> real_continuous_on asn s. +Axiom thm_REAL_CONTINUOUS_WITHIN_ACS_STRONG : forall x : R, @real_continuous R acs (@within R (atreal x) (@GSPEC R (fun GEN_PVAR_8462 : R => exists t : R, @SETSPEC R GEN_PVAR_8462 (Rle (Rabs t) (R_of_N (NUMERAL (BIT1 0%N)))) t))). +Axiom thm_REAL_CONTINUOUS_ON_ACS : forall s : R -> Prop, (forall x : R, (@IN R x s) -> Rle (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> real_continuous_on acs s. +Axiom thm_REALLIM_1_OVER_N_OFFSET : forall a : R, @longarrow N (fun n : N => Rinv (Rplus (R_of_N n) a)) (R_of_N (NUMERAL 0%N)) sequentially. +Axiom thm_REALLIM_1_OVER_N : @longarrow N (fun n : N => Rinv (R_of_N n)) (R_of_N (NUMERAL 0%N)) sequentially. +Axiom thm_REALLIM_1_OVER_POW : forall k : N, (N.le (NUMERAL (BIT1 0%N)) k) -> @longarrow N (fun n : N => Rinv (real_pow (R_of_N n) k)) (R_of_N (NUMERAL 0%N)) sequentially. +Axiom thm_REALLIM_LOG_OVER_N : @longarrow N (fun n : N => Rdiv (log (R_of_N n)) (R_of_N n)) (R_of_N (NUMERAL 0%N)) sequentially. +Axiom thm_REALLIM_1_OVER_LOG : @longarrow N (fun n : N => Rinv (log (R_of_N n))) (R_of_N (NUMERAL 0%N)) sequentially. +Axiom thm_REALLIM_POWN : forall z : R, (Rlt (Rabs z) (R_of_N (NUMERAL (BIT1 0%N)))) -> @longarrow N (fun n : N => real_pow z n) (R_of_N (NUMERAL 0%N)) sequentially. +Axiom thm_REALLIM_X_TIMES_LOG : @longarrow R (fun x : R => Rmult x (log x)) (R_of_N (NUMERAL 0%N)) (@within R (atreal (R_of_N (NUMERAL 0%N))) (@GSPEC R (fun GEN_PVAR_8464 : R => exists x : R, @SETSPEC R GEN_PVAR_8464 (Rle (R_of_N (NUMERAL 0%N)) x) x))). +Axiom thm_REALLIM_ROOT_REFL : @longarrow N (fun n : N => root n (R_of_N n)) (R_of_N (NUMERAL (BIT1 0%N))) sequentially. +Axiom thm_REALLIM_SIN_OVER_X : @longarrow R (fun x : R => Rdiv (sin x) x) (R_of_N (NUMERAL (BIT1 0%N))) (atreal (R_of_N (NUMERAL 0%N))). +Axiom thm_REALLIM_RPOW_COMPOSE : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@longarrow A f l net') /\ ((@longarrow A g m net') /\ (Rlt (R_of_N (NUMERAL 0%N)) l))) -> @longarrow A (fun x : A => rpow (f x) (g x)) (rpow l m) net'. +Axiom thm_REAL_CONTINUOUS_RPOW_COMPOSE_WITHIN : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall s : (cart R N') -> Prop, forall a : cart R N', ((@real_continuous (cart R N') f (@within (cart R N') (@_at N' a) s)) /\ ((@real_continuous (cart R N') g (@within (cart R N') (@_at N' a) s)) /\ (Rlt (R_of_N (NUMERAL 0%N)) (f a)))) -> @real_continuous (cart R N') (fun x : cart R N' => rpow (f x) (g x)) (@within (cart R N') (@_at N' a) s). +Axiom thm_HAS_REAL_DERIVATIVE_RPOW : forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> has_real_derivative (fun x' : R => rpow x' y) (Rmult y (rpow x (Rminus y (R_of_N (NUMERAL (BIT1 0%N)))))) (atreal x). +Axiom thm_HAS_REAL_DERIVATIVE_RPOW_RIGHT : forall a : R, forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) a) -> has_real_derivative (fun x' : R => rpow a x') (Rmult (log a) (rpow a x)) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_AT_RPOW : forall x : R, forall y : R, (~ (x = (R_of_N (NUMERAL 0%N)))) -> real_differentiable (fun x' : R => rpow x' y) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_AT_RPOW_RIGHT : forall a : R, forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) a) -> real_differentiable (fun x' : R => rpow a x') (atreal x). +Axiom thm_REAL_CONTINUOUS_AT_RPOW : forall x : R, forall y : R, ((x = (R_of_N (NUMERAL 0%N))) -> Rle (R_of_N (NUMERAL 0%N)) y) -> @real_continuous R (fun x' : R => rpow x' y) (atreal x). +Axiom thm_REAL_CONTINUOUS_WITHIN_RPOW : forall s : R -> Prop, forall x : R, forall y : R, ((x = (R_of_N (NUMERAL 0%N))) -> Rle (R_of_N (NUMERAL 0%N)) y) -> @real_continuous R (fun x' : R => rpow x' y) (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_ON_RPOW : forall s : R -> Prop, forall y : R, ((@IN R (R_of_N (NUMERAL 0%N)) s) -> Rle (R_of_N (NUMERAL 0%N)) y) -> real_continuous_on (fun x : R => rpow x y) s. +Axiom thm_REAL_CONTINUOUS_AT_RPOW_RIGHT : forall a : R, forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) a) -> @real_continuous R (fun x' : R => rpow a x') (atreal x). +Axiom thm_REALLIM_RPOW : forall {_1698860 : Type'}, forall net' : net _1698860, forall f : _1698860 -> R, forall l : R, forall n : R, ((@longarrow _1698860 f l net') /\ ((l = (R_of_N (NUMERAL 0%N))) -> Rle (R_of_N (NUMERAL 0%N)) n)) -> @longarrow _1698860 (fun x : _1698860 => rpow (f x) n) (rpow l n) net'. +Axiom thm_REALLIM_NULL_POW_EQ : forall {_1698908 : Type'}, forall net' : net _1698908, forall f : _1698908 -> R, forall n : N, (~ (n = (NUMERAL 0%N))) -> (@longarrow _1698908 (fun x : _1698908 => real_pow (f x) n) (R_of_N (NUMERAL 0%N)) net') = (@longarrow _1698908 f (R_of_N (NUMERAL 0%N)) net'). +Axiom thm_LIM_NULL_COMPLEX_POW_EQ : forall {_1698948 : Type'}, forall net' : net _1698948, forall f : _1698948 -> cart R (tybit0 unit), forall n : N, (~ (n = (NUMERAL 0%N))) -> (@FImp (tybit0 unit) _1698948 (fun x : _1698948 => complex_pow (f x) n) (Cx (R_of_N (NUMERAL 0%N))) net') = (@FImp (tybit0 unit) _1698948 f (Cx (R_of_N (NUMERAL 0%N))) net'). +Axiom thm_LIM_NULL_RPOW : forall {A : Type'}, forall net' : net A, forall p : R, forall x : A -> R, ((@FImp unit A (@o A R (cart R unit) lift x) (@vec unit (NUMERAL 0%N)) net') /\ (Rlt (R_of_N (NUMERAL 0%N)) p)) -> @FImp unit A (fun i : A => lift (rpow (x i) p)) (@vec unit (NUMERAL 0%N)) net'. +Axiom thm_HAS_REAL_DERIVATIVE_FRAC : forall x : R, (~ (integer x)) -> has_real_derivative frac (R_of_N (NUMERAL (BIT1 0%N))) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_FRAC : forall x : R, (~ (integer x)) -> real_differentiable frac (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_POLYNOMIAL_FUNCTION_ATREAL : forall p : R -> R, forall x : R, (polynomial_function p) -> real_differentiable p (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_POLYNOMIAL_FUNCTION_WITHIN : forall p : R -> R, forall s : R -> Prop, forall x : R, (polynomial_function p) -> real_differentiable p (@within R (atreal x) s). +Axiom thm_REAL_DIFFERENTIABLE_ON_POLYNOMIAL_FUNCTION : forall p : R -> R, forall s : R -> Prop, (polynomial_function p) -> real_differentiable_on p s. +Axiom thm_REAL_CONTINUOUS_POLYNOMIAL_FUNCTION_ATREAL : forall p : R -> R, forall x : R, (polynomial_function p) -> @real_continuous R p (atreal x). +Axiom thm_REAL_CONTINUOUS_POLYNOMIAL_FUNCTION_WITHIN : forall p : R -> R, forall s : R -> Prop, forall x : R, (polynomial_function p) -> @real_continuous R p (@within R (atreal x) s). +Axiom thm_REAL_CONTINUOUS_ON_POLYNOMIAL_FUNCTION : forall p : R -> R, forall s : R -> Prop, (polynomial_function p) -> real_continuous_on p s. +Axiom thm_REAL_IVT_INCREASING : forall f : R -> R, forall a : R, forall b : R, forall y : R, ((Rle a b) /\ ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((Rle (f a) y) /\ (Rle y (f b))))) -> exists x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((f x) = y). +Axiom thm_REAL_IVT_DECREASING : forall f : R -> R, forall a : R, forall b : R, forall y : R, ((Rle a b) /\ ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((Rle (f b) y) /\ (Rle y (f a))))) -> exists x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((f x) = y). +Axiom thm_IS_REALINTERVAL_CONTINUOUS_IMAGE : forall (f : R -> R), forall s : R -> Prop, ((real_continuous_on f s) /\ (is_realinterval s)) -> is_realinterval (@IMAGE R R f s). +Axiom thm_REAL_DERIVATIVE_POS_LEFT_MINIMUM : forall f : R -> R, forall f' : R, forall a : R, forall b : R, forall e : R, ((Rlt a b) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((has_real_derivative f f' (@within R (atreal a) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ (forall x : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rlt (Rabs (Rminus x a)) e)) -> Rle (f a) (f x))))) -> Rle (R_of_N (NUMERAL 0%N)) f'. +Axiom thm_REAL_DERIVATIVE_NEG_LEFT_MAXIMUM : forall f : R -> R, forall f' : R, forall a : R, forall b : R, forall e : R, ((Rlt a b) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((has_real_derivative f f' (@within R (atreal a) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ (forall x : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rlt (Rabs (Rminus x a)) e)) -> Rle (f x) (f a))))) -> Rle f' (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_DERIVATIVE_POS_RIGHT_MAXIMUM : forall f : R -> R, forall f' : R, forall a : R, forall b : R, forall e : R, ((Rlt a b) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((has_real_derivative f f' (@within R (atreal b) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ (forall x : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rlt (Rabs (Rminus x b)) e)) -> Rle (f x) (f b))))) -> Rle (R_of_N (NUMERAL 0%N)) f'. +Axiom thm_REAL_DERIVATIVE_NEG_RIGHT_MINIMUM : forall f : R -> R, forall f' : R, forall a : R, forall b : R, forall e : R, ((Rlt a b) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((has_real_derivative f f' (@within R (atreal b) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ (forall x : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rlt (Rabs (Rminus x b)) e)) -> Rle (f b) (f x))))) -> Rle f' (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_DERIVATIVE_ZERO_MAXMIN : forall f : R -> R, forall f' : R, forall x : R, forall s : R -> Prop, ((@IN R x s) /\ ((real_open s) /\ ((has_real_derivative f f' (atreal x)) /\ ((forall y : R, (@IN R y s) -> Rle (f y) (f x)) \/ (forall y : R, (@IN R y s) -> Rle (f x) (f y)))))) -> f' = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_ROLLE : forall f : R -> R, forall f' : R -> R, forall a : R, forall b : R, ((Rlt a b) /\ (((f a) = (f b)) /\ ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (open_real_interval (@pair R R a b))) -> has_real_derivative f (f' x) (atreal x))))) -> exists x : R, (@IN R x (open_real_interval (@pair R R a b))) /\ ((f' x) = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_MVT : forall f : R -> R, forall f' : R -> R, forall a : R, forall b : R, ((Rlt a b) /\ ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (open_real_interval (@pair R R a b))) -> has_real_derivative f (f' x) (atreal x)))) -> exists x : R, (@IN R x (open_real_interval (@pair R R a b))) /\ ((Rminus (f b) (f a)) = (Rmult (f' x) (Rminus b a))). +Axiom thm_REAL_MVT_SIMPLE : forall f : R -> R, forall f' : R -> R, forall a : R, forall b : R, ((Rlt a b) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_derivative f (f' x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) -> exists x : R, (@IN R x (open_real_interval (@pair R R a b))) /\ ((Rminus (f b) (f a)) = (Rmult (f' x) (Rminus b a))). +Axiom thm_REAL_MVT_VERY_SIMPLE : forall f : R -> R, forall f' : R -> R, forall a : R, forall b : R, ((Rle a b) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_derivative f (f' x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) -> exists x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((Rminus (f b) (f a)) = (Rmult (f' x) (Rminus b a))). +Axiom thm_REAL_ROLLE_SIMPLE : forall f : R -> R, forall f' : R -> R, forall a : R, forall b : R, ((Rlt a b) /\ (((f a) = (f b)) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_derivative f (f' x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))))) -> exists x : R, (@IN R x (open_real_interval (@pair R R a b))) /\ ((f' x) = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_MVT_CAUCHY : forall f : R -> R, forall g : R -> R, forall f' : R -> R, forall g' : R -> R, forall a : R, forall b : R, ((Rlt a b) /\ ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((real_continuous_on g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (open_real_interval (@pair R R a b))) -> (has_real_derivative f (f' x) (atreal x)) /\ (has_real_derivative g (g' x) (atreal x)))))) -> exists x : R, (@IN R x (open_real_interval (@pair R R a b))) /\ ((Rmult (Rminus (f b) (f a)) (g' x)) = (Rmult (Rminus (g b) (g a)) (f' x))). +Axiom thm_LHOSPITAL : forall f : R -> R, forall g : R -> R, forall f' : R -> R, forall g' : R -> R, forall c : R, forall l : R, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) (Rabs (Rminus x c))) /\ (Rlt (Rabs (Rminus x c)) d)) -> (has_real_derivative f (f' x) (atreal x)) /\ ((has_real_derivative g (g' x) (atreal x)) /\ (~ ((g' x) = (R_of_N (NUMERAL 0%N)))))) /\ ((@longarrow R f (R_of_N (NUMERAL 0%N)) (atreal c)) /\ ((@longarrow R g (R_of_N (NUMERAL 0%N)) (atreal c)) /\ (@longarrow R (fun x : R => Rdiv (f' x) (g' x)) l (atreal c)))))) -> @longarrow R (fun x : R => Rdiv (f x) (g x)) l (atreal c). +Axiom thm_REAL_DERIVATIVE_IVT_INCREASING : forall f : R -> R, forall f' : R -> R, forall a : R, forall b : R, ((Rle a b) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_derivative f (f' x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) -> forall t : R, ((Rle (f' a) t) /\ (Rle t (f' b))) -> exists x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((f' x) = t). +Axiom thm_REAL_DERIVATIVE_IVT_DECREASING : forall f : R -> R, forall f' : R -> R, forall a : R, forall b : R, ((Rle a b) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_derivative f (f' x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) -> forall t : R, ((Rle (f' b) t) /\ (Rle t (f' a))) -> exists x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((f' x) = t). +Axiom thm_HAS_REAL_DERIVATIVE_INVERSE_BASIC : forall f : R -> R, forall g : R -> R, forall f' : R, forall t : R -> Prop, forall y : R, ((has_real_derivative f f' (atreal (g y))) /\ ((~ (f' = (R_of_N (NUMERAL 0%N)))) /\ ((@real_continuous R g (atreal y)) /\ ((real_open t) /\ ((@IN R y t) /\ (forall z : R, (@IN R z t) -> (f (g z)) = z)))))) -> has_real_derivative g (Rinv f') (atreal y). +Axiom thm_HAS_REAL_DERIVATIVE_INVERSE_STRONG : forall f : R -> R, forall g : R -> R, forall f' : R, forall s : R -> Prop, forall x : R, ((real_open s) /\ ((@IN R x s) /\ ((real_continuous_on f s) /\ ((forall x' : R, (@IN R x' s) -> (g (f x')) = x') /\ ((has_real_derivative f f' (atreal x)) /\ (~ (f' = (R_of_N (NUMERAL 0%N))))))))) -> has_real_derivative g (Rinv f') (atreal (f x)). +Axiom thm_HAS_REAL_DERIVATIVE_INVERSE_STRONG_X : forall f : R -> R, forall g : R -> R, forall f' : R, forall s : R -> Prop, forall y : R, ((real_open s) /\ ((@IN R (g y) s) /\ ((real_continuous_on f s) /\ ((forall x : R, (@IN R x s) -> (g (f x)) = x) /\ ((has_real_derivative f f' (atreal (g y))) /\ ((~ (f' = (R_of_N (NUMERAL 0%N)))) /\ ((f (g y)) = y))))))) -> has_real_derivative g (Rinv f') (atreal y). +Axiom thm_has_limsup : forall {A : Type'}, forall f : A -> R, forall net' : net A, forall l : R, (@has_limsup A f l net') = ((@trivial_limit A net') \/ (has_inf (@GSPEC R (fun GEN_PVAR_8465 : R => exists b : R, @SETSPEC R GEN_PVAR_8465 (@eventually A (fun x : A => Rle (f x) b) net') b)) l)). +Axiom thm_has_liminf : forall {A : Type'}, forall f : A -> R, forall net' : net A, forall l : R, (@has_liminf A f l net') = ((@trivial_limit A net') \/ (has_sup (@GSPEC R (fun GEN_PVAR_8466 : R => exists b : R, @SETSPEC R GEN_PVAR_8466 (@eventually A (fun x : A => Rle b (f x)) net') b)) l)). +Axiom thm_HAS_LIMSUP_TRANSFORM : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, ((@eventually A (fun x : A => (f x) = (g x)) net') /\ (@has_limsup A f l net')) -> @has_limsup A g l net'. +Axiom thm_HAS_LIMSUP_EVENTUALLY_UBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, forall b : R, ((~ (@trivial_limit A net')) /\ ((@has_limsup A f l net') /\ (Rlt l b))) -> @eventually A (fun x : A => Rlt (f x) b) net'. +Axiom thm_REALLIM_IMP_HAS_LIMSUP : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, (@longarrow A f l net') -> @has_limsup A f l net'. +Axiom thm_HAS_LIMSUP_IMP_UBOUND_LE : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, (@has_limsup A f l net') -> exists b : R, @eventually A (fun x : A => Rle (f x) b) net'. +Axiom thm_HAS_LIMSUP_NOT_UBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, forall c : R, ((~ (@trivial_limit A net')) /\ ((@has_limsup A f l net') /\ (Rlt c l))) -> ~ (@eventually A (fun x : A => Rle (f x) c) net'). +Axiom thm_HAS_LIMSUP : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, (@has_limsup A f l net') = ((@trivial_limit A net') \/ ((forall c : R, (Rlt l c) -> @eventually A (fun x : A => Rle (f x) c) net') /\ (forall c : R, (Rlt c l) -> ~ (@eventually A (fun x : A => Rle (f x) c) net')))). +Axiom thm_LIMSUP_EXISTS : forall {A : Type'}, forall net' : net A, forall f : A -> R, (exists l : R, @has_limsup A f l net') = ((@trivial_limit A net') \/ ((exists b : R, @eventually A (fun x : A => Rle (f x) b) net') /\ (exists c : R, ~ (@eventually A (fun x : A => Rle (f x) c) net')))). +Axiom thm_HAS_LIMSUP_LE : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@has_limsup A f l net') /\ ((@has_limsup A g m net') /\ ((~ (@trivial_limit A net')) /\ (@eventually A (fun x : A => Rle (f x) (g x)) net')))) -> Rle l m. +Axiom thm_HAS_LIMSUP_UBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall b : R, forall l : R, ((@eventually A (fun x : A => Rle (f x) b) net') /\ ((@has_limsup A f l net') /\ (~ (@trivial_limit A net')))) -> Rle l b. +Axiom thm_HAS_LIMSUP_SEQUENTIALLY : forall a : N -> R, forall l : R, (@has_limsup N a l sequentially) = ((forall c : R, (Rlt l c) -> exists N' : N, forall n : N, (N.le N' n) -> Rle (a n) c) /\ (forall c : R, (Rlt c l) -> forall N' : N, exists n : N, (N.le N' n) /\ (Rlt c (a n)))). +Axiom thm_HAS_LIMSUP_SEQUENTIALLY_IMP_REALLIM_SUP : forall f : N -> R, forall l : R, (@has_limsup N f l sequentially) -> @longarrow N (fun n : N => sup (@GSPEC R (fun GEN_PVAR_8468 : R => exists m : N, @SETSPEC R GEN_PVAR_8468 (N.ge m n) (f m)))) l sequentially. +Axiom thm_HAS_LIMSUP_SEQUENTIALLY_REALLIM_SUP : forall f : N -> R, forall l : R, (@has_limsup N f l sequentially) = ((exists b : R, forall n : N, Rle (f n) b) /\ (@longarrow N (fun n : N => sup (@GSPEC R (fun GEN_PVAR_8471 : R => exists k : N, @SETSPEC R GEN_PVAR_8471 (N.ge k n) (f k)))) l sequentially)). +Axiom thm_HAS_LIMSUP_AT : forall {N' : Type'}, forall f : (cart R N') -> R, forall l : R, forall a : cart R N', (@has_limsup (cart R N') f l (@_at N' a)) = ((forall c : R, (Rlt l c) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall x : cart R N', ((Rlt (R_of_N (NUMERAL 0%N)) (@distance N' (@pair (cart R N') (cart R N') x a))) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x a)) r)) -> Rle (f x) c)) /\ (forall c : R, forall r : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (Rlt c l)) -> exists x : cart R N', (Rlt (R_of_N (NUMERAL 0%N)) (@distance N' (@pair (cart R N') (cart R N') x a))) /\ ((Rlt (@distance N' (@pair (cart R N') (cart R N') x a)) r) /\ (Rlt c (f x))))). +Axiom thm_HAS_LIMSUP_AT_REALLIM_SUP : forall {N' : Type'}, forall f : (cart R N') -> R, forall l : R, forall a : cart R N', (@has_limsup (cart R N') f l (@_at N' a)) = ((exists b : R, exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall x : cart R N', ((Rlt (R_of_N (NUMERAL 0%N)) (@distance N' (@pair (cart R N') (cart R N') x a))) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x a)) r)) -> Rle (f x) b)) /\ (@longarrow (cart R N') (fun x : cart R N' => sup (@GSPEC R (fun GEN_PVAR_8474 : R => exists y : cart R N', @SETSPEC R GEN_PVAR_8474 ((Rlt (R_of_N (NUMERAL 0%N)) (@distance N' (@pair (cart R N') (cart R N') y a))) /\ (Rle (@distance N' (@pair (cart R N') (cart R N') y a)) (@distance N' (@pair (cart R N') (cart R N') x a)))) (f y)))) l (@_at N' a))). +Axiom thm_HAS_LIMSUP_MUL_REALLIM_LEFT : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall a : R, forall b : R, ((@longarrow A f a net') /\ ((@has_limsup A g b net') /\ ((@eventually A (fun x : A => Rle (R_of_N (NUMERAL 0%N)) (f x)) net') /\ (@eventually A (fun x : A => Rle (R_of_N (NUMERAL 0%N)) (g x)) net')))) -> @has_limsup A (fun x : A => Rmult (f x) (g x)) (Rmult a b) net'. +Axiom thm_HAS_LIMSUP_SEQUENTIALLY_WITHIN_LBOUND_ZERO : forall f : N -> R, forall b : R, forall k : N -> Prop, ((@has_limsup N f b (@within N sequentially k)) /\ ((forall x : N, Rle (R_of_N (NUMERAL 0%N)) (f x)) /\ (~ (@FINITE N k)))) -> Rle (R_of_N (NUMERAL 0%N)) b. +Axiom thm_HAS_LIMINF_TRANSFORM : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, ((@eventually A (fun x : A => (f x) = (g x)) net') /\ (@has_liminf A f l net')) -> @has_liminf A g l net'. +Axiom thm_HAS_LIMINF_EVENTUALLY_LBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, forall b : R, ((~ (@trivial_limit A net')) /\ ((@has_liminf A f l net') /\ (Rlt b l))) -> @eventually A (fun x : A => Rlt b (f x)) net'. +Axiom thm_REALLIM_IMP_HAS_LIMINF : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, (@longarrow A f l net') -> @has_liminf A f l net'. +Axiom thm_HAS_LIMINF_IMP_LBOUND_LE : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, (@has_liminf A f l net') -> exists b : R, @eventually A (fun x : A => Rle b (f x)) net'. +Axiom thm_HAS_LIMINF_NOT_LBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, forall c : R, ((~ (@trivial_limit A net')) /\ ((@has_liminf A f l net') /\ (Rlt l c))) -> ~ (@eventually A (fun x : A => Rle c (f x)) net'). +Axiom thm_HAS_LIMINF : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall l : R, (@has_liminf A f l net') = ((@trivial_limit A net') \/ ((forall c : R, (Rlt c l) -> @eventually A (fun x : A => Rle c (f x)) net') /\ (forall c : R, (Rlt l c) -> ~ (@eventually A (fun x : A => Rle c (f x)) net')))). +Axiom thm_LIMINF_EXISTS : forall {A : Type'}, forall net' : net A, forall f : A -> R, (exists l : R, @has_liminf A f l net') = ((@trivial_limit A net') \/ ((exists b : R, @eventually A (fun x : A => Rle b (f x)) net') /\ (exists c : R, ~ (@eventually A (fun x : A => Rle c (f x)) net')))). +Axiom thm_HAS_LIMINF_LE : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall g : A -> R, forall l : R, forall m : R, ((@has_liminf A f l net') /\ ((@has_liminf A g m net') /\ ((~ (@trivial_limit A net')) /\ (@eventually A (fun x : A => Rle (f x) (g x)) net')))) -> Rle l m. +Axiom thm_HAS_LIMINF_LBOUND : forall {A : Type'}, forall net' : net A, forall f : A -> R, forall b : R, forall l : R, ((@eventually A (fun x : A => Rle b (f x)) net') /\ ((@has_liminf A f l net') /\ (~ (@trivial_limit A net')))) -> Rle b l. +Axiom thm_HAS_LIMINF_SEQUENTIALLY : forall a : N -> R, forall l : R, (@has_liminf N a l sequentially) = ((forall c : R, (Rlt c l) -> exists N' : N, forall n : N, (N.le N' n) -> Rle c (a n)) /\ (forall c : R, (Rlt l c) -> forall N' : N, exists n : N, (N.le N' n) /\ (Rlt (a n) c))). +Axiom thm_HAS_LIMINF_SEQUENTIALLY_IMP_REALLIM_INF : forall f : N -> R, forall l : R, (@has_liminf N f l sequentially) -> @longarrow N (fun n : N => inf (@GSPEC R (fun GEN_PVAR_8476 : R => exists m : N, @SETSPEC R GEN_PVAR_8476 (N.ge m n) (f m)))) l sequentially. +Axiom thm_HAS_LIMINF_SEQUENTIALLY_REALLIM_INF : forall f : N -> R, forall l : R, (@has_liminf N f l sequentially) = ((exists b : R, forall n : N, Rle b (f n)) /\ (@longarrow N (fun n : N => inf (@GSPEC R (fun GEN_PVAR_8479 : R => exists k : N, @SETSPEC R GEN_PVAR_8479 (N.ge k n) (f k)))) l sequentially)). +Axiom thm_HAS_LIMINF_AT : forall {N' : Type'}, forall f : (cart R N') -> R, forall l : R, forall a : cart R N', (@has_liminf (cart R N') f l (@_at N' a)) = ((forall c : R, (Rlt c l) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall x : cart R N', ((Rlt (R_of_N (NUMERAL 0%N)) (@distance N' (@pair (cart R N') (cart R N') x a))) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x a)) r)) -> Rle c (f x))) /\ (forall c : R, forall r : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (Rlt l c)) -> exists x : cart R N', (Rlt (R_of_N (NUMERAL 0%N)) (@distance N' (@pair (cart R N') (cart R N') x a))) /\ ((Rlt (@distance N' (@pair (cart R N') (cart R N') x a)) r) /\ (Rlt (f x) c)))). +Axiom thm_HAS_LIMINF_AT_REALLIM_INF : forall {N' : Type'}, forall f : (cart R N') -> R, forall l : R, forall a : cart R N', (@has_liminf (cart R N') f l (@_at N' a)) = ((exists b : R, exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall x : cart R N', ((Rlt (R_of_N (NUMERAL 0%N)) (@distance N' (@pair (cart R N') (cart R N') x a))) /\ (Rlt (@distance N' (@pair (cart R N') (cart R N') x a)) r)) -> Rle b (f x))) /\ (@longarrow (cart R N') (fun x : cart R N' => inf (@GSPEC R (fun GEN_PVAR_8482 : R => exists y : cart R N', @SETSPEC R GEN_PVAR_8482 ((Rlt (R_of_N (NUMERAL 0%N)) (@distance N' (@pair (cart R N') (cart R N') y a))) /\ (Rle (@distance N' (@pair (cart R N') (cart R N') y a)) (@distance N' (@pair (cart R N') (cart R N') x a)))) (f y)))) l (@_at N' a))). +Axiom thm_REAL_SERIES_ROOT_TEST : forall a : N -> R, forall b : R, forall k : N -> Prop, ((forall n : N, (@IN N n k) -> Rle (R_of_N (NUMERAL 0%N)) (a n)) /\ ((Rlt b (R_of_N (NUMERAL (BIT1 0%N)))) /\ (@has_limsup N (fun n : N => root n (a n)) b (@within N sequentially k)))) -> real_summable k a. +Axiom thm_SERIES_ROOT_TEST : forall {N' : Type'}, forall a : N -> cart R N', forall b : R, forall k : N -> Prop, ((@has_limsup N (fun n : N => root n (@vector_norm N' (a n))) b (@within N sequentially k)) /\ (Rlt b (R_of_N (NUMERAL (BIT1 0%N))))) -> @summable N' k a. +Axiom thm_CAUCHY_HADAMARD_RADIUS_ABSCONV : forall a : N -> cart R (tybit0 unit), forall k : N -> Prop, forall b : R, forall z : cart R (tybit0 unit), ((@has_limsup N (fun n : N => root n (@vector_norm (tybit0 unit) (a n))) b (@within N sequentially k)) /\ (Rlt (Rmult b (@vector_norm (tybit0 unit) z)) (R_of_N (NUMERAL (BIT1 0%N))))) -> real_summable k (fun n : N => @vector_norm (tybit0 unit) (complex_mul (a n) (complex_pow z n))). +Axiom thm_CAUCHY_HADAMARD_RADIUS : forall a : N -> cart R (tybit0 unit), forall k : N -> Prop, forall b : R, forall z : cart R (tybit0 unit), ((@has_limsup N (fun n : N => root n (@vector_norm (tybit0 unit) (a n))) b (@within N sequentially k)) /\ (Rlt (Rmult b (@vector_norm (tybit0 unit) z)) (R_of_N (NUMERAL (BIT1 0%N))))) -> @summable (tybit0 unit) k (fun n : N => complex_mul (a n) (complex_pow z n)). +Axiom thm_CAUCHY_HADAMARD_RADIUS_ABSCONV_DERIVATIVE : forall z : cart R (tybit0 unit), forall a : N -> cart R (tybit0 unit), forall k : N -> Prop, forall b : R, ((@has_limsup N (fun n : N => root n (@vector_norm (tybit0 unit) (a n))) b (@within N sequentially k)) /\ (Rlt (Rmult b (@vector_norm (tybit0 unit) z)) (R_of_N (NUMERAL (BIT1 0%N))))) -> real_summable k (fun n : N => @vector_norm (tybit0 unit) (complex_mul (Cx (R_of_N n)) (complex_mul (a n) (complex_pow z (N.sub n (NUMERAL (BIT1 0%N))))))). +Axiom thm_CAUCHY_HADAMARD_RADIUS_DERIVATIVE : forall z : cart R (tybit0 unit), forall a : N -> cart R (tybit0 unit), forall k : N -> Prop, forall b : R, ((@has_limsup N (fun n : N => root n (@vector_norm (tybit0 unit) (a n))) b (@within N sequentially k)) /\ (Rlt (Rmult b (@vector_norm (tybit0 unit) z)) (R_of_N (NUMERAL (BIT1 0%N))))) -> @summable (tybit0 unit) k (fun n : N => complex_mul (Cx (R_of_N n)) (complex_mul (a n) (complex_pow z (N.sub n (NUMERAL (BIT1 0%N)))))). +Axiom thm_REAL_CAUCHY_HADAMARD_RADIUS_ABSCONV : forall a : N -> R, forall k : N -> Prop, forall b : R, forall x : R, ((@has_limsup N (fun n : N => root n (Rabs (a n))) b (@within N sequentially k)) /\ (Rlt (Rmult b (Rabs x)) (R_of_N (NUMERAL (BIT1 0%N))))) -> real_summable k (fun n : N => Rabs (Rmult (a n) (real_pow x n))). +Axiom thm_REAL_CAUCHY_HADAMARD_RADIUS : forall a : N -> R, forall k : N -> Prop, forall b : R, forall x : R, ((@has_limsup N (fun n : N => root n (Rabs (a n))) b (@within N sequentially k)) /\ (Rlt (Rmult b (Rabs x)) (R_of_N (NUMERAL (BIT1 0%N))))) -> real_summable k (fun n : N => Rmult (a n) (real_pow x n)). +Axiom thm_REAL_CAUCHY_HADAMARD_RADIUS_ABSCONV_DERIVATIVE : forall x : R, forall a : N -> R, forall k : N -> Prop, forall b : R, ((@has_limsup N (fun n : N => root n (Rabs (a n))) b (@within N sequentially k)) /\ (Rlt (Rmult b (Rabs x)) (R_of_N (NUMERAL (BIT1 0%N))))) -> real_summable k (fun n : N => Rabs (Rmult (R_of_N n) (Rmult (a n) (real_pow x (N.sub n (NUMERAL (BIT1 0%N))))))). +Axiom thm_REAL_CAUCHY_HADAMARD_RADIUS_DERIVATIVE : forall x : R, forall a : N -> R, forall k : N -> Prop, forall b : R, ((@has_limsup N (fun n : N => root n (Rabs (a n))) b (@within N sequentially k)) /\ (Rlt (Rmult b (Rabs x)) (R_of_N (NUMERAL (BIT1 0%N))))) -> real_summable k (fun n : N => Rmult (R_of_N n) (Rmult (a n) (real_pow x (N.sub n (NUMERAL (BIT1 0%N)))))). +Axiom thm_CAUCHY_HADAMARD_RADIUS_UNIFORM : forall a : N -> cart R (tybit0 unit), forall b : R, forall s : (cart R (tybit0 unit)) -> Prop, forall k : N -> Prop, ((@has_limsup N (fun n : N => root n (@vector_norm (tybit0 unit) (a n))) b (@within N sequentially k)) /\ ((@compact (tybit0 unit) s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> Rlt (Rmult b (@vector_norm (tybit0 unit) z)) (R_of_N (NUMERAL (BIT1 0%N)))))) -> exists l : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall z : cart R (tybit0 unit), ((N.le N' n) /\ (@IN (cart R (tybit0 unit)) z s)) -> Rlt (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (@vsum N (tybit0 unit) (@INTER N k (dotdot (NUMERAL 0%N) n)) (fun i : N => complex_mul (a i) (complex_pow z i))) (l z))) e. +Axiom thm_CAUCHY_HADAMARD_RADIUS_UNIFORM_DERIVATIVE : forall a : N -> cart R (tybit0 unit), forall b : R, forall s : (cart R (tybit0 unit)) -> Prop, forall k : N -> Prop, ((@has_limsup N (fun n : N => root n (@vector_norm (tybit0 unit) (a n))) b (@within N sequentially k)) /\ ((@compact (tybit0 unit) s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> Rlt (Rmult b (@vector_norm (tybit0 unit) z)) (R_of_N (NUMERAL (BIT1 0%N)))))) -> exists l : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall z : cart R (tybit0 unit), ((N.le N' n) /\ (@IN (cart R (tybit0 unit)) z s)) -> Rlt (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (@vsum N (tybit0 unit) (@INTER N k (dotdot (NUMERAL 0%N) n)) (fun i : N => complex_mul (Cx (R_of_N i)) (complex_mul (a i) (complex_pow z (N.sub i (NUMERAL (BIT1 0%N))))))) (l z))) e. +Axiom thm_REAL_CAUCHY_HADAMARD_RADIUS_UNIFORM : forall a : N -> R, forall b : R, forall s : R -> Prop, forall k : N -> Prop, ((@has_limsup N (fun n : N => root n (Rabs (a n))) b (@within N sequentially k)) /\ ((real_compact s) /\ (forall x : R, (@IN R x s) -> Rlt (Rmult b (Rabs x)) (R_of_N (NUMERAL (BIT1 0%N)))))) -> exists l : R -> R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall x : R, ((N.le N' n) /\ (@IN R x s)) -> Rlt (Rabs (Rminus (@sum N (@INTER N k (dotdot (NUMERAL 0%N) n)) (fun i : N => Rmult (a i) (real_pow x i))) (l x))) e. +Axiom thm_REAL_CAUCHY_HADAMARD_RADIUS_UNIFORM_DERIVATIVE : forall a : N -> R, forall b : R, forall s : R -> Prop, forall k : N -> Prop, ((@has_limsup N (fun n : N => root n (Rabs (a n))) b (@within N sequentially k)) /\ ((real_compact s) /\ (forall x : R, (@IN R x s) -> Rlt (Rmult b (Rabs x)) (R_of_N (NUMERAL (BIT1 0%N)))))) -> exists l : R -> R, forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall x : R, ((N.le N' n) /\ (@IN R x s)) -> Rlt (Rabs (Rminus (@sum N (@INTER N k (dotdot (NUMERAL 0%N) n)) (fun i : N => Rmult (R_of_N i) (Rmult (a i) (real_pow x (N.sub i (NUMERAL (BIT1 0%N))))))) (l x))) e. +Axiom thm_HAS_REAL_DERIVATIVE_SEQUENCE : forall s : R -> Prop, forall f : N -> R -> R, forall f' : N -> R -> R, forall g' : R -> R, ((is_realinterval s) /\ ((forall n : N, forall x : R, (@IN R x s) -> has_real_derivative (f n) (f' n x) (@within R (atreal x) s)) /\ ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall x : R, ((N.ge n N') /\ (@IN R x s)) -> Rle (Rabs (Rminus (f' n x) (g' x))) e) /\ (exists x : R, exists l : R, (@IN R x s) /\ (@longarrow N (fun n : N => f n x) l sequentially))))) -> exists g : R -> R, forall x : R, (@IN R x s) -> (@longarrow N (fun n : N => f n x) (g x) sequentially) /\ (has_real_derivative g (g' x) (@within R (atreal x) s)). +Axiom thm_HAS_REAL_DERIVATIVE_SERIES : forall s : R -> Prop, forall f : N -> R -> R, forall f' : N -> R -> R, forall g' : R -> R, forall k : N -> Prop, ((is_realinterval s) /\ ((forall n : N, forall x : R, (@IN R x s) -> has_real_derivative (f n) (f' n x) (@within R (atreal x) s)) /\ ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists N' : N, forall n : N, forall x : R, ((N.ge n N') /\ (@IN R x s)) -> Rle (Rabs (Rminus (@sum N (@INTER N k (dotdot (NUMERAL 0%N) n)) (fun i : N => f' i x)) (g' x))) e) /\ (exists x : R, exists l : R, (@IN R x s) /\ (real_sums (fun n : N => f n x) l k))))) -> exists g : R -> R, forall x : R, (@IN R x s) -> (real_sums (fun n : N => f n x) (g x) k) /\ (has_real_derivative g (g' x) (@within R (atreal x) s)). +Axiom thm_REAL_DIFFERENTIABLE_BOUND : forall f : R -> R, forall f' : R -> R, forall s : R -> Prop, forall B : R, ((is_realinterval s) /\ (forall x : R, (@IN R x s) -> (has_real_derivative f (f' x) (@within R (atreal x) s)) /\ (Rle (Rabs (f' x)) B))) -> forall x : R, forall y : R, ((@IN R x s) /\ (@IN R y s)) -> Rle (Rabs (Rminus (f x) (f y))) (Rmult B (Rabs (Rminus x y))). +Axiom thm_REAL_TAYLOR_MVT_POS : forall f : N -> R -> R, forall a : R, forall x : R, forall n : N, ((Rlt a x) /\ (forall i : N, forall t : R, ((@IN R t (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R))))) /\ (N.le i n)) -> has_real_derivative (f i) (f (N.add i (NUMERAL (BIT1 0%N))) t) (@within R (atreal t) (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R))))))) -> exists t : R, (@IN R t (open_real_interval (@pair R R a x))) /\ ((f (NUMERAL 0%N) x) = (Rplus (@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (f i a) (Rdiv (real_pow (Rminus x a) i) (R_of_N (FACT i))))) (Rmult (f (N.add n (NUMERAL (BIT1 0%N))) t) (Rdiv (real_pow (Rminus x a) (N.add n (NUMERAL (BIT1 0%N)))) (R_of_N (FACT (N.add n (NUMERAL (BIT1 0%N))))))))). +Axiom thm_REAL_TAYLOR_MVT_NEG : forall f : N -> R -> R, forall a : R, forall x : R, forall n : N, ((Rlt x a) /\ (forall i : N, forall t : R, ((@IN R t (closed_real_interval (@cons (prod R R) (@pair R R x a) (@nil (prod R R))))) /\ (N.le i n)) -> has_real_derivative (f i) (f (N.add i (NUMERAL (BIT1 0%N))) t) (@within R (atreal t) (closed_real_interval (@cons (prod R R) (@pair R R x a) (@nil (prod R R))))))) -> exists t : R, (@IN R t (open_real_interval (@pair R R x a))) /\ ((f (NUMERAL 0%N) x) = (Rplus (@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (f i a) (Rdiv (real_pow (Rminus x a) i) (R_of_N (FACT i))))) (Rmult (f (N.add n (NUMERAL (BIT1 0%N))) t) (Rdiv (real_pow (Rminus x a) (N.add n (NUMERAL (BIT1 0%N)))) (R_of_N (FACT (N.add n (NUMERAL (BIT1 0%N))))))))). +Axiom thm_REAL_TAYLOR : forall f : N -> R -> R, forall n : N, forall s : R -> Prop, forall B : R, ((is_realinterval s) /\ ((forall i : N, forall x : R, ((@IN R x s) /\ (N.le i n)) -> has_real_derivative (f i) (f (N.add i (NUMERAL (BIT1 0%N))) x) (@within R (atreal x) s)) /\ (forall x : R, (@IN R x s) -> Rle (Rabs (f (N.add n (NUMERAL (BIT1 0%N))) x)) B))) -> forall w : R, forall z : R, ((@IN R w s) /\ (@IN R z s)) -> Rle (Rabs (Rminus (f (NUMERAL 0%N) z) (@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (f i w) (Rdiv (real_pow (Rminus z w) i) (R_of_N (FACT i))))))) (Rmult B (Rdiv (real_pow (Rabs (Rminus z w)) (N.add n (NUMERAL (BIT1 0%N)))) (R_of_N (FACT (N.add n (NUMERAL (BIT1 0%N))))))). +Axiom thm_REAL_SUM_INTEGRAL_UBOUND_INCREASING : forall f : R -> R, forall g : R -> R, forall m : N, forall n : N, ((N.le m n) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (@nil (prod R R))))) -> has_real_derivative g (f x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (@nil (prod R R)))))) /\ (forall x : R, forall y : R, ((Rle (R_of_N m) x) /\ ((Rle x y) /\ (Rle y (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))))) -> Rle (f x) (f y)))) -> Rle (@sum N (dotdot m n) (fun k : N => f (R_of_N k))) (Rminus (g (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (g (R_of_N m))). +Axiom thm_REAL_SUM_INTEGRAL_UBOUND_DECREASING : forall f : R -> R, forall g : R -> R, forall m : N, forall n : N, ((N.le m n) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N n)) (@nil (prod R R))))) -> has_real_derivative g (f x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N n)) (@nil (prod R R)))))) /\ (forall x : R, forall y : R, ((Rle (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ ((Rle x y) /\ (Rle y (R_of_N n)))) -> Rle (f y) (f x)))) -> Rle (@sum N (dotdot m n) (fun k : N => f (R_of_N k))) (Rminus (g (R_of_N n)) (g (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_REAL_SUM_INTEGRAL_LBOUND_INCREASING : forall f : R -> R, forall g : R -> R, forall m : N, forall n : N, ((N.le m n) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N n)) (@nil (prod R R))))) -> has_real_derivative g (f x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N n)) (@nil (prod R R)))))) /\ (forall x : R, forall y : R, ((Rle (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ ((Rle x y) /\ (Rle y (R_of_N n)))) -> Rle (f x) (f y)))) -> Rle (Rminus (g (R_of_N n)) (g (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))))) (@sum N (dotdot m n) (fun k : N => f (R_of_N k))). +Axiom thm_REAL_SUM_INTEGRAL_LBOUND_DECREASING : forall f : R -> R, forall g : R -> R, forall m : N, forall n : N, ((N.le m n) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (@nil (prod R R))))) -> has_real_derivative g (f x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (@nil (prod R R)))))) /\ (forall x : R, forall y : R, ((Rle (R_of_N m) x) /\ ((Rle x y) /\ (Rle y (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))))) -> Rle (f y) (f x)))) -> Rle (Rminus (g (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (g (R_of_N m))) (@sum N (dotdot m n) (fun k : N => f (R_of_N k))). +Axiom thm_REAL_SUM_INTEGRAL_BOUNDS_INCREASING : forall f : R -> R, forall g : R -> R, forall m : N, forall n : N, ((N.le m n) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (@nil (prod R R))))) -> has_real_derivative g (f x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (@nil (prod R R)))))) /\ (forall x : R, forall y : R, ((Rle (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ ((Rle x y) /\ (Rle y (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))))) -> Rle (f x) (f y)))) -> (Rle (Rminus (g (R_of_N n)) (g (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))))) (@sum N (dotdot m n) (fun k : N => f (R_of_N k)))) /\ (Rle (@sum N (dotdot m n) (fun k : N => f (R_of_N k))) (Rminus (g (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (g (R_of_N m)))). +Axiom thm_REAL_SUM_INTEGRAL_BOUNDS_DECREASING : forall f : R -> R, forall g : R -> R, forall m : N, forall n : N, ((N.le m n) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (@nil (prod R R))))) -> has_real_derivative g (f x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (@nil (prod R R)))))) /\ (forall x : R, forall y : R, ((Rle (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N)))) x) /\ ((Rle x y) /\ (Rle y (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))))) -> Rle (f y) (f x)))) -> (Rle (Rminus (g (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (g (R_of_N m))) (@sum N (dotdot m n) (fun k : N => f (R_of_N k)))) /\ (Rle (@sum N (dotdot m n) (fun k : N => f (R_of_N k))) (Rminus (g (R_of_N n)) (g (Rminus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N))))))). +Axiom thm_HAS_ABSOLUTE_INTEGRAL_CHANGE_OF_VARIABLES_1_ALT : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R unit, forall g' : R -> R, forall s : (cart R unit) -> Prop, forall b : cart R N', ((@lebesgue_measurable unit s) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ ((g x) = (g y)))) -> x = y) /\ (forall x : R, (@IN R x (@IMAGE (cart R unit) R drop s)) -> has_real_derivative (@o R (cart R unit) R drop (@o R (cart R unit) (cart R unit) g lift)) (g' x) (@within R (atreal x) (@IMAGE (cart R unit) R drop s))))) -> ((@absolutely_integrable_on N' unit (fun x : cart R unit => @percent N' (Rabs (g' (drop x))) (f (g x))) s) /\ ((@integral N' unit s (fun x : cart R unit => @percent N' (Rabs (g' (drop x))) (f (g x)))) = b)) = ((@absolutely_integrable_on N' unit f (@IMAGE (cart R unit) (cart R unit) g s)) /\ ((@integral N' unit (@IMAGE (cart R unit) (cart R unit) g s) f) = b)). +Axiom thm_ABSOLUTELY_INTEGRABLE_CHANGE_OF_VARIABLES_1_ALT : forall {_1711106 N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R unit, forall g' : R -> R, forall s : (cart R unit) -> Prop, forall b : _1711106, ((@lebesgue_measurable unit s) /\ ((forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ ((g x) = (g y)))) -> x = y) /\ (forall x : R, (@IN R x (@IMAGE (cart R unit) R drop s)) -> has_real_derivative (@o R (cart R unit) R drop (@o R (cart R unit) (cart R unit) g lift)) (g' x) (@within R (atreal x) (@IMAGE (cart R unit) R drop s))))) -> (@absolutely_integrable_on N' unit f (@IMAGE (cart R unit) (cart R unit) g s)) = (@absolutely_integrable_on N' unit (fun x : cart R unit => @percent N' (Rabs (g' (drop x))) (f (g x))) s). +Axiom thm_REALLIM_POSINFINITY_SEQUENTIALLY : forall f : R -> R, forall l : R, (@longarrow R f l at_posinfinity) -> @longarrow N (fun n : N => f (R_of_N n)) l sequentially. +Axiom thm_LIM_ZERO_POSINFINITY : forall {_1711320 : Type'}, forall f : R -> cart R _1711320, forall l : cart R _1711320, (@FImp _1711320 R (fun x : R => f (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) x)) l (atreal (R_of_N (NUMERAL 0%N)))) -> @FImp _1711320 R f l at_posinfinity. +Axiom thm_LIM_ZERO_NEGINFINITY : forall {_1711421 : Type'}, forall f : R -> cart R _1711421, forall l : cart R _1711421, (@FImp _1711421 R (fun x : R => f (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) x)) l (atreal (R_of_N (NUMERAL 0%N)))) -> @FImp _1711421 R f l at_neginfinity. +Axiom thm_REALLIM_ZERO_POSINFINITY : forall f : R -> R, forall l : R, (@longarrow R (fun x : R => f (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) x)) l (atreal (R_of_N (NUMERAL 0%N)))) -> @longarrow R f l at_posinfinity. +Axiom thm_REALLIM_ZERO_NEGINFINITY : forall f : R -> R, forall l : R, (@longarrow R (fun x : R => f (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) x)) l (atreal (R_of_N (NUMERAL 0%N)))) -> @longarrow R f l at_neginfinity. +Axiom thm_open_real_segment : forall a : R, forall b : R, (open_real_segment (@pair R R a b)) = (@DIFF R (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (@INSERT R a (@INSERT R b (@EMPTY R)))). +Axiom thm_real_segment : forall (a : R) (b : R), ((closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@GSPEC R (fun GEN_PVAR_8484 : R => exists u : R, @SETSPEC R GEN_PVAR_8484 ((Rle (R_of_N (NUMERAL 0%N)) u) /\ (Rle u (R_of_N (NUMERAL (BIT1 0%N))))) (Rplus (Rmult (Rminus (R_of_N (NUMERAL (BIT1 0%N))) u) a) (Rmult u b))))) /\ ((open_real_segment (@pair R R a b)) = (@DIFF R (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (@INSERT R a (@INSERT R b (@EMPTY R))))). +Axiom thm_REAL_SEGMENT_SEGMENT : (forall a : R, forall b : R, (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@IMAGE (cart R unit) R drop (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (lift a) (lift b)) (@nil (prod (cart R unit) (cart R unit))))))) /\ (forall a : R, forall b : R, (open_real_segment (@pair R R a b)) = (@IMAGE (cart R unit) R drop (@open_segment unit (@pair (cart R unit) (cart R unit) (lift a) (lift b))))). +Axiom thm_SEGMENT_REAL_SEGMENT : (forall a : cart R unit, forall b : cart R unit, (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@IMAGE R (cart R unit) lift (closed_real_segment (@cons (prod R R) (@pair R R (drop a) (drop b)) (@nil (prod R R)))))) /\ (forall a : cart R unit, forall b : cart R unit, (@open_segment unit (@pair (cart R unit) (cart R unit) a b)) = (@IMAGE R (cart R unit) lift (open_real_segment (@pair R R (drop a) (drop b))))). +Axiom thm_IMAGE_LIFT_REAL_SEGMENT : (forall a : R, forall b : R, (@IMAGE R (cart R unit) lift (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (@closed_segment unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (lift a) (lift b)) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall a : R, forall b : R, (@IMAGE R (cart R unit) lift (open_real_segment (@pair R R a b))) = (@open_segment unit (@pair (cart R unit) (cart R unit) (lift a) (lift b)))). +Axiom thm_REAL_SEGMENT_INTERVAL : (forall a : R, forall b : R, (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@COND (R -> Prop) (Rle a b) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (closed_real_interval (@cons (prod R R) (@pair R R b a) (@nil (prod R R)))))) /\ (forall a : R, forall b : R, (open_real_segment (@pair R R a b)) = (@COND (R -> Prop) (Rle a b) (open_real_interval (@pair R R a b)) (open_real_interval (@pair R R b a)))). +Axiom thm_REAL_INTERVAL_SUBSET_REAL_SEGMENT : (forall a : R, forall b : R, @SUBSET R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall a : R, forall b : R, @SUBSET R (open_real_interval (@pair R R a b)) (open_real_segment (@pair R R a b))). +Axiom thm_REAL_CONTINUOUS_INJECTIVE_IFF_MONOTONIC : forall f : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (is_realinterval s)) -> (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ ((f x) = (f y)))) -> x = y) = ((forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rlt x y))) -> Rlt (f x) (f y)) \/ (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rlt x y))) -> Rlt (f y) (f x))). +Axiom thm_ENDS_IN_REAL_SEGMENT : forall a : R, forall b : R, (@IN R a (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (@IN R b (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_IS_REAL_INTERVAL_CONTAINS_SEGMENT : forall s : R -> Prop, (is_realinterval s) = (forall a : R, forall b : R, ((@IN R a s) /\ (@IN R b s)) -> @SUBSET R (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) s). +Axiom thm_IS_REALINTERVAL_CONTAINS_SEGMENT_EQ : forall s : R -> Prop, (is_realinterval s) = (forall a : R, forall b : R, (@SUBSET R (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) s) = ((@IN R a s) /\ (@IN R b s))). +Axiom thm_IS_REALINTERVAL_CONTAINS_SEGMENT_IMP : forall s : R -> Prop, forall a : R, forall b : R, (is_realinterval s) -> (@SUBSET R (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) s) = ((@IN R a s) /\ (@IN R b s)). +Axiom thm_IS_REALINTERVAL_SEGMENT : (forall a : R, forall b : R, is_realinterval (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall a : R, forall b : R, is_realinterval (open_real_segment (@pair R R a b))). +Axiom thm_IN_REAL_SEGMENT : (forall a : R, forall b : R, forall x : R, (@IN R x (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (((Rle a x) /\ (Rle x b)) \/ ((Rle b x) /\ (Rle x a)))) /\ (forall a : R, forall b : R, forall x : R, (@IN R x (open_real_segment (@pair R R a b))) = (((Rlt a x) /\ (Rlt x b)) \/ ((Rlt b x) /\ (Rlt x a)))). +Axiom thm_FLOOR_CONTINUOUS_MONOTONE_FLOOR : forall f : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ ((real_continuous_on f s) /\ ((forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rle x y))) -> Rle (f x) (f y)) /\ (forall x : R, ((@IN R x s) /\ (integer (f x))) -> integer x)))) -> forall x : R, ((@IN R (floor x) s) /\ (@IN R x s)) -> (floor (f (floor x))) = (floor (f x)). +Axiom thm_real_convex_on : forall s : R -> Prop, forall f : R -> R, (real_convex_on f s) = (forall x : R, forall y : R, forall u : R, forall v : R, ((@IN R x s) /\ ((@IN R y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (f (Rplus (Rmult u x) (Rmult v y))) (Rplus (Rmult u (f x)) (Rmult v (f y)))). +Axiom thm_REAL_CONVEX_ON_EMPTY : forall f : R -> R, real_convex_on f (@EMPTY R). +Axiom thm_REAL_CONVEX_ON : forall f : R -> R, forall s : R -> Prop, (real_convex_on f s) = (@convex_on unit (@o (cart R unit) R R f drop) (@IMAGE R (cart R unit) lift s)). +Axiom thm_REAL_CONVEX_ON_EQ : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ ((forall x : R, (@IN R x s) -> (f x) = (g x)) /\ (real_convex_on f s))) -> real_convex_on g s. +Axiom thm_REAL_CONVEX_ON_SING : forall f : R -> R, forall a : R, real_convex_on f (@INSERT R a (@EMPTY R)). +Axiom thm_REAL_CONVEX_ON_SUBSET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_convex_on f t) /\ (@SUBSET R s t)) -> real_convex_on f s. +Axiom thm_REAL_CONVEX_ON_CONST : forall s : R -> Prop, forall c : R, real_convex_on (fun x : R => c) s. +Axiom thm_REAL_CONVEX_ADD : forall s : R -> Prop, forall f : R -> R, forall g : R -> R, ((real_convex_on f s) /\ (real_convex_on g s)) -> real_convex_on (fun x : R => Rplus (f x) (g x)) s. +Axiom thm_REAL_CONVEX_LMUL : forall s : R -> Prop, forall c : R, forall f : R -> R, ((Rle (R_of_N (NUMERAL 0%N)) c) /\ (real_convex_on f s)) -> real_convex_on (fun x : R => Rmult c (f x)) s. +Axiom thm_REAL_CONVEX_RMUL : forall s : R -> Prop, forall c : R, forall f : R -> R, ((Rle (R_of_N (NUMERAL 0%N)) c) /\ (real_convex_on f s)) -> real_convex_on (fun x : R => Rmult (f x) c) s. +Axiom thm_REAL_CONVEX_ON_SUM : forall {A : Type'}, forall t : R -> Prop, forall f : A -> R -> R, forall s : A -> Prop, ((@FINITE A s) /\ (forall a : A, (@IN A a s) -> real_convex_on (f a) t)) -> real_convex_on (fun x : R => @sum A s (fun a : A => f a x)) t. +Axiom thm_REAL_CONVEX_CONVEX_COMPOSE : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : R -> R, forall s : (cart R N') -> Prop, forall t : R -> Prop, ((@convex_on N' f s) /\ ((real_convex_on g t) /\ ((@convex N' s) /\ ((is_realinterval t) /\ ((@SUBSET R (@IMAGE (cart R N') R f s) t) /\ (forall x : R, forall y : R, ((@IN R x t) /\ ((@IN R y t) /\ (Rle x y))) -> Rle (g x) (g y))))))) -> @convex_on N' (@o (cart R N') R R g f) s. +Axiom thm_REAL_CONVEX_COMPOSE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_convex_on f s) /\ ((real_convex_on g t) /\ ((is_realinterval s) /\ ((is_realinterval t) /\ ((@SUBSET R (@IMAGE R R f s) t) /\ (forall x : R, forall y : R, ((@IN R x t) /\ ((@IN R y t) /\ (Rle x y))) -> Rle (g x) (g y))))))) -> real_convex_on (@o R R R g f) s. +Axiom thm_REAL_CONVEX_LOWER : forall (u : R) (v : R), forall f : R -> R, forall s : R -> Prop, forall x : R, forall y : R, ((real_convex_on f s) /\ ((@IN R x s) /\ ((@IN R y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N))))))))) -> Rle (f (Rplus (Rmult u x) (Rmult v y))) (Rmax (f x) (f y)). +Axiom thm_REAL_CONVEX_LOWER_REAL_SEGMENT : forall f : R -> R, forall s : R -> Prop, forall a : R, forall b : R, forall x : R, ((real_convex_on f s) /\ ((@IN R a s) /\ ((@IN R b s) /\ (@IN R x (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))))) -> Rle (f x) (Rmax (f a) (f b)). +Axiom thm_REAL_CONVEX_LOWER_REAL_INTERVAL : forall f : R -> R, forall a : R, forall b : R, forall x : R, ((real_convex_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> Rle (f x) (Rmax (f a) (f b)). +Axiom thm_REAL_CONVEX_LOCAL_GLOBAL_MINIMUM : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, forall x : R, ((real_convex_on f s) /\ ((@IN R x t) /\ ((real_open t) /\ ((@SUBSET R t s) /\ (forall y : R, (@IN R y t) -> Rle (f x) (f y)))))) -> forall y : R, (@IN R y s) -> Rle (f x) (f y). +Axiom thm_REAL_CONVEX_DISTANCE : forall s : R -> Prop, forall a : R, real_convex_on (fun x : R => Rabs (Rminus a x)) s. +Axiom thm_REAL_CONVEX_ON_JENSEN : forall f : R -> R, forall s : R -> Prop, (is_realinterval s) -> (real_convex_on f s) = (forall k : N, forall u : N -> R, forall x : N -> R, ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i k)) -> (Rle (R_of_N (NUMERAL 0%N)) (u i)) /\ (@IN R (x i) s)) /\ ((@sum N (dotdot (NUMERAL (BIT1 0%N)) k) u) = (R_of_N (NUMERAL (BIT1 0%N))))) -> Rle (f (@sum N (dotdot (NUMERAL (BIT1 0%N)) k) (fun i : N => Rmult (u i) (x i)))) (@sum N (dotdot (NUMERAL (BIT1 0%N)) k) (fun i : N => Rmult (u i) (f (x i))))). +Axiom thm_REAL_CONVEX_ON_IMP_JENSEN : forall {A : Type'}, forall f : R -> R, forall s : R -> Prop, forall k : A -> Prop, forall u : A -> R, forall x : A -> R, ((real_convex_on f s) /\ ((is_realinterval s) /\ ((@FINITE A k) /\ ((forall i : A, (@IN A i k) -> (Rle (R_of_N (NUMERAL 0%N)) (u i)) /\ (@IN R (x i) s)) /\ ((@sum A k u) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (f (@sum A k (fun i : A => Rmult (u i) (x i)))) (@sum A k (fun i : A => Rmult (u i) (f (x i)))). +Axiom thm_REAL_CONVEX_ON_CONTINUOUS : forall f : R -> R, forall s : R -> Prop, ((real_open s) /\ (real_convex_on f s)) -> real_continuous_on f s. +Axiom thm_REAL_CONVEX_ON_LEFT_SECANT_MUL : forall f : R -> R, forall s : R -> Prop, (real_convex_on f s) = (forall a : R, forall b : R, forall x : R, ((@IN R a s) /\ ((@IN R b s) /\ (@IN R x (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) -> Rle (Rmult (Rminus (f x) (f a)) (Rabs (Rminus b a))) (Rmult (Rminus (f b) (f a)) (Rabs (Rminus x a)))). +Axiom thm_REAL_CONVEX_ON_RIGHT_SECANT_MUL : forall f : R -> R, forall s : R -> Prop, (real_convex_on f s) = (forall a : R, forall b : R, forall x : R, ((@IN R a s) /\ ((@IN R b s) /\ (@IN R x (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) -> Rle (Rmult (Rminus (f b) (f a)) (Rabs (Rminus b x))) (Rmult (Rminus (f b) (f x)) (Rabs (Rminus b a)))). +Axiom thm_REAL_CONVEX_ON_LEFT_SECANT : forall f : R -> R, forall s : R -> Prop, (real_convex_on f s) = (forall a : R, forall b : R, forall x : R, ((@IN R a s) /\ ((@IN R b s) /\ (@IN R x (open_real_segment (@pair R R a b))))) -> Rle (Rdiv (Rminus (f x) (f a)) (Rabs (Rminus x a))) (Rdiv (Rminus (f b) (f a)) (Rabs (Rminus b a)))). +Axiom thm_REAL_CONVEX_ON_RIGHT_SECANT : forall f : R -> R, forall s : R -> Prop, (real_convex_on f s) = (forall a : R, forall b : R, forall x : R, ((@IN R a s) /\ ((@IN R b s) /\ (@IN R x (open_real_segment (@pair R R a b))))) -> Rle (Rdiv (Rminus (f b) (f a)) (Rabs (Rminus b a))) (Rdiv (Rminus (f b) (f x)) (Rabs (Rminus b x)))). +Axiom thm_REAL_CONVEX_ON_DERIVATIVE_SECANT_IMP : forall f : R -> R, forall f' : R, forall s : R -> Prop, forall x : R, forall y : R, ((real_convex_on f s) /\ ((@SUBSET R (closed_real_segment (@cons (prod R R) (@pair R R x y) (@nil (prod R R)))) s) /\ (has_real_derivative f f' (@within R (atreal x) s)))) -> Rle (Rmult f' (Rminus y x)) (Rminus (f y) (f x)). +Axiom thm_REAL_CONVEX_ON_SECANT_DERIVATIVE_IMP : forall f : R -> R, forall f' : R, forall s : R -> Prop, forall x : R, forall y : R, ((real_convex_on f s) /\ ((@SUBSET R (closed_real_segment (@cons (prod R R) (@pair R R x y) (@nil (prod R R)))) s) /\ (has_real_derivative f f' (@within R (atreal y) s)))) -> Rle (Rminus (f y) (f x)) (Rmult f' (Rminus y x)). +Axiom thm_REAL_CONVEX_ON_DERIVATIVES_IMP : forall f : R -> R, forall f'x : R, forall f'y : R, forall s : R -> Prop, forall x : R, forall y : R, ((real_convex_on f s) /\ ((@SUBSET R (closed_real_segment (@cons (prod R R) (@pair R R x y) (@nil (prod R R)))) s) /\ ((has_real_derivative f f'x (@within R (atreal x) s)) /\ (has_real_derivative f f'y (@within R (atreal y) s))))) -> Rle (Rmult f'x (Rminus y x)) (Rmult f'y (Rminus y x)). +Axiom thm_REAL_CONVEX_ON_DERIVATIVE_INCREASING_IMP : forall f : R -> R, forall f'x : R, forall f'y : R, forall s : R -> Prop, forall x : R, forall y : R, ((real_convex_on f s) /\ ((@SUBSET R (closed_real_interval (@cons (prod R R) (@pair R R x y) (@nil (prod R R)))) s) /\ ((has_real_derivative f f'x (@within R (atreal x) s)) /\ ((has_real_derivative f f'y (@within R (atreal y) s)) /\ (Rlt x y))))) -> Rle f'x f'y. +Axiom thm_REAL_CONVEX_ON_DERIVATIVE_SECANT : forall f : R -> R, forall f' : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (forall x : R, (@IN R x s) -> has_real_derivative f (f' x) (@within R (atreal x) s))) -> (real_convex_on f s) = (forall x : R, forall y : R, ((@IN R x s) /\ (@IN R y s)) -> Rle (Rmult (f' x) (Rminus y x)) (Rminus (f y) (f x))). +Axiom thm_REAL_CONVEX_ON_SECANT_DERIVATIVE : forall f : R -> R, forall f' : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (forall x : R, (@IN R x s) -> has_real_derivative f (f' x) (@within R (atreal x) s))) -> (real_convex_on f s) = (forall x : R, forall y : R, ((@IN R x s) /\ (@IN R y s)) -> Rle (Rminus (f y) (f x)) (Rmult (f' y) (Rminus y x))). +Axiom thm_REAL_CONVEX_ON_DERIVATIVES : forall f : R -> R, forall f' : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (forall x : R, (@IN R x s) -> has_real_derivative f (f' x) (@within R (atreal x) s))) -> (real_convex_on f s) = (forall x : R, forall y : R, ((@IN R x s) /\ (@IN R y s)) -> Rle (Rmult (f' x) (Rminus y x)) (Rmult (f' y) (Rminus y x))). +Axiom thm_REAL_CONVEX_ON_DERIVATIVE_INCREASING : forall f : R -> R, forall f' : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (forall x : R, (@IN R x s) -> has_real_derivative f (f' x) (@within R (atreal x) s))) -> (real_convex_on f s) = (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rle x y))) -> Rle (f' x) (f' y)). +Axiom thm_HAS_REAL_DERIVATIVE_INCREASING_IMP : forall f : R -> R, forall f' : R -> R, forall s : R -> Prop, forall a : R, forall b : R, ((is_realinterval s) /\ ((forall x : R, (@IN R x s) -> has_real_derivative f (f' x) (@within R (atreal x) s)) /\ ((forall x : R, (@IN R x s) -> Rle (R_of_N (NUMERAL 0%N)) (f' x)) /\ ((@IN R a s) /\ ((@IN R b s) /\ (Rle a b)))))) -> Rle (f a) (f b). +Axiom thm_HAS_REAL_DERIVATIVE_INCREASING : forall f : R -> R, forall f' : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ ((~ (exists a : R, s = (@INSERT R a (@EMPTY R)))) /\ (forall x : R, (@IN R x s) -> has_real_derivative f (f' x) (@within R (atreal x) s)))) -> (forall x : R, (@IN R x s) -> Rle (R_of_N (NUMERAL 0%N)) (f' x)) = (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rle x y))) -> Rle (f x) (f y)). +Axiom thm_HAS_REAL_DERIVATIVE_STRICTLY_INCREASING_IMP : forall f : R -> R, forall f' : R -> R, forall a : R, forall b : R, ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_derivative f (f' x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ ((forall x : R, (@IN R x (open_real_interval (@pair R R a b))) -> Rlt (R_of_N (NUMERAL 0%N)) (f' x)) /\ (Rlt a b))) -> Rlt (f a) (f b). +Axiom thm_REAL_CONVEX_ON_SECOND_DERIVATIVE : forall f : R -> R, forall f' : R -> R, forall f'' : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ ((~ (exists a : R, s = (@INSERT R a (@EMPTY R)))) /\ ((forall x : R, (@IN R x s) -> has_real_derivative f (f' x) (@within R (atreal x) s)) /\ (forall x : R, (@IN R x s) -> has_real_derivative f' (f'' x) (@within R (atreal x) s))))) -> (real_convex_on f s) = (forall x : R, (@IN R x s) -> Rle (R_of_N (NUMERAL 0%N)) (f'' x)). +Axiom thm_REAL_CONVEX_ON_ASYM : forall s : R -> Prop, forall f : R -> R, (real_convex_on f s) = (forall x : R, forall y : R, forall u : R, forall v : R, ((@IN R x s) /\ ((@IN R y s) /\ ((Rlt x y) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N))))))))) -> Rle (f (Rplus (Rmult u x) (Rmult v y))) (Rplus (Rmult u (f x)) (Rmult v (f y)))). +Axiom thm_REAL_CONVEX_ON_EXP : forall s : R -> Prop, real_convex_on exp s. +Axiom thm_REAL_CONVEX_ON_RPOW : forall s : R -> Prop, forall t : R, ((@SUBSET R s (@GSPEC R (fun GEN_PVAR_8488 : R => exists x : R, @SETSPEC R GEN_PVAR_8488 (Rle (R_of_N (NUMERAL 0%N)) x) x))) /\ (Rle (R_of_N (NUMERAL (BIT1 0%N))) t)) -> real_convex_on (fun x : R => rpow x t) s. +Axiom thm_REAL_CONVEX_ON_RPOW_NEG : forall s : R -> Prop, forall t : R, ((@SUBSET R s (@GSPEC R (fun GEN_PVAR_8490 : R => exists x : R, @SETSPEC R GEN_PVAR_8490 (Rlt (R_of_N (NUMERAL 0%N)) x) x))) /\ (Rle t (R_of_N (NUMERAL 0%N)))) -> real_convex_on (fun x : R => rpow x t) s. +Axiom thm_REAL_CONVEX_ON_RPOW_INTEGER : forall s : R -> Prop, forall t : R, ((@SUBSET R s (@GSPEC R (fun GEN_PVAR_8492 : R => exists x : R, @SETSPEC R GEN_PVAR_8492 (Rlt (R_of_N (NUMERAL 0%N)) x) x))) /\ (integer t)) -> real_convex_on (fun x : R => rpow x t) s. +Axiom thm_REAL_CONVEX_ON_REAL_INV : forall s : R -> Prop, (@SUBSET R s (@GSPEC R (fun GEN_PVAR_8493 : R => exists x : R, @SETSPEC R GEN_PVAR_8493 (Rlt (R_of_N (NUMERAL 0%N)) x) x))) -> real_convex_on Rinv s. +Axiom thm_CONVEX_ON_REAL_POW : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall n : N, ((@convex_on N' f s) /\ ((@convex N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x)))) -> @convex_on N' (fun x : cart R N' => real_pow (f x) n) s. +Axiom thm_REAL_CONVEX_ON_REAL_POW : forall f : R -> R, forall s : R -> Prop, forall n : N, ((real_convex_on f s) /\ ((is_realinterval s) /\ (forall x : R, (@IN R x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x)))) -> real_convex_on (fun x : R => real_pow (f x) n) s. +Axiom thm_REAL_CONVEX_ON_LOG : forall s : R -> Prop, (@SUBSET R s (@GSPEC R (fun GEN_PVAR_8497 : R => exists x : R, @SETSPEC R GEN_PVAR_8497 (Rlt (R_of_N (NUMERAL 0%N)) x) x))) -> real_convex_on (fun x : R => Ropp (log x)) s. +Axiom thm_REAL_CONTINUOUS_MIDPOINT_CONVEX : forall f : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ ((is_realinterval s) /\ (forall x : R, forall y : R, ((@IN R x s) /\ (@IN R y s)) -> Rle (f (Rdiv (Rplus x y) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (Rdiv (Rplus (f x) (f y)) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))))) -> real_convex_on f s. +Axiom thm_AGM_GEN : forall {A : Type'}, forall a : A -> R, forall x : A -> R, forall k : A -> Prop, ((@FINITE A k) /\ (((@sum A k a) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : A, (@IN A i k) -> (Rle (R_of_N (NUMERAL 0%N)) (a i)) /\ (Rle (R_of_N (NUMERAL 0%N)) (x i))))) -> Rle (@product A k (fun i : A => rpow (x i) (a i))) (@sum A k (fun i : A => Rmult (a i) (x i))). +Axiom thm_AGM_RPOW : forall {A : Type'}, forall k : A -> Prop, forall x : A -> R, forall n : N, ((@HAS_SIZE A k n) /\ ((~ (n = (NUMERAL 0%N))) /\ (forall i : A, (@IN A i k) -> Rle (R_of_N (NUMERAL 0%N)) (x i)))) -> Rle (@product A k (fun i : A => rpow (x i) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N n)))) (@sum A k (fun i : A => Rdiv (x i) (R_of_N n))). +Axiom thm_AGM_ROOT : forall {A : Type'}, forall k : A -> Prop, forall x : A -> R, forall n : N, ((@HAS_SIZE A k n) /\ ((~ (n = (NUMERAL 0%N))) /\ (forall i : A, (@IN A i k) -> Rle (R_of_N (NUMERAL 0%N)) (x i)))) -> Rle (root n (@product A k x)) (Rdiv (@sum A k x) (R_of_N n)). +Axiom thm_AGM_SQRT : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle (R_of_N (NUMERAL 0%N)) y)) -> Rle (sqrt (Rmult x y)) (Rdiv (Rplus x y) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_AGM : forall {A : Type'}, forall k : A -> Prop, forall x : A -> R, forall n : N, ((@HAS_SIZE A k n) /\ ((~ (n = (NUMERAL 0%N))) /\ (forall i : A, (@IN A i k) -> Rle (R_of_N (NUMERAL 0%N)) (x i)))) -> Rle (@product A k x) (real_pow (Rdiv (@sum A k x) (R_of_N n)) n). +Axiom thm_AGM_2 : forall x : R, forall y : R, forall u : R, forall v : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (Rmult (rpow x u) (rpow y v)) (Rplus (Rmult u x) (Rmult v y)). +Axiom thm_YOUNG_INEQUALITY : forall a : R, forall b : R, forall p : R, forall q : R, ((Rle (R_of_N (NUMERAL 0%N)) a) /\ ((Rle (R_of_N (NUMERAL 0%N)) b) /\ ((Rlt (R_of_N (NUMERAL 0%N)) p) /\ ((Rlt (R_of_N (NUMERAL 0%N)) q) /\ ((Rplus (Rinv p) (Rinv q)) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (Rmult a b) (Rplus (Rdiv (rpow a p) p) (Rdiv (rpow b q) q)). +Axiom thm_HOELDER : forall {A : Type'}, forall k : A -> Prop, forall a : A -> R, forall x : A -> R, forall y : A -> R, ((@FINITE A k) /\ (((@sum A k a) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall i : A, (@IN A i k) -> (Rle (R_of_N (NUMERAL 0%N)) (a i)) /\ ((Rle (R_of_N (NUMERAL 0%N)) (x i)) /\ (Rle (R_of_N (NUMERAL 0%N)) (y i)))))) -> Rle (Rplus (@product A k (fun i : A => rpow (x i) (a i))) (@product A k (fun i : A => rpow (y i) (a i)))) (@product A k (fun i : A => rpow (Rplus (x i) (y i)) (a i))). +Axiom thm_RPOW_MINUS1_QUOTIENT_LT : forall a : R, forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) a) /\ ((~ (a = (R_of_N (NUMERAL (BIT1 0%N))))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x y)))) -> Rlt (Rdiv (Rminus (rpow a x) (R_of_N (NUMERAL (BIT1 0%N)))) x) (Rdiv (Rminus (rpow a y) (R_of_N (NUMERAL (BIT1 0%N)))) y). +Axiom thm_RPOW_MINUS1_QUOTIENT_LE : forall a : R, forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) a) /\ ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rle x y))) -> Rle (Rdiv (Rminus (rpow a x) (R_of_N (NUMERAL (BIT1 0%N)))) x) (Rdiv (Rminus (rpow a y) (R_of_N (NUMERAL (BIT1 0%N)))) y). +Axiom thm_REAL_EXP_LIMIT_RPOW_LT : forall x : R, forall r : R, forall s : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((Rlt r s) /\ ((~ (x = (R_of_N (NUMERAL 0%N)))) /\ (Rlt x r)))) -> Rlt (rpow (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rdiv x r)) r) (rpow (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rdiv x s)) s). +Axiom thm_REAL_EXP_LIMIT_RPOW_LE : forall x : R, forall r : R, forall s : R, ((Rle (R_of_N (NUMERAL 0%N)) r) /\ ((Rle r s) /\ (Rle x r))) -> Rle (rpow (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rdiv x r)) r) (rpow (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rdiv x s)) s). +Axiom thm_REAL_LE_X_SINH : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> Rle x (Rdiv (Rminus (exp x) (Rinv (exp x))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_REAL_LE_ABS_SINH : forall x : R, Rle (Rabs x) (Rabs (Rdiv (Rminus (exp x) (Rinv (exp x))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_log_convex_on : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall f : (cart R N') -> R, (@log_convex_on N' f s) = (forall x : cart R N', forall y : cart R N', forall u : R, forall v : R, ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> (Rle (R_of_N (NUMERAL 0%N)) (f (@vector_add N' (@percent N' u x) (@percent N' v y)))) /\ (Rle (f (@vector_add N' (@percent N' u x) (@percent N' v y))) (Rmult (rpow (f x) u) (rpow (f y) v)))). +Axiom thm_LOG_CONVEX_ON_EMPTY : forall {N' : Type'}, forall f : (cart R N') -> R, @log_convex_on N' f (@EMPTY (cart R N')). +Axiom thm_LOG_CONVEX_ON_SUBSET : forall {_1718250 : Type'}, forall f : (cart R _1718250) -> R, forall s : (cart R _1718250) -> Prop, forall t : (cart R _1718250) -> Prop, ((@log_convex_on _1718250 f t) /\ (@SUBSET (cart R _1718250) s t)) -> @log_convex_on _1718250 f s. +Axiom thm_LOG_CONVEX_ON_EQ : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@convex N' s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (f x) = (g x)) /\ (@log_convex_on N' f s))) -> @log_convex_on N' g s. +Axiom thm_LOG_CONVEX_IMP_POS : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall x : cart R N', ((@log_convex_on N' f s) /\ (@IN (cart R N') x s)) -> Rle (R_of_N (NUMERAL 0%N)) (f x). +Axiom thm_LOG_CONVEX_ON_CONVEX : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@convex N' s) -> (@log_convex_on N' f s) = ((forall x : cart R N', (@IN (cart R N') x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x)) /\ (forall x : cart R N', forall y : cart R N', forall u : R, forall v : R, ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (f (@vector_add N' (@percent N' u x) (@percent N' v y))) (Rmult (rpow (f x) u) (rpow (f y) v)))). +Axiom thm_LOG_CONVEX_ON : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@convex N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (R_of_N (NUMERAL 0%N)) (f x))) -> (@log_convex_on N' f s) = (@convex_on N' (@o (cart R N') R R log f) s). +Axiom thm_LOG_CONVEX_IMP_CONVEX : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@log_convex_on N' f s) -> @convex_on N' f s. +Axiom thm_LOG_CONVEX_ADD : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@log_convex_on N' f s) /\ (@log_convex_on N' g s)) -> @log_convex_on N' (fun x : cart R N' => Rplus (f x) (g x)) s. +Axiom thm_LOG_CONVEX_MUL : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@log_convex_on N' f s) /\ (@log_convex_on N' g s)) -> @log_convex_on N' (fun x : cart R N' => Rmult (f x) (g x)) s. +Axiom thm_MIDPOINT_LOG_CONVEX : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@continuous_on N' unit (@o (cart R N') R (cart R unit) lift f) s) /\ ((@convex N' s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> Rlt (R_of_N (NUMERAL 0%N)) (f x)) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (real_pow (f (@midpoint N' (@pair (cart R N') (cart R N') x y))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (f x) (f y)))))) -> @log_convex_on N' f s. +Axiom thm_LOG_CONVEX_CONST : forall {_1718801 : Type'}, forall s : (cart R _1718801) -> Prop, forall a : R, (Rle (R_of_N (NUMERAL 0%N)) a) -> @log_convex_on _1718801 (fun x : cart R _1718801 => a) s. +Axiom thm_LOG_CONVEX_ON_SING : forall {N' : Type'}, forall f : (cart R N') -> R, forall a : cart R N', (@log_convex_on N' f (@INSERT (cart R N') a (@EMPTY (cart R N')))) = (Rle (R_of_N (NUMERAL 0%N)) (f a)). +Axiom thm_LOG_CONVEX_PRODUCT : forall {_1718865 _1718869 : Type'}, forall f : (cart R _1718869) -> _1718865 -> R, forall s : (cart R _1718869) -> Prop, forall k : _1718865 -> Prop, ((@FINITE _1718865 k) /\ (forall i : _1718865, (@IN _1718865 i k) -> @log_convex_on _1718869 (fun x : cart R _1718869 => f x i) s)) -> @log_convex_on _1718869 (fun x : cart R _1718869 => @product _1718865 k (f x)) s. +Axiom thm_real_log_convex_on : forall s : R -> Prop, forall f : R -> R, (real_log_convex_on f s) = (forall x : R, forall y : R, forall u : R, forall v : R, ((@IN R x s) /\ ((@IN R y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> (Rle (R_of_N (NUMERAL 0%N)) (f (Rplus (Rmult u x) (Rmult v y)))) /\ (Rle (f (Rplus (Rmult u x) (Rmult v y))) (Rmult (rpow (f x) u) (rpow (f y) v)))). +Axiom thm_REAL_LOG_CONVEX_ON_EMPTY : forall f : R -> R, real_log_convex_on f (@EMPTY R). +Axiom thm_REAL_LOG_CONVEX_ON_SUBSET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_log_convex_on f t) /\ (@SUBSET R s t)) -> real_log_convex_on f s. +Axiom thm_REAL_LOG_CONVEX_LOG_CONVEX : forall f : R -> R, forall s : R -> Prop, (real_log_convex_on f s) = (@log_convex_on unit (@o (cart R unit) R R f drop) (@IMAGE R (cart R unit) lift s)). +Axiom thm_REAL_LOG_CONVEX_ON_EQ : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ ((forall x : R, (@IN R x s) -> (f x) = (g x)) /\ (real_log_convex_on f s))) -> real_log_convex_on g s. +Axiom thm_REAL_LOG_CONVEX_ON_SING : forall f : R -> R, forall a : R, (real_log_convex_on f (@INSERT R a (@EMPTY R))) = (Rle (R_of_N (NUMERAL 0%N)) (f a)). +Axiom thm_REAL_LOG_CONVEX_IMP_POS : forall f : R -> R, forall s : R -> Prop, forall x : R, ((real_log_convex_on f s) /\ (@IN R x s)) -> Rle (R_of_N (NUMERAL 0%N)) (f x). +Axiom thm_REAL_LOG_CONVEX_ON_CONVEX : forall f : R -> R, forall s : R -> Prop, (is_realinterval s) -> (real_log_convex_on f s) = ((forall x : R, (@IN R x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x)) /\ (forall x : R, forall y : R, forall u : R, forall v : R, ((@IN R x s) /\ ((@IN R y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (f (Rplus (Rmult u x) (Rmult v y))) (Rmult (rpow (f x) u) (rpow (f y) v)))). +Axiom thm_REAL_LOG_CONVEX_ON : forall f : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (forall x : R, (@IN R x s) -> Rlt (R_of_N (NUMERAL 0%N)) (f x))) -> (real_log_convex_on f s) = (real_convex_on (@o R R R log f) s). +Axiom thm_REAL_LOG_CONVEX_IMP_CONVEX : forall f : R -> R, forall s : R -> Prop, (real_log_convex_on f s) -> real_convex_on f s. +Axiom thm_REAL_LOG_CONVEX_ADD : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_log_convex_on f s) /\ (real_log_convex_on g s)) -> real_log_convex_on (fun x : R => Rplus (f x) (g x)) s. +Axiom thm_REAL_LOG_CONVEX_MUL : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_log_convex_on f s) /\ (real_log_convex_on g s)) -> real_log_convex_on (fun x : R => Rmult (f x) (g x)) s. +Axiom thm_MIDPOINT_REAL_LOG_CONVEX : forall f : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ ((is_realinterval s) /\ ((forall x : R, (@IN R x s) -> Rlt (R_of_N (NUMERAL 0%N)) (f x)) /\ (forall x : R, forall y : R, ((@IN R x s) /\ (@IN R y s)) -> Rle (real_pow (f (Rdiv (Rplus x y) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult (f x) (f y)))))) -> real_log_convex_on f s. +Axiom thm_REAL_LOG_CONVEX_CONST : forall s : R -> Prop, forall a : R, (Rle (R_of_N (NUMERAL 0%N)) a) -> real_log_convex_on (fun x : R => a) s. +Axiom thm_REAL_LOG_CONVEX_PRODUCT : forall {_1719556 : Type'}, forall f : R -> _1719556 -> R, forall s : R -> Prop, forall k : _1719556 -> Prop, ((@FINITE _1719556 k) /\ (forall i : _1719556, (@IN _1719556 i k) -> real_log_convex_on (fun x : R => f x i) s)) -> real_log_convex_on (fun x : R => @product _1719556 k (f x)) s. +Axiom thm_REAL_LOG_CONVEX_RPOW_RIGHT : forall s : R -> Prop, forall a : R, (Rlt (R_of_N (NUMERAL 0%N)) a) -> real_log_convex_on (fun x : R => rpow a x) s. +Axiom thm_REAL_LOG_CONVEX_LIM : forall {A : Type'}, forall net' : net A, forall f : A -> R -> R, forall g : R -> R, forall s : R -> Prop, ((~ (@trivial_limit A net')) /\ ((forall x : R, forall y : R, forall u : R, forall v : R, ((@IN R x s) /\ ((@IN R y s) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @longarrow A (fun i : A => f i (Rplus (Rmult u x) (Rmult v y))) (g (Rplus (Rmult u x) (Rmult v y))) net') /\ (@eventually A (fun i : A => real_log_convex_on (f i) s) net'))) -> real_log_convex_on g s. +Axiom thm_has_real_integral : forall f : R -> R, forall y : R, forall s : R -> Prop, (has_real_integral f y s) = (@has_integral unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (lift y) (@IMAGE R (cart R unit) lift s)). +Axiom thm_real_integrable_on : forall f : R -> R, forall i : R -> Prop, (real_integrable_on f i) = (exists y : R, has_real_integral f y i). +Axiom thm_real_integral : forall f : R -> R, forall i : R -> Prop, (real_integral i f) = (@ε R (fun y : R => has_real_integral f y i)). +Axiom thm_real_negligible : forall s : R -> Prop, (real_negligible s) = (@negligible unit (@IMAGE R (cart R unit) lift s)). +Axiom thm_absolutely_real_integrable_on : forall f : R -> R, forall s : R -> Prop, (absolutely_real_integrable_on f s) = ((real_integrable_on f s) /\ (real_integrable_on (fun x : R => Rabs (f x)) s)). +Axiom thm_has_real_measure : forall m : R, forall s : R -> Prop, (has_real_measure s m) = (has_real_integral (fun x : R => R_of_N (NUMERAL (BIT1 0%N))) m s). +Axiom thm_real_measurable : forall s : R -> Prop, (real_measurable s) = (exists m : R, has_real_measure s m). +Axiom thm_real_measure : forall s : R -> Prop, (real_measure s) = (@ε R (fun m : R => has_real_measure s m)). +Axiom thm_HAS_REAL_INTEGRAL : forall (f : R -> R) (y : R) (a : R) (b : R), (has_real_integral f y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (@has_integral unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (lift y) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (lift a) (lift b)) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_REAL_INTEGRABLE_INTEGRAL : forall f : R -> R, forall i : R -> Prop, (real_integrable_on f i) -> has_real_integral f (real_integral i f) i. +Axiom thm_HAS_REAL_INTEGRAL_INTEGRABLE : forall f : R -> R, forall i : R, forall s : R -> Prop, (has_real_integral f i s) -> real_integrable_on f s. +Axiom thm_HAS_REAL_INTEGRAL_INTEGRAL : forall f : R -> R, forall s : R -> Prop, (real_integrable_on f s) = (has_real_integral f (real_integral s f) s). +Axiom thm_HAS_REAL_INTEGRAL_UNIQUE : forall f : R -> R, forall i : R -> Prop, forall k1 : R, forall k2 : R, ((has_real_integral f k1 i) /\ (has_real_integral f k2 i)) -> k1 = k2. +Axiom thm_REAL_INTEGRAL_UNIQUE : forall f : R -> R, forall y : R, forall k : R -> Prop, (has_real_integral f y k) -> (real_integral k f) = y. +Axiom thm_HAS_REAL_INTEGRAL_INTEGRABLE_INTEGRAL : forall f : R -> R, forall i : R, forall s : R -> Prop, (has_real_integral f i s) = ((real_integrable_on f s) /\ ((real_integral s f) = i)). +Axiom thm_REAL_INTEGRAL_EQ_HAS_INTEGRAL : forall s : R -> Prop, forall f : R -> R, forall y : R, (real_integrable_on f s) -> ((real_integral s f) = y) = (has_real_integral f y s). +Axiom thm_REAL_INTEGRABLE_ON : forall (f : R -> R) (s : R -> Prop), (real_integrable_on f s) = (@integrable_on unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (@IMAGE R (cart R unit) lift s)). +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_ON : forall (f : R -> R) (s : R -> Prop), (absolutely_real_integrable_on f s) = (@absolutely_integrable_on unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (@IMAGE R (cart R unit) lift s)). +Axiom thm_REAL_INTEGRAL : forall (s : R -> Prop) (f : R -> R), (real_integrable_on f s) -> (real_integral s f) = (drop (@integral unit unit (@IMAGE R (cart R unit) lift s) (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)))). +Axiom thm_HAS_REAL_INTEGRAL_ALT : forall f : R -> R, forall s : R -> Prop, forall i : R, (has_real_integral f i s) = ((forall a : R, forall b : R, real_integrable_on (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N))) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall a : R, forall b : R, (@SUBSET R (open_real_interval (@pair R R (Ropp B) B)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> Rlt (Rabs (Rminus (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N)))) i)) e))). +Axiom thm_HAS_REAL_INTEGRAL_IS_0 : forall f : R -> R, forall s : R -> Prop, (forall x : R, (@IN R x s) -> (f x) = (R_of_N (NUMERAL 0%N))) -> has_real_integral f (R_of_N (NUMERAL 0%N)) s. +Axiom thm_HAS_REAL_INTEGRAL_0 : forall s : R -> Prop, has_real_integral (fun x : R => R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL 0%N)) s. +Axiom thm_HAS_REAL_INTEGRAL_0_EQ : forall i : R, forall s : R -> Prop, (has_real_integral (fun x : R => R_of_N (NUMERAL 0%N)) i s) = (i = (R_of_N (NUMERAL 0%N))). +Axiom thm_HAS_REAL_INTEGRAL_LINEAR : forall f : R -> R, forall y : R, forall s : R -> Prop, forall h : R -> R, ((has_real_integral f y s) /\ (@linear unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R h drop)))) -> has_real_integral (@o R R R h f) (h y) s. +Axiom thm_HAS_REAL_INTEGRAL_LMUL : forall f : R -> R, forall k : R, forall s : R -> Prop, forall c : R, (has_real_integral f k s) -> has_real_integral (fun x : R => Rmult c (f x)) (Rmult c k) s. +Axiom thm_HAS_REAL_INTEGRAL_RMUL : forall f : R -> R, forall k : R, forall s : R -> Prop, forall c : R, (has_real_integral f k s) -> has_real_integral (fun x : R => Rmult (f x) c) (Rmult k c) s. +Axiom thm_HAS_REAL_INTEGRAL_NEG : forall f : R -> R, forall k : R, forall s : R -> Prop, (has_real_integral f k s) -> has_real_integral (fun x : R => Ropp (f x)) (Ropp k) s. +Axiom thm_HAS_REAL_INTEGRAL_ADD : forall f : R -> R, forall g : R -> R, forall k : R, forall l : R, forall s : R -> Prop, ((has_real_integral f k s) /\ (has_real_integral g l s)) -> has_real_integral (fun x : R => Rplus (f x) (g x)) (Rplus k l) s. +Axiom thm_HAS_REAL_INTEGRAL_SUB : forall f : R -> R, forall g : R -> R, forall k : R, forall l : R, forall s : R -> Prop, ((has_real_integral f k s) /\ (has_real_integral g l s)) -> has_real_integral (fun x : R => Rminus (f x) (g x)) (Rminus k l) s. +Axiom thm_REAL_INTEGRAL_0 : forall s : R -> Prop, (real_integral s (fun x : R => R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_INTEGRAL_ADD : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_integrable_on f s) /\ (real_integrable_on g s)) -> (real_integral s (fun x : R => Rplus (f x) (g x))) = (Rplus (real_integral s f) (real_integral s g)). +Axiom thm_REAL_INTEGRAL_LMUL : forall f : R -> R, forall c : R, forall s : R -> Prop, (real_integrable_on f s) -> (real_integral s (fun x : R => Rmult c (f x))) = (Rmult c (real_integral s f)). +Axiom thm_REAL_INTEGRAL_RMUL : forall f : R -> R, forall c : R, forall s : R -> Prop, (real_integrable_on f s) -> (real_integral s (fun x : R => Rmult (f x) c)) = (Rmult (real_integral s f) c). +Axiom thm_REAL_INTEGRAL_NEG : forall f : R -> R, forall s : R -> Prop, (real_integrable_on f s) -> (real_integral s (fun x : R => Ropp (f x))) = (Ropp (real_integral s f)). +Axiom thm_REAL_INTEGRAL_SUB : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_integrable_on f s) /\ (real_integrable_on g s)) -> (real_integral s (fun x : R => Rminus (f x) (g x))) = (Rminus (real_integral s f) (real_integral s g)). +Axiom thm_REAL_INTEGRABLE_0 : forall s : R -> Prop, real_integrable_on (fun x : R => R_of_N (NUMERAL 0%N)) s. +Axiom thm_REAL_INTEGRABLE_ADD : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_integrable_on f s) /\ (real_integrable_on g s)) -> real_integrable_on (fun x : R => Rplus (f x) (g x)) s. +Axiom thm_REAL_INTEGRABLE_LMUL : forall f : R -> R, forall c : R, forall s : R -> Prop, (real_integrable_on f s) -> real_integrable_on (fun x : R => Rmult c (f x)) s. +Axiom thm_REAL_INTEGRABLE_RMUL : forall f : R -> R, forall c : R, forall s : R -> Prop, (real_integrable_on f s) -> real_integrable_on (fun x : R => Rmult (f x) c) s. +Axiom thm_REAL_INTEGRABLE_LMUL_EQ : forall f : R -> R, forall s : R -> Prop, forall c : R, (real_integrable_on (fun x : R => Rmult c (f x)) s) = ((c = (R_of_N (NUMERAL 0%N))) \/ (real_integrable_on f s)). +Axiom thm_REAL_INTEGRABLE_RMUL_EQ : forall f : R -> R, forall s : R -> Prop, forall c : R, (real_integrable_on (fun x : R => Rmult (f x) c) s) = ((c = (R_of_N (NUMERAL 0%N))) \/ (real_integrable_on f s)). +Axiom thm_REAL_INTEGRABLE_NEG : forall f : R -> R, forall s : R -> Prop, (real_integrable_on f s) -> real_integrable_on (fun x : R => Ropp (f x)) s. +Axiom thm_REAL_INTEGRABLE_NEG_EQ : forall f : R -> R, forall s : R -> Prop, (real_integrable_on (fun x : R => Ropp (f x)) s) = (real_integrable_on f s). +Axiom thm_REAL_INTEGRABLE_SUB : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_integrable_on f s) /\ (real_integrable_on g s)) -> real_integrable_on (fun x : R => Rminus (f x) (g x)) s. +Axiom thm_REAL_INTEGRABLE_LINEAR : forall f : R -> R, forall h : R -> R, forall s : R -> Prop, ((real_integrable_on f s) /\ (@linear unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R h drop)))) -> real_integrable_on (@o R R R h f) s. +Axiom thm_REAL_INTEGRAL_LINEAR : forall f : R -> R, forall s : R -> Prop, forall h : R -> R, ((real_integrable_on f s) /\ (@linear unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R h drop)))) -> (real_integral s (@o R R R h f)) = (h (real_integral s f)). +Axiom thm_HAS_REAL_INTEGRAL_SUM : forall {A : Type'} (i : A -> R), forall f : A -> R -> R, forall s : R -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (forall a : A, (@IN A a t) -> has_real_integral (f a) (i a) s)) -> has_real_integral (fun x : R => @sum A t (fun a : A => f a x)) (@sum A t i) s. +Axiom thm_REAL_INTEGRAL_SUM : forall {A : Type'}, forall f : A -> R -> R, forall s : R -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (forall a : A, (@IN A a t) -> real_integrable_on (f a) s)) -> (real_integral s (fun x : R => @sum A t (fun a : A => f a x))) = (@sum A t (fun a : A => real_integral s (f a))). +Axiom thm_REAL_INTEGRABLE_SUM : forall {A : Type'}, forall f : A -> R -> R, forall s : R -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (forall a : A, (@IN A a t) -> real_integrable_on (f a) s)) -> real_integrable_on (fun x : R => @sum A t (fun a : A => f a x)) s. +Axiom thm_HAS_REAL_INTEGRAL_EQ : forall f : R -> R, forall g : R -> R, forall k : R, forall s : R -> Prop, ((forall x : R, (@IN R x s) -> (f x) = (g x)) /\ (has_real_integral f k s)) -> has_real_integral g k s. +Axiom thm_REAL_INTEGRABLE_EQ : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((forall x : R, (@IN R x s) -> (f x) = (g x)) /\ (real_integrable_on f s)) -> real_integrable_on g s. +Axiom thm_HAS_REAL_INTEGRAL_EQ_EQ : forall f : R -> R, forall g : R -> R, forall k : R, forall s : R -> Prop, (forall x : R, (@IN R x s) -> (f x) = (g x)) -> (has_real_integral f k s) = (has_real_integral g k s). +Axiom thm_HAS_REAL_INTEGRAL_NULL : forall f : R -> R, forall a : R, forall b : R, (Rle b a) -> has_real_integral f (R_of_N (NUMERAL 0%N)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_HAS_REAL_INTEGRAL_NULL_EQ : forall f : R -> R, forall a : R, forall b : R, forall i : R, (Rle b a) -> (has_real_integral f i (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (i = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_INTEGRAL_NULL : forall f : R -> R, forall a : R, forall b : R, (Rle b a) -> (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_INTEGRABLE_ON_NULL : forall f : R -> R, forall a : R, forall b : R, (Rle b a) -> real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_HAS_REAL_INTEGRAL_EMPTY : forall f : R -> R, has_real_integral f (R_of_N (NUMERAL 0%N)) (@EMPTY R). +Axiom thm_HAS_REAL_INTEGRAL_EMPTY_EQ : forall f : R -> R, forall i : R, (has_real_integral f i (@EMPTY R)) = (i = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_INTEGRABLE_ON_EMPTY : forall f : R -> R, real_integrable_on f (@EMPTY R). +Axiom thm_REAL_INTEGRAL_EMPTY : forall f : R -> R, (real_integral (@EMPTY R) f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_HAS_REAL_INTEGRAL_REFL : forall f : R -> R, forall a : R, has_real_integral f (R_of_N (NUMERAL 0%N)) (closed_real_interval (@cons (prod R R) (@pair R R a a) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRABLE_ON_REFL : forall f : R -> R, forall a : R, real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a a) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRAL_REFL : forall f : R -> R, forall a : R, (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a a) (@nil (prod R R)))) f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_HAS_REAL_INTEGRAL_CONST : forall a : R, forall b : R, forall c : R, (Rle a b) -> has_real_integral (fun x : R => c) (Rmult c (Rminus b a)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRABLE_CONST : forall a : R, forall b : R, forall c : R, real_integrable_on (fun x : R => c) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRAL_CONST : forall a : R, forall b : R, forall c : R, (Rle a b) -> (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (fun x : R => c)) = (Rmult c (Rminus b a)). +Axiom thm_HAS_REAL_INTEGRAL_BOUND : forall f : R -> R, forall a : R, forall b : R, forall i : R, forall B : R, ((Rle (R_of_N (NUMERAL 0%N)) B) /\ ((Rle a b) /\ ((has_real_integral f i (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> Rle (Rabs (f x)) B)))) -> Rle (Rabs i) (Rmult B (Rminus b a)). +Axiom thm_HAS_REAL_INTEGRAL_LE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall i : R, forall j : R, ((has_real_integral f i s) /\ ((has_real_integral g j s) /\ (forall x : R, (@IN R x s) -> Rle (f x) (g x)))) -> Rle i j. +Axiom thm_REAL_INTEGRAL_LE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_integrable_on f s) /\ ((real_integrable_on g s) /\ (forall x : R, (@IN R x s) -> Rle (f x) (g x)))) -> Rle (real_integral s f) (real_integral s g). +Axiom thm_HAS_REAL_INTEGRAL_POS : forall f : R -> R, forall s : R -> Prop, forall i : R, ((has_real_integral f i s) /\ (forall x : R, (@IN R x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x))) -> Rle (R_of_N (NUMERAL 0%N)) i. +Axiom thm_REAL_INTEGRAL_POS : forall f : R -> R, forall s : R -> Prop, ((real_integrable_on f s) /\ (forall x : R, (@IN R x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x))) -> Rle (R_of_N (NUMERAL 0%N)) (real_integral s f). +Axiom thm_HAS_REAL_INTEGRAL_ISNEG : forall f : R -> R, forall s : R -> Prop, forall i : R, ((has_real_integral f i s) /\ (forall x : R, (@IN R x s) -> Rle (f x) (R_of_N (NUMERAL 0%N)))) -> Rle i (R_of_N (NUMERAL 0%N)). +Axiom thm_HAS_REAL_INTEGRAL_LBOUND : forall (B : R), forall f : R -> R, forall a : R, forall b : R, forall i : R, ((Rle a b) /\ ((has_real_integral f i (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> Rle B (f x)))) -> Rle (Rmult B (Rminus b a)) i. +Axiom thm_HAS_REAL_INTEGRAL_UBOUND : forall (B : R), forall f : R -> R, forall a : R, forall b : R, forall i : R, ((Rle a b) /\ ((has_real_integral f i (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> Rle (f x) B))) -> Rle i (Rmult B (Rminus b a)). +Axiom thm_REAL_INTEGRAL_LBOUND : forall (B : R), forall f : R -> R, forall a : R, forall b : R, ((Rle a b) /\ ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> Rle B (f x)))) -> Rle (Rmult B (Rminus b a)) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) f). +Axiom thm_REAL_INTEGRAL_UBOUND : forall (B : R), forall f : R -> R, forall a : R, forall b : R, ((Rle a b) /\ ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> Rle (f x) B))) -> Rle (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) f) (Rmult B (Rminus b a)). +Axiom thm_REAL_INTEGRABLE_UNIFORM_LIMIT : forall f : R -> R, forall a : R, forall b : R, (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists g : R -> R, (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> Rle (Rabs (Rminus (f x) (g x))) e) /\ (real_integrable_on g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_HAS_REAL_INTEGRAL_NEGLIGIBLE : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_negligible s) /\ (forall x : R, (@IN R x (@DIFF R t s)) -> (f x) = (R_of_N (NUMERAL 0%N)))) -> has_real_integral f (R_of_N (NUMERAL 0%N)) t. +Axiom thm_HAS_REAL_INTEGRAL_SPIKE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall t : R -> Prop, forall y : R, ((real_negligible s) /\ ((forall x : R, (@IN R x (@DIFF R t s)) -> (g x) = (f x)) /\ (has_real_integral f y t))) -> has_real_integral g y t. +Axiom thm_HAS_REAL_INTEGRAL_SPIKE_EQ : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall t : R -> Prop, forall y : R, ((real_negligible s) /\ (forall x : R, (@IN R x (@DIFF R t s)) -> (g x) = (f x))) -> (has_real_integral f y t) = (has_real_integral g y t). +Axiom thm_REAL_INTEGRABLE_SPIKE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_negligible s) /\ (forall x : R, (@IN R x (@DIFF R t s)) -> (g x) = (f x))) -> (real_integrable_on f t) -> real_integrable_on g t. +Axiom thm_REAL_INTEGRABLE_SPIKE_EQ : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_negligible s) /\ (forall x : R, (@IN R x (@DIFF R t s)) -> (g x) = (f x))) -> (real_integrable_on f t) = (real_integrable_on g t). +Axiom thm_REAL_INTEGRAL_SPIKE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_negligible s) /\ (forall x : R, (@IN R x (@DIFF R t s)) -> (g x) = (f x))) -> (real_integral t f) = (real_integral t g). +Axiom thm_REAL_NEGLIGIBLE_SUBSET : forall s : R -> Prop, forall t : R -> Prop, ((real_negligible s) /\ (@SUBSET R t s)) -> real_negligible t. +Axiom thm_REAL_NEGLIGIBLE_DIFF : forall s : R -> Prop, forall t : R -> Prop, (real_negligible s) -> real_negligible (@DIFF R s t). +Axiom thm_REAL_NEGLIGIBLE_INTER : forall s : R -> Prop, forall t : R -> Prop, ((real_negligible s) \/ (real_negligible t)) -> real_negligible (@INTER R s t). +Axiom thm_REAL_NEGLIGIBLE_UNION : forall s : R -> Prop, forall t : R -> Prop, ((real_negligible s) /\ (real_negligible t)) -> real_negligible (@UNION R s t). +Axiom thm_REAL_NEGLIGIBLE_UNION_EQ : forall s : R -> Prop, forall t : R -> Prop, (real_negligible (@UNION R s t)) = ((real_negligible s) /\ (real_negligible t)). +Axiom thm_REAL_NEGLIGIBLE_SING : forall a : R, real_negligible (@INSERT R a (@EMPTY R)). +Axiom thm_REAL_NEGLIGIBLE_INSERT : forall a : R, forall s : R -> Prop, (real_negligible (@INSERT R a s)) = (real_negligible s). +Axiom thm_REAL_NEGLIGIBLE_EMPTY : real_negligible (@EMPTY R). +Axiom thm_REAL_NEGLIGIBLE_FINITE : forall s : R -> Prop, (@FINITE R s) -> real_negligible s. +Axiom thm_REAL_NEGLIGIBLE_UNIONS : forall s : (R -> Prop) -> Prop, ((@FINITE (R -> Prop) s) /\ (forall t : R -> Prop, (@IN (R -> Prop) t s) -> real_negligible t)) -> real_negligible (@UNIONS R s). +Axiom thm_REAL_OPEN_NOT_REAL_NEGLIGIBLE : forall s : R -> Prop, ((real_open s) /\ (~ (s = (@EMPTY R)))) -> ~ (real_negligible s). +Axiom thm_HAS_REAL_INTEGRAL_SPIKE_FINITE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall t : R -> Prop, forall y : R, ((@FINITE R s) /\ ((forall x : R, (@IN R x (@DIFF R t s)) -> (g x) = (f x)) /\ (has_real_integral f y t))) -> has_real_integral g y t. +Axiom thm_HAS_REAL_INTEGRAL_SPIKE_FINITE_EQ : forall (t : R -> Prop), forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall y : R, ((@FINITE R s) /\ (forall x : R, (@IN R x (@DIFF R t s)) -> (g x) = (f x))) -> (has_real_integral f y t) = (has_real_integral g y t). +Axiom thm_REAL_INTEGRABLE_SPIKE_FINITE : forall (t : R -> Prop), forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((@FINITE R s) /\ (forall x : R, (@IN R x (@DIFF R t s)) -> (g x) = (f x))) -> (real_integrable_on f t) -> real_integrable_on g t. +Axiom thm_REAL_NEGLIGIBLE_FRONTIER_INTERVAL : forall a : R, forall b : R, real_negligible (@DIFF R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (open_real_interval (@pair R R a b))). +Axiom thm_HAS_REAL_INTEGRAL_SPIKE_INTERIOR : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, forall y : R, ((forall x : R, (@IN R x (open_real_interval (@pair R R a b))) -> (g x) = (f x)) /\ (has_real_integral f y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> has_real_integral g y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_HAS_REAL_INTEGRAL_SPIKE_INTERIOR_EQ : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, forall y : R, (forall x : R, (@IN R x (open_real_interval (@pair R R a b))) -> (g x) = (f x)) -> (has_real_integral f y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (has_real_integral g y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_INTEGRABLE_SPIKE_INTERIOR : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, (forall x : R, (@IN R x (open_real_interval (@pair R R a b))) -> (g x) = (f x)) -> (real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> real_integrable_on g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRAL_EQ : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, (forall x : R, (@IN R x s) -> (f x) = (g x)) -> (real_integral s f) = (real_integral s g). +Axiom thm_REAL_INTEGRAL_EQ_0 : forall f : R -> R, forall s : R -> Prop, (forall x : R, (@IN R x s) -> (f x) = (R_of_N (NUMERAL 0%N))) -> (real_integral s f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_INTEGRABLE_CONTINUOUS : forall f : R -> R, forall a : R, forall b : R, (real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_FUNDAMENTAL_THEOREM_OF_CALCULUS : forall f : R -> R, forall f' : R -> R, forall a : R, forall b : R, ((Rle a b) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_derivative f (f' x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) -> has_real_integral f' (Rminus (f b) (f a)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRABLE_SUBINTERVAL : forall f : R -> R, forall a : R, forall b : R, forall c : R, forall d : R, ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (@SUBSET R (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R)))) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R)))). +Axiom thm_HAS_REAL_INTEGRAL_COMBINE : forall f : R -> R, forall i : R, forall j : R, forall a : R, forall b : R, forall c : R, ((Rle a c) /\ ((Rle c b) /\ ((has_real_integral f i (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R))))) /\ (has_real_integral f j (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))))))) -> has_real_integral f (Rplus i j) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRAL_COMBINE : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((Rle a c) /\ ((Rle c b) /\ (real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) -> (Rplus (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R)))) f) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))) f)) = (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) f). +Axiom thm_REAL_INTEGRABLE_COMBINE : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((Rle a c) /\ ((Rle c b) /\ ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R))))) /\ (real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))))))) -> real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRABLE_ON_LITTLE_SUBINTERVALS : forall f : R -> R, forall a : R, forall b : R, (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall u : R, forall v : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R u v) (@nil (prod R R))))) /\ (forall y : R, (@IN R y (closed_real_interval (@cons (prod R R) (@pair R R u v) (@nil (prod R R))))) -> (Rlt (Rabs (Rminus y x)) d) /\ (@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) -> real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R u v) (@nil (prod R R)))))) -> real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRAL_HAS_REAL_DERIVATIVE_POINTWISE : forall f : R -> R, forall a : R, forall b : R, forall x : R, ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (@real_continuous R f (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))))) -> has_real_derivative (fun u : R => real_integral (closed_real_interval (@cons (prod R R) (@pair R R a u) (@nil (prod R R)))) f) (f x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_INTEGRAL_HAS_REAL_DERIVATIVE : forall f : R -> R, forall a : R, forall b : R, (real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_derivative (fun u : R => real_integral (closed_real_interval (@cons (prod R R) (@pair R R a u) (@nil (prod R R)))) f) (f x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_ANTIDERIVATIVE_CONTINUOUS : forall f : R -> R, forall a : R, forall b : R, (real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> exists g : R -> R, forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_derivative g (f x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_ANTIDERIVATIVE_INTEGRAL_CONTINUOUS : forall f : R -> R, forall a : R, forall b : R, (real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> exists g : R -> R, forall u : R, forall v : R, ((@IN R u (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R v (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle u v))) -> has_real_integral f (Rminus (g v) (g u)) (closed_real_interval (@cons (prod R R) (@pair R R u v) (@nil (prod R R)))). +Axiom thm_HAS_REAL_INTEGRAL_AFFINITY : forall f : R -> R, forall i : R, forall a : R, forall b : R, forall m : R, forall c : R, ((has_real_integral f i (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (~ (m = (R_of_N (NUMERAL 0%N))))) -> has_real_integral (fun x : R => f (Rplus (Rmult m x) c)) (Rmult (Rinv (Rabs m)) i) (@IMAGE R R (fun x : R => Rmult (Rinv m) (Rminus x c)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_INTEGRABLE_AFFINITY : forall f : R -> R, forall a : R, forall b : R, forall m : R, forall c : R, ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (~ (m = (R_of_N (NUMERAL 0%N))))) -> real_integrable_on (fun x : R => f (Rplus (Rmult m x) c)) (@IMAGE R R (fun x : R => Rmult (Rinv m) (Rminus x c)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_HAS_REAL_INTEGRAL_STRETCH : forall f : R -> R, forall i : R, forall a : R, forall b : R, forall m : R, ((has_real_integral f i (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (~ (m = (R_of_N (NUMERAL 0%N))))) -> has_real_integral (fun x : R => f (Rmult m x)) (Rmult (Rinv (Rabs m)) i) (@IMAGE R R (fun x : R => Rmult (Rinv m) x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_INTEGRABLE_STRETCH : forall f : R -> R, forall a : R, forall b : R, forall m : R, ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (~ (m = (R_of_N (NUMERAL 0%N))))) -> real_integrable_on (fun x : R => f (Rmult m x)) (@IMAGE R R (fun x : R => Rmult (Rinv m) x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_HAS_REAL_INTEGRAL_REFLECT_LEMMA : forall f : R -> R, forall i : R, forall a : R, forall b : R, (has_real_integral f i (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_integral (fun x : R => f (Ropp x)) i (closed_real_interval (@cons (prod R R) (@pair R R (Ropp b) (Ropp a)) (@nil (prod R R)))). +Axiom thm_HAS_REAL_INTEGRAL_REFLECT : forall f : R -> R, forall i : R, forall a : R, forall b : R, (has_real_integral (fun x : R => f (Ropp x)) i (closed_real_interval (@cons (prod R R) (@pair R R (Ropp b) (Ropp a)) (@nil (prod R R))))) = (has_real_integral f i (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_INTEGRABLE_REFLECT : forall f : R -> R, forall a : R, forall b : R, (real_integrable_on (fun x : R => f (Ropp x)) (closed_real_interval (@cons (prod R R) (@pair R R (Ropp b) (Ropp a)) (@nil (prod R R))))) = (real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_INTEGRAL_REFLECT : forall f : R -> R, forall a : R, forall b : R, (real_integral (closed_real_interval (@cons (prod R R) (@pair R R (Ropp b) (Ropp a)) (@nil (prod R R)))) (fun x : R => f (Ropp x))) = (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) f). +Axiom thm_HAS_REAL_INTEGRAL_REFLECT_GEN : forall f : R -> R, forall i : R, forall s : R -> Prop, (has_real_integral (fun x : R => f (Ropp x)) i s) = (has_real_integral f i (@IMAGE R R Ropp s)). +Axiom thm_REAL_INTEGRABLE_REFLECT_GEN : forall f : R -> R, forall s : R -> Prop, (real_integrable_on (fun x : R => f (Ropp x)) s) = (real_integrable_on f (@IMAGE R R Ropp s)). +Axiom thm_REAL_INTEGRAL_REFLECT_GEN : forall f : R -> R, forall s : R -> Prop, (real_integral s (fun x : R => f (Ropp x))) = (real_integral (@IMAGE R R Ropp s) f). +Axiom thm_REAL_FUNDAMENTAL_THEOREM_OF_CALCULUS_INTERIOR : forall f : R -> R, forall f' : R -> R, forall a : R, forall b : R, ((Rle a b) /\ ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (open_real_interval (@pair R R a b))) -> has_real_derivative f (f' x) (atreal x)))) -> has_real_integral f' (Rminus (f b) (f a)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_FUNDAMENTAL_THEOREM_OF_CALCULUS_INTERIOR_STRONG : forall f : R -> R, forall f' : R -> R, forall s : R -> Prop, forall a : R, forall b : R, ((@COUNTABLE R s) /\ ((Rle a b) /\ ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (@DIFF R (open_real_interval (@pair R R a b)) s)) -> has_real_derivative f (f' x) (atreal x))))) -> has_real_integral f' (Rminus (f b) (f a)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_FUNDAMENTAL_THEOREM_OF_CALCULUS_STRONG : forall f : R -> R, forall f' : R -> R, forall s : R -> Prop, forall a : R, forall b : R, ((@COUNTABLE R s) /\ ((Rle a b) /\ ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (@DIFF R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) s)) -> has_real_derivative f (f' x) (atreal x))))) -> has_real_integral f' (Rminus (f b) (f a)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INDEFINITE_INTEGRAL_CONTINUOUS_RIGHT : forall f : R -> R, forall a : R, forall b : R, (real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> real_continuous_on (fun x : R => real_integral (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R)))) f) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INDEFINITE_INTEGRAL_CONTINUOUS_LEFT : forall f : R -> R, forall a : R, forall b : R, (real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> real_continuous_on (fun x : R => real_integral (closed_real_interval (@cons (prod R R) (@pair R R x b) (@nil (prod R R)))) f) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_HAS_REAL_DERIVATIVE_ZERO_UNIQUE_STRONG_INTERVAL : forall f : R -> R, forall a : R, forall b : R, forall k : R -> Prop, forall y : R, ((@COUNTABLE R k) /\ ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (((f a) = y) /\ (forall x : R, (@IN R x (@DIFF R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) k)) -> has_real_derivative f (R_of_N (NUMERAL 0%N)) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))))) -> forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> (f x) = y. +Axiom thm_HAS_REAL_DERIVATIVE_ZERO_UNIQUE_STRONG_CONVEX : forall f : R -> R, forall s : R -> Prop, forall k : R -> Prop, forall c : R, forall y : R, ((is_realinterval s) /\ ((@COUNTABLE R k) /\ ((real_continuous_on f s) /\ ((@IN R c s) /\ (((f c) = y) /\ (forall x : R, (@IN R x (@DIFF R s k)) -> has_real_derivative f (R_of_N (NUMERAL 0%N)) (@within R (atreal x) s))))))) -> forall x : R, (@IN R x s) -> (f x) = y. +Axiom thm_HAS_REAL_DERIVATIVE_INDEFINITE_INTEGRAL : forall f : R -> R, forall a : R, forall b : R, (real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> exists k : R -> Prop, (real_negligible k) /\ (forall x : R, (@IN R x (@DIFF R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) k)) -> has_real_derivative (fun x' : R => real_integral (closed_real_interval (@cons (prod R R) (@pair R R a x') (@nil (prod R R)))) f) (f x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))). +Axiom thm_REAL_ABSOLUTE_INTEGRAL_IMP_AE_DERIVATIVE : forall f : R -> R, forall f' : R -> R, forall a : R, forall b : R, ((absolutely_real_integrable_on f' (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_integral f' (Rminus (f x) (f a)) (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R)))))) -> exists s : R -> Prop, (real_negligible s) /\ (forall x : R, (@IN R x (@DIFF R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) s)) -> has_real_derivative f (f' x) (atreal x)). +Axiom thm_HAS_REAL_INTEGRAL_RESTRICT : forall (i : R), forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, (@SUBSET R s t) -> (has_real_integral (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N))) i t) = (has_real_integral f i s). +Axiom thm_HAS_REAL_INTEGRAL_RESTRICT_UNIV : forall f : R -> R, forall s : R -> Prop, forall i : R, (has_real_integral (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N))) i (@UNIV R)) = (has_real_integral f i s). +Axiom thm_HAS_REAL_INTEGRAL_SPIKE_SET_EQ : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, forall y : R, (real_negligible (@UNION R (@DIFF R s t) (@DIFF R t s))) -> (has_real_integral f y s) = (has_real_integral f y t). +Axiom thm_HAS_REAL_INTEGRAL_SPIKE_SET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, forall y : R, ((real_negligible (@UNION R (@DIFF R s t) (@DIFF R t s))) /\ (has_real_integral f y s)) -> has_real_integral f y t. +Axiom thm_REAL_INTEGRABLE_SPIKE_SET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, (real_negligible (@UNION R (@DIFF R s t) (@DIFF R t s))) -> (real_integrable_on f s) -> real_integrable_on f t. +Axiom thm_REAL_INTEGRABLE_SPIKE_SET_EQ : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, (real_negligible (@UNION R (@DIFF R s t) (@DIFF R t s))) -> (real_integrable_on f s) = (real_integrable_on f t). +Axiom thm_REAL_INTEGRAL_SPIKE_SET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, (real_negligible (@UNION R (@DIFF R s t) (@DIFF R t s))) -> (real_integral s f) = (real_integral t f). +Axiom thm_HAS_REAL_INTEGRAL_OPEN_INTERVAL : forall f : R -> R, forall a : R, forall b : R, forall y : R, (has_real_integral f y (open_real_interval (@pair R R a b))) = (has_real_integral f y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_INTEGRABLE_ON_OPEN_INTERVAL : forall f : R -> R, forall a : R, forall b : R, (real_integrable_on f (open_real_interval (@pair R R a b))) = (real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_INTEGRAL_OPEN_INTERVAL : forall f : R -> R, forall a : R, forall b : R, (real_integral (open_real_interval (@pair R R a b)) f) = (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) f). +Axiom thm_HAS_REAL_INTEGRAL_ON_SUPERSET : forall (i : R), forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((forall x : R, (~ (@IN R x s)) -> (f x) = (R_of_N (NUMERAL 0%N))) /\ ((@SUBSET R s t) /\ (has_real_integral f i s))) -> has_real_integral f i t. +Axiom thm_REAL_INTEGRABLE_ON_SUPERSET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((forall x : R, (~ (@IN R x s)) -> (f x) = (R_of_N (NUMERAL 0%N))) /\ ((@SUBSET R s t) /\ (real_integrable_on f s))) -> real_integrable_on f t. +Axiom thm_REAL_INTEGRABLE_RESTRICT_UNIV : forall f : R -> R, forall s : R -> Prop, (real_integrable_on (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N))) (@UNIV R)) = (real_integrable_on f s). +Axiom thm_REAL_INTEGRAL_RESTRICT_UNIV : forall f : R -> R, forall s : R -> Prop, (real_integral (@UNIV R) (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N)))) = (real_integral s f). +Axiom thm_REAL_INTEGRAL_RESTRICT : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, (@SUBSET R s t) -> (real_integral t (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N)))) = (real_integral s f). +Axiom thm_HAS_REAL_INTEGRAL_RESTRICT_INTER : forall (i : R), forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, (has_real_integral (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N))) i t) = (has_real_integral f i (@INTER R s t)). +Axiom thm_REAL_INTEGRAL_RESTRICT_INTER : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, (real_integral t (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N)))) = (real_integral (@INTER R s t) f). +Axiom thm_REAL_INTEGRABLE_RESTRICT_INTER : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, (real_integrable_on (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N))) t) = (real_integrable_on f (@INTER R s t)). +Axiom thm_REAL_NEGLIGIBLE_ON_INTERVALS : forall s : R -> Prop, (real_negligible s) = (forall a : R, forall b : R, real_negligible (@INTER R s (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))). +Axiom thm_HAS_REAL_INTEGRAL_SUBSET_LE : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, forall i : R, forall j : R, ((@SUBSET R s t) /\ ((has_real_integral f i s) /\ ((has_real_integral f j t) /\ (forall x : R, (@IN R x t) -> Rle (R_of_N (NUMERAL 0%N)) (f x))))) -> Rle i j. +Axiom thm_REAL_INTEGRAL_SUBSET_LE : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((@SUBSET R s t) /\ ((real_integrable_on f s) /\ ((real_integrable_on f t) /\ (forall x : R, (@IN R x t) -> Rle (R_of_N (NUMERAL 0%N)) (f x))))) -> Rle (real_integral s f) (real_integral t f). +Axiom thm_REAL_INTEGRABLE_ON_SUBINTERVAL : forall f : R -> R, forall s : R -> Prop, forall a : R, forall b : R, ((real_integrable_on f s) /\ (@SUBSET R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) s)) -> real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRABLE_ON_SUBINTERVAL_GEN : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_integrable_on f s) /\ ((@SUBSET R t s) /\ (is_realinterval t))) -> real_integrable_on f t. +Axiom thm_REAL_INTEGRABLE_STRADDLE : forall f : R -> R, forall s : R -> Prop, (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists g : R -> R, exists h : R -> R, exists i : R, exists j : R, (has_real_integral g i s) /\ ((has_real_integral h j s) /\ ((Rlt (Rabs (Rminus i j)) e) /\ (forall x : R, (@IN R x s) -> (Rle (g x) (f x)) /\ (Rle (f x) (h x)))))) -> real_integrable_on f s. +Axiom thm_HAS_REAL_INTEGRAL_STRADDLE_NULL : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((forall x : R, (@IN R x s) -> (Rle (R_of_N (NUMERAL 0%N)) (f x)) /\ (Rle (f x) (g x))) /\ (has_real_integral g (R_of_N (NUMERAL 0%N)) s)) -> has_real_integral f (R_of_N (NUMERAL 0%N)) s. +Axiom thm_HAS_REAL_INTEGRAL_UNION : forall f : R -> R, forall i : R, forall j : R, forall s : R -> Prop, forall t : R -> Prop, ((has_real_integral f i s) /\ ((has_real_integral f j t) /\ (real_negligible (@INTER R s t)))) -> has_real_integral f (Rplus i j) (@UNION R s t). +Axiom thm_HAS_REAL_INTEGRAL_UNIONS : forall f : R -> R, forall i : (R -> Prop) -> R, forall t : (R -> Prop) -> Prop, ((@FINITE (R -> Prop) t) /\ ((forall s : R -> Prop, (@IN (R -> Prop) s t) -> has_real_integral f (i s) s) /\ (forall s : R -> Prop, forall s' : R -> Prop, ((@IN (R -> Prop) s t) /\ ((@IN (R -> Prop) s' t) /\ (~ (s = s')))) -> real_negligible (@INTER R s s')))) -> has_real_integral f (@sum (R -> Prop) t i) (@UNIONS R t). +Axiom thm_REAL_INDEFINITE_INTEGRAL_CONTINUOUS : forall f : R -> R, forall a : R, forall b : R, forall c : R, forall d : R, forall e : R, ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R d (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)))) -> exists k : R, (Rlt (R_of_N (NUMERAL 0%N)) k) /\ (forall c' : R, forall d' : R, ((@IN R c' (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R d' (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((Rle (Rabs (Rminus c' c)) k) /\ (Rle (Rabs (Rminus d' d)) k)))) -> Rlt (Rabs (Rminus (real_integral (closed_real_interval (@cons (prod R R) (@pair R R c' d') (@nil (prod R R)))) f) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R)))) f))) e). +Axiom thm_REAL_MONOTONE_CONVERGENCE_INCREASING : forall f : N -> R -> R, forall g : R -> R, forall s : R -> Prop, ((forall k : N, real_integrable_on (f k) s) /\ ((forall k : N, forall x : R, (@IN R x s) -> Rle (f k x) (f (N.succ k) x)) /\ ((forall x : R, (@IN R x s) -> @longarrow N (fun k : N => f k x) (g x) sequentially) /\ (real_bounded (@GSPEC R (fun GEN_PVAR_8501 : R => exists k : N, @SETSPEC R GEN_PVAR_8501 (@IN N k (@UNIV N)) (real_integral s (f k)))))))) -> (real_integrable_on g s) /\ (@longarrow N (fun k : N => real_integral s (f k)) (real_integral s g) sequentially). +Axiom thm_REAL_MONOTONE_CONVERGENCE_DECREASING : forall f : N -> R -> R, forall g : R -> R, forall s : R -> Prop, ((forall k : N, real_integrable_on (f k) s) /\ ((forall k : N, forall x : R, (@IN R x s) -> Rle (f (N.succ k) x) (f k x)) /\ ((forall x : R, (@IN R x s) -> @longarrow N (fun k : N => f k x) (g x) sequentially) /\ (real_bounded (@GSPEC R (fun GEN_PVAR_8502 : R => exists k : N, @SETSPEC R GEN_PVAR_8502 (@IN N k (@UNIV N)) (real_integral s (f k)))))))) -> (real_integrable_on g s) /\ (@longarrow N (fun k : N => real_integral s (f k)) (real_integral s g) sequentially). +Axiom thm_REAL_BEPPO_LEVI_INCREASING : forall f : N -> R -> R, forall s : R -> Prop, ((forall k : N, real_integrable_on (f k) s) /\ ((forall k : N, forall x : R, (@IN R x s) -> Rle (f k x) (f (N.succ k) x)) /\ (real_bounded (@GSPEC R (fun GEN_PVAR_8503 : R => exists k : N, @SETSPEC R GEN_PVAR_8503 (@IN N k (@UNIV N)) (real_integral s (f k))))))) -> exists g : R -> R, exists k : R -> Prop, (real_negligible k) /\ (forall x : R, (@IN R x (@DIFF R s k)) -> @longarrow N (fun k' : N => f k' x) (g x) sequentially). +Axiom thm_REAL_BEPPO_LEVI_DECREASING : forall f : N -> R -> R, forall s : R -> Prop, ((forall k : N, real_integrable_on (f k) s) /\ ((forall k : N, forall x : R, (@IN R x s) -> Rle (f (N.succ k) x) (f k x)) /\ (real_bounded (@GSPEC R (fun GEN_PVAR_8504 : R => exists k : N, @SETSPEC R GEN_PVAR_8504 (@IN N k (@UNIV N)) (real_integral s (f k))))))) -> exists g : R -> R, exists k : R -> Prop, (real_negligible k) /\ (forall x : R, (@IN R x (@DIFF R s k)) -> @longarrow N (fun k' : N => f k' x) (g x) sequentially). +Axiom thm_REAL_BEPPO_LEVI_MONOTONE_CONVERGENCE_INCREASING : forall f : N -> R -> R, forall s : R -> Prop, ((forall k : N, real_integrable_on (f k) s) /\ ((forall k : N, forall x : R, (@IN R x s) -> Rle (f k x) (f (N.succ k) x)) /\ (real_bounded (@GSPEC R (fun GEN_PVAR_8505 : R => exists k : N, @SETSPEC R GEN_PVAR_8505 (@IN N k (@UNIV N)) (real_integral s (f k))))))) -> exists g : R -> R, exists k : R -> Prop, (real_negligible k) /\ ((forall x : R, (@IN R x (@DIFF R s k)) -> @longarrow N (fun k' : N => f k' x) (g x) sequentially) /\ ((real_integrable_on g s) /\ (@longarrow N (fun k' : N => real_integral s (f k')) (real_integral s g) sequentially))). +Axiom thm_REAL_BEPPO_LEVI_MONOTONE_CONVERGENCE_DECREASING : forall f : N -> R -> R, forall s : R -> Prop, ((forall k : N, real_integrable_on (f k) s) /\ ((forall k : N, forall x : R, (@IN R x s) -> Rle (f (N.succ k) x) (f k x)) /\ (real_bounded (@GSPEC R (fun GEN_PVAR_8506 : R => exists k : N, @SETSPEC R GEN_PVAR_8506 (@IN N k (@UNIV N)) (real_integral s (f k))))))) -> exists g : R -> R, exists k : R -> Prop, (real_negligible k) /\ ((forall x : R, (@IN R x (@DIFF R s k)) -> @longarrow N (fun k' : N => f k' x) (g x) sequentially) /\ ((real_integrable_on g s) /\ (@longarrow N (fun k' : N => real_integral s (f k')) (real_integral s g) sequentially))). +Axiom thm_REAL_INTEGRAL_ABS_BOUND_INTEGRAL : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_integrable_on f s) /\ ((real_integrable_on g s) /\ (forall x : R, (@IN R x s) -> Rle (Rabs (f x)) (g x)))) -> Rle (Rabs (real_integral s f)) (real_integral s g). +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_LE : forall f : R -> R, forall s : R -> Prop, (absolutely_real_integrable_on f s) -> Rle (Rabs (real_integral s f)) (real_integral s (fun x : R => Rabs (f x))). +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_ON_EMPTY : forall f : R -> R, absolutely_real_integrable_on f (@EMPTY R). +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_0 : forall s : R -> Prop, absolutely_real_integrable_on (fun x : R => R_of_N (NUMERAL 0%N)) s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_CONST : forall a : R, forall b : R, forall c : R, absolutely_real_integrable_on (fun x : R => c) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_LMUL : forall f : R -> R, forall s : R -> Prop, forall c : R, (absolutely_real_integrable_on f s) -> absolutely_real_integrable_on (fun x : R => Rmult c (f x)) s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_RMUL : forall f : R -> R, forall s : R -> Prop, forall c : R, (absolutely_real_integrable_on f s) -> absolutely_real_integrable_on (fun x : R => Rmult (f x) c) s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_NEG : forall f : R -> R, forall s : R -> Prop, (absolutely_real_integrable_on f s) -> absolutely_real_integrable_on (fun x : R => Ropp (f x)) s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_ABS : forall f : R -> R, forall s : R -> Prop, (absolutely_real_integrable_on f s) -> absolutely_real_integrable_on (fun x : R => Rabs (f x)) s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_ON_SUBINTERVAL : forall f : R -> R, forall s : R -> Prop, forall a : R, forall b : R, ((absolutely_real_integrable_on f s) /\ (@SUBSET R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) s)) -> absolutely_real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_RESTRICT_UNIV : forall f : R -> R, forall s : R -> Prop, (absolutely_real_integrable_on (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N))) (@UNIV R)) = (absolutely_real_integrable_on f s). +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_ADD : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((absolutely_real_integrable_on f s) /\ (absolutely_real_integrable_on g s)) -> absolutely_real_integrable_on (fun x : R => Rplus (f x) (g x)) s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_SUB : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((absolutely_real_integrable_on f s) /\ (absolutely_real_integrable_on g s)) -> absolutely_real_integrable_on (fun x : R => Rminus (f x) (g x)) s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_LINEAR : forall f : R -> R, forall h : R -> R, forall s : R -> Prop, ((absolutely_real_integrable_on f s) /\ (@linear unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R h drop)))) -> absolutely_real_integrable_on (@o R R R h f) s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_SUM : forall {A : Type'}, forall f : A -> R -> R, forall s : R -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (forall a : A, (@IN A a t) -> absolutely_real_integrable_on (f a) s)) -> absolutely_real_integrable_on (fun x : R => @sum A t (fun a : A => f a x)) s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_MAX : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((absolutely_real_integrable_on f s) /\ (absolutely_real_integrable_on g s)) -> absolutely_real_integrable_on (fun x : R => Rmax (f x) (g x)) s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_MIN : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((absolutely_real_integrable_on f s) /\ (absolutely_real_integrable_on g s)) -> absolutely_real_integrable_on (fun x : R => Rmin (f x) (g x)) s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_IMP_INTEGRABLE : forall f : R -> R, forall s : R -> Prop, (absolutely_real_integrable_on f s) -> real_integrable_on f s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_CONTINUOUS : forall f : R -> R, forall a : R, forall b : R, (real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> absolutely_real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_NONNEGATIVE_ABSOLUTELY_REAL_INTEGRABLE : forall f : R -> R, forall s : R -> Prop, ((forall x : R, (@IN R x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x)) /\ (real_integrable_on f s)) -> absolutely_real_integrable_on f s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_INTEGRABLE_BOUND : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((forall x : R, (@IN R x s) -> Rle (Rabs (f x)) (g x)) /\ ((real_integrable_on f s) /\ (real_integrable_on g s))) -> absolutely_real_integrable_on f s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_ABSOLUTELY_REAL_INTEGRABLE_BOUND : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((forall x : R, (@IN R x s) -> Rle (Rabs (f x)) (Rabs (g x))) /\ ((real_integrable_on f s) /\ (absolutely_real_integrable_on g s))) -> absolutely_real_integrable_on f s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_ABSOLUTELY_REAL_INTEGRABLE_UBOUND : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((forall x : R, (@IN R x s) -> Rle (f x) (g x)) /\ ((real_integrable_on f s) /\ (absolutely_real_integrable_on g s))) -> absolutely_real_integrable_on g s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_ABSOLUTELY_REAL_INTEGRABLE_LBOUND : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((forall x : R, (@IN R x s) -> Rle (f x) (g x)) /\ ((absolutely_real_integrable_on f s) /\ (real_integrable_on g s))) -> absolutely_real_integrable_on g s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_INF : forall {A : Type'}, forall fs : R -> A -> R, forall s : R -> Prop, forall k : A -> Prop, ((@FINITE A k) /\ ((~ (k = (@EMPTY A))) /\ (forall i : A, (@IN A i k) -> absolutely_real_integrable_on (fun x : R => fs x i) s))) -> absolutely_real_integrable_on (fun x : R => inf (@IMAGE A R (fs x) k)) s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_SUP : forall {A : Type'}, forall fs : R -> A -> R, forall s : R -> Prop, forall k : A -> Prop, ((@FINITE A k) /\ ((~ (k = (@EMPTY A))) /\ (forall i : A, (@IN A i k) -> absolutely_real_integrable_on (fun x : R => fs x i) s))) -> absolutely_real_integrable_on (fun x : R => sup (@IMAGE A R (fs x) k)) s. +Axiom thm_REAL_DOMINATED_CONVERGENCE : forall f : N -> R -> R, forall g : R -> R, forall h : R -> R, forall s : R -> Prop, ((forall k : N, real_integrable_on (f k) s) /\ ((real_integrable_on h s) /\ ((forall k : N, forall x : R, (@IN R x s) -> Rle (Rabs (f k x)) (h x)) /\ (forall x : R, (@IN R x s) -> @longarrow N (fun k : N => f k x) (g x) sequentially)))) -> (real_integrable_on g s) /\ (@longarrow N (fun k : N => real_integral s (f k)) (real_integral s g) sequentially). +Axiom thm_HAS_REAL_MEASURE_HAS_MEASURE : forall s : R -> Prop, forall m : R, (has_real_measure s m) = (@has_measure unit (@IMAGE R (cart R unit) lift s) m). +Axiom thm_REAL_MEASURABLE_MEASURABLE : forall s : R -> Prop, (real_measurable s) = (@measurable unit (@IMAGE R (cart R unit) lift s)). +Axiom thm_REAL_MEASURE_MEASURE : forall s : R -> Prop, (real_measure s) = (@measure unit (@IMAGE R (cart R unit) lift s)). +Axiom thm_HAS_REAL_MEASURE_MEASURE : forall s : R -> Prop, (real_measurable s) = (has_real_measure s (real_measure s)). +Axiom thm_HAS_REAL_MEASURE_UNIQUE : forall s : R -> Prop, forall m1 : R, forall m2 : R, ((has_real_measure s m1) /\ (has_real_measure s m2)) -> m1 = m2. +Axiom thm_REAL_MEASURE_UNIQUE : forall s : R -> Prop, forall m : R, (has_real_measure s m) -> (real_measure s) = m. +Axiom thm_HAS_REAL_MEASURE_REAL_MEASURABLE_REAL_MEASURE : forall s : R -> Prop, forall m : R, (has_real_measure s m) = ((real_measurable s) /\ ((real_measure s) = m)). +Axiom thm_HAS_REAL_MEASURE_IMP_REAL_MEASURABLE : forall s : R -> Prop, forall m : R, (has_real_measure s m) -> real_measurable s. +Axiom thm_HAS_REAL_MEASURE : forall s : R -> Prop, forall m : R, (has_real_measure s m) = (has_real_integral (fun x : R => @COND R (@IN R x s) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) m (@UNIV R)). +Axiom thm_REAL_MEASURABLE : forall s : R -> Prop, (real_measurable s) = (real_integrable_on (fun x : R => R_of_N (NUMERAL (BIT1 0%N))) s). +Axiom thm_REAL_MEASURABLE_REAL_INTEGRABLE : forall (s : R -> Prop), (real_measurable s) = (real_integrable_on (fun x : R => @COND R (@IN R x s) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@UNIV R)). +Axiom thm_REAL_MEASURE_REAL_INTEGRAL : forall s : R -> Prop, (real_measurable s) -> (real_measure s) = (real_integral s (fun x : R => R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_REAL_MEASURE_REAL_INTEGRAL_UNIV : forall s : R -> Prop, (real_measurable s) -> (real_measure s) = (real_integral (@UNIV R) (fun x : R => @COND R (@IN R x s) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_INTEGRAL_REAL_MEASURE : forall s : R -> Prop, (real_measurable s) -> (real_integral s (fun x : R => R_of_N (NUMERAL (BIT1 0%N)))) = (real_measure s). +Axiom thm_REAL_INTEGRAL_REAL_MEASURE_UNIV : forall s : R -> Prop, (real_measurable s) -> (real_integral (@UNIV R) (fun x : R => @COND R (@IN R x s) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N)))) = (real_measure s). +Axiom thm_HAS_REAL_MEASURE_REAL_INTERVAL : (forall a : R, forall b : R, has_real_measure (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (Rmax (Rminus b a) (R_of_N (NUMERAL 0%N)))) /\ (forall a : R, forall b : R, has_real_measure (open_real_interval (@pair R R a b)) (Rmax (Rminus b a) (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_MEASURABLE_REAL_INTERVAL : (forall a : R, forall b : R, real_measurable (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall a : R, forall b : R, real_measurable (open_real_interval (@pair R R a b))). +Axiom thm_REAL_MEASURE_REAL_INTERVAL : (forall a : R, forall b : R, (real_measure (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (Rmax (Rminus b a) (R_of_N (NUMERAL 0%N)))) /\ (forall a : R, forall b : R, (real_measure (open_real_interval (@pair R R a b))) = (Rmax (Rminus b a) (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_MEASURABLE_REAL_SEGMENT : (forall a : R, forall b : R, real_measurable (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall a : R, forall b : R, real_measurable (open_real_segment (@pair R R a b))). +Axiom thm_REAL_MEASURE_REAL_SEGMENT : (forall a : R, forall b : R, (real_measure (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (Rabs (Rminus b a))) /\ (forall a : R, forall b : R, (real_measure (open_real_segment (@pair R R a b))) = (Rabs (Rminus b a))). +Axiom thm_REAL_MEASURABLE_INTER : forall s : R -> Prop, forall t : R -> Prop, ((real_measurable s) /\ (real_measurable t)) -> real_measurable (@INTER R s t). +Axiom thm_REAL_MEASURABLE_UNION : forall s : R -> Prop, forall t : R -> Prop, ((real_measurable s) /\ (real_measurable t)) -> real_measurable (@UNION R s t). +Axiom thm_HAS_REAL_MEASURE_DISJOINT_UNION : forall s1 : R -> Prop, forall s2 : R -> Prop, forall m1 : R, forall m2 : R, ((has_real_measure s1 m1) /\ ((has_real_measure s2 m2) /\ (@DISJOINT R s1 s2))) -> has_real_measure (@UNION R s1 s2) (Rplus m1 m2). +Axiom thm_REAL_MEASURE_DISJOINT_UNION : forall s : R -> Prop, forall t : R -> Prop, ((real_measurable s) /\ ((real_measurable t) /\ (@DISJOINT R s t))) -> (real_measure (@UNION R s t)) = (Rplus (real_measure s) (real_measure t)). +Axiom thm_HAS_REAL_MEASURE_POS_LE : forall m : R, forall s : R -> Prop, (has_real_measure s m) -> Rle (R_of_N (NUMERAL 0%N)) m. +Axiom thm_REAL_MEASURE_POS_LE : forall s : R -> Prop, (real_measurable s) -> Rle (R_of_N (NUMERAL 0%N)) (real_measure s). +Axiom thm_HAS_REAL_MEASURE_SUBSET : forall s1 : R -> Prop, forall s2 : R -> Prop, forall m1 : R, forall m2 : R, ((has_real_measure s1 m1) /\ ((has_real_measure s2 m2) /\ (@SUBSET R s1 s2))) -> Rle m1 m2. +Axiom thm_REAL_MEASURE_SUBSET : forall s : R -> Prop, forall t : R -> Prop, ((real_measurable s) /\ ((real_measurable t) /\ (@SUBSET R s t))) -> Rle (real_measure s) (real_measure t). +Axiom thm_HAS_REAL_MEASURE_0 : forall s : R -> Prop, (has_real_measure s (R_of_N (NUMERAL 0%N))) = (real_negligible s). +Axiom thm_REAL_MEASURE_EQ_0 : forall s : R -> Prop, (real_negligible s) -> (real_measure s) = (R_of_N (NUMERAL 0%N)). +Axiom thm_HAS_REAL_MEASURE_EMPTY : has_real_measure (@EMPTY R) (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_MEASURE_EMPTY : (real_measure (@EMPTY R)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_MEASURABLE_EMPTY : real_measurable (@EMPTY R). +Axiom thm_REAL_MEASURABLE_REAL_MEASURE_EQ_0 : forall s : R -> Prop, (real_measurable s) -> ((real_measure s) = (R_of_N (NUMERAL 0%N))) = (real_negligible s). +Axiom thm_REAL_MEASURABLE_REAL_MEASURE_POS_LT : forall s : R -> Prop, (real_measurable s) -> (Rlt (R_of_N (NUMERAL 0%N)) (real_measure s)) = (~ (real_negligible s)). +Axiom thm_REAL_NEGLIGIBLE_REAL_INTERVAL : (forall a : R, forall b : R, (real_negligible (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = ((open_real_interval (@pair R R a b)) = (@EMPTY R))) /\ (forall a : R, forall b : R, (real_negligible (open_real_interval (@pair R R a b))) = ((open_real_interval (@pair R R a b)) = (@EMPTY R))). +Axiom thm_REAL_MEASURABLE_UNIONS : forall f : (R -> Prop) -> Prop, ((@FINITE (R -> Prop) f) /\ (forall s : R -> Prop, (@IN (R -> Prop) s f) -> real_measurable s)) -> real_measurable (@UNIONS R f). +Axiom thm_HAS_REAL_MEASURE_DIFF_SUBSET : forall s1 : R -> Prop, forall s2 : R -> Prop, forall m1 : R, forall m2 : R, ((has_real_measure s1 m1) /\ ((has_real_measure s2 m2) /\ (@SUBSET R s2 s1))) -> has_real_measure (@DIFF R s1 s2) (Rminus m1 m2). +Axiom thm_REAL_MEASURABLE_DIFF : forall s : R -> Prop, forall t : R -> Prop, ((real_measurable s) /\ (real_measurable t)) -> real_measurable (@DIFF R s t). +Axiom thm_REAL_MEASURE_DIFF_SUBSET : forall s : R -> Prop, forall t : R -> Prop, ((real_measurable s) /\ ((real_measurable t) /\ (@SUBSET R t s))) -> (real_measure (@DIFF R s t)) = (Rminus (real_measure s) (real_measure t)). +Axiom thm_HAS_REAL_MEASURE_UNION_REAL_NEGLIGIBLE : forall s : R -> Prop, forall t : R -> Prop, forall m : R, ((has_real_measure s m) /\ (real_negligible t)) -> has_real_measure (@UNION R s t) m. +Axiom thm_HAS_REAL_MEASURE_DIFF_REAL_NEGLIGIBLE : forall s : R -> Prop, forall t : R -> Prop, forall m : R, ((has_real_measure s m) /\ (real_negligible t)) -> has_real_measure (@DIFF R s t) m. +Axiom thm_HAS_REAL_MEASURE_UNION_REAL_NEGLIGIBLE_EQ : forall s : R -> Prop, forall t : R -> Prop, forall m : R, (real_negligible t) -> (has_real_measure (@UNION R s t) m) = (has_real_measure s m). +Axiom thm_HAS_REAL_MEASURE_DIFF_REAL_NEGLIGIBLE_EQ : forall s : R -> Prop, forall t : R -> Prop, forall m : R, (real_negligible t) -> (has_real_measure (@DIFF R s t) m) = (has_real_measure s m). +Axiom thm_HAS_REAL_MEASURE_ALMOST : forall s : R -> Prop, forall s' : R -> Prop, forall t : R -> Prop, forall m : R, ((has_real_measure s m) /\ ((real_negligible t) /\ ((@UNION R s t) = (@UNION R s' t)))) -> has_real_measure s' m. +Axiom thm_HAS_REAL_MEASURE_ALMOST_EQ : forall (m : R), forall s : R -> Prop, forall s' : R -> Prop, forall t : R -> Prop, ((real_negligible t) /\ ((@UNION R s t) = (@UNION R s' t))) -> (has_real_measure s m) = (has_real_measure s' m). +Axiom thm_REAL_MEASURABLE_ALMOST : forall s : R -> Prop, forall s' : R -> Prop, forall t : R -> Prop, ((real_measurable s) /\ ((real_negligible t) /\ ((@UNION R s t) = (@UNION R s' t)))) -> real_measurable s'. +Axiom thm_HAS_REAL_MEASURE_REAL_NEGLIGIBLE_UNION : forall s1 : R -> Prop, forall s2 : R -> Prop, forall m1 : R, forall m2 : R, ((has_real_measure s1 m1) /\ ((has_real_measure s2 m2) /\ (real_negligible (@INTER R s1 s2)))) -> has_real_measure (@UNION R s1 s2) (Rplus m1 m2). +Axiom thm_REAL_MEASURE_REAL_NEGLIGIBLE_UNION : forall s : R -> Prop, forall t : R -> Prop, ((real_measurable s) /\ ((real_measurable t) /\ (real_negligible (@INTER R s t)))) -> (real_measure (@UNION R s t)) = (Rplus (real_measure s) (real_measure t)). +Axiom thm_HAS_REAL_MEASURE_REAL_NEGLIGIBLE_SYMDIFF : forall s : R -> Prop, forall t : R -> Prop, forall m : R, ((has_real_measure s m) /\ (real_negligible (@UNION R (@DIFF R s t) (@DIFF R t s)))) -> has_real_measure t m. +Axiom thm_REAL_MEASURABLE_REAL_NEGLIGIBLE_SYMDIFF : forall s : R -> Prop, forall t : R -> Prop, ((real_measurable s) /\ (real_negligible (@UNION R (@DIFF R s t) (@DIFF R t s)))) -> real_measurable t. +Axiom thm_REAL_MEASURE_REAL_NEGLIGIBLE_SYMDIFF : forall s : R -> Prop, forall t : R -> Prop, (((real_measurable s) \/ (real_measurable t)) /\ (real_negligible (@UNION R (@DIFF R s t) (@DIFF R t s)))) -> (real_measure s) = (real_measure t). +Axiom thm_HAS_REAL_MEASURE_REAL_NEGLIGIBLE_UNIONS : forall m : (R -> Prop) -> R, forall f : (R -> Prop) -> Prop, ((@FINITE (R -> Prop) f) /\ ((forall s : R -> Prop, (@IN (R -> Prop) s f) -> has_real_measure s (m s)) /\ (forall s : R -> Prop, forall t : R -> Prop, ((@IN (R -> Prop) s f) /\ ((@IN (R -> Prop) t f) /\ (~ (s = t)))) -> real_negligible (@INTER R s t)))) -> has_real_measure (@UNIONS R f) (@sum (R -> Prop) f m). +Axiom thm_REAL_MEASURE_REAL_NEGLIGIBLE_UNIONS : forall m : (R -> Prop) -> R, forall f : (R -> Prop) -> Prop, ((@FINITE (R -> Prop) f) /\ ((forall s : R -> Prop, (@IN (R -> Prop) s f) -> has_real_measure s (m s)) /\ (forall s : R -> Prop, forall t : R -> Prop, ((@IN (R -> Prop) s f) /\ ((@IN (R -> Prop) t f) /\ (~ (s = t)))) -> real_negligible (@INTER R s t)))) -> (real_measure (@UNIONS R f)) = (@sum (R -> Prop) f m). +Axiom thm_HAS_REAL_MEASURE_DISJOINT_UNIONS : forall m : (R -> Prop) -> R, forall f : (R -> Prop) -> Prop, ((@FINITE (R -> Prop) f) /\ ((forall s : R -> Prop, (@IN (R -> Prop) s f) -> has_real_measure s (m s)) /\ (forall s : R -> Prop, forall t : R -> Prop, ((@IN (R -> Prop) s f) /\ ((@IN (R -> Prop) t f) /\ (~ (s = t)))) -> @DISJOINT R s t))) -> has_real_measure (@UNIONS R f) (@sum (R -> Prop) f m). +Axiom thm_REAL_MEASURE_DISJOINT_UNIONS : forall m : (R -> Prop) -> R, forall f : (R -> Prop) -> Prop, ((@FINITE (R -> Prop) f) /\ ((forall s : R -> Prop, (@IN (R -> Prop) s f) -> has_real_measure s (m s)) /\ (forall s : R -> Prop, forall t : R -> Prop, ((@IN (R -> Prop) s f) /\ ((@IN (R -> Prop) t f) /\ (~ (s = t)))) -> @DISJOINT R s t))) -> (real_measure (@UNIONS R f)) = (@sum (R -> Prop) f m). +Axiom thm_HAS_REAL_MEASURE_REAL_NEGLIGIBLE_UNIONS_IMAGE : forall {A : Type'}, forall f : A -> R -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> real_measurable (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> real_negligible (@INTER R (f x) (f y))))) -> has_real_measure (@UNIONS R (@IMAGE A (R -> Prop) f s)) (@sum A s (fun x : A => real_measure (f x))). +Axiom thm_REAL_MEASURE_REAL_NEGLIGIBLE_UNIONS_IMAGE : forall {A : Type'}, forall f : A -> R -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> real_measurable (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> real_negligible (@INTER R (f x) (f y))))) -> (real_measure (@UNIONS R (@IMAGE A (R -> Prop) f s))) = (@sum A s (fun x : A => real_measure (f x))). +Axiom thm_HAS_REAL_MEASURE_DISJOINT_UNIONS_IMAGE : forall {A : Type'}, forall f : A -> R -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> real_measurable (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @DISJOINT R (f x) (f y)))) -> has_real_measure (@UNIONS R (@IMAGE A (R -> Prop) f s)) (@sum A s (fun x : A => real_measure (f x))). +Axiom thm_REAL_MEASURE_DISJOINT_UNIONS_IMAGE : forall {A : Type'}, forall f : A -> R -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> real_measurable (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @DISJOINT R (f x) (f y)))) -> (real_measure (@UNIONS R (@IMAGE A (R -> Prop) f s))) = (@sum A s (fun x : A => real_measure (f x))). +Axiom thm_HAS_REAL_MEASURE_REAL_NEGLIGIBLE_UNIONS_IMAGE_STRONG : forall {A : Type'}, forall f : A -> R -> Prop, forall s : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_8508 : A => exists x : A, @SETSPEC A GEN_PVAR_8508 ((@IN A x s) /\ (~ ((f x) = (@EMPTY R)))) x))) /\ ((forall x : A, (@IN A x s) -> real_measurable (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> real_negligible (@INTER R (f x) (f y))))) -> has_real_measure (@UNIONS R (@IMAGE A (R -> Prop) f s)) (@sum A s (fun x : A => real_measure (f x))). +Axiom thm_REAL_MEASURE_REAL_NEGLIGIBLE_UNIONS_IMAGE_STRONG : forall {A : Type'}, forall f : A -> R -> Prop, forall s : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_8509 : A => exists x : A, @SETSPEC A GEN_PVAR_8509 ((@IN A x s) /\ (~ ((f x) = (@EMPTY R)))) x))) /\ ((forall x : A, (@IN A x s) -> real_measurable (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> real_negligible (@INTER R (f x) (f y))))) -> (real_measure (@UNIONS R (@IMAGE A (R -> Prop) f s))) = (@sum A s (fun x : A => real_measure (f x))). +Axiom thm_HAS_REAL_MEASURE_DISJOINT_UNIONS_IMAGE_STRONG : forall {A : Type'}, forall f : A -> R -> Prop, forall s : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_8510 : A => exists x : A, @SETSPEC A GEN_PVAR_8510 ((@IN A x s) /\ (~ ((f x) = (@EMPTY R)))) x))) /\ ((forall x : A, (@IN A x s) -> real_measurable (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @DISJOINT R (f x) (f y)))) -> has_real_measure (@UNIONS R (@IMAGE A (R -> Prop) f s)) (@sum A s (fun x : A => real_measure (f x))). +Axiom thm_REAL_MEASURE_DISJOINT_UNIONS_IMAGE_STRONG : forall {A : Type'}, forall f : A -> R -> Prop, forall s : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_8511 : A => exists x : A, @SETSPEC A GEN_PVAR_8511 ((@IN A x s) /\ (~ ((f x) = (@EMPTY R)))) x))) /\ ((forall x : A, (@IN A x s) -> real_measurable (f x)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @DISJOINT R (f x) (f y)))) -> (real_measure (@UNIONS R (@IMAGE A (R -> Prop) f s))) = (@sum A s (fun x : A => real_measure (f x))). +Axiom thm_REAL_MEASURE_UNION : forall s : R -> Prop, forall t : R -> Prop, ((real_measurable s) /\ (real_measurable t)) -> (real_measure (@UNION R s t)) = (Rplus (real_measure s) (Rminus (real_measure t) (real_measure (@INTER R s t)))). +Axiom thm_REAL_MEASURE_UNION_LE : forall s : R -> Prop, forall t : R -> Prop, ((real_measurable s) /\ (real_measurable t)) -> Rle (real_measure (@UNION R s t)) (Rplus (real_measure s) (real_measure t)). +Axiom thm_REAL_MEASURE_UNIONS_LE : forall f : (R -> Prop) -> Prop, ((@FINITE (R -> Prop) f) /\ (forall s : R -> Prop, (@IN (R -> Prop) s f) -> real_measurable s)) -> Rle (real_measure (@UNIONS R f)) (@sum (R -> Prop) f (fun s : R -> Prop => real_measure s)). +Axiom thm_REAL_MEASURE_UNIONS_LE_IMAGE : forall {A : Type'}, forall f : A -> Prop, forall s : A -> R -> Prop, ((@FINITE A f) /\ (forall a : A, (@IN A a f) -> real_measurable (s a))) -> Rle (real_measure (@UNIONS R (@IMAGE A (R -> Prop) s f))) (@sum A f (fun a : A => real_measure (s a))). +Axiom thm_REAL_NEGLIGIBLE_OUTER : forall s : R -> Prop, (real_negligible s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists t : R -> Prop, (@SUBSET R s t) /\ ((real_measurable t) /\ (Rlt (real_measure t) e))). +Axiom thm_REAL_NEGLIGIBLE_OUTER_LE : forall s : R -> Prop, (real_negligible s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists t : R -> Prop, (@SUBSET R s t) /\ ((real_measurable t) /\ (Rle (real_measure t) e))). +Axiom thm_REAL_MEASURABLE_INNER_OUTER : forall s : R -> Prop, (real_measurable s) = (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists t : R -> Prop, exists u : R -> Prop, (@SUBSET R t s) /\ ((@SUBSET R s u) /\ ((real_measurable t) /\ ((real_measurable u) /\ (Rlt (Rabs (Rminus (real_measure t) (real_measure u))) e))))). +Axiom thm_HAS_REAL_MEASURE_INNER_OUTER : forall s : R -> Prop, forall m : R, (has_real_measure s m) = ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists t : R -> Prop, (@SUBSET R t s) /\ ((real_measurable t) /\ (Rlt (Rminus m e) (real_measure t)))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists u : R -> Prop, (@SUBSET R s u) /\ ((real_measurable u) /\ (Rlt (real_measure u) (Rplus m e))))). +Axiom thm_HAS_REAL_MEASURE_INNER_OUTER_LE : forall s : R -> Prop, forall m : R, (has_real_measure s m) = ((forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists t : R -> Prop, (@SUBSET R t s) /\ ((real_measurable t) /\ (Rle (Rminus m e) (real_measure t)))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists u : R -> Prop, (@SUBSET R s u) /\ ((real_measurable u) /\ (Rle (real_measure u) (Rplus m e))))). +Axiom thm_HAS_REAL_MEASURE_AFFINITY : forall s : R -> Prop, forall m : R, forall c : R, forall y : R, (has_real_measure s y) -> has_real_measure (@IMAGE R R (fun x : R => Rplus (Rmult m x) c) s) (Rmult (Rabs m) y). +Axiom thm_HAS_REAL_MEASURE_SCALING : forall s : R -> Prop, forall m : R, forall y : R, (has_real_measure s y) -> has_real_measure (@IMAGE R R (fun x : R => Rmult m x) s) (Rmult (Rabs m) y). +Axiom thm_HAS_REAL_MEASURE_TRANSLATION : forall s : R -> Prop, forall m : R, forall a : R, (has_real_measure s m) -> has_real_measure (@IMAGE R R (fun x : R => Rplus a x) s) m. +Axiom thm_REAL_NEGLIGIBLE_TRANSLATION : forall s : R -> Prop, forall a : R, (real_negligible s) -> real_negligible (@IMAGE R R (fun x : R => Rplus a x) s). +Axiom thm_HAS_REAL_MEASURE_TRANSLATION_EQ : forall (a : R), forall s : R -> Prop, forall m : R, (has_real_measure (@IMAGE R R (fun x : R => Rplus a x) s) m) = (has_real_measure s m). +Axiom thm_REAL_NEGLIGIBLE_TRANSLATION_REV : forall s : R -> Prop, forall a : R, (real_negligible (@IMAGE R R (fun x : R => Rplus a x) s)) -> real_negligible s. +Axiom thm_REAL_NEGLIGIBLE_TRANSLATION_EQ : forall s : R -> Prop, forall a : R, (real_negligible (@IMAGE R R (fun x : R => Rplus a x) s)) = (real_negligible s). +Axiom thm_REAL_MEASURABLE_TRANSLATION : forall (a : R), forall s : R -> Prop, (real_measurable (@IMAGE R R (fun x : R => Rplus a x) s)) = (real_measurable s). +Axiom thm_REAL_MEASURE_TRANSLATION : forall (a : R), forall s : R -> Prop, (real_measurable s) -> (real_measure (@IMAGE R R (fun x : R => Rplus a x) s)) = (real_measure s). +Axiom thm_HAS_REAL_MEASURE_SCALING_EQ : forall s : R -> Prop, forall m : R, forall c : R, (~ (c = (R_of_N (NUMERAL 0%N)))) -> (has_real_measure (@IMAGE R R (fun x : R => Rmult c x) s) (Rmult (Rabs c) m)) = (has_real_measure s m). +Axiom thm_REAL_MEASURABLE_SCALING : forall s : R -> Prop, forall c : R, (real_measurable s) -> real_measurable (@IMAGE R R (fun x : R => Rmult c x) s). +Axiom thm_REAL_MEASURABLE_SCALING_EQ : forall s : R -> Prop, forall c : R, (~ (c = (R_of_N (NUMERAL 0%N)))) -> (real_measurable (@IMAGE R R (fun x : R => Rmult c x) s)) = (real_measurable s). +Axiom thm_REAL_MEASURE_SCALING : forall (c : R), forall s : R -> Prop, (real_measurable s) -> (real_measure (@IMAGE R R (fun x : R => Rmult c x) s)) = (Rmult (Rabs c) (real_measure s)). +Axiom thm_HAS_REAL_MEASURE_NESTED_UNIONS : forall s : N -> R -> Prop, forall B : R, ((forall n : N, real_measurable (s n)) /\ ((forall n : N, Rle (real_measure (s n)) B) /\ (forall n : N, @SUBSET R (s n) (s (N.succ n))))) -> (real_measurable (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8514 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8514 (@IN N n (@UNIV N)) (s n))))) /\ (@longarrow N (fun n : N => real_measure (s n)) (real_measure (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8515 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8515 (@IN N n (@UNIV N)) (s n))))) sequentially). +Axiom thm_REAL_MEASURABLE_NESTED_UNIONS : forall s : N -> R -> Prop, forall B : R, ((forall n : N, real_measurable (s n)) /\ ((forall n : N, Rle (real_measure (s n)) B) /\ (forall n : N, @SUBSET R (s n) (s (N.succ n))))) -> real_measurable (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8516 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8516 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_HAS_REAL_MEASURE_COUNTABLE_REAL_NEGLIGIBLE_UNIONS : forall s : N -> R -> Prop, forall B : R, ((forall n : N, real_measurable (s n)) /\ ((forall m : N, forall n : N, (~ (m = n)) -> real_negligible (@INTER R (s m) (s n))) /\ (forall n : N, Rle (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => real_measure (s k))) B))) -> (real_measurable (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8518 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8518 (@IN N n (@UNIV N)) (s n))))) /\ (real_sums (fun n : N => real_measure (s n)) (real_measure (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8519 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8519 (@IN N n (@UNIV N)) (s n))))) (from (NUMERAL 0%N))). +Axiom thm_REAL_NEGLIGIBLE_COUNTABLE_UNIONS : forall s : N -> R -> Prop, (forall n : N, real_negligible (s n)) -> real_negligible (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8520 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8520 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_REAL_MEASURABLE_COUNTABLE_UNIONS_STRONG : forall s : N -> R -> Prop, forall B : R, ((forall n : N, real_measurable (s n)) /\ (forall n : N, Rle (real_measure (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8522 : R -> Prop => exists k : N, @SETSPEC (R -> Prop) GEN_PVAR_8522 (N.le k n) (s k))))) B)) -> real_measurable (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8523 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8523 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_HAS_REAL_MEASURE_COUNTABLE_REAL_NEGLIGIBLE_UNIONS_BOUNDED : forall s : N -> R -> Prop, ((forall n : N, real_measurable (s n)) /\ ((forall m : N, forall n : N, (~ (m = n)) -> real_negligible (@INTER R (s m) (s n))) /\ (real_bounded (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8526 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8526 (@IN N n (@UNIV N)) (s n))))))) -> (real_measurable (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8527 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8527 (@IN N n (@UNIV N)) (s n))))) /\ (real_sums (fun n : N => real_measure (s n)) (real_measure (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8528 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8528 (@IN N n (@UNIV N)) (s n))))) (from (NUMERAL 0%N))). +Axiom thm_REAL_MEASURABLE_COUNTABLE_UNIONS : forall s : N -> R -> Prop, forall B : R, ((forall n : N, real_measurable (s n)) /\ (forall n : N, Rle (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => real_measure (s k))) B)) -> real_measurable (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8529 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8529 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_REAL_MEASURABLE_COUNTABLE_UNIONS_BOUNDED : forall s : N -> R -> Prop, ((forall n : N, real_measurable (s n)) /\ (real_bounded (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8532 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8532 (@IN N n (@UNIV N)) (s n)))))) -> real_measurable (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8533 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8533 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_REAL_MEASURABLE_COUNTABLE_INTERS : forall s : N -> R -> Prop, (forall n : N, real_measurable (s n)) -> real_measurable (@INTERS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8536 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8536 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_REAL_NEGLIGIBLE_COUNTABLE : forall s : R -> Prop, (@COUNTABLE R s) -> real_negligible s. +Axiom thm_REAL_MEASURABLE_COMPACT : forall s : R -> Prop, (real_compact s) -> real_measurable s. +Axiom thm_REAL_MEASURABLE_OPEN : forall s : R -> Prop, ((real_bounded s) /\ (real_open s)) -> real_measurable s. +Axiom thm_HAS_REAL_INTEGRAL_NEGLIGIBLE_EQ : forall f : R -> R, forall s : R -> Prop, (forall x : R, (@IN R x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x)) -> (has_real_integral f (R_of_N (NUMERAL 0%N)) s) = (real_negligible (@GSPEC R (fun GEN_PVAR_8541 : R => exists x : R, @SETSPEC R GEN_PVAR_8541 ((@IN R x s) /\ (~ ((f x) = (R_of_N (NUMERAL 0%N))))) x))). +Axiom thm_HAS_REAL_INTEGRAL_AREA_UNDER_CURVE_UNIV : forall f : R -> R, forall m : R, (forall x : R, Rle (R_of_N (NUMERAL 0%N)) (f x)) -> (has_real_integral f m (@UNIV R)) = (@has_measure (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8542 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8542 ((Rle (R_of_N (NUMERAL 0%N)) (@dollar R (tybit0 unit) z (NUMERAL (BIT0 (BIT1 0%N))))) /\ (Rle (@dollar R (tybit0 unit) z (NUMERAL (BIT0 (BIT1 0%N)))) (f (@dollar R (tybit0 unit) z (NUMERAL (BIT1 0%N)))))) z)) m). +Axiom thm_HAS_REAL_INTEGRAL_AREA_UNDER_CURVE : forall f : R -> R, forall s : R -> Prop, forall m : R, (forall x : R, (@IN R x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x)) -> (has_real_integral f m s) = (@has_measure (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8544 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8544 ((@IN R (@dollar R (tybit0 unit) z (NUMERAL (BIT1 0%N))) s) /\ ((Rle (R_of_N (NUMERAL 0%N)) (@dollar R (tybit0 unit) z (NUMERAL (BIT0 (BIT1 0%N))))) /\ (Rle (@dollar R (tybit0 unit) z (NUMERAL (BIT0 (BIT1 0%N)))) (f (@dollar R (tybit0 unit) z (NUMERAL (BIT1 0%N))))))) z)) m). +Axiom thm_REAL_INTEGRATION_BY_PARTS : forall (y : R), forall f : R -> R, forall g : R -> R, forall f' : R -> R, forall g' : R -> R, forall a : R, forall b : R, forall c : R -> Prop, ((Rle a b) /\ ((@COUNTABLE R c) /\ ((real_continuous_on (fun x : R => Rmult (f x) (g x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((forall x : R, (@IN R x (@DIFF R (open_real_interval (@pair R R a b)) c)) -> (has_real_derivative f (f' x) (atreal x)) /\ (has_real_derivative g (g' x) (atreal x))) /\ (has_real_integral (fun x : R => Rmult (f x) (g' x)) (Rminus (Rminus (Rmult (f b) (g b)) (Rmult (f a) (g a))) y) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))))) -> has_real_integral (fun x : R => Rmult (f' x) (g x)) y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRATION_BY_PARTS_SIMPLE : forall (y : R), forall f : R -> R, forall g : R -> R, forall f' : R -> R, forall g' : R -> R, forall a : R, forall b : R, ((Rle a b) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> (has_real_derivative f (f' x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ (has_real_derivative g (g' x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) /\ (has_real_integral (fun x : R => Rmult (f x) (g' x)) (Rminus (Rminus (Rmult (f b) (g b)) (Rmult (f a) (g a))) y) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) -> has_real_integral (fun x : R => Rmult (f' x) (g x)) y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRABLE_BY_PARTS : forall f : R -> R, forall g : R -> R, forall f' : R -> R, forall g' : R -> R, forall a : R, forall b : R, forall c : R -> Prop, ((@COUNTABLE R c) /\ ((real_continuous_on (fun x : R => Rmult (f x) (g x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((forall x : R, (@IN R x (@DIFF R (open_real_interval (@pair R R a b)) c)) -> (has_real_derivative f (f' x) (atreal x)) /\ (has_real_derivative g (g' x) (atreal x))) /\ (real_integrable_on (fun x : R => Rmult (f x) (g' x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))))) -> real_integrable_on (fun x : R => Rmult (f' x) (g x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRABLE_BY_PARTS_EQ : forall f : R -> R, forall g : R -> R, forall f' : R -> R, forall g' : R -> R, forall a : R, forall b : R, forall c : R -> Prop, ((@COUNTABLE R c) /\ ((real_continuous_on (fun x : R => Rmult (f x) (g x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (@DIFF R (open_real_interval (@pair R R a b)) c)) -> (has_real_derivative f (f' x) (atreal x)) /\ (has_real_derivative g (g' x) (atreal x))))) -> (real_integrable_on (fun x : R => Rmult (f x) (g' x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (real_integrable_on (fun x : R => Rmult (f' x) (g x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_ABSOLUTE_REAL_INTEGRATION_BY_PARTS : forall f : R -> R, forall g : R -> R, forall f' : R -> R, forall g' : R -> R, forall a : R, forall b : R, ((Rle a b) /\ ((absolutely_real_integrable_on f' (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((absolutely_real_integrable_on g' (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_integral f' (f x) (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_integral g' (g x) (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R))))))))) -> (absolutely_real_integrable_on (fun x : R => Rmult (f x) (g' x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((absolutely_real_integrable_on (fun x : R => Rmult (f' x) (g x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((Rplus (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (fun x : R => Rmult (f x) (g' x))) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (fun x : R => Rmult (f' x) (g x)))) = (Rminus (Rmult (f b) (g b)) (Rmult (f a) (g a))))). +Axiom thm_ABSOLUTE_REAL_INTEGRATION_BY_PARTS_SUM : forall f : R -> R, forall g : R -> R, forall f' : R -> R, forall g' : R -> R, forall a : R, forall b : R, ((Rle a b) /\ (((absolutely_real_integrable_on f' (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_integral f' (Rminus (f x) (f a)) (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R)))))) /\ ((absolutely_real_integrable_on g' (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_integral g' (Rminus (g x) (g a)) (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R)))))))) -> (absolutely_real_integrable_on (fun x : R => Rplus (Rmult (f x) (g' x)) (Rmult (f' x) (g x))) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_integral (fun x' : R => Rplus (Rmult (f x') (g' x')) (Rmult (f' x') (g x'))) (Rminus (Rmult (f x) (g x)) (Rmult (f a) (g a))) (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R))))). +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_IMPROPER_SIMPLE : forall f : R -> R, forall a : R, forall b : R, ((forall c : R, forall d : R, (@SUBSET R (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R)))) (open_real_interval (@pair R R a b))) -> absolutely_real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) /\ (real_bounded (@GSPEC R (fun GEN_PVAR_8545 : R => exists c : R, exists d : R, @SETSPEC R GEN_PVAR_8545 (@SUBSET R (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R)))) (open_real_interval (@pair R R a b))) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R)))) (fun x : R => Rabs (f x))))))) -> absolutely_real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_HAS_REAL_INTEGRAL_SUBSTITUTION_STRONG : forall f : R -> R, forall g : R -> R, forall g' : R -> R, forall a : R, forall b : R, forall c : R, forall d : R, forall k : R -> Prop, ((@COUNTABLE R k) /\ ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) /\ ((real_continuous_on g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@SUBSET R (@IMAGE R R g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) /\ ((forall x : R, (@IN R x (@DIFF R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) k)) -> (has_real_derivative g (g' x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ (@real_continuous R f (@within R (atreal (g x)) (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))))) /\ ((Rle a b) /\ ((Rle c d) /\ (Rle (g a) (g b))))))))) -> has_real_integral (fun x : R => Rmult (f (g x)) (g' x)) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R (g a) (g b)) (@nil (prod R R)))) f) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_HAS_REAL_INTEGRAL_SUBSTITUTION : forall f : R -> R, forall g : R -> R, forall g' : R -> R, forall a : R, forall b : R, forall c : R, forall d : R, forall k : R -> Prop, ((@COUNTABLE R k) /\ ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) /\ ((real_continuous_on g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@SUBSET R (@IMAGE R R g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) /\ ((forall x : R, (@IN R x (@DIFF R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) k)) -> has_real_derivative g (g' x) (atreal x)) /\ ((Rle a b) /\ ((Rle c d) /\ (Rle (g a) (g b))))))))) -> has_real_integral (fun x : R => Rmult (f (g x)) (g' x)) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R (g a) (g b)) (@nil (prod R R)))) f) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRAL_SUBSTITUTION : forall f : R -> R, forall g : R -> R, forall g' : R -> R, forall a : R, forall b : R, forall c : R, forall d : R, forall k : R -> Prop, ((@COUNTABLE R k) /\ ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) /\ ((real_continuous_on g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@SUBSET R (@IMAGE R R g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) /\ ((forall x : R, (@IN R x (@DIFF R (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) k)) -> has_real_derivative g (g' x) (atreal x)) /\ ((Rle a b) /\ ((Rle c d) /\ (Rle (g a) (g b))))))))) -> (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (fun x : R => Rmult (f (g x)) (g' x))) = (real_integral (closed_real_interval (@cons (prod R R) (@pair R R (g a) (g b)) (@nil (prod R R)))) f). +Axiom thm_HAS_REAL_INTEGRAL_SUBSTITUTION_SIMPLE : forall f : R -> R, forall g : R -> R, forall g' : R -> R, forall a : R, forall b : R, forall c : R, forall d : R, ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_derivative g (g' x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ ((@SUBSET R (@IMAGE R R g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) /\ ((Rle a b) /\ ((Rle c d) /\ (Rle (g a) (g b))))))) -> has_real_integral (fun x : R => Rmult (f (g x)) (g' x)) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R (g a) (g b)) (@nil (prod R R)))) f) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRAL_SUBSTITUTION_SIMPLE : forall f : R -> R, forall g : R -> R, forall g' : R -> R, forall a : R, forall b : R, forall c : R, forall d : R, ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> has_real_derivative g (g' x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ ((@SUBSET R (@IMAGE R R g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R))))) /\ ((Rle a b) /\ ((Rle c d) /\ (Rle (g a) (g b))))))) -> (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (fun x : R => Rmult (f (g x)) (g' x))) = (real_integral (closed_real_interval (@cons (prod R R) (@pair R R (g a) (g b)) (@nil (prod R R)))) f). +Axiom thm_slice : forall {_1737277 _1737298 : Type'}, forall s : (cart R _1737298) -> Prop, forall k : N, forall t : R, (@slice _1737277 _1737298 k t s) = (@IMAGE (cart R _1737298) (cart R _1737277) (@dropout _1737298 _1737277 k) (@INTER (cart R _1737298) s (@GSPEC (cart R _1737298) (fun GEN_PVAR_8546 : cart R _1737298 => exists x : cart R _1737298, @SETSPEC (cart R _1737298) GEN_PVAR_8546 ((@dollar R _1737298 x k) = t) x)))). +Axiom thm_IN_SLICE : forall {M N' : Type'} (k : N) (t : R), forall s : (cart R N') -> Prop, forall y : cart R M, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@IN (cart R M) y (@slice M N' k t s)) = (@IN (cart R N') (@pushin N' R M k t y) s). +Axiom thm_INTERVAL_INTER_HYPERPLANE : forall {N' : Type'}, forall k : N, forall t : R, forall a : cart R N', forall b : cart R N', ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N')))) -> (@INTER (cart R N') (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))) (@GSPEC (cart R N') (fun GEN_PVAR_8547 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_8547 ((@dollar R N' x k) = t) x))) = (@COND ((cart R N') -> Prop) ((Rle (@dollar R N' a k) t) /\ (Rle t (@dollar R N' b k))) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') (@lambda R N' (fun i : N => @COND R (i = k) t (@dollar R N' a i))) (@lambda R N' (fun i : N => @COND R (i = k) t (@dollar R N' b i)))) (@nil (prod (cart R N') (cart R N'))))) (@EMPTY (cart R N'))). +Axiom thm_SLICE_INTERVAL : forall {M N' : Type'}, forall k : N, forall a : cart R N', forall b : cart R N', forall t : R, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@slice M N' k t (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) = (@COND ((cart R M) -> Prop) ((Rle (@dollar R N' a k) t) /\ (Rle t (@dollar R N' b k))) (@closed_interval M (@cons (prod (cart R M) (cart R M)) (@pair (cart R M) (cart R M) (@dropout N' M k a) (@dropout N' M k b)) (@nil (prod (cart R M) (cart R M))))) (@EMPTY (cart R M))). +Axiom thm_SLICE_DIFF : forall {M N' : Type'}, forall k : N, forall a : R, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@slice M N' k a (@DIFF (cart R N') s t)) = (@DIFF (cart R M) (@slice M N' k a s) (@slice M N' k a t)). +Axiom thm_SLICE_UNIV : forall {M N' : Type'}, forall k : N, forall a : R, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@slice M N' k a (@UNIV (cart R N'))) = (@UNIV (cart R M)). +Axiom thm_SLICE_EMPTY : forall {_1737926 _1737927 : Type'}, forall k : N, forall a : R, (@slice _1737927 _1737926 k a (@EMPTY (cart R _1737926))) = (@EMPTY (cart R _1737927)). +Axiom thm_SLICE_SUBSET : forall {_1737963 _1737964 : Type'}, forall s : (cart R _1737963) -> Prop, forall t : (cart R _1737963) -> Prop, forall k : N, forall a : R, (@SUBSET (cart R _1737963) s t) -> @SUBSET (cart R _1737964) (@slice _1737964 _1737963 k a s) (@slice _1737964 _1737963 k a t). +Axiom thm_SLICE_UNIONS : forall {_1737996 _1737997 : Type'}, forall s : ((cart R _1737996) -> Prop) -> Prop, forall k : N, forall a : R, (@slice _1737997 _1737996 k a (@UNIONS (cart R _1737996) s)) = (@UNIONS (cart R _1737997) (@IMAGE ((cart R _1737996) -> Prop) ((cart R _1737997) -> Prop) (@slice _1737997 _1737996 k a) s)). +Axiom thm_SLICE_UNION : forall {M N' : Type'}, forall k : N, forall a : R, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@slice M N' k a (@UNION (cart R N') s t)) = (@UNION (cart R M) (@slice M N' k a s) (@slice M N' k a t)). +Axiom thm_SLICE_INTER : forall {M N' : Type'}, forall k : N, forall a : R, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@slice M N' k a (@INTER (cart R N') s t)) = (@INTER (cart R M) (@slice M N' k a s) (@slice M N' k a t)). +Axiom thm_CONVEX_SLICE : forall {M N' : Type'}, forall k : N, forall t : R, forall s : (cart R N') -> Prop, ((N.lt (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ (@convex N' s)) -> @convex M (@slice M N' k t s). +Axiom thm_COMPACT_SLICE : forall {M N' : Type'}, forall k : N, forall t : R, forall s : (cart R N') -> Prop, ((N.lt (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ (@compact N' s)) -> @compact M (@slice M N' k t s). +Axiom thm_CLOSED_SLICE : forall {M N' : Type'}, forall k : N, forall t : R, forall s : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (@closed N' s)))) -> @closed M (@slice M N' k t s). +Axiom thm_OPEN_SLICE : forall {M N' : Type'}, forall k : N, forall t : R, forall s : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (@_open N' s)))) -> @_open M (@slice M N' k t s). +Axiom thm_BOUNDED_SLICE : forall {M N' : Type'}, forall k : N, forall t : R, forall s : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (@bounded N' s)))) -> @bounded M (@slice M N' k t s). +Axiom thm_SLICE_CBALL : forall {M N' : Type'}, forall k : N, forall t : R, forall x : cart R N', forall r : R, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@slice M N' k t (@cball N' (@pair (cart R N') R x r))) = (@COND ((cart R M) -> Prop) (Rle (Rabs (Rminus t (@dollar R N' x k))) r) (@cball M (@pair (cart R M) R (@dropout N' M k x) (sqrt (Rminus (real_pow r (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (Rminus t (@dollar R N' x k)) (NUMERAL (BIT0 (BIT1 0%N)))))))) (@EMPTY (cart R M))). +Axiom thm_SLICE_BALL : forall {M N' : Type'}, forall k : N, forall t : R, forall x : cart R N', forall r : R, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ (N.le k (@dimindex N' (@UNIV N'))))) -> (@slice M N' k t (@ball N' (@pair (cart R N') R x r))) = (@COND ((cart R M) -> Prop) (Rlt (Rabs (Rminus t (@dollar R N' x k))) r) (@ball M (@pair (cart R M) R (@dropout N' M k x) (sqrt (Rminus (real_pow r (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (Rminus t (@dollar R N' x k)) (NUMERAL (BIT0 (BIT1 0%N)))))))) (@EMPTY (cart R M))). +Axiom thm_FUBINI_CLOSED_INTERVAL : forall {M N' : Type'}, forall k : N, forall a : cart R N', forall b : cart R N', (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (Rle (@dollar R N' a k) (@dollar R N' b k))))) -> has_real_integral (fun t : R => @measure M (@slice M N' k t (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N'))))))) (@measure N' (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) (@UNIV R). +Axiom thm_MEASURABLE_OUTER_INTERVALS_BOUNDED_EXPLICIT_SPECIAL : forall {N' : Type'} (k : N), forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall e : R, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@measurable N' s) /\ ((@SUBSET (cart R N') s (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)))))) -> exists f : N -> (cart R N') -> Prop, (forall i : N, (@SUBSET (cart R N') (f i) (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a b) (@nil (prod (cart R N') (cart R N')))))) /\ (exists c : cart R N', exists d : cart R N', (Rle (@dollar R N' c k) (@dollar R N' d k)) /\ ((f i) = (@closed_interval N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') c d) (@nil (prod (cart R N') (cart R N')))))))) /\ ((forall i : N, forall j : N, (~ (i = j)) -> @negligible N' (@INTER (cart R N') (f i) (f j))) /\ ((@SUBSET (cart R N') s (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_8551 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_8551 (@IN N n (@UNIV N)) (f n))))) /\ ((@measurable N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_8552 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_8552 (@IN N n (@UNIV N)) (f n))))) /\ (Rle (@measure N' (@UNIONS (cart R N') (@GSPEC ((cart R N') -> Prop) (fun GEN_PVAR_8553 : (cart R N') -> Prop => exists n : N, @SETSPEC ((cart R N') -> Prop) GEN_PVAR_8553 (@IN N n (@UNIV N)) (f n))))) (Rplus (@measure N' s) e))))). +Axiom thm_REAL_MONOTONE_CONVERGENCE_INCREASING_AE : forall f : N -> R -> R, forall g : R -> R, forall s : R -> Prop, ((forall k : N, real_integrable_on (f k) s) /\ ((forall k : N, forall x : R, (@IN R x s) -> Rle (f k x) (f (N.succ k) x)) /\ ((exists t : R -> Prop, (real_negligible t) /\ (forall x : R, (@IN R x (@DIFF R s t)) -> @longarrow N (fun k : N => f k x) (g x) sequentially)) /\ (real_bounded (@GSPEC R (fun GEN_PVAR_8554 : R => exists k : N, @SETSPEC R GEN_PVAR_8554 (@IN N k (@UNIV N)) (real_integral s (f k)))))))) -> (real_integrable_on g s) /\ (@longarrow N (fun k : N => real_integral s (f k)) (real_integral s g) sequentially). +Axiom thm_FUBINI_SIMPLE_LEMMA : forall {M N' : Type'}, forall k : N, forall s : (cart R N') -> Prop, forall e : R, ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@bounded N' s) /\ ((@measurable N' s) /\ ((forall t : R, @measurable M (@slice M N' k t s)) /\ (real_integrable_on (fun t : R => @measure M (@slice M N' k t s)) (@UNIV R))))))))) -> Rle (real_integral (@UNIV R) (fun t : R => @measure M (@slice M N' k t s))) (Rplus (@measure N' s) e). +Axiom thm_FUBINI_SIMPLE : forall {M N' : Type'}, forall k : N, forall s : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@bounded N' s) /\ ((@measurable N' s) /\ ((forall t : R, @measurable M (@slice M N' k t s)) /\ (real_integrable_on (fun t : R => @measure M (@slice M N' k t s)) (@UNIV R)))))))) -> (@measure N' s) = (real_integral (@UNIV R) (fun t : R => @measure M (@slice M N' k t s))). +Axiom thm_FUBINI_SIMPLE_ALT : forall {M N' : Type'} (B : R), forall k : N, forall s : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@bounded N' s) /\ ((@measurable N' s) /\ ((forall t : R, @measurable M (@slice M N' k t s)) /\ (has_real_integral (fun t : R => @measure M (@slice M N' k t s)) B (@UNIV R)))))))) -> (@measure N' s) = B. +Axiom thm_FUBINI_SIMPLE_COMPACT_STRONG : forall {M N' : Type'} (B : R), forall k : N, forall s : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@compact N' s) /\ (has_real_integral (fun t : R => @measure M (@slice M N' k t s)) B (@UNIV R)))))) -> (@measurable N' s) /\ ((@measure N' s) = B). +Axiom thm_FUBINI_SIMPLE_COMPACT : forall {M N' : Type'} (B : R), forall k : N, forall s : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@compact N' s) /\ (has_real_integral (fun t : R => @measure M (@slice M N' k t s)) B (@UNIV R)))))) -> (@measure N' s) = B. +Axiom thm_FUBINI_SIMPLE_CONVEX_STRONG : forall {M N' : Type'} (B : R), forall k : N, forall s : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@bounded N' s) /\ ((@convex N' s) /\ (has_real_integral (fun t : R => @measure M (@slice M N' k t s)) B (@UNIV R))))))) -> (@measurable N' s) /\ ((@measure N' s) = B). +Axiom thm_FUBINI_SIMPLE_CONVEX : forall {M N' : Type'} (B : R), forall k : N, forall s : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@bounded N' s) /\ ((@convex N' s) /\ (has_real_integral (fun t : R => @measure M (@slice M N' k t s)) B (@UNIV R))))))) -> (@measure N' s) = B. +Axiom thm_FUBINI_SIMPLE_OPEN_STRONG : forall {M N' : Type'} (B : R), forall k : N, forall s : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@bounded N' s) /\ ((@_open N' s) /\ (has_real_integral (fun t : R => @measure M (@slice M N' k t s)) B (@UNIV R))))))) -> (@measurable N' s) /\ ((@measure N' s) = B). +Axiom thm_FUBINI_SIMPLE_OPEN : forall {M N' : Type'} (B : R), forall k : N, forall s : (cart R N') -> Prop, (((N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) = (@dimindex N' (@UNIV N'))) /\ ((N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((@bounded N' s) /\ ((@_open N' s) /\ (has_real_integral (fun t : R => @measure M (@slice M N' k t s)) B (@UNIV R))))))) -> (@measure N' s) = B. +Axiom thm_REAL_OPEN_SET_RATIONAL : forall s : R -> Prop, ((real_open s) /\ (~ (s = (@EMPTY R)))) -> exists x : R, (rational x) /\ (@IN R x s). +Axiom thm_REAL_OPEN_RATIONAL : forall P : R -> Prop, ((real_open (@GSPEC R (fun GEN_PVAR_8559 : R => exists x : R, @SETSPEC R GEN_PVAR_8559 (P x) x))) /\ (exists x : R, P x)) -> exists x : R, (rational x) /\ (P x). +Axiom thm_REAL_OPEN_SET_EXISTS_RATIONAL : forall s : R -> Prop, (real_open s) -> (exists x : R, (rational x) /\ (@IN R x s)) = (exists x : R, @IN R x s). +Axiom thm_REAL_OPEN_EXISTS_RATIONAL : forall P : R -> Prop, (real_open (@GSPEC R (fun GEN_PVAR_8560 : R => exists x : R, @SETSPEC R GEN_PVAR_8560 (P x) x))) -> (exists x : R, (rational x) /\ (P x)) = (exists x : R, P x). +Axiom thm_CONTINUOUS_ON_CONST_DYADIC_RATIONALS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R N', ((@continuous_on M N' f (@UNIV (cart R M))) /\ ((forall x : cart R M, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> integer (@dollar R M x i)) -> (f x) = a) /\ (forall x : cart R M, ((f x) = a) -> (f (@percent M (Rinv (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) x)) = a))) -> forall x : cart R M, (f x) = a. +Axiom thm_REAL_CONTINUOUS_ON_CONST_DYADIC_RATIONALS : forall f : R -> R, forall a : R, ((real_continuous_on f (@UNIV R)) /\ ((forall x : R, (integer x) -> (f x) = a) /\ (forall x : R, ((f x) = a) -> (f (Rdiv x (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) = a))) -> forall x : R, (f x) = a. +Axiom thm_REAL_CONTINUOUS_ADDITIVE_IMP_LINEAR : forall f : R -> R, ((real_continuous_on f (@UNIV R)) /\ (forall x : R, forall y : R, (f (Rplus x y)) = (Rplus (f x) (f y)))) -> forall a : R, forall x : R, (f (Rmult a x)) = (Rmult a (f x)). +Axiom thm_REAL_CONTINUOUS_FLOOR : forall x : R, (~ (integer x)) -> @real_continuous R floor (atreal x). +Axiom thm_REAL_CONTINUOUS_FRAC : forall x : R, (~ (integer x)) -> @real_continuous R frac (atreal x). +Axiom thm_REAL_CONTINUOUS_ON_COMPOSE_FRAC : forall f : R -> R, ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) /\ ((f (R_of_N (NUMERAL (BIT1 0%N)))) = (f (R_of_N (NUMERAL 0%N))))) -> real_continuous_on (@o R R R f frac) (@UNIV R). +Axiom thm_REAL_TIETZE_PERIODIC_INTERVAL : forall f : R -> R, forall a : R, forall b : R, ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((f a) = (f b))) -> exists g : R -> R, (real_continuous_on g (@UNIV R)) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> (g x) = (f x)) /\ (forall x : R, (g (Rplus x (Rminus b a))) = (g x))). +Axiom thm_REAL_CONTINUOUS_ADDITIVE_EXTEND : forall f : R -> R, ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) /\ (forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rle (Rplus x y) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (f (Rplus x y)) = (Rplus (f x) (f y)))) -> exists g : R -> R, (real_continuous_on g (@UNIV R)) /\ ((forall x : R, forall y : R, (g (Rplus x y)) = (Rplus (g x) (g y))) /\ (forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) -> (g x) = (f x))). +Axiom thm_REAL_CONTINUOUS_ADDITIVE_IMP_LINEAR_INTERVAL : forall f : R -> R, forall b : R, ((@longarrow R f (R_of_N (NUMERAL 0%N)) (@within R (atreal (R_of_N (NUMERAL 0%N))) (@GSPEC R (fun GEN_PVAR_8563 : R => exists x : R, @SETSPEC R GEN_PVAR_8563 (Rle (R_of_N (NUMERAL 0%N)) x) x)))) /\ (forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rle (Rplus x y) b))) -> (f (Rplus x y)) = (Rplus (f x) (f y)))) -> forall a : R, forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle x b) /\ ((Rle (R_of_N (NUMERAL 0%N)) (Rmult a x)) /\ (Rle (Rmult a x) b)))) -> (f (Rmult a x)) = (Rmult a (f x)). +Axiom thm_STEINHAUS_TRIVIAL : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall e : R, ((~ (@negligible N' s)) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists x : cart R N', exists y : cart R N', (@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ ((~ (x = y)) /\ (Rlt (@vector_norm N' (@vector_sub N' x y)) e))). +Axiom thm_REAL_STEINHAUS : forall s : R -> Prop, ((real_measurable s) /\ (Rlt (R_of_N (NUMERAL 0%N)) (real_measure s))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (@SUBSET R (open_real_interval (@pair R R (Ropp d) d)) (@GSPEC R (fun GEN_PVAR_8568 : R => exists x : R, exists y : R, @SETSPEC R GEN_PVAR_8568 ((@IN R x s) /\ (@IN R y s)) (Rminus x y)))). +Axiom thm_bernstein : forall x : R, forall n : N, forall k : N, (bernstein n k x) = (Rmult (R_of_N (binom (@pair N N n k))) (Rmult (real_pow x k) (real_pow (Rminus (R_of_N (NUMERAL (BIT1 0%N))) x) (N.sub n k)))). +Axiom thm_BERNSTEIN_POS : forall n : N, forall k : N, forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> Rle (R_of_N (NUMERAL 0%N)) (bernstein n k x). +Axiom thm_SUM_BERNSTEIN : forall (x : R), forall n : N, (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => bernstein n k x)) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_BERNSTEIN_LEMMA : forall n : N, forall x : R, (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (real_pow (Rminus (R_of_N k) (Rmult (R_of_N n) x)) (NUMERAL (BIT0 (BIT1 0%N)))) (bernstein n k x))) = (Rmult (R_of_N n) (Rmult x (Rminus (R_of_N (NUMERAL (BIT1 0%N))) x))). +Axiom thm_BERNSTEIN_WEIERSTRASS : forall f : R -> R, forall e : R, ((real_continuous_on f (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists N' : N, forall n : N, forall x : R, ((N.le N' n) /\ (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R)))))) -> Rlt (Rabs (Rminus (f x) (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (f (Rdiv (R_of_N k) (R_of_N n))) (bernstein n k x))))) e. +Axiom thm_STONE_WEIERSTRASS_ALT : forall {N' : Type'}, forall P : ((cart R N') -> R) -> Prop, forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((forall c : R, P (fun x : cart R N' => c)) /\ ((forall f : (cart R N') -> R, forall g : (cart R N') -> R, ((P f) /\ (P g)) -> P (fun x : cart R N' => Rplus (f x) (g x))) /\ ((forall f : (cart R N') -> R, forall g : (cart R N') -> R, ((P f) /\ (P g)) -> P (fun x : cart R N' => Rmult (f x) (g x))) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (~ (x = y)))) -> exists f : (cart R N') -> R, (forall x' : cart R N', (@IN (cart R N') x' s) -> @real_continuous (cart R N') f (@within (cart R N') (@_at N' x') s)) /\ ((P f) /\ (~ ((f x) = (f y))))))))) -> forall f : (cart R N') -> R, forall e : R, ((forall x : cart R N', (@IN (cart R N') x s) -> @real_continuous (cart R N') f (@within (cart R N') (@_at N' x) s)) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists g : (cart R N') -> R, (P g) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (Rabs (Rminus (f x) (g x))) e). +Axiom thm_STONE_WEIERSTRASS : forall {N' : Type'}, forall P : ((cart R N') -> R) -> Prop, forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((forall f : (cart R N') -> R, (P f) -> forall x : cart R N', (@IN (cart R N') x s) -> @real_continuous (cart R N') f (@within (cart R N') (@_at N' x) s)) /\ ((forall c : R, P (fun x : cart R N' => c)) /\ ((forall f : (cart R N') -> R, forall g : (cart R N') -> R, ((P f) /\ (P g)) -> P (fun x : cart R N' => Rplus (f x) (g x))) /\ ((forall f : (cart R N') -> R, forall g : (cart R N') -> R, ((P f) /\ (P g)) -> P (fun x : cart R N' => Rmult (f x) (g x))) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (~ (x = y)))) -> exists f : (cart R N') -> R, (P f) /\ (~ ((f x) = (f y))))))))) -> forall f : (cart R N') -> R, forall e : R, ((forall x : cart R N', (@IN (cart R N') x s) -> @real_continuous (cart R N') f (@within (cart R N') (@_at N' x) s)) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists g : (cart R N') -> R, (P g) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (Rabs (Rminus (f x) (g x))) e). +Axiom thm_REAL_STONE_WEIERSTRASS_ALT : forall P : (R -> R) -> Prop, forall s : R -> Prop, ((real_compact s) /\ ((forall c : R, P (fun x : R => c)) /\ ((forall f : R -> R, forall g : R -> R, ((P f) /\ (P g)) -> P (fun x : R => Rplus (f x) (g x))) /\ ((forall f : R -> R, forall g : R -> R, ((P f) /\ (P g)) -> P (fun x : R => Rmult (f x) (g x))) /\ (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (~ (x = y)))) -> exists f : R -> R, (real_continuous_on f s) /\ ((P f) /\ (~ ((f x) = (f y))))))))) -> forall f : R -> R, forall e : R, ((real_continuous_on f s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists g : R -> R, (P g) /\ (forall x : R, (@IN R x s) -> Rlt (Rabs (Rminus (f x) (g x))) e). +Axiom thm_REAL_STONE_WEIERSTRASS : forall P : (R -> R) -> Prop, forall s : R -> Prop, ((real_compact s) /\ ((forall f : R -> R, (P f) -> real_continuous_on f s) /\ ((forall c : R, P (fun x : R => c)) /\ ((forall f : R -> R, forall g : R -> R, ((P f) /\ (P g)) -> P (fun x : R => Rplus (f x) (g x))) /\ ((forall f : R -> R, forall g : R -> R, ((P f) /\ (P g)) -> P (fun x : R => Rmult (f x) (g x))) /\ (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (~ (x = y)))) -> exists f : R -> R, (P f) /\ (~ ((f x) = (f y))))))))) -> forall f : R -> R, forall e : R, ((real_continuous_on f s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists g : R -> R, (P g) /\ (forall x : R, (@IN R x s) -> Rlt (Rabs (Rminus (f x) (g x))) e). +Axiom thm_COMPLEX_STONE_WEIERSTRASS_ALT : forall {N' : Type'}, forall P : ((cart R N') -> cart R (tybit0 unit)) -> Prop, forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((forall c : cart R (tybit0 unit), P (fun x : cart R N' => c)) /\ ((forall f : (cart R N') -> cart R (tybit0 unit), (P f) -> P (fun x : cart R N' => cnj (f x))) /\ ((forall f : (cart R N') -> cart R (tybit0 unit), forall g : (cart R N') -> cart R (tybit0 unit), ((P f) /\ (P g)) -> P (fun x : cart R N' => @vector_add (tybit0 unit) (f x) (g x))) /\ ((forall f : (cart R N') -> cart R (tybit0 unit), forall g : (cart R N') -> cart R (tybit0 unit), ((P f) /\ (P g)) -> P (fun x : cart R N' => complex_mul (f x) (g x))) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (~ (x = y)))) -> exists f : (cart R N') -> cart R (tybit0 unit), (P f) /\ ((@continuous_on N' (tybit0 unit) f s) /\ (~ ((f x) = (f y)))))))))) -> forall f : (cart R N') -> cart R (tybit0 unit), forall e : R, ((@continuous_on N' (tybit0 unit) f s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists g : (cart R N') -> cart R (tybit0 unit), (P g) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f x) (g x))) e). +Axiom thm_COMPLEX_STONE_WEIERSTRASS : forall {N' : Type'}, forall P : ((cart R N') -> cart R (tybit0 unit)) -> Prop, forall s : (cart R N') -> Prop, ((@compact N' s) /\ ((forall f : (cart R N') -> cart R (tybit0 unit), (P f) -> @continuous_on N' (tybit0 unit) f s) /\ ((forall c : cart R (tybit0 unit), P (fun x : cart R N' => c)) /\ ((forall f : (cart R N') -> cart R (tybit0 unit), (P f) -> P (fun x : cart R N' => cnj (f x))) /\ ((forall f : (cart R N') -> cart R (tybit0 unit), forall g : (cart R N') -> cart R (tybit0 unit), ((P f) /\ (P g)) -> P (fun x : cart R N' => @vector_add (tybit0 unit) (f x) (g x))) /\ ((forall f : (cart R N') -> cart R (tybit0 unit), forall g : (cart R N') -> cart R (tybit0 unit), ((P f) /\ (P g)) -> P (fun x : cart R N' => complex_mul (f x) (g x))) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ ((@IN (cart R N') y s) /\ (~ (x = y)))) -> exists f : (cart R N') -> cart R (tybit0 unit), (P f) /\ (~ ((f x) = (f y)))))))))) -> forall f : (cart R N') -> cart R (tybit0 unit), forall e : R, ((@continuous_on N' (tybit0 unit) f s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists g : (cart R N') -> cart R (tybit0 unit), (P g) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f x) (g x))) e). +Axiom thm_real_polynomial_function_RULES : forall {N' : Type'}, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @real_polynomial_function N' (fun x : cart R N' => @dollar R N' x i)) /\ ((forall c : R, @real_polynomial_function N' (fun x : cart R N' => c)) /\ ((forall f : (cart R N') -> R, forall g : (cart R N') -> R, ((@real_polynomial_function N' f) /\ (@real_polynomial_function N' g)) -> @real_polynomial_function N' (fun x : cart R N' => Rplus (f x) (g x))) /\ (forall f : (cart R N') -> R, forall g : (cart R N') -> R, ((@real_polynomial_function N' f) /\ (@real_polynomial_function N' g)) -> @real_polynomial_function N' (fun x : cart R N' => Rmult (f x) (g x))))). +Axiom thm_real_polynomial_function_CASES : forall {N' : Type'}, forall a : (cart R N') -> R, (@real_polynomial_function N' a) = ((exists i : N, (a = (fun x : cart R N' => @dollar R N' x i)) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) \/ ((exists c : R, a = (fun x : cart R N' => c)) \/ ((exists f : (cart R N') -> R, exists g : (cart R N') -> R, (a = (fun x : cart R N' => Rplus (f x) (g x))) /\ ((@real_polynomial_function N' f) /\ (@real_polynomial_function N' g))) \/ (exists f : (cart R N') -> R, exists g : (cart R N') -> R, (a = (fun x : cart R N' => Rmult (f x) (g x))) /\ ((@real_polynomial_function N' f) /\ (@real_polynomial_function N' g)))))). +Axiom thm_real_polynomial_function_INDUCT : forall {N' : Type'}, forall real_polynomial_function' : ((cart R N') -> R) -> Prop, ((forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> real_polynomial_function' (fun x : cart R N' => @dollar R N' x i)) /\ ((forall c : R, real_polynomial_function' (fun x : cart R N' => c)) /\ ((forall f : (cart R N') -> R, forall g : (cart R N') -> R, ((real_polynomial_function' f) /\ (real_polynomial_function' g)) -> real_polynomial_function' (fun x : cart R N' => Rplus (f x) (g x))) /\ (forall f : (cart R N') -> R, forall g : (cart R N') -> R, ((real_polynomial_function' f) /\ (real_polynomial_function' g)) -> real_polynomial_function' (fun x : cart R N' => Rmult (f x) (g x)))))) -> forall a : (cart R N') -> R, (@real_polynomial_function N' a) -> real_polynomial_function' a. +Axiom thm_REAL_POLYNOMIAL_FUNCTION_ADD : forall {_1749139 : Type'}, forall f : (cart R _1749139) -> R, forall g : (cart R _1749139) -> R, ((@real_polynomial_function _1749139 f) /\ (@real_polynomial_function _1749139 g)) -> @real_polynomial_function _1749139 (fun x : cart R _1749139 => Rplus (f x) (g x)). +Axiom thm_REAL_POLYNOMIAL_FUNCTION_MUL : forall {_1749165 : Type'}, forall f : (cart R _1749165) -> R, forall g : (cart R _1749165) -> R, ((@real_polynomial_function _1749165 f) /\ (@real_polynomial_function _1749165 g)) -> @real_polynomial_function _1749165 (fun x : cart R _1749165 => Rmult (f x) (g x)). +Axiom thm_REAL_POLYNOMIAL_FUNCTION_NEG : forall {N' : Type'}, forall f : (cart R N') -> R, (@real_polynomial_function N' (fun x : cart R N' => Ropp (f x))) = (@real_polynomial_function N' f). +Axiom thm_REAL_POLYNOMIAL_FUNCTION_SUB : forall {N' : Type'}, forall f : (cart R N') -> R, forall g : (cart R N') -> R, ((@real_polynomial_function N' f) /\ (@real_polynomial_function N' g)) -> @real_polynomial_function N' (fun x : cart R N' => Rminus (f x) (g x)). +Axiom thm_REAL_POLYNOMIAL_FUNCTION_SUM : forall {_1749288 _1749291 : Type'}, forall f : (cart R _1749291) -> _1749288 -> R, forall s : _1749288 -> Prop, ((@FINITE _1749288 s) /\ (forall a : _1749288, (@IN _1749288 a s) -> @real_polynomial_function _1749291 (fun x : cart R _1749291 => f x a))) -> @real_polynomial_function _1749291 (fun x : cart R _1749291 => @sum _1749288 s (f x)). +Axiom thm_REAL_POLYNOMIAL_FUNCTION_PRODUCT : forall {_1749326 _1749329 : Type'}, forall f : (cart R _1749329) -> _1749326 -> R, forall s : _1749326 -> Prop, ((@FINITE _1749326 s) /\ (forall a : _1749326, (@IN _1749326 a s) -> @real_polynomial_function _1749329 (fun x : cart R _1749329 => f x a))) -> @real_polynomial_function _1749329 (fun x : cart R _1749329 => @product _1749326 s (f x)). +Axiom thm_REAL_POLYNOMIAL_FUNCTION_POW : forall {_1749350 : Type'}, forall p : (cart R _1749350) -> R, forall n : N, (@real_polynomial_function _1749350 p) -> @real_polynomial_function _1749350 (fun x : cart R _1749350 => real_pow (p x) n). +Axiom thm_POLYNOMIAL_FUNCTION_DROP : forall p : R -> R, (@real_polynomial_function unit (@o (cart R unit) R R p drop)) = (polynomial_function p). +Axiom thm_POLYNOMIAL_FUNCTION_LIFT : forall p : (cart R unit) -> R, (polynomial_function (@o R (cart R unit) R p lift)) = (@real_polynomial_function unit p). +Axiom thm_REAL_CONTINUOUS_REAL_POLYMONIAL_FUNCTION : forall {N' : Type'}, forall f : (cart R N') -> R, forall x : cart R N', (@real_polynomial_function N' f) -> @real_continuous (cart R N') f (@_at N' x). +Axiom thm_STONE_WEIERSTRASS_REAL_POLYNOMIAL_FUNCTION : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall e : R, ((@compact N' s) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> @real_continuous (cart R N') f (@within (cart R N') (@_at N' x) s)) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists g : (cart R N') -> R, (@real_polynomial_function N' g) /\ (forall x : cart R N', (@IN (cart R N') x s) -> Rlt (Rabs (Rminus (f x) (g x))) e). +Axiom thm_REAL_STONE_WEIERSTRASS_POLYNOMIAL_FUNCTION : forall f : R -> R, forall s : R -> Prop, forall e : R, ((real_compact s) /\ ((real_continuous_on f s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists g : R -> R, (polynomial_function g) /\ (forall x : R, (@IN R x s) -> Rlt (Rabs (Rminus (f x) (g x))) e). +Axiom thm_vector_polynomial_function : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@vector_polynomial_function M N' f) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @real_polynomial_function M (fun x : cart R M => @dollar R N' (f x) i)). +Axiom thm_REAL_POLYNOMIAL_FUNCTION_DROP : forall {_1750635 : Type'}, forall f : (cart R _1750635) -> cart R unit, (@real_polynomial_function _1750635 (@o (cart R _1750635) (cart R unit) R drop f)) = (@vector_polynomial_function _1750635 unit f). +Axiom thm_VECTOR_POLYNOMIAL_FUNCTION_LIFT : forall {_1750653 : Type'}, forall f : (cart R _1750653) -> R, (@vector_polynomial_function _1750653 unit (@o (cart R _1750653) R (cart R unit) lift f)) = (@real_polynomial_function _1750653 f). +Axiom thm_VECTOR_POLYNOMIAL_FUNCTION_CONST : forall {_1750660 _1750661 : Type'}, forall c : cart R _1750661, @vector_polynomial_function _1750660 _1750661 (fun x : cart R _1750660 => c). +Axiom thm_VECTOR_POLYNOMIAL_FUNCTION_ID : forall {_1750666 : Type'}, @vector_polynomial_function _1750666 _1750666 (fun x : cart R _1750666 => x). +Axiom thm_VECTOR_POLYNOMIAL_FUNCTION_COMPONENT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex N' (@UNIV N'))) /\ (@vector_polynomial_function M N' f))) -> @vector_polynomial_function M unit (fun x : cart R M => lift (@dollar R N' (f x) i)). +Axiom thm_VECTOR_POLYNOMIAL_FUNCTION_ADD : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@vector_polynomial_function M N' f) /\ (@vector_polynomial_function M N' g)) -> @vector_polynomial_function M N' (fun x : cart R M => @vector_add N' (f x) (g x)). +Axiom thm_VECTOR_POLYNOMIAL_FUNCTION_MUL : forall {M N' : Type'}, forall f : (cart R M) -> R, forall g : (cart R M) -> cart R N', ((@vector_polynomial_function M unit (@o (cart R M) R (cart R unit) lift f)) /\ (@vector_polynomial_function M N' g)) -> @vector_polynomial_function M N' (fun x : cart R M => @percent N' (f x) (g x)). +Axiom thm_VECTOR_POLYNOMIAL_FUNCTION_CMUL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : R, (@vector_polynomial_function M N' f) -> @vector_polynomial_function M N' (fun x : cart R M => @percent N' c (f x)). +Axiom thm_VECTOR_POLYNOMIAL_FUNCTION_NEG : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@vector_polynomial_function M N' f) -> @vector_polynomial_function M N' (fun x : cart R M => @vector_neg N' (f x)). +Axiom thm_VECTOR_POLYNOMIAL_FUNCTION_SUB : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', ((@vector_polynomial_function M N' f) /\ (@vector_polynomial_function M N' g)) -> @vector_polynomial_function M N' (fun x : cart R M => @vector_sub N' (f x) (g x)). +Axiom thm_VECTOR_POLYNOMIAL_FUNCTION_VSUM : forall {A M N' : Type'}, forall f : (cart R M) -> A -> cart R N', forall s : A -> Prop, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> @vector_polynomial_function M N' (fun x : cart R M => f x i))) -> @vector_polynomial_function M N' (fun x : cart R M => @vsum A N' s (f x)). +Axiom thm_REAL_VECTOR_POLYNOMIAL_FUNCTION_o : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> R, ((@vector_polynomial_function M N' f) /\ (@real_polynomial_function N' g)) -> @real_polynomial_function M (@o (cart R M) (cart R N') R g f). +Axiom thm_VECTOR_POLYNOMIAL_FUNCTION_o : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, ((@vector_polynomial_function M N' f) /\ (@vector_polynomial_function N' P g)) -> @vector_polynomial_function M P (@o (cart R M) (cart R N') (cart R P) g f). +Axiom thm_VECTOR_POLYNOMIAL_FUNCTION_REFLECT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', (@vector_polynomial_function M N' (fun x : cart R M => f (@vector_neg M x))) = (@vector_polynomial_function M N' f). +Axiom thm_REAL_POLYNOMIAL_FUNCTION_1 : forall f : (cart R unit) -> R, (@real_polynomial_function unit f) = (exists a : N -> R, exists n : N, f = (fun x : cart R unit => @sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (a i) (real_pow (drop x) i)))). +Axiom thm_CONTINUOUS_VECTOR_POLYNOMIAL_FUNCTION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall x : cart R M, (@vector_polynomial_function M N' f) -> @continuous N' (cart R M) f (@_at M x). +Axiom thm_CONTINUOUS_ON_VECTOR_POLYNOMIAL_FUNCTION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@vector_polynomial_function M N' f) -> @continuous_on M N' f s. +Axiom thm_HAS_VECTOR_DERIVATIVE_VECTOR_POLYNOMIAL_FUNCTION : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', (@vector_polynomial_function unit N' p) -> exists p' : (cart R unit) -> cart R N', (@vector_polynomial_function unit N' p') /\ (forall x : cart R unit, @has_vector_derivative N' p (p' x) (@_at unit x)). +Axiom thm_STONE_WEIERSTRASS_VECTOR_POLYNOMIAL_FUNCTION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall e : R, ((@compact M s) /\ ((@continuous_on M N' f s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists g : (cart R M) -> cart R N', (@vector_polynomial_function M N' g) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rlt (@vector_norm N' (@vector_sub N' (f x) (g x))) e). +Axiom thm_STONE_WEIERSTRASS_VECTOR_POLYNOMIAL_FUNCTION_SUBSPACE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall e : R, forall t : (cart R N') -> Prop, ((@compact M s) /\ ((@continuous_on M N' f s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@subspace N' t) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t))))) -> exists g : (cart R M) -> cart R N', (@vector_polynomial_function M N' g) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) t) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rlt (@vector_norm N' (@vector_sub N' (f x) (g x))) e)). +Axiom thm_STONE_WEIERSTRASS_VECTOR_POLYNOMIAL_FUNCTION_AFFINE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall e : R, forall t : (cart R N') -> Prop, ((@compact M s) /\ ((@continuous_on M N' f s) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@affine N' t) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) t))))) -> exists g : (cart R M) -> cart R N', (@vector_polynomial_function M N' g) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g s) t) /\ (forall x : cart R M, (@IN (cart R M) x s) -> Rlt (@vector_norm N' (@vector_sub N' (f x) (g x))) e)). +Axiom thm_PATH_VECTOR_POLYNOMIAL_FUNCTION : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', (@vector_polynomial_function unit N' g) -> @path N' g. +Axiom thm_RECTIFIABLE_PATH_VECTOR_POLYNOMIAL_FUNCTION : forall {N' : Type'}, forall p : (cart R unit) -> cart R N', (@vector_polynomial_function unit N' p) -> @rectifiable_path N' p. +Axiom thm_PATH_APPROX_VECTOR_POLYNOMIAL_FUNCTION : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall e : R, ((@path N' g) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)) -> exists p : (cart R unit) -> cart R N', (@vector_polynomial_function unit N' p) /\ (((@pathstart N' p) = (@pathstart N' g)) /\ (((@pathfinish N' p) = (@pathfinish N' g)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rlt (@vector_norm N' (@vector_sub N' (p t) (g t))) e))). +Axiom thm_CONNECTED_OPEN_VECTOR_POLYNOMIAL_CONNECTED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (@connected N' s)) -> forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> exists g : (cart R unit) -> cart R N', (@vector_polynomial_function unit N' g) /\ ((@SUBSET (cart R N') (@path_image N' g) s) /\ (((@pathstart N' g) = x) /\ ((@pathfinish N' g) = y))). +Axiom thm_LIPSCHITZ_REAL_POLYNOMIAL_FUNCTION : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, ((@real_polynomial_function N' f) /\ (@bounded N' s)) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x s) /\ (@IN (cart R N') y s)) -> Rle (Rabs (Rminus (f x) (f y))) (Rmult B (@vector_norm N' (@vector_sub N' x y)))). +Axiom thm_LIPSCHITZ_VECTOR_POLYNOMIAL_FUNCTION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@vector_polynomial_function M N' f) /\ (@bounded M s)) -> exists B : R, (Rlt (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R M, forall y : cart R M, ((@IN (cart R M) x s) /\ (@IN (cart R M) y s)) -> Rle (@vector_norm N' (@vector_sub N' (f x) (f y))) (Rmult B (@vector_norm M (@vector_sub M x y)))). +Axiom thm_DIFFERENTIABLE_REAL_POLYNOMIAL_FUNCTION_AT : forall {N' : Type'}, forall f : (cart R N') -> R, forall a : cart R N', (@real_polynomial_function N' f) -> @differentiable unit N' (@o (cart R N') R (cart R unit) lift f) (@_at N' a). +Axiom thm_DIFFERENTIABLE_ON_REAL_POLYNOMIAL_FUNCTION : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, (@real_polynomial_function N' f) -> @differentiable_on unit N' (@o (cart R N') R (cart R unit) lift f) s. +Axiom thm_DIFFERENTIABLE_VECTOR_POLYNOMIAL_FUNCTION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, (@vector_polynomial_function M N' f) -> @differentiable N' M f (@_at M a). +Axiom thm_DIFFERENTIABLE_ON_VECTOR_POLYNOMIAL_FUNCTION : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@vector_polynomial_function M N' f) -> @differentiable_on N' M f s. +Axiom thm_CLOSED_ALGEBRAIC_VARIETY : forall {_1753298 : Type'}, forall f : (cart R _1753298) -> R, forall c : R, (@real_polynomial_function _1753298 f) -> @closed _1753298 (@GSPEC (cart R _1753298) (fun GEN_PVAR_8599 : cart R _1753298 => exists x : cart R _1753298, @SETSPEC (cart R _1753298) GEN_PVAR_8599 ((f x) = c) x)). +Axiom thm_NEGLIGIBLE_ALGEBRAIC_VARIETY : forall {_1753828 : Type'}, forall f : (cart R _1753828) -> R, forall c : R, ((@real_polynomial_function _1753828 f) /\ (~ (forall x : cart R _1753828, (f x) = c))) -> @negligible _1753828 (@GSPEC (cart R _1753828) (fun GEN_PVAR_8612 : cart R _1753828 => exists x : cart R _1753828, @SETSPEC (cart R _1753828) GEN_PVAR_8612 ((f x) = c) x)). +Axiom thm_EMPTY_INTERIOR_ALGEBRAIC_VARIETY : forall {N' : Type'}, forall f : (cart R N') -> R, forall c : R, ((@real_polynomial_function N' f) /\ (~ (forall x : cart R N', (f x) = c))) -> (@interior N' (@GSPEC (cart R N') (fun GEN_PVAR_8613 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_8613 ((f x) = c) x))) = (@EMPTY (cart R N')). +Axiom thm_NOWHERE_DENSE_ALGEBRAIC_VARIETY : forall {N' : Type'}, forall f : (cart R N') -> R, forall c : R, ((@real_polynomial_function N' f) /\ (~ (forall x : cart R N', (f x) = c))) -> (@interior N' (@closure N' (@GSPEC (cart R N') (fun GEN_PVAR_8614 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_8614 ((f x) = c) x)))) = (@EMPTY (cart R N')). +Axiom thm_BERNOULLI_EXPANSION : forall n : N, forall x : R, (bernoulli n x) = (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (R_of_N (binom (@pair N N n k))) (Rmult (bernoulli k (R_of_N (NUMERAL 0%N))) (real_pow x (N.sub n k))))). +Axiom thm_BERNOULLI : forall n : N, forall x : R, (Rminus (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (R_of_N (binom (@pair N N n k))) (bernoulli k x))) (bernoulli n x)) = (Rmult (R_of_N n) (real_pow x (N.sub n (NUMERAL (BIT1 0%N))))). +Axiom thm_BERNOULLI_ALT : forall n : N, forall x : R, (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (R_of_N (binom (@pair N N (N.add n (NUMERAL (BIT1 0%N))) k))) (bernoulli k x))) = (Rmult (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))) (real_pow x n)). +Axiom thm_BERNOULLI_ADD : forall n : N, forall x : R, forall y : R, (bernoulli n (Rplus x y)) = (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (R_of_N (binom (@pair N N n k))) (Rmult (bernoulli k x) (real_pow y (N.sub n k))))). +Axiom thm_bernoulli_number : ((bernoulli (NUMERAL 0%N) (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall n : N, (bernoulli (N.add n (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) = (Rdiv (Ropp (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (R_of_N (binom (@pair N N (N.add n (NUMERAL (BIT0 (BIT1 0%N)))) k))) (bernoulli k (R_of_N (NUMERAL 0%N)))))) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_BERNOULLI_NUMBER : forall n : N, (Rminus (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (R_of_N (binom (@pair N N n k))) (bernoulli k (R_of_N (NUMERAL 0%N))))) (bernoulli n (R_of_N (NUMERAL 0%N)))) = (@COND R (n = (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Axiom thm_BERNOULLI_NUMBER_ALT : forall n : N, (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => Rmult (R_of_N (binom (@pair N N (N.add n (NUMERAL (BIT1 0%N))) k))) (bernoulli k (R_of_N (NUMERAL 0%N))))) = (@COND R (n = (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Axiom thm_BERNOULLI_SUB_ADD1 : forall n : N, forall x : R, (Rminus (bernoulli n (Rplus x (R_of_N (NUMERAL (BIT1 0%N))))) (bernoulli n x)) = (Rmult (R_of_N n) (real_pow x (N.sub n (NUMERAL (BIT1 0%N))))). +Axiom thm_BERNOULLI_1 : forall n : N, (bernoulli n (R_of_N (NUMERAL (BIT1 0%N)))) = (@COND R (n = (NUMERAL (BIT1 0%N))) (Rplus (bernoulli n (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))) (bernoulli n (R_of_N (NUMERAL 0%N)))). +Axiom thm_SUM_OF_POWERS : forall m : N, forall n : N, (@sum N (dotdot (NUMERAL 0%N) n) (fun k : N => real_pow (R_of_N k) m)) = (Rdiv (Rminus (bernoulli (N.add m (NUMERAL (BIT1 0%N))) (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N))))) (bernoulli (N.add m (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N)))) (Rplus (R_of_N m) (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_HAS_REAL_DERIVATIVE_BERNOULLI : forall n : N, forall x : R, has_real_derivative (bernoulli n) (Rmult (R_of_N n) (bernoulli (N.sub n (NUMERAL (BIT1 0%N))) x)) (atreal x). +Axiom thm_REAL_DIFFERENTIABLE_ON_BERNOULLI : forall n : N, forall s : R -> Prop, real_differentiable_on (bernoulli n) s. +Axiom thm_REAL_CONTINUOUS_ON_BERNOULLI : forall n : N, forall s : R -> Prop, real_continuous_on (bernoulli n) s. +Axiom thm_HAS_REAL_INTEGRAL_BERNOULLI : forall n : N, has_real_integral (bernoulli n) (@COND R (n = (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R)))). +Axiom thm_POLYNOMIAL_FUNCTION_BERNOULLI : forall n : N, polynomial_function (bernoulli n). +Axiom thm_BERNOULLI_UNIQUE : forall p : R -> R, forall n : N, ((polynomial_function p) /\ ((forall x : R, (Rminus (p (Rplus x (R_of_N (NUMERAL (BIT1 0%N))))) (p x)) = (Rmult (R_of_N n) (real_pow x (N.sub n (NUMERAL (BIT1 0%N)))))) /\ ((real_integral (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R)))) p) = (@COND R (n = (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N)))))) -> p = (bernoulli n). +Axiom thm_BERNOULLI_RAABE_2 : forall n : N, forall x : R, (Rplus (bernoulli n (Rdiv (Rplus x (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (bernoulli n (Rdiv x (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) = (Rmult (Rdiv (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) (bernoulli n x)). +Axiom thm_BERNOULLI_HALF : forall n : N, (bernoulli n (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) = (Rmult (Rminus (Rdiv (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) (R_of_N (NUMERAL (BIT1 0%N)))) (bernoulli n (R_of_N (NUMERAL 0%N)))). +Axiom thm_BERNOULLI_REFLECT : forall n : N, forall x : R, (bernoulli n (Rminus (R_of_N (NUMERAL (BIT1 0%N))) x)) = (Rmult (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) n) (bernoulli n x)). +Axiom thm_BERNOULLI_1_0 : forall n : N, (bernoulli n (R_of_N (NUMERAL (BIT1 0%N)))) = (Rmult (real_pow (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) n) (bernoulli n (R_of_N (NUMERAL 0%N)))). +Axiom thm_BERNOULLI_NUMBER_ZERO : forall n : N, ((ODD n) /\ (~ (n = (NUMERAL (BIT1 0%N))))) -> (bernoulli n (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_BERNOULLI_EVEN_BOUND : forall n : N, forall x : R, ((EVEN n) /\ (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R)))))) -> Rle (Rabs (bernoulli n x)) (Rabs (bernoulli n (R_of_N (NUMERAL 0%N)))). +Axiom thm_BERNOULLI_NUMBER_EQ_0 : forall n : N, ((bernoulli n (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N))) = ((ODD n) /\ (~ (n = (NUMERAL (BIT1 0%N))))). +Axiom thm_BERNOULLI_BOUND : forall n : N, forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))) (@nil (prod R R))))) -> Rle (Rabs (bernoulli n x)) (Rmult (Rmax (Rdiv (R_of_N n) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL (BIT1 0%N)))) (Rabs (bernoulli (N.mul (NUMERAL (BIT0 (BIT1 0%N))) (N.div n (NUMERAL (BIT0 (BIT1 0%N))))) (R_of_N (NUMERAL 0%N))))). +Axiom thm_ABSOLUTELY_INTEGRABLE_ON_MUL_BERNOULLI_FRAC : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall s : (cart R unit) -> Prop, forall n : N, (@absolutely_integrable_on N' unit f s) -> @absolutely_integrable_on N' unit (fun x : cart R unit => @percent N' (bernoulli n (frac (drop x))) (f x)) s. +Axiom thm_REAL_EULER_MACLAURIN : forall f : N -> R -> R, forall m : N, forall n : N, forall p : N, ((N.le m n) /\ (forall k : N, forall x : R, ((N.le k (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT1 0%N)))) /\ (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (R_of_N n)) (@nil (prod R R)))))) -> has_real_derivative (f k) (f (N.add k (NUMERAL (BIT1 0%N))) x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (R_of_N n)) (@nil (prod R R))))))) -> (real_integrable_on (fun x : R => Rmult (bernoulli (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT1 0%N))) (frac x)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT1 0%N))) x)) (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (R_of_N n)) (@nil (prod R R))))) /\ ((@sum N (dotdot m n) (fun i : N => f (NUMERAL 0%N) (R_of_N i))) = (Rplus (real_integral (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (R_of_N n)) (@nil (prod R R)))) (f (NUMERAL 0%N))) (Rplus (Rdiv (Rplus (f (NUMERAL 0%N) (R_of_N m)) (f (NUMERAL 0%N) (R_of_N n))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (Rplus (@sum N (dotdot (NUMERAL (BIT1 0%N)) p) (fun k : N => Rmult (Rdiv (bernoulli (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (R_of_N (NUMERAL 0%N))) (R_of_N (FACT (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k)))) (Rminus (f (N.sub (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (NUMERAL (BIT1 0%N))) (R_of_N n)) (f (N.sub (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (NUMERAL (BIT1 0%N))) (R_of_N m))))) (Rdiv (real_integral (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (R_of_N n)) (@nil (prod R R)))) (fun x : R => Rmult (bernoulli (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT1 0%N))) (frac x)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT1 0%N))) x))) (R_of_N (FACT (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT1 0%N)))))))))). +Axiom thm_REAL_EULER_MACLAURIN_ANTIDERIVATIVE : forall f : N -> R -> R, forall m : N, forall n : N, forall p : N, ((N.le m n) /\ (forall k : N, forall x : R, ((N.le k (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT0 (BIT1 0%N))))) /\ (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (R_of_N n)) (@nil (prod R R)))))) -> has_real_derivative (f k) (f (N.add k (NUMERAL (BIT1 0%N))) x) (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (R_of_N n)) (@nil (prod R R))))))) -> (real_integrable_on (fun x : R => Rmult (bernoulli (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT1 0%N))) (frac x)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT0 (BIT1 0%N)))) x)) (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (R_of_N n)) (@nil (prod R R))))) /\ ((@sum N (dotdot m n) (fun i : N => f (NUMERAL (BIT1 0%N)) (R_of_N i))) = (Rplus (Rminus (f (NUMERAL 0%N) (R_of_N n)) (f (NUMERAL 0%N) (R_of_N m))) (Rplus (Rdiv (Rplus (f (NUMERAL (BIT1 0%N)) (R_of_N m)) (f (NUMERAL (BIT1 0%N)) (R_of_N n))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (Rplus (@sum N (dotdot (NUMERAL (BIT1 0%N)) p) (fun k : N => Rmult (Rdiv (bernoulli (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (R_of_N (NUMERAL 0%N))) (R_of_N (FACT (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k)))) (Rminus (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (R_of_N n)) (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (R_of_N m))))) (Rdiv (real_integral (closed_real_interval (@cons (prod R R) (@pair R R (R_of_N m) (R_of_N n)) (@nil (prod R R)))) (fun x : R => Rmult (bernoulli (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT1 0%N))) (frac x)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT0 (BIT1 0%N)))) x))) (R_of_N (FACT (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT1 0%N)))))))))). +Axiom thm_COMPLEX_EULER_MACLAURIN_ANTIDERIVATIVE : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall m : N, forall n : N, forall p : N, ((N.le m n) /\ (forall k : N, forall x : R, ((N.le k (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT0 (BIT1 0%N))))) /\ ((Rle (R_of_N m) x) /\ (Rle x (R_of_N n)))) -> has_complex_derivative (f k) (f (N.add k (NUMERAL (BIT1 0%N))) (Cx x)) (@_at (tybit0 unit) (Cx x)))) -> (@integrable_on (tybit0 unit) unit (fun x : cart R unit => complex_mul (Cx (bernoulli (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT1 0%N))) (frac (drop x)))) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT0 (BIT1 0%N)))) (Cx (drop x)))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (lift (R_of_N m)) (lift (R_of_N n))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@vsum N (tybit0 unit) (dotdot m n) (fun i : N => f (NUMERAL (BIT1 0%N)) (Cx (R_of_N i)))) = (@vector_add (tybit0 unit) (@vector_sub (tybit0 unit) (f (NUMERAL 0%N) (Cx (R_of_N n))) (f (NUMERAL 0%N) (Cx (R_of_N m)))) (@vector_add (tybit0 unit) (complex_div (@vector_add (tybit0 unit) (f (NUMERAL (BIT1 0%N)) (Cx (R_of_N m))) (f (NUMERAL (BIT1 0%N)) (Cx (R_of_N n)))) (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (@vector_add (tybit0 unit) (@vsum N (tybit0 unit) (dotdot (NUMERAL (BIT1 0%N)) p) (fun k : N => complex_mul (Cx (Rdiv (bernoulli (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (R_of_N (NUMERAL 0%N))) (R_of_N (FACT (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k))))) (@vector_sub (tybit0 unit) (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (Cx (R_of_N n))) (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (Cx (R_of_N m)))))) (complex_div (@integral (tybit0 unit) unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (lift (R_of_N m)) (lift (R_of_N n))) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => complex_mul (Cx (bernoulli (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT1 0%N))) (frac (drop x)))) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT0 (BIT1 0%N)))) (Cx (drop x))))) (Cx (R_of_N (FACT (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p) (NUMERAL (BIT1 0%N))))))))))). +Axiom thm_MEASURABLE_ON_COMPLEX_MUL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall g : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, ((@measurable_on N' (tybit0 unit) f s) /\ (@measurable_on N' (tybit0 unit) g s)) -> @measurable_on N' (tybit0 unit) (fun x : cart R N' => complex_mul (f x) (g x)) s. +Axiom thm_MEASURABLE_ON_COMPLEX_INV : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), ((@measurable_on N' (tybit0 unit) f (@UNIV (cart R N'))) /\ (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_8617 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_8617 ((f x) = (Cx (R_of_N (NUMERAL 0%N)))) x)))) -> @measurable_on N' (tybit0 unit) (fun x : cart R N' => complex_inv (f x)) (@UNIV (cart R N')). +Axiom thm_MEASURABLE_ON_COMPLEX_DIV : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall g : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, ((@measurable_on N' (tybit0 unit) f s) /\ ((@measurable_on N' (tybit0 unit) g (@UNIV (cart R N'))) /\ (@negligible N' (@GSPEC (cart R N') (fun GEN_PVAR_8619 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_8619 ((g x) = (Cx (R_of_N (NUMERAL 0%N)))) x))))) -> @measurable_on N' (tybit0 unit) (fun x : cart R N' => complex_div (f x) (g x)) s. +Axiom thm_MEASURABLE_ON_CPRODUCT : forall {A N' : Type'}, forall f : A -> (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (((t = (@EMPTY A)) -> @lebesgue_measurable N' s) /\ (forall i : A, (@IN A i t) -> @measurable_on N' (tybit0 unit) (f i) s))) -> @measurable_on N' (tybit0 unit) (fun x : cart R N' => @cproduct A t (fun i : A => f i x)) s. +Axiom thm_real_measurable_on : forall f : R -> R, forall s : R -> Prop, (real_measurable_on f s) = (@measurable_on unit unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (@IMAGE R (cart R unit) lift s)). +Axiom thm_real_lebesgue_measurable : forall s : R -> Prop, (real_lebesgue_measurable s) = (real_measurable_on (fun x : R => @COND R (@IN R x s) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@UNIV R)). +Axiom thm_REAL_MEASURABLE_ON_UNIV : forall (f : R -> R) (s : R -> Prop), (real_measurable_on (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N))) (@UNIV R)) = (real_measurable_on f s). +Axiom thm_REAL_LEBESGUE_MEASURABLE : forall s : R -> Prop, (real_lebesgue_measurable s) = (@lebesgue_measurable unit (@IMAGE R (cart R unit) lift s)). +Axiom thm_REAL_MEASURABLE_BOUNDED_BY_INTEGRABLE_IMP_INTEGRABLE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_measurable_on f s) /\ ((real_integrable_on g s) /\ (forall x : R, (@IN R x s) -> Rle (Rabs (f x)) (g x)))) -> real_integrable_on f s. +Axiom thm_REAL_MEASURABLE_BOUNDED_AE_BY_INTEGRABLE_IMP_INTEGRABLE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall k : R -> Prop, ((real_measurable_on f s) /\ ((real_integrable_on g s) /\ ((real_negligible k) /\ (forall x : R, (@IN R x (@DIFF R s k)) -> Rle (Rabs (f x)) (g x))))) -> real_integrable_on f s. +Axiom thm_REAL_MEASURABLE_BOUNDED_BY_INTEGRABLE_IMP_ABSOLUTELY_INTEGRABLE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_measurable_on f s) /\ ((real_integrable_on g s) /\ (forall x : R, (@IN R x s) -> Rle (Rabs (f x)) (g x)))) -> absolutely_real_integrable_on f s. +Axiom thm_INTEGRABLE_SUBINTERVALS_IMP_REAL_MEASURABLE : forall f : R -> R, (forall a : R, forall b : R, real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> real_measurable_on f (@UNIV R). +Axiom thm_INTEGRABLE_IMP_REAL_MEASURABLE : forall f : R -> R, forall s : R -> Prop, (real_integrable_on f s) -> real_measurable_on f s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_REAL_MEASURABLE : forall f : R -> R, forall s : R -> Prop, (absolutely_real_integrable_on f s) = ((real_measurable_on f s) /\ (real_integrable_on (fun x : R => Rabs (f x)) s)). +Axiom thm_CONTINUOUS_IMP_REAL_MEASURABLE_ON_CLOSED_SUBSET : forall f : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (real_closed s)) -> real_measurable_on f s. +Axiom thm_REAL_MEASURABLE_ON_COMPOSE_CONTINUOUS : forall f : R -> R, forall g : R -> R, ((real_measurable_on f (@UNIV R)) /\ (real_continuous_on g (@UNIV R))) -> real_measurable_on (@o R R R g f) (@UNIV R). +Axiom thm_REAL_MEASURABLE_ON_COMPOSE_CONTINUOUS_0 : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_measurable_on f s) /\ ((real_continuous_on g (@UNIV R)) /\ ((g (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N))))) -> real_measurable_on (@o R R R g f) s. +Axiom thm_REAL_MEASURABLE_ON_COMPOSE_CONTINUOUS_OPEN_INTERVAL : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, ((real_measurable_on f (@UNIV R)) /\ ((forall x : R, @IN R (f x) (open_real_interval (@pair R R a b))) /\ (real_continuous_on g (open_real_interval (@pair R R a b))))) -> real_measurable_on (@o R R R g f) (@UNIV R). +Axiom thm_REAL_MEASURABLE_ON_COMPOSE_CONTINUOUS_CLOSED_SET : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_closed s) /\ ((real_measurable_on f (@UNIV R)) /\ ((forall x : R, @IN R (f x) s) /\ (real_continuous_on g s)))) -> real_measurable_on (@o R R R g f) (@UNIV R). +Axiom thm_REAL_MEASURABLE_ON_COMPOSE_CONTINUOUS_CLOSED_SET_0 : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_closed s) /\ ((real_measurable_on f t) /\ ((forall x : R, @IN R (f x) s) /\ ((real_continuous_on g s) /\ ((@IN R (R_of_N (NUMERAL 0%N)) s) /\ ((g (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)))))))) -> real_measurable_on (@o R R R g f) t. +Axiom thm_CONTINUOUS_IMP_REAL_MEASURABLE_ON : forall f : R -> R, (real_continuous_on f (@UNIV R)) -> real_measurable_on f (@UNIV R). +Axiom thm_REAL_MEASURABLE_ON_CONST : forall k : R, real_measurable_on (fun x : R => k) (@UNIV R). +Axiom thm_REAL_MEASURABLE_ON_0 : forall s : R -> Prop, real_measurable_on (fun x : R => R_of_N (NUMERAL 0%N)) s. +Axiom thm_REAL_MEASURABLE_ON_LMUL : forall c : R, forall f : R -> R, forall s : R -> Prop, (real_measurable_on f s) -> real_measurable_on (fun x : R => Rmult c (f x)) s. +Axiom thm_REAL_MEASURABLE_ON_RMUL : forall c : R, forall f : R -> R, forall s : R -> Prop, (real_measurable_on f s) -> real_measurable_on (fun x : R => Rmult (f x) c) s. +Axiom thm_REAL_MEASURABLE_ON_NEG : forall f : R -> R, forall s : R -> Prop, (real_measurable_on f s) -> real_measurable_on (fun x : R => Ropp (f x)) s. +Axiom thm_REAL_MEASURABLE_ON_NEG_EQ : forall f : R -> R, forall s : R -> Prop, (real_measurable_on (fun x : R => Ropp (f x)) s) = (real_measurable_on f s). +Axiom thm_REAL_MEASURABLE_ON_ABS : forall f : R -> R, forall s : R -> Prop, (real_measurable_on f s) -> real_measurable_on (fun x : R => Rabs (f x)) s. +Axiom thm_REAL_MEASURABLE_ON_ADD : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_measurable_on f s) /\ (real_measurable_on g s)) -> real_measurable_on (fun x : R => Rplus (f x) (g x)) s. +Axiom thm_REAL_MEASURABLE_ON_SUB : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_measurable_on f s) /\ (real_measurable_on g s)) -> real_measurable_on (fun x : R => Rminus (f x) (g x)) s. +Axiom thm_REAL_MEASURABLE_ON_MAX : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_measurable_on f s) /\ (real_measurable_on g s)) -> real_measurable_on (fun x : R => Rmax (f x) (g x)) s. +Axiom thm_REAL_MEASURABLE_ON_MIN : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_measurable_on f s) /\ (real_measurable_on g s)) -> real_measurable_on (fun x : R => Rmin (f x) (g x)) s. +Axiom thm_REAL_MEASURABLE_ON_MUL : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_measurable_on f s) /\ (real_measurable_on g s)) -> real_measurable_on (fun x : R => Rmult (f x) (g x)) s. +Axiom thm_REAL_MEASURABLE_ON_SPIKE_SET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, (real_negligible (@UNION R (@DIFF R s t) (@DIFF R t s))) -> (real_measurable_on f s) -> real_measurable_on f t. +Axiom thm_REAL_MEASURABLE_ON_RESTRICT : forall f : R -> R, forall s : R -> Prop, ((real_measurable_on f (@UNIV R)) /\ (real_lebesgue_measurable s)) -> real_measurable_on (fun x : R => @COND R (@IN R x s) (f x) (R_of_N (NUMERAL 0%N))) (@UNIV R). +Axiom thm_REAL_MEASURABLE_ON_LIMIT : forall f : N -> R -> R, forall g : R -> R, forall s : R -> Prop, forall k : R -> Prop, ((forall n : N, real_measurable_on (f n) s) /\ ((real_negligible k) /\ (forall x : R, (@IN R x (@DIFF R s k)) -> @longarrow N (fun n : N => f n x) (g x) sequentially))) -> real_measurable_on g s. +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_BOUNDED_MEASURABLE_PRODUCT : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_measurable_on f s) /\ ((real_bounded (@IMAGE R R f s)) /\ (absolutely_real_integrable_on g s))) -> absolutely_real_integrable_on (fun x : R => Rmult (f x) (g x)) s. +Axiom thm_REAL_COMPLEX_MEASURABLE_ON : forall f : R -> R, forall s : R -> Prop, (real_measurable_on f s) = (@measurable_on unit (tybit0 unit) (@o (cart R unit) R (cart R (tybit0 unit)) Cx (@o (cart R unit) R R f drop)) (@IMAGE R (cart R unit) lift s)). +Axiom thm_REAL_MEASURABLE_ON_INV : forall f : R -> R, ((real_measurable_on f (@UNIV R)) /\ (real_negligible (@GSPEC R (fun GEN_PVAR_8620 : R => exists x : R, @SETSPEC R GEN_PVAR_8620 ((f x) = (R_of_N (NUMERAL 0%N))) x)))) -> real_measurable_on (fun x : R => Rinv (f x)) (@UNIV R). +Axiom thm_REAL_MEASURABLE_ON_DIV : forall (s : R -> Prop), forall f : R -> R, forall g : R -> R, ((real_measurable_on f s) /\ ((real_measurable_on g (@UNIV R)) /\ (real_negligible (@GSPEC R (fun GEN_PVAR_8621 : R => exists x : R, @SETSPEC R GEN_PVAR_8621 ((g x) = (R_of_N (NUMERAL 0%N))) x))))) -> real_measurable_on (fun x : R => Rdiv (f x) (g x)) s. +Axiom thm_REAL_MEASURABLE_ON_RPOW : forall f : R -> R, forall r : R, forall s : R -> Prop, ((real_measurable_on f s) /\ (Rlt (R_of_N (NUMERAL 0%N)) r)) -> real_measurable_on (fun x : R => rpow (f x) r) s. +Axiom thm_MEASURABLE_ON_LIFT_RPOW : forall {N' : Type'}, forall f : (cart R N') -> R, forall s : (cart R N') -> Prop, forall y : R, ((@measurable_on N' unit (fun x : cart R N' => lift (f x)) s) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) -> @measurable_on N' unit (fun x : cart R N' => lift (rpow (f x) y)) s. +Axiom thm_REAL_MEASURABLE_IMP_REAL_LEBESGUE_MEASURABLE : forall s : R -> Prop, (real_measurable s) -> real_lebesgue_measurable s. +Axiom thm_REAL_LEBESGUE_MEASURABLE_EMPTY : real_lebesgue_measurable (@EMPTY R). +Axiom thm_REAL_LEBESGUE_MEASURABLE_UNIV : real_lebesgue_measurable (@UNIV R). +Axiom thm_REAL_LEBESGUE_MEASURABLE_COMPACT : forall s : R -> Prop, (real_compact s) -> real_lebesgue_measurable s. +Axiom thm_REAL_LEBESGUE_MEASURABLE_INTERVAL : (forall a : R, forall b : R, real_lebesgue_measurable (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall a : R, forall b : R, real_lebesgue_measurable (open_real_interval (@pair R R a b))). +Axiom thm_REAL_LEBESGUE_MEASURABLE_INTER : forall s : R -> Prop, forall t : R -> Prop, ((real_lebesgue_measurable s) /\ (real_lebesgue_measurable t)) -> real_lebesgue_measurable (@INTER R s t). +Axiom thm_REAL_LEBESGUE_MEASURABLE_UNION : forall s : R -> Prop, forall t : R -> Prop, ((real_lebesgue_measurable s) /\ (real_lebesgue_measurable t)) -> real_lebesgue_measurable (@UNION R s t). +Axiom thm_REAL_LEBESGUE_MEASURABLE_COMPL : forall s : R -> Prop, (real_lebesgue_measurable (@DIFF R (@UNIV R) s)) = (real_lebesgue_measurable s). +Axiom thm_REAL_LEBESGUE_MEASURABLE_DIFF : forall s : R -> Prop, forall t : R -> Prop, ((real_lebesgue_measurable s) /\ (real_lebesgue_measurable t)) -> real_lebesgue_measurable (@DIFF R s t). +Axiom thm_REAL_LEBESGUE_MEASURABLE_ON_SUBINTERVALS : forall s : R -> Prop, (real_lebesgue_measurable s) = (forall a : R, forall b : R, real_lebesgue_measurable (@INTER R s (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))). +Axiom thm_REAL_LEBESGUE_MEASURABLE_CLOSED : forall s : R -> Prop, (real_closed s) -> real_lebesgue_measurable s. +Axiom thm_REAL_LEBESGUE_MEASURABLE_OPEN : forall s : R -> Prop, (real_open s) -> real_lebesgue_measurable s. +Axiom thm_REAL_LEBESGUE_MEASURABLE_UNIONS : forall f : (R -> Prop) -> Prop, ((@FINITE (R -> Prop) f) /\ (forall s : R -> Prop, (@IN (R -> Prop) s f) -> real_lebesgue_measurable s)) -> real_lebesgue_measurable (@UNIONS R f). +Axiom thm_REAL_LEBESGUE_MEASURABLE_COUNTABLE_UNIONS_EXPLICIT : forall s : N -> R -> Prop, (forall n : N, real_lebesgue_measurable (s n)) -> real_lebesgue_measurable (@UNIONS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8622 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8622 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_REAL_LEBESGUE_MEASURABLE_COUNTABLE_UNIONS : forall f : (R -> Prop) -> Prop, ((@COUNTABLE (R -> Prop) f) /\ (forall s : R -> Prop, (@IN (R -> Prop) s f) -> real_lebesgue_measurable s)) -> real_lebesgue_measurable (@UNIONS R f). +Axiom thm_REAL_LEBESGUE_MEASURABLE_COUNTABLE_INTERS : forall f : (R -> Prop) -> Prop, ((@COUNTABLE (R -> Prop) f) /\ (forall s : R -> Prop, (@IN (R -> Prop) s f) -> real_lebesgue_measurable s)) -> real_lebesgue_measurable (@INTERS R f). +Axiom thm_REAL_LEBESGUE_MEASURABLE_COUNTABLE_INTERS_EXPLICIT : forall s : N -> R -> Prop, (forall n : N, real_lebesgue_measurable (s n)) -> real_lebesgue_measurable (@INTERS R (@GSPEC (R -> Prop) (fun GEN_PVAR_8623 : R -> Prop => exists n : N, @SETSPEC (R -> Prop) GEN_PVAR_8623 (@IN N n (@UNIV N)) (s n)))). +Axiom thm_REAL_LEBESGUE_MEASURABLE_INTERS : forall f : (R -> Prop) -> Prop, ((@FINITE (R -> Prop) f) /\ (forall s : R -> Prop, (@IN (R -> Prop) s f) -> real_lebesgue_measurable s)) -> real_lebesgue_measurable (@INTERS R f). +Axiom thm_REAL_LEBESGUE_MEASURABLE_IFF_MEASURABLE : forall s : R -> Prop, (real_bounded s) -> (real_lebesgue_measurable s) = (real_measurable s). +Axiom thm_REAL_MEASURABLE_ON_LEBESGUE_MEASURABLE_SUBSET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((@SUBSET R s t) /\ ((real_measurable_on f t) /\ (real_lebesgue_measurable s))) -> real_measurable_on f s. +Axiom thm_REAL_MEASURABLE_ON_MEASURABLE_SUBSET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((@SUBSET R s t) /\ ((real_measurable_on f t) /\ (real_measurable s))) -> real_measurable_on f s. +Axiom thm_REAL_CONTINUOUS_IMP_REAL_MEASURABLE_ON_CLOSED_SUBSET : forall f : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (real_closed s)) -> real_measurable_on f s. +Axiom thm_REAL_CONTINUOUS_AE_IMP_MEASURABLE_ON_LEBESGUE_MEASURABLE_SUBSET : forall f : R -> R, forall s : R -> Prop, forall m : R -> Prop, ((real_continuous_on f (@DIFF R s m)) /\ ((real_lebesgue_measurable s) /\ (real_negligible m))) -> real_measurable_on f s. +Axiom thm_REAL_MEASURABLE_ON_CASES : forall P : R -> Prop, forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_lebesgue_measurable (@GSPEC R (fun GEN_PVAR_8626 : R => exists x : R, @SETSPEC R GEN_PVAR_8626 (P x) x))) /\ ((real_measurable_on f s) /\ (real_measurable_on g s))) -> real_measurable_on (fun x : R => @COND R (P x) (f x) (g x)) s. +Axiom thm_REAL_MEASURABLE_ON_PREIMAGE_HALFSPACE_LT : forall f : R -> R, (real_measurable_on f (@UNIV R)) = (forall a : R, real_lebesgue_measurable (@GSPEC R (fun GEN_PVAR_8627 : R => exists x : R, @SETSPEC R GEN_PVAR_8627 (Rlt (f x) a) x))). +Axiom thm_REAL_MEASURABLE_ON_PREIMAGE_HALFSPACE_LE : forall f : R -> R, (real_measurable_on f (@UNIV R)) = (forall a : R, real_lebesgue_measurable (@GSPEC R (fun GEN_PVAR_8628 : R => exists x : R, @SETSPEC R GEN_PVAR_8628 (Rle (f x) a) x))). +Axiom thm_REAL_MEASURABLE_ON_PREIMAGE_HALFSPACE_GT : forall f : R -> R, (real_measurable_on f (@UNIV R)) = (forall a : R, real_lebesgue_measurable (@GSPEC R (fun GEN_PVAR_8629 : R => exists x : R, @SETSPEC R GEN_PVAR_8629 (Rgt (f x) a) x))). +Axiom thm_REAL_MEASURABLE_ON_PREIMAGE_HALFSPACE_GE : forall f : R -> R, (real_measurable_on f (@UNIV R)) = (forall a : R, real_lebesgue_measurable (@GSPEC R (fun GEN_PVAR_8630 : R => exists x : R, @SETSPEC R GEN_PVAR_8630 (Rge (f x) a) x))). +Axiom thm_REAL_MEASURABLE_ON_PREIMAGE_OPEN_INTERVAL : forall f : R -> R, (real_measurable_on f (@UNIV R)) = (forall a : R, forall b : R, real_lebesgue_measurable (@GSPEC R (fun GEN_PVAR_8631 : R => exists x : R, @SETSPEC R GEN_PVAR_8631 (@IN R (f x) (open_real_interval (@pair R R a b))) x))). +Axiom thm_REAL_MEASURABLE_ON_PREIMAGE_CLOSED_INTERVAL : forall f : R -> R, (real_measurable_on f (@UNIV R)) = (forall a : R, forall b : R, real_lebesgue_measurable (@GSPEC R (fun GEN_PVAR_8632 : R => exists x : R, @SETSPEC R GEN_PVAR_8632 (@IN R (f x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) x))). +Axiom thm_REAL_MEASURABLE_ON_PREIMAGE_OPEN : forall f : R -> R, (real_measurable_on f (@UNIV R)) = (forall t : R -> Prop, (real_open t) -> real_lebesgue_measurable (@GSPEC R (fun GEN_PVAR_8633 : R => exists x : R, @SETSPEC R GEN_PVAR_8633 (@IN R (f x) t) x))). +Axiom thm_REAL_MEASURABLE_ON_PREIMAGE_CLOSED : forall f : R -> R, (real_measurable_on f (@UNIV R)) = (forall t : R -> Prop, (real_closed t) -> real_lebesgue_measurable (@GSPEC R (fun GEN_PVAR_8634 : R => exists x : R, @SETSPEC R GEN_PVAR_8634 (@IN R (f x) t) x))). +Axiom thm_REAL_MEASURABLE_ON_SIMPLE_FUNCTION_LIMIT : forall f : R -> R, (real_measurable_on f (@UNIV R)) = (exists g : N -> R -> R, (forall n : N, real_measurable_on (g n) (@UNIV R)) /\ ((forall n : N, @FINITE R (@IMAGE R R (g n) (@UNIV R))) /\ (forall x : R, @longarrow N (fun n : N => g n x) (f x) sequentially))). +Axiom thm_REAL_LEBESGUE_MEASURABLE_PREIMAGE_OPEN : forall f : R -> R, forall t : R -> Prop, ((real_measurable_on f (@UNIV R)) /\ (real_open t)) -> real_lebesgue_measurable (@GSPEC R (fun GEN_PVAR_8635 : R => exists x : R, @SETSPEC R GEN_PVAR_8635 (@IN R (f x) t) x)). +Axiom thm_REAL_LEBESGUE_MEASURABLE_PREIMAGE_CLOSED : forall f : R -> R, forall t : R -> Prop, ((real_measurable_on f (@UNIV R)) /\ (real_closed t)) -> real_lebesgue_measurable (@GSPEC R (fun GEN_PVAR_8636 : R => exists x : R, @SETSPEC R GEN_PVAR_8636 (@IN R (f x) t) x)). +Axiom thm_REAL_CONTINUOUS_MEASURE_IN_HALFSPACE_LE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : R, forall i : N, ((@measurable N' s) /\ ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N'))))) -> @real_continuous R (fun a' : R => @measure N' (@INTER (cart R N') s (@GSPEC (cart R N') (fun GEN_PVAR_8641 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_8641 (Rle (@dollar R N' x i) a') x)))) (atreal a). +Axiom thm_REAL_SECOND_MEAN_VALUE_THEOREM_FULL : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, ((~ ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R))) /\ ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (g x) (g y)))) -> exists c : R, (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (has_real_integral (fun x : R => Rmult (g x) (f x)) (Rplus (Rmult (g a) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R)))) f)) (Rmult (g b) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))) f))) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_SECOND_MEAN_VALUE_THEOREM : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, ((~ ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R))) /\ ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (g x) (g y)))) -> exists c : R, (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (fun x : R => Rmult (g x) (f x))) = (Rplus (Rmult (g a) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R)))) f)) (Rmult (g b) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))) f)))). +Axiom thm_REAL_SECOND_MEAN_VALUE_THEOREM_GEN_FULL : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, forall u : R, forall v : R, ((~ ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R))) /\ ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((forall x : R, (@IN R x (open_real_interval (@pair R R a b))) -> (Rle u (g x)) /\ (Rle (g x) v)) /\ (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (g x) (g y))))) -> exists c : R, (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (has_real_integral (fun x : R => Rmult (g x) (f x)) (Rplus (Rmult u (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R)))) f)) (Rmult v (real_integral (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))) f))) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_SECOND_MEAN_VALUE_THEOREM_GEN : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, forall u : R, forall v : R, ((~ ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R))) /\ ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((forall x : R, (@IN R x (open_real_interval (@pair R R a b))) -> (Rle u (g x)) /\ (Rle (g x) v)) /\ (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (g x) (g y))))) -> exists c : R, (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (fun x : R => Rmult (g x) (f x))) = (Rplus (Rmult u (real_integral (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R)))) f)) (Rmult v (real_integral (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))) f)))). +Axiom thm_REAL_SECOND_MEAN_VALUE_THEOREM_BONNET_FULL : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, ((~ ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R))) /\ ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> Rle (R_of_N (NUMERAL 0%N)) (g x)) /\ (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (g x) (g y))))) -> exists c : R, (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (has_real_integral (fun x : R => Rmult (g x) (f x)) (Rmult (g b) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))) f)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_REAL_SECOND_MEAN_VALUE_THEOREM_BONNET : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, ((~ ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R))) /\ ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((forall x : R, (@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> Rle (R_of_N (NUMERAL 0%N)) (g x)) /\ (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (g x) (g y))))) -> exists c : R, (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((real_integral (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) (fun x : R => Rmult (g x) (f x))) = (Rmult (g b) (real_integral (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))) f))). +Axiom thm_REAL_INTEGRABLE_INCREASING_PRODUCT : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (g x) (g y))) -> real_integrable_on (fun x : R => Rmult (g x) (f x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRABLE_INCREASING_PRODUCT_UNIV : forall f : R -> R, forall g : R -> R, forall B : R, ((real_integrable_on f (@UNIV R)) /\ ((forall x : R, forall y : R, (Rle x y) -> Rle (g x) (g y)) /\ (forall x : R, Rle (Rabs (g x)) B))) -> real_integrable_on (fun x : R => Rmult (g x) (f x)) (@UNIV R). +Axiom thm_REAL_INTEGRABLE_INCREASING : forall f : R -> R, forall a : R, forall b : R, (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f x) (f y)) -> real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRABLE_DECREASING_PRODUCT : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (g y) (g x))) -> real_integrable_on (fun x : R => Rmult (g x) (f x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_INTEGRABLE_DECREASING_PRODUCT_UNIV : forall f : R -> R, forall g : R -> R, forall B : R, ((real_integrable_on f (@UNIV R)) /\ ((forall x : R, forall y : R, (Rle x y) -> Rle (g y) (g x)) /\ (forall x : R, Rle (Rabs (g x)) B))) -> real_integrable_on (fun x : R => Rmult (g x) (f x)) (@UNIV R). +Axiom thm_REAL_INTEGRABLE_DECREASING : forall f : R -> R, forall a : R, forall b : R, (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f y) (f x)) -> real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_MEASURABLE_ON_INCREASING_UNIV : forall f : R -> R, (forall x : R, forall y : R, (Rle x y) -> Rle (f x) (f y)) -> real_measurable_on f (@UNIV R). +Axiom thm_REAL_MEASURABLE_ON_INCREASING : forall f : R -> R, forall a : R, forall b : R, (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f x) (f y)) -> real_measurable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_MEASURABLE_ON_DECREASING_UNIV : forall f : R -> R, (forall x : R, forall y : R, (Rle x y) -> Rle (f y) (f x)) -> real_measurable_on f (@UNIV R). +Axiom thm_REAL_MEASURABLE_ON_DECREASING : forall f : R -> R, forall a : R, forall b : R, (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f y) (f x)) -> real_measurable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_INCREASING_PRODUCT : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, ((forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f x) (f y)) /\ (absolutely_real_integrable_on g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> absolutely_real_integrable_on (fun x : R => Rmult (f x) (g x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_INCREASING : forall f : R -> R, forall a : R, forall b : R, (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f x) (f y)) -> absolutely_real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_DECREASING_PRODUCT : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, ((forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f y) (f x)) /\ (absolutely_real_integrable_on g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> absolutely_real_integrable_on (fun x : R => Rmult (f x) (g x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_ABSOLUTELY_REAL_INTEGRABLE_DECREASING : forall f : R -> R, forall a : R, forall b : R, (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f y) (f x)) -> absolutely_real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_has_bounded_real_variation_on : forall f : R -> R, forall s : R -> Prop, (has_bounded_real_variation_on f s) = (@has_bounded_variation_on unit (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop)) (@IMAGE R (cart R unit) lift s)). +Axiom thm_real_variation : forall s : R -> Prop, forall f : R -> R, (real_variation s f) = (@vector_variation unit (@IMAGE R (cart R unit) lift s) (@o (cart R unit) R (cart R unit) lift (@o (cart R unit) R R f drop))). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_EQ : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((forall x : R, (@IN R x s) -> (f x) = (g x)) /\ (has_bounded_real_variation_on f s)) -> has_bounded_real_variation_on g s. +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_SUBSET : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((has_bounded_real_variation_on f s) /\ (@SUBSET R t s)) -> has_bounded_real_variation_on f t. +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_LMUL : forall f : R -> R, forall c : R, forall s : R -> Prop, (has_bounded_real_variation_on f s) -> has_bounded_real_variation_on (fun x : R => Rmult c (f x)) s. +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_RMUL : forall f : R -> R, forall c : R, forall s : R -> Prop, (has_bounded_real_variation_on f s) -> has_bounded_real_variation_on (fun x : R => Rmult (f x) c) s. +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_NEG : forall f : R -> R, forall s : R -> Prop, (has_bounded_real_variation_on f s) -> has_bounded_real_variation_on (fun x : R => Ropp (f x)) s. +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_ADD : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((has_bounded_real_variation_on f s) /\ (has_bounded_real_variation_on g s)) -> has_bounded_real_variation_on (fun x : R => Rplus (f x) (g x)) s. +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_SUB : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((has_bounded_real_variation_on f s) /\ (has_bounded_real_variation_on g s)) -> has_bounded_real_variation_on (fun x : R => Rminus (f x) (g x)) s. +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_NULL : forall f : R -> R, forall a : R, forall b : R, (Rle b a) -> has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_EMPTY : forall f : R -> R, has_bounded_real_variation_on f (@EMPTY R). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_ABS : forall f : R -> R, forall s : R -> Prop, (has_bounded_real_variation_on f s) -> has_bounded_real_variation_on (fun x : R => Rabs (f x)) s. +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_MAX : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((has_bounded_real_variation_on f s) /\ (has_bounded_real_variation_on g s)) -> has_bounded_real_variation_on (fun x : R => Rmax (f x) (g x)) s. +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_MIN : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((has_bounded_real_variation_on f s) /\ (has_bounded_real_variation_on g s)) -> has_bounded_real_variation_on (fun x : R => Rmin (f x) (g x)) s. +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_IMP_BOUNDED_ON_INTERVAL : forall f : R -> R, forall a : R, forall b : R, (has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> real_bounded (@IMAGE R R f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_MUL : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((has_bounded_real_variation_on f s) /\ ((has_bounded_real_variation_on g s) /\ (is_realinterval s))) -> has_bounded_real_variation_on (fun x : R => Rmult (f x) (g x)) s. +Axiom thm_REAL_VARIATION_POS_LE : forall f : R -> R, forall s : R -> Prop, (has_bounded_real_variation_on f s) -> Rle (R_of_N (NUMERAL 0%N)) (real_variation s f). +Axiom thm_REAL_VARIATION_GE_ABS_FUNCTION : forall f : R -> R, forall s : R -> Prop, forall a : R, forall b : R, ((has_bounded_real_variation_on f s) /\ (@SUBSET R (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) s)) -> Rle (Rabs (Rminus (f b) (f a))) (real_variation s f). +Axiom thm_REAL_VARIATION_GE_FUNCTION : forall f : R -> R, forall s : R -> Prop, forall a : R, forall b : R, ((has_bounded_real_variation_on f s) /\ (@SUBSET R (closed_real_segment (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) s)) -> Rle (Rminus (f b) (f a)) (real_variation s f). +Axiom thm_REAL_VARIATION_MONOTONE : forall f : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((has_bounded_real_variation_on f s) /\ (@SUBSET R t s)) -> Rle (real_variation t f) (real_variation s f). +Axiom thm_REAL_VARIATION_NEG : forall f : R -> R, forall s : R -> Prop, (real_variation s (fun x : R => Ropp (f x))) = (real_variation s f). +Axiom thm_REAL_VARIATION_TRIANGLE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((has_bounded_real_variation_on f s) /\ (has_bounded_real_variation_on g s)) -> Rle (real_variation s (fun x : R => Rplus (f x) (g x))) (Rplus (real_variation s f) (real_variation s g)). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_ON_COMBINE : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((Rle a c) /\ (Rle c b)) -> (has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = ((has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R))))) /\ (has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))))). +Axiom thm_REAL_VARIATION_COMBINE : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((Rle a c) /\ ((Rle c b) /\ (has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) -> (Rplus (real_variation (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R)))) f) (real_variation (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))) f)) = (real_variation (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) f). +Axiom thm_REAL_VARIATION_MINUS_FUNCTION_MONOTONE : forall f : R -> R, forall a : R, forall b : R, forall c : R, forall d : R, ((has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@SUBSET R (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R)))) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (~ ((closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R)))) = (@EMPTY R))))) -> Rle (Rminus (real_variation (closed_real_interval (@cons (prod R R) (@pair R R c d) (@nil (prod R R)))) f) (Rminus (f d) (f c))) (Rminus (real_variation (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) f) (Rminus (f b) (f a))). +Axiom thm_INCREASING_BOUNDED_REAL_VARIATION : forall f : R -> R, forall a : R, forall b : R, (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f x) (f y)) -> has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_INCREASING_REAL_VARIATION : forall f : R -> R, forall a : R, forall b : R, ((~ ((closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) = (@EMPTY R))) /\ (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f x) (f y))) -> (real_variation (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))) f) = (Rminus (f b) (f a)). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_AFFINITY2_EQ : forall m : R, forall c : R, forall f : R -> R, forall s : R -> Prop, (has_bounded_real_variation_on (fun x : R => f (Rplus (Rmult m x) c)) (@IMAGE R R (fun x : R => Rplus (Rmult (Rinv m) x) (Ropp (Rmult (Rinv m) c))) s)) = ((m = (R_of_N (NUMERAL 0%N))) \/ (has_bounded_real_variation_on f s)). +Axiom thm_REAL_VARIATION_AFFINITY2 : forall m : R, forall c : R, forall f : R -> R, forall s : R -> Prop, (real_variation (@IMAGE R R (fun x : R => Rplus (Rmult (Rinv m) x) (Ropp (Rmult (Rinv m) c))) s) (fun x : R => f (Rplus (Rmult m x) c))) = (@COND R (m = (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL 0%N)) (real_variation s f)). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_AFFINITY_EQ : forall m : R, forall c : R, forall f : R -> R, forall s : R -> Prop, (has_bounded_real_variation_on (fun x : R => f (Rplus (Rmult m x) c)) s) = ((m = (R_of_N (NUMERAL 0%N))) \/ (has_bounded_real_variation_on f (@IMAGE R R (fun x : R => Rplus (Rmult m x) c) s))). +Axiom thm_REAL_VARIATION_AFFINITY : forall m : R, forall c : R, forall f : R -> R, forall s : R -> Prop, (real_variation s (fun x : R => f (Rplus (Rmult m x) c))) = (@COND R (m = (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL 0%N)) (real_variation (@IMAGE R R (fun x : R => Rplus (Rmult m x) c) s) f)). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_TRANSLATION2_EQ : forall a : R, forall f : R -> R, forall s : R -> Prop, (has_bounded_real_variation_on (fun x : R => f (Rplus a x)) (@IMAGE R R (fun x : R => Rplus (Ropp a) x) s)) = (has_bounded_real_variation_on f s). +Axiom thm_REAL_VARIATION_TRANSLATION2 : forall a : R, forall f : R -> R, forall s : R -> Prop, (real_variation (@IMAGE R R (fun x : R => Rplus (Ropp a) x) s) (fun x : R => f (Rplus a x))) = (real_variation s f). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_TRANSLATION_EQ : forall a : R, forall f : R -> R, forall s : R -> Prop, (has_bounded_real_variation_on (fun x : R => f (Rplus a x)) s) = (has_bounded_real_variation_on f (@IMAGE R R (fun x : R => Rplus a x) s)). +Axiom thm_REAL_VARIATION_TRANSLATION : forall a : R, forall f : R -> R, forall s : R -> Prop, (real_variation s (fun x : R => f (Rplus a x))) = (real_variation (@IMAGE R R (fun x : R => Rplus a x) s) f). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_TRANSLATION_EQ_INTERVAL : forall a : R, forall f : R -> R, forall u : R, forall v : R, (has_bounded_real_variation_on (fun x : R => f (Rplus a x)) (closed_real_interval (@cons (prod R R) (@pair R R u v) (@nil (prod R R))))) = (has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R (Rplus a u) (Rplus a v)) (@nil (prod R R))))). +Axiom thm_REAL_VARIATION_TRANSLATION_INTERVAL : forall a : R, forall f : R -> R, forall u : R, forall v : R, (real_variation (closed_real_interval (@cons (prod R R) (@pair R R u v) (@nil (prod R R)))) (fun x : R => f (Rplus a x))) = (real_variation (closed_real_interval (@cons (prod R R) (@pair R R (Rplus a u) (Rplus a v)) (@nil (prod R R)))) f). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_TRANSLATION : forall f : R -> R, forall s : R -> Prop, forall a : R, (has_bounded_real_variation_on f s) -> has_bounded_real_variation_on (fun x : R => f (Rplus a x)) (@IMAGE R R (fun x : R => Rplus (Ropp a) x) s). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_REFLECT2_EQ : forall f : R -> R, forall s : R -> Prop, (has_bounded_real_variation_on (fun x : R => f (Ropp x)) (@IMAGE R R Ropp s)) = (has_bounded_real_variation_on f s). +Axiom thm_REAL_VARIATION_REFLECT2 : forall f : R -> R, forall s : R -> Prop, (real_variation (@IMAGE R R Ropp s) (fun x : R => f (Ropp x))) = (real_variation s f). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_REFLECT_EQ : forall f : R -> R, forall s : R -> Prop, (has_bounded_real_variation_on (fun x : R => f (Ropp x)) s) = (has_bounded_real_variation_on f (@IMAGE R R Ropp s)). +Axiom thm_REAL_VARIATION_REFLECT : forall f : R -> R, forall s : R -> Prop, (real_variation s (fun x : R => f (Ropp x))) = (real_variation (@IMAGE R R Ropp s) f). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_REFLECT_EQ_INTERVAL : forall f : R -> R, forall u : R, forall v : R, (has_bounded_real_variation_on (fun x : R => f (Ropp x)) (closed_real_interval (@cons (prod R R) (@pair R R u v) (@nil (prod R R))))) = (has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R (Ropp v) (Ropp u)) (@nil (prod R R))))). +Axiom thm_REAL_VARIATION_REFLECT_INTERVAL : forall f : R -> R, forall u : R, forall v : R, (real_variation (closed_real_interval (@cons (prod R R) (@pair R R u v) (@nil (prod R R)))) (fun x : R => f (Ropp x))) = (real_variation (closed_real_interval (@cons (prod R R) (@pair R R (Ropp v) (Ropp u)) (@nil (prod R R)))) f). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_DARBOUX : forall f : R -> R, forall a : R, forall b : R, (has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (exists g : R -> R, exists h : R -> R, (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (g x) (g y)) /\ ((forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (h x) (h y)) /\ (forall x : R, (f x) = (Rminus (g x) (h x))))). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_DARBOUX_STRICT : forall f : R -> R, forall a : R, forall b : R, (has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) = (exists g : R -> R, exists h : R -> R, (forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rlt x y))) -> Rlt (g x) (g y)) /\ ((forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rlt x y))) -> Rlt (h x) (h y)) /\ (forall x : R, (f x) = (Rminus (g x) (h x))))). +Axiom thm_INCREASING_LEFT_LIMIT : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f x) (f y)) /\ (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> exists l : R, @longarrow R f l (@within R (atreal c) (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R))))). +Axiom thm_DECREASING_LEFT_LIMIT : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f y) (f x)) /\ (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> exists l : R, @longarrow R f l (@within R (atreal c) (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R))))). +Axiom thm_INCREASING_RIGHT_LIMIT : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f x) (f y)) /\ (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> exists l : R, @longarrow R f l (@within R (atreal c) (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R))))). +Axiom thm_DECREASING_RIGHT_LIMIT : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (f y) (f x)) /\ (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> exists l : R, @longarrow R f l (@within R (atreal c) (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R))))). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_LEFT_LIMIT : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> exists l : R, @longarrow R f l (@within R (atreal c) (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R))))). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_RIGHT_LIMIT : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> exists l : R, @longarrow R f l (@within R (atreal c) (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R))))). +Axiom thm_REAL_VARIATION_CONTINUOUS_LEFT : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> (@real_continuous R (fun x : R => real_variation (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R)))) f) (@within R (atreal c) (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R)))))) = (@real_continuous R f (@within R (atreal c) (closed_real_interval (@cons (prod R R) (@pair R R a c) (@nil (prod R R)))))). +Axiom thm_REAL_VARIATION_CONTINUOUS_RIGHT : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> (@real_continuous R (fun x : R => real_variation (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R)))) f) (@within R (atreal c) (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))))) = (@real_continuous R f (@within R (atreal c) (closed_real_interval (@cons (prod R R) (@pair R R c b) (@nil (prod R R)))))). +Axiom thm_REAL_VARIATION_CONTINUOUS : forall f : R -> R, forall a : R, forall b : R, forall c : R, ((has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (@IN R c (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> (@real_continuous R (fun x : R => real_variation (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R)))) f) (@within R (atreal c) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) = (@real_continuous R f (@within R (atreal c) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_DARBOUX_STRONG : forall f : R -> R, forall a : R, forall b : R, (has_bounded_real_variation_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) -> exists g : R -> R, exists h : R -> R, (forall x : R, (f x) = (Rminus (g x) (h x))) /\ ((forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (g x) (g y)) /\ ((forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rle x y))) -> Rle (h x) (h y)) /\ ((forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rlt x y))) -> Rlt (g x) (g y)) /\ ((forall x : R, forall y : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ ((@IN R y (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (Rlt x y))) -> Rlt (h x) (h y)) /\ ((forall x : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (@real_continuous R f (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R))))))) -> (@real_continuous R g (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R)))))) /\ (@real_continuous R h (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a x) (@nil (prod R R))))))) /\ ((forall x : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (@real_continuous R f (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R x b) (@nil (prod R R))))))) -> (@real_continuous R g (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R x b) (@nil (prod R R)))))) /\ (@real_continuous R h (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R x b) (@nil (prod R R))))))) /\ (forall x : R, ((@IN R x (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (@real_continuous R f (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))) -> (@real_continuous R g (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) /\ (@real_continuous R h (@within R (atreal x) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))))))))))). +Axiom thm_HAS_BOUNDED_REAL_VARIATION_COUNTABLE_DISCONTINUITIES : forall f : R -> R, forall s : R -> Prop, ((has_bounded_real_variation_on f s) /\ (is_realinterval s)) -> @COUNTABLE R (@GSPEC R (fun GEN_PVAR_8646 : R => exists x : R, @SETSPEC R GEN_PVAR_8646 ((@IN R x s) /\ (~ (@real_continuous R f (atreal x)))) x)). +Axiom thm_REAL_INTEGRABLE_REAL_BOUNDED_VARIATION_PRODUCT : forall f : R -> R, forall g : R -> R, forall a : R, forall b : R, ((real_integrable_on f (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R))))) /\ (has_bounded_real_variation_on g (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))))) -> real_integrable_on (fun x : R => Rmult (g x) (f x)) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_REAL_LEBESGUE_DIFFERENTIATION_THEOREM : forall f : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (has_bounded_real_variation_on f s)) -> real_negligible (@GSPEC R (fun GEN_PVAR_8647 : R => exists x : R, @SETSPEC R GEN_PVAR_8647 ((@IN R x s) /\ (~ (real_differentiable f (atreal x)))) x)). +Axiom thm_REAL_LEBESGUE_DIFFERENTIATION_THEOREM_ALT : forall f : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (has_bounded_real_variation_on f s)) -> exists t : R -> Prop, (@SUBSET R t s) /\ ((real_negligible t) /\ (forall x : R, (@IN R x (@DIFF R s t)) -> real_differentiable f (atreal x))). +Axiom thm_REAL_LEBESGUE_DIFFERENTIATION_THEOREM_INCREASING : forall f : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rle x y))) -> Rle (f x) (f y))) -> real_negligible (@GSPEC R (fun GEN_PVAR_8649 : R => exists x : R, @SETSPEC R GEN_PVAR_8649 ((@IN R x s) /\ (~ (real_differentiable f (atreal x)))) x)). +Axiom thm_REAL_LEBESGUE_DIFFERENTIATION_THEOREM_DECREASING : forall f : R -> R, forall s : R -> Prop, ((is_realinterval s) /\ (forall x : R, forall y : R, ((@IN R x s) /\ ((@IN R y s) /\ (Rle x y))) -> Rle (f y) (f x))) -> real_negligible (@GSPEC R (fun GEN_PVAR_8650 : R => exists x : R, @SETSPEC R GEN_PVAR_8650 ((@IN R x s) /\ (~ (real_differentiable f (atreal x)))) x)). +Axiom thm_LEBESGUE_DENSITY_THEOREM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@lebesgue_measurable N' s) -> exists k : (cart R N') -> Prop, (@negligible N' k) /\ (forall x : cart R N', (~ (@IN (cart R N') x k)) -> @longarrow R (fun e : R => Rdiv (@measure N' (@INTER (cart R N') s (@cball N' (@pair (cart R N') R x e)))) (@measure N' (@cball N' (@pair (cart R N') R x e)))) (@COND R (@IN (cart R N') x s) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))) (@within R (atreal (R_of_N (NUMERAL 0%N))) (@GSPEC R (fun GEN_PVAR_8651 : R => exists e : R, @SETSPEC R GEN_PVAR_8651 (Rlt (R_of_N (NUMERAL 0%N)) e) e)))). +Axiom thm_INJECTIVE_EQ_1D_OPEN_MAP_UNIV : forall f : (cart R unit) -> cart R unit, forall s : (cart R unit) -> Prop, ((@continuous_on unit unit f s) /\ (@is_interval unit s)) -> (forall x : cart R unit, forall y : cart R unit, ((@IN (cart R unit) x s) /\ ((@IN (cart R unit) y s) /\ ((f x) = (f y)))) -> x = y) = (forall t : (cart R unit) -> Prop, ((@_open unit t) /\ (@SUBSET (cart R unit) t s)) -> @_open unit (@IMAGE (cart R unit) (cart R unit) f t)). +Axiom thm_NONSURJECTIVE_DIFFERENTIABLE_SPHEREMAP_LOWDIM : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ ((@subspace N' t) /\ ((N.lt (@dim N' s) (@dim N' t)) /\ ((@SUBSET (cart R N') s t) /\ (@differentiable_on N' N' f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)))))) -> ~ ((@IMAGE (cart R N') (cart R N') f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) = (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) t)). +Axiom thm_INESSENTIAL_SPHEREMAP_LOWDIM_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@convex M s) /\ ((@bounded M s) /\ ((@convex N' t) /\ ((@bounded N' t) /\ ((int_lt (@aff_dim M s) (@aff_dim N' t)) /\ ((@continuous_on M N' f (@relative_frontier M s)) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@relative_frontier M s)) (@relative_frontier N' t)))))))) -> exists c : cart R N', @homotopic_with (cart R N') (cart R M) (fun z : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) (@relative_frontier M s)) (@subtopology (cart R N') (@euclidean N') (@relative_frontier N' t))) f (fun x : cart R M => c). +Axiom thm_INESSENTIAL_SPHEREMAP_LOWDIM : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall r : R, forall b : cart R N', forall s : R, ((N.lt (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((@continuous_on M N' f (@sphere M (@pair (cart R M) R a r))) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@sphere M (@pair (cart R M) R a r))) (@sphere N' (@pair (cart R N') R b s))))) -> exists c : cart R N', @homotopic_with (cart R N') (cart R M) (fun z : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) (@sphere M (@pair (cart R M) R a r))) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R b s)))) f (fun x : cart R M => c). +Axiom thm_HOMOTOPY_EQUIVALENT_SPHERES_EQ : forall {M N' : Type'}, forall a : cart R M, forall b : cart R N', forall r : R, forall s : R, (@homotopy_equivalent M N' (@sphere M (@pair (cart R M) R a r)) (@sphere N' (@pair (cart R N') R b s))) = (((Rlt r (R_of_N (NUMERAL 0%N))) /\ (Rlt s (R_of_N (NUMERAL 0%N)))) \/ (((r = (R_of_N (NUMERAL 0%N))) /\ (s = (R_of_N (NUMERAL 0%N)))) \/ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((Rlt (R_of_N (NUMERAL 0%N)) s) /\ ((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))))))). +Axiom thm_HOMEOMORPHIC_SPHERES_EQ : forall {M N' : Type'}, forall a : cart R M, forall b : cart R N', forall r : R, forall s : R, (@homeomorphic N' M (@sphere M (@pair (cart R M) R a r)) (@sphere N' (@pair (cart R N') R b s))) = (((Rlt r (R_of_N (NUMERAL 0%N))) /\ (Rlt s (R_of_N (NUMERAL 0%N)))) \/ (((r = (R_of_N (NUMERAL 0%N))) /\ (s = (R_of_N (NUMERAL 0%N)))) \/ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((Rlt (R_of_N (NUMERAL 0%N)) s) /\ ((@dimindex M (@UNIV M)) = (@dimindex N' (@UNIV N'))))))). +Axiom thm_SIMPLY_CONNECTED_SPHERE_GEN : forall {_1774375 : Type'}, forall s : (cart R _1774375) -> Prop, ((@convex _1774375 s) /\ ((@bounded _1774375 s) /\ (int_le (Z_of_N (NUMERAL (BIT1 (BIT1 0%N)))) (@aff_dim _1774375 s)))) -> @simply_connected _1774375 (@relative_frontier _1774375 s). +Axiom thm_SIMPLY_CONNECTED_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (N.le (NUMERAL (BIT1 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @simply_connected N' (@sphere N' (@pair (cart R N') R a r)). +Axiom thm_SIMPLY_CONNECTED_PUNCTURED_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@convex N' s) /\ (int_le (Z_of_N (NUMERAL (BIT1 (BIT1 0%N)))) (@aff_dim N' s))) -> @simply_connected N' (@DELETE (cart R N') s a). +Axiom thm_SIMPLY_CONNECTED_PUNCTURED_UNIVERSE : forall {N' : Type'}, forall a : cart R N', (N.le (NUMERAL (BIT1 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) -> @simply_connected N' (@DELETE (cart R N') (@UNIV (cart R N')) a). +Axiom thm_SIMPLY_CONNECTED_CONVEX_DIFF_FINITE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@convex N' s) /\ ((int_le (Z_of_N (NUMERAL (BIT1 (BIT1 0%N)))) (@aff_dim N' s)) /\ (@FINITE (cart R N') t))) -> @simply_connected N' (@DIFF (cart R N') s t). +Axiom thm_ODD_MAP_HOMOTOPY_LEMMA : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@subspace N' s) /\ ((@subspace N' t) /\ (((N.add (@dim N' s) (NUMERAL (BIT1 0%N))) = (@dim N' t)) /\ ((@SUBSET (cart R N') s t) /\ ((@continuous_on N' N' f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) t)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) t)) (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) t)) /\ (forall x : cart R N', (@IN (cart R N') x (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) t)) -> (f (@vector_neg N' x)) = (@vector_neg N' (f x))))))))) -> exists g : (cart R N') -> cart R N', (@continuous_on N' N' g (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) t)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') g (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) t)) (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) t)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') g (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ ((forall x : cart R N', (@IN (cart R N') x (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) t)) -> (g (@vector_neg N' x)) = (@vector_neg N' (g x))) /\ (@homotopic_with (cart R N') (cart R N') (fun z : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) t)) (@subtopology (cart R N') (@euclidean N') (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) t))) f g)))). +Axiom thm_BORSUK_ODD_MAPPING_GEN : forall {N' : Type'}, forall n : N, forall f : (cart R N') -> cart R N', ((@continuous_on N' N' f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) /\ (forall x : cart R N', (@IN (cart R N') x (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@span N' (@IMAGE N (cart R N') (@basis N') (dotdot (NUMERAL (BIT1 0%N)) n))))) -> (f (@vector_neg N' x)) = (@vector_neg N' (f x))))) -> @eq2 Z (@brouwer_degree1 N' n f) (Z_of_N (NUMERAL (BIT1 0%N))) (int_mod (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_BORSUK_ODD_MAPPING : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@continuous_on N' N' f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (forall x : cart R N', (@IN (cart R N') x (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (f (@vector_neg N' x)) = (@vector_neg N' (f x))))) -> @eq2 Z (@brouwer_degree N' f) (Z_of_N (NUMERAL (BIT1 0%N))) (int_mod (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_BORSUK_ULAM_NOT_NULLHOMOTOPIC_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, forall a : cart R N', ((@subspace N' s) /\ ((N.le (NUMERAL (BIT1 0%N)) (@dim N' s)) /\ ((@continuous_on N' N' f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ (forall x : cart R N', (@IN (cart R N') x (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) -> (f (@vector_neg N' x)) = (@vector_neg N' (f x))))))) -> ~ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) (@subtopology (cart R N') (@euclidean N') (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s))) f (fun x : cart R N' => a)). +Axiom thm_BORSUK_ULAM_NOT_NULLHOMOTOPIC : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall a : cart R N', ((@continuous_on N' N' f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (forall x : cart R N', (@IN (cart R N') x (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (f (@vector_neg N' x)) = (@vector_neg N' (f x))))) -> ~ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) f (fun x : cart R N' => a)). +Axiom thm_BORSUK_ULAM_SURJECTIVE_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ((@subspace N' s) /\ ((@continuous_on N' N' f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ (forall x : cart R N', (@IN (cart R N') x (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) -> (f (@vector_neg N' x)) = (@vector_neg N' (f x)))))) -> (@IMAGE (cart R N') (cart R N') f (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) = (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s). +Axiom thm_BORSUK_ULAM_SURJECTIVE : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ((@continuous_on N' N' f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (forall x : cart R N', (@IN (cart R N') x (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (f (@vector_neg N' x)) = (@vector_neg N' (f x))))) -> (@IMAGE (cart R N') (cart R N') f (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) = (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_BORSUK_ULAM_ZERO_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@subspace M s) /\ ((N.le (N.add (@dim N' t) (NUMERAL (BIT1 0%N))) (@dim M s)) /\ ((@continuous_on M N' f (@INTER (cart R M) (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@INTER (cart R M) (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) t) /\ (forall x : cart R M, (@IN (cart R M) x (@INTER (cart R M) (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) -> (f (@vector_neg M x)) = (@vector_neg N' (f x))))))) -> exists x : cart R M, (@IN (cart R M) x (@INTER (cart R M) (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ ((f x) = (@vec N' (NUMERAL 0%N))). +Axiom thm_BORSUK_ULAM_ZERO : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, ((N.lt (@dim N' s) (@dimindex M (@UNIV M))) /\ ((@continuous_on M N' f (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) s) /\ (forall x : cart R M, (@IN (cart R M) x (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (f (@vector_neg M x)) = (@vector_neg N' (f x)))))) -> exists x : cart R M, (@IN (cart R M) x (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((f x) = (@vec N' (NUMERAL 0%N))). +Axiom thm_BORSUK_ULAM_ANTIPODAL_SUBSPACE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@subspace M s) /\ ((N.le (N.add (@dim N' t) (NUMERAL (BIT1 0%N))) (@dim M s)) /\ ((@continuous_on M N' f (@INTER (cart R M) (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@INTER (cart R M) (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) t)))) -> exists x : cart R M, (@IN (cart R M) x (@INTER (cart R M) (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ ((f (@vector_neg M x)) = (f x)). +Axiom thm_BORSUK_ULAM_ANTIPODAL_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@subspace M s) /\ ((int_le (int_max (Z_of_N (NUMERAL (BIT1 0%N))) (int_add (@aff_dim N' t) (Z_of_N (NUMERAL (BIT1 0%N))))) (Z_of_N (@dim M s))) /\ ((@continuous_on M N' f (@INTER (cart R M) (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@INTER (cart R M) (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) t)))) -> exists x : cart R M, (@IN (cart R M) x (@INTER (cart R M) (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ ((f (@vector_neg M x)) = (f x)). +Axiom thm_BORSUK_ULAM_ANTIPODAL : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R N') -> Prop, ((int_lt (@aff_dim N' s) (Z_of_N (@dimindex M (@UNIV M)))) /\ ((@continuous_on M N' f (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) s))) -> exists x : cart R M, (@IN (cart R M) x (@sphere M (@pair (cart R M) R (@vec M (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((f (@vector_neg M x)) = (f x)). +Axiom thm_BORSUK_ULAM_FRONTIER_MAP_GEN : forall {N' : Type'}, forall f : (cart R N') -> cart R N', forall s : (cart R N') -> Prop, ~ ((@subspace N' s) /\ ((N.le (NUMERAL (BIT1 0%N)) (@dim N' s)) /\ ((@continuous_on N' N' f (@INTER (cart R N') (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@INTER (cart R N') (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) /\ (forall x : cart R N', (@IN (cart R N') x (@INTER (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) s)) -> (f (@vector_neg N' x)) = (@vector_neg N' (f x))))))). +Axiom thm_BORSUK_ULAM_FRONTIER_MAP : forall {N' : Type'}, forall f : (cart R N') -> cart R N', ~ ((@continuous_on N' N' f (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f (@cball N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (forall x : cart R N', (@IN (cart R N') x (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (f (@vector_neg N' x)) = (@vector_neg N' (f x))))). +Axiom thm_LUSTERNIK_SCHNIRELMANN : forall {N' : Type'}, forall u : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) u) /\ ((N.le (@CARD ((cart R N') -> Prop) u) (@dimindex N' (@UNIV N'))) /\ ((forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c u) -> @closed N' c) /\ (@SUBSET (cart R N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))) (@UNIONS (cart R N') u))))) -> exists c : (cart R N') -> Prop, exists x : cart R N', (@IN ((cart R N') -> Prop) c u) /\ ((@IN (cart R N') x (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@IN (cart R N') x c) /\ (@IN (cart R N') (@vector_neg N' x) c))). +Axiom thm_HAM_SANDWICH_THEOREM : forall {N' : Type'}, forall u : ((cart R N') -> Prop) -> Prop, ((@FINITE ((cart R N') -> Prop) u) /\ ((N.le (@CARD ((cart R N') -> Prop) u) (@dimindex N' (@UNIV N'))) /\ (forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> @measurable N' s))) -> exists a : cart R N', exists b : R, forall s : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) s u) -> (@measure N' (@GSPEC (cart R N') (fun GEN_PVAR_8690 : cart R N' => exists x : cart R N', @SETSPEC (cart R N') GEN_PVAR_8690 ((@IN (cart R N') x s) /\ (Rle (@dot N' a x) b)) x))) = (Rdiv (@measure N' s) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_EXTEND_MAP_CELL_COMPLEX_TO_SPHERE_COFINITE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall m : ((cart R M) -> Prop) -> Prop, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@FINITE ((cart R M) -> Prop) m) /\ ((forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c m) -> (@polytope M c) /\ (int_le (@aff_dim M c) (@aff_dim N' t))) /\ ((forall c1 : (cart R M) -> Prop, forall c2 : (cart R M) -> Prop, ((@IN ((cart R M) -> Prop) c1 m) /\ (@IN ((cart R M) -> Prop) c2 m)) -> (@face_of M (@INTER (cart R M) c1 c2) c1) /\ (@face_of M (@INTER (cart R M) c1 c2) c2)) /\ ((@SUBSET (cart R M) s (@UNIONS (cart R M) m)) /\ ((@closed M s) /\ ((@convex N' t) /\ ((@bounded N' t) /\ ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@relative_frontier N' t)))))))))) -> exists k : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@FINITE (cart R M) k) /\ ((@DISJOINT (cart R M) k s) /\ ((@continuous_on M N' g (@DIFF (cart R M) (@UNIONS (cart R M) m) k)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@DIFF (cart R M) (@UNIONS (cart R M) m) k)) (@relative_frontier N' t)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))))). +Axiom thm_EXTEND_MAP_CELL_COMPLEX_TO_SPHERE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall m : ((cart R M) -> Prop) -> Prop, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@FINITE ((cart R M) -> Prop) m) /\ ((forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c m) -> (@polytope M c) /\ (int_lt (@aff_dim M c) (@aff_dim N' t))) /\ ((forall c1 : (cart R M) -> Prop, forall c2 : (cart R M) -> Prop, ((@IN ((cart R M) -> Prop) c1 m) /\ (@IN ((cart R M) -> Prop) c2 m)) -> (@face_of M (@INTER (cart R M) c1 c2) c1) /\ (@face_of M (@INTER (cart R M) c1 c2) c2)) /\ ((@SUBSET (cart R M) s (@UNIONS (cart R M) m)) /\ ((@closed M s) /\ ((@convex N' t) /\ ((@bounded N' t) /\ ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@relative_frontier N' t)))))))))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g (@UNIONS (cart R M) m)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@UNIONS (cart R M) m)) (@relative_frontier N' t)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))). +Axiom thm_EXTEND_MAP_AFFINE_TO_SPHERE_COFINITE_SIMPLE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R N') -> Prop, ((@compact M s) /\ ((@convex N' u) /\ ((@bounded N' u) /\ ((int_le (@aff_dim M t) (@aff_dim N' u)) /\ ((@SUBSET (cart R M) s t) /\ ((@continuous_on M N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@relative_frontier N' u)))))))) -> exists k : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@FINITE (cart R M) k) /\ ((@SUBSET (cart R M) k t) /\ ((@DISJOINT (cart R M) k s) /\ ((@continuous_on M N' g (@DIFF (cart R M) t k)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@DIFF (cart R M) t k)) (@relative_frontier N' u)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)))))). +Axiom thm_EXTEND_MAP_AFFINE_TO_SPHERE_COFINITE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R N') -> Prop, forall p : (cart R M) -> Prop, ((@compact M s) /\ ((@convex N' u) /\ ((@bounded N' u) /\ ((@affine M t) /\ ((int_le (@aff_dim M t) (@aff_dim N' u)) /\ ((@SUBSET (cart R M) s t) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@relative_frontier N' u)) /\ (forall c : (cart R M) -> Prop, ((@IN ((cart R M) -> Prop) c (@components M (@DIFF (cart R M) t s))) /\ (@bounded M c)) -> ~ ((@INTER (cart R M) c p) = (@EMPTY (cart R M)))))))))))) -> exists k : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@FINITE (cart R M) k) /\ ((@SUBSET (cart R M) k p) /\ ((@SUBSET (cart R M) k t) /\ ((@DISJOINT (cart R M) k s) /\ ((@continuous_on M N' g (@DIFF (cart R M) t k)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@DIFF (cart R M) t k)) (@relative_frontier N' u)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))))))). +Axiom thm_EXTEND_MAP_AFFINE_TO_SPHERE_COFINITE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall a : cart R N', forall r : R, forall p : (cart R M) -> Prop, ((@compact M s) /\ ((@affine M t) /\ ((int_le (@aff_dim M t) (Z_of_N (@dimindex N' (@UNIV N')))) /\ ((@SUBSET (cart R M) s t) /\ ((Rle (R_of_N (NUMERAL 0%N)) r) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@sphere N' (@pair (cart R N') R a r))) /\ (forall c : (cart R M) -> Prop, ((@IN ((cart R M) -> Prop) c (@components M (@DIFF (cart R M) t s))) /\ (@bounded M c)) -> ~ ((@INTER (cart R M) c p) = (@EMPTY (cart R M))))))))))) -> exists k : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@FINITE (cart R M) k) /\ ((@SUBSET (cart R M) k p) /\ ((@SUBSET (cart R M) k t) /\ ((@DISJOINT (cart R M) k s) /\ ((@continuous_on M N' g (@DIFF (cart R M) t k)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@DIFF (cart R M) t k)) (@sphere N' (@pair (cart R N') R a r))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))))))). +Axiom thm_EXTEND_MAP_UNIV_TO_SPHERE_COFINITE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R N', forall r : R, forall p : (cart R M) -> Prop, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((Rle (R_of_N (NUMERAL 0%N)) r) /\ ((@compact M s) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@sphere N' (@pair (cart R N') R a r))) /\ (forall c : (cart R M) -> Prop, ((@IN ((cart R M) -> Prop) c (@components M (@DIFF (cart R M) (@UNIV (cart R M)) s))) /\ (@bounded M c)) -> ~ ((@INTER (cart R M) c p) = (@EMPTY (cart R M))))))))) -> exists k : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@FINITE (cart R M) k) /\ ((@SUBSET (cart R M) k p) /\ ((@DISJOINT (cart R M) k s) /\ ((@continuous_on M N' g (@DIFF (cart R M) (@UNIV (cart R M)) k)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@DIFF (cart R M) (@UNIV (cart R M)) k)) (@sphere N' (@pair (cart R N') R a r))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x)))))). +Axiom thm_EXTEND_MAP_UNIV_TO_SPHERE_NO_BOUNDED_COMPONENT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R N', forall r : R, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((Rle (R_of_N (NUMERAL 0%N)) r) /\ ((@compact M s) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@sphere N' (@pair (cart R N') R a r))) /\ (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M (@DIFF (cart R M) (@UNIV (cart R M)) s))) -> ~ (@bounded M c))))))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g (@UNIV (cart R M))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@UNIV (cart R M))) (@sphere N' (@pair (cart R N') R a r))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))). +Axiom thm_EXTEND_MAP_SPHERE_TO_SPHERE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@closed M c) /\ ((@SUBSET (cart R M) c (@relative_frontier M s)) /\ ((@convex M s) /\ ((@bounded M s) /\ ((@convex N' t) /\ ((@bounded N' t) /\ ((int_le (@aff_dim M s) (@aff_dim N' t)) /\ ((@continuous_on M N' f c) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f c) (@relative_frontier N' t)))))))))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g (@relative_frontier M s)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@relative_frontier M s)) (@relative_frontier N' t)) /\ (forall x : cart R M, (@IN (cart R M) x c) -> (g x) = (f x))). +Axiom thm_EXTEND_MAP_SPHERE_TO_SPHERE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall c : (cart R M) -> Prop, forall a : cart R M, forall r : R, forall b : cart R N', forall s : R, ((N.le (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) /\ ((@closed M c) /\ ((@SUBSET (cart R M) c (@sphere M (@pair (cart R M) R a r))) /\ ((@continuous_on M N' f c) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f c) (@sphere N' (@pair (cart R N') R b s))) /\ (((Rle (R_of_N (NUMERAL 0%N)) r) /\ (c = (@EMPTY (cart R M)))) -> Rle (R_of_N (NUMERAL 0%N)) s)))))) -> exists g : (cart R M) -> cart R N', (@continuous_on M N' g (@sphere M (@pair (cart R M) R a r))) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@sphere M (@pair (cart R M) R a r))) (@sphere N' (@pair (cart R N') R b s))) /\ (forall x : cart R M, (@IN (cart R M) x c) -> (g x) = (f x))). +Axiom thm_EXTEND_MAP_SPHERE_TO_SPHERE_COFINITE_GEN : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R M) -> Prop, forall u : (cart R N') -> Prop, forall p : (cart R M) -> Prop, ((@convex M t) /\ ((@bounded M t) /\ ((@convex N' u) /\ ((@bounded N' u) /\ ((int_le (@aff_dim M t) (int_add (@aff_dim N' u) (Z_of_N (NUMERAL (BIT1 0%N))))) /\ ((@closed M s) /\ ((@SUBSET (cart R M) s (@relative_frontier M t)) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@relative_frontier N' u)) /\ (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M (@DIFF (cart R M) (@relative_frontier M t) s))) -> ~ ((@INTER (cart R M) c p) = (@EMPTY (cart R M))))))))))))) -> exists k : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@FINITE (cart R M) k) /\ ((@SUBSET (cart R M) k p) /\ ((@SUBSET (cart R M) k (@relative_frontier M t)) /\ ((@DISJOINT (cart R M) k s) /\ ((@continuous_on M N' g (@DIFF (cart R M) (@relative_frontier M t) k)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@DIFF (cart R M) (@relative_frontier M t) k)) (@relative_frontier N' u)) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))))))). +Axiom thm_EXTEND_MAP_SPHERE_TO_SPHERE_COFINITE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall a : cart R M, forall d : R, forall b : cart R N', forall e : R, forall p : (cart R M) -> Prop, ((N.le (@dimindex M (@UNIV M)) (N.add (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))) /\ ((((Rlt (R_of_N (NUMERAL 0%N)) d) /\ (s = (@EMPTY (cart R M)))) -> Rle (R_of_N (NUMERAL 0%N)) e) /\ ((@closed M s) /\ ((@SUBSET (cart R M) s (@sphere M (@pair (cart R M) R a d))) /\ ((@continuous_on M N' f s) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f s) (@sphere N' (@pair (cart R N') R b e))) /\ (forall c : (cart R M) -> Prop, (@IN ((cart R M) -> Prop) c (@components M (@DIFF (cart R M) (@sphere M (@pair (cart R M) R a d)) s))) -> ~ ((@INTER (cart R M) c p) = (@EMPTY (cart R M)))))))))) -> exists k : (cart R M) -> Prop, exists g : (cart R M) -> cart R N', (@FINITE (cart R M) k) /\ ((@SUBSET (cart R M) k p) /\ ((@SUBSET (cart R M) k (@sphere M (@pair (cart R M) R a d))) /\ ((@DISJOINT (cart R M) k s) /\ ((@continuous_on M N' g (@DIFF (cart R M) (@sphere M (@pair (cart R M) R a d)) k)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') g (@DIFF (cart R M) (@sphere M (@pair (cart R M) R a d)) k)) (@sphere N' (@pair (cart R N') R b e))) /\ (forall x : cart R M, (@IN (cart R M) x s) -> (g x) = (f x))))))). +Axiom thm_CONTINUOUS_ON_BORSUK_MAP : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (~ (@IN (cart R N') a s)) -> @continuous_on N' N' (fun x : cart R N' => @percent N' (Rinv (@vector_norm N' (@vector_sub N' x a))) (@vector_sub N' x a)) s. +Axiom thm_BORSUK_MAP_INTO_SPHERE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @percent N' (Rinv (@vector_norm N' (@vector_sub N' x a))) (@vector_sub N' x a)) s) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) = (~ (@IN (cart R N') a s)). +Axiom thm_BORSUK_MAPS_HOMOTOPIC_IN_PATH_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', (@path_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a b) -> @homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) (fun x : cart R N' => @percent N' (Rinv (@vector_norm N' (@vector_sub N' x a))) (@vector_sub N' x a)) (fun x : cart R N' => @percent N' (Rinv (@vector_norm N' (@vector_sub N' x b))) (@vector_sub N' x b)). +Axiom thm_NON_EXTENSIBLE_BORSUK_MAP : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall a : cart R N', ((@compact N' s) /\ ((@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ ((@bounded N' c) /\ (@IN (cart R N') a c)))) -> ~ (exists g : (cart R N') -> cart R N', (@continuous_on N' N' g (@UNION (cart R N') s c)) /\ ((@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') g (@UNION (cart R N') s c)) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (g x) = (@percent N' (Rinv (@vector_norm N' (@vector_sub N' x a))) (@vector_sub N' x a))))). +Axiom thm_BORSUK_MAP_ESSENTIAL_BOUNDED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@compact N' s) /\ (~ (@IN (cart R N') a s))) -> (@bounded N' (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a)) = (~ (exists c : cart R N', @homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) (fun x : cart R N' => @percent N' (Rinv (@vector_norm N' (@vector_sub N' x a))) (@vector_sub N' x a)) (fun x : cart R N' => c))). +Axiom thm_HOMOTOPIC_BORSUK_MAPS_IN_BOUNDED_COMPONENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@compact N' s) /\ ((~ (@IN (cart R N') a s)) /\ ((~ (@IN (cart R N') b s)) /\ ((@bounded N' (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a)) /\ (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) (fun x : cart R N' => @percent N' (Rinv (@vector_norm N' (@vector_sub N' x a))) (@vector_sub N' x a)) (fun x : cart R N' => @percent N' (Rinv (@vector_norm N' (@vector_sub N' x b))) (@vector_sub N' x b))))))) -> @connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a b. +Axiom thm_BORSUK_MAPS_HOMOTOPIC_IN_CONNECTED_COMPONENT_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@compact N' s) /\ ((~ (@IN (cart R N') a s)) /\ (~ (@IN (cart R N') b s))))) -> (@homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) (fun x : cart R N' => @percent N' (Rinv (@vector_norm N' (@vector_sub N' x a))) (@vector_sub N' x a)) (fun x : cart R N' => @percent N' (Rinv (@vector_norm N' (@vector_sub N' x b))) (@vector_sub N' x b))) = (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a b). +Axiom thm_BORSUK_SEPARATION_THEOREM_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@compact N' s) -> (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) -> ~ (@bounded N' c)) = (forall f : (cart R N') -> cart R N', ((@continuous_on N' N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) -> exists c : cart R N', @homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) f (fun x : cart R N' => c)). +Axiom thm_BORSUK_SEPARATION_THEOREM : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@compact N' s)) -> (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) = (forall f : (cart R N') -> cart R N', ((@continuous_on N' N' f s) /\ (@SUBSET (cart R N') (@IMAGE (cart R N') (cart R N') f s) (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) -> exists c : cart R N', @homotopic_with (cart R N') (cart R N') (fun x : (cart R N') -> cart R N' => True) (@pair (Topology (cart R N')) (Topology (cart R N')) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R (@vec N' (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) f (fun x : cart R N' => c)). +Axiom thm_HOMOTOPY_EQUIVALENT_SEPARATION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@compact N' s) /\ ((@compact N' t) /\ (@homotopy_equivalent N' N' s t))) -> (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) = (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) t)). +Axiom thm_JORDAN_BROUWER_NONSEPARATION_STRONG : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall r : R, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@homeomorphic N' N' s (@sphere N' (@pair (cart R N') R a r))) /\ (@PSUBSET (cart R N') t s))) -> @path_connected N' (@DIFF (cart R N') (@UNIV (cart R N')) t). +Axiom thm_JORDAN_BROUWER_ACCESSIBILITY : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, forall a : cart R N', forall r : R, forall x : cart R N', forall y : cart R N', ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@homeomorphic N' N' s (@sphere N' (@pair (cart R N') R a r))) /\ ((@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) /\ ((@IN (cart R N') x c) /\ (@IN (cart R N') y s))))) -> exists g : (cart R unit) -> cart R N', (@arc N' g) /\ (((@pathstart N' g) = x) /\ (((@pathfinish N' g) = y) /\ (@SUBSET (cart R N') (@IMAGE (cart R unit) (cart R N') g (@DELETE (cart R unit) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (@vec unit (NUMERAL (BIT1 0%N))))) c))). +Axiom thm_HOMOTOPY_EQUIVALENT_SEPARATION_SPHERE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall r : R, ((@SUBSET (cart R N') s (@sphere N' (@pair (cart R N') R a r))) /\ ((@SUBSET (cart R N') t (@sphere N' (@pair (cart R N') R a r))) /\ ((@compact N' s) /\ ((@compact N' t) /\ (@homotopy_equivalent N' N' s t))))) -> (@connected N' (@DIFF (cart R N') (@sphere N' (@pair (cart R N') R a r)) s)) = (@connected N' (@DIFF (cart R N') (@sphere N' (@pair (cart R N') R a r)) t)). +Axiom thm_CONNECTED_COMPLEMENT_CONTRACTIBLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@compact N' s) /\ (@contractible N' s))) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s). +Axiom thm_CONNECTED_COMPLEMENT_SIMPLE_PATH_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', ((N.le (NUMERAL (BIT1 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ (@simple_path N' g)) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) (@path_image N' g)). +Axiom thm_PATH_CONNECTED_PSUPERSET_COMPLEMENT_SIMPLE_PATH_IMAGE : forall {N' : Type'}, forall g : (cart R unit) -> cart R N', forall s : (cart R N') -> Prop, ((N.le (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) /\ ((@simple_path N' g) /\ (@PSUBSET (cart R N') (@DIFF (cart R N') (@UNIV (cart R N')) (@path_image N' g)) s))) -> @path_connected N' s. +Axiom thm_REAL_CONTINUOUS_ON_INVERSE : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, ((real_continuous_on f s) /\ (((is_realinterval s) \/ ((real_compact s) \/ (real_open s))) /\ (forall x : R, (@IN R x s) -> (g (f x)) = x))) -> real_continuous_on g (@IMAGE R R f s). +Axiom thm_REAL_CONTINUOUS_ON_INVERSE_ALT : forall f : R -> R, forall g : R -> R, forall s : R -> Prop, forall t : R -> Prop, ((real_continuous_on f s) /\ (((is_realinterval s) \/ ((real_compact s) \/ (real_open s))) /\ (((@IMAGE R R f s) = t) /\ (forall x : R, (@IN R x s) -> (g (f x)) = x)))) -> real_continuous_on g t. +Axiom thm_SIMPLY_CONNECTED_SPHERE_EQ : forall {N' : Type'}, forall a : cart R N', forall r : R, (@simply_connected N' (@sphere N' (@pair (cart R N') R a r))) = ((N.le (NUMERAL (BIT1 (BIT1 0%N))) (@dimindex N' (@UNIV N'))) \/ (Rle r (R_of_N (NUMERAL 0%N)))). +Axiom thm_SIMPLY_CONNECTED_PUNCTURED_UNIVERSE_EQ : forall {N' : Type'}, forall a : cart R N', (@simply_connected N' (@DELETE (cart R N') (@UNIV (cart R N')) a)) = (N.le (NUMERAL (BIT1 (BIT1 0%N))) (@dimindex N' (@UNIV N'))). +Axiom thm_NOT_SIMPLY_CONNECTED_CIRCLE : forall a : cart R (tybit0 unit), forall r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) -> ~ (@simply_connected (tybit0 unit) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))). +Axiom thm_COVERING_SPACE_CEXP_PUNCTURED_PLANE : @covering_space (tybit0 unit) (tybit0 unit) (@pair ((cart R (tybit0 unit)) -> Prop) ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) cexp) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))). +Axiom thm_INESSENTIAL_EQ_CONTINUOUS_LOGARITHM : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, (exists a : cart R (tybit0 unit), @homotopic_with (cart R (tybit0 unit)) (cart R N') (fun h : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))))) f (fun t : cart R N' => a)) = (exists g : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) g s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f x) = (cexp (g x)))). +Axiom thm_INESSENTIAL_IMP_CONTINUOUS_LOGARITHM_CIRCLE : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, (exists a : cart R (tybit0 unit), @homotopic_with (cart R (tybit0 unit)) (cart R N') (fun h : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) f (fun t : cart R N' => a)) -> exists g : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) g s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f x) = (cexp (g x))). +Axiom thm_INESSENTIAL_EQ_CONTINUOUS_LOGARITHM_CIRCLE : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, (exists a : cart R (tybit0 unit), @homotopic_with (cart R (tybit0 unit)) (cart R N') (fun h : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) f (fun t : cart R N' => a)) = (exists g : (cart R N') -> R, (@continuous_on N' (tybit0 unit) (@o (cart R N') R (cart R (tybit0 unit)) Cx g) s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f x) = (cexp (complex_mul ii (Cx (g x)))))). +Axiom thm_HOMOTOPIC_CIRCLEMAPS_DIV_1 : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall g : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, (@homotopic_with (cart R (tybit0 unit)) (cart R N') (fun x : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) f g) = ((@continuous_on N' (tybit0 unit) f s) /\ ((@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) f s) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@continuous_on N' (tybit0 unit) g s) /\ ((@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) g s) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (@homotopic_with (cart R (tybit0 unit)) (cart R N') (fun x : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) (fun x : cart R N' => complex_div (f x) (g x)) (fun x : cart R N' => Cx (R_of_N (NUMERAL (BIT1 0%N))))))))). +Axiom thm_HOMOTOPIC_CIRCLEMAPS_DIV : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall g : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, (@homotopic_with (cart R (tybit0 unit)) (cart R N') (fun x : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) f g) = ((@continuous_on N' (tybit0 unit) f s) /\ ((@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) f s) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@continuous_on N' (tybit0 unit) g s) /\ ((@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) g s) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (exists c : cart R (tybit0 unit), @homotopic_with (cart R (tybit0 unit)) (cart R N') (fun x : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (@vec (tybit0 unit) (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))))))) (fun x : cart R N' => complex_div (f x) (g x)) (fun x : cart R N' => c)))))). +Axiom thm_CONTINUOUS_LOGARITHM_ON_CONTRACTIBLE : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, ((@continuous_on N' (tybit0 unit) f s) /\ ((@contractible N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> ~ ((f x) = (Cx (R_of_N (NUMERAL 0%N))))))) -> exists g : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) g s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f x) = (cexp (g x))). +Axiom thm_CONTINUOUS_LOGARITHM_ON_SIMPLY_CONNECTED : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, ((@continuous_on N' (tybit0 unit) f s) /\ ((@simply_connected N' s) /\ ((@locally N' (@path_connected N') s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> ~ ((f x) = (Cx (R_of_N (NUMERAL 0%N)))))))) -> exists g : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) g s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f x) = (cexp (g x))). +Axiom thm_CONTINUOUS_LOGARITHM_ON_CBALL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall a : cart R N', forall r : R, ((@continuous_on N' (tybit0 unit) f (@cball N' (@pair (cart R N') R a r))) /\ (forall z : cart R N', (@IN (cart R N') z (@cball N' (@pair (cart R N') R a r))) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> exists h : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) h (@cball N' (@pair (cart R N') R a r))) /\ (forall z : cart R N', (@IN (cart R N') z (@cball N' (@pair (cart R N') R a r))) -> (f z) = (cexp (h z))). +Axiom thm_CONTINUOUS_LOGARITHM_ON_BALL : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall a : cart R N', forall r : R, ((@continuous_on N' (tybit0 unit) f (@ball N' (@pair (cart R N') R a r))) /\ (forall x : cart R N', (@IN (cart R N') x (@ball N' (@pair (cart R N') R a r))) -> ~ ((f x) = (Cx (R_of_N (NUMERAL 0%N)))))) -> exists h : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) h (@ball N' (@pair (cart R N') R a r))) /\ (forall x : cart R N', (@IN (cart R N') x (@ball N' (@pair (cart R N') R a r))) -> (f x) = (cexp (h x))). +Axiom thm_CONTINUOUS_SQRT_ON_CONTRACTIBLE : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, ((@continuous_on N' (tybit0 unit) f s) /\ ((@contractible N' s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> ~ ((f x) = (Cx (R_of_N (NUMERAL 0%N))))))) -> exists g : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) g s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f x) = (complex_pow (g x) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_CONTINUOUS_SQRT_ON_SIMPLY_CONNECTED : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, ((@continuous_on N' (tybit0 unit) f s) /\ ((@simply_connected N' s) /\ ((@locally N' (@path_connected N') s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> ~ ((f x) = (Cx (R_of_N (NUMERAL 0%N)))))))) -> exists g : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) g s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f x) = (complex_pow (g x) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_SIMPLY_CONNECTED_IMP_HOLOMORPHIC_LOG : forall s : (cart R (tybit0 unit)) -> Prop, ((@simply_connected (tybit0 unit) s) /\ (@locally (tybit0 unit) (@path_connected (tybit0 unit)) s)) -> forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (cexp (g z))). +Axiom thm_CONTRACTIBLE_IMP_HOLOMORPHIC_LOG : forall s : (cart R (tybit0 unit)) -> Prop, (@contractible (tybit0 unit) s) -> forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (cexp (g z))). +Axiom thm_SIMPLY_CONNECTED_IMP_HOLOMORPHIC_SQRT : forall s : (cart R (tybit0 unit)) -> Prop, ((@simply_connected (tybit0 unit) s) /\ (@locally (tybit0 unit) (@path_connected (tybit0 unit)) s)) -> forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (complex_pow (g z) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_CONTRACTIBLE_IMP_HOLOMORPHIC_SQRT : forall s : (cart R (tybit0 unit)) -> Prop, (@contractible (tybit0 unit) s) -> forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (complex_pow (g z) (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_CONTRACTIBLE_IMP_HOLOMORPHIC_ACS : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f s) /\ ((@contractible (tybit0 unit) s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (~ ((f z) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (~ ((f z) = (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (ccos (g z))). +Axiom thm_CONTRACTIBLE_IMP_HOLOMORPHIC_ACS_BOUNDED : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((holomorphic_on f s) /\ ((@contractible (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) a s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (~ ((f z) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (~ ((f z) = (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))))))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g s) /\ ((Rle (@vector_norm (tybit0 unit) (g a)) (Rplus pi (@vector_norm (tybit0 unit) (f a)))) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (ccos (g z)))). +Axiom thm_INESSENTIAL_NEIGHBOURHOOD_EXTENSION_LOGARITHM : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on N' (tybit0 unit) f s) /\ ((@SUBSET (cart R N') t s) /\ (exists g : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) g t) /\ (forall x : cart R N', (@IN (cart R N') x t) -> (f x) = (cexp (g x)))))) -> exists u : (cart R N') -> Prop, (@SUBSET (cart R N') t u) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') s) u) /\ (exists g : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) g u) /\ (forall x : cart R N', (@IN (cart R N') x u) -> (f x) = (cexp (g x))))). +Axiom thm_borsukian : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@borsukian N' s) = (forall f : (cart R N') -> cart R (tybit0 unit), ((@continuous_on N' (tybit0 unit) f s) /\ (@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) f s) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))))) -> exists a : cart R (tybit0 unit), @homotopic_with (cart R (tybit0 unit)) (cart R N') (fun h : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))))) f (fun x : cart R N' => a)). +Axiom thm_BORSUKIAN_RETRACTION_GEN : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall h : (cart R M) -> cart R N', forall k : (cart R N') -> cart R M, ((@continuous_on M N' h s) /\ (((@IMAGE (cart R M) (cart R N') h s) = t) /\ ((@continuous_on N' M k t) /\ ((@SUBSET (cart R M) (@IMAGE (cart R N') (cart R M) k t) s) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> (h (k y)) = y) /\ (@borsukian M s)))))) -> @borsukian N' t. +Axiom thm_RETRACT_OF_BORSUKIAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@borsukian N' t) /\ (@retract_of N' s t)) -> @borsukian N' s. +Axiom thm_HOMEOMORPHIC_BORSUKIAN : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@homeomorphic N' M s t) /\ (@borsukian M s)) -> @borsukian N' t. +Axiom thm_HOMEOMORPHIC_BORSUKIAN_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@borsukian M s) = (@borsukian N' t). +Axiom thm_BORSUKIAN_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@borsukian N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@borsukian N' s). +Axiom thm_BORSUKIAN_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@borsukian N' (@IMAGE (cart R M) (cart R N') f s)) = (@borsukian M s). +Axiom thm_HOMEOMORPHISM_BORSUKIANNESS : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@borsukian N' (@IMAGE (cart R M) (cart R N') f k)) = (@borsukian M k). +Axiom thm_HOMOTOPY_EQUIVALENT_BORSUKIANNESS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homotopy_equivalent M N' s t) -> (@borsukian M s) = (@borsukian N' t). +Axiom thm_BORSUKIAN_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@borsukian N' s) = (forall f : (cart R N') -> cart R (tybit0 unit), forall g : (cart R N') -> cart R (tybit0 unit), ((@continuous_on N' (tybit0 unit) f s) /\ ((@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) f s) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit)))))) /\ ((@continuous_on N' (tybit0 unit) g s) /\ (@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) g s) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))))))) -> @homotopic_with (cart R (tybit0 unit)) (cart R N') (fun h : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))))) f g). +Axiom thm_BORSUKIAN_CONTINUOUS_LOGARITHM : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@borsukian N' s) = (forall f : (cart R N') -> cart R (tybit0 unit), ((@continuous_on N' (tybit0 unit) f s) /\ (@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) f s) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))))) -> exists g : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) g s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f x) = (cexp (g x)))). +Axiom thm_BORSUKIAN_CONTINUOUS_LOGARITHM_CIRCLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@borsukian N' s) = (forall f : (cart R N') -> cart R (tybit0 unit), ((@continuous_on N' (tybit0 unit) f s) /\ (@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) f s) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))))))) -> exists g : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) g s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f x) = (cexp (g x)))). +Axiom thm_BORSUKIAN_CONTINUOUS_LOGARITHM_CIRCLE_CX : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@borsukian N' s) = (forall f : (cart R N') -> cart R (tybit0 unit), ((@continuous_on N' (tybit0 unit) f s) /\ (@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) f s) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))))))) -> exists g : (cart R N') -> R, (@continuous_on N' (tybit0 unit) (@o (cart R N') R (cart R (tybit0 unit)) Cx g) s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> (f x) = (cexp (complex_mul ii (Cx (g x)))))). +Axiom thm_BORSUKIAN_CIRCLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@borsukian N' s) = (forall f : (cart R N') -> cart R (tybit0 unit), ((@continuous_on N' (tybit0 unit) f s) /\ (@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) f s) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))))))) -> exists a : cart R (tybit0 unit), @homotopic_with (cart R (tybit0 unit)) (cart R N') (fun h : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))))))) f (fun x : cart R N' => a)). +Axiom thm_BORSUKIAN_CIRCLE_ALT : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@borsukian N' s) = (forall f : (cart R N') -> cart R (tybit0 unit), forall g : (cart R N') -> cart R (tybit0 unit), ((@continuous_on N' (tybit0 unit) f s) /\ ((@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) f s) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@continuous_on N' (tybit0 unit) g s) /\ (@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R N') (cart R (tybit0 unit)) g s) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))))))))) -> @homotopic_with (cart R (tybit0 unit)) (cart R N') (fun h : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))))))) f g). +Axiom thm_CONTRACTIBLE_IMP_BORSUKIAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@contractible N' s) -> @borsukian N' s. +Axiom thm_CONIC_IMP_BORSUKIAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@conic N' s) -> @borsukian N' s. +Axiom thm_SIMPLY_CONNECTED_IMP_BORSUKIAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@simply_connected N' s) /\ (@locally N' (@path_connected N') s)) -> @borsukian N' s. +Axiom thm_STARLIKE_IMP_BORSUKIAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@starlike N' s) -> @borsukian N' s. +Axiom thm_BORSUKIAN_EMPTY : forall {N' : Type'}, @borsukian N' (@EMPTY (cart R N')). +Axiom thm_BORSUKIAN_UNIV : forall {N' : Type'}, @borsukian N' (@UNIV (cart R N')). +Axiom thm_CONVEX_IMP_BORSUKIAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (@convex N' s) -> @borsukian N' s. +Axiom thm_BORSUKIAN_1_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, (((@dimindex N' (@UNIV N')) = (NUMERAL (BIT1 0%N))) \/ (exists r : (cart R unit) -> Prop, @homeomorphic unit N' s r)) -> @borsukian N' s. +Axiom thm_BORSUKIAN_1 : forall s : (cart R unit) -> Prop, @borsukian unit s. +Axiom thm_BORSUKIAN_SPHERE : forall {N' : Type'}, forall a : cart R N', forall r : R, (@borsukian N' (@sphere N' (@pair (cart R N') R a r))) = ((Rle r (R_of_N (NUMERAL 0%N))) \/ (~ ((@dimindex N' (@UNIV N')) = (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_BORSUKIAN_OPEN_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ ((@open_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t) /\ ((@borsukian N' s) /\ ((@borsukian N' t) /\ (@connected N' (@INTER (cart R N') s t)))))) -> @borsukian N' (@UNION (cart R N') s t). +Axiom thm_BORSUKIAN_CLOSED_UNION : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) s) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') (@UNION (cart R N') s t)) t) /\ ((@borsukian N' s) /\ ((@borsukian N' t) /\ (@connected N' (@INTER (cart R N') s t)))))) -> @borsukian N' (@UNION (cart R N') s t). +Axiom thm_BORSUKIAN_SEPARATION_COMPACT : forall s : (cart R (tybit0 unit)) -> Prop, (@compact (tybit0 unit) s) -> (@borsukian (tybit0 unit) s) = (@connected (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) s)). +Axiom thm_BORSUKIAN_COMPONENTWISE_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@locally N' (@connected N') s) \/ (@compact N' s)) -> (@borsukian N' s) = (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) -> @borsukian N' c). +Axiom thm_BORSUKIAN_COMPONENTWISE : forall {N' : Type'}, forall s : (cart R N') -> Prop, (((@locally N' (@connected N') s) \/ (@compact N' s)) /\ (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) -> @borsukian N' c)) -> @borsukian N' s. +Axiom thm_BORSUKIAN_MONOTONE_IMAGE_COMPACT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((@compact M s) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> @connected M (@GSPEC (cart R M) (fun GEN_PVAR_8744 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8744 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) /\ (@borsukian M s))))) -> @borsukian N' t. +Axiom thm_BORSUKIAN_OPEN_MAP_IMAGE_COMPACT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((@compact M s) /\ ((forall u : (cart R M) -> Prop, (@open_in (cart R M) (@subtopology (cart R M) (@euclidean M) s) u) -> @open_in (cart R N') (@subtopology (cart R N') (@euclidean N') t) (@IMAGE (cart R M) (cart R N') f u)) /\ (@borsukian M s))))) -> @borsukian N' t. +Axiom thm_unicoherent : forall {N' : Type'}, forall u : (cart R N') -> Prop, (@unicoherent N' u) = (forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@connected N' t) /\ (((@UNION (cart R N') s t) = u) /\ ((@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) s) /\ (@closed_in (cart R N') (@subtopology (cart R N') (@euclidean N') u) t))))) -> @connected N' (@INTER (cart R N') s t)). +Axiom thm_HOMEOMORPHIC_UNICOHERENT : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@homeomorphic N' M s t) /\ (@unicoherent M s)) -> @unicoherent N' t. +Axiom thm_HOMEOMORPHIC_UNICOHERENT_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@homeomorphic N' M s t) -> (@unicoherent M s) = (@unicoherent N' t). +Axiom thm_UNICOHERENT_TRANSLATION : forall {N' : Type'}, forall a : cart R N', forall s : (cart R N') -> Prop, (@unicoherent N' (@IMAGE (cart R N') (cart R N') (fun x : cart R N' => @vector_add N' a x) s)) = (@unicoherent N' s). +Axiom thm_UNICOHERENT_INJECTIVE_LINEAR_IMAGE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@linear M N' f) /\ (forall x : cart R M, forall y : cart R M, ((f x) = (f y)) -> x = y)) -> (@unicoherent N' (@IMAGE (cart R M) (cart R N') f s)) = (@unicoherent M s). +Axiom thm_HOMEOMORPHISM_UNICOHERENCE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R M, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall k : (cart R M) -> Prop, ((@homeomorphism M N' (@pair ((cart R M) -> Prop) ((cart R N') -> Prop) s t) (@pair ((cart R M) -> cart R N') ((cart R N') -> cart R M) f g)) /\ (@SUBSET (cart R M) k s)) -> (@unicoherent N' (@IMAGE (cart R M) (cart R N') f k)) = (@unicoherent M k). +Axiom thm_BORSUKIAN_IMP_UNICOHERENT : forall {N' : Type'}, forall u : (cart R N') -> Prop, (@borsukian N' u) -> @unicoherent N' u. +Axiom thm_CONTRACTIBLE_IMP_UNICOHERENT : forall {N' : Type'}, forall u : (cart R N') -> Prop, (@contractible N' u) -> @unicoherent N' u. +Axiom thm_CONVEX_IMP_UNICOHERENT : forall {N' : Type'}, forall u : (cart R N') -> Prop, (@convex N' u) -> @unicoherent N' u. +Axiom thm_UNICOHERENT_UNIV : forall {N' : Type'}, @unicoherent N' (@UNIV (cart R N')). +Axiom thm_UNICOHERENT_MONOTONE_IMAGE_COMPACT : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, ((@continuous_on M N' f s) /\ (((@IMAGE (cart R M) (cart R N') f s) = t) /\ ((@compact M s) /\ ((forall y : cart R N', (@IN (cart R N') y t) -> @connected M (@GSPEC (cart R M) (fun GEN_PVAR_8750 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8750 ((@IN (cart R M) x s) /\ ((f x) = y)) x))) /\ (@unicoherent M s))))) -> @unicoherent N' t. +Axiom thm_CONNECTED_FRONTIER_SIMPLE : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@connected N' s) /\ (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s))) -> @connected N' (@frontier N' s). +Axiom thm_CONNECTED_FRONTIER_COMPONENT_COMPLEMENT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@connected N' s) /\ (@IN ((cart R N') -> Prop) c (@components N' (@DIFF (cart R N') (@UNIV (cart R N')) s)))) -> @connected N' (@frontier N' c). +Axiom thm_CONNECTED_FRONTIER_DISJOINT : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@connected N' s) /\ ((@connected N' t) /\ ((@DISJOINT (cart R N') s t) /\ (@SUBSET (cart R N') (@frontier N' s) (@frontier N' t))))) -> @connected N' (@frontier N' s). +Axiom thm_SEPARATION_BY_COMPONENT_CLOSED_POINTWISE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@closed N' s) /\ (~ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a b))) -> exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) /\ (~ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) c) a b)). +Axiom thm_SEPARATION_BY_COMPONENT_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@closed N' s) /\ (~ (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s)))) -> exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) /\ (~ (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) c))). +Axiom thm_SEPARATION_BY_UNION_CLOSED_POINTWISE : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((@closed N' s) /\ ((@closed N' t) /\ ((@DISJOINT (cart R N') s t) /\ ((@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a b) /\ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) t) a b))))) -> @connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) (@UNION (cart R N') s t)) a b. +Axiom thm_SEPARATION_BY_UNION_CLOSED : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@closed N' s) /\ ((@closed N' t) /\ ((@DISJOINT (cart R N') s t) /\ ((@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) t)))))) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) (@UNION (cart R N') s t)). +Axiom thm_OPEN_UNICOHERENT_UNIV : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@_open N' s) /\ ((@_open N' t) /\ ((@connected N' s) /\ ((@connected N' t) /\ ((@UNION (cart R N') s t) = (@UNIV (cart R N'))))))) -> @connected N' (@INTER (cart R N') s t). +Axiom thm_SEPARATION_BY_COMPONENT_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) /\ (~ (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s)))) -> exists c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) /\ (~ (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) c))). +Axiom thm_SEPARATION_BY_UNION_OPEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@_open N' s) /\ ((@_open N' t) /\ ((@DISJOINT (cart R N') s t) /\ ((@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s)) /\ (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) t)))))) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) (@UNION (cart R N') s t)). +Axiom thm_CONNECTED_INTER_DISJOINT_OPEN_FRONTIERS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, ((@_open N' s) /\ ((@connected N' s) /\ ((@_open N' t) /\ ((@connected N' t) /\ (@DISJOINT (cart R N') (@frontier N' s) (@frontier N' t)))))) -> @connected N' (@INTER (cart R N') s t). +Axiom thm_NONSEPARATION_BY_COMPONENT_EQ : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@_open N' s) \/ (@closed N' s)) -> (forall c : (cart R N') -> Prop, (@IN ((cart R N') -> Prop) c (@components N' s)) -> @connected N' (@DIFF (cart R N') (@UNIV (cart R N')) c)) = (@connected N' (@DIFF (cart R N') (@UNIV (cart R N')) s)). +Axiom thm_CONNECTED_COMMON_FRONTIER_DOMAINS : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall c : (cart R N') -> Prop, ((@_open N' s) /\ ((@connected N' s) /\ ((@_open N' t) /\ ((@connected N' t) /\ ((~ (s = t)) /\ (((@frontier N' s) = c) /\ ((@frontier N' t) = c))))))) -> @connected N' c. +Axiom thm_LOCALLY_CONNECTED_FRONTIER_ANR : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@compact N' s) /\ (@ANR N' s)) -> @locally N' (@connected N') (@frontier N' s). +Axiom thm_INESSENTIAL_EQ_EXTENSIBLE : forall {N' : Type'}, forall f : (cart R N') -> cart R (tybit0 unit), forall s : (cart R N') -> Prop, (@closed N' s) -> (exists a : cart R (tybit0 unit), @homotopic_with (cart R (tybit0 unit)) (cart R N') (fun h : (cart R N') -> cart R (tybit0 unit) => True) (@pair (Topology (cart R N')) (Topology (cart R (tybit0 unit))) (@subtopology (cart R N') (@euclidean N') s) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))))) f (fun t : cart R N' => a)) = (exists g : (cart R N') -> cart R (tybit0 unit), (@continuous_on N' (tybit0 unit) g (@UNIV (cart R N'))) /\ ((forall x : cart R N', (@IN (cart R N') x s) -> (g x) = (f x)) /\ (forall x : cart R N', ~ ((g x) = (Cx (R_of_N (NUMERAL 0%N))))))). +Axiom thm_INESSENTIAL_SPHEREMAP_2 : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall a : cart R M, forall r : R, forall b : cart R N', forall s : R, ((N.lt (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex M (@UNIV M))) /\ (((@dimindex N' (@UNIV N')) = (NUMERAL (BIT0 (BIT1 0%N)))) /\ ((@continuous_on M N' f (@sphere M (@pair (cart R M) R a r))) /\ (@SUBSET (cart R N') (@IMAGE (cart R M) (cart R N') f (@sphere M (@pair (cart R M) R a r))) (@sphere N' (@pair (cart R N') R b s)))))) -> exists c : cart R N', @homotopic_with (cart R N') (cart R M) (fun z : (cart R M) -> cart R N' => True) (@pair (Topology (cart R M)) (Topology (cart R N')) (@subtopology (cart R M) (@euclidean M) (@sphere M (@pair (cart R M) R a r))) (@subtopology (cart R N') (@euclidean N') (@sphere N' (@pair (cart R N') R b s)))) f (fun x : cart R M => c). +Axiom thm_JANISZEWSKI : forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), ((@compact (tybit0 unit) s) /\ ((@closed (tybit0 unit) t) /\ ((@connected (tybit0 unit) (@INTER (cart R (tybit0 unit)) s t)) /\ ((@connected_component (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) s) a b) /\ (@connected_component (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) t) a b))))) -> @connected_component (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@UNION (cart R (tybit0 unit)) s t)) a b. +Axiom thm_JANISZEWSKI_GEN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall t : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', ((N.le (@dimindex N' (@UNIV N')) (NUMERAL (BIT0 (BIT1 0%N)))) /\ ((@compact N' s) /\ ((@closed N' t) /\ ((@connected N' (@INTER (cart R N') s t)) /\ ((@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) s) a b) /\ (@connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) t) a b)))))) -> @connected_component N' (@DIFF (cart R N') (@UNIV (cart R N')) (@UNION (cart R N') s t)) a b. +Axiom thm_JANISZEWSKI_CONNECTED : forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, ((@compact (tybit0 unit) s) /\ ((@closed (tybit0 unit) t) /\ ((@connected (tybit0 unit) (@INTER (cart R (tybit0 unit)) s t)) /\ ((@connected (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) s)) /\ (@connected (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) t)))))) -> @connected (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@UNION (cart R (tybit0 unit)) s t)). +Axiom thm_JANISZEWSKI_DUAL : forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, ((@compact (tybit0 unit) s) /\ ((@compact (tybit0 unit) t) /\ ((@connected (tybit0 unit) s) /\ ((@connected (tybit0 unit) t) /\ (@connected (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@UNION (cart R (tybit0 unit)) s t))))))) -> @connected (tybit0 unit) (@INTER (cart R (tybit0 unit)) s t). +Axiom thm_THETA_CURVE_INSIDE_CASES : forall c1 : (cart R unit) -> cart R (tybit0 unit), forall c2 : (cart R unit) -> cart R (tybit0 unit), forall c3 : (cart R unit) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), ((@arc (tybit0 unit) c1) /\ (((@pathstart (tybit0 unit) c1) = a) /\ (((@pathfinish (tybit0 unit) c1) = b) /\ ((@arc (tybit0 unit) c2) /\ (((@pathstart (tybit0 unit) c2) = a) /\ (((@pathfinish (tybit0 unit) c2) = b) /\ ((@arc (tybit0 unit) c3) /\ (((@pathstart (tybit0 unit) c3) = a) /\ (((@pathfinish (tybit0 unit) c3) = b) /\ (((@INTER (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c2)) = (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))) /\ (((@INTER (cart R (tybit0 unit)) (@path_image (tybit0 unit) c2) (@path_image (tybit0 unit) c3)) = (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))) /\ ((@INTER (cart R (tybit0 unit)) (@path_image (tybit0 unit) c3) (@path_image (tybit0 unit) c1)) = (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit))))))))))))))))) -> (@SUBSET (cart R (tybit0 unit)) (@DIFF (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))) (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@path_image (tybit0 unit) c2) (@path_image (tybit0 unit) c3)))) \/ ((@SUBSET (cart R (tybit0 unit)) (@DIFF (cart R (tybit0 unit)) (@path_image (tybit0 unit) c2) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))) (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@path_image (tybit0 unit) c3) (@path_image (tybit0 unit) c1)))) \/ (@SUBSET (cart R (tybit0 unit)) (@DIFF (cart R (tybit0 unit)) (@path_image (tybit0 unit) c3) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))) (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c2))))). +Axiom thm_SPLIT_INSIDE_SIMPLE_CLOSED_CURVE : forall c1 : (cart R unit) -> cart R (tybit0 unit), forall c2 : (cart R unit) -> cart R (tybit0 unit), forall c : (cart R unit) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), ((~ (a = b)) /\ ((@simple_path (tybit0 unit) c1) /\ (((@pathstart (tybit0 unit) c1) = a) /\ (((@pathfinish (tybit0 unit) c1) = b) /\ ((@simple_path (tybit0 unit) c2) /\ (((@pathstart (tybit0 unit) c2) = a) /\ (((@pathfinish (tybit0 unit) c2) = b) /\ ((@simple_path (tybit0 unit) c) /\ (((@pathstart (tybit0 unit) c) = a) /\ (((@pathfinish (tybit0 unit) c) = b) /\ (((@INTER (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c2)) = (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))) /\ (((@INTER (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c)) = (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))) /\ (((@INTER (cart R (tybit0 unit)) (@path_image (tybit0 unit) c2) (@path_image (tybit0 unit) c)) = (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))) /\ (~ ((@INTER (cart R (tybit0 unit)) (@path_image (tybit0 unit) c) (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c2)))) = (@EMPTY (cart R (tybit0 unit)))))))))))))))))) -> ((@INTER (cart R (tybit0 unit)) (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c))) (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@path_image (tybit0 unit) c2) (@path_image (tybit0 unit) c)))) = (@EMPTY (cart R (tybit0 unit)))) /\ ((@UNION (cart R (tybit0 unit)) (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c))) (@UNION (cart R (tybit0 unit)) (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@path_image (tybit0 unit) c2) (@path_image (tybit0 unit) c))) (@DIFF (cart R (tybit0 unit)) (@path_image (tybit0 unit) c) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))))) = (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c2)))). +Axiom thm_piecewise_differentiable_on : forall {_1808913 _1808940 : Type'}, forall i : (cart R _1808940) -> Prop, forall f : (cart R _1808940) -> cart R _1808913, (@piecewise_differentiable_on _1808913 _1808940 f i) = ((@continuous_on _1808940 _1808913 f i) /\ (exists s : (cart R _1808940) -> Prop, (@FINITE (cart R _1808940) s) /\ (forall x : cart R _1808940, (@IN (cart R _1808940) x (@DIFF (cart R _1808940) i s)) -> @differentiable _1808913 _1808940 f (@_at _1808940 x)))). +Axiom thm_PIECEWISE_DIFFERENTIABLE_ON_IMP_CONTINUOUS_ON : forall {_1808954 _1808955 : Type'}, forall f : (cart R _1808955) -> cart R _1808954, forall s : (cart R _1808955) -> Prop, (@piecewise_differentiable_on _1808954 _1808955 f s) -> @continuous_on _1808955 _1808954 f s. +Axiom thm_PIECEWISE_DIFFERENTIABLE_ON_SUBSET : forall {_1808979 _1808980 : Type'}, forall f : (cart R _1808980) -> cart R _1808979, forall s : (cart R _1808980) -> Prop, forall t : (cart R _1808980) -> Prop, ((@piecewise_differentiable_on _1808979 _1808980 f s) /\ (@SUBSET (cart R _1808980) t s)) -> @piecewise_differentiable_on _1808979 _1808980 f t. +Axiom thm_DIFFERENTIABLE_ON_IMP_PIECEWISE_DIFFERENTIABLE : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, (@differentiable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @piecewise_differentiable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_DIFFERENTIABLE_IMP_PIECEWISE_DIFFERENTIABLE : forall {_1809078 _1809081 : Type'}, forall f : (cart R _1809081) -> cart R _1809078, forall s : (cart R _1809081) -> Prop, (forall x : cart R _1809081, (@IN (cart R _1809081) x s) -> @differentiable _1809078 _1809081 f (@_at _1809081 x)) -> @piecewise_differentiable_on _1809078 _1809081 f s. +Axiom thm_PIECEWISE_DIFFERENTIABLE_COMPOSE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, ((@piecewise_differentiable_on N' M f s) /\ ((@piecewise_differentiable_on P N' g (@IMAGE (cart R M) (cart R N') f s)) /\ (forall b : cart R N', @FINITE (cart R M) (@GSPEC (cart R M) (fun GEN_PVAR_8773 : cart R M => exists x : cart R M, @SETSPEC (cart R M) GEN_PVAR_8773 ((@IN (cart R M) x s) /\ ((f x) = b)) x))))) -> @piecewise_differentiable_on P M (@o (cart R M) (cart R N') (cart R P) g f) s. +Axiom thm_DIFFERENTIABLE_PIECEWISE_DIFFERENTIABLE_COMPOSE : forall {M N' P : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R N') -> cart R P, forall s : (cart R M) -> Prop, ((@piecewise_differentiable_on N' M f s) /\ (@differentiable_on P N' g (@UNIV (cart R N')))) -> @piecewise_differentiable_on P M (@o (cart R M) (cart R N') (cart R P) g f) s. +Axiom thm_PIECEWISE_DIFFERENTIABLE_AFFINE : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, forall m : R, forall c : cart R M, (@piecewise_differentiable_on N' M f (@IMAGE (cart R M) (cart R M) (fun x : cart R M => @vector_add M (@percent M m x) c) s)) -> @piecewise_differentiable_on N' M (@o (cart R M) (cart R M) (cart R N') f (fun x : cart R M => @vector_add M (@percent M m x) c)) s. +Axiom thm_PIECEWISE_DIFFERENTIABLE_CASES : forall {N' : Type'}, forall f : (cart R unit) -> cart R N', forall g : (cart R unit) -> cart R N', forall a : cart R unit, forall b : cart R unit, forall c : cart R unit, ((Rle (drop a) (drop c)) /\ ((Rle (drop c) (drop b)) /\ (((f c) = (g c)) /\ ((@piecewise_differentiable_on N' unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a c) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@piecewise_differentiable_on N' unit g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) c b) (@nil (prod (cart R unit) (cart R unit)))))))))) -> @piecewise_differentiable_on N' unit (fun x : cart R unit => @COND (cart R N') (Rle (drop x) (drop c)) (f x) (g x)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_PIECEWISE_DIFFERENTIABLE_NEG : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, (@piecewise_differentiable_on N' M f s) -> @piecewise_differentiable_on N' M (fun x : cart R M => @vector_neg N' (f x)) s. +Axiom thm_PIECEWISE_DIFFERENTIABLE_ADD : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@piecewise_differentiable_on N' M f s) /\ (@piecewise_differentiable_on N' M g s)) -> @piecewise_differentiable_on N' M (fun x : cart R M => @vector_add N' (f x) (g x)) s. +Axiom thm_PIECEWISE_DIFFERENTIABLE_SUB : forall {M N' : Type'}, forall f : (cart R M) -> cart R N', forall g : (cart R M) -> cart R N', forall s : (cart R M) -> Prop, ((@piecewise_differentiable_on N' M f s) /\ (@piecewise_differentiable_on N' M g s)) -> @piecewise_differentiable_on N' M (fun x : cart R M => @vector_sub N' (f x) (g x)) s. +Axiom thm_valid_path : forall f : (cart R unit) -> cart R (tybit0 unit), (valid_path f) = (@piecewise_differentiable_on (tybit0 unit) unit f (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_closed_path : forall {_1809683 : Type'}, forall g : (cart R unit) -> cart R _1809683, (@closed_path _1809683 g) = ((@pathstart _1809683 g) = (@pathfinish _1809683 g)). +Axiom thm_VALID_PATH_EQ : forall p : (cart R unit) -> cart R (tybit0 unit), forall q : (cart R unit) -> cart R (tybit0 unit), ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p t) = (q t)) /\ (valid_path p)) -> valid_path q. +Axiom thm_VALID_PATH_COMPOSE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((valid_path g) /\ (@differentiable_on (tybit0 unit) (tybit0 unit) f (@path_image (tybit0 unit) g))) -> valid_path (@o (cart R unit) (cart R (tybit0 unit)) (cart R (tybit0 unit)) f g). +Axiom thm_VALID_PATH_TRANSLATION_EQ : forall a : cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (valid_path (@o (cart R unit) (cart R (tybit0 unit)) (cart R (tybit0 unit)) (fun x : cart R (tybit0 unit) => @vector_add (tybit0 unit) a x) g)) = (valid_path g). +Axiom thm_VALID_PATH_LINEAR_IMAGE_EQ : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((@linear (tybit0 unit) (tybit0 unit) f) /\ (forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((f x) = (f y)) -> x = y)) -> (valid_path (@o (cart R unit) (cart R (tybit0 unit)) (cart R (tybit0 unit)) f g)) = (valid_path g). +Axiom thm_VALID_PATH_IMP_PATH : forall g : (cart R unit) -> cart R (tybit0 unit), (valid_path g) -> @path (tybit0 unit) g. +Axiom thm_CONNECTED_VALID_PATH_IMAGE : forall g : (cart R unit) -> cart R (tybit0 unit), (valid_path g) -> @connected (tybit0 unit) (@path_image (tybit0 unit) g). +Axiom thm_COMPACT_VALID_PATH_IMAGE : forall g : (cart R unit) -> cart R (tybit0 unit), (valid_path g) -> @compact (tybit0 unit) (@path_image (tybit0 unit) g). +Axiom thm_BOUNDED_VALID_PATH_IMAGE : forall g : (cart R unit) -> cart R (tybit0 unit), (valid_path g) -> @bounded (tybit0 unit) (@path_image (tybit0 unit) g). +Axiom thm_CLOSED_VALID_PATH_IMAGE : forall g : (cart R unit) -> cart R (tybit0 unit), (valid_path g) -> @closed (tybit0 unit) (@path_image (tybit0 unit) g). +Axiom thm_RECTIFIABLE_VALID_PATH : forall g : (cart R unit) -> cart R (tybit0 unit), (valid_path g) -> (@rectifiable_path (tybit0 unit) g) = (@absolutely_integrable_on (tybit0 unit) unit (fun t : cart R unit => @vector_derivative (tybit0 unit) g (@_at unit t)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_PATH_LENGTH_VALID_PATH : forall g : (cart R unit) -> cart R (tybit0 unit), ((valid_path g) /\ (@rectifiable_path (tybit0 unit) g)) -> (@path_length (tybit0 unit) g) = (drop (@integral unit unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (fun t : cart R unit => lift (@vector_norm (tybit0 unit) (@vector_derivative (tybit0 unit) g (@_at unit t)))))). +Axiom thm_ABSOLUTELY_CONTINUOUS_RECTIFIABLE_VALID_PATH : forall g : (cart R unit) -> cart R (tybit0 unit), ((valid_path g) /\ (@rectifiable_path (tybit0 unit) g)) -> @absolutely_continuous_on (tybit0 unit) g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_NEGLIGIBLE_VALID_PATH_IMAGE : forall g : (cart R unit) -> cart R (tybit0 unit), (valid_path g) -> @negligible (tybit0 unit) (@path_image (tybit0 unit) g). +Axiom thm_path_integral : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (path_integral g f) = (@ε (cart R (tybit0 unit)) (fun i : cart R (tybit0 unit) => has_path_integral f i g)). +Axiom thm_path_integrable_on : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (path_integrable_on f g) = (exists i : cart R (tybit0 unit), has_path_integral f i g). +Axiom thm_PATH_INTEGRAL_UNIQUE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), (has_path_integral f i g) -> (path_integral g f) = i. +Axiom thm_HAS_PATH_INTEGRAL_INTEGRAL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : (cart R unit) -> cart R (tybit0 unit), (path_integrable_on f i) -> has_path_integral f (path_integral i f) i. +Axiom thm_HAS_PATH_INTEGRAL_UNIQUE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall j : cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((has_path_integral f i g) /\ (has_path_integral f j g)) -> i = j. +Axiom thm_HAS_PATH_INTEGRAL_INTEGRABLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), (has_path_integral f i g) -> path_integrable_on f g. +Axiom thm_HAS_PATH_INTEGRAL_INTEGRABLE_INTEGRAL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (has_path_integral f y g) = ((path_integrable_on f g) /\ ((path_integral g f) = y)). +Axiom thm_VECTOR_DERIVATIVE_WITHIN_INTERIOR : forall {_1810481 : Type'} (f : (cart R unit) -> cart R _1810481), forall a : cart R unit, forall b : cart R unit, forall x : cart R unit, (@IN (cart R unit) x (@interior unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) -> (@vector_derivative _1810481 f (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) = (@vector_derivative _1810481 f (@_at unit x)). +Axiom thm_HAS_INTEGRAL_LOCALIZED_VECTOR_DERIVATIVE : forall (f' : (cart R (tybit0 unit)) -> cart R (tybit0 unit)) (g : (cart R unit) -> cart R (tybit0 unit)) (i : cart R (tybit0 unit)) (a : cart R unit) (b : cart R unit), (@has_integral unit (tybit0 unit) (fun x : cart R unit => complex_mul (f' (g x)) (@vector_derivative (tybit0 unit) g (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) i (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) = (@has_integral unit (tybit0 unit) (fun x : cart R unit => complex_mul (f' (g x)) (@vector_derivative (tybit0 unit) g (@_at unit x))) i (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_HAS_PATH_INTEGRAL : forall (f : (cart R (tybit0 unit)) -> cart R (tybit0 unit)) (g : (cart R unit) -> cart R (tybit0 unit)) (i : cart R (tybit0 unit)), (has_path_integral f i g) = (@has_integral unit (tybit0 unit) (fun x : cart R unit => complex_mul (f (g x)) (@vector_derivative (tybit0 unit) g (@_at unit x))) i (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_PATH_INTEGRABLE_ON : forall (f : (cart R (tybit0 unit)) -> cart R (tybit0 unit)) (g : (cart R unit) -> cart R (tybit0 unit)), (path_integrable_on f g) = (@integrable_on (tybit0 unit) unit (fun t : cart R unit => complex_mul (f (g t)) (@vector_derivative (tybit0 unit) g (@_at unit t))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_VALID_PATH_REVERSEPATH : forall g : (cart R unit) -> cart R (tybit0 unit), (valid_path (@reversepath (tybit0 unit) g)) = (valid_path g). +Axiom thm_HAS_PATH_INTEGRAL_REVERSEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), ((valid_path g) /\ (has_path_integral f i g)) -> has_path_integral f (@vector_neg (tybit0 unit) i) (@reversepath (tybit0 unit) g). +Axiom thm_PATH_INTEGRABLE_REVERSEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((valid_path g) /\ (path_integrable_on f g)) -> path_integrable_on f (@reversepath (tybit0 unit) g). +Axiom thm_PATH_INTEGRABLE_REVERSEPATH_EQ : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (valid_path g) -> (path_integrable_on f (@reversepath (tybit0 unit) g)) = (path_integrable_on f g). +Axiom thm_PATH_INTEGRAL_REVERSEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((valid_path g) /\ (path_integrable_on f g)) -> (path_integral (@reversepath (tybit0 unit) g) f) = (@vector_neg (tybit0 unit) (path_integral g f)). +Axiom thm_VALID_PATH_JOIN_EQ : forall g1 : (cart R unit) -> cart R (tybit0 unit), forall g2 : (cart R unit) -> cart R (tybit0 unit), ((@pathfinish (tybit0 unit) g1) = (@pathstart (tybit0 unit) g2)) -> (valid_path (@addadd (cart R (tybit0 unit)) g1 g2)) = ((valid_path g1) /\ (valid_path g2)). +Axiom thm_VALID_PATH_JOIN : forall g1 : (cart R unit) -> cart R (tybit0 unit), forall g2 : (cart R unit) -> cart R (tybit0 unit), ((valid_path g1) /\ ((valid_path g2) /\ ((@pathfinish (tybit0 unit) g1) = (@pathstart (tybit0 unit) g2)))) -> valid_path (@addadd (cart R (tybit0 unit)) g1 g2). +Axiom thm_VALID_PATH_SYM : forall p : (cart R unit) -> cart R (tybit0 unit), forall q : (cart R unit) -> cart R (tybit0 unit), (((@pathfinish (tybit0 unit) p) = (@pathstart (tybit0 unit) q)) /\ ((@pathfinish (tybit0 unit) q) = (@pathstart (tybit0 unit) p))) -> (valid_path (@addadd (cart R (tybit0 unit)) p q)) = (valid_path (@addadd (cart R (tybit0 unit)) q p)). +Axiom thm_HAS_PATH_INTEGRAL_JOIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g1 : (cart R unit) -> cart R (tybit0 unit), forall g2 : (cart R unit) -> cart R (tybit0 unit), forall i1 : cart R (tybit0 unit), forall i2 : cart R (tybit0 unit), ((has_path_integral f i1 g1) /\ ((has_path_integral f i2 g2) /\ ((valid_path g1) /\ (valid_path g2)))) -> has_path_integral f (@vector_add (tybit0 unit) i1 i2) (@addadd (cart R (tybit0 unit)) g1 g2). +Axiom thm_PATH_INTEGRABLE_JOIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g1 : (cart R unit) -> cart R (tybit0 unit), forall g2 : (cart R unit) -> cart R (tybit0 unit), ((valid_path g1) /\ (valid_path g2)) -> (path_integrable_on f (@addadd (cart R (tybit0 unit)) g1 g2)) = ((path_integrable_on f g1) /\ (path_integrable_on f g2)). +Axiom thm_PATH_INTEGRAL_JOIN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g1 : (cart R unit) -> cart R (tybit0 unit), forall g2 : (cart R unit) -> cart R (tybit0 unit), ((valid_path g1) /\ ((valid_path g2) /\ ((path_integrable_on f g1) /\ (path_integrable_on f g2)))) -> (path_integral (@addadd (cart R (tybit0 unit)) g1 g2) f) = (@vector_add (tybit0 unit) (path_integral g1 f) (path_integral g2 f)). +Axiom thm_VALID_PATH_SHIFTPATH : forall g : (cart R unit) -> cart R (tybit0 unit), forall a : cart R unit, ((valid_path g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> valid_path (@shiftpath (tybit0 unit) a g). +Axiom thm_HAS_PATH_INTEGRAL_SHIFTPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall a : cart R unit, ((has_path_integral f i g) /\ ((valid_path g) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> has_path_integral f i (@shiftpath (tybit0 unit) a g). +Axiom thm_HAS_PATH_INTEGRAL_SHIFTPATH_EQ : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall a : cart R unit, ((valid_path g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> (has_path_integral f i (@shiftpath (tybit0 unit) a g)) = (has_path_integral f i g). +Axiom thm_PATH_INTEGRAL_SHIFTPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall a : cart R unit, ((valid_path g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> (path_integral (@shiftpath (tybit0 unit) a g) f) = (path_integral g f). +Axiom thm_HAS_VECTOR_DERIVATIVE_LINEPATH_WITHIN : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall x : cart R unit, forall s : (cart R unit) -> Prop, @has_vector_derivative (tybit0 unit) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (@vector_sub (tybit0 unit) b a) (@within (cart R unit) (@_at unit x) s). +Axiom thm_HAS_VECTOR_DERIVATIVE_LINEPATH_AT : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall x : cart R unit, @has_vector_derivative (tybit0 unit) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (@vector_sub (tybit0 unit) b a) (@_at unit x). +Axiom thm_VALID_PATH_LINEPATH : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), valid_path (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)). +Axiom thm_VECTOR_DERIVATIVE_LINEPATH_WITHIN : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (@vector_derivative (tybit0 unit) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))) = (@vector_sub (tybit0 unit) b a). +Axiom thm_VECTOR_DERIVATIVE_LINEPATH_AT : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall x : cart R unit, (@vector_derivative (tybit0 unit) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (@_at unit x)) = (@vector_sub (tybit0 unit) b a). +Axiom thm_HAS_PATH_INTEGRAL_LINEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (has_path_integral f i (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b))) = (@has_integral unit (tybit0 unit) (fun x : cart R unit => complex_mul (f (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) x)) (@vector_sub (tybit0 unit) b a)) i (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))). +Axiom thm_LINEPATH_IN_PATH : forall {_1814417 : Type'} (a : cart R _1814417) (b : cart R _1814417), forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> @IN (cart R _1814417) (@linepath _1814417 (@pair (cart R _1814417) (cart R _1814417) a b) x) (@closed_segment _1814417 (@cons (prod (cart R _1814417) (cart R _1814417)) (@pair (cart R _1814417) (cart R _1814417) a b) (@nil (prod (cart R _1814417) (cart R _1814417))))). +Axiom thm_RE_LINEPATH_CX : forall a : R, forall b : R, forall x : cart R unit, (Re (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx a) (Cx b)) x)) = (Rplus (Rmult (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (drop x)) a) (Rmult (drop x) b)). +Axiom thm_IM_LINEPATH_CX : forall a : R, forall b : R, forall x : cart R unit, (Im (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx a) (Cx b)) x)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_LINEPATH_CX : forall a : R, forall b : R, forall x : cart R unit, (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx a) (Cx b)) x) = (Cx (Rplus (Rmult (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (drop x)) a) (Rmult (drop x) b))). +Axiom thm_HAS_PATH_INTEGRAL_TRIVIAL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a a)). +Axiom thm_PATH_INTEGRAL_TRIVIAL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a a)) f) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_VALID_PATH_SUBPATH : forall g : (cart R unit) -> cart R (tybit0 unit), forall u : cart R unit, forall v : cart R unit, ((valid_path g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))) -> valid_path (@subpath (cart R (tybit0 unit)) u v g). +Axiom thm_HAS_PATH_INTEGRAL_SUBPATH_REFL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall u : cart R unit, has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) (@subpath (cart R (tybit0 unit)) u u g). +Axiom thm_PATH_INTEGRABLE_SUBPATH_REFL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall u : cart R unit, path_integrable_on f (@subpath (cart R (tybit0 unit)) u u g). +Axiom thm_PATH_INTEGRAL_SUBPATH_REFL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall u : cart R unit, (path_integral (@subpath (cart R (tybit0 unit)) u u g) f) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_HAS_PATH_INTEGRAL_SUBPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall u : cart R unit, forall v : cart R unit, ((valid_path g) /\ ((path_integrable_on f g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop u) (drop v)))))) -> has_path_integral f (@integral (tybit0 unit) unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => complex_mul (f (g x)) (@vector_derivative (tybit0 unit) g (@_at unit x)))) (@subpath (cart R (tybit0 unit)) u v g). +Axiom thm_PATH_INTEGRABLE_SUBPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall u : cart R unit, forall v : cart R unit, ((valid_path g) /\ ((path_integrable_on f g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))))) -> path_integrable_on f (@subpath (cart R (tybit0 unit)) u v g). +Axiom thm_HAS_INTEGRAL_PATH_INTEGRAL_SUBPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall u : cart R unit, forall v : cart R unit, ((valid_path g) /\ ((path_integrable_on f g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop u) (drop v)))))) -> @has_integral unit (tybit0 unit) (fun x : cart R unit => complex_mul (f (g x)) (@vector_derivative (tybit0 unit) g (@_at unit x))) (path_integral (@subpath (cart R (tybit0 unit)) u v g) f) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_PATH_INTEGRAL_SUBPATH_INTEGRAL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall u : cart R unit, forall v : cart R unit, ((valid_path g) /\ ((path_integrable_on f g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (Rle (drop u) (drop v)))))) -> (path_integral (@subpath (cart R (tybit0 unit)) u v g) f) = (@integral (tybit0 unit) unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) u v) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => complex_mul (f (g x)) (@vector_derivative (tybit0 unit) g (@_at unit x)))). +Axiom thm_PATH_INTEGRAL_SUBPATH_COMBINE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall u : cart R unit, forall v : cart R unit, forall w : cart R unit, ((valid_path g) /\ ((path_integrable_on f g) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) w (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))))) -> (@vector_add (tybit0 unit) (path_integral (@subpath (cart R (tybit0 unit)) u v g) f) (path_integral (@subpath (cart R (tybit0 unit)) v w g) f)) = (path_integral (@subpath (cart R (tybit0 unit)) u w g) f). +Axiom thm_PATH_INTEGRAL_INTEGRAL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (path_integral g f) = (@integral (tybit0 unit) unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => complex_mul (f (g x)) (@vector_derivative (tybit0 unit) g (@_at unit x)))). +Axiom thm_SEGMENTS_SUBSET_CONVEX_HULL : forall {_1816168 : Type'}, forall a : cart R _1816168, forall b : cart R _1816168, forall c : cart R _1816168, (@SUBSET (cart R _1816168) (@closed_segment _1816168 (@cons (prod (cart R _1816168) (cart R _1816168)) (@pair (cart R _1816168) (cart R _1816168) a b) (@nil (prod (cart R _1816168) (cart R _1816168))))) (@hull (cart R _1816168) (@convex _1816168) (@INSERT (cart R _1816168) a (@INSERT (cart R _1816168) b (@INSERT (cart R _1816168) c (@EMPTY (cart R _1816168))))))) /\ ((@SUBSET (cart R _1816168) (@closed_segment _1816168 (@cons (prod (cart R _1816168) (cart R _1816168)) (@pair (cart R _1816168) (cart R _1816168) a c) (@nil (prod (cart R _1816168) (cart R _1816168))))) (@hull (cart R _1816168) (@convex _1816168) (@INSERT (cart R _1816168) a (@INSERT (cart R _1816168) b (@INSERT (cart R _1816168) c (@EMPTY (cart R _1816168))))))) /\ ((@SUBSET (cart R _1816168) (@closed_segment _1816168 (@cons (prod (cart R _1816168) (cart R _1816168)) (@pair (cart R _1816168) (cart R _1816168) b c) (@nil (prod (cart R _1816168) (cart R _1816168))))) (@hull (cart R _1816168) (@convex _1816168) (@INSERT (cart R _1816168) a (@INSERT (cart R _1816168) b (@INSERT (cart R _1816168) c (@EMPTY (cart R _1816168))))))) /\ ((@SUBSET (cart R _1816168) (@closed_segment _1816168 (@cons (prod (cart R _1816168) (cart R _1816168)) (@pair (cart R _1816168) (cart R _1816168) b a) (@nil (prod (cart R _1816168) (cart R _1816168))))) (@hull (cart R _1816168) (@convex _1816168) (@INSERT (cart R _1816168) a (@INSERT (cart R _1816168) b (@INSERT (cart R _1816168) c (@EMPTY (cart R _1816168))))))) /\ ((@SUBSET (cart R _1816168) (@closed_segment _1816168 (@cons (prod (cart R _1816168) (cart R _1816168)) (@pair (cart R _1816168) (cart R _1816168) c a) (@nil (prod (cart R _1816168) (cart R _1816168))))) (@hull (cart R _1816168) (@convex _1816168) (@INSERT (cart R _1816168) a (@INSERT (cart R _1816168) b (@INSERT (cart R _1816168) c (@EMPTY (cart R _1816168))))))) /\ (@SUBSET (cart R _1816168) (@closed_segment _1816168 (@cons (prod (cart R _1816168) (cart R _1816168)) (@pair (cart R _1816168) (cart R _1816168) c b) (@nil (prod (cart R _1816168) (cart R _1816168))))) (@hull (cart R _1816168) (@convex _1816168) (@INSERT (cart R _1816168) a (@INSERT (cart R _1816168) b (@INSERT (cart R _1816168) c (@EMPTY (cart R _1816168))))))))))). +Axiom thm_POINTS_IN_CONVEX_HULL : forall {_1816195 : Type'}, forall x : cart R _1816195, forall s : (cart R _1816195) -> Prop, (@IN (cart R _1816195) x s) -> @IN (cart R _1816195) x (@hull (cart R _1816195) (@convex _1816195) s). +Axiom thm_CONVEX_HULL_SUBSET : forall {_1816225 : Type'} (s : (cart R _1816225) -> Prop) (t : (cart R _1816225) -> Prop), (forall x : cart R _1816225, (@IN (cart R _1816225) x s) -> @IN (cart R _1816225) x (@hull (cart R _1816225) (@convex _1816225) t)) -> @SUBSET (cart R _1816225) (@hull (cart R _1816225) (@convex _1816225) s) (@hull (cart R _1816225) (@convex _1816225) t). +Axiom thm_NOT_IN_INTERIOR_CONVEX_HULL_3 : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (~ (@IN (cart R (tybit0 unit)) a (@interior (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))))) /\ ((~ (@IN (cart R (tybit0 unit)) b (@interior (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))))) /\ (~ (@IN (cart R (tybit0 unit)) c (@interior (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit))))))))))). +Axiom thm_PATH_INTEGRAL_PRIMITIVE_LEMMA : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall a : cart R unit, forall b : cart R unit, forall s : (cart R (tybit0 unit)) -> Prop, ((~ ((@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) = (@EMPTY (cart R unit)))) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative f (f' x) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ ((@piecewise_differentiable_on (tybit0 unit) unit g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @IN (cart R (tybit0 unit)) (g x) s)))) -> @has_integral unit (tybit0 unit) (fun x : cart R unit => complex_mul (f' (g x)) (@vector_derivative (tybit0 unit) g (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) (@vector_sub (tybit0 unit) (f (g b)) (f (g a))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_PATH_INTEGRAL_PRIMITIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative f (f' x) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ ((valid_path g) /\ (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s))) -> has_path_integral f' (@vector_sub (tybit0 unit) (f (@pathfinish (tybit0 unit) g)) (f (@pathstart (tybit0 unit) g))) g. +Axiom thm_CAUCHY_THEOREM_PRIMITIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative f (f' x) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ ((valid_path g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g))))) -> has_path_integral f' (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_PATH_INTEGRABLE_CONTINUOUS_LINEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (@continuous_on (tybit0 unit) (tybit0 unit) f (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) -> path_integrable_on f (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)). +Axiom thm_HAS_PATH_INTEGRAL_CONST_LINEPATH : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), has_path_integral (fun x : cart R (tybit0 unit) => c) (complex_mul c (@vector_sub (tybit0 unit) b a)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)). +Axiom thm_HAS_PATH_INTEGRAL_NEG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (has_path_integral f i g) -> has_path_integral (fun x : cart R (tybit0 unit) => @vector_neg (tybit0 unit) (f x)) (@vector_neg (tybit0 unit) i) g. +Axiom thm_HAS_PATH_INTEGRAL_ADD : forall f1 : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i1 : cart R (tybit0 unit), forall f2 : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i2 : cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((has_path_integral f1 i1 g) /\ (has_path_integral f2 i2 g)) -> has_path_integral (fun x : cart R (tybit0 unit) => @vector_add (tybit0 unit) (f1 x) (f2 x)) (@vector_add (tybit0 unit) i1 i2) g. +Axiom thm_HAS_PATH_INTEGRAL_SUB : forall f1 : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i1 : cart R (tybit0 unit), forall f2 : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i2 : cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((has_path_integral f1 i1 g) /\ (has_path_integral f2 i2 g)) -> has_path_integral (fun x : cart R (tybit0 unit) => @vector_sub (tybit0 unit) (f1 x) (f2 x)) (@vector_sub (tybit0 unit) i1 i2) g. +Axiom thm_HAS_PATH_INTEGRAL_COMPLEX_LMUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (has_path_integral f i g) -> has_path_integral (fun x : cart R (tybit0 unit) => complex_mul c (f x)) (complex_mul c i) g. +Axiom thm_HAS_PATH_INTEGRAL_COMPLEX_RMUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (has_path_integral f i g) -> has_path_integral (fun x : cart R (tybit0 unit) => complex_mul (f x) c) (complex_mul i c) g. +Axiom thm_HAS_PATH_INTEGRAL_COMPLEX_DIV : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (has_path_integral f i g) -> has_path_integral (fun x : cart R (tybit0 unit) => complex_div (f x) c) (complex_div i c) g. +Axiom thm_HAS_PATH_INTEGRAL_EQ : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall p : (cart R unit) -> cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@path_image (tybit0 unit) p)) -> (f x) = (g x)) /\ (has_path_integral f y p)) -> has_path_integral g y p. +Axiom thm_HAS_PATH_INTEGRAL_BOUND_LINEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall B : R, ((has_path_integral f i (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b))) /\ ((Rle (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) -> Rle (@vector_norm (tybit0 unit) (f x)) B))) -> Rle (@vector_norm (tybit0 unit) i) (Rmult B (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) b a))). +Axiom thm_HAS_PATH_INTEGRAL_BOUND_LINEPATH_STRONG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall B : R, forall k : (cart R (tybit0 unit)) -> Prop, ((@FINITE (cart R (tybit0 unit)) k) /\ ((has_path_integral f i (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b))) /\ ((Rle (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@DIFF (cart R (tybit0 unit)) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))) k)) -> Rle (@vector_norm (tybit0 unit) (f x)) B)))) -> Rle (@vector_norm (tybit0 unit) i) (Rmult B (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) b a))). +Axiom thm_HAS_PATH_INTEGRAL_0 : forall g : (cart R unit) -> cart R (tybit0 unit), has_path_integral (fun x : cart R (tybit0 unit) => Cx (R_of_N (NUMERAL 0%N))) (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_HAS_PATH_INTEGRAL_IS_0 : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)) -> (f z) = (Cx (R_of_N (NUMERAL 0%N)))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_HAS_PATH_INTEGRAL_VSUM : forall {_1817540 : Type'} (i : _1817540 -> cart R (tybit0 unit)), forall f : _1817540 -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall p : (cart R unit) -> cart R (tybit0 unit), forall s : _1817540 -> Prop, ((@FINITE _1817540 s) /\ (forall a : _1817540, (@IN _1817540 a s) -> has_path_integral (f a) (i a) p)) -> has_path_integral (fun x : cart R (tybit0 unit) => @vsum _1817540 (tybit0 unit) s (fun a : _1817540 => f a x)) (@vsum _1817540 (tybit0 unit) s i) p. +Axiom thm_PATH_INTEGRAL_CONST_LINEPATH : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (fun x : cart R (tybit0 unit) => c)) = (complex_mul c (@vector_sub (tybit0 unit) b a)). +Axiom thm_PATH_INTEGRAL_NEG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (path_integrable_on f g) -> (path_integral g (fun x : cart R (tybit0 unit) => @vector_neg (tybit0 unit) (f x))) = (@vector_neg (tybit0 unit) (path_integral g f)). +Axiom thm_PATH_INTEGRAL_ADD : forall f1 : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f2 : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((path_integrable_on f1 g) /\ (path_integrable_on f2 g)) -> (path_integral g (fun x : cart R (tybit0 unit) => @vector_add (tybit0 unit) (f1 x) (f2 x))) = (@vector_add (tybit0 unit) (path_integral g f1) (path_integral g f2)). +Axiom thm_PATH_INTEGRAL_SUB : forall f1 : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f2 : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((path_integrable_on f1 g) /\ (path_integrable_on f2 g)) -> (path_integral g (fun x : cart R (tybit0 unit) => @vector_sub (tybit0 unit) (f1 x) (f2 x))) = (@vector_sub (tybit0 unit) (path_integral g f1) (path_integral g f2)). +Axiom thm_PATH_INTEGRAL_COMPLEX_LMUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), (path_integrable_on f g) -> (path_integral g (fun x : cart R (tybit0 unit) => complex_mul c (f x))) = (complex_mul c (path_integral g f)). +Axiom thm_PATH_INTEGRAL_COMPLEX_RMUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), (path_integrable_on f g) -> (path_integral g (fun x : cart R (tybit0 unit) => complex_mul (f x) c)) = (complex_mul (path_integral g f) c). +Axiom thm_PATH_INTEGRAL_COMPLEX_DIV : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), (path_integrable_on f g) -> (path_integral g (fun x : cart R (tybit0 unit) => complex_div (f x) c)) = (complex_div (path_integral g f) c). +Axiom thm_PATH_INTEGRAL_EQ : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall p : (cart R unit) -> cart R (tybit0 unit), (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@path_image (tybit0 unit) p)) -> (f x) = (g x)) -> (path_integral p f) = (path_integral p g). +Axiom thm_PATH_INTEGRAL_EQ_0 : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)) -> (f z) = (Cx (R_of_N (NUMERAL 0%N)))) -> (path_integral g f) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_PATH_INTEGRAL_BOUND_LINEPATH : forall (B : R), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), ((path_integrable_on f (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b))) /\ ((Rle (R_of_N (NUMERAL 0%N)) B) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) -> Rle (@vector_norm (tybit0 unit) (f x)) B))) -> Rle (@vector_norm (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f)) (Rmult B (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) b a))). +Axiom thm_PATH_INTEGRAL_0 : forall g : (cart R unit) -> cart R (tybit0 unit), (path_integral g (fun x : cart R (tybit0 unit) => Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_PATH_INTEGRAL_VSUM : forall {_1818017 : Type'}, forall f : _1818017 -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall p : (cart R unit) -> cart R (tybit0 unit), forall s : _1818017 -> Prop, ((@FINITE _1818017 s) /\ (forall a : _1818017, (@IN _1818017 a s) -> path_integrable_on (f a) p)) -> (path_integral p (fun x : cart R (tybit0 unit) => @vsum _1818017 (tybit0 unit) s (fun a : _1818017 => f a x))) = (@vsum _1818017 (tybit0 unit) s (fun a : _1818017 => path_integral p (f a))). +Axiom thm_PATH_INTEGRABLE_EQ : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall p : (cart R unit) -> cart R (tybit0 unit), ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@path_image (tybit0 unit) p)) -> (f x) = (g x)) /\ (path_integrable_on f p)) -> path_integrable_on g p. +Axiom thm_PATH_INTEGRABLE_NEG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), (path_integrable_on f g) -> path_integrable_on (fun x : cart R (tybit0 unit) => @vector_neg (tybit0 unit) (f x)) g. +Axiom thm_PATH_INTEGRABLE_ADD : forall f1 : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f2 : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((path_integrable_on f1 g) /\ (path_integrable_on f2 g)) -> path_integrable_on (fun x : cart R (tybit0 unit) => @vector_add (tybit0 unit) (f1 x) (f2 x)) g. +Axiom thm_PATH_INTEGRABLE_SUB : forall f1 : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f2 : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), ((path_integrable_on f1 g) /\ (path_integrable_on f2 g)) -> path_integrable_on (fun x : cart R (tybit0 unit) => @vector_sub (tybit0 unit) (f1 x) (f2 x)) g. +Axiom thm_PATH_INTEGRABLE_COMPLEX_LMUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), (path_integrable_on f g) -> path_integrable_on (fun x : cart R (tybit0 unit) => complex_mul c (f x)) g. +Axiom thm_PATH_INTEGRABLE_COMPLEX_RMUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), (path_integrable_on f g) -> path_integrable_on (fun x : cart R (tybit0 unit) => complex_mul (f x) c) g. +Axiom thm_PATH_INTEGRABLE_COMPLEX_DIV : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall c : cart R (tybit0 unit), (path_integrable_on f g) -> path_integrable_on (fun x : cart R (tybit0 unit) => complex_div (f x) c) g. +Axiom thm_PATH_INTEGRABLE_VSUM : forall {_1818252 : Type'}, forall f : _1818252 -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall s : _1818252 -> Prop, ((@FINITE _1818252 s) /\ (forall a : _1818252, (@IN _1818252 a s) -> path_integrable_on (f a) g)) -> path_integrable_on (fun x : cart R (tybit0 unit) => @vsum _1818252 (tybit0 unit) s (fun a : _1818252 => f a x)) g. +Axiom thm_HAS_PATH_INTEGRAL_REVERSE_LINEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall i : cart R (tybit0 unit), (has_path_integral f i (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b))) -> has_path_integral f (@vector_neg (tybit0 unit) i) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b a)). +Axiom thm_PATH_INTEGRAL_REVERSE_LINEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (@continuous_on (tybit0 unit) (tybit0 unit) f (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) -> (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) = (@vector_neg (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b a)) f)). +Axiom thm_HAS_PATH_INTEGRAL_SPLIT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall j : cart R (tybit0 unit), forall k : R, ((Rle (R_of_N (NUMERAL 0%N)) k) /\ ((Rle k (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((@vector_sub (tybit0 unit) c a) = (@percent (tybit0 unit) k (@vector_sub (tybit0 unit) b a))) /\ ((has_path_integral f i (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a c))) /\ (has_path_integral f j (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c b))))))) -> has_path_integral f (@vector_add (tybit0 unit) i j) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)). +Axiom thm_PATH_INTEGRAL_SPLIT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall k : R, ((Rle (R_of_N (NUMERAL 0%N)) k) /\ ((Rle k (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((@vector_sub (tybit0 unit) c a) = (@percent (tybit0 unit) k (@vector_sub (tybit0 unit) b a))) /\ (@continuous_on (tybit0 unit) (tybit0 unit) f (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))))))) -> (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) = (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a c)) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c b)) f)). +Axiom thm_PATH_INTEGRAL_SPLIT_LINEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), ((@continuous_on (tybit0 unit) (tybit0 unit) f (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ (@IN (cart R (tybit0 unit)) c (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))))) -> (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) = (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a c)) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c b)) f)). +Axiom thm_HAS_PATH_INTEGRAL_MIDPOINT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall j : cart R (tybit0 unit), ((has_path_integral f i (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a (@midpoint (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b))))) /\ (has_path_integral f j (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (@midpoint (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) b)))) -> has_path_integral f (@vector_add (tybit0 unit) i j) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)). +Axiom thm_PATH_INTEGRAL_MIDPOINT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), (@continuous_on (tybit0 unit) (tybit0 unit) f (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) -> (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) = (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a (@midpoint (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)))) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (@midpoint (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) b)) f)). +Axiom thm_TRIANGLE_LINEAR_HAS_CHAIN_INTEGRAL : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall m : cart R (tybit0 unit), forall d : cart R (tybit0 unit), has_path_integral (fun x : cart R (tybit0 unit) => @vector_add (tybit0 unit) (complex_mul m x) d) (Cx (R_of_N (NUMERAL 0%N))) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)))). +Axiom thm_HAS_CHAIN_INTEGRAL_CHAIN_INTEGRAL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall d : cart R (tybit0 unit), (has_path_integral f i (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c d))))) -> (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c d)) f))) = i. +Axiom thm_PATH_INTEGRAL_SWAP : forall f : (cart R (tybit0 unit)) -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall h : (cart R unit) -> cart R (tybit0 unit), ((@continuous_on (finite_sum (tybit0 unit) (tybit0 unit)) (tybit0 unit) (fun y : cart R (finite_sum (tybit0 unit) (tybit0 unit)) => f (@fstcart R (tybit0 unit) (tybit0 unit) y) (@sndcart R (tybit0 unit) (tybit0 unit) y)) (@PCROSS R (tybit0 unit) (tybit0 unit) (@path_image (tybit0 unit) g) (@path_image (tybit0 unit) h))) /\ ((valid_path g) /\ ((valid_path h) /\ ((@continuous_on unit (tybit0 unit) (fun t : cart R unit => @vector_derivative (tybit0 unit) g (@_at unit t)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@continuous_on unit (tybit0 unit) (fun t : cart R unit => @vector_derivative (tybit0 unit) h (@_at unit t)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))))) -> (path_integral g (fun w : cart R (tybit0 unit) => path_integral h (f w))) = (path_integral h (fun z : cart R (tybit0 unit) => path_integral g (fun w : cart R (tybit0 unit) => f w z))). +Axiom thm_NORM_SUM_LEMMA : forall (a : cart R (tybit0 unit)) (b : cart R (tybit0 unit)) (c : cart R (tybit0 unit)) (d : cart R (tybit0 unit)) (e : R), (Rge (@vector_norm (tybit0 unit) (@vector_add (tybit0 unit) a (@vector_add (tybit0 unit) b (@vector_add (tybit0 unit) c d)))) e) -> (Rge (@vector_norm (tybit0 unit) a) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))) \/ ((Rge (@vector_norm (tybit0 unit) b) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))) \/ ((Rge (@vector_norm (tybit0 unit) c) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))) \/ (Rge (@vector_norm (tybit0 unit) d) (Rdiv e (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))))). +Axiom thm_CAUCHY_THEOREM_QUADRISECTION : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall e : R, forall K : R, ((@continuous_on (tybit0 unit) (tybit0 unit) f (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) /\ ((Rle (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) K) /\ ((Rle (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) K) /\ ((Rle (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)) K) /\ (Rge (@vector_norm (tybit0 unit) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)) f)))) (Rmult e (real_pow K (NUMERAL (BIT0 (BIT1 0%N)))))))))) -> exists a' : cart R (tybit0 unit), exists b' : cart R (tybit0 unit), exists c' : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) a' (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) /\ ((@IN (cart R (tybit0 unit)) b' (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) /\ ((@IN (cart R (tybit0 unit)) c' (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) /\ ((Rle (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a' b')) (Rdiv K (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((Rle (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b' c')) (Rdiv K (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ ((Rle (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c' a')) (Rdiv K (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) /\ (Rge (@vector_norm (tybit0 unit) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a' b')) f) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b' c')) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c' a')) f)))) (Rmult e (real_pow (Rdiv K (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (NUMERAL (BIT0 (BIT1 0%N))))))))))). +Axiom thm_TRIANGLE_POINTS_CLOSER : forall {N' : Type'}, forall a : cart R N', forall b : cart R N', forall c : cart R N', forall x : cart R N', forall y : cart R N', ((@IN (cart R N') x (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N'))))))) /\ (@IN (cart R N') y (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))))) -> (Rle (@vector_norm N' (@vector_sub N' x y)) (@vector_norm N' (@vector_sub N' a b))) \/ ((Rle (@vector_norm N' (@vector_sub N' x y)) (@vector_norm N' (@vector_sub N' b c))) \/ (Rle (@vector_norm N' (@vector_sub N' x y)) (@vector_norm N' (@vector_sub N' c a)))). +Axiom thm_HOLOMORPHIC_POINT_SMALL_TRIANGLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall x : cart R (tybit0 unit), forall e : R, ((@IN (cart R (tybit0 unit)) x s) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ ((complex_differentiable f (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ (Rlt (R_of_N (NUMERAL 0%N)) e)))) -> exists k : R, (Rlt (R_of_N (NUMERAL 0%N)) k) /\ (forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), ((Rle (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) k) /\ ((Rle (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) k) /\ ((Rle (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)) k) /\ ((@IN (cart R (tybit0 unit)) x (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) /\ (@SUBSET (cart R (tybit0 unit)) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit))))))) s))))) -> Rle (@vector_norm (tybit0 unit) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)) f)))) (Rmult e (real_pow (Rplus (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (Rplus (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)))) (NUMERAL (BIT0 (BIT1 0%N)))))). +Axiom thm_CAUCHY_THEOREM_TRIANGLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (holomorphic_on f (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)))). +Axiom thm_CAUCHY_THEOREM_FLAT_LEMMA : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall k : R, ((@continuous_on (tybit0 unit) (tybit0 unit) f (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) /\ (((@vector_sub (tybit0 unit) c a) = (@percent (tybit0 unit) k (@vector_sub (tybit0 unit) b a))) /\ (Rle (R_of_N (NUMERAL 0%N)) k))) -> (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)) f))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_CAUCHY_THEOREM_FLAT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall k : R, ((@continuous_on (tybit0 unit) (tybit0 unit) f (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) /\ ((@vector_sub (tybit0 unit) c a) = (@percent (tybit0 unit) k (@vector_sub (tybit0 unit) b a)))) -> (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)) f))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_CAUCHY_THEOREM_TRIANGLE_INTERIOR : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), ((@continuous_on (tybit0 unit) (tybit0 unit) f (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) /\ (holomorphic_on f (@interior (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)))). +Axiom thm_CAUCHY_THEOREM_TRIANGLE_COFINITE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), ((@continuous_on (tybit0 unit) (tybit0 unit) f (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) /\ ((@FINITE (cart R (tybit0 unit)) s) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@DIFF (cart R (tybit0 unit)) (@interior (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit)))))))) s)) -> complex_differentiable f (@_at (tybit0 unit) x)))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)))). +Axiom thm_STARLIKE_CONVEX_SUBSET : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', forall b : cart R N', forall c : cart R N', ((@IN (cart R N') a s) /\ ((@SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') b c) (@nil (prod (cart R N') (cart R N'))))) s) /\ (forall x : cart R N', (@IN (cart R N') x s) -> @SUBSET (cart R N') (@closed_segment N' (@cons (prod (cart R N') (cart R N')) (@pair (cart R N') (cart R N') a x) (@nil (prod (cart R N') (cart R N'))))) s))) -> @SUBSET (cart R N') (@hull (cart R N') (@convex N') (@INSERT (cart R N') a (@INSERT (cart R N') b (@INSERT (cart R N') c (@EMPTY (cart R N')))))) s. +Axiom thm_TRIANGLE_PATH_INTEGRALS_STARLIKE_PRIMITIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) a s) /\ ((@_open (tybit0 unit) s) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> @SUBSET (cart R (tybit0 unit)) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a z) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))) s) /\ (forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@SUBSET (cart R (tybit0 unit)) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))) s) -> (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)) f))) = (Cx (R_of_N (NUMERAL 0%N)))))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> has_complex_derivative g (f z) (@_at (tybit0 unit) z). +Axiom thm_HOLOMORPHIC_STARLIKE_PRIMITIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@starlike (tybit0 unit) s) /\ ((@FINITE (cart R (tybit0 unit)) k) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@DIFF (cart R (tybit0 unit)) s k)) -> complex_differentiable f (@_at (tybit0 unit) x)))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative g (f x) (@_at (tybit0 unit) x). +Axiom thm_CAUCHY_THEOREM_STARLIKE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@starlike (tybit0 unit) s) /\ ((@FINITE (cart R (tybit0 unit)) k) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@DIFF (cart R (tybit0 unit)) s k)) -> complex_differentiable f (@_at (tybit0 unit) x)) /\ ((valid_path g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g))))))))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_CAUCHY_THEOREM_STARLIKE_SIMPLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@starlike (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((valid_path g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g))))))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_TRIANGLE_PATH_INTEGRALS_CONVEX_PRIMITIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) a s) /\ ((@convex (tybit0 unit) s) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ (forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) b s) /\ (@IN (cart R (tybit0 unit)) c s)) -> (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)) f))) = (Cx (R_of_N (NUMERAL 0%N))))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> has_complex_derivative g (f z) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) z) s). +Axiom thm_PATHINTEGRAL_CONVEX_PRIMITIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@convex (tybit0 unit) s) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ (forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) a s) /\ ((@IN (cart R (tybit0 unit)) b s) /\ (@IN (cart R (tybit0 unit)) c s))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a))))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative g (f x) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_HOLOMORPHIC_CONVEX_PRIMITIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : (cart R (tybit0 unit)) -> Prop, ((@convex (tybit0 unit) s) /\ ((@FINITE (cart R (tybit0 unit)) k) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@DIFF (cart R (tybit0 unit)) (@interior (tybit0 unit) s) k)) -> complex_differentiable f (@_at (tybit0 unit) x))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative g (f x) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s). +Axiom thm_CAUCHY_THEOREM_CONVEX : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), ((@convex (tybit0 unit) s) /\ ((@FINITE (cart R (tybit0 unit)) k) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@DIFF (cart R (tybit0 unit)) (@interior (tybit0 unit) s) k)) -> complex_differentiable f (@_at (tybit0 unit) x)) /\ ((valid_path g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)))))))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_CAUCHY_THEOREM_CONVEX_SIMPLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), ((@convex (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((valid_path g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)))))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_CAUCHY_THEOREM_DISC : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall k : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), forall e : R, ((@FINITE (cart R (tybit0 unit)) k) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a e))) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@DIFF (cart R (tybit0 unit)) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a e)) k)) -> complex_differentiable f (@_at (tybit0 unit) x)) /\ ((valid_path g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a e))) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g))))))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_CAUCHY_THEOREM_DISC_SIMPLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall e : R, ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a e))) /\ ((valid_path g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a e))) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g))))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_PATH_INTEGRAL_LOCAL_PRIMITIVE_LEMMA : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R unit, forall b : cart R unit, ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative f (f' x) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) x) s)) /\ ((@piecewise_differentiable_on (tybit0 unit) unit g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @IN (cart R (tybit0 unit)) (g x) s))) -> @integrable_on (tybit0 unit) unit (fun x : cart R unit => complex_mul (f' (g x)) (@vector_derivative (tybit0 unit) g (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_PATH_INTEGRAL_LOCAL_PRIMITIVE_ANY : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R unit, forall b : cart R unit, ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> exists d : R, exists h : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall y : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) y x)) d) -> has_complex_derivative h (f y) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) y) s))) /\ ((@piecewise_differentiable_on (tybit0 unit) unit g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> @IN (cart R (tybit0 unit)) (g x) s))) -> @integrable_on (tybit0 unit) unit (fun x : cart R unit => complex_mul (f (g x)) (@vector_derivative (tybit0 unit) g (@_at unit x))) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_PATH_INTEGRAL_LOCAL_PRIMITIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> exists d : R, exists h : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall y : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) y x)) d) -> has_complex_derivative h (f y) (@within (cart R (tybit0 unit)) (@_at (tybit0 unit) y) s))) /\ ((valid_path g) /\ (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s))) -> path_integrable_on f g. +Axiom thm_PATH_INTEGRABLE_HOLOMORPHIC : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@FINITE (cart R (tybit0 unit)) k) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@DIFF (cart R (tybit0 unit)) s k)) -> complex_differentiable f (@_at (tybit0 unit) x)) /\ ((valid_path g) /\ (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s)))))) -> path_integrable_on f g. +Axiom thm_PATH_INTEGRABLE_HOLOMORPHIC_SIMPLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((valid_path g) /\ (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s)))) -> path_integrable_on f g. +Axiom thm_PATH_INTEGRAL_NEARBY_LOOP : forall s : (cart R (tybit0 unit)) -> Prop, forall p : (cart R unit) -> cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@path (tybit0 unit) p) /\ (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) p) s))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall g : (cart R unit) -> cart R (tybit0 unit), forall h : (cart R unit) -> cart R (tybit0 unit), ((valid_path g) /\ ((valid_path h) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (g t) (p t))) d) /\ (Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (h t) (p t))) d)) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((@pathfinish (tybit0 unit) h) = (@pathstart (tybit0 unit) h)))))) -> (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) h) s) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on f s) -> (path_integral h f) = (path_integral g f)))). +Axiom thm_PATH_INTEGRAL_NEARBY_ENDS : forall s : (cart R (tybit0 unit)) -> Prop, forall p : (cart R unit) -> cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@path (tybit0 unit) p) /\ (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) p) s))) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall g : (cart R unit) -> cart R (tybit0 unit), forall h : (cart R unit) -> cart R (tybit0 unit), ((valid_path g) /\ ((valid_path h) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (g t) (p t))) d) /\ (Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (h t) (p t))) d)) /\ (((@pathstart (tybit0 unit) h) = (@pathstart (tybit0 unit) g)) /\ ((@pathfinish (tybit0 unit) h) = (@pathfinish (tybit0 unit) g)))))) -> (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) h) s) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on f s) -> (path_integral h f) = (path_integral g f)))). +Axiom thm_VALID_PATH_VECTOR_POLYNOMIAL_FUNCTION : forall p : (cart R unit) -> cart R (tybit0 unit), (@vector_polynomial_function unit (tybit0 unit) p) -> valid_path p. +Axiom thm_PATH_INTEGRAL_BOUND_EXISTS : forall s : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((valid_path g) /\ (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s))) -> exists L : R, (Rlt (R_of_N (NUMERAL 0%N)) L) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall B : R, ((holomorphic_on f s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> Rle (@vector_norm (tybit0 unit) (f z)) B)) -> Rle (@vector_norm (tybit0 unit) (path_integral g f)) (Rmult L B)). +Axiom thm_winding_number : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (@ε (cart R (tybit0 unit)) (fun n : cart R (tybit0 unit) => forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists p : (cart R unit) -> cart R (tybit0 unit), (valid_path p) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) p))) /\ (((@pathstart (tybit0 unit) p) = (@pathstart (tybit0 unit) g)) /\ (((@pathfinish (tybit0 unit) p) = (@pathfinish (tybit0 unit) g)) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (g t) (p t))) e) /\ ((path_integral p (fun w : cart R (tybit0 unit) => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_sub (tybit0 unit) w z))) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii n)))))))))). +Axiom thm_CX_2PII_NZ : ~ ((complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) ii)) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_PATH_INTEGRABLE_INVERSEDIFF : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((valid_path g) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)))) -> path_integrable_on (fun w : cart R (tybit0 unit) => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_sub (tybit0 unit) w z)) g. +Axiom thm_WINDING_NUMBER : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall e : R, ((@path (tybit0 unit) g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists p : (cart R unit) -> cart R (tybit0 unit), (valid_path p) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) p))) /\ (((@pathstart (tybit0 unit) p) = (@pathstart (tybit0 unit) g)) /\ (((@pathfinish (tybit0 unit) p) = (@pathfinish (tybit0 unit) g)) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (g t) (p t))) e) /\ ((path_integral p (fun w : cart R (tybit0 unit) => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_sub (tybit0 unit) w z))) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)))))))))). +Axiom thm_WINDING_NUMBER_UNIQUE : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall n : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> exists p : (cart R unit) -> cart R (tybit0 unit), (valid_path p) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) p))) /\ (((@pathstart (tybit0 unit) p) = (@pathstart (tybit0 unit) g)) /\ (((@pathfinish (tybit0 unit) p) = (@pathfinish (tybit0 unit) g)) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (g t) (p t))) e) /\ ((path_integral p (fun w : cart R (tybit0 unit) => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_sub (tybit0 unit) w z))) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii n))))))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = n. +Axiom thm_WINDING_NUMBER_UNIQUE_LOOP : forall {_1829265 : Type'}, forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall e : _1829265, forall n : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (forall e' : R, (Rlt (R_of_N (NUMERAL 0%N)) e') -> exists p : (cart R unit) -> cart R (tybit0 unit), (valid_path p) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) p))) /\ (((@pathfinish (tybit0 unit) p) = (@pathstart (tybit0 unit) p)) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (g t) (p t))) e') /\ ((path_integral p (fun w : cart R (tybit0 unit) => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_sub (tybit0 unit) w z))) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii n))))))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = n. +Axiom thm_WINDING_NUMBER_VALID_PATH : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((valid_path g) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (complex_mul (complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) ii))) (path_integral g (fun w : cart R (tybit0 unit) => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_sub (tybit0 unit) w z)))). +Axiom thm_HAS_PATH_INTEGRAL_WINDING_NUMBER : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((valid_path g) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)))) -> has_path_integral (fun w : cart R (tybit0 unit) => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_sub (tybit0 unit) w z)) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))))) g. +Axiom thm_WINDING_NUMBER_TRIVIAL : forall a : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (~ (z = a)) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a a)) z)) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_WINDING_NUMBER_JOIN : forall g1 : (cart R unit) -> cart R (tybit0 unit), forall g2 : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g1) /\ ((@path (tybit0 unit) g2) /\ (((@pathfinish (tybit0 unit) g1) = (@pathstart (tybit0 unit) g2)) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g1))) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g2))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@addadd (cart R (tybit0 unit)) g1 g2) z)) = (@vector_add (tybit0 unit) (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g1 z)) (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g2 z))). +Axiom thm_WINDING_NUMBER_REVERSEPATH : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@reversepath (tybit0 unit) g) z)) = (@vector_neg (tybit0 unit) (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))). +Axiom thm_WINDING_NUMBER_SHIFTPATH : forall g : (cart R unit) -> cart R (tybit0 unit), forall a : cart R unit, forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ (@IN (cart R unit) a (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@shiftpath (tybit0 unit) a g) z)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)). +Axiom thm_WINDING_NUMBER_SPLIT_LINEPATH : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) c (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))) /\ (~ (@IN (cart R (tybit0 unit)) z (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) z)) = (@vector_add (tybit0 unit) (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a c)) z)) (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c b)) z))). +Axiom thm_WINDING_NUMBER_EQUAL : forall p : (cart R unit) -> cart R (tybit0 unit), forall q : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p t) = (q t)) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) p z)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) q z)). +Axiom thm_WINDING_NUMBER_OFFSET : forall p : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) p z)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (fun w : cart R unit => @vector_sub (tybit0 unit) (p w) z) (Cx (R_of_N (NUMERAL 0%N))))). +Axiom thm_WINDING_NUMBER_JOIN_POS_COMBINED : forall g1 : (cart R unit) -> cart R (tybit0 unit), forall g2 : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (((valid_path g1) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g1))) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g1 z)))))) /\ (((valid_path g2) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g2))) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g2 z)))))) /\ ((@pathfinish (tybit0 unit) g1) = (@pathstart (tybit0 unit) g2)))) -> (valid_path (@addadd (cart R (tybit0 unit)) g1 g2)) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) (@addadd (cart R (tybit0 unit)) g1 g2)))) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@addadd (cart R (tybit0 unit)) g1 g2) z))))). +Axiom thm_RE_WINDING_NUMBER : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((valid_path g) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)))) -> (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))) = (Rdiv (Im (path_integral g (fun w : cart R (tybit0 unit) => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_sub (tybit0 unit) w z)))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)). +Axiom thm_WINDING_NUMBER_POS_LE : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ (forall x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))))) -> Rle (R_of_N (NUMERAL 0%N)) (Im (complex_mul (@vector_derivative (tybit0 unit) g (@_at unit x)) (cnj (@vector_sub (tybit0 unit) (g x) z))))))) -> Rle (R_of_N (NUMERAL 0%N)) (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))). +Axiom thm_WINDING_NUMBER_POS_LT_LEMMA : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall e : R, ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))))) -> Rle e (Im (complex_div (@vector_derivative (tybit0 unit) g (@_at unit x)) (@vector_sub (tybit0 unit) (g x) z))))))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))). +Axiom thm_WINDING_NUMBER_POS_LT : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall e : R, ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) e) /\ (forall x : cart R unit, (@IN (cart R unit) x (@open_interval unit (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))))) -> Rle e (Im (complex_mul (@vector_derivative (tybit0 unit) g (@_at unit x)) (cnj (@vector_sub (tybit0 unit) (g x) z)))))))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))). +Axiom thm_WINDING_NUMBER_AHLFORS_LEMMA : forall (z : cart R (tybit0 unit)), forall g : (cart R unit) -> cart R (tybit0 unit), forall a : cart R unit, forall b : cart R unit, ((@piecewise_differentiable_on (tybit0 unit) unit g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((Rle (drop a) (drop b)) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> ~ ((g x) = z)))) -> (@integrable_on (tybit0 unit) unit (fun x : cart R unit => complex_div (@vector_derivative (tybit0 unit) g (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) (@vector_sub (tybit0 unit) (g x) z)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((complex_mul (cexp (@vector_neg (tybit0 unit) (@integral (tybit0 unit) unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => complex_div (@vector_derivative (tybit0 unit) g (@within (cart R unit) (@_at unit x) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))))) (@vector_sub (tybit0 unit) (g x) z))))) (@vector_sub (tybit0 unit) (g b) z)) = (@vector_sub (tybit0 unit) (g a) z)). +Axiom thm_WINDING_NUMBER_AHLFORS : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall a : cart R unit, forall b : cart R unit, ((@piecewise_differentiable_on (tybit0 unit) unit g (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((Rle (drop a) (drop b)) /\ (forall x : cart R unit, (@IN (cart R unit) x (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) -> ~ ((g x) = z)))) -> (@integrable_on (tybit0 unit) unit (fun x : cart R unit => complex_div (@vector_derivative (tybit0 unit) g (@_at unit x)) (@vector_sub (tybit0 unit) (g x) z)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((complex_mul (cexp (@vector_neg (tybit0 unit) (@integral (tybit0 unit) unit (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) a b) (@nil (prod (cart R unit) (cart R unit))))) (fun x : cart R unit => complex_div (@vector_derivative (tybit0 unit) g (@_at unit x)) (@vector_sub (tybit0 unit) (g x) z))))) (@vector_sub (tybit0 unit) (g b) z)) = (@vector_sub (tybit0 unit) (g a) z)). +Axiom thm_WINDING_NUMBER_AHLFORS_FULL : forall p : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) p) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) p)))) -> (@vector_sub (tybit0 unit) (@pathfinish (tybit0 unit) p) z) = (complex_mul (cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) p z)))))) (@vector_sub (tybit0 unit) (@pathstart (tybit0 unit) p) z)). +Axiom thm_complex_integer : forall z : cart R (tybit0 unit), (complex_integer z) = ((integer (Re z)) /\ ((Im z) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_COMPLEX_INTEGER : forall (z : cart R (tybit0 unit)), (complex_integer z) = (exists n : R, (integer n) /\ (z = (Cx n))). +Axiom thm_INTEGER_WINDING_NUMBER_EQ : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)))) -> (complex_integer (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))) = ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)). +Axiom thm_INTEGER_WINDING_NUMBER : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))))) -> complex_integer (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)). +Axiom thm_WINDING_NUMBER_POS_MEETS : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ (Rge (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> forall w : cart R (tybit0 unit), (~ (w = z)) -> exists a : R, (Rlt (R_of_N (NUMERAL 0%N)) a) /\ (@IN (cart R (tybit0 unit)) (@vector_add (tybit0 unit) z (complex_mul (Cx a) (@vector_sub (tybit0 unit) w z))) (@path_image (tybit0 unit) g)). +Axiom thm_WINDING_NUMBER_BIG_MEETS : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ (Rge (Rabs (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> forall w : cart R (tybit0 unit), (~ (w = z)) -> exists a : R, (Rlt (R_of_N (NUMERAL 0%N)) a) /\ (@IN (cart R (tybit0 unit)) (@vector_add (tybit0 unit) z (complex_mul (Cx a) (@vector_sub (tybit0 unit) w z))) (@path_image (tybit0 unit) g)). +Axiom thm_WINDING_NUMBER_LT_1 : forall g : (cart R unit) -> cart R (tybit0 unit), forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ ((~ (w = z)) /\ (forall a : R, (Rlt (R_of_N (NUMERAL 0%N)) a) -> ~ (@IN (cart R (tybit0 unit)) (@vector_add (tybit0 unit) z (complex_mul (Cx a) (@vector_sub (tybit0 unit) w z))) (@path_image (tybit0 unit) g)))))) -> Rlt (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_WINDING_NUMBER_EQ_1 : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)))) /\ (Rlt (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_CONTINUOUS_AT_WINDING_NUMBER : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)))) -> @continuous (tybit0 unit) (cart R (tybit0 unit)) (fun w : cart R (tybit0 unit) => winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g w)) (@_at (tybit0 unit) z). +Axiom thm_CONTINUOUS_ON_WINDING_NUMBER : forall g : (cart R unit) -> cart R (tybit0 unit), (@path (tybit0 unit) g) -> @continuous_on (tybit0 unit) (tybit0 unit) (fun w : cart R (tybit0 unit) => winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g w)) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@path_image (tybit0 unit) g)). +Axiom thm_WINDING_NUMBER_CONSTANT : forall s : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((@connected (tybit0 unit) s) /\ ((@INTER (cart R (tybit0 unit)) s (@path_image (tybit0 unit) g)) = (@EMPTY (cart R (tybit0 unit))))))) -> exists k : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = k. +Axiom thm_WINDING_NUMBER_EQ : forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((@IN (cart R (tybit0 unit)) w s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((@connected (tybit0 unit) s) /\ ((@INTER (cart R (tybit0 unit)) s (@path_image (tybit0 unit) g)) = (@EMPTY (cart R (tybit0 unit))))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g w)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)). +Axiom thm_OPEN_WINDING_NUMBER_LEVELSETS : forall g : (cart R unit) -> cart R (tybit0 unit), forall k : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g))) -> @_open (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8785 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8785 ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ ((winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = k)) z)). +Axiom thm_WINDING_NUMBER_ZERO_IN_OUTSIDE : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (@IN (cart R (tybit0 unit)) z (@outside (tybit0 unit) (@path_image (tybit0 unit) g))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_WINDING_NUMBER_ZERO_OUTSIDE : forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((@convex (tybit0 unit) s) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((~ (@IN (cart R (tybit0 unit)) z s)) /\ (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_WINDING_NUMBER_ZERO_ATINFINITY : forall g : (cart R unit) -> cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g))) -> exists B : R, forall z : cart R (tybit0 unit), (Rle B (@vector_norm (tybit0 unit) z)) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_WINDING_NUMBER_ZERO_POINT : forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@path (tybit0 unit) g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((@_open (tybit0 unit) s) /\ (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s)))) -> exists z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) /\ ((winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_WINDING_NUMBER_AROUND_INSIDE : forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((@closed (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ (((@INTER (cart R (tybit0 unit)) s (@path_image (tybit0 unit) g)) = (@EMPTY (cart R (tybit0 unit)))) /\ ((@IN (cart R (tybit0 unit)) z s) /\ (~ ((winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL 0%N))))))))))) -> forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@UNION (cart R (tybit0 unit)) s (@inside (tybit0 unit) s))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g w)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)). +Axiom thm_WINDING_NUMBER_SUBPATH_CONTINUOUS : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((valid_path g) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g)))) -> @continuous_on unit (tybit0 unit) (fun a : cart R unit => winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@subpath (cart R (tybit0 unit)) (@vec unit (NUMERAL 0%N)) a g) z)) (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit))))). +Axiom thm_WINDING_NUMBER_IVT_POS : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall w : R, ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ ((Rle (R_of_N (NUMERAL 0%N)) w) /\ (Rle w (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))))))) -> exists t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@subpath (cart R (tybit0 unit)) (@vec unit (NUMERAL 0%N)) t g) z))) = w). +Axiom thm_WINDING_NUMBER_IVT_NEG : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall w : R, ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ ((Rle (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))) w) /\ (Rle w (R_of_N (NUMERAL 0%N)))))) -> exists t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@subpath (cart R (tybit0 unit)) (@vec unit (NUMERAL 0%N)) t g) z))) = w). +Axiom thm_WINDING_NUMBER_IVT_ABS : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall w : R, ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ ((Rle (R_of_N (NUMERAL 0%N)) w) /\ (Rle w (Rabs (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)))))))) -> exists t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((Rabs (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@subpath (cart R (tybit0 unit)) (@vec unit (NUMERAL 0%N)) t g) z)))) = w). +Axiom thm_WINDING_NUMBER_LT_HALF : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : R, ((valid_path g) /\ ((Rle (@dot (tybit0 unit) a z) b) /\ (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8788 : cart R (tybit0 unit) => exists w : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8788 (Rgt (@dot (tybit0 unit) a w) b) w))))) -> Rlt (Rabs (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)))) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_WINDING_NUMBER_LE_HALF : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : R, ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ ((~ (a = (@vec (tybit0 unit) (NUMERAL 0%N)))) /\ ((Rle (@dot (tybit0 unit) a z) b) /\ (@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8789 : cart R (tybit0 unit) => exists w : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8789 (Rge (@dot (tybit0 unit) a w) b) w))))))) -> Rle (Rabs (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)))) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_WINDING_NUMBER_LT_HALF_LINEPATH : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (~ (@IN (cart R (tybit0 unit)) z (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))))) -> Rlt (Rabs (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) z)))) (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_WINDING_NUMBER_LINEPATH_POS_LT : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) (Im (complex_mul (@vector_sub (tybit0 unit) b a) (cnj (@vector_sub (tybit0 unit) b z))))) -> Rlt (R_of_N (NUMERAL 0%N)) (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) z))). +Axiom thm_WINDING_NUMBER_TRIANGLE : forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@interior (tybit0 unit) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit))))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) (@addadd (cart R (tybit0 unit)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)))) z)) = (@COND (cart R (tybit0 unit)) (Rlt (R_of_N (NUMERAL 0%N)) (Im (complex_mul (@vector_sub (tybit0 unit) b a) (cnj (@vector_sub (tybit0 unit) b z))))) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_CAUCHY_INTEGRAL_FORMULA_WEAK : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@convex (tybit0 unit) s) /\ ((@FINITE (cart R (tybit0 unit)) k) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@DIFF (cart R (tybit0 unit)) (@interior (tybit0 unit) s) k)) -> complex_differentiable f (@_at (tybit0 unit) x)) /\ ((@IN (cart R (tybit0 unit)) z (@DIFF (cart R (tybit0 unit)) (@interior (tybit0 unit) s) k)) /\ ((valid_path g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) (@DELETE (cart R (tybit0 unit)) s z)) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g))))))))) -> has_path_integral (fun w : cart R (tybit0 unit) => complex_div (f w) (@vector_sub (tybit0 unit) w z)) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (complex_mul (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) (f z))))) g. +Axiom thm_CAUCHY_INTEGRAL_FORMULA_CONVEX_SIMPLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@convex (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((@IN (cart R (tybit0 unit)) z (@interior (tybit0 unit) s)) /\ ((valid_path g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) (@DELETE (cart R (tybit0 unit)) s z)) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g))))))) -> has_path_integral (fun w : cart R (tybit0 unit) => complex_div (f w) (@vector_sub (tybit0 unit) w z)) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (complex_mul (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) (f z))))) g. +Axiom thm_CAUCHY_THEOREM_HOMOTOPIC_PATHS : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall h : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((valid_path g) /\ ((valid_path h) /\ (@homotopic_paths (tybit0 unit) s g h))))) -> (path_integral g f) = (path_integral h f). +Axiom thm_CAUCHY_THEOREM_HOMOTOPIC_LOOPS : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall h : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((valid_path g) /\ ((valid_path h) /\ (@homotopic_loops (tybit0 unit) s g h))))) -> (path_integral g f) = (path_integral h f). +Axiom thm_CAUCHY_THEOREM_NULL_HOMOTOPIC : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((@IN (cart R (tybit0 unit)) a s) /\ ((valid_path g) /\ (@homotopic_loops (tybit0 unit) s g (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a a))))))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_CAUCHY_THEOREM_SIMPLY_CONNECTED : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@simply_connected (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((valid_path g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g))))))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_WINDING_NUMBER_HOMOTOPIC_PATHS : forall g : (cart R unit) -> cart R (tybit0 unit), forall h : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@homotopic_paths (tybit0 unit) (@DELETE (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) z) g h) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) h z)). +Axiom thm_WINDING_NUMBER_HOMOTOPIC_LOOPS : forall g : (cart R unit) -> cart R (tybit0 unit), forall h : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@homotopic_loops (tybit0 unit) (@DELETE (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) z) g h) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) h z)). +Axiom thm_WINDING_NUMBER_PATHS_LINEAR_EQ : forall g : (cart R unit) -> cart R (tybit0 unit), forall h : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((@path (tybit0 unit) h) /\ (((@pathstart (tybit0 unit) h) = (@pathstart (tybit0 unit) g)) /\ (((@pathfinish (tybit0 unit) h) = (@pathfinish (tybit0 unit) g)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> ~ (@IN (cart R (tybit0 unit)) z (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (g t) (h t)) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) h z)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)). +Axiom thm_WINDING_NUMBER_LOOPS_LINEAR_EQ : forall g : (cart R unit) -> cart R (tybit0 unit), forall h : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((@path (tybit0 unit) h) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (((@pathfinish (tybit0 unit) h) = (@pathstart (tybit0 unit) h)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> ~ (@IN (cart R (tybit0 unit)) z (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (g t) (h t)) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) h z)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)). +Axiom thm_WINDING_NUMBER_NEARBY_PATHS_EQ : forall g : (cart R unit) -> cart R (tybit0 unit), forall h : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((@path (tybit0 unit) h) /\ (((@pathstart (tybit0 unit) h) = (@pathstart (tybit0 unit) g)) /\ (((@pathfinish (tybit0 unit) h) = (@pathfinish (tybit0 unit) g)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (h t) (g t))) (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (g t) z))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) h z)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)). +Axiom thm_WINDING_NUMBER_NEARBY_LOOPS_EQ : forall g : (cart R unit) -> cart R (tybit0 unit), forall h : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((@path (tybit0 unit) h) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (((@pathfinish (tybit0 unit) h) = (@pathstart (tybit0 unit) h)) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (h t) (g t))) (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (g t) z))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) h z)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)). +Axiom thm_WINDING_NUMBER_SUBPATH_COMBINE : forall g : (cart R unit) -> cart R (tybit0 unit), forall u : cart R unit, forall v : cart R unit, forall w : cart R unit, forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ ((@IN (cart R unit) u (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ ((@IN (cart R unit) v (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) /\ (@IN (cart R unit) w (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))))))) -> (@vector_add (tybit0 unit) (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@subpath (cart R (tybit0 unit)) u v g) z)) (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@subpath (cart R (tybit0 unit)) v w g) z))) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@subpath (cart R (tybit0 unit)) u w g) z)). +Axiom thm_WINDING_NUMBER_STRONG : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall e : R, ((@path (tybit0 unit) g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists p : (cart R unit) -> cart R (tybit0 unit), (@vector_polynomial_function unit (tybit0 unit) p) /\ ((valid_path p) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) p))) /\ (((@pathstart (tybit0 unit) p) = (@pathstart (tybit0 unit) g)) /\ (((@pathfinish (tybit0 unit) p) = (@pathfinish (tybit0 unit) g)) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (g t) (p t))) e) /\ ((path_integral p (fun w : cart R (tybit0 unit) => complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@vector_sub (tybit0 unit) w z))) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))))))))))). +Axiom thm_WINDING_NUMBER_FROM_INNERPATH : forall c1 : (cart R unit) -> cart R (tybit0 unit), forall c2 : (cart R unit) -> cart R (tybit0 unit), forall c : (cart R unit) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall d : cart R (tybit0 unit), ((~ (a = b)) /\ ((@simple_path (tybit0 unit) c1) /\ (((@pathstart (tybit0 unit) c1) = a) /\ (((@pathfinish (tybit0 unit) c1) = b) /\ ((@simple_path (tybit0 unit) c2) /\ (((@pathstart (tybit0 unit) c2) = a) /\ (((@pathfinish (tybit0 unit) c2) = b) /\ ((@simple_path (tybit0 unit) c) /\ (((@pathstart (tybit0 unit) c) = a) /\ (((@pathfinish (tybit0 unit) c) = b) /\ (((@INTER (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c2)) = (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))) /\ (((@INTER (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c)) = (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))) /\ (((@INTER (cart R (tybit0 unit)) (@path_image (tybit0 unit) c2) (@path_image (tybit0 unit) c)) = (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))) /\ ((~ ((@INTER (cart R (tybit0 unit)) (@path_image (tybit0 unit) c) (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c2)))) = (@EMPTY (cart R (tybit0 unit))))) /\ ((@IN (cart R (tybit0 unit)) z (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c)))) /\ (((winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@addadd (cart R (tybit0 unit)) c1 (@reversepath (tybit0 unit) c)) z)) = d) /\ (~ (d = (Cx (R_of_N (NUMERAL 0%N))))))))))))))))))))) -> (@IN (cart R (tybit0 unit)) z (@inside (tybit0 unit) (@UNION (cart R (tybit0 unit)) (@path_image (tybit0 unit) c1) (@path_image (tybit0 unit) c2)))) /\ ((winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@addadd (cart R (tybit0 unit)) c1 (@reversepath (tybit0 unit) c2)) z)) = d). +Axiom thm_SIMPLE_CLOSED_PATH_WINDING_NUMBER_INSIDE : forall g : (cart R unit) -> cart R (tybit0 unit), (@simple_path (tybit0 unit) g) -> (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@inside (tybit0 unit) (@path_image (tybit0 unit) g))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) \/ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@inside (tybit0 unit) (@path_image (tybit0 unit) g))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_SIMPLE_CLOSED_PATH_ABS_WINDING_NUMBER_INSIDE : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@simple_path (tybit0 unit) g) /\ (@IN (cart R (tybit0 unit)) z (@inside (tybit0 unit) (@path_image (tybit0 unit) g)))) -> (Rabs (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_SIMPLE_CLOSED_PATH_NORM_WINDING_NUMBER_INSIDE : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@simple_path (tybit0 unit) g) /\ (@IN (cart R (tybit0 unit)) z (@inside (tybit0 unit) (@path_image (tybit0 unit) g)))) -> (@vector_norm (tybit0 unit) (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_SIMPLE_CLOSED_PATH_WINDING_NUMBER_CASES : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@simple_path (tybit0 unit) g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))))) -> @IN (cart R (tybit0 unit)) (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) (@INSERT (cart R (tybit0 unit)) (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@EMPTY (cart R (tybit0 unit)))))). +Axiom thm_SIMPLE_CLOSED_PATH_WINDING_NUMBER_POS : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@simple_path (tybit0 unit) g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_SIMPLY_CONNECTED_IMP_WINDING_NUMBER_ZERO : forall s : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@simply_connected (tybit0 unit) s) /\ ((@path (tybit0 unit) g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (~ (@IN (cart R (tybit0 unit)) z s)))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_NO_BOUNDED_CONNECTED_COMPONENT_IMP_WINDING_NUMBER_ZERO : forall s : (cart R (tybit0 unit)) -> Prop, (~ (exists z : cart R (tybit0 unit), (~ (@IN (cart R (tybit0 unit)) z s)) /\ (@bounded (tybit0 unit) (@connected_component (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) s) z)))) -> forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (~ (@IN (cart R (tybit0 unit)) z s))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_NO_BOUNDED_PATH_COMPONENT_IMP_WINDING_NUMBER_ZERO : forall s : (cart R (tybit0 unit)) -> Prop, (~ (exists z : cart R (tybit0 unit), (~ (@IN (cart R (tybit0 unit)) z s)) /\ (@bounded (tybit0 unit) (@path_component (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) s) z)))) -> forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (~ (@IN (cart R (tybit0 unit)) z s))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_partcirclepath : forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t)))) = (fun x : cart R unit => @vector_add (tybit0 unit) z (complex_mul (Cx r) (cexp (complex_mul ii (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx s) (Cx t)) x))))). +Axiom thm_PATHSTART_PARTCIRCLEPATH : forall r : R, forall z : cart R (tybit0 unit), forall s : R, forall t : R, (@pathstart (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t))))) = (@vector_add (tybit0 unit) z (complex_mul (Cx r) (cexp (complex_mul ii (Cx s))))). +Axiom thm_PATHFINISH_PARTCIRCLEPATH : forall r : R, forall z : cart R (tybit0 unit), forall s : R, forall t : R, (@pathfinish (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t))))) = (@vector_add (tybit0 unit) z (complex_mul (Cx r) (cexp (complex_mul ii (Cx t))))). +Axiom thm_HAS_VECTOR_DERIVATIVE_PARTCIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, forall x : cart R unit, @has_vector_derivative (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t)))) (complex_mul ii (complex_mul (Cx r) (complex_mul (@vector_sub (tybit0 unit) (Cx t) (Cx s)) (cexp (complex_mul ii (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx s) (Cx t)) x)))))) (@_at unit x). +Axiom thm_VECTOR_DERIVATIVE_PARTCIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, forall x : cart R unit, (@vector_derivative (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t)))) (@_at unit x)) = (complex_mul ii (complex_mul (Cx r) (complex_mul (@vector_sub (tybit0 unit) (Cx t) (Cx s)) (cexp (complex_mul ii (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (Cx s) (Cx t)) x)))))). +Axiom thm_VALID_PATH_PARTCIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, valid_path (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t)))). +Axiom thm_PATH_PARTCIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, @path (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t)))). +Axiom thm_PATH_IMAGE_PARTCIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, ((Rle (R_of_N (NUMERAL 0%N)) r) /\ (Rle s t)) -> (@path_image (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t))))) = (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8793 : cart R (tybit0 unit) => exists x : R, @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8793 ((Rle s x) /\ (Rle x t)) (@vector_add (tybit0 unit) z (complex_mul (Cx r) (cexp (complex_mul ii (Cx x))))))). +Axiom thm_PATH_IMAGE_PARTCIRCLEPATH_SUBSET_ABS : forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, @SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t))))) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R z (Rabs r))). +Axiom thm_PATH_IMAGE_PARTCIRCLEPATH_SUBSET : forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, (Rle (R_of_N (NUMERAL 0%N)) r) -> @SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t))))) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r)). +Axiom thm_IN_PATH_IMAGE_PARTCIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, forall w : cart R (tybit0 unit), ((Rle (R_of_N (NUMERAL 0%N)) r) /\ (@IN (cart R (tybit0 unit)) w (@path_image (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t))))))) -> (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) w z)) = r. +Axiom thm_HAS_PATH_INTEGRAL_BOUND_PARTCIRCLEPATH_STRONG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, forall B : R, forall k : (cart R (tybit0 unit)) -> Prop, ((@FINITE (cart R (tybit0 unit)) k) /\ ((has_path_integral f i (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t))))) /\ ((Rle (R_of_N (NUMERAL 0%N)) B) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((Rle s t) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@DIFF (cart R (tybit0 unit)) (@path_image (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t))))) k)) -> Rle (@vector_norm (tybit0 unit) (f x)) B)))))) -> Rle (@vector_norm (tybit0 unit) i) (Rmult B (Rmult r (Rminus t s))). +Axiom thm_HAS_PATH_INTEGRAL_BOUND_PARTCIRCLEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, forall B : R, ((has_path_integral f i (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t))))) /\ ((Rle (R_of_N (NUMERAL 0%N)) B) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((Rle s t) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@path_image (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t)))))) -> Rle (@vector_norm (tybit0 unit) (f x)) B))))) -> Rle (@vector_norm (tybit0 unit) i) (Rmult B (Rmult r (Rminus t s))). +Axiom thm_PATH_INTEGRABLE_CONTINUOUS_PARTCIRCLEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, (@continuous_on (tybit0 unit) (tybit0 unit) f (@path_image (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t)))))) -> path_integrable_on f (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t)))). +Axiom thm_WINDING_NUMBER_PARTCIRCLEPATH_POS_LT : forall r : R, forall z : cart R (tybit0 unit), forall s : R, forall t : R, forall w : cart R (tybit0 unit), ((Rlt s t) /\ (Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) w z)) r)) -> Rlt (R_of_N (NUMERAL 0%N)) (Re (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t)))) w))). +Axiom thm_SIMPLE_PATH_PARTCIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, (@simple_path (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t))))) = ((~ (r = (R_of_N (NUMERAL 0%N)))) /\ ((~ (s = t)) /\ (Rle (Rabs (Rminus s t)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)))). +Axiom thm_ARC_PARTCIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, ((~ (r = (R_of_N (NUMERAL 0%N)))) /\ ((~ (s = t)) /\ (Rlt (Rabs (Rminus s t)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)))) -> @arc (tybit0 unit) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t)))). +Axiom thm_WINDING_NUMBER_PARTCIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, forall s : R, forall t : R, (~ (r = (R_of_N (NUMERAL 0%N)))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R s t)))) z)) = (Cx (Rdiv (Rminus t s) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))). +Axiom thm_circlepath : forall z : cart R (tybit0 unit), forall r : R, (circlepath (@pair (cart R (tybit0 unit)) R z r)) = (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R (R_of_N (NUMERAL 0%N)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi))))). +Axiom thm_CIRCLEPATH : forall (z : cart R (tybit0 unit)) (r : R), (circlepath (@pair (cart R (tybit0 unit)) R z r)) = (fun x : cart R unit => @vector_add (tybit0 unit) z (complex_mul (Cx r) (cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (Cx (drop x)))))))). +Axiom thm_PATH_CIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, @path (tybit0 unit) (circlepath (@pair (cart R (tybit0 unit)) R z r)). +Axiom thm_PATHSTART_CIRCLEPATH : forall r : R, forall z : cart R (tybit0 unit), (@pathstart (tybit0 unit) (circlepath (@pair (cart R (tybit0 unit)) R z r))) = (@vector_add (tybit0 unit) z (Cx r)). +Axiom thm_PATHFINISH_CIRCLEPATH : forall r : R, forall z : cart R (tybit0 unit), (@pathfinish (tybit0 unit) (circlepath (@pair (cart R (tybit0 unit)) R z r))) = (@vector_add (tybit0 unit) z (Cx r)). +Axiom thm_HAS_VECTOR_DERIVATIVE_CIRCLEPATH : forall (z : cart R (tybit0 unit)) (r : R) (x : cart R unit), @has_vector_derivative (tybit0 unit) (circlepath (@pair (cart R (tybit0 unit)) R z r)) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (complex_mul (Cx r) (cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (Cx (drop x)))))))))) (@_at unit x). +Axiom thm_VECTOR_DERIVATIVE_CIRCLEPATH : forall (z : cart R (tybit0 unit)) (r : R) (x : cart R unit), (@vector_derivative (tybit0 unit) (circlepath (@pair (cart R (tybit0 unit)) R z r)) (@_at unit x)) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (complex_mul (Cx r) (cexp (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (Cx (drop x)))))))))). +Axiom thm_VALID_PATH_CIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, valid_path (circlepath (@pair (cart R (tybit0 unit)) R z r)). +Axiom thm_RECTIFIABLE_PATH_CIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, @rectifiable_path (tybit0 unit) (circlepath (@pair (cart R (tybit0 unit)) R z r)). +Axiom thm_PATH_LENGTH_CIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, (@path_length (tybit0 unit) (circlepath (@pair (cart R (tybit0 unit)) R z r))) = (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult pi (Rabs r))). +Axiom thm_SHIFTPATH_CIRCLEPATH : forall a : cart R unit, forall z : cart R (tybit0 unit), forall r : R, (@shiftpath (tybit0 unit) a (circlepath (@pair (cart R (tybit0 unit)) R z r))) = (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult pi (drop a))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult pi (Rplus (drop a) (R_of_N (NUMERAL (BIT1 0%N)))))))))). +Axiom thm_PATH_IMAGE_CIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, (Rle (R_of_N (NUMERAL 0%N)) r) -> (@path_image (tybit0 unit) (circlepath (@pair (cart R (tybit0 unit)) R z r))) = (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r)). +Axiom thm_HAS_PATH_INTEGRAL_BOUND_CIRCLEPATH_STRONG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall B : R, forall k : (cart R (tybit0 unit)) -> Prop, ((@FINITE (cart R (tybit0 unit)) k) /\ ((has_path_integral f i (circlepath (@pair (cart R (tybit0 unit)) R z r))) /\ ((Rle (R_of_N (NUMERAL 0%N)) B) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall x : cart R (tybit0 unit), (((@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) x z)) = r) /\ (~ (@IN (cart R (tybit0 unit)) x k))) -> Rle (@vector_norm (tybit0 unit) (f x)) B))))) -> Rle (@vector_norm (tybit0 unit) i) (Rmult B (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult pi r))). +Axiom thm_HAS_PATH_INTEGRAL_BOUND_CIRCLEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall i : cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall B : R, ((has_path_integral f i (circlepath (@pair (cart R (tybit0 unit)) R z r))) /\ ((Rle (R_of_N (NUMERAL 0%N)) B) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall x : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) x z)) = r) -> Rle (@vector_norm (tybit0 unit) (f x)) B)))) -> Rle (@vector_norm (tybit0 unit) i) (Rmult B (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult pi r))). +Axiom thm_PATH_INTEGRABLE_CONTINUOUS_CIRCLEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, (@continuous_on (tybit0 unit) (tybit0 unit) f (@path_image (tybit0 unit) (circlepath (@pair (cart R (tybit0 unit)) R z r)))) -> path_integrable_on f (circlepath (@pair (cart R (tybit0 unit)) R z r)). +Axiom thm_SIMPLE_PATH_CIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, (@simple_path (tybit0 unit) (circlepath (@pair (cart R (tybit0 unit)) R z r))) = (~ (r = (R_of_N (NUMERAL 0%N)))). +Axiom thm_WINDING_NUMBER_CIRCLEPATH : forall z : cart R (tybit0 unit), forall r : R, forall w : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) w z)) r) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (circlepath (@pair (cart R (tybit0 unit)) R z r)) w)) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_RECTIFIABLE_LOOP_RELATIVE_FRONTIER_CONVEX : forall {N' : Type'}, forall s : (cart R N') -> Prop, ((@bounded N' s) /\ ((@convex N' s) /\ ((@aff_dim N' s) = (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) -> exists g : (cart R unit) -> cart R N', (@simple_path N' g) /\ ((@rectifiable_path N' g) /\ (((@pathfinish N' g) = (@pathstart N' g)) /\ ((@path_image N' g) = (@relative_frontier N' s)))). +Axiom thm_RECTIFIABLE_LOOP_FRONTIER_CONVEX : forall s : (cart R (tybit0 unit)) -> Prop, ((@bounded (tybit0 unit) s) /\ ((@convex (tybit0 unit) s) /\ (~ ((@interior (tybit0 unit) s) = (@EMPTY (cart R (tybit0 unit))))))) -> exists g : (cart R unit) -> cart R (tybit0 unit), (@simple_path (tybit0 unit) g) /\ ((@rectifiable_path (tybit0 unit) g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((@path_image (tybit0 unit) g) = (@frontier (tybit0 unit) s)))). +Axiom thm_RECTIFIABLE_PATH_FRONTIER_CONVEX : forall s : (cart R (tybit0 unit)) -> Prop, ((@bounded (tybit0 unit) s) /\ ((@convex (tybit0 unit) s) /\ (~ (s = (@EMPTY (cart R (tybit0 unit))))))) -> exists g : (cart R unit) -> cart R (tybit0 unit), (@rectifiable_path (tybit0 unit) g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((@path_image (tybit0 unit) g) = (@frontier (tybit0 unit) s))). +Axiom thm_CAUCHY_INTEGRAL_CIRCLEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall w : cart R (tybit0 unit), ((@continuous_on (tybit0 unit) (tybit0 unit) f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))))) -> has_path_integral (fun u : cart R (tybit0 unit) => complex_div (f u) (@vector_sub (tybit0 unit) u w)) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (f w)))) (circlepath (@pair (cart R (tybit0 unit)) R z r)). +Axiom thm_CAUCHY_INTEGRAL_CIRCLEPATH_SIMPLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall w : cart R (tybit0 unit), ((holomorphic_on f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r)))) -> has_path_integral (fun u : cart R (tybit0 unit) => complex_div (f u) (@vector_sub (tybit0 unit) u w)) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (f w)))) (circlepath (@pair (cart R (tybit0 unit)) R z r)). +Axiom thm_PATH_INTEGRAL_UNIFORM_LIMIT : forall {A : Type'}, forall net' : net A, forall f : A -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall B : R, forall g : (cart R unit) -> cart R (tybit0 unit), forall l : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((~ (@trivial_limit A net')) /\ ((valid_path g) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (@vector_norm (tybit0 unit) (@vector_derivative (tybit0 unit) g (@_at unit t))) B) /\ ((@eventually A (fun n : A => path_integrable_on (f n) g) net') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun n : A => forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@path_image (tybit0 unit) g)) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f n x) (l x))) e) net'))))) -> (path_integrable_on l g) /\ (@FImp (tybit0 unit) A (fun n : A => path_integral g (f n)) (path_integral g l) net'). +Axiom thm_PATH_INTEGRAL_UNIFORM_LIMIT_CIRCLEPATH : forall {A : Type'}, forall net' : net A, forall f : A -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall l : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((~ (@trivial_limit A net')) /\ ((@eventually A (fun n : A => path_integrable_on (f n) (circlepath (@pair (cart R (tybit0 unit)) R z r))) net') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun n : A => forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@path_image (tybit0 unit) (circlepath (@pair (cart R (tybit0 unit)) R z r)))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f n x) (l x))) e) net')))) -> (path_integrable_on l (circlepath (@pair (cart R (tybit0 unit)) R z r))) /\ (@FImp (tybit0 unit) A (fun n : A => path_integral (circlepath (@pair (cart R (tybit0 unit)) R z r)) (f n)) (path_integral (circlepath (@pair (cart R (tybit0 unit)) R z r)) l) net'). +Axiom thm_CAUCHY_NEXT_DERIVATIVE : forall f' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R unit) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : N, forall B : R, ((~ (k = (NUMERAL 0%N))) /\ ((@_open (tybit0 unit) s) /\ ((valid_path g) /\ ((forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> Rle (@vector_norm (tybit0 unit) (@vector_derivative (tybit0 unit) g (@_at unit t))) B) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f' (@path_image (tybit0 unit) g)) /\ (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@DIFF (cart R (tybit0 unit)) s (@path_image (tybit0 unit) g))) -> has_path_integral (fun u : cart R (tybit0 unit) => complex_div (f' u) (complex_pow (@vector_sub (tybit0 unit) u w) k)) (f w) g)))))) -> forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@DIFF (cart R (tybit0 unit)) s (@path_image (tybit0 unit) g))) -> (path_integrable_on (fun u : cart R (tybit0 unit) => complex_div (f' u) (complex_pow (@vector_sub (tybit0 unit) u w) (N.add k (NUMERAL (BIT1 0%N))))) g) /\ (has_complex_derivative f (complex_mul (Cx (R_of_N k)) (path_integral g (fun u : cart R (tybit0 unit) => complex_div (f' u) (complex_pow (@vector_sub (tybit0 unit) u w) (N.add k (NUMERAL (BIT1 0%N))))))) (@_at (tybit0 unit) w)). +Axiom thm_CAUCHY_NEXT_DERIVATIVE_CIRCLEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall k : N, ((~ (k = (NUMERAL 0%N))) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@path_image (tybit0 unit) (circlepath (@pair (cart R (tybit0 unit)) R z r)))) /\ (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> has_path_integral (fun u : cart R (tybit0 unit) => complex_div (f u) (complex_pow (@vector_sub (tybit0 unit) u w) k)) (g w) (circlepath (@pair (cart R (tybit0 unit)) R z r))))) -> forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> (path_integrable_on (fun u : cart R (tybit0 unit) => complex_div (f u) (complex_pow (@vector_sub (tybit0 unit) u w) (N.add k (NUMERAL (BIT1 0%N))))) (circlepath (@pair (cart R (tybit0 unit)) R z r))) /\ (has_complex_derivative g (complex_mul (Cx (R_of_N k)) (path_integral (circlepath (@pair (cart R (tybit0 unit)) R z r)) (fun u : cart R (tybit0 unit) => complex_div (f u) (complex_pow (@vector_sub (tybit0 unit) u w) (N.add k (NUMERAL (BIT1 0%N))))))) (@_at (tybit0 unit) w)). +Axiom thm_CAUCHY_DERIVATIVE_INTEGRAL_CIRCLEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall w : cart R (tybit0 unit), ((@continuous_on (tybit0 unit) (tybit0 unit) f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))))) -> (path_integrable_on (fun u : cart R (tybit0 unit) => complex_div (f u) (complex_pow (@vector_sub (tybit0 unit) u w) (NUMERAL (BIT0 (BIT1 0%N))))) (circlepath (@pair (cart R (tybit0 unit)) R z r))) /\ (has_complex_derivative f (complex_mul (complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) ii))) (path_integral (circlepath (@pair (cart R (tybit0 unit)) R z r)) (fun u : cart R (tybit0 unit) => complex_div (f u) (complex_pow (@vector_sub (tybit0 unit) u w) (NUMERAL (BIT0 (BIT1 0%N))))))) (@_at (tybit0 unit) w)). +Axiom thm_HOLOMORPHIC_DERIVATIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> has_complex_derivative f (f' z) (@_at (tybit0 unit) z))) -> holomorphic_on f' s. +Axiom thm_HOLOMORPHIC_COMPLEX_DERIVATIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ (holomorphic_on f s)) -> holomorphic_on (complex_derivative f) s. +Axiom thm_ANALYTIC_COMPLEX_DERIVATIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (analytic_on f s) -> analytic_on (complex_derivative f) s. +Axiom thm_HOLOMORPHIC_HIGHER_COMPLEX_DERIVATIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall n : N, ((@_open (tybit0 unit) s) /\ (holomorphic_on f s)) -> holomorphic_on (higher_complex_derivative n f) s. +Axiom thm_ANALYTIC_HIGHER_COMPLEX_DERIVATIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall n : N, (analytic_on f s) -> analytic_on (higher_complex_derivative n f) s. +Axiom thm_HAS_COMPLEX_DERIVATIVE_HIGHER_COMPLEX_DERIVATIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall x : cart R (tybit0 unit), forall n : N, ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ (@IN (cart R (tybit0 unit)) x s))) -> has_complex_derivative (higher_complex_derivative n f) (higher_complex_derivative (N.succ n) f x) (@_at (tybit0 unit) x). +Axiom thm_MORERA_LOCAL_TRIANGLE_GEN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> exists e : R, exists a : cart R (tybit0 unit), (Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a e))) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a e))) /\ (forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@SUBSET (cart R (tybit0 unit)) (@closed_segment (tybit0 unit) (@cons (prod (cart R (tybit0 unit)) (cart R (tybit0 unit))) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c) (@nil (prod (cart R (tybit0 unit)) (cart R (tybit0 unit)))))) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a e))) -> (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)) f))) = (Cx (R_of_N (NUMERAL 0%N))))))) -> analytic_on f s. +Axiom thm_MORERA_LOCAL_TRIANGLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> exists t : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) t) /\ ((@IN (cart R (tybit0 unit)) z t) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f t) /\ (forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@SUBSET (cart R (tybit0 unit)) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit))))))) t) -> (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)) f))) = (Cx (R_of_N (NUMERAL 0%N))))))) -> analytic_on f s. +Axiom thm_MORERA_TRIANGLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ (forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall c : cart R (tybit0 unit), (@SUBSET (cart R (tybit0 unit)) (@hull (cart R (tybit0 unit)) (@convex (tybit0 unit)) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@INSERT (cart R (tybit0 unit)) c (@EMPTY (cart R (tybit0 unit))))))) s) -> (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a b)) f) (@vector_add (tybit0 unit) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) b c)) f) (path_integral (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) c a)) f))) = (Cx (R_of_N (NUMERAL 0%N)))))) -> analytic_on f s. +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_EQ_ITER : forall n : N, (higher_complex_derivative n) = (@ITER ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) n complex_derivative). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_HIGHER_COMPLEX_DERIVATIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall m : N, forall n : N, (higher_complex_derivative m (higher_complex_derivative n f)) = (higher_complex_derivative (N.add m n) f). +Axiom thm_higher_complex_derivative_alt : (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (higher_complex_derivative (NUMERAL 0%N) f) = f) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : N, (higher_complex_derivative (N.succ n) f) = (higher_complex_derivative n (complex_derivative f))). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_LINEAR : forall c : cart R (tybit0 unit), forall n : N, (higher_complex_derivative n (fun w : cart R (tybit0 unit) => complex_mul c w)) = (fun z : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) (n = (NUMERAL 0%N)) (complex_mul c z) (@COND (cart R (tybit0 unit)) (n = (NUMERAL (BIT1 0%N))) c (Cx (R_of_N (NUMERAL 0%N))))). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_CONST : forall i : N, forall c : cart R (tybit0 unit), (higher_complex_derivative i (fun w : cart R (tybit0 unit) => c)) = (fun w : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) (i = (NUMERAL 0%N)) c (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_ID : forall z : cart R (tybit0 unit), forall i : N, (higher_complex_derivative i (fun w : cart R (tybit0 unit) => w) z) = (@COND (cart R (tybit0 unit)) (i = (NUMERAL 0%N)) z (@COND (cart R (tybit0 unit)) (i = (NUMERAL (BIT1 0%N))) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (Cx (R_of_N (NUMERAL 0%N))))). +Axiom thm_HAS_COMPLEX_DERIVATIVE_ITER_1 : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : N, forall z : cart R (tybit0 unit), (((f z) = z) /\ (has_complex_derivative f (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@_at (tybit0 unit) z))) -> has_complex_derivative (@ITER (cart R (tybit0 unit)) n f) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@_at (tybit0 unit) z). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_NEG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall n : N, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ (@IN (cart R (tybit0 unit)) z s))) -> (higher_complex_derivative n (fun w : cart R (tybit0 unit) => @vector_neg (tybit0 unit) (f w)) z) = (@vector_neg (tybit0 unit) (higher_complex_derivative n f z)). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_ADD : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall n : N, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((holomorphic_on g s) /\ (@IN (cart R (tybit0 unit)) z s)))) -> (higher_complex_derivative n (fun w : cart R (tybit0 unit) => @vector_add (tybit0 unit) (f w) (g w)) z) = (@vector_add (tybit0 unit) (higher_complex_derivative n f z) (higher_complex_derivative n g z)). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_SUB : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall n : N, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((holomorphic_on g s) /\ (@IN (cart R (tybit0 unit)) z s)))) -> (higher_complex_derivative n (fun w : cart R (tybit0 unit) => @vector_sub (tybit0 unit) (f w) (g w)) z) = (@vector_sub (tybit0 unit) (higher_complex_derivative n f z) (higher_complex_derivative n g z)). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_MUL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall n : N, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((holomorphic_on g s) /\ (@IN (cart R (tybit0 unit)) z s)))) -> (higher_complex_derivative n (fun w : cart R (tybit0 unit) => complex_mul (f w) (g w)) z) = (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (Cx (R_of_N (binom (@pair N N n i)))) (complex_mul (higher_complex_derivative i f z) (higher_complex_derivative (N.sub n i) g z)))). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_TRANSFORM_WITHIN_OPEN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall i : N, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((holomorphic_on g s) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w s) -> (f w) = (g w)) /\ (@IN (cart R (tybit0 unit)) z s))))) -> (higher_complex_derivative i f z) = (higher_complex_derivative i g z). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_COMPOSE_LINEAR : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall u : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, forall n : N, forall z : cart R (tybit0 unit), ((holomorphic_on f t) /\ ((@_open (tybit0 unit) s) /\ ((@_open (tybit0 unit) t) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w s) -> @IN (cart R (tybit0 unit)) (complex_mul u w) t) /\ (@IN (cart R (tybit0 unit)) z s))))) -> (higher_complex_derivative n (fun w : cart R (tybit0 unit) => f (complex_mul u w)) z) = (complex_mul (complex_pow u n) (higher_complex_derivative n f (complex_mul u z))). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_ADD_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : N, forall z : cart R (tybit0 unit), ((analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) /\ (analytic_on g (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))))) -> (higher_complex_derivative n (fun w : cart R (tybit0 unit) => @vector_add (tybit0 unit) (f w) (g w)) z) = (@vector_add (tybit0 unit) (higher_complex_derivative n f z) (higher_complex_derivative n g z)). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_SUB_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : N, forall z : cart R (tybit0 unit), ((analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) /\ (analytic_on g (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))))) -> (higher_complex_derivative n (fun w : cart R (tybit0 unit) => @vector_sub (tybit0 unit) (f w) (g w)) z) = (@vector_sub (tybit0 unit) (higher_complex_derivative n f z) (higher_complex_derivative n g z)). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_NEG_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : N, forall z : cart R (tybit0 unit), (analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) -> (higher_complex_derivative n (fun w : cart R (tybit0 unit) => @vector_neg (tybit0 unit) (f w)) z) = (@vector_neg (tybit0 unit) (higher_complex_derivative n f z)). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_MUL_AT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : N, forall z : cart R (tybit0 unit), ((analytic_on f (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit))))) /\ (analytic_on g (@INSERT (cart R (tybit0 unit)) z (@EMPTY (cart R (tybit0 unit)))))) -> (higher_complex_derivative n (fun w : cart R (tybit0 unit) => complex_mul (f w) (g w)) z) = (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (Cx (R_of_N (binom (@pair N N n i)))) (complex_mul (higher_complex_derivative i f z) (higher_complex_derivative (N.sub n i) g z)))). +Axiom thm_NO_ISOLATED_SINGULARITY : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@FINITE (cart R (tybit0 unit)) k) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ (holomorphic_on f (@DIFF (cart R (tybit0 unit)) s k))))) -> holomorphic_on f s. +Axiom thm_CAUCHY_INTEGRAL_FORMULA_CONVEX : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@convex (tybit0 unit) s) /\ ((@FINITE (cart R (tybit0 unit)) k) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@DIFF (cart R (tybit0 unit)) (@interior (tybit0 unit) s) k)) -> complex_differentiable f (@_at (tybit0 unit) x)) /\ ((@IN (cart R (tybit0 unit)) z (@interior (tybit0 unit) s)) /\ ((valid_path g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) (@DELETE (cart R (tybit0 unit)) s z)) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g))))))))) -> has_path_integral (fun w : cart R (tybit0 unit) => complex_div (f w) (@vector_sub (tybit0 unit) w z)) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (complex_mul (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) (f z))))) g. +Axiom thm_CAUCHY_HAS_PATH_INTEGRAL_HIGHER_DERIVATIVE_CIRCLEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall k : N, forall w : cart R (tybit0 unit), ((@continuous_on (tybit0 unit) (tybit0 unit) f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))))) -> has_path_integral (fun u : cart R (tybit0 unit) => complex_div (f u) (complex_pow (@vector_sub (tybit0 unit) u w) (N.add k (NUMERAL (BIT1 0%N))))) (complex_mul (complex_div (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) ii)) (Cx (R_of_N (FACT k)))) (higher_complex_derivative k f w)) (circlepath (@pair (cart R (tybit0 unit)) R z r)). +Axiom thm_CAUCHY_HIGHER_DERIVATIVE_INTEGRAL_CIRCLEPATH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall k : N, forall w : cart R (tybit0 unit), ((@continuous_on (tybit0 unit) (tybit0 unit) f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))))) -> (path_integrable_on (fun u : cart R (tybit0 unit) => complex_div (f u) (complex_pow (@vector_sub (tybit0 unit) u w) (N.add k (NUMERAL (BIT1 0%N))))) (circlepath (@pair (cart R (tybit0 unit)) R z r))) /\ ((higher_complex_derivative k f w) = (complex_mul (complex_div (Cx (R_of_N (FACT k))) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) ii))) (path_integral (circlepath (@pair (cart R (tybit0 unit)) R z r)) (fun u : cart R (tybit0 unit) => complex_div (f u) (complex_pow (@vector_sub (tybit0 unit) u w) (N.add k (NUMERAL (BIT1 0%N)))))))). +Axiom thm_HOLOMORPHIC_POWER_SERIES : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall w : cart R (tybit0 unit), forall r : R, ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r)))) -> @sums (tybit0 unit) (fun n : N => complex_mul (complex_div (higher_complex_derivative n f z) (Cx (R_of_N (FACT n)))) (complex_pow (@vector_sub (tybit0 unit) w z) n)) (f w) (from (NUMERAL 0%N)). +Axiom thm_LIOUVILLE_WEAK : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), ((holomorphic_on f (@UNIV (cart R (tybit0 unit)))) /\ (@FImp (tybit0 unit) (cart R (tybit0 unit)) f l (@at_infinity (tybit0 unit)))) -> forall z : cart R (tybit0 unit), (f z) = l. +Axiom thm_LIOUVILLE_WEAK_INVERSE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f (@UNIV (cart R (tybit0 unit)))) /\ (forall B : R, @eventually (cart R (tybit0 unit)) (fun x : cart R (tybit0 unit) => Rge (@vector_norm (tybit0 unit) (f x)) B) (@at_infinity (tybit0 unit)))) -> exists z : cart R (tybit0 unit), (f z) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_FTA : forall a : N -> cart R (tybit0 unit), forall n : N, (((a (NUMERAL 0%N)) = (Cx (R_of_N (NUMERAL 0%N)))) \/ (~ (forall k : N, (@IN N k (dotdot (NUMERAL (BIT1 0%N)) n)) -> (a k) = (Cx (R_of_N (NUMERAL 0%N)))))) -> exists z : cart R (tybit0 unit), (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (a i) (complex_pow z i))) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_HOLOMORPHIC_UNIFORM_LIMIT : forall {A : Type'}, forall net' : net A, forall f : A -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, ((~ (@trivial_limit A net')) /\ ((@eventually A (fun n : A => (@continuous_on (tybit0 unit) (tybit0 unit) (f n) (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (holomorphic_on (f n) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r)))) net') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun n : A => forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f n x) (g x))) e) net'))) -> (@continuous_on (tybit0 unit) (tybit0 unit) g (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (holomorphic_on g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))). +Axiom thm_HAS_COMPLEX_DERIVATIVE_UNIFORM_LIMIT : forall {A : Type'}, forall net' : net A, forall f : A -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : A -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((~ (@trivial_limit A net')) /\ ((@eventually A (fun n : A => (@continuous_on (tybit0 unit) (tybit0 unit) (f n) (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> has_complex_derivative (f n) (f' n w) (@_at (tybit0 unit) w))) net') /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually A (fun n : A => forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f n x) (g x))) e) net')))) -> (@continuous_on (tybit0 unit) (tybit0 unit) g (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (exists g' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> (has_complex_derivative g (g' w) (@_at (tybit0 unit) w)) /\ (@FImp (tybit0 unit) A (fun n : A => f' n w) (g' w) net')). +Axiom thm_HOLOMORPHIC_UNIFORM_SEQUENCE : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((forall n : N, holomorphic_on (f n) s) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@SUBSET (cart R (tybit0 unit)) (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R x d)) s) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually N (fun n : N => forall y : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) y (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R x d))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f n y) (g y))) e) sequentially))))) -> holomorphic_on g s. +Axiom thm_HAS_COMPLEX_DERIVATIVE_UNIFORM_SEQUENCE : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((forall n : N, forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> has_complex_derivative (f n) (f' n x) (@_at (tybit0 unit) x)) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@SUBSET (cart R (tybit0 unit)) (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R x d)) s) /\ (forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) -> @eventually N (fun n : N => forall y : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) y (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R x d))) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f n y) (g y))) e) sequentially))))) -> exists g' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (has_complex_derivative g (g' x) (@_at (tybit0 unit) x)) /\ (@FImp (tybit0 unit) N (fun n : N => f' n x) (g' x) sequentially). +Axiom thm_SERIES_AND_DERIVATIVE_COMPARISON : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : N -> Prop, forall h : N -> R, ((@_open (tybit0 unit) s) /\ ((forall n : N, forall x : cart R (tybit0 unit), ((@IN N n k) /\ (@IN (cart R (tybit0 unit)) x s)) -> has_complex_derivative (f n) (f' n x) (@_at (tybit0 unit) x)) /\ ((exists l : cart R unit, @sums unit (@o N R (cart R unit) lift h) l k) /\ (exists N' : N, forall n : N, forall x : cart R (tybit0 unit), ((N.le N' n) /\ ((@IN N n k) /\ (@IN (cart R (tybit0 unit)) x s))) -> Rle (@vector_norm (tybit0 unit) (f n x)) (h n))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists g' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (@sums (tybit0 unit) (fun n : N => f n x) (g x) k) /\ ((@sums (tybit0 unit) (fun n : N => f' n x) (g' x) k) /\ (has_complex_derivative g (g' x) (@_at (tybit0 unit) x))). +Axiom thm_SERIES_AND_DERIVATIVE_COMPARISON_LOCAL : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : N -> Prop, ((@_open (tybit0 unit) s) /\ ((forall n : N, forall x : cart R (tybit0 unit), ((@IN N n k) /\ (@IN (cart R (tybit0 unit)) x s)) -> has_complex_derivative (f n) (f' n x) (@_at (tybit0 unit) x)) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> exists d : R, exists h : N -> R, exists N' : N, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((exists l : cart R unit, @sums unit (@o N R (cart R unit) lift h) l k) /\ (forall n : N, forall y : cart R (tybit0 unit), ((N.le N' n) /\ ((@IN N n k) /\ (@IN (cart R (tybit0 unit)) y (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R x d))))) -> Rle (@vector_norm (tybit0 unit) (f n y)) (h n)))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists g' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (@sums (tybit0 unit) (fun n : N => f n x) (g x) k) /\ ((@sums (tybit0 unit) (fun n : N => f' n x) (g' x) k) /\ (has_complex_derivative g (g' x) (@_at (tybit0 unit) x))). +Axiom thm_SERIES_AND_DERIVATIVE_COMPARISON_COMPLEX : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : N -> Prop, ((@_open (tybit0 unit) s) /\ ((forall n : N, forall x : cart R (tybit0 unit), ((@IN N n k) /\ (@IN (cart R (tybit0 unit)) x s)) -> has_complex_derivative (f n) (f' n x) (@_at (tybit0 unit) x)) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> exists d : R, exists h : N -> cart R (tybit0 unit), exists N' : N, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@summable (tybit0 unit) k h) /\ ((forall n : N, (@IN N n k) -> (real (h n)) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re (h n)))) /\ (forall n : N, forall y : cart R (tybit0 unit), ((N.le N' n) /\ ((@IN N n k) /\ (@IN (cart R (tybit0 unit)) y (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R x d))))) -> Rle (@vector_norm (tybit0 unit) (f n y)) (@vector_norm (tybit0 unit) (h n)))))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists g' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (@sums (tybit0 unit) (fun n : N => f n x) (g x) k) /\ ((@sums (tybit0 unit) (fun n : N => f' n x) (g' x) k) /\ (has_complex_derivative g (g' x) (@_at (tybit0 unit) x))). +Axiom thm_SERIES_DIFFERENTIABLE_COMPARISON_COMPLEX : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : N -> Prop, ((@_open (tybit0 unit) s) /\ ((forall n : N, forall x : cart R (tybit0 unit), ((@IN N n k) /\ (@IN (cart R (tybit0 unit)) x s)) -> complex_differentiable (f n) (@_at (tybit0 unit) x)) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> exists d : R, exists h : N -> cart R (tybit0 unit), exists N' : N, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((@summable (tybit0 unit) k h) /\ ((forall n : N, (@IN N n k) -> (real (h n)) /\ (Rle (R_of_N (NUMERAL 0%N)) (Re (h n)))) /\ (forall n : N, forall y : cart R (tybit0 unit), ((N.le N' n) /\ ((@IN N n k) /\ (@IN (cart R (tybit0 unit)) y (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R x d))))) -> Rle (@vector_norm (tybit0 unit) (f n y)) (@vector_norm (tybit0 unit) (h n)))))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> (@sums (tybit0 unit) (fun n : N => f n x) (g x) k) /\ (complex_differentiable g (@_at (tybit0 unit) x)). +Axiom thm_POWER_SERIES_AND_DERIVATIVE_0 : forall k : N -> Prop, forall a : N -> cart R (tybit0 unit), forall r : R, (@summable (tybit0 unit) k (fun n : N => complex_mul (a n) (complex_pow (Cx r) n))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists g' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) r) -> (@sums (tybit0 unit) (fun n : N => complex_mul (a n) (complex_pow z n)) (g z) k) /\ ((@sums (tybit0 unit) (fun n : N => complex_mul (Cx (R_of_N n)) (complex_mul (a n) (complex_pow z (N.sub n (NUMERAL (BIT1 0%N)))))) (g' z) k) /\ (has_complex_derivative g (g' z) (@_at (tybit0 unit) z))). +Axiom thm_POWER_SERIES_AND_DERIVATIVE : forall k : N -> Prop, forall a : N -> cart R (tybit0 unit), forall r : R, forall w : cart R (tybit0 unit), (@summable (tybit0 unit) k (fun n : N => complex_mul (a n) (complex_pow (Cx r) n))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists g' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R w r))) -> (@sums (tybit0 unit) (fun n : N => complex_mul (a n) (complex_pow (@vector_sub (tybit0 unit) z w) n)) (g z) k) /\ ((@sums (tybit0 unit) (fun n : N => complex_mul (Cx (R_of_N n)) (complex_mul (a n) (complex_pow (@vector_sub (tybit0 unit) z w) (N.sub n (NUMERAL (BIT1 0%N)))))) (g' z) k) /\ (has_complex_derivative g (g' z) (@_at (tybit0 unit) z))). +Axiom thm_POWER_SERIES_HOLOMORPHIC : forall a : N -> cart R (tybit0 unit), forall k : N -> Prop, forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> @sums (tybit0 unit) (fun n : N => complex_mul (a n) (complex_pow (@vector_sub (tybit0 unit) w z) n)) (f w) k) -> holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r)). +Axiom thm_HOLOMORPHIC_IFF_POWER_SERIES : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, (holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) = (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> @sums (tybit0 unit) (fun n : N => complex_mul (complex_div (higher_complex_derivative n f z) (Cx (R_of_N (FACT n)))) (complex_pow (@vector_sub (tybit0 unit) w z) n)) (f w) (from (NUMERAL 0%N))). +Axiom thm_POWER_SERIES_ANALYTIC : forall a : N -> cart R (tybit0 unit), forall k : N -> Prop, forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> @sums (tybit0 unit) (fun n : N => complex_mul (a n) (complex_pow (@vector_sub (tybit0 unit) w z) n)) (f w) k) -> analytic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r)). +Axiom thm_ANALYTIC_IFF_POWER_SERIES : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, (analytic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) = (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> @sums (tybit0 unit) (fun n : N => complex_mul (complex_div (higher_complex_derivative n f z) (Cx (R_of_N (FACT n)))) (complex_pow (@vector_sub (tybit0 unit) w z) n)) (f w) (from (NUMERAL 0%N))). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_POWER_SERIES : forall (k : N -> Prop) (z : cart R (tybit0 unit)), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall c : N -> cart R (tybit0 unit), forall r : R, forall n : N, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@IN N n k) /\ (forall w : cart R (tybit0 unit), (Rlt (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) w z)) r) -> @sums (tybit0 unit) (fun i : N => complex_mul (c i) (complex_pow (@vector_sub (tybit0 unit) w z) i)) (f w) k))) -> (complex_div (higher_complex_derivative n f z) (Cx (R_of_N (FACT n)))) = (c n). +Axiom thm_CLOG_CONVERGES : forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> @sums (tybit0 unit) (fun n : N => complex_mul (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) (N.add n (NUMERAL (BIT1 0%N)))) (complex_div (complex_pow z n) (Cx (R_of_N n)))) (clog (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) z)) (from (NUMERAL (BIT1 0%N))). +Axiom thm_CLOG_CONVERGES_STRONG : forall z : cart R (tybit0 unit), ((Rle (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (~ (z = (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))))) -> @sums (tybit0 unit) (fun n : N => complex_mul (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) (N.add n (NUMERAL (BIT1 0%N)))) (complex_div (complex_pow z n) (Cx (R_of_N n)))) (clog (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) z)) (from (NUMERAL (BIT1 0%N))). +Axiom thm_TAYLOR_CLOG : forall n : N, forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (clog (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) z)) (@vsum N (tybit0 unit) (dotdot (NUMERAL (BIT1 0%N)) n) (fun k : N => complex_mul (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) (N.add k (NUMERAL (BIT1 0%N)))) (complex_div (complex_pow z k) (Cx (R_of_N k))))))) (Rdiv (real_pow (@vector_norm (tybit0 unit) z) (N.add n (NUMERAL (BIT1 0%N)))) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (@vector_norm (tybit0 unit) z))). +Axiom thm_TAYLOR_CLOG_NEG : forall n : N, forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> Rle (@vector_norm (tybit0 unit) (@vector_add (tybit0 unit) (clog (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) z)) (@vsum N (tybit0 unit) (dotdot (NUMERAL (BIT1 0%N)) n) (fun k : N => complex_div (complex_pow z k) (Cx (R_of_N k)))))) (Rdiv (real_pow (@vector_norm (tybit0 unit) z) (N.add n (NUMERAL (BIT1 0%N)))) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (@vector_norm (tybit0 unit) z))). +Axiom thm_LOG2_APPROX_32 : Rle (Rabs (Rminus (log (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (Rdiv (R_of_N (NUMERAL (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 (BIT0 (BIT0 (BIT1 (BIT1 (BIT1 (BIT0 (BIT1 (BIT0 (BIT0 (BIT0 (BIT1 (BIT1 (BIT0 (BIT1 0%N)))))))))))))))))))))))))))))))))) (R_of_N (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N)))))))))))))))))))))))))))))))))))))) (Rinv (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT0 (BIT0 (BIT0 (BIT0 (BIT1 0%N))))))))). +Axiom thm_CATN_CONVERGES_STRONG : forall z : cart R (tybit0 unit), ((Rle (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((~ (z = ii)) /\ (~ (z = (@vector_neg (tybit0 unit) ii))))) -> @sums (tybit0 unit) (fun n : N => complex_mul (complex_div (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) n) (Cx (R_of_N (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))))) (complex_pow z (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N))))) (catn z) (from (NUMERAL 0%N)). +Axiom thm_CATN_CONVERGES : forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> @sums (tybit0 unit) (fun n : N => complex_mul (complex_div (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) n) (Cx (R_of_N (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))))) (complex_pow z (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N))))) (catn z) (from (NUMERAL 0%N)). +Axiom thm_TAYLOR_CATN : forall n : N, forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> Rle (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (catn z) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun k : N => complex_mul (complex_div (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N))))) k) (Cx (R_of_N (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (NUMERAL (BIT1 0%N)))))) (complex_pow z (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) k) (NUMERAL (BIT1 0%N)))))))) (Rdiv (real_pow (@vector_norm (tybit0 unit) z) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 (BIT1 0%N))))) (Rmult (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (R_of_N n)) (R_of_N (NUMERAL (BIT1 (BIT1 0%N))))) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow (@vector_norm (tybit0 unit) z) (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_CEXP_LIMIT : forall z : cart R (tybit0 unit), @FImp (tybit0 unit) N (fun n : N => complex_pow (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_div z (Cx (R_of_N n)))) n) (cexp z) sequentially. +Axiom thm_EXP_LIMIT : forall x : R, @longarrow N (fun n : N => real_pow (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rdiv x (R_of_N n))) n) (exp x) sequentially. +Axiom thm_LIM_LOGPLUS1_OVER_X : @FImp (tybit0 unit) (cart R (tybit0 unit)) (fun x : cart R (tybit0 unit) => complex_div (clog (@vector_add (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) x)) x) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (@_at (tybit0 unit) (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_LIM_N_MUL_SUB_CLOG : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), @FImp (tybit0 unit) N (fun n : N => complex_mul (Cx (R_of_N n)) (@vector_sub (tybit0 unit) (clog (@vector_add (tybit0 unit) (Cx (R_of_N n)) w)) (clog (@vector_add (tybit0 unit) (Cx (R_of_N n)) z)))) (@vector_sub (tybit0 unit) w z) sequentially. +Axiom thm_LIM_SUB_CLOG : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), @FImp (tybit0 unit) N (fun n : N => @vector_sub (tybit0 unit) (clog (@vector_add (tybit0 unit) (Cx (R_of_N n)) w)) (clog (@vector_add (tybit0 unit) (Cx (R_of_N n)) z))) (Cx (R_of_N (NUMERAL 0%N))) sequentially. +Axiom thm_HOLOMORPHIC_FUN_EQ_ON_BALL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall w : cart R (tybit0 unit), ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((holomorphic_on g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (forall n : N, (higher_complex_derivative n f z) = (higher_complex_derivative n g z))))) -> (f w) = (g w). +Axiom thm_HOLOMORPHIC_FUN_EQ_0_ON_BALL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall w : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (forall n : N, (higher_complex_derivative n f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> (f w) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_HOLOMORPHIC_FUN_EQ_0_ON_CONNECTED : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ (forall n : N, (higher_complex_derivative n f z) = (Cx (R_of_N (NUMERAL 0%N)))))))) -> forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w s) -> (f w) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_HOLOMORPHIC_FUN_EQ_ON_CONNECTED : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall w : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((holomorphic_on g s) /\ ((@IN (cart R (tybit0 unit)) w s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ (forall n : N, (higher_complex_derivative n f z) = (higher_complex_derivative n g z)))))))) -> (f w) = (g w). +Axiom thm_HOLOMORPHIC_FUN_EQ_CONST_ON_CONNECTED : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ (forall n : N, (N.lt (NUMERAL 0%N) n) -> (higher_complex_derivative n f z) = (Cx (R_of_N (NUMERAL 0%N)))))))) -> forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w s) -> (f w) = (f z). +Axiom thm_POLE_LEMMA : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((holomorphic_on f s) /\ (@IN (cart R (tybit0 unit)) a (@interior (tybit0 unit) s))) -> holomorphic_on (fun z : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) (z = a) (complex_derivative f a) (complex_div (@vector_sub (tybit0 unit) (f z) (f a)) (@vector_sub (tybit0 unit) z a))) s. +Axiom thm_POLE_LEMMA_OPEN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ (holomorphic_on f s)) -> holomorphic_on (fun z : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) (z = a) (complex_derivative f a) (complex_div (@vector_sub (tybit0 unit) (f z) (f a)) (@vector_sub (tybit0 unit) z a))) s. +Axiom thm_POLE_THEOREM : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((holomorphic_on g s) /\ ((@IN (cart R (tybit0 unit)) a (@interior (tybit0 unit) s)) /\ (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ (~ (z = a))) -> (g z) = (complex_mul (@vector_sub (tybit0 unit) z a) (f z))))) -> holomorphic_on (fun z : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) (z = a) (complex_derivative g a) (@vector_sub (tybit0 unit) (f z) (complex_div (g a) (@vector_sub (tybit0 unit) z a)))) s. +Axiom thm_POLE_THEOREM_OPEN : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ (~ (z = a))) -> (g z) = (complex_mul (@vector_sub (tybit0 unit) z a) (f z))))) -> holomorphic_on (fun z : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) (z = a) (complex_derivative g a) (@vector_sub (tybit0 unit) (f z) (complex_div (g a) (@vector_sub (tybit0 unit) z a)))) s. +Axiom thm_POLE_THEOREM_0 : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((holomorphic_on g s) /\ ((@IN (cart R (tybit0 unit)) a (@interior (tybit0 unit) s)) /\ ((forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ (~ (z = a))) -> (g z) = (complex_mul (@vector_sub (tybit0 unit) z a) (f z))) /\ (((f a) = (complex_derivative g a)) /\ ((g a) = (Cx (R_of_N (NUMERAL 0%N)))))))) -> holomorphic_on f s. +Axiom thm_POLE_THEOREM_OPEN_0 : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((holomorphic_on g s) /\ ((forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ (~ (z = a))) -> (g z) = (complex_mul (@vector_sub (tybit0 unit) z a) (f z))) /\ (((f a) = (complex_derivative g a)) /\ ((g a) = (Cx (R_of_N (NUMERAL 0%N)))))))) -> holomorphic_on f s. +Axiom thm_POLE_THEOREM_ANALYTIC : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((analytic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall w : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z d))) /\ (~ (w = a))) -> (g w) = (complex_mul (@vector_sub (tybit0 unit) w a) (f w))))) -> analytic_on (fun z : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) (z = a) (complex_derivative g a) (@vector_sub (tybit0 unit) (f z) (complex_div (g a) (@vector_sub (tybit0 unit) z a)))) s. +Axiom thm_POLE_THEOREM_ANALYTIC_0 : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((analytic_on g s) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> exists d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) /\ (forall w : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z d))) /\ (~ (w = a))) -> (g w) = (complex_mul (@vector_sub (tybit0 unit) w a) (f w)))) /\ (((f a) = (complex_derivative g a)) /\ ((g a) = (Cx (R_of_N (NUMERAL 0%N))))))) -> analytic_on f s. +Axiom thm_POLE_THEOREM_ANALYTIC_OPEN_SUPERSET : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), forall t : (cart R (tybit0 unit)) -> Prop, ((@SUBSET (cart R (tybit0 unit)) s t) /\ ((@_open (tybit0 unit) t) /\ ((analytic_on g s) /\ (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z t) /\ (~ (z = a))) -> (g z) = (complex_mul (@vector_sub (tybit0 unit) z a) (f z)))))) -> analytic_on (fun z : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) (z = a) (complex_derivative g a) (@vector_sub (tybit0 unit) (f z) (complex_div (g a) (@vector_sub (tybit0 unit) z a)))) s. +Axiom thm_POLE_THEOREM_ANALYTIC_OPEN_SUPERSET_0 : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), forall t : (cart R (tybit0 unit)) -> Prop, ((@SUBSET (cart R (tybit0 unit)) s t) /\ ((@_open (tybit0 unit) t) /\ ((analytic_on g s) /\ ((forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z t) /\ (~ (z = a))) -> (g z) = (complex_mul (@vector_sub (tybit0 unit) z a) (f z))) /\ (((f a) = (complex_derivative g a)) /\ ((g a) = (Cx (R_of_N (NUMERAL 0%N))))))))) -> analytic_on f s. +Axiom thm_HOLOMORPHIC_ON_EXTEND_BOUNDED : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f (@DELETE (cart R (tybit0 unit)) s a)) /\ (@IN (cart R (tybit0 unit)) a (@interior (tybit0 unit) s))) -> (exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@DELETE (cart R (tybit0 unit)) s a)) -> (g z) = (f z))) = (exists B : R, @eventually (cart R (tybit0 unit)) (fun z : cart R (tybit0 unit) => Rle (@vector_norm (tybit0 unit) (f z)) B) (@_at (tybit0 unit) a)). +Axiom thm_HOLOMORPHIC_ON_EXTEND_LIM : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f (@DELETE (cart R (tybit0 unit)) s a)) /\ (@IN (cart R (tybit0 unit)) a (@interior (tybit0 unit) s))) -> (exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@DELETE (cart R (tybit0 unit)) s a)) -> (g z) = (f z))) = (@FImp (tybit0 unit) (cart R (tybit0 unit)) (fun z : cart R (tybit0 unit) => complex_mul (@vector_sub (tybit0 unit) z a) (f z)) (Cx (R_of_N (NUMERAL 0%N))) (@_at (tybit0 unit) a)). +Axiom thm_ZBYEXPM1_CONVERGES : forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) -> @sums (tybit0 unit) (fun n : N => complex_mul (complex_div (Cx (bernoulli n (R_of_N (NUMERAL 0%N)))) (Cx (R_of_N (FACT n)))) (complex_pow z n)) (@COND (cart R (tybit0 unit)) (z = (Cx (R_of_N (NUMERAL 0%N)))) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_div z (@vector_sub (tybit0 unit) (cexp z) (Cx (R_of_N (NUMERAL (BIT1 0%N))))))) (from (NUMERAL 0%N)). +Axiom thm_ZBYEXPM1_CONVERGES_ALT : forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) pi)) -> @sums (tybit0 unit) (fun n : N => complex_mul (complex_div (Cx (bernoulli (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (R_of_N (NUMERAL 0%N)))) (Cx (R_of_N (FACT (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n))))) (complex_pow z (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n))) (@COND (cart R (tybit0 unit)) (z = (Cx (R_of_N (NUMERAL 0%N)))) (Cx (R_of_N (NUMERAL 0%N))) (@vector_add (tybit0 unit) (complex_div z (@vector_sub (tybit0 unit) (cexp z) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) (@vector_sub (tybit0 unit) (complex_div z (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) (Cx (R_of_N (NUMERAL (BIT1 0%N))))))) (from (NUMERAL (BIT1 0%N))). +Axiom thm_CCOT_CONVERGES : forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) pi) -> @sums (tybit0 unit) (fun n : N => complex_mul (complex_mul (complex_div (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))) n) (Cx (R_of_N (FACT (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n))))) (Cx (bernoulli (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (R_of_N (NUMERAL 0%N))))) (complex_pow z (N.sub (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N))))) (@vector_sub (tybit0 unit) (complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (ctan z)) (complex_inv z)) (from (NUMERAL (BIT1 0%N))). +Axiom thm_CTAN_CONVERGES : forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (Rdiv pi (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))))) -> @sums (tybit0 unit) (fun n : N => complex_mul (complex_mul (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_pow (Cx (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))))) n)) (complex_mul (complex_div (complex_pow (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 0%N))))))) n) (Cx (R_of_N (FACT (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n))))) (Cx (bernoulli (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (R_of_N (NUMERAL 0%N)))))) (complex_pow z (N.sub (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N))))) (ctan z) (from (NUMERAL (BIT1 0%N))). +Axiom thm_CAUCHY_INTEGRAL_FORMULA_GLOBAL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((valid_path g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) (@DELETE (cart R (tybit0 unit)) s z)) /\ (forall w : cart R (tybit0 unit), (~ (@IN (cart R (tybit0 unit)) w s)) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g w)) = (Cx (R_of_N (NUMERAL 0%N)))))))))) -> has_path_integral (fun w : cart R (tybit0 unit) => complex_div (f w) (@vector_sub (tybit0 unit) w z)) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (complex_mul (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) (f z))))) g. +Axiom thm_CAUCHY_THEOREM_GLOBAL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((valid_path g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ (forall z : cart R (tybit0 unit), (~ (@IN (cart R (tybit0 unit)) z s)) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL 0%N))))))))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_CAUCHY_THEOREM_GLOBAL_OUTSIDE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall g : (cart R unit) -> cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((valid_path g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (forall z : cart R (tybit0 unit), (~ (@IN (cart R (tybit0 unit)) z s)) -> @IN (cart R (tybit0 unit)) z (@outside (tybit0 unit) (@path_image (tybit0 unit) g))))))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) g. +Axiom thm_HAS_RESIDUE_INTEGRAL : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall n : N, ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ ((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)))) -> has_path_integral (fun w : cart R (tybit0 unit) => complex_pow (complex_inv (@vector_sub (tybit0 unit) w z)) n) (@COND (cart R (tybit0 unit)) (n = (NUMERAL (BIT1 0%N))) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))))) (Cx (R_of_N (NUMERAL 0%N)))) g. +Axiom thm_HAS_RESIDUE_INTEGRAL_INTEGER : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall n : cart R (tybit0 unit), ((valid_path g) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (complex_integer n)))) -> has_path_integral (fun w : cart R (tybit0 unit) => cpow (@vector_sub (tybit0 unit) w z) n) (@COND (cart R (tybit0 unit)) (n = (@vector_neg (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z))))) (Cx (R_of_N (NUMERAL 0%N)))) g. +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_COMP_LEMMA : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, forall n : N, forall i : N, ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((@_open (tybit0 unit) t) /\ ((holomorphic_on g t) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w s) -> @IN (cart R (tybit0 unit)) (f w) t) /\ (((complex_derivative f z) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) /\ ((forall i' : N, ((N.lt (NUMERAL (BIT1 0%N)) i') /\ (N.le i' n)) -> (higher_complex_derivative i' f z) = (Cx (R_of_N (NUMERAL 0%N)))) /\ (N.le i n))))))))) -> (higher_complex_derivative i (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) g f) z) = (higher_complex_derivative i g (f z)). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_COMP_ITER_LEMMA : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), forall n : N, forall m : N, forall i : N, ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w s) -> @IN (cart R (tybit0 unit)) (f w) s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ (((f z) = z) /\ (((complex_derivative f z) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) /\ ((forall i' : N, ((N.lt (NUMERAL (BIT1 0%N)) i') /\ (N.le i' n)) -> (higher_complex_derivative i' f z) = (Cx (R_of_N (NUMERAL 0%N)))) /\ (N.le i n)))))))) -> (higher_complex_derivative i (@ITER (cart R (tybit0 unit)) m f) z) = (higher_complex_derivative i f z). +Axiom thm_HIGHER_COMPLEX_DERIVATIVE_ITER_TOP_LEMMA : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), forall n : N, forall m : N, ((@_open (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w s) -> @IN (cart R (tybit0 unit)) (f w) s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ (((f z) = z) /\ (((complex_derivative f z) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) /\ ((forall i : N, ((N.lt (NUMERAL (BIT1 0%N)) i) /\ (N.lt i n)) -> (higher_complex_derivative i f z) = (Cx (R_of_N (NUMERAL 0%N)))) /\ (N.lt (NUMERAL (BIT1 0%N)) n)))))))) -> (higher_complex_derivative n (@ITER (cart R (tybit0 unit)) m f) z) = (complex_mul (Cx (R_of_N m)) (higher_complex_derivative n f z)). +Axiom thm_CAUCHY_HIGHER_COMPLEX_DERIVATIVE_BOUND : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall y : cart R (tybit0 unit), forall r : R, forall B0 : R, forall n : N, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((N.lt (NUMERAL 0%N) n) /\ ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> @IN (cart R (tybit0 unit)) (f w) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R y B0))))))) -> Rle (@vector_norm (tybit0 unit) (higher_complex_derivative n f z)) (Rmult (R_of_N (FACT n)) (Rdiv B0 (real_pow r n))). +Axiom thm_FIRST_CARTAN_THM_DIM_1 : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), forall w : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((@bounded (tybit0 unit) s) /\ ((forall w' : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w' s) -> @IN (cart R (tybit0 unit)) (f w') s) /\ ((holomorphic_on f s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ (((f z) = z) /\ (((complex_derivative f z) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) /\ (@IN (cart R (tybit0 unit)) w s))))))))) -> (f w) = w. +Axiom thm_SECOND_CARTAN_THM_DIM_1 : forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall r : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((holomorphic_on g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) r))) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) r))) -> @IN (cart R (tybit0 unit)) (g z) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) r))) /\ (((g (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N)))) /\ ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) r))) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) r))) -> @IN (cart R (tybit0 unit)) (f z) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) r))) /\ (((f (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N)))) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) r))) -> (g (f z)) = z) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) r))) -> (f (g z)) = z))))))))) -> exists t : R, forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) r))) -> (g z) = (complex_mul (cexp (complex_mul ii (Cx t))) z). +Axiom thm_CAUCHY_INEQUALITY : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall B : R, forall n : N, ((@continuous_on (tybit0 unit) (tybit0 unit) f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ (forall x : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) z x)) = r) -> Rle (@vector_norm (tybit0 unit) (f x)) B)))) -> Rle (@vector_norm (tybit0 unit) (higher_complex_derivative n f z)) (Rmult (R_of_N (FACT n)) (Rdiv B (real_pow r n))). +Axiom thm_LIOUVILLE_POLYNOMIAL : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall A : R, forall B : R, forall n : N, ((holomorphic_on f (@UNIV (cart R (tybit0 unit)))) /\ (forall z : cart R (tybit0 unit), (Rle A (@vector_norm (tybit0 unit) z)) -> Rle (@vector_norm (tybit0 unit) (f z)) (Rmult B (real_pow (@vector_norm (tybit0 unit) z) n)))) -> forall z : cart R (tybit0 unit), (f z) = (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun k : N => complex_mul (complex_div (higher_complex_derivative k f (Cx (R_of_N (NUMERAL 0%N)))) (Cx (R_of_N (FACT k)))) (complex_pow z k))). +Axiom thm_LIOUVILLE_THEOREM : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f (@UNIV (cart R (tybit0 unit)))) /\ (@bounded (tybit0 unit) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@UNIV (cart R (tybit0 unit)))))) -> exists c : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (f z) = c. +Axiom thm_ISOLATED_ZEROS : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), forall w : cart R (tybit0 unit), ((@_open (tybit0 unit) a) /\ ((@connected (tybit0 unit) a) /\ ((holomorphic_on f a) /\ ((@IN (cart R (tybit0 unit)) z a) /\ (((f z) = (Cx (R_of_N (NUMERAL 0%N)))) /\ ((@IN (cart R (tybit0 unit)) w a) /\ (~ ((f w) = (Cx (R_of_N (NUMERAL 0%N))))))))))) -> exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@SUBSET (cart R (tybit0 unit)) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r)) a) /\ (forall w' : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w' (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ (~ (w' = z))) -> ~ ((f w') = (Cx (R_of_N (NUMERAL 0%N)))))). +Axiom thm_ANALYTIC_CONTINUATION : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : (cart R (tybit0 unit)) -> Prop, forall u : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) a) /\ ((@connected (tybit0 unit) a) /\ ((holomorphic_on f a) /\ ((@SUBSET (cart R (tybit0 unit)) u a) /\ ((@IN (cart R (tybit0 unit)) z a) /\ ((@limit_point_of (tybit0 unit) z u) /\ (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w u) -> (f w) = (Cx (R_of_N (NUMERAL 0%N)))))))))) -> forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w a) -> (f w) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_HOLOMORPHIC_FUNCTION_ENTIRE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ ((holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (complex_mul (f z) (g z)) = (Cx (R_of_N (NUMERAL 0%N)))))))) -> (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (Cx (R_of_N (NUMERAL 0%N)))) \/ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (g z) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_HOLOMORPHIC_FUNCTION_ENTIRE_PRODUCT : forall {A : Type'}, forall f : A -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall k : A -> Prop, ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((@FINITE A k) /\ ((~ (k = (@EMPTY A))) /\ ((forall i : A, (@IN A i k) -> holomorphic_on (f i) s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (@cproduct A k (fun i : A => f i z)) = (Cx (R_of_N (NUMERAL 0%N))))))))) -> exists i : A, (@IN A i k) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f i z) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_OPEN_MAPPING_THM : forall a : (cart R (tybit0 unit)) -> Prop, forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((@_open (tybit0 unit) a) /\ ((@connected (tybit0 unit) a) /\ ((holomorphic_on f a) /\ (~ (exists c : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z a) -> (f z) = c))))) -> forall u : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) u) /\ (@SUBSET (cart R (tybit0 unit)) u a)) -> @_open (tybit0 unit) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f u). +Axiom thm_MAXIMUM_MODULUS_PRINCIPLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : (cart R (tybit0 unit)) -> Prop, forall u : (cart R (tybit0 unit)) -> Prop, forall w : cart R (tybit0 unit), ((@_open (tybit0 unit) a) /\ ((@connected (tybit0 unit) a) /\ ((holomorphic_on f a) /\ ((@_open (tybit0 unit) u) /\ ((@SUBSET (cart R (tybit0 unit)) u a) /\ ((@IN (cart R (tybit0 unit)) w u) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z u) -> Rle (@vector_norm (tybit0 unit) (f z)) (@vector_norm (tybit0 unit) (f w))))))))) -> exists c : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z a) -> (f z) = c. +Axiom thm_MAXIMUM_MODULUS_FRONTIER : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall B : R, ((@bounded (tybit0 unit) s) /\ ((holomorphic_on f (@interior (tybit0 unit) s)) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@closure (tybit0 unit) s)) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@frontier (tybit0 unit) s)) -> Rle (@vector_norm (tybit0 unit) (f z)) B)))) -> forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> Rle (@vector_norm (tybit0 unit) (f z)) B. +Axiom thm_MAXIMUM_REAL_FRONTIER : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall B : R, ((@bounded (tybit0 unit) s) /\ ((holomorphic_on f (@interior (tybit0 unit) s)) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@closure (tybit0 unit) s)) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@frontier (tybit0 unit) s)) -> Rle (Re (f z)) B)))) -> forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> Rle (Re (f z)) B. +Axiom thm_HOLOMORPHIC_CONSTANT_ON_FRONTIER : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall c : cart R (tybit0 unit), ((@bounded (tybit0 unit) s) /\ ((holomorphic_on f (@interior (tybit0 unit) s)) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@closure (tybit0 unit) s)) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@frontier (tybit0 unit) s)) -> (f z) = c)))) -> forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = c. +Axiom thm_HOLOMORPHIC_CONSTANT_NORM : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((holomorphic_on f s) /\ (exists c : R, forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (@vector_norm (tybit0 unit) (f z)) = c)))) -> exists a : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = a. +Axiom thm_HOLOMORPHIC_NONZERO_CONSTANT_NORM_ON_FRONTIER : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@bounded (tybit0 unit) s) /\ ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@closure (tybit0 unit) s)) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N))))) /\ (exists c : R, forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@frontier (tybit0 unit) s)) -> (@vector_norm (tybit0 unit) (f z)) = c))))))) -> exists a : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = a. +Axiom thm_MAXIMUM_MODULUS_LIMIT_ATINFINITY : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall B : R, ((Rle (R_of_N (NUMERAL 0%N)) B) /\ ((holomorphic_on f (@interior (tybit0 unit) s)) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@closure (tybit0 unit) s)) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@frontier (tybit0 unit) s)) -> Rle (@vector_norm (tybit0 unit) (f z)) B) /\ (@FImp (tybit0 unit) (cart R (tybit0 unit)) f (Cx (R_of_N (NUMERAL 0%N))) (@within (cart R (tybit0 unit)) (@at_infinity (tybit0 unit)) s)))))) -> forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> Rle (@vector_norm (tybit0 unit) (f z)) B. +Axiom thm_MAXIMUM_MODULUS_BOUNDED_FUNCTION : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall B : R, ((holomorphic_on f (@interior (tybit0 unit) s)) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@closure (tybit0 unit) s)) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@frontier (tybit0 unit) s)) -> Rle (@vector_norm (tybit0 unit) (f z)) B) /\ ((~ (s = (@UNIV (cart R (tybit0 unit))))) /\ (@bounded (tybit0 unit) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f s)))))) -> forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> Rle (@vector_norm (tybit0 unit) (f z)) B. +Axiom thm_HOLOMORPHIC_CONSTANT_ON_SPHERE_SEGMENT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall r : R, forall s : (cart R (tybit0 unit)) -> Prop, forall c : cart R (tybit0 unit), ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))) /\ ((@open_in (cart R (tybit0 unit)) (@subtopology (cart R (tybit0 unit)) (@euclidean (tybit0 unit)) (@sphere (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))) s) /\ ((~ (s = (@EMPTY (cart R (tybit0 unit))))) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = c))))) -> forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))) -> (f z) = c. +Axiom thm_FRONTIER_PROPER_HOLOMORPHIC_IMAGE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((@bounded (tybit0 unit) s) /\ ((holomorphic_on f s) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@closure (tybit0 unit) s)) /\ (forall k : (cart R (tybit0 unit)) -> Prop, ((@compact (tybit0 unit) k) /\ (@SUBSET (cart R (tybit0 unit)) k (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f s))) -> @compact (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8818 : cart R (tybit0 unit) => exists x : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8818 ((@IN (cart R (tybit0 unit)) x s) /\ (@IN (cart R (tybit0 unit)) (f x) k)) x)))))))) -> (@frontier (tybit0 unit) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f s)) = (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@frontier (tybit0 unit) s)). +Axiom thm_HADAMARD_THREE_LINE_EXPLICIT_RE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : R, forall b : R, forall u : R, forall v : R, forall ma : R, forall mb : R, ((Rle a b) /\ ((holomorphic_on f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8831 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8831 ((Rlt a (Re z)) /\ (Rlt (Re z) b)) z))) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8832 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8832 ((Rle a (Re z)) /\ (Rle (Re z) b)) z))) /\ ((@bounded (tybit0 unit) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8833 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8833 ((Rlt a (Re z)) /\ (Rlt (Re z) b)) z)))) /\ ((forall z : cart R (tybit0 unit), ((Re z) = a) -> Rle (@vector_norm (tybit0 unit) (f z)) ma) /\ ((forall z : cart R (tybit0 unit), ((Re z) = b) -> Rle (@vector_norm (tybit0 unit) (f z)) mb) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))))))) -> forall z : cart R (tybit0 unit), ((Re z) = (Rplus (Rmult u a) (Rmult v b))) -> Rle (@vector_norm (tybit0 unit) (f z)) (Rmult (rpow ma u) (rpow mb v)). +Axiom thm_HADAMARD_THREE_LINE_EXPLICIT_IM : forall (ma : R) (mb : R), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : R, forall b : R, forall u : R, forall v : R, ((Rle a b) /\ ((holomorphic_on f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8834 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8834 ((Rlt a (Im z)) /\ (Rlt (Im z) b)) z))) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8835 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8835 ((Rle a (Im z)) /\ (Rle (Im z) b)) z))) /\ ((@bounded (tybit0 unit) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8836 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8836 ((Rlt a (Im z)) /\ (Rlt (Im z) b)) z)))) /\ ((forall z : cart R (tybit0 unit), ((Im z) = a) -> Rle (@vector_norm (tybit0 unit) (f z)) ma) /\ ((forall z : cart R (tybit0 unit), ((Im z) = b) -> Rle (@vector_norm (tybit0 unit) (f z)) mb) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))))))) -> forall z : cart R (tybit0 unit), ((Im z) = (Rplus (Rmult u a) (Rmult v b))) -> Rle (@vector_norm (tybit0 unit) (f z)) (Rmult (rpow ma u) (rpow mb v)). +Axiom thm_HADAMARD_THREE_LINE_RE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : R, forall b : R, ((holomorphic_on f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8840 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8840 ((Rlt a (Re z)) /\ (Rlt (Re z) b)) z))) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8841 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8841 ((Rle a (Re z)) /\ (Rle (Re z) b)) z))) /\ (@bounded (tybit0 unit) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8842 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8842 ((Rle a (Re z)) /\ (Rle (Re z) b)) z)))))) -> real_log_convex_on (fun y : R => sup (@GSPEC R (fun GEN_PVAR_8843 : R => exists z : cart R (tybit0 unit), @SETSPEC R GEN_PVAR_8843 ((Re z) = y) (@vector_norm (tybit0 unit) (f z))))) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_HADAMARD_THREE_LINE_IM : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : R, forall b : R, ((holomorphic_on f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8846 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8846 ((Rlt a (Im z)) /\ (Rlt (Im z) b)) z))) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8847 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8847 ((Rle a (Im z)) /\ (Rle (Im z) b)) z))) /\ (@bounded (tybit0 unit) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8848 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8848 ((Rle a (Im z)) /\ (Rle (Im z) b)) z)))))) -> real_log_convex_on (fun y : R => sup (@GSPEC R (fun GEN_PVAR_8849 : R => exists z : cart R (tybit0 unit), @SETSPEC R GEN_PVAR_8849 ((Im z) = y) (@vector_norm (tybit0 unit) (f z))))) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_HADAMARD_THREE_CIRCLE_EXPLICIT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : R, forall b : R, forall u : R, forall v : R, forall ma : R, forall mb : R, ((Rlt (R_of_N (NUMERAL 0%N)) a) /\ ((Rle a b) /\ ((holomorphic_on f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8854 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8854 ((Rlt a (@vector_norm (tybit0 unit) z)) /\ (Rlt (@vector_norm (tybit0 unit) z) b)) z))) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8855 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8855 ((Rle a (@vector_norm (tybit0 unit) z)) /\ (Rle (@vector_norm (tybit0 unit) z) b)) z))) /\ ((forall z : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) z) = a) -> Rle (@vector_norm (tybit0 unit) (f z)) ma) /\ ((forall z : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) z) = b) -> Rle (@vector_norm (tybit0 unit) (f z)) mb) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))))))) -> forall z : cart R (tybit0 unit), ((@vector_norm (tybit0 unit) z) = (Rmult (rpow a u) (rpow b v))) -> Rle (@vector_norm (tybit0 unit) (f z)) (Rmult (rpow ma u) (rpow mb v)). +Axiom thm_HADAMARD_THREE_CIRCLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : R, forall b : R, ((Rlt (R_of_N (NUMERAL 0%N)) a) /\ ((Rle a b) /\ ((holomorphic_on f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8862 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8862 ((Rlt (exp a) (@vector_norm (tybit0 unit) z)) /\ (Rlt (@vector_norm (tybit0 unit) z) (exp b))) z))) /\ (@continuous_on (tybit0 unit) (tybit0 unit) f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8863 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8863 ((Rle (exp a) (@vector_norm (tybit0 unit) z)) /\ (Rle (@vector_norm (tybit0 unit) z) (exp b))) z)))))) -> real_log_convex_on (fun y : R => sup (@GSPEC R (fun GEN_PVAR_8864 : R => exists z : cart R (tybit0 unit), @SETSPEC R GEN_PVAR_8864 ((@vector_norm (tybit0 unit) z) = (exp y)) (@vector_norm (tybit0 unit) (f z))))) (closed_real_interval (@cons (prod R R) (@pair R R a b) (@nil (prod R R)))). +Axiom thm_HOLOMORPHIC_FACTOR_ORDER_OF_ZERO : forall (z : cart R (tybit0 unit)), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall n : N, ((@_open (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((holomorphic_on f s) /\ ((N.lt (NUMERAL 0%N) n) /\ ((~ ((higher_complex_derivative n f z) = (Cx (R_of_N (NUMERAL 0%N))))) /\ (forall m : N, ((N.lt (NUMERAL 0%N) m) /\ (N.lt m n)) -> (higher_complex_derivative m f z) = (Cx (R_of_N (NUMERAL 0%N))))))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((holomorphic_on g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> (@vector_sub (tybit0 unit) (f w) (f z)) = (complex_mul (complex_pow (@vector_sub (tybit0 unit) w z) n) (g w))) /\ (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> ~ ((g w) = (Cx (R_of_N (NUMERAL 0%N))))))). +Axiom thm_HOLOMORPHIC_FACTOR_ORDER_OF_ZERO_STRONG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall n : N, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((holomorphic_on f s) /\ ((N.lt (NUMERAL 0%N) n) /\ ((~ ((higher_complex_derivative n f z) = (Cx (R_of_N (NUMERAL 0%N))))) /\ (forall m : N, ((N.lt (NUMERAL 0%N) m) /\ (N.lt m n)) -> (higher_complex_derivative m f z) = (Cx (R_of_N (NUMERAL 0%N))))))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((holomorphic_on g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> (@vector_sub (tybit0 unit) (f w) (f z)) = (complex_pow (complex_mul (@vector_sub (tybit0 unit) w z) (g w)) n)) /\ (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> ~ ((g w) = (Cx (R_of_N (NUMERAL 0%N))))))). +Axiom thm_HOLOMORPHIC_FACTOR_ZERO_NONCONSTANT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((holomorphic_on f s) /\ (((f z) = (Cx (R_of_N (NUMERAL 0%N)))) /\ (~ (exists c : cart R (tybit0 unit), forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w s) -> (f w) = c))))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists r : R, exists n : N, (N.lt (NUMERAL 0%N) n) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@SUBSET (cart R (tybit0 unit)) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r)) s) /\ ((holomorphic_on g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> (f w) = (complex_mul (complex_pow (@vector_sub (tybit0 unit) w z) n) (g w))) /\ (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> ~ ((g w) = (Cx (R_of_N (NUMERAL 0%N))))))))). +Axiom thm_HOLOMORPHIC_LOWER_BOUND_DIFFERENCE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((holomorphic_on f s) /\ (~ (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w s) -> (f w) = (f z))))))) -> exists k : R, exists n : N, exists r : R, (Rlt (R_of_N (NUMERAL 0%N)) k) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((@SUBSET (cart R (tybit0 unit)) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r)) s) /\ (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R z r))) -> Rle (Rmult k (real_pow (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) w z)) n)) (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f w) (f z)))))). +Axiom thm_POLE_AT_INFINITY : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall l : cart R (tybit0 unit), ((holomorphic_on f (@UNIV (cart R (tybit0 unit)))) /\ (@FImp (tybit0 unit) (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) complex_inv f) l (@at_infinity (tybit0 unit)))) -> exists a : N -> cart R (tybit0 unit), exists n : N, forall z : cart R (tybit0 unit), (f z) = (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (a i) (complex_pow z i))). +Axiom thm_PROPER_MAP_COMPLEX_POLYFUN : forall s : (cart R (tybit0 unit)) -> Prop, forall k : (cart R (tybit0 unit)) -> Prop, forall c : N -> cart R (tybit0 unit), forall n : N, ((@closed (tybit0 unit) s) /\ ((@compact (tybit0 unit) k) /\ (exists i : N, (@IN N i (dotdot (NUMERAL (BIT1 0%N)) n)) /\ (~ ((c i) = (Cx (R_of_N (NUMERAL 0%N)))))))) -> @compact (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8867 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8867 ((@IN (cart R (tybit0 unit)) z s) /\ (@IN (cart R (tybit0 unit)) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow z i))) k)) z)). +Axiom thm_PROPER_MAP_COMPLEX_POLYFUN_UNIV : forall k : (cart R (tybit0 unit)) -> Prop, forall c : N -> cart R (tybit0 unit), forall n : N, ((@compact (tybit0 unit) k) /\ (exists i : N, (@IN N i (dotdot (NUMERAL (BIT1 0%N)) n)) /\ (~ ((c i) = (Cx (R_of_N (NUMERAL 0%N))))))) -> @compact (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8868 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8868 (@IN (cart R (tybit0 unit)) (@vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow z i))) k) z)). +Axiom thm_PROPER_MAP_COMPLEX_POLYFUN_EQ : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on f (@UNIV (cart R (tybit0 unit)))) -> (forall k : (cart R (tybit0 unit)) -> Prop, (@compact (tybit0 unit) k) -> @compact (tybit0 unit) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8869 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8869 (@IN (cart R (tybit0 unit)) (f z) k) z))) = (exists c : N -> cart R (tybit0 unit), exists n : N, (N.lt (NUMERAL 0%N) n) /\ ((~ ((c n) = (Cx (R_of_N (NUMERAL 0%N))))) /\ (f = (fun z : cart R (tybit0 unit) => @vsum N (tybit0 unit) (dotdot (NUMERAL 0%N) n) (fun i : N => complex_mul (c i) (complex_pow z i)))))). +Axiom thm_COVERING_SPACE_POW_PUNCTURED_PLANE : forall n : N, (N.lt (NUMERAL 0%N) n) -> @covering_space (tybit0 unit) (tybit0 unit) (@pair ((cart R (tybit0 unit)) -> Prop) ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))) (fun z : cart R (tybit0 unit) => complex_pow z n)) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))). +Axiom thm_COVERING_SPACE_SQUARE_PUNCTURED_PLANE : @covering_space (tybit0 unit) (tybit0 unit) (@pair ((cart R (tybit0 unit)) -> Prop) ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))) (fun z : cart R (tybit0 unit) => complex_pow z (NUMERAL (BIT0 (BIT1 0%N))))) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@INSERT (cart R (tybit0 unit)) (Cx (R_of_N (NUMERAL 0%N))) (@EMPTY (cart R (tybit0 unit))))). +Axiom thm_HAS_COMPLEX_DERIVATIVE_LOCALLY_INJECTIVE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((holomorphic_on f s) /\ ((@_open (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ (~ ((complex_derivative f z) = (Cx (R_of_N (NUMERAL 0%N)))))))) -> exists t : (cart R (tybit0 unit)) -> Prop, (@IN (cart R (tybit0 unit)) z t) /\ ((@_open (tybit0 unit) t) /\ (forall x : cart R (tybit0 unit), forall x' : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) x t) /\ ((@IN (cart R (tybit0 unit)) x' t) /\ ((f x') = (f x)))) -> x' = x)). +Axiom thm_HAS_COMPLEX_DERIVATIVE_LOCALLY_INVERTIBLE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((holomorphic_on f s) /\ ((@_open (tybit0 unit) s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ (~ ((complex_derivative f z) = (Cx (R_of_N (NUMERAL 0%N)))))))) -> exists t : (cart R (tybit0 unit)) -> Prop, exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z t) /\ ((@_open (tybit0 unit) t) /\ ((@_open (tybit0 unit) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f t)) /\ ((@SUBSET (cart R (tybit0 unit)) t s) /\ ((forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w t) -> (g (f w)) = w) /\ (forall y : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) y (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f t)) -> (f (g y)) = y))))). +Axiom thm_HOLOMORPHIC_INJECTIVE_IMP_REGULAR : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f s) /\ ((@_open (tybit0 unit) s) /\ (forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((f w) = (f z)))) -> w = z))) -> forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((complex_derivative f z) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_HOLOMORPHIC_ON_INVERSE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f s) /\ ((@_open (tybit0 unit) s) /\ (forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((f w) = (f z)))) -> w = z))) -> (@_open (tybit0 unit) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f s)) /\ (exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f s)) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (complex_mul (complex_derivative f z) (complex_derivative g (f z))) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (g (f z)) = z) /\ (forall y : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) y (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f s)) -> (f (g y)) = y)))). +Axiom thm_COVERING_SPACE_LIFT_IS_HOLOMORPHIC : forall p : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall c : (cart R (tybit0 unit)) -> Prop, forall s : (cart R (tybit0 unit)) -> Prop, forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall u : (cart R (tybit0 unit)) -> Prop, ((@covering_space (tybit0 unit) (tybit0 unit) (@pair ((cart R (tybit0 unit)) -> Prop) ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) c p) s) /\ ((@_open (tybit0 unit) c) /\ ((holomorphic_on p c) /\ ((holomorphic_on f u) /\ ((@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f u) s) /\ ((@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) g u) c) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) g u) /\ (forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x u) -> (p (g x)) = (f x))))))))) -> holomorphic_on g u. +Axiom thm_COVERING_SPACE_LIFT_HOLOMORPHIC : forall p : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall c : (cart R (tybit0 unit)) -> Prop, forall s : (cart R (tybit0 unit)) -> Prop, forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall u : (cart R (tybit0 unit)) -> Prop, ((@covering_space (tybit0 unit) (tybit0 unit) (@pair ((cart R (tybit0 unit)) -> Prop) ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) c p) s) /\ ((holomorphic_on p c) /\ ((@_open (tybit0 unit) c) /\ ((@simply_connected (tybit0 unit) u) /\ ((@locally (tybit0 unit) (@path_connected (tybit0 unit)) u) /\ ((holomorphic_on f u) /\ (@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f u) s))))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g u) /\ ((@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) g u) c) /\ (forall y : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) y u) -> (p (g y)) = (f y))). +Axiom thm_SCHWARZ_LEMMA : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> Rlt (@vector_norm (tybit0 unit) (f z)) (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((f (Cx (R_of_N (NUMERAL 0%N)))) = (Cx (R_of_N (NUMERAL 0%N)))))) -> (forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> Rle (@vector_norm (tybit0 unit) (f z)) (@vector_norm (tybit0 unit) z)) /\ ((Rle (@vector_norm (tybit0 unit) (complex_derivative f (Cx (R_of_N (NUMERAL 0%N))))) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (((exists z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((~ (z = (Cx (R_of_N (NUMERAL 0%N))))) /\ ((@vector_norm (tybit0 unit) (f z)) = (@vector_norm (tybit0 unit) z)))) \/ ((@vector_norm (tybit0 unit) (complex_derivative f (Cx (R_of_N (NUMERAL 0%N))))) = (R_of_N (NUMERAL (BIT1 0%N))))) -> exists c : cart R (tybit0 unit), (forall z : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))) -> (f z) = (complex_mul c z)) /\ ((@vector_norm (tybit0 unit) c) = (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_HOLOMORPHIC_SUBORDINATION : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall r : R, forall s : R, ((Rle r s) /\ (((f a) = (g a)) /\ ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a s))) /\ ((holomorphic_on g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a s))) /\ ((forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a s))) /\ ((@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a s))) /\ ((g w) = (g z)))) -> w = z) /\ (@SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a s))) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a s))))))))) -> @SUBSET (cart R (tybit0 unit)) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))). +Axiom thm_HOLOMORPHIC_ON_PASTE_ACROSS_LINE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), forall k : R, ((@_open (tybit0 unit) s) /\ ((~ (a = (@vec (tybit0 unit) (NUMERAL 0%N)))) /\ ((holomorphic_on f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8888 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8888 ((@IN (cart R (tybit0 unit)) z s) /\ (Rlt k (@dot (tybit0 unit) a z))) z))) /\ ((holomorphic_on f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8889 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8889 ((@IN (cart R (tybit0 unit)) z s) /\ (Rlt (@dot (tybit0 unit) a z) k)) z))) /\ (@continuous_on (tybit0 unit) (tybit0 unit) f s))))) -> holomorphic_on f s. +Axiom thm_SCHWARZ_REFLECTION : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> @IN (cart R (tybit0 unit)) (cnj z) s) /\ ((holomorphic_on f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8897 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8897 ((@IN (cart R (tybit0 unit)) z s) /\ (Rlt (R_of_N (NUMERAL 0%N)) (Im z))) z))) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8898 : cart R (tybit0 unit) => exists z : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8898 ((@IN (cart R (tybit0 unit)) z s) /\ (Rle (R_of_N (NUMERAL 0%N)) (Im z))) z))) /\ (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ (real z)) -> real (f z)))))) -> holomorphic_on (fun z : cart R (tybit0 unit) => @COND (cart R (tybit0 unit)) (Rle (R_of_N (NUMERAL 0%N)) (Im z)) (f z) (cnj (f (cnj z)))) s. +Axiom thm_SCHWARZ_REFLECTION_UNIQUE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> @IN (cart R (tybit0 unit)) (cnj z) s) /\ ((holomorphic_on f s) /\ (forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) z s) /\ (real z)) -> real (f z)))))) -> forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f (cnj z)) = (cnj (f z)). +Axiom thm_BLOCH_LEMMA : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall r : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((holomorphic_on f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))) -> Rle (@vector_norm (tybit0 unit) (complex_derivative f z)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (@vector_norm (tybit0 unit) (complex_derivative f a)))))) -> @SUBSET (cart R (tybit0 unit)) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (f a) (Rmult (Rminus (R_of_N (NUMERAL (BIT1 (BIT1 0%N)))) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (sqrt (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))))) (Rmult r (@vector_norm (tybit0 unit) (complex_derivative f a)))))) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))). +Axiom thm_BLOCH_UNIT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((complex_derivative f a) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))))) -> exists b : cart R (tybit0 unit), exists r : R, (Rlt (Rdiv (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))) r) /\ (@SUBSET (cart R (tybit0 unit)) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R b r)) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a (R_of_N (NUMERAL (BIT1 0%N))))))). +Axiom thm_BLOCH : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall r : R, forall r' : R, ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))) /\ (Rle r' (Rmult r (Rdiv (@vector_norm (tybit0 unit) (complex_derivative f a)) (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 0%N))))))))))) -> exists b : cart R (tybit0 unit), @SUBSET (cart R (tybit0 unit)) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R b r')) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r))). +Axiom thm_BLOCH_COROLLARY : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), forall t : R, forall r : R, ((holomorphic_on f s) /\ ((@IN (cart R (tybit0 unit)) a s) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@frontier (tybit0 unit) s)) -> Rle t (@distance (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) a z))) /\ (Rle r (Rmult t (Rdiv (@vector_norm (tybit0 unit) (complex_derivative f a)) (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))))))))) -> exists b : cart R (tybit0 unit), @SUBSET (cart R (tybit0 unit)) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R b r)) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f s). +Axiom thm_SCHOTTKY : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall r : R, ((holomorphic_on f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((Rle (@vector_norm (tybit0 unit) (f (Cx (R_of_N (NUMERAL 0%N))))) r) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> ~ (((f z) = (Cx (R_of_N (NUMERAL 0%N)))) \/ ((f z) = (Cx (R_of_N (NUMERAL (BIT1 0%N))))))))) -> forall t : R, forall z : cart R (tybit0 unit), ((Rlt (R_of_N (NUMERAL 0%N)) t) /\ ((Rlt t (R_of_N (NUMERAL (BIT1 0%N)))) /\ (Rle (@vector_norm (tybit0 unit) z) t))) -> Rle (@vector_norm (tybit0 unit) (f z)) (exp (Rmult pi (exp (Rmult pi (Rplus (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rplus (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) r) (Rmult (R_of_N (NUMERAL (BIT0 (BIT0 (BIT1 (BIT1 0%N)))))) (Rdiv t (Rminus (R_of_N (NUMERAL (BIT1 0%N))) t))))))))). +Axiom thm_LANDAU_PICARD : exists R' : (cart R (tybit0 unit)) -> R, (forall z : cart R (tybit0 unit), Rlt (R_of_N (NUMERAL 0%N)) (R' z)) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R' (f (Cx (R_of_N (NUMERAL 0%N)))))))) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R' (f (Cx (R_of_N (NUMERAL 0%N)))))))) -> (~ ((f z) = (Cx (R_of_N (NUMERAL 0%N))))) /\ (~ ((f z) = (Cx (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rlt (@vector_norm (tybit0 unit) (complex_derivative f (Cx (R_of_N (NUMERAL 0%N))))) (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_LITTLE_PICARD : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), ((holomorphic_on f (@UNIV (cart R (tybit0 unit)))) /\ ((~ (a = b)) /\ ((@INTER (cart R (tybit0 unit)) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@UNIV (cart R (tybit0 unit)))) (@INSERT (cart R (tybit0 unit)) a (@INSERT (cart R (tybit0 unit)) b (@EMPTY (cart R (tybit0 unit)))))) = (@EMPTY (cart R (tybit0 unit)))))) -> exists c : cart R (tybit0 unit), f = (fun x : cart R (tybit0 unit) => c). +Axiom thm_HOLOMORPHIC_PERIODIC_FIXPOINT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall p : cart R (tybit0 unit), ((holomorphic_on f (@UNIV (cart R (tybit0 unit)))) /\ ((~ (p = (Cx (R_of_N (NUMERAL 0%N))))) /\ (forall z : cart R (tybit0 unit), (f (@vector_add (tybit0 unit) z p)) = (f z)))) -> exists x : cart R (tybit0 unit), (f x) = x. +Axiom thm_HOLOMORPHIC_INVOLUTION_POINT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f (@UNIV (cart R (tybit0 unit)))) /\ (~ (exists a : cart R (tybit0 unit), f = (fun x : cart R (tybit0 unit) => @vector_add (tybit0 unit) a x)))) -> exists x : cart R (tybit0 unit), (f (f x)) = x. +Axiom thm_MONTEL : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall p : ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> Prop, forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((forall h : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (@IN ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) h p) -> holomorphic_on h s) /\ ((forall k : (cart R (tybit0 unit)) -> Prop, ((@compact (tybit0 unit) k) /\ (@SUBSET (cart R (tybit0 unit)) k s)) -> exists b : R, forall h : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@IN ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) h p) /\ (@IN (cart R (tybit0 unit)) z k)) -> Rle (@vector_norm (tybit0 unit) (h z)) b) /\ (forall n : N, @IN ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) (f n) p)))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists r : N -> N, (holomorphic_on g s) /\ ((forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> @FImp (tybit0 unit) N (fun n : N => f (r n) x) (g x) sequentially) /\ (forall k : (cart R (tybit0 unit)) -> Prop, forall e : R, ((@compact (tybit0 unit) k) /\ ((@SUBSET (cart R (tybit0 unit)) k s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists N' : N, forall n : N, forall x : cart R (tybit0 unit), ((N.ge n N') /\ (@IN (cart R (tybit0 unit)) x k)) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f (r n) x) (g x))) e))). +Axiom thm_moebius_function : forall t : R, forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (moebius_function t w z) = (complex_mul (cexp (complex_mul ii (Cx t))) (complex_div (@vector_sub (tybit0 unit) z w) (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul (cnj w) z)))). +Axiom thm_MOEBIUS_FUNCTION_SIMPLE : forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (moebius_function (R_of_N (NUMERAL 0%N)) w z) = (complex_div (@vector_sub (tybit0 unit) z w) (@vector_sub (tybit0 unit) (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul (cnj w) z))). +Axiom thm_MOEBIUS_FUNCTION_EQ_ZERO : forall t : R, forall w : cart R (tybit0 unit), (moebius_function t w w) = (Cx (R_of_N (NUMERAL 0%N))). +Axiom thm_MOEBIUS_FUNCTION_OF_ZERO : forall t : R, forall w : cart R (tybit0 unit), (moebius_function t w (Cx (R_of_N (NUMERAL 0%N)))) = (complex_mul (@vector_neg (tybit0 unit) (cexp (complex_mul ii (Cx t)))) w). +Axiom thm_MOEBIUS_FUNCTION_NORM_LT_1 : forall t : R, forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((Rlt (@vector_norm (tybit0 unit) w) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N))))) -> Rlt (@vector_norm (tybit0 unit) (moebius_function t w z)) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_MOEBIUS_FUNCTION_HOLOMORPHIC : forall t : R, forall w : cart R (tybit0 unit), (Rlt (@vector_norm (tybit0 unit) w) (R_of_N (NUMERAL (BIT1 0%N)))) -> holomorphic_on (moebius_function t w) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_MOEBIUS_FUNCTION_COMPOSE : forall w1 : cart R (tybit0 unit), forall w2 : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (((@vector_neg (tybit0 unit) w1) = w2) /\ ((Rlt (@vector_norm (tybit0 unit) w1) (R_of_N (NUMERAL (BIT1 0%N)))) /\ (Rlt (@vector_norm (tybit0 unit) z) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (moebius_function (R_of_N (NUMERAL 0%N)) w1 (moebius_function (R_of_N (NUMERAL 0%N)) w2 z)) = z. +Axiom thm_BALL_BIHOLOMORPHISM_EXISTS : forall a : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) a (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> exists f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((f a) = (Cx (R_of_N (NUMERAL 0%N)))) /\ ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> @IN (cart R (tybit0 unit)) (f z) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((holomorphic_on g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> @IN (cart R (tybit0 unit)) (g z) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (f (g z)) = z) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (g (f z)) = z)))))). +Axiom thm_BALL_BIHOLOMORPHISM_MOEBIUS_FUNCTION : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> @IN (cart R (tybit0 unit)) (f z) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((holomorphic_on g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> @IN (cart R (tybit0 unit)) (g z) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (f (g z)) = z) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (g (f z)) = z)))))) -> exists t : R, exists w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (f z) = (moebius_function t w z)). +Axiom thm_HURWITZ_NO_ZEROS : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((forall n : N, holomorphic_on (f n) s) /\ ((holomorphic_on g s) /\ ((forall k : (cart R (tybit0 unit)) -> Prop, forall e : R, ((@compact (tybit0 unit) k) /\ ((@SUBSET (cart R (tybit0 unit)) k s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists N' : N, forall n : N, forall x : cart R (tybit0 unit), ((N.ge n N') /\ (@IN (cart R (tybit0 unit)) x k)) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f n x) (g x))) e) /\ ((~ (exists c : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (g z) = c)) /\ (forall n : N, forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f n z) = (Cx (R_of_N (NUMERAL 0%N))))))))))) -> forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((g z) = (Cx (R_of_N (NUMERAL 0%N)))). +Axiom thm_HURWITZ_INJECTIVE : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((forall n : N, holomorphic_on (f n) s) /\ ((holomorphic_on g s) /\ ((forall k : (cart R (tybit0 unit)) -> Prop, forall e : R, ((@compact (tybit0 unit) k) /\ ((@SUBSET (cart R (tybit0 unit)) k s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists N' : N, forall n : N, forall x : cart R (tybit0 unit), ((N.ge n N') /\ (@IN (cart R (tybit0 unit)) x k)) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f n x) (g x))) e) /\ ((~ (exists c : cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (g z) = c)) /\ (forall n : N, forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((f n w) = (f n z)))) -> w = z))))))) -> forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w s) /\ ((@IN (cart R (tybit0 unit)) z s) /\ ((g w) = (g z)))) -> w = z. +Axiom thm_MONTEL_OMITTING : forall f : N -> (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall p : ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) -> Prop, forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), ((@_open (tybit0 unit) s) /\ ((@connected (tybit0 unit) s) /\ ((~ (a = b)) /\ ((forall h : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (@IN ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) h p) -> (holomorphic_on h s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (~ ((h z) = a)) /\ (~ ((h z) = b)))) /\ (forall n : N, @IN ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) (f n) p))))) -> exists r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ (((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> @FImp (tybit0 unit) N (fun n : N => complex_inv (f (r n) x)) (Cx (R_of_N (NUMERAL 0%N))) sequentially) /\ (forall k : (cart R (tybit0 unit)) -> Prop, forall c : R, ((@compact (tybit0 unit) k) /\ (@SUBSET (cart R (tybit0 unit)) k s)) -> exists N' : N, forall n : N, forall x : cart R (tybit0 unit), ((N.ge n N') /\ (@IN (cart R (tybit0 unit)) x k)) -> Rlt c (@vector_norm (tybit0 unit) (f (r n) x)))) \/ (exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g s) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x s) -> @FImp (tybit0 unit) N (fun n : N => f (r n) x) (g x) sequentially) /\ (forall k : (cart R (tybit0 unit)) -> Prop, forall e : R, ((@compact (tybit0 unit) k) /\ ((@SUBSET (cart R (tybit0 unit)) k s) /\ (Rlt (R_of_N (NUMERAL 0%N)) e))) -> exists N' : N, forall n : N, forall x : cart R (tybit0 unit), ((N.ge n N') /\ (@IN (cart R (tybit0 unit)) x k)) -> Rlt (@vector_norm (tybit0 unit) (@vector_sub (tybit0 unit) (f (r n) x) (g x))) e)))). +Axiom thm_GREAT_PICARD : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), forall b : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) n) /\ ((@IN (cart R (tybit0 unit)) z n) /\ ((~ (a = b)) /\ ((holomorphic_on f (@DELETE (cart R (tybit0 unit)) n z)) /\ (forall w : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) w (@DELETE (cart R (tybit0 unit)) n z)) -> (~ ((f w) = a)) /\ (~ ((f w) = b))))))) -> exists l : cart R (tybit0 unit), (@FImp (tybit0 unit) (cart R (tybit0 unit)) f l (@_at (tybit0 unit) z)) \/ (@FImp (tybit0 unit) (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) complex_inv f) l (@_at (tybit0 unit) z)). +Axiom thm_GREAT_PICARD_ALT : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) n) /\ ((@IN (cart R (tybit0 unit)) z n) /\ ((holomorphic_on f (@DELETE (cart R (tybit0 unit)) n z)) /\ (~ (exists l : cart R (tybit0 unit), (@FImp (tybit0 unit) (cart R (tybit0 unit)) f l (@_at (tybit0 unit) z)) \/ (@FImp (tybit0 unit) (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) complex_inv f) l (@_at (tybit0 unit) z))))))) -> exists a : cart R (tybit0 unit), @SUBSET (cart R (tybit0 unit)) (@DELETE (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) a) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@DELETE (cart R (tybit0 unit)) n z)). +Axiom thm_GREAT_PICARD_INFINITE : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) n) /\ ((@IN (cart R (tybit0 unit)) z n) /\ ((holomorphic_on f (@DELETE (cart R (tybit0 unit)) n z)) /\ (~ (exists l : cart R (tybit0 unit), (@FImp (tybit0 unit) (cart R (tybit0 unit)) f l (@_at (tybit0 unit) z)) \/ (@FImp (tybit0 unit) (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) complex_inv f) l (@_at (tybit0 unit) z))))))) -> exists a : cart R (tybit0 unit), forall w : cart R (tybit0 unit), (~ (w = a)) -> @INFINITE (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8926 : cart R (tybit0 unit) => exists x : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8926 ((@IN (cart R (tybit0 unit)) x (@DELETE (cart R (tybit0 unit)) n z)) /\ ((f x) = w)) x)). +Axiom thm_CASORATI_WEIERSTRASS : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall n : (cart R (tybit0 unit)) -> Prop, forall z : cart R (tybit0 unit), ((@_open (tybit0 unit) n) /\ ((@IN (cart R (tybit0 unit)) z n) /\ ((holomorphic_on f (@DELETE (cart R (tybit0 unit)) n z)) /\ (~ (exists l : cart R (tybit0 unit), (@FImp (tybit0 unit) (cart R (tybit0 unit)) f l (@_at (tybit0 unit) z)) \/ (@FImp (tybit0 unit) (cart R (tybit0 unit)) (@o (cart R (tybit0 unit)) (cart R (tybit0 unit)) (cart R (tybit0 unit)) complex_inv f) l (@_at (tybit0 unit) z))))))) -> (@closure (tybit0 unit) (@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@DELETE (cart R (tybit0 unit)) n z))) = (@UNIV (cart R (tybit0 unit))). +Axiom thm_SIMPLY_CONNECTED_EQ_WINDING_NUMBER_ZERO : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ (forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (~ (@IN (cart R (tybit0 unit)) z s))))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx (R_of_N (NUMERAL 0%N))))). +Axiom thm_SIMPLY_CONNECTED_EQ_PATH_INTEGRAL_ZERO : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ (forall g : (cart R unit) -> cart R (tybit0 unit), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((valid_path g) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) g) s) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ (holomorphic_on f s)))) -> has_path_integral f (Cx (R_of_N (NUMERAL 0%N))) g)). +Axiom thm_SIMPLY_CONNECTED_EQ_GLOBAL_PRIMITIVE : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on f s) -> exists h : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> has_complex_derivative h (f z) (@_at (tybit0 unit) z))). +Axiom thm_SIMPLY_CONNECTED_EQ_HOLOMORPHIC_LOG : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (cexp (g z))))). +Axiom thm_SIMPLY_CONNECTED_EQ_HOLOMORPHIC_SQRT : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (complex_pow (g z) (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_SIMPLY_CONNECTED_EQ_INJECTIVE_HOLOMORPHIC_SQRT : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((holomorphic_on f s) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N))))) /\ (forall x : cart R (tybit0 unit), forall y : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) x s) /\ ((@IN (cart R (tybit0 unit)) y s) /\ ((f x) = (f y)))) -> x = y))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (complex_pow (g z) (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_SIMPLY_CONNECTED_EQ_HOMEOMORPHIC_TO_DISC : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((s = (@EMPTY (cart R (tybit0 unit)))) \/ (@homeomorphic (tybit0 unit) (tybit0 unit) s (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))))))). +Axiom thm_SIMPLY_CONNECTED_EQ_BIHOLOMORPHIC_TO_DISC : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((s = (@EMPTY (cart R (tybit0 unit)))) \/ ((s = (@UNIV (cart R (tybit0 unit)))) \/ (exists f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on f s) /\ ((holomorphic_on g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (@IN (cart R (tybit0 unit)) (f z) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((g (f z)) = z)) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (@IN (cart R (tybit0 unit)) (g z) s) /\ ((f (g z)) = z))))))). +Axiom thm_CONTRACTIBLE_EQ_SIMPLY_CONNECTED_2D : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@contractible (tybit0 unit) s) = (@simply_connected (tybit0 unit) s). +Axiom thm_SIMPLY_CONNECTED_EQ_FRONTIER_PROPERTIES : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ (@COND Prop (@bounded (tybit0 unit) s) (@connected (tybit0 unit) (@frontier (tybit0 unit) s)) (forall c : (cart R (tybit0 unit)) -> Prop, (@IN ((cart R (tybit0 unit)) -> Prop) c (@components (tybit0 unit) (@frontier (tybit0 unit) s))) -> ~ (@bounded (tybit0 unit) c)))). +Axiom thm_SIMPLY_CONNECTED_EQ_EMPTY_INSIDE : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ ((@inside (tybit0 unit) s) = (@EMPTY (cart R (tybit0 unit))))). +Axiom thm_SIMPLY_CONNECTED_EQ_UNBOUNDED_COMPLEMENT_COMPONENTS : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ (forall c : (cart R (tybit0 unit)) -> Prop, (@IN ((cart R (tybit0 unit)) -> Prop) c (@components (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) s))) -> ~ (@bounded (tybit0 unit) c))). +Axiom thm_SIMPLY_CONNECTED_IFF_SIMPLE : forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ (@bounded (tybit0 unit) s)) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ (@connected (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) s))). +Axiom thm_CONNECTED_COMPLEMENT_IFF_SIMPLY_CONNECTED_COMPONENTS : forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ (@bounded (tybit0 unit) s)) -> (@connected (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) s)) = (forall c : (cart R (tybit0 unit)) -> Prop, (@IN ((cart R (tybit0 unit)) -> Prop) c (@components (tybit0 unit) s)) -> @simply_connected (tybit0 unit) c). +Axiom thm_SIMPLY_CONNECTED_COMPONENT_PATH_COMPLEMENT : forall g : (cart R unit) -> cart R (tybit0 unit), forall c : (cart R (tybit0 unit)) -> Prop, ((@path (tybit0 unit) g) /\ ((@IN ((cart R (tybit0 unit)) -> Prop) c (@components (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) (@path_image (tybit0 unit) g)))) /\ (@bounded (tybit0 unit) c))) -> @simply_connected (tybit0 unit) c. +Axiom thm_SIMPLY_CONNECTED_EQ_CONTINUOUS_SQRT : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (@continuous_on (tybit0 unit) (tybit0 unit) g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (complex_pow (g z) (NUMERAL (BIT0 (BIT1 0%N))))))). +Axiom thm_SIMPLY_CONNECTED_EQ_CONTINUOUS_LOG : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ (forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N)))))) -> exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (@continuous_on (tybit0 unit) (tybit0 unit) g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (cexp (g z))))). +Axiom thm_SIMPLY_CONNECTED_EQ_BORSUKIAN : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@simply_connected (tybit0 unit) s) = ((@connected (tybit0 unit) s) /\ (@borsukian (tybit0 unit) s)). +Axiom thm_BORSUKIAN_EQ_SIMPLY_CONNECTED : forall s : (cart R (tybit0 unit)) -> Prop, (@_open (tybit0 unit) s) -> (@borsukian (tybit0 unit) s) = (forall c : (cart R (tybit0 unit)) -> Prop, (@IN ((cart R (tybit0 unit)) -> Prop) c (@components (tybit0 unit) s)) -> @simply_connected (tybit0 unit) c). +Axiom thm_BORSUKIAN_SEPARATION_OPEN_CLOSED : forall s : (cart R (tybit0 unit)) -> Prop, (((@_open (tybit0 unit) s) \/ (@closed (tybit0 unit) s)) /\ (@bounded (tybit0 unit) s)) -> (@borsukian (tybit0 unit) s) = (@connected (tybit0 unit) (@DIFF (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) s)). +Axiom thm_WINDING_NUMBER_COMPOSE_CEXP : forall p : (cart R unit) -> cart R (tybit0 unit), (@path (tybit0 unit) p) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@o (cart R unit) (cart R (tybit0 unit)) (cart R (tybit0 unit)) cexp p) (Cx (R_of_N (NUMERAL 0%N))))) = (complex_mul (complex_div (Cx (R_of_N (NUMERAL (BIT1 0%N)))) (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) ii))) (@vector_sub (tybit0 unit) (@pathfinish (tybit0 unit) p) (@pathstart (tybit0 unit) p))). +Axiom thm_MONODROMY_CONTINUOUS_LOG : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> ~ ((f z) = (Cx (R_of_N (NUMERAL 0%N))))))) -> (forall p : (cart R unit) -> cart R (tybit0 unit), ((@path (tybit0 unit) p) /\ ((@SUBSET (cart R (tybit0 unit)) (@path_image (tybit0 unit) p) s) /\ ((@pathfinish (tybit0 unit) p) = (@pathstart (tybit0 unit) p)))) -> (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) (@o (cart R unit) (cart R (tybit0 unit)) (cart R (tybit0 unit)) f p) (Cx (R_of_N (NUMERAL 0%N))))) = (Cx (R_of_N (NUMERAL 0%N)))) = (exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (@continuous_on (tybit0 unit) (tybit0 unit) g s) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (f z) = (cexp (g z)))). +Axiom thm_WINDING_NUMBER_AS_CONTINUOUS_LOGARITHM : forall p : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) p) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) p)))) -> exists q : (cart R unit) -> cart R (tybit0 unit), (@path (tybit0 unit) q) /\ (((@vector_sub (tybit0 unit) (@pathfinish (tybit0 unit) q) (@pathstart (tybit0 unit) q)) = (complex_mul (Cx (R_of_N (NUMERAL (BIT0 (BIT1 0%N))))) (complex_mul (Cx pi) (complex_mul ii (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) p z)))))) /\ (forall t : cart R unit, (@IN (cart R unit) t (@closed_interval unit (@cons (prod (cart R unit) (cart R unit)) (@pair (cart R unit) (cart R unit) (@vec unit (NUMERAL 0%N)) (@vec unit (NUMERAL (BIT1 0%N)))) (@nil (prod (cart R unit) (cart R unit)))))) -> (p t) = (@vector_add (tybit0 unit) z (cexp (q t))))). +Axiom thm_WINDING_NUMBER_HOMOTOPIC_LOOPS_NULL_EQ : forall p : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) p) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) p)))) -> ((winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) p z)) = (Cx (R_of_N (NUMERAL 0%N)))) = (exists a : cart R (tybit0 unit), @homotopic_loops (tybit0 unit) (@DELETE (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) z) p (fun t : cart R unit => a)). +Axiom thm_WINDING_NUMBER_HOMOTOPIC_PATHS_NULL_EXPLICIT_EQ : forall p : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) p) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) p)))) -> ((winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) p z)) = (Cx (R_of_N (NUMERAL 0%N)))) = (@homotopic_paths (tybit0 unit) (@DELETE (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) z) p (@linepath (tybit0 unit) (@pair (cart R (tybit0 unit)) (cart R (tybit0 unit)) (@pathstart (tybit0 unit) p) (@pathstart (tybit0 unit) p)))). +Axiom thm_WINDING_NUMBER_HOMOTOPIC_PATHS_NULL_EQ : forall p : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) p) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) p)))) -> ((winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) p z)) = (Cx (R_of_N (NUMERAL 0%N)))) = (exists a : cart R (tybit0 unit), @homotopic_paths (tybit0 unit) (@DELETE (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) z) p (fun t : cart R unit => a)). +Axiom thm_WINDING_NUMBER_HOMOTOPIC_PATHS_EQ : forall p : (cart R unit) -> cart R (tybit0 unit), forall q : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) p) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) p))) /\ ((@path (tybit0 unit) q) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) q))) /\ (((@pathstart (tybit0 unit) q) = (@pathstart (tybit0 unit) p)) /\ ((@pathfinish (tybit0 unit) q) = (@pathfinish (tybit0 unit) p))))))) -> ((winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) p z)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) q z))) = (@homotopic_paths (tybit0 unit) (@DELETE (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) z) p q). +Axiom thm_WINDING_NUMBER_HOMOTOPIC_LOOPS_EQ : forall p : (cart R unit) -> cart R (tybit0 unit), forall q : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@path (tybit0 unit) p) /\ (((@pathfinish (tybit0 unit) p) = (@pathstart (tybit0 unit) p)) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) p))) /\ ((@path (tybit0 unit) q) /\ (((@pathfinish (tybit0 unit) q) = (@pathstart (tybit0 unit) q)) /\ (~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) q)))))))) -> ((winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) p z)) = (winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) q z))) = (@homotopic_loops (tybit0 unit) (@DELETE (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) z) p q). +Axiom thm_HOMOTOPIC_LOOPS_PARTCIRCLEPATH : forall g : (cart R unit) -> cart R (tybit0 unit), forall z : cart R (tybit0 unit), forall r : R, forall n : R, ((@path (tybit0 unit) g) /\ (((@pathfinish (tybit0 unit) g) = (@pathstart (tybit0 unit) g)) /\ ((~ (@IN (cart R (tybit0 unit)) z (@path_image (tybit0 unit) g))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) r) /\ ((winding_number (@pair ((cart R unit) -> cart R (tybit0 unit)) (cart R (tybit0 unit)) g z)) = (Cx n)))))) -> @homotopic_loops (tybit0 unit) (@DELETE (cart R (tybit0 unit)) (@UNIV (cart R (tybit0 unit))) z) g (partcirclepath (@pair (cart R (tybit0 unit)) (prod R (prod R R)) z (@pair R (prod R R) r (@pair R R (R_of_N (NUMERAL 0%N)) (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rmult n pi)))))). +Axiom thm_SIMPLY_CONNECTED_INSIDE_SIMPLE_PATH : forall p : (cart R unit) -> cart R (tybit0 unit), (@simple_path (tybit0 unit) p) -> @simply_connected (tybit0 unit) (@inside (tybit0 unit) (@path_image (tybit0 unit) p)). +Axiom thm_HOMEOMORPHIC_INSIDE_SIMPLE_PATH_BALL : forall p : (cart R unit) -> cart R (tybit0 unit), forall a : cart R (tybit0 unit), forall r : R, ((@simple_path (tybit0 unit) p) /\ (((@pathfinish (tybit0 unit) p) = (@pathstart (tybit0 unit) p)) /\ (Rlt (R_of_N (NUMERAL 0%N)) r))) -> @homeomorphic (tybit0 unit) (tybit0 unit) (@inside (tybit0 unit) (@path_image (tybit0 unit) p)) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R a r)). +Axiom thm_SIMPLY_CONNECTED_INTER : forall s : (cart R (tybit0 unit)) -> Prop, forall t : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ ((@_open (tybit0 unit) t) /\ ((@simply_connected (tybit0 unit) s) /\ ((@simply_connected (tybit0 unit) t) /\ (@connected (tybit0 unit) (@INTER (cart R (tybit0 unit)) s t)))))) -> @simply_connected (tybit0 unit) (@INTER (cart R (tybit0 unit)) s t). +Axiom thm_FINITE_ORDER_FUNDAMENTAL_GROUP_IMP_BORSUKIAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@path_connected N' s) /\ ((@locally N' (@path_connected N') s) /\ ((@IN (cart R N') a s) /\ (forall p : (cart R unit) -> cart R N', ((@path N' p) /\ ((@SUBSET (cart R N') (@path_image N' p) s) /\ (((@pathstart N' p) = a) /\ ((@pathfinish N' p) = a)))) -> exists n : N, @homotopic_paths N' s (@ITER ((cart R unit) -> cart R N') n (@addadd (cart R N') p) p) (@linepath N' (@pair (cart R N') (cart R N') a a)))))) -> @borsukian N' s. +Axiom thm_FINITE_FUNDAMENTAL_GROUP_IMP_BORSUKIAN : forall {N' : Type'}, forall s : (cart R N') -> Prop, forall a : cart R N', ((@path_connected N' s) /\ ((@locally N' (@path_connected N') s) /\ ((@IN (cart R N') a s) /\ (@FINITE (((cart R unit) -> cart R N') -> Prop) (@fundamental_group N' (@pair ((cart R N') -> Prop) (cart R N') s a)))))) -> @borsukian N' s. +Axiom thm_RIEMANN_MAPPING_THEOREM : forall s : (cart R (tybit0 unit)) -> Prop, ((@_open (tybit0 unit) s) /\ (@simply_connected (tybit0 unit) s)) = ((s = (@EMPTY (cart R (tybit0 unit)))) \/ ((s = (@UNIV (cart R (tybit0 unit)))) \/ (exists f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (holomorphic_on f s) /\ ((holomorphic_on g (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z s) -> (@IN (cart R (tybit0 unit)) (f z) (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((g (f z)) = z)) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (@IN (cart R (tybit0 unit)) (g z) s) /\ ((f (g z)) = z))))))). +Axiom thm_TORHORST_CONFORMAL_EXTENSION_THEOREM : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (((@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) = s) /\ (forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((f w) = (f z)))) -> w = z))) -> (exists g : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (@continuous_on (tybit0 unit) (tybit0 unit) g (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (forall z : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) -> (g z) = (f z))) = ((@bounded (tybit0 unit) s) /\ (@locally (tybit0 unit) (@connected (tybit0 unit)) (@frontier (tybit0 unit) s))). +Axiom thm_CARATHEODORY_CONFORMAL_EXTENSION_LEMMA : forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall s : (cart R (tybit0 unit)) -> Prop, forall a : cart R (tybit0 unit), ((holomorphic_on f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@continuous_on (tybit0 unit) (tybit0 unit) f (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ (((@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) f (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) = s) /\ ((forall w : cart R (tybit0 unit), forall z : cart R (tybit0 unit), ((@IN (cart R (tybit0 unit)) w (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((@IN (cart R (tybit0 unit)) z (@ball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((f w) = (f z)))) -> w = z) /\ (@IN (cart R (tybit0 unit)) a (@closure (tybit0 unit) s)))))) -> (@HAS_SIZE (cart R (tybit0 unit)) (@GSPEC (cart R (tybit0 unit)) (fun GEN_PVAR_8978 : cart R (tybit0 unit) => exists x : cart R (tybit0 unit), @SETSPEC (cart R (tybit0 unit)) GEN_PVAR_8978 ((@IN (cart R (tybit0 unit)) x (@cball (tybit0 unit) (@pair (cart R (tybit0 unit)) R (Cx (R_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N)))))) /\ ((f x) = a)) x)) (NUMERAL (BIT1 0%N))) = (@connected (tybit0 unit) (@DELETE (cart R (tybit0 unit)) (@frontier (tybit0 unit) s) a)). +Axiom thm_JORDAN_SCHOENFLIES : forall g : (cart R unit) -> cart R (tybit0 unit), forall h : (cart R unit) -> cart R (tybit0 unit), forall f : (cart R (tybit0 unit)) -> cart R (tybit0 unit), forall f' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), ((@simple_path (tybit0 unit) g) /\ ((@simple_path (tybit0 unit) h) /\ (@homeomorphism (tybit0 unit) (tybit0 unit) (@pair ((cart R (tybit0 unit)) -> Prop) ((cart R (tybit0 unit)) -> Prop) (@path_image (tybit0 unit) g) (@path_image (tybit0 unit) h)) (@pair ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) f f')))) -> exists k : (cart R (tybit0 unit)) -> cart R (tybit0 unit), exists k' : (cart R (tybit0 unit)) -> cart R (tybit0 unit), (@homeomorphism (tybit0 unit) (tybit0 unit) (@pair ((cart R (tybit0 unit)) -> Prop) ((cart R (tybit0 unit)) -> Prop) (@UNIV (cart R (tybit0 unit))) (@UNIV (cart R (tybit0 unit)))) (@pair ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) ((cart R (tybit0 unit)) -> cart R (tybit0 unit)) k k')) /\ ((forall x : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) x (@path_image (tybit0 unit) g)) -> (k x) = (f x)) /\ ((forall y : cart R (tybit0 unit), (@IN (cart R (tybit0 unit)) y (@path_image (tybit0 unit) h)) -> (k' y) = (f' y)) /\ (((@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) k (@path_image (tybit0 unit) g)) = (@path_image (tybit0 unit) h)) /\ (((@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) k (@inside (tybit0 unit) (@path_image (tybit0 unit) g))) = (@inside (tybit0 unit) (@path_image (tybit0 unit) h))) /\ ((@IMAGE (cart R (tybit0 unit)) (cart R (tybit0 unit)) k (@outside (tybit0 unit) (@path_image (tybit0 unit) g))) = (@outside (tybit0 unit) (@path_image (tybit0 unit) h))))))). +Axiom thm_JORDAN_SCHOENFLIES_S2 : forall g : (cart R unit) -> cart R (tybit1 unit), forall h : (cart R unit) -> cart R (tybit1 unit), forall f : (cart R (tybit1 unit)) -> cart R (tybit1 unit), forall f' : (cart R (tybit1 unit)) -> cart R (tybit1 unit), forall z : cart R (tybit1 unit), forall r : R, ((@simple_path (tybit1 unit) g) /\ ((@simple_path (tybit1 unit) h) /\ ((@SUBSET (cart R (tybit1 unit)) (@path_image (tybit1 unit) g) (@sphere (tybit1 unit) (@pair (cart R (tybit1 unit)) R z r))) /\ ((@SUBSET (cart R (tybit1 unit)) (@path_image (tybit1 unit) h) (@sphere (tybit1 unit) (@pair (cart R (tybit1 unit)) R z r))) /\ (@homeomorphism (tybit1 unit) (tybit1 unit) (@pair ((cart R (tybit1 unit)) -> Prop) ((cart R (tybit1 unit)) -> Prop) (@path_image (tybit1 unit) g) (@path_image (tybit1 unit) h)) (@pair ((cart R (tybit1 unit)) -> cart R (tybit1 unit)) ((cart R (tybit1 unit)) -> cart R (tybit1 unit)) f f')))))) -> exists k : (cart R (tybit1 unit)) -> cart R (tybit1 unit), exists k' : (cart R (tybit1 unit)) -> cart R (tybit1 unit), (@homeomorphism (tybit1 unit) (tybit1 unit) (@pair ((cart R (tybit1 unit)) -> Prop) ((cart R (tybit1 unit)) -> Prop) (@sphere (tybit1 unit) (@pair (cart R (tybit1 unit)) R z r)) (@sphere (tybit1 unit) (@pair (cart R (tybit1 unit)) R z r))) (@pair ((cart R (tybit1 unit)) -> cart R (tybit1 unit)) ((cart R (tybit1 unit)) -> cart R (tybit1 unit)) k k')) /\ ((forall x : cart R (tybit1 unit), (@IN (cart R (tybit1 unit)) x (@path_image (tybit1 unit) g)) -> (k x) = (f x)) /\ (forall y : cart R (tybit1 unit), (@IN (cart R (tybit1 unit)) y (@path_image (tybit1 unit) h)) -> (k' y) = (f' y))). diff --git a/theory_hol.v b/theory_hol.v index cff16f2..d620c8b 100644 --- a/theory_hol.v +++ b/theory_hol.v @@ -1,4 +1,4 @@ -Require Import HOLLight_Real.HOLLight_Real HOLLight Rdefinitions Rbasic_fun Raxioms. +Require Import HOLLight_Real_With_N.mappings HOLLight.With_N BinNat Rbase Rdefinitions Rbasic_fun. Lemma TRANS {a : Type'} {x y z : a} (xy : x = y) (yz : y = z) : x = z. Proof. exact (@EQ_MP (x = y) (x = z) (@MK_COMB a Prop (@eq a x) (@eq a x) y z (@eq_refl (a -> Prop) (@eq a x)) yz) xy). Qed. Lemma SYM {a : Type'} {x y : a} (xy : x = y) : y = x. From 6ad2da10c6699d034596a4b1a72cbd261e84da93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Blanqui?= Date: Mon, 20 Jan 2025 16:36:49 +0100 Subject: [PATCH 2/8] wip --- With_N.v | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/With_N.v b/With_N.v index caabd28..988ecec 100644 --- a/With_N.v +++ b/With_N.v @@ -2,7 +2,7 @@ (* Proof that Coq R is a fourcolor.model of real numbers. *) (*****************************************************************************) -Require Import HOLLight_Real_With_N.mappings Rbase Rdefinitions Rbasic_fun. +Require Import HOLLight_Real_With_N.mappings Coq.Reals.Rbase Coq.Reals.Rdefinitions Coq.Reals.Rbasic_fun. Open Scope R_scope. @@ -189,7 +189,7 @@ Proof. unfold eq. rewrite thm_REAL_LE_ANTISYM. reflexivity. Qed. -Require Import Lia. +Require Import Coq.micromega.Lia. Lemma real_axioms : axioms real_struct. Proof. @@ -345,7 +345,7 @@ Definition R_of_N n := | N.pos p => IPR p end. -Require Import Lra. +Require Import Coq.micromega.Lra. Lemma R_of_N_succ n : R_of_N (N.succ n) = (R_of_N n + 1)%R. Proof. @@ -418,7 +418,7 @@ Proof. induction y; simpl. rewrite h0. reflexivity. rewrite hs, IHy. reflexivity. Qed.*) -Require Import RIneq. +Require Import Coq.Reals.RIneq. Open Scope R_scope. @@ -570,7 +570,7 @@ Proof. intro p. simpl. lia. Qed. -Require Import Lra R_Ifp. +Require Import Coq.micromega.Lra Coq.Reals.R_Ifp. Lemma up_IZR z : up (IZR z) = (z + 1)%Z. Proof. symmetry; apply tech_up; rewrite plus_IZR; lra. @@ -649,7 +649,7 @@ Proof. right. exists a. exists s. split. reflexivity. apply IHh. exact H. Qed. -Require Import List. +Require Import Coq.Lists.List. Lemma finite_list_NoDup {A:Type'} (s:A -> Prop): finite s = (exists l, NoDup l /\ s = fun x => In x l). @@ -705,7 +705,7 @@ Proof. rewrite e. simpl. left. reflexivity. Qed. -Require Import Permutation. +Require Import Coq.Sorting.Permutation. Lemma eq_mod_permut A (l: list A): forall l', (forall x, In x l = In x l') -> NoDup l -> NoDup l' -> Permutation l l'. From 7ada3b0eb4894afa497800fbf98a6706d587b592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Blanqui?= Date: Mon, 20 Jan 2025 21:12:21 +0100 Subject: [PATCH 3/8] wip --- CONFIG | 2 +- reproduce | 23 +++++++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/CONFIG b/CONFIG index b9e14dc..8a0eb15 100755 --- a/CONFIG +++ b/CONFIG @@ -1,2 +1,2 @@ #!/bin/sh -hol2dk config Multivariate/make_complex.ml HOLLight HOLLight_Real_With_N.mappings With_N.v BinNat Rbase Rdefinitions Rbasic_fun With_N.lp With_N.mk +hol2dk config Multivariate/make_complex.ml HOLLight HOLLight_Real_With_N.mappings With_N.v Coq.NArith.BinNat Coq.Reals.Rbase Coq.Reals.Rdefinitions Coq.Reals.Rbasic_fun With_N.lp With_N.mk diff --git a/reproduce b/reproduce index 8b5fb1a..ca4b963 100755 --- a/reproduce +++ b/reproduce @@ -94,10 +94,11 @@ config_output_dir() { echo configure output directory ... mkdir -p output cd output - make $jobs clean-all || true - hol2dk config $hollight_file $root_path HOLLight_Real_With_N.mappings ../../With_N.v BinNat Rbase Rdefinitions Rbasic_fun ../../With_N.lp ../../With_N.mk + if test -f Makefile; then make $jobs clean-all; fi + hol2dk config $hollight_file $root_path HOLLight_Real_With_N.mappings ../../With_N.v Coq.NArith.BinNat Coq.Reals.Rbase Coq.Reals.Rdefinitions Coq.Reals.Rbasic_fun ../../With_N.lp ../../With_N.mk + cd .. } - + translate_proofs() { line echo translate HOL-Light proofs to lambdapi and coq ... @@ -124,13 +125,26 @@ create_and_check_opam_library() { cd .. mkdir -p opam cd opam + cp ../../Makefile ../../With_N.v ../output/theory_hol.v . sed -e "s/${base}_//g" -e "/^Require Import ${root_path}.types.$/d" ../output/${base}_terms.v > terms.v sed -e "s/${base}_//g" -e "/^Require Import ${root_path}.types.$/d" -e '/^Require Import ${root_path}.axioms.$/d' -e "/^Axiom thm_HAS_INTEGRAL_TWIZZLE_INTERVAL /d" ../output/${base}_opam.v > theorems.v - cp ../../With_N.v ../output/theory_hol.v ../../Makefile . make cd .. } +compare_opam_file() { + line + echo compare $1 ... + diff ../$1 opam/$1 +} + +compare_opam_files() { + for f in theory_hol.v terms.v theorems.v + do + compare_opam_file $f + done +} + export HOLLIGHT_DIR=`pwd`/hol-light export HOL2DK_DIR=`pwd`/hol2dk @@ -166,3 +180,4 @@ stage 9 config_output_dir stage 10 translate_proofs stage 11 check_proofs stage 12 create_and_check_opam_library +stage 13 compare_opam_files From 29190ebf80c0a28cad2fa3584909606538b3b9a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Blanqui?= Date: Mon, 20 Jan 2025 21:15:46 +0100 Subject: [PATCH 4/8] wip --- terms.v | 2 +- theorems.v | 2 +- theory_hol.v | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/terms.v b/terms.v index b011965..a6f9fd1 100644 --- a/terms.v +++ b/terms.v @@ -1,4 +1,4 @@ -Require Import HOLLight_Real_With_N.mappings HOLLight.With_N BinNat Rbase Rdefinitions Rbasic_fun. +Require Import HOLLight_Real_With_N.mappings HOLLight.With_N Coq.NArith.BinNat Coq.Reals.Rbase Coq.Reals.Rdefinitions Coq.Reals.Rbasic_fun. Require Import HOLLight.theory_hol. Definition _FALSITY_ : Prop := False. Lemma _FALSITY__def : _FALSITY_ = False. diff --git a/theorems.v b/theorems.v index d3d8ee8..b91f453 100644 --- a/theorems.v +++ b/theorems.v @@ -1,4 +1,4 @@ -Require Import HOLLight_Real_With_N.mappings HOLLight.With_N BinNat Rbase Rdefinitions Rbasic_fun. +Require Import HOLLight_Real_With_N.mappings HOLLight.With_N Coq.NArith.BinNat Coq.Reals.Rbase Coq.Reals.Rdefinitions Coq.Reals.Rbasic_fun. Require Import HOLLight.theory_hol. Require Import HOLLight.terms. Axiom thm_SUBSET_PRED : forall {_142395 : Type'}, forall P : _142395 -> Prop, forall Q : _142395 -> Prop, (@SUBSET _142395 P Q) = (forall x : _142395, (P x) -> Q x). diff --git a/theory_hol.v b/theory_hol.v index d620c8b..b7db4f9 100644 --- a/theory_hol.v +++ b/theory_hol.v @@ -1,4 +1,4 @@ -Require Import HOLLight_Real_With_N.mappings HOLLight.With_N BinNat Rbase Rdefinitions Rbasic_fun. +Require Import HOLLight_Real_With_N.mappings HOLLight.With_N Coq.NArith.BinNat Coq.Reals.Rbase Coq.Reals.Rdefinitions Coq.Reals.Rbasic_fun. Lemma TRANS {a : Type'} {x y z : a} (xy : x = y) (yz : y = z) : x = z. Proof. exact (@EQ_MP (x = y) (x = z) (@MK_COMB a Prop (@eq a x) (@eq a x) y z (@eq_refl (a -> Prop) (@eq a x)) yz) xy). Qed. Lemma SYM {a : Type'} {x y : a} (xy : x = y) : y = x. From 44135b1c7436fdfb0274747497c21d2cbe904c6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Blanqui?= Date: Tue, 21 Jan 2025 08:03:54 +0100 Subject: [PATCH 5/8] wip --- coq-hol-light.opam | 1 + reproduce | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/coq-hol-light.opam b/coq-hol-light.opam index 0d867b2..3667f77 100644 --- a/coq-hol-light.opam +++ b/coq-hol-light.opam @@ -23,6 +23,7 @@ tags: [ "category:Math/Arith/Misc" "category:Math/Arith/Real Numbers" "category:Math/Real Numbers" + "category:Mathematics/Real Calculus and Topology" "date:2025-01-20" "logpath:HOLLight" ] diff --git a/reproduce b/reproduce index ca4b963..3973551 100755 --- a/reproduce +++ b/reproduce @@ -4,7 +4,7 @@ set -e # to exit as soon as there is an error hollight_version=3.0.0 # for dependencies hollight_commit=28e4aed -hol2dk_commit=44eb6fd +hol2dk_commit=600c94e lambdapi_commit=ccfa0e77 opam_version=2.2.1 @@ -121,7 +121,7 @@ create_and_check_opam_library() { line echo create opam library ... cd output - make sig opam + make opam cd .. mkdir -p opam cd opam From b36779e67b5e3595d171fc2a2a2335ee579098cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Blanqui?= Date: Tue, 21 Jan 2025 08:55:01 +0100 Subject: [PATCH 6/8] wip --- coq-hol-light.opam | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/coq-hol-light.opam b/coq-hol-light.opam index 3667f77..8ae9572 100644 --- a/coq-hol-light.opam +++ b/coq-hol-light.opam @@ -19,11 +19,40 @@ depends: [ build: [make "-j%{jobs}%"] install: [make "install"] tags: [ - "keyword:HOL-Light" + "logpath:HOLLight" + "date:2025-01-20" "category:Math/Arith/Misc" "category:Math/Arith/Real Numbers" "category:Math/Real Numbers" "category:Mathematics/Real Calculus and Topology" - "date:2025-01-20" - "logpath:HOLLight" + "keyword:HOL-Light" + "keyword:list" + "keyword:basic set theory" + "keyword:arithmetic" + "keyword:integer" + "keyword:real" + "keyword:complex" + "keyword:permutation" + "keyword:group" + "keyword:matroid" + "keyword:binomial" + "keyword:topology" + "keyword:metric" + "keyword:space" + "keyword:analysis" + "keyword:homology" + "keyword:vector" + "keyword:linear" + "keyword:algebra" + "keyword:convex" + "keyword:path" + "keyword:polytope" + "keyword:Brouwer" + "keyword:degree" + "keyword:derivative" + "keyword:Clifford" + "keyword:integration" + "keyword:measure" + "keyword:Lebesgue" + "keyword:transcendental" ] From 8d59501e6d117de7bcf594755977f683637b6d37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Blanqui?= Date: Tue, 21 Jan 2025 11:52:37 +0100 Subject: [PATCH 7/8] wip --- reproduce | 2 +- theorems.v | 2891 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2892 insertions(+), 1 deletion(-) diff --git a/reproduce b/reproduce index 3973551..9ffd1d4 100755 --- a/reproduce +++ b/reproduce @@ -11,7 +11,7 @@ opam_version=2.2.1 dune_version=3.17.1 ocaml_version=5.2.1 camlp5_version=8.03.01 -coq_version=8.20.0 +coq_version=8.20.1 hollight_file=Multivariate/make_complex.ml base=`basename $hollight_file .ml` diff --git a/theorems.v b/theorems.v index b91f453..5029ed3 100644 --- a/theorems.v +++ b/theorems.v @@ -1,6 +1,2897 @@ Require Import HOLLight_Real_With_N.mappings HOLLight.With_N Coq.NArith.BinNat Coq.Reals.Rbase Coq.Reals.Rdefinitions Coq.Reals.Rbasic_fun. Require Import HOLLight.theory_hol. Require Import HOLLight.terms. +Axiom thm_T_DEF : True = ((fun p : Prop => p) = (fun p : Prop => p)). +Axiom thm_AND_DEF : and = (fun p : Prop => fun q : Prop => (fun f : Prop -> Prop -> Prop => f p q) = (fun f : Prop -> Prop -> Prop => f True True)). +Axiom thm_IMP_DEF : imp = (fun p : Prop => fun q : Prop => (p /\ q) = p). +Axiom thm_FORALL_DEF : forall {A : Type'}, (@all A) = (fun P : A -> Prop => P = (fun x : A => True)). +Axiom thm_EXISTS_DEF : forall {A : Type'}, (@ex A) = (fun P : A -> Prop => forall q : Prop, (forall x : A, (P x) -> q) -> q). +Axiom thm_OR_DEF : or = (fun p : Prop => fun q : Prop => forall r : Prop, (p -> r) -> (q -> r) -> r). +Axiom thm_F_DEF : False = (forall p : Prop, p). +Axiom thm_NOT_DEF : not = (fun p : Prop => p -> False). +Axiom thm_EXISTS_UNIQUE_DEF : forall {A : Type'}, (@ex1 A) = (fun P : A -> Prop => (ex P) /\ (forall x : A, forall y : A, ((P x) /\ (P y)) -> x = y)). +Axiom thm__FALSITY_ : _FALSITY_ = False. +Axiom thm_EQ_REFL : forall {A : Type'}, forall x : A, x = x. +Axiom thm_REFL_CLAUSE : forall {A : Type'}, forall x : A, (x = x) = True. +Axiom thm_EQ_SYM : forall {A : Type'}, forall x : A, forall y : A, (x = y) -> y = x. +Axiom thm_EQ_SYM_EQ : forall {A : Type'}, forall x : A, forall y : A, (x = y) = (y = x). +Axiom thm_EQ_TRANS : forall {A : Type'}, forall x : A, forall y : A, forall z : A, ((x = y) /\ (y = z)) -> x = z. +Axiom thm_BETA_THM : forall {A B : Type'}, forall f : A -> B, forall y : A, ((fun x : A => f x) y) = (f y). +Axiom thm_ABS_SIMP : forall {A B : Type'}, forall t1 : A, forall t2 : B, ((fun x : B => t1) t2) = t1. +Axiom thm_CONJ_ASSOC : forall t1 : Prop, forall t2 : Prop, forall t3 : Prop, (t1 /\ (t2 /\ t3)) = ((t1 /\ t2) /\ t3). +Axiom thm_CONJ_SYM : forall t1 : Prop, forall t2 : Prop, (t1 /\ t2) = (t2 /\ t1). +Axiom thm_CONJ_ACI : forall (r : Prop) (p : Prop) (q : Prop), ((p /\ q) = (q /\ p)) /\ ((((p /\ q) /\ r) = (p /\ (q /\ r))) /\ (((p /\ (q /\ r)) = (q /\ (p /\ r))) /\ (((p /\ p) = p) /\ ((p /\ (p /\ q)) = (p /\ q))))). +Axiom thm_DISJ_ASSOC : forall t1 : Prop, forall t2 : Prop, forall t3 : Prop, (t1 \/ (t2 \/ t3)) = ((t1 \/ t2) \/ t3). +Axiom thm_DISJ_SYM : forall t1 : Prop, forall t2 : Prop, (t1 \/ t2) = (t2 \/ t1). +Axiom thm_DISJ_ACI : forall (r : Prop) (p : Prop) (q : Prop), ((p \/ q) = (q \/ p)) /\ ((((p \/ q) \/ r) = (p \/ (q \/ r))) /\ (((p \/ (q \/ r)) = (q \/ (p \/ r))) /\ (((p \/ p) = p) /\ ((p \/ (p \/ q)) = (p \/ q))))). +Axiom thm_IMP_CONJ : forall (p : Prop) (q : Prop) (r : Prop), ((p /\ q) -> r) = (p -> q -> r). +Axiom thm_IMP_CONJ_ALT : forall (q : Prop) (p : Prop) (r : Prop), ((p /\ q) -> r) = (q -> p -> r). +Axiom thm_LEFT_OR_DISTRIB : forall p : Prop, forall q : Prop, forall r : Prop, (p /\ (q \/ r)) = ((p /\ q) \/ (p /\ r)). +Axiom thm_RIGHT_OR_DISTRIB : forall p : Prop, forall q : Prop, forall r : Prop, ((p \/ q) /\ r) = ((p /\ r) \/ (q /\ r)). +Axiom thm_FORALL_SIMP : forall {A : Type'}, forall t : Prop, (forall x : A, t) = t. +Axiom thm_EXISTS_SIMP : forall {A : Type'}, forall t : Prop, (exists x : A, t) = t. +Axiom thm_EQ_CLAUSES : forall t : Prop, ((True = t) = t) /\ (((t = True) = t) /\ (((False = t) = (~ t)) /\ ((t = False) = (~ t)))). +Axiom thm_NOT_CLAUSES_WEAK : ((~ True) = False) /\ ((~ False) = True). +Axiom thm_AND_CLAUSES : forall t : Prop, ((True /\ t) = t) /\ (((t /\ True) = t) /\ (((False /\ t) = False) /\ (((t /\ False) = False) /\ ((t /\ t) = t)))). +Axiom thm_OR_CLAUSES : forall t : Prop, ((True \/ t) = True) /\ (((t \/ True) = True) /\ (((False \/ t) = t) /\ (((t \/ False) = t) /\ ((t \/ t) = t)))). +Axiom thm_IMP_CLAUSES : forall t : Prop, ((True -> t) = t) /\ (((t -> True) = True) /\ (((False -> t) = True) /\ (((t -> t) = True) /\ ((t -> False) = (~ t))))). +Axiom thm_EXISTS_UNIQUE_THM : forall {A : Type'}, forall P : A -> Prop, (@ex1 A (fun x : A => P x)) = ((exists x : A, P x) /\ (forall x : A, forall x' : A, ((P x) /\ (P x')) -> x = x')). +Axiom thm_EXISTS_REFL : forall {A : Type'}, forall a : A, exists x : A, x = a. +Axiom thm_EXISTS_UNIQUE_REFL : forall {A : Type'}, forall a : A, @ex1 A (fun x : A => x = a). +Axiom thm_UNWIND_THM1 : forall {A : Type'}, forall P : A -> Prop, forall a : A, (exists x : A, (a = x) /\ (P x)) = (P a). +Axiom thm_UNWIND_THM2 : forall {A : Type'}, forall P : A -> Prop, forall a : A, (exists x : A, (x = a) /\ (P x)) = (P a). +Axiom thm_FORALL_UNWIND_THM2 : forall {A : Type'}, forall P : A -> Prop, forall a : A, (forall x : A, (x = a) -> P x) = (P a). +Axiom thm_FORALL_UNWIND_THM1 : forall {A : Type'}, forall P : A -> Prop, forall a : A, (forall x : A, (a = x) -> P x) = (P a). +Axiom thm_SWAP_FORALL_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (forall x : A, forall y : B, P x y) = (forall y : B, forall x : A, P x y). +Axiom thm_SWAP_EXISTS_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (exists x : A, exists y : B, P x y) = (exists y : B, exists x : A, P x y). +Axiom thm_FORALL_AND_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, (forall x : A, (P x) /\ (Q x)) = ((forall x : A, P x) /\ (forall x : A, Q x)). +Axiom thm_AND_FORALL_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, ((forall x : A, P x) /\ (forall x : A, Q x)) = (forall x : A, (P x) /\ (Q x)). +Axiom thm_LEFT_AND_FORALL_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, ((forall x : A, P x) /\ Q) = (forall x : A, (P x) /\ Q). +Axiom thm_RIGHT_AND_FORALL_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (P /\ (forall x : A, Q x)) = (forall x : A, P /\ (Q x)). +Axiom thm_EXISTS_OR_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, (exists x : A, (P x) \/ (Q x)) = ((exists x : A, P x) \/ (exists x : A, Q x)). +Axiom thm_OR_EXISTS_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, ((exists x : A, P x) \/ (exists x : A, Q x)) = (exists x : A, (P x) \/ (Q x)). +Axiom thm_LEFT_OR_EXISTS_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, ((exists x : A, P x) \/ Q) = (exists x : A, (P x) \/ Q). +Axiom thm_RIGHT_OR_EXISTS_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (P \/ (exists x : A, Q x)) = (exists x : A, P \/ (Q x)). +Axiom thm_LEFT_EXISTS_AND_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, (exists x : A, (P x) /\ Q) = ((exists x : A, P x) /\ Q). +Axiom thm_RIGHT_EXISTS_AND_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (exists x : A, P /\ (Q x)) = (P /\ (exists x : A, Q x)). +Axiom thm_TRIV_EXISTS_AND_THM : forall {A : Type'}, forall P : Prop, forall Q : Prop, (exists x : A, P /\ Q) = ((exists x : A, P) /\ (exists x : A, Q)). +Axiom thm_LEFT_AND_EXISTS_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, ((exists x : A, P x) /\ Q) = (exists x : A, (P x) /\ Q). +Axiom thm_RIGHT_AND_EXISTS_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (P /\ (exists x : A, Q x)) = (exists x : A, P /\ (Q x)). +Axiom thm_TRIV_AND_EXISTS_THM : forall {A : Type'}, forall P : Prop, forall Q : Prop, ((exists x : A, P) /\ (exists x : A, Q)) = (exists x : A, P /\ Q). +Axiom thm_TRIV_FORALL_OR_THM : forall {A : Type'}, forall P : Prop, forall Q : Prop, (forall x : A, P \/ Q) = ((forall x : A, P) \/ (forall x : A, Q)). +Axiom thm_TRIV_OR_FORALL_THM : forall {A : Type'}, forall P : Prop, forall Q : Prop, ((forall x : A, P) \/ (forall x : A, Q)) = (forall x : A, P \/ Q). +Axiom thm_RIGHT_IMP_FORALL_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (P -> forall x : A, Q x) = (forall x : A, P -> Q x). +Axiom thm_RIGHT_FORALL_IMP_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (forall x : A, P -> Q x) = (P -> forall x : A, Q x). +Axiom thm_LEFT_IMP_EXISTS_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, ((exists x : A, P x) -> Q) = (forall x : A, (P x) -> Q). +Axiom thm_LEFT_FORALL_IMP_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, (forall x : A, (P x) -> Q) = ((exists x : A, P x) -> Q). +Axiom thm_TRIV_FORALL_IMP_THM : forall {A : Type'}, forall P : Prop, forall Q : Prop, (forall x : A, P -> Q) = ((exists x : A, P) -> forall x : A, Q). +Axiom thm_TRIV_EXISTS_IMP_THM : forall {A : Type'}, forall P : Prop, forall Q : Prop, (exists x : A, P -> Q) = ((forall x : A, P) -> exists x : A, Q). +Axiom thm_MONO_FORALL : forall {A : Type'} (P : A -> Prop) (Q : A -> Prop), (forall x : A, (P x) -> Q x) -> (forall x : A, P x) -> forall x : A, Q x. +Axiom thm_MONO_EXISTS : forall {A : Type'} (P : A -> Prop) (Q : A -> Prop), (forall x : A, (P x) -> Q x) -> (exists x : A, P x) -> exists x : A, Q x. +Axiom thm_WLOG_RELATION : forall {A : Type'}, forall R' : A -> A -> Prop, forall P : A -> A -> Prop, ((forall x : A, forall y : A, (P x y) -> P y x) /\ ((forall x : A, forall y : A, (R' x y) \/ (R' y x)) /\ (forall x : A, forall y : A, (R' x y) -> P x y))) -> forall x : A, forall y : A, P x y. +Axiom thm_EXISTS_UNIQUE_ALT : forall {A : Type'}, forall P : A -> Prop, (@ex1 A (fun x : A => P x)) = (exists x : A, forall y : A, (P y) = (x = y)). +Axiom thm_EXISTS_UNIQUE : forall {A : Type'}, forall P : A -> Prop, (@ex1 A (fun x : A => P x)) = (exists x : A, (P x) /\ (forall y : A, (P y) -> y = x)). +Axiom thm_ETA_AX : forall {A B : Type'}, forall t : A -> B, (fun x : A => t x) = t. +Axiom thm_EQ_EXT : forall {A B : Type'}, forall f : A -> B, forall g : A -> B, (forall x : A, (f x) = (g x)) -> f = g. +Axiom thm_FUN_EQ_THM : forall {A B : Type'}, forall f : A -> B, forall g : A -> B, (f = g) = (forall x : A, (f x) = (g x)). +Axiom thm_SELECT_AX : forall {A : Type'}, forall P : A -> Prop, forall x : A, (P x) -> P (@ε A P). +Axiom thm_EXISTS_THM : forall {A : Type'}, (@ex A) = (fun P : A -> Prop => P (@ε A P)). +Axiom thm_SELECT_REFL : forall {A : Type'}, forall x : A, (@ε A (fun y : A => y = x)) = x. +Axiom thm_SELECT_UNIQUE : forall {A : Type'}, forall P : A -> Prop, forall x : A, (forall y : A, (P y) = (y = x)) -> (@ε A P) = x. +Axiom thm_EXCLUDED_MIDDLE : forall t : Prop, t \/ (~ t). +Axiom thm_BOOL_CASES_AX : forall t : Prop, (t = True) \/ (t = False). +Axiom thm_DE_MORGAN_THM : forall t1 : Prop, forall t2 : Prop, ((~ (t1 /\ t2)) = ((~ t1) \/ (~ t2))) /\ ((~ (t1 \/ t2)) = ((~ t1) /\ (~ t2))). +Axiom thm_NOT_CLAUSES : (forall t : Prop, (~ (~ t)) = t) /\ (((~ True) = False) /\ ((~ False) = True)). +Axiom thm_NOT_IMP : forall t1 : Prop, forall t2 : Prop, (~ (t1 -> t2)) = (t1 /\ (~ t2)). +Axiom thm_CONTRAPOS_THM : forall t1 : Prop, forall t2 : Prop, ((~ t1) -> ~ t2) = (t2 -> t1). +Axiom thm_NOT_EXISTS_THM : forall {A : Type'}, forall P : A -> Prop, (~ (exists x : A, P x)) = (forall x : A, ~ (P x)). +Axiom thm_EXISTS_NOT_THM : forall {A : Type'}, forall P : A -> Prop, (exists x : A, ~ (P x)) = (~ (forall x : A, P x)). +Axiom thm_NOT_FORALL_THM : forall {A : Type'}, forall P : A -> Prop, (~ (forall x : A, P x)) = (exists x : A, ~ (P x)). +Axiom thm_FORALL_NOT_THM : forall {A : Type'}, forall P : A -> Prop, (forall x : A, ~ (P x)) = (~ (exists x : A, P x)). +Axiom thm_FORALL_BOOL_THM : forall (P : Prop -> Prop), (forall b : Prop, P b) = ((P True) /\ (P False)). +Axiom thm_EXISTS_BOOL_THM : forall (P : Prop -> Prop), (exists b : Prop, P b) = ((P True) \/ (P False)). +Axiom thm_LEFT_FORALL_OR_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, (forall x : A, (P x) \/ Q) = ((forall x : A, P x) \/ Q). +Axiom thm_RIGHT_FORALL_OR_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (forall x : A, P \/ (Q x)) = (P \/ (forall x : A, Q x)). +Axiom thm_LEFT_OR_FORALL_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, ((forall x : A, P x) \/ Q) = (forall x : A, (P x) \/ Q). +Axiom thm_RIGHT_OR_FORALL_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (P \/ (forall x : A, Q x)) = (forall x : A, P \/ (Q x)). +Axiom thm_LEFT_IMP_FORALL_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, ((forall x : A, P x) -> Q) = (exists x : A, (P x) -> Q). +Axiom thm_LEFT_EXISTS_IMP_THM : forall {A : Type'}, forall P : A -> Prop, forall Q : Prop, (exists x : A, (P x) -> Q) = ((forall x : A, P x) -> Q). +Axiom thm_RIGHT_IMP_EXISTS_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (P -> exists x : A, Q x) = (exists x : A, P -> Q x). +Axiom thm_RIGHT_EXISTS_IMP_THM : forall {A : Type'}, forall P : Prop, forall Q : A -> Prop, (exists x : A, P -> Q x) = (P -> exists x : A, Q x). +Axiom thm_COND_DEF : forall {A : Type'}, (@COND A) = (fun t : Prop => fun t1 : A => fun t2 : A => @ε A (fun x : A => ((t = True) -> x = t1) /\ ((t = False) -> x = t2))). +Axiom thm_COND_CLAUSES : forall {A : Type'}, forall t1 : A, forall t2 : A, ((@COND A True t1 t2) = t1) /\ ((@COND A False t1 t2) = t2). +Axiom thm_COND_EXPAND : forall b : Prop, forall t1 : Prop, forall t2 : Prop, (@COND Prop b t1 t2) = (((~ b) \/ t1) /\ (b \/ t2)). +Axiom thm_COND_ID : forall {A : Type'}, forall b : Prop, forall t : A, (@COND A b t t) = t. +Axiom thm_COND_RAND : forall {A B : Type'}, forall b : Prop, forall f : A -> B, forall x : A, forall y : A, (f (@COND A b x y)) = (@COND B b (f x) (f y)). +Axiom thm_COND_RATOR : forall {A B : Type'}, forall b : Prop, forall f : A -> B, forall g : A -> B, forall x : A, (@COND (A -> B) b f g x) = (@COND B b (f x) (g x)). +Axiom thm_COND_ABS : forall {A B : Type'}, forall b : Prop, forall f : A -> B, forall g : A -> B, (fun x : A => @COND B b (f x) (g x)) = (@COND (A -> B) b f g). +Axiom thm_COND_SWAP : forall {A : Type'}, forall p : Prop, forall x : A, forall y : A, (@COND A (~ p) x y) = (@COND A p y x). +Axiom thm_MONO_COND : forall (A : Prop) (C : Prop) (b : Prop) (B : Prop) (D : Prop), ((A -> B) /\ (C -> D)) -> (@COND Prop b A C) -> @COND Prop b B D. +Axiom thm_COND_ELIM_THM : forall {A : Type'} (x : A) (c : Prop) (P : A -> Prop) (y : A), (P (@COND A c x y)) = ((c -> P x) /\ ((~ c) -> P y)). +Axiom thm_SKOLEM_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (forall x : A, exists y : B, P x y) = (exists y : A -> B, forall x : A, P x (y x)). +Axiom thm_SKOLEM_THM_GEN : forall {A B : Type'}, forall P : A -> Prop, forall R' : A -> B -> Prop, (forall x : A, (P x) -> exists y : B, R' x y) = (exists f : A -> B, forall x : A, (P x) -> R' x (f x)). +Axiom thm_UNIQUE_SKOLEM_ALT : forall {A B : Type'}, forall P : A -> B -> Prop, (forall x : A, @ex1 B (fun y : B => P x y)) = (exists f : A -> B, forall x : A, forall y : B, (P x y) = ((f x) = y)). +Axiom thm_UNIQUE_SKOLEM_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (forall x : A, @ex1 B (fun y : B => P x y)) = (@ex1 (A -> B) (fun f : A -> B => forall x : A, P x (f x))). +Axiom thm_bool_INDUCT : forall P : Prop -> Prop, ((P False) /\ (P True)) -> forall x : Prop, P x. +Axiom thm_bool_RECURSION : forall {A : Type'}, forall a : A, forall b : A, exists f : Prop -> A, ((f False) = a) /\ ((f True) = b). +Axiom thm_o_DEF : forall {A B C : Type'}, forall f : B -> C, forall g : A -> B, (@o A B C f g) = (fun x : A => f (g x)). +Axiom thm_I_DEF : forall {A : Type'}, (@I A) = (fun x : A => x). +Axiom thm_o_THM : forall {A B C : Type'}, forall f : B -> C, forall g : A -> B, forall x : A, (@o A B C f g x) = (f (g x)). +Axiom thm_o_ASSOC : forall {A B C D : Type'}, forall f : C -> D, forall g : B -> C, forall h : A -> B, (@o A C D f (@o A B C g h)) = (@o A B D (@o B C D f g) h). +Axiom thm_I_THM : forall {A : Type'}, forall x : A, (@I A x) = x. +Axiom thm_I_O_ID : forall {A B : Type'}, forall f : A -> B, ((@o A B B (@I B) f) = f) /\ ((@o A A B f (@I A)) = f). +Axiom thm_EXISTS_ONE_REP : exists b : Prop, b. +Axiom thm_one_DEF : tt = (@ε unit (fun x : unit => True)). +Axiom thm_one : forall v : unit, v = tt. +Axiom thm_one_axiom : forall {A : Type'}, forall f : A -> unit, forall g : A -> unit, f = g. +Axiom thm_one_INDUCT : forall P : unit -> Prop, (P tt) -> forall x : unit, P x. +Axiom thm_one_RECURSION : forall {A : Type'}, forall e : A, exists fn : unit -> A, (fn tt) = e. +Axiom thm_one_Axiom : forall {A : Type'}, forall e : A, @ex1 (unit -> A) (fun fn : unit -> A => (fn tt) = e). +Axiom thm_FORALL_ONE_THM : forall (P : unit -> Prop), (forall x : unit, P x) = (P tt). +Axiom thm_EXISTS_ONE_THM : forall (P : unit -> Prop), (exists x : unit, P x) = (P tt). +Axiom thm_ETA_ONE : forall {A : Type'}, forall f : unit -> A, (fun x : unit => f tt) = f. +Axiom thm_LET_DEF : forall {A B : Type'}, forall f : A -> B, forall x : A, (@LET A B f x) = (f x). +Axiom thm_LET_END_DEF : forall {A : Type'}, forall t : A, (@LET_END A t) = t. +Axiom thm_GABS_DEF : forall {A : Type'}, forall P : A -> Prop, (@GABS A P) = (@ε A P). +Axiom thm_GEQ_DEF : forall {A : Type'}, forall a : A, forall b : A, (@GEQ A a b) = (a = b). +Axiom thm__SEQPATTERN : forall {A B : Type'}, (@_SEQPATTERN A B) = (fun r : A -> B -> Prop => fun s : A -> B -> Prop => fun x : A => @COND (B -> Prop) (exists y : B, r x y) (r x) (s x)). +Axiom thm__UNGUARDED_PATTERN : _UNGUARDED_PATTERN = (fun p : Prop => fun r : Prop => p /\ r). +Axiom thm__GUARDED_PATTERN : _GUARDED_PATTERN = (fun p : Prop => fun g : Prop => fun r : Prop => p /\ (g /\ r)). +Axiom thm__MATCH : forall {A B : Type'}, (@_MATCH A B) = (fun e : A => fun r : A -> B -> Prop => @COND B (@ex1 B (r e)) (@ε B (r e)) (@ε B (fun z : B => False))). +Axiom thm__FUNCTION : forall {A B : Type'}, (@_FUNCTION A B) = (fun r : A -> B -> Prop => fun x : A => @COND B (@ex1 B (r x)) (@ε B (r x)) (@ε B (fun z : B => False))). +Axiom thm_mk_pair_def : forall {A B : Type'}, forall x : A, forall y : B, (@mk_pair A B x y) = (fun a : A => fun b : B => (a = x) /\ (b = y)). +Axiom thm_PAIR_EXISTS_THM : forall {A B : Type'}, exists x : A -> B -> Prop, exists a : A, exists b : B, x = (@mk_pair A B a b). +Axiom thm_REP_ABS_PAIR : forall {A B : Type'}, forall x : A, forall y : B, (@REP_prod A B (@ABS_prod A B (@mk_pair A B x y))) = (@mk_pair A B x y). +Axiom thm_COMMA_DEF : forall {A B : Type'}, forall x : A, forall y : B, (@pair A B x y) = (@ABS_prod A B (@mk_pair A B x y)). +Axiom thm_FST_DEF : forall {A B : Type'}, forall p : prod A B, (@fst A B p) = (@ε A (fun x : A => exists y : B, p = (@pair A B x y))). +Axiom thm_SND_DEF : forall {A B : Type'}, forall p : prod A B, (@snd A B p) = (@ε B (fun y : B => exists x : A, p = (@pair A B x y))). +Axiom thm_PAIR_EQ : forall {A B : Type'}, forall x : A, forall y : B, forall a : A, forall b : B, ((@pair A B x y) = (@pair A B a b)) = ((x = a) /\ (y = b)). +Axiom thm_PAIR_SURJECTIVE : forall {A B : Type'}, forall p : prod A B, exists x : A, exists y : B, p = (@pair A B x y). +Axiom thm_FST : forall {A B : Type'}, forall x : A, forall y : B, (@fst A B (@pair A B x y)) = x. +Axiom thm_SND : forall {A B : Type'}, forall x : A, forall y : B, (@snd A B (@pair A B x y)) = y. +Axiom thm_PAIR : forall {A B : Type'}, forall x : prod A B, (@pair A B (@fst A B x) (@snd A B x)) = x. +Axiom thm_pair_INDUCT : forall {A B : Type'}, forall P : (prod A B) -> Prop, (forall x : A, forall y : B, P (@pair A B x y)) -> forall p : prod A B, P p. +Axiom thm_pair_RECURSION : forall {A B C : Type'}, forall PAIR' : A -> B -> C, exists fn : (prod A B) -> C, forall a0 : A, forall a1 : B, (fn (@pair A B a0 a1)) = (PAIR' a0 a1). +Axiom thm_CURRY_DEF : forall {A B C : Type'}, forall f : (prod A B) -> C, forall x : A, forall y : B, (@CURRY A B C f x y) = (f (@pair A B x y)). +Axiom thm_UNCURRY_DEF : forall {A B C : Type'}, forall f : A -> B -> C, forall x : A, forall y : B, (@UNCURRY A B C f (@pair A B x y)) = (f x y). +Axiom thm_PASSOC_DEF : forall {A B C D : Type'}, forall f : (prod (prod A B) C) -> D, forall x : A, forall y : B, forall z : C, (@PASSOC A B C D f (@pair A (prod B C) x (@pair B C y z))) = (f (@pair (prod A B) C (@pair A B x y) z)). +Axiom thm_FORALL_PAIR_THM : forall {A B : Type'}, forall P : (prod A B) -> Prop, (forall p : prod A B, P p) = (forall p1 : A, forall p2 : B, P (@pair A B p1 p2)). +Axiom thm_EXISTS_PAIR_THM : forall {A B : Type'}, forall P : (prod A B) -> Prop, (exists p : prod A B, P p) = (exists p1 : A, exists p2 : B, P (@pair A B p1 p2)). +Axiom thm_LAMBDA_PAIR_THM : forall {A B C : Type'}, forall t : (prod A B) -> C, (fun p : prod A B => t p) = (@GABS ((prod A B) -> C) (fun f : (prod A B) -> C => forall x : A, forall y : B, @GEQ C (f (@pair A B x y)) (t (@pair A B x y)))). +Axiom thm_LAMBDA_PAIR : forall {A B C : Type'}, forall f : A -> B -> C, (@GABS ((prod A B) -> C) (fun f' : (prod A B) -> C => forall x : A, forall y : B, @GEQ C (f' (@pair A B x y)) (f x y))) = (fun p : prod A B => f (@fst A B p) (@snd A B p)). +Axiom thm_LAMBDA_TRIPLE_THM : forall {A B C D : Type'}, forall f : (prod A (prod B C)) -> D, (fun t : prod A (prod B C) => f t) = (@GABS ((prod A (prod B C)) -> D) (fun f' : (prod A (prod B C)) -> D => forall x : A, forall y : B, forall z : C, @GEQ D (f' (@pair A (prod B C) x (@pair B C y z))) (f (@pair A (prod B C) x (@pair B C y z))))). +Axiom thm_LAMBDA_TRIPLE : forall {A B C D : Type'}, forall f : A -> B -> C -> D, (@GABS ((prod A (prod B C)) -> D) (fun f' : (prod A (prod B C)) -> D => forall x : A, forall y : B, forall z : C, @GEQ D (f' (@pair A (prod B C) x (@pair B C y z))) (f x y z))) = (fun t : prod A (prod B C) => f (@fst A (prod B C) t) (@fst B C (@snd A (prod B C) t)) (@snd B C (@snd A (prod B C) t))). +Axiom thm_PAIRED_ETA_THM : forall {A B C D E : Type'}, (forall f : (prod A B) -> C, (@GABS ((prod A B) -> C) (fun f' : (prod A B) -> C => forall x : A, forall y : B, @GEQ C (f' (@pair A B x y)) (f (@pair A B x y)))) = f) /\ ((forall f : (prod A (prod B C)) -> D, (@GABS ((prod A (prod B C)) -> D) (fun f' : (prod A (prod B C)) -> D => forall x : A, forall y : B, forall z : C, @GEQ D (f' (@pair A (prod B C) x (@pair B C y z))) (f (@pair A (prod B C) x (@pair B C y z))))) = f) /\ (forall f : (prod A (prod B (prod C D))) -> E, (@GABS ((prod A (prod B (prod C D))) -> E) (fun f' : (prod A (prod B (prod C D))) -> E => forall w : A, forall x : B, forall y : C, forall z : D, @GEQ E (f' (@pair A (prod B (prod C D)) w (@pair B (prod C D) x (@pair C D y z)))) (f (@pair A (prod B (prod C D)) w (@pair B (prod C D) x (@pair C D y z)))))) = f)). +Axiom thm_FORALL_UNCURRY : forall {A B C : Type'}, forall P : (A -> B -> C) -> Prop, (forall f : A -> B -> C, P f) = (forall f : (prod A B) -> C, P (fun a : A => fun b : B => f (@pair A B a b))). +Axiom thm_EXISTS_UNCURRY : forall {A B C : Type'}, forall P : (A -> B -> C) -> Prop, (exists f : A -> B -> C, P f) = (exists f : (prod A B) -> C, P (fun a : A => fun b : B => f (@pair A B a b))). +Axiom thm_EXISTS_CURRY : forall {A B C : Type'}, forall P : ((prod A B) -> C) -> Prop, (exists f : (prod A B) -> C, P f) = (exists f : A -> B -> C, P (@GABS ((prod A B) -> C) (fun f' : (prod A B) -> C => forall a : A, forall b : B, @GEQ C (f' (@pair A B a b)) (f a b)))). +Axiom thm_FORALL_CURRY : forall {A B C : Type'}, forall P : ((prod A B) -> C) -> Prop, (forall f : (prod A B) -> C, P f) = (forall f : A -> B -> C, P (@GABS ((prod A B) -> C) (fun f' : (prod A B) -> C => forall a : A, forall b : B, @GEQ C (f' (@pair A B a b)) (f a b)))). +Axiom thm_FORALL_UNPAIR_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (forall x : A, forall y : B, P x y) = (forall z : prod A B, P (@fst A B z) (@snd A B z)). +Axiom thm_EXISTS_UNPAIR_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (exists x : A, exists y : B, P x y) = (exists z : prod A B, P (@fst A B z) (@snd A B z)). +Axiom thm_FORALL_PAIR_FUN_THM : forall {A B C : Type'}, forall P : (A -> prod B C) -> Prop, (forall f : A -> prod B C, P f) = (forall g : A -> B, forall h : A -> C, P (fun a : A => @pair B C (g a) (h a))). +Axiom thm_EXISTS_PAIR_FUN_THM : forall {A B C : Type'}, forall P : (A -> prod B C) -> Prop, (exists f : A -> prod B C, P f) = (exists g : A -> B, exists h : A -> C, P (fun a : A => @pair B C (g a) (h a))). +Axiom thm_FORALL_UNPAIR_FUN_THM : forall {A B C : Type'}, forall P : (A -> B) -> (A -> C) -> Prop, (forall f : A -> B, forall g : A -> C, P f g) = (forall h : A -> prod B C, P (@o A (prod B C) B (@fst B C) h) (@o A (prod B C) C (@snd B C) h)). +Axiom thm_EXISTS_UNPAIR_FUN_THM : forall {A B C : Type'}, forall P : (A -> B) -> (A -> C) -> Prop, (exists f : A -> B, exists g : A -> C, P f g) = (exists h : A -> prod B C, P (@o A (prod B C) B (@fst B C) h) (@o A (prod B C) C (@snd B C) h)). +Axiom thm_EXISTS_SWAP_FUN_THM : forall {A B C : Type'}, forall P : (A -> B -> C) -> Prop, (exists f : A -> B -> C, P f) = (exists f : B -> A -> C, P (fun a : A => fun b : B => f b a)). +Axiom thm_FORALL_PAIRED_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (all (@GABS ((prod A B) -> Prop) (fun f : (prod A B) -> Prop => forall x : A, forall y : B, @GEQ Prop (f (@pair A B x y)) (P x y)))) = (forall x : A, forall y : B, P x y). +Axiom thm_EXISTS_PAIRED_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (ex (@GABS ((prod A B) -> Prop) (fun f : (prod A B) -> Prop => forall x : A, forall y : B, @GEQ Prop (f (@pair A B x y)) (P x y)))) = (exists x : A, exists y : B, P x y). +Axiom thm_FORALL_TRIPLED_THM : forall {A B C : Type'}, forall P : A -> B -> C -> Prop, (all (@GABS ((prod A (prod B C)) -> Prop) (fun f : (prod A (prod B C)) -> Prop => forall x : A, forall y : B, forall z : C, @GEQ Prop (f (@pair A (prod B C) x (@pair B C y z))) (P x y z)))) = (forall x : A, forall y : B, forall z : C, P x y z). +Axiom thm_EXISTS_TRIPLED_THM : forall {A B C : Type'}, forall P : A -> B -> C -> Prop, (ex (@GABS ((prod A (prod B C)) -> Prop) (fun f : (prod A (prod B C)) -> Prop => forall x : A, forall y : B, forall z : C, @GEQ Prop (f (@pair A (prod B C) x (@pair B C y z))) (P x y z)))) = (exists x : A, exists y : B, exists z : C, P x y z). +Axiom thm_CHOICE_UNPAIR_THM : forall {A B : Type'}, forall P : A -> B -> Prop, (@ε (prod A B) (@GABS ((prod A B) -> Prop) (fun f : (prod A B) -> Prop => forall x : A, forall y : B, @GEQ Prop (f (@pair A B x y)) (P x y)))) = (@ε (prod A B) (fun p : prod A B => P (@fst A B p) (@snd A B p))). +Axiom thm_CHOICE_PAIRED_THM : forall {A B : Type'}, forall P : A -> B -> Prop, forall Q : (prod A B) -> Prop, ((exists x : A, exists y : B, P x y) /\ (forall x : A, forall y : B, (P x y) -> Q (@pair A B x y))) -> Q (@ε (prod A B) (@GABS ((prod A B) -> Prop) (fun f : (prod A B) -> Prop => forall x : A, forall y : B, @GEQ Prop (f (@pair A B x y)) (P x y)))). +Axiom thm_ONE_ONE : forall {A B : Type'}, forall f : A -> B, (@ONE_ONE A B f) = (forall x1 : A, forall x2 : A, ((f x1) = (f x2)) -> x1 = x2). +Axiom thm_ONTO : forall {A B : Type'}, forall f : A -> B, (@ONTO A B f) = (forall y : B, exists x : A, y = (f x)). +Axiom thm_INFINITY_AX : exists f : ind -> ind, (@ONE_ONE ind ind f) /\ (~ (@ONTO ind ind f)). +Axiom thm_IND_SUC_0_EXISTS : exists f : ind -> ind, exists z : ind, (forall x1 : ind, forall x2 : ind, ((f x1) = (f x2)) = (x1 = x2)) /\ (forall x : ind, ~ ((f x) = z)). +Axiom thm_NUM_REP_RULES : (NUM_REP IND_0) /\ (forall i : ind, (NUM_REP i) -> NUM_REP (IND_SUC i)). +Axiom thm_NUM_REP_CASES : forall a : ind, (NUM_REP a) = ((a = IND_0) \/ (exists i : ind, (a = (IND_SUC i)) /\ (NUM_REP i))). +Axiom thm_NUM_REP_INDUCT : forall NUM_REP' : ind -> Prop, ((NUM_REP' IND_0) /\ (forall i : ind, (NUM_REP' i) -> NUM_REP' (IND_SUC i))) -> forall a : ind, (NUM_REP a) -> NUM_REP' a. +Axiom thm_ZERO_DEF : 0%N = (mk_num IND_0). +Axiom thm_SUC_DEF : forall n : N, (N.succ n) = (mk_num (IND_SUC (dest_num n))). +Axiom thm_SUC_INJ : forall m : N, forall n : N, ((N.succ m) = (N.succ n)) = (m = n). +Axiom thm_NOT_SUC : forall n : N, ~ ((N.succ n) = (NUMERAL 0%N)). +Axiom thm_num_INDUCTION : forall P : N -> Prop, ((P (NUMERAL 0%N)) /\ (forall n : N, (P n) -> P (N.succ n))) -> forall n : N, P n. +Axiom thm_num_Axiom : forall {A : Type'}, forall e : A, forall f : A -> N -> A, @ex1 (N -> A) (fun fn : N -> A => ((fn (NUMERAL 0%N)) = e) /\ (forall n : N, (fn (N.succ n)) = (f (fn n) n))). +Axiom thm_num_CASES : forall m : N, (m = (NUMERAL 0%N)) \/ (exists n : N, m = (N.succ n)). +Axiom thm_PRE : ((N.pred (NUMERAL 0%N)) = (NUMERAL 0%N)) /\ (forall n : N, (N.pred (N.succ n)) = n). +Axiom thm_ADD : (forall n : N, (N.add (NUMERAL 0%N) n) = n) /\ (forall m : N, forall n : N, (N.add (N.succ m) n) = (N.succ (N.add m n))). +Axiom thm_ADD_0 : forall m : N, (N.add m (NUMERAL 0%N)) = m. +Axiom thm_ADD_SUC : forall m : N, forall n : N, (N.add m (N.succ n)) = (N.succ (N.add m n)). +Axiom thm_ADD_CLAUSES : (forall n : N, (N.add (NUMERAL 0%N) n) = n) /\ ((forall m : N, (N.add m (NUMERAL 0%N)) = m) /\ ((forall m : N, forall n : N, (N.add (N.succ m) n) = (N.succ (N.add m n))) /\ (forall m : N, forall n : N, (N.add m (N.succ n)) = (N.succ (N.add m n))))). +Axiom thm_ADD_SYM : forall m : N, forall n : N, (N.add m n) = (N.add n m). +Axiom thm_ADD_ASSOC : forall m : N, forall n : N, forall p : N, (N.add m (N.add n p)) = (N.add (N.add m n) p). +Axiom thm_ADD_AC : forall (n : N) (m : N) (p : N), ((N.add m n) = (N.add n m)) /\ (((N.add (N.add m n) p) = (N.add m (N.add n p))) /\ ((N.add m (N.add n p)) = (N.add n (N.add m p)))). +Axiom thm_ADD_EQ_0 : forall m : N, forall n : N, ((N.add m n) = (NUMERAL 0%N)) = ((m = (NUMERAL 0%N)) /\ (n = (NUMERAL 0%N))). +Axiom thm_EQ_ADD_LCANCEL : forall m : N, forall n : N, forall p : N, ((N.add m n) = (N.add m p)) = (n = p). +Axiom thm_EQ_ADD_RCANCEL : forall m : N, forall n : N, forall p : N, ((N.add m p) = (N.add n p)) = (m = n). +Axiom thm_EQ_ADD_LCANCEL_0 : forall m : N, forall n : N, ((N.add m n) = m) = (n = (NUMERAL 0%N)). +Axiom thm_EQ_ADD_RCANCEL_0 : forall m : N, forall n : N, ((N.add m n) = n) = (m = (NUMERAL 0%N)). +Axiom thm_BIT0 : forall n : N, (BIT0 n) = (N.add n n). +Axiom thm_BIT1 : forall n : N, (BIT1 n) = (N.succ (N.add n n)). +Axiom thm_BIT0_THM : forall n : N, (NUMERAL (BIT0 n)) = (N.add (NUMERAL n) (NUMERAL n)). +Axiom thm_BIT1_THM : forall n : N, (NUMERAL (BIT1 n)) = (N.succ (N.add (NUMERAL n) (NUMERAL n))). +Axiom thm_ONE : (NUMERAL (BIT1 0%N)) = (N.succ (NUMERAL 0%N)). +Axiom thm_TWO : (NUMERAL (BIT0 (BIT1 0%N))) = (N.succ (NUMERAL (BIT1 0%N))). +Axiom thm_ADD1 : forall m : N, (N.succ m) = (N.add m (NUMERAL (BIT1 0%N))). +Axiom thm_MULT : (forall n : N, (N.mul (NUMERAL 0%N) n) = (NUMERAL 0%N)) /\ (forall m : N, forall n : N, (N.mul (N.succ m) n) = (N.add (N.mul m n) n)). +Axiom thm_MULT_0 : forall m : N, (N.mul m (NUMERAL 0%N)) = (NUMERAL 0%N). +Axiom thm_MULT_SUC : forall m : N, forall n : N, (N.mul m (N.succ n)) = (N.add m (N.mul m n)). +Axiom thm_MULT_CLAUSES : (forall n : N, (N.mul (NUMERAL 0%N) n) = (NUMERAL 0%N)) /\ ((forall m : N, (N.mul m (NUMERAL 0%N)) = (NUMERAL 0%N)) /\ ((forall n : N, (N.mul (NUMERAL (BIT1 0%N)) n) = n) /\ ((forall m : N, (N.mul m (NUMERAL (BIT1 0%N))) = m) /\ ((forall m : N, forall n : N, (N.mul (N.succ m) n) = (N.add (N.mul m n) n)) /\ (forall m : N, forall n : N, (N.mul m (N.succ n)) = (N.add m (N.mul m n))))))). +Axiom thm_MULT_SYM : forall m : N, forall n : N, (N.mul m n) = (N.mul n m). +Axiom thm_LEFT_ADD_DISTRIB : forall m : N, forall n : N, forall p : N, (N.mul m (N.add n p)) = (N.add (N.mul m n) (N.mul m p)). +Axiom thm_RIGHT_ADD_DISTRIB : forall m : N, forall n : N, forall p : N, (N.mul (N.add m n) p) = (N.add (N.mul m p) (N.mul n p)). +Axiom thm_MULT_ASSOC : forall m : N, forall n : N, forall p : N, (N.mul m (N.mul n p)) = (N.mul (N.mul m n) p). +Axiom thm_MULT_AC : forall (n : N) (m : N) (p : N), ((N.mul m n) = (N.mul n m)) /\ (((N.mul (N.mul m n) p) = (N.mul m (N.mul n p))) /\ ((N.mul m (N.mul n p)) = (N.mul n (N.mul m p)))). +Axiom thm_MULT_EQ_0 : forall m : N, forall n : N, ((N.mul m n) = (NUMERAL 0%N)) = ((m = (NUMERAL 0%N)) \/ (n = (NUMERAL 0%N))). +Axiom thm_EQ_MULT_LCANCEL : forall m : N, forall n : N, forall p : N, ((N.mul m n) = (N.mul m p)) = ((m = (NUMERAL 0%N)) \/ (n = p)). +Axiom thm_EQ_MULT_RCANCEL : forall m : N, forall n : N, forall p : N, ((N.mul m p) = (N.mul n p)) = ((m = n) \/ (p = (NUMERAL 0%N))). +Axiom thm_MULT_2 : forall n : N, (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) = (N.add n n). +Axiom thm_MULT_EQ_1 : forall m : N, forall n : N, ((N.mul m n) = (NUMERAL (BIT1 0%N))) = ((m = (NUMERAL (BIT1 0%N))) /\ (n = (NUMERAL (BIT1 0%N)))). +Axiom thm_EXP : (forall m : N, (N.pow m (NUMERAL 0%N)) = (NUMERAL (BIT1 0%N))) /\ (forall m : N, forall n : N, (N.pow m (N.succ n)) = (N.mul m (N.pow m n))). +Axiom thm_EXP_EQ_0 : forall m : N, forall n : N, ((N.pow m n) = (NUMERAL 0%N)) = ((m = (NUMERAL 0%N)) /\ (~ (n = (NUMERAL 0%N)))). +Axiom thm_EXP_EQ_1 : forall x : N, forall n : N, ((N.pow x n) = (NUMERAL (BIT1 0%N))) = ((x = (NUMERAL (BIT1 0%N))) \/ (n = (NUMERAL 0%N))). +Axiom thm_EXP_ZERO : forall n : N, (N.pow (NUMERAL 0%N) n) = (@COND N (n = (NUMERAL 0%N)) (NUMERAL (BIT1 0%N)) (NUMERAL 0%N)). +Axiom thm_EXP_ADD : forall m : N, forall n : N, forall p : N, (N.pow m (N.add n p)) = (N.mul (N.pow m n) (N.pow m p)). +Axiom thm_EXP_ONE : forall n : N, (N.pow (NUMERAL (BIT1 0%N)) n) = (NUMERAL (BIT1 0%N)). +Axiom thm_EXP_1 : forall n : N, (N.pow n (NUMERAL (BIT1 0%N))) = n. +Axiom thm_EXP_2 : forall n : N, (N.pow n (NUMERAL (BIT0 (BIT1 0%N)))) = (N.mul n n). +Axiom thm_MULT_EXP : forall p : N, forall m : N, forall n : N, (N.pow (N.mul m n) p) = (N.mul (N.pow m p) (N.pow n p)). +Axiom thm_EXP_MULT : forall m : N, forall n : N, forall p : N, (N.pow m (N.mul n p)) = (N.pow (N.pow m n) p). +Axiom thm_EXP_EXP : forall x : N, forall m : N, forall n : N, (N.pow (N.pow x m) n) = (N.pow x (N.mul m n)). +Axiom thm_LE : (forall m : N, (N.le m (NUMERAL 0%N)) = (m = (NUMERAL 0%N))) /\ (forall m : N, forall n : N, (N.le m (N.succ n)) = ((m = (N.succ n)) \/ (N.le m n))). +Axiom thm_LT : (forall m : N, (N.lt m (NUMERAL 0%N)) = False) /\ (forall m : N, forall n : N, (N.lt m (N.succ n)) = ((m = n) \/ (N.lt m n))). +Axiom thm_GE : forall n : N, forall m : N, (N.ge m n) = (N.le n m). +Axiom thm_GT : forall n : N, forall m : N, (N.gt m n) = (N.lt n m). +Axiom thm_MAX : forall m : N, forall n : N, (N.max m n) = (@COND N (N.le m n) n m). +Axiom thm_MIN : forall m : N, forall n : N, (N.min m n) = (@COND N (N.le m n) m n). +Axiom thm_LE_SUC_LT : forall m : N, forall n : N, (N.le (N.succ m) n) = (N.lt m n). +Axiom thm_LT_SUC_LE : forall m : N, forall n : N, (N.lt m (N.succ n)) = (N.le m n). +Axiom thm_LE_SUC : forall m : N, forall n : N, (N.le (N.succ m) (N.succ n)) = (N.le m n). +Axiom thm_LT_SUC : forall m : N, forall n : N, (N.lt (N.succ m) (N.succ n)) = (N.lt m n). +Axiom thm_LE_0 : forall n : N, N.le (NUMERAL 0%N) n. +Axiom thm_LT_0 : forall n : N, N.lt (NUMERAL 0%N) (N.succ n). +Axiom thm_LE_REFL : forall n : N, N.le n n. +Axiom thm_LT_REFL : forall n : N, ~ (N.lt n n). +Axiom thm_LT_IMP_NE : forall m : N, forall n : N, (N.lt m n) -> ~ (m = n). +Axiom thm_LE_ANTISYM : forall m : N, forall n : N, ((N.le m n) /\ (N.le n m)) = (m = n). +Axiom thm_LT_ANTISYM : forall m : N, forall n : N, ~ ((N.lt m n) /\ (N.lt n m)). +Axiom thm_LET_ANTISYM : forall m : N, forall n : N, ~ ((N.le m n) /\ (N.lt n m)). +Axiom thm_LTE_ANTISYM : forall m : N, forall n : N, ~ ((N.lt m n) /\ (N.le n m)). +Axiom thm_LE_TRANS : forall m : N, forall n : N, forall p : N, ((N.le m n) /\ (N.le n p)) -> N.le m p. +Axiom thm_LT_TRANS : forall m : N, forall n : N, forall p : N, ((N.lt m n) /\ (N.lt n p)) -> N.lt m p. +Axiom thm_LET_TRANS : forall m : N, forall n : N, forall p : N, ((N.le m n) /\ (N.lt n p)) -> N.lt m p. +Axiom thm_LTE_TRANS : forall m : N, forall n : N, forall p : N, ((N.lt m n) /\ (N.le n p)) -> N.lt m p. +Axiom thm_LE_CASES : forall m : N, forall n : N, (N.le m n) \/ (N.le n m). +Axiom thm_LT_CASES : forall m : N, forall n : N, (N.lt m n) \/ ((N.lt n m) \/ (m = n)). +Axiom thm_LET_CASES : forall m : N, forall n : N, (N.le m n) \/ (N.lt n m). +Axiom thm_LTE_CASES : forall m : N, forall n : N, (N.lt m n) \/ (N.le n m). +Axiom thm_LE_LT : forall m : N, forall n : N, (N.le m n) = ((N.lt m n) \/ (m = n)). +Axiom thm_LT_LE : forall m : N, forall n : N, (N.lt m n) = ((N.le m n) /\ (~ (m = n))). +Axiom thm_NOT_LE : forall m : N, forall n : N, (~ (N.le m n)) = (N.lt n m). +Axiom thm_NOT_LT : forall m : N, forall n : N, (~ (N.lt m n)) = (N.le n m). +Axiom thm_LT_IMP_LE : forall m : N, forall n : N, (N.lt m n) -> N.le m n. +Axiom thm_EQ_IMP_LE : forall m : N, forall n : N, (m = n) -> N.le m n. +Axiom thm_LT_NZ : forall n : N, (N.lt (NUMERAL 0%N) n) = (~ (n = (NUMERAL 0%N))). +Axiom thm_LE_1 : (forall n : N, (~ (n = (NUMERAL 0%N))) -> N.lt (NUMERAL 0%N) n) /\ ((forall n : N, (~ (n = (NUMERAL 0%N))) -> N.le (NUMERAL (BIT1 0%N)) n) /\ ((forall n : N, (N.lt (NUMERAL 0%N) n) -> ~ (n = (NUMERAL 0%N))) /\ ((forall n : N, (N.lt (NUMERAL 0%N) n) -> N.le (NUMERAL (BIT1 0%N)) n) /\ ((forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> N.lt (NUMERAL 0%N) n) /\ (forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> ~ (n = (NUMERAL 0%N))))))). +Axiom thm_LE_EXISTS : forall m : N, forall n : N, (N.le m n) = (exists d : N, n = (N.add m d)). +Axiom thm_LT_EXISTS : forall m : N, forall n : N, (N.lt m n) = (exists d : N, n = (N.add m (N.succ d))). +Axiom thm_LE_ADD : forall m : N, forall n : N, N.le m (N.add m n). +Axiom thm_LE_ADDR : forall m : N, forall n : N, N.le n (N.add m n). +Axiom thm_LT_ADD : forall m : N, forall n : N, (N.lt m (N.add m n)) = (N.lt (NUMERAL 0%N) n). +Axiom thm_LT_ADDR : forall m : N, forall n : N, (N.lt n (N.add m n)) = (N.lt (NUMERAL 0%N) m). +Axiom thm_LE_ADD_LCANCEL : forall m : N, forall n : N, forall p : N, (N.le (N.add m n) (N.add m p)) = (N.le n p). +Axiom thm_LE_ADD_RCANCEL : forall m : N, forall n : N, forall p : N, (N.le (N.add m p) (N.add n p)) = (N.le m n). +Axiom thm_LT_ADD_LCANCEL : forall m : N, forall n : N, forall p : N, (N.lt (N.add m n) (N.add m p)) = (N.lt n p). +Axiom thm_LT_ADD_RCANCEL : forall m : N, forall n : N, forall p : N, (N.lt (N.add m p) (N.add n p)) = (N.lt m n). +Axiom thm_LE_ADD2 : forall m : N, forall n : N, forall p : N, forall q : N, ((N.le m p) /\ (N.le n q)) -> N.le (N.add m n) (N.add p q). +Axiom thm_LET_ADD2 : forall m : N, forall n : N, forall p : N, forall q : N, ((N.le m p) /\ (N.lt n q)) -> N.lt (N.add m n) (N.add p q). +Axiom thm_LTE_ADD2 : forall m : N, forall n : N, forall p : N, forall q : N, ((N.lt m p) /\ (N.le n q)) -> N.lt (N.add m n) (N.add p q). +Axiom thm_LT_ADD2 : forall m : N, forall n : N, forall p : N, forall q : N, ((N.lt m p) /\ (N.lt n q)) -> N.lt (N.add m n) (N.add p q). +Axiom thm_LT_MULT : forall m : N, forall n : N, (N.lt (NUMERAL 0%N) (N.mul m n)) = ((N.lt (NUMERAL 0%N) m) /\ (N.lt (NUMERAL 0%N) n)). +Axiom thm_LE_MULT2 : forall m : N, forall n : N, forall p : N, forall q : N, ((N.le m n) /\ (N.le p q)) -> N.le (N.mul m p) (N.mul n q). +Axiom thm_LT_LMULT : forall m : N, forall n : N, forall p : N, ((~ (m = (NUMERAL 0%N))) /\ (N.lt n p)) -> N.lt (N.mul m n) (N.mul m p). +Axiom thm_LE_MULT_LCANCEL : forall m : N, forall n : N, forall p : N, (N.le (N.mul m n) (N.mul m p)) = ((m = (NUMERAL 0%N)) \/ (N.le n p)). +Axiom thm_LE_MULT_RCANCEL : forall m : N, forall n : N, forall p : N, (N.le (N.mul m p) (N.mul n p)) = ((N.le m n) \/ (p = (NUMERAL 0%N))). +Axiom thm_LT_MULT_LCANCEL : forall m : N, forall n : N, forall p : N, (N.lt (N.mul m n) (N.mul m p)) = ((~ (m = (NUMERAL 0%N))) /\ (N.lt n p)). +Axiom thm_LT_MULT_RCANCEL : forall m : N, forall n : N, forall p : N, (N.lt (N.mul m p) (N.mul n p)) = ((N.lt m n) /\ (~ (p = (NUMERAL 0%N)))). +Axiom thm_LT_MULT2 : forall m : N, forall n : N, forall p : N, forall q : N, ((N.lt m n) /\ (N.lt p q)) -> N.lt (N.mul m p) (N.mul n q). +Axiom thm_LE_SQUARE_REFL : forall n : N, N.le n (N.mul n n). +Axiom thm_LT_POW2_REFL : forall n : N, N.lt n (N.pow (NUMERAL (BIT0 (BIT1 0%N))) n). +Axiom thm_WLOG_LE : forall (P : N -> N -> Prop), ((forall m : N, forall n : N, (P m n) = (P n m)) /\ (forall m : N, forall n : N, (N.le m n) -> P m n)) -> forall m : N, forall n : N, P m n. +Axiom thm_WLOG_LT : forall (P : N -> N -> Prop), ((forall m : N, P m m) /\ ((forall m : N, forall n : N, (P m n) = (P n m)) /\ (forall m : N, forall n : N, (N.lt m n) -> P m n))) -> forall m : N, forall y : N, P m y. +Axiom thm_WLOG_LE_3 : forall P : N -> N -> N -> Prop, ((forall x : N, forall y : N, forall z : N, (P x y z) -> (P y x z) /\ (P x z y)) /\ (forall x : N, forall y : N, forall z : N, ((N.le x y) /\ (N.le y z)) -> P x y z)) -> forall x : N, forall y : N, forall z : N, P x y z. +Axiom thm_num_WF : forall P : N -> Prop, (forall n : N, (forall m : N, (N.lt m n) -> P m) -> P n) -> forall n : N, P n. +Axiom thm_num_WOP : forall P : N -> Prop, (exists n : N, P n) = (exists n : N, (P n) /\ (forall m : N, (N.lt m n) -> ~ (P m))). +Axiom thm_num_MAX : forall P : N -> Prop, ((exists x : N, P x) /\ (exists M : N, forall x : N, (P x) -> N.le x M)) = (exists m : N, (P m) /\ (forall x : N, (P x) -> N.le x m)). +Axiom thm_LE_INDUCT : forall P : N -> N -> Prop, ((forall m : N, P m m) /\ (forall m : N, forall n : N, ((N.le m n) /\ (P m n)) -> P m (N.succ n))) -> forall m : N, forall n : N, (N.le m n) -> P m n. +Axiom thm_num_INDUCTION_DOWN : forall P : N -> Prop, forall m : N, ((forall n : N, (N.le m n) -> P n) /\ (forall n : N, ((N.lt n m) /\ (P (N.add n (NUMERAL (BIT1 0%N))))) -> P n)) -> forall n : N, P n. +Axiom thm_EVEN : ((EVEN (NUMERAL 0%N)) = True) /\ (forall n : N, (EVEN (N.succ n)) = (~ (EVEN n))). +Axiom thm_ODD : ((ODD (NUMERAL 0%N)) = False) /\ (forall n : N, (ODD (N.succ n)) = (~ (ODD n))). +Axiom thm_NOT_EVEN : forall n : N, (~ (EVEN n)) = (ODD n). +Axiom thm_NOT_ODD : forall n : N, (~ (ODD n)) = (EVEN n). +Axiom thm_EVEN_OR_ODD : forall n : N, (EVEN n) \/ (ODD n). +Axiom thm_EVEN_AND_ODD : forall n : N, ~ ((EVEN n) /\ (ODD n)). +Axiom thm_EVEN_ADD : forall m : N, forall n : N, (EVEN (N.add m n)) = ((EVEN m) = (EVEN n)). +Axiom thm_EVEN_MULT : forall m : N, forall n : N, (EVEN (N.mul m n)) = ((EVEN m) \/ (EVEN n)). +Axiom thm_EVEN_EXP : forall m : N, forall n : N, (EVEN (N.pow m n)) = ((EVEN m) /\ (~ (n = (NUMERAL 0%N)))). +Axiom thm_ODD_ADD : forall m : N, forall n : N, (ODD (N.add m n)) = (~ ((ODD m) = (ODD n))). +Axiom thm_ODD_MULT : forall m : N, forall n : N, (ODD (N.mul m n)) = ((ODD m) /\ (ODD n)). +Axiom thm_ODD_EXP : forall m : N, forall n : N, (ODD (N.pow m n)) = ((ODD m) \/ (n = (NUMERAL 0%N))). +Axiom thm_EVEN_DOUBLE : forall n : N, EVEN (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n). +Axiom thm_ODD_DOUBLE : forall n : N, ODD (N.succ (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n)). +Axiom thm_EVEN_EXISTS_LEMMA : forall n : N, ((EVEN n) -> exists m : N, n = (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m)) /\ ((~ (EVEN n)) -> exists m : N, n = (N.succ (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m))). +Axiom thm_EVEN_EXISTS : forall n : N, (EVEN n) = (exists m : N, n = (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m)). +Axiom thm_ODD_EXISTS : forall n : N, (ODD n) = (exists m : N, n = (N.succ (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m))). +Axiom thm_EVEN_ODD_DECOMPOSITION : forall n : N, (exists k : N, exists m : N, (ODD m) /\ (n = (N.mul (N.pow (NUMERAL (BIT0 (BIT1 0%N))) k) m))) = (~ (n = (NUMERAL 0%N))). +Axiom thm_SUB : (forall m : N, (N.sub m (NUMERAL 0%N)) = m) /\ (forall m : N, forall n : N, (N.sub m (N.succ n)) = (N.pred (N.sub m n))). +Axiom thm_SUB_0 : forall m : N, ((N.sub (NUMERAL 0%N) m) = (NUMERAL 0%N)) /\ ((N.sub m (NUMERAL 0%N)) = m). +Axiom thm_SUB_PRESUC : forall m : N, forall n : N, (N.pred (N.sub (N.succ m) n)) = (N.sub m n). +Axiom thm_SUB_SUC : forall m : N, forall n : N, (N.sub (N.succ m) (N.succ n)) = (N.sub m n). +Axiom thm_SUB_REFL : forall n : N, (N.sub n n) = (NUMERAL 0%N). +Axiom thm_ADD_SUB : forall m : N, forall n : N, (N.sub (N.add m n) n) = m. +Axiom thm_ADD_SUB2 : forall m : N, forall n : N, (N.sub (N.add m n) m) = n. +Axiom thm_SUB_EQ_0 : forall m : N, forall n : N, ((N.sub m n) = (NUMERAL 0%N)) = (N.le m n). +Axiom thm_ADD_SUBR2 : forall m : N, forall n : N, (N.sub m (N.add m n)) = (NUMERAL 0%N). +Axiom thm_ADD_SUBR : forall m : N, forall n : N, (N.sub n (N.add m n)) = (NUMERAL 0%N). +Axiom thm_SUB_ADD : forall m : N, forall n : N, (N.le n m) -> (N.add (N.sub m n) n) = m. +Axiom thm_SUB_ADD_LCANCEL : forall m : N, forall n : N, forall p : N, (N.sub (N.add m n) (N.add m p)) = (N.sub n p). +Axiom thm_SUB_ADD_RCANCEL : forall m : N, forall n : N, forall p : N, (N.sub (N.add m p) (N.add n p)) = (N.sub m n). +Axiom thm_LEFT_SUB_DISTRIB : forall m : N, forall n : N, forall p : N, (N.mul m (N.sub n p)) = (N.sub (N.mul m n) (N.mul m p)). +Axiom thm_RIGHT_SUB_DISTRIB : forall m : N, forall n : N, forall p : N, (N.mul (N.sub m n) p) = (N.sub (N.mul m p) (N.mul n p)). +Axiom thm_SUC_SUB1 : forall n : N, (N.sub (N.succ n) (NUMERAL (BIT1 0%N))) = n. +Axiom thm_EVEN_SUB : forall m : N, forall n : N, (EVEN (N.sub m n)) = ((N.le m n) \/ ((EVEN m) = (EVEN n))). +Axiom thm_ODD_SUB : forall m : N, forall n : N, (ODD (N.sub m n)) = ((N.lt n m) /\ (~ ((ODD m) = (ODD n)))). +Axiom thm_FACT : ((FACT (NUMERAL 0%N)) = (NUMERAL (BIT1 0%N))) /\ (forall n : N, (FACT (N.succ n)) = (N.mul (N.succ n) (FACT n))). +Axiom thm_FACT_LT : forall n : N, N.lt (NUMERAL 0%N) (FACT n). +Axiom thm_FACT_LE : forall n : N, N.le (NUMERAL (BIT1 0%N)) (FACT n). +Axiom thm_FACT_NZ : forall n : N, ~ ((FACT n) = (NUMERAL 0%N)). +Axiom thm_FACT_MONO : forall m : N, forall n : N, (N.le m n) -> N.le (FACT m) (FACT n). +Axiom thm_EXP_LT_0 : forall n : N, forall x : N, (N.lt (NUMERAL 0%N) (N.pow x n)) = ((~ (x = (NUMERAL 0%N))) \/ (n = (NUMERAL 0%N))). +Axiom thm_LT_EXP : forall x : N, forall m : N, forall n : N, (N.lt (N.pow x m) (N.pow x n)) = (((N.le (NUMERAL (BIT0 (BIT1 0%N))) x) /\ (N.lt m n)) \/ ((x = (NUMERAL 0%N)) /\ ((~ (m = (NUMERAL 0%N))) /\ (n = (NUMERAL 0%N))))). +Axiom thm_LE_EXP : forall x : N, forall m : N, forall n : N, (N.le (N.pow x m) (N.pow x n)) = (@COND Prop (x = (NUMERAL 0%N)) ((m = (NUMERAL 0%N)) -> n = (NUMERAL 0%N)) ((x = (NUMERAL (BIT1 0%N))) \/ (N.le m n))). +Axiom thm_EQ_EXP : forall x : N, forall m : N, forall n : N, ((N.pow x m) = (N.pow x n)) = (@COND Prop (x = (NUMERAL 0%N)) ((m = (NUMERAL 0%N)) = (n = (NUMERAL 0%N))) ((x = (NUMERAL (BIT1 0%N))) \/ (m = n))). +Axiom thm_EXP_MONO_LE_IMP : forall x : N, forall y : N, forall n : N, (N.le x y) -> N.le (N.pow x n) (N.pow y n). +Axiom thm_EXP_MONO_LT_IMP : forall x : N, forall y : N, forall n : N, ((N.lt x y) /\ (~ (n = (NUMERAL 0%N)))) -> N.lt (N.pow x n) (N.pow y n). +Axiom thm_EXP_MONO_LE : forall x : N, forall y : N, forall n : N, (N.le (N.pow x n) (N.pow y n)) = ((N.le x y) \/ (n = (NUMERAL 0%N))). +Axiom thm_EXP_MONO_LT : forall x : N, forall y : N, forall n : N, (N.lt (N.pow x n) (N.pow y n)) = ((N.lt x y) /\ (~ (n = (NUMERAL 0%N)))). +Axiom thm_EXP_MONO_EQ : forall x : N, forall y : N, forall n : N, ((N.pow x n) = (N.pow y n)) = ((x = y) \/ (n = (NUMERAL 0%N))). +Axiom thm_DIVMOD_EXIST : forall m : N, forall n : N, (~ (n = (NUMERAL 0%N))) -> exists q : N, exists r : N, (m = (N.add (N.mul q n) r)) /\ (N.lt r n). +Axiom thm_DIVMOD_EXIST_0 : forall m : N, forall n : N, exists q : N, exists r : N, @COND Prop (n = (NUMERAL 0%N)) ((q = (NUMERAL 0%N)) /\ (r = m)) ((m = (N.add (N.mul q n) r)) /\ (N.lt r n)). +Axiom thm_DIVISION : forall m : N, forall n : N, (~ (n = (NUMERAL 0%N))) -> (m = (N.add (N.mul (N.div m n) n) (N.modulo m n))) /\ (N.lt (N.modulo m n) n). +Axiom thm_DIV_ZERO : forall n : N, (N.div n (NUMERAL 0%N)) = (NUMERAL 0%N). +Axiom thm_MOD_ZERO : forall n : N, (N.modulo n (NUMERAL 0%N)) = n. +Axiom thm_DIVISION_SIMP : (forall m : N, forall n : N, (N.add (N.mul (N.div m n) n) (N.modulo m n)) = m) /\ (forall m : N, forall n : N, (N.add (N.mul n (N.div m n)) (N.modulo m n)) = m). +Axiom thm_EQ_DIVMOD : forall p : N, forall m : N, forall n : N, (((N.div m p) = (N.div n p)) /\ ((N.modulo m p) = (N.modulo n p))) = (m = n). +Axiom thm_MOD_LT_EQ : forall m : N, forall n : N, (N.lt (N.modulo m n) n) = (~ (n = (NUMERAL 0%N))). +Axiom thm_MOD_LT_EQ_LT : forall m : N, forall n : N, (N.lt (N.modulo m n) n) = (N.lt (NUMERAL 0%N) n). +Axiom thm_DIVMOD_UNIQ_LEMMA : forall m : N, forall n : N, forall q1 : N, forall r1 : N, forall q2 : N, forall r2 : N, (((m = (N.add (N.mul q1 n) r1)) /\ (N.lt r1 n)) /\ ((m = (N.add (N.mul q2 n) r2)) /\ (N.lt r2 n))) -> (q1 = q2) /\ (r1 = r2). +Axiom thm_DIVMOD_UNIQ : forall m : N, forall n : N, forall q : N, forall r : N, ((m = (N.add (N.mul q n) r)) /\ (N.lt r n)) -> ((N.div m n) = q) /\ ((N.modulo m n) = r). +Axiom thm_MOD_UNIQ : forall m : N, forall n : N, forall q : N, forall r : N, ((m = (N.add (N.mul q n) r)) /\ (N.lt r n)) -> (N.modulo m n) = r. +Axiom thm_DIV_UNIQ : forall m : N, forall n : N, forall q : N, forall r : N, ((m = (N.add (N.mul q n) r)) /\ (N.lt r n)) -> (N.div m n) = q. +Axiom thm_MOD_0 : forall n : N, (N.modulo (NUMERAL 0%N) n) = (NUMERAL 0%N). +Axiom thm_DIV_0 : forall n : N, (N.div (NUMERAL 0%N) n) = (NUMERAL 0%N). +Axiom thm_MOD_MULT : forall m : N, forall n : N, (N.modulo (N.mul m n) m) = (NUMERAL 0%N). +Axiom thm_DIV_MULT : forall m : N, forall n : N, (~ (m = (NUMERAL 0%N))) -> (N.div (N.mul m n) m) = n. +Axiom thm_MOD_LT : forall m : N, forall n : N, (N.lt m n) -> (N.modulo m n) = m. +Axiom thm_MOD_EQ_SELF : forall m : N, forall n : N, ((N.modulo m n) = m) = ((n = (NUMERAL 0%N)) \/ (N.lt m n)). +Axiom thm_MOD_CASES : forall n : N, forall p : N, (N.lt n (N.mul (NUMERAL (BIT0 (BIT1 0%N))) p)) -> (N.modulo n p) = (@COND N (N.lt n p) n (N.sub n p)). +Axiom thm_MOD_ADD_CASES : forall m : N, forall n : N, forall p : N, ((N.lt m p) /\ (N.lt n p)) -> (N.modulo (N.add m n) p) = (@COND N (N.lt (N.add m n) p) (N.add m n) (N.sub (N.add m n) p)). +Axiom thm_MOD_EQ : forall m : N, forall n : N, forall p : N, forall q : N, (m = (N.add n (N.mul q p))) -> (N.modulo m p) = (N.modulo n p). +Axiom thm_DIV_LE : forall m : N, forall n : N, N.le (N.div m n) m. +Axiom thm_DIV_MUL_LE : forall m : N, forall n : N, N.le (N.mul n (N.div m n)) m. +Axiom thm_MOD_LE_TWICE : forall m : N, forall n : N, ((N.lt (NUMERAL 0%N) m) /\ (N.le m n)) -> N.le (N.mul (NUMERAL (BIT0 (BIT1 0%N))) (N.modulo n m)) n. +Axiom thm_MOD_1 : forall n : N, (N.modulo n (NUMERAL (BIT1 0%N))) = (NUMERAL 0%N). +Axiom thm_DIV_1 : forall n : N, (N.div n (NUMERAL (BIT1 0%N))) = n. +Axiom thm_DIV_LT : forall m : N, forall n : N, (N.lt m n) -> (N.div m n) = (NUMERAL 0%N). +Axiom thm_MOD_MOD : forall m : N, forall n : N, forall p : N, (N.modulo (N.modulo m (N.mul n p)) n) = (N.modulo m n). +Axiom thm_MOD_MOD_REFL : forall m : N, forall n : N, (N.modulo (N.modulo m n) n) = (N.modulo m n). +Axiom thm_MOD_MOD_LE : forall m : N, forall n : N, forall p : N, ((~ (n = (NUMERAL 0%N))) /\ (N.le n p)) -> (N.modulo (N.modulo m n) p) = (N.modulo m n). +Axiom thm_MOD_EVEN_2 : forall m : N, forall n : N, (EVEN n) -> (N.modulo (N.modulo m n) (NUMERAL (BIT0 (BIT1 0%N)))) = (N.modulo m (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_DIV_MULT2 : forall m : N, forall n : N, forall p : N, (~ (m = (NUMERAL 0%N))) -> (N.div (N.mul m n) (N.mul m p)) = (N.div n p). +Axiom thm_MOD_MULT2 : forall m : N, forall n : N, forall p : N, (N.modulo (N.mul m n) (N.mul m p)) = (N.mul m (N.modulo n p)). +Axiom thm_MOD_EXISTS : forall m : N, forall n : N, (exists q : N, m = (N.mul n q)) = (@COND Prop (n = (NUMERAL 0%N)) (m = (NUMERAL 0%N)) ((N.modulo m n) = (NUMERAL 0%N))). +Axiom thm_LE_RDIV_EQ : forall a : N, forall b : N, forall n : N, (~ (a = (NUMERAL 0%N))) -> (N.le n (N.div b a)) = (N.le (N.mul a n) b). +Axiom thm_RDIV_LT_EQ : forall a : N, forall b : N, forall n : N, (~ (a = (NUMERAL 0%N))) -> (N.lt (N.div b a) n) = (N.lt b (N.mul a n)). +Axiom thm_LE_LDIV_EQ : forall a : N, forall b : N, forall n : N, (~ (a = (NUMERAL 0%N))) -> (N.le (N.div b a) n) = (N.lt b (N.mul a (N.add n (NUMERAL (BIT1 0%N))))). +Axiom thm_LDIV_LT_EQ : forall a : N, forall b : N, forall n : N, (~ (a = (NUMERAL 0%N))) -> (N.lt n (N.div b a)) = (N.le (N.mul a (N.add n (NUMERAL (BIT1 0%N)))) b). +Axiom thm_LE_LDIV : forall a : N, forall b : N, forall n : N, ((~ (a = (NUMERAL 0%N))) /\ (N.le b (N.mul a n))) -> N.le (N.div b a) n. +Axiom thm_DIV_MONO : forall m : N, forall n : N, forall p : N, (N.le m n) -> N.le (N.div m p) (N.div n p). +Axiom thm_DIV_MONO_LT : forall m : N, forall n : N, forall p : N, ((~ (p = (NUMERAL 0%N))) /\ (N.le (N.add m p) n)) -> N.lt (N.div m p) (N.div n p). +Axiom thm_DIV_EQ_0 : forall m : N, forall n : N, (~ (n = (NUMERAL 0%N))) -> ((N.div m n) = (NUMERAL 0%N)) = (N.lt m n). +Axiom thm_MOD_DIV_EQ_0 : forall m : N, forall n : N, (~ (n = (NUMERAL 0%N))) -> (N.div (N.modulo m n) n) = (NUMERAL 0%N). +Axiom thm_MOD_EQ_0 : forall m : N, forall n : N, ((N.modulo m n) = (NUMERAL 0%N)) = (exists q : N, m = (N.mul q n)). +Axiom thm_DIV_EQ_SELF : forall m : N, forall n : N, ((N.div m n) = m) = ((m = (NUMERAL 0%N)) \/ (n = (NUMERAL (BIT1 0%N)))). +Axiom thm_MOD_REFL : forall n : N, (N.modulo n n) = (NUMERAL 0%N). +Axiom thm_EVEN_MOD : forall n : N, (EVEN n) = ((N.modulo n (NUMERAL (BIT0 (BIT1 0%N)))) = (NUMERAL 0%N)). +Axiom thm_ODD_MOD : forall n : N, (ODD n) = ((N.modulo n (NUMERAL (BIT0 (BIT1 0%N)))) = (NUMERAL (BIT1 0%N))). +Axiom thm_MOD_2_CASES : forall n : N, (N.modulo n (NUMERAL (BIT0 (BIT1 0%N)))) = (@COND N (EVEN n) (NUMERAL 0%N) (NUMERAL (BIT1 0%N))). +Axiom thm_EVEN_MOD_EVEN : forall m : N, forall n : N, (EVEN n) -> (EVEN (N.modulo m n)) = (EVEN m). +Axiom thm_ODD_MOD_EVEN : forall m : N, forall n : N, (EVEN n) -> (ODD (N.modulo m n)) = (ODD m). +Axiom thm_HALF_DOUBLE : (forall n : N, (N.div (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT0 (BIT1 0%N)))) = n) /\ (forall n : N, (N.div (N.mul n (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) = n). +Axiom thm_DOUBLE_HALF : (forall n : N, (EVEN n) -> (N.mul (NUMERAL (BIT0 (BIT1 0%N))) (N.div n (NUMERAL (BIT0 (BIT1 0%N))))) = n) /\ (forall n : N, (EVEN n) -> (N.mul (N.div n (NUMERAL (BIT0 (BIT1 0%N)))) (NUMERAL (BIT0 (BIT1 0%N)))) = n). +Axiom thm_MOD_MULT_RMOD : forall m : N, forall n : N, forall p : N, (N.modulo (N.mul m (N.modulo p n)) n) = (N.modulo (N.mul m p) n). +Axiom thm_MOD_MULT_LMOD : forall m : N, forall n : N, forall p : N, (N.modulo (N.mul (N.modulo m n) p) n) = (N.modulo (N.mul m p) n). +Axiom thm_MOD_MULT_MOD2 : forall m : N, forall n : N, forall p : N, (N.modulo (N.mul (N.modulo m n) (N.modulo p n)) n) = (N.modulo (N.mul m p) n). +Axiom thm_MOD_EXP_MOD : forall m : N, forall n : N, forall p : N, (N.modulo (N.pow (N.modulo m n) p) n) = (N.modulo (N.pow m p) n). +Axiom thm_MOD_MULT_ADD : (forall m : N, forall n : N, forall p : N, (N.modulo (N.add (N.mul m n) p) n) = (N.modulo p n)) /\ ((forall m : N, forall n : N, forall p : N, (N.modulo (N.add (N.mul n m) p) n) = (N.modulo p n)) /\ ((forall m : N, forall n : N, forall p : N, (N.modulo (N.add p (N.mul m n)) n) = (N.modulo p n)) /\ (forall m : N, forall n : N, forall p : N, (N.modulo (N.add p (N.mul n m)) n) = (N.modulo p n)))). +Axiom thm_DIV_MULT_ADD : (forall a : N, forall b : N, forall n : N, (~ (n = (NUMERAL 0%N))) -> (N.div (N.add (N.mul a n) b) n) = (N.add a (N.div b n))) /\ ((forall a : N, forall b : N, forall n : N, (~ (n = (NUMERAL 0%N))) -> (N.div (N.add (N.mul n a) b) n) = (N.add a (N.div b n))) /\ ((forall a : N, forall b : N, forall n : N, (~ (n = (NUMERAL 0%N))) -> (N.div (N.add b (N.mul a n)) n) = (N.add (N.div b n) a)) /\ (forall a : N, forall b : N, forall n : N, (~ (n = (NUMERAL 0%N))) -> (N.div (N.add b (N.mul n a)) n) = (N.add (N.div b n) a)))). +Axiom thm_MOD_ADD_MOD : forall a : N, forall b : N, forall n : N, (N.modulo (N.add (N.modulo a n) (N.modulo b n)) n) = (N.modulo (N.add a b) n). +Axiom thm_DIV_ADD_MOD : forall a : N, forall b : N, forall n : N, (~ (n = (NUMERAL 0%N))) -> ((N.modulo (N.add a b) n) = (N.add (N.modulo a n) (N.modulo b n))) = ((N.div (N.add a b) n) = (N.add (N.div a n) (N.div b n))). +Axiom thm_MOD_ADD_EQ_EQ : forall n : N, forall x : N, forall y : N, ((N.modulo (N.add x y) n) = (N.add (N.modulo x n) (N.modulo y n))) = ((n = (NUMERAL 0%N)) \/ (N.lt (N.add (N.modulo x n) (N.modulo y n)) n)). +Axiom thm_DIV_ADD_EQ_EQ : forall n : N, forall x : N, forall y : N, ((N.div (N.add x y) n) = (N.add (N.div x n) (N.div y n))) = ((n = (NUMERAL 0%N)) \/ (N.lt (N.add (N.modulo x n) (N.modulo y n)) n)). +Axiom thm_DIV_ADD_EQ : forall n : N, forall x : N, forall y : N, (N.lt (N.add (N.modulo x n) (N.modulo y n)) n) -> (N.div (N.add x y) n) = (N.add (N.div x n) (N.div y n)). +Axiom thm_MOD_ADD_EQ : forall n : N, forall x : N, forall y : N, (N.lt (N.add (N.modulo x n) (N.modulo y n)) n) -> (N.modulo (N.add x y) n) = (N.add (N.modulo x n) (N.modulo y n)). +Axiom thm_DIV_REFL : forall n : N, (~ (n = (NUMERAL 0%N))) -> (N.div n n) = (NUMERAL (BIT1 0%N)). +Axiom thm_MOD_LE : forall m : N, forall n : N, N.le (N.modulo m n) m. +Axiom thm_DIV_MONO2 : forall m : N, forall n : N, forall p : N, ((~ (p = (NUMERAL 0%N))) /\ (N.le p m)) -> N.le (N.div n m) (N.div n p). +Axiom thm_DIV_LE_EXCLUSION : forall a : N, forall b : N, forall c : N, forall d : N, ((~ (b = (NUMERAL 0%N))) /\ (N.lt (N.mul b c) (N.mul (N.add a (NUMERAL (BIT1 0%N))) d))) -> N.le (N.div c d) (N.div a b). +Axiom thm_DIV_EQ_EXCLUSION : forall a : N, forall b : N, forall c : N, forall d : N, ((N.lt (N.mul b c) (N.mul (N.add a (NUMERAL (BIT1 0%N))) d)) /\ (N.lt (N.mul a d) (N.mul (N.add c (NUMERAL (BIT1 0%N))) b))) -> (N.div a b) = (N.div c d). +Axiom thm_MULT_DIV_LE : forall m : N, forall n : N, forall p : N, N.le (N.mul m (N.div n p)) (N.div (N.mul m n) p). +Axiom thm_DIV_DIV : forall m : N, forall n : N, forall p : N, (N.div (N.div m n) p) = (N.div m (N.mul n p)). +Axiom thm_DIV_MOD : forall m : N, forall n : N, forall p : N, (N.modulo (N.div m n) p) = (N.div (N.modulo m (N.mul n p)) n). +Axiom thm_MOD_MULT_MOD : forall m : N, forall n : N, forall p : N, (N.modulo m (N.mul n p)) = (N.add (N.mul n (N.modulo (N.div m n) p)) (N.modulo m n)). +Axiom thm_MOD_MOD_EXP_MIN : forall x : N, forall p : N, forall m : N, forall n : N, (N.modulo (N.modulo x (N.pow p m)) (N.pow p n)) = (N.modulo x (N.pow p (N.min m n))). +Axiom thm_MOD_EXP : forall m : N, forall n : N, forall p : N, (~ (m = (NUMERAL 0%N))) -> (N.modulo (N.pow m n) (N.pow m p)) = (@COND N ((N.le p n) \/ (m = (NUMERAL (BIT1 0%N)))) (NUMERAL 0%N) (N.pow m n)). +Axiom thm_DIV_EXP : forall m : N, forall n : N, forall p : N, (~ (m = (NUMERAL 0%N))) -> (N.div (N.pow m n) (N.pow m p)) = (@COND N (N.le p n) (N.pow m (N.sub n p)) (@COND N (m = (NUMERAL (BIT1 0%N))) (NUMERAL (BIT1 0%N)) (NUMERAL 0%N))). +Axiom thm_FORALL_LT_MOD_THM : forall P : N -> Prop, forall n : N, (forall a : N, (N.lt a n) -> P a) = ((n = (NUMERAL 0%N)) \/ (forall a : N, P (N.modulo a n))). +Axiom thm_FORALL_MOD_THM : forall P : N -> Prop, forall n : N, (~ (n = (NUMERAL 0%N))) -> (forall a : N, P (N.modulo a n)) = (forall a : N, (N.lt a n) -> P a). +Axiom thm_EXISTS_LT_MOD_THM : forall P : N -> Prop, forall n : N, (exists a : N, (N.lt a n) /\ (P a)) = ((~ (n = (NUMERAL 0%N))) /\ (exists a : N, P (N.modulo a n))). +Axiom thm_EXISTS_MOD_THM : forall P : N -> Prop, forall n : N, (~ (n = (NUMERAL 0%N))) -> (exists a : N, P (N.modulo a n)) = (exists a : N, (N.lt a n) /\ (P a)). +Axiom thm_PRE_ELIM_THM : forall (n : N) (P : N -> Prop), (P (N.pred n)) = (forall m : N, ((n = (N.succ m)) \/ ((m = (NUMERAL 0%N)) /\ (n = (NUMERAL 0%N)))) -> P m). +Axiom thm_SUB_ELIM_THM : forall (a : N) (b : N) (P : N -> Prop), (P (N.sub a b)) = (forall d : N, ((a = (N.add b d)) \/ ((N.lt a b) /\ (d = (NUMERAL 0%N)))) -> P d). +Axiom thm_DIVMOD_ELIM_THM : forall (m : N) (n : N) (P : N -> N -> Prop), (P (N.div m n) (N.modulo m n)) = (forall q : N, forall r : N, (((n = (NUMERAL 0%N)) /\ ((q = (NUMERAL 0%N)) /\ (r = m))) \/ ((m = (N.add (N.mul q n) r)) /\ (N.lt r n))) -> P q r). +Axiom thm_minimal : forall P : N -> Prop, (minimal P) = (@ε N (fun n : N => (P n) /\ (forall m : N, (N.lt m n) -> ~ (P m)))). +Axiom thm_MINIMAL : forall P : N -> Prop, (exists n : N, P n) = ((P (minimal P)) /\ (forall m : N, (N.lt m (minimal P)) -> ~ (P m))). +Axiom thm_MINIMAL_UNIQUE : forall P : N -> Prop, forall n : N, ((P n) /\ (forall m : N, (N.lt m n) -> ~ (P m))) -> (minimal P) = n. +Axiom thm_LE_MINIMAL : forall P : N -> Prop, forall n : N, (exists r : N, P r) -> (N.le n (minimal P)) = (forall i : N, (P i) -> N.le n i). +Axiom thm_MINIMAL_LE : forall P : N -> Prop, forall n : N, (exists r : N, P r) -> (N.le (minimal P) n) = (exists i : N, (N.le i n) /\ (P i)). +Axiom thm_MINIMAL_UBOUND : forall P : N -> Prop, forall n : N, (P n) -> N.le (minimal P) n. +Axiom thm_MINIMAL_LBOUND : forall P : N -> Prop, forall n : N, ((exists r : N, P r) /\ (forall m : N, (N.lt m n) -> ~ (P m))) -> N.le n (minimal P). +Axiom thm_MINIMAL_MONO : forall P : N -> Prop, forall Q : N -> Prop, ((exists n : N, P n) /\ (forall n : N, (P n) -> Q n)) -> N.le (minimal Q) (minimal P). +Axiom thm_TRANSITIVE_STEPWISE_LT_EQ : forall R' : N -> N -> Prop, (forall x : N, forall y : N, forall z : N, ((R' x y) /\ (R' y z)) -> R' x z) -> (forall m : N, forall n : N, (N.lt m n) -> R' m n) = (forall n : N, R' n (N.succ n)). +Axiom thm_TRANSITIVE_STEPWISE_LT : forall R' : N -> N -> Prop, ((forall x : N, forall y : N, forall z : N, ((R' x y) /\ (R' y z)) -> R' x z) /\ (forall n : N, R' n (N.succ n))) -> forall m : N, forall n : N, (N.lt m n) -> R' m n. +Axiom thm_TRANSITIVE_STEPWISE_LE_EQ : forall R' : N -> N -> Prop, ((forall x : N, R' x x) /\ (forall x : N, forall y : N, forall z : N, ((R' x y) /\ (R' y z)) -> R' x z)) -> (forall m : N, forall n : N, (N.le m n) -> R' m n) = (forall n : N, R' n (N.succ n)). +Axiom thm_TRANSITIVE_STEPWISE_LE : forall R' : N -> N -> Prop, ((forall x : N, R' x x) /\ ((forall x : N, forall y : N, forall z : N, ((R' x y) /\ (R' y z)) -> R' x z) /\ (forall n : N, R' n (N.succ n)))) -> forall m : N, forall n : N, (N.le m n) -> R' m n. +Axiom thm_DEPENDENT_CHOICE_FIXED : forall {A : Type'}, forall P : N -> A -> Prop, forall R' : N -> A -> A -> Prop, forall a : A, ((P (NUMERAL 0%N) a) /\ (forall n : N, forall x : A, (P n x) -> exists y : A, (P (N.succ n) y) /\ (R' n x y))) -> exists f : N -> A, ((f (NUMERAL 0%N)) = a) /\ ((forall n : N, P n (f n)) /\ (forall n : N, R' n (f n) (f (N.succ n)))). +Axiom thm_DEPENDENT_CHOICE : forall {A : Type'}, forall P : N -> A -> Prop, forall R' : N -> A -> A -> Prop, ((exists a : A, P (NUMERAL 0%N) a) /\ (forall n : N, forall x : A, (P n x) -> exists y : A, (P (N.succ n) y) /\ (R' n x y))) -> exists f : N -> A, (forall n : N, P n (f n)) /\ (forall n : N, R' n (f n) (f (N.succ n))). +Axiom thm_WF : forall {A : Type'}, forall lt2 : A -> A -> Prop, (@WF A lt2) = (forall P : A -> Prop, (exists x : A, P x) -> exists x : A, (P x) /\ (forall y : A, (lt2 y x) -> ~ (P y))). +Axiom thm_WF_EQ : forall {A : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) = (forall P : A -> Prop, (exists x : A, P x) = (exists x : A, (P x) /\ (forall y : A, (lt2 y x) -> ~ (P y)))). +Axiom thm_WF_IND : forall {A : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) = (forall P : A -> Prop, (forall x : A, (forall y : A, (lt2 y x) -> P y) -> P x) -> forall x : A, P x). +Axiom thm_WF_DCHAIN : forall {A : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) = (~ (exists s : N -> A, forall n : N, lt2 (s (N.succ n)) (s n))). +Axiom thm_WF_DHAIN_TRANSITIVE : forall {A : Type'}, forall lt2 : A -> A -> Prop, (forall x : A, forall y : A, forall z : A, ((lt2 x y) /\ (lt2 y z)) -> lt2 x z) -> (@WF A lt2) = (~ (exists s : N -> A, forall i : N, forall j : N, (N.lt i j) -> lt2 (s j) (s i))). +Axiom thm_WF_UREC : forall {A B : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) -> forall H : (A -> B) -> A -> B, (forall f : A -> B, forall g : A -> B, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (H f x) = (H g x)) -> forall f : A -> B, forall g : A -> B, ((forall x : A, (f x) = (H f x)) /\ (forall x : A, (g x) = (H g x))) -> f = g. +Axiom thm_WF_UREC_WF : forall {A : Type'} (lt2 : A -> A -> Prop), (forall H : (A -> Prop) -> A -> Prop, (forall f : A -> Prop, forall g : A -> Prop, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (H f x) = (H g x)) -> forall f : A -> Prop, forall g : A -> Prop, ((forall x : A, (f x) = (H f x)) /\ (forall x : A, (g x) = (H g x))) -> f = g) -> @WF A lt2. +Axiom thm_WF_REC_INVARIANT : forall {A B : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) -> forall H : (A -> B) -> A -> B, forall S' : A -> B -> Prop, (forall f : A -> B, forall g : A -> B, forall x : A, (forall z : A, (lt2 z x) -> ((f z) = (g z)) /\ (S' z (f z))) -> ((H f x) = (H g x)) /\ (S' x (H f x))) -> exists f : A -> B, forall x : A, (f x) = (H f x). +Axiom thm_WF_REC : forall {A B : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) -> forall H : (A -> B) -> A -> B, (forall f : A -> B, forall g : A -> B, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (H f x) = (H g x)) -> exists f : A -> B, forall x : A, (f x) = (H f x). +Axiom thm_WF_REC_WF : forall {A : Type'} (lt2 : A -> A -> Prop), (forall H : (A -> N) -> A -> N, (forall f : A -> N, forall g : A -> N, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (H f x) = (H g x)) -> exists f : A -> N, forall x : A, (f x) = (H f x)) -> @WF A lt2. +Axiom thm_WF_EREC : forall {A B : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) -> forall H : (A -> B) -> A -> B, (forall f : A -> B, forall g : A -> B, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (H f x) = (H g x)) -> @ex1 (A -> B) (fun f : A -> B => forall x : A, (f x) = (H f x)). +Axiom thm_WF_REC_EXISTS : forall {A B : Type'} (lt2 : A -> A -> Prop), (@WF A lt2) -> forall P : (A -> B) -> A -> B -> Prop, ((forall f : A -> B, forall g : A -> B, forall x : A, forall y : B, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (P f x y) = (P g x y)) /\ (forall f : A -> B, forall x : A, (forall z : A, (lt2 z x) -> P f z (f z)) -> exists y : B, P f x y)) -> exists f : A -> B, forall x : A, P f x (f x). +Axiom thm_WF_SUBSET : forall {A : Type'}, forall lt2 : A -> A -> Prop, forall lt3 : A -> A -> Prop, ((forall x : A, forall y : A, (lt2 x y) -> lt3 x y) /\ (@WF A lt3)) -> @WF A lt2. +Axiom thm_WF_RESTRICT : forall {A : Type'}, forall lt2 : A -> A -> Prop, forall P : A -> Prop, (@WF A lt2) -> @WF A (fun x : A => fun y : A => (P x) /\ ((P y) /\ (lt2 x y))). +Axiom thm_WF_MEASURE_GEN : forall {A B : Type'}, forall lt2 : B -> B -> Prop, forall m : A -> B, (@WF B lt2) -> @WF A (fun x : A => fun x' : A => lt2 (m x) (m x')). +Axiom thm_WF_LEX_DEPENDENT : forall {A B : Type'}, forall R' : A -> A -> Prop, forall S' : A -> B -> B -> Prop, ((@WF A R') /\ (forall a : A, @WF B (S' a))) -> @WF (prod A B) (@GABS ((prod A B) -> (prod A B) -> Prop) (fun f : (prod A B) -> (prod A B) -> Prop => forall r1 : A, forall s1 : B, @GEQ ((prod A B) -> Prop) (f (@pair A B r1 s1)) (@GABS ((prod A B) -> Prop) (fun f' : (prod A B) -> Prop => forall r2 : A, forall s2 : B, @GEQ Prop (f' (@pair A B r2 s2)) ((R' r1 r2) \/ ((r1 = r2) /\ (S' r1 s1 s2))))))). +Axiom thm_WF_LEX : forall {A B : Type'}, forall R' : A -> A -> Prop, forall S' : B -> B -> Prop, ((@WF A R') /\ (@WF B S')) -> @WF (prod A B) (@GABS ((prod A B) -> (prod A B) -> Prop) (fun f : (prod A B) -> (prod A B) -> Prop => forall r1 : A, forall s1 : B, @GEQ ((prod A B) -> Prop) (f (@pair A B r1 s1)) (@GABS ((prod A B) -> Prop) (fun f' : (prod A B) -> Prop => forall r2 : A, forall s2 : B, @GEQ Prop (f' (@pair A B r2 s2)) ((R' r1 r2) \/ ((r1 = r2) /\ (S' s1 s2))))))). +Axiom thm_WF_POINTWISE : forall {A B : Type'} (lt2 : A -> A -> Prop) (lt3 : B -> B -> Prop), ((@WF A lt2) /\ (@WF B lt3)) -> @WF (prod A B) (@GABS ((prod A B) -> (prod A B) -> Prop) (fun f : (prod A B) -> (prod A B) -> Prop => forall x1 : A, forall y1 : B, @GEQ ((prod A B) -> Prop) (f (@pair A B x1 y1)) (@GABS ((prod A B) -> Prop) (fun f' : (prod A B) -> Prop => forall x2 : A, forall y2 : B, @GEQ Prop (f' (@pair A B x2 y2)) ((lt2 x1 x2) /\ (lt3 y1 y2)))))). +Axiom thm_WF_num : @WF N N.lt. +Axiom thm_WF_REC_num : forall {A : Type'}, forall H : (N -> A) -> N -> A, (forall f : N -> A, forall g : N -> A, forall n : N, (forall m : N, (N.lt m n) -> (f m) = (g m)) -> (H f n) = (H g n)) -> exists f : N -> A, forall n : N, (f n) = (H f n). +Axiom thm_MEASURE : forall {A : Type'}, forall m : A -> N, (@MEASURE A m) = (fun x : A => fun y : A => N.lt (m x) (m y)). +Axiom thm_WF_MEASURE : forall {A : Type'}, forall m : A -> N, @WF A (@MEASURE A m). +Axiom thm_MEASURE_LE : forall {A : Type'} (a : A) (b : A), forall m : A -> N, (forall y : A, (@MEASURE A m y a) -> @MEASURE A m y b) = (N.le (m a) (m b)). +Axiom thm_WF_ANTISYM : forall {A : Type'}, forall lt2 : A -> A -> Prop, forall x : A, forall y : A, (@WF A lt2) -> ~ ((lt2 x y) /\ (lt2 y x)). +Axiom thm_WF_REFL : forall {A : Type'} (lt2 : A -> A -> Prop), forall x : A, (@WF A lt2) -> ~ (lt2 x x). +Axiom thm_WF_FALSE : forall {A : Type'}, @WF A (fun x : A => fun y : A => False). +Axiom thm_MINIMAL_BAD_SEQUENCE : forall {A : Type'}, forall lt2 : A -> A -> Prop, forall bad : (N -> A) -> Prop, ((@WF A lt2) /\ ((forall x : N -> A, (~ (bad x)) -> exists n : N, forall y : N -> A, (forall k : N, (N.lt k n) -> (y k) = (x k)) -> ~ (bad y)) /\ (exists x : N -> A, bad x))) -> exists y : N -> A, (bad y) /\ (forall z : N -> A, forall n : N, ((bad z) /\ (forall k : N, (N.lt k n) -> (z k) = (y k))) -> ~ (lt2 (z n) (y n))). +Axiom thm_WF_REC_TAIL : forall {A B : Type'}, forall P : A -> Prop, forall g : A -> A, forall h : A -> B, exists f : A -> B, forall x : A, (f x) = (@COND B (P x) (f (g x)) (h x)). +Axiom thm_WF_REC_TAIL_GENERAL : forall {A B : Type'} (lt2 : A -> A -> Prop), forall P : (A -> B) -> A -> Prop, forall G : (A -> B) -> A -> A, forall H : (A -> B) -> A -> B, ((@WF A lt2) /\ ((forall f : A -> B, forall g : A -> B, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> ((P f x) = (P g x)) /\ (((G f x) = (G g x)) /\ ((H f x) = (H g x)))) /\ ((forall f : A -> B, forall g : A -> B, forall x : A, (forall z : A, (lt2 z x) -> (f z) = (g z)) -> (H f x) = (H g x)) /\ (forall f : A -> B, forall x : A, forall y : A, ((P f x) /\ (lt2 y (G f x))) -> lt2 y x)))) -> exists f : A -> B, forall x : A, (f x) = (@COND B (P f x) (f (G f x)) (H f x)). +Axiom thm_ARITH_ZERO : ((NUMERAL (NUMERAL 0%N)) = (NUMERAL 0%N)) /\ ((BIT0 0%N) = 0%N). +Axiom thm_BIT0_0 : (BIT0 (NUMERAL 0%N)) = (NUMERAL 0%N). +Axiom thm_BIT1_0 : (BIT1 (NUMERAL 0%N)) = (NUMERAL (BIT1 0%N)). +Axiom thm_ARITH_SUC : (forall n : N, (N.succ (NUMERAL n)) = (NUMERAL (N.succ n))) /\ (((N.succ 0%N) = (BIT1 0%N)) /\ ((forall n : N, (N.succ (BIT0 n)) = (BIT1 n)) /\ (forall n : N, (N.succ (BIT1 n)) = (BIT0 (N.succ n))))). +Axiom thm_ARITH_PRE : (forall n : N, (N.pred (NUMERAL n)) = (NUMERAL (N.pred n))) /\ (((N.pred 0%N) = 0%N) /\ ((forall n : N, (N.pred (BIT0 n)) = (@COND N (n = 0%N) 0%N (BIT1 (N.pred n)))) /\ (forall n : N, (N.pred (BIT1 n)) = (BIT0 n)))). +Axiom thm_ARITH_ADD : (forall m : N, forall n : N, (N.add (NUMERAL m) (NUMERAL n)) = (NUMERAL (N.add m n))) /\ (((N.add 0%N 0%N) = 0%N) /\ ((forall n : N, (N.add 0%N (BIT0 n)) = (BIT0 n)) /\ ((forall n : N, (N.add 0%N (BIT1 n)) = (BIT1 n)) /\ ((forall n : N, (N.add (BIT0 n) 0%N) = (BIT0 n)) /\ ((forall n : N, (N.add (BIT1 n) 0%N) = (BIT1 n)) /\ ((forall m : N, forall n : N, (N.add (BIT0 m) (BIT0 n)) = (BIT0 (N.add m n))) /\ ((forall m : N, forall n : N, (N.add (BIT0 m) (BIT1 n)) = (BIT1 (N.add m n))) /\ ((forall m : N, forall n : N, (N.add (BIT1 m) (BIT0 n)) = (BIT1 (N.add m n))) /\ (forall m : N, forall n : N, (N.add (BIT1 m) (BIT1 n)) = (BIT0 (N.succ (N.add m n)))))))))))). +Axiom thm_ARITH_MULT : (forall m : N, forall n : N, (N.mul (NUMERAL m) (NUMERAL n)) = (NUMERAL (N.mul m n))) /\ (((N.mul 0%N 0%N) = 0%N) /\ ((forall n : N, (N.mul 0%N (BIT0 n)) = 0%N) /\ ((forall n : N, (N.mul 0%N (BIT1 n)) = 0%N) /\ ((forall n : N, (N.mul (BIT0 n) 0%N) = 0%N) /\ ((forall n : N, (N.mul (BIT1 n) 0%N) = 0%N) /\ ((forall m : N, forall n : N, (N.mul (BIT0 m) (BIT0 n)) = (BIT0 (BIT0 (N.mul m n)))) /\ ((forall m : N, forall n : N, (N.mul (BIT0 m) (BIT1 n)) = (N.add (BIT0 m) (BIT0 (BIT0 (N.mul m n))))) /\ ((forall m : N, forall n : N, (N.mul (BIT1 m) (BIT0 n)) = (N.add (BIT0 n) (BIT0 (BIT0 (N.mul m n))))) /\ (forall m : N, forall n : N, (N.mul (BIT1 m) (BIT1 n)) = (N.add (BIT1 m) (N.add (BIT0 n) (BIT0 (BIT0 (N.mul m n)))))))))))))). +Axiom thm_ARITH_EXP : (forall m : N, forall n : N, (N.pow (NUMERAL m) (NUMERAL n)) = (NUMERAL (N.pow m n))) /\ (((N.pow 0%N 0%N) = (BIT1 0%N)) /\ ((forall m : N, (N.pow (BIT0 m) 0%N) = (BIT1 0%N)) /\ ((forall m : N, (N.pow (BIT1 m) 0%N) = (BIT1 0%N)) /\ ((forall n : N, (N.pow 0%N (BIT0 n)) = (N.mul (N.pow 0%N n) (N.pow 0%N n))) /\ ((forall m : N, forall n : N, (N.pow (BIT0 m) (BIT0 n)) = (N.mul (N.pow (BIT0 m) n) (N.pow (BIT0 m) n))) /\ ((forall m : N, forall n : N, (N.pow (BIT1 m) (BIT0 n)) = (N.mul (N.pow (BIT1 m) n) (N.pow (BIT1 m) n))) /\ ((forall n : N, (N.pow 0%N (BIT1 n)) = 0%N) /\ ((forall m : N, forall n : N, (N.pow (BIT0 m) (BIT1 n)) = (N.mul (BIT0 m) (N.mul (N.pow (BIT0 m) n) (N.pow (BIT0 m) n)))) /\ (forall m : N, forall n : N, (N.pow (BIT1 m) (BIT1 n)) = (N.mul (BIT1 m) (N.mul (N.pow (BIT1 m) n) (N.pow (BIT1 m) n)))))))))))). +Axiom thm_ARITH_EVEN : (forall n : N, (EVEN (NUMERAL n)) = (EVEN n)) /\ (((EVEN 0%N) = True) /\ ((forall n : N, (EVEN (BIT0 n)) = True) /\ (forall n : N, (EVEN (BIT1 n)) = False))). +Axiom thm_ARITH_ODD : (forall n : N, (ODD (NUMERAL n)) = (ODD n)) /\ (((ODD 0%N) = False) /\ ((forall n : N, (ODD (BIT0 n)) = False) /\ (forall n : N, (ODD (BIT1 n)) = True))). +Axiom thm_ARITH_LE : (forall m : N, forall n : N, (N.le (NUMERAL m) (NUMERAL n)) = (N.le m n)) /\ (((N.le 0%N 0%N) = True) /\ ((forall n : N, (N.le (BIT0 n) 0%N) = (N.le n 0%N)) /\ ((forall n : N, (N.le (BIT1 n) 0%N) = False) /\ ((forall n : N, (N.le 0%N (BIT0 n)) = True) /\ ((forall n : N, (N.le 0%N (BIT1 n)) = True) /\ ((forall m : N, forall n : N, (N.le (BIT0 m) (BIT0 n)) = (N.le m n)) /\ ((forall m : N, forall n : N, (N.le (BIT0 m) (BIT1 n)) = (N.le m n)) /\ ((forall m : N, forall n : N, (N.le (BIT1 m) (BIT0 n)) = (N.lt m n)) /\ (forall m : N, forall n : N, (N.le (BIT1 m) (BIT1 n)) = (N.le m n)))))))))). +Axiom thm_ARITH_LT : (forall m : N, forall n : N, (N.lt (NUMERAL m) (NUMERAL n)) = (N.lt m n)) /\ (((N.lt 0%N 0%N) = False) /\ ((forall n : N, (N.lt (BIT0 n) 0%N) = False) /\ ((forall n : N, (N.lt (BIT1 n) 0%N) = False) /\ ((forall n : N, (N.lt 0%N (BIT0 n)) = (N.lt 0%N n)) /\ ((forall n : N, (N.lt 0%N (BIT1 n)) = True) /\ ((forall m : N, forall n : N, (N.lt (BIT0 m) (BIT0 n)) = (N.lt m n)) /\ ((forall m : N, forall n : N, (N.lt (BIT0 m) (BIT1 n)) = (N.le m n)) /\ ((forall m : N, forall n : N, (N.lt (BIT1 m) (BIT0 n)) = (N.lt m n)) /\ (forall m : N, forall n : N, (N.lt (BIT1 m) (BIT1 n)) = (N.lt m n)))))))))). +Axiom thm_ARITH_EQ : (forall m : N, forall n : N, ((NUMERAL m) = (NUMERAL n)) = (m = n)) /\ (((0%N = 0%N) = True) /\ ((forall n : N, ((BIT0 n) = 0%N) = (n = 0%N)) /\ ((forall n : N, ((BIT1 n) = 0%N) = False) /\ ((forall n : N, (0%N = (BIT0 n)) = (0%N = n)) /\ ((forall n : N, (0%N = (BIT1 n)) = False) /\ ((forall m : N, forall n : N, ((BIT0 m) = (BIT0 n)) = (m = n)) /\ ((forall m : N, forall n : N, ((BIT0 m) = (BIT1 n)) = False) /\ ((forall m : N, forall n : N, ((BIT1 m) = (BIT0 n)) = False) /\ (forall m : N, forall n : N, ((BIT1 m) = (BIT1 n)) = (m = n)))))))))). +Axiom thm_ARITH_SUB : (forall m : N, forall n : N, (N.sub (NUMERAL m) (NUMERAL n)) = (NUMERAL (N.sub m n))) /\ (((N.sub 0%N 0%N) = 0%N) /\ ((forall n : N, (N.sub 0%N (BIT0 n)) = 0%N) /\ ((forall n : N, (N.sub 0%N (BIT1 n)) = 0%N) /\ ((forall n : N, (N.sub (BIT0 n) 0%N) = (BIT0 n)) /\ ((forall n : N, (N.sub (BIT1 n) 0%N) = (BIT1 n)) /\ ((forall m : N, forall n : N, (N.sub (BIT0 m) (BIT0 n)) = (BIT0 (N.sub m n))) /\ ((forall m : N, forall n : N, (N.sub (BIT0 m) (BIT1 n)) = (N.pred (BIT0 (N.sub m n)))) /\ ((forall m : N, forall n : N, (N.sub (BIT1 m) (BIT0 n)) = (@COND N (N.le n m) (BIT1 (N.sub m n)) 0%N)) /\ (forall m : N, forall n : N, (N.sub (BIT1 m) (BIT1 n)) = (BIT0 (N.sub m n))))))))))). +Axiom thm_EXP_2_NE_0 : forall n : N, ~ ((N.pow (NUMERAL (BIT0 (BIT1 0%N))) n) = (NUMERAL 0%N)). +Axiom thm_INJ_INVERSE2 : forall {A B C : Type'}, forall P : A -> B -> C, (forall x1 : A, forall y1 : B, forall x2 : A, forall y2 : B, ((P x1 y1) = (P x2 y2)) = ((x1 = x2) /\ (y1 = y2))) -> exists X : C -> A, exists Y : C -> B, forall x : A, forall y : B, ((X (P x y)) = x) /\ ((Y (P x y)) = y). +Axiom thm_NUMPAIR : forall x : N, forall y : N, (NUMPAIR x y) = (N.mul (N.pow (NUMERAL (BIT0 (BIT1 0%N))) x) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) y) (NUMERAL (BIT1 0%N)))). +Axiom thm_NUMPAIR_INJ_LEMMA : forall x1 : N, forall y1 : N, forall x2 : N, forall y2 : N, ((NUMPAIR x1 y1) = (NUMPAIR x2 y2)) -> x1 = x2. +Axiom thm_NUMPAIR_INJ : forall x1 : N, forall y1 : N, forall x2 : N, forall y2 : N, ((NUMPAIR x1 y1) = (NUMPAIR x2 y2)) = ((x1 = x2) /\ (y1 = y2)). +Axiom thm_NUMSUM : forall b : Prop, forall x : N, (NUMSUM b x) = (@COND N b (N.succ (N.mul (NUMERAL (BIT0 (BIT1 0%N))) x)) (N.mul (NUMERAL (BIT0 (BIT1 0%N))) x)). +Axiom thm_NUMSUM_INJ : forall b1 : Prop, forall x1 : N, forall b2 : Prop, forall x2 : N, ((NUMSUM b1 x1) = (NUMSUM b2 x2)) = ((b1 = b2) /\ (x1 = x2)). +Axiom thm_INJN : forall {A : Type'}, forall m : N, (@INJN A m) = (fun n : N => fun a : A => n = m). +Axiom thm_INJN_INJ : forall {A : Type'}, forall n1 : N, forall n2 : N, ((@INJN A n1) = (@INJN A n2)) = (n1 = n2). +Axiom thm_INJA : forall {A : Type'}, forall a : A, (@INJA A a) = (fun n : N => fun b : A => b = a). +Axiom thm_INJA_INJ : forall {A : Type'}, forall a1 : A, forall a2 : A, ((@INJA A a1) = (@INJA A a2)) = (a1 = a2). +Axiom thm_INJF : forall {A : Type'}, forall f : N -> N -> A -> Prop, (@INJF A f) = (fun n : N => f (NUMFST n) (NUMSND n)). +Axiom thm_INJF_INJ : forall {A : Type'}, forall f1 : N -> N -> A -> Prop, forall f2 : N -> N -> A -> Prop, ((@INJF A f1) = (@INJF A f2)) = (f1 = f2). +Axiom thm_INJP : forall {A : Type'}, forall f1 : N -> A -> Prop, forall f2 : N -> A -> Prop, (@INJP A f1 f2) = (fun n : N => fun a : A => @COND Prop (NUMLEFT n) (f1 (NUMRIGHT n) a) (f2 (NUMRIGHT n) a)). +Axiom thm_INJP_INJ : forall {A : Type'}, forall f1 : N -> A -> Prop, forall f1' : N -> A -> Prop, forall f2 : N -> A -> Prop, forall f2' : N -> A -> Prop, ((@INJP A f1 f2) = (@INJP A f1' f2')) = ((f1 = f1') /\ (f2 = f2')). +Axiom thm_ZCONSTR : forall {A : Type'}, forall c : N, forall i : A, forall r : N -> N -> A -> Prop, (@ZCONSTR A c i r) = (@INJP A (@INJN A (N.succ c)) (@INJP A (@INJA A i) (@INJF A r))). +Axiom thm_ZBOT : forall {A : Type'}, (@ZBOT A) = (@INJP A (@INJN A (NUMERAL 0%N)) (@ε (N -> A -> Prop) (fun z : N -> A -> Prop => True))). +Axiom thm_ZCONSTR_ZBOT : forall {A : Type'}, forall c : N, forall i : A, forall r : N -> N -> A -> Prop, ~ ((@ZCONSTR A c i r) = (@ZBOT A)). +Axiom thm_ZRECSPACE_RULES : forall {A : Type'}, (@ZRECSPACE A (@ZBOT A)) /\ (forall c : N, forall i : A, forall r : N -> N -> A -> Prop, (forall n : N, @ZRECSPACE A (r n)) -> @ZRECSPACE A (@ZCONSTR A c i r)). +Axiom thm_ZRECSPACE_CASES : forall {A : Type'}, forall a : N -> A -> Prop, (@ZRECSPACE A a) = ((a = (@ZBOT A)) \/ (exists c : N, exists i : A, exists r : N -> N -> A -> Prop, (a = (@ZCONSTR A c i r)) /\ (forall n : N, @ZRECSPACE A (r n)))). +Axiom thm_ZRECSPACE_INDUCT : forall {A : Type'}, forall ZRECSPACE' : (N -> A -> Prop) -> Prop, ((ZRECSPACE' (@ZBOT A)) /\ (forall c : N, forall i : A, forall r : N -> N -> A -> Prop, (forall n : N, ZRECSPACE' (r n)) -> ZRECSPACE' (@ZCONSTR A c i r))) -> forall a : N -> A -> Prop, (@ZRECSPACE A a) -> ZRECSPACE' a. +Axiom thm_BOTTOM : forall {A : Type'}, (@BOTTOM A) = (@_mk_rec A (@ZBOT A)). +Axiom thm_CONSTR : forall {A : Type'}, forall c : N, forall i : A, forall r : N -> recspace A, (@CONSTR A c i r) = (@_mk_rec A (@ZCONSTR A c i (fun n : N => @_dest_rec A (r n)))). +Axiom thm_MK_REC_INJ : forall {A : Type'}, forall x : N -> A -> Prop, forall y : N -> A -> Prop, ((@_mk_rec A x) = (@_mk_rec A y)) -> ((@ZRECSPACE A x) /\ (@ZRECSPACE A y)) -> x = y. +Axiom thm_DEST_REC_INJ : forall {A : Type'}, forall x : recspace A, forall y : recspace A, ((@_dest_rec A x) = (@_dest_rec A y)) = (x = y). +Axiom thm_CONSTR_BOT : forall {A : Type'}, forall c : N, forall i : A, forall r : N -> recspace A, ~ ((@CONSTR A c i r) = (@BOTTOM A)). +Axiom thm_CONSTR_INJ : forall {A : Type'}, forall c1 : N, forall i1 : A, forall r1 : N -> recspace A, forall c2 : N, forall i2 : A, forall r2 : N -> recspace A, ((@CONSTR A c1 i1 r1) = (@CONSTR A c2 i2 r2)) = ((c1 = c2) /\ ((i1 = i2) /\ (r1 = r2))). +Axiom thm_CONSTR_IND : forall {A : Type'}, forall P : (recspace A) -> Prop, ((P (@BOTTOM A)) /\ (forall c : N, forall i : A, forall r : N -> recspace A, (forall n : N, P (r n)) -> P (@CONSTR A c i r))) -> forall x : recspace A, P x. +Axiom thm_CONSTR_REC : forall {A B : Type'}, forall Fn : N -> A -> (N -> recspace A) -> (N -> B) -> B, exists f : (recspace A) -> B, forall c : N, forall i : A, forall r : N -> recspace A, (f (@CONSTR A c i r)) = (Fn c i r (fun n : N => f (r n))). +Axiom thm_FCONS : forall {A : Type'}, (forall a : A, forall f : N -> A, (@FCONS A a f (NUMERAL 0%N)) = a) /\ (forall a : A, forall f : N -> A, forall n : N, (@FCONS A a f (N.succ n)) = (f n)). +Axiom thm_FCONS_UNDO : forall {A : Type'}, forall f : N -> A, f = (@FCONS A (f (NUMERAL 0%N)) (@o N N A f N.succ)). +Axiom thm_FNIL : forall {A : Type'}, forall n : N, (@FNIL A n) = (@ε A (fun x : A => True)). +Axiom thm_sum_INDUCT : forall {A B : Type'}, forall P : (Datatypes.sum A B) -> Prop, ((forall a : A, P (@inl A B a)) /\ (forall a : B, P (@inr A B a))) -> forall x : Datatypes.sum A B, P x. +Axiom thm_sum_RECURSION : forall {A B Z' : Type'}, forall INL' : A -> Z', forall INR' : B -> Z', exists fn : (Datatypes.sum A B) -> Z', (forall a : A, (fn (@inl A B a)) = (INL' a)) /\ (forall a : B, (fn (@inr A B a)) = (INR' a)). +Axiom thm_OUTL : forall {A B : Type'} (x : A), (@OUTL A B (@inl A B x)) = x. +Axiom thm_OUTR : forall {A B : Type'} (y : B), (@OUTR A B (@inr A B y)) = y. +Axiom thm_option_INDUCT : forall {A : Type'}, forall P : (option A) -> Prop, ((P (@None A)) /\ (forall a : A, P (@Some A a))) -> forall x : option A, P x. +Axiom thm_option_RECURSION : forall {A Z' : Type'}, forall NONE' : Z', forall SOME' : A -> Z', exists fn : (option A) -> Z', ((fn (@None A)) = NONE') /\ (forall a : A, (fn (@Some A a)) = (SOME' a)). +Axiom thm_list_INDUCT : forall {A : Type'}, forall P : (list A) -> Prop, ((P (@nil A)) /\ (forall a0 : A, forall a1 : list A, (P a1) -> P (@cons A a0 a1))) -> forall x : list A, P x. +Axiom thm_list_RECURSION : forall {A Z' : Type'}, forall NIL' : Z', forall CONS' : A -> (list A) -> Z' -> Z', exists fn : (list A) -> Z', ((fn (@nil A)) = NIL') /\ (forall a0 : A, forall a1 : list A, (fn (@cons A a0 a1)) = (CONS' a0 a1 (fn a1))). +Axiom thm_FORALL_OPTION_THM : forall {A : Type'}, forall P : (option A) -> Prop, (forall x : option A, P x) = ((P (@None A)) /\ (forall a : A, P (@Some A a))). +Axiom thm_EXISTS_OPTION_THM : forall {A : Type'}, forall P : (option A) -> Prop, (exists x : option A, P x) = ((P (@None A)) \/ (exists a : A, P (@Some A a))). +Axiom thm_option_DISTINCT : forall {A : Type'}, forall a : A, ~ ((@Some A a) = (@None A)). +Axiom thm_option_INJ : forall {A : Type'}, forall a : A, forall b : A, ((@Some A a) = (@Some A b)) = (a = b). +Axiom thm_ISO : forall {A B : Type'}, forall g : B -> A, forall f : A -> B, (@ExtensionalityFacts.is_inverse A B f g) = ((forall x : B, (f (g x)) = x) /\ (forall y : A, (g (f y)) = y)). +Axiom thm_ISO_REFL : forall {A : Type'}, @ExtensionalityFacts.is_inverse A A (fun x : A => x) (fun x : A => x). +Axiom thm_ISO_FUN : forall {A A' B B' : Type'} (g : B -> B') (f' : A' -> A) (g' : B' -> B) (f : A -> A'), ((@ExtensionalityFacts.is_inverse A A' f f') /\ (@ExtensionalityFacts.is_inverse B B' g g')) -> @ExtensionalityFacts.is_inverse (A -> B) (A' -> B') (fun h : A -> B => fun a' : A' => g (h (f' a'))) (fun h : A' -> B' => fun a : A => g' (h (f a))). +Axiom thm_ISO_USAGE : forall {A B : Type'} (g : B -> A) (f : A -> B), (@ExtensionalityFacts.is_inverse A B f g) -> (forall P : A -> Prop, (forall x : A, P x) = (forall x : B, P (g x))) /\ ((forall P : A -> Prop, (exists x : A, P x) = (exists x : B, P (g x))) /\ (forall a : A, forall b : B, (a = (g b)) = ((f a) = b))). +Axiom thm_HD : forall {A : Type'} (t : list A) (h : A), (@hd A (@cons A h t)) = h. +Axiom thm_TL : forall {A : Type'} (h : A) (t : list A), (@tl A (@cons A h t)) = t. +Axiom thm_APPEND : forall {A : Type'}, (forall l : list A, (@List.app A (@nil A) l) = l) /\ (forall h : A, forall t : list A, forall l : list A, (@List.app A (@cons A h t) l) = (@cons A h (@List.app A t l))). +Axiom thm_REVERSE : forall {A : Type'} (l : list A) (x : A), ((@List.rev A (@nil A)) = (@nil A)) /\ ((@List.rev A (@cons A x l)) = (@List.app A (@List.rev A l) (@cons A x (@nil A)))). +Axiom thm_LENGTH : forall {A : Type'}, ((@LENGTH A (@nil A)) = (NUMERAL 0%N)) /\ (forall h : A, forall t : list A, (@LENGTH A (@cons A h t)) = (N.succ (@LENGTH A t))). +Axiom thm_MAP : forall {A B : Type'}, (forall f : A -> B, (@List.map A B f (@nil A)) = (@nil B)) /\ (forall f : A -> B, forall h : A, forall t : list A, (@List.map A B f (@cons A h t)) = (@cons B (f h) (@List.map A B f t))). +Axiom thm_LAST : forall {A : Type'} (h : A) (t : list A), (@LAST A (@cons A h t)) = (@COND A (t = (@nil A)) h (@LAST A t)). +Axiom thm_BUTLAST : forall {A : Type'} (h : A) (t : list A), ((@List.removelast A (@nil A)) = (@nil A)) /\ ((@List.removelast A (@cons A h t)) = (@COND (list A) (t = (@nil A)) (@nil A) (@cons A h (@List.removelast A t)))). +Axiom thm_REPLICATE : forall {A : Type'} (n : N) (x : A), ((@REPLICATE A (NUMERAL 0%N) x) = (@nil A)) /\ ((@REPLICATE A (N.succ n) x) = (@cons A x (@REPLICATE A n x))). +Axiom thm_NULL : forall {A : Type'} (h : A) (t : list A), ((@NULL A (@nil A)) = True) /\ ((@NULL A (@cons A h t)) = False). +Axiom thm_ALL : forall {A : Type'} (h : A) (P : A -> Prop) (t : list A), ((@List.Forall A P (@nil A)) = True) /\ ((@List.Forall A P (@cons A h t)) = ((P h) /\ (@List.Forall A P t))). +Axiom thm_EX : forall {A : Type'} (h : A) (P : A -> Prop) (t : list A), ((@EX A P (@nil A)) = False) /\ ((@EX A P (@cons A h t)) = ((P h) \/ (@EX A P t))). +Axiom thm_ITLIST : forall {A B : Type'} (h : A) (f : A -> B -> B) (t : list A) (b : B), ((@ITLIST A B f (@nil A) b) = b) /\ ((@ITLIST A B f (@cons A h t) b) = (f h (@ITLIST A B f t b))). +Axiom thm_MEM : forall {A : Type'} (h : A) (x : A) (t : list A), ((@List.In A x (@nil A)) = False) /\ ((@List.In A x (@cons A h t)) = ((x = h) \/ (@List.In A x t))). +Axiom thm_ALL2_DEF : forall {A B : Type'} (h1' : A) (P : A -> B -> Prop) (t1 : list A) (l2 : list B), ((@ALL2 A B P (@nil A) l2) = (l2 = (@nil B))) /\ ((@ALL2 A B P (@cons A h1' t1) l2) = (@COND Prop (l2 = (@nil B)) False ((P h1' (@hd B l2)) /\ (@ALL2 A B P t1 (@tl B l2))))). +Axiom thm_ALL2 : forall {A B : Type'} (h1' : A) (h2' : B) (P : A -> B -> Prop) (t1 : list A) (t2 : list B), ((@ALL2 A B P (@nil A) (@nil B)) = True) /\ (((@ALL2 A B P (@cons A h1' t1) (@nil B)) = False) /\ (((@ALL2 A B P (@nil A) (@cons B h2' t2)) = False) /\ ((@ALL2 A B P (@cons A h1' t1) (@cons B h2' t2)) = ((P h1' h2') /\ (@ALL2 A B P t1 t2))))). +Axiom thm_MAP2_DEF : forall {A B C : Type'} (h1' : A) (f : A -> B -> C) (t1 : list A) (l : list B), ((@MAP2 A B C f (@nil A) l) = (@nil C)) /\ ((@MAP2 A B C f (@cons A h1' t1) l) = (@cons C (f h1' (@hd B l)) (@MAP2 A B C f t1 (@tl B l)))). +Axiom thm_MAP2 : forall {A B C : Type'} (h1' : A) (h2' : B) (f : A -> B -> C) (t1 : list A) (t2 : list B), ((@MAP2 A B C f (@nil A) (@nil B)) = (@nil C)) /\ ((@MAP2 A B C f (@cons A h1' t1) (@cons B h2' t2)) = (@cons C (f h1' h2') (@MAP2 A B C f t1 t2))). +Axiom thm_EL : forall {A : Type'} (n : N) (l : list A), ((@EL A (NUMERAL 0%N) l) = (@hd A l)) /\ ((@EL A (N.succ n) l) = (@EL A n (@tl A l))). +Axiom thm_FILTER : forall {A : Type'} (h : A) (P : A -> Prop) (t : list A), ((@FILTER A P (@nil A)) = (@nil A)) /\ ((@FILTER A P (@cons A h t)) = (@COND (list A) (P h) (@cons A h (@FILTER A P t)) (@FILTER A P t))). +Axiom thm_ASSOC : forall {A B : Type'} (h : prod A B) (a : A) (t : list (prod A B)), (@ASSOC A B a (@cons (prod A B) h t)) = (@COND B ((@fst A B h) = a) (@snd A B h) (@ASSOC A B a t)). +Axiom thm_ITLIST2_DEF : forall {A B C : Type'} (h1' : A) (f : A -> B -> C -> C) (t1 : list A) (l2 : list B) (b : C), ((@ITLIST2 A B C f (@nil A) l2 b) = b) /\ ((@ITLIST2 A B C f (@cons A h1' t1) l2 b) = (f h1' (@hd B l2) (@ITLIST2 A B C f t1 (@tl B l2) b))). +Axiom thm_ITLIST2 : forall {A B C : Type'} (h1' : A) (h2' : B) (f : A -> B -> C -> C) (t1 : list A) (t2 : list B) (b : C), ((@ITLIST2 A B C f (@nil A) (@nil B) b) = b) /\ ((@ITLIST2 A B C f (@cons A h1' t1) (@cons B h2' t2) b) = (f h1' h2' (@ITLIST2 A B C f t1 t2 b))). +Axiom thm_ZIP_DEF : forall {A B : Type'} (h1' : A) (t1 : list A) (l2 : list B), ((@ZIP A B (@nil A) l2) = (@nil (prod A B))) /\ ((@ZIP A B (@cons A h1' t1) l2) = (@cons (prod A B) (@pair A B h1' (@hd B l2)) (@ZIP A B t1 (@tl B l2)))). +Axiom thm_ZIP : forall {A B : Type'} (h1' : A) (h2' : B) (t1 : list A) (t2 : list B), ((@ZIP A B (@nil A) (@nil B)) = (@nil (prod A B))) /\ ((@ZIP A B (@cons A h1' t1) (@cons B h2' t2)) = (@cons (prod A B) (@pair A B h1' h2') (@ZIP A B t1 t2))). +Axiom thm_ALLPAIRS : forall {A B : Type'} (h : A) (f : A -> B -> Prop) (t : list A) (l : list B), ((@ALLPAIRS A B f (@nil A) l) = True) /\ ((@ALLPAIRS A B f (@cons A h t) l) = ((@List.Forall B (f h) l) /\ (@ALLPAIRS A B f t l))). +Axiom thm_PAIRWISE : forall {A : Type'} (h : A) (r : A -> A -> Prop) (t : list A), ((@List.ForallOrdPairs A r (@nil A)) = True) /\ ((@List.ForallOrdPairs A r (@cons A h t)) = ((@List.Forall A (r h) t) /\ (@List.ForallOrdPairs A r t))). +Axiom thm_list_of_seq : forall {A : Type'} (s : N -> A) (n : N), ((@list_of_seq A s (NUMERAL 0%N)) = (@nil A)) /\ ((@list_of_seq A s (N.succ n)) = (@List.app A (@list_of_seq A s n) (@cons A (s n) (@nil A)))). +Axiom thm_NOT_CONS_NIL : forall {A : Type'}, forall h : A, forall t : list A, ~ ((@cons A h t) = (@nil A)). +Axiom thm_LAST_CLAUSES : forall {A : Type'} (h : A) (k : A) (t : list A), ((@LAST A (@cons A h (@nil A))) = h) /\ ((@LAST A (@cons A h (@cons A k t))) = (@LAST A (@cons A k t))). +Axiom thm_APPEND_NIL : forall {A : Type'}, forall l : list A, (@List.app A l (@nil A)) = l. +Axiom thm_APPEND_ASSOC : forall {A : Type'}, forall l : list A, forall m : list A, forall n : list A, (@List.app A l (@List.app A m n)) = (@List.app A (@List.app A l m) n). +Axiom thm_REVERSE_APPEND : forall {A : Type'}, forall l : list A, forall m : list A, (@List.rev A (@List.app A l m)) = (@List.app A (@List.rev A m) (@List.rev A l)). +Axiom thm_REVERSE_REVERSE : forall {A : Type'}, forall l : list A, (@List.rev A (@List.rev A l)) = l. +Axiom thm_REVERSE_EQ_EMPTY : forall {A : Type'}, forall l : list A, ((@List.rev A l) = (@nil A)) = (l = (@nil A)). +Axiom thm_CONS_11 : forall {A : Type'}, forall h1' : A, forall h2' : A, forall t1 : list A, forall t2 : list A, ((@cons A h1' t1) = (@cons A h2' t2)) = ((h1' = h2') /\ (t1 = t2)). +Axiom thm_list_CASES : forall {A : Type'}, forall l : list A, (l = (@nil A)) \/ (exists h : A, exists t : list A, l = (@cons A h t)). +Axiom thm_LIST_EQ : forall {A : Type'}, forall l1 : list A, forall l2 : list A, (l1 = l2) = (((@LENGTH A l1) = (@LENGTH A l2)) /\ (forall n : N, (N.lt n (@LENGTH A l2)) -> (@EL A n l1) = (@EL A n l2))). +Axiom thm_LENGTH_APPEND : forall {A : Type'}, forall l : list A, forall m : list A, (@LENGTH A (@List.app A l m)) = (N.add (@LENGTH A l) (@LENGTH A m)). +Axiom thm_MAP_APPEND : forall {A B : Type'}, forall f : A -> B, forall l1 : list A, forall l2 : list A, (@List.map A B f (@List.app A l1 l2)) = (@List.app B (@List.map A B f l1) (@List.map A B f l2)). +Axiom thm_LENGTH_MAP : forall {A B : Type'}, forall l : list A, forall f : A -> B, (@LENGTH B (@List.map A B f l)) = (@LENGTH A l). +Axiom thm_LENGTH_EQ_NIL : forall {A : Type'}, forall l : list A, ((@LENGTH A l) = (NUMERAL 0%N)) = (l = (@nil A)). +Axiom thm_LENGTH_EQ_CONS : forall {A : Type'}, forall l : list A, forall n : N, ((@LENGTH A l) = (N.succ n)) = (exists h : A, exists t : list A, (l = (@cons A h t)) /\ ((@LENGTH A t) = n)). +Axiom thm_LENGTH_REVERSE : forall {A : Type'}, forall l : list A, (@LENGTH A (@List.rev A l)) = (@LENGTH A l). +Axiom thm_MAP_o : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall l : list A, (@List.map A C (@o A B C g f) l) = (@List.map B C g (@List.map A B f l)). +Axiom thm_MAP_EQ : forall {A B : Type'}, forall f : A -> B, forall g : A -> B, forall l : list A, (@List.Forall A (fun x : A => (f x) = (g x)) l) -> (@List.map A B f l) = (@List.map A B g l). +Axiom thm_ALL_IMP : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, forall l : list A, ((forall x : A, ((@List.In A x l) /\ (P x)) -> Q x) /\ (@List.Forall A P l)) -> @List.Forall A Q l. +Axiom thm_NOT_EX : forall {A : Type'}, forall P : A -> Prop, forall l : list A, (~ (@EX A P l)) = (@List.Forall A (fun x : A => ~ (P x)) l). +Axiom thm_NOT_ALL : forall {A : Type'}, forall P : A -> Prop, forall l : list A, (~ (@List.Forall A P l)) = (@EX A (fun x : A => ~ (P x)) l). +Axiom thm_ALL_MAP : forall {A B : Type'}, forall P : B -> Prop, forall f : A -> B, forall l : list A, (@List.Forall B P (@List.map A B f l)) = (@List.Forall A (@o A B Prop P f) l). +Axiom thm_ALL_EQ : forall {A : Type'} (R' : A -> Prop) (P : A -> Prop) (Q : A -> Prop), forall l : list A, ((@List.Forall A R' l) /\ (forall x : A, (R' x) -> (P x) = (Q x))) -> (@List.Forall A P l) = (@List.Forall A Q l). +Axiom thm_ALL_T : forall {A : Type'}, forall l : list A, @List.Forall A (fun x : A => True) l. +Axiom thm_MAP_EQ_ALL2 : forall {A B : Type'}, forall f : A -> B, forall l : list A, forall m : list A, (@ALL2 A A (fun x : A => fun y : A => (f x) = (f y)) l m) -> (@List.map A B f l) = (@List.map A B f m). +Axiom thm_ALL2_MAP : forall {A B : Type'}, forall P : B -> A -> Prop, forall f : A -> B, forall l : list A, (@ALL2 B A P (@List.map A B f l) l) = (@List.Forall A (fun a : A => P (f a) a) l). +Axiom thm_MAP_EQ_DEGEN : forall {A : Type'}, forall l : list A, forall f : A -> A, (@List.Forall A (fun x : A => (f x) = x) l) -> (@List.map A A f l) = l. +Axiom thm_ALL2_AND_RIGHT : forall {A B : Type'}, forall l : list A, forall m : list B, forall P : A -> Prop, forall Q : A -> B -> Prop, (@ALL2 A B (fun x : A => fun y : B => (P x) /\ (Q x y)) l m) = ((@List.Forall A P l) /\ (@ALL2 A B Q l m)). +Axiom thm_ITLIST_APPEND : forall {A B : Type'}, forall f : A -> B -> B, forall a : B, forall l1 : list A, forall l2 : list A, (@ITLIST A B f (@List.app A l1 l2) a) = (@ITLIST A B f l1 (@ITLIST A B f l2 a)). +Axiom thm_ITLIST_EXTRA : forall {A B : Type'} (a : A) (b : B), forall f : A -> B -> B, forall l : list A, (@ITLIST A B f (@List.app A l (@cons A a (@nil A))) b) = (@ITLIST A B f l (f a b)). +Axiom thm_ALL_MP : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, forall l : list A, ((@List.Forall A (fun x : A => (P x) -> Q x) l) /\ (@List.Forall A P l)) -> @List.Forall A Q l. +Axiom thm_AND_ALL : forall {A : Type'} (P : A -> Prop) (Q : A -> Prop), forall l : list A, ((@List.Forall A P l) /\ (@List.Forall A Q l)) = (@List.Forall A (fun x : A => (P x) /\ (Q x)) l). +Axiom thm_EX_IMP : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, forall l : list A, ((forall x : A, ((@List.In A x l) /\ (P x)) -> Q x) /\ (@EX A P l)) -> @EX A Q l. +Axiom thm_ALL_MEM : forall {A : Type'}, forall P : A -> Prop, forall l : list A, (forall x : A, (@List.In A x l) -> P x) = (@List.Forall A P l). +Axiom thm_LENGTH_REPLICATE : forall {A : Type'}, forall n : N, forall x : A, (@LENGTH A (@REPLICATE A n x)) = n. +Axiom thm_MEM_REPLICATE : forall {A : Type'}, forall n : N, forall x : A, forall y : A, (@List.In A x (@REPLICATE A n y)) = ((x = y) /\ (~ (n = (NUMERAL 0%N)))). +Axiom thm_EX_MAP : forall {A B : Type'}, forall P : B -> Prop, forall f : A -> B, forall l : list A, (@EX B P (@List.map A B f l)) = (@EX A (@o A B Prop P f) l). +Axiom thm_EXISTS_EX : forall {A B : Type'}, forall P : A -> B -> Prop, forall l : list B, (exists x : A, @EX B (P x) l) = (@EX B (fun s : B => exists x : A, P x s) l). +Axiom thm_FORALL_ALL : forall {A B : Type'}, forall P : A -> B -> Prop, forall l : list B, (forall x : A, @List.Forall B (P x) l) = (@List.Forall B (fun s : B => forall x : A, P x s) l). +Axiom thm_MEM_APPEND : forall {A : Type'}, forall x : A, forall l1 : list A, forall l2 : list A, (@List.In A x (@List.app A l1 l2)) = ((@List.In A x l1) \/ (@List.In A x l2)). +Axiom thm_MEM_MAP : forall {A B : Type'}, forall f : A -> B, forall y : B, forall l : list A, (@List.In B y (@List.map A B f l)) = (exists x : A, (@List.In A x l) /\ (y = (f x))). +Axiom thm_FILTER_APPEND : forall {A : Type'}, forall P : A -> Prop, forall l1 : list A, forall l2 : list A, (@FILTER A P (@List.app A l1 l2)) = (@List.app A (@FILTER A P l1) (@FILTER A P l2)). +Axiom thm_FILTER_MAP : forall {A B : Type'}, forall P : B -> Prop, forall f : A -> B, forall l : list A, (@FILTER B P (@List.map A B f l)) = (@List.map A B f (@FILTER A (@o A B Prop P f) l)). +Axiom thm_MEM_FILTER : forall {A : Type'}, forall P : A -> Prop, forall l : list A, forall x : A, (@List.In A x (@FILTER A P l)) = ((P x) /\ (@List.In A x l)). +Axiom thm_EX_MEM : forall {A : Type'}, forall P : A -> Prop, forall l : list A, (exists x : A, (P x) /\ (@List.In A x l)) = (@EX A P l). +Axiom thm_MAP_FST_ZIP : forall {A B : Type'}, forall l1 : list A, forall l2 : list B, ((@LENGTH A l1) = (@LENGTH B l2)) -> (@List.map (prod A B) A (@fst A B) (@ZIP A B l1 l2)) = l1. +Axiom thm_MAP_SND_ZIP : forall {A B : Type'}, forall l1 : list A, forall l2 : list B, ((@LENGTH A l1) = (@LENGTH B l2)) -> (@List.map (prod A B) B (@snd A B) (@ZIP A B l1 l2)) = l2. +Axiom thm_LENGTH_ZIP : forall {A B : Type'}, forall l1 : list A, forall l2 : list B, ((@LENGTH A l1) = (@LENGTH B l2)) -> (@LENGTH (prod A B) (@ZIP A B l1 l2)) = (@LENGTH B l2). +Axiom thm_MEM_ASSOC : forall {A B : Type'}, forall l : list (prod A B), forall x : A, (@List.In (prod A B) (@pair A B x (@ASSOC A B x l)) l) = (@List.In A x (@List.map (prod A B) A (@fst A B) l)). +Axiom thm_ALL_APPEND : forall {A : Type'}, forall P : A -> Prop, forall l1 : list A, forall l2 : list A, (@List.Forall A P (@List.app A l1 l2)) = ((@List.Forall A P l1) /\ (@List.Forall A P l2)). +Axiom thm_MEM_EL : forall {A : Type'}, forall l : list A, forall n : N, (N.lt n (@LENGTH A l)) -> @List.In A (@EL A n l) l. +Axiom thm_MEM_EXISTS_EL : forall {A : Type'}, forall l : list A, forall x : A, (@List.In A x l) = (exists i : N, (N.lt i (@LENGTH A l)) /\ (x = (@EL A i l))). +Axiom thm_ALL_EL : forall {A : Type'}, forall P : A -> Prop, forall l : list A, (forall i : N, (N.lt i (@LENGTH A l)) -> P (@EL A i l)) = (@List.Forall A P l). +Axiom thm_ALL2_MAP2 : forall {A B C D : Type'} (P : B -> D -> Prop), forall f : A -> B, forall g : C -> D, forall l : list A, forall m : list C, (@ALL2 B D P (@List.map A B f l) (@List.map C D g m)) = (@ALL2 A C (fun x : A => fun y : C => P (f x) (g y)) l m). +Axiom thm_AND_ALL2 : forall {A B : Type'}, forall P : A -> B -> Prop, forall Q : A -> B -> Prop, forall l : list A, forall m : list B, ((@ALL2 A B P l m) /\ (@ALL2 A B Q l m)) = (@ALL2 A B (fun x : A => fun y : B => (P x y) /\ (Q x y)) l m). +Axiom thm_ALLPAIRS_SYM : forall {A B : Type'}, forall P : A -> B -> Prop, forall l : list A, forall m : list B, (@ALLPAIRS A B P l m) = (@ALLPAIRS B A (fun x : B => fun y : A => P y x) m l). +Axiom thm_ALLPAIRS_MEM : forall {A B : Type'}, forall P : A -> B -> Prop, forall l : list A, forall m : list B, (forall x : A, forall y : B, ((@List.In A x l) /\ (@List.In B y m)) -> P x y) = (@ALLPAIRS A B P l m). +Axiom thm_ALLPAIRS_MAP : forall {A B C D : Type'}, forall P : B -> D -> Prop, forall f : A -> B, forall g : C -> D, forall l : list A, forall m : list C, (@ALLPAIRS B D P (@List.map A B f l) (@List.map C D g m)) = (@ALLPAIRS A C (fun x : A => fun y : C => P (f x) (g y)) l m). +Axiom thm_ALLPAIRS_EQ : forall {A B : Type'} (R' : A -> B -> Prop) (R'' : A -> B -> Prop), forall l : list A, forall m : list B, forall P : A -> Prop, forall Q : B -> Prop, ((@List.Forall A P l) /\ ((@List.Forall B Q m) /\ (forall p : A, forall q : B, ((P p) /\ (Q q)) -> (R' p q) = (R'' p q)))) -> (@ALLPAIRS A B R' l m) = (@ALLPAIRS A B R'' l m). +Axiom thm_ALL2_ALL : forall {A : Type'}, forall P : A -> A -> Prop, forall l : list A, (@ALL2 A A P l l) = (@List.Forall A (fun x : A => P x x) l). +Axiom thm_APPEND_EQ_NIL : forall {A : Type'}, forall l : list A, forall m : list A, ((@List.app A l m) = (@nil A)) = ((l = (@nil A)) /\ (m = (@nil A))). +Axiom thm_APPEND_LCANCEL : forall {A : Type'}, forall l1 : list A, forall l2 : list A, forall l3 : list A, ((@List.app A l1 l2) = (@List.app A l1 l3)) = (l2 = l3). +Axiom thm_APPEND_RCANCEL : forall {A : Type'}, forall l1 : list A, forall l2 : list A, forall l3 : list A, ((@List.app A l1 l3) = (@List.app A l2 l3)) = (l1 = l2). +Axiom thm_LENGTH_MAP2 : forall {A B C : Type'}, forall f : A -> B -> C, forall l : list A, forall m : list B, ((@LENGTH A l) = (@LENGTH B m)) -> (@LENGTH C (@MAP2 A B C f l m)) = (@LENGTH B m). +Axiom thm_EL_MAP2 : forall {A B C : Type'}, forall f : A -> B -> C, forall l : list A, forall m : list B, forall k : N, ((N.lt k (@LENGTH A l)) /\ (N.lt k (@LENGTH B m))) -> (@EL C k (@MAP2 A B C f l m)) = (f (@EL A k l) (@EL B k m)). +Axiom thm_MAP_EQ_NIL : forall {A B : Type'}, forall f : A -> B, forall l : list A, ((@List.map A B f l) = (@nil B)) = (l = (@nil A)). +Axiom thm_INJECTIVE_MAP : forall {A B : Type'}, forall f : A -> B, (forall l : list A, forall m : list A, ((@List.map A B f l) = (@List.map A B f m)) -> l = m) = (forall x : A, forall y : A, ((f x) = (f y)) -> x = y). +Axiom thm_SURJECTIVE_MAP : forall {A B : Type'}, forall f : A -> B, (forall m : list B, exists l : list A, (@List.map A B f l) = m) = (forall y : B, exists x : A, (f x) = y). +Axiom thm_MAP_ID : forall {A : Type'}, forall l : list A, (@List.map A A (fun x : A => x) l) = l. +Axiom thm_MAP_I : forall {A : Type'}, (@List.map A A (@I A)) = (@I (list A)). +Axiom thm_BUTLAST_CLAUSES : forall {A : Type'}, ((@List.removelast A (@nil A)) = (@nil A)) /\ ((forall a : A, (@List.removelast A (@cons A a (@nil A))) = (@nil A)) /\ (forall a : A, forall h : A, forall t : list A, (@List.removelast A (@cons A a (@cons A h t))) = (@cons A a (@List.removelast A (@cons A h t))))). +Axiom thm_BUTLAST_APPEND : forall {A : Type'}, forall l : list A, forall m : list A, (@List.removelast A (@List.app A l m)) = (@COND (list A) (m = (@nil A)) (@List.removelast A l) (@List.app A l (@List.removelast A m))). +Axiom thm_APPEND_BUTLAST_LAST : forall {A : Type'}, forall l : list A, (~ (l = (@nil A))) -> (@List.app A (@List.removelast A l) (@cons A (@LAST A l) (@nil A))) = l. +Axiom thm_LAST_APPEND : forall {A : Type'}, forall p : list A, forall q : list A, (@LAST A (@List.app A p q)) = (@COND A (q = (@nil A)) (@LAST A p) (@LAST A q)). +Axiom thm_LENGTH_TL : forall {A : Type'}, forall l : list A, (~ (l = (@nil A))) -> (@LENGTH A (@tl A l)) = (N.sub (@LENGTH A l) (NUMERAL (BIT1 0%N))). +Axiom thm_LAST_REVERSE : forall {A : Type'}, forall l : list A, (~ (l = (@nil A))) -> (@LAST A (@List.rev A l)) = (@hd A l). +Axiom thm_HD_REVERSE : forall {A : Type'}, forall l : list A, (~ (l = (@nil A))) -> (@hd A (@List.rev A l)) = (@LAST A l). +Axiom thm_EL_APPEND : forall {A : Type'}, forall k : N, forall l : list A, forall m : list A, (@EL A k (@List.app A l m)) = (@COND A (N.lt k (@LENGTH A l)) (@EL A k l) (@EL A (N.sub k (@LENGTH A l)) m)). +Axiom thm_EL_TL : forall {A : Type'} (l : list A), forall n : N, (@EL A n (@tl A l)) = (@EL A (N.add n (NUMERAL (BIT1 0%N))) l). +Axiom thm_EL_CONS : forall {A : Type'}, forall n : N, forall h : A, forall t : list A, (@EL A n (@cons A h t)) = (@COND A (n = (NUMERAL 0%N)) h (@EL A (N.sub n (NUMERAL (BIT1 0%N))) t)). +Axiom thm_LAST_EL : forall {A : Type'}, forall l : list A, (~ (l = (@nil A))) -> (@LAST A l) = (@EL A (N.sub (@LENGTH A l) (NUMERAL (BIT1 0%N))) l). +Axiom thm_HD_APPEND : forall {A : Type'}, forall l : list A, forall m : list A, (@hd A (@List.app A l m)) = (@COND A (l = (@nil A)) (@hd A m) (@hd A l)). +Axiom thm_CONS_HD_TL : forall {A : Type'}, forall l : list A, (~ (l = (@nil A))) -> l = (@cons A (@hd A l) (@tl A l)). +Axiom thm_EL_MAP : forall {A B : Type'}, forall f : A -> B, forall n : N, forall l : list A, (N.lt n (@LENGTH A l)) -> (@EL B n (@List.map A B f l)) = (f (@EL A n l)). +Axiom thm_MAP_REVERSE : forall {A B : Type'}, forall f : A -> B, forall l : list A, (@List.rev B (@List.map A B f l)) = (@List.map A B f (@List.rev A l)). +Axiom thm_ALL_FILTER : forall {A : Type'}, forall P : A -> Prop, forall Q : A -> Prop, forall l : list A, (@List.Forall A P (@FILTER A Q l)) = (@List.Forall A (fun x : A => (Q x) -> P x) l). +Axiom thm_APPEND_SING : forall {A : Type'}, forall h : A, forall t : list A, (@List.app A (@cons A h (@nil A)) t) = (@cons A h t). +Axiom thm_MEM_APPEND_DECOMPOSE_LEFT : forall {A : Type'}, forall x : A, forall l : list A, (@List.In A x l) = (exists l1 : list A, exists l2 : list A, (~ (@List.In A x l1)) /\ (l = (@List.app A l1 (@cons A x l2)))). +Axiom thm_MEM_APPEND_DECOMPOSE : forall {A : Type'}, forall x : A, forall l : list A, (@List.In A x l) = (exists l1 : list A, exists l2 : list A, l = (@List.app A l1 (@cons A x l2))). +Axiom thm_PAIRWISE_APPEND : forall {A : Type'}, forall R' : A -> A -> Prop, forall l : list A, forall m : list A, (@List.ForallOrdPairs A R' (@List.app A l m)) = ((@List.ForallOrdPairs A R' l) /\ ((@List.ForallOrdPairs A R' m) /\ (forall x : A, forall y : A, ((@List.In A x l) /\ (@List.In A y m)) -> R' x y))). +Axiom thm_PAIRWISE_MAP : forall {A B : Type'}, forall R' : B -> B -> Prop, forall f : A -> B, forall l : list A, (@List.ForallOrdPairs B R' (@List.map A B f l)) = (@List.ForallOrdPairs A (fun x : A => fun y : A => R' (f x) (f y)) l). +Axiom thm_PAIRWISE_IMPLIES : forall {A : Type'}, forall R' : A -> A -> Prop, forall R'' : A -> A -> Prop, forall l : list A, ((@List.ForallOrdPairs A R' l) /\ (forall x : A, forall y : A, ((@List.In A x l) /\ ((@List.In A y l) /\ (R' x y))) -> R'' x y)) -> @List.ForallOrdPairs A R'' l. +Axiom thm_PAIRWISE_TRANSITIVE : forall {A : Type'}, forall R' : A -> A -> Prop, forall x : A, forall y : A, forall l : list A, (forall x' : A, forall y' : A, forall z : A, ((R' x' y') /\ (R' y' z)) -> R' x' z) -> (@List.ForallOrdPairs A R' (@cons A x (@cons A y l))) = ((R' x y) /\ (@List.ForallOrdPairs A R' (@cons A y l))). +Axiom thm_LENGTH_LIST_OF_SEQ : forall {A : Type'}, forall s : N -> A, forall n : N, (@LENGTH A (@list_of_seq A s n)) = n. +Axiom thm_EL_LIST_OF_SEQ : forall {A : Type'}, forall s : N -> A, forall m : N, forall n : N, (N.lt m n) -> (@EL A m (@list_of_seq A s n)) = (s m). +Axiom thm_LIST_OF_SEQ_EQ_NIL : forall {A : Type'}, forall s : N -> A, forall n : N, ((@list_of_seq A s n) = (@nil A)) = (n = (NUMERAL 0%N)). +Axiom thm_MONO_ALL : forall {A : Type'} (P : A -> Prop) (Q : A -> Prop) (l : list A), (forall x : A, (P x) -> Q x) -> (@List.Forall A P l) -> @List.Forall A Q l. +Axiom thm_MONO_ALL2 : forall {A B : Type'} (P : A -> B -> Prop) (Q : A -> B -> Prop) (l : list A) (l' : list B), (forall x : A, forall y : B, (P x y) -> Q x y) -> (@ALL2 A B P l l') -> @ALL2 A B Q l l'. +Axiom thm_char_INDUCT : forall P : Ascii.ascii -> Prop, (forall a0 : Prop, forall a1 : Prop, forall a2 : Prop, forall a3 : Prop, forall a4 : Prop, forall a5 : Prop, forall a6 : Prop, forall a7 : Prop, P (ASCII a0 a1 a2 a3 a4 a5 a6 a7)) -> forall x : Ascii.ascii, P x. +Axiom thm_char_RECURSION : forall {Z' : Type'}, forall f : Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Prop -> Z', exists fn : Ascii.ascii -> Z', forall a0 : Prop, forall a1 : Prop, forall a2 : Prop, forall a3 : Prop, forall a4 : Prop, forall a5 : Prop, forall a6 : Prop, forall a7 : Prop, (fn (ASCII a0 a1 a2 a3 a4 a5 a6 a7)) = (f a0 a1 a2 a3 a4 a5 a6 a7). +Axiom thm_DIST_LZERO : forall n : N, (dist (@pair N N (NUMERAL 0%N) n)) = n. +Axiom thm_DIST_RZERO : forall n : N, (dist (@pair N N n (NUMERAL 0%N))) = n. +Axiom thm_DIST_LADD : forall m : N, forall p : N, forall n : N, (dist (@pair N N (N.add m n) (N.add m p))) = (dist (@pair N N n p)). +Axiom thm_DIST_RADD : forall m : N, forall p : N, forall n : N, (dist (@pair N N (N.add m p) (N.add n p))) = (dist (@pair N N m n)). +Axiom thm_DIST_LADD_0 : forall m : N, forall n : N, (dist (@pair N N (N.add m n) m)) = n. +Axiom thm_DIST_RADD_0 : forall m : N, forall n : N, (dist (@pair N N m (N.add m n))) = n. +Axiom thm_DIST_LMUL : forall m : N, forall n : N, forall p : N, (N.mul m (dist (@pair N N n p))) = (dist (@pair N N (N.mul m n) (N.mul m p))). +Axiom thm_DIST_RMUL : forall m : N, forall n : N, forall p : N, (N.mul (dist (@pair N N m n)) p) = (dist (@pair N N (N.mul m p) (N.mul n p))). +Axiom thm_DIST_ELIM_THM : forall (y : N) (x : N) (P : N -> Prop), (P (dist (@pair N N x y))) = (forall d : N, ((x = (N.add y d)) -> P d) /\ ((y = (N.add x d)) -> P d)). +Axiom thm_DIST_TRIANGLES_LE : forall m : N, forall n : N, forall p : N, forall q : N, forall r : N, forall s : N, ((N.le (dist (@pair N N m n)) r) /\ (N.le (dist (@pair N N p q)) s)) -> N.le (dist (@pair N N m p)) (N.add (dist (@pair N N n q)) (N.add r s)). +Axiom thm_BOUNDS_LINEAR : forall A : N, forall B : N, forall C : N, (forall n : N, N.le (N.mul A n) (N.add (N.mul B n) C)) = (N.le A B). +Axiom thm_BOUNDS_LINEAR_0 : forall A : N, forall B : N, (forall n : N, N.le (N.mul A n) B) = (A = (NUMERAL 0%N)). +Axiom thm_BOUNDS_DIVIDED : forall P : N -> N, (exists B : N, forall n : N, N.le (P n) B) = (exists A : N, exists B : N, forall n : N, N.le (N.mul n (P n)) (N.add (N.mul A n) B)). +Axiom thm_BOUNDS_NOTZERO : forall P : N -> N -> N, forall A : N, forall B : N, (((P (NUMERAL 0%N) (NUMERAL 0%N)) = (NUMERAL 0%N)) /\ (forall m : N, forall n : N, N.le (P m n) (N.add (N.mul A (N.add m n)) B))) -> exists B' : N, forall m : N, forall n : N, N.le (P m n) (N.mul B' (N.add m n)). +Axiom thm_BOUNDS_IGNORE : forall P : N -> N, forall Q : N -> N, (exists B : N, forall i : N, N.le (P i) (N.add (Q i) B)) = (exists B : N, exists N' : N, forall i : N, (N.le N' i) -> N.le (P i) (N.add (Q i) B)). +Axiom thm_is_nadd : forall x : N -> N, (is_nadd x) = (exists B : N, forall m : N, forall n : N, N.le (dist (@pair N N (N.mul m (x n)) (N.mul n (x m)))) (N.mul B (N.add m n))). +Axiom thm_is_nadd_0 : is_nadd (fun n : N => NUMERAL 0%N). +Axiom thm_NADD_CAUCHY : forall x : nadd, exists B : N, forall m : N, forall n : N, N.le (dist (@pair N N (N.mul m (dest_nadd x n)) (N.mul n (dest_nadd x m)))) (N.mul B (N.add m n)). +Axiom thm_NADD_BOUND : forall x : nadd, exists A : N, exists B : N, forall n : N, N.le (dest_nadd x n) (N.add (N.mul A n) B). +Axiom thm_NADD_MULTIPLICATIVE : forall x : nadd, exists B : N, forall m : N, forall n : N, N.le (dist (@pair N N (dest_nadd x (N.mul m n)) (N.mul m (dest_nadd x n)))) (N.add (N.mul B m) B). +Axiom thm_NADD_ADDITIVE : forall x : nadd, exists B : N, forall m : N, forall n : N, N.le (dist (@pair N N (dest_nadd x (N.add m n)) (N.add (dest_nadd x m) (dest_nadd x n)))) B. +Axiom thm_NADD_SUC : forall x : nadd, exists B : N, forall n : N, N.le (dist (@pair N N (dest_nadd x (N.succ n)) (dest_nadd x n))) B. +Axiom thm_NADD_DIST_LEMMA : forall x : nadd, exists B : N, forall m : N, forall n : N, N.le (dist (@pair N N (dest_nadd x (N.add m n)) (dest_nadd x m))) (N.mul B n). +Axiom thm_NADD_DIST : forall x : nadd, exists B : N, forall m : N, forall n : N, N.le (dist (@pair N N (dest_nadd x m) (dest_nadd x n))) (N.mul B (dist (@pair N N m n))). +Axiom thm_NADD_ALTMUL : forall x : nadd, forall y : nadd, exists A : N, exists B : N, forall n : N, N.le (dist (@pair N N (N.mul n (dest_nadd x (dest_nadd y n))) (N.mul (dest_nadd x n) (dest_nadd y n)))) (N.add (N.mul A n) B). +Axiom thm_nadd_eq : forall x : nadd, forall y : nadd, (nadd_eq x y) = (exists B : N, forall n : N, N.le (dist (@pair N N (dest_nadd x n) (dest_nadd y n))) B). +Axiom thm_NADD_EQ_REFL : forall x : nadd, nadd_eq x x. +Axiom thm_NADD_EQ_SYM : forall x : nadd, forall y : nadd, (nadd_eq x y) = (nadd_eq y x). +Axiom thm_NADD_EQ_TRANS : forall x : nadd, forall y : nadd, forall z : nadd, ((nadd_eq x y) /\ (nadd_eq y z)) -> nadd_eq x z. +Axiom thm_nadd_of_num : forall k : N, (nadd_of_num k) = (mk_nadd (fun n : N => N.mul k n)). +Axiom thm_NADD_OF_NUM : forall k : N, (dest_nadd (nadd_of_num k)) = (fun n : N => N.mul k n). +Axiom thm_NADD_OF_NUM_WELLDEF : forall m : N, forall n : N, (m = n) -> nadd_eq (nadd_of_num m) (nadd_of_num n). +Axiom thm_NADD_OF_NUM_EQ : forall m : N, forall n : N, (nadd_eq (nadd_of_num m) (nadd_of_num n)) = (m = n). +Axiom thm_nadd_le : forall x : nadd, forall y : nadd, (nadd_le x y) = (exists B : N, forall n : N, N.le (dest_nadd x n) (N.add (dest_nadd y n) B)). +Axiom thm_NADD_LE_WELLDEF_LEMMA : forall x : nadd, forall x' : nadd, forall y : nadd, forall y' : nadd, ((nadd_eq x x') /\ ((nadd_eq y y') /\ (nadd_le x y))) -> nadd_le x' y'. +Axiom thm_NADD_LE_WELLDEF : forall x : nadd, forall x' : nadd, forall y : nadd, forall y' : nadd, ((nadd_eq x x') /\ (nadd_eq y y')) -> (nadd_le x y) = (nadd_le x' y'). +Axiom thm_NADD_LE_REFL : forall x : nadd, nadd_le x x. +Axiom thm_NADD_LE_TRANS : forall x : nadd, forall y : nadd, forall z : nadd, ((nadd_le x y) /\ (nadd_le y z)) -> nadd_le x z. +Axiom thm_NADD_LE_ANTISYM : forall x : nadd, forall y : nadd, ((nadd_le x y) /\ (nadd_le y x)) = (nadd_eq x y). +Axiom thm_NADD_LE_TOTAL_LEMMA : forall x : nadd, forall y : nadd, (~ (nadd_le x y)) -> forall B : N, exists n : N, (~ (n = (NUMERAL 0%N))) /\ (N.lt (N.add (dest_nadd y n) B) (dest_nadd x n)). +Axiom thm_NADD_LE_TOTAL : forall x : nadd, forall y : nadd, (nadd_le x y) \/ (nadd_le y x). +Axiom thm_NADD_ARCH : forall x : nadd, exists n : N, nadd_le x (nadd_of_num n). +Axiom thm_NADD_OF_NUM_LE : forall m : N, forall n : N, (nadd_le (nadd_of_num m) (nadd_of_num n)) = (N.le m n). +Axiom thm_nadd_add : forall x : nadd, forall y : nadd, (nadd_add x y) = (mk_nadd (fun n : N => N.add (dest_nadd x n) (dest_nadd y n))). +Axiom thm_NADD_ADD : forall x : nadd, forall y : nadd, (dest_nadd (nadd_add x y)) = (fun n : N => N.add (dest_nadd x n) (dest_nadd y n)). +Axiom thm_NADD_ADD_WELLDEF : forall x : nadd, forall x' : nadd, forall y : nadd, forall y' : nadd, ((nadd_eq x x') /\ (nadd_eq y y')) -> nadd_eq (nadd_add x y) (nadd_add x' y'). +Axiom thm_NADD_ADD_SYM : forall x : nadd, forall y : nadd, nadd_eq (nadd_add x y) (nadd_add y x). +Axiom thm_NADD_ADD_ASSOC : forall x : nadd, forall y : nadd, forall z : nadd, nadd_eq (nadd_add x (nadd_add y z)) (nadd_add (nadd_add x y) z). +Axiom thm_NADD_ADD_LID : forall x : nadd, nadd_eq (nadd_add (nadd_of_num (NUMERAL 0%N)) x) x. +Axiom thm_NADD_ADD_LCANCEL : forall x : nadd, forall y : nadd, forall z : nadd, (nadd_eq (nadd_add x y) (nadd_add x z)) -> nadd_eq y z. +Axiom thm_NADD_LE_ADD : forall x : nadd, forall y : nadd, nadd_le x (nadd_add x y). +Axiom thm_NADD_LE_EXISTS : forall x : nadd, forall y : nadd, (nadd_le x y) -> exists d : nadd, nadd_eq y (nadd_add x d). +Axiom thm_NADD_OF_NUM_ADD : forall m : N, forall n : N, nadd_eq (nadd_add (nadd_of_num m) (nadd_of_num n)) (nadd_of_num (N.add m n)). +Axiom thm_nadd_mul : forall x : nadd, forall y : nadd, (nadd_mul x y) = (mk_nadd (fun n : N => dest_nadd x (dest_nadd y n))). +Axiom thm_NADD_MUL : forall x : nadd, forall y : nadd, (dest_nadd (nadd_mul x y)) = (fun n : N => dest_nadd x (dest_nadd y n)). +Axiom thm_NADD_MUL_SYM : forall x : nadd, forall y : nadd, nadd_eq (nadd_mul x y) (nadd_mul y x). +Axiom thm_NADD_MUL_ASSOC : forall x : nadd, forall y : nadd, forall z : nadd, nadd_eq (nadd_mul x (nadd_mul y z)) (nadd_mul (nadd_mul x y) z). +Axiom thm_NADD_MUL_LID : forall x : nadd, nadd_eq (nadd_mul (nadd_of_num (NUMERAL (BIT1 0%N))) x) x. +Axiom thm_NADD_LDISTRIB : forall x : nadd, forall y : nadd, forall z : nadd, nadd_eq (nadd_mul x (nadd_add y z)) (nadd_add (nadd_mul x y) (nadd_mul x z)). +Axiom thm_NADD_MUL_WELLDEF_LEMMA : forall x : nadd, forall y : nadd, forall y' : nadd, (nadd_eq y y') -> nadd_eq (nadd_mul x y) (nadd_mul x y'). +Axiom thm_NADD_MUL_WELLDEF : forall x : nadd, forall x' : nadd, forall y : nadd, forall y' : nadd, ((nadd_eq x x') /\ (nadd_eq y y')) -> nadd_eq (nadd_mul x y) (nadd_mul x' y'). +Axiom thm_NADD_OF_NUM_MUL : forall m : N, forall n : N, nadd_eq (nadd_mul (nadd_of_num m) (nadd_of_num n)) (nadd_of_num (N.mul m n)). +Axiom thm_NADD_LE_0 : forall x : nadd, nadd_le (nadd_of_num (NUMERAL 0%N)) x. +Axiom thm_NADD_EQ_IMP_LE : forall x : nadd, forall y : nadd, (nadd_eq x y) -> nadd_le x y. +Axiom thm_NADD_LE_LMUL : forall x : nadd, forall y : nadd, forall z : nadd, (nadd_le y z) -> nadd_le (nadd_mul x y) (nadd_mul x z). +Axiom thm_NADD_LE_RMUL : forall x : nadd, forall y : nadd, forall z : nadd, (nadd_le x y) -> nadd_le (nadd_mul x z) (nadd_mul y z). +Axiom thm_NADD_LE_RADD : forall x : nadd, forall y : nadd, forall z : nadd, (nadd_le (nadd_add x z) (nadd_add y z)) = (nadd_le x y). +Axiom thm_NADD_LE_LADD : forall x : nadd, forall y : nadd, forall z : nadd, (nadd_le (nadd_add x y) (nadd_add x z)) = (nadd_le y z). +Axiom thm_NADD_RDISTRIB : forall x : nadd, forall y : nadd, forall z : nadd, nadd_eq (nadd_mul (nadd_add x y) z) (nadd_add (nadd_mul x z) (nadd_mul y z)). +Axiom thm_NADD_ARCH_MULT : forall x : nadd, forall k : N, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> exists N' : N, nadd_le (nadd_of_num k) (nadd_mul (nadd_of_num N') x). +Axiom thm_NADD_ARCH_ZERO : forall x : nadd, forall k : nadd, (forall n : N, nadd_le (nadd_mul (nadd_of_num n) x) k) -> nadd_eq x (nadd_of_num (NUMERAL 0%N)). +Axiom thm_NADD_ARCH_LEMMA : forall x : nadd, forall y : nadd, forall z : nadd, (forall n : N, nadd_le (nadd_mul (nadd_of_num n) x) (nadd_add (nadd_mul (nadd_of_num n) y) z)) -> nadd_le x y. +Axiom thm_NADD_COMPLETE : forall P : nadd -> Prop, ((exists x : nadd, P x) /\ (exists M : nadd, forall x : nadd, (P x) -> nadd_le x M)) -> exists M : nadd, (forall x : nadd, (P x) -> nadd_le x M) /\ (forall M' : nadd, (forall x : nadd, (P x) -> nadd_le x M') -> nadd_le M M'). +Axiom thm_NADD_UBOUND : forall x : nadd, exists B : N, exists N' : N, forall n : N, (N.le N' n) -> N.le (dest_nadd x n) (N.mul B n). +Axiom thm_NADD_NONZERO : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> exists N' : N, forall n : N, (N.le N' n) -> ~ ((dest_nadd x n) = (NUMERAL 0%N)). +Axiom thm_NADD_LBOUND : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> exists A : N, exists N' : N, forall n : N, (N.le N' n) -> N.le n (N.mul A (dest_nadd x n)). +Axiom thm_nadd_rinv : forall x : nadd, (nadd_rinv x) = (fun n : N => N.div (N.mul n n) (dest_nadd x n)). +Axiom thm_NADD_MUL_LINV_LEMMA0 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> exists A : N, exists B : N, forall n : N, N.le (nadd_rinv x n) (N.add (N.mul A n) B). +Axiom thm_NADD_MUL_LINV_LEMMA1 : forall x : nadd, forall n : N, (~ ((dest_nadd x n) = (NUMERAL 0%N))) -> N.le (dist (@pair N N (N.mul (dest_nadd x n) (nadd_rinv x n)) (N.mul n n))) (dest_nadd x n). +Axiom thm_NADD_MUL_LINV_LEMMA2 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> exists N' : N, forall n : N, (N.le N' n) -> N.le (dist (@pair N N (N.mul (dest_nadd x n) (nadd_rinv x n)) (N.mul n n))) (dest_nadd x n). +Axiom thm_NADD_MUL_LINV_LEMMA3 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> exists N' : N, forall m : N, forall n : N, (N.le N' n) -> N.le (dist (@pair N N (N.mul m (N.mul (dest_nadd x m) (N.mul (dest_nadd x n) (nadd_rinv x n)))) (N.mul m (N.mul (dest_nadd x m) (N.mul n n))))) (N.mul m (N.mul (dest_nadd x m) (dest_nadd x n))). +Axiom thm_NADD_MUL_LINV_LEMMA4 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> exists N' : N, forall m : N, forall n : N, ((N.le N' m) /\ (N.le N' n)) -> N.le (N.mul (N.mul (dest_nadd x m) (dest_nadd x n)) (dist (@pair N N (N.mul m (nadd_rinv x n)) (N.mul n (nadd_rinv x m))))) (N.add (N.mul (N.mul m n) (dist (@pair N N (N.mul m (dest_nadd x n)) (N.mul n (dest_nadd x m))))) (N.mul (N.mul (dest_nadd x m) (dest_nadd x n)) (N.add m n))). +Axiom thm_NADD_MUL_LINV_LEMMA5 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> exists B : N, exists N' : N, forall m : N, forall n : N, ((N.le N' m) /\ (N.le N' n)) -> N.le (N.mul (N.mul (dest_nadd x m) (dest_nadd x n)) (dist (@pair N N (N.mul m (nadd_rinv x n)) (N.mul n (nadd_rinv x m))))) (N.mul B (N.mul (N.mul m n) (N.add m n))). +Axiom thm_NADD_MUL_LINV_LEMMA6 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> exists B : N, exists N' : N, forall m : N, forall n : N, ((N.le N' m) /\ (N.le N' n)) -> N.le (N.mul (N.mul m n) (dist (@pair N N (N.mul m (nadd_rinv x n)) (N.mul n (nadd_rinv x m))))) (N.mul B (N.mul (N.mul m n) (N.add m n))). +Axiom thm_NADD_MUL_LINV_LEMMA7 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> exists B : N, exists N' : N, forall m : N, forall n : N, ((N.le N' m) /\ (N.le N' n)) -> N.le (dist (@pair N N (N.mul m (nadd_rinv x n)) (N.mul n (nadd_rinv x m)))) (N.mul B (N.add m n)). +Axiom thm_NADD_MUL_LINV_LEMMA7a : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> forall N' : N, exists A : N, exists B : N, forall m : N, forall n : N, (N.le m N') -> N.le (dist (@pair N N (N.mul m (nadd_rinv x n)) (N.mul n (nadd_rinv x m)))) (N.add (N.mul A n) B). +Axiom thm_NADD_MUL_LINV_LEMMA8 : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> exists B : N, forall m : N, forall n : N, N.le (dist (@pair N N (N.mul m (nadd_rinv x n)) (N.mul n (nadd_rinv x m)))) (N.mul B (N.add m n)). +Axiom thm_nadd_inv : forall x : nadd, (nadd_inv x) = (@COND nadd (nadd_eq x (nadd_of_num (NUMERAL 0%N))) (nadd_of_num (NUMERAL 0%N)) (mk_nadd (nadd_rinv x))). +Axiom thm_NADD_INV : forall x : nadd, (dest_nadd (nadd_inv x)) = (@COND (N -> N) (nadd_eq x (nadd_of_num (NUMERAL 0%N))) (fun n : N => NUMERAL 0%N) (nadd_rinv x)). +Axiom thm_NADD_MUL_LINV : forall x : nadd, (~ (nadd_eq x (nadd_of_num (NUMERAL 0%N)))) -> nadd_eq (nadd_mul (nadd_inv x) x) (nadd_of_num (NUMERAL (BIT1 0%N))). +Axiom thm_NADD_INV_0 : nadd_eq (nadd_inv (nadd_of_num (NUMERAL 0%N))) (nadd_of_num (NUMERAL 0%N)). +Axiom thm_NADD_INV_WELLDEF : forall x : nadd, forall y : nadd, (nadd_eq x y) -> nadd_eq (nadd_inv x) (nadd_inv y). +Axiom thm_HREAL_OF_NUM_EQ : forall m : N, forall n : N, ((hreal_of_num m) = (hreal_of_num n)) = (m = n). +Axiom thm_HREAL_OF_NUM_LE : forall m : N, forall n : N, (hreal_le (hreal_of_num m) (hreal_of_num n)) = (N.le m n). +Axiom thm_HREAL_OF_NUM_ADD : forall m : N, forall n : N, (hreal_add (hreal_of_num m) (hreal_of_num n)) = (hreal_of_num (N.add m n)). +Axiom thm_HREAL_OF_NUM_MUL : forall m : N, forall n : N, (hreal_mul (hreal_of_num m) (hreal_of_num n)) = (hreal_of_num (N.mul m n)). +Axiom thm_HREAL_LE_REFL : forall x : hreal, hreal_le x x. +Axiom thm_HREAL_LE_TRANS : forall x : hreal, forall y : hreal, forall z : hreal, ((hreal_le x y) /\ (hreal_le y z)) -> hreal_le x z. +Axiom thm_HREAL_LE_ANTISYM : forall x : hreal, forall y : hreal, ((hreal_le x y) /\ (hreal_le y x)) = (x = y). +Axiom thm_HREAL_LE_TOTAL : forall x : hreal, forall y : hreal, (hreal_le x y) \/ (hreal_le y x). +Axiom thm_HREAL_LE_ADD : forall x : hreal, forall y : hreal, hreal_le x (hreal_add x y). +Axiom thm_HREAL_LE_EXISTS : forall x : hreal, forall y : hreal, (hreal_le x y) -> exists d : hreal, y = (hreal_add x d). +Axiom thm_HREAL_ARCH : forall x : hreal, exists n : N, hreal_le x (hreal_of_num n). +Axiom thm_HREAL_ADD_SYM : forall x : hreal, forall y : hreal, (hreal_add x y) = (hreal_add y x). +Axiom thm_HREAL_ADD_ASSOC : forall x : hreal, forall y : hreal, forall z : hreal, (hreal_add x (hreal_add y z)) = (hreal_add (hreal_add x y) z). +Axiom thm_HREAL_ADD_LID : forall x : hreal, (hreal_add (hreal_of_num (NUMERAL 0%N)) x) = x. +Axiom thm_HREAL_ADD_LCANCEL : forall x : hreal, forall y : hreal, forall z : hreal, ((hreal_add x y) = (hreal_add x z)) -> y = z. +Axiom thm_HREAL_MUL_SYM : forall x : hreal, forall y : hreal, (hreal_mul x y) = (hreal_mul y x). +Axiom thm_HREAL_MUL_ASSOC : forall x : hreal, forall y : hreal, forall z : hreal, (hreal_mul x (hreal_mul y z)) = (hreal_mul (hreal_mul x y) z). +Axiom thm_HREAL_MUL_LID : forall x : hreal, (hreal_mul (hreal_of_num (NUMERAL (BIT1 0%N))) x) = x. +Axiom thm_HREAL_ADD_LDISTRIB : forall x : hreal, forall y : hreal, forall z : hreal, (hreal_mul x (hreal_add y z)) = (hreal_add (hreal_mul x y) (hreal_mul x z)). +Axiom thm_HREAL_MUL_LINV : forall x : hreal, (~ (x = (hreal_of_num (NUMERAL 0%N)))) -> (hreal_mul (hreal_inv x) x) = (hreal_of_num (NUMERAL (BIT1 0%N))). +Axiom thm_HREAL_INV_0 : (hreal_inv (hreal_of_num (NUMERAL 0%N))) = (hreal_of_num (NUMERAL 0%N)). +Axiom thm_HREAL_LE_EXISTS_DEF : forall m : hreal, forall n : hreal, (hreal_le m n) = (exists d : hreal, n = (hreal_add m d)). +Axiom thm_HREAL_EQ_ADD_LCANCEL : forall m : hreal, forall n : hreal, forall p : hreal, ((hreal_add m n) = (hreal_add m p)) = (n = p). +Axiom thm_HREAL_EQ_ADD_RCANCEL : forall m : hreal, forall n : hreal, forall p : hreal, ((hreal_add m p) = (hreal_add n p)) = (m = n). +Axiom thm_HREAL_LE_ADD_LCANCEL : forall m : hreal, forall n : hreal, forall p : hreal, (hreal_le (hreal_add m n) (hreal_add m p)) = (hreal_le n p). +Axiom thm_HREAL_LE_ADD_RCANCEL : forall m : hreal, forall n : hreal, forall p : hreal, (hreal_le (hreal_add m p) (hreal_add n p)) = (hreal_le m n). +Axiom thm_HREAL_ADD_RID : forall n : hreal, (hreal_add n (hreal_of_num (NUMERAL 0%N))) = n. +Axiom thm_HREAL_ADD_RDISTRIB : forall m : hreal, forall n : hreal, forall p : hreal, (hreal_mul (hreal_add m n) p) = (hreal_add (hreal_mul m p) (hreal_mul n p)). +Axiom thm_HREAL_MUL_LZERO : forall m : hreal, (hreal_mul (hreal_of_num (NUMERAL 0%N)) m) = (hreal_of_num (NUMERAL 0%N)). +Axiom thm_HREAL_MUL_RZERO : forall m : hreal, (hreal_mul m (hreal_of_num (NUMERAL 0%N))) = (hreal_of_num (NUMERAL 0%N)). +Axiom thm_HREAL_ADD_AC : forall (n : hreal) (m : hreal) (p : hreal), ((hreal_add m n) = (hreal_add n m)) /\ (((hreal_add (hreal_add m n) p) = (hreal_add m (hreal_add n p))) /\ ((hreal_add m (hreal_add n p)) = (hreal_add n (hreal_add m p)))). +Axiom thm_HREAL_LE_ADD2 : forall a : hreal, forall b : hreal, forall c : hreal, forall d : hreal, ((hreal_le a b) /\ (hreal_le c d)) -> hreal_le (hreal_add a c) (hreal_add b d). +Axiom thm_HREAL_LE_MUL_RCANCEL_IMP : forall a : hreal, forall b : hreal, forall c : hreal, (hreal_le a b) -> hreal_le (hreal_mul a c) (hreal_mul b c). +Axiom thm_treal_of_num : forall n : N, (treal_of_num n) = (@pair hreal hreal (hreal_of_num n) (hreal_of_num (NUMERAL 0%N))). +Axiom thm_treal_neg : forall y : hreal, forall x : hreal, (treal_neg (@pair hreal hreal x y)) = (@pair hreal hreal y x). +Axiom thm_treal_add : forall x1 : hreal, forall x2 : hreal, forall y1 : hreal, forall y2 : hreal, (treal_add (@pair hreal hreal x1 y1) (@pair hreal hreal x2 y2)) = (@pair hreal hreal (hreal_add x1 x2) (hreal_add y1 y2)). +Axiom thm_treal_mul : forall x1 : hreal, forall y2 : hreal, forall y1 : hreal, forall x2 : hreal, (treal_mul (@pair hreal hreal x1 y1) (@pair hreal hreal x2 y2)) = (@pair hreal hreal (hreal_add (hreal_mul x1 x2) (hreal_mul y1 y2)) (hreal_add (hreal_mul x1 y2) (hreal_mul y1 x2))). +Axiom thm_treal_le : forall x1 : hreal, forall y2 : hreal, forall x2 : hreal, forall y1 : hreal, (treal_le (@pair hreal hreal x1 y1) (@pair hreal hreal x2 y2)) = (hreal_le (hreal_add x1 y2) (hreal_add x2 y1)). +Axiom thm_treal_inv : forall y : hreal, forall x : hreal, (treal_inv (@pair hreal hreal x y)) = (@COND (prod hreal hreal) (x = y) (@pair hreal hreal (hreal_of_num (NUMERAL 0%N)) (hreal_of_num (NUMERAL 0%N))) (@COND (prod hreal hreal) (hreal_le y x) (@pair hreal hreal (hreal_inv (@ε hreal (fun d : hreal => x = (hreal_add y d)))) (hreal_of_num (NUMERAL 0%N))) (@pair hreal hreal (hreal_of_num (NUMERAL 0%N)) (hreal_inv (@ε hreal (fun d : hreal => y = (hreal_add x d))))))). +Axiom thm_treal_eq : forall x1 : hreal, forall y2 : hreal, forall x2 : hreal, forall y1 : hreal, (treal_eq (@pair hreal hreal x1 y1) (@pair hreal hreal x2 y2)) = ((hreal_add x1 y2) = (hreal_add x2 y1)). +Axiom thm_TREAL_EQ_REFL : forall x : prod hreal hreal, treal_eq x x. +Axiom thm_TREAL_EQ_SYM : forall x : prod hreal hreal, forall y : prod hreal hreal, (treal_eq x y) = (treal_eq y x). +Axiom thm_TREAL_EQ_TRANS : forall x : prod hreal hreal, forall y : prod hreal hreal, forall z : prod hreal hreal, ((treal_eq x y) /\ (treal_eq y z)) -> treal_eq x z. +Axiom thm_TREAL_EQ_AP : forall x : prod hreal hreal, forall y : prod hreal hreal, (x = y) -> treal_eq x y. +Axiom thm_TREAL_OF_NUM_EQ : forall m : N, forall n : N, (treal_eq (treal_of_num m) (treal_of_num n)) = (m = n). +Axiom thm_TREAL_OF_NUM_LE : forall m : N, forall n : N, (treal_le (treal_of_num m) (treal_of_num n)) = (N.le m n). +Axiom thm_TREAL_OF_NUM_ADD : forall m : N, forall n : N, treal_eq (treal_add (treal_of_num m) (treal_of_num n)) (treal_of_num (N.add m n)). +Axiom thm_TREAL_OF_NUM_MUL : forall m : N, forall n : N, treal_eq (treal_mul (treal_of_num m) (treal_of_num n)) (treal_of_num (N.mul m n)). +Axiom thm_TREAL_ADD_SYM_EQ : forall x : prod hreal hreal, forall y : prod hreal hreal, (treal_add x y) = (treal_add y x). +Axiom thm_TREAL_MUL_SYM_EQ : forall x : prod hreal hreal, forall y : prod hreal hreal, (treal_mul x y) = (treal_mul y x). +Axiom thm_TREAL_ADD_SYM : forall x : prod hreal hreal, forall y : prod hreal hreal, treal_eq (treal_add x y) (treal_add y x). +Axiom thm_TREAL_ADD_ASSOC : forall x : prod hreal hreal, forall y : prod hreal hreal, forall z : prod hreal hreal, treal_eq (treal_add x (treal_add y z)) (treal_add (treal_add x y) z). +Axiom thm_TREAL_ADD_LID : forall x : prod hreal hreal, treal_eq (treal_add (treal_of_num (NUMERAL 0%N)) x) x. +Axiom thm_TREAL_ADD_LINV : forall x : prod hreal hreal, treal_eq (treal_add (treal_neg x) x) (treal_of_num (NUMERAL 0%N)). +Axiom thm_TREAL_MUL_SYM : forall x : prod hreal hreal, forall y : prod hreal hreal, treal_eq (treal_mul x y) (treal_mul y x). +Axiom thm_TREAL_MUL_ASSOC : forall x : prod hreal hreal, forall y : prod hreal hreal, forall z : prod hreal hreal, treal_eq (treal_mul x (treal_mul y z)) (treal_mul (treal_mul x y) z). +Axiom thm_TREAL_MUL_LID : forall x : prod hreal hreal, treal_eq (treal_mul (treal_of_num (NUMERAL (BIT1 0%N))) x) x. +Axiom thm_TREAL_ADD_LDISTRIB : forall x : prod hreal hreal, forall y : prod hreal hreal, forall z : prod hreal hreal, treal_eq (treal_mul x (treal_add y z)) (treal_add (treal_mul x y) (treal_mul x z)). +Axiom thm_TREAL_LE_REFL : forall x : prod hreal hreal, treal_le x x. +Axiom thm_TREAL_LE_ANTISYM : forall x : prod hreal hreal, forall y : prod hreal hreal, ((treal_le x y) /\ (treal_le y x)) = (treal_eq x y). +Axiom thm_TREAL_LE_TRANS : forall x : prod hreal hreal, forall y : prod hreal hreal, forall z : prod hreal hreal, ((treal_le x y) /\ (treal_le y z)) -> treal_le x z. +Axiom thm_TREAL_LE_TOTAL : forall x : prod hreal hreal, forall y : prod hreal hreal, (treal_le x y) \/ (treal_le y x). +Axiom thm_TREAL_LE_LADD_IMP : forall x : prod hreal hreal, forall y : prod hreal hreal, forall z : prod hreal hreal, (treal_le y z) -> treal_le (treal_add x y) (treal_add x z). +Axiom thm_TREAL_LE_MUL : forall x : prod hreal hreal, forall y : prod hreal hreal, ((treal_le (treal_of_num (NUMERAL 0%N)) x) /\ (treal_le (treal_of_num (NUMERAL 0%N)) y)) -> treal_le (treal_of_num (NUMERAL 0%N)) (treal_mul x y). +Axiom thm_TREAL_INV_0 : treal_eq (treal_inv (treal_of_num (NUMERAL 0%N))) (treal_of_num (NUMERAL 0%N)). +Axiom thm_TREAL_MUL_LINV : forall x : prod hreal hreal, (~ (treal_eq x (treal_of_num (NUMERAL 0%N)))) -> treal_eq (treal_mul (treal_inv x) x) (treal_of_num (NUMERAL (BIT1 0%N))). +Axiom thm_TREAL_OF_NUM_WELLDEF : forall m : N, forall n : N, (m = n) -> treal_eq (treal_of_num m) (treal_of_num n). +Axiom thm_TREAL_NEG_WELLDEF : forall x1 : prod hreal hreal, forall x2 : prod hreal hreal, (treal_eq x1 x2) -> treal_eq (treal_neg x1) (treal_neg x2). +Axiom thm_TREAL_ADD_WELLDEFR : forall x1 : prod hreal hreal, forall x2 : prod hreal hreal, forall y : prod hreal hreal, (treal_eq x1 x2) -> treal_eq (treal_add x1 y) (treal_add x2 y). +Axiom thm_TREAL_ADD_WELLDEF : forall x1 : prod hreal hreal, forall x2 : prod hreal hreal, forall y1 : prod hreal hreal, forall y2 : prod hreal hreal, ((treal_eq x1 x2) /\ (treal_eq y1 y2)) -> treal_eq (treal_add x1 y1) (treal_add x2 y2). +Axiom thm_TREAL_MUL_WELLDEFR : forall x1 : prod hreal hreal, forall x2 : prod hreal hreal, forall y : prod hreal hreal, (treal_eq x1 x2) -> treal_eq (treal_mul x1 y) (treal_mul x2 y). +Axiom thm_TREAL_MUL_WELLDEF : forall x1 : prod hreal hreal, forall x2 : prod hreal hreal, forall y1 : prod hreal hreal, forall y2 : prod hreal hreal, ((treal_eq x1 x2) /\ (treal_eq y1 y2)) -> treal_eq (treal_mul x1 y1) (treal_mul x2 y2). +Axiom thm_TREAL_EQ_IMP_LE : forall x : prod hreal hreal, forall y : prod hreal hreal, (treal_eq x y) -> treal_le x y. +Axiom thm_TREAL_LE_WELLDEF : forall x1 : prod hreal hreal, forall x2 : prod hreal hreal, forall y1 : prod hreal hreal, forall y2 : prod hreal hreal, ((treal_eq x1 x2) /\ (treal_eq y1 y2)) -> (treal_le x1 y1) = (treal_le x2 y2). +Axiom thm_TREAL_INV_WELLDEF : forall x : prod hreal hreal, forall y : prod hreal hreal, (treal_eq x y) -> treal_eq (treal_inv x) (treal_inv y). +Axiom thm_REAL_ADD_SYM : forall x : R, forall y : R, (Rplus x y) = (Rplus y x). +Axiom thm_REAL_ADD_ASSOC : forall x : R, forall y : R, forall z : R, (Rplus x (Rplus y z)) = (Rplus (Rplus x y) z). +Axiom thm_REAL_ADD_LID : forall x : R, (Rplus (R_of_N (NUMERAL 0%N)) x) = x. +Axiom thm_REAL_ADD_LINV : forall x : R, (Rplus (Ropp x) x) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_MUL_SYM : forall x : R, forall y : R, (Rmult x y) = (Rmult y x). +Axiom thm_REAL_MUL_ASSOC : forall x : R, forall y : R, forall z : R, (Rmult x (Rmult y z)) = (Rmult (Rmult x y) z). +Axiom thm_REAL_MUL_LID : forall x : R, (Rmult (R_of_N (NUMERAL (BIT1 0%N))) x) = x. +Axiom thm_REAL_ADD_LDISTRIB : forall x : R, forall y : R, forall z : R, (Rmult x (Rplus y z)) = (Rplus (Rmult x y) (Rmult x z)). +Axiom thm_REAL_LE_REFL : forall x : R, Rle x x. +Axiom thm_REAL_LE_ANTISYM : forall x : R, forall y : R, ((Rle x y) /\ (Rle y x)) = (x = y). +Axiom thm_REAL_LE_TRANS : forall x : R, forall y : R, forall z : R, ((Rle x y) /\ (Rle y z)) -> Rle x z. +Axiom thm_REAL_LE_TOTAL : forall x : R, forall y : R, (Rle x y) \/ (Rle y x). +Axiom thm_REAL_LE_LADD_IMP : forall x : R, forall y : R, forall z : R, (Rle y z) -> Rle (Rplus x y) (Rplus x z). +Axiom thm_REAL_LE_MUL : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle (R_of_N (NUMERAL 0%N)) y)) -> Rle (R_of_N (NUMERAL 0%N)) (Rmult x y). +Axiom thm_REAL_INV_0 : (Rinv (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_MUL_LINV : forall x : R, (~ (x = (R_of_N (NUMERAL 0%N)))) -> (Rmult (Rinv x) x) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_OF_NUM_EQ : forall m : N, forall n : N, ((R_of_N m) = (R_of_N n)) = (m = n). +Axiom thm_REAL_OF_NUM_LE : forall m : N, forall n : N, (Rle (R_of_N m) (R_of_N n)) = (N.le m n). +Axiom thm_REAL_OF_NUM_ADD : forall m : N, forall n : N, (Rplus (R_of_N m) (R_of_N n)) = (R_of_N (N.add m n)). +Axiom thm_REAL_OF_NUM_MUL : forall m : N, forall n : N, (Rmult (R_of_N m) (R_of_N n)) = (R_of_N (N.mul m n)). +Axiom thm_real_sub : forall x : R, forall y : R, (Rminus x y) = (Rplus x (Ropp y)). +Axiom thm_real_lt : forall y : R, forall x : R, (Rlt x y) = (~ (Rle y x)). +Axiom thm_real_ge : forall y : R, forall x : R, (Rge x y) = (Rle y x). +Axiom thm_real_gt : forall y : R, forall x : R, (Rgt x y) = (Rlt y x). +Axiom thm_real_abs : forall x : R, (Rabs x) = (@COND R (Rle (R_of_N (NUMERAL 0%N)) x) x (Ropp x)). +Axiom thm_real_pow : forall (x : R), ((real_pow x (NUMERAL 0%N)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall n : N, (real_pow x (N.succ n)) = (Rmult x (real_pow x n))). +Axiom thm_real_div : forall x : R, forall y : R, (Rdiv x y) = (Rmult x (Rinv y)). +Axiom thm_real_max : forall n : R, forall m : R, (Rmax m n) = (@COND R (Rle m n) n m). +Axiom thm_real_min : forall m : R, forall n : R, (Rmin m n) = (@COND R (Rle m n) m n). +Axiom thm_REAL_HREAL_LEMMA1 : exists r : hreal -> R, (forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) = (exists y : hreal, x = (r y))) /\ (forall y : hreal, forall z : hreal, (hreal_le y z) = (Rle (r y) (r z))). +Axiom thm_REAL_HREAL_LEMMA2 : exists h : R -> hreal, exists r : hreal -> R, (forall x : hreal, (h (r x)) = x) /\ ((forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> (r (h x)) = x) /\ ((forall x : hreal, Rle (R_of_N (NUMERAL 0%N)) (r x)) /\ (forall x : hreal, forall y : hreal, (hreal_le x y) = (Rle (r x) (r y))))). +Axiom thm_REAL_COMPLETE_SOMEPOS : forall P : R -> Prop, ((exists x : R, (P x) /\ (Rle (R_of_N (NUMERAL 0%N)) x)) /\ (exists M : R, forall x : R, (P x) -> Rle x M)) -> exists M : R, (forall x : R, (P x) -> Rle x M) /\ (forall M' : R, (forall x : R, (P x) -> Rle x M') -> Rle M M'). +Axiom thm_REAL_COMPLETE : forall P : R -> Prop, ((exists x : R, P x) /\ (exists M : R, forall x : R, (P x) -> Rle x M)) -> exists M : R, (forall x : R, (P x) -> Rle x M) /\ (forall M' : R, (forall x : R, (P x) -> Rle x M') -> Rle M M'). +Axiom thm_REAL_ADD_AC : forall (n : R) (m : R) (p : R), ((Rplus m n) = (Rplus n m)) /\ (((Rplus (Rplus m n) p) = (Rplus m (Rplus n p))) /\ ((Rplus m (Rplus n p)) = (Rplus n (Rplus m p)))). +Axiom thm_REAL_ADD_RINV : forall x : R, (Rplus x (Ropp x)) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_EQ_ADD_LCANCEL : forall x : R, forall y : R, forall z : R, ((Rplus x y) = (Rplus x z)) = (y = z). +Axiom thm_REAL_EQ_ADD_RCANCEL : forall x : R, forall y : R, forall z : R, ((Rplus x z) = (Rplus y z)) = (x = y). +Axiom thm_REAL_MUL_RZERO : forall x : R, (Rmult x (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_MUL_LZERO : forall x : R, (Rmult (R_of_N (NUMERAL 0%N)) x) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_NEG_NEG : forall x : R, (Ropp (Ropp x)) = x. +Axiom thm_REAL_MUL_RNEG : forall x : R, forall y : R, (Rmult x (Ropp y)) = (Ropp (Rmult x y)). +Axiom thm_REAL_MUL_LNEG : forall x : R, forall y : R, (Rmult (Ropp x) y) = (Ropp (Rmult x y)). +Axiom thm_REAL_NEG_ADD : forall x : R, forall y : R, (Ropp (Rplus x y)) = (Rplus (Ropp x) (Ropp y)). +Axiom thm_REAL_ADD_RID : forall x : R, (Rplus x (R_of_N (NUMERAL 0%N))) = x. +Axiom thm_REAL_NEG_0 : (Ropp (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_LE_LNEG : forall x : R, forall y : R, (Rle (Ropp x) y) = (Rle (R_of_N (NUMERAL 0%N)) (Rplus x y)). +Axiom thm_REAL_LE_NEG2 : forall x : R, forall y : R, (Rle (Ropp x) (Ropp y)) = (Rle y x). +Axiom thm_REAL_LE_RNEG : forall x : R, forall y : R, (Rle x (Ropp y)) = (Rle (Rplus x y) (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_OF_NUM_POW : forall x : N, forall n : N, (real_pow (R_of_N x) n) = (R_of_N (N.pow x n)). +Axiom thm_REAL_POW_NEG : forall x : R, forall n : N, (real_pow (Ropp x) n) = (@COND R (EVEN n) (real_pow x n) (Ropp (real_pow x n))). +Axiom thm_REAL_ABS_NUM : forall n : N, (Rabs (R_of_N n)) = (R_of_N n). +Axiom thm_REAL_ABS_NEG : forall x : R, (Rabs (Ropp x)) = (Rabs x). +Axiom thm_REAL_LTE_TOTAL : forall x : R, forall y : R, (Rlt x y) \/ (Rle y x). +Axiom thm_REAL_LET_TOTAL : forall x : R, forall y : R, (Rle x y) \/ (Rlt y x). +Axiom thm_REAL_LT_IMP_LE : forall x : R, forall y : R, (Rlt x y) -> Rle x y. +Axiom thm_REAL_LTE_TRANS : forall x : R, forall y : R, forall z : R, ((Rlt x y) /\ (Rle y z)) -> Rlt x z. +Axiom thm_REAL_LET_TRANS : forall x : R, forall y : R, forall z : R, ((Rle x y) /\ (Rlt y z)) -> Rlt x z. +Axiom thm_REAL_LT_TRANS : forall x : R, forall y : R, forall z : R, ((Rlt x y) /\ (Rlt y z)) -> Rlt x z. +Axiom thm_REAL_LE_ADD : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle (R_of_N (NUMERAL 0%N)) y)) -> Rle (R_of_N (NUMERAL 0%N)) (Rplus x y). +Axiom thm_REAL_LTE_ANTISYM : forall x : R, forall y : R, ~ ((Rlt x y) /\ (Rle y x)). +Axiom thm_REAL_SUB_LE : forall x : R, forall y : R, (Rle (R_of_N (NUMERAL 0%N)) (Rminus x y)) = (Rle y x). +Axiom thm_REAL_NEG_SUB : forall x : R, forall y : R, (Ropp (Rminus x y)) = (Rminus y x). +Axiom thm_REAL_LE_LT : forall x : R, forall y : R, (Rle x y) = ((Rlt x y) \/ (x = y)). +Axiom thm_REAL_SUB_LT : forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) (Rminus x y)) = (Rlt y x). +Axiom thm_REAL_NOT_LT : forall x : R, forall y : R, (~ (Rlt x y)) = (Rle y x). +Axiom thm_REAL_SUB_0 : forall x : R, forall y : R, ((Rminus x y) = (R_of_N (NUMERAL 0%N))) = (x = y). +Axiom thm_REAL_LT_LE : forall x : R, forall y : R, (Rlt x y) = ((Rle x y) /\ (~ (x = y))). +Axiom thm_REAL_LT_REFL : forall x : R, ~ (Rlt x x). +Axiom thm_REAL_LTE_ADD : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rle (R_of_N (NUMERAL 0%N)) y)) -> Rlt (R_of_N (NUMERAL 0%N)) (Rplus x y). +Axiom thm_REAL_LET_ADD : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) -> Rlt (R_of_N (NUMERAL 0%N)) (Rplus x y). +Axiom thm_REAL_LT_ADD : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) -> Rlt (R_of_N (NUMERAL 0%N)) (Rplus x y). +Axiom thm_REAL_ENTIRE : forall x : R, forall y : R, ((Rmult x y) = (R_of_N (NUMERAL 0%N))) = ((x = (R_of_N (NUMERAL 0%N))) \/ (y = (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_LE_NEGTOTAL : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) \/ (Rle (R_of_N (NUMERAL 0%N)) (Ropp x)). +Axiom thm_REAL_LE_SQUARE : forall x : R, Rle (R_of_N (NUMERAL 0%N)) (Rmult x x). +Axiom thm_REAL_MUL_RID : forall x : R, (Rmult x (R_of_N (NUMERAL (BIT1 0%N)))) = x. +Axiom thm_REAL_POW_2 : forall x : R, (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) = (Rmult x x). +Axiom thm_REAL_POLY_CLAUSES : (forall x : R, forall y : R, forall z : R, (Rplus x (Rplus y z)) = (Rplus (Rplus x y) z)) /\ ((forall x : R, forall y : R, (Rplus x y) = (Rplus y x)) /\ ((forall x : R, (Rplus (R_of_N (NUMERAL 0%N)) x) = x) /\ ((forall x : R, forall y : R, forall z : R, (Rmult x (Rmult y z)) = (Rmult (Rmult x y) z)) /\ ((forall x : R, forall y : R, (Rmult x y) = (Rmult y x)) /\ ((forall x : R, (Rmult (R_of_N (NUMERAL (BIT1 0%N))) x) = x) /\ ((forall x : R, (Rmult (R_of_N (NUMERAL 0%N)) x) = (R_of_N (NUMERAL 0%N))) /\ ((forall x : R, forall y : R, forall z : R, (Rmult x (Rplus y z)) = (Rplus (Rmult x y) (Rmult x z))) /\ ((forall x : R, (real_pow x (NUMERAL 0%N)) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall x : R, forall n : N, (real_pow x (N.succ n)) = (Rmult x (real_pow x n))))))))))). +Axiom thm_REAL_POLY_NEG_CLAUSES : (forall x : R, (Ropp x) = (Rmult (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x)) /\ (forall x : R, forall y : R, (Rminus x y) = (Rplus x (Rmult (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) y))). +Axiom thm_REAL_POS : forall n : N, Rle (R_of_N (NUMERAL 0%N)) (R_of_N n). +Axiom thm_REAL_LT_NZ : forall n : N, (~ ((R_of_N n) = (R_of_N (NUMERAL 0%N)))) = (Rlt (R_of_N (NUMERAL 0%N)) (R_of_N n)). +Axiom thm_REAL_POS_LT : forall n : N, Rlt (R_of_N (NUMERAL 0%N)) (R_of_N (N.succ n)). +Axiom thm_REAL_OF_NUM_LT : forall m : N, forall n : N, (Rlt (R_of_N m) (R_of_N n)) = (N.lt m n). +Axiom thm_REAL_OF_NUM_GE : forall m : N, forall n : N, (Rge (R_of_N m) (R_of_N n)) = (N.ge m n). +Axiom thm_REAL_OF_NUM_GT : forall m : N, forall n : N, (Rgt (R_of_N m) (R_of_N n)) = (N.gt m n). +Axiom thm_REAL_OF_NUM_MAX : forall m : N, forall n : N, (Rmax (R_of_N m) (R_of_N n)) = (R_of_N (N.max m n)). +Axiom thm_REAL_OF_NUM_MIN : forall m : N, forall n : N, (Rmin (R_of_N m) (R_of_N n)) = (R_of_N (N.min m n)). +Axiom thm_REAL_OF_NUM_SUC : forall n : N, (Rplus (R_of_N n) (R_of_N (NUMERAL (BIT1 0%N)))) = (R_of_N (N.succ n)). +Axiom thm_REAL_OF_NUM_SUB : forall m : N, forall n : N, (N.le m n) -> (Rminus (R_of_N n) (R_of_N m)) = (R_of_N (N.sub n m)). +Axiom thm_REAL_OF_NUM_SUB_CASES : forall m : N, forall n : N, (Rminus (R_of_N m) (R_of_N n)) = (@COND R (N.le n m) (R_of_N (N.sub m n)) (Ropp (R_of_N (N.sub n m)))). +Axiom thm_REAL_OF_NUM_CLAUSES : (forall m : N, forall n : N, ((R_of_N m) = (R_of_N n)) = (m = n)) /\ ((forall m : N, forall n : N, (Rge (R_of_N m) (R_of_N n)) = (N.ge m n)) /\ ((forall m : N, forall n : N, (Rgt (R_of_N m) (R_of_N n)) = (N.gt m n)) /\ ((forall m : N, forall n : N, (Rle (R_of_N m) (R_of_N n)) = (N.le m n)) /\ ((forall m : N, forall n : N, (Rlt (R_of_N m) (R_of_N n)) = (N.lt m n)) /\ ((forall m : N, forall n : N, (Rmax (R_of_N m) (R_of_N n)) = (R_of_N (N.max m n))) /\ ((forall m : N, forall n : N, (Rmin (R_of_N m) (R_of_N n)) = (R_of_N (N.min m n))) /\ ((forall m : N, forall n : N, (Rplus (R_of_N m) (R_of_N n)) = (R_of_N (N.add m n))) /\ ((forall m : N, forall n : N, (Rmult (R_of_N m) (R_of_N n)) = (R_of_N (N.mul m n))) /\ (forall x : N, forall n : N, (real_pow (R_of_N x) n) = (R_of_N (N.pow x n))))))))))). +Axiom thm_REAL_MUL_AC : forall (n : R) (m : R) (p : R), ((Rmult m n) = (Rmult n m)) /\ (((Rmult (Rmult m n) p) = (Rmult m (Rmult n p))) /\ ((Rmult m (Rmult n p)) = (Rmult n (Rmult m p)))). +Axiom thm_REAL_ADD_RDISTRIB : forall x : R, forall y : R, forall z : R, (Rmult (Rplus x y) z) = (Rplus (Rmult x z) (Rmult y z)). +Axiom thm_REAL_LT_LADD_IMP : forall x : R, forall y : R, forall z : R, (Rlt y z) -> Rlt (Rplus x y) (Rplus x z). +Axiom thm_REAL_LT_MUL : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) -> Rlt (R_of_N (NUMERAL 0%N)) (Rmult x y). +Axiom thm_REAL_EQ_ADD_LCANCEL_0 : forall x : R, forall y : R, ((Rplus x y) = x) = (y = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_EQ_ADD_RCANCEL_0 : forall x : R, forall y : R, ((Rplus x y) = y) = (x = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_LNEG_UNIQ : forall x : R, forall y : R, ((Rplus x y) = (R_of_N (NUMERAL 0%N))) = (x = (Ropp y)). +Axiom thm_REAL_RNEG_UNIQ : forall x : R, forall y : R, ((Rplus x y) = (R_of_N (NUMERAL 0%N))) = (y = (Ropp x)). +Axiom thm_REAL_NEG_LMUL : forall x : R, forall y : R, (Ropp (Rmult x y)) = (Rmult (Ropp x) y). +Axiom thm_REAL_NEG_RMUL : forall x : R, forall y : R, (Ropp (Rmult x y)) = (Rmult x (Ropp y)). +Axiom thm_REAL_NEG_MUL2 : forall x : R, forall y : R, (Rmult (Ropp x) (Ropp y)) = (Rmult x y). +Axiom thm_REAL_LT_LADD : forall x : R, forall y : R, forall z : R, (Rlt (Rplus x y) (Rplus x z)) = (Rlt y z). +Axiom thm_REAL_LT_RADD : forall x : R, forall y : R, forall z : R, (Rlt (Rplus x z) (Rplus y z)) = (Rlt x y). +Axiom thm_REAL_LT_ANTISYM : forall x : R, forall y : R, ~ ((Rlt x y) /\ (Rlt y x)). +Axiom thm_REAL_LT_GT : forall x : R, forall y : R, (Rlt x y) -> ~ (Rlt y x). +Axiom thm_REAL_NOT_EQ : forall x : R, forall y : R, (~ (x = y)) = ((Rlt x y) \/ (Rlt y x)). +Axiom thm_REAL_NOT_LE : forall x : R, forall y : R, (~ (Rle x y)) = (Rlt y x). +Axiom thm_REAL_LET_ANTISYM : forall x : R, forall y : R, ~ ((Rle x y) /\ (Rlt y x)). +Axiom thm_REAL_NEG_LT0 : forall x : R, (Rlt (Ropp x) (R_of_N (NUMERAL 0%N))) = (Rlt (R_of_N (NUMERAL 0%N)) x). +Axiom thm_REAL_NEG_GT0 : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) (Ropp x)) = (Rlt x (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_NEG_LE0 : forall x : R, (Rle (Ropp x) (R_of_N (NUMERAL 0%N))) = (Rle (R_of_N (NUMERAL 0%N)) x). +Axiom thm_REAL_NEG_GE0 : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) (Ropp x)) = (Rle x (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_LT_TOTAL : forall x : R, forall y : R, (x = y) \/ ((Rlt x y) \/ (Rlt y x)). +Axiom thm_REAL_LT_NEGTOTAL : forall x : R, (x = (R_of_N (NUMERAL 0%N))) \/ ((Rlt (R_of_N (NUMERAL 0%N)) x) \/ (Rlt (R_of_N (NUMERAL 0%N)) (Ropp x))). +Axiom thm_REAL_LE_01 : Rle (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_LT_01 : Rlt (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_LE_LADD : forall x : R, forall y : R, forall z : R, (Rle (Rplus x y) (Rplus x z)) = (Rle y z). +Axiom thm_REAL_LE_RADD : forall x : R, forall y : R, forall z : R, (Rle (Rplus x z) (Rplus y z)) = (Rle x y). +Axiom thm_REAL_LT_ADD2 : forall w : R, forall x : R, forall y : R, forall z : R, ((Rlt w x) /\ (Rlt y z)) -> Rlt (Rplus w y) (Rplus x z). +Axiom thm_REAL_LE_ADD2 : forall w : R, forall x : R, forall y : R, forall z : R, ((Rle w x) /\ (Rle y z)) -> Rle (Rplus w y) (Rplus x z). +Axiom thm_REAL_LT_LNEG : forall x : R, forall y : R, (Rlt (Ropp x) y) = (Rlt (R_of_N (NUMERAL 0%N)) (Rplus x y)). +Axiom thm_REAL_LT_RNEG : forall x : R, forall y : R, (Rlt x (Ropp y)) = (Rlt (Rplus x y) (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_LT_ADDNEG : forall x : R, forall y : R, forall z : R, (Rlt y (Rplus x (Ropp z))) = (Rlt (Rplus y z) x). +Axiom thm_REAL_LT_ADDNEG2 : forall x : R, forall y : R, forall z : R, (Rlt (Rplus x (Ropp y)) z) = (Rlt x (Rplus z y)). +Axiom thm_REAL_LT_ADD1 : forall x : R, forall y : R, (Rle x y) -> Rlt x (Rplus y (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_REAL_SUB_ADD : forall x : R, forall y : R, (Rplus (Rminus x y) y) = x. +Axiom thm_REAL_SUB_ADD2 : forall x : R, forall y : R, (Rplus y (Rminus x y)) = x. +Axiom thm_REAL_SUB_REFL : forall x : R, (Rminus x x) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_LE_DOUBLE : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) (Rplus x x)) = (Rle (R_of_N (NUMERAL 0%N)) x). +Axiom thm_REAL_LE_NEGL : forall x : R, (Rle (Ropp x) x) = (Rle (R_of_N (NUMERAL 0%N)) x). +Axiom thm_REAL_LE_NEGR : forall x : R, (Rle x (Ropp x)) = (Rle x (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_NEG_EQ_0 : forall x : R, ((Ropp x) = (R_of_N (NUMERAL 0%N))) = (x = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_ADD_SUB : forall x : R, forall y : R, (Rminus (Rplus x y) x) = y. +Axiom thm_REAL_NEG_EQ : forall x : R, forall y : R, ((Ropp x) = y) = (x = (Ropp y)). +Axiom thm_REAL_NEG_MINUS1 : forall x : R, (Ropp x) = (Rmult (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) x). +Axiom thm_REAL_LT_IMP_NE : forall x : R, forall y : R, (Rlt x y) -> ~ (x = y). +Axiom thm_REAL_LE_ADDR : forall x : R, forall y : R, (Rle x (Rplus x y)) = (Rle (R_of_N (NUMERAL 0%N)) y). +Axiom thm_REAL_LE_ADDL : forall x : R, forall y : R, (Rle y (Rplus x y)) = (Rle (R_of_N (NUMERAL 0%N)) x). +Axiom thm_REAL_LT_ADDR : forall x : R, forall y : R, (Rlt x (Rplus x y)) = (Rlt (R_of_N (NUMERAL 0%N)) y). +Axiom thm_REAL_LT_ADDL : forall x : R, forall y : R, (Rlt y (Rplus x y)) = (Rlt (R_of_N (NUMERAL 0%N)) x). +Axiom thm_REAL_SUB_SUB : forall x : R, forall y : R, (Rminus (Rminus x y) x) = (Ropp y). +Axiom thm_REAL_LT_ADD_SUB : forall x : R, forall y : R, forall z : R, (Rlt (Rplus x y) z) = (Rlt x (Rminus z y)). +Axiom thm_REAL_LT_SUB_RADD : forall x : R, forall y : R, forall z : R, (Rlt (Rminus x y) z) = (Rlt x (Rplus z y)). +Axiom thm_REAL_LT_SUB_LADD : forall x : R, forall y : R, forall z : R, (Rlt x (Rminus y z)) = (Rlt (Rplus x z) y). +Axiom thm_REAL_LE_SUB_LADD : forall x : R, forall y : R, forall z : R, (Rle x (Rminus y z)) = (Rle (Rplus x z) y). +Axiom thm_REAL_LE_SUB_RADD : forall x : R, forall y : R, forall z : R, (Rle (Rminus x y) z) = (Rle x (Rplus z y)). +Axiom thm_REAL_ADD2_SUB2 : forall a : R, forall b : R, forall c : R, forall d : R, (Rminus (Rplus a b) (Rplus c d)) = (Rplus (Rminus a c) (Rminus b d)). +Axiom thm_REAL_SUB_LZERO : forall x : R, (Rminus (R_of_N (NUMERAL 0%N)) x) = (Ropp x). +Axiom thm_REAL_SUB_RZERO : forall x : R, (Rminus x (R_of_N (NUMERAL 0%N))) = x. +Axiom thm_REAL_LET_ADD2 : forall w : R, forall x : R, forall y : R, forall z : R, ((Rle w x) /\ (Rlt y z)) -> Rlt (Rplus w y) (Rplus x z). +Axiom thm_REAL_LTE_ADD2 : forall w : R, forall x : R, forall y : R, forall z : R, ((Rlt w x) /\ (Rle y z)) -> Rlt (Rplus w y) (Rplus x z). +Axiom thm_REAL_SUB_LNEG : forall x : R, forall y : R, (Rminus (Ropp x) y) = (Ropp (Rplus x y)). +Axiom thm_REAL_SUB_RNEG : forall x : R, forall y : R, (Rminus x (Ropp y)) = (Rplus x y). +Axiom thm_REAL_SUB_NEG2 : forall x : R, forall y : R, (Rminus (Ropp x) (Ropp y)) = (Rminus y x). +Axiom thm_REAL_SUB_TRIANGLE : forall a : R, forall b : R, forall c : R, (Rplus (Rminus a b) (Rminus b c)) = (Rminus a c). +Axiom thm_REAL_EQ_SUB_LADD : forall x : R, forall y : R, forall z : R, (x = (Rminus y z)) = ((Rplus x z) = y). +Axiom thm_REAL_EQ_SUB_RADD : forall x : R, forall y : R, forall z : R, ((Rminus x y) = z) = (x = (Rplus z y)). +Axiom thm_REAL_SUB_SUB2 : forall x : R, forall y : R, (Rminus x (Rminus x y)) = y. +Axiom thm_REAL_ADD_SUB2 : forall x : R, forall y : R, (Rminus x (Rplus x y)) = (Ropp y). +Axiom thm_REAL_EQ_IMP_LE : forall x : R, forall y : R, (x = y) -> Rle x y. +Axiom thm_REAL_LT_IMP_NZ : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> ~ (x = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_DIFFSQ : forall x : R, forall y : R, (Rmult (Rplus x y) (Rminus x y)) = (Rminus (Rmult x x) (Rmult y y)). +Axiom thm_REAL_EQ_NEG2 : forall x : R, forall y : R, ((Ropp x) = (Ropp y)) = (x = y). +Axiom thm_REAL_LT_NEG2 : forall x : R, forall y : R, (Rlt (Ropp x) (Ropp y)) = (Rlt y x). +Axiom thm_REAL_SUB_LDISTRIB : forall x : R, forall y : R, forall z : R, (Rmult x (Rminus y z)) = (Rminus (Rmult x y) (Rmult x z)). +Axiom thm_REAL_SUB_RDISTRIB : forall x : R, forall y : R, forall z : R, (Rmult (Rminus x y) z) = (Rminus (Rmult x z) (Rmult y z)). +Axiom thm_REAL_ABS_ZERO : forall x : R, ((Rabs x) = (R_of_N (NUMERAL 0%N))) = (x = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_ABS_0 : (Rabs (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_ABS_1 : (Rabs (R_of_N (NUMERAL (BIT1 0%N)))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_ABS_TRIANGLE : forall x : R, forall y : R, Rle (Rabs (Rplus x y)) (Rplus (Rabs x) (Rabs y)). +Axiom thm_REAL_ABS_TRIANGLE_LE : forall x : R, forall y : R, forall z : R, (Rle (Rplus (Rabs x) (Rabs (Rminus y x))) z) -> Rle (Rabs y) z. +Axiom thm_REAL_ABS_TRIANGLE_LT : forall x : R, forall y : R, forall z : R, (Rlt (Rplus (Rabs x) (Rabs (Rminus y x))) z) -> Rlt (Rabs y) z. +Axiom thm_REAL_ABS_POS : forall x : R, Rle (R_of_N (NUMERAL 0%N)) (Rabs x). +Axiom thm_REAL_ABS_SUB : forall x : R, forall y : R, (Rabs (Rminus x y)) = (Rabs (Rminus y x)). +Axiom thm_REAL_ABS_NZ : forall x : R, (~ (x = (R_of_N (NUMERAL 0%N)))) = (Rlt (R_of_N (NUMERAL 0%N)) (Rabs x)). +Axiom thm_REAL_ABS_ABS : forall x : R, (Rabs (Rabs x)) = (Rabs x). +Axiom thm_REAL_ABS_LE : forall x : R, Rle x (Rabs x). +Axiom thm_REAL_ABS_REFL : forall x : R, ((Rabs x) = x) = (Rle (R_of_N (NUMERAL 0%N)) x). +Axiom thm_REAL_ABS_BETWEEN : forall x : R, forall y : R, forall d : R, ((Rlt (R_of_N (NUMERAL 0%N)) d) /\ ((Rlt (Rminus x d) y) /\ (Rlt y (Rplus x d)))) = (Rlt (Rabs (Rminus y x)) d). +Axiom thm_REAL_ABS_BOUND : forall x : R, forall y : R, forall d : R, (Rlt (Rabs (Rminus x y)) d) -> Rlt y (Rplus x d). +Axiom thm_REAL_ABS_STILLNZ : forall x : R, forall y : R, (Rlt (Rabs (Rminus x y)) (Rabs y)) -> ~ (x = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_ABS_CASES : forall x : R, (x = (R_of_N (NUMERAL 0%N))) \/ (Rlt (R_of_N (NUMERAL 0%N)) (Rabs x)). +Axiom thm_REAL_ABS_BETWEEN1 : forall x : R, forall y : R, forall z : R, ((Rlt x z) /\ (Rlt (Rabs (Rminus y x)) (Rminus z x))) -> Rlt y z. +Axiom thm_REAL_ABS_SIGN2 : forall x : R, forall y : R, (Rlt (Rabs (Rminus x y)) (Ropp y)) -> Rlt x (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_ABS_CIRCLE : forall x : R, forall y : R, forall h : R, (Rlt (Rabs h) (Rminus (Rabs y) (Rabs x))) -> Rlt (Rabs (Rplus x h)) (Rabs y). +Axiom thm_REAL_SUB_ABS : forall x : R, forall y : R, Rle (Rminus (Rabs x) (Rabs y)) (Rabs (Rminus x y)). +Axiom thm_REAL_ABS_SUB_ABS : forall x : R, forall y : R, Rle (Rabs (Rminus (Rabs x) (Rabs y))) (Rabs (Rminus x y)). +Axiom thm_REAL_ABS_BETWEEN2 : forall x0 : R, forall x : R, forall y0 : R, forall y : R, ((Rlt x0 y0) /\ ((Rlt (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rabs (Rminus x x0))) (Rminus y0 x0)) /\ (Rlt (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rabs (Rminus y y0))) (Rminus y0 x0)))) -> Rlt x y. +Axiom thm_REAL_ABS_BOUNDS : forall x : R, forall k : R, (Rle (Rabs x) k) = ((Rle (Ropp k) x) /\ (Rle x k)). +Axiom thm_REAL_BOUNDS_LE : forall x : R, forall k : R, ((Rle (Ropp k) x) /\ (Rle x k)) = (Rle (Rabs x) k). +Axiom thm_REAL_BOUNDS_LT : forall x : R, forall k : R, ((Rlt (Ropp k) x) /\ (Rlt x k)) = (Rlt (Rabs x) k). +Axiom thm_REAL_MIN_MAX : forall x : R, forall y : R, (Rmin x y) = (Ropp (Rmax (Ropp x) (Ropp y))). +Axiom thm_REAL_MAX_MIN : forall x : R, forall y : R, (Rmax x y) = (Ropp (Rmin (Ropp x) (Ropp y))). +Axiom thm_REAL_MAX_MAX : forall x : R, forall y : R, (Rle x (Rmax x y)) /\ (Rle y (Rmax x y)). +Axiom thm_REAL_MIN_MIN : forall x : R, forall y : R, (Rle (Rmin x y) x) /\ (Rle (Rmin x y) y). +Axiom thm_REAL_MAX_SYM : forall x : R, forall y : R, (Rmax x y) = (Rmax y x). +Axiom thm_REAL_MIN_SYM : forall x : R, forall y : R, (Rmin x y) = (Rmin y x). +Axiom thm_REAL_LE_MAX : forall x : R, forall y : R, forall z : R, (Rle z (Rmax x y)) = ((Rle z x) \/ (Rle z y)). +Axiom thm_REAL_LE_MIN : forall x : R, forall y : R, forall z : R, (Rle z (Rmin x y)) = ((Rle z x) /\ (Rle z y)). +Axiom thm_REAL_LT_MAX : forall x : R, forall y : R, forall z : R, (Rlt z (Rmax x y)) = ((Rlt z x) \/ (Rlt z y)). +Axiom thm_REAL_LT_MIN : forall x : R, forall y : R, forall z : R, (Rlt z (Rmin x y)) = ((Rlt z x) /\ (Rlt z y)). +Axiom thm_REAL_MAX_LE : forall x : R, forall y : R, forall z : R, (Rle (Rmax x y) z) = ((Rle x z) /\ (Rle y z)). +Axiom thm_REAL_MIN_LE : forall x : R, forall y : R, forall z : R, (Rle (Rmin x y) z) = ((Rle x z) \/ (Rle y z)). +Axiom thm_REAL_MAX_LT : forall x : R, forall y : R, forall z : R, (Rlt (Rmax x y) z) = ((Rlt x z) /\ (Rlt y z)). +Axiom thm_REAL_MIN_LT : forall x : R, forall y : R, forall z : R, (Rlt (Rmin x y) z) = ((Rlt x z) \/ (Rlt y z)). +Axiom thm_REAL_MAX_ASSOC : forall x : R, forall y : R, forall z : R, (Rmax x (Rmax y z)) = (Rmax (Rmax x y) z). +Axiom thm_REAL_MIN_ASSOC : forall x : R, forall y : R, forall z : R, (Rmin x (Rmin y z)) = (Rmin (Rmin x y) z). +Axiom thm_REAL_MAX_ACI : forall (z : R) (x : R) (y : R), ((Rmax x y) = (Rmax y x)) /\ (((Rmax (Rmax x y) z) = (Rmax x (Rmax y z))) /\ (((Rmax x (Rmax y z)) = (Rmax y (Rmax x z))) /\ (((Rmax x x) = x) /\ ((Rmax x (Rmax x y)) = (Rmax x y))))). +Axiom thm_REAL_MIN_ACI : forall (z : R) (x : R) (y : R), ((Rmin x y) = (Rmin y x)) /\ (((Rmin (Rmin x y) z) = (Rmin x (Rmin y z))) /\ (((Rmin x (Rmin y z)) = (Rmin y (Rmin x z))) /\ (((Rmin x x) = x) /\ ((Rmin x (Rmin x y)) = (Rmin x y))))). +Axiom thm_REAL_ABS_MUL : forall x : R, forall y : R, (Rabs (Rmult x y)) = (Rmult (Rabs x) (Rabs y)). +Axiom thm_REAL_POW_LE : forall x : R, forall n : N, (Rle (R_of_N (NUMERAL 0%N)) x) -> Rle (R_of_N (NUMERAL 0%N)) (real_pow x n). +Axiom thm_REAL_POW_LT : forall x : R, forall n : N, (Rlt (R_of_N (NUMERAL 0%N)) x) -> Rlt (R_of_N (NUMERAL 0%N)) (real_pow x n). +Axiom thm_REAL_ABS_POW : forall x : R, forall n : N, (Rabs (real_pow x n)) = (real_pow (Rabs x) n). +Axiom thm_REAL_LE_LMUL : forall x : R, forall y : R, forall z : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle y z)) -> Rle (Rmult x y) (Rmult x z). +Axiom thm_REAL_LE_RMUL : forall x : R, forall y : R, forall z : R, ((Rle x y) /\ (Rle (R_of_N (NUMERAL 0%N)) z)) -> Rle (Rmult x z) (Rmult y z). +Axiom thm_REAL_LT_LMUL : forall x : R, forall y : R, forall z : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt y z)) -> Rlt (Rmult x y) (Rmult x z). +Axiom thm_REAL_LT_RMUL : forall x : R, forall y : R, forall z : R, ((Rlt x y) /\ (Rlt (R_of_N (NUMERAL 0%N)) z)) -> Rlt (Rmult x z) (Rmult y z). +Axiom thm_REAL_EQ_MUL_LCANCEL : forall x : R, forall y : R, forall z : R, ((Rmult x y) = (Rmult x z)) = ((x = (R_of_N (NUMERAL 0%N))) \/ (y = z)). +Axiom thm_REAL_EQ_MUL_RCANCEL : forall x : R, forall y : R, forall z : R, ((Rmult x z) = (Rmult y z)) = ((x = y) \/ (z = (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_MUL_LINV_UNIQ : forall x : R, forall y : R, ((Rmult x y) = (R_of_N (NUMERAL (BIT1 0%N)))) -> (Rinv y) = x. +Axiom thm_REAL_MUL_RINV_UNIQ : forall x : R, forall y : R, ((Rmult x y) = (R_of_N (NUMERAL (BIT1 0%N)))) -> (Rinv x) = y. +Axiom thm_REAL_INV_INV : forall x : R, (Rinv (Rinv x)) = x. +Axiom thm_REAL_EQ_INV2 : forall x : R, forall y : R, ((Rinv x) = (Rinv y)) = (x = y). +Axiom thm_REAL_INV_EQ_0 : forall x : R, ((Rinv x) = (R_of_N (NUMERAL 0%N))) = (x = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_LT_INV : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> Rlt (R_of_N (NUMERAL 0%N)) (Rinv x). +Axiom thm_REAL_LT_INV_EQ : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) (Rinv x)) = (Rlt (R_of_N (NUMERAL 0%N)) x). +Axiom thm_REAL_INV_NEG : forall x : R, (Rinv (Ropp x)) = (Ropp (Rinv x)). +Axiom thm_REAL_LE_INV_EQ : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) (Rinv x)) = (Rle (R_of_N (NUMERAL 0%N)) x). +Axiom thm_REAL_LE_INV : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> Rle (R_of_N (NUMERAL 0%N)) (Rinv x). +Axiom thm_REAL_MUL_RINV : forall x : R, (~ (x = (R_of_N (NUMERAL 0%N)))) -> (Rmult x (Rinv x)) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_INV_1 : (Rinv (R_of_N (NUMERAL (BIT1 0%N)))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_INV_EQ_1 : forall x : R, ((Rinv x) = (R_of_N (NUMERAL (BIT1 0%N)))) = (x = (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_REAL_DIV_1 : forall x : R, (Rdiv x (R_of_N (NUMERAL (BIT1 0%N)))) = x. +Axiom thm_REAL_DIV_REFL : forall x : R, (~ (x = (R_of_N (NUMERAL 0%N)))) -> (Rdiv x x) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_DIV_RMUL : forall x : R, forall y : R, (~ (y = (R_of_N (NUMERAL 0%N)))) -> (Rmult (Rdiv x y) y) = x. +Axiom thm_REAL_DIV_LMUL : forall x : R, forall y : R, (~ (y = (R_of_N (NUMERAL 0%N)))) -> (Rmult y (Rdiv x y)) = x. +Axiom thm_REAL_DIV_EQ_1 : forall x : R, forall y : R, ((Rdiv x y) = (R_of_N (NUMERAL (BIT1 0%N)))) = ((x = y) /\ ((~ (x = (R_of_N (NUMERAL 0%N)))) /\ (~ (y = (R_of_N (NUMERAL 0%N)))))). +Axiom thm_REAL_ABS_INV : forall x : R, (Rabs (Rinv x)) = (Rinv (Rabs x)). +Axiom thm_REAL_ABS_DIV : forall x : R, forall y : R, (Rabs (Rdiv x y)) = (Rdiv (Rabs x) (Rabs y)). +Axiom thm_REAL_INV_MUL : forall x : R, forall y : R, (Rinv (Rmult x y)) = (Rmult (Rinv x) (Rinv y)). +Axiom thm_REAL_INV_DIV : forall x : R, forall y : R, (Rinv (Rdiv x y)) = (Rdiv y x). +Axiom thm_REAL_POW_MUL : forall x : R, forall y : R, forall n : N, (real_pow (Rmult x y) n) = (Rmult (real_pow x n) (real_pow y n)). +Axiom thm_REAL_POW_INV : forall x : R, forall n : N, (real_pow (Rinv x) n) = (Rinv (real_pow x n)). +Axiom thm_REAL_INV_POW : forall x : R, forall n : N, (Rinv (real_pow x n)) = (real_pow (Rinv x) n). +Axiom thm_REAL_POW_DIV : forall x : R, forall y : R, forall n : N, (real_pow (Rdiv x y) n) = (Rdiv (real_pow x n) (real_pow y n)). +Axiom thm_REAL_DIV_EQ_0 : forall x : R, forall y : R, ((Rdiv x y) = (R_of_N (NUMERAL 0%N))) = ((x = (R_of_N (NUMERAL 0%N))) \/ (y = (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_POW_ADD : forall x : R, forall m : N, forall n : N, (real_pow x (N.add m n)) = (Rmult (real_pow x m) (real_pow x n)). +Axiom thm_REAL_POW_NZ : forall x : R, forall n : N, (~ (x = (R_of_N (NUMERAL 0%N)))) -> ~ ((real_pow x n) = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_POW_SUB : forall x : R, forall m : N, forall n : N, ((~ (x = (R_of_N (NUMERAL 0%N)))) /\ (N.le m n)) -> (real_pow x (N.sub n m)) = (Rdiv (real_pow x n) (real_pow x m)). +Axiom thm_REAL_LT_LCANCEL_IMP : forall x : R, forall y : R, forall z : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (Rmult x y) (Rmult x z))) -> Rlt y z. +Axiom thm_REAL_LT_RCANCEL_IMP : forall x : R, forall y : R, forall z : R, ((Rlt (R_of_N (NUMERAL 0%N)) z) /\ (Rlt (Rmult x z) (Rmult y z))) -> Rlt x y. +Axiom thm_REAL_LE_LCANCEL_IMP : forall x : R, forall y : R, forall z : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rle (Rmult x y) (Rmult x z))) -> Rle y z. +Axiom thm_REAL_LE_RCANCEL_IMP : forall x : R, forall y : R, forall z : R, ((Rlt (R_of_N (NUMERAL 0%N)) z) /\ (Rle (Rmult x z) (Rmult y z))) -> Rle x y. +Axiom thm_REAL_LE_RMUL_EQ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> (Rle (Rmult x z) (Rmult y z)) = (Rle x y). +Axiom thm_REAL_LE_LMUL_EQ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> (Rle (Rmult z x) (Rmult z y)) = (Rle x y). +Axiom thm_REAL_LT_RMUL_EQ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> (Rlt (Rmult x z) (Rmult y z)) = (Rlt x y). +Axiom thm_REAL_LT_LMUL_EQ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> (Rlt (Rmult z x) (Rmult z y)) = (Rlt x y). +Axiom thm_REAL_LE_MUL_EQ : (forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> (Rle (R_of_N (NUMERAL 0%N)) (Rmult x y)) = (Rle (R_of_N (NUMERAL 0%N)) y)) /\ (forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) y) -> (Rle (R_of_N (NUMERAL 0%N)) (Rmult x y)) = (Rle (R_of_N (NUMERAL 0%N)) x)). +Axiom thm_REAL_LT_MUL_EQ : (forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> (Rlt (R_of_N (NUMERAL 0%N)) (Rmult x y)) = (Rlt (R_of_N (NUMERAL 0%N)) y)) /\ (forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) y) -> (Rlt (R_of_N (NUMERAL 0%N)) (Rmult x y)) = (Rlt (R_of_N (NUMERAL 0%N)) x)). +Axiom thm_REAL_MUL_POS_LT : forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL 0%N)) (Rmult x y)) = (((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) \/ ((Rlt x (R_of_N (NUMERAL 0%N))) /\ (Rlt y (R_of_N (NUMERAL 0%N))))). +Axiom thm_REAL_MUL_POS_LE : forall x : R, forall y : R, (Rle (R_of_N (NUMERAL 0%N)) (Rmult x y)) = ((x = (R_of_N (NUMERAL 0%N))) \/ ((y = (R_of_N (NUMERAL 0%N))) \/ (((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) \/ ((Rlt x (R_of_N (NUMERAL 0%N))) /\ (Rlt y (R_of_N (NUMERAL 0%N))))))). +Axiom thm_REAL_LE_RDIV_EQ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> (Rle x (Rdiv y z)) = (Rle (Rmult x z) y). +Axiom thm_REAL_LE_LDIV_EQ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> (Rle (Rdiv x z) y) = (Rle x (Rmult y z)). +Axiom thm_REAL_LT_RDIV_EQ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> (Rlt x (Rdiv y z)) = (Rlt (Rmult x z) y). +Axiom thm_REAL_LT_LDIV_EQ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> (Rlt (Rdiv x z) y) = (Rlt x (Rmult y z)). +Axiom thm_REAL_EQ_RDIV_EQ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> (x = (Rdiv y z)) = ((Rmult x z) = y). +Axiom thm_REAL_EQ_LDIV_EQ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> ((Rdiv x z) = y) = (x = (Rmult y z)). +Axiom thm_REAL_LT_DIV2_EQ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> (Rlt (Rdiv x z) (Rdiv y z)) = (Rlt x y). +Axiom thm_REAL_LE_DIV2_EQ : forall x : R, forall y : R, forall z : R, (Rlt (R_of_N (NUMERAL 0%N)) z) -> (Rle (Rdiv x z) (Rdiv y z)) = (Rle x y). +Axiom thm_REAL_MUL_2 : forall x : R, (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x) = (Rplus x x). +Axiom thm_REAL_POW_EQ_0 : forall x : R, forall n : N, ((real_pow x n) = (R_of_N (NUMERAL 0%N))) = ((x = (R_of_N (NUMERAL 0%N))) /\ (~ (n = (NUMERAL 0%N)))). +Axiom thm_REAL_LE_MUL2 : forall w : R, forall x : R, forall y : R, forall z : R, ((Rle (R_of_N (NUMERAL 0%N)) w) /\ ((Rle w x) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rle y z)))) -> Rle (Rmult w y) (Rmult x z). +Axiom thm_REAL_LT_MUL2 : forall w : R, forall x : R, forall y : R, forall z : R, ((Rle (R_of_N (NUMERAL 0%N)) w) /\ ((Rlt w x) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rlt y z)))) -> Rlt (Rmult w y) (Rmult x z). +Axiom thm_REAL_LT_SQUARE : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) (Rmult x x)) = (~ (x = (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_POW_1 : forall x : R, (real_pow x (NUMERAL (BIT1 0%N))) = x. +Axiom thm_REAL_POW_ONE : forall n : N, (real_pow (R_of_N (NUMERAL (BIT1 0%N))) n) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_LT_INV2 : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x y)) -> Rlt (Rinv y) (Rinv x). +Axiom thm_REAL_LE_INV2 : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rle x y)) -> Rle (Rinv y) (Rinv x). +Axiom thm_REAL_LT_LINV : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) y) /\ (Rlt (Rinv y) x)) -> Rlt (Rinv x) y. +Axiom thm_REAL_LT_RINV : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x (Rinv y))) -> Rlt y (Rinv x). +Axiom thm_REAL_LE_LINV : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) y) /\ (Rle (Rinv y) x)) -> Rle (Rinv x) y. +Axiom thm_REAL_LE_RINV : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rle x (Rinv y))) -> Rle y (Rinv x). +Axiom thm_REAL_INV_LE_1 : forall x : R, (Rle (R_of_N (NUMERAL (BIT1 0%N))) x) -> Rle (Rinv x) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_INV_1_LE : forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> Rle (R_of_N (NUMERAL (BIT1 0%N))) (Rinv x). +Axiom thm_REAL_INV_LT_1 : forall x : R, (Rlt (R_of_N (NUMERAL (BIT1 0%N))) x) -> Rlt (Rinv x) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_INV_1_LT : forall x : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x (R_of_N (NUMERAL (BIT1 0%N))))) -> Rlt (R_of_N (NUMERAL (BIT1 0%N))) (Rinv x). +Axiom thm_REAL_SUB_INV : forall x : R, forall y : R, ((~ (x = (R_of_N (NUMERAL 0%N)))) /\ (~ (y = (R_of_N (NUMERAL 0%N))))) -> (Rminus (Rinv x) (Rinv y)) = (Rdiv (Rminus y x) (Rmult x y)). +Axiom thm_REAL_DOWN : forall d : R, (Rlt (R_of_N (NUMERAL 0%N)) d) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ (Rlt e d). +Axiom thm_REAL_DOWN2 : forall d1 : R, forall d2 : R, ((Rlt (R_of_N (NUMERAL 0%N)) d1) /\ (Rlt (R_of_N (NUMERAL 0%N)) d2)) -> exists e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) /\ ((Rlt e d1) /\ (Rlt e d2)). +Axiom thm_REAL_POW_LE2 : forall n : N, forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle x y)) -> Rle (real_pow x n) (real_pow y n). +Axiom thm_REAL_POW_LE_1 : forall n : N, forall x : R, (Rle (R_of_N (NUMERAL (BIT1 0%N))) x) -> Rle (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x n). +Axiom thm_REAL_POW_1_LE : forall n : N, forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle x (R_of_N (NUMERAL (BIT1 0%N))))) -> Rle (real_pow x n) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_POW_MONO : forall m : N, forall n : N, forall x : R, ((Rle (R_of_N (NUMERAL (BIT1 0%N))) x) /\ (N.le m n)) -> Rle (real_pow x m) (real_pow x n). +Axiom thm_REAL_POW_LT2 : forall n : N, forall x : R, forall y : R, ((~ (n = (NUMERAL 0%N))) /\ ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x y))) -> Rlt (real_pow x n) (real_pow y n). +Axiom thm_REAL_POW_LT_1 : forall n : N, forall x : R, ((~ (n = (NUMERAL 0%N))) /\ (Rlt (R_of_N (NUMERAL (BIT1 0%N))) x)) -> Rlt (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x n). +Axiom thm_REAL_POW_1_LT : forall n : N, forall x : R, ((~ (n = (NUMERAL 0%N))) /\ ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rlt x (R_of_N (NUMERAL (BIT1 0%N)))))) -> Rlt (real_pow x n) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_POW_MONO_LT : forall m : N, forall n : N, forall x : R, ((Rlt (R_of_N (NUMERAL (BIT1 0%N))) x) /\ (N.lt m n)) -> Rlt (real_pow x m) (real_pow x n). +Axiom thm_REAL_POW_POW : forall x : R, forall m : N, forall n : N, (real_pow (real_pow x m) n) = (real_pow x (N.mul m n)). +Axiom thm_REAL_EQ_RCANCEL_IMP : forall x : R, forall y : R, forall z : R, ((~ (z = (R_of_N (NUMERAL 0%N)))) /\ ((Rmult x z) = (Rmult y z))) -> x = y. +Axiom thm_REAL_EQ_LCANCEL_IMP : forall x : R, forall y : R, forall z : R, ((~ (z = (R_of_N (NUMERAL 0%N)))) /\ ((Rmult z x) = (Rmult z y))) -> x = y. +Axiom thm_REAL_LT_DIV : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) x) /\ (Rlt (R_of_N (NUMERAL 0%N)) y)) -> Rlt (R_of_N (NUMERAL 0%N)) (Rdiv x y). +Axiom thm_REAL_LE_DIV : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle (R_of_N (NUMERAL 0%N)) y)) -> Rle (R_of_N (NUMERAL 0%N)) (Rdiv x y). +Axiom thm_REAL_DIV_POW2 : forall x : R, forall m : N, forall n : N, (~ (x = (R_of_N (NUMERAL 0%N)))) -> (Rdiv (real_pow x m) (real_pow x n)) = (@COND R (N.le n m) (real_pow x (N.sub m n)) (Rinv (real_pow x (N.sub n m)))). +Axiom thm_REAL_DIV_POW2_ALT : forall x : R, forall m : N, forall n : N, (~ (x = (R_of_N (NUMERAL 0%N)))) -> (Rdiv (real_pow x m) (real_pow x n)) = (@COND R (N.lt n m) (real_pow x (N.sub m n)) (Rinv (real_pow x (N.sub n m)))). +Axiom thm_REAL_LT_POW2 : forall n : N, Rlt (R_of_N (NUMERAL 0%N)) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n). +Axiom thm_REAL_LE_POW2 : forall n : N, Rle (R_of_N (NUMERAL (BIT1 0%N))) (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n). +Axiom thm_REAL_POW2_ABS : forall x : R, (real_pow (Rabs x) (NUMERAL (BIT0 (BIT1 0%N)))) = (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_REAL_LE_SQUARE_ABS : forall x : R, forall y : R, (Rle (Rabs x) (Rabs y)) = (Rle (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow y (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_REAL_LT_SQUARE_ABS : forall x : R, forall y : R, (Rlt (Rabs x) (Rabs y)) = (Rlt (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow y (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_REAL_EQ_SQUARE_ABS : forall x : R, forall y : R, ((Rabs x) = (Rabs y)) = ((real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) = (real_pow y (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_REAL_LE_POW_2 : forall x : R, Rle (R_of_N (NUMERAL 0%N)) (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_REAL_LT_POW_2 : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) (real_pow x (NUMERAL (BIT0 (BIT1 0%N))))) = (~ (x = (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_SOS_EQ_0 : forall x : R, forall y : R, ((Rplus (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (real_pow y (NUMERAL (BIT0 (BIT1 0%N))))) = (R_of_N (NUMERAL 0%N))) = ((x = (R_of_N (NUMERAL 0%N))) /\ (y = (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_POW_ZERO : forall n : N, (real_pow (R_of_N (NUMERAL 0%N)) n) = (@COND R (n = (NUMERAL 0%N)) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_POW_MONO_INV : forall m : N, forall n : N, forall x : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle x (R_of_N (NUMERAL (BIT1 0%N)))) /\ (N.le n m))) -> Rle (real_pow x m) (real_pow x n). +Axiom thm_REAL_POW_LE2_REV : forall n : N, forall x : R, forall y : R, ((~ (n = (NUMERAL 0%N))) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rle (real_pow x n) (real_pow y n)))) -> Rle x y. +Axiom thm_REAL_POW_LT2_REV : forall n : N, forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rlt (real_pow x n) (real_pow y n))) -> Rlt x y. +Axiom thm_REAL_POW_EQ : forall n : N, forall x : R, forall y : R, ((~ (n = (NUMERAL 0%N))) /\ ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ ((real_pow x n) = (real_pow y n))))) -> x = y. +Axiom thm_REAL_POW_EQ_ABS : forall n : N, forall x : R, forall y : R, ((~ (n = (NUMERAL 0%N))) /\ ((real_pow x n) = (real_pow y n))) -> (Rabs x) = (Rabs y). +Axiom thm_REAL_POW_EQ_1_IMP : forall x : R, forall n : N, ((~ (n = (NUMERAL 0%N))) /\ ((real_pow x n) = (R_of_N (NUMERAL (BIT1 0%N))))) -> (Rabs x) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_POW_EQ_1 : forall x : R, forall n : N, ((real_pow x n) = (R_of_N (NUMERAL (BIT1 0%N)))) = ((((Rabs x) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((Rlt x (R_of_N (NUMERAL 0%N))) -> EVEN n)) \/ (n = (NUMERAL 0%N))). +Axiom thm_REAL_POW_LT2_ODD : forall n : N, forall x : R, forall y : R, ((Rlt x y) /\ (ODD n)) -> Rlt (real_pow x n) (real_pow y n). +Axiom thm_REAL_POW_LE2_ODD : forall n : N, forall x : R, forall y : R, ((Rle x y) /\ (ODD n)) -> Rle (real_pow x n) (real_pow y n). +Axiom thm_REAL_POW_LT2_ODD_EQ : forall n : N, forall x : R, forall y : R, (ODD n) -> (Rlt (real_pow x n) (real_pow y n)) = (Rlt x y). +Axiom thm_REAL_POW_LE2_ODD_EQ : forall n : N, forall x : R, forall y : R, (ODD n) -> (Rle (real_pow x n) (real_pow y n)) = (Rle x y). +Axiom thm_REAL_POW_EQ_ODD_EQ : forall n : N, forall x : R, forall y : R, (ODD n) -> ((real_pow x n) = (real_pow y n)) = (x = y). +Axiom thm_REAL_POW_EQ_ODD : forall n : N, forall x : R, forall y : R, ((ODD n) /\ ((real_pow x n) = (real_pow y n))) -> x = y. +Axiom thm_REAL_POW_EQ_EQ : forall n : N, forall x : R, forall y : R, ((real_pow x n) = (real_pow y n)) = (@COND Prop (EVEN n) ((n = (NUMERAL 0%N)) \/ ((Rabs x) = (Rabs y))) (x = y)). +Axiom thm_REAL_EVENPOW_ABS : forall x : R, forall n : N, (EVEN n) -> (real_pow (Rabs x) n) = (real_pow x n). +Axiom thm_REAL_OF_NUM_MOD : forall m : N, forall n : N, (R_of_N (N.modulo m n)) = (Rminus (R_of_N m) (Rmult (R_of_N (N.div m n)) (R_of_N n))). +Axiom thm_REAL_OF_NUM_DIV : forall m : N, forall n : N, (R_of_N (N.div m n)) = (Rminus (Rdiv (R_of_N m) (R_of_N n)) (Rdiv (R_of_N (N.modulo m n)) (R_of_N n))). +Axiom thm_REAL_CONVEX_BOUND2_LT : forall (b : R), forall x : R, forall y : R, forall a : R, forall u : R, forall v : R, ((Rlt x a) /\ ((Rlt y b) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rlt (Rplus (Rmult u x) (Rmult v y)) (Rplus (Rmult u a) (Rmult v b)). +Axiom thm_REAL_CONVEX_BOUND2_LE : forall (b : R), forall x : R, forall y : R, forall a : R, forall u : R, forall v : R, ((Rle x a) /\ ((Rle y b) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (Rplus (Rmult u x) (Rmult v y)) (Rplus (Rmult u a) (Rmult v b)). +Axiom thm_REAL_CONVEX_BOUND_LT : forall x : R, forall y : R, forall a : R, forall u : R, forall v : R, ((Rlt x a) /\ ((Rlt y a) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rlt (Rplus (Rmult u x) (Rmult v y)) a. +Axiom thm_REAL_CONVEX_BOUND_LE : forall x : R, forall y : R, forall a : R, forall u : R, forall v : R, ((Rle x a) /\ ((Rle y a) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle (Rplus (Rmult u x) (Rmult v y)) a. +Axiom thm_REAL_CONVEX_BOUND_GT : forall x : R, forall y : R, forall a : R, forall u : R, forall v : R, ((Rlt a x) /\ ((Rlt a y) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rlt a (Rplus (Rmult u x) (Rmult v y)). +Axiom thm_REAL_CONVEX_BOUND_GE : forall x : R, forall y : R, forall a : R, forall u : R, forall v : R, ((Rle a x) /\ ((Rle a y) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))) -> Rle a (Rplus (Rmult u x) (Rmult v y)). +Axiom thm_REAL_CONVEX_BOUNDS_LE : forall x : R, forall y : R, forall a : R, forall b : R, forall u : R, forall v : R, ((Rle a x) /\ ((Rle x b) /\ ((Rle a y) /\ ((Rle y b) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))))) -> (Rle a (Rplus (Rmult u x) (Rmult v y))) /\ (Rle (Rplus (Rmult u x) (Rmult v y)) b). +Axiom thm_REAL_CONVEX_BOUNDS_LT : forall x : R, forall y : R, forall a : R, forall b : R, forall u : R, forall v : R, ((Rlt a x) /\ ((Rlt x b) /\ ((Rlt a y) /\ ((Rlt y b) /\ ((Rle (R_of_N (NUMERAL 0%N)) u) /\ ((Rle (R_of_N (NUMERAL 0%N)) v) /\ ((Rplus u v) = (R_of_N (NUMERAL (BIT1 0%N)))))))))) -> (Rlt a (Rplus (Rmult u x) (Rmult v y))) /\ (Rlt (Rplus (Rmult u x) (Rmult v y)) b). +Axiom thm_REAL_ARCH_SIMPLE : forall x : R, exists n : N, Rle x (R_of_N n). +Axiom thm_REAL_ARCH_LT : forall x : R, exists n : N, Rlt x (R_of_N n). +Axiom thm_REAL_ARCH : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> forall y : R, exists n : N, Rlt y (Rmult (R_of_N n) x). +Axiom thm_REAL_ARCH_INV : forall e : R, (Rlt (R_of_N (NUMERAL 0%N)) e) = (exists n : N, (~ (n = (NUMERAL 0%N))) /\ ((Rlt (R_of_N (NUMERAL 0%N)) (Rinv (R_of_N n))) /\ (Rlt (Rinv (R_of_N n)) e))). +Axiom thm_REAL_POW_LBOUND : forall x : R, forall n : N, (Rle (R_of_N (NUMERAL 0%N)) x) -> Rle (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rmult (R_of_N n) x)) (real_pow (Rplus (R_of_N (NUMERAL (BIT1 0%N))) x) n). +Axiom thm_REAL_ARCH_POW : forall x : R, forall y : R, (Rlt (R_of_N (NUMERAL (BIT1 0%N))) x) -> exists n : N, Rlt y (real_pow x n). +Axiom thm_REAL_ARCH_POW2 : forall x : R, exists n : N, Rlt x (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n). +Axiom thm_REAL_ARCH_POW_INV : forall x : R, forall y : R, ((Rlt (R_of_N (NUMERAL 0%N)) y) /\ (Rlt x (R_of_N (NUMERAL (BIT1 0%N))))) -> exists n : N, Rlt (real_pow x n) y. +Axiom thm_real_sgn : forall x : R, (real_sgn x) = (@COND R (Rlt (R_of_N (NUMERAL 0%N)) x) (R_of_N (NUMERAL (BIT1 0%N))) (@COND R (Rlt x (R_of_N (NUMERAL 0%N))) (Ropp (R_of_N (NUMERAL (BIT1 0%N)))) (R_of_N (NUMERAL 0%N)))). +Axiom thm_REAL_SGN_0 : (real_sgn (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_REAL_SGN_NEG : forall x : R, (real_sgn (Ropp x)) = (Ropp (real_sgn x)). +Axiom thm_REAL_SGN_ABS : forall x : R, (Rmult (real_sgn x) (Rabs x)) = x. +Axiom thm_REAL_SGN_ABS_ALT : forall x : R, (Rmult (real_sgn x) x) = (Rabs x). +Axiom thm_REAL_EQ_SGN_ABS : forall x : R, forall y : R, (x = y) = (((real_sgn x) = (real_sgn y)) /\ ((Rabs x) = (Rabs y))). +Axiom thm_REAL_ABS_SGN : forall x : R, (Rabs (real_sgn x)) = (real_sgn (Rabs x)). +Axiom thm_REAL_SGN : forall x : R, (real_sgn x) = (Rdiv x (Rabs x)). +Axiom thm_REAL_SGN_MUL : forall x : R, forall y : R, (real_sgn (Rmult x y)) = (Rmult (real_sgn x) (real_sgn y)). +Axiom thm_REAL_SGN_INV : forall x : R, (real_sgn (Rinv x)) = (real_sgn x). +Axiom thm_REAL_SGN_DIV : forall x : R, forall y : R, (real_sgn (Rdiv x y)) = (Rdiv (real_sgn x) (real_sgn y)). +Axiom thm_REAL_SGN_EQ : (forall x : R, ((real_sgn x) = (R_of_N (NUMERAL 0%N))) = (x = (R_of_N (NUMERAL 0%N)))) /\ ((forall x : R, ((real_sgn x) = (R_of_N (NUMERAL (BIT1 0%N)))) = (Rgt x (R_of_N (NUMERAL 0%N)))) /\ (forall x : R, ((real_sgn x) = (Ropp (R_of_N (NUMERAL (BIT1 0%N))))) = (Rlt x (R_of_N (NUMERAL 0%N))))). +Axiom thm_REAL_SGN_CASES : forall x : R, ((real_sgn x) = (R_of_N (NUMERAL 0%N))) \/ (((real_sgn x) = (R_of_N (NUMERAL (BIT1 0%N)))) \/ ((real_sgn x) = (Ropp (R_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_REAL_SGN_INEQS : (forall x : R, (Rle (R_of_N (NUMERAL 0%N)) (real_sgn x)) = (Rle (R_of_N (NUMERAL 0%N)) x)) /\ ((forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) (real_sgn x)) = (Rlt (R_of_N (NUMERAL 0%N)) x)) /\ ((forall x : R, (Rge (R_of_N (NUMERAL 0%N)) (real_sgn x)) = (Rge (R_of_N (NUMERAL 0%N)) x)) /\ ((forall x : R, (Rgt (R_of_N (NUMERAL 0%N)) (real_sgn x)) = (Rgt (R_of_N (NUMERAL 0%N)) x)) /\ ((forall x : R, ((R_of_N (NUMERAL 0%N)) = (real_sgn x)) = ((R_of_N (NUMERAL 0%N)) = x)) /\ ((forall x : R, (Rle (real_sgn x) (R_of_N (NUMERAL 0%N))) = (Rle x (R_of_N (NUMERAL 0%N)))) /\ ((forall x : R, (Rlt (real_sgn x) (R_of_N (NUMERAL 0%N))) = (Rlt x (R_of_N (NUMERAL 0%N)))) /\ ((forall x : R, (Rge (real_sgn x) (R_of_N (NUMERAL 0%N))) = (Rge x (R_of_N (NUMERAL 0%N)))) /\ ((forall x : R, (Rgt (real_sgn x) (R_of_N (NUMERAL 0%N))) = (Rgt x (R_of_N (NUMERAL 0%N)))) /\ (forall x : R, ((real_sgn x) = (R_of_N (NUMERAL 0%N))) = (x = (R_of_N (NUMERAL 0%N)))))))))))). +Axiom thm_REAL_SGN_POW : forall x : R, forall n : N, (real_sgn (real_pow x n)) = (real_pow (real_sgn x) n). +Axiom thm_REAL_SGN_POW_2 : forall x : R, (real_sgn (real_pow x (NUMERAL (BIT0 (BIT1 0%N))))) = (real_sgn (Rabs x)). +Axiom thm_REAL_SGN_REAL_SGN : forall x : R, (real_sgn (real_sgn x)) = (real_sgn x). +Axiom thm_REAL_INV_SGN : forall x : R, (Rinv (real_sgn x)) = (real_sgn x). +Axiom thm_REAL_SGN_EQ_INEQ : forall x : R, forall y : R, ((real_sgn x) = (real_sgn y)) = ((x = y) \/ (Rlt (Rabs (Rminus x y)) (Rmax (Rabs x) (Rabs y)))). +Axiom thm_REAL_SGNS_EQ : forall x : R, forall y : R, ((real_sgn x) = (real_sgn y)) = (((x = (R_of_N (NUMERAL 0%N))) = (y = (R_of_N (NUMERAL 0%N)))) /\ (((Rgt x (R_of_N (NUMERAL 0%N))) = (Rgt y (R_of_N (NUMERAL 0%N)))) /\ ((Rlt x (R_of_N (NUMERAL 0%N))) = (Rlt y (R_of_N (NUMERAL 0%N)))))). +Axiom thm_REAL_SGNS_EQ_ALT : forall x : R, forall y : R, ((real_sgn x) = (real_sgn y)) = (((x = (R_of_N (NUMERAL 0%N))) -> y = (R_of_N (NUMERAL 0%N))) /\ (((Rgt x (R_of_N (NUMERAL 0%N))) -> Rgt y (R_of_N (NUMERAL 0%N))) /\ ((Rlt x (R_of_N (NUMERAL 0%N))) -> Rlt y (R_of_N (NUMERAL 0%N))))). +Axiom thm_REAL_WLOG_LE : forall (P : R -> R -> Prop), ((forall x : R, forall y : R, (P x y) = (P y x)) /\ (forall x : R, forall y : R, (Rle x y) -> P x y)) -> forall x : R, forall y : R, P x y. +Axiom thm_REAL_WLOG_LT : forall (P : R -> R -> Prop), ((forall x : R, P x x) /\ ((forall x : R, forall y : R, (P x y) = (P y x)) /\ (forall x : R, forall y : R, (Rlt x y) -> P x y))) -> forall x : R, forall y : R, P x y. +Axiom thm_REAL_WLOG_LE_3 : forall P : R -> R -> R -> Prop, ((forall x : R, forall y : R, forall z : R, (P x y z) -> (P y x z) /\ (P x z y)) /\ (forall x : R, forall y : R, forall z : R, ((Rle x y) /\ (Rle y z)) -> P x y z)) -> forall x : R, forall y : R, forall z : R, P x y z. +Axiom thm_sqrt : forall x : R, (sqrt x) = (@ε R (fun y : R => ((real_sgn y) = (real_sgn x)) /\ ((real_pow y (NUMERAL (BIT0 (BIT1 0%N)))) = (Rabs x)))). +Axiom thm_SQRT_UNIQUE : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) y) /\ ((real_pow y (NUMERAL (BIT0 (BIT1 0%N)))) = x)) -> (sqrt x) = y. +Axiom thm_POW_2_SQRT : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> (sqrt (real_pow x (NUMERAL (BIT0 (BIT1 0%N))))) = x. +Axiom thm_SQRT_0 : (sqrt (R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SQRT_1 : (sqrt (R_of_N (NUMERAL (BIT1 0%N)))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_POW_2_SQRT_ABS : forall x : R, (sqrt (real_pow x (NUMERAL (BIT0 (BIT1 0%N))))) = (Rabs x). +Axiom thm_SQRT_WORKS_GEN : forall x : R, ((real_sgn (sqrt x)) = (real_sgn x)) /\ ((real_pow (sqrt x) (NUMERAL (BIT0 (BIT1 0%N)))) = (Rabs x)). +Axiom thm_SQRT_UNIQUE_GEN : forall x : R, forall y : R, (((real_sgn y) = (real_sgn x)) /\ ((real_pow y (NUMERAL (BIT0 (BIT1 0%N)))) = (Rabs x))) -> (sqrt x) = y. +Axiom thm_SQRT_NEG : forall x : R, (sqrt (Ropp x)) = (Ropp (sqrt x)). +Axiom thm_REAL_SGN_SQRT : forall x : R, (real_sgn (sqrt x)) = (real_sgn x). +Axiom thm_SQRT_WORKS : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> (Rle (R_of_N (NUMERAL 0%N)) (sqrt x)) /\ ((real_pow (sqrt x) (NUMERAL (BIT0 (BIT1 0%N)))) = x). +Axiom thm_REAL_POS_EQ_SQUARE : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) = (exists y : R, (real_pow y (NUMERAL (BIT0 (BIT1 0%N)))) = x). +Axiom thm_SQRT_POS_LE : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> Rle (R_of_N (NUMERAL 0%N)) (sqrt x). +Axiom thm_SQRT_POW_2 : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> (real_pow (sqrt x) (NUMERAL (BIT0 (BIT1 0%N)))) = x. +Axiom thm_SQRT_POW2 : forall x : R, ((real_pow (sqrt x) (NUMERAL (BIT0 (BIT1 0%N)))) = x) = (Rle (R_of_N (NUMERAL 0%N)) x). +Axiom thm_SQRT_MUL : forall x : R, forall y : R, (sqrt (Rmult x y)) = (Rmult (sqrt x) (sqrt y)). +Axiom thm_SQRT_INV : forall x : R, (sqrt (Rinv x)) = (Rinv (sqrt x)). +Axiom thm_SQRT_DIV : forall x : R, forall y : R, (sqrt (Rdiv x y)) = (Rdiv (sqrt x) (sqrt y)). +Axiom thm_SQRT_LT_0 : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) (sqrt x)) = (Rlt (R_of_N (NUMERAL 0%N)) x). +Axiom thm_SQRT_EQ_0 : forall x : R, ((sqrt x) = (R_of_N (NUMERAL 0%N))) = (x = (R_of_N (NUMERAL 0%N))). +Axiom thm_SQRT_LE_0 : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) (sqrt x)) = (Rle (R_of_N (NUMERAL 0%N)) x). +Axiom thm_REAL_ABS_SQRT : forall x : R, (Rabs (sqrt x)) = (sqrt (Rabs x)). +Axiom thm_SQRT_MONO_LT : forall x : R, forall y : R, (Rlt x y) -> Rlt (sqrt x) (sqrt y). +Axiom thm_SQRT_MONO_LE : forall x : R, forall y : R, (Rle x y) -> Rle (sqrt x) (sqrt y). +Axiom thm_SQRT_MONO_LT_EQ : forall x : R, forall y : R, (Rlt (sqrt x) (sqrt y)) = (Rlt x y). +Axiom thm_SQRT_MONO_LE_EQ : forall x : R, forall y : R, (Rle (sqrt x) (sqrt y)) = (Rle x y). +Axiom thm_SQRT_INJ : forall x : R, forall y : R, ((sqrt x) = (sqrt y)) = (x = y). +Axiom thm_SQRT_EQ_1 : forall x : R, ((sqrt x) = (R_of_N (NUMERAL (BIT1 0%N)))) = (x = (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_SQRT_POS_LT : forall x : R, (Rlt (R_of_N (NUMERAL 0%N)) x) -> Rlt (R_of_N (NUMERAL 0%N)) (sqrt x). +Axiom thm_REAL_LE_LSQRT : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rle x (real_pow y (NUMERAL (BIT0 (BIT1 0%N)))))) -> Rle (sqrt x) y. +Axiom thm_REAL_LE_RSQRT : forall x : R, forall y : R, (Rle (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) y) -> Rle x (sqrt y). +Axiom thm_REAL_LT_LSQRT : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rlt x (real_pow y (NUMERAL (BIT0 (BIT1 0%N)))))) -> Rlt (sqrt x) y. +Axiom thm_REAL_LT_RSQRT : forall x : R, forall y : R, (Rlt (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) y) -> Rlt x (sqrt y). +Axiom thm_SQRT_EVEN_POW2 : forall n : N, (EVEN n) -> (sqrt (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) = (real_pow (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (N.div n (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_REAL_DIV_SQRT : forall x : R, (Rle (R_of_N (NUMERAL 0%N)) x) -> (Rdiv x (sqrt x)) = (sqrt x). +Axiom thm_REAL_RSQRT_LE : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ ((Rle (R_of_N (NUMERAL 0%N)) y) /\ (Rle x (sqrt y)))) -> Rle (real_pow x (NUMERAL (BIT0 (BIT1 0%N)))) y. +Axiom thm_REAL_LSQRT_LE : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle (sqrt x) y)) -> Rle x (real_pow y (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_REAL_SQRT_POW_2 : forall x : R, (real_pow (sqrt x) (NUMERAL (BIT0 (BIT1 0%N)))) = (Rabs x). +Axiom thm_REAL_ABS_LE_SQRT_POS : forall x : R, forall y : R, ((Rle (R_of_N (NUMERAL 0%N)) x) /\ (Rle (R_of_N (NUMERAL 0%N)) y)) -> Rle (Rabs (Rminus (sqrt x) (sqrt y))) (sqrt (Rabs (Rminus x y))). +Axiom thm_REAL_ABS_LE_SQRT : forall x : R, forall y : R, Rle (Rabs (Rminus (sqrt x) (sqrt y))) (sqrt (Rmult (R_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (Rabs (Rminus x y)))). +Axiom thm_DECIMAL : forall x : N, forall y : N, (DECIMAL x y) = (Rdiv (R_of_N x) (R_of_N y)). +Axiom thm_RAT_LEMMA1 : forall (x1 : R) (x2 : R) (y1 : R) (y2 : R), ((~ (y1 = (R_of_N (NUMERAL 0%N)))) /\ (~ (y2 = (R_of_N (NUMERAL 0%N))))) -> (Rplus (Rdiv x1 y1) (Rdiv x2 y2)) = (Rmult (Rplus (Rmult x1 y2) (Rmult x2 y1)) (Rmult (Rinv y1) (Rinv y2))). +Axiom thm_RAT_LEMMA2 : forall (x1 : R) (x2 : R) (y1 : R) (y2 : R), ((Rlt (R_of_N (NUMERAL 0%N)) y1) /\ (Rlt (R_of_N (NUMERAL 0%N)) y2)) -> (Rplus (Rdiv x1 y1) (Rdiv x2 y2)) = (Rmult (Rplus (Rmult x1 y2) (Rmult x2 y1)) (Rmult (Rinv y1) (Rinv y2))). +Axiom thm_RAT_LEMMA3 : forall (x1 : R) (x2 : R) (y1 : R) (y2 : R), ((Rlt (R_of_N (NUMERAL 0%N)) y1) /\ (Rlt (R_of_N (NUMERAL 0%N)) y2)) -> (Rminus (Rdiv x1 y1) (Rdiv x2 y2)) = (Rmult (Rminus (Rmult x1 y2) (Rmult x2 y1)) (Rmult (Rinv y1) (Rinv y2))). +Axiom thm_RAT_LEMMA4 : forall (x1 : R) (y2 : R) (x2 : R) (y1 : R), ((Rlt (R_of_N (NUMERAL 0%N)) y1) /\ (Rlt (R_of_N (NUMERAL 0%N)) y2)) -> (Rle (Rdiv x1 y1) (Rdiv x2 y2)) = (Rle (Rmult x1 y2) (Rmult x2 y1)). +Axiom thm_RAT_LEMMA5 : forall (x1 : R) (y2 : R) (x2 : R) (y1 : R), ((Rlt (R_of_N (NUMERAL 0%N)) y1) /\ (Rlt (R_of_N (NUMERAL 0%N)) y2)) -> ((Rdiv x1 y1) = (Rdiv x2 y2)) = ((Rmult x1 y2) = (Rmult x2 y1)). +Axiom thm_REAL_LE_TRANS_LE : forall x : R, forall y : R, (Rle x y) = (forall z : R, (Rle y z) -> Rle x z). +Axiom thm_REAL_LE_TRANS_LTE : forall x : R, forall y : R, (Rle x y) = (forall z : R, (Rlt y z) -> Rle x z). +Axiom thm_REAL_LE_TRANS_LT : forall x : R, forall y : R, (Rle x y) = (forall z : R, (Rlt y z) -> Rlt x z). +Axiom thm_REAL_SHRINK_RANGE : forall x : R, Rlt (Rabs (Rdiv x (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x)))) (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_SHRINK_LT : forall x : R, forall y : R, (Rlt (Rdiv x (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x))) (Rdiv y (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs y)))) = (Rlt x y). +Axiom thm_REAL_SHRINK_LE : forall x : R, forall y : R, (Rle (Rdiv x (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x))) (Rdiv y (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs y)))) = (Rle x y). +Axiom thm_REAL_SHRINK_EQ : forall x : R, forall y : R, ((Rdiv x (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x))) = (Rdiv y (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs y)))) = (x = y). +Axiom thm_REAL_SHRINK_GALOIS : forall x : R, forall y : R, ((Rdiv x (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x))) = y) = ((Rlt (Rabs y) (R_of_N (NUMERAL (BIT1 0%N)))) /\ ((Rdiv y (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs y))) = x)). +Axiom thm_REAL_GROW_SHRINK : forall x : R, (Rdiv (Rdiv x (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x))) (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs (Rdiv x (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x)))))) = x. +Axiom thm_REAL_SHRINK_GROW_EQ : forall x : R, ((Rdiv (Rdiv x (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x))) (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs (Rdiv x (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x)))))) = x) = (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_REAL_SHRINK_GROW : forall x : R, (Rlt (Rabs x) (R_of_N (NUMERAL (BIT1 0%N)))) -> (Rdiv (Rdiv x (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x))) (Rplus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs (Rdiv x (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (Rabs x)))))) = x. +Axiom thm_integer : forall x : R, (integer x) = (exists n : N, (Rabs x) = (R_of_N n)). +Axiom thm_is_int : forall (x : R), (integer x) = (exists n : N, (x = (R_of_N n)) \/ (x = (Ropp (R_of_N n)))). +Axiom thm_dest_int_rep : forall i : Z, exists n : N, ((IZR i) = (R_of_N n)) \/ ((IZR i) = (Ropp (R_of_N n))). +Axiom thm_INTEGER_REAL_OF_INT : forall x : Z, integer (IZR x). +Axiom thm_int_eq : forall x : Z, forall y : Z, (x = y) = ((IZR x) = (IZR y)). +Axiom thm_int_le : forall x : Z, forall y : Z, (int_le x y) = (Rle (IZR x) (IZR y)). +Axiom thm_int_lt : forall x : Z, forall y : Z, (int_lt x y) = (Rlt (IZR x) (IZR y)). +Axiom thm_int_ge : forall x : Z, forall y : Z, (int_ge x y) = (Rge (IZR x) (IZR y)). +Axiom thm_int_gt : forall x : Z, forall y : Z, (int_gt x y) = (Rgt (IZR x) (IZR y)). +Axiom thm_int_of_num : forall n : N, (Z_of_N n) = (int_of_real (R_of_N n)). +Axiom thm_int_of_num_th : forall n : N, (IZR (Z_of_N n)) = (R_of_N n). +Axiom thm_int_neg : forall i : Z, (int_neg i) = (int_of_real (Ropp (IZR i))). +Axiom thm_int_neg_th : forall x : Z, (IZR (int_neg x)) = (Ropp (IZR x)). +Axiom thm_int_add : forall x : Z, forall y : Z, (int_add x y) = (int_of_real (Rplus (IZR x) (IZR y))). +Axiom thm_int_add_th : forall x : Z, forall y : Z, (IZR (int_add x y)) = (Rplus (IZR x) (IZR y)). +Axiom thm_int_sub : forall x : Z, forall y : Z, (int_sub x y) = (int_of_real (Rminus (IZR x) (IZR y))). +Axiom thm_int_sub_th : forall x : Z, forall y : Z, (IZR (int_sub x y)) = (Rminus (IZR x) (IZR y)). +Axiom thm_int_mul : forall x : Z, forall y : Z, (int_mul x y) = (int_of_real (Rmult (IZR x) (IZR y))). +Axiom thm_int_mul_th : forall x : Z, forall y : Z, (IZR (int_mul x y)) = (Rmult (IZR x) (IZR y)). +Axiom thm_int_abs : forall x : Z, (int_abs x) = (int_of_real (Rabs (IZR x))). +Axiom thm_int_abs_th : forall x : Z, (IZR (int_abs x)) = (Rabs (IZR x)). +Axiom thm_int_sgn : forall x : Z, (int_sgn x) = (int_of_real (real_sgn (IZR x))). +Axiom thm_int_sgn_th : forall x : Z, (IZR (int_sgn x)) = (real_sgn (IZR x)). +Axiom thm_int_max : forall x : Z, forall y : Z, (int_max x y) = (int_of_real (Rmax (IZR x) (IZR y))). +Axiom thm_int_max_th : forall x : Z, forall y : Z, (IZR (int_max x y)) = (Rmax (IZR x) (IZR y)). +Axiom thm_int_min : forall x : Z, forall y : Z, (int_min x y) = (int_of_real (Rmin (IZR x) (IZR y))). +Axiom thm_int_min_th : forall x : Z, forall y : Z, (IZR (int_min x y)) = (Rmin (IZR x) (IZR y)). +Axiom thm_int_pow : forall x : Z, forall n : N, (int_pow x n) = (int_of_real (real_pow (IZR x) n)). +Axiom thm_int_pow_th : forall x : Z, forall n : N, (IZR (int_pow x n)) = (real_pow (IZR x) n). +Axiom thm_REAL_OF_INT_CLAUSES : (forall x : Z, forall y : Z, ((IZR x) = (IZR y)) = (x = y)) /\ ((forall x : Z, forall y : Z, (Rge (IZR x) (IZR y)) = (int_ge x y)) /\ ((forall x : Z, forall y : Z, (Rgt (IZR x) (IZR y)) = (int_gt x y)) /\ ((forall x : Z, forall y : Z, (Rle (IZR x) (IZR y)) = (int_le x y)) /\ ((forall x : Z, forall y : Z, (Rlt (IZR x) (IZR y)) = (int_lt x y)) /\ ((forall x : Z, forall y : Z, (Rmax (IZR x) (IZR y)) = (IZR (int_max x y))) /\ ((forall x : Z, forall y : Z, (Rmin (IZR x) (IZR y)) = (IZR (int_min x y))) /\ ((forall n : N, (R_of_N n) = (IZR (Z_of_N n))) /\ ((forall x : Z, (Ropp (IZR x)) = (IZR (int_neg x))) /\ ((forall x : Z, (Rabs (IZR x)) = (IZR (int_abs x))) /\ ((forall x : Z, forall y : Z, (Rmax (IZR x) (IZR y)) = (IZR (int_max x y))) /\ ((forall x : Z, forall y : Z, (Rmin (IZR x) (IZR y)) = (IZR (int_min x y))) /\ ((forall x : Z, (real_sgn (IZR x)) = (IZR (int_sgn x))) /\ ((forall x : Z, forall y : Z, (Rplus (IZR x) (IZR y)) = (IZR (int_add x y))) /\ ((forall x : Z, forall y : Z, (Rminus (IZR x) (IZR y)) = (IZR (int_sub x y))) /\ ((forall x : Z, forall y : Z, (Rmult (IZR x) (IZR y)) = (IZR (int_mul x y))) /\ (forall x : Z, forall n : N, (real_pow (IZR x) n) = (IZR (int_pow x n)))))))))))))))))). +Axiom thm_INT_IMAGE : forall x : Z, (exists n : N, x = (Z_of_N n)) \/ (exists n : N, x = (int_neg (Z_of_N n))). +Axiom thm_FORALL_INT_CASES : forall P : Z -> Prop, (forall x : Z, P x) = ((forall n : N, P (Z_of_N n)) /\ (forall n : N, P (int_neg (Z_of_N n)))). +Axiom thm_EXISTS_INT_CASES : forall P : Z -> Prop, (exists x : Z, P x) = ((exists n : N, P (Z_of_N n)) \/ (exists n : N, P (int_neg (Z_of_N n)))). +Axiom thm_INT_LT_DISCRETE : forall x : Z, forall y : Z, (int_lt x y) = (int_le (int_add x (Z_of_N (NUMERAL (BIT1 0%N)))) y). +Axiom thm_INT_GT_DISCRETE : forall x : Z, forall y : Z, (int_gt x y) = (int_ge x (int_add y (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_INT_ABS_0 : (int_abs (Z_of_N (NUMERAL 0%N))) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_ABS_1 : (int_abs (Z_of_N (NUMERAL (BIT1 0%N)))) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_INT_ABS_ABS : forall x : Z, (int_abs (int_abs x)) = (int_abs x). +Axiom thm_INT_ABS_BETWEEN : forall x : Z, forall y : Z, forall d : Z, ((int_lt (Z_of_N (NUMERAL 0%N)) d) /\ ((int_lt (int_sub x d) y) /\ (int_lt y (int_add x d)))) = (int_lt (int_abs (int_sub y x)) d). +Axiom thm_INT_ABS_BETWEEN1 : forall x : Z, forall y : Z, forall z : Z, ((int_lt x z) /\ (int_lt (int_abs (int_sub y x)) (int_sub z x))) -> int_lt y z. +Axiom thm_INT_ABS_BETWEEN2 : forall x0 : Z, forall x : Z, forall y0 : Z, forall y : Z, ((int_lt x0 y0) /\ ((int_lt (int_mul (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (int_abs (int_sub x x0))) (int_sub y0 x0)) /\ (int_lt (int_mul (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (int_abs (int_sub y y0))) (int_sub y0 x0)))) -> int_lt x y. +Axiom thm_INT_ABS_BOUND : forall x : Z, forall y : Z, forall d : Z, (int_lt (int_abs (int_sub x y)) d) -> int_lt y (int_add x d). +Axiom thm_INT_ABS_BOUNDS : forall x : Z, forall k : Z, (int_le (int_abs x) k) = ((int_le (int_neg k) x) /\ (int_le x k)). +Axiom thm_INT_ABS_CASES : forall x : Z, (x = (Z_of_N (NUMERAL 0%N))) \/ (int_lt (Z_of_N (NUMERAL 0%N)) (int_abs x)). +Axiom thm_INT_ABS_CIRCLE : forall x : Z, forall y : Z, forall h : Z, (int_lt (int_abs h) (int_sub (int_abs y) (int_abs x))) -> int_lt (int_abs (int_add x h)) (int_abs y). +Axiom thm_INT_ABS_LE : forall x : Z, int_le x (int_abs x). +Axiom thm_INT_ABS_MUL : forall x : Z, forall y : Z, (int_abs (int_mul x y)) = (int_mul (int_abs x) (int_abs y)). +Axiom thm_INT_ABS_NEG : forall x : Z, (int_abs (int_neg x)) = (int_abs x). +Axiom thm_INT_ABS_NUM : forall n : N, (int_abs (Z_of_N n)) = (Z_of_N n). +Axiom thm_INT_ABS_NZ : forall x : Z, (~ (x = (Z_of_N (NUMERAL 0%N)))) = (int_lt (Z_of_N (NUMERAL 0%N)) (int_abs x)). +Axiom thm_INT_ABS_POS : forall x : Z, int_le (Z_of_N (NUMERAL 0%N)) (int_abs x). +Axiom thm_INT_ABS_POW : forall x : Z, forall n : N, (int_abs (int_pow x n)) = (int_pow (int_abs x) n). +Axiom thm_INT_ABS_REFL : forall x : Z, ((int_abs x) = x) = (int_le (Z_of_N (NUMERAL 0%N)) x). +Axiom thm_INT_ABS_SGN : forall x : Z, (int_abs (int_sgn x)) = (int_sgn (int_abs x)). +Axiom thm_INT_ABS_SIGN : forall x : Z, forall y : Z, (int_lt (int_abs (int_sub x y)) y) -> int_lt (Z_of_N (NUMERAL 0%N)) x. +Axiom thm_INT_ABS_SIGN2 : forall x : Z, forall y : Z, (int_lt (int_abs (int_sub x y)) (int_neg y)) -> int_lt x (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_ABS_STILLNZ : forall x : Z, forall y : Z, (int_lt (int_abs (int_sub x y)) (int_abs y)) -> ~ (x = (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_ABS_SUB : forall x : Z, forall y : Z, (int_abs (int_sub x y)) = (int_abs (int_sub y x)). +Axiom thm_INT_ABS_SUB_ABS : forall x : Z, forall y : Z, int_le (int_abs (int_sub (int_abs x) (int_abs y))) (int_abs (int_sub x y)). +Axiom thm_INT_ABS_TRIANGLE : forall x : Z, forall y : Z, int_le (int_abs (int_add x y)) (int_add (int_abs x) (int_abs y)). +Axiom thm_INT_ABS_ZERO : forall x : Z, ((int_abs x) = (Z_of_N (NUMERAL 0%N))) = (x = (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_ADD2_SUB2 : forall a : Z, forall b : Z, forall c : Z, forall d : Z, (int_sub (int_add a b) (int_add c d)) = (int_add (int_sub a c) (int_sub b d)). +Axiom thm_INT_ADD_AC : forall (n : Z) (m : Z) (p : Z), ((int_add m n) = (int_add n m)) /\ (((int_add (int_add m n) p) = (int_add m (int_add n p))) /\ ((int_add m (int_add n p)) = (int_add n (int_add m p)))). +Axiom thm_INT_ADD_ASSOC : forall x : Z, forall y : Z, forall z : Z, (int_add x (int_add y z)) = (int_add (int_add x y) z). +Axiom thm_INT_ADD_LDISTRIB : forall x : Z, forall y : Z, forall z : Z, (int_mul x (int_add y z)) = (int_add (int_mul x y) (int_mul x z)). +Axiom thm_INT_ADD_LID : forall x : Z, (int_add (Z_of_N (NUMERAL 0%N)) x) = x. +Axiom thm_INT_ADD_LINV : forall x : Z, (int_add (int_neg x) x) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_ADD_RDISTRIB : forall x : Z, forall y : Z, forall z : Z, (int_mul (int_add x y) z) = (int_add (int_mul x z) (int_mul y z)). +Axiom thm_INT_ADD_RID : forall x : Z, (int_add x (Z_of_N (NUMERAL 0%N))) = x. +Axiom thm_INT_ADD_RINV : forall x : Z, (int_add x (int_neg x)) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_ADD_SUB : forall x : Z, forall y : Z, (int_sub (int_add x y) x) = y. +Axiom thm_INT_ADD_SUB2 : forall x : Z, forall y : Z, (int_sub x (int_add x y)) = (int_neg y). +Axiom thm_INT_ADD_SYM : forall x : Z, forall y : Z, (int_add x y) = (int_add y x). +Axiom thm_INT_BOUNDS_LE : forall x : Z, forall k : Z, ((int_le (int_neg k) x) /\ (int_le x k)) = (int_le (int_abs x) k). +Axiom thm_INT_BOUNDS_LT : forall x : Z, forall k : Z, ((int_lt (int_neg k) x) /\ (int_lt x k)) = (int_lt (int_abs x) k). +Axiom thm_INT_DIFFSQ : forall x : Z, forall y : Z, (int_mul (int_add x y) (int_sub x y)) = (int_sub (int_mul x x) (int_mul y y)). +Axiom thm_INT_ENTIRE : forall x : Z, forall y : Z, ((int_mul x y) = (Z_of_N (NUMERAL 0%N))) = ((x = (Z_of_N (NUMERAL 0%N))) \/ (y = (Z_of_N (NUMERAL 0%N)))). +Axiom thm_INT_EQ_ADD_LCANCEL : forall x : Z, forall y : Z, forall z : Z, ((int_add x y) = (int_add x z)) = (y = z). +Axiom thm_INT_EQ_ADD_LCANCEL_0 : forall x : Z, forall y : Z, ((int_add x y) = x) = (y = (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_EQ_ADD_RCANCEL : forall x : Z, forall y : Z, forall z : Z, ((int_add x z) = (int_add y z)) = (x = y). +Axiom thm_INT_EQ_ADD_RCANCEL_0 : forall x : Z, forall y : Z, ((int_add x y) = y) = (x = (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_EQ_IMP_LE : forall x : Z, forall y : Z, (x = y) -> int_le x y. +Axiom thm_INT_EQ_LCANCEL_IMP : forall x : Z, forall y : Z, forall z : Z, ((~ (z = (Z_of_N (NUMERAL 0%N)))) /\ ((int_mul z x) = (int_mul z y))) -> x = y. +Axiom thm_INT_EQ_MUL_LCANCEL : forall x : Z, forall y : Z, forall z : Z, ((int_mul x y) = (int_mul x z)) = ((x = (Z_of_N (NUMERAL 0%N))) \/ (y = z)). +Axiom thm_INT_EQ_MUL_RCANCEL : forall x : Z, forall y : Z, forall z : Z, ((int_mul x z) = (int_mul y z)) = ((x = y) \/ (z = (Z_of_N (NUMERAL 0%N)))). +Axiom thm_INT_EQ_NEG2 : forall x : Z, forall y : Z, ((int_neg x) = (int_neg y)) = (x = y). +Axiom thm_INT_EQ_RCANCEL_IMP : forall x : Z, forall y : Z, forall z : Z, ((~ (z = (Z_of_N (NUMERAL 0%N)))) /\ ((int_mul x z) = (int_mul y z))) -> x = y. +Axiom thm_INT_EQ_SGN_ABS : forall x : Z, forall y : Z, (x = y) = (((int_sgn x) = (int_sgn y)) /\ ((int_abs x) = (int_abs y))). +Axiom thm_INT_EQ_SQUARE_ABS : forall x : Z, forall y : Z, ((int_abs x) = (int_abs y)) = ((int_pow x (NUMERAL (BIT0 (BIT1 0%N)))) = (int_pow y (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_INT_EQ_SUB_LADD : forall x : Z, forall y : Z, forall z : Z, (x = (int_sub y z)) = ((int_add x z) = y). +Axiom thm_INT_EQ_SUB_RADD : forall x : Z, forall y : Z, forall z : Z, ((int_sub x y) = z) = (x = (int_add z y)). +Axiom thm_INT_EVENPOW_ABS : forall x : Z, forall n : N, (EVEN n) -> (int_pow (int_abs x) n) = (int_pow x n). +Axiom thm_INT_LET_ADD : forall x : Z, forall y : Z, ((int_le (Z_of_N (NUMERAL 0%N)) x) /\ (int_lt (Z_of_N (NUMERAL 0%N)) y)) -> int_lt (Z_of_N (NUMERAL 0%N)) (int_add x y). +Axiom thm_INT_LET_ADD2 : forall w : Z, forall x : Z, forall y : Z, forall z : Z, ((int_le w x) /\ (int_lt y z)) -> int_lt (int_add w y) (int_add x z). +Axiom thm_INT_LET_ANTISYM : forall x : Z, forall y : Z, ~ ((int_le x y) /\ (int_lt y x)). +Axiom thm_INT_LET_TOTAL : forall x : Z, forall y : Z, (int_le x y) \/ (int_lt y x). +Axiom thm_INT_LET_TRANS : forall x : Z, forall y : Z, forall z : Z, ((int_le x y) /\ (int_lt y z)) -> int_lt x z. +Axiom thm_INT_LE_01 : int_le (Z_of_N (NUMERAL 0%N)) (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_INT_LE_ADD : forall x : Z, forall y : Z, ((int_le (Z_of_N (NUMERAL 0%N)) x) /\ (int_le (Z_of_N (NUMERAL 0%N)) y)) -> int_le (Z_of_N (NUMERAL 0%N)) (int_add x y). +Axiom thm_INT_LE_ADD2 : forall w : Z, forall x : Z, forall y : Z, forall z : Z, ((int_le w x) /\ (int_le y z)) -> int_le (int_add w y) (int_add x z). +Axiom thm_INT_LE_ADDL : forall x : Z, forall y : Z, (int_le y (int_add x y)) = (int_le (Z_of_N (NUMERAL 0%N)) x). +Axiom thm_INT_LE_ADDR : forall x : Z, forall y : Z, (int_le x (int_add x y)) = (int_le (Z_of_N (NUMERAL 0%N)) y). +Axiom thm_INT_LE_ANTISYM : forall x : Z, forall y : Z, ((int_le x y) /\ (int_le y x)) = (x = y). +Axiom thm_INT_LE_DOUBLE : forall x : Z, (int_le (Z_of_N (NUMERAL 0%N)) (int_add x x)) = (int_le (Z_of_N (NUMERAL 0%N)) x). +Axiom thm_INT_LE_LADD : forall x : Z, forall y : Z, forall z : Z, (int_le (int_add x y) (int_add x z)) = (int_le y z). +Axiom thm_INT_LE_LADD_IMP : forall x : Z, forall y : Z, forall z : Z, (int_le y z) -> int_le (int_add x y) (int_add x z). +Axiom thm_INT_LE_LCANCEL_IMP : forall x : Z, forall y : Z, forall z : Z, ((int_lt (Z_of_N (NUMERAL 0%N)) x) /\ (int_le (int_mul x y) (int_mul x z))) -> int_le y z. +Axiom thm_INT_LE_LMUL : forall x : Z, forall y : Z, forall z : Z, ((int_le (Z_of_N (NUMERAL 0%N)) x) /\ (int_le y z)) -> int_le (int_mul x y) (int_mul x z). +Axiom thm_INT_LE_LMUL_EQ : forall x : Z, forall y : Z, forall z : Z, (int_lt (Z_of_N (NUMERAL 0%N)) z) -> (int_le (int_mul z x) (int_mul z y)) = (int_le x y). +Axiom thm_INT_LE_LNEG : forall x : Z, forall y : Z, (int_le (int_neg x) y) = (int_le (Z_of_N (NUMERAL 0%N)) (int_add x y)). +Axiom thm_INT_LE_LT : forall x : Z, forall y : Z, (int_le x y) = ((int_lt x y) \/ (x = y)). +Axiom thm_INT_LE_MAX : forall x : Z, forall y : Z, forall z : Z, (int_le z (int_max x y)) = ((int_le z x) \/ (int_le z y)). +Axiom thm_INT_LE_MIN : forall x : Z, forall y : Z, forall z : Z, (int_le z (int_min x y)) = ((int_le z x) /\ (int_le z y)). +Axiom thm_INT_LE_MUL : forall x : Z, forall y : Z, ((int_le (Z_of_N (NUMERAL 0%N)) x) /\ (int_le (Z_of_N (NUMERAL 0%N)) y)) -> int_le (Z_of_N (NUMERAL 0%N)) (int_mul x y). +Axiom thm_INT_LE_MUL2 : forall w : Z, forall x : Z, forall y : Z, forall z : Z, ((int_le (Z_of_N (NUMERAL 0%N)) w) /\ ((int_le w x) /\ ((int_le (Z_of_N (NUMERAL 0%N)) y) /\ (int_le y z)))) -> int_le (int_mul w y) (int_mul x z). +Axiom thm_INT_LE_MUL_EQ : (forall x : Z, forall y : Z, (int_lt (Z_of_N (NUMERAL 0%N)) x) -> (int_le (Z_of_N (NUMERAL 0%N)) (int_mul x y)) = (int_le (Z_of_N (NUMERAL 0%N)) y)) /\ (forall x : Z, forall y : Z, (int_lt (Z_of_N (NUMERAL 0%N)) y) -> (int_le (Z_of_N (NUMERAL 0%N)) (int_mul x y)) = (int_le (Z_of_N (NUMERAL 0%N)) x)). +Axiom thm_INT_LE_NEG2 : forall x : Z, forall y : Z, (int_le (int_neg x) (int_neg y)) = (int_le y x). +Axiom thm_INT_LE_NEGL : forall x : Z, (int_le (int_neg x) x) = (int_le (Z_of_N (NUMERAL 0%N)) x). +Axiom thm_INT_LE_NEGR : forall x : Z, (int_le x (int_neg x)) = (int_le x (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_LE_NEGTOTAL : forall x : Z, (int_le (Z_of_N (NUMERAL 0%N)) x) \/ (int_le (Z_of_N (NUMERAL 0%N)) (int_neg x)). +Axiom thm_INT_LE_POW2 : forall n : N, int_le (Z_of_N (NUMERAL (BIT1 0%N))) (int_pow (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n). +Axiom thm_INT_LE_POW_2 : forall x : Z, int_le (Z_of_N (NUMERAL 0%N)) (int_pow x (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_INT_LE_RADD : forall x : Z, forall y : Z, forall z : Z, (int_le (int_add x z) (int_add y z)) = (int_le x y). +Axiom thm_INT_LE_RCANCEL_IMP : forall x : Z, forall y : Z, forall z : Z, ((int_lt (Z_of_N (NUMERAL 0%N)) z) /\ (int_le (int_mul x z) (int_mul y z))) -> int_le x y. +Axiom thm_INT_LE_REFL : forall x : Z, int_le x x. +Axiom thm_INT_LE_RMUL : forall x : Z, forall y : Z, forall z : Z, ((int_le x y) /\ (int_le (Z_of_N (NUMERAL 0%N)) z)) -> int_le (int_mul x z) (int_mul y z). +Axiom thm_INT_LE_RMUL_EQ : forall x : Z, forall y : Z, forall z : Z, (int_lt (Z_of_N (NUMERAL 0%N)) z) -> (int_le (int_mul x z) (int_mul y z)) = (int_le x y). +Axiom thm_INT_LE_RNEG : forall x : Z, forall y : Z, (int_le x (int_neg y)) = (int_le (int_add x y) (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_LE_SQUARE : forall x : Z, int_le (Z_of_N (NUMERAL 0%N)) (int_mul x x). +Axiom thm_INT_LE_SQUARE_ABS : forall x : Z, forall y : Z, (int_le (int_abs x) (int_abs y)) = (int_le (int_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (int_pow y (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_INT_LE_SUB_LADD : forall x : Z, forall y : Z, forall z : Z, (int_le x (int_sub y z)) = (int_le (int_add x z) y). +Axiom thm_INT_LE_SUB_RADD : forall x : Z, forall y : Z, forall z : Z, (int_le (int_sub x y) z) = (int_le x (int_add z y)). +Axiom thm_INT_LE_TOTAL : forall x : Z, forall y : Z, (int_le x y) \/ (int_le y x). +Axiom thm_INT_LE_TRANS : forall x : Z, forall y : Z, forall z : Z, ((int_le x y) /\ (int_le y z)) -> int_le x z. +Axiom thm_INT_LNEG_UNIQ : forall x : Z, forall y : Z, ((int_add x y) = (Z_of_N (NUMERAL 0%N))) = (x = (int_neg y)). +Axiom thm_INT_LTE_ADD : forall x : Z, forall y : Z, ((int_lt (Z_of_N (NUMERAL 0%N)) x) /\ (int_le (Z_of_N (NUMERAL 0%N)) y)) -> int_lt (Z_of_N (NUMERAL 0%N)) (int_add x y). +Axiom thm_INT_LTE_ADD2 : forall w : Z, forall x : Z, forall y : Z, forall z : Z, ((int_lt w x) /\ (int_le y z)) -> int_lt (int_add w y) (int_add x z). +Axiom thm_INT_LTE_ANTISYM : forall x : Z, forall y : Z, ~ ((int_lt x y) /\ (int_le y x)). +Axiom thm_INT_LTE_TOTAL : forall x : Z, forall y : Z, (int_lt x y) \/ (int_le y x). +Axiom thm_INT_LTE_TRANS : forall x : Z, forall y : Z, forall z : Z, ((int_lt x y) /\ (int_le y z)) -> int_lt x z. +Axiom thm_INT_LT_01 : int_lt (Z_of_N (NUMERAL 0%N)) (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_INT_LT_ADD : forall x : Z, forall y : Z, ((int_lt (Z_of_N (NUMERAL 0%N)) x) /\ (int_lt (Z_of_N (NUMERAL 0%N)) y)) -> int_lt (Z_of_N (NUMERAL 0%N)) (int_add x y). +Axiom thm_INT_LT_ADD1 : forall x : Z, forall y : Z, (int_le x y) -> int_lt x (int_add y (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_INT_LT_ADD2 : forall w : Z, forall x : Z, forall y : Z, forall z : Z, ((int_lt w x) /\ (int_lt y z)) -> int_lt (int_add w y) (int_add x z). +Axiom thm_INT_LT_ADDL : forall x : Z, forall y : Z, (int_lt y (int_add x y)) = (int_lt (Z_of_N (NUMERAL 0%N)) x). +Axiom thm_INT_LT_ADDNEG : forall x : Z, forall y : Z, forall z : Z, (int_lt y (int_add x (int_neg z))) = (int_lt (int_add y z) x). +Axiom thm_INT_LT_ADDNEG2 : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_add x (int_neg y)) z) = (int_lt x (int_add z y)). +Axiom thm_INT_LT_ADDR : forall x : Z, forall y : Z, (int_lt x (int_add x y)) = (int_lt (Z_of_N (NUMERAL 0%N)) y). +Axiom thm_INT_LT_ADD_SUB : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_add x y) z) = (int_lt x (int_sub z y)). +Axiom thm_INT_LT_ANTISYM : forall x : Z, forall y : Z, ~ ((int_lt x y) /\ (int_lt y x)). +Axiom thm_INT_LT_GT : forall x : Z, forall y : Z, (int_lt x y) -> ~ (int_lt y x). +Axiom thm_INT_LT_IMP_LE : forall x : Z, forall y : Z, (int_lt x y) -> int_le x y. +Axiom thm_INT_LT_IMP_NE : forall x : Z, forall y : Z, (int_lt x y) -> ~ (x = y). +Axiom thm_INT_LT_LADD : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_add x y) (int_add x z)) = (int_lt y z). +Axiom thm_INT_LT_LADD_IMP : forall x : Z, forall y : Z, forall z : Z, (int_lt y z) -> int_lt (int_add x y) (int_add x z). +Axiom thm_INT_LT_LCANCEL_IMP : forall x : Z, forall y : Z, forall z : Z, ((int_lt (Z_of_N (NUMERAL 0%N)) x) /\ (int_lt (int_mul x y) (int_mul x z))) -> int_lt y z. +Axiom thm_INT_LT_LE : forall x : Z, forall y : Z, (int_lt x y) = ((int_le x y) /\ (~ (x = y))). +Axiom thm_INT_LT_LMUL : forall x : Z, forall y : Z, forall z : Z, ((int_lt (Z_of_N (NUMERAL 0%N)) x) /\ (int_lt y z)) -> int_lt (int_mul x y) (int_mul x z). +Axiom thm_INT_LT_LMUL_EQ : forall x : Z, forall y : Z, forall z : Z, (int_lt (Z_of_N (NUMERAL 0%N)) z) -> (int_lt (int_mul z x) (int_mul z y)) = (int_lt x y). +Axiom thm_INT_LT_LNEG : forall x : Z, forall y : Z, (int_lt (int_neg x) y) = (int_lt (Z_of_N (NUMERAL 0%N)) (int_add x y)). +Axiom thm_INT_LT_MAX : forall x : Z, forall y : Z, forall z : Z, (int_lt z (int_max x y)) = ((int_lt z x) \/ (int_lt z y)). +Axiom thm_INT_LT_MIN : forall x : Z, forall y : Z, forall z : Z, (int_lt z (int_min x y)) = ((int_lt z x) /\ (int_lt z y)). +Axiom thm_INT_LT_MUL : forall x : Z, forall y : Z, ((int_lt (Z_of_N (NUMERAL 0%N)) x) /\ (int_lt (Z_of_N (NUMERAL 0%N)) y)) -> int_lt (Z_of_N (NUMERAL 0%N)) (int_mul x y). +Axiom thm_INT_LT_MUL2 : forall w : Z, forall x : Z, forall y : Z, forall z : Z, ((int_le (Z_of_N (NUMERAL 0%N)) w) /\ ((int_lt w x) /\ ((int_le (Z_of_N (NUMERAL 0%N)) y) /\ (int_lt y z)))) -> int_lt (int_mul w y) (int_mul x z). +Axiom thm_INT_LT_MUL_EQ : (forall x : Z, forall y : Z, (int_lt (Z_of_N (NUMERAL 0%N)) x) -> (int_lt (Z_of_N (NUMERAL 0%N)) (int_mul x y)) = (int_lt (Z_of_N (NUMERAL 0%N)) y)) /\ (forall x : Z, forall y : Z, (int_lt (Z_of_N (NUMERAL 0%N)) y) -> (int_lt (Z_of_N (NUMERAL 0%N)) (int_mul x y)) = (int_lt (Z_of_N (NUMERAL 0%N)) x)). +Axiom thm_INT_LT_NEG2 : forall x : Z, forall y : Z, (int_lt (int_neg x) (int_neg y)) = (int_lt y x). +Axiom thm_INT_LT_NEGTOTAL : forall x : Z, (x = (Z_of_N (NUMERAL 0%N))) \/ ((int_lt (Z_of_N (NUMERAL 0%N)) x) \/ (int_lt (Z_of_N (NUMERAL 0%N)) (int_neg x))). +Axiom thm_INT_LT_POW2 : forall n : N, int_lt (Z_of_N (NUMERAL 0%N)) (int_pow (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n). +Axiom thm_INT_LT_POW_2 : forall x : Z, (int_lt (Z_of_N (NUMERAL 0%N)) (int_pow x (NUMERAL (BIT0 (BIT1 0%N))))) = (~ (x = (Z_of_N (NUMERAL 0%N)))). +Axiom thm_INT_LT_RADD : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_add x z) (int_add y z)) = (int_lt x y). +Axiom thm_INT_LT_RCANCEL_IMP : forall x : Z, forall y : Z, forall z : Z, ((int_lt (Z_of_N (NUMERAL 0%N)) z) /\ (int_lt (int_mul x z) (int_mul y z))) -> int_lt x y. +Axiom thm_INT_LT_REFL : forall x : Z, ~ (int_lt x x). +Axiom thm_INT_LT_RMUL : forall x : Z, forall y : Z, forall z : Z, ((int_lt x y) /\ (int_lt (Z_of_N (NUMERAL 0%N)) z)) -> int_lt (int_mul x z) (int_mul y z). +Axiom thm_INT_LT_RMUL_EQ : forall x : Z, forall y : Z, forall z : Z, (int_lt (Z_of_N (NUMERAL 0%N)) z) -> (int_lt (int_mul x z) (int_mul y z)) = (int_lt x y). +Axiom thm_INT_LT_RNEG : forall x : Z, forall y : Z, (int_lt x (int_neg y)) = (int_lt (int_add x y) (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_LT_SQUARE : forall x : Z, (int_lt (Z_of_N (NUMERAL 0%N)) (int_mul x x)) = (~ (x = (Z_of_N (NUMERAL 0%N)))). +Axiom thm_INT_LT_SQUARE_ABS : forall x : Z, forall y : Z, (int_lt (int_abs x) (int_abs y)) = (int_lt (int_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (int_pow y (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_INT_LT_SUB_LADD : forall x : Z, forall y : Z, forall z : Z, (int_lt x (int_sub y z)) = (int_lt (int_add x z) y). +Axiom thm_INT_LT_SUB_RADD : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_sub x y) z) = (int_lt x (int_add z y)). +Axiom thm_INT_LT_TOTAL : forall x : Z, forall y : Z, (x = y) \/ ((int_lt x y) \/ (int_lt y x)). +Axiom thm_INT_LT_TRANS : forall x : Z, forall y : Z, forall z : Z, ((int_lt x y) /\ (int_lt y z)) -> int_lt x z. +Axiom thm_INT_MAX_ACI : forall (z : Z) (x : Z) (y : Z), ((int_max x y) = (int_max y x)) /\ (((int_max (int_max x y) z) = (int_max x (int_max y z))) /\ (((int_max x (int_max y z)) = (int_max y (int_max x z))) /\ (((int_max x x) = x) /\ ((int_max x (int_max x y)) = (int_max x y))))). +Axiom thm_INT_MAX_ASSOC : forall x : Z, forall y : Z, forall z : Z, (int_max x (int_max y z)) = (int_max (int_max x y) z). +Axiom thm_INT_MAX_LE : forall x : Z, forall y : Z, forall z : Z, (int_le (int_max x y) z) = ((int_le x z) /\ (int_le y z)). +Axiom thm_INT_MAX_LT : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_max x y) z) = ((int_lt x z) /\ (int_lt y z)). +Axiom thm_INT_MAX_MAX : forall x : Z, forall y : Z, (int_le x (int_max x y)) /\ (int_le y (int_max x y)). +Axiom thm_INT_MAX_MIN : forall x : Z, forall y : Z, (int_max x y) = (int_neg (int_min (int_neg x) (int_neg y))). +Axiom thm_INT_MAX_SYM : forall x : Z, forall y : Z, (int_max x y) = (int_max y x). +Axiom thm_INT_MIN_ACI : forall (z : Z) (x : Z) (y : Z), ((int_min x y) = (int_min y x)) /\ (((int_min (int_min x y) z) = (int_min x (int_min y z))) /\ (((int_min x (int_min y z)) = (int_min y (int_min x z))) /\ (((int_min x x) = x) /\ ((int_min x (int_min x y)) = (int_min x y))))). +Axiom thm_INT_MIN_ASSOC : forall x : Z, forall y : Z, forall z : Z, (int_min x (int_min y z)) = (int_min (int_min x y) z). +Axiom thm_INT_MIN_LE : forall x : Z, forall y : Z, forall z : Z, (int_le (int_min x y) z) = ((int_le x z) \/ (int_le y z)). +Axiom thm_INT_MIN_LT : forall x : Z, forall y : Z, forall z : Z, (int_lt (int_min x y) z) = ((int_lt x z) \/ (int_lt y z)). +Axiom thm_INT_MIN_MAX : forall x : Z, forall y : Z, (int_min x y) = (int_neg (int_max (int_neg x) (int_neg y))). +Axiom thm_INT_MIN_MIN : forall x : Z, forall y : Z, (int_le (int_min x y) x) /\ (int_le (int_min x y) y). +Axiom thm_INT_MIN_SYM : forall x : Z, forall y : Z, (int_min x y) = (int_min y x). +Axiom thm_INT_MUL_2 : forall x : Z, (int_mul (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x) = (int_add x x). +Axiom thm_INT_MUL_AC : forall (n : Z) (m : Z) (p : Z), ((int_mul m n) = (int_mul n m)) /\ (((int_mul (int_mul m n) p) = (int_mul m (int_mul n p))) /\ ((int_mul m (int_mul n p)) = (int_mul n (int_mul m p)))). +Axiom thm_INT_MUL_ASSOC : forall x : Z, forall y : Z, forall z : Z, (int_mul x (int_mul y z)) = (int_mul (int_mul x y) z). +Axiom thm_INT_MUL_LID : forall x : Z, (int_mul (Z_of_N (NUMERAL (BIT1 0%N))) x) = x. +Axiom thm_INT_MUL_LNEG : forall x : Z, forall y : Z, (int_mul (int_neg x) y) = (int_neg (int_mul x y)). +Axiom thm_INT_MUL_LZERO : forall x : Z, (int_mul (Z_of_N (NUMERAL 0%N)) x) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_MUL_POS_LE : forall x : Z, forall y : Z, (int_le (Z_of_N (NUMERAL 0%N)) (int_mul x y)) = ((x = (Z_of_N (NUMERAL 0%N))) \/ ((y = (Z_of_N (NUMERAL 0%N))) \/ (((int_lt (Z_of_N (NUMERAL 0%N)) x) /\ (int_lt (Z_of_N (NUMERAL 0%N)) y)) \/ ((int_lt x (Z_of_N (NUMERAL 0%N))) /\ (int_lt y (Z_of_N (NUMERAL 0%N))))))). +Axiom thm_INT_MUL_POS_LT : forall x : Z, forall y : Z, (int_lt (Z_of_N (NUMERAL 0%N)) (int_mul x y)) = (((int_lt (Z_of_N (NUMERAL 0%N)) x) /\ (int_lt (Z_of_N (NUMERAL 0%N)) y)) \/ ((int_lt x (Z_of_N (NUMERAL 0%N))) /\ (int_lt y (Z_of_N (NUMERAL 0%N))))). +Axiom thm_INT_MUL_RID : forall x : Z, (int_mul x (Z_of_N (NUMERAL (BIT1 0%N)))) = x. +Axiom thm_INT_MUL_RNEG : forall x : Z, forall y : Z, (int_mul x (int_neg y)) = (int_neg (int_mul x y)). +Axiom thm_INT_MUL_RZERO : forall x : Z, (int_mul x (Z_of_N (NUMERAL 0%N))) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_MUL_SYM : forall x : Z, forall y : Z, (int_mul x y) = (int_mul y x). +Axiom thm_INT_NEG_0 : (int_neg (Z_of_N (NUMERAL 0%N))) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_NEG_ADD : forall x : Z, forall y : Z, (int_neg (int_add x y)) = (int_add (int_neg x) (int_neg y)). +Axiom thm_INT_NEG_EQ : forall x : Z, forall y : Z, ((int_neg x) = y) = (x = (int_neg y)). +Axiom thm_INT_NEG_EQ_0 : forall x : Z, ((int_neg x) = (Z_of_N (NUMERAL 0%N))) = (x = (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_NEG_GE0 : forall x : Z, (int_le (Z_of_N (NUMERAL 0%N)) (int_neg x)) = (int_le x (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_NEG_GT0 : forall x : Z, (int_lt (Z_of_N (NUMERAL 0%N)) (int_neg x)) = (int_lt x (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_NEG_LE0 : forall x : Z, (int_le (int_neg x) (Z_of_N (NUMERAL 0%N))) = (int_le (Z_of_N (NUMERAL 0%N)) x). +Axiom thm_INT_NEG_LMUL : forall x : Z, forall y : Z, (int_neg (int_mul x y)) = (int_mul (int_neg x) y). +Axiom thm_INT_NEG_LT0 : forall x : Z, (int_lt (int_neg x) (Z_of_N (NUMERAL 0%N))) = (int_lt (Z_of_N (NUMERAL 0%N)) x). +Axiom thm_INT_NEG_MINUS1 : forall x : Z, (int_neg x) = (int_mul (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) x). +Axiom thm_INT_NEG_MUL2 : forall x : Z, forall y : Z, (int_mul (int_neg x) (int_neg y)) = (int_mul x y). +Axiom thm_INT_NEG_NEG : forall x : Z, (int_neg (int_neg x)) = x. +Axiom thm_INT_NEG_RMUL : forall x : Z, forall y : Z, (int_neg (int_mul x y)) = (int_mul x (int_neg y)). +Axiom thm_INT_NEG_SUB : forall x : Z, forall y : Z, (int_neg (int_sub x y)) = (int_sub y x). +Axiom thm_INT_NOT_EQ : forall x : Z, forall y : Z, (~ (x = y)) = ((int_lt x y) \/ (int_lt y x)). +Axiom thm_INT_NOT_LE : forall x : Z, forall y : Z, (~ (int_le x y)) = (int_lt y x). +Axiom thm_INT_NOT_LT : forall x : Z, forall y : Z, (~ (int_lt x y)) = (int_le y x). +Axiom thm_INT_OF_NUM_ADD : forall m : N, forall n : N, (int_add (Z_of_N m) (Z_of_N n)) = (Z_of_N (N.add m n)). +Axiom thm_INT_OF_NUM_CLAUSES : (forall m : N, forall n : N, ((Z_of_N m) = (Z_of_N n)) = (m = n)) /\ ((forall m : N, forall n : N, (int_ge (Z_of_N m) (Z_of_N n)) = (N.ge m n)) /\ ((forall m : N, forall n : N, (int_gt (Z_of_N m) (Z_of_N n)) = (N.gt m n)) /\ ((forall m : N, forall n : N, (int_le (Z_of_N m) (Z_of_N n)) = (N.le m n)) /\ ((forall m : N, forall n : N, (int_lt (Z_of_N m) (Z_of_N n)) = (N.lt m n)) /\ ((forall m : N, forall n : N, (int_max (Z_of_N m) (Z_of_N n)) = (Z_of_N (N.max m n))) /\ ((forall m : N, forall n : N, (int_min (Z_of_N m) (Z_of_N n)) = (Z_of_N (N.min m n))) /\ ((forall m : N, forall n : N, (int_add (Z_of_N m) (Z_of_N n)) = (Z_of_N (N.add m n))) /\ ((forall m : N, forall n : N, (int_mul (Z_of_N m) (Z_of_N n)) = (Z_of_N (N.mul m n))) /\ (forall x : N, forall n : N, (int_pow (Z_of_N x) n) = (Z_of_N (N.pow x n))))))))))). +Axiom thm_INT_OF_NUM_EQ : forall m : N, forall n : N, ((Z_of_N m) = (Z_of_N n)) = (m = n). +Axiom thm_INT_OF_NUM_GE : forall m : N, forall n : N, (int_ge (Z_of_N m) (Z_of_N n)) = (N.ge m n). +Axiom thm_INT_OF_NUM_GT : forall m : N, forall n : N, (int_gt (Z_of_N m) (Z_of_N n)) = (N.gt m n). +Axiom thm_INT_OF_NUM_LE : forall m : N, forall n : N, (int_le (Z_of_N m) (Z_of_N n)) = (N.le m n). +Axiom thm_INT_OF_NUM_LT : forall m : N, forall n : N, (int_lt (Z_of_N m) (Z_of_N n)) = (N.lt m n). +Axiom thm_INT_OF_NUM_MAX : forall m : N, forall n : N, (int_max (Z_of_N m) (Z_of_N n)) = (Z_of_N (N.max m n)). +Axiom thm_INT_OF_NUM_MIN : forall m : N, forall n : N, (int_min (Z_of_N m) (Z_of_N n)) = (Z_of_N (N.min m n)). +Axiom thm_INT_OF_NUM_MOD : forall m : N, forall n : N, (Z_of_N (N.modulo m n)) = (int_sub (Z_of_N m) (int_mul (Z_of_N (N.div m n)) (Z_of_N n))). +Axiom thm_INT_OF_NUM_MUL : forall m : N, forall n : N, (int_mul (Z_of_N m) (Z_of_N n)) = (Z_of_N (N.mul m n)). +Axiom thm_INT_OF_NUM_POW : forall x : N, forall n : N, (int_pow (Z_of_N x) n) = (Z_of_N (N.pow x n)). +Axiom thm_INT_OF_NUM_SUB : forall m : N, forall n : N, (N.le m n) -> (int_sub (Z_of_N n) (Z_of_N m)) = (Z_of_N (N.sub n m)). +Axiom thm_INT_OF_NUM_SUB_CASES : forall m : N, forall n : N, (int_sub (Z_of_N m) (Z_of_N n)) = (@COND Z (N.le n m) (Z_of_N (N.sub m n)) (int_neg (Z_of_N (N.sub n m)))). +Axiom thm_INT_OF_NUM_SUC : forall n : N, (int_add (Z_of_N n) (Z_of_N (NUMERAL (BIT1 0%N)))) = (Z_of_N (N.succ n)). +Axiom thm_INT_POS : forall n : N, int_le (Z_of_N (NUMERAL 0%N)) (Z_of_N n). +Axiom thm_INT_POS_EQ_SQUARE : forall x : Z, (int_le (Z_of_N (NUMERAL 0%N)) x) = (exists y : R, (real_pow y (NUMERAL (BIT0 (BIT1 0%N)))) = (IZR x)). +Axiom thm_INT_POS_NZ : forall x : Z, (int_lt (Z_of_N (NUMERAL 0%N)) x) -> ~ (x = (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_POW2_ABS : forall x : Z, (int_pow (int_abs x) (NUMERAL (BIT0 (BIT1 0%N)))) = (int_pow x (NUMERAL (BIT0 (BIT1 0%N)))). +Axiom thm_INT_POW_1 : forall x : Z, (int_pow x (NUMERAL (BIT1 0%N))) = x. +Axiom thm_INT_POW_1_LE : forall n : N, forall x : Z, ((int_le (Z_of_N (NUMERAL 0%N)) x) /\ (int_le x (Z_of_N (NUMERAL (BIT1 0%N))))) -> int_le (int_pow x n) (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_INT_POW_1_LT : forall n : N, forall x : Z, ((~ (n = (NUMERAL 0%N))) /\ ((int_le (Z_of_N (NUMERAL 0%N)) x) /\ (int_lt x (Z_of_N (NUMERAL (BIT1 0%N)))))) -> int_lt (int_pow x n) (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_INT_POW_2 : forall x : Z, (int_pow x (NUMERAL (BIT0 (BIT1 0%N)))) = (int_mul x x). +Axiom thm_INT_POW_ADD : forall x : Z, forall m : N, forall n : N, (int_pow x (N.add m n)) = (int_mul (int_pow x m) (int_pow x n)). +Axiom thm_INT_POW_EQ : forall n : N, forall x : Z, forall y : Z, ((~ (n = (NUMERAL 0%N))) /\ ((int_le (Z_of_N (NUMERAL 0%N)) x) /\ ((int_le (Z_of_N (NUMERAL 0%N)) y) /\ ((int_pow x n) = (int_pow y n))))) -> x = y. +Axiom thm_INT_POW_EQ_0 : forall x : Z, forall n : N, ((int_pow x n) = (Z_of_N (NUMERAL 0%N))) = ((x = (Z_of_N (NUMERAL 0%N))) /\ (~ (n = (NUMERAL 0%N)))). +Axiom thm_INT_POW_EQ_1 : forall x : Z, forall n : N, ((int_pow x n) = (Z_of_N (NUMERAL (BIT1 0%N)))) = ((((int_abs x) = (Z_of_N (NUMERAL (BIT1 0%N)))) /\ ((int_lt x (Z_of_N (NUMERAL 0%N))) -> EVEN n)) \/ (n = (NUMERAL 0%N))). +Axiom thm_INT_POW_EQ_1_IMP : forall x : Z, forall n : N, ((~ (n = (NUMERAL 0%N))) /\ ((int_pow x n) = (Z_of_N (NUMERAL (BIT1 0%N))))) -> (int_abs x) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_INT_POW_EQ_ABS : forall n : N, forall x : Z, forall y : Z, ((~ (n = (NUMERAL 0%N))) /\ ((int_pow x n) = (int_pow y n))) -> (int_abs x) = (int_abs y). +Axiom thm_INT_POW_EQ_EQ : forall n : N, forall x : Z, forall y : Z, ((int_pow x n) = (int_pow y n)) = (@COND Prop (EVEN n) ((n = (NUMERAL 0%N)) \/ ((int_abs x) = (int_abs y))) (x = y)). +Axiom thm_INT_POW_EQ_ODD : forall n : N, forall x : Z, forall y : Z, ((ODD n) /\ ((int_pow x n) = (int_pow y n))) -> x = y. +Axiom thm_INT_POW_EQ_ODD_EQ : forall n : N, forall x : Z, forall y : Z, (ODD n) -> ((int_pow x n) = (int_pow y n)) = (x = y). +Axiom thm_INT_POW_LBOUND : forall x : Z, forall n : N, (int_le (Z_of_N (NUMERAL 0%N)) x) -> int_le (int_add (Z_of_N (NUMERAL (BIT1 0%N))) (int_mul (Z_of_N n) x)) (int_pow (int_add (Z_of_N (NUMERAL (BIT1 0%N))) x) n). +Axiom thm_INT_POW_LE : forall x : Z, forall n : N, (int_le (Z_of_N (NUMERAL 0%N)) x) -> int_le (Z_of_N (NUMERAL 0%N)) (int_pow x n). +Axiom thm_INT_POW_LE2 : forall n : N, forall x : Z, forall y : Z, ((int_le (Z_of_N (NUMERAL 0%N)) x) /\ (int_le x y)) -> int_le (int_pow x n) (int_pow y n). +Axiom thm_INT_POW_LE2_ODD : forall n : N, forall x : Z, forall y : Z, ((int_le x y) /\ (ODD n)) -> int_le (int_pow x n) (int_pow y n). +Axiom thm_INT_POW_LE2_ODD_EQ : forall n : N, forall x : Z, forall y : Z, (ODD n) -> (int_le (int_pow x n) (int_pow y n)) = (int_le x y). +Axiom thm_INT_POW_LE2_REV : forall n : N, forall x : Z, forall y : Z, ((~ (n = (NUMERAL 0%N))) /\ ((int_le (Z_of_N (NUMERAL 0%N)) y) /\ (int_le (int_pow x n) (int_pow y n)))) -> int_le x y. +Axiom thm_INT_POW_LE_1 : forall n : N, forall x : Z, (int_le (Z_of_N (NUMERAL (BIT1 0%N))) x) -> int_le (Z_of_N (NUMERAL (BIT1 0%N))) (int_pow x n). +Axiom thm_INT_POW_LT : forall x : Z, forall n : N, (int_lt (Z_of_N (NUMERAL 0%N)) x) -> int_lt (Z_of_N (NUMERAL 0%N)) (int_pow x n). +Axiom thm_INT_POW_LT2 : forall n : N, forall x : Z, forall y : Z, ((~ (n = (NUMERAL 0%N))) /\ ((int_le (Z_of_N (NUMERAL 0%N)) x) /\ (int_lt x y))) -> int_lt (int_pow x n) (int_pow y n). +Axiom thm_INT_POW_LT2_ODD : forall n : N, forall x : Z, forall y : Z, ((int_lt x y) /\ (ODD n)) -> int_lt (int_pow x n) (int_pow y n). +Axiom thm_INT_POW_LT2_ODD_EQ : forall n : N, forall x : Z, forall y : Z, (ODD n) -> (int_lt (int_pow x n) (int_pow y n)) = (int_lt x y). +Axiom thm_INT_POW_LT2_REV : forall n : N, forall x : Z, forall y : Z, ((int_le (Z_of_N (NUMERAL 0%N)) y) /\ (int_lt (int_pow x n) (int_pow y n))) -> int_lt x y. +Axiom thm_INT_POW_LT_1 : forall n : N, forall x : Z, ((~ (n = (NUMERAL 0%N))) /\ (int_lt (Z_of_N (NUMERAL (BIT1 0%N))) x)) -> int_lt (Z_of_N (NUMERAL (BIT1 0%N))) (int_pow x n). +Axiom thm_INT_POW_MONO : forall m : N, forall n : N, forall x : Z, ((int_le (Z_of_N (NUMERAL (BIT1 0%N))) x) /\ (N.le m n)) -> int_le (int_pow x m) (int_pow x n). +Axiom thm_INT_POW_MONO_LT : forall m : N, forall n : N, forall x : Z, ((int_lt (Z_of_N (NUMERAL (BIT1 0%N))) x) /\ (N.lt m n)) -> int_lt (int_pow x m) (int_pow x n). +Axiom thm_INT_POW_MUL : forall x : Z, forall y : Z, forall n : N, (int_pow (int_mul x y) n) = (int_mul (int_pow x n) (int_pow y n)). +Axiom thm_INT_POW_NEG : forall x : Z, forall n : N, (int_pow (int_neg x) n) = (@COND Z (EVEN n) (int_pow x n) (int_neg (int_pow x n))). +Axiom thm_INT_POW_NZ : forall x : Z, forall n : N, (~ (x = (Z_of_N (NUMERAL 0%N)))) -> ~ ((int_pow x n) = (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_POW_ONE : forall n : N, (int_pow (Z_of_N (NUMERAL (BIT1 0%N))) n) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_INT_POW_POW : forall x : Z, forall m : N, forall n : N, (int_pow (int_pow x m) n) = (int_pow x (N.mul m n)). +Axiom thm_INT_POW_ZERO : forall n : N, (int_pow (Z_of_N (NUMERAL 0%N)) n) = (@COND Z (n = (NUMERAL 0%N)) (Z_of_N (NUMERAL (BIT1 0%N))) (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_RNEG_UNIQ : forall x : Z, forall y : Z, ((int_add x y) = (Z_of_N (NUMERAL 0%N))) = (y = (int_neg x)). +Axiom thm_INT_SGN : forall x : Z, (int_sgn x) = (@COND Z (int_lt (Z_of_N (NUMERAL 0%N)) x) (Z_of_N (NUMERAL (BIT1 0%N))) (@COND Z (int_lt x (Z_of_N (NUMERAL 0%N))) (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))) (Z_of_N (NUMERAL 0%N)))). +Axiom thm_INT_SGNS_EQ : forall x : Z, forall y : Z, ((int_sgn x) = (int_sgn y)) = (((x = (Z_of_N (NUMERAL 0%N))) = (y = (Z_of_N (NUMERAL 0%N)))) /\ (((int_gt x (Z_of_N (NUMERAL 0%N))) = (int_gt y (Z_of_N (NUMERAL 0%N)))) /\ ((int_lt x (Z_of_N (NUMERAL 0%N))) = (int_lt y (Z_of_N (NUMERAL 0%N)))))). +Axiom thm_INT_SGNS_EQ_ALT : forall x : Z, forall y : Z, ((int_sgn x) = (int_sgn y)) = (((x = (Z_of_N (NUMERAL 0%N))) -> y = (Z_of_N (NUMERAL 0%N))) /\ (((int_gt x (Z_of_N (NUMERAL 0%N))) -> int_gt y (Z_of_N (NUMERAL 0%N))) /\ ((int_lt x (Z_of_N (NUMERAL 0%N))) -> int_lt y (Z_of_N (NUMERAL 0%N))))). +Axiom thm_INT_SGN_0 : (int_sgn (Z_of_N (NUMERAL 0%N))) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_SGN_ABS : forall x : Z, (int_mul (int_sgn x) (int_abs x)) = x. +Axiom thm_INT_SGN_ABS_ALT : forall x : Z, (int_mul (int_sgn x) x) = (int_abs x). +Axiom thm_INT_SGN_CASES : forall x : Z, ((int_sgn x) = (Z_of_N (NUMERAL 0%N))) \/ (((int_sgn x) = (Z_of_N (NUMERAL (BIT1 0%N)))) \/ ((int_sgn x) = (int_neg (Z_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_INT_SGN_EQ : (forall x : Z, ((int_sgn x) = (Z_of_N (NUMERAL 0%N))) = (x = (Z_of_N (NUMERAL 0%N)))) /\ ((forall x : Z, ((int_sgn x) = (Z_of_N (NUMERAL (BIT1 0%N)))) = (int_gt x (Z_of_N (NUMERAL 0%N)))) /\ (forall x : Z, ((int_sgn x) = (int_neg (Z_of_N (NUMERAL (BIT1 0%N))))) = (int_lt x (Z_of_N (NUMERAL 0%N))))). +Axiom thm_INT_SGN_EQ_INEQ : forall x : Z, forall y : Z, ((int_sgn x) = (int_sgn y)) = ((x = y) \/ (int_lt (int_abs (int_sub x y)) (int_max (int_abs x) (int_abs y)))). +Axiom thm_INT_SGN_INEQS : (forall x : Z, (int_le (Z_of_N (NUMERAL 0%N)) (int_sgn x)) = (int_le (Z_of_N (NUMERAL 0%N)) x)) /\ ((forall x : Z, (int_lt (Z_of_N (NUMERAL 0%N)) (int_sgn x)) = (int_lt (Z_of_N (NUMERAL 0%N)) x)) /\ ((forall x : Z, (int_ge (Z_of_N (NUMERAL 0%N)) (int_sgn x)) = (int_ge (Z_of_N (NUMERAL 0%N)) x)) /\ ((forall x : Z, (int_gt (Z_of_N (NUMERAL 0%N)) (int_sgn x)) = (int_gt (Z_of_N (NUMERAL 0%N)) x)) /\ ((forall x : Z, ((Z_of_N (NUMERAL 0%N)) = (int_sgn x)) = ((Z_of_N (NUMERAL 0%N)) = x)) /\ ((forall x : Z, (int_le (int_sgn x) (Z_of_N (NUMERAL 0%N))) = (int_le x (Z_of_N (NUMERAL 0%N)))) /\ ((forall x : Z, (int_lt (int_sgn x) (Z_of_N (NUMERAL 0%N))) = (int_lt x (Z_of_N (NUMERAL 0%N)))) /\ ((forall x : Z, (int_ge (int_sgn x) (Z_of_N (NUMERAL 0%N))) = (int_ge x (Z_of_N (NUMERAL 0%N)))) /\ ((forall x : Z, (int_gt (int_sgn x) (Z_of_N (NUMERAL 0%N))) = (int_gt x (Z_of_N (NUMERAL 0%N)))) /\ (forall x : Z, ((int_sgn x) = (Z_of_N (NUMERAL 0%N))) = (x = (Z_of_N (NUMERAL 0%N)))))))))))). +Axiom thm_INT_SGN_INT_SGN : forall x : Z, (int_sgn (int_sgn x)) = (int_sgn x). +Axiom thm_INT_SGN_MUL : forall x : Z, forall y : Z, (int_sgn (int_mul x y)) = (int_mul (int_sgn x) (int_sgn y)). +Axiom thm_INT_SGN_NEG : forall x : Z, (int_sgn (int_neg x)) = (int_neg (int_sgn x)). +Axiom thm_INT_SGN_POW : forall x : Z, forall n : N, (int_sgn (int_pow x n)) = (int_pow (int_sgn x) n). +Axiom thm_INT_SGN_POW_2 : forall x : Z, (int_sgn (int_pow x (NUMERAL (BIT0 (BIT1 0%N))))) = (int_sgn (int_abs x)). +Axiom thm_INT_SOS_EQ_0 : forall x : Z, forall y : Z, ((int_add (int_pow x (NUMERAL (BIT0 (BIT1 0%N)))) (int_pow y (NUMERAL (BIT0 (BIT1 0%N))))) = (Z_of_N (NUMERAL 0%N))) = ((x = (Z_of_N (NUMERAL 0%N))) /\ (y = (Z_of_N (NUMERAL 0%N)))). +Axiom thm_INT_SUB_0 : forall x : Z, forall y : Z, ((int_sub x y) = (Z_of_N (NUMERAL 0%N))) = (x = y). +Axiom thm_INT_SUB_ABS : forall x : Z, forall y : Z, int_le (int_sub (int_abs x) (int_abs y)) (int_abs (int_sub x y)). +Axiom thm_INT_SUB_ADD : forall x : Z, forall y : Z, (int_add (int_sub x y) y) = x. +Axiom thm_INT_SUB_ADD2 : forall x : Z, forall y : Z, (int_add y (int_sub x y)) = x. +Axiom thm_INT_SUB_LDISTRIB : forall x : Z, forall y : Z, forall z : Z, (int_mul x (int_sub y z)) = (int_sub (int_mul x y) (int_mul x z)). +Axiom thm_INT_SUB_LE : forall x : Z, forall y : Z, (int_le (Z_of_N (NUMERAL 0%N)) (int_sub x y)) = (int_le y x). +Axiom thm_INT_SUB_LNEG : forall x : Z, forall y : Z, (int_sub (int_neg x) y) = (int_neg (int_add x y)). +Axiom thm_INT_SUB_LT : forall x : Z, forall y : Z, (int_lt (Z_of_N (NUMERAL 0%N)) (int_sub x y)) = (int_lt y x). +Axiom thm_INT_SUB_LZERO : forall x : Z, (int_sub (Z_of_N (NUMERAL 0%N)) x) = (int_neg x). +Axiom thm_INT_SUB_NEG2 : forall x : Z, forall y : Z, (int_sub (int_neg x) (int_neg y)) = (int_sub y x). +Axiom thm_INT_SUB_RDISTRIB : forall x : Z, forall y : Z, forall z : Z, (int_mul (int_sub x y) z) = (int_sub (int_mul x z) (int_mul y z)). +Axiom thm_INT_SUB_REFL : forall x : Z, (int_sub x x) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_SUB_RNEG : forall x : Z, forall y : Z, (int_sub x (int_neg y)) = (int_add x y). +Axiom thm_INT_SUB_RZERO : forall x : Z, (int_sub x (Z_of_N (NUMERAL 0%N))) = x. +Axiom thm_INT_SUB_SUB : forall x : Z, forall y : Z, (int_sub (int_sub x y) x) = (int_neg y). +Axiom thm_INT_SUB_SUB2 : forall x : Z, forall y : Z, (int_sub x (int_sub x y)) = y. +Axiom thm_INT_SUB_TRIANGLE : forall a : Z, forall b : Z, forall c : Z, (int_add (int_sub a b) (int_sub b c)) = (int_sub a c). +Axiom thm_INT_WLOG_LE : forall (P : Z -> Z -> Prop), ((forall x : Z, forall y : Z, (P x y) = (P y x)) /\ (forall x : Z, forall y : Z, (int_le x y) -> P x y)) -> forall x : Z, forall y : Z, P x y. +Axiom thm_INT_WLOG_LT : forall (P : Z -> Z -> Prop), ((forall x : Z, P x x) /\ ((forall x : Z, forall y : Z, (P x y) = (P y x)) /\ (forall x : Z, forall y : Z, (int_lt x y) -> P x y))) -> forall x : Z, forall y : Z, P x y. +Axiom thm_INT_WLOG_LE_3 : forall P : Z -> Z -> Z -> Prop, ((forall x : Z, forall y : Z, forall z : Z, (P x y z) -> (P y x z) /\ (P x z y)) /\ (forall x : Z, forall y : Z, forall z : Z, ((int_le x y) /\ (int_le y z)) -> P x y z)) -> forall x : Z, forall y : Z, forall z : Z, P x y z. +Axiom thm_INT_FORALL_POS : forall P : Z -> Prop, (forall n : N, P (Z_of_N n)) = (forall i : Z, (int_le (Z_of_N (NUMERAL 0%N)) i) -> P i). +Axiom thm_INT_EXISTS_POS : forall P : Z -> Prop, (exists n : N, P (Z_of_N n)) = (exists i : Z, (int_le (Z_of_N (NUMERAL 0%N)) i) /\ (P i)). +Axiom thm_INT_FORALL_ABS : forall P : Z -> Prop, (forall n : N, P (Z_of_N n)) = (forall x : Z, P (int_abs x)). +Axiom thm_INT_EXISTS_ABS : forall P : Z -> Prop, (exists n : N, P (Z_of_N n)) = (exists x : Z, P (int_abs x)). +Axiom thm_INT_POW : forall (x : Z), ((int_pow x (NUMERAL 0%N)) = (Z_of_N (NUMERAL (BIT1 0%N)))) /\ (forall n : N, (int_pow x (N.succ n)) = (int_mul x (int_pow x n))). +Axiom thm_INT_ABS : forall x : Z, (int_abs x) = (@COND Z (int_le (Z_of_N (NUMERAL 0%N)) x) x (int_neg x)). +Axiom thm_INT_GE : forall x : Z, forall y : Z, (int_ge x y) = (int_le y x). +Axiom thm_INT_GT : forall x : Z, forall y : Z, (int_gt x y) = (int_lt y x). +Axiom thm_INT_LT : forall x : Z, forall y : Z, (int_lt x y) = (~ (int_le y x)). +Axiom thm_INT_SUB : forall x : Z, forall y : Z, (int_sub x y) = (int_add x (int_neg y)). +Axiom thm_INT_MAX : forall x : Z, forall y : Z, (int_max x y) = (@COND Z (int_le x y) y x). +Axiom thm_INT_MIN : forall x : Z, forall y : Z, (int_min x y) = (@COND Z (int_le x y) x y). +Axiom thm_INT_OF_NUM_EXISTS : forall x : Z, (exists n : N, x = (Z_of_N n)) = (int_le (Z_of_N (NUMERAL 0%N)) x). +Axiom thm_INT_LE_DISCRETE : forall x : Z, forall y : Z, (int_le x y) = (int_lt x (int_add y (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_INT_LE_TRANS_LE : forall x : Z, forall y : Z, (int_le x y) = (forall z : Z, (int_le y z) -> int_le x z). +Axiom thm_INT_LE_TRANS_LT : forall x : Z, forall y : Z, (int_le x y) = (forall z : Z, (int_lt y z) -> int_lt x z). +Axiom thm_INT_MUL_EQ_1 : forall x : Z, forall y : Z, ((int_mul x y) = (Z_of_N (NUMERAL (BIT1 0%N)))) = (((x = (Z_of_N (NUMERAL (BIT1 0%N)))) /\ (y = (Z_of_N (NUMERAL (BIT1 0%N))))) \/ ((x = (int_neg (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (y = (int_neg (Z_of_N (NUMERAL (BIT1 0%N))))))). +Axiom thm_INT_ABS_MUL_1 : forall x : Z, forall y : Z, ((int_abs (int_mul x y)) = (Z_of_N (NUMERAL (BIT1 0%N)))) = (((int_abs x) = (Z_of_N (NUMERAL (BIT1 0%N)))) /\ ((int_abs y) = (Z_of_N (NUMERAL (BIT1 0%N))))). +Axiom thm_INT_WOP : forall (P : Z -> Prop), (exists x : Z, (int_le (Z_of_N (NUMERAL 0%N)) x) /\ (P x)) = (exists x : Z, (int_le (Z_of_N (NUMERAL 0%N)) x) /\ ((P x) /\ (forall y : Z, ((int_le (Z_of_N (NUMERAL 0%N)) y) /\ (P y)) -> int_le x y))). +Axiom thm_INT_ARCH : forall x : Z, forall d : Z, (~ (d = (Z_of_N (NUMERAL 0%N)))) -> exists c : Z, int_lt x (int_mul c d). +Axiom thm_INT_DIVMOD_EXIST_0 : forall m : Z, forall n : Z, exists q : Z, exists r : Z, @COND Prop (n = (Z_of_N (NUMERAL 0%N))) ((q = (Z_of_N (NUMERAL 0%N))) /\ (r = m)) ((int_le (Z_of_N (NUMERAL 0%N)) r) /\ ((int_lt r (int_abs n)) /\ (m = (int_add (int_mul q n) r)))). +Axiom thm_INT_DIVISION : forall m : Z, forall n : Z, (~ (n = (Z_of_N (NUMERAL 0%N)))) -> (m = (int_add (int_mul (div m n) n) (rem m n))) /\ ((int_le (Z_of_N (NUMERAL 0%N)) (rem m n)) /\ (int_lt (rem m n) (int_abs n))). +Axiom thm_INT_DIVISION_SIMP : forall m : Z, forall n : Z, (int_add (int_mul (div m n) n) (rem m n)) = m. +Axiom thm_INT_REM_POS : forall a : Z, forall b : Z, (~ (b = (Z_of_N (NUMERAL 0%N)))) -> int_le (Z_of_N (NUMERAL 0%N)) (rem a b). +Axiom thm_INT_DIV_0 : forall m : Z, (div m (Z_of_N (NUMERAL 0%N))) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_REM_0 : forall m : Z, (rem m (Z_of_N (NUMERAL 0%N))) = m. +Axiom thm_INT_REM_POS_EQ : forall m : Z, forall n : Z, (int_le (Z_of_N (NUMERAL 0%N)) (rem m n)) = ((n = (Z_of_N (NUMERAL 0%N))) -> int_le (Z_of_N (NUMERAL 0%N)) m). +Axiom thm_INT_REM_DIV : forall m : Z, forall n : Z, (rem m n) = (int_sub m (int_mul (div m n) n)). +Axiom thm_INT_LT_REM : forall x : Z, forall n : Z, (int_lt (Z_of_N (NUMERAL 0%N)) n) -> int_lt (rem x n) n. +Axiom thm_INT_LT_REM_EQ : forall m : Z, forall n : Z, (int_lt (rem m n) n) = ((int_lt (Z_of_N (NUMERAL 0%N)) n) \/ ((n = (Z_of_N (NUMERAL 0%N))) /\ (int_lt m (Z_of_N (NUMERAL 0%N))))). +Axiom thm_cong : forall {A : Type'}, forall rel : A -> A -> Prop, forall x : A, forall y : A, (@eq2 A x y rel) = (rel x y). +Axiom thm_real_mod : forall x : R, forall y : R, forall n : R, (real_mod n x y) = (exists q : R, (integer q) /\ ((Rminus x y) = (Rmult q n))). +Axiom thm_int_divides : forall b : Z, forall a : Z, (int_divides a b) = (exists x : Z, b = (int_mul a x)). +Axiom thm_INT_DIVIDES_LE : forall x : Z, forall y : Z, (int_divides x y) -> (int_le (int_abs x) (int_abs y)) \/ (y = (Z_of_N (NUMERAL 0%N))). +Axiom thm_int_mod : forall n : Z, forall x : Z, forall y : Z, (int_mod n x y) = (int_divides n (int_sub x y)). +Axiom thm_int_congruent : forall x : Z, forall y : Z, forall n : Z, (@eq2 Z x y (int_mod n)) = (exists d : Z, (int_sub x y) = (int_mul n d)). +Axiom thm_INT_CONG_IMP_EQ : forall x : Z, forall y : Z, forall n : Z, ((int_lt (int_abs (int_sub x y)) n) /\ (@eq2 Z x y (int_mod n))) -> x = y. +Axiom thm_int_coprime : forall a : Z, forall b : Z, (int_coprime (@pair Z Z a b)) = (exists x : Z, exists y : Z, (int_add (int_mul a x) (int_mul b y)) = (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_INT_DIVMOD_UNIQ : forall m : Z, forall n : Z, forall q : Z, forall r : Z, ((m = (int_add (int_mul q n) r)) /\ ((int_le (Z_of_N (NUMERAL 0%N)) r) /\ (int_lt r (int_abs n)))) -> ((div m n) = q) /\ ((rem m n) = r). +Axiom thm_INT_DIV_UNIQ : forall m : Z, forall n : Z, forall q : Z, forall r : Z, ((m = (int_add (int_mul q n) r)) /\ ((int_le (Z_of_N (NUMERAL 0%N)) r) /\ (int_lt r (int_abs n)))) -> (div m n) = q. +Axiom thm_INT_REM_UNIQ : forall m : Z, forall n : Z, forall q : Z, forall r : Z, ((m = (int_add (int_mul q n) r)) /\ ((int_le (Z_of_N (NUMERAL 0%N)) r) /\ (int_lt r (int_abs n)))) -> (rem m n) = r. +Axiom thm_INT_REM_LT : forall m : Z, forall n : Z, (((~ (n = (Z_of_N (NUMERAL 0%N)))) -> int_le (Z_of_N (NUMERAL 0%N)) m) /\ (int_lt m n)) -> (rem m n) = m. +Axiom thm_INT_DIV_LT : forall m : Z, forall n : Z, (((~ (n = (Z_of_N (NUMERAL 0%N)))) -> int_le (Z_of_N (NUMERAL 0%N)) m) /\ (int_lt m n)) -> (div m n) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_REM_RNEG : forall m : Z, forall n : Z, (rem m (int_neg n)) = (rem m n). +Axiom thm_INT_DIV_RNEG : forall m : Z, forall n : Z, (div m (int_neg n)) = (int_neg (div m n)). +Axiom thm_INT_REM_RABS : forall x : Z, forall y : Z, (rem x (int_abs y)) = (rem x y). +Axiom thm_INT_REM_REM : forall m : Z, forall n : Z, (rem (rem m n) n) = (rem m n). +Axiom thm_INT_REM_EQ : forall m : Z, forall n : Z, forall p : Z, ((rem m p) = (rem n p)) = (@eq2 Z m n (int_mod p)). +Axiom thm_INT_REM_ZERO : forall n : Z, (rem (Z_of_N (NUMERAL 0%N)) n) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_DIV_ZERO : forall n : Z, (div (Z_of_N (NUMERAL 0%N)) n) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_REM_EQ_0 : forall m : Z, forall n : Z, ((rem m n) = (Z_of_N (NUMERAL 0%N))) = (int_divides n m). +Axiom thm_INT_MUL_DIV_EQ : (forall m : Z, forall n : Z, ((int_mul n (div m n)) = m) = (int_divides n m)) /\ (forall m : Z, forall n : Z, ((int_mul (div m n) n) = m) = (int_divides n m)). +Axiom thm_INT_CONG_LREM : forall x : Z, forall y : Z, forall n : Z, (@eq2 Z (rem x n) y (int_mod n)) = (@eq2 Z x y (int_mod n)). +Axiom thm_INT_CONG_RREM : forall x : Z, forall y : Z, forall n : Z, (@eq2 Z x (rem y n) (int_mod n)) = (@eq2 Z x y (int_mod n)). +Axiom thm_INT_REM_MOD_SELF : forall m : Z, forall n : Z, @eq2 Z (rem m n) m (int_mod n). +Axiom thm_INT_REM_REM_MUL : (forall m : Z, forall n : Z, forall p : Z, (rem (rem m (int_mul n p)) n) = (rem m n)) /\ (forall m : Z, forall n : Z, forall p : Z, (rem (rem m (int_mul n p)) p) = (rem m p)). +Axiom thm_INT_CONG_SOLVE_BOUNDS : forall a : Z, forall n : Z, (~ (n = (Z_of_N (NUMERAL 0%N)))) -> exists x : Z, (int_le (Z_of_N (NUMERAL 0%N)) x) /\ ((int_lt x (int_abs n)) /\ (@eq2 Z x a (int_mod n))). +Axiom thm_INT_NEG_REM : forall n : Z, forall p : Z, (rem (int_neg (rem n p)) p) = (rem (int_neg n) p). +Axiom thm_INT_ADD_REM : forall m : Z, forall n : Z, forall p : Z, (rem (int_add (rem m p) (rem n p)) p) = (rem (int_add m n) p). +Axiom thm_INT_SUB_REM : forall m : Z, forall n : Z, forall p : Z, (rem (int_sub (rem m p) (rem n p)) p) = (rem (int_sub m n) p). +Axiom thm_INT_MUL_REM : forall m : Z, forall n : Z, forall p : Z, (rem (int_mul (rem m p) (rem n p)) p) = (rem (int_mul m n) p). +Axiom thm_INT_POW_REM : forall m : Z, forall n : N, forall p : Z, (rem (int_pow (rem m p) n) p) = (rem (int_pow m n) p). +Axiom thm_INT_OF_NUM_REM : forall m : N, forall n : N, (rem (Z_of_N m) (Z_of_N n)) = (Z_of_N (N.modulo m n)). +Axiom thm_INT_OF_NUM_DIV : forall m : N, forall n : N, (div (Z_of_N m) (Z_of_N n)) = (Z_of_N (N.div m n)). +Axiom thm_INT_REM_REFL : forall n : Z, (rem n n) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_DIV_REFL : forall n : Z, (div n n) = (@COND Z (n = (Z_of_N (NUMERAL 0%N))) (Z_of_N (NUMERAL 0%N)) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_INT_REM_LNEG : forall m : Z, forall n : Z, (rem (int_neg m) n) = (@COND Z ((rem m n) = (Z_of_N (NUMERAL 0%N))) (Z_of_N (NUMERAL 0%N)) (int_sub (int_abs n) (rem m n))). +Axiom thm_INT_DIV_LNEG : forall m : Z, forall n : Z, (div (int_neg m) n) = (@COND Z ((rem m n) = (Z_of_N (NUMERAL 0%N))) (int_neg (div m n)) (int_sub (int_neg (div m n)) (int_sgn n))). +Axiom thm_INT_DIV_NEG2 : forall m : Z, forall n : Z, (div (int_neg m) (int_neg n)) = (@COND Z ((rem m n) = (Z_of_N (NUMERAL 0%N))) (div m n) (int_add (div m n) (int_sgn n))). +Axiom thm_INT_REM_NEG2 : forall m : Z, forall n : Z, (rem (int_neg m) (int_neg n)) = (@COND Z ((rem m n) = (Z_of_N (NUMERAL 0%N))) (Z_of_N (NUMERAL 0%N)) (int_sub (int_abs n) (rem m n))). +Axiom thm_INT_REM_1 : forall n : Z, (rem n (Z_of_N (NUMERAL (BIT1 0%N)))) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_INT_DIV_1 : forall n : Z, (div n (Z_of_N (NUMERAL (BIT1 0%N)))) = n. +Axiom thm_INT_REM_MUL : (forall m : Z, forall n : Z, (rem (int_mul m n) n) = (Z_of_N (NUMERAL 0%N))) /\ (forall m : Z, forall n : Z, (rem (int_mul m n) m) = (Z_of_N (NUMERAL 0%N))). +Axiom thm_INT_DIV_MUL : (forall m : Z, forall n : Z, (~ (n = (Z_of_N (NUMERAL 0%N)))) -> (div (int_mul m n) n) = m) /\ (forall m : Z, forall n : Z, (~ (m = (Z_of_N (NUMERAL 0%N)))) -> (div (int_mul m n) m) = n). +Axiom thm_INT_DIV_LT_EQ : forall a : Z, forall b : Z, forall c : Z, (int_lt (Z_of_N (NUMERAL 0%N)) a) -> (int_lt (div b a) c) = (int_lt b (int_mul a c)). +Axiom thm_INT_LE_DIV_EQ : forall a : Z, forall b : Z, forall c : Z, (int_lt (Z_of_N (NUMERAL 0%N)) a) -> (int_le c (div b a)) = (int_le (int_mul a c) b). +Axiom thm_INT_DIV_LE_EQ : forall a : Z, forall b : Z, forall c : Z, (int_lt (Z_of_N (NUMERAL 0%N)) a) -> (int_le (div b a) c) = (int_lt b (int_mul a (int_add c (Z_of_N (NUMERAL (BIT1 0%N)))))). +Axiom thm_INT_LT_DIV_EQ : forall a : Z, forall b : Z, forall c : Z, (int_lt (Z_of_N (NUMERAL 0%N)) a) -> (int_lt c (div b a)) = (int_le (int_mul a (int_add c (Z_of_N (NUMERAL (BIT1 0%N))))) b). +Axiom thm_INT_DIV_LE : forall m : Z, forall n : Z, int_le (int_abs (div m n)) (int_abs m). +Axiom thm_INT_REM_MUL_REM : forall m : Z, forall n : Z, forall p : Z, (int_le (Z_of_N (NUMERAL 0%N)) n) -> (rem m (int_mul n p)) = (int_add (int_mul n (rem (div m n) p)) (rem m n)). +Axiom thm_INT_DIV_DIV : forall m : Z, forall n : Z, forall p : Z, (int_le (Z_of_N (NUMERAL 0%N)) n) -> (div (div m n) p) = (div m (int_mul n p)). +Axiom thm_INT_DIV_EQ_0 : forall m : Z, forall n : Z, ((div m n) = (Z_of_N (NUMERAL 0%N))) = ((n = (Z_of_N (NUMERAL 0%N))) \/ ((int_le (Z_of_N (NUMERAL 0%N)) m) /\ (int_lt m (int_abs n)))). +Axiom thm_INT_REM_EQ_SELF : forall m : Z, forall n : Z, ((rem m n) = m) = ((n = (Z_of_N (NUMERAL 0%N))) \/ ((int_le (Z_of_N (NUMERAL 0%N)) m) /\ (int_lt m (int_abs n)))). +Axiom thm_INT_REM_UNIQUE : forall m : Z, forall n : Z, forall p : Z, ((rem m n) = p) = ((((n = (Z_of_N (NUMERAL 0%N))) /\ (m = p)) \/ ((int_le (Z_of_N (NUMERAL 0%N)) p) /\ (int_lt p (int_abs n)))) /\ (@eq2 Z m p (int_mod n))). +Axiom thm_INT_DIV_REM : forall m : Z, forall n : Z, forall p : Z, (int_le (Z_of_N (NUMERAL 0%N)) n) -> (rem (div m n) p) = (div (rem m (int_mul n p)) n). +Axiom thm_INT_REM_REM_LE : forall m : Z, forall n : Z, forall p : Z, ((~ (n = (Z_of_N (NUMERAL 0%N)))) /\ (int_le (int_abs n) (int_abs p))) -> (rem (rem m n) p) = (rem m n). +Axiom thm_INT_LE_DIV : forall m : Z, forall n : Z, ((int_le (Z_of_N (NUMERAL 0%N)) m) /\ (int_le (Z_of_N (NUMERAL 0%N)) n)) -> int_le (Z_of_N (NUMERAL 0%N)) (div m n). +Axiom thm_INT_LT_DIV : forall m : Z, forall n : Z, ((int_lt (Z_of_N (NUMERAL 0%N)) n) /\ (int_le n m)) -> int_lt (Z_of_N (NUMERAL 0%N)) (div m n). +Axiom thm_INT_REM_LE_EQ : forall m : Z, forall n : Z, (int_le (rem m n) m) = ((n = (Z_of_N (NUMERAL 0%N))) \/ (int_le (Z_of_N (NUMERAL 0%N)) m)). +Axiom thm_INT_REM_LE : forall m : Z, forall n : Z, forall p : Z, (((n = (Z_of_N (NUMERAL 0%N))) \/ (int_le (Z_of_N (NUMERAL 0%N)) m)) /\ (int_le m p)) -> int_le (rem m n) p. +Axiom thm_INT_REM_MUL_ADD : (forall m : Z, forall n : Z, forall p : Z, (rem (int_add (int_mul m n) p) n) = (rem p n)) /\ ((forall m : Z, forall n : Z, forall p : Z, (rem (int_add (int_mul n m) p) n) = (rem p n)) /\ ((forall m : Z, forall n : Z, forall p : Z, (rem (int_add p (int_mul m n)) n) = (rem p n)) /\ (forall m : Z, forall n : Z, forall p : Z, (rem (int_add p (int_mul n m)) n) = (rem p n)))). +Axiom thm_INT_DIV_MUL_ADD : (forall m : Z, forall n : Z, forall p : Z, (~ (n = (Z_of_N (NUMERAL 0%N)))) -> (div (int_add (int_mul m n) p) n) = (int_add m (div p n))) /\ ((forall m : Z, forall n : Z, forall p : Z, (~ (n = (Z_of_N (NUMERAL 0%N)))) -> (div (int_add (int_mul n m) p) n) = (int_add m (div p n))) /\ ((forall m : Z, forall n : Z, forall p : Z, (~ (n = (Z_of_N (NUMERAL 0%N)))) -> (div (int_add p (int_mul m n)) n) = (int_add (div p n) m)) /\ (forall m : Z, forall n : Z, forall p : Z, (~ (n = (Z_of_N (NUMERAL 0%N)))) -> (div (int_add p (int_mul n m)) n) = (int_add (div p n) m)))). +Axiom thm_INT_CONG_DIV2 : forall a : Z, forall b : Z, forall m : Z, forall n : Z, (@eq2 Z a b (int_mod (int_mul m n))) -> @eq2 Z (div a m) (div b m) (int_mod n). +Axiom thm_INT_REM_2_CASES : forall n : Z, ((rem n (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) = (Z_of_N (NUMERAL 0%N))) \/ ((rem n (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) = (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_NOT_INT_REM_2 : (forall n : Z, (~ ((rem n (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) = (Z_of_N (NUMERAL 0%N)))) = ((rem n (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) = (Z_of_N (NUMERAL (BIT1 0%N))))) /\ (forall n : Z, (~ ((rem n (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) = (Z_of_N (NUMERAL (BIT1 0%N))))) = ((rem n (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) = (Z_of_N (NUMERAL 0%N)))). +Axiom thm_INT_REM_2_DIVIDES : (forall n : Z, ((rem n (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) = (Z_of_N (NUMERAL 0%N))) = (int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)) /\ (forall n : Z, ((rem n (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) = (Z_of_N (NUMERAL (BIT1 0%N)))) = (~ (int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n))). +Axiom thm_INT_REM_2_EXPAND : forall x : Z, (rem x (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) = (@COND Z (int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) x) (Z_of_N (NUMERAL 0%N)) (Z_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_INT_REM_2_NEG : forall x : Z, (rem (int_neg x) (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) = (rem x (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))). +Axiom thm_INT_DIVIDES_DIV_SELF : forall n : Z, forall d : Z, (int_divides d n) -> int_divides (div n d) n. +Axiom thm_INT_DIV_BY_DIV : forall m : Z, forall n : Z, ((~ (n = (Z_of_N (NUMERAL 0%N)))) /\ (int_divides m n)) -> (div n (div n m)) = m. +Axiom thm_INT_DIVIDES_DIV_DIVIDES : forall n : Z, forall d : Z, forall e : Z, ((int_divides d n) /\ ((n = (Z_of_N (NUMERAL 0%N))) -> e = (Z_of_N (NUMERAL 0%N)))) -> (int_divides (div n d) e) = (int_divides n (int_mul d e)). +Axiom thm_INT_DIVIDES_DIVIDES_DIV : forall n : Z, forall d : Z, forall e : Z, (int_divides d n) -> (int_divides e (div n d)) = (int_divides (int_mul d e) n). +Axiom thm_INT_DIVIDES_DIVIDES_DIV_EQ : forall n : Z, forall d : Z, forall e : Z, ((int_divides d n) /\ (int_divides e (div n d))) = (int_divides (int_mul d e) n). +Axiom thm_INT_2_DIVIDES_ADD : forall m : Z, forall n : Z, (int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (int_add m n)) = ((int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) m) = (int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)). +Axiom thm_INT_2_DIVIDES_SUB : forall m : Z, forall n : Z, (int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (int_sub m n)) = ((int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) m) = (int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)). +Axiom thm_INT_2_DIVIDES_MUL : forall m : Z, forall n : Z, (int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (int_mul m n)) = ((int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) m) \/ (int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n)). +Axiom thm_INT_2_DIVIDES_POW : forall n : Z, forall k : N, (int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) (int_pow n k)) = ((int_divides (Z_of_N (NUMERAL (BIT0 (BIT1 0%N)))) n) /\ (~ (k = (NUMERAL 0%N)))). +Axiom thm_WF_INT_MEASURE : forall {A : Type'}, forall P : A -> Prop, forall m : A -> Z, ((forall x : A, int_le (Z_of_N (NUMERAL 0%N)) (m x)) /\ (forall x : A, (forall y : A, (int_lt (m y) (m x)) -> P y) -> P x)) -> forall x : A, P x. +Axiom thm_WF_INT_MEASURE_2 : forall {A B : Type'}, forall P : A -> B -> Prop, forall m : A -> B -> Z, ((forall x : A, forall y : B, int_le (Z_of_N (NUMERAL 0%N)) (m x y)) /\ (forall x : A, forall y : B, (forall x' : A, forall y' : B, (int_lt (m x' y') (m x y)) -> P x' y') -> P x y)) -> forall x : A, forall y : B, P x y. +Axiom thm_INT_GCD_EXISTS : forall a : Z, forall b : Z, exists d : Z, (int_divides d a) /\ ((int_divides d b) /\ (exists x : Z, exists y : Z, d = (int_add (int_mul a x) (int_mul b y)))). +Axiom thm_INT_GCD_EXISTS_POS : forall a : Z, forall b : Z, exists d : Z, (int_le (Z_of_N (NUMERAL 0%N)) d) /\ ((int_divides d a) /\ ((int_divides d b) /\ (exists x : Z, exists y : Z, d = (int_add (int_mul a x) (int_mul b y))))). +Axiom thm_int_lcm : forall m : Z, forall n : Z, (int_lcm (@pair Z Z m n)) = (@COND Z ((int_mul m n) = (Z_of_N (NUMERAL 0%N))) (Z_of_N (NUMERAL 0%N)) (div (int_abs (int_mul m n)) (int_gcd (@pair Z Z m n)))). +Axiom thm_INT_DIVIDES_LABS : forall d : Z, forall n : Z, (int_divides (int_abs d) n) = (int_divides d n). +Axiom thm_INT_DIVIDES_RABS : forall d : Z, forall n : Z, (int_divides d (int_abs n)) = (int_divides d n). +Axiom thm_INT_DIVIDES_ABS : (forall d : Z, forall n : Z, (int_divides (int_abs d) n) = (int_divides d n)) /\ (forall d : Z, forall n : Z, (int_divides d (int_abs n)) = (int_divides d n)). +Axiom thm_INT_LCM_POS : forall m : Z, forall n : Z, int_le (Z_of_N (NUMERAL 0%N)) (int_lcm (@pair Z Z m n)). +Axiom thm_INT_MUL_GCD_LCM : forall m : Z, forall n : Z, (int_mul (int_gcd (@pair Z Z m n)) (int_lcm (@pair Z Z m n))) = (int_abs (int_mul m n)). +Axiom thm_INT_MUL_LCM_GCD : forall m : Z, forall n : Z, (int_mul (int_lcm (@pair Z Z m n)) (int_gcd (@pair Z Z m n))) = (int_abs (int_mul m n)). +Axiom thm_INT_DIVIDES_LCM_GCD : forall m : Z, forall n : Z, forall d : Z, (int_divides d (int_lcm (@pair Z Z m n))) = (int_divides (int_mul d (int_gcd (@pair Z Z m n))) (int_mul m n)). +Axiom thm_INT_LCM_DIVIDES : forall m : Z, forall n : Z, forall d : Z, (int_divides (int_lcm (@pair Z Z m n)) d) = ((int_divides m d) /\ (int_divides n d)). +Axiom thm_INT_LCM : forall m : Z, forall n : Z, (int_divides m (int_lcm (@pair Z Z m n))) /\ ((int_divides n (int_lcm (@pair Z Z m n))) /\ (forall d : Z, ((int_divides m d) /\ (int_divides n d)) -> int_divides (int_lcm (@pair Z Z m n)) d)). +Axiom thm_num_of_int : forall x : Z, (num_of_int x) = (@ε N (fun n : N => (Z_of_N n) = x)). +Axiom thm_NUM_OF_INT_OF_NUM : forall n : N, (num_of_int (Z_of_N n)) = n. +Axiom thm_INT_OF_NUM_OF_INT : forall x : Z, (int_le (Z_of_N (NUMERAL 0%N)) x) -> (Z_of_N (num_of_int x)) = x. +Axiom thm_NUM_OF_INT : forall x : Z, (int_le (Z_of_N (NUMERAL 0%N)) x) = ((Z_of_N (num_of_int x)) = x). +Axiom thm_NUM_OF_INT_ADD : forall x : Z, forall y : Z, ((int_le (Z_of_N (NUMERAL 0%N)) x) /\ (int_le (Z_of_N (NUMERAL 0%N)) y)) -> (num_of_int (int_add x y)) = (N.add (num_of_int x) (num_of_int y)). +Axiom thm_NUM_OF_INT_MUL : forall x : Z, forall y : Z, ((int_le (Z_of_N (NUMERAL 0%N)) x) /\ (int_le (Z_of_N (NUMERAL 0%N)) y)) -> (num_of_int (int_mul x y)) = (N.mul (num_of_int x) (num_of_int y)). +Axiom thm_NUM_OF_INT_POW : forall x : Z, forall n : N, (int_le (Z_of_N (NUMERAL 0%N)) x) -> (num_of_int (int_pow x n)) = (N.pow (num_of_int x) n). +Axiom thm_num_divides : forall a : N, forall b : N, (num_divides a b) = (int_divides (Z_of_N a) (Z_of_N b)). +Axiom thm_num_mod : forall n : N, forall x : N, forall y : N, (num_mod n x y) = (int_mod (Z_of_N n) (Z_of_N x) (Z_of_N y)). +Axiom thm_num_congruent : forall x : N, forall y : N, forall n : N, (@eq2 N x y (num_mod n)) = (@eq2 Z (Z_of_N x) (Z_of_N y) (int_mod (Z_of_N n))). +Axiom thm_num_coprime : forall a : N, forall b : N, (num_coprime (@pair N N a b)) = (int_coprime (@pair Z Z (Z_of_N a) (Z_of_N b))). +Axiom thm_num_gcd : forall a : N, forall b : N, (num_gcd (@pair N N a b)) = (num_of_int (int_gcd (@pair Z Z (Z_of_N a) (Z_of_N b)))). +Axiom thm_num_lcm : forall a : N, forall b : N, (num_lcm (@pair N N a b)) = (num_of_int (int_lcm (@pair Z Z (Z_of_N a) (Z_of_N b)))). +Axiom thm_BINARY_INDUCT : forall P : N -> Prop, ((P (NUMERAL 0%N)) /\ (forall n : N, (P n) -> (P (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n)) /\ (P (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))))) -> forall n : N, P n. +Axiom thm_NUM_CASES_BINARY : forall P : N -> Prop, (forall n : N, P n) = ((forall n : N, P (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n)) /\ (forall n : N, P (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N))))). +Axiom thm_num_WF_DOWN : forall P : N -> Prop, forall m : N, ((forall n : N, (N.le m n) -> P n) /\ (forall n : N, ((N.lt n m) /\ (forall p : N, (N.lt n p) -> P p)) -> P n)) -> forall n : N, P n. +Axiom thm_INT_REM_REM_POW_MIN : forall x : Z, forall p : Z, forall m : N, forall n : N, (rem (rem x (int_pow p m)) (int_pow p n)) = (rem x (int_pow p (N.min m n))). +Axiom thm_NUM_GCD : forall a : N, forall b : N, (Z_of_N (num_gcd (@pair N N a b))) = (int_gcd (@pair Z Z (Z_of_N a) (Z_of_N b))). +Axiom thm_NUM_LCM : forall a : N, forall b : N, (Z_of_N (num_lcm (@pair N N a b))) = (int_lcm (@pair Z Z (Z_of_N a) (Z_of_N b))). +Axiom thm_CONG : forall x : N, forall y : N, forall n : N, (@eq2 N x y (num_mod n)) = ((N.modulo x n) = (N.modulo y n)). +Axiom thm_CONG_LMOD : forall x : N, forall y : N, forall n : N, (@eq2 N (N.modulo x n) y (num_mod n)) = (@eq2 N x y (num_mod n)). +Axiom thm_CONG_RMOD : forall x : N, forall y : N, forall n : N, (@eq2 N x (N.modulo y n) (num_mod n)) = (@eq2 N x y (num_mod n)). +Axiom thm_CONG_DIV2 : forall a : N, forall b : N, forall m : N, forall n : N, (@eq2 N a b (num_mod (N.mul m n))) -> @eq2 N (N.div a m) (N.div b m) (num_mod n). +Axiom thm_divides : forall (b : N) (a : N), (num_divides a b) = (exists x : N, b = (N.mul a x)). +Axiom thm_DIVIDES_LE : forall m : N, forall n : N, (num_divides m n) -> (N.le m n) \/ (n = (NUMERAL 0%N)). +Axiom thm_DIVIDES_LE_STRONG : forall m : N, forall n : N, (num_divides m n) -> ((N.le (NUMERAL (BIT1 0%N)) m) /\ (N.le m n)) \/ (n = (NUMERAL 0%N)). +Axiom thm_DIVIDES_LE_IMP : forall m : N, forall n : N, ((num_divides m n) /\ ((n = (NUMERAL 0%N)) -> m = (NUMERAL 0%N))) -> N.le m n. +Axiom thm_PROPERLY_DIVIDES_LE_IMP : forall m : N, forall n : N, ((num_divides m n) /\ ((~ (n = (NUMERAL 0%N))) /\ (~ (m = n)))) -> N.le (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m) n. +Axiom thm_DIVIDES_ANTISYM : forall m : N, forall n : N, ((num_divides m n) /\ (num_divides n m)) = (m = n). +Axiom thm_DIVIDES_ONE : forall n : N, (num_divides n (NUMERAL (BIT1 0%N))) = (n = (NUMERAL (BIT1 0%N))). +Axiom thm_DIV_ADD : forall d : N, forall a : N, forall b : N, ((num_divides d a) \/ (num_divides d b)) -> (N.div (N.add a b) d) = (N.add (N.div a d) (N.div b d)). +Axiom thm_DIVIDES_MOD : forall m : N, forall n : N, (num_divides m n) = ((N.modulo n m) = (NUMERAL 0%N)). +Axiom thm_DIVIDES_DIV_MULT : forall m : N, forall n : N, (num_divides m n) = ((N.mul (N.div n m) m) = n). +Axiom thm_DIV_BY_DIV : forall m : N, forall n : N, ((~ (n = (NUMERAL 0%N))) /\ (num_divides m n)) -> (N.div n (N.div n m)) = m. +Axiom thm_DIVIDES_DIV_DIVIDES : forall n : N, forall d : N, forall e : N, ((num_divides d n) /\ ((n = (NUMERAL 0%N)) -> e = (NUMERAL 0%N))) -> (num_divides (N.div n d) e) = (num_divides n (N.mul d e)). +Axiom thm_DIVIDES_DIV_SELF : forall n : N, forall d : N, (num_divides d n) -> num_divides (N.div n d) n. +Axiom thm_DIVIDES_DIVIDES_DIV : forall n : N, forall d : N, forall e : N, (num_divides d n) -> (num_divides e (N.div n d)) = (num_divides (N.mul d e) n). +Axiom thm_DIVIDES_DIVIDES_DIV_EQ : forall n : N, forall d : N, forall e : N, ((num_divides d n) /\ (num_divides e (N.div n d))) = (num_divides (N.mul d e) n). +Axiom thm_DIVIDES_DIVIDES_DIV_IMP : forall n : N, forall d : N, forall e : N, (num_divides (N.mul d e) n) -> num_divides e (N.div n d). +Axiom thm_MULT_DIV : (forall m : N, forall n : N, forall p : N, (num_divides p m) -> (N.div (N.mul m n) p) = (N.mul (N.div m p) n)) /\ (forall m : N, forall n : N, forall p : N, (num_divides p n) -> (N.div (N.mul m n) p) = (N.mul m (N.div n p))). +Axiom thm_COPRIME_LMOD : forall a : N, forall n : N, (num_coprime (@pair N N (N.modulo a n) n)) = (num_coprime (@pair N N a n)). +Axiom thm_COPRIME_RMOD : forall a : N, forall n : N, (num_coprime (@pair N N n (N.modulo a n))) = (num_coprime (@pair N N n a)). +Axiom thm_INT_CONG_NUM_EXISTS : forall x : Z, forall y : Z, ((y = (Z_of_N (NUMERAL 0%N))) -> int_le (Z_of_N (NUMERAL 0%N)) x) -> exists n : N, @eq2 Z (Z_of_N n) x (int_mod y). +Axiom thm_GCD : forall a : N, forall b : N, ((num_divides (num_gcd (@pair N N a b)) a) /\ (num_divides (num_gcd (@pair N N a b)) b)) /\ (forall e : N, ((num_divides e a) /\ (num_divides e b)) -> num_divides e (num_gcd (@pair N N a b))). +Axiom thm_coprime : forall (a : N) (b : N), (num_coprime (@pair N N a b)) = (forall d : N, ((num_divides d a) /\ (num_divides d b)) -> d = (NUMERAL (BIT1 0%N))). +Axiom thm_prime : forall p : N, (prime p) = ((~ (p = (NUMERAL (BIT1 0%N)))) /\ (forall x : N, (num_divides x p) -> (x = (NUMERAL (BIT1 0%N))) \/ (x = p))). +Axiom thm_ONE_OR_PRIME : forall p : N, ((p = (NUMERAL (BIT1 0%N))) \/ (prime p)) = (forall n : N, (num_divides n p) -> (n = (NUMERAL (BIT1 0%N))) \/ (n = p)). +Axiom thm_ONE_OR_PRIME_DIVIDES_OR_COPRIME : forall p : N, ((p = (NUMERAL (BIT1 0%N))) \/ (prime p)) = (forall n : N, (num_divides p n) \/ (num_coprime (@pair N N p n))). +Axiom thm_PRIME_COPRIME_EQ_NONDIVISIBLE : forall p : N, (prime p) = (forall n : N, (num_coprime (@pair N N p n)) = (~ (num_divides p n))). +Axiom thm_ZERO_ONE_OR_PRIME_DIVPROD : forall p : N, forall a : N, forall b : N, ((p = (NUMERAL 0%N)) \/ ((p = (NUMERAL (BIT1 0%N))) \/ (prime p))) -> (num_divides p (N.mul a b)) = ((num_divides p a) \/ (num_divides p b)). +Axiom thm_ZERO_ONE_OR_PRIME : forall p : N, ((p = (NUMERAL 0%N)) \/ ((p = (NUMERAL (BIT1 0%N))) \/ (prime p))) = (forall a : N, forall b : N, (num_divides p (N.mul a b)) -> (num_divides p a) \/ (num_divides p b)). +Axiom thm_real_zpow : forall z : R, forall i : Z, (real_zpow z i) = (@COND R (int_le (Z_of_N (NUMERAL 0%N)) i) (real_pow z (num_of_int i)) (Rinv (real_pow z (num_of_int (int_neg i))))). +Axiom thm_REAL_POW_ZPOW : forall x : R, forall n : N, (real_pow x n) = (real_zpow x (Z_of_N n)). +Axiom thm_REAL_ZPOW_NUM : forall x : R, forall n : N, (real_zpow x (Z_of_N n)) = (real_pow x n). +Axiom thm_REAL_ZPOW_0 : forall x : R, (real_zpow x (Z_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_ZPOW_1 : forall x : R, (real_zpow x (Z_of_N (NUMERAL (BIT1 0%N)))) = x. +Axiom thm_REAL_ZPOW_2 : forall x : R, (real_zpow x (Z_of_N (NUMERAL (BIT0 (BIT1 0%N))))) = (Rmult x x). +Axiom thm_REAL_ZPOW_ONE : forall n : Z, (real_zpow (R_of_N (NUMERAL (BIT1 0%N))) n) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_REAL_ZPOW_NEG : forall x : R, forall n : Z, (real_zpow x (int_neg n)) = (Rinv (real_zpow x n)). +Axiom thm_REAL_ZPOW_MINUS1 : forall x : R, (real_zpow x (int_neg (Z_of_N (NUMERAL (BIT1 0%N))))) = (Rinv x). +Axiom thm_REAL_ZPOW_ZERO : forall n : Z, (real_zpow (R_of_N (NUMERAL 0%N)) n) = (@COND R (n = (Z_of_N (NUMERAL 0%N))) (R_of_N (NUMERAL (BIT1 0%N))) (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_ZPOW_POW : (forall x : R, forall n : N, (real_zpow x (Z_of_N n)) = (real_pow x n)) /\ (forall x : R, forall n : N, (real_zpow x (int_neg (Z_of_N n))) = (Rinv (real_pow x n))). +Axiom thm_REAL_INV_ZPOW : forall x : R, forall n : Z, (Rinv (real_zpow x n)) = (real_zpow (Rinv x) n). +Axiom thm_REAL_ZPOW_INV : forall x : R, forall n : Z, (real_zpow (Rinv x) n) = (Rinv (real_zpow x n)). +Axiom thm_REAL_ZPOW_ZPOW : forall x : R, forall m : Z, forall n : Z, (real_zpow (real_zpow x m) n) = (real_zpow x (int_mul m n)). +Axiom thm_REAL_ZPOW_MUL : forall x : R, forall y : R, forall n : Z, (real_zpow (Rmult x y) n) = (Rmult (real_zpow x n) (real_zpow y n)). +Axiom thm_REAL_ZPOW_DIV : forall x : R, forall y : R, forall n : Z, (real_zpow (Rdiv x y) n) = (Rdiv (real_zpow x n) (real_zpow y n)). +Axiom thm_REAL_ZPOW_ADD : forall x : R, forall m : Z, forall n : Z, (~ (x = (R_of_N (NUMERAL 0%N)))) -> (real_zpow x (int_add m n)) = (Rmult (real_zpow x m) (real_zpow x n)). +Axiom thm_REAL_ZPOW_SUB : forall x : R, forall m : Z, forall n : Z, (~ (x = (R_of_N (NUMERAL 0%N)))) -> (real_zpow x (int_sub m n)) = (Rdiv (real_zpow x m) (real_zpow x n)). +Axiom thm_REAL_ZPOW_LE : forall x : R, forall n : Z, (Rle (R_of_N (NUMERAL 0%N)) x) -> Rle (R_of_N (NUMERAL 0%N)) (real_zpow x n). +Axiom thm_REAL_ZPOW_LT : forall x : R, forall n : Z, (Rlt (R_of_N (NUMERAL 0%N)) x) -> Rlt (R_of_N (NUMERAL 0%N)) (real_zpow x n). +Axiom thm_REAL_ZPOW_EQ_0 : forall x : R, forall n : Z, ((real_zpow x n) = (R_of_N (NUMERAL 0%N))) = ((x = (R_of_N (NUMERAL 0%N))) /\ (~ (n = (Z_of_N (NUMERAL 0%N))))). +Axiom thm_REAL_ABS_ZPOW : forall x : R, forall n : Z, (Rabs (real_zpow x n)) = (real_zpow (Rabs x) n). +Axiom thm_REAL_SGN_ZPOW : forall x : R, forall n : Z, (real_sgn (real_zpow x n)) = (real_zpow (real_sgn x) n). +Axiom thm_IN : forall {A : Type'}, forall P : A -> Prop, forall x : A, (@IN A x P) = (P x). +Axiom thm_EXTENSION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (s = t) = (forall x : A, (@IN A x s) = (@IN A x t)). +Axiom thm_GSPEC : forall {A : Type'}, forall p : A -> Prop, (@GSPEC A p) = p. +Axiom thm_SETSPEC : forall {A : Type'}, forall P : Prop, forall v : A, forall t : A, (@SETSPEC A v P t) = (P /\ (v = t)). +Axiom thm_IN_ELIM_THM : forall {A : Type'}, (forall P : (Prop -> A -> Prop) -> Prop, forall x : A, (@IN A x (@GSPEC A (fun v : A => P (@SETSPEC A v)))) = (P (fun p : Prop => fun t : A => p /\ (x = t)))) /\ ((forall p : A -> Prop, forall x : A, (@IN A x (@GSPEC A (fun v : A => exists y : A, @SETSPEC A v (p y) y))) = (p x)) /\ ((forall P : (Prop -> A -> Prop) -> Prop, forall x : A, (@GSPEC A (fun v : A => P (@SETSPEC A v)) x) = (P (fun p : Prop => fun t : A => p /\ (x = t)))) /\ ((forall p : A -> Prop, forall x : A, (@GSPEC A (fun v : A => exists y : A, @SETSPEC A v (p y) y) x) = (p x)) /\ (forall p : A -> Prop, forall x : A, (@IN A x (fun y : A => p y)) = (p x))))). +Axiom thm_EMPTY : forall {A : Type'}, (@EMPTY A) = (fun x : A => False). +Axiom thm_INSERT_DEF : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@INSERT A x s) = (fun y : A => (@IN A y s) \/ (y = x)). +Axiom thm_UNIV : forall {A : Type'}, (@UNIV A) = (fun x : A => True). +Axiom thm_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@UNION A s t) = (@GSPEC A (fun GEN_PVAR_0 : A => exists x : A, @SETSPEC A GEN_PVAR_0 ((@IN A x s) \/ (@IN A x t)) x)). +Axiom thm_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@UNIONS A s) = (@GSPEC A (fun GEN_PVAR_1 : A => exists x : A, @SETSPEC A GEN_PVAR_1 (exists u : A -> Prop, (@IN (A -> Prop) u s) /\ (@IN A x u)) x)). +Axiom thm_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@INTER A s t) = (@GSPEC A (fun GEN_PVAR_2 : A => exists x : A, @SETSPEC A GEN_PVAR_2 ((@IN A x s) /\ (@IN A x t)) x)). +Axiom thm_INTERS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@INTERS A s) = (@GSPEC A (fun GEN_PVAR_3 : A => exists x : A, @SETSPEC A GEN_PVAR_3 (forall u : A -> Prop, (@IN (A -> Prop) u s) -> @IN A x u) x)). +Axiom thm_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@DIFF A s t) = (@GSPEC A (fun GEN_PVAR_4 : A => exists x : A, @SETSPEC A GEN_PVAR_4 ((@IN A x s) /\ (~ (@IN A x t))) x)). +Axiom thm_INSERT : forall {A : Type'} (s : A -> Prop) (x : A), (@INSERT A x s) = (@GSPEC A (fun GEN_PVAR_5 : A => exists y : A, @SETSPEC A GEN_PVAR_5 ((@IN A y s) \/ (y = x)) y)). +Axiom thm_DELETE : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@DELETE A s x) = (@GSPEC A (fun GEN_PVAR_6 : A => exists y : A, @SETSPEC A GEN_PVAR_6 ((@IN A y s) /\ (~ (y = x))) y)). +Axiom thm_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) = (forall x : A, (@IN A x s) -> @IN A x t). +Axiom thm_PSUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@PSUBSET A s t) = ((@SUBSET A s t) /\ (~ (s = t))). +Axiom thm_DISJOINT : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@DISJOINT A s t) = ((@INTER A s t) = (@EMPTY A)). +Axiom thm_SING : forall {A : Type'}, forall s : A -> Prop, (@SING A s) = (exists x : A, s = (@INSERT A x (@EMPTY A))). +Axiom thm_FINITE_RULES : forall {A : Type'}, (@FINITE A (@EMPTY A)) /\ (forall x : A, forall s : A -> Prop, (@FINITE A s) -> @FINITE A (@INSERT A x s)). +Axiom thm_FINITE_CASES : forall {A : Type'}, forall a : A -> Prop, (@FINITE A a) = ((a = (@EMPTY A)) \/ (exists x : A, exists s : A -> Prop, (a = (@INSERT A x s)) /\ (@FINITE A s))). +Axiom thm_FINITE_INDUCT : forall {A : Type'}, forall FINITE' : (A -> Prop) -> Prop, ((FINITE' (@EMPTY A)) /\ (forall x : A, forall s : A -> Prop, (FINITE' s) -> FINITE' (@INSERT A x s))) -> forall a : A -> Prop, (@FINITE A a) -> FINITE' a. +Axiom thm_INFINITE : forall {A : Type'}, forall s : A -> Prop, (@INFINITE A s) = (~ (@FINITE A s)). +Axiom thm_IMAGE : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, (@IMAGE A B f s) = (@GSPEC B (fun GEN_PVAR_7 : B => exists y : B, @SETSPEC B GEN_PVAR_7 (exists x : A, (@IN A x s) /\ (y = (f x))) y)). +Axiom thm_INJ : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, forall f : A -> B, (@INJ A B f s t) = ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y)). +Axiom thm_SURJ : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, forall f : A -> B, (@SURJ A B f s t) = ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall x : B, (@IN B x t) -> exists y : A, (@IN A y s) /\ ((f y) = x))). +Axiom thm_BIJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, (@BIJ A B f s t) = ((@INJ A B f s t) /\ (@SURJ A B f s t)). +Axiom thm_CHOICE : forall {A : Type'}, forall s : A -> Prop, (@CHOICE A s) = (@ε A (fun x : A => @IN A x s)). +Axiom thm_REST : forall {A : Type'}, forall s : A -> Prop, (@REST A s) = (@DELETE A s (@CHOICE A s)). +Axiom thm_NOT_IN_EMPTY : forall {A : Type'}, forall x : A, ~ (@IN A x (@EMPTY A)). +Axiom thm_IN_UNIV : forall {A : Type'}, forall x : A, @IN A x (@UNIV A). +Axiom thm_IN_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@IN A x (@UNION A s t)) = ((@IN A x s) \/ (@IN A x t)). +Axiom thm_IN_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall x : A, (@IN A x (@UNIONS A s)) = (exists t : A -> Prop, (@IN (A -> Prop) t s) /\ (@IN A x t)). +Axiom thm_IN_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@IN A x (@INTER A s t)) = ((@IN A x s) /\ (@IN A x t)). +Axiom thm_IN_INTERS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall x : A, (@IN A x (@INTERS A s)) = (forall t : A -> Prop, (@IN (A -> Prop) t s) -> @IN A x t). +Axiom thm_IN_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@IN A x (@DIFF A s t)) = ((@IN A x s) /\ (~ (@IN A x t))). +Axiom thm_IN_INSERT : forall {A : Type'}, forall x : A, forall y : A, forall s : A -> Prop, (@IN A x (@INSERT A y s)) = ((x = y) \/ (@IN A x s)). +Axiom thm_IN_DELETE : forall {A : Type'}, forall s : A -> Prop, forall x : A, forall y : A, (@IN A x (@DELETE A s y)) = ((@IN A x s) /\ (~ (x = y))). +Axiom thm_IN_SING : forall {A : Type'}, forall x : A, forall y : A, (@IN A x (@INSERT A y (@EMPTY A))) = (x = y). +Axiom thm_IN_IMAGE : forall {A B : Type'}, forall y : B, forall s : A -> Prop, forall f : A -> B, (@IN B y (@IMAGE A B f s)) = (exists x : A, (y = (f x)) /\ (@IN A x s)). +Axiom thm_IN_REST : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@IN A x (@REST A s)) = ((@IN A x s) /\ (~ (x = (@CHOICE A s)))). +Axiom thm_FORALL_IN_INSERT : forall {A : Type'}, forall P : A -> Prop, forall a : A, forall s : A -> Prop, (forall x : A, (@IN A x (@INSERT A a s)) -> P x) = ((P a) /\ (forall x : A, (@IN A x s) -> P x)). +Axiom thm_EXISTS_IN_INSERT : forall {A : Type'}, forall P : A -> Prop, forall a : A, forall s : A -> Prop, (exists x : A, (@IN A x (@INSERT A a s)) /\ (P x)) = ((P a) \/ (exists x : A, (@IN A x s) /\ (P x))). +Axiom thm_FORALL_IN_UNION : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (forall x : A, (@IN A x (@UNION A s t)) -> P x) = ((forall x : A, (@IN A x s) -> P x) /\ (forall x : A, (@IN A x t) -> P x)). +Axiom thm_EXISTS_IN_UNION : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (exists x : A, (@IN A x (@UNION A s t)) /\ (P x)) = ((exists x : A, (@IN A x s) /\ (P x)) \/ (exists x : A, (@IN A x t) /\ (P x))). +Axiom thm_FORALL_IN_IMAGE : forall {A B : Type'} (P : B -> Prop), forall f : A -> B, forall s : A -> Prop, (forall y : B, (@IN B y (@IMAGE A B f s)) -> P y) = (forall x : A, (@IN A x s) -> P (f x)). +Axiom thm_EXISTS_IN_IMAGE : forall {A B : Type'} (P : B -> Prop), forall f : A -> B, forall s : A -> Prop, (exists y : B, (@IN B y (@IMAGE A B f s)) /\ (P y)) = (exists x : A, (@IN A x s) /\ (P (f x))). +Axiom thm_FORALL_IN_GSPEC : forall {A B C D E : Type'}, (forall P : A -> Prop, forall Q : B -> Prop, forall f : A -> B, (forall z : B, (@IN B z (@GSPEC B (fun GEN_PVAR_8 : B => exists x : A, @SETSPEC B GEN_PVAR_8 (P x) (f x)))) -> Q z) = (forall x : A, (P x) -> Q (f x))) /\ ((forall P : A -> B -> Prop, forall Q : C -> Prop, forall f : A -> B -> C, (forall z : C, (@IN C z (@GSPEC C (fun GEN_PVAR_9 : C => exists x : A, exists y : B, @SETSPEC C GEN_PVAR_9 (P x y) (f x y)))) -> Q z) = (forall x : A, forall y : B, (P x y) -> Q (f x y))) /\ ((forall P : A -> B -> C -> Prop, forall Q : D -> Prop, forall f : A -> B -> C -> D, (forall z : D, (@IN D z (@GSPEC D (fun GEN_PVAR_10 : D => exists w : A, exists x : B, exists y : C, @SETSPEC D GEN_PVAR_10 (P w x y) (f w x y)))) -> Q z) = (forall w : A, forall x : B, forall y : C, (P w x y) -> Q (f w x y))) /\ (forall P : A -> B -> C -> D -> Prop, forall Q : E -> Prop, forall f : A -> B -> C -> D -> E, (forall z : E, (@IN E z (@GSPEC E (fun GEN_PVAR_11 : E => exists v : A, exists w : B, exists x : C, exists y : D, @SETSPEC E GEN_PVAR_11 (P v w x y) (f v w x y)))) -> Q z) = (forall v : A, forall w : B, forall x : C, forall y : D, (P v w x y) -> Q (f v w x y))))). +Axiom thm_EXISTS_IN_GSPEC : forall {A B C D E : Type'}, (forall P : A -> Prop, forall Q : B -> Prop, forall f : A -> B, (exists z : B, (@IN B z (@GSPEC B (fun GEN_PVAR_12 : B => exists x : A, @SETSPEC B GEN_PVAR_12 (P x) (f x)))) /\ (Q z)) = (exists x : A, (P x) /\ (Q (f x)))) /\ ((forall P : A -> B -> Prop, forall Q : C -> Prop, forall f : A -> B -> C, (exists z : C, (@IN C z (@GSPEC C (fun GEN_PVAR_13 : C => exists x : A, exists y : B, @SETSPEC C GEN_PVAR_13 (P x y) (f x y)))) /\ (Q z)) = (exists x : A, exists y : B, (P x y) /\ (Q (f x y)))) /\ ((forall P : A -> B -> C -> Prop, forall Q : D -> Prop, forall f : A -> B -> C -> D, (exists z : D, (@IN D z (@GSPEC D (fun GEN_PVAR_14 : D => exists w : A, exists x : B, exists y : C, @SETSPEC D GEN_PVAR_14 (P w x y) (f w x y)))) /\ (Q z)) = (exists w : A, exists x : B, exists y : C, (P w x y) /\ (Q (f w x y)))) /\ (forall P : A -> B -> C -> D -> Prop, forall Q : E -> Prop, forall f : A -> B -> C -> D -> E, (exists z : E, (@IN E z (@GSPEC E (fun GEN_PVAR_15 : E => exists v : A, exists w : B, exists x : C, exists y : D, @SETSPEC E GEN_PVAR_15 (P v w x y) (f v w x y)))) /\ (Q z)) = (exists v : A, exists w : B, exists x : C, exists y : D, (P v w x y) /\ (Q (f v w x y)))))). +Axiom thm_UNIONS_IMAGE : forall {A B : Type'}, forall f : A -> B -> Prop, forall s : A -> Prop, (@UNIONS B (@IMAGE A (B -> Prop) f s)) = (@GSPEC B (fun GEN_PVAR_16 : B => exists y : B, @SETSPEC B GEN_PVAR_16 (exists x : A, (@IN A x s) /\ (@IN B y (f x))) y)). +Axiom thm_INTERS_IMAGE : forall {A B : Type'}, forall f : A -> B -> Prop, forall s : A -> Prop, (@INTERS B (@IMAGE A (B -> Prop) f s)) = (@GSPEC B (fun GEN_PVAR_17 : B => exists y : B, @SETSPEC B GEN_PVAR_17 (forall x : A, (@IN A x s) -> @IN B y (f x)) y)). +Axiom thm_UNIONS_GSPEC : forall {A B C D : Type'}, (forall P : A -> Prop, forall f : A -> B -> Prop, (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_18 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_18 (P x) (f x)))) = (@GSPEC B (fun GEN_PVAR_19 : B => exists a : B, @SETSPEC B GEN_PVAR_19 (exists x : A, (P x) /\ (@IN B a (f x))) a))) /\ ((forall P : A -> B -> Prop, forall f : A -> B -> C -> Prop, (@UNIONS C (@GSPEC (C -> Prop) (fun GEN_PVAR_20 : C -> Prop => exists x : A, exists y : B, @SETSPEC (C -> Prop) GEN_PVAR_20 (P x y) (f x y)))) = (@GSPEC C (fun GEN_PVAR_21 : C => exists a : C, @SETSPEC C GEN_PVAR_21 (exists x : A, exists y : B, (P x y) /\ (@IN C a (f x y))) a))) /\ (forall P : A -> B -> C -> Prop, forall f : A -> B -> C -> D -> Prop, (@UNIONS D (@GSPEC (D -> Prop) (fun GEN_PVAR_22 : D -> Prop => exists x : A, exists y : B, exists z : C, @SETSPEC (D -> Prop) GEN_PVAR_22 (P x y z) (f x y z)))) = (@GSPEC D (fun GEN_PVAR_23 : D => exists a : D, @SETSPEC D GEN_PVAR_23 (exists x : A, exists y : B, exists z : C, (P x y z) /\ (@IN D a (f x y z))) a)))). +Axiom thm_INTERS_GSPEC : forall {A B C D : Type'}, (forall P : A -> Prop, forall f : A -> B -> Prop, (@INTERS B (@GSPEC (B -> Prop) (fun GEN_PVAR_24 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_24 (P x) (f x)))) = (@GSPEC B (fun GEN_PVAR_25 : B => exists a : B, @SETSPEC B GEN_PVAR_25 (forall x : A, (P x) -> @IN B a (f x)) a))) /\ ((forall P : A -> B -> Prop, forall f : A -> B -> C -> Prop, (@INTERS C (@GSPEC (C -> Prop) (fun GEN_PVAR_26 : C -> Prop => exists x : A, exists y : B, @SETSPEC (C -> Prop) GEN_PVAR_26 (P x y) (f x y)))) = (@GSPEC C (fun GEN_PVAR_27 : C => exists a : C, @SETSPEC C GEN_PVAR_27 (forall x : A, forall y : B, (P x y) -> @IN C a (f x y)) a))) /\ (forall P : A -> B -> C -> Prop, forall f : A -> B -> C -> D -> Prop, (@INTERS D (@GSPEC (D -> Prop) (fun GEN_PVAR_28 : D -> Prop => exists x : A, exists y : B, exists z : C, @SETSPEC (D -> Prop) GEN_PVAR_28 (P x y z) (f x y z)))) = (@GSPEC D (fun GEN_PVAR_29 : D => exists a : D, @SETSPEC D GEN_PVAR_29 (forall x : A, forall y : B, forall z : C, (P x y z) -> @IN D a (f x y z)) a)))). +Axiom thm_CHOICE_DEF : forall {A : Type'}, forall s : A -> Prop, (~ (s = (@EMPTY A))) -> @IN A (@CHOICE A s) s. +Axiom thm_NOT_EQUAL_SETS : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (~ (s = t)) = (exists x : A, (@IN A x t) = (~ (@IN A x s))). +Axiom thm_INSERT_RESTRICT : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall a : A, (@GSPEC A (fun GEN_PVAR_30 : A => exists x : A, @SETSPEC A GEN_PVAR_30 ((@IN A x (@INSERT A a s)) /\ (P x)) x)) = (@COND (A -> Prop) (P a) (@INSERT A a (@GSPEC A (fun GEN_PVAR_31 : A => exists x : A, @SETSPEC A GEN_PVAR_31 ((@IN A x s) /\ (P x)) x))) (@GSPEC A (fun GEN_PVAR_32 : A => exists x : A, @SETSPEC A GEN_PVAR_32 ((@IN A x s) /\ (P x)) x))). +Axiom thm_UNIV_1 : (@UNIV unit) = (@INSERT unit tt (@EMPTY unit)). +Axiom thm_MEMBER_NOT_EMPTY : forall {A : Type'}, forall s : A -> Prop, (exists x : A, @IN A x s) = (~ (s = (@EMPTY A))). +Axiom thm_UNIV_NOT_EMPTY : forall {A : Type'}, ~ ((@UNIV A) = (@EMPTY A)). +Axiom thm_EMPTY_NOT_UNIV : forall {A : Type'}, ~ ((@EMPTY A) = (@UNIV A)). +Axiom thm_EQ_UNIV : forall {A : Type'} (s : A -> Prop), (forall x : A, @IN A x s) = (s = (@UNIV A)). +Axiom thm_SUBSET_TRANS : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@SUBSET A s t) /\ (@SUBSET A t u)) -> @SUBSET A s u. +Axiom thm_SUBSET_REFL : forall {A : Type'}, forall s : A -> Prop, @SUBSET A s s. +Axiom thm_SUBSET_ANTISYM : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (@SUBSET A t s)) -> s = t. +Axiom thm_SUBSET_ANTISYM_EQ : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s t) /\ (@SUBSET A t s)) = (s = t). +Axiom thm_EMPTY_SUBSET : forall {A : Type'}, forall s : A -> Prop, @SUBSET A (@EMPTY A) s. +Axiom thm_SUBSET_EMPTY : forall {A : Type'}, forall s : A -> Prop, (@SUBSET A s (@EMPTY A)) = (s = (@EMPTY A)). +Axiom thm_SUBSET_UNIV : forall {A : Type'}, forall s : A -> Prop, @SUBSET A s (@UNIV A). +Axiom thm_UNIV_SUBSET : forall {A : Type'}, forall s : A -> Prop, (@SUBSET A (@UNIV A) s) = (s = (@UNIV A)). +Axiom thm_SING_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@SUBSET A (@INSERT A x (@EMPTY A)) s) = (@IN A x s). +Axiom thm_SUBSET_RESTRICT : forall {A : Type'}, forall s : A -> Prop, forall P : A -> Prop, @SUBSET A (@GSPEC A (fun GEN_PVAR_33 : A => exists x : A, @SETSPEC A GEN_PVAR_33 ((@IN A x s) /\ (P x)) x)) s. +Axiom thm_PSUBSET_TRANS : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@PSUBSET A s t) /\ (@PSUBSET A t u)) -> @PSUBSET A s u. +Axiom thm_PSUBSET_SUBSET_TRANS : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@PSUBSET A s t) /\ (@SUBSET A t u)) -> @PSUBSET A s u. +Axiom thm_SUBSET_PSUBSET_TRANS : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@SUBSET A s t) /\ (@PSUBSET A t u)) -> @PSUBSET A s u. +Axiom thm_PSUBSET_IRREFL : forall {A : Type'}, forall s : A -> Prop, ~ (@PSUBSET A s s). +Axiom thm_NOT_PSUBSET_EMPTY : forall {A : Type'}, forall s : A -> Prop, ~ (@PSUBSET A s (@EMPTY A)). +Axiom thm_NOT_UNIV_PSUBSET : forall {A : Type'}, forall s : A -> Prop, ~ (@PSUBSET A (@UNIV A) s). +Axiom thm_PSUBSET_UNIV : forall {A : Type'}, forall s : A -> Prop, (@PSUBSET A s (@UNIV A)) = (exists x : A, ~ (@IN A x s)). +Axiom thm_PSUBSET_ALT : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@PSUBSET A s t) = ((@SUBSET A s t) /\ (exists a : A, (@IN A a t) /\ (~ (@IN A a s)))). +Axiom thm_UNION_ASSOC : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@UNION A (@UNION A s t) u) = (@UNION A s (@UNION A t u)). +Axiom thm_UNION_IDEMPOT : forall {A : Type'}, forall s : A -> Prop, (@UNION A s s) = s. +Axiom thm_UNION_COMM : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@UNION A s t) = (@UNION A t s). +Axiom thm_SUBSET_UNION : forall {A : Type'}, (forall s : A -> Prop, forall t : A -> Prop, @SUBSET A s (@UNION A s t)) /\ (forall s : A -> Prop, forall t : A -> Prop, @SUBSET A s (@UNION A t s)). +Axiom thm_SUBSET_UNION_ABSORPTION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) = ((@UNION A s t) = t). +Axiom thm_UNION_EMPTY : forall {A : Type'}, (forall s : A -> Prop, (@UNION A (@EMPTY A) s) = s) /\ (forall s : A -> Prop, (@UNION A s (@EMPTY A)) = s). +Axiom thm_UNION_UNIV : forall {A : Type'}, (forall s : A -> Prop, (@UNION A (@UNIV A) s) = (@UNIV A)) /\ (forall s : A -> Prop, (@UNION A s (@UNIV A)) = (@UNIV A)). +Axiom thm_EMPTY_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@UNION A s t) = (@EMPTY A)) = ((s = (@EMPTY A)) /\ (t = (@EMPTY A))). +Axiom thm_UNION_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@SUBSET A (@UNION A s t) u) = ((@SUBSET A s u) /\ (@SUBSET A t u)). +Axiom thm_UNION_RESTRICT : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@GSPEC A (fun GEN_PVAR_34 : A => exists x : A, @SETSPEC A GEN_PVAR_34 ((@IN A x (@UNION A s t)) /\ (P x)) x)) = (@UNION A (@GSPEC A (fun GEN_PVAR_35 : A => exists x : A, @SETSPEC A GEN_PVAR_35 ((@IN A x s) /\ (P x)) x)) (@GSPEC A (fun GEN_PVAR_36 : A => exists x : A, @SETSPEC A GEN_PVAR_36 ((@IN A x t) /\ (P x)) x))). +Axiom thm_FORALL_SUBSET_UNION : forall {A : Type'} (P : (A -> Prop) -> Prop), forall t : A -> Prop, forall u : A -> Prop, (forall s : A -> Prop, (@SUBSET A s (@UNION A t u)) -> P s) = (forall t' : A -> Prop, forall u' : A -> Prop, ((@SUBSET A t' t) /\ (@SUBSET A u' u)) -> P (@UNION A t' u')). +Axiom thm_EXISTS_SUBSET_UNION : forall {A : Type'} (P : (A -> Prop) -> Prop), forall t : A -> Prop, forall u : A -> Prop, (exists s : A -> Prop, (@SUBSET A s (@UNION A t u)) /\ (P s)) = (exists t' : A -> Prop, exists u' : A -> Prop, (@SUBSET A t' t) /\ ((@SUBSET A u' u) /\ (P (@UNION A t' u')))). +Axiom thm_FORALL_SUBSET_INSERT : forall {A : Type'} (P : (A -> Prop) -> Prop), forall a : A, forall t : A -> Prop, (forall s : A -> Prop, (@SUBSET A s (@INSERT A a t)) -> P s) = (forall s : A -> Prop, (@SUBSET A s t) -> (P s) /\ (P (@INSERT A a s))). +Axiom thm_EXISTS_SUBSET_INSERT : forall {A : Type'} (P : (A -> Prop) -> Prop), forall a : A, forall t : A -> Prop, (exists s : A -> Prop, (@SUBSET A s (@INSERT A a t)) /\ (P s)) = (exists s : A -> Prop, (@SUBSET A s t) /\ ((P s) \/ (P (@INSERT A a s)))). +Axiom thm_INTER_ASSOC : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@INTER A (@INTER A s t) u) = (@INTER A s (@INTER A t u)). +Axiom thm_INTER_IDEMPOT : forall {A : Type'}, forall s : A -> Prop, (@INTER A s s) = s. +Axiom thm_INTER_COMM : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@INTER A s t) = (@INTER A t s). +Axiom thm_INTER_SUBSET : forall {A : Type'}, (forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@INTER A s t) s) /\ (forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@INTER A t s) s). +Axiom thm_SUBSET_INTER_ABSORPTION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) = ((@INTER A s t) = s). +Axiom thm_INTER_EMPTY : forall {A : Type'}, (forall s : A -> Prop, (@INTER A (@EMPTY A) s) = (@EMPTY A)) /\ (forall s : A -> Prop, (@INTER A s (@EMPTY A)) = (@EMPTY A)). +Axiom thm_INTER_UNIV : forall {A : Type'}, (forall s : A -> Prop, (@INTER A (@UNIV A) s) = s) /\ (forall s : A -> Prop, (@INTER A s (@UNIV A)) = s). +Axiom thm_SUBSET_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@SUBSET A s (@INTER A t u)) = ((@SUBSET A s t) /\ (@SUBSET A s u)). +Axiom thm_INTER_RESTRICT : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@GSPEC A (fun GEN_PVAR_37 : A => exists x : A, @SETSPEC A GEN_PVAR_37 ((@IN A x (@INTER A s t)) /\ (P x)) x)) = (@INTER A (@GSPEC A (fun GEN_PVAR_38 : A => exists x : A, @SETSPEC A GEN_PVAR_38 ((@IN A x s) /\ (P x)) x)) (@GSPEC A (fun GEN_PVAR_39 : A => exists x : A, @SETSPEC A GEN_PVAR_39 ((@IN A x t) /\ (P x)) x))). +Axiom thm_UNION_OVER_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@INTER A s (@UNION A t u)) = (@UNION A (@INTER A s t) (@INTER A s u)). +Axiom thm_INTER_OVER_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@UNION A s (@INTER A t u)) = (@INTER A (@UNION A s t) (@UNION A s u)). +Axiom thm_IN_DISJOINT : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@DISJOINT A s t) = (~ (exists x : A, (@IN A x s) /\ (@IN A x t))). +Axiom thm_DISJOINT_SYM : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@DISJOINT A s t) = (@DISJOINT A t s). +Axiom thm_DISJOINT_EMPTY : forall {A : Type'}, forall s : A -> Prop, (@DISJOINT A (@EMPTY A) s) /\ (@DISJOINT A s (@EMPTY A)). +Axiom thm_DISJOINT_EMPTY_REFL : forall {A : Type'}, forall s : A -> Prop, (s = (@EMPTY A)) = (@DISJOINT A s s). +Axiom thm_DISJOINT_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (@DISJOINT A (@UNION A s t) u) = ((@DISJOINT A s u) /\ (@DISJOINT A t u)). +Axiom thm_DISJOINT_SING : forall {A : Type'}, (forall s : A -> Prop, forall a : A, (@DISJOINT A s (@INSERT A a (@EMPTY A))) = (~ (@IN A a s))) /\ (forall s : A -> Prop, forall a : A, (@DISJOINT A (@INSERT A a (@EMPTY A)) s) = (~ (@IN A a s))). +Axiom thm_DIFF_EMPTY : forall {A : Type'}, forall s : A -> Prop, (@DIFF A s (@EMPTY A)) = s. +Axiom thm_EMPTY_DIFF : forall {A : Type'}, forall s : A -> Prop, (@DIFF A (@EMPTY A) s) = (@EMPTY A). +Axiom thm_DIFF_UNIV : forall {A : Type'}, forall s : A -> Prop, (@DIFF A s (@UNIV A)) = (@EMPTY A). +Axiom thm_DIFF_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@DIFF A (@DIFF A s t) t) = (@DIFF A s t). +Axiom thm_DIFF_EQ_EMPTY : forall {A : Type'}, forall s : A -> Prop, (@DIFF A s s) = (@EMPTY A). +Axiom thm_SUBSET_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, @SUBSET A (@DIFF A s t) s. +Axiom thm_COMPL_COMPL : forall {A : Type'}, forall s : A -> Prop, (@DIFF A (@UNIV A) (@DIFF A (@UNIV A) s)) = s. +Axiom thm_DIFF_RESTRICT : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@GSPEC A (fun GEN_PVAR_40 : A => exists x : A, @SETSPEC A GEN_PVAR_40 ((@IN A x (@DIFF A s t)) /\ (P x)) x)) = (@DIFF A (@GSPEC A (fun GEN_PVAR_41 : A => exists x : A, @SETSPEC A GEN_PVAR_41 ((@IN A x s) /\ (P x)) x)) (@GSPEC A (fun GEN_PVAR_42 : A => exists x : A, @SETSPEC A GEN_PVAR_42 ((@IN A x t) /\ (P x)) x))). +Axiom thm_COMPONENT : forall {A : Type'}, forall x : A, forall s : A -> Prop, @IN A x (@INSERT A x s). +Axiom thm_DECOMPOSITION : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@IN A x s) = (exists t : A -> Prop, (s = (@INSERT A x t)) /\ (~ (@IN A x t))). +Axiom thm_SET_CASES : forall {A : Type'}, forall s : A -> Prop, (s = (@EMPTY A)) \/ (exists x : A, exists t : A -> Prop, (s = (@INSERT A x t)) /\ (~ (@IN A x t))). +Axiom thm_ABSORPTION : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@IN A x s) = ((@INSERT A x s) = s). +Axiom thm_INSERT_INSERT : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@INSERT A x (@INSERT A x s)) = (@INSERT A x s). +Axiom thm_INSERT_COMM : forall {A : Type'}, forall x : A, forall y : A, forall s : A -> Prop, (@INSERT A x (@INSERT A y s)) = (@INSERT A y (@INSERT A x s)). +Axiom thm_INSERT_UNIV : forall {A : Type'}, forall x : A, (@INSERT A x (@UNIV A)) = (@UNIV A). +Axiom thm_NOT_INSERT_EMPTY : forall {A : Type'}, forall x : A, forall s : A -> Prop, ~ ((@INSERT A x s) = (@EMPTY A)). +Axiom thm_NOT_EMPTY_INSERT : forall {A : Type'}, forall x : A, forall s : A -> Prop, ~ ((@EMPTY A) = (@INSERT A x s)). +Axiom thm_INSERT_UNION : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@UNION A (@INSERT A x s) t) = (@COND (A -> Prop) (@IN A x t) (@UNION A s t) (@INSERT A x (@UNION A s t))). +Axiom thm_INSERT_UNION_EQ : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@UNION A (@INSERT A x s) t) = (@INSERT A x (@UNION A s t)). +Axiom thm_INSERT_INTER : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@INTER A (@INSERT A x s) t) = (@COND (A -> Prop) (@IN A x t) (@INSERT A x (@INTER A s t)) (@INTER A s t)). +Axiom thm_DISJOINT_INSERT : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@DISJOINT A (@INSERT A x s) t) = ((@DISJOINT A s t) /\ (~ (@IN A x t))). +Axiom thm_INSERT_SUBSET : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A (@INSERT A x s) t) = ((@IN A x t) /\ (@SUBSET A s t)). +Axiom thm_SUBSET_INSERT : forall {A : Type'}, forall x : A, forall s : A -> Prop, (~ (@IN A x s)) -> forall t : A -> Prop, (@SUBSET A s (@INSERT A x t)) = (@SUBSET A s t). +Axiom thm_INSERT_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@DIFF A (@INSERT A x s) t) = (@COND (A -> Prop) (@IN A x t) (@DIFF A s t) (@INSERT A x (@DIFF A s t))). +Axiom thm_INSERT_AC : forall {A : Type'} (y : A) (x : A) (s : A -> Prop), ((@INSERT A x (@INSERT A y s)) = (@INSERT A y (@INSERT A x s))) /\ ((@INSERT A x (@INSERT A x s)) = (@INSERT A x s)). +Axiom thm_INTER_ACI : forall {A : Type'} (r : A -> Prop) (p : A -> Prop) (q : A -> Prop), ((@INTER A p q) = (@INTER A q p)) /\ (((@INTER A (@INTER A p q) r) = (@INTER A p (@INTER A q r))) /\ (((@INTER A p (@INTER A q r)) = (@INTER A q (@INTER A p r))) /\ (((@INTER A p p) = p) /\ ((@INTER A p (@INTER A p q)) = (@INTER A p q))))). +Axiom thm_UNION_ACI : forall {A : Type'} (r : A -> Prop) (p : A -> Prop) (q : A -> Prop), ((@UNION A p q) = (@UNION A q p)) /\ (((@UNION A (@UNION A p q) r) = (@UNION A p (@UNION A q r))) /\ (((@UNION A p (@UNION A q r)) = (@UNION A q (@UNION A p r))) /\ (((@UNION A p p) = p) /\ ((@UNION A p (@UNION A p q)) = (@UNION A p q))))). +Axiom thm_DELETE_NON_ELEMENT : forall {A : Type'}, forall x : A, forall s : A -> Prop, (~ (@IN A x s)) = ((@DELETE A s x) = s). +Axiom thm_IN_DELETE_EQ : forall {A : Type'}, forall s : A -> Prop, forall x : A, forall x' : A, ((@IN A x s) = (@IN A x' s)) = ((@IN A x (@DELETE A s x')) = (@IN A x' (@DELETE A s x))). +Axiom thm_EMPTY_DELETE : forall {A : Type'}, forall x : A, (@DELETE A (@EMPTY A) x) = (@EMPTY A). +Axiom thm_DELETE_DELETE : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@DELETE A (@DELETE A s x) x) = (@DELETE A s x). +Axiom thm_DELETE_COMM : forall {A : Type'}, forall x : A, forall y : A, forall s : A -> Prop, (@DELETE A (@DELETE A s x) y) = (@DELETE A (@DELETE A s y) x). +Axiom thm_DELETE_SUBSET : forall {A : Type'}, forall x : A, forall s : A -> Prop, @SUBSET A (@DELETE A s x) s. +Axiom thm_SUBSET_DELETE : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s (@DELETE A t x)) = ((~ (@IN A x s)) /\ (@SUBSET A s t)). +Axiom thm_SUBSET_INSERT_DELETE : forall {A : Type'}, forall x : A, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s (@INSERT A x t)) = (@SUBSET A (@DELETE A s x) t). +Axiom thm_DIFF_INSERT : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@DIFF A s (@INSERT A x t)) = (@DIFF A (@DELETE A s x) t). +Axiom thm_PSUBSET_INSERT_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@PSUBSET A s t) = (exists x : A, (~ (@IN A x s)) /\ (@SUBSET A (@INSERT A x s) t)). +Axiom thm_DELETE_INSERT : forall {A : Type'}, forall x : A, forall y : A, forall s : A -> Prop, (@DELETE A (@INSERT A x s) y) = (@COND (A -> Prop) (x = y) (@DELETE A s y) (@INSERT A x (@DELETE A s y))). +Axiom thm_INSERT_DELETE : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@IN A x s) -> (@INSERT A x (@DELETE A s x)) = s. +Axiom thm_DELETE_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@INTER A (@DELETE A s x) t) = (@DELETE A (@INTER A s t) x). +Axiom thm_DISJOINT_DELETE_SYM : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall x : A, (@DISJOINT A (@DELETE A s x) t) = (@DISJOINT A (@DELETE A t x) s). +Axiom thm_UNIONS_0 : forall {A : Type'}, (@UNIONS A (@EMPTY (A -> Prop))) = (@EMPTY A). +Axiom thm_UNIONS_1 : forall {A : Type'}, forall s : A -> Prop, (@UNIONS A (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) = s. +Axiom thm_UNIONS_2 : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@UNIONS A (@INSERT (A -> Prop) s (@INSERT (A -> Prop) t (@EMPTY (A -> Prop))))) = (@UNION A s t). +Axiom thm_UNIONS_INSERT : forall {A : Type'}, forall s : A -> Prop, forall u : (A -> Prop) -> Prop, (@UNIONS A (@INSERT (A -> Prop) s u)) = (@UNION A s (@UNIONS A u)). +Axiom thm_FORALL_IN_UNIONS : forall {A : Type'}, forall P : A -> Prop, forall s : (A -> Prop) -> Prop, (forall x : A, (@IN A x (@UNIONS A s)) -> P x) = (forall t : A -> Prop, forall x : A, ((@IN (A -> Prop) t s) /\ (@IN A x t)) -> P x). +Axiom thm_EXISTS_IN_UNIONS : forall {A : Type'}, forall P : A -> Prop, forall s : (A -> Prop) -> Prop, (exists x : A, (@IN A x (@UNIONS A s)) /\ (P x)) = (exists t : A -> Prop, exists x : A, (@IN (A -> Prop) t s) /\ ((@IN A x t) /\ (P x))). +Axiom thm_EMPTY_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, ((@UNIONS A s) = (@EMPTY A)) = (forall t : A -> Prop, (@IN (A -> Prop) t s) -> t = (@EMPTY A)). +Axiom thm_INTER_UNIONS : forall {A : Type'}, (forall s : (A -> Prop) -> Prop, forall t : A -> Prop, (@INTER A (@UNIONS A s) t) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_43 : A -> Prop => exists x : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_43 (@IN (A -> Prop) x s) (@INTER A x t))))) /\ (forall s : (A -> Prop) -> Prop, forall t : A -> Prop, (@INTER A t (@UNIONS A s)) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_44 : A -> Prop => exists x : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_44 (@IN (A -> Prop) x s) (@INTER A t x))))). +Axiom thm_UNIONS_SUBSET : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall t : A -> Prop, (@SUBSET A (@UNIONS A f) t) = (forall s : A -> Prop, (@IN (A -> Prop) s f) -> @SUBSET A s t). +Axiom thm_SUBSET_UNIONS : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall g : (A -> Prop) -> Prop, (@SUBSET (A -> Prop) f g) -> @SUBSET A (@UNIONS A f) (@UNIONS A g). +Axiom thm_UNIONS_UNION : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : (A -> Prop) -> Prop, (@UNIONS A (@UNION (A -> Prop) s t)) = (@UNION A (@UNIONS A s) (@UNIONS A t)). +Axiom thm_INTERS_UNION : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : (A -> Prop) -> Prop, (@INTERS A (@UNION (A -> Prop) s t)) = (@INTER A (@INTERS A s) (@INTERS A t)). +Axiom thm_UNIONS_MONO : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : (A -> Prop) -> Prop, (forall x : A -> Prop, (@IN (A -> Prop) x s) -> exists y : A -> Prop, (@IN (A -> Prop) y t) /\ (@SUBSET A x y)) -> @SUBSET A (@UNIONS A s) (@UNIONS A t). +Axiom thm_UNIONS_MONO_IMAGE : forall {A B : Type'}, forall f : A -> B -> Prop, forall g : A -> B -> Prop, forall s : A -> Prop, (forall x : A, (@IN A x s) -> @SUBSET B (f x) (g x)) -> @SUBSET B (@UNIONS B (@IMAGE A (B -> Prop) f s)) (@UNIONS B (@IMAGE A (B -> Prop) g s)). +Axiom thm_UNIONS_UNIV : forall {A : Type'}, (@UNIONS A (@UNIV (A -> Prop))) = (@UNIV A). +Axiom thm_UNIONS_INSERT_EMPTY : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@UNIONS A (@INSERT (A -> Prop) (@EMPTY A) s)) = (@UNIONS A s). +Axiom thm_UNIONS_DELETE_EMPTY : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@UNIONS A (@DELETE (A -> Prop) s (@EMPTY A))) = (@UNIONS A s). +Axiom thm_INTERS_0 : forall {A : Type'}, (@INTERS A (@EMPTY (A -> Prop))) = (@UNIV A). +Axiom thm_INTERS_1 : forall {A : Type'}, forall s : A -> Prop, (@INTERS A (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) = s. +Axiom thm_INTERS_2 : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@INTERS A (@INSERT (A -> Prop) s (@INSERT (A -> Prop) t (@EMPTY (A -> Prop))))) = (@INTER A s t). +Axiom thm_INTERS_INSERT : forall {A : Type'}, forall s : A -> Prop, forall u : (A -> Prop) -> Prop, (@INTERS A (@INSERT (A -> Prop) s u)) = (@INTER A s (@INTERS A u)). +Axiom thm_SUBSET_INTERS : forall {A : Type'}, forall s : A -> Prop, forall f : (A -> Prop) -> Prop, (@SUBSET A s (@INTERS A f)) = (forall t : A -> Prop, (@IN (A -> Prop) t f) -> @SUBSET A s t). +Axiom thm_INTERS_SUBSET : forall {A : Type'}, forall u : (A -> Prop) -> Prop, forall s : A -> Prop, ((~ (u = (@EMPTY (A -> Prop)))) /\ (forall t : A -> Prop, (@IN (A -> Prop) t u) -> @SUBSET A t s)) -> @SUBSET A (@INTERS A u) s. +Axiom thm_INTERS_SUBSET_STRONG : forall {A : Type'}, forall u : (A -> Prop) -> Prop, forall s : A -> Prop, (exists t : A -> Prop, (@IN (A -> Prop) t u) /\ (@SUBSET A t s)) -> @SUBSET A (@INTERS A u) s. +Axiom thm_INTERS_ANTIMONO : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall g : (A -> Prop) -> Prop, (@SUBSET (A -> Prop) g f) -> @SUBSET A (@INTERS A f) (@INTERS A g). +Axiom thm_INTERS_EQ_UNIV : forall {A : Type'}, forall f : (A -> Prop) -> Prop, ((@INTERS A f) = (@UNIV A)) = (forall s : A -> Prop, (@IN (A -> Prop) s f) -> s = (@UNIV A)). +Axiom thm_INTERS_ANTIMONO_GEN : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : (A -> Prop) -> Prop, (forall y : A -> Prop, (@IN (A -> Prop) y t) -> exists x : A -> Prop, (@IN (A -> Prop) x s) /\ (@SUBSET A x y)) -> @SUBSET A (@INTERS A s) (@INTERS A t). +Axiom thm_IMAGE_CLAUSES : forall {A B : Type'} (x : A) (f : A -> B) (s : A -> Prop), ((@IMAGE A B f (@EMPTY A)) = (@EMPTY B)) /\ ((@IMAGE A B f (@INSERT A x s)) = (@INSERT B (f x) (@IMAGE A B f s))). +Axiom thm_IMAGE_UNION : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, (@IMAGE A B f (@UNION A s t)) = (@UNION B (@IMAGE A B f s) (@IMAGE A B f t)). +Axiom thm_IMAGE_ID : forall {A : Type'}, forall s : A -> Prop, (@IMAGE A A (fun x : A => x) s) = s. +Axiom thm_IMAGE_I : forall {A : Type'}, forall s : A -> Prop, (@IMAGE A A (@I A) s) = s. +Axiom thm_IMAGE_o : forall {A B C : Type'}, forall f : B -> C, forall g : A -> B, forall s : A -> Prop, (@IMAGE A C (@o A B C f g) s) = (@IMAGE B C f (@IMAGE A B g s)). +Axiom thm_IMAGE_SUBSET : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> @SUBSET B (@IMAGE A B f s) (@IMAGE A B f t). +Axiom thm_IMAGE_INTER_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, (forall x : A, forall y : A, ((f x) = (f y)) -> x = y) -> (@IMAGE A B f (@INTER A s t)) = (@INTER B (@IMAGE A B f s) (@IMAGE A B f t)). +Axiom thm_IMAGE_DIFF_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y t) /\ ((f x) = (f y)))) -> x = y) -> (@IMAGE A B f (@DIFF A s t)) = (@DIFF B (@IMAGE A B f s) (@IMAGE A B f t)). +Axiom thm_IMAGE_DIFF_INJ_ALT : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@SUBSET A t s)) -> (@IMAGE A B f (@DIFF A s t)) = (@DIFF B (@IMAGE A B f s) (@IMAGE A B f t)). +Axiom thm_IMAGE_DELETE_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall a : A, (forall x : A, ((@IN A x s) /\ ((f x) = (f a))) -> x = a) -> (@IMAGE A B f (@DELETE A s a)) = (@DELETE B (@IMAGE A B f s) (f a)). +Axiom thm_IMAGE_DELETE_INJ_ALT : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall a : A, ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@IN A a s)) -> (@IMAGE A B f (@DELETE A s a)) = (@DELETE B (@IMAGE A B f s) (f a)). +Axiom thm_IMAGE_EQ_EMPTY : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, ((@IMAGE A B f s) = (@EMPTY B)) = (s = (@EMPTY A)). +Axiom thm_FORALL_IN_IMAGE_2 : forall {A B : Type'}, forall f : A -> B, forall P : B -> B -> Prop, forall s : A -> Prop, (forall x : B, forall y : B, ((@IN B x (@IMAGE A B f s)) /\ (@IN B y (@IMAGE A B f s))) -> P x y) = (forall x : A, forall y : A, ((@IN A x s) /\ (@IN A y s)) -> P (f x) (f y)). +Axiom thm_IMAGE_CONST : forall {A B : Type'}, forall s : A -> Prop, forall c : B, (@IMAGE A B (fun x : A => c) s) = (@COND (B -> Prop) (s = (@EMPTY A)) (@EMPTY B) (@INSERT B c (@EMPTY B))). +Axiom thm_SIMPLE_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@GSPEC B (fun GEN_PVAR_45 : B => exists x : A, @SETSPEC B GEN_PVAR_45 (@IN A x s) (f x))) = (@IMAGE A B f s). +Axiom thm_SIMPLE_IMAGE_GEN : forall {A B : Type'}, forall f : A -> B, forall P : A -> Prop, (@GSPEC B (fun GEN_PVAR_46 : B => exists x : A, @SETSPEC B GEN_PVAR_46 (P x) (f x))) = (@IMAGE A B f (@GSPEC A (fun GEN_PVAR_47 : A => exists x : A, @SETSPEC A GEN_PVAR_47 (P x) x))). +Axiom thm_IMAGE_UNIONS : forall {A B : Type'}, forall f : A -> B, forall s : (A -> Prop) -> Prop, (@IMAGE A B f (@UNIONS A s)) = (@UNIONS B (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) s)). +Axiom thm_FUN_IN_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall x : A, (@IN A x s) -> @IN B (f x) (@IMAGE A B f s). +Axiom thm_SURJECTIVE_IMAGE_EQ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((forall y : B, (@IN B y t) -> exists x : A, (f x) = y) /\ (forall x : A, (@IN B (f x) t) = (@IN A x s))) -> (@IMAGE A B f s) = t. +Axiom thm_IMAGE_EQ : forall {A B : Type'}, forall f : A -> B, forall g : A -> B, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (g x)) -> (@IMAGE A B f s) = (@IMAGE A B g s). +Axiom thm_EMPTY_GSPEC : forall {A : Type'}, (@GSPEC A (fun GEN_PVAR_48 : A => exists x : A, @SETSPEC A GEN_PVAR_48 False x)) = (@EMPTY A). +Axiom thm_UNIV_GSPEC : forall {A : Type'}, (@GSPEC A (fun GEN_PVAR_49 : A => exists x : A, @SETSPEC A GEN_PVAR_49 True x)) = (@UNIV A). +Axiom thm_SING_GSPEC : forall {A : Type'}, (forall a : A, (@GSPEC A (fun GEN_PVAR_50 : A => exists x : A, @SETSPEC A GEN_PVAR_50 (x = a) x)) = (@INSERT A a (@EMPTY A))) /\ (forall a : A, (@GSPEC A (fun GEN_PVAR_51 : A => exists x : A, @SETSPEC A GEN_PVAR_51 (a = x) x)) = (@INSERT A a (@EMPTY A))). +Axiom thm_SING_ALT : forall {A : Type'}, forall s : A -> Prop, (exists x : A, s = (@INSERT A x (@EMPTY A))) = (@ex1 A (fun x : A => @IN A x s)). +Axiom thm_IN_GSPEC : forall {A : Type'}, forall s : A -> Prop, (@GSPEC A (fun GEN_PVAR_52 : A => exists x : A, @SETSPEC A GEN_PVAR_52 (@IN A x s) x)) = s. +Axiom thm_IN_ELIM_PAIR_THM : forall {A B : Type'}, forall P : A -> B -> Prop, forall a : A, forall b : B, (@IN (prod A B) (@pair A B a b) (@GSPEC (prod A B) (fun GEN_PVAR_53 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_53 (P x y) (@pair A B x y)))) = (P a b). +Axiom thm_IN_ELIM_TRIPLE_THM : forall {A B C : Type'}, (forall P : A -> B -> C -> Prop, forall a : A, forall b : B, forall c : C, (@IN (prod A (prod B C)) (@pair A (prod B C) a (@pair B C b c)) (@GSPEC (prod A (prod B C)) (fun GEN_PVAR_54 : prod A (prod B C) => exists x : A, exists y : B, exists z : C, @SETSPEC (prod A (prod B C)) GEN_PVAR_54 (P x y z) (@pair A (prod B C) x (@pair B C y z))))) = (P a b c)) /\ (forall P : A -> B -> C -> Prop, forall a : A, forall b : B, forall c : C, (@IN (prod (prod A B) C) (@pair (prod A B) C (@pair A B a b) c) (@GSPEC (prod (prod A B) C) (fun GEN_PVAR_55 : prod (prod A B) C => exists x : A, exists y : B, exists z : C, @SETSPEC (prod (prod A B) C) GEN_PVAR_55 (P x y z) (@pair (prod A B) C (@pair A B x y) z)))) = (P a b c)). +Axiom thm_IN_ELIM_QUAD_THM : forall {A B C D : Type'}, (forall P : A -> B -> C -> D -> Prop, forall a : A, forall b : B, forall c : C, forall d : D, (@IN (prod A (prod B (prod C D))) (@pair A (prod B (prod C D)) a (@pair B (prod C D) b (@pair C D c d))) (@GSPEC (prod A (prod B (prod C D))) (fun GEN_PVAR_56 : prod A (prod B (prod C D)) => exists w : A, exists x : B, exists y : C, exists z : D, @SETSPEC (prod A (prod B (prod C D))) GEN_PVAR_56 (P w x y z) (@pair A (prod B (prod C D)) w (@pair B (prod C D) x (@pair C D y z)))))) = (P a b c d)) /\ ((forall P : A -> B -> C -> D -> Prop, forall a : A, forall b : B, forall c : C, forall d : D, (@IN (prod (prod A B) (prod C D)) (@pair (prod A B) (prod C D) (@pair A B a b) (@pair C D c d)) (@GSPEC (prod (prod A B) (prod C D)) (fun GEN_PVAR_57 : prod (prod A B) (prod C D) => exists w : A, exists x : B, exists y : C, exists z : D, @SETSPEC (prod (prod A B) (prod C D)) GEN_PVAR_57 (P w x y z) (@pair (prod A B) (prod C D) (@pair A B w x) (@pair C D y z))))) = (P a b c d)) /\ (forall P : A -> B -> C -> D -> Prop, forall a : A, forall b : B, forall c : C, forall d : D, (@IN (prod (prod (prod A B) C) D) (@pair (prod (prod A B) C) D (@pair (prod A B) C (@pair A B a b) c) d) (@GSPEC (prod (prod (prod A B) C) D) (fun GEN_PVAR_58 : prod (prod (prod A B) C) D => exists w : A, exists x : B, exists y : C, exists z : D, @SETSPEC (prod (prod (prod A B) C) D) GEN_PVAR_58 (P w x y z) (@pair (prod (prod A B) C) D (@pair (prod A B) C (@pair A B w x) y) z)))) = (P a b c d))). +Axiom thm_SET_PAIR_THM : forall {A B : Type'}, forall P : (prod A B) -> Prop, (@GSPEC (prod A B) (fun GEN_PVAR_59 : prod A B => exists p : prod A B, @SETSPEC (prod A B) GEN_PVAR_59 (P p) p)) = (@GSPEC (prod A B) (fun GEN_PVAR_60 : prod A B => exists a : A, exists b : B, @SETSPEC (prod A B) GEN_PVAR_60 (P (@pair A B a b)) (@pair A B a b))). +Axiom thm_SET_PROVE_CASES : forall {A : Type'}, forall P : (A -> Prop) -> Prop, ((P (@EMPTY A)) /\ (forall a : A, forall s : A -> Prop, (~ (@IN A a s)) -> P (@INSERT A a s))) -> forall s : A -> Prop, P s. +Axiom thm_UNIONS_SINGS_GEN : forall {A : Type'}, forall P : A -> Prop, (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_61 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_61 (P x) (@INSERT A x (@EMPTY A))))) = (@GSPEC A (fun GEN_PVAR_62 : A => exists x : A, @SETSPEC A GEN_PVAR_62 (P x) x)). +Axiom thm_UNIONS_SINGS : forall {A : Type'}, forall s : A -> Prop, (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_63 : A -> Prop => exists x : A, @SETSPEC (A -> Prop) GEN_PVAR_63 (@IN A x s) (@INSERT A x (@EMPTY A))))) = s. +Axiom thm_IMAGE_INTERS : forall {A B : Type'}, forall f : A -> B, forall s : (A -> Prop) -> Prop, ((~ (s = (@EMPTY (A -> Prop)))) /\ (forall x : A, forall y : A, ((@IN A x (@UNIONS A s)) /\ ((@IN A y (@UNIONS A s)) /\ ((f x) = (f y)))) -> x = y)) -> (@IMAGE A B f (@INTERS A s)) = (@INTERS B (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) s)). +Axiom thm_DIFF_INTERS : forall {A : Type'}, forall u : A -> Prop, forall s : (A -> Prop) -> Prop, (@DIFF A u (@INTERS A s)) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_64 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_64 (@IN (A -> Prop) t s) (@DIFF A u t)))). +Axiom thm_INTERS_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@INTERS A s) = (@DIFF A (@UNIV A) (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_65 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_65 (@IN (A -> Prop) t s) (@DIFF A (@UNIV A) t))))). +Axiom thm_UNIONS_INTERS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@UNIONS A s) = (@DIFF A (@UNIV A) (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_66 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_66 (@IN (A -> Prop) t s) (@DIFF A (@UNIV A) t))))). +Axiom thm_UNIONS_DIFF : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : A -> Prop, (@DIFF A (@UNIONS A s) t) = (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_67 : A -> Prop => exists x : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_67 (@IN (A -> Prop) x s) (@DIFF A x t)))). +Axiom thm_DIFF_UNIONS : forall {A : Type'}, forall u : A -> Prop, forall s : (A -> Prop) -> Prop, (@DIFF A u (@UNIONS A s)) = (@INTER A u (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_68 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_68 (@IN (A -> Prop) t s) (@DIFF A u t))))). +Axiom thm_DIFF_UNIONS_NONEMPTY : forall {A : Type'}, forall u : A -> Prop, forall s : (A -> Prop) -> Prop, (~ (s = (@EMPTY (A -> Prop)))) -> (@DIFF A u (@UNIONS A s)) = (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_69 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_69 (@IN (A -> Prop) t s) (@DIFF A u t)))). +Axiom thm_INTERS_OVER_UNIONS : forall {A B : Type'}, forall f : A -> (B -> Prop) -> Prop, forall s : A -> Prop, (@INTERS B (@GSPEC (B -> Prop) (fun GEN_PVAR_70 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_70 (@IN A x s) (@UNIONS B (f x))))) = (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_74 : B -> Prop => exists g : A -> B -> Prop, @SETSPEC (B -> Prop) GEN_PVAR_74 (forall x : A, (@IN A x s) -> @IN (B -> Prop) (g x) (f x)) (@INTERS B (@GSPEC (B -> Prop) (fun GEN_PVAR_73 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_73 (@IN A x s) (g x))))))). +Axiom thm_INTER_INTERS : forall {A : Type'}, (forall f : (A -> Prop) -> Prop, forall s : A -> Prop, (@INTER A s (@INTERS A f)) = (@COND (A -> Prop) (f = (@EMPTY (A -> Prop))) s (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_75 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_75 (@IN (A -> Prop) t f) (@INTER A s t)))))) /\ (forall f : (A -> Prop) -> Prop, forall s : A -> Prop, (@INTER A (@INTERS A f) s) = (@COND (A -> Prop) (f = (@EMPTY (A -> Prop))) s (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_76 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_76 (@IN (A -> Prop) t f) (@INTER A t s)))))). +Axiom thm_UNIONS_OVER_INTERS : forall {A B : Type'}, forall f : A -> (B -> Prop) -> Prop, forall s : A -> Prop, (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_77 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_77 (@IN A x s) (@INTERS B (f x))))) = (@INTERS B (@GSPEC (B -> Prop) (fun GEN_PVAR_81 : B -> Prop => exists g : A -> B -> Prop, @SETSPEC (B -> Prop) GEN_PVAR_81 (forall x : A, (@IN A x s) -> @IN (B -> Prop) (g x) (f x)) (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_80 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_80 (@IN A x s) (g x))))))). +Axiom thm_UNIONS_EQ_INTERS : forall {A : Type'}, forall f : (A -> Prop) -> Prop, ((@UNIONS A f) = (@INTERS A f)) = (exists s : A -> Prop, f = (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))). +Axiom thm_EXISTS_UNIQUE_UNIONS_INTERS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@ex1 (A -> Prop) (fun s : A -> Prop => P s)) = ((@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_82 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_82 (P s) s))) = (@INTERS A (@GSPEC (A -> Prop) (fun GEN_PVAR_83 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_83 (P s) s)))). +Axiom thm_IMAGE_INTERS_SUBSET : forall {A B : Type'}, forall f : A -> B, forall g : (A -> Prop) -> Prop, @SUBSET B (@IMAGE A B f (@INTERS A g)) (@INTERS B (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) g)). +Axiom thm_IMAGE_INTER_SUBSET : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, @SUBSET B (@IMAGE A B f (@INTER A s t)) (@INTER B (@IMAGE A B f s) (@IMAGE A B f t)). +Axiom thm_IMAGE_INTER_SATURATED_GEN : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, (((@SUBSET A (@GSPEC A (fun GEN_PVAR_84 : A => exists x : A, @SETSPEC A GEN_PVAR_84 ((@IN A x u) /\ (@IN B (f x) (@IMAGE A B f s))) x)) s) /\ (@SUBSET A t u)) \/ ((@SUBSET A (@GSPEC A (fun GEN_PVAR_85 : A => exists x : A, @SETSPEC A GEN_PVAR_85 ((@IN A x u) /\ (@IN B (f x) (@IMAGE A B f t))) x)) t) /\ (@SUBSET A s u))) -> (@IMAGE A B f (@INTER A s t)) = (@INTER B (@IMAGE A B f s) (@IMAGE A B f t)). +Axiom thm_IMAGE_INTERS_SATURATED_GEN : forall {A B : Type'}, forall f : A -> B, forall g : (A -> Prop) -> Prop, forall s : A -> Prop, forall u : A -> Prop, ((~ (g = (@EMPTY (A -> Prop)))) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t g) -> @SUBSET A t u) /\ (forall t : A -> Prop, (@IN (A -> Prop) t (@DELETE (A -> Prop) g s)) -> @SUBSET A (@GSPEC A (fun GEN_PVAR_87 : A => exists x : A, @SETSPEC A GEN_PVAR_87 ((@IN A x u) /\ (@IN B (f x) (@IMAGE A B f t))) x)) t))) -> (@IMAGE A B f (@INTERS A g)) = (@INTERS B (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) g)). +Axiom thm_IMAGE_INTER_SATURATED : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A (@GSPEC A (fun GEN_PVAR_88 : A => exists x : A, @SETSPEC A GEN_PVAR_88 (@IN B (f x) (@IMAGE A B f s)) x)) s) \/ (@SUBSET A (@GSPEC A (fun GEN_PVAR_89 : A => exists x : A, @SETSPEC A GEN_PVAR_89 (@IN B (f x) (@IMAGE A B f t)) x)) t)) -> (@IMAGE A B f (@INTER A s t)) = (@INTER B (@IMAGE A B f s) (@IMAGE A B f t)). +Axiom thm_IMAGE_INTERS_SATURATED : forall {A B : Type'}, forall f : A -> B, forall g : (A -> Prop) -> Prop, forall s : A -> Prop, ((~ (g = (@EMPTY (A -> Prop)))) /\ (forall t : A -> Prop, (@IN (A -> Prop) t (@DELETE (A -> Prop) g s)) -> @SUBSET A (@GSPEC A (fun GEN_PVAR_90 : A => exists x : A, @SETSPEC A GEN_PVAR_90 (@IN B (f x) (@IMAGE A B f t)) x)) t)) -> (@IMAGE A B f (@INTERS A g)) = (@INTERS B (@IMAGE (A -> Prop) (B -> Prop) (@IMAGE A B f) g)). +Axiom thm_FINITE_INDUCT_STRONG : forall {A : Type'}, forall P : (A -> Prop) -> Prop, ((P (@EMPTY A)) /\ (forall x : A, forall s : A -> Prop, ((P s) /\ ((~ (@IN A x s)) /\ (@FINITE A s))) -> P (@INSERT A x s))) -> forall s : A -> Prop, (@FINITE A s) -> P s. +Axiom thm_INJECTIVE_ON_ALT : forall {A B : Type'}, forall P : A -> Prop, forall f : A -> B, (forall x : A, forall y : A, ((P x) /\ ((P y) /\ ((f x) = (f y)))) -> x = y) = (forall x : A, forall y : A, ((P x) /\ (P y)) -> ((f x) = (f y)) = (x = y)). +Axiom thm_INJECTIVE_ALT : forall {A B : Type'}, forall f : A -> B, (forall x : A, forall y : A, ((f x) = (f y)) -> x = y) = (forall x : A, forall y : A, ((f x) = (f y)) = (x = y)). +Axiom thm_SURJECTIVE_ON_RIGHT_INVERSE : forall {A B : Type'} (s : A -> Prop), forall f : A -> B, forall t : B -> Prop, (forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ ((f x) = y)) = (exists g : B -> A, forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)). +Axiom thm_INJECTIVE_ON_LEFT_INVERSE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) = (exists g : B -> A, forall x : A, (@IN A x s) -> (g (f x)) = x). +Axiom thm_BIJECTIVE_ON_LEFT_RIGHT_INVERSE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, (forall x : A, (@IN A x s) -> @IN B (f x) t) -> ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ ((f x) = y))) = (exists g : B -> A, (forall y : B, (@IN B y t) -> @IN A (g y) s) /\ ((forall y : B, (@IN B y t) -> (f (g y)) = y) /\ (forall x : A, (@IN A x s) -> (g (f x)) = x))). +Axiom thm_SURJECTIVE_RIGHT_INVERSE : forall {A B : Type'}, forall f : A -> B, (forall y : B, exists x : A, (f x) = y) = (exists g : B -> A, forall y : B, (f (g y)) = y). +Axiom thm_INJECTIVE_LEFT_INVERSE : forall {A B : Type'}, forall f : A -> B, (forall x : A, forall y : A, ((f x) = (f y)) -> x = y) = (exists g : B -> A, forall x : A, (g (f x)) = x). +Axiom thm_BIJECTIVE_LEFT_RIGHT_INVERSE : forall {A B : Type'}, forall f : A -> B, ((forall x : A, forall y : A, ((f x) = (f y)) -> x = y) /\ (forall y : B, exists x : A, (f x) = y)) = (exists g : B -> A, (forall y : B, (f (g y)) = y) /\ (forall x : A, (g (f x)) = x)). +Axiom thm_FUNCTION_FACTORS_LEFT_GEN : forall {A B C : Type'}, forall P : A -> Prop, forall f : A -> B, forall g : A -> C, (forall x : A, forall y : A, ((P x) /\ ((P y) /\ ((g x) = (g y)))) -> (f x) = (f y)) = (exists h : C -> B, forall x : A, (P x) -> (f x) = (h (g x))). +Axiom thm_FUNCTION_FACTORS_LEFT : forall {A B C : Type'}, forall f : A -> B, forall g : A -> C, (forall x : A, forall y : A, ((g x) = (g y)) -> (f x) = (f y)) = (exists h : C -> B, f = (@o A C B h g)). +Axiom thm_FUNCTION_FACTORS_RIGHT_GEN : forall {A B C : Type'}, forall P : A -> Prop, forall f : A -> C, forall g : B -> C, (forall x : A, (P x) -> exists y : B, (g y) = (f x)) = (exists h : A -> B, forall x : A, (P x) -> (f x) = (g (h x))). +Axiom thm_FUNCTION_FACTORS_RIGHT : forall {A B C : Type'}, forall f : A -> C, forall g : B -> C, (forall x : A, exists y : B, (g y) = (f x)) = (exists h : A -> B, f = (@o A B C g h)). +Axiom thm_SURJECTIVE_FORALL_THM : forall {A B : Type'}, forall f : A -> B, (forall y : B, exists x : A, (f x) = y) = (forall P : B -> Prop, (forall x : A, P (f x)) = (forall y : B, P y)). +Axiom thm_SURJECTIVE_EXISTS_THM : forall {A B : Type'}, forall f : A -> B, (forall y : B, exists x : A, (f x) = y) = (forall P : B -> Prop, (exists x : A, P (f x)) = (exists y : B, P y)). +Axiom thm_SURJECTIVE_IMAGE_THM : forall {A B : Type'}, forall f : A -> B, (forall y : B, exists x : A, (f x) = y) = (forall P : B -> Prop, (@IMAGE A B f (@GSPEC A (fun GEN_PVAR_91 : A => exists x : A, @SETSPEC A GEN_PVAR_91 (P (f x)) x))) = (@GSPEC B (fun GEN_PVAR_92 : B => exists x : B, @SETSPEC B GEN_PVAR_92 (P x) x))). +Axiom thm_IMAGE_INJECTIVE_IMAGE_OF_SUBSET : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, exists t : A -> Prop, (@SUBSET A t s) /\ (((@IMAGE A B f s) = (@IMAGE A B f t)) /\ (forall x : A, forall y : A, ((@IN A x t) /\ ((@IN A y t) /\ ((f x) = (f y)))) -> x = y)). +Axiom thm_FINITE_EMPTY : forall {A : Type'}, @FINITE A (@EMPTY A). +Axiom thm_FINITE_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (@SUBSET A s t)) -> @FINITE A s. +Axiom thm_FINITE_RESTRICT : forall {A : Type'}, forall s : A -> Prop, forall P : A -> Prop, (@FINITE A s) -> @FINITE A (@GSPEC A (fun GEN_PVAR_93 : A => exists x : A, @SETSPEC A GEN_PVAR_93 ((@IN A x s) /\ (P x)) x)). +Axiom thm_FINITE_UNION_IMP : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@FINITE A t)) -> @FINITE A (@UNION A s t). +Axiom thm_FINITE_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@FINITE A (@UNION A s t)) = ((@FINITE A s) /\ (@FINITE A t)). +Axiom thm_FINITE_INTER : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) \/ (@FINITE A t)) -> @FINITE A (@INTER A s t). +Axiom thm_FINITE_INSERT : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@FINITE A (@INSERT A x s)) = (@FINITE A s). +Axiom thm_FINITE_SING : forall {A : Type'}, forall a : A, @FINITE A (@INSERT A a (@EMPTY A)). +Axiom thm_FINITE_DELETE_IMP : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@FINITE A s) -> @FINITE A (@DELETE A s x). +Axiom thm_FINITE_DELETE : forall {A : Type'}, forall s : A -> Prop, forall x : A, (@FINITE A (@DELETE A s x)) = (@FINITE A s). +Axiom thm_FINITE_FINITE_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@FINITE (A -> Prop) s) -> (@FINITE A (@UNIONS A s)) = (forall t : A -> Prop, (@IN (A -> Prop) t s) -> @FINITE A t). +Axiom thm_FINITE_IMAGE_EXPAND : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@FINITE A s) -> @FINITE B (@GSPEC B (fun GEN_PVAR_96 : B => exists y : B, @SETSPEC B GEN_PVAR_96 (exists x : A, (@IN A x s) /\ (y = (f x))) y)). +Axiom thm_FINITE_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@FINITE A s) -> @FINITE B (@IMAGE A B f s). +Axiom thm_FINITE_IMAGE_INJ_GENERAL : forall {A B : Type'}, forall f : A -> B, forall A' : B -> Prop, forall s : A -> Prop, ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@FINITE B A')) -> @FINITE A (@GSPEC A (fun GEN_PVAR_97 : A => exists x : A, @SETSPEC A GEN_PVAR_97 ((@IN A x s) /\ (@IN B (f x) A')) x)). +Axiom thm_FINITE_FINITE_PREIMAGE_GENERAL : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE B t) /\ (forall y : B, (@IN B y t) -> @FINITE A (@GSPEC A (fun GEN_PVAR_100 : A => exists x : A, @SETSPEC A GEN_PVAR_100 ((@IN A x s) /\ ((f x) = y)) x)))) -> @FINITE A (@GSPEC A (fun GEN_PVAR_101 : A => exists x : A, @SETSPEC A GEN_PVAR_101 ((@IN A x s) /\ (@IN B (f x) t)) x)). +Axiom thm_FINITE_FINITE_PREIMAGE : forall {A B : Type'}, forall f : A -> B, forall t : B -> Prop, ((@FINITE B t) /\ (forall y : B, (@IN B y t) -> @FINITE A (@GSPEC A (fun GEN_PVAR_102 : A => exists x : A, @SETSPEC A GEN_PVAR_102 ((f x) = y) x)))) -> @FINITE A (@GSPEC A (fun GEN_PVAR_103 : A => exists x : A, @SETSPEC A GEN_PVAR_103 (@IN B (f x) t) x)). +Axiom thm_FINITE_IMAGE_INJ_EQ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) -> (@FINITE B (@IMAGE A B f s)) = (@FINITE A s). +Axiom thm_FINITE_IMAGE_INJ : forall {A B : Type'}, forall f : A -> B, forall A' : B -> Prop, ((forall x : A, forall y : A, ((f x) = (f y)) -> x = y) /\ (@FINITE B A')) -> @FINITE A (@GSPEC A (fun GEN_PVAR_104 : A => exists x : A, @SETSPEC A GEN_PVAR_104 (@IN B (f x) A') x)). +Axiom thm_FINITE_IMAGE_GEN : forall {A B C : Type'}, forall f : A -> B, forall g : A -> C, forall s : A -> Prop, forall t : B -> Prop, ((@SUBSET B (@IMAGE A B f s) t) /\ ((@FINITE B t) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> (g x) = (g y)))) -> @FINITE C (@IMAGE A C g s). +Axiom thm_INFINITE_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, ((@INFINITE A s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y)) -> @INFINITE B (@IMAGE A B f s). +Axiom thm_INFINITE_IMAGE_INJ : forall {A B : Type'}, forall f : A -> B, (forall x : A, forall y : A, ((f x) = (f y)) -> x = y) -> forall s : A -> Prop, (@INFINITE A s) -> @INFINITE B (@IMAGE A B f s). +Axiom thm_INFINITE_NONEMPTY : forall {A : Type'}, forall s : A -> Prop, (@INFINITE A s) -> ~ (s = (@EMPTY A)). +Axiom thm_INFINITE_DIFF_FINITE : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@INFINITE A s) /\ (@FINITE A t)) -> @INFINITE A (@DIFF A s t). +Axiom thm_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall f : A -> B, forall s : B -> Prop, forall t : A -> Prop, (@SUBSET B s (@IMAGE A B f t)) = (exists u : A -> Prop, (@SUBSET A u t) /\ ((forall x : A, forall y : A, ((@IN A x u) /\ (@IN A y u)) -> ((f x) = (f y)) = (x = y)) /\ (s = (@IMAGE A B f u)))). +Axiom thm_SUBSET_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : B -> Prop, forall t : A -> Prop, (@SUBSET B s (@IMAGE A B f t)) = (exists u : A -> Prop, (@SUBSET A u t) /\ (s = (@IMAGE A B f u))). +Axiom thm_EXISTS_SUBSET_IMAGE : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (exists t : B -> Prop, (@SUBSET B t (@IMAGE A B f s)) /\ (P t)) = (exists t : A -> Prop, (@SUBSET A t s) /\ (P (@IMAGE A B f t))). +Axiom thm_FORALL_SUBSET_IMAGE : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (forall t : B -> Prop, (@SUBSET B t (@IMAGE A B f s)) -> P t) = (forall t : A -> Prop, (@SUBSET A t s) -> P (@IMAGE A B f t)). +Axiom thm_EXISTS_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (exists t : B -> Prop, (@SUBSET B t (@IMAGE A B f s)) /\ (P t)) = (exists t : A -> Prop, (@SUBSET A t s) /\ ((forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y)) /\ (P (@IMAGE A B f t)))). +Axiom thm_FORALL_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (forall t : B -> Prop, (@SUBSET B t (@IMAGE A B f s)) -> P t) = (forall t : A -> Prop, ((@SUBSET A t s) /\ (forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y))) -> P (@IMAGE A B f t)). +Axiom thm_EXISTS_FINITE_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (exists t : B -> Prop, (@FINITE B t) /\ ((@SUBSET B t (@IMAGE A B f s)) /\ (P t))) = (exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ ((forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y)) /\ (P (@IMAGE A B f t))))). +Axiom thm_FORALL_FINITE_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (forall t : B -> Prop, ((@FINITE B t) /\ (@SUBSET B t (@IMAGE A B f s))) -> P t) = (forall t : A -> Prop, ((@FINITE A t) /\ ((@SUBSET A t s) /\ (forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y)))) -> P (@IMAGE A B f t)). +Axiom thm_EXISTS_FINITE_SUBSET_IMAGE : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (exists t : B -> Prop, (@FINITE B t) /\ ((@SUBSET B t (@IMAGE A B f s)) /\ (P t))) = (exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ (P (@IMAGE A B f t)))). +Axiom thm_FORALL_FINITE_SUBSET_IMAGE : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, (forall t : B -> Prop, ((@FINITE B t) /\ (@SUBSET B t (@IMAGE A B f s))) -> P t) = (forall t : A -> Prop, ((@FINITE A t) /\ (@SUBSET A t s)) -> P (@IMAGE A B f t)). +Axiom thm_FINITE_SUBSET_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE B t) /\ (@SUBSET B t (@IMAGE A B f s))) = (exists s' : A -> Prop, (@FINITE A s') /\ ((@SUBSET A s' s) /\ (t = (@IMAGE A B f s')))). +Axiom thm_FINITE_SUBSET_IMAGE_IMP : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE B t) /\ (@SUBSET B t (@IMAGE A B f s))) -> exists s' : A -> Prop, (@FINITE A s') /\ ((@SUBSET A s' s) /\ (@SUBSET B t (@IMAGE A B f s'))). +Axiom thm_FINITE_IMAGE_EQ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@FINITE B (@IMAGE A B f s)) = (exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ ((@IMAGE A B f s) = (@IMAGE A B f t)))). +Axiom thm_FINITE_IMAGE_EQ_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@FINITE B (@IMAGE A B f s)) = (exists t : A -> Prop, (@FINITE A t) /\ ((@SUBSET A t s) /\ (((@IMAGE A B f s) = (@IMAGE A B f t)) /\ (forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y))))). +Axiom thm_FINITE_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, (@FINITE A s) -> @FINITE A (@DIFF A s t). +Axiom thm_INFINITE_SUPERSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@INFINITE A s) /\ (@SUBSET A s t)) -> @INFINITE A t. +Axiom thm_FINITE_TRANSITIVITY_CHAIN : forall {A : Type'}, forall R' : A -> A -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, ~ (R' x x)) /\ ((forall x : A, forall y : A, forall z : A, ((R' x y) /\ (R' y z)) -> R' x z) /\ (forall x : A, (@IN A x s) -> exists y : A, (@IN A y s) /\ (R' x y))))) -> s = (@EMPTY A). +Axiom thm_UNIONS_MAXIMAL_SETS : forall {A : Type'}, forall f : (A -> Prop) -> Prop, (@FINITE (A -> Prop) f) -> (@UNIONS A (@GSPEC (A -> Prop) (fun GEN_PVAR_106 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_106 ((@IN (A -> Prop) t f) /\ (forall u : A -> Prop, (@IN (A -> Prop) u f) -> ~ (@PSUBSET A t u))) t))) = (@UNIONS A f). +Axiom thm_FINITE_SUBSET_UNIONS : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ (@SUBSET A s (@UNIONS A f))) -> exists f' : (A -> Prop) -> Prop, (@FINITE (A -> Prop) f') /\ ((@SUBSET (A -> Prop) f' f) /\ (@SUBSET A s (@UNIONS A f'))). +Axiom thm_UNIONS_IN_CHAIN : forall {A : Type'}, forall f : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) f) /\ ((~ (f = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s f) /\ (@IN (A -> Prop) t f)) -> (@SUBSET A s t) \/ (@SUBSET A t s)))) -> @IN (A -> Prop) (@UNIONS A f) f. +Axiom thm_INTERS_IN_CHAIN : forall {A : Type'}, forall f : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) f) /\ ((~ (f = (@EMPTY (A -> Prop)))) /\ (forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s f) /\ (@IN (A -> Prop) t f)) -> (@SUBSET A s t) \/ (@SUBSET A t s)))) -> @IN (A -> Prop) (@INTERS A f) f. +Axiom thm_FINITE_SUBSET_UNIONS_DIRECTED_EQ : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall s : A -> Prop, ((~ (f = (@EMPTY (A -> Prop)))) /\ ((forall t : A -> Prop, forall u : A -> Prop, ((@IN (A -> Prop) t f) /\ (@IN (A -> Prop) u f)) -> exists v : A -> Prop, (@IN (A -> Prop) v f) /\ ((@SUBSET A t v) /\ (@SUBSET A u v))) /\ (@FINITE A s))) -> (@SUBSET A s (@UNIONS A f)) = (exists t : A -> Prop, (@IN (A -> Prop) t f) /\ (@SUBSET A s t)). +Axiom thm_FINITE_SUBSET_UNIONS_CHAIN : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall s : A -> Prop, ((@FINITE A s) /\ ((@SUBSET A s (@UNIONS A f)) /\ ((~ (f = (@EMPTY (A -> Prop)))) /\ (forall t : A -> Prop, forall u : A -> Prop, ((@IN (A -> Prop) t f) /\ (@IN (A -> Prop) u f)) -> (@SUBSET A t u) \/ (@SUBSET A u t))))) -> exists t : A -> Prop, (@IN (A -> Prop) t f) /\ (@SUBSET A s t). +Axiom thm_FINREC : forall {A B : Type'} (b : B) (s : A -> Prop) (n : N) (a : B) (f : A -> B -> B), ((@FINREC A B f b s a (NUMERAL 0%N)) = ((s = (@EMPTY A)) /\ (a = b))) /\ ((@FINREC A B f b s a (N.succ n)) = (exists x : A, exists c : B, (@IN A x s) /\ ((@FINREC A B f b (@DELETE A s x) c n) /\ (a = (f x c))))). +Axiom thm_FINREC_1_LEMMA : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, forall s : A -> Prop, forall a : B, (@FINREC A B f b s a (N.succ (NUMERAL 0%N))) = (exists x : A, (s = (@INSERT A x (@EMPTY A))) /\ (a = (f x b))). +Axiom thm_FINREC_SUC_LEMMA : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, (forall x : A, forall y : A, forall s : B, (~ (x = y)) -> (f x (f y s)) = (f y (f x s))) -> forall n : N, forall s : A -> Prop, forall z : B, (@FINREC A B f b s z (N.succ n)) -> forall x : A, (@IN A x s) -> exists w : B, (@FINREC A B f b (@DELETE A s x) w n) /\ (z = (f x w)). +Axiom thm_FINREC_UNIQUE_LEMMA : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, (forall x : A, forall y : A, forall s : B, (~ (x = y)) -> (f x (f y s)) = (f y (f x s))) -> forall n1 : N, forall n2 : N, forall s : A -> Prop, forall a1 : B, forall a2 : B, ((@FINREC A B f b s a1 n1) /\ (@FINREC A B f b s a2 n2)) -> (a1 = a2) /\ (n1 = n2). +Axiom thm_FINREC_EXISTS_LEMMA : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, forall s : A -> Prop, (@FINITE A s) -> exists a : B, exists n : N, @FINREC A B f b s a n. +Axiom thm_FINREC_FUN_LEMMA : forall {A B C : Type'}, forall P : A -> Prop, forall R' : A -> B -> C -> Prop, ((forall s : A, (P s) -> exists a : B, exists n : C, R' s a n) /\ (forall n1 : C, forall n2 : C, forall s : A, forall a1 : B, forall a2 : B, ((R' s a1 n1) /\ (R' s a2 n2)) -> (a1 = a2) /\ (n1 = n2))) -> exists f : A -> B, forall s : A, forall a : B, (P s) -> (exists n : C, R' s a n) = ((f s) = a). +Axiom thm_FINREC_FUN : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, (forall x : A, forall y : A, forall s : B, (~ (x = y)) -> (f x (f y s)) = (f y (f x s))) -> exists g : (A -> Prop) -> B, ((g (@EMPTY A)) = b) /\ (forall s : A -> Prop, forall x : A, ((@FINITE A s) /\ (@IN A x s)) -> (g s) = (f x (g (@DELETE A s x)))). +Axiom thm_SET_RECURSION_LEMMA : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, (forall x : A, forall y : A, forall s : B, (~ (x = y)) -> (f x (f y s)) = (f y (f x s))) -> exists g : (A -> Prop) -> B, ((g (@EMPTY A)) = b) /\ (forall x : A, forall s : A -> Prop, (@FINITE A s) -> (g (@INSERT A x s)) = (@COND B (@IN A x s) (g s) (f x (g s)))). +Axiom thm_ITSET : forall {A B : Type'}, forall b : B, forall f : A -> B -> B, forall s : A -> Prop, (@ITSET A B f s b) = (@ε ((A -> Prop) -> B) (fun g : (A -> Prop) -> B => ((g (@EMPTY A)) = b) /\ (forall x : A, forall s' : A -> Prop, (@FINITE A s') -> (g (@INSERT A x s')) = (@COND B (@IN A x s') (g s') (f x (g s'))))) s). +Axiom thm_FINITE_RECURSION : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, (forall x : A, forall y : A, forall s : B, (~ (x = y)) -> (f x (f y s)) = (f y (f x s))) -> ((@ITSET A B f (@EMPTY A) b) = b) /\ (forall x : A, forall s : A -> Prop, (@FINITE A s) -> (@ITSET A B f (@INSERT A x s) b) = (@COND B (@IN A x s) (@ITSET A B f s b) (f x (@ITSET A B f s b)))). +Axiom thm_FINITE_RECURSION_DELETE : forall {A B : Type'}, forall f : A -> B -> B, forall b : B, (forall x : A, forall y : A, forall s : B, (~ (x = y)) -> (f x (f y s)) = (f y (f x s))) -> ((@ITSET A B f (@EMPTY A) b) = b) /\ (forall x : A, forall s : A -> Prop, (@FINITE A s) -> (@ITSET A B f s b) = (@COND B (@IN A x s) (f x (@ITSET A B f (@DELETE A s x) b)) (@ITSET A B f (@DELETE A s x) b))). +Axiom thm_ITSET_EQ : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B -> B, forall g : A -> B -> B, forall b : B, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> (f x) = (g x)) /\ ((forall x : A, forall y : A, forall s' : B, (~ (x = y)) -> (f x (f y s')) = (f y (f x s'))) /\ (forall x : A, forall y : A, forall s' : B, (~ (x = y)) -> (g x (g y s')) = (g y (g x s')))))) -> (@ITSET A B f s b) = (@ITSET A B g s b). +Axiom thm_CARD : forall {A : Type'}, forall s : A -> Prop, (@CARD A s) = (@ITSET A N (fun x : A => fun n : N => N.succ n) s (NUMERAL 0%N)). +Axiom thm_CARD_CLAUSES : forall {A : Type'}, ((@CARD A (@EMPTY A)) = (NUMERAL 0%N)) /\ (forall x : A, forall s : A -> Prop, (@FINITE A s) -> (@CARD A (@INSERT A x s)) = (@COND N (@IN A x s) (@CARD A s) (N.succ (@CARD A s)))). +Axiom thm_CARD_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ ((@INTER A s t) = (@EMPTY A)))) -> (@CARD A (@UNION A s t)) = (N.add (@CARD A s) (@CARD A t)). +Axiom thm_CARD_DELETE : forall {A : Type'}, forall x : A, forall s : A -> Prop, (@FINITE A s) -> (@CARD A (@DELETE A s x)) = (@COND N (@IN A x s) (N.sub (@CARD A s) (NUMERAL (BIT1 0%N))) (@CARD A s)). +Axiom thm_CARD_UNION_EQ : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@FINITE A u) /\ (((@INTER A s t) = (@EMPTY A)) /\ ((@UNION A s t) = u))) -> (N.add (@CARD A s) (@CARD A t)) = (@CARD A u). +Axiom thm_CARD_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@SUBSET A t s)) -> (@CARD A (@DIFF A s t)) = (N.sub (@CARD A s) (@CARD A t)). +Axiom thm_CARD_EQ_0 : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> ((@CARD A s) = (NUMERAL 0%N)) = (s = (@EMPTY A)). +Axiom thm_CARD_SING : forall {A : Type'}, forall a : A, (@CARD A (@INSERT A a (@EMPTY A))) = (NUMERAL (BIT1 0%N)). +Axiom thm_FINITE_INDUCT_DELETE : forall {A : Type'}, forall P : (A -> Prop) -> Prop, ((P (@EMPTY A)) /\ (forall s : A -> Prop, ((@FINITE A s) /\ (~ (s = (@EMPTY A)))) -> exists x : A, (@IN A x s) /\ ((P (@DELETE A s x)) -> P s))) -> forall s : A -> Prop, (@FINITE A s) -> P s. +Axiom thm_HAS_SIZE : forall {A : Type'}, forall s : A -> Prop, forall n : N, (@HAS_SIZE A s n) = ((@FINITE A s) /\ ((@CARD A s) = n)). +Axiom thm_HAS_SIZE_CARD : forall {A : Type'}, forall s : A -> Prop, forall n : N, (@HAS_SIZE A s n) -> (@CARD A s) = n. +Axiom thm_HAS_SIZE_0 : forall {A : Type'}, forall s : A -> Prop, (@HAS_SIZE A s (NUMERAL 0%N)) = (s = (@EMPTY A)). +Axiom thm_HAS_SIZE_SUC : forall {A : Type'}, forall s : A -> Prop, forall n : N, (@HAS_SIZE A s (N.succ n)) = ((~ (s = (@EMPTY A))) /\ (forall a : A, (@IN A a s) -> @HAS_SIZE A (@DELETE A s a) n)). +Axiom thm_HAS_SIZE_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall m : N, forall n : N, ((@HAS_SIZE A s m) /\ ((@HAS_SIZE A t n) /\ (@DISJOINT A s t))) -> @HAS_SIZE A (@UNION A s t) (N.add m n). +Axiom thm_HAS_SIZE_DIFF : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall m : N, forall n : N, ((@HAS_SIZE A s m) /\ ((@HAS_SIZE A t n) /\ (@SUBSET A t s))) -> @HAS_SIZE A (@DIFF A s t) (N.sub m n). +Axiom thm_HAS_SIZE_UNIONS : forall {A B : Type'}, forall s : A -> Prop, forall t : A -> B -> Prop, forall m : N, forall n : N, ((@HAS_SIZE A s m) /\ ((forall x : A, (@IN A x s) -> @HAS_SIZE B (t x) n) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> @DISJOINT B (t x) (t y)))) -> @HAS_SIZE B (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_109 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_109 (@IN A x s) (t x)))) (N.mul m n). +Axiom thm_FINITE_HAS_SIZE : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) = (@HAS_SIZE A s (@CARD A s)). +Axiom thm_HAS_SIZE_CLAUSES : forall {A : Type'} (n : N) (s : A -> Prop), ((@HAS_SIZE A s (NUMERAL 0%N)) = (s = (@EMPTY A))) /\ ((@HAS_SIZE A s (N.succ n)) = (exists a : A, exists t : A -> Prop, (@HAS_SIZE A t n) /\ ((~ (@IN A a t)) /\ (s = (@INSERT A a t))))). +Axiom thm_CARD_SUBSET_EQ : forall {A : Type'}, forall a : A -> Prop, forall b : A -> Prop, ((@FINITE A b) /\ ((@SUBSET A a b) /\ ((@CARD A a) = (@CARD A b)))) -> a = b. +Axiom thm_CARD_SUBSET : forall {A : Type'}, forall a : A -> Prop, forall b : A -> Prop, ((@SUBSET A a b) /\ (@FINITE A b)) -> N.le (@CARD A a) (@CARD A b). +Axiom thm_CARD_SUBSET_LE : forall {A : Type'}, forall a : A -> Prop, forall b : A -> Prop, ((@FINITE A b) /\ ((@SUBSET A a b) /\ (N.le (@CARD A b) (@CARD A a)))) -> a = b. +Axiom thm_SUBSET_CARD_EQ : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (@SUBSET A s t)) -> ((@CARD A s) = (@CARD A t)) = (s = t). +Axiom thm_FINITE_CARD_LE_SUBSET : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall n : N, ((@SUBSET A s t) /\ ((@FINITE A t) /\ (N.le (@CARD A t) n))) -> (@FINITE A s) /\ (N.le (@CARD A s) n). +Axiom thm_CARD_PSUBSET : forall {A : Type'}, forall a : A -> Prop, forall b : A -> Prop, ((@PSUBSET A a b) /\ (@FINITE A b)) -> N.lt (@CARD A a) (@CARD A b). +Axiom thm_CARD_PSUBSET_IMP : forall {A : Type'}, forall a : A -> Prop, forall b : A -> Prop, ((@SUBSET A a b) /\ (~ ((@CARD A a) = (@CARD A b)))) -> @PSUBSET A a b. +Axiom thm_CARD_PSUBSET_EQ : forall {A : Type'}, forall a : A -> Prop, forall b : A -> Prop, ((@FINITE A b) /\ (@SUBSET A a b)) -> (@PSUBSET A a b) = (N.lt (@CARD A a) (@CARD A b)). +Axiom thm_CARD_UNION_LE : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@FINITE A t)) -> N.le (@CARD A (@UNION A s t)) (N.add (@CARD A s) (@CARD A t)). +Axiom thm_FINITE_CARD_LE_UNION : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall m : N, forall n : N, (((@FINITE A s) /\ (N.le (@CARD A s) m)) /\ ((@FINITE A t) /\ (N.le (@CARD A t) n))) -> (@FINITE A (@UNION A s t)) /\ (N.le (@CARD A (@UNION A s t)) (N.add m n)). +Axiom thm_CARD_UNIONS_LE : forall {A B : Type'}, forall s : A -> Prop, forall t : A -> B -> Prop, forall m : N, forall n : N, ((@HAS_SIZE A s m) /\ (forall x : A, (@IN A x s) -> (@FINITE B (t x)) /\ (N.le (@CARD B (t x)) n))) -> N.le (@CARD B (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_115 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_115 (@IN A x s) (t x))))) (N.mul m n). +Axiom thm_CARD_UNION_GEN : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@FINITE A t)) -> (@CARD A (@UNION A s t)) = (N.sub (N.add (@CARD A s) (@CARD A t)) (@CARD A (@INTER A s t))). +Axiom thm_CARD_UNION_OVERLAP_EQ : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@FINITE A t)) -> ((@CARD A (@UNION A s t)) = (N.add (@CARD A s) (@CARD A t))) = ((@INTER A s t) = (@EMPTY A)). +Axiom thm_CARD_UNION_OVERLAP : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (N.lt (@CARD A (@UNION A s t)) (N.add (@CARD A s) (@CARD A t))))) -> ~ ((@INTER A s t) = (@EMPTY A)). +Axiom thm_CARD_IMAGE_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@FINITE A s)) -> (@CARD B (@IMAGE A B f s)) = (@CARD A s). +Axiom thm_HAS_SIZE_IMAGE_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall n : N, ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@HAS_SIZE A s n)) -> @HAS_SIZE B (@IMAGE A B f s) n. +Axiom thm_CARD_IMAGE_LE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@FINITE A s) -> N.le (@CARD B (@IMAGE A B f s)) (@CARD A s). +Axiom thm_FINITE_CARD_LE_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall n : N, ((@FINITE A s) /\ (N.le (@CARD A s) n)) -> (@FINITE B (@IMAGE A B f s)) /\ (N.le (@CARD B (@IMAGE A B f s)) n). +Axiom thm_CARD_IMAGE_INJ_EQ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ ((f x) = y))))) -> (@CARD B t) = (@CARD A s). +Axiom thm_CARD_SUBSET_IMAGE : forall {A B : Type'}, forall f : A -> B, forall s : B -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ (@SUBSET B s (@IMAGE A B f t))) -> N.le (@CARD B s) (@CARD A t). +Axiom thm_HAS_SIZE_IMAGE_INJ_EQ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall n : N, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) -> (@HAS_SIZE B (@IMAGE A B f s) n) = (@HAS_SIZE A s n). +Axiom thm_CARD_IMAGE_EQ_INJ : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, (@FINITE A s) -> ((@CARD B (@IMAGE A B f s)) = (@CARD A s)) = (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y). +Axiom thm_EXISTS_SMALL_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, forall n : N, (exists t : B -> Prop, (@FINITE B t) /\ ((N.lt (@CARD B t) n) /\ ((@SUBSET B t (@IMAGE A B f s)) /\ (P t)))) = (exists t : A -> Prop, (@FINITE A t) /\ ((N.lt (@CARD A t) n) /\ ((@SUBSET A t s) /\ ((forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y)) /\ (P (@IMAGE A B f t)))))). +Axiom thm_FORALL_SMALL_SUBSET_IMAGE_INJ : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, forall n : N, (forall t : B -> Prop, ((@FINITE B t) /\ ((N.lt (@CARD B t) n) /\ (@SUBSET B t (@IMAGE A B f s)))) -> P t) = (forall t : A -> Prop, ((@FINITE A t) /\ ((N.lt (@CARD A t) n) /\ ((@SUBSET A t s) /\ (forall x : A, forall y : A, ((@IN A x t) /\ (@IN A y t)) -> ((f x) = (f y)) = (x = y))))) -> P (@IMAGE A B f t)). +Axiom thm_EXISTS_SMALL_SUBSET_IMAGE : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, forall n : N, (exists t : B -> Prop, (@FINITE B t) /\ ((N.lt (@CARD B t) n) /\ ((@SUBSET B t (@IMAGE A B f s)) /\ (P t)))) = (exists t : A -> Prop, (@FINITE A t) /\ ((N.lt (@CARD A t) n) /\ ((@SUBSET A t s) /\ (P (@IMAGE A B f t))))). +Axiom thm_FORALL_SMALL_SUBSET_IMAGE : forall {A B : Type'}, forall P : (B -> Prop) -> Prop, forall f : A -> B, forall s : A -> Prop, forall n : N, (forall t : B -> Prop, ((@FINITE B t) /\ ((N.lt (@CARD B t) n) /\ (@SUBSET B t (@IMAGE A B f s)))) -> P t) = (forall t : A -> Prop, ((@FINITE A t) /\ ((N.lt (@CARD A t) n) /\ (@SUBSET A t s))) -> P (@IMAGE A B f t)). +Axiom thm_CARD_IMAGE_LE2 : forall {A B C : Type'}, forall f : A -> B, forall g : A -> C, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((g x) = (g y)))) -> (f x) = (f y))) -> N.le (@CARD B (@IMAGE A B f s)) (@CARD C (@IMAGE A C g s)). +Axiom thm_CARD_IMAGE_LT2 : forall {A B C : Type'}, forall f : A -> B, forall g : A -> C, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((g x) = (g y)))) -> (f x) = (f y)) /\ (~ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> (g x) = (g y))))) -> N.lt (@CARD B (@IMAGE A B f s)) (@CARD C (@IMAGE A C g s)). +Axiom thm_CHOOSE_SUBSET_STRONG : forall {A : Type'}, forall n : N, forall s : A -> Prop, ((@FINITE A s) -> N.le n (@CARD A s)) -> exists t : A -> Prop, (@SUBSET A t s) /\ (@HAS_SIZE A t n). +Axiom thm_CHOOSE_SUBSET_EQ : forall {A : Type'}, forall n : N, forall s : A -> Prop, ((@FINITE A s) -> N.le n (@CARD A s)) = (exists t : A -> Prop, (@SUBSET A t s) /\ (@HAS_SIZE A t n)). +Axiom thm_CHOOSE_SUBSET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> forall n : N, (N.le n (@CARD A s)) -> exists t : A -> Prop, (@SUBSET A t s) /\ (@HAS_SIZE A t n). +Axiom thm_CHOOSE_SUBSET_BETWEEN : forall {A : Type'}, forall n : N, forall s : A -> Prop, forall u : A -> Prop, ((@SUBSET A s u) /\ ((@FINITE A s) /\ ((N.le (@CARD A s) n) /\ ((@FINITE A u) -> N.le n (@CARD A u))))) -> exists t : A -> Prop, (@SUBSET A s t) /\ ((@SUBSET A t u) /\ (@HAS_SIZE A t n)). +Axiom thm_CARD_LE_UNIONS_CHAIN : forall {A : Type'}, forall f : (A -> Prop) -> Prop, forall n : N, ((forall t : A -> Prop, forall u : A -> Prop, ((@IN (A -> Prop) t f) /\ (@IN (A -> Prop) u f)) -> (@SUBSET A t u) \/ (@SUBSET A u t)) /\ (forall t : A -> Prop, (@IN (A -> Prop) t f) -> (@FINITE A t) /\ (N.le (@CARD A t) n))) -> (@FINITE A (@UNIONS A f)) /\ (N.le (@CARD A (@UNIONS A f)) n). +Axiom thm_CARD_LE_1 : forall {A : Type'}, forall s : A -> Prop, ((@FINITE A s) /\ (N.le (@CARD A s) (NUMERAL (BIT1 0%N)))) = (exists a : A, @SUBSET A s (@INSERT A a (@EMPTY A))). +Axiom thm_INVOLUTION_EVEN_NOFIXPOINTS : forall {A : Type'}, forall f : A -> A, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> (@IN A (f x) s) /\ ((~ ((f x) = x)) /\ ((f (f x)) = x)))) -> EVEN (@CARD A s). +Axiom thm_INVOLUTION_EVEN_FIXPOINTS : forall {A : Type'}, forall f : A -> A, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> (@IN A (f x) s) /\ ((f (f x)) = x))) -> (EVEN (@CARD A (@GSPEC A (fun GEN_PVAR_120 : A => exists x : A, @SETSPEC A GEN_PVAR_120 ((@IN A x s) /\ ((f x) = x)) x)))) = (EVEN (@CARD A s)). +Axiom thm_HAS_SIZE_PRODUCT_DEPENDENT : forall {A B : Type'}, forall s : A -> Prop, forall m : N, forall t : A -> B -> Prop, forall n : N, ((@HAS_SIZE A s m) /\ (forall x : A, (@IN A x s) -> @HAS_SIZE B (t x) n)) -> @HAS_SIZE (prod A B) (@GSPEC (prod A B) (fun GEN_PVAR_123 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_123 ((@IN A x s) /\ (@IN B y (t x))) (@pair A B x y))) (N.mul m n). +Axiom thm_FINITE_PRODUCT_DEPENDENT : forall {A B C : Type'}, forall f : A -> B -> C, forall s : A -> Prop, forall t : A -> B -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> @FINITE B (t x))) -> @FINITE C (@GSPEC C (fun GEN_PVAR_128 : C => exists x : A, exists y : B, @SETSPEC C GEN_PVAR_128 ((@IN A x s) /\ (@IN B y (t x))) (f x y))). +Axiom thm_FINITE_PRODUCT : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> @FINITE (prod A B) (@GSPEC (prod A B) (fun GEN_PVAR_129 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_129 ((@IN A x s) /\ (@IN B y t)) (@pair A B x y))). +Axiom thm_CARD_PRODUCT : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@CARD (prod A B) (@GSPEC (prod A B) (fun GEN_PVAR_130 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_130 ((@IN A x s) /\ (@IN B y t)) (@pair A B x y)))) = (N.mul (@CARD A s) (@CARD B t)). +Axiom thm_HAS_SIZE_PRODUCT : forall {A B : Type'}, forall s : A -> Prop, forall m : N, forall t : B -> Prop, forall n : N, ((@HAS_SIZE A s m) /\ (@HAS_SIZE B t n)) -> @HAS_SIZE (prod A B) (@GSPEC (prod A B) (fun GEN_PVAR_131 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_131 ((@IN A x s) /\ (@IN B y t)) (@pair A B x y))) (N.mul m n). +Axiom thm_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@CROSS A B s t) = (@GSPEC (prod A B) (fun GEN_PVAR_132 : prod A B => exists x : A, exists y : B, @SETSPEC (prod A B) GEN_PVAR_132 ((@IN A x s) /\ (@IN B y t)) (@pair A B x y))). +Axiom thm_IN_CROSS : forall {A B : Type'}, forall x : A, forall y : B, forall s : A -> Prop, forall t : B -> Prop, (@IN (prod A B) (@pair A B x y) (@CROSS A B s t)) = ((@IN A x s) /\ (@IN B y t)). +Axiom thm_HAS_SIZE_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall m : N, forall n : N, ((@HAS_SIZE A s m) /\ (@HAS_SIZE B t n)) -> @HAS_SIZE (prod A B) (@CROSS A B s t) (N.mul m n). +Axiom thm_FINITE_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> @FINITE (prod A B) (@CROSS A B s t). +Axiom thm_CARD_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@CARD (prod A B) (@CROSS A B s t)) = (N.mul (@CARD A s) (@CARD B t)). +Axiom thm_CROSS_EQ_EMPTY : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@CROSS A B s t) = (@EMPTY (prod A B))) = ((s = (@EMPTY A)) \/ (t = (@EMPTY B))). +Axiom thm_CROSS_EMPTY : forall {_98484 _98497 A B : Type'}, (forall s : A -> Prop, (@CROSS A _98484 s (@EMPTY _98484)) = (@EMPTY (prod A _98484))) /\ (forall t : B -> Prop, (@CROSS _98497 B (@EMPTY _98497) t) = (@EMPTY (prod _98497 B))). +Axiom thm_CROSS_SING : forall {A B : Type'}, forall x : A, forall y : B, (@CROSS A B (@INSERT A x (@EMPTY A)) (@INSERT B y (@EMPTY B))) = (@INSERT (prod A B) (@pair A B x y) (@EMPTY (prod A B))). +Axiom thm_CROSS_UNIV : forall {A B : Type'}, (@CROSS A B (@UNIV A) (@UNIV B)) = (@UNIV (prod A B)). +Axiom thm_FINITE_CROSS_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@FINITE (prod A B) (@CROSS A B s t)) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@FINITE A s) /\ (@FINITE B t)))). +Axiom thm_INFINITE_CROSS_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@INFINITE (prod A B) (@CROSS A B s t)) = (((~ (s = (@EMPTY A))) /\ (@INFINITE B t)) \/ ((@INFINITE A s) /\ (~ (t = (@EMPTY B))))). +Axiom thm_FINITE_CROSS_UNIV : forall {A B : Type'}, (@FINITE (prod A B) (@UNIV (prod A B))) = ((@FINITE A (@UNIV A)) /\ (@FINITE B (@UNIV B))). +Axiom thm_INFINITE_CROSS_UNIV : forall {A B : Type'}, (@INFINITE (prod A B) (@UNIV (prod A B))) = ((@INFINITE A (@UNIV A)) \/ (@INFINITE B (@UNIV B))). +Axiom thm_FINITE_UNIV_PAIR : forall {A : Type'}, (@FINITE (prod A A) (@UNIV (prod A A))) = (@FINITE A (@UNIV A)). +Axiom thm_INFINITE_UNIV_PAIR : forall {A : Type'}, (@INFINITE (prod A A) (@UNIV (prod A A))) = (@INFINITE A (@UNIV A)). +Axiom thm_FORALL_IN_CROSS : forall {A B : Type'}, forall P : (prod A B) -> Prop, forall s : A -> Prop, forall t : B -> Prop, (forall z : prod A B, (@IN (prod A B) z (@CROSS A B s t)) -> P z) = (forall x : A, forall y : B, ((@IN A x s) /\ (@IN B y t)) -> P (@pair A B x y)). +Axiom thm_EXISTS_IN_CROSS : forall {A B : Type'}, forall P : (prod A B) -> Prop, forall s : A -> Prop, forall t : B -> Prop, (exists z : prod A B, (@IN (prod A B) z (@CROSS A B s t)) /\ (P z)) = (exists x : A, exists y : B, (@IN A x s) /\ ((@IN B y t) /\ (P (@pair A B x y)))). +Axiom thm_SUBSET_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall s' : A -> Prop, forall t' : B -> Prop, (@SUBSET (prod A B) (@CROSS A B s t) (@CROSS A B s' t')) = ((s = (@EMPTY A)) \/ ((t = (@EMPTY B)) \/ ((@SUBSET A s s') /\ (@SUBSET B t t')))). +Axiom thm_CROSS_MONO : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall s' : A -> Prop, forall t' : B -> Prop, ((@SUBSET A s s') /\ (@SUBSET B t t')) -> @SUBSET (prod A B) (@CROSS A B s t) (@CROSS A B s' t'). +Axiom thm_CROSS_EQ : forall {A B : Type'}, forall s : A -> Prop, forall s' : A -> Prop, forall t : B -> Prop, forall t' : B -> Prop, ((@CROSS A B s t) = (@CROSS A B s' t')) = ((((s = (@EMPTY A)) \/ (t = (@EMPTY B))) /\ ((s' = (@EMPTY A)) \/ (t' = (@EMPTY B)))) \/ ((s = s') /\ (t = t'))). +Axiom thm_IMAGE_FST_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@IMAGE (prod A B) A (@fst A B) (@CROSS A B s t)) = (@COND (A -> Prop) (t = (@EMPTY B)) (@EMPTY A) s). +Axiom thm_IMAGE_SND_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@IMAGE (prod A B) B (@snd A B) (@CROSS A B s t)) = (@COND (B -> Prop) (s = (@EMPTY A)) (@EMPTY B) t). +Axiom thm_IMAGE_PAIRED_CROSS : forall {A B C D : Type'}, forall f : A -> B, forall g : C -> D, forall s : A -> Prop, forall t : C -> Prop, (@IMAGE (prod A C) (prod B D) (@GABS ((prod A C) -> prod B D) (fun f' : (prod A C) -> prod B D => forall x : A, forall y : C, @GEQ (prod B D) (f' (@pair A C x y)) (@pair B D (f x) (g y)))) (@CROSS A C s t)) = (@CROSS B D (@IMAGE A B f s) (@IMAGE C D g t)). +Axiom thm_CROSS_INTER : forall {A B : Type'}, (forall s : A -> Prop, forall t : B -> Prop, forall u : B -> Prop, (@CROSS A B s (@INTER B t u)) = (@INTER (prod A B) (@CROSS A B s t) (@CROSS A B s u))) /\ (forall s : A -> Prop, forall t : A -> Prop, forall u : B -> Prop, (@CROSS A B (@INTER A s t) u) = (@INTER (prod A B) (@CROSS A B s u) (@CROSS A B t u))). +Axiom thm_CROSS_UNION : forall {A B : Type'}, (forall s : A -> Prop, forall t : B -> Prop, forall u : B -> Prop, (@CROSS A B s (@UNION B t u)) = (@UNION (prod A B) (@CROSS A B s t) (@CROSS A B s u))) /\ (forall s : A -> Prop, forall t : A -> Prop, forall u : B -> Prop, (@CROSS A B (@UNION A s t) u) = (@UNION (prod A B) (@CROSS A B s u) (@CROSS A B t u))). +Axiom thm_CROSS_DIFF : forall {A B : Type'}, (forall s : A -> Prop, forall t : B -> Prop, forall u : B -> Prop, (@CROSS A B s (@DIFF B t u)) = (@DIFF (prod A B) (@CROSS A B s t) (@CROSS A B s u))) /\ (forall s : A -> Prop, forall t : A -> Prop, forall u : B -> Prop, (@CROSS A B (@DIFF A s t) u) = (@DIFF (prod A B) (@CROSS A B s u) (@CROSS A B t u))). +Axiom thm_INTER_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall s' : A -> Prop, forall t : B -> Prop, forall t' : B -> Prop, (@INTER (prod A B) (@CROSS A B s t) (@CROSS A B s' t')) = (@CROSS A B (@INTER A s s') (@INTER B t t')). +Axiom thm_CROSS_UNIONS : forall {A B : Type'}, (forall s : A -> Prop, forall f : (A -> Prop) -> Prop, (@CROSS A A s (@UNIONS A f)) = (@UNIONS (prod A A) (@GSPEC ((prod A A) -> Prop) (fun GEN_PVAR_134 : (prod A A) -> Prop => exists t : A -> Prop, @SETSPEC ((prod A A) -> Prop) GEN_PVAR_134 (@IN (A -> Prop) t f) (@CROSS A A s t))))) /\ (forall f : (A -> Prop) -> Prop, forall t : B -> Prop, (@CROSS A B (@UNIONS A f) t) = (@UNIONS (prod A B) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_135 : (prod A B) -> Prop => exists s : A -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_135 (@IN (A -> Prop) s f) (@CROSS A B s t))))). +Axiom thm_CROSS_UNIONS_UNIONS : forall {A B : Type'}, forall f : (A -> Prop) -> Prop, forall g : (B -> Prop) -> Prop, (@CROSS A B (@UNIONS A f) (@UNIONS B g)) = (@UNIONS (prod A B) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_133 : (prod A B) -> Prop => exists s : A -> Prop, exists t : B -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_133 ((@IN (A -> Prop) s f) /\ (@IN (B -> Prop) t g)) (@CROSS A B s t)))). +Axiom thm_CROSS_INTERS : forall {A B : Type'}, (forall s : A -> Prop, forall f : (A -> Prop) -> Prop, (@CROSS A A s (@INTERS A f)) = (@COND ((prod A A) -> Prop) (f = (@EMPTY (A -> Prop))) (@CROSS A A s (@UNIV A)) (@INTERS (prod A A) (@GSPEC ((prod A A) -> Prop) (fun GEN_PVAR_139 : (prod A A) -> Prop => exists t : A -> Prop, @SETSPEC ((prod A A) -> Prop) GEN_PVAR_139 (@IN (A -> Prop) t f) (@CROSS A A s t)))))) /\ (forall f : (A -> Prop) -> Prop, forall t : B -> Prop, (@CROSS A B (@INTERS A f) t) = (@COND ((prod A B) -> Prop) (f = (@EMPTY (A -> Prop))) (@CROSS A B (@UNIV A) t) (@INTERS (prod A B) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_140 : (prod A B) -> Prop => exists s : A -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_140 (@IN (A -> Prop) s f) (@CROSS A B s t)))))). +Axiom thm_CROSS_INTERS_INTERS : forall {A B : Type'}, forall f : (A -> Prop) -> Prop, forall g : (B -> Prop) -> Prop, (@CROSS A B (@INTERS A f) (@INTERS B g)) = (@COND ((prod A B) -> Prop) (f = (@EMPTY (A -> Prop))) (@INTERS (prod A B) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_136 : (prod A B) -> Prop => exists t : B -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_136 (@IN (B -> Prop) t g) (@CROSS A B (@UNIV A) t)))) (@COND ((prod A B) -> Prop) (g = (@EMPTY (B -> Prop))) (@INTERS (prod A B) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_137 : (prod A B) -> Prop => exists s : A -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_137 (@IN (A -> Prop) s f) (@CROSS A B s (@UNIV B))))) (@INTERS (prod A B) (@GSPEC ((prod A B) -> Prop) (fun GEN_PVAR_138 : (prod A B) -> Prop => exists s : A -> Prop, exists t : B -> Prop, @SETSPEC ((prod A B) -> Prop) GEN_PVAR_138 ((@IN (A -> Prop) s f) /\ (@IN (B -> Prop) t g)) (@CROSS A B s t)))))). +Axiom thm_DISJOINT_CROSS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall s' : A -> Prop, forall t' : B -> Prop, (@DISJOINT (prod A B) (@CROSS A B s t) (@CROSS A B s' t')) = ((@DISJOINT A s s') \/ (@DISJOINT B t t')). +Axiom thm_ARB : forall {A : Type'}, (@ARB A) = (@ε A (fun x : A => False)). +Axiom thm_EXTENSIONAL : forall {A B : Type'}, forall s : A -> Prop, (@EXTENSIONAL A B s) = (@GSPEC (A -> B) (fun GEN_PVAR_141 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_141 (forall x : A, (~ (@IN A x s)) -> (f x) = (@ARB B)) f)). +Axiom thm_IN_EXTENSIONAL : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, (@IN (A -> B) f (@EXTENSIONAL A B s)) = (forall x : A, (~ (@IN A x s)) -> (f x) = (@ARB B)). +Axiom thm_IN_EXTENSIONAL_UNDEFINED : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall x : A, ((@IN (A -> B) f (@EXTENSIONAL A B s)) /\ (~ (@IN A x s))) -> (f x) = (@ARB B). +Axiom thm_EXTENSIONAL_EMPTY : forall {A B : Type'}, (@EXTENSIONAL A B (@EMPTY A)) = (@INSERT (A -> B) (fun x : A => @ARB B) (@EMPTY (A -> B))). +Axiom thm_EXTENSIONAL_UNIV : forall {A B : Type'}, forall f : A -> B, @EXTENSIONAL A B (@UNIV A) f. +Axiom thm_EXTENSIONAL_EQ : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall g : A -> B, ((@IN (A -> B) f (@EXTENSIONAL A B s)) /\ ((@IN (A -> B) g (@EXTENSIONAL A B s)) /\ (forall x : A, (@IN A x s) -> (f x) = (g x)))) -> f = g. +Axiom thm_RESTRICTION : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall x : A, (@RESTRICTION A B s f x) = (@COND B (@IN A x s) (f x) (@ARB B)). +Axiom thm_RESTRICTION_THM : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, (@RESTRICTION A B s f) = (fun x : A => @COND B (@IN A x s) (f x) (@ARB B)). +Axiom thm_RESTRICTION_DEFINED : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall x : A, (@IN A x s) -> (@RESTRICTION A B s f x) = (f x). +Axiom thm_RESTRICTION_UNDEFINED : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall x : A, (~ (@IN A x s)) -> (@RESTRICTION A B s f x) = (@ARB B). +Axiom thm_RESTRICTION_EQ : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall x : A, forall y : B, ((@IN A x s) /\ ((f x) = y)) -> (@RESTRICTION A B s f x) = y. +Axiom thm_RESTRICTION_IN_EXTENSIONAL : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, @IN (A -> B) (@RESTRICTION A B s f) (@EXTENSIONAL A B s). +Axiom thm_RESTRICTION_EXTENSION : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall g : A -> B, ((@RESTRICTION A B s f) = (@RESTRICTION A B s g)) = (forall x : A, (@IN A x s) -> (f x) = (g x)). +Axiom thm_RESTRICTION_FIXPOINT : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, ((@RESTRICTION A B s f) = f) = (@IN (A -> B) f (@EXTENSIONAL A B s)). +Axiom thm_RESTRICTION_UNIV : forall {A B : Type'}, forall f : A -> B, (@RESTRICTION A B (@UNIV A) f) = f. +Axiom thm_RESTRICTION_RESTRICTION : forall {A B : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall f : A -> B, (@SUBSET A s t) -> (@RESTRICTION A B s (@RESTRICTION A B t f)) = (@RESTRICTION A B s f). +Axiom thm_RESTRICTION_IDEMP : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, (@RESTRICTION A B s (@RESTRICTION A B s f)) = (@RESTRICTION A B s f). +Axiom thm_IMAGE_RESTRICTION : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, (@SUBSET A s t) -> (@IMAGE A B (@RESTRICTION A B t f) s) = (@IMAGE A B f s). +Axiom thm_RESTRICTION_COMPOSE_RIGHT : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall s : A -> Prop, (@RESTRICTION A C s (@o A B C g (@RESTRICTION A B s f))) = (@RESTRICTION A C s (@o A B C g f)). +Axiom thm_RESTRICTION_COMPOSE_LEFT : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall s : A -> Prop, forall t : B -> Prop, (@SUBSET B (@IMAGE A B f s) t) -> (@RESTRICTION A C s (@o A B C (@RESTRICTION B C t g) f)) = (@RESTRICTION A C s (@o A B C g f)). +Axiom thm_RESTRICTION_COMPOSE : forall {A B C : Type'}, forall f : A -> B, forall g : B -> C, forall s : A -> Prop, forall t : B -> Prop, (@SUBSET B (@IMAGE A B f s) t) -> (@RESTRICTION A C s (@o A B C (@RESTRICTION B C t g) (@RESTRICTION A B s f))) = (@RESTRICTION A C s (@o A B C g f)). +Axiom thm_RESTRICTION_UNIQUE : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall g : A -> B, ((@RESTRICTION A B s f) = g) = ((@EXTENSIONAL A B s g) /\ (forall x : A, (@IN A x s) -> (f x) = (g x))). +Axiom thm_RESTRICTION_UNIQUE_ALT : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall g : A -> B, (f = (@RESTRICTION A B s g)) = ((@EXTENSIONAL A B s f) /\ (forall x : A, (@IN A x s) -> (f x) = (g x))). +Axiom thm_cartesian_product : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, (@cartesian_product A K k s) = (@GSPEC (K -> A) (fun GEN_PVAR_142 : K -> A => exists f : K -> A, @SETSPEC (K -> A) GEN_PVAR_142 ((@EXTENSIONAL K A k f) /\ (forall i : K, (@IN K i k) -> @IN A (f i) (s i))) f)). +Axiom thm_IN_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall x : K -> A, (@IN (K -> A) x (@cartesian_product A K k s)) = ((@EXTENSIONAL K A k x) /\ (forall i : K, (@IN K i k) -> @IN A (x i) (s i))). +Axiom thm_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, (@cartesian_product A K k s) = (@GSPEC (K -> A) (fun GEN_PVAR_143 : K -> A => exists f : K -> A, @SETSPEC (K -> A) GEN_PVAR_143 (forall i : K, @IN A (f i) (@COND (A -> Prop) (@IN K i k) (s i) (@INSERT A (@ARB A) (@EMPTY A)))) f)). +Axiom thm_RESTRICTION_IN_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall f : K -> A, (@IN (K -> A) (@RESTRICTION K A k f) (@cartesian_product A K k s)) = (forall i : K, (@IN K i k) -> @IN A (f i) (s i)). +Axiom thm_CARTESIAN_PRODUCT_AS_RESTRICTIONS : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, (@cartesian_product A K k s) = (@GSPEC (K -> A) (fun GEN_PVAR_144 : K -> A => exists f : K -> A, @SETSPEC (K -> A) GEN_PVAR_144 (forall i : K, (@IN K i k) -> @IN A (f i) (s i)) (@RESTRICTION K A k f))). +Axiom thm_CARTESIAN_PRODUCT_EQ_EMPTY : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, ((@cartesian_product A K k s) = (@EMPTY (K -> A))) = (exists i : K, (@IN K i k) /\ ((s i) = (@EMPTY A))). +Axiom thm_CARTESIAN_PRODUCT_EMPTY : forall {A K : Type'}, forall s : K -> A -> Prop, (@cartesian_product A K (@EMPTY K) s) = (@INSERT (K -> A) (fun i : K => @ARB A) (@EMPTY (K -> A))). +Axiom thm_CARTESIAN_PRODUCT_EQ_MEMBERS : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall x : K -> A, forall y : K -> A, ((@IN (K -> A) x (@cartesian_product A K k s)) /\ ((@IN (K -> A) y (@cartesian_product A K k s)) /\ (forall i : K, (@IN K i k) -> (x i) = (y i)))) -> x = y. +Axiom thm_CARTESIAN_PRODUCT_EQ_MEMBERS_EQ : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall x : K -> A, forall y : K -> A, ((@IN (K -> A) x (@cartesian_product A K k s)) /\ (@IN (K -> A) y (@cartesian_product A K k s))) -> (x = y) = (forall i : K, (@IN K i k) -> (x i) = (y i)). +Axiom thm_SUBSET_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@SUBSET (K -> A) (@cartesian_product A K k s) (@cartesian_product A K k t)) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ (forall i : K, (@IN K i k) -> @SUBSET A (s i) (t i))). +Axiom thm_CARTESIAN_PRODUCT_EQ : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, ((@cartesian_product A K k s) = (@cartesian_product A K k t)) = ((((@cartesian_product A K k s) = (@EMPTY (K -> A))) /\ ((@cartesian_product A K k t) = (@EMPTY (K -> A)))) \/ (forall i : K, (@IN K i k) -> (s i) = (t i))). +Axiom thm_INTER_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@INTER (K -> A) (@cartesian_product A K k s) (@cartesian_product A K k t)) = (@cartesian_product A K k (fun i : K => @INTER A (s i) (t i))). +Axiom thm_CARTESIAN_PRODUCT_UNIV : forall {A K : Type'}, (@cartesian_product A K (@UNIV K) (fun i : K => @UNIV A)) = (@UNIV (K -> A)). +Axiom thm_CARTESIAN_PRODUCT_SINGS : forall {A K : Type'}, forall k : K -> Prop, forall x : K -> A, (@EXTENSIONAL K A k x) -> (@cartesian_product A K k (fun i : K => @INSERT A (x i) (@EMPTY A))) = (@INSERT (K -> A) x (@EMPTY (K -> A))). +Axiom thm_CARTESIAN_PRODUCT_SINGS_GEN : forall {A K : Type'}, forall k : K -> Prop, forall x : K -> A, (@cartesian_product A K k (fun i : K => @INSERT A (x i) (@EMPTY A))) = (@INSERT (K -> A) (@RESTRICTION K A k x) (@EMPTY (K -> A))). +Axiom thm_IMAGE_PROJECTION_CARTESIAN_PRODUCT : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall i : K, (@IMAGE (K -> A) A (fun x : K -> A => x i) (@cartesian_product A K k s)) = (@COND (A -> Prop) ((@cartesian_product A K k s) = (@EMPTY (K -> A))) (@EMPTY A) (@COND (A -> Prop) (@IN K i k) (s i) (@INSERT A (@ARB A) (@EMPTY A)))). +Axiom thm_FORALL_CARTESIAN_PRODUCT_ELEMENTS : forall {A K : Type'}, forall P : K -> A -> Prop, forall k : K -> Prop, forall s : K -> A -> Prop, (forall z : K -> A, forall i : K, ((@IN (K -> A) z (@cartesian_product A K k s)) /\ (@IN K i k)) -> P i (z i)) = (((@cartesian_product A K k s) = (@EMPTY (K -> A))) \/ (forall i : K, forall x : A, ((@IN K i k) /\ (@IN A x (s i))) -> P i x)). +Axiom thm_FORALL_CARTESIAN_PRODUCT_ELEMENTS_EQ : forall {A K : Type'}, forall P : K -> A -> Prop, forall k : K -> Prop, forall s : K -> A -> Prop, (~ ((@cartesian_product A K k s) = (@EMPTY (K -> A)))) -> (forall i : K, forall x : A, ((@IN K i k) /\ (@IN A x (s i))) -> P i x) = (forall z : K -> A, forall i : K, ((@IN (K -> A) z (@cartesian_product A K k s)) /\ (@IN K i k)) -> P i (z i)). +Axiom thm_EXISTS_CARTESIAN_PRODUCT_ELEMENT : forall {A K : Type'}, forall P : K -> A -> Prop, forall k : K -> Prop, forall s : K -> A -> Prop, (exists z : K -> A, (@IN (K -> A) z (@cartesian_product A K k s)) /\ (forall i : K, (@IN K i k) -> P i (z i))) = (forall i : K, (@IN K i k) -> exists x : A, (@IN A x (s i)) /\ (P i x)). +Axiom thm_product_map : forall {A B K : Type'}, forall k : K -> Prop, forall f : K -> A -> B, (@product_map A B K k f) = (fun x : K -> A => @RESTRICTION K B k (fun i : K => f i (x i))). +Axiom thm_PRODUCT_MAP_RESTRICTION : forall {A B K : Type'}, forall f : K -> A -> B, forall k : K -> Prop, forall x : K -> A, (@product_map A B K k f (@RESTRICTION K A k x)) = (@RESTRICTION K B k (fun i : K => f i (x i))). +Axiom thm_IMAGE_PRODUCT_MAP : forall {A B K : Type'}, forall f : K -> A -> B, forall k : K -> Prop, forall s : K -> A -> Prop, (@IMAGE (K -> A) (K -> B) (@product_map A B K k f) (@cartesian_product A K k s)) = (@cartesian_product B K k (fun i : K => @IMAGE A B (f i) (s i))). +Axiom thm_disjoint_union : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, (@disjoint_union A K k s) = (@GSPEC (prod K A) (fun GEN_PVAR_145 : prod K A => exists i : K, exists x : A, @SETSPEC (prod K A) GEN_PVAR_145 ((@IN K i k) /\ (@IN A x (s i))) (@pair K A i x))). +Axiom thm_SUBSET_DISJOINT_UNION : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@SUBSET (prod K A) (@disjoint_union A K k s) (@disjoint_union A K k t)) = (forall i : K, (@IN K i k) -> @SUBSET A (s i) (t i)). +Axiom thm_DISJOINT_UNION_EQ : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, ((@disjoint_union A K k s) = (@disjoint_union A K k t)) = (forall i : K, (@IN K i k) -> (s i) = (t i)). +Axiom thm_SUBSET_DISJOINT_UNION_EXISTS : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall u : (prod K A) -> Prop, (@SUBSET (prod K A) u (@disjoint_union A K k s)) = (exists t : K -> A -> Prop, (u = (@disjoint_union A K k t)) /\ (forall i : K, (@IN K i k) -> @SUBSET A (t i) (s i))). +Axiom thm_INTER_DISJOINT_UNION : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@INTER (prod K A) (@disjoint_union A K k s) (@disjoint_union A K k t)) = (@disjoint_union A K k (fun i : K => @INTER A (s i) (t i))). +Axiom thm_UNION_DISJOINT_UNION : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@UNION (prod K A) (@disjoint_union A K k s) (@disjoint_union A K k t)) = (@disjoint_union A K k (fun i : K => @UNION A (s i) (t i))). +Axiom thm_DISJOINT_UNION_EQ_EMPTY : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, ((@disjoint_union A K k s) = (@EMPTY (prod K A))) = (forall i : K, (@IN K i k) -> (s i) = (@EMPTY A)). +Axiom thm_DISJOINT_DISJOINT_UNION : forall {A K : Type'}, forall k : K -> Prop, forall s : K -> A -> Prop, forall t : K -> A -> Prop, (@DISJOINT (prod K A) (@disjoint_union A K k s) (@disjoint_union A K k t)) = (forall i : K, (@IN K i k) -> @DISJOINT A (s i) (t i)). +Axiom thm_HAS_SIZE_FUNSPACE : forall {A B : Type'}, forall d : B, forall n : N, forall t : B -> Prop, forall m : N, forall s : A -> Prop, ((@HAS_SIZE A s m) /\ (@HAS_SIZE B t n)) -> @HAS_SIZE (A -> B) (@GSPEC (A -> B) (fun GEN_PVAR_150 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_150 ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall x : A, (~ (@IN A x s)) -> (f x) = d)) f)) (N.pow n m). +Axiom thm_CARD_FUNSPACE : forall {A B : Type'} (d : B), forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@CARD (A -> B) (@GSPEC (A -> B) (fun GEN_PVAR_151 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_151 ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall x : A, (~ (@IN A x s)) -> (f x) = d)) f))) = (N.pow (@CARD B t) (@CARD A s)). +Axiom thm_FINITE_FUNSPACE : forall {A B : Type'} (d : B), forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> @FINITE (A -> B) (@GSPEC (A -> B) (fun GEN_PVAR_152 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_152 ((forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall x : A, (~ (@IN A x s)) -> (f x) = d)) f)). +Axiom thm_HAS_SIZE_FUNSPACE_UNIV : forall {A B : Type'}, forall m : N, forall n : N, ((@HAS_SIZE A (@UNIV A) m) /\ (@HAS_SIZE B (@UNIV B) n)) -> @HAS_SIZE (A -> B) (@UNIV (A -> B)) (N.pow n m). +Axiom thm_CARD_FUNSPACE_UNIV : forall {A B : Type'}, ((@FINITE A (@UNIV A)) /\ (@FINITE B (@UNIV B))) -> (@CARD (A -> B) (@UNIV (A -> B))) = (N.pow (@CARD B (@UNIV B)) (@CARD A (@UNIV A))). +Axiom thm_FINITE_FUNSPACE_UNIV : forall {A B : Type'}, ((@FINITE A (@UNIV A)) /\ (@FINITE B (@UNIV B))) -> @FINITE (A -> B) (@UNIV (A -> B)). +Axiom thm_HAS_SIZE_BOOL : @HAS_SIZE Prop (@UNIV Prop) (NUMERAL (BIT0 (BIT1 0%N))). +Axiom thm_CARD_BOOL : (@CARD Prop (@UNIV Prop)) = (NUMERAL (BIT0 (BIT1 0%N))). +Axiom thm_FINITE_BOOL : @FINITE Prop (@UNIV Prop). +Axiom thm_HAS_SIZE_POWERSET : forall {A : Type'}, forall s : A -> Prop, forall n : N, (@HAS_SIZE A s n) -> @HAS_SIZE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_155 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_155 (@SUBSET A t s) t)) (N.pow (NUMERAL (BIT0 (BIT1 0%N))) n). +Axiom thm_CARD_POWERSET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> (@CARD (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_156 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_156 (@SUBSET A t s) t))) = (N.pow (NUMERAL (BIT0 (BIT1 0%N))) (@CARD A s)). +Axiom thm_FINITE_POWERSET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> @FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_157 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_157 (@SUBSET A t s) t)). +Axiom thm_FINITE_POWERSET_EQ : forall {A : Type'}, forall s : A -> Prop, (@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_158 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_158 (@SUBSET A t s) t))) = (@FINITE A s). +Axiom thm_FINITE_RESTRICTED_SUBSETS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@FINITE A s) -> @FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_160 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_160 ((@SUBSET A t s) /\ (P t)) t)). +Axiom thm_FINITE_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@FINITE A (@UNIONS A s)) = ((@FINITE (A -> Prop) s) /\ (forall t : A -> Prop, (@IN (A -> Prop) t s) -> @FINITE A t)). +Axiom thm_FINITE_CARD_LE_UNIONS : forall {A B : Type'}, forall s : A -> Prop, forall t : A -> B -> Prop, forall m : N, forall n : N, ((forall x : A, (@IN A x s) -> (@FINITE B (t x)) /\ (N.le (@CARD B (t x)) n)) /\ ((@FINITE A s) /\ (N.le (@CARD A s) m))) -> (@FINITE B (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_161 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_161 (@IN A x s) (t x))))) /\ (N.le (@CARD B (@UNIONS B (@GSPEC (B -> Prop) (fun GEN_PVAR_162 : B -> Prop => exists x : A, @SETSPEC (B -> Prop) GEN_PVAR_162 (@IN A x s) (t x))))) (N.mul m n)). +Axiom thm_POWERSET_CLAUSES : forall {A : Type'}, ((@GSPEC (A -> Prop) (fun GEN_PVAR_163 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_163 (@SUBSET A s (@EMPTY A)) s)) = (@INSERT (A -> Prop) (@EMPTY A) (@EMPTY (A -> Prop)))) /\ (forall a : A, forall t : A -> Prop, (@GSPEC (A -> Prop) (fun GEN_PVAR_164 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_164 (@SUBSET A s (@INSERT A a t)) s)) = (@UNION (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_165 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_165 (@SUBSET A s t) s)) (@IMAGE (A -> Prop) (A -> Prop) (fun s : A -> Prop => @INSERT A a s) (@GSPEC (A -> Prop) (fun GEN_PVAR_166 : A -> Prop => exists s : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_166 (@SUBSET A s t) s))))). +Axiom thm_FINITE_IMAGE_INFINITE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, ((@INFINITE A s) /\ (@FINITE B (@IMAGE A B f s))) -> exists a : A, (@IN A a s) /\ (@INFINITE A (@GSPEC A (fun GEN_PVAR_171 : A => exists x : A, @SETSPEC A GEN_PVAR_171 ((@IN A x s) /\ ((f x) = (f a))) x))). +Axiom thm_FINITE_RESTRICTED_POWERSET : forall {A : Type'}, forall s : A -> Prop, forall n : N, (@FINITE (A -> Prop) (@GSPEC (A -> Prop) (fun GEN_PVAR_176 : A -> Prop => exists t : A -> Prop, @SETSPEC (A -> Prop) GEN_PVAR_176 ((@SUBSET A t s) /\ (@HAS_SIZE A t n)) t))) = ((@FINITE A s) \/ (n = (NUMERAL 0%N))). +Axiom thm_FINITE_RESTRICTED_FUNSPACE : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall k : A -> B, ((@FINITE A s) /\ (@FINITE B t)) -> @FINITE (A -> B) (@GSPEC (A -> B) (fun GEN_PVAR_180 : A -> B => exists f : A -> B, @SETSPEC (A -> B) GEN_PVAR_180 ((@SUBSET B (@IMAGE A B f s) t) /\ (@SUBSET A (@GSPEC A (fun GEN_PVAR_179 : A => exists x : A, @SETSPEC A GEN_PVAR_179 (~ ((f x) = (k x))) x)) s)) f)). +Axiom thm_NUMSEG_CLAUSES_LT : ((@GSPEC N (fun GEN_PVAR_181 : N => exists i : N, @SETSPEC N GEN_PVAR_181 (N.lt i (NUMERAL 0%N)) i)) = (@EMPTY N)) /\ (forall k : N, (@GSPEC N (fun GEN_PVAR_182 : N => exists i : N, @SETSPEC N GEN_PVAR_182 (N.lt i (N.succ k)) i)) = (@INSERT N k (@GSPEC N (fun GEN_PVAR_183 : N => exists i : N, @SETSPEC N GEN_PVAR_183 (N.lt i k) i)))). +Axiom thm_HAS_SIZE_NUMSEG_LT : forall n : N, @HAS_SIZE N (@GSPEC N (fun GEN_PVAR_184 : N => exists m : N, @SETSPEC N GEN_PVAR_184 (N.lt m n) m)) n. +Axiom thm_CARD_NUMSEG_LT : forall n : N, (@CARD N (@GSPEC N (fun GEN_PVAR_185 : N => exists m : N, @SETSPEC N GEN_PVAR_185 (N.lt m n) m))) = n. +Axiom thm_FINITE_NUMSEG_LT : forall n : N, @FINITE N (@GSPEC N (fun GEN_PVAR_186 : N => exists m : N, @SETSPEC N GEN_PVAR_186 (N.lt m n) m)). +Axiom thm_NUMSEG_CLAUSES_LE : ((@GSPEC N (fun GEN_PVAR_187 : N => exists i : N, @SETSPEC N GEN_PVAR_187 (N.le i (NUMERAL 0%N)) i)) = (@INSERT N (NUMERAL 0%N) (@EMPTY N))) /\ (forall k : N, (@GSPEC N (fun GEN_PVAR_188 : N => exists i : N, @SETSPEC N GEN_PVAR_188 (N.le i (N.succ k)) i)) = (@INSERT N (N.succ k) (@GSPEC N (fun GEN_PVAR_189 : N => exists i : N, @SETSPEC N GEN_PVAR_189 (N.le i k) i)))). +Axiom thm_HAS_SIZE_NUMSEG_LE : forall n : N, @HAS_SIZE N (@GSPEC N (fun GEN_PVAR_190 : N => exists m : N, @SETSPEC N GEN_PVAR_190 (N.le m n) m)) (N.add n (NUMERAL (BIT1 0%N))). +Axiom thm_FINITE_NUMSEG_LE : forall n : N, @FINITE N (@GSPEC N (fun GEN_PVAR_191 : N => exists m : N, @SETSPEC N GEN_PVAR_191 (N.le m n) m)). +Axiom thm_CARD_NUMSEG_LE : forall n : N, (@CARD N (@GSPEC N (fun GEN_PVAR_192 : N => exists m : N, @SETSPEC N GEN_PVAR_192 (N.le m n) m))) = (N.add n (NUMERAL (BIT1 0%N))). +Axiom thm_num_FINITE : forall s : N -> Prop, (@FINITE N s) = (exists a : N, forall x : N, (@IN N x s) -> N.le x a). +Axiom thm_num_FINITE_AVOID : forall s : N -> Prop, (@FINITE N s) -> exists a : N, ~ (@IN N a s). +Axiom thm_num_INFINITE_EQ : forall s : N -> Prop, (@INFINITE N s) = (forall N' : N, exists n : N, (N.le N' n) /\ (@IN N n s)). +Axiom thm_num_INFINITE : @INFINITE N (@UNIV N). +Axiom thm_string_INFINITE : @INFINITE (list Ascii.ascii) (@UNIV (list Ascii.ascii)). +Axiom thm_FINITE_REAL_INTERVAL : (forall a : R, ~ (@FINITE R (@GSPEC R (fun GEN_PVAR_202 : R => exists x : R, @SETSPEC R GEN_PVAR_202 (Rlt a x) x)))) /\ ((forall a : R, ~ (@FINITE R (@GSPEC R (fun GEN_PVAR_203 : R => exists x : R, @SETSPEC R GEN_PVAR_203 (Rle a x) x)))) /\ ((forall b : R, ~ (@FINITE R (@GSPEC R (fun GEN_PVAR_204 : R => exists x : R, @SETSPEC R GEN_PVAR_204 (Rlt x b) x)))) /\ ((forall b : R, ~ (@FINITE R (@GSPEC R (fun GEN_PVAR_205 : R => exists x : R, @SETSPEC R GEN_PVAR_205 (Rle x b) x)))) /\ ((forall a : R, forall b : R, (@FINITE R (@GSPEC R (fun GEN_PVAR_206 : R => exists x : R, @SETSPEC R GEN_PVAR_206 ((Rlt a x) /\ (Rlt x b)) x))) = (Rle b a)) /\ ((forall a : R, forall b : R, (@FINITE R (@GSPEC R (fun GEN_PVAR_207 : R => exists x : R, @SETSPEC R GEN_PVAR_207 ((Rle a x) /\ (Rlt x b)) x))) = (Rle b a)) /\ ((forall a : R, forall b : R, (@FINITE R (@GSPEC R (fun GEN_PVAR_208 : R => exists x : R, @SETSPEC R GEN_PVAR_208 ((Rlt a x) /\ (Rle x b)) x))) = (Rle b a)) /\ (forall a : R, forall b : R, (@FINITE R (@GSPEC R (fun GEN_PVAR_209 : R => exists x : R, @SETSPEC R GEN_PVAR_209 ((Rle a x) /\ (Rle x b)) x))) = (Rle b a)))))))). +Axiom thm_real_INFINITE : @INFINITE R (@UNIV R). +Axiom thm_HAS_SIZE_INDEX : forall {A : Type'}, forall s : A -> Prop, forall n : N, (@HAS_SIZE A s n) -> exists f : N -> A, (forall m : N, (N.lt m n) -> @IN A (f m) s) /\ (forall x : A, (@IN A x s) -> @ex1 N (fun m : N => (N.lt m n) /\ ((f m) = x))). +Axiom thm_INFINITE_ENUMERATE : forall s : N -> Prop, (@INFINITE N s) -> exists r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ ((@IMAGE N N r (@UNIV N)) = s). +Axiom thm_INFINITE_ENUMERATE_EQ : forall s : N -> Prop, (@INFINITE N s) = (exists r : N -> N, (forall m : N, forall n : N, (N.lt m n) -> N.lt (r m) (r n)) /\ ((@IMAGE N N r (@UNIV N)) = s)). +Axiom thm_INFINITE_ENUMERATE_SUBSET : forall {A : Type'}, forall s : A -> Prop, (@INFINITE A s) = (exists f : N -> A, (forall x : N, @IN A (f x) s) /\ (forall x : N, forall y : N, ((f x) = (f y)) -> x = y)). +Axiom thm_set_of_list : forall {A : Type'} (h : A) (t : list A), ((@set_of_list A (@nil A)) = (@EMPTY A)) /\ ((@set_of_list A (@cons A h t)) = (@INSERT A h (@set_of_list A t))). +Axiom thm_list_of_set : forall {A : Type'}, forall s : A -> Prop, (@list_of_set A s) = (@ε (list A) (fun l : list A => ((@set_of_list A l) = s) /\ ((@LENGTH A l) = (@CARD A s)))). +Axiom thm_LIST_OF_SET_PROPERTIES : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> ((@set_of_list A (@list_of_set A s)) = s) /\ ((@LENGTH A (@list_of_set A s)) = (@CARD A s)). +Axiom thm_SET_OF_LIST_OF_SET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> (@set_of_list A (@list_of_set A s)) = s. +Axiom thm_LENGTH_LIST_OF_SET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> (@LENGTH A (@list_of_set A s)) = (@CARD A s). +Axiom thm_MEM_LIST_OF_SET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> forall x : A, (@List.In A x (@list_of_set A s)) = (@IN A x s). +Axiom thm_FINITE_SET_OF_LIST : forall {A : Type'}, forall l : list A, @FINITE A (@set_of_list A l). +Axiom thm_IN_SET_OF_LIST : forall {A : Type'}, forall x : A, forall l : list A, (@IN A x (@set_of_list A l)) = (@List.In A x l). +Axiom thm_SET_OF_LIST_APPEND : forall {A : Type'}, forall l1 : list A, forall l2 : list A, (@set_of_list A (@List.app A l1 l2)) = (@UNION A (@set_of_list A l1) (@set_of_list A l2)). +Axiom thm_SET_OF_LIST_MAP : forall {A B : Type'}, forall f : A -> B, forall l : list A, (@set_of_list B (@List.map A B f l)) = (@IMAGE A B f (@set_of_list A l)). +Axiom thm_SET_OF_LIST_EQ_EMPTY : forall {A : Type'}, forall l : list A, ((@set_of_list A l) = (@EMPTY A)) = (l = (@nil A)). +Axiom thm_LIST_OF_SET_EMPTY : forall {A : Type'}, (@list_of_set A (@EMPTY A)) = (@nil A). +Axiom thm_LIST_OF_SET_SING : forall {A : Type'}, forall a : A, (@list_of_set A (@INSERT A a (@EMPTY A))) = (@cons A a (@nil A)). +Axiom thm_pairwise : forall {A : Type'}, forall s : A -> Prop, forall r : A -> A -> Prop, (@pairwise A r s) = (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ (~ (x = y)))) -> r x y). +Axiom thm_PAIRWISE_EMPTY : forall {A : Type'}, forall r : A -> A -> Prop, (@pairwise A r (@EMPTY A)) = True. +Axiom thm_PAIRWISE_SING : forall {A : Type'}, forall r : A -> A -> Prop, forall x : A, (@pairwise A r (@INSERT A x (@EMPTY A))) = True. +Axiom thm_PAIRWISE_IMP : forall {A : Type'}, forall P : A -> A -> Prop, forall Q : A -> A -> Prop, forall s : A -> Prop, ((@pairwise A P s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((P x y) /\ (~ (x = y))))) -> Q x y)) -> @pairwise A Q s. +Axiom thm_PAIRWISE_MONO : forall {A : Type'}, forall r : A -> A -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@pairwise A r s) /\ (@SUBSET A t s)) -> @pairwise A r t. +Axiom thm_PAIRWISE_AND : forall {A : Type'}, forall R' : A -> A -> Prop, forall R'' : A -> A -> Prop, forall s : A -> Prop, ((@pairwise A R' s) /\ (@pairwise A R'' s)) = (@pairwise A (fun x : A => fun y : A => (R' x y) /\ (R'' x y)) s). +Axiom thm_PAIRWISE_INSERT : forall {A : Type'}, forall r : A -> A -> Prop, forall x : A, forall s : A -> Prop, (@pairwise A r (@INSERT A x s)) = ((forall y : A, ((@IN A y s) /\ (~ (y = x))) -> (r x y) /\ (r y x)) /\ (@pairwise A r s)). +Axiom thm_PAIRWISE_INSERT_SYMMETRIC : forall {A : Type'}, forall r : A -> A -> Prop, forall x : A, forall s : A -> Prop, (forall y : A, (@IN A y s) -> (r x y) = (r y x)) -> (@pairwise A r (@INSERT A x s)) = ((forall y : A, ((@IN A y s) /\ (~ (y = x))) -> r x y) /\ (@pairwise A r s)). +Axiom thm_PAIRWISE_IMAGE : forall {A B : Type'} (s : A -> Prop), forall r : B -> B -> Prop, forall f : A -> B, (@pairwise B r (@IMAGE A B f s)) = (@pairwise A (fun x : A => fun y : A => (~ ((f x) = (f y))) -> r (f x) (f y)) s). +Axiom thm_PAIRWISE_UNION : forall {A : Type'}, forall R' : A -> A -> Prop, forall s : A -> Prop, forall t : A -> Prop, (@pairwise A R' (@UNION A s t)) = ((@pairwise A R' s) /\ ((@pairwise A R' t) /\ (forall x : A, forall y : A, ((@IN A x (@DIFF A s t)) /\ (@IN A y (@DIFF A t s))) -> (R' x y) /\ (R' y x)))). +Axiom thm_PAIRWISE_CHAIN_UNIONS : forall {A : Type'}, forall R' : A -> A -> Prop, forall c : (A -> Prop) -> Prop, ((forall s : A -> Prop, (@IN (A -> Prop) s c) -> @pairwise A R' s) /\ (forall s : A -> Prop, forall t : A -> Prop, ((@IN (A -> Prop) s c) /\ (@IN (A -> Prop) t c)) -> (@SUBSET A s t) \/ (@SUBSET A t s))) -> @pairwise A R' (@UNIONS A c). +Axiom thm_DIFF_UNIONS_PAIRWISE_DISJOINT : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : (A -> Prop) -> Prop, ((@pairwise (A -> Prop) (@DISJOINT A) s) /\ (@SUBSET (A -> Prop) t s)) -> (@DIFF A (@UNIONS A s) (@UNIONS A t)) = (@UNIONS A (@DIFF (A -> Prop) s t)). +Axiom thm_INTER_UNIONS_PAIRWISE_DISJOINT : forall {A : Type'}, forall s : (A -> Prop) -> Prop, forall t : (A -> Prop) -> Prop, (@pairwise (A -> Prop) (@DISJOINT A) (@UNION (A -> Prop) s t)) -> (@INTER A (@UNIONS A s) (@UNIONS A t)) = (@UNIONS A (@INTER (A -> Prop) s t)). +Axiom thm_PSUBSET_UNIONS_PAIRWISE_DISJOINT : forall {A : Type'}, forall u : (A -> Prop) -> Prop, forall v : (A -> Prop) -> Prop, ((@pairwise (A -> Prop) (@DISJOINT A) v) /\ (@PSUBSET (A -> Prop) u (@DELETE (A -> Prop) v (@EMPTY A)))) -> @PSUBSET A (@UNIONS A u) (@UNIONS A v). +Axiom thm_UNION_OF : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, (@UNION_OF A P Q) = (fun s : A -> Prop => exists u : (A -> Prop) -> Prop, (P u) /\ ((forall c : A -> Prop, (@IN (A -> Prop) c u) -> Q c) /\ ((@UNIONS A u) = s))). +Axiom thm_INTERSECTION_OF : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, (@INTERSECTION_OF A P Q) = (fun s : A -> Prop => exists u : (A -> Prop) -> Prop, (P u) /\ ((forall c : A -> Prop, (@IN (A -> Prop) c u) -> Q c) /\ ((@INTERS A u) = s))). +Axiom thm_UNION_OF_INC : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, forall s : A -> Prop, ((P (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) /\ (Q s)) -> @UNION_OF A P Q s. +Axiom thm_INTERSECTION_OF_INC : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, forall s : A -> Prop, ((P (@INSERT (A -> Prop) s (@EMPTY (A -> Prop)))) /\ (Q s)) -> @INTERSECTION_OF A P Q s. +Axiom thm_UNION_OF_MONO : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, forall Q' : (A -> Prop) -> Prop, forall s : A -> Prop, ((@UNION_OF A P Q s) /\ (forall x : A -> Prop, (Q x) -> Q' x)) -> @UNION_OF A P Q' s. +Axiom thm_INTERSECTION_OF_MONO : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, forall Q' : (A -> Prop) -> Prop, forall s : A -> Prop, ((@INTERSECTION_OF A P Q s) /\ (forall x : A -> Prop, (Q x) -> Q' x)) -> @INTERSECTION_OF A P Q' s. +Axiom thm_FORALL_UNION_OF : forall {A : Type'} (P : ((A -> Prop) -> Prop) -> Prop) (Q : (A -> Prop) -> Prop) (R' : (A -> Prop) -> Prop), (forall s : A -> Prop, (@UNION_OF A P Q s) -> R' s) = (forall t : (A -> Prop) -> Prop, ((P t) /\ (forall c : A -> Prop, (@IN (A -> Prop) c t) -> Q c)) -> R' (@UNIONS A t)). +Axiom thm_FORALL_INTERSECTION_OF : forall {A : Type'} (P : ((A -> Prop) -> Prop) -> Prop) (Q : (A -> Prop) -> Prop) (R' : (A -> Prop) -> Prop), (forall s : A -> Prop, (@INTERSECTION_OF A P Q s) -> R' s) = (forall t : (A -> Prop) -> Prop, ((P t) /\ (forall c : A -> Prop, (@IN (A -> Prop) c t) -> Q c)) -> R' (@INTERS A t)). +Axiom thm_UNION_OF_EMPTY : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, (P (@EMPTY (A -> Prop))) -> @UNION_OF A P Q (@EMPTY A). +Axiom thm_INTERSECTION_OF_EMPTY : forall {A : Type'}, forall P : ((A -> Prop) -> Prop) -> Prop, forall Q : (A -> Prop) -> Prop, (P (@EMPTY (A -> Prop))) -> @INTERSECTION_OF A P Q (@UNIV A). +Axiom thm_ARBITRARY : forall {A : Type'}, forall s : (A -> Prop) -> Prop, (@ARBITRARY A s) = True. +Axiom thm_ARBITRARY_UNION_OF_ALT : forall {A : Type'}, forall B : (A -> Prop) -> Prop, forall s : A -> Prop, (@UNION_OF A (@ARBITRARY A) B s) = (forall x : A, (@IN A x s) -> exists u : A -> Prop, (@IN (A -> Prop) u B) /\ ((@IN A x u) /\ (@SUBSET A u s))). +Axiom thm_ARBITRARY_UNION_OF_EMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, @UNION_OF A (@ARBITRARY A) P (@EMPTY A). +Axiom thm_ARBITRARY_INTERSECTION_OF_EMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, @INTERSECTION_OF A (@ARBITRARY A) P (@UNIV A). +Axiom thm_ARBITRARY_UNION_OF_INC : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (P s) -> @UNION_OF A (@ARBITRARY A) P s. +Axiom thm_ARBITRARY_INTERSECTION_OF_INC : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (P s) -> @INTERSECTION_OF A (@ARBITRARY A) P s. +Axiom thm_ARBITRARY_UNION_OF_COMPLEMENT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@UNION_OF A (@ARBITRARY A) P s) = (@INTERSECTION_OF A (@ARBITRARY A) (fun s' : A -> Prop => P (@DIFF A (@UNIV A) s')) (@DIFF A (@UNIV A) s)). +Axiom thm_ARBITRARY_INTERSECTION_OF_COMPLEMENT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@INTERSECTION_OF A (@ARBITRARY A) P s) = (@UNION_OF A (@ARBITRARY A) (fun s' : A -> Prop => P (@DIFF A (@UNIV A) s')) (@DIFF A (@UNIV A) s)). +Axiom thm_ARBITRARY_UNION_OF_IDEMPOT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@UNION_OF A (@ARBITRARY A) (@UNION_OF A (@ARBITRARY A) P)) = (@UNION_OF A (@ARBITRARY A) P). +Axiom thm_ARBITRARY_INTERSECTION_OF_IDEMPOT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@INTERSECTION_OF A (@ARBITRARY A) (@INTERSECTION_OF A (@ARBITRARY A) P)) = (@INTERSECTION_OF A (@ARBITRARY A) P). +Axiom thm_ARBITRARY_UNION_OF_UNIONS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @UNION_OF A (@ARBITRARY A) P s) -> @UNION_OF A (@ARBITRARY A) P (@UNIONS A u). +Axiom thm_ARBITRARY_UNION_OF_UNION : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@ARBITRARY A) P s) /\ (@UNION_OF A (@ARBITRARY A) P t)) -> @UNION_OF A (@ARBITRARY A) P (@UNION A s t). +Axiom thm_ARBITRARY_INTERSECTION_OF_INTERS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @INTERSECTION_OF A (@ARBITRARY A) P s) -> @INTERSECTION_OF A (@ARBITRARY A) P (@INTERS A u). +Axiom thm_ARBITRARY_INTERSECTION_OF_INTER : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@ARBITRARY A) P s) /\ (@INTERSECTION_OF A (@ARBITRARY A) P t)) -> @INTERSECTION_OF A (@ARBITRARY A) P (@INTER A s t). +Axiom thm_ARBITRARY_UNION_OF_INTER_EQ : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@ARBITRARY A) P s) /\ (@UNION_OF A (@ARBITRARY A) P t)) -> @UNION_OF A (@ARBITRARY A) P (@INTER A s t)) = (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> @UNION_OF A (@ARBITRARY A) P (@INTER A s t)). +Axiom thm_ARBITRARY_UNION_OF_INTER : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@INTER A s t)) -> forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@ARBITRARY A) P s) /\ (@UNION_OF A (@ARBITRARY A) P t)) -> @UNION_OF A (@ARBITRARY A) P (@INTER A s t). +Axiom thm_ARBITRARY_INTERSECTION_OF_UNION_EQ : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@ARBITRARY A) P s) /\ (@INTERSECTION_OF A (@ARBITRARY A) P t)) -> @INTERSECTION_OF A (@ARBITRARY A) P (@UNION A s t)) = (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> @INTERSECTION_OF A (@ARBITRARY A) P (@UNION A s t)). +Axiom thm_ARBITRARY_INTERSECTION_OF_UNION : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@UNION A s t)) -> forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@ARBITRARY A) P s) /\ (@INTERSECTION_OF A (@ARBITRARY A) P t)) -> @INTERSECTION_OF A (@ARBITRARY A) P (@UNION A s t). +Axiom thm_FINITE_UNION_OF_EMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, @UNION_OF A (@FINITE (A -> Prop)) P (@EMPTY A). +Axiom thm_FINITE_INTERSECTION_OF_EMPTY : forall {A : Type'}, forall P : (A -> Prop) -> Prop, @INTERSECTION_OF A (@FINITE (A -> Prop)) P (@UNIV A). +Axiom thm_FINITE_UNION_OF_INC : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (P s) -> @UNION_OF A (@FINITE (A -> Prop)) P s. +Axiom thm_FINITE_INTERSECTION_OF_INC : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (P s) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P s. +Axiom thm_FINITE_UNION_OF_COMPLEMENT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@UNION_OF A (@FINITE (A -> Prop)) P s) = (@INTERSECTION_OF A (@FINITE (A -> Prop)) (fun s' : A -> Prop => P (@DIFF A (@UNIV A) s')) (@DIFF A (@UNIV A) s)). +Axiom thm_FINITE_INTERSECTION_OF_COMPLEMENT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, (@INTERSECTION_OF A (@FINITE (A -> Prop)) P s) = (@UNION_OF A (@FINITE (A -> Prop)) (fun s' : A -> Prop => P (@DIFF A (@UNIV A) s')) (@DIFF A (@UNIV A) s)). +Axiom thm_FINITE_UNION_OF_IDEMPOT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@UNION_OF A (@FINITE (A -> Prop)) (@UNION_OF A (@FINITE (A -> Prop)) P)) = (@UNION_OF A (@FINITE (A -> Prop)) P). +Axiom thm_FINITE_INTERSECTION_OF_IDEMPOT : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (@INTERSECTION_OF A (@FINITE (A -> Prop)) (@INTERSECTION_OF A (@FINITE (A -> Prop)) P)) = (@INTERSECTION_OF A (@FINITE (A -> Prop)) P). +Axiom thm_FINITE_UNION_OF_UNIONS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) u) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @UNION_OF A (@FINITE (A -> Prop)) P s)) -> @UNION_OF A (@FINITE (A -> Prop)) P (@UNIONS A u). +Axiom thm_FINITE_UNION_OF_UNION : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@FINITE (A -> Prop)) P s) /\ (@UNION_OF A (@FINITE (A -> Prop)) P t)) -> @UNION_OF A (@FINITE (A -> Prop)) P (@UNION A s t). +Axiom thm_FINITE_INTERSECTION_OF_INTERS : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall u : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) u) /\ (forall s : A -> Prop, (@IN (A -> Prop) s u) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P s)) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P (@INTERS A u). +Axiom thm_FINITE_INTERSECTION_OF_INTER : forall {A : Type'}, forall P : (A -> Prop) -> Prop, forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@FINITE (A -> Prop)) P s) /\ (@INTERSECTION_OF A (@FINITE (A -> Prop)) P t)) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P (@INTER A s t). +Axiom thm_FINITE_UNION_OF_INTER_EQ : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@FINITE (A -> Prop)) P s) /\ (@UNION_OF A (@FINITE (A -> Prop)) P t)) -> @UNION_OF A (@FINITE (A -> Prop)) P (@INTER A s t)) = (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> @UNION_OF A (@FINITE (A -> Prop)) P (@INTER A s t)). +Axiom thm_FINITE_UNION_OF_INTER : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@INTER A s t)) -> forall s : A -> Prop, forall t : A -> Prop, ((@UNION_OF A (@FINITE (A -> Prop)) P s) /\ (@UNION_OF A (@FINITE (A -> Prop)) P t)) -> @UNION_OF A (@FINITE (A -> Prop)) P (@INTER A s t). +Axiom thm_FINITE_INTERSECTION_OF_UNION_EQ : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@FINITE (A -> Prop)) P s) /\ (@INTERSECTION_OF A (@FINITE (A -> Prop)) P t)) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P (@UNION A s t)) = (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P (@UNION A s t)). +Axiom thm_FINITE_INTERSECTION_OF_UNION : forall {A : Type'}, forall P : (A -> Prop) -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((P s) /\ (P t)) -> P (@UNION A s t)) -> forall s : A -> Prop, forall t : A -> Prop, ((@INTERSECTION_OF A (@FINITE (A -> Prop)) P s) /\ (@INTERSECTION_OF A (@FINITE (A -> Prop)) P t)) -> @INTERSECTION_OF A (@FINITE (A -> Prop)) P (@UNION A s t). +Axiom thm_CARD_SET_OF_LIST_LE : forall {A : Type'}, forall l : list A, N.le (@CARD A (@set_of_list A l)) (@LENGTH A l). +Axiom thm_HAS_SIZE_SET_OF_LIST : forall {A : Type'}, forall l : list A, (@HAS_SIZE A (@set_of_list A l) (@LENGTH A l)) = (@List.ForallOrdPairs A (fun x : A => fun y : A => ~ (x = y)) l). +Axiom thm_SURJECTIVE_IFF_INJECTIVE_GEN : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, ((@FINITE A s) /\ ((@FINITE B t) /\ (((@CARD A s) = (@CARD B t)) /\ (@SUBSET B (@IMAGE A B f s) t)))) -> (forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ ((f x) = y)) = (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y). +Axiom thm_SURJECTIVE_IFF_INJECTIVE : forall {A : Type'}, forall s : A -> Prop, forall f : A -> A, ((@FINITE A s) /\ (@SUBSET A (@IMAGE A A f s) s)) -> (forall y : A, (@IN A y s) -> exists x : A, (@IN A x s) /\ ((f x) = y)) = (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y). +Axiom thm_IMAGE_IMP_INJECTIVE_GEN : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, ((@FINITE A s) /\ (((@CARD A s) = (@CARD B t)) /\ ((@IMAGE A B f s) = t))) -> forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y. +Axiom thm_IMAGE_IMP_INJECTIVE : forall {A : Type'}, forall s : A -> Prop, forall f : A -> A, ((@FINITE A s) /\ ((@IMAGE A A f s) = s)) -> forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y. +Axiom thm_HAS_SIZE_IMAGE_INJ_RESTRICT : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall t : B -> Prop, forall P : B -> Prop, forall n : N, ((@FINITE A s) /\ ((@FINITE B t) /\ (((@CARD A s) = (@CARD B t)) /\ ((@SUBSET B (@IMAGE A B f s) t) /\ ((forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) /\ (@HAS_SIZE A (@GSPEC A (fun GEN_PVAR_219 : A => exists x : A, @SETSPEC A GEN_PVAR_219 ((@IN A x s) /\ (P (f x))) x)) n)))))) -> @HAS_SIZE B (@GSPEC B (fun GEN_PVAR_220 : B => exists x : B, @SETSPEC B GEN_PVAR_220 ((@IN B x t) /\ (P x)) x)) n. +Axiom thm_CARD_LE_INJ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ ((@FINITE B t) /\ (N.le (@CARD A s) (@CARD B t)))) -> exists f : A -> B, (@SUBSET B (@IMAGE A B f s) t) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y). +Axiom thm_FORALL_IN_CLAUSES : forall {A : Type'}, (forall P : A -> Prop, (forall x : A, (@IN A x (@EMPTY A)) -> P x) = True) /\ (forall P : A -> Prop, forall a : A, forall s : A -> Prop, (forall x : A, (@IN A x (@INSERT A a s)) -> P x) = ((P a) /\ (forall x : A, (@IN A x s) -> P x))). +Axiom thm_EXISTS_IN_CLAUSES : forall {A : Type'}, (forall P : A -> Prop, (exists x : A, (@IN A x (@EMPTY A)) /\ (P x)) = False) /\ (forall P : A -> Prop, forall a : A, forall s : A -> Prop, (exists x : A, (@IN A x (@INSERT A a s)) /\ (P x)) = ((P a) \/ (exists x : A, (@IN A x s) /\ (P x)))). +Axiom thm_INJECTIVE_ON_IMAGE : forall {A B : Type'}, forall f : A -> B, forall u : A -> Prop, (forall s : A -> Prop, forall t : A -> Prop, ((@SUBSET A s u) /\ ((@SUBSET A t u) /\ ((@IMAGE A B f s) = (@IMAGE A B f t)))) -> s = t) = (forall x : A, forall y : A, ((@IN A x u) /\ ((@IN A y u) /\ ((f x) = (f y)))) -> x = y). +Axiom thm_INJECTIVE_IMAGE : forall {A B : Type'}, forall f : A -> B, (forall s : A -> Prop, forall t : A -> Prop, ((@IMAGE A B f s) = (@IMAGE A B f t)) -> s = t) = (forall x : A, forall y : A, ((f x) = (f y)) -> x = y). +Axiom thm_SURJECTIVE_ON_IMAGE : forall {A B : Type'}, forall f : A -> B, forall u : A -> Prop, forall v : B -> Prop, (forall t : B -> Prop, (@SUBSET B t v) -> exists s : A -> Prop, (@SUBSET A s u) /\ ((@IMAGE A B f s) = t)) = (forall y : B, (@IN B y v) -> exists x : A, (@IN A x u) /\ ((f x) = y)). +Axiom thm_SURJECTIVE_IMAGE : forall {A B : Type'}, forall f : A -> B, (forall t : B -> Prop, exists s : A -> Prop, (@IMAGE A B f s) = t) = (forall y : B, exists x : A, (f x) = y). +Axiom thm_INJECTIVE_ON_PREIMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall u : B -> Prop, (forall t : B -> Prop, forall t' : B -> Prop, ((@SUBSET B t u) /\ ((@SUBSET B t' u) /\ ((@GSPEC A (fun GEN_PVAR_222 : A => exists x : A, @SETSPEC A GEN_PVAR_222 ((@IN A x s) /\ (@IN B (f x) t)) x)) = (@GSPEC A (fun GEN_PVAR_223 : A => exists x : A, @SETSPEC A GEN_PVAR_223 ((@IN A x s) /\ (@IN B (f x) t')) x))))) -> t = t') = (@SUBSET B u (@IMAGE A B f s)). +Axiom thm_SURJECTIVE_ON_PREIMAGE : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall u : B -> Prop, (forall k : A -> Prop, (@SUBSET A k s) -> exists t : B -> Prop, (@SUBSET B t u) /\ ((@GSPEC A (fun GEN_PVAR_224 : A => exists x : A, @SETSPEC A GEN_PVAR_224 ((@IN A x s) /\ (@IN B (f x) t)) x)) = k)) = ((@SUBSET B (@IMAGE A B f s) u) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y)). +Axiom thm_INJECTIVE_PREIMAGE : forall {A B : Type'}, forall f : A -> B, (forall t : B -> Prop, forall t' : B -> Prop, ((@GSPEC A (fun GEN_PVAR_225 : A => exists x : A, @SETSPEC A GEN_PVAR_225 (@IN B (f x) t) x)) = (@GSPEC A (fun GEN_PVAR_226 : A => exists x : A, @SETSPEC A GEN_PVAR_226 (@IN B (f x) t') x))) -> t = t') = ((@IMAGE A B f (@UNIV A)) = (@UNIV B)). +Axiom thm_SURJECTIVE_PREIMAGE : forall {A B : Type'}, forall f : A -> B, (forall k : A -> Prop, exists t : B -> Prop, (@GSPEC A (fun GEN_PVAR_227 : A => exists x : A, @SETSPEC A GEN_PVAR_227 (@IN B (f x) t) x)) = k) = (forall x : A, forall y : A, ((f x) = (f y)) -> x = y). +Axiom thm_CARD_EQ_BIJECTION : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ ((@FINITE B t) /\ ((@CARD A s) = (@CARD B t)))) -> exists f : A -> B, (forall x : A, (@IN A x s) -> @IN B (f x) t) /\ ((forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ ((f x) = y)) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y)). +Axiom thm_CARD_EQ_BIJECTIONS : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ ((@FINITE B t) /\ ((@CARD A s) = (@CARD B t)))) -> exists f : A -> B, exists g : B -> A, (forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)). +Axiom thm_CARD_EQ_BIJECTIONS_SPECIAL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall a : A, forall b : B, ((@FINITE A s) /\ ((@FINITE B t) /\ (((@CARD A s) = (@CARD B t)) /\ ((@IN A a s) /\ (@IN B b t))))) -> exists f : A -> B, exists g : B -> A, ((f a) = b) /\ (((g b) = a) /\ ((forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)))). +Axiom thm_BIJECTIONS_HAS_SIZE : forall {A B : Type'} (n : N), forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, forall g : B -> A, ((forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ ((forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)) /\ (@HAS_SIZE A s n))) -> @HAS_SIZE B t n. +Axiom thm_BIJECTIONS_HAS_SIZE_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, forall g : B -> A, ((forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y))) -> forall n : N, (@HAS_SIZE A s n) = (@HAS_SIZE B t n). +Axiom thm_BIJECTIONS_CARD_EQ : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> B, forall g : B -> A, (((@FINITE A s) \/ (@FINITE B t)) /\ ((forall x : A, (@IN A x s) -> (@IN B (f x) t) /\ ((g (f x)) = x)) /\ (forall y : B, (@IN B y t) -> (@IN A (g y) s) /\ ((f (g y)) = y)))) -> (@CARD A s) = (@CARD B t). +Axiom thm_WF_FINITE : forall {A : Type'}, forall lt2 : A -> A -> Prop, ((forall x : A, ~ (lt2 x x)) /\ ((forall x : A, forall y : A, forall z : A, ((lt2 x y) /\ (lt2 y z)) -> lt2 x z) /\ (forall x : A, @FINITE A (@GSPEC A (fun GEN_PVAR_229 : A => exists y : A, @SETSPEC A GEN_PVAR_229 (lt2 y x) y))))) -> @WF A lt2. +Axiom thm_WF_PSUBSET : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> @WF (A -> Prop) (fun t1 : A -> Prop => fun t2 : A -> Prop => (@PSUBSET A t1 t2) /\ (@SUBSET A t2 s)). +Axiom thm_le_c : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, (@le_c A B s t) = (exists f : A -> B, (forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y)). +Axiom thm_lt_c : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, (@lt_c A B s t) = ((@le_c A B s t) /\ (~ (@le_c B A t s))). +Axiom thm_eq_c : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, (@eq_c A B s t) = (exists f : A -> B, (forall x : A, (@IN A x s) -> @IN B (f x) t) /\ (forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ ((f x) = y)))). +Axiom thm_ge_c : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, (@ge_c A B s t) = (@le_c B A t s). +Axiom thm_gt_c : forall {A B : Type'}, forall t : B -> Prop, forall s : A -> Prop, (@gt_c A B s t) = (@lt_c B A t s). +Axiom thm_LE_C : forall {A B : Type'}, forall s : B -> Prop, forall t : A -> Prop, (@le_c B A s t) = (exists g : A -> B, forall x : B, (@IN B x s) -> exists y : A, (@IN A y t) /\ ((g y) = x)). +Axiom thm_GE_C : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, (@ge_c A B s t) = (exists f : A -> B, forall y : B, (@IN B y t) -> exists x : A, (@IN A x s) /\ (y = (f x))). +Axiom thm_COUNTABLE : forall {A : Type'}, forall t : A -> Prop, (@COUNTABLE A t) = (@ge_c N A (@UNIV N) t). +Axiom thm_sup : forall s : R -> Prop, (sup s) = (@ε R (fun a : R => (forall x : R, (@IN R x s) -> Rle x a) /\ (forall b : R, (forall x : R, (@IN R x s) -> Rle x b) -> Rle a b))). +Axiom thm_SUP_EQ : forall s : R -> Prop, forall t : R -> Prop, (forall b : R, (forall x : R, (@IN R x s) -> Rle x b) = (forall x : R, (@IN R x t) -> Rle x b)) -> (sup s) = (sup t). +Axiom thm_SUP : forall s : R -> Prop, ((~ (s = (@EMPTY R))) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle x b)) -> (forall x : R, (@IN R x s) -> Rle x (sup s)) /\ (forall b : R, (forall x : R, (@IN R x s) -> Rle x b) -> Rle (sup s) b). +Axiom thm_SUP_FINITE_LEMMA : forall s : R -> Prop, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> exists b : R, (@IN R b s) /\ (forall x : R, (@IN R x s) -> Rle x b). +Axiom thm_SUP_FINITE : forall s : R -> Prop, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (@IN R (sup s) s) /\ (forall x : R, (@IN R x s) -> Rle x (sup s)). +Axiom thm_REAL_LE_SUP_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rle a (sup s)) = (exists x : R, (@IN R x s) /\ (Rle a x)). +Axiom thm_REAL_SUP_LE_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rle (sup s) a) = (forall x : R, (@IN R x s) -> Rle x a). +Axiom thm_REAL_LT_SUP_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rlt a (sup s)) = (exists x : R, (@IN R x s) /\ (Rlt a x)). +Axiom thm_REAL_SUP_LT_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rlt (sup s) a) = (forall x : R, (@IN R x s) -> Rlt x a). +Axiom thm_REAL_SUP_UNIQUE : forall s : R -> Prop, forall b : R, ((forall x : R, (@IN R x s) -> Rle x b) /\ (forall b' : R, (Rlt b' b) -> exists x : R, (@IN R x s) /\ (Rlt b' x))) -> (sup s) = b. +Axiom thm_REAL_SUP_LE : forall (s : R -> Prop), forall b : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle x b)) -> Rle (sup s) b. +Axiom thm_REAL_SUP_LE_SUBSET : forall s : R -> Prop, forall t : R -> Prop, ((~ (s = (@EMPTY R))) /\ ((@SUBSET R s t) /\ (exists b : R, forall x : R, (@IN R x t) -> Rle x b))) -> Rle (sup s) (sup t). +Axiom thm_REAL_SUP_BOUNDS : forall s : R -> Prop, forall a : R, forall b : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> (Rle a x) /\ (Rle x b))) -> (Rle a (sup s)) /\ (Rle (sup s) b). +Axiom thm_REAL_ABS_SUP_LE : forall s : R -> Prop, forall a : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle (Rabs x) a)) -> Rle (Rabs (sup s)) a. +Axiom thm_REAL_SUP_ASCLOSE : forall s : R -> Prop, forall l : R, forall e : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle (Rabs (Rminus x l)) e)) -> Rle (Rabs (Rminus (sup s) l)) e. +Axiom thm_SUP_UNIQUE_FINITE : forall (a : R), forall s : R -> Prop, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> ((sup s) = a) = ((@IN R a s) /\ (forall y : R, (@IN R y s) -> Rle y a)). +Axiom thm_SUP_INSERT_FINITE : forall x : R, forall s : R -> Prop, (@FINITE R s) -> (sup (@INSERT R x s)) = (@COND R (s = (@EMPTY R)) x (Rmax x (sup s))). +Axiom thm_SUP_SING : forall a : R, (sup (@INSERT R a (@EMPTY R))) = a. +Axiom thm_SUP_INSERT_INSERT : forall a : R, forall b : R, forall s : R -> Prop, (sup (@INSERT R b (@INSERT R a s))) = (sup (@INSERT R (Rmax a b) s)). +Axiom thm_REAL_LE_SUP : forall s : R -> Prop, forall a : R, forall b : R, forall y : R, ((@IN R y s) /\ ((Rle a y) /\ (forall x : R, (@IN R x s) -> Rle x b))) -> Rle a (sup s). +Axiom thm_REAL_SUP_LE_EQ : forall s : R -> Prop, forall y : R, ((~ (s = (@EMPTY R))) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle x b)) -> (Rle (sup s) y) = (forall x : R, (@IN R x s) -> Rle x y). +Axiom thm_SUP_UNIQUE : forall s : R -> Prop, forall b : R, (forall c : R, (forall x : R, (@IN R x s) -> Rle x c) = (Rle b c)) -> (sup s) = b. +Axiom thm_SUP_UNION : forall s : R -> Prop, forall t : R -> Prop, ((~ (s = (@EMPTY R))) /\ ((~ (t = (@EMPTY R))) /\ ((exists b : R, forall x : R, (@IN R x s) -> Rle x b) /\ (exists c : R, forall x : R, (@IN R x t) -> Rle x c)))) -> (sup (@UNION R s t)) = (Rmax (sup s) (sup t)). +Axiom thm_ELEMENT_LE_SUP : forall s : R -> Prop, forall a : R, ((exists b : R, forall x : R, (@IN R x s) -> Rle x b) /\ (@IN R a s)) -> Rle a (sup s). +Axiom thm_SUP_APPROACH : forall s : R -> Prop, forall c : R, ((~ (s = (@EMPTY R))) /\ ((exists b : R, forall x : R, (@IN R x s) -> Rle x b) /\ (Rlt c (sup s)))) -> exists x : R, (@IN R x s) /\ (Rlt c x). +Axiom thm_REAL_MAX_SUP : forall x : R, forall y : R, (Rmax x y) = (sup (@INSERT R x (@INSERT R y (@EMPTY R)))). +Axiom thm_inf : forall s : R -> Prop, (inf s) = (@ε R (fun a : R => (forall x : R, (@IN R x s) -> Rle a x) /\ (forall b : R, (forall x : R, (@IN R x s) -> Rle b x) -> Rle b a))). +Axiom thm_INF_EQ : forall s : R -> Prop, forall t : R -> Prop, (forall a : R, (forall x : R, (@IN R x s) -> Rle a x) = (forall x : R, (@IN R x t) -> Rle a x)) -> (inf s) = (inf t). +Axiom thm_INF : forall s : R -> Prop, ((~ (s = (@EMPTY R))) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle b x)) -> (forall x : R, (@IN R x s) -> Rle (inf s) x) /\ (forall b : R, (forall x : R, (@IN R x s) -> Rle b x) -> Rle b (inf s)). +Axiom thm_INF_FINITE_LEMMA : forall s : R -> Prop, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> exists b : R, (@IN R b s) /\ (forall x : R, (@IN R x s) -> Rle b x). +Axiom thm_INF_FINITE : forall s : R -> Prop, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (@IN R (inf s) s) /\ (forall x : R, (@IN R x s) -> Rle (inf s) x). +Axiom thm_REAL_LE_INF_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rle a (inf s)) = (forall x : R, (@IN R x s) -> Rle a x). +Axiom thm_REAL_INF_LE_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rle (inf s) a) = (exists x : R, (@IN R x s) /\ (Rle x a)). +Axiom thm_REAL_LT_INF_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rlt a (inf s)) = (forall x : R, (@IN R x s) -> Rlt a x). +Axiom thm_REAL_INF_LT_FINITE : forall s : R -> Prop, forall a : R, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> (Rlt (inf s) a) = (exists x : R, (@IN R x s) /\ (Rlt x a)). +Axiom thm_REAL_INF_UNIQUE : forall s : R -> Prop, forall b : R, ((forall x : R, (@IN R x s) -> Rle b x) /\ (forall b' : R, (Rlt b b') -> exists x : R, (@IN R x s) /\ (Rlt x b'))) -> (inf s) = b. +Axiom thm_REAL_LE_INF : forall (s : R -> Prop), forall b : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle b x)) -> Rle b (inf s). +Axiom thm_REAL_LE_INF_SUBSET : forall s : R -> Prop, forall t : R -> Prop, ((~ (t = (@EMPTY R))) /\ ((@SUBSET R t s) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle b x))) -> Rle (inf s) (inf t). +Axiom thm_REAL_INF_BOUNDS : forall s : R -> Prop, forall a : R, forall b : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> (Rle a x) /\ (Rle x b))) -> (Rle a (inf s)) /\ (Rle (inf s) b). +Axiom thm_REAL_ABS_INF_LE : forall s : R -> Prop, forall a : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle (Rabs x) a)) -> Rle (Rabs (inf s)) a. +Axiom thm_REAL_INF_ASCLOSE : forall s : R -> Prop, forall l : R, forall e : R, ((~ (s = (@EMPTY R))) /\ (forall x : R, (@IN R x s) -> Rle (Rabs (Rminus x l)) e)) -> Rle (Rabs (Rminus (inf s) l)) e. +Axiom thm_INF_UNIQUE_FINITE : forall (a : R), forall s : R -> Prop, ((@FINITE R s) /\ (~ (s = (@EMPTY R)))) -> ((inf s) = a) = ((@IN R a s) /\ (forall y : R, (@IN R y s) -> Rle a y)). +Axiom thm_INF_INSERT_FINITE : forall x : R, forall s : R -> Prop, (@FINITE R s) -> (inf (@INSERT R x s)) = (@COND R (s = (@EMPTY R)) x (Rmin x (inf s))). +Axiom thm_INF_SING : forall a : R, (inf (@INSERT R a (@EMPTY R))) = a. +Axiom thm_INF_INSERT_INSERT : forall a : R, forall b : R, forall s : R -> Prop, (inf (@INSERT R b (@INSERT R a s))) = (inf (@INSERT R (Rmin a b) s)). +Axiom thm_REAL_SUP_EQ_INF : forall s : R -> Prop, ((~ (s = (@EMPTY R))) /\ (exists B : R, forall x : R, (@IN R x s) -> Rle (Rabs x) B)) -> ((sup s) = (inf s)) = (exists a : R, s = (@INSERT R a (@EMPTY R))). +Axiom thm_REAL_INF_LE : forall s : R -> Prop, forall a : R, forall b : R, forall y : R, ((@IN R y s) /\ ((Rle y b) /\ (forall x : R, (@IN R x s) -> Rle a x))) -> Rle (inf s) b. +Axiom thm_REAL_LE_INF_EQ : forall s : R -> Prop, forall y : R, ((~ (s = (@EMPTY R))) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle b x)) -> (Rle y (inf s)) = (forall x : R, (@IN R x s) -> Rle y x). +Axiom thm_INF_UNIQUE : forall s : R -> Prop, forall b : R, (forall c : R, (forall x : R, (@IN R x s) -> Rle c x) = (Rle c b)) -> (inf s) = b. +Axiom thm_INF_UNION : forall s : R -> Prop, forall t : R -> Prop, ((~ (s = (@EMPTY R))) /\ ((~ (t = (@EMPTY R))) /\ ((exists b : R, forall x : R, (@IN R x s) -> Rle b x) /\ (exists c : R, forall x : R, (@IN R x t) -> Rle c x)))) -> (inf (@UNION R s t)) = (Rmin (inf s) (inf t)). +Axiom thm_INF_LE_ELEMENT : forall s : R -> Prop, forall a : R, ((exists b : R, forall x : R, (@IN R x s) -> Rle b x) /\ (@IN R a s)) -> Rle (inf s) a. +Axiom thm_INF_APPROACH : forall s : R -> Prop, forall c : R, ((~ (s = (@EMPTY R))) /\ ((exists b : R, forall x : R, (@IN R x s) -> Rle b x) /\ (Rlt (inf s) c))) -> exists x : R, (@IN R x s) /\ (Rlt x c). +Axiom thm_REAL_MIN_INF : forall x : R, forall y : R, (Rmin x y) = (inf (@INSERT R x (@INSERT R y (@EMPTY R)))). +Axiom thm_has_inf : forall s : R -> Prop, forall b : R, (has_inf s b) = (forall c : R, (forall x : R, (@IN R x s) -> Rle c x) = (Rle c b)). +Axiom thm_has_sup : forall s : R -> Prop, forall b : R, (has_sup s b) = (forall c : R, (forall x : R, (@IN R x s) -> Rle x c) = (Rle b c)). +Axiom thm_HAS_INF_LBOUND : forall s : R -> Prop, forall b : R, forall x : R, ((has_inf s b) /\ (@IN R x s)) -> Rle b x. +Axiom thm_HAS_SUP_UBOUND : forall s : R -> Prop, forall b : R, forall x : R, ((has_sup s b) /\ (@IN R x s)) -> Rle x b. +Axiom thm_HAS_INF_INF : forall s : R -> Prop, forall l : R, (has_inf s l) = ((~ (s = (@EMPTY R))) /\ ((exists b : R, forall x : R, (@IN R x s) -> Rle b x) /\ ((inf s) = l))). +Axiom thm_HAS_SUP_SUP : forall s : R -> Prop, forall l : R, (has_sup s l) = ((~ (s = (@EMPTY R))) /\ ((exists b : R, forall x : R, (@IN R x s) -> Rle x b) /\ ((sup s) = l))). +Axiom thm_INF_EXISTS : forall s : R -> Prop, (exists l : R, has_inf s l) = ((~ (s = (@EMPTY R))) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle b x)). +Axiom thm_SUP_EXISTS : forall s : R -> Prop, (exists l : R, has_sup s l) = ((~ (s = (@EMPTY R))) /\ (exists b : R, forall x : R, (@IN R x s) -> Rle x b)). +Axiom thm_HAS_INF_APPROACH : forall s : R -> Prop, forall l : R, forall c : R, ((has_inf s l) /\ (Rlt l c)) -> exists x : R, (@IN R x s) /\ (Rlt x c). +Axiom thm_HAS_SUP_APPROACH : forall s : R -> Prop, forall l : R, forall c : R, ((has_sup s l) /\ (Rlt c l)) -> exists x : R, (@IN R x s) /\ (Rlt c x). +Axiom thm_HAS_INF : forall s : R -> Prop, forall l : R, (has_inf s l) = ((~ (s = (@EMPTY R))) /\ ((forall x : R, (@IN R x s) -> Rle l x) /\ (forall c : R, (Rlt l c) -> exists x : R, (@IN R x s) /\ (Rlt x c)))). +Axiom thm_HAS_SUP : forall s : R -> Prop, forall l : R, (has_sup s l) = ((~ (s = (@EMPTY R))) /\ ((forall x : R, (@IN R x s) -> Rle x l) /\ (forall c : R, (Rlt c l) -> exists x : R, (@IN R x s) /\ (Rlt c x)))). +Axiom thm_HAS_INF_LE : forall s : R -> Prop, forall t : R -> Prop, forall l : R, forall m : R, ((has_inf s l) /\ ((has_inf t m) /\ (forall y : R, (@IN R y t) -> exists x : R, (@IN R x s) /\ (Rle x y)))) -> Rle l m. +Axiom thm_HAS_SUP_LE : forall s : R -> Prop, forall t : R -> Prop, forall l : R, forall m : R, ((has_sup s l) /\ ((has_sup t m) /\ (forall y : R, (@IN R y t) -> exists x : R, (@IN R x s) /\ (Rle y x)))) -> Rle m l. +Axiom thm_numseg : forall m : N, forall n : N, (dotdot m n) = (@GSPEC N (fun GEN_PVAR_231 : N => exists x : N, @SETSPEC N GEN_PVAR_231 ((N.le m x) /\ (N.le x n)) x)). +Axiom thm_FINITE_NUMSEG : forall m : N, forall n : N, @FINITE N (dotdot m n). +Axiom thm_NUMSEG_COMBINE_R : forall m : N, forall p : N, forall n : N, ((N.le m (N.add p (NUMERAL (BIT1 0%N)))) /\ (N.le p n)) -> (@UNION N (dotdot m p) (dotdot (N.add p (NUMERAL (BIT1 0%N))) n)) = (dotdot m n). +Axiom thm_NUMSEG_COMBINE_L : forall m : N, forall p : N, forall n : N, ((N.le m p) /\ (N.le p (N.add n (NUMERAL (BIT1 0%N))))) -> (@UNION N (dotdot m (N.sub p (NUMERAL (BIT1 0%N)))) (dotdot p n)) = (dotdot m n). +Axiom thm_NUMSEG_LREC : forall m : N, forall n : N, (N.le m n) -> (@INSERT N m (dotdot (N.add m (NUMERAL (BIT1 0%N))) n)) = (dotdot m n). +Axiom thm_NUMSEG_RREC : forall m : N, forall n : N, (N.le m n) -> (@INSERT N n (dotdot m (N.sub n (NUMERAL (BIT1 0%N))))) = (dotdot m n). +Axiom thm_NUMSEG_REC : forall m : N, forall n : N, (N.le m (N.succ n)) -> (dotdot m (N.succ n)) = (@INSERT N (N.succ n) (dotdot m n)). +Axiom thm_IN_NUMSEG : forall m : N, forall n : N, forall p : N, (@IN N p (dotdot m n)) = ((N.le m p) /\ (N.le p n)). +Axiom thm_IN_NUMSEG_0 : forall m : N, forall n : N, (@IN N m (dotdot (NUMERAL 0%N) n)) = (N.le m n). +Axiom thm_NUMSEG_SING : forall n : N, (dotdot n n) = (@INSERT N n (@EMPTY N)). +Axiom thm_NUMSEG_EMPTY : forall m : N, forall n : N, ((dotdot m n) = (@EMPTY N)) = (N.lt n m). +Axiom thm_EMPTY_NUMSEG : forall m : N, forall n : N, (N.lt n m) -> (dotdot m n) = (@EMPTY N). +Axiom thm_FINITE_SUBSET_NUMSEG : forall s : N -> Prop, (@FINITE N s) = (exists n : N, @SUBSET N s (dotdot (NUMERAL 0%N) n)). +Axiom thm_CARD_NUMSEG_LEMMA : forall m : N, forall d : N, (@CARD N (dotdot m (N.add m d))) = (N.add d (NUMERAL (BIT1 0%N))). +Axiom thm_CARD_NUMSEG : forall m : N, forall n : N, (@CARD N (dotdot m n)) = (N.sub (N.add n (NUMERAL (BIT1 0%N))) m). +Axiom thm_HAS_SIZE_NUMSEG : forall m : N, forall n : N, @HAS_SIZE N (dotdot m n) (N.sub (N.add n (NUMERAL (BIT1 0%N))) m). +Axiom thm_CARD_NUMSEG_1 : forall n : N, (@CARD N (dotdot (NUMERAL (BIT1 0%N)) n)) = n. +Axiom thm_HAS_SIZE_NUMSEG_1 : forall n : N, @HAS_SIZE N (dotdot (NUMERAL (BIT1 0%N)) n) n. +Axiom thm_NUMSEG_CLAUSES : (forall m : N, (dotdot m (NUMERAL 0%N)) = (@COND (N -> Prop) (m = (NUMERAL 0%N)) (@INSERT N (NUMERAL 0%N) (@EMPTY N)) (@EMPTY N))) /\ (forall m : N, forall n : N, (dotdot m (N.succ n)) = (@COND (N -> Prop) (N.le m (N.succ n)) (@INSERT N (N.succ n) (dotdot m n)) (dotdot m n))). +Axiom thm_FINITE_INDEX_NUMSEG : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) = (exists f : N -> A, (forall i : N, forall j : N, ((@IN N i (dotdot (NUMERAL (BIT1 0%N)) (@CARD A s))) /\ ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) (@CARD A s))) /\ ((f i) = (f j)))) -> i = j) /\ (s = (@IMAGE N A f (dotdot (NUMERAL (BIT1 0%N)) (@CARD A s))))). +Axiom thm_FINITE_INDEX_NUMBERS : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) = (exists k : N -> Prop, exists f : N -> A, (forall i : N, forall j : N, ((@IN N i k) /\ ((@IN N j k) /\ ((f i) = (f j)))) -> i = j) /\ ((@FINITE N k) /\ (s = (@IMAGE N A f k)))). +Axiom thm_INTER_NUMSEG : forall m : N, forall n : N, forall p : N, forall q : N, (@INTER N (dotdot m n) (dotdot p q)) = (dotdot (N.max m p) (N.min n q)). +Axiom thm_DISJOINT_NUMSEG : forall m : N, forall n : N, forall p : N, forall q : N, (@DISJOINT N (dotdot m n) (dotdot p q)) = ((N.lt n p) \/ ((N.lt q m) \/ ((N.lt n m) \/ (N.lt q p)))). +Axiom thm_NUMSEG_ADD_SPLIT : forall m : N, forall n : N, forall p : N, (N.le m (N.add n (NUMERAL (BIT1 0%N)))) -> (dotdot m (N.add n p)) = (@UNION N (dotdot m n) (dotdot (N.add n (NUMERAL (BIT1 0%N))) (N.add n p))). +Axiom thm_NUMSEG_OFFSET_IMAGE : forall m : N, forall n : N, forall p : N, (dotdot (N.add m p) (N.add n p)) = (@IMAGE N N (fun i : N => N.add i p) (dotdot m n)). +Axiom thm_SUBSET_NUMSEG : forall m : N, forall n : N, forall p : N, forall q : N, (@SUBSET N (dotdot m n) (dotdot p q)) = ((N.lt n m) \/ ((N.le p m) /\ (N.le n q))). +Axiom thm_NUMSEG_LE : forall n : N, (@GSPEC N (fun GEN_PVAR_233 : N => exists x : N, @SETSPEC N GEN_PVAR_233 (N.le x n) x)) = (dotdot (NUMERAL 0%N) n). +Axiom thm_NUMSEG_LT : forall n : N, (@GSPEC N (fun GEN_PVAR_234 : N => exists x : N, @SETSPEC N GEN_PVAR_234 (N.lt x n) x)) = (@COND (N -> Prop) (n = (NUMERAL 0%N)) (@EMPTY N) (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N))))). +Axiom thm_TOPOLOGICAL_SORT : forall {A : Type'}, forall lt2 : A -> A -> Prop, ((forall x : A, forall y : A, ((lt2 x y) /\ (lt2 y x)) -> x = y) /\ (forall x : A, forall y : A, forall z : A, ((lt2 x y) /\ (lt2 y z)) -> lt2 x z)) -> forall n : N, forall s : A -> Prop, (@HAS_SIZE A s n) -> exists f : N -> A, (s = (@IMAGE N A f (dotdot (NUMERAL (BIT1 0%N)) n))) /\ (forall j : N, forall k : N, ((@IN N j (dotdot (NUMERAL (BIT1 0%N)) n)) /\ ((@IN N k (dotdot (NUMERAL (BIT1 0%N)) n)) /\ (N.lt j k))) -> ~ (lt2 (f k) (f j))). +Axiom thm_FINITE_INT_SEG : (forall l : Z, forall r : Z, @FINITE Z (@GSPEC Z (fun GEN_PVAR_235 : Z => exists x : Z, @SETSPEC Z GEN_PVAR_235 ((int_le l x) /\ (int_le x r)) x))) /\ ((forall l : Z, forall r : Z, @FINITE Z (@GSPEC Z (fun GEN_PVAR_236 : Z => exists x : Z, @SETSPEC Z GEN_PVAR_236 ((int_le l x) /\ (int_lt x r)) x))) /\ ((forall l : Z, forall r : Z, @FINITE Z (@GSPEC Z (fun GEN_PVAR_237 : Z => exists x : Z, @SETSPEC Z GEN_PVAR_237 ((int_lt l x) /\ (int_le x r)) x))) /\ (forall l : Z, forall r : Z, @FINITE Z (@GSPEC Z (fun GEN_PVAR_238 : Z => exists x : Z, @SETSPEC Z GEN_PVAR_238 ((int_lt l x) /\ (int_lt x r)) x))))). +Axiom thm_neutral : forall {A : Type'}, forall op : A -> A -> A, (@neutral A op) = (@ε A (fun x : A => forall y : A, ((op x y) = y) /\ ((op y x) = y))). +Axiom thm_monoidal : forall {A : Type'}, forall op : A -> A -> A, (@monoidal A op) = ((forall x : A, forall y : A, (op x y) = (op y x)) /\ ((forall x : A, forall y : A, forall z : A, (op x (op y z)) = (op (op x y) z)) /\ (forall x : A, (op (@neutral A op) x) = x))). +Axiom thm_MONOIDAL_AC : forall {A : Type'}, forall op : A -> A -> A, (@monoidal A op) -> (forall a : A, (op (@neutral A op) a) = a) /\ ((forall a : A, (op a (@neutral A op)) = a) /\ ((forall a : A, forall b : A, (op a b) = (op b a)) /\ ((forall a : A, forall b : A, forall c : A, (op (op a b) c) = (op a (op b c))) /\ (forall a : A, forall b : A, forall c : A, (op a (op b c)) = (op b (op a c)))))). +Axiom thm_support : forall {A B : Type'}, forall s : A -> Prop, forall f : A -> B, forall op : B -> B -> B, (@support A B op f s) = (@GSPEC A (fun GEN_PVAR_239 : A => exists x : A, @SETSPEC A GEN_PVAR_239 ((@IN A x s) /\ (~ ((f x) = (@neutral B op)))) x)). +Axiom thm_iterate : forall {A B : Type'}, forall f : A -> B, forall s : A -> Prop, forall op : B -> B -> B, (@iterate A B op s f) = (@COND B (@FINITE A (@support A B op f s)) (@ITSET A B (fun x : A => fun a : B => op (f x) a) (@support A B op f s) (@neutral B op)) (@neutral B op)). +Axiom thm_IN_SUPPORT : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall x : A, forall s : A -> Prop, (@IN A x (@support A B op f s)) = ((@IN A x s) /\ (~ ((f x) = (@neutral B op)))). +Axiom thm_SUPPORT_SUPPORT : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall s : A -> Prop, (@support A B op f (@support A B op f s)) = (@support A B op f s). +Axiom thm_SUPPORT_EMPTY : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (@neutral B op)) = ((@support A B op f s) = (@EMPTY A)). +Axiom thm_SUPPORT_SUBSET : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall s : A -> Prop, @SUBSET A (@support A B op f s) s. +Axiom thm_FINITE_SUPPORT : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall s : A -> Prop, (@FINITE A s) -> @FINITE A (@support A B op f s). +Axiom thm_SUPPORT_CLAUSES : forall {A B C : Type'} (op : C -> C -> C), (forall f : A -> C, (@support A C op f (@EMPTY A)) = (@EMPTY A)) /\ ((forall f : A -> C, forall x : A, forall s : A -> Prop, (@support A C op f (@INSERT A x s)) = (@COND (A -> Prop) ((f x) = (@neutral C op)) (@support A C op f s) (@INSERT A x (@support A C op f s)))) /\ ((forall f : A -> C, forall x : A, forall s : A -> Prop, (@support A C op f (@DELETE A s x)) = (@DELETE A (@support A C op f s) x)) /\ ((forall f : A -> C, forall s : A -> Prop, forall t : A -> Prop, (@support A C op f (@UNION A s t)) = (@UNION A (@support A C op f s) (@support A C op f t))) /\ ((forall f : A -> C, forall s : A -> Prop, forall t : A -> Prop, (@support A C op f (@INTER A s t)) = (@INTER A (@support A C op f s) (@support A C op f t))) /\ ((forall f : A -> C, forall s : A -> Prop, forall t : A -> Prop, (@support A C op f (@DIFF A s t)) = (@DIFF A (@support A C op f s) (@support A C op f t))) /\ (forall f : A -> B, forall g : B -> C, forall s : A -> Prop, (@support B C op g (@IMAGE A B f s)) = (@IMAGE A B f (@support A C op (@o A B C g f) s)))))))). +Axiom thm_SUPPORT_DELTA : forall {A B : Type'}, forall op : B -> B -> B, forall s : A -> Prop, forall f : A -> B, forall a : A, (@support A B op (fun x : A => @COND B (x = a) (f x) (@neutral B op)) s) = (@COND (A -> Prop) (@IN A a s) (@support A B op f (@INSERT A a (@EMPTY A))) (@EMPTY A)). +Axiom thm_FINITE_SUPPORT_DELTA : forall {A B : Type'} (s : A -> Prop), forall op : B -> B -> B, forall f : A -> B, forall a : A, @FINITE A (@support A B op (fun x : A => @COND B (x = a) (f x) (@neutral B op)) s). +Axiom thm_ITERATE_SUPPORT : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall s : A -> Prop, (@iterate A B op (@support A B op f s) f) = (@iterate A B op s f). +Axiom thm_ITERATE_EXPAND_CASES : forall {A B : Type'}, forall op : B -> B -> B, forall f : A -> B, forall s : A -> Prop, (@iterate A B op s f) = (@COND B (@FINITE A (@support A B op f s)) (@iterate A B op (@support A B op f s) f) (@neutral B op)). +Axiom thm_ITERATE_CLAUSES_GEN : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> (forall f : A -> B, (@iterate A B op (@EMPTY A) f) = (@neutral B op)) /\ (forall f : A -> B, forall x : A, forall s : A -> Prop, (@FINITE A (@support A B op f s)) -> (@iterate A B op (@INSERT A x s) f) = (@COND B (@IN A x s) (@iterate A B op s f) (op (f x) (@iterate A B op s f)))). +Axiom thm_ITERATE_CLAUSES : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> (forall f : A -> C, (@iterate A C op (@EMPTY A) f) = (@neutral C op)) /\ (forall f : B -> C, forall x : B, forall s : B -> Prop, (@FINITE B s) -> (@iterate B C op (@INSERT B x s) f) = (@COND C (@IN B x s) (@iterate B C op s f) (op (f x) (@iterate B C op s f)))). +Axiom thm_ITERATE_UNION : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (@DISJOINT A s t))) -> (@iterate A B op (@UNION A s t) f) = (op (@iterate A B op s f) (@iterate A B op t f)). +Axiom thm_ITERATE_UNION_GEN : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A (@support A B op f s)) /\ ((@FINITE A (@support A B op f t)) /\ (@DISJOINT A (@support A B op f s) (@support A B op f t)))) -> (@iterate A B op (@UNION A s t) f) = (op (@iterate A B op s f) (@iterate A B op t f)). +Axiom thm_ITERATE_DIFF : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@SUBSET A t s)) -> (op (@iterate A B op (@DIFF A s t) f) (@iterate A B op t f)) = (@iterate A B op s f). +Axiom thm_ITERATE_DIFF_GEN : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A (@support A B op f s)) /\ (@SUBSET A (@support A B op f t) (@support A B op f s))) -> (op (@iterate A B op (@DIFF A s t) f) (@iterate A B op t f)) = (@iterate A B op s f). +Axiom thm_ITERATE_INCL_EXCL : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall s : A -> Prop, forall t : A -> Prop, forall f : A -> B, ((@FINITE A s) /\ (@FINITE A t)) -> (op (@iterate A B op s f) (@iterate A B op t f)) = (op (@iterate A B op (@UNION A s t) f) (@iterate A B op (@INTER A s t) f)). +Axiom thm_ITERATE_CLOSED : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall P : B -> Prop, ((P (@neutral B op)) /\ (forall x : B, forall y : B, ((P x) /\ (P y)) -> P (op x y))) -> forall f : A -> B, forall s : A -> Prop, (forall x : A, ((@IN A x s) /\ (~ ((f x) = (@neutral B op)))) -> P (f x)) -> P (@iterate A B op s f). +Axiom thm_ITERATE_RELATED : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall R' : B -> B -> Prop, ((R' (@neutral B op) (@neutral B op)) /\ (forall x1 : B, forall y1 : B, forall x2 : B, forall y2 : B, ((R' x1 x2) /\ (R' y1 y2)) -> R' (op x1 y1) (op x2 y2))) -> forall f : A -> B, forall g : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> R' (f x) (g x))) -> R' (@iterate A B op s f) (@iterate A B op s g). +Axiom thm_ITERATE_EQ_NEUTRAL : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (@neutral B op)) -> (@iterate A B op s f) = (@neutral B op). +Axiom thm_ITERATE_SING : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall x : A, (@iterate A B op (@INSERT A x (@EMPTY A)) f) = (f x). +Axiom thm_ITERATE_CLOSED_NONEMPTY : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall P : B -> Prop, (forall x : B, forall y : B, ((P x) /\ (P y)) -> P (op x y)) -> forall f : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> P (f x)))) -> P (@iterate A B op s f). +Axiom thm_ITERATE_RELATED_NONEMPTY : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall R' : B -> B -> Prop, (forall x1 : B, forall y1 : B, forall x2 : B, forall y2 : B, ((R' x1 x2) /\ (R' y1 y2)) -> R' (op x1 y1) (op x2 y2)) -> forall f : A -> B, forall g : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> R' (f x) (g x)))) -> R' (@iterate A B op s f) (@iterate A B op s g). +Axiom thm_ITERATE_DELETE : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, forall a : A, ((@FINITE A s) /\ (@IN A a s)) -> (op (f a) (@iterate A B op (@DELETE A s a) f)) = (@iterate A B op s f). +Axiom thm_ITERATE_DELTA : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall a : A, forall s : A -> Prop, (@iterate A B op s (fun x : A => @COND B (x = a) (f x) (@neutral B op))) = (@COND B (@IN A a s) (f a) (@neutral B op)). +Axiom thm_ITERATE_IMAGE : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall f : A -> B, forall g : B -> C, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) -> (@iterate B C op (@IMAGE A B f s) g) = (@iterate A C op s (@o A B C g f)). +Axiom thm_ITERATE_BIJECTION : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall p : A -> A, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall y : A, (@IN A y s) -> @ex1 A (fun x : A => (@IN A x s) /\ ((p x) = y)))) -> (@iterate A B op s f) = (@iterate A B op s (@o A A B f p)). +Axiom thm_ITERATE_ITERATE_PRODUCT : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall s : A -> Prop, forall t : A -> B -> Prop, forall x : A -> B -> C, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> @FINITE B (t i))) -> (@iterate A C op s (fun i : A => @iterate B C op (t i) (x i))) = (@iterate (prod A B) C op (@GSPEC (prod A B) (fun GEN_PVAR_243 : prod A B => exists i : A, exists j : B, @SETSPEC (prod A B) GEN_PVAR_243 ((@IN A i s) /\ (@IN B j (t i))) (@pair A B i j))) (@GABS ((prod A B) -> C) (fun f : (prod A B) -> C => forall i : A, forall j : B, @GEQ C (f (@pair A B i j)) (x i j)))). +Axiom thm_ITERATE_EQ : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall g : A -> B, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (g x)) -> (@iterate A B op s f) = (@iterate A B op s g). +Axiom thm_ITERATE_RESTRICT_SET : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall P : A -> Prop, forall s : A -> Prop, forall f : A -> B, (@iterate A B op (@GSPEC A (fun GEN_PVAR_244 : A => exists x : A, @SETSPEC A GEN_PVAR_244 ((@IN A x s) /\ (P x)) x)) f) = (@iterate A B op s (fun x : A => @COND B (P x) (f x) (@neutral B op))). +Axiom thm_ITERATE_EQ_GENERAL : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall s : A -> Prop, forall t : B -> Prop, forall f : A -> C, forall g : B -> C, forall h : A -> B, ((forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ ((h x) = y))) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ ((g (h x)) = (f x)))) -> (@iterate A C op s f) = (@iterate B C op t g). +Axiom thm_ITERATE_EQ_GENERAL_INVERSES : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall s : A -> Prop, forall t : B -> Prop, forall f : A -> C, forall g : B -> C, forall h : A -> B, forall k : B -> A, ((forall y : B, (@IN B y t) -> (@IN A (k y) s) /\ ((h (k y)) = y)) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ (((k (h x)) = x) /\ ((g (h x)) = (f x))))) -> (@iterate A C op s f) = (@iterate B C op t g). +Axiom thm_ITERATE_INJECTION : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall p : A -> A, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((p x) = (p y)))) -> x = y))) -> (@iterate A B op s (@o A A B f p)) = (@iterate A B op s f). +Axiom thm_ITERATE_UNION_NONZERO : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (forall x : A, (@IN A x (@INTER A s t)) -> (f x) = (@neutral B op)))) -> (@iterate A B op (@UNION A s t) f) = (op (@iterate A B op s f) (@iterate A B op t f)). +Axiom thm_ITERATE_OP : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall g : A -> B, forall s : A -> Prop, (@FINITE A s) -> (@iterate A B op s (fun x : A => op (f x) (g x))) = (op (@iterate A B op s f) (@iterate A B op s g)). +Axiom thm_ITERATE_SUPERSET : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall u : A -> Prop, forall v : A -> Prop, ((@SUBSET A u v) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (@neutral B op))) -> (@iterate A B op v f) = (@iterate A B op u f). +Axiom thm_ITERATE_UNIV : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall s : A -> Prop, (@SUBSET A (@support A B op f (@UNIV A)) s) -> (@iterate A B op s f) = (@iterate A B op (@UNIV A) f). +Axiom thm_ITERATE_SWAP : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall f : A -> B -> C, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@iterate A C op s (fun i : A => @iterate B C op t (f i))) = (@iterate B C op t (fun j : B => @iterate A C op s (fun i : A => f i j))). +Axiom thm_ITERATE_IMAGE_NONZERO : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall g : B -> C, forall f : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((~ (x = y)) /\ ((f x) = (f y))))) -> (g (f x)) = (@neutral C op))) -> (@iterate B C op (@IMAGE A B f s) g) = (@iterate A C op s (@o A B C g f)). +Axiom thm_ITERATE_IMAGE_GEN : forall {A B C : Type'}, forall op : C -> C -> C, (@monoidal C op) -> forall f : A -> B, forall g : A -> C, forall s : A -> Prop, (@FINITE A s) -> (@iterate A C op s g) = (@iterate B C op (@IMAGE A B f s) (fun y : B => @iterate A C op (@GSPEC A (fun GEN_PVAR_247 : A => exists x : A, @SETSPEC A GEN_PVAR_247 ((@IN A x s) /\ ((f x) = y)) x)) g)). +Axiom thm_ITERATE_CASES : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall s : A -> Prop, forall P : A -> Prop, forall f : A -> B, forall g : A -> B, (@FINITE A s) -> (@iterate A B op s (fun x : A => @COND B (P x) (f x) (g x))) = (op (@iterate A B op (@GSPEC A (fun GEN_PVAR_250 : A => exists x : A, @SETSPEC A GEN_PVAR_250 ((@IN A x s) /\ (P x)) x)) f) (@iterate A B op (@GSPEC A (fun GEN_PVAR_251 : A => exists x : A, @SETSPEC A GEN_PVAR_251 ((@IN A x s) /\ (~ (P x))) x)) g)). +Axiom thm_ITERATE_OP_GEN : forall {A B : Type'}, forall op : B -> B -> B, (@monoidal B op) -> forall f : A -> B, forall g : A -> B, forall s : A -> Prop, ((@FINITE A (@support A B op f s)) /\ (@FINITE A (@support A B op g s))) -> (@iterate A B op s (fun x : A => op (f x) (g x))) = (op (@iterate A B op s f) (@iterate A B op s g)). +Axiom thm_ITERATE_CLAUSES_NUMSEG : forall {A : Type'} (f : N -> A), forall op : A -> A -> A, (@monoidal A op) -> (forall m : N, (@iterate N A op (dotdot m (NUMERAL 0%N)) f) = (@COND A (m = (NUMERAL 0%N)) (f (NUMERAL 0%N)) (@neutral A op))) /\ (forall m : N, forall n : N, (@iterate N A op (dotdot m (N.succ n)) f) = (@COND A (N.le m (N.succ n)) (op (@iterate N A op (dotdot m n) f) (f (N.succ n))) (@iterate N A op (dotdot m n) f))). +Axiom thm_ITERATE_CLAUSES_NUMSEG_LT : forall {A : Type'} (f : N -> A), forall op : A -> A -> A, (@monoidal A op) -> ((@iterate N A op (@GSPEC N (fun GEN_PVAR_256 : N => exists i : N, @SETSPEC N GEN_PVAR_256 (N.lt i (NUMERAL 0%N)) i)) f) = (@neutral A op)) /\ (forall k : N, (@iterate N A op (@GSPEC N (fun GEN_PVAR_257 : N => exists i : N, @SETSPEC N GEN_PVAR_257 (N.lt i (N.succ k)) i)) f) = (op (@iterate N A op (@GSPEC N (fun GEN_PVAR_258 : N => exists i : N, @SETSPEC N GEN_PVAR_258 (N.lt i k) i)) f) (f k))). +Axiom thm_ITERATE_CLAUSES_NUMSEG_LE : forall {A : Type'} (f : N -> A), forall op : A -> A -> A, (@monoidal A op) -> ((@iterate N A op (@GSPEC N (fun GEN_PVAR_259 : N => exists i : N, @SETSPEC N GEN_PVAR_259 (N.le i (NUMERAL 0%N)) i)) f) = (f (NUMERAL 0%N))) /\ (forall k : N, (@iterate N A op (@GSPEC N (fun GEN_PVAR_260 : N => exists i : N, @SETSPEC N GEN_PVAR_260 (N.le i (N.succ k)) i)) f) = (op (@iterate N A op (@GSPEC N (fun GEN_PVAR_261 : N => exists i : N, @SETSPEC N GEN_PVAR_261 (N.le i k) i)) f) (f (N.succ k)))). +Axiom thm_ITERATE_PAIR : forall {A : Type'}, forall op : A -> A -> A, (@monoidal A op) -> forall f : N -> A, forall m : N, forall n : N, (@iterate N A op (dotdot (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) f) = (@iterate N A op (dotdot m n) (fun i : N => op (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i) (NUMERAL (BIT1 0%N)))))). +Axiom thm_ITERATE_REFLECT : forall {A : Type'}, forall op : A -> A -> A, (@monoidal A op) -> forall x : N -> A, forall m : N, forall n : N, (@iterate N A op (dotdot m n) x) = (@COND A (N.lt n m) (@neutral A op) (@iterate N A op (dotdot (NUMERAL 0%N) (N.sub n m)) (fun i : N => x (N.sub n i)))). +Axiom thm_ITERATO_SUPPORT : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, (@iterato A K dom neut op ltle (@GSPEC K (fun GEN_PVAR_270 : K => exists i : K, @SETSPEC K GEN_PVAR_270 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i)) f) = (@iterato A K dom neut op ltle k f). +Axiom thm_ITERATO_EXPAND_CASES : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, (@iterato A K dom neut op ltle k f) = (@COND A (@FINITE K (@GSPEC K (fun GEN_PVAR_271 : K => exists i : K, @SETSPEC K GEN_PVAR_271 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i))) (@iterato A K dom neut op ltle (@GSPEC K (fun GEN_PVAR_272 : K => exists i : K, @SETSPEC K GEN_PVAR_272 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i)) f) neut). +Axiom thm_ITERATO_CLAUSES_GEN : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall f : K -> A, ((@iterato A K dom neut op ltle (@EMPTY K) f) = neut) /\ (forall i : K, forall k : K -> Prop, ((@FINITE K (@GSPEC K (fun GEN_PVAR_274 : K => exists j : K, @SETSPEC K GEN_PVAR_274 ((@IN K j k) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) j))) /\ ((forall j : K, (@IN K j k) -> (i = j) \/ ((ltle i j) \/ (ltle j i))) /\ (forall j : K, ((ltle j i) /\ ((@IN K j k) /\ (@IN A (f j) (@DIFF A dom (@INSERT A neut (@EMPTY A)))))) -> j = i))) -> (@iterato A K dom neut op ltle (@INSERT K i k) f) = (@COND A ((@IN A (f i) dom) -> ((f i) = neut) \/ (@IN K i k)) (@iterato A K dom neut op ltle k f) (op (f i) (@iterato A K dom neut op ltle k f)))). +Axiom thm_ITERATO_CLAUSES : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall f : K -> A, ((@iterato A K dom neut op ltle (@EMPTY K) f) = neut) /\ (forall i : K, forall k : K -> Prop, ((@FINITE K (@GSPEC K (fun GEN_PVAR_275 : K => exists i' : K, @SETSPEC K GEN_PVAR_275 ((@IN K i' k) /\ (@IN A (f i') (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i'))) /\ (forall j : K, (@IN K j k) -> (ltle i j) /\ (~ (ltle j i)))) -> (@iterato A K dom neut op ltle (@INSERT K i k) f) = (@COND A ((@IN A (f i) dom) -> ((f i) = neut) \/ (@IN K i k)) (@iterato A K dom neut op ltle k f) (op (f i) (@iterato A K dom neut op ltle k f)))). +Axiom thm_ITERATO_CLAUSES_EXISTS : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall f : K -> A, ((@iterato A K dom neut op ltle (@EMPTY K) f) = neut) /\ (forall k : K -> Prop, ((@FINITE K (@GSPEC K (fun GEN_PVAR_276 : K => exists i : K, @SETSPEC K GEN_PVAR_276 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i))) /\ (~ ((@GSPEC K (fun GEN_PVAR_277 : K => exists i : K, @SETSPEC K GEN_PVAR_277 ((@IN K i k) /\ (@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A))))) i)) = (@EMPTY K)))) -> exists i : K, (@IN K i k) /\ ((@IN A (f i) (@DIFF A dom (@INSERT A neut (@EMPTY A)))) /\ ((@iterato A K dom neut op ltle k f) = (op (f i) (@iterato A K dom neut op ltle (@DELETE K k i) f))))). +Axiom thm_ITERATO_EQ : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, forall g : K -> A, (forall i : K, (@IN K i k) -> (f i) = (g i)) -> (@iterato A K dom neut op ltle k f) = (@iterato A K dom neut op ltle k g). +Axiom thm_ITERATO_INDUCT : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, forall P : A -> Prop, ((P neut) /\ (forall i : K, forall x : A, ((@IN K i k) /\ ((@IN A (f i) dom) /\ ((~ ((f i) = neut)) /\ (P x)))) -> P (op (f i) x))) -> P (@iterato A K dom neut op ltle k f). +Axiom thm_ITERATO_CLOSED : forall {A K : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall ltle : K -> K -> Prop, forall k : K -> Prop, forall f : K -> A, forall P : A -> Prop, ((P neut) /\ ((forall x : A, forall y : A, ((P x) /\ (P y)) -> P (op x y)) /\ (forall i : K, ((@IN K i k) /\ ((@IN A (f i) dom) /\ (~ ((f i) = neut)))) -> P (f i)))) -> P (@iterato A K dom neut op ltle k f). +Axiom thm_ITERATO_ITERATE : forall {A K : Type'}, forall op : A -> A -> A, forall ltle : K -> K -> Prop, (@monoidal A op) -> (@iterato A K (@UNIV A) (@neutral A op) op ltle) = (@iterate K A op). +Axiom thm_ITERATO_CLAUSES_NUMSEG_LEFT : forall {A : Type'}, forall dom : A -> Prop, forall neut : A, forall op : A -> A -> A, forall f : N -> A, forall m : N, forall n : N, (@iterato A N dom neut op N.le (dotdot m n) f) = (@COND A (N.le m n) (@COND A ((@IN A (f m) dom) -> (f m) = neut) (@iterato A N dom neut op N.le (dotdot (N.add m (NUMERAL (BIT1 0%N))) n) f) (op (f m) (@iterato A N dom neut op N.le (dotdot (N.add m (NUMERAL (BIT1 0%N))) n) f))) neut). +Axiom thm_nproduct : forall {A : Type'}, (@nproduct A) = (@iterate A N N.mul). +Axiom thm_NEUTRAL_MUL : (@neutral N N.mul) = (NUMERAL (BIT1 0%N)). +Axiom thm_MONOIDAL_MUL : @monoidal N N.mul. +Axiom thm_NPRODUCT_CLAUSES : forall {A B : Type'}, (forall f : A -> N, (@nproduct A (@EMPTY A) f) = (NUMERAL (BIT1 0%N))) /\ (forall x : B, forall f : B -> N, forall s : B -> Prop, (@FINITE B s) -> (@nproduct B (@INSERT B x s) f) = (@COND N (@IN B x s) (@nproduct B s f) (N.mul (f x) (@nproduct B s f)))). +Axiom thm_iproduct : forall {A : Type'}, (@iproduct A) = (@iterate A Z int_mul). +Axiom thm_NEUTRAL_INT_MUL : (@neutral Z int_mul) = (Z_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_MONOIDAL_INT_MUL : @monoidal Z int_mul. +Axiom thm_IPRODUCT_CLAUSES : forall {A B : Type'}, (forall f : A -> Z, (@iproduct A (@EMPTY A) f) = (Z_of_N (NUMERAL (BIT1 0%N)))) /\ (forall x : B, forall f : B -> Z, forall s : B -> Prop, (@FINITE B s) -> (@iproduct B (@INSERT B x s) f) = (@COND Z (@IN B x s) (@iproduct B s f) (int_mul (f x) (@iproduct B s f)))). +Axiom thm_product : forall {A : Type'}, (@product A) = (@iterate A R Rmult). +Axiom thm_NEUTRAL_REAL_MUL : (@neutral R Rmult) = (R_of_N (NUMERAL (BIT1 0%N))). +Axiom thm_MONOIDAL_REAL_MUL : @monoidal R Rmult. +Axiom thm_PRODUCT_CLAUSES : forall {A B : Type'}, (forall f : A -> R, (@product A (@EMPTY A) f) = (R_of_N (NUMERAL (BIT1 0%N)))) /\ (forall x : B, forall f : B -> R, forall s : B -> Prop, (@FINITE B s) -> (@product B (@INSERT B x s) f) = (@COND R (@IN B x s) (@product B s f) (Rmult (f x) (@product B s f)))). +Axiom thm_isum : forall {A : Type'}, (@isum A) = (@iterate A Z int_add). +Axiom thm_NEUTRAL_INT_ADD : (@neutral Z int_add) = (Z_of_N (NUMERAL 0%N)). +Axiom thm_MONOIDAL_INT_ADD : @monoidal Z int_add. +Axiom thm_ISUM_CLAUSES : forall {A B : Type'}, (forall f : A -> Z, (@isum A (@EMPTY A) f) = (Z_of_N (NUMERAL 0%N))) /\ (forall x : B, forall f : B -> Z, forall s : B -> Prop, (@FINITE B s) -> (@isum B (@INSERT B x s) f) = (@COND Z (@IN B x s) (@isum B s f) (int_add (f x) (@isum B s f)))). +Axiom thm_nsum : forall {A : Type'}, (@nsum A) = (@iterate A N N.add). +Axiom thm_NEUTRAL_ADD : (@neutral N N.add) = (NUMERAL 0%N). +Axiom thm_MONOIDAL_ADD : @monoidal N N.add. +Axiom thm_NSUM_DEGENERATE : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (~ (@FINITE A (@GSPEC A (fun GEN_PVAR_286 : A => exists x : A, @SETSPEC A GEN_PVAR_286 ((@IN A x s) /\ (~ ((f x) = (NUMERAL 0%N)))) x)))) -> (@nsum A s f) = (NUMERAL 0%N). +Axiom thm_NSUM_CLAUSES : forall {A B : Type'}, (forall f : A -> N, (@nsum A (@EMPTY A) f) = (NUMERAL 0%N)) /\ (forall x : B, forall f : B -> N, forall s : B -> Prop, (@FINITE B s) -> (@nsum B (@INSERT B x s) f) = (@COND N (@IN B x s) (@nsum B s f) (N.add (f x) (@nsum B s f)))). +Axiom thm_NSUM_UNION : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (@DISJOINT A s t))) -> (@nsum A (@UNION A s t) f) = (N.add (@nsum A s f) (@nsum A t f)). +Axiom thm_NSUM_DIFF : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@SUBSET A t s)) -> (@nsum A (@DIFF A s t) f) = (N.sub (@nsum A s f) (@nsum A t f)). +Axiom thm_NSUM_INCL_EXCL : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall f : A -> N, ((@FINITE A s) /\ (@FINITE A t)) -> (N.add (@nsum A s f) (@nsum A t f)) = (N.add (@nsum A (@UNION A s t) f) (@nsum A (@INTER A s t) f)). +Axiom thm_NSUM_SUPPORT : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (@nsum A (@support A N N.add f s) f) = (@nsum A s f). +Axiom thm_NSUM_ADD : forall {A : Type'}, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, (@FINITE A s) -> (@nsum A s (fun x : A => N.add (f x) (g x))) = (N.add (@nsum A s f) (@nsum A s g)). +Axiom thm_NSUM_ADD_GEN : forall {A : Type'}, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_287 : A => exists x : A, @SETSPEC A GEN_PVAR_287 ((@IN A x s) /\ (~ ((f x) = (NUMERAL 0%N)))) x))) /\ (@FINITE A (@GSPEC A (fun GEN_PVAR_288 : A => exists x : A, @SETSPEC A GEN_PVAR_288 ((@IN A x s) /\ (~ ((g x) = (NUMERAL 0%N)))) x)))) -> (@nsum A s (fun x : A => N.add (f x) (g x))) = (N.add (@nsum A s f) (@nsum A s g)). +Axiom thm_NSUM_EQ_0 : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (NUMERAL 0%N)) -> (@nsum A s f) = (NUMERAL 0%N). +Axiom thm_NSUM_0 : forall {A : Type'}, forall s : A -> Prop, (@nsum A s (fun n : A => NUMERAL 0%N)) = (NUMERAL 0%N). +Axiom thm_NSUM_LMUL : forall {A : Type'}, forall f : A -> N, forall c : N, forall s : A -> Prop, (@nsum A s (fun x : A => N.mul c (f x))) = (N.mul c (@nsum A s f)). +Axiom thm_NSUM_RMUL : forall {A : Type'}, forall f : A -> N, forall c : N, forall s : A -> Prop, (@nsum A s (fun x : A => N.mul (f x) c)) = (N.mul (@nsum A s f) c). +Axiom thm_NSUM_LE : forall {A : Type'}, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> N.le (f x) (g x))) -> N.le (@nsum A s f) (@nsum A s g). +Axiom thm_NSUM_LT : forall {A : Type'}, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> N.le (f x) (g x)) /\ (exists x : A, (@IN A x s) /\ (N.lt (f x) (g x))))) -> N.lt (@nsum A s f) (@nsum A s g). +Axiom thm_NSUM_LT_ALL : forall {A : Type'}, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> N.lt (f x) (g x)))) -> N.lt (@nsum A s f) (@nsum A s g). +Axiom thm_NSUM_EQ : forall {A : Type'}, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (g x)) -> (@nsum A s f) = (@nsum A s g). +Axiom thm_NSUM_CONST : forall {A : Type'}, forall c : N, forall s : A -> Prop, (@FINITE A s) -> (@nsum A s (fun n : A => c)) = (N.mul (@CARD A s) c). +Axiom thm_NSUM_POS_BOUND : forall {A : Type'}, forall f : A -> N, forall b : N, forall s : A -> Prop, ((@FINITE A s) /\ (N.le (@nsum A s f) b)) -> forall x : A, (@IN A x s) -> N.le (f x) b. +Axiom thm_NSUM_EQ_0_IFF : forall {A : Type'} (f : A -> N), forall s : A -> Prop, (@FINITE A s) -> ((@nsum A s f) = (NUMERAL 0%N)) = (forall x : A, (@IN A x s) -> (f x) = (NUMERAL 0%N)). +Axiom thm_NSUM_POS_LT : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, ((@FINITE A s) /\ (exists x : A, (@IN A x s) /\ (N.lt (NUMERAL 0%N) (f x)))) -> N.lt (NUMERAL 0%N) (@nsum A s f). +Axiom thm_NSUM_POS_LT_ALL : forall {A : Type'}, forall s : A -> Prop, forall f : A -> N, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall i : A, (@IN A i s) -> N.lt (NUMERAL 0%N) (f i)))) -> N.lt (NUMERAL 0%N) (@nsum A s f). +Axiom thm_NSUM_DELETE : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, forall a : A, ((@FINITE A s) /\ (@IN A a s)) -> (N.add (f a) (@nsum A (@DELETE A s a) f)) = (@nsum A s f). +Axiom thm_NSUM_SING : forall {A : Type'}, forall f : A -> N, forall x : A, (@nsum A (@INSERT A x (@EMPTY A)) f) = (f x). +Axiom thm_NSUM_DELTA : forall {A : Type'} (b : N), forall s : A -> Prop, forall a : A, (@nsum A s (fun x : A => @COND N (x = a) b (NUMERAL 0%N))) = (@COND N (@IN A a s) b (NUMERAL 0%N)). +Axiom thm_NSUM_SWAP : forall {A B : Type'}, forall f : A -> B -> N, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@nsum A s (fun i : A => @nsum B t (f i))) = (@nsum B t (fun j : B => @nsum A s (fun i : A => f i j))). +Axiom thm_NSUM_IMAGE : forall {A B : Type'}, forall f : A -> B, forall g : B -> N, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) -> (@nsum B (@IMAGE A B f s) g) = (@nsum A s (@o A B N g f)). +Axiom thm_NSUM_SUPERSET : forall {A : Type'}, forall f : A -> N, forall u : A -> Prop, forall v : A -> Prop, ((@SUBSET A u v) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (NUMERAL 0%N))) -> (@nsum A v f) = (@nsum A u f). +Axiom thm_NSUM_UNIV : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (@SUBSET A (@support A N N.add f (@UNIV A)) s) -> (@nsum A s f) = (@nsum A (@UNIV A) f). +Axiom thm_NSUM_UNION_RZERO : forall {A : Type'}, forall f : A -> N, forall u : A -> Prop, forall v : A -> Prop, ((@FINITE A u) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (NUMERAL 0%N))) -> (@nsum A (@UNION A u v) f) = (@nsum A u f). +Axiom thm_NSUM_UNION_LZERO : forall {A : Type'}, forall f : A -> N, forall u : A -> Prop, forall v : A -> Prop, ((@FINITE A v) /\ (forall x : A, ((@IN A x u) /\ (~ (@IN A x v))) -> (f x) = (NUMERAL 0%N))) -> (@nsum A (@UNION A u v) f) = (@nsum A v f). +Axiom thm_NSUM_RESTRICT : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (@FINITE A s) -> (@nsum A s (fun x : A => @COND N (@IN A x s) (f x) (NUMERAL 0%N))) = (@nsum A s f). +Axiom thm_NSUM_BOUND : forall {A : Type'}, forall s : A -> Prop, forall f : A -> N, forall b : N, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> N.le (f x) b)) -> N.le (@nsum A s f) (N.mul (@CARD A s) b). +Axiom thm_NSUM_BOUND_GEN : forall {A : Type'}, forall s : A -> Prop, forall f : A -> N, forall b : N, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> N.le (f x) (N.div b (@CARD A s))))) -> N.le (@nsum A s f) b. +Axiom thm_NSUM_BOUND_LT : forall {A : Type'}, forall s : A -> Prop, forall f : A -> N, forall b : N, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> N.le (f x) b) /\ (exists x : A, (@IN A x s) /\ (N.lt (f x) b)))) -> N.lt (@nsum A s f) (N.mul (@CARD A s) b). +Axiom thm_NSUM_BOUND_LT_ALL : forall {A : Type'}, forall s : A -> Prop, forall f : A -> N, forall b : N, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> N.lt (f x) b))) -> N.lt (@nsum A s f) (N.mul (@CARD A s) b). +Axiom thm_NSUM_BOUND_LT_GEN : forall {A : Type'}, forall s : A -> Prop, forall f : A -> N, forall b : N, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> N.lt (f x) (N.div b (@CARD A s))))) -> N.lt (@nsum A s f) b. +Axiom thm_NSUM_UNION_EQ : forall {A : Type'} (f : A -> N), forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@FINITE A u) /\ (((@INTER A s t) = (@EMPTY A)) /\ ((@UNION A s t) = u))) -> (N.add (@nsum A s f) (@nsum A t f)) = (@nsum A u f). +Axiom thm_NSUM_EQ_SUPERSET : forall {A : Type'} (g : A -> N), forall f : A -> N, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ ((@SUBSET A t s) /\ ((forall x : A, (@IN A x t) -> (f x) = (g x)) /\ (forall x : A, ((@IN A x s) /\ (~ (@IN A x t))) -> (f x) = (NUMERAL 0%N))))) -> (@nsum A s f) = (@nsum A t g). +Axiom thm_NSUM_RESTRICT_SET : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall f : A -> N, (@nsum A (@GSPEC A (fun GEN_PVAR_289 : A => exists x : A, @SETSPEC A GEN_PVAR_289 ((@IN A x s) /\ (P x)) x)) f) = (@nsum A s (fun x : A => @COND N (P x) (f x) (NUMERAL 0%N))). +Axiom thm_NSUM_NSUM_RESTRICT : forall {A B : Type'}, forall R' : A -> B -> Prop, forall f : A -> B -> N, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@nsum A s (fun x : A => @nsum B (@GSPEC B (fun GEN_PVAR_290 : B => exists y : B, @SETSPEC B GEN_PVAR_290 ((@IN B y t) /\ (R' x y)) y)) (fun y : B => f x y))) = (@nsum B t (fun y : B => @nsum A (@GSPEC A (fun GEN_PVAR_291 : A => exists x : A, @SETSPEC A GEN_PVAR_291 ((@IN A x s) /\ (R' x y)) x)) (fun x : A => f x y))). +Axiom thm_CARD_EQ_NSUM : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> (@CARD A s) = (@nsum A s (fun x : A => NUMERAL (BIT1 0%N))). +Axiom thm_NSUM_MULTICOUNT_GEN : forall {A B : Type'}, forall R' : A -> B -> Prop, forall s : A -> Prop, forall t : B -> Prop, forall k : B -> N, ((@FINITE A s) /\ ((@FINITE B t) /\ (forall j : B, (@IN B j t) -> (@CARD A (@GSPEC A (fun GEN_PVAR_293 : A => exists i : A, @SETSPEC A GEN_PVAR_293 ((@IN A i s) /\ (R' i j)) i))) = (k j)))) -> (@nsum A s (fun i : A => @CARD B (@GSPEC B (fun GEN_PVAR_294 : B => exists j : B, @SETSPEC B GEN_PVAR_294 ((@IN B j t) /\ (R' i j)) j)))) = (@nsum B t (fun i : B => k i)). +Axiom thm_NSUM_MULTICOUNT : forall {A B : Type'}, forall R' : A -> B -> Prop, forall s : A -> Prop, forall t : B -> Prop, forall k : N, ((@FINITE A s) /\ ((@FINITE B t) /\ (forall j : B, (@IN B j t) -> (@CARD A (@GSPEC A (fun GEN_PVAR_295 : A => exists i : A, @SETSPEC A GEN_PVAR_295 ((@IN A i s) /\ (R' i j)) i))) = k))) -> (@nsum A s (fun i : A => @CARD B (@GSPEC B (fun GEN_PVAR_296 : B => exists j : B, @SETSPEC B GEN_PVAR_296 ((@IN B j t) /\ (R' i j)) j)))) = (N.mul k (@CARD B t)). +Axiom thm_NSUM_IMAGE_GEN : forall {A B : Type'}, forall f : A -> B, forall g : A -> N, forall s : A -> Prop, (@FINITE A s) -> (@nsum A s g) = (@nsum B (@IMAGE A B f s) (fun y : B => @nsum A (@GSPEC A (fun GEN_PVAR_297 : A => exists x : A, @SETSPEC A GEN_PVAR_297 ((@IN A x s) /\ ((f x) = y)) x)) g)). +Axiom thm_NSUM_GROUP : forall {A B : Type'}, forall f : A -> B, forall g : A -> N, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@SUBSET B (@IMAGE A B f s) t)) -> (@nsum B t (fun y : B => @nsum A (@GSPEC A (fun GEN_PVAR_298 : A => exists x : A, @SETSPEC A GEN_PVAR_298 ((@IN A x s) /\ ((f x) = y)) x)) g)) = (@nsum A s g). +Axiom thm_NSUM_GROUP_RELATION : forall {A B : Type'}, forall R' : A -> B -> Prop, forall g : A -> N, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> @ex1 B (fun y : B => (@IN B y t) /\ (R' x y)))) -> (@nsum B t (fun y : B => @nsum A (@GSPEC A (fun GEN_PVAR_299 : A => exists x : A, @SETSPEC A GEN_PVAR_299 ((@IN A x s) /\ (R' x y)) x)) g)) = (@nsum A s g). +Axiom thm_NSUM_SUBSET : forall {A : Type'}, forall u : A -> Prop, forall v : A -> Prop, forall f : A -> N, ((@FINITE A u) /\ ((@FINITE A v) /\ (forall x : A, (@IN A x (@DIFF A u v)) -> (f x) = (NUMERAL 0%N)))) -> N.le (@nsum A u f) (@nsum A v f). +Axiom thm_NSUM_SUBSET_SIMPLE : forall {A : Type'}, forall u : A -> Prop, forall v : A -> Prop, forall f : A -> N, ((@FINITE A v) /\ (@SUBSET A u v)) -> N.le (@nsum A u f) (@nsum A v f). +Axiom thm_NSUM_LE_GEN : forall {A : Type'}, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> N.le (f x) (g x)) /\ (@FINITE A (@GSPEC A (fun GEN_PVAR_301 : A => exists x : A, @SETSPEC A GEN_PVAR_301 ((@IN A x s) /\ (~ ((g x) = (NUMERAL 0%N)))) x)))) -> N.le (@nsum A s f) (@nsum A s g). +Axiom thm_NSUM_MUL_BOUND : forall {A : Type'}, forall a : A -> N, forall b : A -> N, forall s : A -> Prop, (@FINITE A s) -> N.le (@nsum A s (fun i : A => N.mul (a i) (b i))) (N.mul (@nsum A s a) (@nsum A s b)). +Axiom thm_NSUM_IMAGE_NONZERO : forall {A B : Type'}, forall d : B -> N, forall i : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((~ (x = y)) /\ ((i x) = (i y))))) -> (d (i x)) = (NUMERAL 0%N))) -> (@nsum B (@IMAGE A B i s) d) = (@nsum A s (@o A B N d i)). +Axiom thm_NSUM_BIJECTION : forall {A : Type'}, forall f : A -> N, forall p : A -> A, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall y : A, (@IN A y s) -> @ex1 A (fun x : A => (@IN A x s) /\ ((p x) = y)))) -> (@nsum A s f) = (@nsum A s (@o A A N f p)). +Axiom thm_NSUM_NSUM_PRODUCT : forall {A B : Type'}, forall s : A -> Prop, forall t : A -> B -> Prop, forall x : A -> B -> N, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> @FINITE B (t i))) -> (@nsum A s (fun i : A => @nsum B (t i) (x i))) = (@nsum (prod A B) (@GSPEC (prod A B) (fun GEN_PVAR_302 : prod A B => exists i : A, exists j : B, @SETSPEC (prod A B) GEN_PVAR_302 ((@IN A i s) /\ (@IN B j (t i))) (@pair A B i j))) (@GABS ((prod A B) -> N) (fun f : (prod A B) -> N => forall i : A, forall j : B, @GEQ N (f (@pair A B i j)) (x i j)))). +Axiom thm_NSUM_EQ_GENERAL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> N, forall g : B -> N, forall h : A -> B, ((forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ ((h x) = y))) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ ((g (h x)) = (f x)))) -> (@nsum A s f) = (@nsum B t g). +Axiom thm_NSUM_EQ_GENERAL_INVERSES : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> N, forall g : B -> N, forall h : A -> B, forall k : B -> A, ((forall y : B, (@IN B y t) -> (@IN A (k y) s) /\ ((h (k y)) = y)) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ (((k (h x)) = x) /\ ((g (h x)) = (f x))))) -> (@nsum A s f) = (@nsum B t g). +Axiom thm_NSUM_INJECTION : forall {A : Type'}, forall f : A -> N, forall p : A -> A, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((p x) = (p y)))) -> x = y))) -> (@nsum A s (@o A A N f p)) = (@nsum A s f). +Axiom thm_NSUM_UNION_NONZERO : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (forall x : A, (@IN A x (@INTER A s t)) -> (f x) = (NUMERAL 0%N)))) -> (@nsum A (@UNION A s t) f) = (N.add (@nsum A s f) (@nsum A t f)). +Axiom thm_NSUM_UNIONS_NONZERO : forall {A : Type'}, forall f : A -> N, forall s : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) s) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t s) -> @FINITE A t) /\ (forall t1 : A -> Prop, forall t2 : A -> Prop, forall x : A, ((@IN (A -> Prop) t1 s) /\ ((@IN (A -> Prop) t2 s) /\ ((~ (t1 = t2)) /\ ((@IN A x t1) /\ (@IN A x t2))))) -> (f x) = (NUMERAL 0%N)))) -> (@nsum A (@UNIONS A s) f) = (@nsum (A -> Prop) s (fun t : A -> Prop => @nsum A t f)). +Axiom thm_NSUM_CASES : forall {A : Type'}, forall s : A -> Prop, forall P : A -> Prop, forall f : A -> N, forall g : A -> N, (@FINITE A s) -> (@nsum A s (fun x : A => @COND N (P x) (f x) (g x))) = (N.add (@nsum A (@GSPEC A (fun GEN_PVAR_303 : A => exists x : A, @SETSPEC A GEN_PVAR_303 ((@IN A x s) /\ (P x)) x)) f) (@nsum A (@GSPEC A (fun GEN_PVAR_304 : A => exists x : A, @SETSPEC A GEN_PVAR_304 ((@IN A x s) /\ (~ (P x))) x)) g)). +Axiom thm_NSUM_CLOSED : forall {A : Type'}, forall P : N -> Prop, forall f : A -> N, forall s : A -> Prop, ((P (NUMERAL 0%N)) /\ ((forall x : N, forall y : N, ((P x) /\ (P y)) -> P (N.add x y)) /\ (forall a : A, (@IN A a s) -> P (f a)))) -> P (@nsum A s f). +Axiom thm_NSUM_RELATED : forall {A : Type'}, forall R' : N -> N -> Prop, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, ((R' (NUMERAL 0%N) (NUMERAL 0%N)) /\ ((forall m : N, forall n : N, forall m' : N, forall n' : N, ((R' m n) /\ (R' m' n')) -> R' (N.add m m') (N.add n n')) /\ ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> R' (f x) (g x))))) -> R' (@nsum A s f) (@nsum A s g). +Axiom thm_NSUM_CLOSED_NONEMPTY : forall {A : Type'}, forall P : N -> Prop, forall f : A -> N, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ ((forall x : N, forall y : N, ((P x) /\ (P y)) -> P (N.add x y)) /\ (forall a : A, (@IN A a s) -> P (f a))))) -> P (@nsum A s f). +Axiom thm_NSUM_RELATED_NONEMPTY : forall {A : Type'}, forall R' : N -> N -> Prop, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, ((forall m : N, forall n : N, forall m' : N, forall n' : N, ((R' m n) /\ (R' m' n')) -> R' (N.add m m') (N.add n n')) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> R' (f x) (g x))))) -> R' (@nsum A s f) (@nsum A s g). +Axiom thm_NSUM_ADD_NUMSEG : forall f : N -> N, forall g : N -> N, forall m : N, forall n : N, (@nsum N (dotdot m n) (fun i : N => N.add (f i) (g i))) = (N.add (@nsum N (dotdot m n) f) (@nsum N (dotdot m n) g)). +Axiom thm_NSUM_LE_NUMSEG : forall f : N -> N, forall g : N -> N, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> N.le (f i) (g i)) -> N.le (@nsum N (dotdot m n) f) (@nsum N (dotdot m n) g). +Axiom thm_NSUM_EQ_NUMSEG : forall f : N -> N, forall g : N -> N, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> (f i) = (g i)) -> (@nsum N (dotdot m n) f) = (@nsum N (dotdot m n) g). +Axiom thm_NSUM_CONST_NUMSEG : forall c : N, forall m : N, forall n : N, (@nsum N (dotdot m n) (fun n' : N => c)) = (N.mul (N.sub (N.add n (NUMERAL (BIT1 0%N))) m) c). +Axiom thm_NSUM_EQ_0_NUMSEG : forall f : N -> N, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> (f i) = (NUMERAL 0%N)) -> (@nsum N (dotdot m n) f) = (NUMERAL 0%N). +Axiom thm_NSUM_EQ_0_IFF_NUMSEG : forall f : N -> N, forall m : N, forall n : N, ((@nsum N (dotdot m n) f) = (NUMERAL 0%N)) = (forall i : N, ((N.le m i) /\ (N.le i n)) -> (f i) = (NUMERAL 0%N)). +Axiom thm_NSUM_TRIV_NUMSEG : forall f : N -> N, forall m : N, forall n : N, (N.lt n m) -> (@nsum N (dotdot m n) f) = (NUMERAL 0%N). +Axiom thm_NSUM_SING_NUMSEG : forall f : N -> N, forall n : N, (@nsum N (dotdot n n) f) = (f n). +Axiom thm_NSUM_CLAUSES_NUMSEG : forall (f : N -> N), (forall m : N, (@nsum N (dotdot m (NUMERAL 0%N)) f) = (@COND N (m = (NUMERAL 0%N)) (f (NUMERAL 0%N)) (NUMERAL 0%N))) /\ (forall m : N, forall n : N, (@nsum N (dotdot m (N.succ n)) f) = (@COND N (N.le m (N.succ n)) (N.add (@nsum N (dotdot m n) f) (f (N.succ n))) (@nsum N (dotdot m n) f))). +Axiom thm_NSUM_CLAUSES_NUMSEG_LT : forall (f : N -> N), ((@nsum N (@GSPEC N (fun GEN_PVAR_305 : N => exists i : N, @SETSPEC N GEN_PVAR_305 (N.lt i (NUMERAL 0%N)) i)) f) = (NUMERAL 0%N)) /\ (forall k : N, (@nsum N (@GSPEC N (fun GEN_PVAR_306 : N => exists i : N, @SETSPEC N GEN_PVAR_306 (N.lt i (N.succ k)) i)) f) = (N.add (@nsum N (@GSPEC N (fun GEN_PVAR_307 : N => exists i : N, @SETSPEC N GEN_PVAR_307 (N.lt i k) i)) f) (f k))). +Axiom thm_NSUM_CLAUSES_NUMSEG_LE : forall (f : N -> N), ((@nsum N (@GSPEC N (fun GEN_PVAR_308 : N => exists i : N, @SETSPEC N GEN_PVAR_308 (N.le i (NUMERAL 0%N)) i)) f) = (f (NUMERAL 0%N))) /\ (forall k : N, (@nsum N (@GSPEC N (fun GEN_PVAR_309 : N => exists i : N, @SETSPEC N GEN_PVAR_309 (N.le i (N.succ k)) i)) f) = (N.add (@nsum N (@GSPEC N (fun GEN_PVAR_310 : N => exists i : N, @SETSPEC N GEN_PVAR_310 (N.le i k) i)) f) (f (N.succ k)))). +Axiom thm_NSUM_SWAP_NUMSEG : forall a : N, forall b : N, forall c : N, forall d : N, forall f : N -> N -> N, (@nsum N (dotdot a b) (fun i : N => @nsum N (dotdot c d) (f i))) = (@nsum N (dotdot c d) (fun j : N => @nsum N (dotdot a b) (fun i : N => f i j))). +Axiom thm_NSUM_ADD_SPLIT : forall f : N -> N, forall m : N, forall n : N, forall p : N, (N.le m (N.add n (NUMERAL (BIT1 0%N)))) -> (@nsum N (dotdot m (N.add n p)) f) = (N.add (@nsum N (dotdot m n) f) (@nsum N (dotdot (N.add n (NUMERAL (BIT1 0%N))) (N.add n p)) f)). +Axiom thm_NSUM_OFFSET : forall p : N, forall f : N -> N, forall m : N, forall n : N, (@nsum N (dotdot (N.add m p) (N.add n p)) f) = (@nsum N (dotdot m n) (fun i : N => f (N.add i p))). +Axiom thm_NSUM_OFFSET_0 : forall f : N -> N, forall m : N, forall n : N, (N.le m n) -> (@nsum N (dotdot m n) f) = (@nsum N (dotdot (NUMERAL 0%N) (N.sub n m)) (fun i : N => f (N.add i m))). +Axiom thm_NSUM_CLAUSES_LEFT : forall f : N -> N, forall m : N, forall n : N, (N.le m n) -> (@nsum N (dotdot m n) f) = (N.add (f m) (@nsum N (dotdot (N.add m (NUMERAL (BIT1 0%N))) n) f)). +Axiom thm_NSUM_CLAUSES_RIGHT : forall f : N -> N, forall m : N, forall n : N, ((N.lt (NUMERAL 0%N) n) /\ (N.le m n)) -> (@nsum N (dotdot m n) f) = (N.add (@nsum N (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f) (f n)). +Axiom thm_NSUM_PAIR : forall f : N -> N, forall m : N, forall n : N, (@nsum N (dotdot (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) f) = (@nsum N (dotdot m n) (fun i : N => N.add (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i) (NUMERAL (BIT1 0%N)))))). +Axiom thm_NSUM_REFLECT : forall x : N -> N, forall m : N, forall n : N, (@nsum N (dotdot m n) x) = (@COND N (N.lt n m) (NUMERAL 0%N) (@nsum N (dotdot (NUMERAL 0%N) (N.sub n m)) (fun i : N => x (N.sub n i)))). +Axiom thm_MOD_NSUM_MOD : forall {A : Type'}, forall f : A -> N, forall n : N, forall s : A -> Prop, (@FINITE A s) -> (N.modulo (@nsum A s f) n) = (N.modulo (@nsum A s (fun i : A => N.modulo (f i) n)) n). +Axiom thm_MOD_NSUM_MOD_NUMSEG : forall f : N -> N, forall a : N, forall b : N, forall n : N, (N.modulo (@nsum N (dotdot a b) f) n) = (N.modulo (@nsum N (dotdot a b) (fun i : N => N.modulo (f i) n)) n). +Axiom thm_CONG_NSUM : forall {A : Type'}, forall n : N, forall f : A -> N, forall g : A -> N, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> @eq2 N (f x) (g x) (num_mod n))) -> @eq2 N (@nsum A s f) (@nsum A s g) (num_mod n). +Axiom thm_CARD_UNIONS : forall {A : Type'}, forall s : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) s) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t s) -> @FINITE A t) /\ (forall t : A -> Prop, forall u : A -> Prop, ((@IN (A -> Prop) t s) /\ ((@IN (A -> Prop) u s) /\ (~ (t = u)))) -> (@INTER A t u) = (@EMPTY A)))) -> (@CARD A (@UNIONS A s)) = (@nsum (A -> Prop) s (@CARD A)). +Axiom thm_sum : forall {A : Type'}, (@sum A) = (@iterate A R Rplus). +Axiom thm_NEUTRAL_REAL_ADD : (@neutral R Rplus) = (R_of_N (NUMERAL 0%N)). +Axiom thm_MONOIDAL_REAL_ADD : @monoidal R Rplus. +Axiom thm_SUM_DEGENERATE : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (~ (@FINITE A (@GSPEC A (fun GEN_PVAR_313 : A => exists x : A, @SETSPEC A GEN_PVAR_313 ((@IN A x s) /\ (~ ((f x) = (R_of_N (NUMERAL 0%N))))) x)))) -> (@sum A s f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SUM_CLAUSES : forall {A B : Type'}, (forall f : A -> R, (@sum A (@EMPTY A) f) = (R_of_N (NUMERAL 0%N))) /\ (forall x : B, forall f : B -> R, forall s : B -> Prop, (@FINITE B s) -> (@sum B (@INSERT B x s) f) = (@COND R (@IN B x s) (@sum B s f) (Rplus (f x) (@sum B s f)))). +Axiom thm_SUM_UNION : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (@DISJOINT A s t))) -> (@sum A (@UNION A s t) f) = (Rplus (@sum A s f) (@sum A t f)). +Axiom thm_SUM_DIFF : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ (@SUBSET A t s)) -> (@sum A (@DIFF A s t) f) = (Rminus (@sum A s f) (@sum A t f)). +Axiom thm_SUM_INCL_EXCL : forall {A : Type'}, forall s : A -> Prop, forall t : A -> Prop, forall f : A -> R, ((@FINITE A s) /\ (@FINITE A t)) -> (Rplus (@sum A s f) (@sum A t f)) = (Rplus (@sum A (@UNION A s t) f) (@sum A (@INTER A s t) f)). +Axiom thm_SUM_SUPPORT : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@sum A (@support A R Rplus f s) f) = (@sum A s f). +Axiom thm_SUM_ADD : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, (@FINITE A s) -> (@sum A s (fun x : A => Rplus (f x) (g x))) = (Rplus (@sum A s f) (@sum A s g)). +Axiom thm_SUM_ADD_GEN : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((@FINITE A (@GSPEC A (fun GEN_PVAR_314 : A => exists x : A, @SETSPEC A GEN_PVAR_314 ((@IN A x s) /\ (~ ((f x) = (R_of_N (NUMERAL 0%N))))) x))) /\ (@FINITE A (@GSPEC A (fun GEN_PVAR_315 : A => exists x : A, @SETSPEC A GEN_PVAR_315 ((@IN A x s) /\ (~ ((g x) = (R_of_N (NUMERAL 0%N))))) x)))) -> (@sum A s (fun x : A => Rplus (f x) (g x))) = (Rplus (@sum A s f) (@sum A s g)). +Axiom thm_SUM_EQ_0 : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (R_of_N (NUMERAL 0%N))) -> (@sum A s f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SUM_0 : forall {A : Type'}, forall s : A -> Prop, (@sum A s (fun n : A => R_of_N (NUMERAL 0%N))) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SUM_LMUL : forall {A : Type'}, forall f : A -> R, forall c : R, forall s : A -> Prop, (@sum A s (fun x : A => Rmult c (f x))) = (Rmult c (@sum A s f)). +Axiom thm_SUM_RMUL : forall {A : Type'}, forall f : A -> R, forall c : R, forall s : A -> Prop, (@sum A s (fun x : A => Rmult (f x) c)) = (Rmult (@sum A s f) c). +Axiom thm_SUM_NEG : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@sum A s (fun x : A => Ropp (f x))) = (Ropp (@sum A s f)). +Axiom thm_SUM_SUB : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, (@FINITE A s) -> (@sum A s (fun x : A => Rminus (f x) (g x))) = (Rminus (@sum A s f) (@sum A s g)). +Axiom thm_SUM_LE : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rle (f x) (g x))) -> Rle (@sum A s f) (@sum A s g). +Axiom thm_SUM_LT : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> Rle (f x) (g x)) /\ (exists x : A, (@IN A x s) /\ (Rlt (f x) (g x))))) -> Rlt (@sum A s f) (@sum A s g). +Axiom thm_SUM_LT_ALL : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> Rlt (f x) (g x)))) -> Rlt (@sum A s f) (@sum A s g). +Axiom thm_SUM_POS_LT : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x)) /\ (exists x : A, (@IN A x s) /\ (Rlt (R_of_N (NUMERAL 0%N)) (f x))))) -> Rlt (R_of_N (NUMERAL 0%N)) (@sum A s f). +Axiom thm_SUM_POS_LT_ALL : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall i : A, (@IN A i s) -> Rlt (R_of_N (NUMERAL 0%N)) (f i)))) -> Rlt (R_of_N (NUMERAL 0%N)) (@sum A s f). +Axiom thm_SUM_EQ : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, (forall x : A, (@IN A x s) -> (f x) = (g x)) -> (@sum A s f) = (@sum A s g). +Axiom thm_SUM_ABS : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@FINITE A s) -> Rle (Rabs (@sum A s f)) (@sum A s (fun x : A => Rabs (f x))). +Axiom thm_SUM_ABS_LE : forall {A : Type'}, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rle (Rabs (f x)) (g x))) -> Rle (Rabs (@sum A s f)) (@sum A s g). +Axiom thm_SUM_CONST : forall {A : Type'}, forall c : R, forall s : A -> Prop, (@FINITE A s) -> (@sum A s (fun n : A => c)) = (Rmult (R_of_N (@CARD A s)) c). +Axiom thm_SUM_POS_LE : forall {A : Type'} (f : A -> R), forall s : A -> Prop, (forall x : A, (@IN A x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x)) -> Rle (R_of_N (NUMERAL 0%N)) (@sum A s f). +Axiom thm_SUM_POS_BOUND : forall {A : Type'}, forall f : A -> R, forall b : R, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x)) /\ (Rle (@sum A s f) b))) -> forall x : A, (@IN A x s) -> Rle (f x) b. +Axiom thm_SUM_POS_EQ_0 : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> Rle (R_of_N (NUMERAL 0%N)) (f x)) /\ ((@sum A s f) = (R_of_N (NUMERAL 0%N))))) -> forall x : A, (@IN A x s) -> (f x) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SUM_ZERO_EXISTS : forall {A : Type'}, forall u : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((@sum A s u) = (R_of_N (NUMERAL 0%N)))) -> (forall i : A, (@IN A i s) -> (u i) = (R_of_N (NUMERAL 0%N))) \/ (exists j : A, exists k : A, (@IN A j s) /\ ((Rlt (u j) (R_of_N (NUMERAL 0%N))) /\ ((@IN A k s) /\ (Rgt (u k) (R_of_N (NUMERAL 0%N)))))). +Axiom thm_SUM_DELETE : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, forall a : A, ((@FINITE A s) /\ (@IN A a s)) -> (@sum A (@DELETE A s a) f) = (Rminus (@sum A s f) (f a)). +Axiom thm_SUM_DELETE_CASES : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, forall a : A, (@FINITE A s) -> (@sum A (@DELETE A s a) f) = (@COND R (@IN A a s) (Rminus (@sum A s f) (f a)) (@sum A s f)). +Axiom thm_SUM_SING : forall {A : Type'}, forall f : A -> R, forall x : A, (@sum A (@INSERT A x (@EMPTY A)) f) = (f x). +Axiom thm_SUM_DELTA : forall {A : Type'} (b : R), forall s : A -> Prop, forall a : A, (@sum A s (fun x : A => @COND R (x = a) b (R_of_N (NUMERAL 0%N)))) = (@COND R (@IN A a s) b (R_of_N (NUMERAL 0%N))). +Axiom thm_SUM_SWAP : forall {A B : Type'}, forall f : A -> B -> R, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@sum A s (fun i : A => @sum B t (f i))) = (@sum B t (fun j : B => @sum A s (fun i : A => f i j))). +Axiom thm_SUM_IMAGE : forall {A B : Type'}, forall f : A -> B, forall g : B -> R, forall s : A -> Prop, (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((f x) = (f y)))) -> x = y) -> (@sum B (@IMAGE A B f s) g) = (@sum A s (@o A B R g f)). +Axiom thm_SUM_SUPERSET : forall {A : Type'}, forall f : A -> R, forall u : A -> Prop, forall v : A -> Prop, ((@SUBSET A u v) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (R_of_N (NUMERAL 0%N)))) -> (@sum A v f) = (@sum A u f). +Axiom thm_SUM_UNIV : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@SUBSET A (@support A R Rplus f (@UNIV A)) s) -> (@sum A s f) = (@sum A (@UNIV A) f). +Axiom thm_SUM_UNION_RZERO : forall {A : Type'}, forall f : A -> R, forall u : A -> Prop, forall v : A -> Prop, ((@FINITE A u) /\ (forall x : A, ((@IN A x v) /\ (~ (@IN A x u))) -> (f x) = (R_of_N (NUMERAL 0%N)))) -> (@sum A (@UNION A u v) f) = (@sum A u f). +Axiom thm_SUM_UNION_LZERO : forall {A : Type'}, forall f : A -> R, forall u : A -> Prop, forall v : A -> Prop, ((@FINITE A v) /\ (forall x : A, ((@IN A x u) /\ (~ (@IN A x v))) -> (f x) = (R_of_N (NUMERAL 0%N)))) -> (@sum A (@UNION A u v) f) = (@sum A v f). +Axiom thm_SUM_RESTRICT : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, (@FINITE A s) -> (@sum A s (fun x : A => @COND R (@IN A x s) (f x) (R_of_N (NUMERAL 0%N)))) = (@sum A s f). +Axiom thm_SUM_BOUND : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, forall b : R, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rle (f x) b)) -> Rle (@sum A s f) (Rmult (R_of_N (@CARD A s)) b). +Axiom thm_SUM_BOUND_GEN : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, forall b : R, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> Rle (f x) (Rdiv b (R_of_N (@CARD A s)))))) -> Rle (@sum A s f) b. +Axiom thm_SUM_ABS_BOUND : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, forall b : R, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rle (Rabs (f x)) b)) -> Rle (Rabs (@sum A s f)) (Rmult (R_of_N (@CARD A s)) b). +Axiom thm_SUM_BOUND_LT : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, forall b : R, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> Rle (f x) b) /\ (exists x : A, (@IN A x s) /\ (Rlt (f x) b)))) -> Rlt (@sum A s f) (Rmult (R_of_N (@CARD A s)) b). +Axiom thm_SUM_BOUND_LT_ALL : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, forall b : R, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> Rlt (f x) b))) -> Rlt (@sum A s f) (Rmult (R_of_N (@CARD A s)) b). +Axiom thm_SUM_BOUND_LT_GEN : forall {A : Type'}, forall s : A -> Prop, forall f : A -> R, forall b : R, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> Rlt (f x) (Rdiv b (R_of_N (@CARD A s)))))) -> Rlt (@sum A s f) b. +Axiom thm_SUM_UNION_EQ : forall {A : Type'} (f : A -> R), forall s : A -> Prop, forall t : A -> Prop, forall u : A -> Prop, ((@FINITE A u) /\ (((@INTER A s t) = (@EMPTY A)) /\ ((@UNION A s t) = u))) -> (Rplus (@sum A s f) (@sum A t f)) = (@sum A u f). +Axiom thm_SUM_EQ_SUPERSET : forall {A : Type'} (g : A -> R), forall f : A -> R, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A t) /\ ((@SUBSET A t s) /\ ((forall x : A, (@IN A x t) -> (f x) = (g x)) /\ (forall x : A, ((@IN A x s) /\ (~ (@IN A x t))) -> (f x) = (R_of_N (NUMERAL 0%N)))))) -> (@sum A s f) = (@sum A t g). +Axiom thm_SUM_RESTRICT_SET : forall {A : Type'}, forall P : A -> Prop, forall s : A -> Prop, forall f : A -> R, (@sum A (@GSPEC A (fun GEN_PVAR_318 : A => exists x : A, @SETSPEC A GEN_PVAR_318 ((@IN A x s) /\ (P x)) x)) f) = (@sum A s (fun x : A => @COND R (P x) (f x) (R_of_N (NUMERAL 0%N)))). +Axiom thm_SUM_SUM_RESTRICT : forall {A B : Type'}, forall R' : A -> B -> Prop, forall f : A -> B -> R, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@FINITE B t)) -> (@sum A s (fun x : A => @sum B (@GSPEC B (fun GEN_PVAR_319 : B => exists y : B, @SETSPEC B GEN_PVAR_319 ((@IN B y t) /\ (R' x y)) y)) (fun y : B => f x y))) = (@sum B t (fun y : B => @sum A (@GSPEC A (fun GEN_PVAR_320 : A => exists x : A, @SETSPEC A GEN_PVAR_320 ((@IN A x s) /\ (R' x y)) x)) (fun x : A => f x y))). +Axiom thm_CARD_EQ_SUM : forall {A : Type'}, forall s : A -> Prop, (@FINITE A s) -> (R_of_N (@CARD A s)) = (@sum A s (fun x : A => R_of_N (NUMERAL (BIT1 0%N)))). +Axiom thm_SUM_MULTICOUNT_GEN : forall {A B : Type'}, forall R' : A -> B -> Prop, forall s : A -> Prop, forall t : B -> Prop, forall k : B -> N, ((@FINITE A s) /\ ((@FINITE B t) /\ (forall j : B, (@IN B j t) -> (@CARD A (@GSPEC A (fun GEN_PVAR_322 : A => exists i : A, @SETSPEC A GEN_PVAR_322 ((@IN A i s) /\ (R' i j)) i))) = (k j)))) -> (@sum A s (fun i : A => R_of_N (@CARD B (@GSPEC B (fun GEN_PVAR_323 : B => exists j : B, @SETSPEC B GEN_PVAR_323 ((@IN B j t) /\ (R' i j)) j))))) = (@sum B t (fun i : B => R_of_N (k i))). +Axiom thm_SUM_MULTICOUNT : forall {A B : Type'}, forall R' : A -> B -> Prop, forall s : A -> Prop, forall t : B -> Prop, forall k : N, ((@FINITE A s) /\ ((@FINITE B t) /\ (forall j : B, (@IN B j t) -> (@CARD A (@GSPEC A (fun GEN_PVAR_324 : A => exists i : A, @SETSPEC A GEN_PVAR_324 ((@IN A i s) /\ (R' i j)) i))) = k))) -> (@sum A s (fun i : A => R_of_N (@CARD B (@GSPEC B (fun GEN_PVAR_325 : B => exists j : B, @SETSPEC B GEN_PVAR_325 ((@IN B j t) /\ (R' i j)) j))))) = (R_of_N (N.mul k (@CARD B t))). +Axiom thm_SUM_IMAGE_GEN : forall {A B : Type'}, forall f : A -> B, forall g : A -> R, forall s : A -> Prop, (@FINITE A s) -> (@sum A s g) = (@sum B (@IMAGE A B f s) (fun y : B => @sum A (@GSPEC A (fun GEN_PVAR_326 : A => exists x : A, @SETSPEC A GEN_PVAR_326 ((@IN A x s) /\ ((f x) = y)) x)) g)). +Axiom thm_SUM_GROUP : forall {A B : Type'}, forall f : A -> B, forall g : A -> R, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (@SUBSET B (@IMAGE A B f s) t)) -> (@sum B t (fun y : B => @sum A (@GSPEC A (fun GEN_PVAR_327 : A => exists x : A, @SETSPEC A GEN_PVAR_327 ((@IN A x s) /\ ((f x) = y)) x)) g)) = (@sum A s g). +Axiom thm_SUM_GROUP_RELATION : forall {A B : Type'}, forall R' : A -> B -> Prop, forall g : A -> R, forall s : A -> Prop, forall t : B -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> @ex1 B (fun y : B => (@IN B y t) /\ (R' x y)))) -> (@sum B t (fun y : B => @sum A (@GSPEC A (fun GEN_PVAR_328 : A => exists x : A, @SETSPEC A GEN_PVAR_328 ((@IN A x s) /\ (R' x y)) x)) g)) = (@sum A s g). +Axiom thm_REAL_OF_NUM_SUM : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (@FINITE A s) -> (R_of_N (@nsum A s f)) = (@sum A s (fun x : A => R_of_N (f x))). +Axiom thm_SUM_SUBSET : forall {A : Type'}, forall u : A -> Prop, forall v : A -> Prop, forall f : A -> R, ((@FINITE A u) /\ ((@FINITE A v) /\ ((forall x : A, (@IN A x (@DIFF A u v)) -> Rle (f x) (R_of_N (NUMERAL 0%N))) /\ (forall x : A, (@IN A x (@DIFF A v u)) -> Rle (R_of_N (NUMERAL 0%N)) (f x))))) -> Rle (@sum A u f) (@sum A v f). +Axiom thm_SUM_SUBSET_SIMPLE : forall {A : Type'}, forall u : A -> Prop, forall v : A -> Prop, forall f : A -> R, ((@FINITE A v) /\ ((@SUBSET A u v) /\ (forall x : A, (@IN A x (@DIFF A v u)) -> Rle (R_of_N (NUMERAL 0%N)) (f x)))) -> Rle (@sum A u f) (@sum A v f). +Axiom thm_SUM_MUL_BOUND : forall {A : Type'}, forall a : A -> R, forall b : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> (Rle (R_of_N (NUMERAL 0%N)) (a i)) /\ (Rle (R_of_N (NUMERAL 0%N)) (b i)))) -> Rle (@sum A s (fun i : A => Rmult (a i) (b i))) (Rmult (@sum A s a) (@sum A s b)). +Axiom thm_SUM_IMAGE_NONZERO : forall {A B : Type'}, forall d : B -> R, forall i : A -> B, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((~ (x = y)) /\ ((i x) = (i y))))) -> (d (i x)) = (R_of_N (NUMERAL 0%N)))) -> (@sum B (@IMAGE A B i s) d) = (@sum A s (@o A B R d i)). +Axiom thm_SUM_BIJECTION : forall {A : Type'}, forall f : A -> R, forall p : A -> A, forall s : A -> Prop, ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall y : A, (@IN A y s) -> @ex1 A (fun x : A => (@IN A x s) /\ ((p x) = y)))) -> (@sum A s f) = (@sum A s (@o A A R f p)). +Axiom thm_SUM_SUM_PRODUCT : forall {A B : Type'}, forall s : A -> Prop, forall t : A -> B -> Prop, forall x : A -> B -> R, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> @FINITE B (t i))) -> (@sum A s (fun i : A => @sum B (t i) (x i))) = (@sum (prod A B) (@GSPEC (prod A B) (fun GEN_PVAR_329 : prod A B => exists i : A, exists j : B, @SETSPEC (prod A B) GEN_PVAR_329 ((@IN A i s) /\ (@IN B j (t i))) (@pair A B i j))) (@GABS ((prod A B) -> R) (fun f : (prod A B) -> R => forall i : A, forall j : B, @GEQ R (f (@pair A B i j)) (x i j)))). +Axiom thm_SUM_EQ_GENERAL : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> R, forall g : B -> R, forall h : A -> B, ((forall y : B, (@IN B y t) -> @ex1 A (fun x : A => (@IN A x s) /\ ((h x) = y))) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ ((g (h x)) = (f x)))) -> (@sum A s f) = (@sum B t g). +Axiom thm_SUM_EQ_GENERAL_INVERSES : forall {A B : Type'}, forall s : A -> Prop, forall t : B -> Prop, forall f : A -> R, forall g : B -> R, forall h : A -> B, forall k : B -> A, ((forall y : B, (@IN B y t) -> (@IN A (k y) s) /\ ((h (k y)) = y)) /\ (forall x : A, (@IN A x s) -> (@IN B (h x) t) /\ (((k (h x)) = x) /\ ((g (h x)) = (f x))))) -> (@sum A s f) = (@sum B t g). +Axiom thm_SUM_INJECTION : forall {A : Type'}, forall f : A -> R, forall p : A -> A, forall s : A -> Prop, ((@FINITE A s) /\ ((forall x : A, (@IN A x s) -> @IN A (p x) s) /\ (forall x : A, forall y : A, ((@IN A x s) /\ ((@IN A y s) /\ ((p x) = (p y)))) -> x = y))) -> (@sum A s (@o A A R f p)) = (@sum A s f). +Axiom thm_SUM_UNION_NONZERO : forall {A : Type'}, forall f : A -> R, forall s : A -> Prop, forall t : A -> Prop, ((@FINITE A s) /\ ((@FINITE A t) /\ (forall x : A, (@IN A x (@INTER A s t)) -> (f x) = (R_of_N (NUMERAL 0%N))))) -> (@sum A (@UNION A s t) f) = (Rplus (@sum A s f) (@sum A t f)). +Axiom thm_SUM_UNIONS_NONZERO : forall {A : Type'}, forall f : A -> R, forall s : (A -> Prop) -> Prop, ((@FINITE (A -> Prop) s) /\ ((forall t : A -> Prop, (@IN (A -> Prop) t s) -> @FINITE A t) /\ (forall t1 : A -> Prop, forall t2 : A -> Prop, forall x : A, ((@IN (A -> Prop) t1 s) /\ ((@IN (A -> Prop) t2 s) /\ ((~ (t1 = t2)) /\ ((@IN A x t1) /\ (@IN A x t2))))) -> (f x) = (R_of_N (NUMERAL 0%N))))) -> (@sum A (@UNIONS A s) f) = (@sum (A -> Prop) s (fun t : A -> Prop => @sum A t f)). +Axiom thm_SUM_CASES : forall {A : Type'}, forall s : A -> Prop, forall P : A -> Prop, forall f : A -> R, forall g : A -> R, (@FINITE A s) -> (@sum A s (fun x : A => @COND R (P x) (f x) (g x))) = (Rplus (@sum A (@GSPEC A (fun GEN_PVAR_330 : A => exists x : A, @SETSPEC A GEN_PVAR_330 ((@IN A x s) /\ (P x)) x)) f) (@sum A (@GSPEC A (fun GEN_PVAR_331 : A => exists x : A, @SETSPEC A GEN_PVAR_331 ((@IN A x s) /\ (~ (P x))) x)) g)). +Axiom thm_SUM_CASES_1 : forall {A : Type'} (y : R) (f : A -> R), forall s : A -> Prop, forall a : A, ((@FINITE A s) /\ (@IN A a s)) -> (@sum A s (fun x : A => @COND R (x = a) y (f x))) = (Rplus (@sum A s f) (Rminus y (f a))). +Axiom thm_SUM_LE_INCLUDED : forall {A B : Type'}, forall f : A -> R, forall g : B -> R, forall s : A -> Prop, forall t : B -> Prop, forall i : B -> A, ((@FINITE A s) /\ ((@FINITE B t) /\ ((forall y : B, (@IN B y t) -> Rle (R_of_N (NUMERAL 0%N)) (g y)) /\ (forall x : A, (@IN A x s) -> exists y : B, (@IN B y t) /\ (((i y) = x) /\ (Rle (f x) (g y))))))) -> Rle (@sum A s f) (@sum B t g). +Axiom thm_SUM_IMAGE_LE : forall {A B : Type'}, forall f : A -> B, forall g : B -> R, forall s : A -> Prop, ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> Rle (R_of_N (NUMERAL 0%N)) (g (f x)))) -> Rle (@sum B (@IMAGE A B f s) g) (@sum A s (@o A B R g f)). +Axiom thm_SUM_CLOSED : forall {A : Type'}, forall P : R -> Prop, forall f : A -> R, forall s : A -> Prop, ((P (R_of_N (NUMERAL 0%N))) /\ ((forall x : R, forall y : R, ((P x) /\ (P y)) -> P (Rplus x y)) /\ (forall a : A, (@IN A a s) -> P (f a)))) -> P (@sum A s f). +Axiom thm_SUM_RELATED : forall {A : Type'}, forall R' : R -> R -> Prop, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((R' (R_of_N (NUMERAL 0%N)) (R_of_N (NUMERAL 0%N))) /\ ((forall m : R, forall n : R, forall m' : R, forall n' : R, ((R' m n) /\ (R' m' n')) -> R' (Rplus m m') (Rplus n n')) /\ ((@FINITE A s) /\ (forall x : A, (@IN A x s) -> R' (f x) (g x))))) -> R' (@sum A s f) (@sum A s g). +Axiom thm_SUM_CLOSED_NONEMPTY : forall {A : Type'}, forall P : R -> Prop, forall f : A -> R, forall s : A -> Prop, ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ ((forall x : R, forall y : R, ((P x) /\ (P y)) -> P (Rplus x y)) /\ (forall a : A, (@IN A a s) -> P (f a))))) -> P (@sum A s f). +Axiom thm_SUM_RELATED_NONEMPTY : forall {A : Type'}, forall R' : R -> R -> Prop, forall f : A -> R, forall g : A -> R, forall s : A -> Prop, ((forall m : R, forall n : R, forall m' : R, forall n' : R, ((R' m n) /\ (R' m' n')) -> R' (Rplus m m') (Rplus n n')) /\ ((@FINITE A s) /\ ((~ (s = (@EMPTY A))) /\ (forall x : A, (@IN A x s) -> R' (f x) (g x))))) -> R' (@sum A s f) (@sum A s g). +Axiom thm_REAL_OF_NUM_SUM_GEN : forall {A : Type'}, forall f : A -> N, forall s : A -> Prop, (@FINITE A (@GSPEC A (fun GEN_PVAR_335 : A => exists i : A, @SETSPEC A GEN_PVAR_335 ((@IN A i s) /\ (~ ((f i) = (NUMERAL 0%N)))) i))) -> (R_of_N (@nsum A s f)) = (@sum A s (fun x : A => R_of_N (f x))). +Axiom thm_SUM_ADD_NUMSEG : forall f : N -> R, forall g : N -> R, forall m : N, forall n : N, (@sum N (dotdot m n) (fun i : N => Rplus (f i) (g i))) = (Rplus (@sum N (dotdot m n) f) (@sum N (dotdot m n) g)). +Axiom thm_SUM_SUB_NUMSEG : forall f : N -> R, forall g : N -> R, forall m : N, forall n : N, (@sum N (dotdot m n) (fun i : N => Rminus (f i) (g i))) = (Rminus (@sum N (dotdot m n) f) (@sum N (dotdot m n) g)). +Axiom thm_SUM_LE_NUMSEG : forall f : N -> R, forall g : N -> R, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> Rle (f i) (g i)) -> Rle (@sum N (dotdot m n) f) (@sum N (dotdot m n) g). +Axiom thm_SUM_EQ_NUMSEG : forall f : N -> R, forall g : N -> R, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> (f i) = (g i)) -> (@sum N (dotdot m n) f) = (@sum N (dotdot m n) g). +Axiom thm_SUM_ABS_NUMSEG : forall f : N -> R, forall m : N, forall n : N, Rle (Rabs (@sum N (dotdot m n) f)) (@sum N (dotdot m n) (fun i : N => Rabs (f i))). +Axiom thm_SUM_CONST_NUMSEG : forall c : R, forall m : N, forall n : N, (@sum N (dotdot m n) (fun n' : N => c)) = (Rmult (R_of_N (N.sub (N.add n (NUMERAL (BIT1 0%N))) m)) c). +Axiom thm_SUM_EQ_0_NUMSEG : forall f : N -> R, forall m : N, forall n : N, (forall i : N, ((N.le m i) /\ (N.le i n)) -> (f i) = (R_of_N (NUMERAL 0%N))) -> (@sum N (dotdot m n) f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SUM_TRIV_NUMSEG : forall f : N -> R, forall m : N, forall n : N, (N.lt n m) -> (@sum N (dotdot m n) f) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SUM_POS_LE_NUMSEG : forall m : N, forall n : N, forall f : N -> R, (forall p : N, ((N.le m p) /\ (N.le p n)) -> Rle (R_of_N (NUMERAL 0%N)) (f p)) -> Rle (R_of_N (NUMERAL 0%N)) (@sum N (dotdot m n) f). +Axiom thm_SUM_POS_EQ_0_NUMSEG : forall f : N -> R, forall m : N, forall n : N, ((forall p : N, ((N.le m p) /\ (N.le p n)) -> Rle (R_of_N (NUMERAL 0%N)) (f p)) /\ ((@sum N (dotdot m n) f) = (R_of_N (NUMERAL 0%N)))) -> forall p : N, ((N.le m p) /\ (N.le p n)) -> (f p) = (R_of_N (NUMERAL 0%N)). +Axiom thm_SUM_SING_NUMSEG : forall f : N -> R, forall n : N, (@sum N (dotdot n n) f) = (f n). +Axiom thm_SUM_CLAUSES_NUMSEG : forall (f : N -> R), (forall m : N, (@sum N (dotdot m (NUMERAL 0%N)) f) = (@COND R (m = (NUMERAL 0%N)) (f (NUMERAL 0%N)) (R_of_N (NUMERAL 0%N)))) /\ (forall m : N, forall n : N, (@sum N (dotdot m (N.succ n)) f) = (@COND R (N.le m (N.succ n)) (Rplus (@sum N (dotdot m n) f) (f (N.succ n))) (@sum N (dotdot m n) f))). +Axiom thm_SUM_CLAUSES_NUMSEG_LT : forall (f : N -> R), ((@sum N (@GSPEC N (fun GEN_PVAR_336 : N => exists i : N, @SETSPEC N GEN_PVAR_336 (N.lt i (NUMERAL 0%N)) i)) f) = (R_of_N (NUMERAL 0%N))) /\ (forall k : N, (@sum N (@GSPEC N (fun GEN_PVAR_337 : N => exists i : N, @SETSPEC N GEN_PVAR_337 (N.lt i (N.succ k)) i)) f) = (Rplus (@sum N (@GSPEC N (fun GEN_PVAR_338 : N => exists i : N, @SETSPEC N GEN_PVAR_338 (N.lt i k) i)) f) (f k))). +Axiom thm_SUM_CLAUSES_NUMSEG_LE : forall (f : N -> R), ((@sum N (@GSPEC N (fun GEN_PVAR_339 : N => exists i : N, @SETSPEC N GEN_PVAR_339 (N.le i (NUMERAL 0%N)) i)) f) = (f (NUMERAL 0%N))) /\ (forall k : N, (@sum N (@GSPEC N (fun GEN_PVAR_340 : N => exists i : N, @SETSPEC N GEN_PVAR_340 (N.le i (N.succ k)) i)) f) = (Rplus (@sum N (@GSPEC N (fun GEN_PVAR_341 : N => exists i : N, @SETSPEC N GEN_PVAR_341 (N.le i k) i)) f) (f (N.succ k)))). +Axiom thm_SUM_SWAP_NUMSEG : forall a : N, forall b : N, forall c : N, forall d : N, forall f : N -> N -> R, (@sum N (dotdot a b) (fun i : N => @sum N (dotdot c d) (f i))) = (@sum N (dotdot c d) (fun j : N => @sum N (dotdot a b) (fun i : N => f i j))). +Axiom thm_SUM_ADD_SPLIT : forall f : N -> R, forall m : N, forall n : N, forall p : N, (N.le m (N.add n (NUMERAL (BIT1 0%N)))) -> (@sum N (dotdot m (N.add n p)) f) = (Rplus (@sum N (dotdot m n) f) (@sum N (dotdot (N.add n (NUMERAL (BIT1 0%N))) (N.add n p)) f)). +Axiom thm_SUM_OFFSET : forall p : N, forall f : N -> R, forall m : N, forall n : N, (@sum N (dotdot (N.add m p) (N.add n p)) f) = (@sum N (dotdot m n) (fun i : N => f (N.add i p))). +Axiom thm_SUM_OFFSET_0 : forall f : N -> R, forall m : N, forall n : N, (N.le m n) -> (@sum N (dotdot m n) f) = (@sum N (dotdot (NUMERAL 0%N) (N.sub n m)) (fun i : N => f (N.add i m))). +Axiom thm_SUM_CLAUSES_LEFT : forall f : N -> R, forall m : N, forall n : N, (N.le m n) -> (@sum N (dotdot m n) f) = (Rplus (f m) (@sum N (dotdot (N.add m (NUMERAL (BIT1 0%N))) n) f)). +Axiom thm_SUM_CLAUSES_RIGHT : forall f : N -> R, forall m : N, forall n : N, ((N.lt (NUMERAL 0%N) n) /\ (N.le m n)) -> (@sum N (dotdot m n) f) = (Rplus (@sum N (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f) (f n)). +Axiom thm_SUM_PAIR : forall f : N -> R, forall m : N, forall n : N, (@sum N (dotdot (N.mul (NUMERAL (BIT0 (BIT1 0%N))) m) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) n) (NUMERAL (BIT1 0%N)))) f) = (@sum N (dotdot m n) (fun i : N => Rplus (f (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i)) (f (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) i) (NUMERAL (BIT1 0%N)))))). +Axiom thm_SUM_REFLECT : forall x : N -> R, forall m : N, forall n : N, (@sum N (dotdot m n) x) = (@COND R (N.lt n m) (R_of_N (NUMERAL 0%N)) (@sum N (dotdot (NUMERAL 0%N) (N.sub n m)) (fun i : N => x (N.sub n i)))). +Axiom thm_REAL_OF_NUM_SUM_NUMSEG : forall f : N -> N, forall m : N, forall n : N, (R_of_N (@nsum N (dotdot m n) f)) = (@sum N (dotdot m n) (fun i : N => R_of_N (f i))). +Axiom thm_SUM_PARTIAL_SUC : forall f : N -> R, forall g : N -> R, forall m : N, forall n : N, (@sum N (dotdot m n) (fun k : N => Rmult (f k) (Rminus (g (N.add k (NUMERAL (BIT1 0%N)))) (g k)))) = (@COND R (N.le m n) (Rminus (Rminus (Rmult (f (N.add n (NUMERAL (BIT1 0%N)))) (g (N.add n (NUMERAL (BIT1 0%N))))) (Rmult (f m) (g m))) (@sum N (dotdot m n) (fun k : N => Rmult (g (N.add k (NUMERAL (BIT1 0%N)))) (Rminus (f (N.add k (NUMERAL (BIT1 0%N)))) (f k))))) (R_of_N (NUMERAL 0%N))). +Axiom thm_SUM_PARTIAL_PRE : forall f : N -> R, forall g : N -> R, forall m : N, forall n : N, (@sum N (dotdot m n) (fun k : N => Rmult (f k) (Rminus (g k) (g (N.sub k (NUMERAL (BIT1 0%N))))))) = (@COND R (N.le m n) (Rminus (Rminus (Rmult (f (N.add n (NUMERAL (BIT1 0%N)))) (g n)) (Rmult (f m) (g (N.sub m (NUMERAL (BIT1 0%N)))))) (@sum N (dotdot m n) (fun k : N => Rmult (g k) (Rminus (f (N.add k (NUMERAL (BIT1 0%N)))) (f k))))) (R_of_N (NUMERAL 0%N))). +Axiom thm_SUM_DIFFS : forall (f : N -> R), forall m : N, forall n : N, (@sum N (dotdot m n) (fun k : N => Rminus (f k) (f (N.add k (NUMERAL (BIT1 0%N)))))) = (@COND R (N.le m n) (Rminus (f m) (f (N.add n (NUMERAL (BIT1 0%N))))) (R_of_N (NUMERAL 0%N))). +Axiom thm_SUM_DIFFS_ALT : forall (f : N -> R), forall m : N, forall n : N, (@sum N (dotdot m n) (fun k : N => Rminus (f (N.add k (NUMERAL (BIT1 0%N)))) (f k))) = (@COND R (N.le m n) (Rminus (f (N.add n (NUMERAL (BIT1 0%N)))) (f m)) (R_of_N (NUMERAL 0%N))). +Axiom thm_SUM_COMBINE_R : forall f : N -> R, forall m : N, forall n : N, forall p : N, ((N.le m (N.add n (NUMERAL (BIT1 0%N)))) /\ (N.le n p)) -> (Rplus (@sum N (dotdot m n) f) (@sum N (dotdot (N.add n (NUMERAL (BIT1 0%N))) p) f)) = (@sum N (dotdot m p) f). +Axiom thm_SUM_COMBINE_L : forall f : N -> R, forall m : N, forall n : N, forall p : N, ((N.lt (NUMERAL 0%N) n) /\ ((N.le m n) /\ (N.le n (N.add p (NUMERAL (BIT1 0%N)))))) -> (Rplus (@sum N (dotdot m (N.sub n (NUMERAL (BIT1 0%N)))) f) (@sum N (dotdot n p) f)) = (@sum N (dotdot m p) f). +Axiom thm_REAL_SUB_POW : forall x : R, forall y : R, forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (Rminus (real_pow x n) (real_pow y n)) = (Rmult (Rminus x y) (@sum N (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N)))) (fun i : N => Rmult (real_pow x i) (real_pow y (N.sub (N.sub n (NUMERAL (BIT1 0%N))) i))))). +Axiom thm_REAL_SUB_POW_R1 : forall x : R, forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (Rminus (real_pow x n) (R_of_N (NUMERAL (BIT1 0%N)))) = (Rmult (Rminus x (R_of_N (NUMERAL (BIT1 0%N)))) (@sum N (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N)))) (fun i : N => real_pow x i))). +Axiom thm_REAL_SUB_POW_L1 : forall x : R, forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (Rminus (R_of_N (NUMERAL (BIT1 0%N))) (real_pow x n)) = (Rmult (Rminus (R_of_N (NUMERAL (BIT1 0%N))) x) (@sum N (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N)))) (fun i : N => real_pow x i))). +Axiom thm_REAL_SUB_POLYFUN : forall a : N -> R, forall x : R, forall y : R, forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (Rminus (@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (a i) (real_pow x i))) (@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (a i) (real_pow y i)))) = (Rmult (Rminus x y) (@sum N (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N)))) (fun j : N => Rmult (@sum N (dotdot (N.add j (NUMERAL (BIT1 0%N))) n) (fun i : N => Rmult (a i) (real_pow y (N.sub (N.sub i j) (NUMERAL (BIT1 0%N)))))) (real_pow x j)))). +Axiom thm_REAL_SUB_POLYFUN_ALT : forall a : N -> R, forall x : R, forall y : R, forall n : N, (N.le (NUMERAL (BIT1 0%N)) n) -> (Rminus (@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (a i) (real_pow x i))) (@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (a i) (real_pow y i)))) = (Rmult (Rminus x y) (@sum N (dotdot (NUMERAL 0%N) (N.sub n (NUMERAL (BIT1 0%N)))) (fun j : N => Rmult (@sum N (dotdot (NUMERAL 0%N) (N.sub (N.sub n j) (NUMERAL (BIT1 0%N)))) (fun k : N => Rmult (a (N.add j (N.add k (NUMERAL (BIT1 0%N))))) (real_pow y k))) (real_pow x j)))). +Axiom thm_REAL_POLYFUN_ROOTBOUND : forall n : N, forall c : N -> R, (~ (forall i : N, (@IN N i (dotdot (NUMERAL 0%N) n)) -> (c i) = (R_of_N (NUMERAL 0%N)))) -> (@FINITE R (@GSPEC R (fun GEN_PVAR_347 : R => exists x : R, @SETSPEC R GEN_PVAR_347 ((@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (c i) (real_pow x i))) = (R_of_N (NUMERAL 0%N))) x))) /\ (N.le (@CARD R (@GSPEC R (fun GEN_PVAR_348 : R => exists x : R, @SETSPEC R GEN_PVAR_348 ((@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (c i) (real_pow x i))) = (R_of_N (NUMERAL 0%N))) x))) n). +Axiom thm_REAL_POLYFUN_FINITE_ROOTS : forall n : N, forall c : N -> R, (@FINITE R (@GSPEC R (fun GEN_PVAR_350 : R => exists x : R, @SETSPEC R GEN_PVAR_350 ((@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (c i) (real_pow x i))) = (R_of_N (NUMERAL 0%N))) x))) = (exists i : N, (@IN N i (dotdot (NUMERAL 0%N) n)) /\ (~ ((c i) = (R_of_N (NUMERAL 0%N))))). +Axiom thm_REAL_POLYFUN_EQ_0 : forall n : N, forall c : N -> R, (forall x : R, (@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (c i) (real_pow x i))) = (R_of_N (NUMERAL 0%N))) = (forall i : N, (@IN N i (dotdot (NUMERAL 0%N) n)) -> (c i) = (R_of_N (NUMERAL 0%N))). +Axiom thm_REAL_POLYFUN_EQ_CONST : forall n : N, forall c : N -> R, forall k : R, (forall x : R, (@sum N (dotdot (NUMERAL 0%N) n) (fun i : N => Rmult (c i) (real_pow x i))) = k) = (((c (NUMERAL 0%N)) = k) /\ (forall i : N, (@IN N i (dotdot (NUMERAL (BIT1 0%N)) n)) -> (c i) = (R_of_N (NUMERAL 0%N)))). +Axiom thm_polynomial_function : forall p : R -> R, (polynomial_function p) = (exists m : N, exists c : N -> R, forall x : R, (p x) = (@sum N (dotdot (NUMERAL 0%N) m) (fun i : N => Rmult (c i) (real_pow x i)))). +Axiom thm_POLYNOMIAL_FUNCTION_CONST : forall c : R, polynomial_function (fun x : R => c). +Axiom thm_POLYNOMIAL_FUNCTION_ID : polynomial_function (fun x : R => x). +Axiom thm_POLYNOMIAL_FUNCTION_I : polynomial_function (@I R). +Axiom thm_POLYNOMIAL_FUNCTION_ADD : forall p : R -> R, forall q : R -> R, ((polynomial_function p) /\ (polynomial_function q)) -> polynomial_function (fun x : R => Rplus (p x) (q x)). +Axiom thm_POLYNOMIAL_FUNCTION_LMUL : forall p : R -> R, forall c : R, (polynomial_function p) -> polynomial_function (fun x : R => Rmult c (p x)). +Axiom thm_POLYNOMIAL_FUNCTION_RMUL : forall p : R -> R, forall c : R, (polynomial_function p) -> polynomial_function (fun x : R => Rmult (p x) c). +Axiom thm_POLYNOMIAL_FUNCTION_NEG : forall p : R -> R, (polynomial_function (fun x : R => Ropp (p x))) = (polynomial_function p). +Axiom thm_POLYNOMIAL_FUNCTION_SUB : forall p : R -> R, forall q : R -> R, ((polynomial_function p) /\ (polynomial_function q)) -> polynomial_function (fun x : R => Rminus (p x) (q x)). +Axiom thm_POLYNOMIAL_FUNCTION_MUL : forall p : R -> R, forall q : R -> R, ((polynomial_function p) /\ (polynomial_function q)) -> polynomial_function (fun x : R => Rmult (p x) (q x)). +Axiom thm_POLYNOMIAL_FUNCTION_SUM : forall {A : Type'}, forall s : A -> Prop, forall p : R -> A -> R, ((@FINITE A s) /\ (forall i : A, (@IN A i s) -> polynomial_function (fun x : R => p x i))) -> polynomial_function (fun x : R => @sum A s (p x)). +Axiom thm_POLYNOMIAL_FUNCTION_POW : forall p : R -> R, forall n : N, (polynomial_function p) -> polynomial_function (fun x : R => real_pow (p x) n). +Axiom thm_POLYNOMIAL_FUNCTION_INDUCT : forall P : (R -> R) -> Prop, ((P (fun x : R => x)) /\ ((forall c : R, P (fun x : R => c)) /\ ((forall p : R -> R, forall q : R -> R, ((P p) /\ (P q)) -> P (fun x : R => Rplus (p x) (q x))) /\ (forall p : R -> R, forall q : R -> R, ((P p) /\ (P q)) -> P (fun x : R => Rmult (p x) (q x)))))) -> forall p : R -> R, (polynomial_function p) -> P p. +Axiom thm_POLYNOMIAL_FUNCTION_o : forall p : R -> R, forall q : R -> R, ((polynomial_function p) /\ (polynomial_function q)) -> polynomial_function (@o R R R p q). +Axiom thm_POLYNOMIAL_FUNCTION_FINITE_ROOTS : forall p : R -> R, forall a : R, (polynomial_function p) -> (@FINITE R (@GSPEC R (fun GEN_PVAR_353 : R => exists x : R, @SETSPEC R GEN_PVAR_353 ((p x) = a) x))) = (~ (forall x : R, (p x) = a)). +Axiom thm_dimindex : forall {A : Type'}, forall s : A -> Prop, (@dimindex A s) = (@COND N (@FINITE A (@UNIV A)) (@CARD A (@UNIV A)) (NUMERAL (BIT1 0%N))). +Axiom thm_DIMINDEX_NONZERO : forall {A : Type'}, forall s : A -> Prop, ~ ((@dimindex A s) = (NUMERAL 0%N)). +Axiom thm_DIMINDEX_GE_1 : forall {A : Type'}, forall s : A -> Prop, N.le (NUMERAL (BIT1 0%N)) (@dimindex A s). +Axiom thm_DIMINDEX_UNIV : forall {A : Type'}, forall s : A -> Prop, (@dimindex A s) = (@dimindex A (@UNIV A)). +Axiom thm_DIMINDEX_UNIQUE : forall {A : Type'} (n : N), (@HAS_SIZE A (@UNIV A) n) -> (@dimindex A (@UNIV A)) = n. +Axiom thm_UNIV_HAS_SIZE_DIMINDEX : forall {N' : Type'}, (@HAS_SIZE N' (@UNIV N') (@dimindex N' (@UNIV N'))) = (@FINITE N' (@UNIV N')). +Axiom thm_HAS_SIZE_1 : @HAS_SIZE unit (@UNIV unit) (NUMERAL (BIT1 0%N)). +Axiom thm_NUMSEG_LT_DIMINDEX : forall {N' : Type'}, (@GSPEC N (fun GEN_PVAR_354 : N => exists i : N, @SETSPEC N GEN_PVAR_354 (N.lt i (@dimindex N' (@UNIV N'))) i)) = (dotdot (NUMERAL 0%N) (N.sub (@dimindex N' (@UNIV N')) (NUMERAL (BIT1 0%N)))). +Axiom thm_FINITE_IMAGE_IMAGE : forall {A : Type'}, (@UNIV (finite_image A)) = (@IMAGE N (finite_image A) (@finite_index A) (dotdot (NUMERAL (BIT1 0%N)) (@dimindex A (@UNIV A)))). +Axiom thm_HAS_SIZE_FINITE_IMAGE : forall {A : Type'}, forall s : A -> Prop, @HAS_SIZE (finite_image A) (@UNIV (finite_image A)) (@dimindex A s). +Axiom thm_CARD_FINITE_IMAGE : forall {A : Type'}, forall s : A -> Prop, (@CARD (finite_image A) (@UNIV (finite_image A))) = (@dimindex A s). +Axiom thm_FINITE_FINITE_IMAGE : forall {A : Type'}, @FINITE (finite_image A) (@UNIV (finite_image A)). +Axiom thm_DIMINDEX_FINITE_IMAGE : forall {A : Type'}, forall s : (finite_image A) -> Prop, forall t : A -> Prop, (@dimindex (finite_image A) s) = (@dimindex A t). +Axiom thm_FINITE_INDEX_WORKS : forall {A : Type'}, forall i : finite_image A, @ex1 N (fun n : N => (N.le (NUMERAL (BIT1 0%N)) n) /\ ((N.le n (@dimindex A (@UNIV A))) /\ ((@finite_index A n) = i))). +Axiom thm_FINITE_INDEX_INJ : forall {A : Type'}, forall i : N, forall j : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ ((N.le i (@dimindex A (@UNIV A))) /\ ((N.le (NUMERAL (BIT1 0%N)) j) /\ (N.le j (@dimindex A (@UNIV A)))))) -> ((@finite_index A i) = (@finite_index A j)) = (i = j). +Axiom thm_FORALL_FINITE_INDEX : forall {N' : Type'} (P : (finite_image N') -> Prop), (forall k : finite_image N', P k) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> P (@finite_index N' i)). +Axiom thm_finite_index : forall {A N' : Type'}, forall x : cart A N', forall i : N, (@dollar A N' x i) = (@dest_cart A N' x (@finite_index N' i)). +Axiom thm_CART_EQ : forall {A B : Type'}, forall x : cart A B, forall y : cart A B, (x = y) = (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex B (@UNIV B)))) -> (@dollar A B x i) = (@dollar A B y i)). +Axiom thm_lambda : forall {A B : Type'}, forall g : N -> A, (@lambda A B g) = (@ε (cart A B) (fun f : cart A B => forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex B (@UNIV B)))) -> (@dollar A B f i) = (g i))). +Axiom thm_LAMBDA_BETA : forall {A B : Type'} (g : N -> A), forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex B (@UNIV B)))) -> (@dollar A B (@lambda A B g) i) = (g i). +Axiom thm_LAMBDA_UNIQUE : forall {A B : Type'}, forall f : cart A B, forall g : N -> A, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex B (@UNIV B)))) -> (@dollar A B f i) = (g i)) = ((@lambda A B g) = f). +Axiom thm_LAMBDA_ETA : forall {A B : Type'}, forall g : cart A B, (@lambda A B (fun i : N => @dollar A B g i)) = g. +Axiom thm_FINITE_INDEX_INRANGE : forall {A N' : Type'}, forall i : N, exists k : N, (N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ (forall x : cart A N', (@dollar A N' x i) = (@dollar A N' x k))). +Axiom thm_FINITE_INDEX_INRANGE_2 : forall {A B N' : Type'}, forall i : N, exists k : N, (N.le (NUMERAL (BIT1 0%N)) k) /\ ((N.le k (@dimindex N' (@UNIV N'))) /\ ((forall x : cart A N', (@dollar A N' x i) = (@dollar A N' x k)) /\ (forall y : cart B N', (@dollar B N' y i) = (@dollar B N' y k)))). +Axiom thm_CART_EQ_FULL : forall {A N' : Type'}, forall x : cart A N', forall y : cart A N', (x = y) = (forall i : N, (@dollar A N' x i) = (@dollar A N' y i)). +Axiom thm_pastecart : forall {A M N' : Type'}, forall f : cart A M, forall g : cart A N', (@pastecart A M N' f g) = (@lambda A (finite_sum M N') (fun i : N => @COND A (N.le i (@dimindex M (@UNIV M))) (@dollar A M f i) (@dollar A N' g (N.sub i (@dimindex M (@UNIV M)))))). +Axiom thm_fstcart : forall {A M N' : Type'}, forall f : cart A (finite_sum M N'), (@fstcart A M N' f) = (@lambda A M (fun i : N => @dollar A (finite_sum M N') f i)). +Axiom thm_sndcart : forall {A M N' : Type'}, forall f : cart A (finite_sum M N'), (@sndcart A M N' f) = (@lambda A N' (fun i : N => @dollar A (finite_sum M N') f (N.add i (@dimindex M (@UNIV M))))). +Axiom thm_FINITE_SUM_IMAGE : forall {A B : Type'}, (@UNIV (finite_sum A B)) = (@IMAGE N (finite_sum A B) (@mk_finite_sum A B) (dotdot (NUMERAL (BIT1 0%N)) (N.add (@dimindex A (@UNIV A)) (@dimindex B (@UNIV B))))). +Axiom thm_DIMINDEX_HAS_SIZE_FINITE_SUM : forall {M N' : Type'}, @HAS_SIZE (finite_sum M N') (@UNIV (finite_sum M N')) (N.add (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))). +Axiom thm_DIMINDEX_FINITE_SUM : forall {M N' : Type'}, (@dimindex (finite_sum M N') (@UNIV (finite_sum M N'))) = (N.add (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))). +Axiom thm_FSTCART_PASTECART : forall {A M N' : Type'}, forall x : cart A M, forall y : cart A N', (@fstcart A M N' (@pastecart A M N' x y)) = x. +Axiom thm_SNDCART_PASTECART : forall {A M N' : Type'}, forall x : cart A M, forall y : cart A N', (@sndcart A M N' (@pastecart A M N' x y)) = y. +Axiom thm_PASTECART_FST_SND : forall {A M N' : Type'}, forall z : cart A (finite_sum M N'), (@pastecart A M N' (@fstcart A M N' z) (@sndcart A M N' z)) = z. +Axiom thm_PASTECART_EQ : forall {A M N' : Type'}, forall x : cart A (finite_sum M N'), forall y : cart A (finite_sum M N'), (x = y) = (((@fstcart A M N' x) = (@fstcart A M N' y)) /\ ((@sndcart A M N' x) = (@sndcart A M N' y))). +Axiom thm_FORALL_PASTECART : forall {A M N' : Type'} (P : (cart A (finite_sum M N')) -> Prop), (forall p : cart A (finite_sum M N'), P p) = (forall x : cart A M, forall y : cart A N', P (@pastecart A M N' x y)). +Axiom thm_EXISTS_PASTECART : forall {A M N' : Type'} (P : (cart A (finite_sum M N')) -> Prop), (exists p : cart A (finite_sum M N'), P p) = (exists x : cart A M, exists y : cart A N', P (@pastecart A M N' x y)). +Axiom thm_PASTECART_INJ : forall {A M N' : Type'}, forall x : cart A M, forall y : cart A N', forall w : cart A M, forall z : cart A N', ((@pastecart A M N' x y) = (@pastecart A M N' w z)) = ((x = w) /\ (y = z)). +Axiom thm_FSTCART_COMPONENT : forall {A M N' : Type'}, forall x : cart A (finite_sum M N'), forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> (@dollar A M (@fstcart A M N' x) i) = (@dollar A (finite_sum M N') x i). +Axiom thm_SNDCART_COMPONENT : forall {A M N' : Type'}, forall x : cart A (finite_sum M N'), forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> (@dollar A N' (@sndcart A M N' x) i) = (@dollar A (finite_sum M N') x (N.add i (@dimindex M (@UNIV M)))). +Axiom thm_PASTECART_COMPONENT : forall {A M N' : Type'}, (forall u : cart A M, forall v : cart A N', forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex M (@UNIV M)))) -> (@dollar A (finite_sum M N') (@pastecart A M N' u v) i) = (@dollar A M u i)) /\ (forall u : cart A M, forall v : cart A N', forall i : N, ((N.le (N.add (@dimindex M (@UNIV M)) (NUMERAL (BIT1 0%N))) i) /\ (N.le i (N.add (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))))) -> (@dollar A (finite_sum M N') (@pastecart A M N' u v) i) = (@dollar A N' v (N.sub i (@dimindex M (@UNIV M))))). +Axiom thm_FINITE_DIFF_IMAGE : forall {A B : Type'}, (@UNIV (finite_diff A B)) = (@IMAGE N (finite_diff A B) (@mk_finite_diff A B) (dotdot (NUMERAL (BIT1 0%N)) (@COND N (N.lt (@dimindex B (@UNIV B)) (@dimindex A (@UNIV A))) (N.sub (@dimindex A (@UNIV A)) (@dimindex B (@UNIV B))) (NUMERAL (BIT1 0%N))))). +Axiom thm_DIMINDEX_HAS_SIZE_FINITE_DIFF : forall {M N' : Type'}, @HAS_SIZE (finite_diff M N') (@UNIV (finite_diff M N')) (@COND N (N.lt (@dimindex N' (@UNIV N')) (@dimindex M (@UNIV M))) (N.sub (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) (NUMERAL (BIT1 0%N))). +Axiom thm_DIMINDEX_FINITE_DIFF : forall {M N' : Type'}, (@dimindex (finite_diff M N') (@UNIV (finite_diff M N'))) = (@COND N (N.lt (@dimindex N' (@UNIV N')) (@dimindex M (@UNIV M))) (N.sub (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))) (NUMERAL (BIT1 0%N))). +Axiom thm_FINITE_PROD_IMAGE : forall {A B : Type'}, (@UNIV (finite_prod A B)) = (@IMAGE N (finite_prod A B) (@mk_finite_prod A B) (dotdot (NUMERAL (BIT1 0%N)) (N.mul (@dimindex A (@UNIV A)) (@dimindex B (@UNIV B))))). +Axiom thm_DIMINDEX_HAS_SIZE_FINITE_PROD : forall {M N' : Type'}, @HAS_SIZE (finite_prod M N') (@UNIV (finite_prod M N')) (N.mul (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))). +Axiom thm_DIMINDEX_FINITE_PROD : forall {M N' : Type'}, (@dimindex (finite_prod M N') (@UNIV (finite_prod M N'))) = (N.mul (@dimindex M (@UNIV M)) (@dimindex N' (@UNIV N'))). +Axiom thm_tybit0_INDUCT : forall {A : Type'}, forall P : (tybit0 A) -> Prop, (forall a : finite_sum A A, P (@mktybit0 A a)) -> forall x : tybit0 A, P x. +Axiom thm_tybit0_RECURSION : forall {A Z' : Type'}, forall f : (finite_sum A A) -> Z', exists fn : (tybit0 A) -> Z', forall a : finite_sum A A, (fn (@mktybit0 A a)) = (f a). +Axiom thm_tybit1_INDUCT : forall {A : Type'}, forall P : (tybit1 A) -> Prop, (forall a : finite_sum (finite_sum A A) unit, P (@mktybit1 A a)) -> forall x : tybit1 A, P x. +Axiom thm_tybit1_RECURSION : forall {A Z' : Type'}, forall f : (finite_sum (finite_sum A A) unit) -> Z', exists fn : (tybit1 A) -> Z', forall a : finite_sum (finite_sum A A) unit, (fn (@mktybit1 A a)) = (f a). +Axiom thm_HAS_SIZE_TYBIT0 : forall {A : Type'}, @HAS_SIZE (tybit0 A) (@UNIV (tybit0 A)) (N.mul (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex A (@UNIV A))). +Axiom thm_HAS_SIZE_TYBIT1 : forall {A : Type'}, @HAS_SIZE (tybit1 A) (@UNIV (tybit1 A)) (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex A (@UNIV A))) (NUMERAL (BIT1 0%N))). +Axiom thm_DIMINDEX_TYBIT0 : forall {A : Type'}, (@dimindex (tybit0 A) (@UNIV (tybit0 A))) = (N.mul (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex A (@UNIV A))). +Axiom thm_DIMINDEX_TYBIT1 : forall {A : Type'}, (@dimindex (tybit1 A) (@UNIV (tybit1 A))) = (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex A (@UNIV A))) (NUMERAL (BIT1 0%N))). +Axiom thm_DIMINDEX_CLAUSES : forall {A : Type'}, ((@dimindex unit (@UNIV unit)) = (NUMERAL (BIT1 0%N))) /\ (((@dimindex (tybit0 A) (@UNIV (tybit0 A))) = (N.mul (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex A (@UNIV A)))) /\ ((@dimindex (tybit1 A) (@UNIV (tybit1 A))) = (N.add (N.mul (NUMERAL (BIT0 (BIT1 0%N))) (@dimindex A (@UNIV A))) (NUMERAL (BIT1 0%N))))). +Axiom thm_FINITE_1 : @FINITE unit (@UNIV unit). +Axiom thm_FINITE_TYBIT0 : forall {A : Type'}, @FINITE (tybit0 A) (@UNIV (tybit0 A)). +Axiom thm_FINITE_TYBIT1 : forall {A : Type'}, @FINITE (tybit1 A) (@UNIV (tybit1 A)). +Axiom thm_FINITE_CLAUSES : forall {A : Type'}, (@FINITE unit (@UNIV unit)) /\ ((@FINITE (tybit0 A) (@UNIV (tybit0 A))) /\ (@FINITE (tybit1 A) (@UNIV (tybit1 A)))). +Axiom thm_DIMINDEX_2 : (@dimindex (tybit0 unit) (@UNIV (tybit0 unit))) = (NUMERAL (BIT0 (BIT1 0%N))). +Axiom thm_DIMINDEX_3 : (@dimindex (tybit1 unit) (@UNIV (tybit1 unit))) = (NUMERAL (BIT1 (BIT1 0%N))). +Axiom thm_DIMINDEX_4 : (@dimindex (tybit0 (tybit0 unit)) (@UNIV (tybit0 (tybit0 unit)))) = (NUMERAL (BIT0 (BIT0 (BIT1 0%N)))). +Axiom thm_FINITE_CART : forall {A N' : Type'}, forall P : N -> A -> Prop, (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> @FINITE A (@GSPEC A (fun GEN_PVAR_360 : A => exists x : A, @SETSPEC A GEN_PVAR_360 (P i x) x))) -> @FINITE (cart A N') (@GSPEC (cart A N') (fun GEN_PVAR_361 : cart A N' => exists v : cart A N', @SETSPEC (cart A N') GEN_PVAR_361 (forall i : N, ((N.le (NUMERAL (BIT1 0%N)) i) /\ (N.le i (@dimindex N' (@UNIV N')))) -> P i (@dollar A N' v i)) v)). +Axiom thm_HAS_SIZE_CART_UNIV : forall {A N' : Type'}, forall m : N, (@HAS_SIZE A (@UNIV A) m) -> @HAS_SIZE (cart A N') (@UNIV (cart A N')) (N.pow m (@dimindex N' (@UNIV N'))). +Axiom thm_CARD_CART_UNIV : forall {A N' : Type'}, (@FINITE A (@UNIV A)) -> (@CARD (cart A N') (@UNIV (cart A N'))) = (N.pow (@CARD A (@UNIV A)) (@dimindex N' (@UNIV N'))). +Axiom thm_FINITE_CART_UNIV : forall {A N' : Type'}, (@FINITE A (@UNIV A)) -> @FINITE (cart A N') (@UNIV (cart A N')). +Axiom thm_vector : forall {A N' : Type'}, forall l : list A, (@vector A N' l) = (@lambda A N' (fun i : N => @EL A (N.sub i (NUMERAL (BIT1 0%N))) l)). +Axiom thm_IN_ELIM_PASTECART_THM : forall {A M N' : Type'}, forall P : (cart A M) -> (cart A N') -> Prop, forall a : cart A M, forall b : cart A N', (@IN (cart A (finite_sum M N')) (@pastecart A M N' a b) (@GSPEC (cart A (finite_sum M N')) (fun GEN_PVAR_362 : cart A (finite_sum M N') => exists x : cart A M, exists y : cart A N', @SETSPEC (cart A (finite_sum M N')) GEN_PVAR_362 (P x y) (@pastecart A M N' x y)))) = (P a b). +Axiom thm_PCROSS : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, (@PCROSS A M N' s t) = (@GSPEC (cart A (finite_sum M N')) (fun GEN_PVAR_363 : cart A (finite_sum M N') => exists x : cart A M, exists y : cart A N', @SETSPEC (cart A (finite_sum M N')) GEN_PVAR_363 ((@IN (cart A M) x s) /\ (@IN (cart A N') y t)) (@pastecart A M N' x y))). +Axiom thm_FORALL_IN_PCROSS : forall {A M N' : Type'} (s : (cart A M) -> Prop) (t : (cart A N') -> Prop) (P : (cart A (finite_sum M N')) -> Prop), (forall z : cart A (finite_sum M N'), (@IN (cart A (finite_sum M N')) z (@PCROSS A M N' s t)) -> P z) = (forall x : cart A M, forall y : cart A N', ((@IN (cart A M) x s) /\ (@IN (cart A N') y t)) -> P (@pastecart A M N' x y)). +Axiom thm_EXISTS_IN_PCROSS : forall {A M N' : Type'} (s : (cart A M) -> Prop) (t : (cart A N') -> Prop) (P : (cart A (finite_sum M N')) -> Prop), (exists z : cart A (finite_sum M N'), (@IN (cart A (finite_sum M N')) z (@PCROSS A M N' s t)) /\ (P z)) = (exists x : cart A M, exists y : cart A N', (@IN (cart A M) x s) /\ ((@IN (cart A N') y t) /\ (P (@pastecart A M N' x y)))). +Axiom thm_PASTECART_IN_PCROSS : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, forall x : cart A M, forall y : cart A N', (@IN (cart A (finite_sum M N')) (@pastecart A M N' x y) (@PCROSS A M N' s t)) = ((@IN (cart A M) x s) /\ (@IN (cart A N') y t)). +Axiom thm_PCROSS_EQ_EMPTY : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, ((@PCROSS A M N' s t) = (@EMPTY (cart A (finite_sum M N')))) = ((s = (@EMPTY (cart A M))) \/ (t = (@EMPTY (cart A N')))). +Axiom thm_PCROSS_EMPTY : forall {A M N' : Type'}, (forall s : (cart A M) -> Prop, (@PCROSS A M N' s (@EMPTY (cart A N'))) = (@EMPTY (cart A (finite_sum M N')))) /\ (forall t : (cart A N') -> Prop, (@PCROSS A M N' (@EMPTY (cart A M)) t) = (@EMPTY (cart A (finite_sum M N')))). +Axiom thm_PCROSS_SING : forall {A M N' : Type'}, forall x : cart A M, forall y : cart A N', (@PCROSS A M N' (@INSERT (cart A M) x (@EMPTY (cart A M))) (@INSERT (cart A N') y (@EMPTY (cart A N')))) = (@INSERT (cart A (finite_sum M N')) (@pastecart A M N' x y) (@EMPTY (cart A (finite_sum M N')))). +Axiom thm_SUBSET_PCROSS : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, forall s' : (cart A M) -> Prop, forall t' : (cart A N') -> Prop, (@SUBSET (cart A (finite_sum M N')) (@PCROSS A M N' s t) (@PCROSS A M N' s' t')) = ((s = (@EMPTY (cart A M))) \/ ((t = (@EMPTY (cart A N'))) \/ ((@SUBSET (cart A M) s s') /\ (@SUBSET (cart A N') t t')))). +Axiom thm_PCROSS_MONO : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, forall s' : (cart A M) -> Prop, forall t' : (cart A N') -> Prop, ((@SUBSET (cart A M) s s') /\ (@SUBSET (cart A N') t t')) -> @SUBSET (cart A (finite_sum M N')) (@PCROSS A M N' s t) (@PCROSS A M N' s' t'). +Axiom thm_PCROSS_EQ : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall s' : (cart R M) -> Prop, forall t : (cart R N') -> Prop, forall t' : (cart R N') -> Prop, ((@PCROSS R M N' s t) = (@PCROSS R M N' s' t')) = ((((s = (@EMPTY (cart R M))) \/ (t = (@EMPTY (cart R N')))) /\ ((s' = (@EMPTY (cart R M))) \/ (t' = (@EMPTY (cart R N'))))) \/ ((s = s') /\ (t = t'))). +Axiom thm_UNIV_PCROSS_UNIV : forall {A M N' : Type'}, (@PCROSS A M N' (@UNIV (cart A M)) (@UNIV (cart A N'))) = (@UNIV (cart A (finite_sum M N'))). +Axiom thm_HAS_SIZE_PCROSS : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, forall m : N, forall n : N, ((@HAS_SIZE (cart A M) s m) /\ (@HAS_SIZE (cart A N') t n)) -> @HAS_SIZE (cart A (finite_sum M N')) (@PCROSS A M N' s t) (N.mul m n). +Axiom thm_FINITE_PCROSS : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, ((@FINITE (cart A M) s) /\ (@FINITE (cart A N') t)) -> @FINITE (cart A (finite_sum M N')) (@PCROSS A M N' s t). +Axiom thm_FINITE_PCROSS_EQ : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, (@FINITE (cart A (finite_sum M N')) (@PCROSS A M N' s t)) = ((s = (@EMPTY (cart A M))) \/ ((t = (@EMPTY (cart A N'))) \/ ((@FINITE (cart A M) s) /\ (@FINITE (cart A N') t)))). +Axiom thm_IMAGE_FSTCART_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@IMAGE (cart R (finite_sum M N')) (cart R M) (@fstcart R M N') (@PCROSS R M N' s t)) = (@COND ((cart R M) -> Prop) (t = (@EMPTY (cart R N'))) (@EMPTY (cart R M)) s). +Axiom thm_IMAGE_SNDCART_PCROSS : forall {M N' : Type'}, forall s : (cart R M) -> Prop, forall t : (cart R N') -> Prop, (@IMAGE (cart R (finite_sum M N')) (cart R N') (@sndcart R M N') (@PCROSS R M N' s t)) = (@COND ((cart R N') -> Prop) (s = (@EMPTY (cart R M))) (@EMPTY (cart R N')) t). +Axiom thm_PCROSS_INTER : forall {A M N' : Type'}, (forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, forall u : (cart A N') -> Prop, (@PCROSS A M N' s (@INTER (cart A N') t u)) = (@INTER (cart A (finite_sum M N')) (@PCROSS A M N' s t) (@PCROSS A M N' s u))) /\ (forall s : (cart A M) -> Prop, forall t : (cart A M) -> Prop, forall u : (cart A N') -> Prop, (@PCROSS A M N' (@INTER (cart A M) s t) u) = (@INTER (cart A (finite_sum M N')) (@PCROSS A M N' s u) (@PCROSS A M N' t u))). +Axiom thm_PCROSS_UNION : forall {A M N' : Type'}, (forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, forall u : (cart A N') -> Prop, (@PCROSS A M N' s (@UNION (cart A N') t u)) = (@UNION (cart A (finite_sum M N')) (@PCROSS A M N' s t) (@PCROSS A M N' s u))) /\ (forall s : (cart A M) -> Prop, forall t : (cart A M) -> Prop, forall u : (cart A N') -> Prop, (@PCROSS A M N' (@UNION (cart A M) s t) u) = (@UNION (cart A (finite_sum M N')) (@PCROSS A M N' s u) (@PCROSS A M N' t u))). +Axiom thm_PCROSS_DIFF : forall {A M N' : Type'}, (forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, forall u : (cart A N') -> Prop, (@PCROSS A M N' s (@DIFF (cart A N') t u)) = (@DIFF (cart A (finite_sum M N')) (@PCROSS A M N' s t) (@PCROSS A M N' s u))) /\ (forall s : (cart A M) -> Prop, forall t : (cart A M) -> Prop, forall u : (cart A N') -> Prop, (@PCROSS A M N' (@DIFF (cart A M) s t) u) = (@DIFF (cart A (finite_sum M N')) (@PCROSS A M N' s u) (@PCROSS A M N' t u))). +Axiom thm_INTER_PCROSS : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall s' : (cart A M) -> Prop, forall t : (cart A N') -> Prop, forall t' : (cart A N') -> Prop, (@INTER (cart A (finite_sum M N')) (@PCROSS A M N' s t) (@PCROSS A M N' s' t')) = (@PCROSS A M N' (@INTER (cart A M) s s') (@INTER (cart A N') t t')). +Axiom thm_PCROSS_UNIONS : forall {A M N' : Type'}, (forall s : (cart A M) -> Prop, forall f : ((cart A N') -> Prop) -> Prop, (@PCROSS A M N' s (@UNIONS (cart A N') f)) = (@UNIONS (cart A (finite_sum M N')) (@GSPEC ((cart A (finite_sum M N')) -> Prop) (fun GEN_PVAR_365 : (cart A (finite_sum M N')) -> Prop => exists t : (cart A N') -> Prop, @SETSPEC ((cart A (finite_sum M N')) -> Prop) GEN_PVAR_365 (@IN ((cart A N') -> Prop) t f) (@PCROSS A M N' s t))))) /\ (forall f : ((cart A M) -> Prop) -> Prop, forall t : (cart A N') -> Prop, (@PCROSS A M N' (@UNIONS (cart A M) f) t) = (@UNIONS (cart A (finite_sum M N')) (@GSPEC ((cart A (finite_sum M N')) -> Prop) (fun GEN_PVAR_366 : (cart A (finite_sum M N')) -> Prop => exists s : (cart A M) -> Prop, @SETSPEC ((cart A (finite_sum M N')) -> Prop) GEN_PVAR_366 (@IN ((cart A M) -> Prop) s f) (@PCROSS A M N' s t))))). +Axiom thm_PCROSS_UNIONS_UNIONS : forall {A M N' : Type'}, forall f : ((cart A M) -> Prop) -> Prop, forall g : ((cart A N') -> Prop) -> Prop, (@PCROSS A M N' (@UNIONS (cart A M) f) (@UNIONS (cart A N') g)) = (@UNIONS (cart A (finite_sum M N')) (@GSPEC ((cart A (finite_sum M N')) -> Prop) (fun GEN_PVAR_364 : (cart A (finite_sum M N')) -> Prop => exists s : (cart A M) -> Prop, exists t : (cart A N') -> Prop, @SETSPEC ((cart A (finite_sum M N')) -> Prop) GEN_PVAR_364 ((@IN ((cart A M) -> Prop) s f) /\ (@IN ((cart A N') -> Prop) t g)) (@PCROSS A M N' s t)))). +Axiom thm_PCROSS_INTERS : forall {A M N' : Type'}, (forall s : (cart A M) -> Prop, forall f : ((cart A N') -> Prop) -> Prop, (@PCROSS A M N' s (@INTERS (cart A N') f)) = (@COND ((cart A (finite_sum M N')) -> Prop) (f = (@EMPTY ((cart A N') -> Prop))) (@PCROSS A M N' s (@UNIV (cart A N'))) (@INTERS (cart A (finite_sum M N')) (@GSPEC ((cart A (finite_sum M N')) -> Prop) (fun GEN_PVAR_370 : (cart A (finite_sum M N')) -> Prop => exists t : (cart A N') -> Prop, @SETSPEC ((cart A (finite_sum M N')) -> Prop) GEN_PVAR_370 (@IN ((cart A N') -> Prop) t f) (@PCROSS A M N' s t)))))) /\ (forall f : ((cart A M) -> Prop) -> Prop, forall t : (cart A N') -> Prop, (@PCROSS A M N' (@INTERS (cart A M) f) t) = (@COND ((cart A (finite_sum M N')) -> Prop) (f = (@EMPTY ((cart A M) -> Prop))) (@PCROSS A M N' (@UNIV (cart A M)) t) (@INTERS (cart A (finite_sum M N')) (@GSPEC ((cart A (finite_sum M N')) -> Prop) (fun GEN_PVAR_371 : (cart A (finite_sum M N')) -> Prop => exists s : (cart A M) -> Prop, @SETSPEC ((cart A (finite_sum M N')) -> Prop) GEN_PVAR_371 (@IN ((cart A M) -> Prop) s f) (@PCROSS A M N' s t)))))). +Axiom thm_PCROSS_INTERS_INTERS : forall {A M N' : Type'}, forall f : ((cart A M) -> Prop) -> Prop, forall g : ((cart A N') -> Prop) -> Prop, (@PCROSS A M N' (@INTERS (cart A M) f) (@INTERS (cart A N') g)) = (@COND ((cart A (finite_sum M N')) -> Prop) (f = (@EMPTY ((cart A M) -> Prop))) (@INTERS (cart A (finite_sum M N')) (@GSPEC ((cart A (finite_sum M N')) -> Prop) (fun GEN_PVAR_367 : (cart A (finite_sum M N')) -> Prop => exists t : (cart A N') -> Prop, @SETSPEC ((cart A (finite_sum M N')) -> Prop) GEN_PVAR_367 (@IN ((cart A N') -> Prop) t g) (@PCROSS A M N' (@UNIV (cart A M)) t)))) (@COND ((cart A (finite_sum M N')) -> Prop) (g = (@EMPTY ((cart A N') -> Prop))) (@INTERS (cart A (finite_sum M N')) (@GSPEC ((cart A (finite_sum M N')) -> Prop) (fun GEN_PVAR_368 : (cart A (finite_sum M N')) -> Prop => exists s : (cart A M) -> Prop, @SETSPEC ((cart A (finite_sum M N')) -> Prop) GEN_PVAR_368 (@IN ((cart A M) -> Prop) s f) (@PCROSS A M N' s (@UNIV (cart A N')))))) (@INTERS (cart A (finite_sum M N')) (@GSPEC ((cart A (finite_sum M N')) -> Prop) (fun GEN_PVAR_369 : (cart A (finite_sum M N')) -> Prop => exists s : (cart A M) -> Prop, exists t : (cart A N') -> Prop, @SETSPEC ((cart A (finite_sum M N')) -> Prop) GEN_PVAR_369 ((@IN ((cart A M) -> Prop) s f) /\ (@IN ((cart A N') -> Prop) t g)) (@PCROSS A M N' s t)))))). +Axiom thm_DISJOINT_PCROSS : forall {A M N' : Type'}, forall s : (cart A M) -> Prop, forall t : (cart A N') -> Prop, forall s' : (cart A M) -> Prop, forall t' : (cart A N') -> Prop, (@DISJOINT (cart A (finite_sum M N')) (@PCROSS A M N' s t) (@PCROSS A M N' s' t')) = ((@DISJOINT (cart A M) s s') \/ (@DISJOINT (cart A N') t t')). +Axiom thm_CASEWISE_DEF : forall {_137714 _137750 _137754 _137755 : Type'} (h : prod (_137750 -> _137754) (_137755 -> _137750 -> _137714)) (t : list (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) (f : _137755) (x : _137754), ((@CASEWISE _137714 _137750 _137754 _137755 (@nil (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714))) f x) = (@ε _137714 (fun y : _137714 => True))) /\ ((@CASEWISE _137714 _137750 _137754 _137755 (@cons (prod (_137750 -> _137754) (_137755 -> _137750 -> _137714)) h t) f x) = (@COND _137714 (exists y : _137750, (@fst (_137750 -> _137754) (_137755 -> _137750 -> _137714) h y) = x) (@snd (_137750 -> _137754) (_137755 -> _137750 -> _137714) h f (@ε _137750 (fun y : _137750 => (@fst (_137750 -> _137754) (_137755 -> _137750 -> _137714) h y) = x))) (@CASEWISE _137714 _137750 _137754 _137755 t f x))). +Axiom thm_CASEWISE : forall {_137766 _137774 _137775 _137814 _137815 _137817 : Type'} (t : _137815 -> _137817 -> _137775) (s : _137817 -> _137814) (clauses : list (prod (_137817 -> _137814) (_137815 -> _137817 -> _137775))) (f : _137815) (x : _137814), ((@CASEWISE _137774 _137766 _137814 _137815 (@nil (prod (_137766 -> _137814) (_137815 -> _137766 -> _137774))) f x) = (@ε _137774 (fun y : _137774 => True))) /\ ((@CASEWISE _137775 _137817 _137814 _137815 (@cons (prod (_137817 -> _137814) (_137815 -> _137817 -> _137775)) (@pair (_137817 -> _137814) (_137815 -> _137817 -> _137775) s t) clauses) f x) = (@COND _137775 (exists y : _137817, (s y) = x) (t f (@ε _137817 (fun y : _137817 => (s y) = x))) (@CASEWISE _137775 _137817 _137814 _137815 clauses f x))). +Axiom thm_CASEWISE_CASES : forall {_137906 _137907 _137909 _137916 : Type'}, forall clauses : list (prod (_137909 -> _137906) (_137907 -> _137909 -> _137916)), forall c : _137907, forall x : _137906, (exists s : _137909 -> _137906, exists t : _137907 -> _137909 -> _137916, exists a : _137909, (@List.In (prod (_137909 -> _137906) (_137907 -> _137909 -> _137916)) (@pair (_137909 -> _137906) (_137907 -> _137909 -> _137916) s t) clauses) /\ (((s a) = x) /\ ((@CASEWISE _137916 _137909 _137906 _137907 clauses c x) = (t c a)))) \/ ((~ (exists s : _137909 -> _137906, exists t : _137907 -> _137909 -> _137916, exists a : _137909, (@List.In (prod (_137909 -> _137906) (_137907 -> _137909 -> _137916)) (@pair (_137909 -> _137906) (_137907 -> _137909 -> _137916) s t) clauses) /\ ((s a) = x))) /\ ((@CASEWISE _137916 _137909 _137906 _137907 clauses c x) = (@ε _137916 (fun y : _137916 => True)))). +Axiom thm_CASEWISE_WORKS : forall {A B C P : Type'}, forall clauses : list (prod (P -> A) (C -> P -> B)), forall c : C, (forall s : P -> A, forall t : C -> P -> B, forall s' : P -> A, forall t' : C -> P -> B, forall x : P, forall y : P, ((@List.In (prod (P -> A) (C -> P -> B)) (@pair (P -> A) (C -> P -> B) s t) clauses) /\ ((@List.In (prod (P -> A) (C -> P -> B)) (@pair (P -> A) (C -> P -> B) s' t') clauses) /\ ((s x) = (s' y)))) -> (t c x) = (t' c y)) -> @List.Forall (prod (P -> A) (C -> P -> B)) (@GABS ((prod (P -> A) (C -> P -> B)) -> Prop) (fun f : (prod (P -> A) (C -> P -> B)) -> Prop => forall s : P -> A, forall t : C -> P -> B, @GEQ Prop (f (@pair (P -> A) (C -> P -> B) s t)) (forall x : P, (@CASEWISE B P A C clauses c (s x)) = (t c x)))) clauses. +Axiom thm_admissible : forall {_138045 _138048 _138052 _138053 _138058 : Type'}, forall p : (_138052 -> _138048) -> _138058 -> Prop, forall lt2 : _138052 -> _138045 -> Prop, forall s : _138058 -> _138045, forall t : (_138052 -> _138048) -> _138058 -> _138053, (@admissible _138045 _138048 _138052 _138053 _138058 lt2 p s t) = (forall f : _138052 -> _138048, forall g : _138052 -> _138048, forall a : _138058, ((p f a) /\ ((p g a) /\ (forall z : _138052, (lt2 z (s a)) -> (f z) = (g z)))) -> (t f a) = (t g a)). +Axiom thm_tailadmissible : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall s : P -> A, forall p : (A -> B) -> P -> Prop, forall t : (A -> B) -> P -> B, (@tailadmissible A B P lt2 p s t) = (exists P' : (A -> B) -> P -> Prop, exists G : (A -> B) -> P -> A, exists H : (A -> B) -> P -> B, (forall f : A -> B, forall a : P, forall y : A, ((P' f a) /\ (lt2 y (G f a))) -> lt2 y (s a)) /\ ((forall f : A -> B, forall g : A -> B, forall a : P, (forall z : A, (lt2 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)))) /\ (forall f : A -> B, forall a : P, (p f a) -> (t f a) = (@COND B (P' f a) (f (G f a)) (H f a))))). +Axiom thm_superadmissible : forall {_138202 _138204 _138210 : Type'}, forall lt2 : _138202 -> _138202 -> Prop, forall p : (_138202 -> _138204) -> _138210 -> Prop, forall s : _138210 -> _138202, forall t : (_138202 -> _138204) -> _138210 -> _138204, (@superadmissible _138202 _138204 _138210 lt2 p s t) = ((@admissible _138202 _138204 _138202 Prop _138210 lt2 (fun f : _138202 -> _138204 => fun a : _138210 => True) s p) -> @tailadmissible _138202 _138204 _138210 lt2 p s t). +Axiom thm_MATCH_SEQPATTERN : forall {_138238 _138245 : Type'} (r : _138245 -> _138238 -> Prop) (x : _138245) (s : _138245 -> _138238 -> Prop), (@_MATCH _138245 _138238 x (@_SEQPATTERN _138245 _138238 r s)) = (@COND _138238 (exists y : _138238, r x y) (@_MATCH _138245 _138238 x r) (@_MATCH _138245 _138238 x s)). +Axiom thm_ADMISSIBLE_CONST : forall {_138265 _138266 _138267 _138268 _138269 : Type'} (lt2 : _138266 -> _138265 -> Prop), forall p : (_138266 -> _138267) -> _138268 -> Prop, forall s : _138268 -> _138265, forall c : _138268 -> _138269, @admissible _138265 _138267 _138266 _138269 _138268 lt2 p s (fun f : _138266 -> _138267 => c). +Axiom thm_ADMISSIBLE_BASE : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall t : P -> A, (forall f : A -> B, forall a : P, (p f a) -> lt2 (t a) (s a)) -> @admissible A B A B P lt2 p s (fun f : A -> B => fun x : P => f (t x)). +Axiom thm_ADMISSIBLE_COMB : forall {A B C D P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall g : (A -> B) -> P -> C -> D, forall y : (A -> B) -> P -> C, ((@admissible A B A (C -> D) P lt2 p s g) /\ (@admissible A B A C P lt2 p s y)) -> @admissible A B A D P lt2 p s (fun f : A -> B => fun x : P => g f x (y f x)). +Axiom thm_ADMISSIBLE_RAND : forall {A B C D P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall g : P -> C -> D, forall y : (A -> B) -> P -> C, (@admissible A B A C P lt2 p s y) -> @admissible A B A D P lt2 p s (fun f : A -> B => fun x : P => g x (y f x)). +Axiom thm_ADMISSIBLE_LAMBDA : forall {A B C P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall t : (A -> B) -> C -> P -> Prop, (@admissible A B A Prop (prod C P) lt2 (fun f : A -> B => @GABS ((prod C P) -> Prop) (fun f' : (prod C P) -> Prop => forall u : C, forall x : P, @GEQ Prop (f' (@pair C P u x)) (p f x))) (@GABS ((prod C P) -> A) (fun f : (prod C P) -> A => forall u : C, forall x : P, @GEQ A (f (@pair C P u x)) (s x))) (fun f : A -> B => @GABS ((prod C P) -> Prop) (fun f' : (prod C P) -> Prop => forall u : C, forall x : P, @GEQ Prop (f' (@pair C P u x)) (t f u x)))) -> @admissible A B A (C -> Prop) P lt2 p s (fun f : A -> B => fun x : P => fun u : C => t f u x). +Axiom thm_ADMISSIBLE_NEST : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall t : (A -> B) -> P -> A, ((@admissible A B A A P lt2 p s t) /\ (forall f : A -> B, forall a : P, (p f a) -> lt2 (t f a) (s a))) -> @admissible A B A B P lt2 p s (fun f : A -> B => fun x : P => f (t f x)). +Axiom thm_ADMISSIBLE_COND : forall {_138602 _138603 _138634 _138659 P : Type'}, forall lt2 : _138603 -> _138602 -> Prop, forall p : (_138603 -> _138634) -> P -> Prop, forall P' : (_138603 -> _138634) -> P -> Prop, forall s : P -> _138602, forall h : (_138603 -> _138634) -> P -> _138659, forall k : (_138603 -> _138634) -> P -> _138659, ((@admissible _138602 _138634 _138603 Prop P lt2 p s P') /\ ((@admissible _138602 _138634 _138603 _138659 P lt2 (fun f : _138603 -> _138634 => fun x : P => (p f x) /\ (P' f x)) s h) /\ (@admissible _138602 _138634 _138603 _138659 P lt2 (fun f : _138603 -> _138634 => fun x : P => (p f x) /\ (~ (P' f x))) s k))) -> @admissible _138602 _138634 _138603 _138659 P lt2 p s (fun f : _138603 -> _138634 => fun x : P => @COND _138659 (P' f x) (h f x) (k f x)). +Axiom thm_ADMISSIBLE_MATCH : forall {_138700 _138701 _138702 _138734 _138737 P : Type'}, forall lt2 : _138701 -> _138700 -> Prop, forall p : (_138701 -> _138702) -> P -> Prop, forall s : P -> _138700, forall e : (_138701 -> _138702) -> P -> _138737, forall c : (_138701 -> _138702) -> P -> _138737 -> _138734 -> Prop, ((@admissible _138700 _138702 _138701 _138737 P lt2 p s e) /\ (@admissible _138700 _138702 _138701 (_138734 -> Prop) P lt2 p s (fun f : _138701 -> _138702 => fun x : P => c f x (e f x)))) -> @admissible _138700 _138702 _138701 _138734 P lt2 p s (fun f : _138701 -> _138702 => fun x : P => @_MATCH _138737 _138734 (e f x) (c f x)). +Axiom thm_ADMISSIBLE_SEQPATTERN : forall {_138777 _138778 _138840 _138856 _138866 P : Type'}, forall lt2 : _138778 -> _138777 -> Prop, forall p : (_138778 -> _138840) -> P -> Prop, forall s : P -> _138777, forall c1 : (_138778 -> _138840) -> P -> _138866 -> _138856 -> Prop, forall c2 : (_138778 -> _138840) -> P -> _138866 -> _138856 -> Prop, forall e : (_138778 -> _138840) -> P -> _138866, ((@admissible _138777 _138840 _138778 Prop P lt2 p s (fun f : _138778 -> _138840 => fun x : P => exists y : _138856, c1 f x (e f x) y)) /\ ((@admissible _138777 _138840 _138778 (_138856 -> Prop) P lt2 (fun f : _138778 -> _138840 => fun x : P => (p f x) /\ (exists y : _138856, c1 f x (e f x) y)) s (fun f : _138778 -> _138840 => fun x : P => c1 f x (e f x))) /\ (@admissible _138777 _138840 _138778 (_138856 -> Prop) P lt2 (fun f : _138778 -> _138840 => fun x : P => (p f x) /\ (~ (exists y : _138856, c1 f x (e f x) y))) s (fun f : _138778 -> _138840 => fun x : P => c2 f x (e f x))))) -> @admissible _138777 _138840 _138778 (_138856 -> Prop) P lt2 p s (fun f : _138778 -> _138840 => fun x : P => @_SEQPATTERN _138866 _138856 (c1 f x) (c2 f x) (e f x)). +Axiom thm_ADMISSIBLE_UNGUARDED_PATTERN : forall {_138951 _138952 _138999 _139032 _139039 P : Type'}, forall lt2 : _138952 -> _138951 -> Prop, forall p : (_138952 -> _138999) -> P -> Prop, forall s : P -> _138951, forall pat : (_138952 -> _138999) -> P -> _139032, forall e : (_138952 -> _138999) -> P -> _139032, forall t : (_138952 -> _138999) -> P -> _139039, forall y : (_138952 -> _138999) -> P -> _139039, ((@admissible _138951 _138999 _138952 _139032 P lt2 p s pat) /\ ((@admissible _138951 _138999 _138952 _139032 P lt2 p s e) /\ ((@admissible _138951 _138999 _138952 _139039 P lt2 (fun f : _138952 -> _138999 => fun x : P => (p f x) /\ ((pat f x) = (e f x))) s t) /\ (@admissible _138951 _138999 _138952 _139039 P lt2 (fun f : _138952 -> _138999 => fun x : P => (p f x) /\ ((pat f x) = (e f x))) s y)))) -> @admissible _138951 _138999 _138952 Prop P lt2 p s (fun f : _138952 -> _138999 => fun x : P => _UNGUARDED_PATTERN (@GEQ _139032 (pat f x) (e f x)) (@GEQ _139039 (t f x) (y f x))). +Axiom thm_ADMISSIBLE_GUARDED_PATTERN : forall {_139125 _139126 _139203 _139241 _139250 P : Type'}, forall lt2 : _139126 -> _139125 -> Prop, forall p : (_139126 -> _139203) -> P -> Prop, forall s : P -> _139125, forall pat : (_139126 -> _139203) -> P -> _139241, forall q : (_139126 -> _139203) -> P -> Prop, forall e : (_139126 -> _139203) -> P -> _139241, forall t : (_139126 -> _139203) -> P -> _139250, forall y : (_139126 -> _139203) -> P -> _139250, ((@admissible _139125 _139203 _139126 _139241 P lt2 p s pat) /\ ((@admissible _139125 _139203 _139126 _139241 P lt2 p s e) /\ ((@admissible _139125 _139203 _139126 _139250 P lt2 (fun f : _139126 -> _139203 => fun x : P => (p f x) /\ (((pat f x) = (e f x)) /\ (q f x))) s t) /\ ((@admissible _139125 _139203 _139126 Prop P lt2 (fun f : _139126 -> _139203 => fun x : P => (p f x) /\ ((pat f x) = (e f x))) s q) /\ (@admissible _139125 _139203 _139126 _139250 P lt2 (fun f : _139126 -> _139203 => fun x : P => (p f x) /\ (((pat f x) = (e f x)) /\ (q f x))) s y))))) -> @admissible _139125 _139203 _139126 Prop P lt2 p s (fun f : _139126 -> _139203 => fun x : P => _GUARDED_PATTERN (@GEQ _139241 (pat f x) (e f x)) (q f x) (@GEQ _139250 (t f x) (y f x))). +Axiom thm_ADMISSIBLE_NSUM : forall {A B C P : Type'}, forall lt2 : B -> A -> Prop, forall p : (B -> C) -> P -> Prop, forall s : P -> A, forall h : (B -> C) -> P -> N -> N, forall a : P -> N, forall b : P -> N, (@admissible A C B N (prod N P) lt2 (fun f : B -> C => @GABS ((prod N P) -> Prop) (fun f' : (prod N P) -> Prop => forall k : N, forall x : P, @GEQ Prop (f' (@pair N P k x)) ((N.le (a x) k) /\ ((N.le k (b x)) /\ (p f x))))) (@GABS ((prod N P) -> A) (fun f : (prod N P) -> A => forall k : N, forall x : P, @GEQ A (f (@pair N P k x)) (s x))) (fun f : B -> C => @GABS ((prod N P) -> N) (fun f' : (prod N P) -> N => forall k : N, forall x : P, @GEQ N (f' (@pair N P k x)) (h f x k)))) -> @admissible A C B N P lt2 p s (fun f : B -> C => fun x : P => @nsum N (dotdot (a x) (b x)) (h f x)). +Axiom thm_ADMISSIBLE_SUM : forall {A B C P : Type'}, forall lt2 : B -> A -> Prop, forall p : (B -> C) -> P -> Prop, forall s : P -> A, forall h : (B -> C) -> P -> N -> R, forall a : P -> N, forall b : P -> N, (@admissible A C B R (prod N P) lt2 (fun f : B -> C => @GABS ((prod N P) -> Prop) (fun f' : (prod N P) -> Prop => forall k : N, forall x : P, @GEQ Prop (f' (@pair N P k x)) ((N.le (a x) k) /\ ((N.le k (b x)) /\ (p f x))))) (@GABS ((prod N P) -> A) (fun f : (prod N P) -> A => forall k : N, forall x : P, @GEQ A (f (@pair N P k x)) (s x))) (fun f : B -> C => @GABS ((prod N P) -> R) (fun f' : (prod N P) -> R => forall k : N, forall x : P, @GEQ R (f' (@pair N P k x)) (h f x k)))) -> @admissible A C B R P lt2 p s (fun f : B -> C => fun x : P => @sum N (dotdot (a x) (b x)) (h f x)). +Axiom thm_ADMISSIBLE_MAP : forall {_139543 _139552 _139558 A B P : Type'}, forall lt2 : A -> _139543 -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> _139543, forall h : (A -> B) -> P -> _139558 -> _139552, forall l : (A -> B) -> P -> list _139558, ((@admissible _139543 B A (list _139558) P lt2 p s l) /\ (@admissible _139543 B A _139552 (prod _139558 P) lt2 (fun f : A -> B => @GABS ((prod _139558 P) -> Prop) (fun f' : (prod _139558 P) -> Prop => forall y : _139558, forall x : P, @GEQ Prop (f' (@pair _139558 P y x)) ((p f x) /\ (@List.In _139558 y (l f x))))) (@GABS ((prod _139558 P) -> _139543) (fun f : (prod _139558 P) -> _139543 => forall y : _139558, forall x : P, @GEQ _139543 (f (@pair _139558 P y x)) (s x))) (fun f : A -> B => @GABS ((prod _139558 P) -> _139552) (fun f' : (prod _139558 P) -> _139552 => forall y : _139558, forall x : P, @GEQ _139552 (f' (@pair _139558 P y x)) (h f x y))))) -> @admissible _139543 B A (list _139552) P lt2 p s (fun f : A -> B => fun x : P => @List.map _139558 _139552 (h f x) (l f x)). +Axiom thm_ADMISSIBLE_MATCH_SEQPATTERN : forall {_139615 _139616 _139681 _139705 _139736 P : Type'}, forall lt2 : _139616 -> _139615 -> Prop, forall p : (_139616 -> _139681) -> P -> Prop, forall s : P -> _139615, forall c1 : (_139616 -> _139681) -> P -> _139736 -> _139705 -> Prop, forall c2 : (_139616 -> _139681) -> P -> _139736 -> _139705 -> Prop, forall e : (_139616 -> _139681) -> P -> _139736, ((@admissible _139615 _139681 _139616 Prop P lt2 p s (fun f : _139616 -> _139681 => fun x : P => exists y : _139705, c1 f x (e f x) y)) /\ ((@admissible _139615 _139681 _139616 _139705 P lt2 (fun f : _139616 -> _139681 => fun x : P => (p f x) /\ (exists y : _139705, c1 f x (e f x) y)) s (fun f : _139616 -> _139681 => fun x : P => @_MATCH _139736 _139705 (e f x) (c1 f x))) /\ (@admissible _139615 _139681 _139616 _139705 P lt2 (fun f : _139616 -> _139681 => fun x : P => (p f x) /\ (~ (exists y : _139705, c1 f x (e f x) y))) s (fun f : _139616 -> _139681 => fun x : P => @_MATCH _139736 _139705 (e f x) (c2 f x))))) -> @admissible _139615 _139681 _139616 _139705 P lt2 p s (fun f : _139616 -> _139681 => fun x : P => @_MATCH _139736 _139705 (e f x) (@_SEQPATTERN _139736 _139705 (c1 f x) (c2 f x))). +Axiom thm_ADMISSIBLE_IMP_SUPERADMISSIBLE : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall t : (A -> B) -> P -> B, (@admissible A B A B P lt2 p s t) -> @superadmissible A B P lt2 p s t. +Axiom thm_SUPERADMISSIBLE_CONST : forall {_139815 _139816 _139817 : Type'} (lt2 : _139815 -> _139815 -> Prop), forall p : (_139815 -> _139817) -> _139816 -> Prop, forall s : _139816 -> _139815, forall c : _139816 -> _139817, @superadmissible _139815 _139817 _139816 lt2 p s (fun f : _139815 -> _139817 => c). +Axiom thm_SUPERADMISSIBLE_TAIL : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall t : (A -> B) -> P -> A, ((@admissible A B A A P lt2 p s t) /\ (forall f : A -> B, forall a : P, (p f a) -> forall y : A, (lt2 y (t f a)) -> lt2 y (s a))) -> @superadmissible A B P lt2 p s (fun f : A -> B => fun x : P => f (t f x)). +Axiom thm_SUPERADMISSIBLE_COND : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall P' : (A -> B) -> P -> Prop, forall s : P -> A, forall h : (A -> B) -> P -> B, forall k : (A -> B) -> P -> B, ((@admissible A B A Prop P lt2 p s P') /\ ((@superadmissible A B P lt2 (fun f : A -> B => fun x : P => (p f x) /\ (P' f x)) s h) /\ (@superadmissible A B P lt2 (fun f : A -> B => fun x : P => (p f x) /\ (~ (P' f x))) s k))) -> @superadmissible A B P lt2 p s (fun f : A -> B => fun x : P => @COND B (P' f x) (h f x) (k f x)). +Axiom thm_SUPERADMISSIBLE_MATCH_SEQPATTERN : forall {_140136 _140251 _140252 P : Type'}, forall lt2 : _140136 -> _140136 -> Prop, forall p : (_140136 -> _140252) -> P -> Prop, forall s : P -> _140136, forall c1 : (_140136 -> _140252) -> P -> _140251 -> _140252 -> Prop, forall c2 : (_140136 -> _140252) -> P -> _140251 -> _140252 -> Prop, forall e : (_140136 -> _140252) -> P -> _140251, ((@admissible _140136 _140252 _140136 Prop P lt2 p s (fun f : _140136 -> _140252 => fun x : P => exists y : _140252, c1 f x (e f x) y)) /\ ((@superadmissible _140136 _140252 P lt2 (fun f : _140136 -> _140252 => fun x : P => (p f x) /\ (exists y : _140252, c1 f x (e f x) y)) s (fun f : _140136 -> _140252 => fun x : P => @_MATCH _140251 _140252 (e f x) (c1 f x))) /\ (@superadmissible _140136 _140252 P lt2 (fun f : _140136 -> _140252 => fun x : P => (p f x) /\ (~ (exists y : _140252, c1 f x (e f x) y))) s (fun f : _140136 -> _140252 => fun x : P => @_MATCH _140251 _140252 (e f x) (c2 f x))))) -> @superadmissible _140136 _140252 P lt2 p s (fun f : _140136 -> _140252 => fun x : P => @_MATCH _140251 _140252 (e f x) (@_SEQPATTERN _140251 _140252 (c1 f x) (c2 f x))). +Axiom thm_SUPERADMISSIBLE_MATCH_UNGUARDED_PATTERN : forall {A B D P Q : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall e : P -> D, forall pat : Q -> D, forall arg : P -> Q -> A, ((forall f : A -> B, forall a : P, forall t : Q, forall u : Q, ((p f a) /\ (((pat t) = (e a)) /\ ((pat u) = (e a)))) -> (arg a t) = (arg a u)) /\ (forall f : A -> B, forall a : P, forall t : Q, ((p f a) /\ ((pat t) = (e a))) -> forall y : A, (lt2 y (arg a t)) -> lt2 y (s a))) -> @superadmissible A B P lt2 p s (fun f : A -> B => fun x : P => @_MATCH D B (e x) (fun u : D => fun v : B => exists t : Q, _UNGUARDED_PATTERN (@GEQ D (pat t) u) (@GEQ B (f (arg x t)) v))). +Axiom thm_SUPERADMISSIBLE_MATCH_GUARDED_PATTERN : forall {A B D P Q : Type'}, forall lt2 : A -> A -> Prop, forall p : (A -> B) -> P -> Prop, forall s : P -> A, forall e : P -> D, forall pat : Q -> D, forall q : P -> Q -> Prop, forall arg : P -> Q -> A, ((forall f : A -> B, forall a : P, forall t : Q, forall u : Q, ((p f a) /\ (((pat t) = (e a)) /\ ((q a t) /\ (((pat u) = (e a)) /\ (q a u))))) -> (arg a t) = (arg a u)) /\ (forall f : A -> B, forall a : P, forall t : Q, ((p f a) /\ ((q a t) /\ ((pat t) = (e a)))) -> forall y : A, (lt2 y (arg a t)) -> lt2 y (s a))) -> @superadmissible A B P lt2 p s (fun f : A -> B => fun x : P => @_MATCH D B (e x) (fun u : D => fun v : B => exists t : Q, _GUARDED_PATTERN (@GEQ D (pat t) u) (q x t) (@GEQ B (f (arg x t)) v))). +Axiom thm_WF_REC_CASES : forall {A B P : Type'}, forall lt2 : A -> A -> Prop, forall clauses : list (prod (P -> A) ((A -> B) -> P -> B)), ((@WF A lt2) /\ (@List.Forall (prod (P -> A) ((A -> B) -> P -> B)) (@GABS ((prod (P -> A) ((A -> B) -> P -> B)) -> Prop) (fun f : (prod (P -> A) ((A -> B) -> P -> B)) -> Prop => forall s : P -> A, forall t : (A -> B) -> P -> B, @GEQ Prop (f (@pair (P -> A) ((A -> B) -> P -> B) s t)) (exists P' : (A -> B) -> P -> Prop, exists G : (A -> B) -> P -> A, exists H : (A -> B) -> P -> B, (forall f' : A -> B, forall a : P, forall y : A, ((P' f' a) /\ (lt2 y (G f' a))) -> lt2 y (s a)) /\ ((forall f' : A -> B, forall g : A -> B, forall a : P, (forall z : A, (lt2 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)))) /\ (forall f' : A -> B, forall a : P, (t f' a) = (@COND B (P' f' a) (f' (G f' a)) (H f' a))))))) clauses)) -> exists f : A -> B, forall x : A, (f x) = (@CASEWISE B P A (A -> B) clauses f x). +Axiom thm_RECURSION_CASEWISE : forall {A B P : Type'}, forall clauses : list (prod (P -> A) ((A -> B) -> P -> B)), ((exists lt2 : A -> A -> Prop, (@WF A lt2) /\ (@List.Forall (prod (P -> A) ((A -> B) -> P -> B)) (@GABS ((prod (P -> A) ((A -> B) -> P -> B)) -> Prop) (fun f : (prod (P -> A) ((A -> B) -> P -> B)) -> Prop => forall s : P -> A, forall t : (A -> B) -> P -> B, @GEQ Prop (f (@pair (P -> A) ((A -> B) -> P -> B) s t)) (@tailadmissible A B P lt2 (fun f' : A -> B => fun a : P => True) s t))) clauses)) /\ (forall s : P -> A, forall t : (A -> B) -> P -> B, forall s' : P -> A, forall t' : (A -> B) -> P -> B, forall f : A -> B, forall x : P, forall y : P, ((@List.In (prod (P -> A) ((A -> B) -> P -> B)) (@pair (P -> A) ((A -> B) -> P -> B) s t) clauses) /\ (@List.In (prod (P -> A) ((A -> B) -> P -> B)) (@pair (P -> A) ((A -> B) -> P -> B) s' t') clauses)) -> ((s x) = (s' y)) -> (t f x) = (t' f y))) -> exists f : A -> B, @List.Forall (prod (P -> A) ((A -> B) -> P -> B)) (@GABS ((prod (P -> A) ((A -> B) -> P -> B)) -> Prop) (fun f' : (prod (P -> A) ((A -> B) -> P -> B)) -> Prop => forall s : P -> A, forall t : (A -> B) -> P -> B, @GEQ Prop (f' (@pair (P -> A) ((A -> B) -> P -> B) s t)) (forall x : P, (f (s x)) = (t f x)))) clauses. +Axiom thm_RECURSION_CASEWISE_PAIRWISE : forall {_141475 _141491 _141495 : Type'}, forall clauses : list (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)), ((exists lt2 : _141475 -> _141475 -> Prop, (@WF _141475 lt2) /\ (@List.Forall (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) (@GABS ((prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop) (fun f : (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop => forall s : _141495 -> _141475, forall t : (_141475 -> _141491) -> _141495 -> _141491, @GEQ Prop (f (@pair (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491) s t)) (@tailadmissible _141475 _141491 _141495 lt2 (fun f' : _141475 -> _141491 => fun a : _141495 => True) s t))) clauses)) /\ ((@List.Forall (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) (@GABS ((prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop) (fun f : (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop => forall s : _141495 -> _141475, forall t : (_141475 -> _141491) -> _141495 -> _141491, @GEQ Prop (f (@pair (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491) s t)) (forall f' : _141475 -> _141491, forall x : _141495, forall y : _141495, ((s x) = (s y)) -> (t f' x) = (t f' y)))) clauses) /\ (@List.ForallOrdPairs (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) (@GABS ((prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop) (fun f : (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop => forall s : _141495 -> _141475, forall t : (_141475 -> _141491) -> _141495 -> _141491, @GEQ ((prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop) (f (@pair (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491) s t)) (@GABS ((prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop) (fun f' : (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop => forall s' : _141495 -> _141475, forall t' : (_141475 -> _141491) -> _141495 -> _141491, @GEQ Prop (f' (@pair (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491) s' t')) (forall f'' : _141475 -> _141491, forall x : _141495, forall y : _141495, ((s x) = (s' y)) -> (t f'' x) = (t' f'' y)))))) clauses))) -> exists f : _141475 -> _141491, @List.Forall (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) (@GABS ((prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop) (fun f' : (prod (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491)) -> Prop => forall s : _141495 -> _141475, forall t : (_141475 -> _141491) -> _141495 -> _141491, @GEQ Prop (f' (@pair (_141495 -> _141475) ((_141475 -> _141491) -> _141495 -> _141491) s t)) (forall x : _141495, (f (s x)) = (t f x)))) clauses. +Axiom thm_SUPERADMISSIBLE_T : forall {_141605 _141607 _141611 : Type'} (lt2 : _141605 -> _141605 -> Prop) (s : _141611 -> _141605) (t : (_141605 -> _141607) -> _141611 -> _141607), (@superadmissible _141605 _141607 _141611 lt2 (fun f : _141605 -> _141607 => fun x : _141611 => True) s t) = (@tailadmissible _141605 _141607 _141611 lt2 (fun f : _141605 -> _141607 => fun x : _141611 => True) s t). Axiom thm_SUBSET_PRED : forall {_142395 : Type'}, forall P : _142395 -> Prop, forall Q : _142395 -> Prop, (@SUBSET _142395 P Q) = (forall x : _142395, (P x) -> Q x). Axiom thm_UNIONS_PRED : forall {_142411 : Type'} (P : (_142411 -> Prop) -> Prop), (@UNIONS _142411 P) = (fun x : _142411 => exists p : _142411 -> Prop, (P p) /\ (p x)). Axiom thm_fld : forall {A : Type'}, forall R' : A -> A -> Prop, (@fld A R') = (@GSPEC A (fun GEN_PVAR_372 : A => exists x : A, @SETSPEC A GEN_PVAR_372 (exists y : A, (R' x y) \/ (R' y x)) x)). From c59ce5fb89b60c71c4107def9dae6a9f32ade821 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Blanqui?= Date: Tue, 21 Jan 2025 12:07:40 +0100 Subject: [PATCH 8/8] wip --- CHANGES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 55f1fac..f9fc74d 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/). +## Unreleased + +Add HOL-Light library Multivariate/make_complex.ml (~20,000 theorems). + ## 2.0.0 (2024-12-17) All HOL-Light base library lib_hol.ml with alignement of real numbers.