Calculemus


Pelletier Module

Some Pelletier problems to compare proof procedures.

Table of contents

Propositional Logic

Functions and values

Function or value Description

Pelletier.p1

Full Usage: Pelletier.p1

Returns: formula<fol>

p ==> q <=> ~q ==> ~p

Returns: formula<fol>

Pelletier.p10

Full Usage: Pelletier.p10

Returns: formula<fol>

(q ==> r) /\ (r ==> p /\ q) /\ (p ==> q /\ r) ==> (p <=> q)

Returns: formula<fol>

Pelletier.p11

Full Usage: Pelletier.p11

Returns: formula<fol>

p <=> p

Returns: formula<fol>

Pelletier.p12

Full Usage: Pelletier.p12

Returns: formula<fol>

((p <=> q) <=> r) <=> (p <=> (q <=> r))

Returns: formula<fol>

Pelletier.p13

Full Usage: Pelletier.p13

Returns: formula<fol>

p \/ q /\ r <=> (p \/ q) /\ (p \/ r)

Returns: formula<fol>

Pelletier.p14

Full Usage: Pelletier.p14

Returns: formula<fol>

(p <=> q) <=> (q \/ ~p) /\ (~q \/ p)

Returns: formula<fol>

Pelletier.p15

Full Usage: Pelletier.p15

Returns: formula<fol>

p ==> q <=> ~p \/ q

Returns: formula<fol>

Pelletier.p16

Full Usage: Pelletier.p16

Returns: formula<fol>

(p ==> q) \/ (q ==> p)

Returns: formula<fol>

Pelletier.p17

Full Usage: Pelletier.p17

Returns: formula<fol>

p /\ (q ==> r) ==> s <=> (~p \/ q \/ s) /\ (~p \/ ~r \/ s)

Returns: formula<fol>

Pelletier.p2

Full Usage: Pelletier.p2

Returns: formula<fol>

~ ~p <=> p

Returns: formula<fol>

Pelletier.p3

Full Usage: Pelletier.p3

Returns: formula<fol>

~(p ==> q) ==> q ==> p

Returns: formula<fol>

Pelletier.p4

Full Usage: Pelletier.p4

Returns: formula<fol>

~p ==> q <=> ~q ==> p

Returns: formula<fol>

Pelletier.p5

Full Usage: Pelletier.p5

Returns: formula<fol>

(p \/ q ==> p \/ r) ==> p \/ (q ==> r)

Returns: formula<fol>

Pelletier.p6

Full Usage: Pelletier.p6

Returns: formula<fol>

p \/ ~p

Returns: formula<fol>

Pelletier.p7

Full Usage: Pelletier.p7

Returns: formula<fol>

p \/ ~ ~ ~p

Returns: formula<fol>

Pelletier.p8

Full Usage: Pelletier.p8

Returns: formula<fol>

((p ==> q) ==> p) ==> p

Returns: formula<fol>

Pelletier.p9

Full Usage: Pelletier.p9

Returns: formula<fol>

(p \/ q) /\ (~p \/ q) /\ (p \/ ~q) ==> ~(~q \/ ~q)

Returns: formula<fol>

Monadic Predicate Logic

Functions and values

Function or value Description

Pelletier.p18

Full Usage: Pelletier.p18

Returns: formula<fol>

exists y. forall x. P(y) ==> P(x)

Returns: formula<fol>

Pelletier.p19

Full Usage: Pelletier.p19

Returns: formula<fol>

exists x. forall y z. (P(y) ==> Q(z)) ==> P(x) ==> Q(x)

Returns: formula<fol>

Pelletier.p20

Full Usage: Pelletier.p20

Returns: formula<fol>

(forall x y. exists z. forall w. P(x) /\ Q(y) ==> R(z) /\ U(w)) ==> (exists x y. P(x) /\ Q(y)) ==> (exists z. R(z))

Returns: formula<fol>

Pelletier.p21

Full Usage: Pelletier.p21

Returns: formula<fol>

(exists x. P ==> Q(x)) /\ (exists x. Q(x) ==> P) ==> (exists x. P <=> Q(x))

Returns: formula<fol>

Pelletier.p22

Full Usage: Pelletier.p22

Returns: formula<fol>

(forall x. P <=> Q(x)) ==> (P <=> (forall x. Q(x)))

Returns: formula<fol>

Pelletier.p23

Full Usage: Pelletier.p23

Returns: formula<fol>

(forall x. P \/ Q(x)) <=> P \/ (forall x. Q(x))

Returns: formula<fol>

Pelletier.p24

Full Usage: Pelletier.p24

Returns: formula<fol>

~(exists x. U(x) /\ Q(x)) /\ (forall x. P(x) ==> Q(x) \/ R(x)) /\ ~(exists x. P(x) ==> (exists x. Q(x))) /\ (forall x. Q(x) /\ R(x) ==> U(x)) ==> (exists x. P(x) /\ R(x))

Returns: formula<fol>

Pelletier.p25

Full Usage: Pelletier.p25

Returns: formula<fol>

