Theorem Q_is_denumerable: same_cardinality Q nat.
Definition same_cardinality (A:Set) (B:Set) :=
{ f : A -> B &
{ g : B -> A |
forall b,(compose _ _ _ f g) b = (identity B) b /\
forall a,(compose _ _ _ g f) a = (identity A) a
}}.
Russell O'Connor (contribs/Berkeley/Goedel/goedel1.v):
Theorem Goedel'sIncompleteness1st :
wConsistent T ->
exists f : Formula,
~ SysPrf T f /\
~ SysPrf T (notH f) /\ (forall v : nat, ~ In v (freeVarFormula LNN f)).
Russell O'Connor (contribs/Berkeley/Goedel/goedel2.v):
Theorem SecondIncompletness :
SysPrf T Con -> Inconsistent LNT T.
nc : number of connected components
nv : number of vertices
ne : number of edges
nf : number of faces
nd : number of darts
plf m : m is a planar formation
inv_qhmap : see Euler1.v
Theorem Euler_Poincare_criterion: forall m:fmap,
inv_qhmap m -> (plf m <-> (nv m + ne m + nf m - nd m) / 2 = nc m).
Definition sum_of_two_squares :=
fun p => exists a , exists b , p = a * a + b * b.
Theorem two_squares_sum:
forall n,
0 <= n ->
(forall p, prime p -> Zis_mod p 3 4 -> Zeven (Zdiv_exp p n)) ->
sum_of_two_squares n.
Theorem R_uncountable : forall (f : nat -> R),
{l : R | forall n, l <> f n}.
Theorem R_uncountable_strong : forall (f : nat -> R) (x y : R),
x < y -> {l : R | forall n, l <> f n & x <= l <= y}.
C-CoRN team (contribs/Nijmegen/CoRN/reals/RealCount.v):
Theorem reals_not_countable :
forall (f : nat -> IR), {x :IR | forall n : nat, x [#] (f n)}.
David Delahaye (contribs/CNAM/Fermat4/Pythagorean.v):
Lemma pytha_thm3 : forall a b c : Z,
is_pytha a b c -> Zodd a ->
exists p : Z, exists q : Z, exists m : Z,
a = m * (q * q - p * p) /\ b = 2 * m * (p * q) /\
c = m * (p * p + q * q) /\ m >= 0 /\
p >= 0 /\ q > 0 /\ p <= q /\ (rel_prime p q) /\
(distinct_parity p q).
The Coq development team (theories/Reals/Rtrigo.v, theories/Reals/AltSeries.v):
The Leibniz'Series *is* the definition of pi in the standard library.
Here are two statements showing the equivalence with the most common definition of pi being twice the smallest positive x for which cos(x)=0.
However this is relying on the axiom sin(pi/2)=1, which is about to be removed.
Definition tg_alt (Un:nat -> R) (i:nat) : R := (-1) ^ i * Un i.
Definition PI_tg (n:nat) := / INR (2 * n + 1).
Lemma exist_PI : { l:R | Un_cv (fun N:nat => sum_f_R0 (tg_alt PI_tg) N) l }.
Definition PI : R := 4 * (let (a,_) := exist_PI in a).
Lemma cos_PI2 : cos (PI / 2) = 0.
Theorem cos_gt_0 : forall x:R, - (PI / 2) < x -> x < PI / 2 -> 0 < cos x.
Axiom sin_PI2 : sin (PI / 2) = 1.
Russell O'Connor (contribs/Nijmegen/CoRN/transc/MoreArcTan.v):
Lemma ArcTan_one : ArcTan One[=]Pi[/]FourNZ.
Lemma arctan_series : forall c : IR,
forall (Hs :
fun_series_convergent_IR
(olor ([--]One) One)
(fun i =>
(([--]One)[^]i[/]nring (S (2*i))
[//] nringS_ap_zero _ (2*i)){**}Fid IR{^}(2*i+1)))
Hc,
FSeries_Sum Hs c Hc[=]ArcTan c.
Theorem somme_triangle :
forall A B C : PO,
A <> B :>PO ->
A <> C :>PO ->
B <> C :>PO ->
plus (cons_AV (vec A B) (vec A C))
(plus (cons_AV (vec B C) (vec B A)) (cons_AV (vec C A) (vec C B))) =
image_angle pi :>AV.
Lemma Feuerbach: forall A B C A1 B1 C1 O A2 B2 C2 O2:point,
forall r r2:R,
X A = 0 -> Y A = 0 -> X B = 1 -> Y B = 0->
middle A B C1 -> middle B C A1 -> middle C A B1 ->
distance2 O A1 = distance2 O B1 ->
distance2 O A1 = distance2 O C1 ->
collinear A B C2 -> orthogonal A B O2 C2 ->
collinear B C A2 -> orthogonal B C O2 A2 ->
collinear A C B2 -> orthogonal A C O2 B2 ->
distance2 O2 A2 = distance2 O2 B2 ->
distance2 O2 A2 = distance2 O2 C2 ->
r^2 = distance2 O A1 ->
r2^2 = distance2 O2 A2 ->
distance2 O O2 = (r + r2)^2
\/ distance2 O O2 = (r - r2)^2
\/ collinear A B C.
Theorem Taylor : forall e, Zero [<] e -> forall Hb',
{c : IR | Compact (Min_leEq_Max a b) c |
forall Hc, AbsIR (F b Hb'[-]Part _ _ Taylor_aux[-]deriv_Sn c Hc[*] (b[-]a)) [<=] e}.
The Coq development team (theories/Reals/Binomial.v):
For the non-constructive type R
Lemma binomial :
forall (x y:R) (n:nat),
(x + y) ^ n = sum_f_R0 (fun i:nat => C n i * x ^ i * y ^ (n - i)) n.
Laurent Thery & Jose C. Almeida (contribs/Sophia-Antipolis/RSA/Binomials.v):
For the type nat
Theorem exp_Pascal :
forall a b n : nat,
power (a + b) n =
sum_nm n 0 (fun k : nat => binomial n k * (power a (n - k) * power b k)).
Jean-Marie Madiot (Coqtail/Hierarchy/Commutative_ring_binomial.v):
For any commutative ring X.
Theorem Nnewton : forall n a b, (a + b) ^ n == newton_sum n a b.
Definition newton_sum n a b : X :=
CRsum (fun k => (Nbinomial n k) ** (a ^ k) * (b ^ (n - k))) n.
Theorem Ceva :
forall A B C D E F G P : Point,
inter_ll D B C A P ->
inter_ll E A C B P ->
inter_ll F A B C P ->
F <> B ->
D <> C ->
E <> A ->
parallel A F F B ->
parallel B D D C ->
parallel C E E A ->
(A ** F / F ** B) * (B ** D / D ** C) * (C ** E / E ** A) = 1.
The Coq development team (theories/ZArith/Znumtheory.v):
This is a binary version, as it is more efficient in coq.
(There are several other versions in this file)
Fixpoint Pgcdn (n: nat) (a b : positive) : positive :=
match n with
| O => 1
| S n =>
match a,b with
| xH, _ => 1
| _, xH => 1
| xO a, xO b => xO (Pgcdn n a b)
| a, xO b => Pgcdn n a b
| xO a, b => Pgcdn n a b
| xI a', xI b' =>
match Pcompare a' b' Eq with
| Eq => a
| Lt => Pgcdn n (b'-a') a
| Gt => Pgcdn n (a'-b') b
end
end
end.
Definition Zgcd (a b : Z) : Z :=
match a,b with
| Z0, _ => Zabs b
| _, Z0 => Zabs a
| Zpos a, Zpos b => Zpos (Pgcd a b)
| Zpos a, Zneg b => Zpos (Pgcd a b)
| Zneg a, Zpos b => Zpos (Pgcd a b)
| Zneg a, Zneg b => Zpos (Pgcd a b)
end.
Lemma Zgcd_is_gcd : forall a b, Zis_gcd a b (Zgcd a b).
This is automatically deduced by coq when defining the set of natural numbers. This lemma is inhabited by the following term:
fun P HO HS => fix f n : P n := match n with O => HO | S p => HS p (f p) end
Inductive nat : Set := O : nat | S : nat -> nat.
Lemma nat_ind :
forall P : nat -> Prop,
P 0 ->
(forall n : nat, P n -> P (S n)) ->
forall n : nat, P n.
Theorem Law_of_the_Mean : forall a b, I a -> I b -> forall e, Zero [<] e ->
{x : IR | Compact (Min_leEq_Max a b) x | forall Ha Hb Hx,
AbsIR (F b Hb[-]F a Ha[-]F' x Hx[*] (b[-]a)) [<=] e}.
Theorem Desargues :
forall A B C A1 B1 C1 S : PO,
C <> C1 -> B <> B1 -> C <> S -> B <> S -> C1 <> S ->
B1 <> S -> A1 <> B1 -> A1 <> C1 -> B <> C -> B1 <> C1 ->
triangle A A1 B ->
triangle A A1 C ->
alignes A A1 S ->
alignes B B1 S ->
alignes C C1 S ->
paralleles (droite A B) (droite A1 B1) ->
paralleles (droite A C) (droite A1 C1) ->
paralleles (droite B C) (droite B1 C1).
proved with the area_method tactic.
http://dpt-info.u-strasbg.fr/~narboux/area_method.html
Theorem Desargues :
forall A B C X A' B' C' : Point, A' <>C' -> A' <> B' ->
on_line A' X A ->
on_inter_line_parallel B' A' X B A B ->
on_inter_line_parallel C' A' X C A C ->
parallel B C B' C'.
Theorem Al_Kashi :
forall (A B C : PO) (a : R),
A <> B ->
A <> C ->
image_angle a = cons_AV (vec A B) (vec A C) ->
Rsqr (distance B C) =
Rsqr (distance A B) + Rsqr (distance A C) -
2 * distance A B * distance A C * cos a.
Georges Gonthier et al. (http://coqfinitgroup.gforge.inria.fr/matrix.html):
Lemma mul_mx_adj : forall n (A : 'M[R]_n), A *m \adj A = (\det A)%:M.
Lemma trmx_adj : forall n (A : 'M[R]_n), (\adj A)^T = \adj A^T.
Lemma mul_adj_mx : forall n (A : 'M[R]_n), \adj A *m A = (\det A)%:M.