Section
Ensembles.
Variable
U: Type.
Definition
Ensemble := U -> Prop.
Definition
In : Ensemble -> U -> Prop := [A: Ensemble] [x: U] (A x).
Definition
Included : Ensemble -> Ensemble -> Prop :=
[B, C: Ensemble] (x: U) (In B x) -> (In C x).
Inductive
Empty_set : Ensemble :=
.
Inductive
Full_set : Ensemble :=
Full_intro: (x: U) (In Full_set x).
NB: The following definition builds-in equality of elements in U as Leibniz equality.
This may have to be changed if we replace |
Inductive
Singleton [x:U] : Ensemble :=
In_singleton: (In (Singleton x) x).
Inductive
Union [B, C: Ensemble] : Ensemble :=
Union_introl: (x: U) (In B x) -> (In (Union B C) x)
| Union_intror: (x: U) (In C x) -> (In (Union B C) x).
Definition
Add
: Ensemble -> U -> Ensemble :=
[B: Ensemble] [x: U] (Union B (Singleton x)).
Inductive
Intersection [B, C:Ensemble] : Ensemble :=
Intersection_intro:
(x: U) (In B x) -> (In C x) -> (In (Intersection B C) x).
Inductive
Couple [x,y:U] : Ensemble :=
Couple_l: (In (Couple x y) x)
| Couple_r: (In (Couple x y) y).
Inductive
Triple[x, y, z:U] : Ensemble :=
Triple_l: (In (Triple x y z) x)
| Triple_m: (In (Triple x y z) y)
| Triple_r: (In (Triple x y z) z).
Definition
Complement : Ensemble -> Ensemble :=
[A: Ensemble] [x: U] ~ (In A x).
Definition
Setminus : Ensemble -> Ensemble -> Ensemble :=
[B: Ensemble] [C: Ensemble] [x: U] (In B x) /\ ~ (In C x).
Definition
Subtract : Ensemble -> U -> Ensemble :=
[B: Ensemble] [x: U] (Setminus B (Singleton x)).
Inductive
Disjoint [B, C:Ensemble] : Prop :=
Disjoint_intro: ((x: U) ~ (In (Intersection B C) x)) -> (Disjoint B C).
Inductive
Inhabited [B:Ensemble] : Prop :=
Inhabited_intro: (x: U) (In B x) -> (Inhabited B).
Definition
Strict_Included : Ensemble -> Ensemble -> Prop :=
[B, C: Ensemble] (Included B C) /\ ~ B == C.
Definition
Same_set : Ensemble -> Ensemble -> Prop :=
[B, C: Ensemble] (Included B C) /\ (Included C B).
Extensionality Axiom |
Axiom
Extensionality_Ensembles:
(A,B: Ensemble) (Same_set A B) -> A == B.
Hints
Resolve Extensionality_Ensembles.
End
Ensembles.
Hints
Unfold In Included Same_set Strict_Included Add
Setminus Subtract : sets v62.
Hints
Resolve Union_introl Union_intror Intersection_intro In_singleton Couple_l
Couple_r Triple_l Triple_m Triple_r Disjoint_intro
Extensionality_Ensembles : sets v62.