]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/contribs/ng_TPTP/COL053-1.ma
Preparing for 0.5.9 release.
[helm.git] / helm / software / matita / contribs / ng_TPTP / COL053-1.ma
1 include "logic/equality.ma".
2
3 (* Inclusion of: COL053-1.p *)
4
5 (* -------------------------------------------------------------------------- *)
6
7 (*  File     : COL053-1 : TPTP v3.7.0. Released v1.0.0. *)
8
9 (*  Domain   : Combinatory Logic *)
10
11 (*  Problem  : An Exercise in Composition *)
12
13 (*  Version  : Especial. *)
14
15 (*  English  : For all birds x and y, there exists a bird z that composes  *)
16
17 (*             x with y for all birds w. Prove that for all birds x, y, and  *)
18
19 (*             z, there exists a bird u such that for all w, uw = x(y(zw)). *)
20
21 (*  Refs     : [Smu85] Smullyan (1978), To Mock a Mocking Bird and Other Logi *)
22
23 (*  Source   : [ANL] *)
24
25 (*  Names    : bird5.ver1.in [ANL] *)
26
27 (*  Status   : Unsatisfiable *)
28
29 (*  Rating   : 0.00 v2.0.0 *)
30
31 (*  Syntax   : Number of clauses     :    2 (   0 non-Horn;   2 unit;   1 RR) *)
32
33 (*             Number of atoms       :    2 (   2 equality) *)
34
35 (*             Maximal clause size   :    1 (   1 average) *)
36
37 (*             Number of predicates  :    1 (   0 propositional; 2-2 arity) *)
38
39 (*             Number of functors    :    6 (   3 constant; 0-2 arity) *)
40
41 (*             Number of variables   :    4 (   0 singleton) *)
42
43 (*             Maximal term depth    :    5 (   4 average) *)
44
45 (*  Comments :  *)
46
47 (* -------------------------------------------------------------------------- *)
48
49 (* ----For all birds x and y, there exists a bird z that composes x with  *)
50
51 (* ----y for all birds w. *)
52
53 (* ----   FAx FAy TEz FAw [response(z,w) = response(x,response(y,w))]. *)
54
55 (* ----   response(comp(x,y),w) = response(x,response(y,w)).  *)
56
57 (* ----Hypothesis: For all birds x, y, and z, there exists a bird u such  *)
58
59 (* ----that for all w, uw = x(y(zw)). *)
60
61 (* ----Finding clause (using xy to replace response(x,y)): *)
62
63 (* ----  - (FAx FAy FAz TEu FAw (uw = x(y(zw)))). *)
64
65 (* ----  TEx TEy TEz FAu TEw -(uw = x(y(zw))). *)
66
67 (* ----  Letting w = f(u), x = A, y = B, and z = C, *)
68
69 (* ----  -[(u)f(u) = A(B((C)f(u)))]. *)
70 ntheorem prove_bird_exists:
71  (∀Univ:Type.∀U:Univ.∀W:Univ.∀X:Univ.∀Y:Univ.
72 ∀a:Univ.
73 ∀b:Univ.
74 ∀c:Univ.
75 ∀compose:∀_:Univ.∀_:Univ.Univ.
76 ∀f:∀_:Univ.Univ.
77 ∀response:∀_:Univ.∀_:Univ.Univ.
78 ∀H0:∀W:Univ.∀X:Univ.∀Y:Univ.eq Univ (response (compose X Y) W) (response X (response Y W)).∃U:Univ.eq Univ (response U (f U)) (response a (response b (response c (f U)))))
79 .
80 #Univ ##.
81 #U ##.
82 #W ##.
83 #X ##.
84 #Y ##.
85 #a ##.
86 #b ##.
87 #c ##.
88 #compose ##.
89 #f ##.
90 #response ##.
91 #H0 ##.
92 napply (ex_intro ? ? ? ?) ##[
93 ##2:
94 nauto by H0 ##;
95 ##| ##skip ##]
96 ntry (nassumption) ##;
97 nqed.
98
99 (* -------------------------------------------------------------------------- *)