Module
Mathlib.Logic.Iff
npa-mathlib
Packages
2
Module
63
Theorem
750
Declarations
1016
信頼境界外の sidecar
Source text や表示 overlay は提示用メタデータです。信頼する証拠は署名済み証明書と checker の結果です。
Theorem
16
Definition
5
Inductive type
0
Axiom
1
Declarations
Iff
forall (P : Prop), forall (Q : Prop), Prop
And
forall (P : Prop), forall (Q : Prop), Prop
Or
forall (P : Prop), forall (Q : Prop), Prop
False
Prop
Not
forall (P : Prop), Prop
iff_refl
forall (P : Prop), Iff P P
iff_symm
forall (P : Prop), forall (Q : Prop), forall (h : Iff P Q), Iff Q P
iff_trans
forall (P : Prop), forall (Q : Prop), forall (R : Prop), forall (hpq : Iff P Q), forall (hqr : Iff Q R), Iff P R
iff_mp
forall (P : Prop), forall (Q : Prop), forall (h : Iff P Q), forall (p : P), Q
iff_mpr
forall (P : Prop), forall (Q : Prop), forall (h : Iff P Q), forall (q : Q), P
and_intro
forall (P : Prop), forall (Q : Prop), forall (p : P), forall (q : Q), And P Q
and_left
forall (P : Prop), forall (Q : Prop), forall (h : And P Q), P
and_right
forall (P : Prop), forall (Q : Prop), forall (h : And P Q), Q
iff_of_eq
forall (P : Prop), forall (Q : Prop), forall (h : @Eq.{1} Prop P Q), Iff P Q
false_elim
forall (P : Prop), forall (h : False), P
not_intro
forall (P : Prop), forall (h : forall (p : P), False), Not P
not_elim
forall (P : Prop), forall (hn : Not P), forall (p : P), False
or_inl
forall (P : Prop), forall (Q : Prop), forall (p : P), Or P Q
or_inr
forall (P : Prop), forall (Q : Prop), forall (q : Q), Or P Q
or_elim
forall (P : Prop), forall (Q : Prop), forall (R : Prop), forall (h : Or P Q), forall (left : forall (p : P), R), forall (right : forall (q : Q), R), R
iff_congr_arg
forall (P : Prop), forall (Q : Prop), forall (F : forall (X : Prop), Prop), forall (h : @Eq.{1} Prop P Q), Iff (F P) (F Q)
Eq.rec
Hashes
- source
- sha256:4cfbee5247057d885bf4b6af1da7576a52672853f1c6250e9dd1a70fd168f0a6
- certificateFile
- sha256:5db35953be54b9278c60ca721f5ee4a3a22e71c8087f1d3898e23b70f964bd8f
- export
- sha256:e17dc3a48900d70ad426461379d429257631555845b50b6413c20d80ca0626a9
- axiomReport
- sha256:e857a3aea953927d44e330377c011e7fe1f0892d779d46d8eb9d4cc62236ade7
- certificate
- sha256:0d6359b2b0f58d8a99c86f2ea0fd579c3d99b62391712f9b47239039ae2cf919
Source
import Std.Logic.Eq
def Iff :
forall (P : Prop), forall (Q : Prop), Prop :=
fun P => fun Q => forall (R : Prop), forall (mk : forall (forward : forall (p : P), Q), forall (backward : forall (q : Q), P), R), R
def And :
forall (P : Prop), forall (Q : Prop), Prop :=
fun P => fun Q => forall (R : Prop), forall (mk : forall (p : P), forall (q : Q), R), R
def Or :
forall (P : Prop), forall (Q : Prop), Prop :=
fun P => fun Q => forall (R : Prop), forall (left : forall (p : P), R), forall (right : forall (q : Q), R), R
def False :
Prop :=
forall (P : Prop), P
def Not :
forall (P : Prop), Prop :=
fun P => forall (p : P), False
theorem iff_refl :
forall (P : Prop), Iff P P :=
fun P => fun (R : Prop) => fun (mk : forall (forward : forall (p : P), P), forall (backward : forall (p : P), P), R) => mk (fun (p : P) => p) (fun (p : P) => p)
theorem iff_symm :
forall (P : Prop), forall (Q : Prop), forall (h : Iff P Q), Iff Q P :=
fun P => fun Q => fun h => fun (R : Prop) => fun (mk : forall (forward : forall (q : Q), P), forall (backward : forall (p : P), Q), R) => h R (fun (forward : forall (p : P), Q) => fun (backward : forall (q : Q), P) => mk backward forward)
theorem iff_trans :
forall (P : Prop), forall (Q : Prop), forall (R : Prop), forall (hpq : Iff P Q), forall (hqr : Iff Q R), Iff P R :=
fun P => fun Q => fun R => fun hpq => fun hqr => fun (S : Prop) => fun (mk : forall (forward : forall (p : P), R), forall (backward : forall (r : R), P), S) => hpq S (fun (pq : forall (p : P), Q) => fun (qp : forall (q : Q), P) => hqr S (fun (qr : forall (q : Q), R) => fun (rq : forall (r : R), Q) => mk (fun (p : P) => qr (pq p)) (fun (r : R) => qp (rq r))))
theorem iff_mp :
forall (P : Prop), forall (Q : Prop), forall (h : Iff P Q), forall (p : P), Q :=
fun P => fun Q => fun h => fun p => h Q (fun (forward : forall (p : P), Q) => fun (backward : forall (q : Q), P) => forward p)
theorem iff_mpr :
forall (P : Prop), forall (Q : Prop), forall (h : Iff P Q), forall (q : Q), P :=
fun P => fun Q => fun h => fun q => h P (fun (forward : forall (p : P), Q) => fun (backward : forall (q : Q), P) => backward q)
theorem and_intro :
forall (P : Prop), forall (Q : Prop), forall (p : P), forall (q : Q), And P Q :=
fun P => fun Q => fun p => fun q => fun (R : Prop) => fun (mk : forall (p : P), forall (q : Q), R) => mk p q
theorem and_left :
forall (P : Prop), forall (Q : Prop), forall (h : And P Q), P :=
fun P => fun Q => fun h => h P (fun (p : P) => fun (q : Q) => p)
theorem and_right :
forall (P : Prop), forall (Q : Prop), forall (h : And P Q), Q :=
fun P => fun Q => fun h => h Q (fun (p : P) => fun (q : Q) => q)
theorem iff_of_eq :
forall (P : Prop), forall (Q : Prop), forall (h : @Eq.{1} Prop P Q), Iff P Q :=
fun P => fun Q => fun h => @Eq.rec.{1,0} Prop P (fun (R : Prop) => fun (hR : @Eq.{1} Prop P R) => Iff P R) (iff_refl P) Q h
theorem false_elim :
forall (P : Prop), forall (h : False), P :=
fun P => fun h => h P
theorem not_intro :
forall (P : Prop), forall (h : forall (p : P), False), Not P :=
fun P => fun h => h
theorem not_elim :
forall (P : Prop), forall (hn : Not P), forall (p : P), False :=
fun P => fun hn => fun p => hn p
theorem or_inl :
forall (P : Prop), forall (Q : Prop), forall (p : P), Or P Q :=
fun P => fun Q => fun p => fun (R : Prop) => fun (left : forall (p : P), R) => fun (right : forall (q : Q), R) => left p
theorem or_inr :
forall (P : Prop), forall (Q : Prop), forall (q : Q), Or P Q :=
fun P => fun Q => fun q => fun (R : Prop) => fun (left : forall (p : P), R) => fun (right : forall (q : Q), R) => right q
theorem or_elim :
forall (P : Prop), forall (Q : Prop), forall (R : Prop), forall (h : Or P Q), forall (left : forall (p : P), R), forall (right : forall (q : Q), R), R :=
fun P => fun Q => fun R => fun h => fun left => fun right => h R left right
theorem iff_congr_arg :
forall (P : Prop), forall (Q : Prop), forall (F : forall (X : Prop), Prop), forall (h : @Eq.{1} Prop P Q), Iff (F P) (F Q) :=
fun P => fun Q => fun F => fun h => @Eq.rec.{1,0} Prop P (fun (R : Prop) => fun (hR : @Eq.{1} Prop P R) => Iff (F P) (F R)) (iff_refl (F P)) Q h