Back to NPA

Module

Mathlib.Logic.Basic

npa-mathlib

Packages

2

Module

63

Theorems

750

Declarations

1016

Untrusted sidecar

Source text and display overlays are presentation metadata. The signed certificate and checker result are the trusted evidence.

Theorems

20

Definitions

0

Inductive types

0

Axioms

0

Declarations

id

forall (A : Type), forall (x : A), A

theorem

const_left

forall (A : Type), forall (B : Type), forall (x : A), forall (y : B), A

theorem

const_right

forall (A : Type), forall (B : Type), forall (x : A), forall (y : B), B

theorem

apply_fn

forall (A : Type), forall (B : Type), forall (f : forall (x : A), B), forall (x : A), B

theorem

compose

forall (A : Type), forall (B : Type), forall (C : Type), forall (f : forall (x : B), C), forall (g : forall (x : A), B), forall (x : A), C

theorem

flip

forall (A : Type), forall (B : Type), forall (C : Type), forall (f : forall (x : A), forall (y : B), C), forall (y : B), forall (x : A), C

theorem

duplicate

forall (A : Type), forall (B : Type), forall (f : forall (x : A), forall (y : A), B), forall (x : A), B

theorem

prop_id

forall (P : Prop), forall (p : P), P

theorem

modus_ponens

forall (P : Prop), forall (Q : Prop), forall (h : forall (p : P), Q), forall (p : P), Q

theorem

imp_trans

forall (P : Prop), forall (Q : Prop), forall (R : Prop), forall (pq : forall (p : P), Q), forall (qr : forall (q : Q), R), forall (p : P), R

theorem

compose_assoc

forall (A : Type), forall (B : Type), forall (C : Type), forall (D : Type), forall (h : forall (x : C), D), forall (g : forall (x : B), C), forall (f : forall (...

theorem

apply_twice

forall (A : Type), forall (f : forall (x : A), A), forall (x : A), A

theorem

ignore_middle

forall (A : Type), forall (B : Type), forall (C : Type), forall (x : A), forall (y : B), forall (z : C), A

theorem

select_middle

forall (A : Type), forall (B : Type), forall (C : Type), forall (x : A), forall (y : B), forall (z : C), B

theorem

select_last

forall (A : Type), forall (B : Type), forall (C : Type), forall (x : A), forall (y : B), forall (z : C), C

theorem

imp_swap

forall (P : Prop), forall (Q : Prop), forall (R : Prop), forall (h : forall (p : P), forall (q : Q), R), forall (q : Q), forall (p : P), R

theorem

imp_compose

forall (P : Prop), forall (Q : Prop), forall (R : Prop), forall (qr : forall (q : Q), R), forall (pq : forall (p : P), Q), forall (p : P), R

theorem

imp_ignore

forall (P : Prop), forall (Q : Prop), forall (p : P), forall (q : Q), P

theorem

imp_duplicate

forall (P : Prop), forall (Q : Prop), forall (h : forall (p1 : P), forall (p2 : P), Q), forall (p : P), Q

theorem

higher_apply

forall (A : Type), forall (B : Type), forall (C : Type), forall (h : forall (f : forall (x : A), B), C), forall (f : forall (x : A), B), C

theorem

Hashes

source
sha256:2176be7570deae66754789868aa373ab01434512b4f50b992089886d2c655387
certificateFile
sha256:e04584ba3e7b9e5c9206b1a5d82e136c77de980e51ac173b432007f67e3c86bf
export
sha256:3341d28e9d1d9dd875138399ab1bd7aa6e2727449cb87fe03c73b220c4b231c0
axiomReport
sha256:fed11e73accfbfb0dfc28b4f510e151fa33d8af82d58fdb23b92567e04e59e40
certificate
sha256:d64221c5341ec96723fd18aa570e1e995af8fd5d6c4ce0f4a6bb96f0aa7a5569

Source

theorem id :
  forall (A : Type), forall (x : A), A :=
  fun A => fun x => x

theorem const_left :
  forall (A : Type), forall (B : Type), forall (x : A), forall (y : B), A :=
  fun A => fun B => fun x => fun y => x

theorem const_right :
  forall (A : Type), forall (B : Type), forall (x : A), forall (y : B), B :=
  fun A => fun B => fun x => fun y => y

theorem apply_fn :
  forall (A : Type), forall (B : Type), forall (f : forall (x : A), B), forall (x : A), B :=
  fun A => fun B => fun f => fun x => f x

theorem compose :
  forall (A : Type), forall (B : Type), forall (C : Type), forall (f : forall (x : B), C), forall (g : forall (x : A), B), forall (x : A), C :=
  fun A => fun B => fun C => fun f => fun g => fun x => f (g x)

theorem flip :
  forall (A : Type), forall (B : Type), forall (C : Type), forall (f : forall (x : A), forall (y : B), C), forall (y : B), forall (x : A), C :=
  fun A => fun B => fun C => fun f => fun y => fun x => f x y

theorem duplicate :
  forall (A : Type), forall (B : Type), forall (f : forall (x : A), forall (y : A), B), forall (x : A), B :=
  fun A => fun B => fun f => fun x => f x x

theorem prop_id :
  forall (P : Prop), forall (p : P), P :=
  fun P => fun p => p

theorem modus_ponens :
  forall (P : Prop), forall (Q : Prop), forall (h : forall (p : P), Q), forall (p : P), Q :=
  fun P => fun Q => fun h => fun p => h p

theorem imp_trans :
  forall (P : Prop), forall (Q : Prop), forall (R : Prop), forall (pq : forall (p : P), Q), forall (qr : forall (q : Q), R), forall (p : P), R :=
  fun P => fun Q => fun R => fun pq => fun qr => fun p => qr (pq p)

theorem compose_assoc :
  forall (A : Type), forall (B : Type), forall (C : Type), forall (D : Type), forall (h : forall (x : C), D), forall (g : forall (x : B), C), forall (f : forall (x : A), B), forall (x : A), D :=
  fun A => fun B => fun C => fun D => fun h => fun g => fun f => fun x => h (g (f x))

theorem apply_twice :
  forall (A : Type), forall (f : forall (x : A), A), forall (x : A), A :=
  fun A => fun f => fun x => f (f x)

theorem ignore_middle :
  forall (A : Type), forall (B : Type), forall (C : Type), forall (x : A), forall (y : B), forall (z : C), A :=
  fun A => fun B => fun C => fun x => fun y => fun z => x

theorem select_middle :
  forall (A : Type), forall (B : Type), forall (C : Type), forall (x : A), forall (y : B), forall (z : C), B :=
  fun A => fun B => fun C => fun x => fun y => fun z => y

theorem select_last :
  forall (A : Type), forall (B : Type), forall (C : Type), forall (x : A), forall (y : B), forall (z : C), C :=
  fun A => fun B => fun C => fun x => fun y => fun z => z

theorem imp_swap :
  forall (P : Prop), forall (Q : Prop), forall (R : Prop), forall (h : forall (p : P), forall (q : Q), R), forall (q : Q), forall (p : P), R :=
  fun P => fun Q => fun R => fun h => fun q => fun p => h p q

theorem imp_compose :
  forall (P : Prop), forall (Q : Prop), forall (R : Prop), forall (qr : forall (q : Q), R), forall (pq : forall (p : P), Q), forall (p : P), R :=
  fun P => fun Q => fun R => fun qr => fun pq => fun p => qr (pq p)

theorem imp_ignore :
  forall (P : Prop), forall (Q : Prop), forall (p : P), forall (q : Q), P :=
  fun P => fun Q => fun p => fun q => p

theorem imp_duplicate :
  forall (P : Prop), forall (Q : Prop), forall (h : forall (p1 : P), forall (p2 : P), Q), forall (p : P), Q :=
  fun P => fun Q => fun h => fun p => h p p

theorem higher_apply :
  forall (A : Type), forall (B : Type), forall (C : Type), forall (h : forall (f : forall (x : A), B), C), forall (f : forall (x : A), B), C :=
  fun A => fun B => fun C => fun h => fun f => h f