(exists x. P(x)) /\ (forall x. U(x) ==> ~G(x) /\ R(x)) /\ (forall x. P(x) ==> G(x) /\ U(x)) /\ ((forall x. P(x) ==> Q(x)) \/ (exists x. Q(x) /\ P(x))) ==> (exists x. Q(x) /\ P(x))

Returns: formula<fol>

Pelletier.p26

Full Usage: Pelletier.p26

Returns: formula<fol>

((exists x. P(x)) <=> (exists x. Q(x))) /\ (forall x y. P(x) /\ Q(y) ==> (R(x) <=> U(y))) ==> ((forall x. P(x) ==> R(x)) <=> (forall x. Q(x) ==> U(x)))

Returns: formula<fol>

Pelletier.p27

Full Usage: Pelletier.p27

Returns: formula<fol>

(exists x. P(x) /\ ~Q(x)) /\ (forall x. P(x) ==> R(x)) /\ (forall x. U(x) /\ V(x) ==> P(x)) /\ (exists x. R(x) /\ ~Q(x)) ==> (forall x. U(x) ==> ~R(x)) ==> (forall x. U(x) ==> ~V(x))

Returns: formula<fol>

Pelletier.p28

Full Usage: Pelletier.p28

Returns: formula<fol>

(forall x. P(x) ==> (forall x. Q(x))) /\ ((forall x. Q(x) \/ R(x)) ==> (exists x. Q(x) /\ R(x))) /\ ((exists x. R(x)) ==> (forall x. L(x) ==> M(x))) ==> (forall x. P(x) /\ L(x) ==> M(x))

Returns: formula<fol>

Pelletier.p29

Full Usage: Pelletier.p29

Returns: formula<fol>

(exists x. P(x)) /\ (exists x. G(x)) ==> ((forall x. P(x) ==> H(x)) /\ (forall x. G(x) ==> J(x)) <=> (forall x y. P(x) /\ G(y) ==> H(x) /\ J(y)))

Returns: formula<fol>

Pelletier.p30

Full Usage: Pelletier.p30

Returns: formula<fol>

(forall x. P(x) \/ G(x) ==> ~H(x)) /\ (forall x. (G(x) ==> ~U(x)) ==> P(x) /\ H(x)) ==> (forall x. U(x))

Returns: formula<fol>

Pelletier.p31

Full Usage: Pelletier.p31

Returns: formula<fol>

~(exists x. P(x) /\ (G(x) \/ H(x))) /\ (exists x. Q(x) /\ P(x)) /\ (forall x. ~H(x) ==> J(x)) ==> (exists x. Q(x) /\ J(x))

Returns: formula<fol>

Pelletier.p32

Full Usage: Pelletier.p32

Returns: formula<fol>

(forall x. P(x) /\ (G(x) \/ H(x)) ==> Q(x)) /\ (forall x. Q(x) /\ H(x) ==> J(x)) /\ (forall x. R(x) ==> H(x)) ==> (forall x. P(x) /\ R(x) ==> J(x))

Returns: formula<fol>

Pelletier.p33

Full Usage: Pelletier.p33

Returns: formula<fol>

(forall x. P(a) /\ (P(x) ==> P(b)) ==> P(c)) <=> (forall x. P(a) ==> P(x) \/ P(c)) /\ (P(a) ==> P(b) ==> P(c))

Returns: formula<fol>

Pelletier.p34

Full Usage: Pelletier.p34

Returns: formula<fol>

((exists x. forall y. P(x) <=> P(y)) <=> ((exists x. Q(x)) <=> (forall y. Q(y)))) <=> ((exists x. forall y. Q(x) <=> Q(y)) <=> ((exists x. P(x)) <=> (forall y. P(y))))

Returns: formula<fol>

Pelletier.p35

Full Usage: Pelletier.p35

Returns: formula<fol>

exists x y. P(x,y) ==> (forall x y. P(x,y))

Returns: formula<fol>

Full predicate logic (without Identity and Functions)

Functions and values

Function or value Description

Pelletier.p36

Full Usage: Pelletier.p36

Returns: formula<fol>

(forall x. exists y. J(x,y)) /\ (forall x. exists y. G(x,y)) /\ (forall x y. J(x,y) \/ G(x,y) ==> (forall z. J(y,z) \/ G(y,z) ==> H(x, z))) ==> (forall x. exists y. H(x,y))

Returns: formula<fol>

Pelletier.p37

Full Usage: Pelletier.p37

Returns: formula<fol>

(forall z. exists w. forall x. exists y. (P(x,z) ==> P(y,w)) /\ P(y,z) /\ (P(y,w) ==> (exists u. Q(u,w)))) /\ (forall x z. ~P(x,z) ==> (exists y. Q(y,z))) /\ ((exists x y. Q(x,y)) ==> (forall x. R(x,x))) ==> (forall x. exists y. R(x,y))

Returns: formula<fol>

Pelletier.p38

Full Usage: Pelletier.p38

Returns: formula<fol>

(forall x. P(a) /\ (P(x) ==> (exists y. P(y) /\ R(x,y))) ==> (exists z w. P(z) /\ R(x,w) /\ R(w,z))) <=> (forall x. (~P(a) \/ P(x) \/ (exists z w. P(z) /\ R(x,w) /\ R(w,z))) /\ (~P(a) \/ ~(exists y. P(y) /\ R(x,y)) \/ (exists z w. P(z) /\ R(x,w) /\ R(w,z))))

