]> matita.cs.unibo.it Git - helm.git/blob - matitaB/matita/contribs/ng_TPTP/COL004-1.ma
New management of justifications.
[helm.git] / matitaB / matita / contribs / ng_TPTP / COL004-1.ma
1 include "logic/equality.ma".
2
3 (* Inclusion of: COL004-1.p *)
4
5 (* -------------------------------------------------------------------------- *)
6
7 (*  File     : COL004-1 : TPTP v3.7.0. Released v1.0.0. *)
8
9 (*  Domain   : Combinatory Logic *)
10
11 (*  Problem  : Find combinator equivalent to U from S and K *)
12
13 (*  Version  : [WM88] (equality) axioms. *)
14
15 (*  English  : Construct from S and K alone a combinator that behaves as the  *)
16
17 (*             combinator U does, where ((Sx)y)z = (xz)(yz), (Kx)y  *)
18
19 (*             = x, (Ux)y = y((xx)y). *)
20
21 (*  Refs     : [WM88]  Wos & McCune (1988), Challenge Problems Focusing on Eq *)
22
23 (*  Source   : [WM88] *)
24
25 (*  Names    : Problem 4 [WM88] *)
26
27 (*  Status   : Unsatisfiable *)
28
29 (*  Rating   : 0.44 v3.4.0, 0.38 v3.3.0, 0.50 v3.2.0, 0.57 v3.1.0, 0.67 v2.7.0, 0.55 v2.6.0, 0.17 v2.5.0, 0.25 v2.4.0, 0.00 v2.2.1, 0.56 v2.2.0, 0.57 v2.1.0, 1.00 v2.0.0 *)
30
31 (*  Syntax   : Number of clauses     :    3 (   0 non-Horn;   3 unit;   1 RR) *)
32
33 (*             Number of atoms       :    3 (   3 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    :    5 (   2 constant; 0-2 arity) *)
40
41 (*             Number of variables   :    6 (   1 singleton) *)
42
43 (*             Maximal term depth    :    5 (   3 average) *)
44
45 (*  Comments :  *)
46
47 (* -------------------------------------------------------------------------- *)
48 ntheorem prove_u_combinator:
49  (∀Univ:Type.∀X:Univ.∀Y:Univ.∀Z:Univ.
50 ∀apply:∀_:Univ.∀_:Univ.Univ.
51 ∀f:∀_:Univ.Univ.
52 ∀g:∀_:Univ.Univ.
53 ∀k:Univ.
54 ∀s:Univ.
55 ∀H0:∀X:Univ.∀Y:Univ.eq Univ (apply (apply k X) Y) X.
56 ∀H1:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply s X) Y) Z) (apply (apply X Z) (apply Y Z)).∃Z:Univ.eq Univ (apply (apply Z (f Z)) (g Z)) (apply (g Z) (apply (apply (f Z) (f Z)) (g Z))))
57 .
58 #Univ ##.
59 #X ##.
60 #Y ##.
61 #Z ##.
62 #apply ##.
63 #f ##.
64 #g ##.
65 #k ##.
66 #s ##.
67 #H0 ##.
68 #H1 ##.
69 napply (ex_intro ? ? ? ?) ##[
70 ##2:
71 nauto by H0,H1 ##;
72 ##| ##skip ##]
73 ntry (nassumption) ##;
74 nqed.
75
76 (* -------------------------------------------------------------------------- *)