TPTP Problem File: ITP209_10.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : ITP209_10 : TPTP v9.0.0. Released v8.2.0.
% Domain   : Interactive Theorem Proving
% Problem  : Sledgehammer problem Syntax_Match 00088_002922
% Version  : ITP209_1 with the conjecture removed
% English  :

% Refs     : [BH+15] Blanchette et al. (2015), Mining the Archive of Formal
%          : [Des22] Desharnais (2022), Email to Geoff Sutcliffe
% Source   : [TPTP]
% Names    : 

% Status   : Satisfiable
% Rating   : 0.00 v8.2.0
% Syntax   : Number of formulae    :   26 (   6 unt;  14 typ;   0 def)
%            Number of atoms       :   20 (  11 equ)
%            Maximal formula atoms :    3 (   1 avg)
%            Number of connectives :    9 (   1   ~;   0   |;   1   &)
%                                         (   1 <=>;   6  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    7 (   4 avg)
%            Maximal term depth    :    5 (   2 avg)
%            Number of types       :    5 (   4 usr)
%            Number of type conns  :    6 (   4   >;   2   *;   0   +;   0  <<)
%            Number of predicates  :    3 (   2 usr;   0 prp; 1-2 aty)
%            Number of functors    :    8 (   8 usr;   6 con; 0-2 aty)
%            Number of variables   :   35 (  35   !;   0   ?;  35   :)
% SPC      : TF0_SAT_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            from the van Emde Boas Trees session in the Archive of Formal
%            proofs - 
%            www.isa-afp.org/browser_info/current/AFP/Van_Emde_Boas_Trees
%            2022-02-17 14:22:46.396
%------------------------------------------------------------------------------
% Could-be-implicit typings (4)
tff(ty_n_t__fun_Itf__a_Mt__fun_Itf__a_Mtf__a_J_J,type,
    fun_a_fun_a_a: $tType ).

tff(ty_n_t__fun_Itf__a_Mtf__a_J,type,
    fun_a_a: $tType ).

tff(ty_n_t__HOL__Obool,type,
    bool: $tType ).

tff(ty_n_tf__a,type,
    a: $tType ).

% Explicit typings (10)
tff(sy_c_Syntax__Match_Oac__operator_001tf__a,type,
    syntax_ac_operator_a: fun_a_fun_a_a > $o ).

tff(sy_c_aa_001tf__a_001t__fun_Itf__a_Mtf__a_J,type,
    aa_a_fun_a_a: ( fun_a_fun_a_a * a ) > fun_a_a ).

tff(sy_c_aa_001tf__a_001tf__a,type,
    aa_a_a: ( fun_a_a * a ) > a ).

tff(sy_c_fFalse,type,
    fFalse: bool ).

tff(sy_c_fTrue,type,
    fTrue: bool ).

tff(sy_c_pp,type,
    pp: bool > $o ).

tff(sy_v_a,type,
    a2: a ).

tff(sy_v_b,type,
    b: a ).

tff(sy_v_c,type,
    c: a ).

tff(sy_v_f,type,
    f: fun_a_fun_a_a ).

% Relevant facts (10)
tff(fact_0_ac__operator__axioms,axiom,
    syntax_ac_operator_a(f) ).

% ac_operator_axioms
tff(fact_1_commute,axiom,
    ! [A: a,B: a] : ( aa_a_a(aa_a_fun_a_a(f,A),B) = aa_a_a(aa_a_fun_a_a(f,B),A) ) ).

% commute
tff(fact_2_left__commute,axiom,
    ! [A: a,B: a,C: a] : ( aa_a_a(aa_a_fun_a_a(f,A),aa_a_a(aa_a_fun_a_a(f,B),C)) = aa_a_a(aa_a_fun_a_a(f,B),aa_a_a(aa_a_fun_a_a(f,A),C)) ) ).

% left_commute
tff(fact_3_right__assoc,axiom,
    ! [A: a,B: a,C: a] : ( aa_a_a(aa_a_fun_a_a(f,aa_a_a(aa_a_fun_a_a(f,A),B)),C) = aa_a_a(aa_a_fun_a_a(f,A),aa_a_a(aa_a_fun_a_a(f,B),C)) ) ).

% right_assoc
tff(fact_4_ac__operator_Ointro,axiom,
    ! [F: fun_a_fun_a_a] :
      ( ! [A2: a,B2: a,C2: a] : ( aa_a_a(aa_a_fun_a_a(F,aa_a_a(aa_a_fun_a_a(F,A2),B2)),C2) = aa_a_a(aa_a_fun_a_a(F,A2),aa_a_a(aa_a_fun_a_a(F,B2),C2)) )
     => ( ! [A2: a,B2: a] : ( aa_a_a(aa_a_fun_a_a(F,A2),B2) = aa_a_a(aa_a_fun_a_a(F,B2),A2) )
       => syntax_ac_operator_a(F) ) ) ).

% ac_operator.intro
tff(fact_5_ac__operator_Ocommute,axiom,
    ! [F: fun_a_fun_a_a,A: a,B: a] :
      ( syntax_ac_operator_a(F)
     => ( aa_a_a(aa_a_fun_a_a(F,A),B) = aa_a_a(aa_a_fun_a_a(F,B),A) ) ) ).

% ac_operator.commute
tff(fact_6_ac__operator_Oleft__assoc,axiom,
    ! [F: fun_a_fun_a_a,A: a,B: a,C: a] :
      ( syntax_ac_operator_a(F)
     => ( aa_a_a(aa_a_fun_a_a(F,A),aa_a_a(aa_a_fun_a_a(F,B),C)) = aa_a_a(aa_a_fun_a_a(F,aa_a_a(aa_a_fun_a_a(F,A),B)),C) ) ) ).

% ac_operator.left_assoc
tff(fact_7_ac__operator_Oright__assoc,axiom,
    ! [F: fun_a_fun_a_a,A: a,B: a,C: a] :
      ( syntax_ac_operator_a(F)
     => ( aa_a_a(aa_a_fun_a_a(F,aa_a_a(aa_a_fun_a_a(F,A),B)),C) = aa_a_a(aa_a_fun_a_a(F,A),aa_a_a(aa_a_fun_a_a(F,B),C)) ) ) ).

% ac_operator.right_assoc
tff(fact_8_ac__operator_Oleft__commute,axiom,
    ! [F: fun_a_fun_a_a,A: a,B: a,C: a] :
      ( syntax_ac_operator_a(F)
     => ( aa_a_a(aa_a_fun_a_a(F,A),aa_a_a(aa_a_fun_a_a(F,B),C)) = aa_a_a(aa_a_fun_a_a(F,B),aa_a_a(aa_a_fun_a_a(F,A),C)) ) ) ).

% ac_operator.left_commute
tff(fact_9_ac__operator__def,axiom,
    ! [F: fun_a_fun_a_a] :
      ( syntax_ac_operator_a(F)
    <=> ( ! [A3: a,B3: a,C3: a] : ( aa_a_a(aa_a_fun_a_a(F,aa_a_a(aa_a_fun_a_a(F,A3),B3)),C3) = aa_a_a(aa_a_fun_a_a(F,A3),aa_a_a(aa_a_fun_a_a(F,B3),C3)) )
        & ! [A3: a,B3: a] : ( aa_a_a(aa_a_fun_a_a(F,A3),B3) = aa_a_a(aa_a_fun_a_a(F,B3),A3) ) ) ) ).

% ac_operator_def

% Helper facts (2)
tff(help_pp_2_1_U,axiom,
    pp(fTrue) ).

tff(help_pp_1_1_U,axiom,
    ~ pp(fFalse) ).

% Conjectures (1)
% tff(conj_0,conjecture,
%     aa_a_a(aa_a_fun_a_a(f,aa_a_a(aa_a_fun_a_a(f,a2),b)),c) = aa_a_a(aa_a_fun_a_a(f,aa_a_a(aa_a_fun_a_a(f,a2),c)),b) ).

%------------------------------------------------------------------------------