今日の証明

1章 $1 例題4  以下c)を示せ。

c) M ⊆ M' ⇒ M ∪ N M' ∪ N  、M ∩ N M' ∩ N.

上記をcoq/SSReflectで解いてみる。

問題自体は中学生程度で見りゃ分かるだろう程度です。

でも、coqを使用すると大学教授クラスでも納得する証明ができる・・と思う。

------------------

Theorem math_1_1_exp_4_c: forall (M M' N:Ensemble M),
M ⊆ M' -> M ∪ N ⊆ M' ∪ N  /\ M ∩ N ⊆ M' ∩ N.
Proof.
  intros M M' N.
  split.

 

** 今日はここまで。。(1年半サボってたので解き方を脳内よりほぼ消失した。)

下に張り付けた画像を見るとcoq/SSReflect形式化は正しいようだ。

今日はここまで。

取りあえず証明できました。

使った補題2個。。

Theorem math_1_1_exp_4_c: forall (M M' N:Ensemble M),
M ⊆ M' -> M ∪ N ⊆ M' ∪ N  /\ M ∩ N ⊆ M' ∩ N.
Proof.
  intros M M' N.
  split.
  - apply math_1_1_exp_4c1.
    apply H.
  - apply math_1_1_exp_4c2.
    apply H.
Qed.

補題2個

Theorem math_1_1_exp_4c1: forall (M M' N:Ensemble M),
  M ⊆ M' -> M ∪ N ⊆ M' ∪ N.
Proof.
  intros M M' N.
  intros H.
  apply math_1_1_8.
  split.
  - unfold Included in H.
      unfold Included.
      intros x H1.
      apply H in H1.
      apply Union_introl.
      apply H1.
  - apply math_1_1_7_2.
Qed.

Theorem math_1_1_exp_4c2: forall (M M' N:Ensemble M),
  M ⊆ M' -> M ∩ N ⊆ M' ∩ N.
Proof.
  intros M M' N.
  intros H.
  apply math_1_1_8'.
  split.
  - unfold Included in H.
      unfold Included.
      intros x H1.
      apply H.
      destruct H1 as [x1 Hm Hn].
      apply Hm.
  - apply math_1_1_7'_2.
Qed.

この補題補題が4個ある。。整理できてません。。汗)

 

Theorem math_1_1_8: forall(S M N:Ensemble M),
  M ⊆ S /\ N ⊆ S -> (M ∪ N) ⊆ S.
Proof.
  intros S M N.
  intros H.
  destruct H as [Hnm Hsm].
  unfold Included in Hnm.
  unfold Included in Hsm.
  unfold Included.
  intros x Hx.
  destruct Hx as [x1 H1| x2 H2].
  apply Hnm.
  apply H1.
  apply Hsm.
  apply H2.
Qed.

Theorem math_1_1_8': forall(S M N:Ensemble M),
  S ⊆ M /\ S ⊆ N -> S ⊆ (M ∩ N).
Proof.
  intros S M N.
  intros H.
  destruct H as [Hsm Hsn].
  unfold Included in Hsm.
  unfold Included in Hsn.
  unfold Included.
  intros x Hx.
  apply Intersection_intro.
  apply Hsm.
  apply Hx.
  apply Hsn.
  apply Hx.
Qed.

Theorem math_1_1_7'_2: forall(M N:Ensemble M),
  (M ∩ N) ⊆ N.
Proof.
  intros M N.
  unfold Included.
  intros x H.
  destruct H as [x Hm Hn].
  apply Hn.
Qed.

Theorem math_1_1_7_2: forall(M N:Ensemble M),
  N ⊆ (M ∪ N).
Proof.
  intros M N.
  unfold Included.
  intros x Hn.
(*   right. *)
  apply Union_intror.
  apply Hn.
Qed.

今日はここまで。