Library structures
Require Import algebra.
Inductive NatStruct : Type := mk_NatStruct :
forall R : Type,
forall o : R,
forall p : R -> R -> R, forall m : R -> R -> R,
forall l : R -> R -> Prop,
commutative R p ->
associative R p ->
commutative R m ->
associative R m ->
identity_l R o m ->
distributes R p m ->
irreflexive R l ->
transitive R l ->
trichotomy R l ->
less_plus_2 R p l ->
less_mult_2 R m l ->
eq_plus_injective R p ->
plus_irreflexive R p ->
inductionaxiom R o p ->
NatStruct.
Inductive NatStruct' : Type := mk_NatStruct' :
forall R : Type,
forall o : R,
forall p : R -> R -> R, forall m : R -> R -> R,
forall le : R -> R -> Prop,
commutative R p ->
associative R p ->
commutative R m ->
associative R m ->
identity_l R o m ->
distributes R p m ->
linear R le ->
transitive R le ->
antisymmetric R le ->
less_plus_2 R p le ->
less_mult_2 R m le ->
NaturalNumbers_minimal R o p m ->
NatStruct'.
Inductive IntegerStruct : Type :=
mk_IntegerStruct :
forall R : Type,
forall z o : R,
forall p : R -> R -> R, forall m : R -> R -> R,
forall n : R -> R,
forall le : R -> R -> Prop,
commutative R p ->
associative R p ->
identity_l R z p ->
inverse_l R z p n ->
commutative R m ->
associative R m ->
identity_l R o m ->
distributes R p m ->
linear R le ->
transitive R le ->
antisymmetric R le ->
less_plus_2 R p le ->
less_mult_2 R m le ->
Integer_minimal R z o p n ->
IntegerStruct.
Inductive PositiveRationalStruct : Type :=
mk_PositiveRationalStruct :
forall R : Type,
forall o : R,
forall p : R -> R -> R, forall m : R -> R -> R,
forall r : R -> R,
forall l : R -> R -> Prop,
commutative R p ->
associative R p ->
commutative R m ->
associative R m ->
identity_l R o m ->
inverse_l R o m r ->
distributes R p m ->
trichotomy R l ->
transitive R l ->
irreflexive R l ->
less_plus_2 R p l ->
less_mult_2 R m l ->
dense R l ->
noendp_l R l ->
noendp_r R l ->
PositiveRational_minimal R o p m r ->
PositiveRationalStruct.
Inductive PositiveRationalStruct' : Type :=
mk_PositiveRationalStruct' :
forall R : Type,
forall o : R,
forall p : R -> R -> R, forall m : R -> R -> R,
forall r : R -> R,
forall le : R -> R -> Prop,
commutative R p ->
associative R p ->
commutative R m ->
associative R m ->
identity_l R o m ->
inverse_l R o m r ->
distributes R p m ->
linear R le ->
transitive R le ->
antisymmetric R le ->
less_plus_2 R p le ->
less_mult_2 R m le ->
PositiveRational_minimal R o p m r ->
PositiveRationalStruct'.
Inductive RationalStruct : Type :=
mk_RationalStruct :
forall R : Type,
forall z o : R,
forall p : R -> R -> R, forall m : R -> R -> R,
forall n : R -> R,
forall r : R -> R,
forall le : R -> R -> Prop,
commutative R p ->
associative R p ->
identity_l R z p ->
inverse_l R z p n ->
commutative R m ->
associative R m ->
identity_l R o m ->
inverse_exception_l R z o m r ->
distributes R p m ->
linear R le ->
transitive R le ->
antisymmetric R le ->
less_plus_2 R p le ->
less_mult R z m le ->
Rational_minimal R z o p m n r ->
RationalStruct.
Harrison's Axioms for the Reals
Axioms from Section 2.1 of John Harrison's _Theorem Proving with the Real Numbers_
Inductive RealStructJH : Type :=
mk_RealStructJH :
forall R : Type,
forall z o : R,
forall p : R -> R -> R, forall m : R -> R -> R,
forall n : R -> R,
forall r : R -> R,
forall l : R -> R -> Prop,
zero_not_one R z o ->
commutative R p ->
associative R p ->
identity_l R z p ->
inverse_l R z p n ->
commutative R m ->
associative R m ->
identity_l R o m ->
inverse_exception_l R z o m r ->
distributes R p m ->
trichotomy R l ->
transitive R l ->
irreflexive R l ->
less_plus_1 R p l ->
less_mult_pos R o m l ->
HAsupremum R l ->
RealStructJH.
mk_RealStructJH :
forall R : Type,
forall z o : R,
forall p : R -> R -> R, forall m : R -> R -> R,
forall n : R -> R,
forall r : R -> R,
forall l : R -> R -> Prop,
zero_not_one R z o ->
commutative R p ->
associative R p ->
identity_l R z p ->
inverse_l R z p n ->
commutative R m ->
associative R m ->
identity_l R o m ->
inverse_exception_l R z o m r ->
distributes R p m ->
trichotomy R l ->
transitive R l ->
irreflexive R l ->
less_plus_1 R p l ->
less_mult_pos R o m l ->
HAsupremum R l ->
RealStructJH.
Inductive RealStructJD : Type :=
mk_RealStructJD :
forall R : Type,
forall z o : R,
forall p : R -> R -> R, forall m : R -> R -> R,
forall le : R -> R -> Prop,
commutative R p ->
associative R p ->
identity_l R z p ->
exist_inv_l R z p ->
commutative R m ->
associative R m ->
zero_not_one R z o ->
identity_l R o m ->
exist_inv_l_ex R z o m ->
distributes R p m ->
transitive R le ->
antisymmetric R le ->
linear R le ->
less_plus_1 R p le ->
less_mult_pos R o m le ->
JDarchimedean R z p le ->
JDnestedIntervals R le ->
RealStructJD.
Axiom System A'
Section 61 of Alfred Tarski's _Introduction to Logic and to the Methodology of Deductive Sciences_ 1994 Edited by Jan Tarski.Inductive RealStructTA' : Type :=
mk_RealStructTA' :
forall R : Type,
forall o : R,
forall p : R -> R -> R,
forall l : R -> R -> Prop,
trichotomy R l ->
asymmetric R l ->
dense R l ->
TAcompleteness R l ->
ac_twist R p ->
exist_solns_1 R p ->
less_plus R p l ->
one_less_two R o p l ->
RealStructTA'.
Axiom System A''
Section 63 of Alfred Tarski's _Introduction to Logic and to the Methodology of Deductive Sciences_ 1994 Edited by Jan Tarski. This is said to be similar to Hilbert's 1900 axiomatization.
Inductive RealStructTA'' : Type :=
mk_RealStructTA'' :
forall R : Type,
forall z o : R,
forall p : R -> R -> R, forall m : R -> R -> R,
forall l : R -> R -> Prop,
trichotomy R l ->
asymmetric R l ->
transitive R l ->
TAcompleteness R l ->
commutative R p ->
associative R p ->
exist_solns_1 R p ->
less_plus_1 R p l ->
identity_r R z p ->
commutative R m ->
associative R m ->
exist_solns_2 R z m ->
less_mult R z m l ->
distributes R p m ->
identity_r R o m ->
zero_not_one R z o ->
RealStructTA''.