1 set "baseuri" "cic:/matita/TPTP/COL006-2".
2 include "logic/equality.ma".
4 (* Inclusion of: COL006-2.p *)
6 (* -------------------------------------------------------------------------- *)
8 (* File : COL006-2 : TPTP v3.2.0. Released v1.0.0. *)
10 (* Domain : Combinatory Logic *)
12 (* Problem : Strong fixed point for S and K *)
14 (* Version : [WM88] (equality) axioms : Augmented > Especial. *)
16 (* Theorem formulation : The fixed point is provided and checked. *)
18 (* English : The strong fixed point property holds for the set *)
20 (* P consisting of the combinators S and K alone, where *)
22 (* ((Sx)y)z = (xz)(yz), (Kx)y = x. *)
24 (* Refs : [WM88] Wos & McCune (1988), Challenge Problems Focusing on Eq *)
30 (* Status : Unsatisfiable *)
32 (* Rating : 0.43 v3.1.0, 0.67 v2.7.0, 0.33 v2.6.0, 0.43 v2.5.0, 0.20 v2.4.0, 0.67 v2.2.1, 1.00 v2.0.0 *)
34 (* Syntax : Number of clauses : 4 ( 0 non-Horn; 3 unit; 2 RR) *)
36 (* Number of atoms : 5 ( 3 equality) *)
38 (* Maximal clause size : 2 ( 1 average) *)
40 (* Number of predicates : 2 ( 0 propositional; 1-2 arity) *)
42 (* Number of functors : 4 ( 3 constant; 0-2 arity) *)
44 (* Number of variables : 6 ( 1 singleton) *)
46 (* Maximal term depth : 8 ( 3 average) *)
50 (* -------------------------------------------------------------------------- *)
51 theorem prove_strong_fixed_point:
52 ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀k:Univ.∀s:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply k X) Y) X.∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply s X) Y) Z) (apply (apply X Z) (apply Y Z)).fixed_point (apply (apply s (apply k (apply (apply s (apply (apply s k) k)) (apply (apply s k) k)))) (apply (apply s (apply k (apply (apply s s) (apply s k)))) (apply (apply s (apply k s)) k)))
55 autobatch depth=5 width=5 size=20 timeout=10;
60 (* -------------------------------------------------------------------------- *)