Returns: formula<fol>

Pelletier.p39

Full Usage: Pelletier.p39

Returns: formula<fol>

~(exists x. forall y. P(y,x) <=> ~P(y,y))

Returns: formula<fol>

Pelletier.p40

Full Usage: Pelletier.p40

Returns: formula<fol>

(exists y. forall x. P(x,y) <=> P(x,x)) ==> ~(forall x. exists y. forall z. P(z,y) <=> ~P(z,x))

Returns: formula<fol>

Pelletier.p41

Full Usage: Pelletier.p41

Returns: formula<fol>

(forall z. exists y. forall x. P(x,y) <=> P(x,z) /\ ~P(x,x)) ==> ~(exists z. forall x. P(x,z))

Returns: formula<fol>

Pelletier.p42

Full Usage: Pelletier.p42

Returns: formula<fol>

~(exists y. forall x. P(x,y) <=> ~(exists z. P(x,z) /\ P(z,x)))

Returns: formula<fol>

Pelletier.p43

Full Usage: Pelletier.p43

Returns: formula<fol>

(forall x y. Q(x,y) <=> forall z. P(z,x) <=> P(z,y)) ==> forall x y. Q(x,y) <=> Q(y,x)

Returns: formula<fol>

Pelletier.p44

Full Usage: Pelletier.p44

Returns: formula<fol>

(forall x. P(x) ==> (exists y. G(y) /\ H(x,y)) /\ (exists y. G(y) /\ ~H(x,y))) /\ (exists x. J(x) /\ (forall y. G(y) ==> H(x,y))) ==> (exists x. J(x) /\ ~P(x))

Returns: formula<fol>

Pelletier.p45

Full Usage: Pelletier.p45

Returns: formula<fol>

(forall x. P(x) /\ (forall y. G(y) /\ H(x,y) ==> J(x,y)) ==> (forall y. G(y) /\ H(x,y) ==> R(y))) /\ ~(exists y. L(y) /\ R(y)) /\ (exists x. P(x) /\ (forall y. H(x,y) ==> L(y)) /\ (forall y. G(y) /\ H(x,y) ==> J(x,y))) ==> (exists x. P(x) /\ ~(exists y. G(y) /\ H(x,y)))

Returns: formula<fol>

Pelletier.p46

Full Usage: Pelletier.p46

Returns: formula<fol>

(forall x. P(x) /\ (forall y. P(y) /\ H(y,x) ==> G(y)) ==> G(x)) /\ ((exists x. P(x) /\ ~G(x)) ==> (exists x. P(x) /\ ~G(x) /\ (forall y. P(y) /\ ~G(y) ==> J(x,y)))) /\ (forall x y. P(x) /\ P(y) /\ H(x,y) ==> ~J(y,x)) ==> (forall x. P(x) ==> G(x))

Returns: formula<fol>

Pelletier.p55

Full Usage: Pelletier.p55

Returns: formula<fol>

lives(agatha) /\ lives(butler) /\ lives(charles) /\ (killed(agatha,agatha) \/ killed(butler,agatha) \/ killed(charles,agatha)) /\ (forall x y. killed(x,y) ==> hates(x,y) /\ ~richer(x,y)) /\ (forall x. hates(agatha,x) ==> ~hates(charles,x)) /\ (hates(agatha,agatha) /\ hates(agatha,charles)) /\ (forall x. lives(x) /\ ~richer(x,agatha) ==> hates(butler,x)) /\ (forall x. hates(agatha,x) ==> hates(butler,x)) /\ (forall x. ~hates(x,agatha) \/ ~hates(x,butler) \/ ~hates(x,charles)) ==> killed(agatha,agatha) /\ ~killed(butler,agatha) /\ ~killed(charles,agatha)

Returns: formula<fol>

info hol

Functions and values

Function or value Description

Pelletier.p57

Full Usage: Pelletier.p57

Returns: formula<fol>

P(f((a),b),f(b,c)) /\ P(f(b,c),f(a,c)) /\ (forall (x) y z. P(x,y) /\ P(y,z) ==> P(x,z)) ==> P(f(a,b),f(a,c))

Returns: formula<fol>

Pelletier.p58

Full Usage: Pelletier.p58

Returns: formula<fol>

forall P Q R. forall x. exists v. exists w. forall y. forall z. ((P(x) /\ Q(y)) ==> ((P(v) \/ R(w)) /\ (R(z) ==> Q(v))))

Returns: formula<fol>

Pelletier.p59

Full Usage: Pelletier.p59

Returns: formula<fol>

(forall x. P(x) <=> ~P(f(x))) ==> (exists x. P(x) /\ ~P(f(x)))

Returns: formula<fol>

Pelletier.p60

Full Usage: Pelletier.p60

Returns: formula<fol>

forall x. P(x,f(x)) <=> exists y. (forall z. P(z,y) ==> P(z,f(x))) /\ P(x,y)

Returns: formula<fol>