TPTP Problem File: ITP209_2.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : ITP209_2 : TPTP v8.2.0. Released v8.0.0.
% Domain   : Interactive Theorem Proving
% Problem  : Sledgehammer problem Syntax_Match 00088_002922
% Version  : [Des22] axioms.
% English  :

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

% Status   : Theorem
% Rating   : 0.00 v8.1.0
% Syntax   : Number of formulae    :   29 (   9 unt;  14 typ;   0 def)
%            Number of atoms       :   23 (  12 equ)
%            Maximal formula atoms :    3 (   1 avg)
%            Number of connectives :    9 (   1   ~;   0   |;   1   &)
%                                         (   1 <=>;   6  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    8 (   5 avg)
%            Maximal term depth    :    6 (   2 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :   10 (   6   >;   4   *;   0   +;   0  <<)
%            Number of predicates  :    5 (   4 usr;   0 prp; 1-4 aty)
%            Number of functors    :    8 (   8 usr;   6 con; 0-4 aty)
%            Number of variables   :   56 (  49   !;   0   ?;  56   :)
%                                         (   7  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TF1_THM_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.417
%------------------------------------------------------------------------------
% Could-be-implicit typings (3)
tff(ty_t_HOL_Obool,type,
    bool: $tType ).

tff(ty_t_fun,type,
    fun: ( $tType * $tType ) > $tType ).

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

% Explicit typings (11)
tff(sy_c_Syntax__Match_Oac__operator,type,
    syntax_ac_operator: 
      !>[A: $tType] : ( fun(A,fun(A,A)) > $o ) ).

tff(sy_c_Syntax__Match_Osyntax__fo__nomatch,type,
    syntax7388354845996824322omatch: 
      !>[A: $tType,B: $tType] : ( ( A * B ) > $o ) ).

tff(sy_c_Syntax__Match_Osyntax__nomatch,type,
    syntax2379306206330768139omatch: 
      !>[A: $tType,B: $tType] : ( ( A * B ) > $o ) ).

tff(sy_c_aa,type,
    aa: 
      !>[A: $tType,B: $tType] : ( ( fun(A,B) * A ) > B ) ).

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 (12)
tff(fact_0_ac__operator__axioms,axiom,
    syntax_ac_operator(a,f) ).

% ac_operator_axioms
tff(fact_1_commute,axiom,
    ! [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) ).

% commute
tff(fact_2_left__commute,axiom,
    ! [A2: a,B2: a,C: a] : aa(a,a,aa(a,fun(a,a),f,A2),aa(a,a,aa(a,fun(a,a),f,B2),C)) = aa(a,a,aa(a,fun(a,a),f,B2),aa(a,a,aa(a,fun(a,a),f,A2),C)) ).

% left_commute
tff(fact_3_right__assoc,axiom,
    ! [A2: a,B2: a,C: a] : aa(a,a,aa(a,fun(a,a),f,aa(a,a,aa(a,fun(a,a),f,A2),B2)),C) = aa(a,a,aa(a,fun(a,a),f,A2),aa(a,a,aa(a,fun(a,a),f,B2),C)) ).

% right_assoc
tff(fact_4_syntax__nomatch__def,axiom,
    ! [A: $tType,B: $tType,Pat: A,Obj: B] : syntax2379306206330768139omatch(A,B,Pat,Obj) ).

% syntax_nomatch_def
tff(fact_5_syntax__fo__nomatch__def,axiom,
    ! [A: $tType,B: $tType,Pat: A,Obj: B] : syntax7388354845996824322omatch(A,B,Pat,Obj) ).

% syntax_fo_nomatch_def
tff(fact_6_ac__operator_Ointro,axiom,
    ! [A: $tType,F: fun(A,fun(A,A))] :
      ( ! [A3: A,B3: A,C2: A] : aa(A,A,aa(A,fun(A,A),F,aa(A,A,aa(A,fun(A,A),F,A3),B3)),C2) = aa(A,A,aa(A,fun(A,A),F,A3),aa(A,A,aa(A,fun(A,A),F,B3),C2))
     => ( ! [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)
       => syntax_ac_operator(A,F) ) ) ).

% ac_operator.intro
tff(fact_7_ac__operator_Ocommute,axiom,
    ! [A: $tType,F: fun(A,fun(A,A)),A2: A,B2: A] :
      ( syntax_ac_operator(A,F)
     => ( aa(A,A,aa(A,fun(A,A),F,A2),B2) = aa(A,A,aa(A,fun(A,A),F,B2),A2) ) ) ).

% ac_operator.commute
tff(fact_8_ac__operator_Oleft__assoc,axiom,
    ! [A: $tType,F: fun(A,fun(A,A)),A2: A,B2: A,C: A] :
      ( syntax_ac_operator(A,F)
     => ( aa(A,A,aa(A,fun(A,A),F,A2),aa(A,A,aa(A,fun(A,A),F,B2),C)) = aa(A,A,aa(A,fun(A,A),F,aa(A,A,aa(A,fun(A,A),F,A2),B2)),C) ) ) ).

% ac_operator.left_assoc
tff(fact_9_ac__operator_Oright__assoc,axiom,
    ! [A: $tType,F: fun(A,fun(A,A)),A2: A,B2: 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,A2),B2)),C) = aa(A,A,aa(A,fun(A,A),F,A2),aa(A,A,aa(A,fun(A,A),F,B2),C)) ) ) ).

% ac_operator.right_assoc
tff(fact_10_ac__operator_Oleft__commute,axiom,
    ! [A: $tType,F: fun(A,fun(A,A)),A2: A,B2: A,C: A] :
      ( syntax_ac_operator(A,F)
     => ( aa(A,A,aa(A,fun(A,A),F,A2),aa(A,A,aa(A,fun(A,A),F,B2),C)) = aa(A,A,aa(A,fun(A,A),F,B2),aa(A,A,aa(A,fun(A,A),F,A2),C)) ) ) ).

% ac_operator.left_commute
tff(fact_11_ac__operator__def,axiom,
    ! [A: $tType,F: fun(A,fun(A,A))] :
      ( syntax_ac_operator(A,F)
    <=> ( ! [A4: A,B4: A,C3: A] : aa(A,A,aa(A,fun(A,A),F,aa(A,A,aa(A,fun(A,A),F,A4),B4)),C3) = aa(A,A,aa(A,fun(A,A),F,A4),aa(A,A,aa(A,fun(A,A),F,B4),C3))
        & ! [A4: A,B4: A] : aa(A,A,aa(A,fun(A,A),F,A4),B4) = aa(A,A,aa(A,fun(A,A),F,B4),A4) ) ) ).

% 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) ).

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