Skip to content

Instantly share code, notes, and snippets.

@314maro
Created April 27, 2014 15:57
Show Gist options
  • Select an option

  • Save 314maro/11349108 to your computer and use it in GitHub Desktop.

Select an option

Save 314maro/11349108 to your computer and use it in GitHub Desktop.
完備
Section SupInf.
Variable S : Type.
Variable R : S -> S -> Prop.
Infix ">=" := R.
Infix "<=" := (fun x y => y >= x).
Definition subset : Type := S -> Prop.
Definition element (X : subset) (x : S) : Prop := X x.
Definition upper_bound (X : subset) (u : S) : Prop :=
forall x, element X x -> u >= x.
Definition lower_bound (X : subset) (u : S) : Prop :=
forall x, element X x -> u <= x.
Definition supremum (X : subset) (s : S) : Prop :=
(upper_bound X s) /¥ (forall u, upper_bound X u -> u >= s).
Definition infimum (X : subset) (s : S) : Prop :=
(lower_bound X s) /¥ (forall u, lower_bound X u -> u <= s).
Definition not_empty (X : subset) := exists x, element X x.
Variable upper_bound__sup : forall X, not_empty X
-> (exists u, upper_bound X u) -> (exists s, supremum X s).
Theorem lower_bound__inf : forall X, not_empty X
-> (exists u, lower_bound X u) -> (exists s, infimum X s).
Proof.
intros X [x Hnempty] [u Hlb].
pose (L := (fun u => lower_bound X u) : subset). simpl in L.
assert (Hsup : exists s, supremum L s).
apply upper_bound__sup.
exists u. assumption.
exists x. intros u' HLu'. unfold element, L in HLu'. apply HLu'. assumption.
destruct Hsup as [s [Hub Hmin]].
exists s. split.
- intros x' HXx'. apply Hmin. intros u' HLu'. unfold element, L in HLu'.
apply HLu'. assumption.
- intros l' Hlbl'. apply Hub. unfold element, L. assumption.
Qed.
End SupInf.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment